如何做嵌入式人工智能

今日头条

1135人已加入

描述

如何做嵌入式人工智能

来源:PerfXLab澎峰科技

澎峰科技是中科院的技术团队,做过国际知名的开源矩阵计算库OpenBLAS,获得过中国计算机学会科技进步二等奖、中国科学院杰出科技成就奖,是国家高新技术企业、中关村高科技企业、中关村金种子企业。

什么叫嵌入式人工智能,或者说端上智能呢?其实并不是在嵌入或在设备端来训练深度学习模型,在部署阶段,我们的模型在服务器内训练,但是在实际使用的过程中,是在云端做部署,还是在端上设备做部署,两者会有很大的差异。大家见的比较多的是在云端做部署,比如很多API通过网络的方式上传图片,在云上计算并返回结果。使用嵌入式端部署的话,模型可能传输到了手机上,在此基础上可以做图像识别和处理功能,另外也可以传输到无人机上或智能摄像头上。

以抖音为例,里面有个美颜直播功能,当人脸动的时候,美颜的画像其实一直跟着人脸动,同时也有很多特效,这个就是嵌入式非常典型的应用。那么为什么不是拍好一段视频上传到云端,再做美颜呢?因为如果上传到云端再处理,交互性会非常差,无法让用户实时看到效果,成本也比较高。因此,所有的效果全部在手机端完成,交互性会更好。这里主要用到了三个算法:一是人脸检测,先找到人的脸;二是识别人脸关键点,找到人的鼻子在哪儿,眼睛在哪儿;三是做一些贴图,比如眼镜或小猫的贴图,不管人脸怎么动,甚至是旋转,贴图都可以时刻贴合人脸。

但是真正做嵌入式系统的时候会遇到一些挑战,最主要的挑战是运行速度。有些模型太大,是很难传输到手机上的,通常好几秒才能处理一张图像,或者功耗太高了,可能手机录一会儿就没电了,这些都是我们遇到过的挑战。要应对这种挑战,一般来说要从硬件、软件、算法三个方面共同努力,才能把嵌入式AI部署好。

介绍一下高性价比ARM SoC AI方案。以人脸识别为例,高性价比人脸识别设备支持本地2万张人脸库,联网抓拍模式可支持5万人脸库,识别时间在0.2秒以内。大家知道Caffe、Tensorflow框架,很多大公司做了很多服务器的训练框架,用来训练模型,但是训练完去部署的时候,如果还是照搬安装在手机上,其实非常耗资源,也非常笨拙。

现在有专门针对嵌入式平台的前向推理框架,前向推理框架的主要功能有五个方面。一是设备管理,一般来说嵌入式系统都是异构系统,不只是CPU,可能还有GPU、IPG或DSP,手机芯片里面有DSP,也可以用DSP做深度学习计算。二是除了异构性管理以外,还涉及模型管理。三是内存管理和存储格式,需要考虑以内存占用优先还是以性能优先。手机的内存通常很充足,但是一些更小的嵌入式设备、IoT级别的设备,内存非常受限,那就需要重点考虑。四是层级融合,从性能优化的角度来提升速度。五是实现方法选择。比如卷积,卷积是AI操作中非常重要的一部分操作,怎么做卷积最快有很多门道,卷积的实现方法有三到四种,要求底层的优化与上层的框架实现互相配合,而且要针对所调用的模型,根据效果做试配。可以通过性能评测看到结果,很多平台上都可以做性能评测。

下面看一下高性能FPGA AI方案。如果模型比较大,但又要求速度比较快,那么该如何去部署?典型的做法是用FPGA的AI来实现。我们支持两种常见的SoC架构和FPGA的开发生态。硬件部分结合软件工具,可以将训练好的模型经过量化、压缩等操作,部署在AI加速处理架构上,实现较高效的执行。AI加速处理架构主要分为PS端与PL端的两部分设计,实质上是用状态机控制模型,使用PE实现具体的卷积操作,从而获得比较好的性能。

使用该方案能得到比较快的速度,平台上的速度可达300MHz,7100芯片上的速度可达160M Hz,基本上都达到了每秒处理60帧的速度,同时DSP单元的使用率达到了95%。这项技术可以应用在无人机上,而且未来还可以形成定制芯片。

我们不仅要将硬件和软件结合起来做底层优化,在算法模型这一层也有很多工作要做。首先,针对嵌入式AI的深度学习模型,要专门做优化。其次,我们要做模型压缩功能,最常用的方法是蒸馏法。蒸馏法是指我们先在服务器上训练一个比较复杂的模型,再在此基础上训练一个小的模型,相当于一个老师教一个学生,这样学习来的小模型可以具备和大模型接近的性能效果,精度也更高,并且大大节省了计算资源。然后,我们要做量化。最后,我们持续研发新型的网络结构,从而进一步降低计算量。(根据演讲内容整理,未经本人审核)

关注微信公众号:人工智能技术与咨询。了解更多咨询!

审核编辑:符乾江

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分