专访中科创达王璠:怎样做好嵌入式人工智能的算法开发?

简介:

目前在人工智能领域,不管是学术圈还是工业圈,大家都认同一个趋势,那就是在很多应用场景上计算需要落地到设备上,让设备拥有智能化——即嵌入式的AI,这个是人工智能领域新开辟出的一个分支。

 中科创达技术总监王璠坚定的对雷锋网说。

在近日(4月28日)的北京GMIC大会新技术演示Show上,王璠向外界展示了中科创达在嵌入式人工智能方面所做的工作。这位百度出身的90后的技术总监,目前带领着一支30人的 ThunderView 技术团队专注于嵌入式AI的算法研究。我们现在做的工作是将深度学习放在嵌入式设备上,王璠进一步解释道。

专访中科创达王璠:怎样做好嵌入式人工智能的算法开发?

↑ 王璠

那么什么是嵌入式 AI 呢?

据雷锋网了解,所谓嵌入式AI,就是设备无须联网通过云端数据中心进行大规模计算去实现人工智能,而是在本地计算,在不联网的情况下就可以做实时的环境感知、人机交互、决策控制。

谈及嵌入式AI和云端计算的AI的区别,王璠告诉雷锋网,对于一般的AI系统,数据可以在服务器端进行计算,人们往往会通过增加模型的大小、网络的深度,调用尽可能多的计算资源,以期得到更加精确的计算结果。而对于嵌入式AI来说,就需要反其道而行之了,王璠总结道,云端计算的AI致力于如何更好的解决问题,而嵌入式的AI则致力于如何更加经济的解决问题。

嵌入式AI的应用场景有哪些?

对于嵌入式AI的应用场景,王璠表示,云端计算虽然精确度高,但并不是所有的场景都适合,比如:

  • 辅助驾驶或者自动驾驶系统,如果在云端计算,设备端采集到数据后上传,计算完成后再返回终端,这样会不可避免的带来一定的延时,而在驾驶的场景中,这种延时意味着危险系数的提高。

  • 数据安全,比如家里安装了一个监控摄像头,用来关注老人和孩子的安全,上传到云端的计算也意味着隐私被泄露的风险提升。

  • 脱机,虽然现在通信技术发展的很快,但是仍然会碰到在地下停车场、商场里没有信号的情况,这时候就不能指望云端计算有很好的用户体验了。

所以,嵌入式的人工智能还是有很大的市场需求的。

同样是做嵌入式的人工智能,地平线CEO余凯曾经说过,嵌入式AI的应用场景地平线看好三个方向:安防、智能家庭、智能驾驶。对此,王璠也表示赞同,同时表示这三个方向在实现难度上也是逐渐递增的。

从算法方面来看,目前ThunderView算法解决方案包括深度学习算法、算法优化、算法集成三个部分。王璠提到,深度学习算法和算法优化这两个部分在执行过程中是高度耦合在一起的,同时算法优化部分的工作非常重要,难度也最大。目前他们已经在图像处理、机器视觉等领域取得了一些成果,王璠告诉雷锋网:

在2017年的国际消费类电子产品展览会(CES)及世界移动通信大会(MWC)上,我们团队携手高通公司在高通展台上展示了我们的物体识别及智能拍照引导算法。这些算法独立运行在高通的便携设备上,支持单机运行,不需要联网。实时识别物体,实时对用户的拍照行为进行引导。


也是在今年的MWC上,我们联合ARM公司在ARM展台展示了食品识别及热量估算的算法。利用在ARM设备上的深度学习引擎,我们在ARM双摄设备上展示了食品识别和热量估算的移动应用程序。

专访中科创达王璠:怎样做好嵌入式人工智能的算法开发?

↑ MWC2017高通展台展示的ThunderView 算法技术

