基于Paddle Serving&百度智能边缘BIE的边缘AI解决方案

Paddle Serving作为飞桨(PaddlePaddle)开源的服务化部署服务化方案,提供了C++ Serving和Python Pipeline两套框架,旨在帮助深度学习开发者和企业提供高性能、灵活易用的工业级在线推理服务,助力人工智能落地应用。在最新的Paddle Serving v0.7.0中,提供了丰富的模型示例,总计有42个,具体模型信息可查看Model_Zoo:

https://github.com/PaddlePaddle/Serving/blob/v0.7.0/doc/Model_Zoo_CN.md。

百度智能边缘(Baidu Intelligent Edge,BIE)由 云端管理平台和BAETYL 开源边缘计算框架两部分组成,实现将云计算能力拓展至用户现场,可以提供临时离线、低延时的计算服务,包括消息规则、函数计算、AI 推断。智能边缘配合百度智能云,形成“云管理,端计算”的端云一体解决方案。

通过Paddle Serving赋能BIE,可以实现产业级的边缘AI服务发布解决方案,达到如下的云边端能力:

    管理边缘节点:纳管多种类型的边缘节点,包括服务器、边缘计算盒子。如果边缘侧是一个多机集群,也支持通过BIE统一管理。 状态检查:支持监控边缘节点运行状态、资源使用(CPU、内存、GPU、磁盘、网络流量等)。 下发Serving:支持云端将Paddle Serving下发至边缘侧,作为边缘侧服务化推理 + Serving版本升级。 下发模型:支持云端动态下发PaddlePaddle模型至边缘侧,模型版本升级。

以下教程详细描述使用Paddle Serving和BIE实现云边端服务发布的能力。主要包括实验准备、模型准备、Paddle Serving镜像准备、模型应用创建、模型应用部署、测试验证、测试效果展示。

1

试验设备

一台x86架构的ubuntu 18.04虚拟机,不依赖GPU

2

模型文件准备

1.在宿主机上下载Paddle Serving代码

git clone https://github.com/PaddlePaddle/Serving.git

2.下载模型,参考文档:

https://github.com/PaddlePaddle/Serving/tree/v0.7.0/examples/Pipeline/PaddleDetection/yolov3

# 进入到yolov3实例模型目录
cd Serving/examples/Pipeline/PaddleDetection/yolov3/
# 下载模型
wget --no-check-certificate https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/yolov3_darknet53_270e_coco.tar
# 解压模型
tar xf yolov3_darknet53_270e_coco.tar
# 解压以后删除模型压缩包
rm -r yolov3_darknet53_270e_coco.tar

3.制作模型压缩包

