为什么图像处理如此重要?在一阶近似条件下,所有数据都可以被视为两种格式,非图像即视频。当然,GPS这样的系统也会生成数据,但是它的数据量微不足道,处理复杂度也较低。我在《Chris Rowen谈视觉、创新和深度学习的爆炸》一文中提及过,Chris曾天真地想将一台廉价H.264摄像机的原始数据上传至云端处理,先不提接近4000美元的费用,仅处理一台摄像机的数据就要至少3年。这种事没人会真正去做,上传前将摄像机的原始数据在本地转化为有用的信息成为必要条件。
如果你关注过任何智能手机新品的宣传语,应该就能注意到关于摄像头和图像处理的信息不绝于耳。为什么会这样?因为相较于传统手机,智能手机的最大特色就在于摄像头,大家现在都对解析度和帧率、3200万像素、4K视频、每秒120甚至是240帧(fps)等等话题喜闻乐道,上次听人讨论通话质量似乎已经是上辈子的事情。
数据处理的另一大趋势是多传感器(2个甚至3个)的应用。上图中的蓝色数据条代表不断衰落的单传感器后置摄像头,红色代表双传感器,而灰色则是刚刚起步的三重传感器(用于自 拍和视频电话等短距离应用的前置摄像头依然采用单传感器)。搭载多传感器需要更强大的视觉处理能力,不仅仅因为像素的增加,而是因为多个传感器生成的图像需要融合为一张图像或一段视频流。
高解析度、多传感器和高性能图像处理技术的结合让以下复杂消耗大量资源的应用得以实现:
多光圈图像融合与变焦
多帧:超高解析度、低亮度、HDR
视频美化
3D扫描与重建
3D身份验证与识别
3D地图与导航
景物分割与理解
华为Mate 10与海思麒麟970
深度解剖现代智能手机的摄像头及其他组件可以提供深具建设性的参考。华为Mate10、Mate 10 Pro和华为Mate 10保时捷设计版是同一系列的4.5G智能手机,支持LTE Cat.18,实现1.2Gbps峰值下载速率。Mate 10是新一代的智能手机,至少已经在一定程度上,目标成为用户的唯一运算设备。它采用可以连接显示器的USB-C接口(详见《控制一切设备的连接方式:USB-C》),直接连接支持该功能的显示器;或者通过HDMI适配器实现连接。为了成为用户唯一运算设备,它的计算能力必须非常强大,拥有一个8核CPU和一个120核GPU的Mate 10的确实至名归。不仅如此,它还搭载了莱卡镜头、20MP mono和12MP RGB传感器,以及f/1.6光圈组成的超高端摄像头。
海思是华为的无晶圆半导体子公司,为华为 Mate 10系列手机提供海思麒麟970片上系统(SoC)。该SoC采用10nm制程工艺,芯片集成了55亿个晶体管。图像处理方面则采用Tensilica Vision P6 DSP。华为Mate 10是首批搭载神经处理单元的手机之一,这也是面向未来的又一尖端技术。还有一项与视觉无关的技术,HiFi Audio搭载了Tensilica音频处理器,其调制解调器采用的同样是Tensilica系列处理器。
任何摄像头的图像处理流程都始于1-3个传感器,通常是2个。传感器收集大量原始图像数据,经过繁杂的处理,生成我们熟知的照片或视频;之后还需要对画面进行继续分析,如识别被摄人物或手势。上图是标准的图像处理路径,从左往右依次为图像传感器、基础图像处理和后处理。取决于所需的后处理类型,又可分为高强度图像处理或利用神经网络检测被摄内容。
这项技术仍在起步阶段,但增强现实(AR)技术正在成为视觉处理的另一大助力。AR技术需要被摄内容以及地点的精确识别,从而实现标签或指令(就像Pokémon Go 游戏)等额外信息的叠加。谷歌ARCore和苹果ARKit等工具的出现让AR应用开发更加可行;然而在这些高级应用对图像进行运用之前仍然需要大量的图像处理工作。
Vision P5 DSP、Vision P6 DSP和Vision C5 DSP
Cadence拥有P5和P6两款用于纯图像处理的Tensilica处理器。P5用于图像处理,采用64个MAC和一个可选FPU;P6的性能更高,采用256个MAC,性能较P5最多提高四倍。P6采用16比特FP 的32路SIMD矢量FPU,显著简化GPU算法的移植。
C5 DSP为实现神经网络而生,可以选配1024个8-bit MAC或512个16-bitMAC。C5 DSP采用4路VLIW及128路8-bit SIMD架构,集成DMA和双load/store单元。C5DSP不仅支持卷积计算加速,它是为神经网络的实现度身设计而成的,仅需1 mm2 面积即可在14/16nm芯片上实现每秒1 TeraMac的运算能力。由于C5可以配置到多处理器系统,因此可以轻松扩展成多TMAC/秒系统;同时,由于C5支持完全可编程,因此可以轻松调整算法并应用于新设计,满足技术高速变革市场的需求。