因为对于深度学习的网络模型而言,如果一个应用场景优化的比较好的话,是可以将其适配到不同的任务中的。所以目前我们的选择是先把基本场景做好,然后再将技术推广至不同的领域。比如现在和高通的合作是在检测方面,和ARM的合作是在分割和识别方面,而我们的目标是要在每一个领域至少做到业界 state of the art 的水平,王璠信心满满的告诉雷锋网(公众号:雷锋网)

那么如何更加经济的用嵌入式AI解决问题呢?

王璠表示,嵌入式设备的计算资源有限,虽然移动芯片的计算能力突飞猛进,拿现在能力最强的高通骁龙835为例,它的单精浮点运算性能为630GFLOPS,比起2000年前后的超算,已经可以进入前100了。但是比起现在PC端的Tesla P100,其单精浮点运算性能可达10TFLOPS,仍有十几倍的差距。这就意味着嵌入式AI和PC端的玩法将完全不同。

专访中科创达王璠:怎样做好嵌入式人工智能的算法开发?

一般来说嵌入式的开发层级从上到下可以分为:应用层(Application),算法层(AI Algorithms),操作系统层(OS),驱动层以及芯片层。由于移动芯片计算能力的限制,嵌入式人工智能除了需要优化算法层之外,还需要关注底层驱动和操作系统的优化——这就需要算法团队不仅在操作系统领域里经验丰富,还需要和芯片厂商有紧密的合作。

同时,对于嵌入式,用户对功耗和发热等性能要求又极为敏感。所以王璠表示,综合这些因素后,现阶段我们做嵌入式的计算必须要有高效、经济的算法。而要达到这个目标,则需要从硬件和软件两方面着手。

硬件

对于中科创达,硬件是基于高通、ARM这些厂商的芯片。不仅如此,王璠提到,他们在技术层面的合作已非常深入,目前的合作方式为硬件厂商开发加速引擎,并将芯片提前提供给中科创达算法团队来开发技术,这个过程中硬件厂商会基于算法团队提出的一些意见来改进引擎。王璠举了个例子,中科创达在MWC2017上和高通合作系统,高通在硬件优化上面提供了很大的帮助,他们内部开发了一个完全针对与深度学习算法的加速引擎,使运算获得了5倍左右速度的提升。一个好的引擎,可以让AI系统落地到嵌入式设备上取得事半功倍的效果。

软件

软件方面则需要更加经济的计算模型,在保证准确率的前提下,尽量减少计算量。

首先是一个经济的网络设计。

用深度学习的方法来处理AI,很多时候是一个搭积木的过程。随着现在人工智能方面开源的程度越来越大,从网上能得到的公开资源诸如文章、网络结构、评测、训练好的模型等等都很多,善用这些资源,把各模块嵌到网络里面,达到既满足你当前的需求,又具有更好效果的网络。

第二,从繁入简。传统的AI的算法,都是在一个很庞大的集群来运行的。在这种情况下,网络的大小可能到几百兆,甚至几个G,速度也比较慢。假如要放到嵌入式上,就需要从繁入简。这里有两个方法:

  • 一个是老师-学生模型,设计一个小网络,从原有的复杂网络里面学习它的知识。典型的方案是 Hinton 提出的模型蒸馏,包括现在很多的半监督学习也会用类似的方式来做。这是特别有效的缩减网络规模的方式。

  • 另外一点就是裁减和近似。这里的关键在于缩减之后,很可能会降低性能,这时就需要算法工程师需要做出平衡和取舍了,什么样的程度才可以在满足当前需求的同时达到最佳的效果。

第三点,适用场景。对于不同的任务场景,最优的网络设计是不一样的。尤其在嵌入式上,需要尽可能的让运行速度更快。测试集和用户实际使用场景是不一样的,所以在模型设计好后还需要根据用户可能碰到的实际情况做适配。

专访中科创达王璠:怎样做好嵌入式人工智能的算法开发?

↑ MWC2017ARM展台展示的ThunderView 算法技术

