计算机视觉:走出实验室,走进您的生活中

作者:Synopsys 嵌入式视觉处理器产品营销经理 Gordon Cooper

计算机视觉(机器根据二维图像或未压缩的视频流图像,“推断”或提取有用信息的能力)能够改变我们的生活。它可以实现自动驾驶汽车、让机器人或无人机看见送货上门的道路,还可以让人脸成为一种访问或支付方式(图 1)。为了实现这些进步,嵌入式视觉处理器正在迅速发展,将最新的学术研究成果整合到高效经济的人工智能 (AI) 产品中。  

图 1:新的计算机视觉技术与人工智能相结合,为门禁、支付和其他应用提供面部识别功能 

2012 年,早期的卷积神经网络 AlexNet 在 ImageNet 大规模视觉识别挑战赛 (ILSVRC) 中胜出,计算机视觉技术随即引入深度学习技术,从而实现巨大飞跃(图 2)。这项赛事最为推崇准确性,并且在接下来的几年里,每一位新的获奖者都会提高第 1 至第 5 个类别的成绩(图形的准确性是对图像中内容的最准确猜测),直至其超越人类识别/分类 1000 件物品的特定任务的能力。ImageNet 的获胜者通过增加问题的计算复杂程度和使用在 GPU 组中执行的 32 位浮点运算来取得这些成绩。性能的提高有助于提高检测准确度。 

图 2:ImageNet 大规模视觉识别挑战赛的结果表明,深度学习的准确性超过了人类的水平

卷积神经网络 (CNN) 已经成为现代计算机视觉的物体检测标准。简而言之,CNN 算法经过训练,可以将一个物体(比如行人),分解成曲线、角度和其他组成部分的向量,再将这些数据存储在它的权重或系数中,然后搜索这些向量的图像,最终以惊人的准确性来识别物体。

当工程师们试图将这些 ImageNet CNN 图形(VGG16、GoogleNet、ResNet 等)应用于实际的嵌入式视觉应用时,很明显,嵌入式 AI SoC 约束并未阻碍 ImageNet 提交,这些约束包括有限的功耗预算、内存带宽限制、最小化延迟和减少硅面积等目标。此外,ImageNet 获奖者并不以实际需求(如满足目标帧率)作为评量标准。为了将计算机视觉从学术活动转化到实际应用中,所有这些问题必需得以解决。嵌入式工程师需要在处理嵌入式限制的同时,找到一种方法来满足计算机视觉的高性能和高准确性要求。嵌入式视觉处理器设计以最小的面积和功耗来提供最佳的计算机视觉性能。 

计算机视觉性能的第一级评量是每秒万亿次运算 (TOPS)。万亿 (1012) 是一个很大的数字,主要是因为需要处理的像素数量和深度学习算法(如 CNN)非常复杂。每秒运算量评量是在一个处理器时钟周期内可以完成多少工作。对于给定的视觉处理器,一个简单的 TOPS 计算是将其上的多个累加器 (MAC) 的数量乘以处理器的频率 (MHz),然后乘以二。由于 MAC 被视为一个包含两步运算的循环(相乘和累加),所以要乘以 2。

不同应用对于嵌入式视觉性能的要求各不相同

不同的计算机视觉应用需要不同的性能水平,但总体趋势是性能要求越来越高。在中端智能手机上进行人脸识别可能需要不到 1 TOPS 的性能。增强现实、监控和汽车后摄像头等中端应用一般需要 1 到 10 TOPS 性能。高端应用是用于安全攸关应用、微服务器和数据中心的汽车前置摄像头,可能需要 10 到 100 TOPS 或更高的性能。嵌入式视觉处理器一直在增加 MAC 的数量以提高 TOPS 性能,从而为所有这些视觉应用提供一个可扩展的解决方案。

