视频大数据作为摄像头等硬件的普及与人工智能算法飞速发展相结合的产物,近年来的发展得到了人们的广泛关注。计算机视觉作为视频大数据分析的一个重要环节,特别是人工智能和深度学习的算法在计算机视觉更广泛的应用,使计算机视觉这几年热度一直不减。
本文我们从计算机视觉的智能化前端去思考,这里的智能化前端指智能硬件、移动设备等轻量级的硬件,以区别于云端服务器级别的设备。我们一直认为,市场和实际的应用是决定一个产业能否发展的先决条件,再从工程技术的角度去分析是否满足实际应用场景;同时工程技术的成熟,又会促进市场和实际应用、商业模式的发展。因此,本文主要从市场/应用、算法和硬件三个维度去探讨。当然由于本人知识储备尚且有不足,希望能抛砖引玉,借此与各算法、硬件的产业界专家,以及行业研究者做更深入的探讨。
一、行业与应用
如上次文章的阐述,我们一直从全产业链、竞争格局、技术发展趋势、应用导向和市场空间5个维度,来分析行业发展的机会。
计算机视觉作为一种人工智能的基础技术应用,使用场景多样,市场潜力巨大。其中,人脸识别和视频监控作为计算机视觉的重要应用领域,2015年市场容量已达十亿和百亿级别。随着计算机视觉与传统行业、商业联系越来越紧密,未来更具有市场空间。
从计算机视觉的产业链来看,包括了基础支撑层、技术提供层、以及场景应用层。从产业链的厂商来看,包括了侧重于算法的Google、Microsoft、facebook、BAT等互联网公司,Intel、Nvidia等半导体公司,海康、大华等传统公司,也包括旷视、商汤、依图等创业公司。从竞争的格局来看,由于Google、微软等互联网巨头对算法等经常做开源算法,初创企业在通用层面很难以算法来保持竞争优势,而是必须结合特定的应用场景,采用软硬件结合的方式,深耕细分垂直市场,更容易保持持续性的优势。
从技术发展趋势来看,由于基于人工智能的深度学习的广泛应用,计算机视觉的准确度和识别率已经超过人眼,当然这是在服务器端硬件处理能力、并行计算能力,深度学习算法、以及海量视频图像数据等因素的驱动下。但是随着智能前端芯片的处理能力越来越强,我们希望看到越来越多的计算机视觉处理部分能放到前端来处理,无疑这意味着失去了以Hadoop大数据并行计算的优势,同时由于硬件处理能力减弱,我们必须对整个视觉模型进行裁减,如把20多层的深度神经网络减少到7层,可能要先在服务器上进行模型训练,再以先验的阈值对前端进行巧妙的设置,同时要充分考虑到精确度、能耗、吞吐量/延迟性以及成本,这无疑对硬件与算法提出了挑战。
DSP的全称为Digital Signal Process,即数字信号处理技术,目前全球最大的DSP芯片厂商是TI,最大的DSP IP厂商是CEVA。DSP芯片被广泛用于自动控制、图像处理、通信技术、网络设备、仪器仪表和家电等领域。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速地实现各种数字信号处理算法,如数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。
DSP天然拥有处理计算机视觉算法的优势。近期Inuitive已经取得CEVA-XM4智慧视觉DSP的授权许可,并且也已经部署在其下一代的AR/VR 和电脑视觉SoC元件NU4000之中。Inuitive将利用CEVA-XM4来运行复杂的即时深度感测、特征跟踪、目标识别、深度学习和其它以各种行动设备为目标的视觉相关之演算法,这些行动设备包括扩增实境和虚拟实境头戴耳机、无人机、消费机器人、360度相机和深度感测器等。NU3000以第三代的CEVA-MM3101图像和视觉DSP来提供立体视觉功能,现在是Google Project Tango生态系统中的一部分,开发人员能够利用它来开发需要即时深度产生、映射、定位、导航和其它复杂信号处理演算法的应用。
CEVA ADK包括一个可简化软体发展和整合工作的安卓多媒体框架(AMF)、一套先进的软体发展工具和一系列专为这些DSP而优化的软体产品及程式库。针对以深度学习为目标的嵌入式系统,CEVA深层类神经网路(Deep Neural Network,CDNN)即时类神经网路软体框架简化机器学习部署,功耗远远低于基于先进GPU的系统。
我认为在机器视觉的智能化前端,DSP会有更广泛的应用,甚至不亚于GPU。
最近有报道,亚马逊(AWS)宣布将通过云交付模式提供高端 Xilinx FPGA,首先提供开发者预览模式,然后使用更高级的工具进行分支,以帮助新用户启用和调试 FPGA 加速。基于FPGA的深度学习算法越来越受重视。不仅在云端,目前基于FPGA的计算机视觉的智能化前端应用也很广,包括基于FPGA的视觉ADAS的应用,图形图像视频识别等方面。由于FPGA是采用硬件描述语言如Verilog、VHDL等,与我们通常理解的软件不一样,硬件具有时序概念,很适合同步运算。拿高端的来说,3000多个固定乘法器,拿数字逻辑还能搭3000个,最快能到接近300mhz, 也就是1800g这个量级。在实时性、流处理方面都有优势,从渠道的反馈情况,在功耗性能比上,优于GPU。
最近在看一本书,《FPGA前沿:可重构计算的新应用》,里面有关于FPGA在新的应用领域的探讨,推荐大家看一下。诚如书中所言,目前FPGA方面要解决好易开发的问题,如采用OpenCL建立通用的API层,便于客户的二次开发。在这一块,我们会一直跟踪Xilinx及其合作伙伴,在创建基于FPGA的各种深度学习包括机器视觉开发库上的进展。
二、智能前端算法
计算机视觉是指用计算机来模拟人的视觉系统,实现人的视觉功能,以适应、理解外界环境和控制自身的运动。概括的说,视觉系统主要解决的是物体识别、物体形状和方位确认以及物体运动判断这三个问题。从技术上来说,主要分为目标检测、目标识别、行为识别。
关于计算机视觉上的算法进展,在2010年,ImageNet 创建,提供了一个真正大规模有标注的图像数据集,在千万图像量级,有上千图像类别。这使图像分析技术开始有明显提高。2012年,深度神经网络被成功用于ImageNet图像分类年度竞赛,将其性能大幅度提升,展示了深度神经网络对视觉研究的极大潜能,也激起了视觉研究的新高潮,让人们看到了计算机视觉实用化的希望。短短几年后的今天,深度神经网络技术发展迅速,在ImageNet图像分类上的性能已超过人类,人们研究的重点也从图像分类转移到图像物体语义分割等更细更复杂的任务。在深度神经网络中,卷积神经网络(Convolutional Neural Network,简称CNN)是参考人的视觉形成规律所构建的,因此常常用于图像识别。
在人工智能、机器学习、人工神经网络、深度神经网络、监督学习、无监督学习等等概念方面,下面的图很好的解释了彼此之间的关系,推荐给大家。
上面是目前较常用的开源算法。对本文来说,我们关注的是计算机视觉的智能前端化的算法,所以我们关注最近谷歌开源深度学习框架 TensorFlow 发布了完整的1.0版本,使得在普通智能手机上运行机器学习,特别是深度学习程序成为可能。 我们更关注这些算法,包括深度学习的算法,在智能化前端设备上的运行,它可能需要对算法进行裁减,那会不会影响算法模型的收敛性、精确度、延迟等问题,是否因为模型的修改要重新训练。最先进的 DNNs 所耗费的能量比其他形式的嵌入处理(比如视频压缩)要高出几个数量级,如果运用在嵌入式的前端,对功耗有多大程度的影响。针对特定场景的应用,结合哪些硬件处理芯片和算法模型,就能很好的应用,这些问题,我们没有第一手资料,所以如果大家能做分享,我们非常感兴趣。
我们在对待这个领域的态度,一直秉持应用为王的理念,无论是以前做工程师,现在看创业类的项目,初心不改。
同时,安创加速器一直依托Arm生态圈,理解产业和技术的发展趋势;同时,依托创业投资圈,理解投融资动态;并通过自身的行业研究,加深行业的理解。
作者:冯棕煦