第四点是共享参数。尽可能的用同一套参数来完成多种不同的任务。比如在MWC上,创达和ARM联合做的一个技术,主要是做食物的识别和卡路里的计算。我们需要完成的任务,降到算法层级来说,需要第一知道是什么食物,第二要知道这个食物在哪里,轮廓是多大,知道体积后才能估计它有多少卡路里。在做食物分类的时候,在深度学习的参数内部已经包含了很多关于这个食物的信息。当最后把分割任务加进去的时候,实际上并没有浪费任何一个多余的参数,只是最后抽出来一些特征,做一个简单的拟合,就可以得到一个比较好的效果。

最后,王璠总结道,要想嵌入式人工智能玩得好,必须做到软硬件的充分结合。

本文作者:谷磊

本文转自雷锋网禁止二次转载,原文链接

相关文章
|
1月前
|
算法 C语言 C++
嵌入式PID算法理论+实践分析
嵌入式PID算法理论+实践分析
26 0
|
1月前
|
机器学习/深度学习 人工智能 搜索推荐
未来人工智能在后端开发中的应用前景
随着人工智能技术的不断发展,后端开发领域也迎来了新的机遇与挑战。本文探讨了人工智能在后端开发中的应用前景,分析了其对传统开发模式的影响和未来发展趋势。
|
1月前
|
人工智能 运维 数据库
未来的后端开发:人工智能与云计算的融合
【2月更文挑战第10天】 传统的后端开发一直依赖于对数据库、服务器和网络等底层技术的熟练运用,然而随着人工智能和云计算技术的飞速发展,未来的后端开发方向也将发生深刻的变革。本文将探讨人工智能与云计算在后端开发中的应用前景,以及它们将如何重塑后端开发的方式和手段。
|
28天前
|
存储 算法 Java
金石推荐 | 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)(一)
金石推荐 | 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)
33 1
|
1月前
|
机器学习/深度学习 分布式计算 算法
大模型开发:你如何确定使用哪种机器学习算法?
在大型机器学习模型开发中,选择算法是关键。首先,明确问题类型(如回归、分类、聚类等)。其次,考虑数据规模、特征数量和类型、分布和结构,以判断适合的算法。再者,评估性能要求(准确性、速度、可解释性)和资源限制(计算资源、内存)。同时,利用领域知识和正则化来选择模型。最后,通过实验验证和模型比较进行优化。此过程涉及迭代和业务需求的技术权衡。
|
1月前
|
机器学习/深度学习 算法 开发工具
视觉智能平台常见问题之其他算法定制化开发如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
29 1
|
1月前
|
存储 算法 PHP
开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储在一个整形数组里?
开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储在一个整形数组里?
16 1
开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储在一个整形数组里?
|
1月前
|
存储 人工智能 固态存储
掌握未来:打造适用于AI人工智能开发的理想电脑配置指南
在当下技术快速发展的时代,人工智能(Artificial Intelligence, AI)已然成为大势所趋。从语音助手到自动驾驶汽车,AI的应用日渐普及。作为计算机科学的一个分支,AI侧重于创造能够执行各种复杂任务的智能机器。为了进行有效的AI研发,一个强大的电脑配置是必不可少的。本文旨在为AI开发者提供一份详尽的电脑配置建议,帮助您在这个时代浪潮中占得先机。
|
2月前
|
算法 Java Android开发
安卓逆向 -- NDK开发实现MD5算法
安卓逆向 -- NDK开发实现MD5算法
34 0
|
2月前
|
机器学习/深度学习 人工智能 安全
探索未来:人工智能在后端开发中的应用前景
【2月更文挑战第5天】随着人工智能技术的不断进步,后端开发领域也迎来了新的机遇与挑战。本文将探讨人工智能在后端开发中的应用前景,从数据处理、系统优化到安全性保障等方面展开讨论,展望未来人工智能与后端开发的紧密结合将为我们带来怎样的变革。

热门文章

最新文章