cd Serving/examples/Pipeline/PaddleDetection/yolov3/
压缩当前目录下的文件
zip -r paddle_serving_yolov3_darknet53_270e_coco.zip ./*
# 查看md5
md5sum paddle_serving_yolov3_darknet53_270e_coco.zip 
7a2ca27f2f444c6ac169d19922ff89ab  paddle_serving_yolov3_darknet53_270e_coco.zip

4.将模型上传到bos

3

Paddle Serving镜像准备

1.下载Paddle Serving开发镜像

docker pull registry.baidubce.com/paddlepaddle/serving:0.7.0-devel

2.运行Paddle Serving开发镜像

docker run --rm -dit --name pipeline_serving_demo registry.baidubce.com/paddlepaddle/serving:0.7.0-devel bash

3.Paddle Serving开发镜像当中安装依赖程序

# 进入容器
docker exec -it pipeline_serving_demo bash
# 下载代码
git clone https://github.com/PaddlePaddle/Serving.git
# 进入Paddle Serving代码目录
cd Serving
# 安装依赖
pip3 install -r python/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# CPU环境安装内容如下

# 安装Paddle Serving
pip3 install paddle-serving-client==0.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install paddle-serving-server==0.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple 
pip3 install paddle-serving-app==0.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple 

# 安装Paddle相关Python库
pip3 install paddlepaddle==2.2.0

加上 -i https://pypi.tuna.tsinghua.edu.cn/simple 表示使用国内源,提升下载速度,非必须,可以不加。

4.提交镜像,固化上面的安装内容

docker commit pipeline_serving_demo paddle_serving:0.7.0-cpu-py36

这里将我制作的镜像推送到了百度公有云CCR,可以直接下载使用

docker pull registry.baidubce.com/pp/paddle-serving:0.7.0-cpu-py36

4

模型应用创建

4.1创建模型文件配置项

①创建配置项paddle-yolov3-model

②点击引入文件

    类型:HTTP URL:https://bie-document.gz.bcebos.com/paddlepaddle/paddle_serving_yolov3_darknet53_270e_coco.zip 文件名称:paddle_serving_yolov3_darknet53_270e_coco.zip 是否解压:是

4.2创建启动脚本配置项

①创建配置项paddle-yolov3-run-script

②添加配置数据如下

    变量名:run.sh 变量值:如下述代码
#! /usr/bin/env bash
cd /home/work/yolov3
python3 web_service.py

4.3创建paddle-serving应用并挂载

①创建应用paddle-serving

②配置服务

    基础信息:

名称:paddle-serving

镜像:paddle-serving:0.7.0-cpu-py36

卷配置:

/home/work/script:运行脚本位置,与启动参数一致

/home/work/yolov3:模型位置,与运行脚本一致

启动参数

/bin/bash

/home/work/script/run.sh,与前面的卷配置一致

5

模型应用部署

1.进入到paddle-serving

2.定位到目标节点,点击单节点匹配,选择目标节点paddle-serving-test。等待几分钟,部署状态将变为已部署。

3.进入边缘节点,可以查看服务在边缘测的运行状态,如下图所示:

6

测试验证

6.1使用paddle-serving-client验证

①ssh登录边缘节点

②查看边缘节点BIE应用状态

kubectl get pod -n baetyl-edge
NAME                             READY   STATUS    RESTARTS   AGE
paddle-serving-dd6d8986c-d89k7   1/1     Running   0          3m7s

③进入边缘容器

kubectl exec -it paddle-serving-dd6d8986c-d89k7 -n baetyl-edge /bin/bash
# 进去以后,工作目录为/home
λ paddle-serving-dd6d8986c-d89k7 /home 
# 查看/home/work目录,检查云端模型是否下发成功
λ paddle-serving-dd6d8986c-d89k7 /home/work cd /home/work/
λ paddle-serving-dd6d8986c-d89k7 /home/work ls
script/  yolov3/

④执行测试命令

# 进入yolov3目录
λ paddle-serving-dd6d8986c-d89k7 /home/work/yolov3 cd /home/work/yolov3/
# 查看内容
λ paddle-serving-dd6d8986c-d89k7 /home/work/yolov3 ls -l
total 221M
-rw-rw-r-- 1 root root 136K Dec 17 09:21 000000570688.jpg
-rw-rw-r-- 1 root root  509 Dec 17 09:21 benchmark_config.yaml
-rw-rw-r-- 1 root root 4.2K Dec 17 09:21 benchmark.py
-rw-rw-r-- 1 root root 2.1K Dec 17 09:21 benchmark.sh
-rw-rw-r-- 1 root root 1.5K Dec 17 09:21 config.yml
-rw-rw-r-- 1 root root  621 Dec 17 09:21 label_list.txt
-rwxr-xr-x 1 root root 220M Dec 17 09:21 paddle_serving_yolov3_darknet53_270e_coco.zip
-rw-rw-r-- 1 root root 1.2K Dec 17 09:21 pipeline_http_client.py
drwxr-xr-x 2 root root 4.0K Dec 17 09:26 PipelineServingLogs/
-rw-r--r-- 1 root root   89 Dec 17 09:26 ProcessInfo.json
-rw-rw-r-- 1 root root  368 Dec 17 09:21 README_CN.md
-rw-rw-r-- 1 root root  374 Dec 17 09:21 README.md
drwxr-xr-x 2 root root 4.0K Dec 17 09:21 serving_client/
drwxr-xr-x 2 root root 4.0K Dec 17 09:21 serving_server/
-rw-rw-r-- 1 root root 2.8K Dec 17 09:21 web_service.py
λ paddle-serving-dd6d8986c-d89k7 /home/work/yolov3 python3 
# 执行客户端测试脚本
pipeline_http_client.py

返回结果如下:

{
    err_no: 0,
    err_msg: ,
    key: [bbox_result],
    value: ["[{category_id: 0, bbox: [215.16099548339844, 438.1199951171875, 43.29920959472656, 186.94189453125], score: 0.9860591292381287}, {category_id: 0, bbox: [404.882568359375, 463.1432800292969, 50.00750732421875, 174.96109008789062], score: 0.972165584564209}, {category_id: 0, bbox: [259.8436279296875, 458.67169189453125, 47.04876708984375, 154.5758056640625], score: 0.9670743346214294}, {category_id: 0, bbox: [438.247314453125, 491.875, 68.9227294921875, 145.5482177734375], score: 0.9092186689376831}, {category_id: 0, bbox: [156.2906951904297, 505.449951171875, 57.74359130859375, 55.9661865234375], score: 0.7775811553001404}, {category_id: 0, bbox: [28.40601921081543, 451.0614318847656, 27.93486213684082, 113.30917358398438], score: 0.768792986869812}, {category_id: 0, bbox: [297.4198303222656, 511.6090087890625, 59.18255615234375, 76.463134765625], score: 0.7284609079360962}, {category_id: 0, bbox: [498.0811767578125, 504.2102966308594, 35.239501953125, 134.76394653320312], score: 0.6112859845161438}, {category_id: 0, bbox: [522.001708984375, 479.5540466308594, 63.42236328125, 156.11416625976562], score: 0.5191890001296997}, {category_id: 0, bbox: [139.90167236328125, 483.0037841796875, 21.444671630859375, 69.7462158203125], score: 0.43779468536376953}, {category_id: 0, bbox: [91.08878326416016, 494.5179748535156, 27.569290161132812, 55.932159423828125], score: 0.4112253189086914}, {category_id: 0, bbox: [9.615033149719238, 462.5943908691406, 21.810187339782715, 82.98226928710938], score: 0.3453913629055023}, {category_id: 0, bbox: [395.7669372558594, 460.096923828125, 13.82818603515625, 51.9017333984375], score: 0.30560365319252014}, {category_id: 0, bbox: [120.70891571044922, 496.8610534667969, 25.293846130371094, 54.288909912109375], score: 0.21395830810070038}, {category_id: 0, bbox: [595.8244018554688, 466.6758117675781, 6.93212890625, 22.802978515625], score: 0.212965726852417}, {category_id: 0, bbox: [624.6640625, 466.89288330078125, 6.6031494140625, 23.390869140625], score: 0.1309354156255722}, {category_id: 0, bbox: [71.72364807128906, 493.44171142578125, 23.06365966796875, 58.178955078125], score: 0.11486723273992538}, {category_id: 0, bbox: [93.5279769897461, 494.7836608886719, 18.048110961914062, 29.617156982421875], score: 0.0973864197731018}, {category_id: 0, bbox: [633.90625, 466.93377685546875, 5.08349609375, 22.541259765625], score: 0.08928193151950836}, {category_id: 0, bbox: [616.2327880859375, 467.5227966308594, 6.6636962890625, 22.73602294921875], score: 0.07480660825967789}, {category_id: 0, bbox: [330.21514892578125, 460.61785888671875, 14.3568115234375, 50.36322021484375], score: 0.05391114205121994}, {category_id: 0, bbox: [623.5628662109375, 521.3399047851562, 15.6580810546875, 118.66009521484375], score: 0.05177609249949455}, {category_id: 0, bbox: [118.22535705566406, 493.11846923828125, 15.311538696289062, 46.67529296875], score: 0.05106724426150322}, {category_id: 0, bbox: [76.89163970947266, 489.4934997558594, 14.865859985351562, 36.153900146484375], score: 0.0509687103331089}, {category_id: 0, bbox: [612.2092895507812, 466.2706604003906, 6.8411865234375, 24.82183837890625], score: 0.04965047165751457}, {category_id: 0, bbox: [459.98687744140625, 466.3093566894531, 11.68914794921875, 34.41339111328125], score: 0.04907878115773201}, {category_id: 0, bbox: [0.4039268493652344, 462.4938049316406, 10.412893295288086, 61.628326416015625], score: 0.048166826367378235}, {category_id: 0, bbox: [163.0106201171875, 501.29864501953125, 14.077667236328125, 28.6602783203125], score: 0.043710850179195404}, {category_id: 0, bbox: [42.41417694091797, 456.0679626464844, 17.12506103515625, 96.23989868164062], score: 0.043581727892160416}, {category_id: 0, bbox: [124.59736633300781, 495.2655029296875, 14.957061767578125, 29.24896240234375], score: 0.032280560582876205}, {category_id: 0, bbox: [322.8830261230469, 510.5441589355469, 35.19915771484375, 58.528839111328125], score: 0.032096412032842636}, {category_id: 0, bbox: [499.7272644042969, 472.0701599121094, 6.73431396484375, 23.52752685546875], score: 0.03191200643777847}, {category_id: 0, bbox: [635.601318359375, 472.9556579589844, 4.2603759765625, 17.8453369140625], score: 0.03138304129242897}, {category_id: 0, bbox: [13.47295093536377, 509.2365417480469, 17.922499656677246, 59.210113525390625], score: 0.024998517706990242}, {category_id: 0, bbox: [492.8521728515625, 474.7392883300781, 5.19732666015625, 15.8018798828125], score: 0.02452804334461689}, {category_id: 0, bbox: [141.70277404785156, 491.10888671875, 16.059814453125, 34.2940673828125], score: 0.01741969771683216}, {category_id: 0, bbox: [111.90968322753906, 493.1148986816406, 13.242355346679688, 30.584503173828125], score: 0.016763748601078987}, {category_id: 0, bbox: [70.63130950927734, 495.74530029296875, 15.302810668945312, 42.497802734375], score: 0.016103360801935196}, {category_id: 0, bbox: [499.5566711425781, 506.34857177734375, 30.214935302734375, 69.9669189453125], score: 0.014152972027659416}, {category_id: 2, bbox: [500.8828125, 460.91827392578125, 13.79754638671875, 11.3291015625], score: 0.05771809071302414}, {category_id: 2, bbox: [492.967529296875, 461.03411865234375, 16.8121337890625, 11.01202392578125], score: 0.050255682319402695}, {category_id: 2, bbox: [566.1650390625, 461.9089050292969, 14.287353515625, 11.1707763671875], score: 0.04679763689637184}, {category_id: 2, bbox: [582.1019287109375, 463.1806335449219, 11.535888671875, 9.76470947265625], score: 0.03930026665329933}, {category_id: 2, bbox: [573.3811645507812, 463.0304260253906, 15.5157470703125, 9.6693115234375], score: 0.03414313867688179}, {category_id: 2, bbox: [600.5574951171875, 462.50701904296875, 7.7860107421875, 8.21221923828125], score: 0.025939688086509705}, {category_id: 2, bbox: [486.56951904296875, 463.8977966308594, 12.2598876953125, 7.6630859375], score: 0.022135090082883835}, {category_id: 25, bbox: [437.3040466308594, 545.1283569335938, 38.20965576171875, 87.29931640625], score: 0.018933355808258057}, {category_id: 26, bbox: [29.908803939819336, 486.8944396972656, 16.05537223815918, 22.83355712890625], score: 0.04068344458937645}, {category_id: 26, bbox: [581.0633544921875, 620.1477661132812, 32.0316162109375, 18.63525390625], score: 0.039497870951890945}, {category_id: 26, bbox: [385.1318359375, 517.0343017578125, 18.244873046875, 13.5072021484375], score: 0.02217845804989338}, {category_id: 26, bbox: [590.1017456054688, 559.3590698242188, 13.1651611328125, 43.9588623046875], score: 0.015419745817780495}, {category_id: 26, bbox: [582.7347412109375, 560.3289184570312, 26.631103515625, 76.6273193359375], score: 0.014936945401132107}, {category_id: 33, bbox: [460.7890930175781, 336.1373291015625, 17.67572021484375, 23.1480712890625], score: 0.8834899663925171}, {category_id: 33, bbox: [319.202880859375, 214.55738830566406, 142.63299560546875, 70.57722473144531], score: 0.8617939949035645}, {category_id: 33, bbox: [233.26974487304688, 29.542848587036133, 9.237213134765625, 9.067476272583008], score: 0.8452507257461548}, {category_id: 33, bbox: [175.90914916992188, 314.95672607421875, 79.74258422851562, 29.947021484375], score: 0.820819079875946}, {category_id: 33, bbox: [504.2533874511719, 261.376708984375, 18.829742431640625, 24.36407470703125], score: 0.8137103915214539}, {category_id: 33, bbox: [328.5792236328125, 86.0416030883789, 61.03375244140625, 27.46881103515625], score: 0.8071057796478271}, {category_id: 33, bbox: [363.2680358886719, 161.7618865966797, 12.36090087890625, 10.89990234375], score: 0.8044251203536987}, {category_id: 33, bbox: [222.79953002929688, 350.03302001953125, 162.13482666015625, 79.5477294921875], score: 0.7996627688407898}, {category_id: 33, bbox: [279.99066162109375, 124.66069030761719, 45.8681640625, 16.145660400390625], score: 0.7842240333557129}, {category_id: 33, bbox: [98.05622100830078, 419.7298889160156, 65.67034149169922, 62.50732421875], score: 0.7424381971359253}, {category_id: 33, bbox: [242.89645385742188, 166.64027404785156, 20.291900634765625, 14.35076904296875], score: 0.6263655424118042}, {category_id: 33, bbox: [430.3121643066406, 40.18694305419922, 18.87353515625, 19.074172973632812], score: 0.5938690304756165}, {category_id: 33, bbox: [86.46560668945312, 137.0863800048828, 48.230865478515625, 19.82879638671875], score: 0.5937690734863281}, {category_id: 33, bbox: [392.02850341796875, 394.45611572265625, 26.37896728515625, 23.63372802734375], score: 0.5023226141929626}, {category_id: 33, bbox: [271.4128112792969, 299.25018310546875, 149.4326171875, 59.794921875], score: 0.422481894493103}, {category_id: 33, bbox: [282.4754638671875, 281.77496337890625, 164.82354736328125, 56.41583251953125], score: 0.4141545295715332}, {category_id: 33, bbox: [114.94490051269531, 237.0370330810547, 22.510589599609375, 17.687591552734375], score: 0.40582510828971863}, {category_id: 33, bbox: [160.378173828125, 257.062255859375, 10.08685302734375, 8.29095458984375], score: 0.3285631537437439}, {category_id: 33, bbox: [260.0093994140625, 44.60060501098633, 4.9671630859375, 5.313697814941406], score: 0.28955695033073425}, {category_id: 33, bbox: [216.726318359375, 238.36724853515625, 180.0245361328125, 60.68719482421875], score: 0.25094327330589294}, {category_id: 33, bbox: [58.31337356567383, 340.7672424316406, 7.575717926025391, 5.21954345703125], score: 0.2317829728126526}, {category_id: 33, bbox: [2.293954849243164, 424.1985778808594, 17.95143699645996, 10.4171142578125], score: 0.21052710711956024}, {category_id: 33, bbox: [281.1366271972656, 130.51866149902344, 8.10662841796875, 9.679290771484375], score: 0.13495559990406036}, {category_id: 33, bbox: [170.76100158691406, 425.669677734375, 60.928955078125, 52.55987548828125], score: 0.11672469973564148}, {category_id: 33, bbox: [218.16445922851562, 236.66871643066406, 86.7357177734375, 36.82264709472656], score: 0.09928663074970245}, {category_id: 33, bbox: [57.59531021118164, 340.63653564453125, 11.535961151123047, 10.2398681640625], score: 0.09524064511060715}, {category_id: 33, bbox: [83.4229736328125, 300.5054626464844, 4.1660614013671875, 3.51611328125], score: 0.05346690118312836}, {category_id: 33, bbox: [85.83900451660156, 137.0255584716797, 7.1644134521484375, 8.851104736328125], score: 0.044692330062389374}, {category_id: 33, bbox: [412.9825744628906, 38.167327880859375, 32.94921875, 45.059669494628906], score: 0.04101773351430893}, {category_id: 33, bbox: [596.8782958984375, 1.0692591667175293, 35.0404052734375, 10.813299655914307], score: 0.03720707818865776}, {category_id: 33, bbox: [218.40847778320312, 239.14697265625, 37.585540771484375, 23.478668212890625], score: 0.03472490981221199}, {category_id: 33, bbox: [22.163543701171875, 430.1997985839844, 15.829334259033203, 46.72674560546875], score: 0.03383627161383629}, {category_id: 33, bbox: [51.58473205566406, 443.5025939941406, 30.812210083007812, 35.05010986328125], score: 0.028524775058031082}, {category_id: 33, bbox: [436.84979248046875, 541.2200927734375, 41.42523193359375, 93.6231689453125], score: 0.01658524200320244}, {category_id: 33, bbox: [577.9300537109375, 0.0, 54.505859375, 48.904815673828125], score: 0.016126543283462524}, {category_id: 33, bbox: [3.094654083251953, 438.25445556640625, 20.415660858154297, 28.048095703125], score: 0.014082299545407295}, {category_id: 56, bbox: [567.2755126953125, 559.4602661132812, 37.1573486328125, 77.50048828125], score: 0.3802623450756073}, {category_id: 56, bbox: [72.8006820678711, 514.73583984375, 21.915634155273438, 37.716796875], score: 0.08133123815059662}, {category_id: 56, bbox: [508.6803283691406, 559.0682373046875, 93.95669555664062, 78.7860107421875], score: 0.06216099485754967}, {category_id: 56, bbox: [174.71974182128906, 497.610595703125, 17.5482177734375, 22.37078857421875], score: 0.04738868027925491}, {category_id: 56, bbox: [90.97509002685547, 507.92376708984375, 28.04888916015625, 45.3680419921875], score: 0.03899860754609108}, {category_id: 56, bbox: [377.0034484863281, 491.5137023925781, 20.13714599609375, 34.996185302734375], score: 0.0388840027153492}, {category_id: 56, bbox: [503.78839111328125, 566.7881469726562, 28.494873046875, 72.017822265625], score: 0.036751069128513336}, {category_id: 56, bbox: [119.07683563232422, 507.221923828125, 28.098655700683594, 46.0355224609375], score: 0.029802320525050163}, {category_id: 56, bbox: [70.57160186767578, 499.4393310546875, 15.87109375, 51.1988525390625], score: 0.024599188938736916}, {category_id: 56, bbox: [389.9160461425781, 493.0232849121094, 14.80902099609375, 33.048980712890625], score: 0.019945451989769936}, {category_id: 56, bbox: [60.86790466308594, 502.6175537109375, 12.643905639648438, 27.7879638671875], score: 0.018364958465099335}, {category_id: 56, bbox: [529.2908935546875, 566.8236694335938, 40.3153076171875, 71.20458984375], score: 0.01757989637553692}]"],
    tensors: []
}

6.2使用postman验证

①我们知道上述yolov3模型服务的容器内端口是18082,当前我们需要在单独的一台测试机器上使用postman去调用yolov3服务接口,那么就需要将容器内的18082端口映射到宿主机上,我们在云端BIE控制台配置paddle-serving这个服务,添加端口映射,如下图所示:

②下载测试图片dog.jpeg

图片链接:https://bce.bdstatic.com/doc/bce-doc/BIE/dog_831f56a.jpeg

③执行一下命令,将这张图片的base64编码输出到dog.base64文件当中

base64 -i dog.jpeg -o dog.base64

④组装postman输出参数,如下所示:

⑤postman调用url为http://[ip]:18082/yolov3/prediction,如下图所示:

⑥查看postman返回结果如下,如下图所示:

{
    "err_no":0,
    "err_msg":"",
    "key":[
        "bbox_result"
    ],
    "value":[
        "[{category_id: 16, bbox: [138.06399536132812, 54.169952392578125, 464.1486511230469, 552.6064147949219], score: 0.9826956987380981}, {category_id: 57, bbox: [142.67298889160156, 29.47320556640625, 401.58738708496094, 564.1134033203125], score: 0.02150958590209484}]"
    ],
    "tensors":[

    ]
}

⑦我们看到category_id为16,查看该模型的label_list.txt,我们看到16刚好对应dog。

模型链接地址:

https://github.com/PaddlePaddle/Serving/blob/v0.7.0/examples/Pipeline/PaddleDetection/yolov3/label_list.txt

*说明:label_list当中的id,从0开始。

基于Paddle Serving + BIE的

迁移扩展能力

通过BIE部署Paddle Serving的主要思路:

1.文中所用到的paddle-serving应用和运行脚本是通用的,若想运行不同模型,只需替换下发模型文件即可。

2.GPU镜像构建逻辑与CPU镜像一致,可参考官网文档,本文统一使用CPU镜像。

Paddle Serving不断拓展异构硬件和边缘端部署能力,将与百度智能云智能边缘框架BIE深度合作。智能边缘框架BIE凭借其核心技术优势已在各领域落地部署中提供解决方案,未来,BIE将携手更多开发者共创智能边缘发展新机遇,推动边缘计算平台稳步向前,助力众多行业实现智慧化转型。

Paddle Serving即将发布v0.8.0版本将提供更多硬件上AI服务化部署,如华为昇腾310、昇腾910、海光DCU、以及英伟达Jetson。对服务化部署感兴趣的小伙伴欢迎来Paddle Serving的github了解:https://github.com/PaddlePaddle/Serving

BIE技术交流区:

Paddle Serving作为飞桨(PaddlePaddle)开源的服务化部署服务化方案,提供了C++ Serving和Python Pipeline两套框架,旨在帮助深度学习开发者和企业提供高性能、灵活易用的工业级在线推理服务,助力人工智能落地应用。在最新的Paddle Serving v0.7.0中,提供了丰富的模型示例,总计有42个,具体模型信息可查看Model_Zoo: https://github.com/PaddlePaddle/Serving/blob/v0.7.0/doc/Model_Zoo_CN.md。 百度智能边缘(Baidu Intelligent Edge,BIE)由 云端管理平台和BAETYL 开源边缘计算框架两部分组成,实现将云计算能力拓展至用户现场,可以提供临时离线、低延时的计算服务,包括消息规则、函数计算、AI 推断。智能边缘配合百度智能云,形成“云管理,端计算”的端云一体解决方案。 通过Paddle Serving赋能BIE,可以实现产业级的边缘AI服务发布解决方案,达到如下的云边端能力: 管理边缘节点:纳管多种类型的边缘节点,包括服务器、边缘计算盒子。如果边缘侧是一个多机集群,也支持通过BIE统一管理。 状态检查:支持监控边缘节点运行状态、资源使用(CPU、内存、GPU、磁盘、网络流量等)。 下发Serving:支持云端将Paddle Serving下发至边缘侧,作为边缘侧服务化推理 + Serving版本升级。 下发模型:支持云端动态下发PaddlePaddle模型至边缘侧,模型版本升级。 以下教程详细描述使用Paddle Serving和BIE实现云边端服务发布的能力。主要包括实验准备、模型准备、Paddle Serving镜像准备、模型应用创建、模型应用部署、测试验证、测试效果展示。 1 试验设备 一台x86架构的ubuntu 18.04虚拟机,不依赖GPU 2 模型文件准备 1.在宿主机上下载Paddle Serving代码 git clone https://github.com/PaddlePaddle/Serving.git 2.下载模型,参考文档: https://github.com/PaddlePaddle/Serving/tree/v0.7.0/examples/Pipeline/PaddleDetection/yolov3 # 进入到yolov3实例模型目录 cd Serving/examples/Pipeline/PaddleDetection/yolov3/ # 下载模型 wget --no-check-certificate https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/yolov3_darknet53_270e_coco.tar # 解压模型 tar xf yolov3_darknet53_270e_coco.tar # 解压以后删除模型压缩包 rm -r yolov3_darknet53_270e_coco.tar 3.制作模型压缩包 cd Serving/examples/Pipeline/PaddleDetection/yolov3/ 压缩当前目录下的文件 zip -r paddle_serving_yolov3_darknet53_270e_coco.zip ./* # 查看md5 md5sum paddle_serving_yolov3_darknet53_270e_coco.zip  7a2ca27f2f444c6ac169d19922ff89ab  paddle_serving_yolov3_darknet53_270e_coco.zip 4.将模型上传到bos 3 Paddle Serving镜像准备 1.下载Paddle Serving开发镜像 docker pull registry.baidubce.com/paddlepaddle/serving:0.7.0-devel 2.运行Paddle Serving开发镜像 docker run --rm -dit --name pipeline_serving_demo registry.baidubce.com/paddlepaddle/serving:0.7.0-devel bash 3.Paddle Serving开发镜像当中安装依赖程序 # 进入容器 docker exec -it pipeline_serving_demo bash # 下载代码 git clone https://github.com/PaddlePaddle/Serving.git # 进入Paddle Serving代码目录 cd Serving # 安装依赖 pip3 install -r python/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # CPU环境安装内容如下 # 安装Paddle Serving pip3 install paddle-serving-client==0.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install paddle-serving-server==0.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple  pip3 install paddle-serving-app==0.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple  # 安装Paddle相关Python库 pip3 install paddlepaddle==2.2.0 加上 -i https://pypi.tuna.tsinghua.edu.cn/simple 表示使用国内源,提升下载速度,非必须,可以不加。 4.提交镜像,固化上面的安装内容 docker commit pipeline_serving_demo paddle_serving:0.7.0-cpu-py36 这里将我制作的镜像推送到了百度公有云CCR,可以直接下载使用 docker pull registry.baidubce.com/pp/paddle-serving:0.7.0-cpu-py36 4 模型应用创建 4.1创建模型文件配置项 ①创建配置项paddle-yolov3-model ②点击引入文件 类型:HTTP URL:https://bie-document.gz.bcebos.com/paddlepaddle/paddle_serving_yolov3_darknet53_270e_coco.zip 文件名称:paddle_serving_yolov3_darknet53_270e_coco.zip 是否解压:是 4.2创建启动脚本配置项 ①创建配置项paddle-yolov3-run-script ②添加配置数据如下 变量名:run.sh 变量值:如下述代码 #! /usr/bin/env bash cd /home/work/yolov3 python3 web_service.py 4.3创建paddle-serving应用并挂载 ①创建应用paddle-serving ②配置服务 基础信息: 名称:paddle-serving 镜像:paddle-serving:0.7.0-cpu-py36 卷配置: /home/work/script:运行脚本位置,与启动参数一致 /home/work/yolov3:模型位置,与运行脚本一致 启动参数 /bin/bash /home/work/script/run.sh,与前面的卷配置一致 5 模型应用部署 1.进入到paddle-serving 2.定位到目标节点,点击单节点匹配,选择目标节点paddle-serving-test。等待几分钟,部署状态将变为已部署。 3.进入边缘节点,可以查看服务在边缘测的运行状态,如下图所示: 6 测试验证 6.1使用paddle-serving-client验证 ①ssh登录边缘节点 ②查看边缘节点BIE应用状态 kubectl get pod -n baetyl-edge NAME                             READY   STATUS    RESTARTS   AGE paddle-serving-dd6d8986c-d89k7   1/1     Running   0          3m7s ③进入边缘容器 kubectl exec -it paddle-serving-dd6d8986c-d89k7 -n baetyl-edge /bin/bash # 进去以后,工作目录为/home λ paddle-serving-dd6d8986c-d89k7 /home  # 查看/home/work目录,检查云端模型是否下发成功 λ paddle-serving-dd6d8986c-d89k7 /home/work cd /home/work/ λ paddle-serving-dd6d8986c-d89k7 /home/work ls script/  yolov3/ ④执行测试命令 # 进入yolov3目录 λ paddle-serving-dd6d8986c-d89k7 /home/work/yolov3 cd /home/work/yolov3/ # 查看内容 λ paddle-serving-dd6d8986c-d89k7 /home/work/yolov3 ls -l total 221M -rw-rw-r-- 1 root root 136K Dec 17 09:21 000000570688.jpg -rw-rw-r-- 1 root root  509 Dec 17 09:21 benchmark_config.yaml -rw-rw-r-- 1 root root 4.2K Dec 17 09:21 benchmark.py -rw-rw-r-- 1 root root 2.1K Dec 17 09:21 benchmark.sh -rw-rw-r-- 1 root root 1.5K Dec 17 09:21 config.yml -rw-rw-r-- 1 root root  621 Dec 17 09:21 label_list.txt -rwxr-xr-x 1 root root 220M Dec 17 09:21 paddle_serving_yolov3_darknet53_270e_coco.zip -rw-rw-r-- 1 root root 1.2K Dec 17 09:21 pipeline_http_client.py drwxr-xr-x 2 root root 4.0K Dec 17 09:26 PipelineServingLogs/ -rw-r--r-- 1 root root   89 Dec 17 09:26 ProcessInfo.json -rw-rw-r-- 1 root root  368 Dec 17 09:21 README_CN.md -rw-rw-r-- 1 root root  374 Dec 17 09:21 README.md drwxr-xr-x 2 root root 4.0K Dec 17 09:21 serving_client/ drwxr-xr-x 2 root root 4.0K Dec 17 09:21 serving_server/ -rw-rw-r-- 1 root root 2.8K Dec 17 09:21 web_service.py λ paddle-serving-dd6d8986c-d89k7 /home/work/yolov3 python3  # 执行客户端测试脚本 pipeline_http_client.py 返回结果如下: {     err_no: 0,     err_msg: ,     key: [bbox_result],     value: ["[{category_id: 0, bbox: [215.16099548339844, 438.1199951171875, 43.29920959472656, 186.94189453125], score: 0.9860591292381287}, {category_id: 0, bbox: [404.882568359375, 463.1432800292969, 50.00750732421875, 174.96109008789062], score: 0.972165584564209}, {category_id: 0, bbox: [259.8436279296875, 458.67169189453125, 47.04876708984375, 154.5758056640625], score: 0.9670743346214294}, {category_id: 0, bbox: [438.247314453125, 491.875, 68.9227294921875, 145.5482177734375], score: 0.9092186689376831}, {category_id: 0, bbox: [156.2906951904297, 505.449951171875, 57.74359130859375, 55.9661865234375], score: 0.7775811553001404}, {category_id: 0, bbox: [28.40601921081543, 451.0614318847656, 27.93486213684082, 113.30917358398438], score: 0.768792986869812}, {category_id: 0, bbox: [297.4198303222656, 511.6090087890625, 59.18255615234375, 76.463134765625], score: 0.7284609079360962}, {category_id: 0, bbox: [498.0811767578125, 504.2102966308594, 35.239501953125, 134.76394653320312], score: 0.6112859845161438}, {category_id: 0, bbox: [522.001708984375, 479.5540466308594, 63.42236328125, 156.11416625976562], score: 0.5191890001296997}, {category_id: 0, bbox: [139.90167236328125, 483.0037841796875, 21.444671630859375, 69.7462158203125], score: 0.43779468536376953}, {category_id: 0, bbox: [91.08878326416016, 494.5179748535156, 27.569290161132812, 55.932159423828125], score: 0.4112253189086914}, {category_id: 0, bbox: [9.615033149719238, 462.5943908691406, 21.810187339782715, 82.98226928710938], score: 0.3453913629055023}, {category_id: 0, bbox: [395.7669372558594, 460.096923828125, 13.82818603515625, 51.9017333984375], score: 0.30560365319252014}, {category_id: 0, bbox: [120.70891571044922, 496.8610534667969, 25.293846130371094, 54.288909912109375], score: 0.21395830810070038}, {category_id: 0, bbox: [595.8244018554688, 466.6758117675781, 6.93212890625, 22.802978515625], score: 0.212965726852417}, {category_id: 0, bbox: [624.6640625, 466.89288330078125, 6.6031494140625, 23.390869140625], score: 0.1309354156255722}, {category_id: 0, bbox: [71.72364807128906, 493.44171142578125, 23.06365966796875, 58.178955078125], score: 0.11486723273992538}, {category_id: 0, bbox: [93.5279769897461, 494.7836608886719, 18.048110961914062, 29.617156982421875], score: 0.0973864197731018}, {category_id: 0, bbox: [633.90625, 466.93377685546875, 5.08349609375, 22.541259765625], score: 0.08928193151950836}, {category_id: 0, bbox: [616.2327880859375, 467.5227966308594, 6.6636962890625, 22.73602294921875], score: 0.07480660825967789}, {category_id: 0, bbox: [330.21514892578125, 460.61785888671875, 14.3568115234375, 50.36322021484375], score: 0.05391114205121994}, {category_id: 0, bbox: [623.5628662109375, 521.3399047851562, 15.6580810546875, 118.66009521484375], score: 0.05177609249949455}, {category_id: 0, bbox: [118.22535705566406, 493.11846923828125, 15.311538696289062, 46.67529296875], score: 0.05106724426150322}, {category_id: 0, bbox: [76.89163970947266, 489.4934997558594, 14.865859985351562, 36.153900146484375], score: 0.0509687103331089}, {category_id: 0, bbox: [612.2092895507812, 466.2706604003906, 6.8411865234375, 24.82183837890625], score: 0.04965047165751457}, {category_id: 0, bbox: [459.98687744140625, 466.3093566894531, 11.68914794921875, 34.41339111328125], score: 0.04907878115773201}, {category_id: 0, bbox: [0.4039268493652344, 462.4938049316406, 10.412893295288086, 61.628326416015625], score: 0.048166826367378235}, {category_id: 0, bbox: [163.0106201171875, 501.29864501953125, 14.077667236328125, 28.6602783203125], score: 0.043710850179195404}, {category_id: 0, bbox: [42.41417694091797, 456.0679626464844, 17.12506103515625, 96.23989868164062], score: 0.043581727892160416}, {category_id: 0, bbox: [124.59736633300781, 495.2655029296875, 14.957061767578125, 29.24896240234375], score: 0.032280560582876205}, {category_id: 0, bbox: [322.8830261230469, 510.5441589355469, 35.19915771484375, 58.528839111328125], score: 0.032096412032842636}, {category_id: 0, bbox: [499.7272644042969, 472.0701599121094, 6.73431396484375, 23.52752685546875], score: 0.03191200643777847}, {category_id: 0, bbox: [635.601318359375, 472.9556579589844, 4.2603759765625, 17.8453369140625], score: 0.03138304129242897}, {category_id: 0, bbox: [13.47295093536377, 509.2365417480469, 17.922499656677246, 59.210113525390625], score: 0.024998517706990242}, {category_id: 0, bbox: [492.8521728515625, 474.7392883300781, 5.19732666015625, 15.8018798828125], score: 0.02452804334461689}, {category_id: 0, bbox: [141.70277404785156, 491.10888671875, 16.059814453125, 34.2940673828125], score: 0.01741969771683216}, {category_id: 0, bbox: [111.90968322753906, 493.1148986816406, 13.242355346679688, 30.584503173828125], score: 0.016763748601078987}, {category_id: 0, bbox: [70.63130950927734, 495.74530029296875, 15.302810668945312, 42.497802734375], score: 0.016103360801935196}, {category_id: 0, bbox: [499.5566711425781, 506.34857177734375, 30.214935302734375, 69.9669189453125], score: 0.014152972027659416}, {category_id: 2, bbox: [500.8828125, 460.91827392578125, 13.79754638671875, 11.3291015625], score: 0.05771809071302414}, {category_id: 2, bbox: [492.967529296875, 461.03411865234375, 16.8121337890625, 11.01202392578125], score: 0.050255682319402695}, {category_id: 2, bbox: [566.1650390625, 461.9089050292969, 14.287353515625, 11.1707763671875], score: 0.04679763689637184}, {category_id: 2, bbox: [582.1019287109375, 463.1806335449219, 11.535888671875, 9.76470947265625], score: 0.03930026665329933}, {category_id: 2, bbox: [573.3811645507812, 463.0304260253906, 15.5157470703125, 9.6693115234375], score: 0.03414313867688179}, {category_id: 2, bbox: [600.5574951171875, 462.50701904296875, 7.7860107421875, 8.21221923828125], score: 0.025939688086509705}, {category_id: 2, bbox: [486.56951904296875, 463.8977966308594, 12.2598876953125, 7.6630859375], score: 0.022135090082883835}, {category_id: 25, bbox: [437.3040466308594, 545.1283569335938, 38.20965576171875, 87.29931640625], score: 0.018933355808258057}, {category_id: 26, bbox: [29.908803939819336, 486.8944396972656, 16.05537223815918, 22.83355712890625], score: 0.04068344458937645}, {category_id: 26, bbox: [581.0633544921875, 620.1477661132812, 32.0316162109375, 18.63525390625], score: 0.039497870951890945}, {category_id: 26, bbox: [385.1318359375, 517.0343017578125, 18.244873046875, 13.5072021484375], score: 0.02217845804989338}, {category_id: 26, bbox: [590.1017456054688, 559.3590698242188, 13.1651611328125, 43.9588623046875], score: 0.015419745817780495}, {category_id: 26, bbox: [582.7347412109375, 560.3289184570312, 26.631103515625, 76.6273193359375], score: 0.014936945401132107}, {category_id: 33, bbox: [460.7890930175781, 336.1373291015625, 17.67572021484375, 23.1480712890625], score: 0.8834899663925171}, {category_id: 33, bbox: [319.202880859375, 214.55738830566406, 142.63299560546875, 70.57722473144531], score: 0.8617939949035645}, {category_id: 33, bbox: [233.26974487304688, 29.542848587036133, 9.237213134765625, 9.067476272583008], score: 0.8452507257461548}, {category_id: 33, bbox: [175.90914916992188, 314.95672607421875, 79.74258422851562, 29.947021484375], score: 0.820819079875946}, {category_id: 33, bbox: [504.2533874511719, 261.376708984375, 18.829742431640625, 24.36407470703125], score: 0.8137103915214539}, {category_id: 33, bbox: [328.5792236328125, 86.0416030883789, 61.03375244140625, 27.46881103515625], score: 0.8071057796478271}, {category_id: 33, bbox: [363.2680358886719, 161.7618865966797, 12.36090087890625, 10.89990234375], score: 0.8044251203536987}, {category_id: 33, bbox: [222.79953002929688, 350.03302001953125, 162.13482666015625, 79.5477294921875], score: 0.7996627688407898}, {category_id: 33, bbox: [279.99066162109375, 124.66069030761719, 45.8681640625, 16.145660400390625], score: 0.7842240333557129}, {category_id: 33, bbox: [98.05622100830078, 419.7298889160156, 65.67034149169922, 62.50732421875], score: 0.7424381971359253}, {category_id: 33, bbox: [242.89645385742188, 166.64027404785156, 20.291900634765625, 14.35076904296875], score: 0.6263655424118042}, {category_id: 33, bbox: [430.3121643066406, 40.18694305419922, 18.87353515625, 19.074172973632812], score: 0.5938690304756165}, {category_id: 33, bbox: [86.46560668945312, 137.0863800048828, 48.230865478515625, 19.82879638671875], score: 0.5937690734863281}, {category_id: 33, bbox: [392.02850341796875, 394.45611572265625, 26.37896728515625, 23.63372802734375], score: 0.5023226141929626}, {category_id: 33, bbox: [271.4128112792969, 299.25018310546875, 149.4326171875, 59.794921875], score: 0.422481894493103}, {category_id: 33, bbox: [282.4754638671875, 281.77496337890625, 164.82354736328125, 56.41583251953125], score: 0.4141545295715332}, {category_id: 33, bbox: [114.94490051269531, 237.0370330810547, 22.510589599609375, 17.687591552734375], score: 0.40582510828971863}, {category_id: 33, bbox: [160.378173828125, 257.062255859375, 10.08685302734375, 8.29095458984375], score: 0.3285631537437439}, {category_id: 33, bbox: [260.0093994140625, 44.60060501098633, 4.9671630859375, 5.313697814941406], score: 0.28955695033073425}, {category_id: 33, bbox: [216.726318359375, 238.36724853515625, 180.0245361328125, 60.68719482421875], score: 0.25094327330589294}, {category_id: 33, bbox: [58.31337356567383, 340.7672424316406, 7.575717926025391, 5.21954345703125], score: 0.2317829728126526}, {category_id: 33, bbox: [2.293954849243164, 424.1985778808594, 17.95143699645996, 10.4171142578125], score: 0.21052710711956024}, {category_id: 33, bbox: [281.1366271972656, 130.51866149902344, 8.10662841796875, 9.679290771484375], score: 0.13495559990406036}, {category_id: 33, bbox: [170.76100158691406, 425.669677734375, 60.928955078125, 52.55987548828125], score: 0.11672469973564148}, {category_id: 33, bbox: [218.16445922851562, 236.66871643066406, 86.7357177734375, 36.82264709472656], score: 0.09928663074970245}, {category_id: 33, bbox: [57.59531021118164, 340.63653564453125, 11.535961151123047, 10.2398681640625], score: 0.09524064511060715}, {category_id: 33, bbox: [83.4229736328125, 300.5054626464844, 4.1660614013671875, 3.51611328125], score: 0.05346690118312836}, {category_id: 33, bbox: [85.83900451660156, 137.0255584716797, 7.1644134521484375, 8.851104736328125], score: 0.044692330062389374}, {category_id: 33, bbox: [412.9825744628906, 38.167327880859375, 32.94921875, 45.059669494628906], score: 0.04101773351430893}, {category_id: 33, bbox: [596.8782958984375, 1.0692591667175293, 35.0404052734375, 10.813299655914307], score: 0.03720707818865776}, {category_id: 33, bbox: [218.40847778320312, 239.14697265625, 37.585540771484375, 23.478668212890625], score: 0.03472490981221199}, {category_id: 33, bbox: [22.163543701171875, 430.1997985839844, 15.829334259033203, 46.72674560546875], score: 0.03383627161383629}, {category_id: 33, bbox: [51.58473205566406, 443.5025939941406, 30.812210083007812, 35.05010986328125], score: 0.028524775058031082}, {category_id: 33, bbox: [436.84979248046875, 541.2200927734375, 41.42523193359375, 93.6231689453125], score: 0.01658524200320244}, {category_id: 33, bbox: [577.9300537109375, 0.0, 54.505859375, 48.904815673828125], score: 0.016126543283462524}, {category_id: 33, bbox: [3.094654083251953, 438.25445556640625, 20.415660858154297, 28.048095703125], score: 0.014082299545407295}, {category_id: 56, bbox: [567.2755126953125, 559.4602661132812, 37.1573486328125, 77.50048828125], score: 0.3802623450756073}, {category_id: 56, bbox: [72.8006820678711, 514.73583984375, 21.915634155273438, 37.716796875], score: 0.08133123815059662}, {category_id: 56, bbox: [508.6803283691406, 559.0682373046875, 93.95669555664062, 78.7860107421875], score: 0.06216099485754967}, {category_id: 56, bbox: [174.71974182128906, 497.610595703125, 17.5482177734375, 22.37078857421875], score: 0.04738868027925491}, {category_id: 56, bbox: [90.97509002685547, 507.92376708984375, 28.04888916015625, 45.3680419921875], score: 0.03899860754609108}, {category_id: 56, bbox: [377.0034484863281, 491.5137023925781, 20.13714599609375, 34.996185302734375], score: 0.0388840027153492}, {category_id: 56, bbox: [503.78839111328125, 566.7881469726562, 28.494873046875, 72.017822265625], score: 0.036751069128513336}, {category_id: 56, bbox: [119.07683563232422, 507.221923828125, 28.098655700683594, 46.0355224609375], score: 0.029802320525050163}, {category_id: 56, bbox: [70.57160186767578, 499.4393310546875, 15.87109375, 51.1988525390625], score: 0.024599188938736916}, {category_id: 56, bbox: [389.9160461425781, 493.0232849121094, 14.80902099609375, 33.048980712890625], score: 0.019945451989769936}, {category_id: 56, bbox: [60.86790466308594, 502.6175537109375, 12.643905639648438, 27.7879638671875], score: 0.018364958465099335}, {category_id: 56, bbox: [529.2908935546875, 566.8236694335938, 40.3153076171875, 71.20458984375], score: 0.01757989637553692}]"],     tensors: [] } 6.2使用postman验证 ①我们知道上述yolov3模型服务的容器内端口是18082,当前我们需要在单独的一台测试机器上使用postman去调用yolov3服务接口,那么就需要将容器内的18082端口映射到宿主机上,我们在云端BIE控制台配置paddle-serving这个服务,添加端口映射,如下图所示: ②下载测试图片dog.jpeg 图片链接:https://bce.bdstatic.com/doc/bce-doc/BIE/dog_831f56a.jpeg ③执行一下命令,将这张图片的base64编码输出到dog.base64文件当中 base64 -i dog.jpeg -o dog.base64 ④组装postman输出参数,如下所示: ⑤postman调用url为http://[ip]:18082/yolov3/prediction,如下图所示: ⑥查看postman返回结果如下,如下图所示: {     "err_no":0,     "err_msg":"",     "key":[         "bbox_result"     ],     "value":[         "[{category_id: 16, bbox: [138.06399536132812, 54.169952392578125, 464.1486511230469, 552.6064147949219], score: 0.9826956987380981}, {category_id: 57, bbox: [142.67298889160156, 29.47320556640625, 401.58738708496094, 564.1134033203125], score: 0.02150958590209484}]"     ],     "tensors":[     ] } ⑦我们看到category_id为16,查看该模型的label_list.txt,我们看到16刚好对应dog。 模型链接地址: https://github.com/PaddlePaddle/Serving/blob/v0.7.0/examples/Pipeline/PaddleDetection/yolov3/label_list.txt *说明:label_list当中的id,从0开始。 基于Paddle Serving + BIE的 迁移扩展能力 通过BIE部署Paddle Serving的主要思路: 1.文中所用到的paddle-serving应用和运行脚本是通用的,若想运行不同模型,只需替换下发模型文件即可。 2.GPU镜像构建逻辑与CPU镜像一致,可参考官网文档,本文统一使用CPU镜像。 Paddle Serving不断拓展异构硬件和边缘端部署能力,将与百度智能云智能边缘框架BIE深度合作。智能边缘框架BIE凭借其核心技术优势已在各领域落地部署中提供解决方案,未来,BIE将携手更多开发者共创智能边缘发展新机遇,推动边缘计算平台稳步向前,助力众多行业实现智慧化转型。 Paddle Serving即将发布v0.8.0版本将提供更多硬件上AI服务化部署,如华为昇腾310、昇腾910、海光DCU、以及英伟达Jetson。对服务化部署感兴趣的小伙伴欢迎来Paddle Serving的github了解:https://github.com/PaddlePaddle/Serving BIE技术交流区:
经验分享 程序员 微信小程序 职场和发展