Synopsys 在 2015 年推出 DesignWare® ARC® EV5x 视觉处理器 IP 时,在 800MHz 频率下运行 64 MAC/循环,性能约为 0.1 TOPS。一年后发布的 EV6x,其中包含 880 个 MAC 加速器,在 800MHz 的频率下达到 1.3 TOPS。2017 年,EV6x 在 1.2GHz 的环境下升级到 3520 个 MAC,神经网络性能达到约 8.5 TOPS。

2019 年,Synopsys 推出了带有深度神经网络 (DNN) 加速器的 EV7x 嵌入式视觉处理器 IP(图 3)。DNN 加速器拥有多达 14,080 个 MAC,可以绘制所有的 CNN 图形,包括最新最复杂的图形和自定义图形,并为批量长短期记忆 (LSTM) 提供新支持,可用于需要时限结果的应用。除了 DNN 加速器,EV7x 还包括一个视觉引擎,用于低功耗、高性能视觉、同步定位和映射 (SLAM) 以及 DSP 算法。结合 EV7x DNN 和 EV7x 视觉引擎的性能,EV7x 的性能可以扩展到 35 TOPS。这大约相当于 EV5x 在四年的时间实现了 35,000% 的性能增长。

图 3:DesignWare ARC EV7x 嵌入式视觉处理器 IP 包括一个视觉引擎,该视觉引擎含有多达四个矢量处理单元 (VPU)、一个高性能 DNN 加速器和齐全的软件工具套件

您需要的不止是 MAC:还需要考虑内部存储器和带宽

在 AI 加速器中添加 MAC 可以提高神经网络引擎的性能,以满足一系列真实世界的计算机视觉应用需求。然而,这仅仅是开始。事实上,将 MAC 添加到加速器是扩展神经网络图形性能最简单的方法。更有挑战性的是:我们如何确保这些 MAC 一直处于忙碌状态? 理想的系统既没有计算限制(缺乏性能),也没有 I/O 限制(缺乏必要的存储带宽)。对于增加了 4 倍的 MAC,需要考虑一些内部存储器的增加和一些额外的 I/O 带宽(图 4)。但这些会影响视觉处理器的功耗或面积。最小化带宽的最佳方法是同时应用硬件和软件技术来限制进出外部存储器的数据。  

图 4:充分利用神经网络加速器的 MAC 需要增加内存和寻址 I/O 带宽 

有许多技术可以提高性能并限制带宽。量化将 32 位浮点系数和数据转换成更小的整数格式(8 位是当前常用的格式),从而将带宽减少了四分之一。特征图的无损压缩(CNN 图形中每一层的中间输出)被写入外部存储器,在读取时再进行解压,因此可以减少多达 40% 的带宽。稀疏性(寻找并避免数据中出现零)和系数剪枝(确定哪些接近零的系数可以设置为零)是另外两种带宽缩减技术。

除了这些硬件技术外,新的 CNN 图形也获得开发,以达到像 ResNet 或 GoogleNet 这样的早期图形的准确性,同时计算量显著减少。MobileNet(v1 和 v2)和 DenseNet 是当代 CNN 分类图形的两个范例。然而,虽然两者的计算效率都更高,但只有 MobileNet 非常适合 AI SoC 中的嵌入式视觉。DenseNet 的拓扑需要大量重用特征映射,因而大大增加了带宽和存储需求。另一方面,MobileNet 达到了同等的准确度,但所需的系数和带宽却要小得多。 

管理带宽的新技术

神经网络的研究速度很快,因此新技术不断涌现。Synopsys 的新型 EV7x 嵌入式视觉处理器 IP 引入了两种降低带宽的先进技术。首先,直接内存存取 (DMA) 广播在 CNN 图形的层计算期间跨跃各组 MAC 分发系数或数据。如果每组 MAC 都能处理同一组系数,那么可以一次读取所有这些系数并通过 DMA 分发给每组,从而将带宽降至最低。

第二种技术是多层融合,它扩展了层合并的概念。层合并将卷积计算与 CNN 的非线性激励函数和汇合(降采样)相结合。多层融合将几组合并的层结合在一起,尽量减少需要写入外部存储区的特征映射数量。DMA 广播和多层融合结合了先进的硬件功能和软件支持。应用到 EV7x 全新 DNN 加速器之后,与之前基于 3520 MAC 架构上运行的标准 CNN 图形的架构相比,DMA 广播和多层融合提高了 67% 的性能,同时减少了 47% 的带宽。

