本文做者:天工智能物联网javascript
在人工智能领域,深度学习表明了当下较为火热的机器学习技术,深受学术界与产业界重视。java
因为深度学习模型的高准确率与高可靠性,深度学习技术已在计算机视觉、语音识别与天然语言处理领域取得了普遍的成功应用。深度学习模型也如雨后春笋般涌现,而且愈来愈多的模型被开源。python
在最先期,受限于深度学习模型对于算力的需求,模型大可能是”云端训练、云端推理“。然而”云端推理“模式须要将大量的数据(如图像和视频数据)经过高延迟、带宽波动的广域网从边缘端传输至云端。在离线或者低延时要求的场景下,没法知足实际需求。json
随着AI芯片的兴起,边缘算力的逐步加强,将模型推理下放到边缘侧已经成为当前的一大主流趋势。api
虽然算力支持在边缘进行模型推断,可是模型的使用复杂度与门槛依然很高,为了调用模型须要编写许多代码,为了适配端侧不一样的芯片与操做系统,还须要对原始模型不断进行修改、优化、调参等操做。浏览器
为此,不少研究人员都在研究如何下降模型的使用门槛, 让模型的应用者专一于业务,将模型作成服务同样按需调用,实现边缘侧的model as a service。网络
百度智能边缘+EasyEdge集成就很好的解决了这个问题。 框架
EasyEdge是什么?机器学习
EasyEdge是百度基于Paddle Mobile研发的端计算模型生成平台,可以将原始深度学习模型快速生成适配于边缘节点和智能终端的端侧模型。ionic
EasyEdge支持模型信息以下:
支持的模型框架包括 :Caffe (ssd)、PyTorch (0.4.0) 、TensorFlow (1.13)、PaddlePaddle (1.4.1)
支持的模型网络包括:VGG1六、InceptionV3/V四、MobilenetV一、MobilenetV1-SSD、RestnetV1等13种
支持的AI加速芯片包括:通用ARM芯片、通用x86芯片、英伟达GPU、高通Snapdragon GPU/DSP、英特尔Movidius VPU、华为HiSilicon NPU、苹果A-Bionic
BIE是什么?
百度智能边缘(Baidu IntelliEdge)旨在将云计算能力拓展至用户现场,提供能够临时离线、低延时的计算服务,包括设备接入、数据处理、数据上报、函数计算、AI 推断等功能。
BIE总体包括边缘本地运行包和云端管理套件两部分:
本地运行包:本地运行包包含百度开放边缘框架BAETYL,以及基于BAETYL框架开放的边缘应用,实现将云计算能力延伸至边缘,提供离线自治、低延时的计算服务。
云端管理套件 :主要负责边缘设备节点的管理,包含设备节点的监控、注册管理、应用的编排与升级等功能。除此以外,云端套件还负责与百度智能云的其余服务进行集成对接,包括函数计算CFC,流式计算BSC,端侧模型生成框架EasyEdge等。实现”云管理、边运行、边云一体“的总体解决方案。
BIE为何要与EasyEdge集成?
BIE与EasyEdge集成,是百度智能云践行“ABC Anywhere”战略的重要一步。
EasyEdge为BIE提供了边缘模型适配与模型加速的能力,让众多的模型成为能够运行在BIE边缘框架上的一种服务,实现Model as a Service。
经过BIE与EasyEdge的集成,为用户提供了“模型适配——>模型下发——>模型运行”的全链路服务。
尝试此功能 若是要尝试此项功能,能够登陆智能云控制台,具体操做指南参考: https://cloud.baidu.com/doc/BIE/s/Tk2n4o50o
BIE与EasyEdge集成的效果
在MobileNet-SSD-Caffe物体检测模型以服务形式运行在边缘节点设备上之后,咱们能够经过两种方式进行检验,一种是浏览器校验,还有一种是API校验。
浏览器校验
经过浏览器打开物体检测服务的控制台,访问地址为:http://[边缘核心设备IP地址]:8088/ 。若是可以看到以下界面,则表示服务正常运行。
接下来能够上传样例图片校验模型效果,如下为几个样例结果:
API校验
MobileNet-SSD-Caffe 自己做为一个容器应用运行在边缘核心当中,它同时对外提供API访问接口,支持被其余应用调用,并返回物体检测结果。
下面经过python代码调用接口进行示例说明:
· 拷贝下面的python代码保存至本地,命名为test_MobileNet_SSD_api.py
1 import requests 2 with open('./1.jpg', 'rb') as f: img = f.read() 3 # params is GET params, data is POST Body 4 result = requests.post('http://[边缘核心设备IP地址]:8088/', params={'threshold': 0.1},data=img).json() 5 print result
· 下载图片 1.jpg 保存至与test_MobileNet_SSD_api.py同目录下。
· 执行test_MobileNet_SSD_api.py
python test_MobileNet_SSD_api.py
· 查看接口返回结果为以下JSON
{ "error_code": 0, "cost_ms": 179, "results": [ { "index": 8, "confidence": 0.9999642372131348, "y2": 0.9531263113021851, "label": "cat", "y1": 0.0014175414107739925, "x2": 0.9970248937606812, "x1": 0.0014758188044652343 } ] }
经过上述返回结果,咱们能够知道该物体检测模型检测到的物体是cat,可信度为0.999964≈1。
本文做者徐伟,百度智能云高级产品经理。