百度智能边缘集成EasyEdge,快速实现边缘AI模型推断

余生长醉 提交于 2020-04-06 08:37:21

本文作者:天工智能物联网

在人工智能领域,深度学习代表了当下较为火热的机器学习技术,深受学术界与产业界重视。

 

由于深度学习模型的高准确率与高可靠性,深度学习技术已在计算机视觉、语音识别与自然语言处理领域取得了广泛的成功应用。深度学习模型也如雨后春笋般涌现,并且越来越多的模型被开源。

 

在最早期,受限于深度学习模型对于算力的需求,模型大多是”云端训练、云端推理“。然而”云端推理“模式需要将大量的数据(如图像和视频数据)通过高延迟、带宽波动的广域网从边缘端传输至云端。在离线或者低延时要求的场景下,无法满足实际需求。

 

随着AI芯片的兴起,边缘算力的逐步增强,将模型推理下放到边缘侧已经成为当前的一大主流趋势。

 

虽然算力支持在边缘进行模型推断,但是模型的使用复杂度与门槛依然很高,为了调用模型需要编写许多代码,为了适配端侧不同的芯片与操作系统,还需要对原始模型不断进行修改、优化、调参等操作。

 

为此,很多研究人员都在研究如何降低模型的使用门槛, 让模型的应用者专注于业务,将模型做成服务一样按需调用,实现边缘侧的model as a service。

 

百度智能边缘+EasyEdge集成就很好的解决了这个问题。                                                        

 

                                                             EasyEdge是什么?

 

EasyEdge是百度基于Paddle Mobile研发的端计算模型生成平台,能够将原始深度学习模型快速生成适配于边缘节点和智能终端的端侧模型。

 

EasyEdge支持模型信息如下:

 

支持的模型框架包括 Caffe (ssd)、PyTorch (0.4.0) 、TensorFlow (1.13)、PaddlePaddle (1.4.1)

 

支持的模型网络包括:VGG16、InceptionV3/V4、MobilenetV1、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。

 

本文作者徐伟,百度智能云高级产品经理。

原文链接地址:https://developer.baidu.com/topic/show/290501

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!