应用于这些技术的最新一代视觉处理器,使嵌入式开发人员在设计基于视觉和 AI 并能改变生活的产品时,更容易满足功耗、面积和性能预算方面的要求。 

日常实例:人脸识别、机器人……以及自动驾驶汽车

为了将研究成果转化为实际应用,人脸识别算法需要在低功耗的常开硬件上运行。设想使用停车计价器里的硬件完成人脸支付。面部检测算法可以在超低功耗微控制器(如 ARC EM9D 低功耗微控制器 IP)中以常开模式运行。检测到人脸之后,就会唤醒带有 DNN880 的 EV71,用以进行快速面部检测,看看是否能识别出这张脸。完成之后则会迅速关闭以节约功耗。为了保护生物特征数据的保密性,并保护 CNN 图形的拓扑结构和系数,嵌入式视觉处理器(如 EV7x)纳入了可选的高速高级加密标准 (AES) 加密。

为了使机器人或无人机能够在拥挤的环境中移动(可能是从当地餐馆送午餐的路上,或是从您最喜欢的商店送包裹的路上),需要应用多种视觉技术。 SLAM 是源于机器人研究的一种算法,使用摄像机输入来映射机器人周围的环境以及机器人在该环境中的位置。机器人虽然能够探测到物体,却无法进行识别。CNN 很擅长识别物体,这就是其有用之处。SLAM 和 CNN 的结合让机器人更加智能地识别环境。可选配 DNN3520 的 EV72 有两个 VPU,非常适合机器人或增强现实应用,其在矢量处理单元上结合了 SLAM 来映射对象,并利用其深度神经网络加速器来识别映射对象。

自动驾驶汽车给嵌入式开发者带来了更多挑战。不仅车里的摄像头数量在不断增加,而且每个摄像头的图像分辨率也在不断提高。  汽车要接手人的工作,就必须以最高的可靠性运行,此类可靠性包括高水平的故障检测和冗余。嵌入式视觉处理器,最高性能可达 35 TOPS,让自动驾驶汽车距离变成现实更近了一步。EV74 有四个 VPU,结合大型 DNN14K 提供了汽车前摄像头/行人检测所需的性能,同时满足 ISO26262 功能安全指南要求(图 5)。为了满足超过 35 TOPS 的性能要求(例如对于一个多摄像头的汽车行人检测系统),EV74DNN14K 的多个实例可以通过一个片上网络 (NoC) 连接。与竞争解决方案相比,每个 EV7x 处理器中的 35 TOPS DNN 需要更少的实例来达到 100 TOPS。实例减少即可降低 NoC 流量,从而缩小潜在的性能瓶颈。 所有这些带宽限制技术也为低端应用带来了好处。面部检测可能只需要 1 TOPS 或更少,但它对功耗极其敏感。

图 5: 符合 ISO26262 标准的高性能神经网络加速器具备 100 TOPS 甚至更高的性能,即将使自动驾驶汽车成为现实

总结

深度学习技术可以在现实世界实现激动人心的新型计算视觉应用,只要嵌入式工程师可以把这些计算量繁重的算法转换到高性能、低功耗和带宽效率高的视觉处理器,即可实现。Synopsys EV7x 等最新的嵌入式视觉处理器结合了最新的带宽缩减技术,最大限度地提高了板载 MAC 的性能。这些处理器还针对最新的 CNN 图形和神经网络框架进行了优化。集成 EV7x 视觉处理器 IP 之后,龙头企业就能够部署高性能的人工智能 SOC,用于人脸识别、机器人、汽车和其他应用。 

如需了解有关配备 DNN 加速器的 ARC EV7x 处理器 IP 的更多信息,请访问:https://www.synopsys.com/dw/ipdir.php?ds=ev7x-vision-processors