在对人工智能(AI)而非提高像素的需求推动下,特别是在由计算机视觉和数据驱动的决策制定方面,GPU(图形处理单元)领域已出现一场革命。神经网络的到来已使视觉处理成为现代世界的关键因素。因此,机器人处理操作、智能监控摄像头以及汽车高级驾驶辅助系统(ADAS)等相关行业都发生了变化——随着这类技术的全面涌现,未来还将出现更多新的应用。
换句话说,专业人员需要考虑现在以及未来几年的市场情况。随着AI方面的开发继续取得突破性进展及其投资量超过几乎所有其他行业,AI对我们所做一切产生影响只是时间问题。想想自从第一款智能手机推出以来,移动设备上已增加大量新的应用,从而打开了种种基于位置的服务、社交互动、商业以及娱乐。AI有可能开启新的应用,并使现有应用得到发展,使之大幅改进,而为用户提供更好的服务。
AI视觉处理已从数据中心迅速发展到边缘,最新的专用集成电路(ASIC)和片上系统(SoC)IP正在围绕一个主题发展,即从视觉信息的预处理,到传统的计算机视觉算法,然后再用神经网络进行边缘推理,产生对象检测、识别以及适当的动作。
AI这个术语是包括计算机视觉深度学习在内的多种机器学习的总称。这些网络的设计旨在使用数字等效物和感知器来模拟人脑的神经元和突触,它们通常需要经过训练,才能识别视觉等数据中的模式,然后当遇到新的数据时,就可以从中推断出数据可能的含义。尽管推理通常是在本地使用GPU或专用神经网络加速器(NNA)IP实现,但训练则通常是在数据中心的计算机上通过GPU来完成——这类处理器非常适合处理并行流水线任务。
在过去十年,由于可负担计算能力的增加,以及卷积神经网络(CNN)及其所用传感器的发展,视觉处理一直在以指数级的速率进步。具体而言,若能根据传感器、数据集和SLAM(同时定位与映射)算法输入去“了解”世界并对其“开发出”表征模型,那么系统就可以开始掌握周围环境及其在空间中的位置,并做出预测和采取行动。在云端训练出的高级系统现在能够显著加快推理速度,这样就可以以支持实时决策的速度来完成对象识别。自动驾驶汽车中的嵌入式系统具有多个传感器,这样的系统可以识别其他车辆,区分道路与人行道以及行人与动物。然后,它们就可以开始对行人是否会即将进入公路进行预测。
值得注意的是,这种高级推理传统上是在云端执行,而现在正转向在边缘设备上运行,即在本地使用一个1到2mm2的嵌入式处理器芯片,而以极佳的性能对网络层进行加速。也就是说,现在可以将强大的AI计算内置到非常小的传感器、电子控制单元(ECU)和物联网(IoT)设备当中。
随着AI越来越靠近边缘并进入到传感器、摄像头和移动设备等设备中,它不仅消除了对基于云端推理架构的需求,而且将分析转移到设备本身,消除了处理延迟,减少了数据传输和带宽,同时可以增加安全性。强大的CNN可以通过量化和适应部署在小型边缘设备中,并且当推理可以在小到大头针针头大小的芯片上运行时,这些设备就可以对大量的市场产生影响,例如安全、零售、工厂、家庭和汽车,无处不在。
神经网络正在成为异构系统中的重要组成部分,涉及GPU和NNA的组合,它们分别可以做自己最擅长的事情并相互补充。
由于CPU或GPU可提供的现成计算能力大幅增加,神经网络已变得非常普遍。然而,AI运算涉及到高度密集型的计算,这也就解释了为何当谈到边缘设备时,它们难以实现令人满意的性能——专用硬件解决方案则更为可取。例如,如果我们对典型的移动CPU以“1倍”来衡量其在运行神经网络时的性能,那么GPU可将这个速度加速到大约12倍。但是,在专用的神经网络加速器上,这些运算的运行速度可以快100倍(对于支持的层),如果运行在较低的位深度,例如4位,则可以快200倍。
这种方法使用定点量化数据类型来最小化模型的大小和所需的带宽。无损压缩进一步提高了效率。此外,一些NNA硬件核心IP支持可变位深度,这样就可以逐层调整权重,实现最大的部署模型精度,同时最小化模型大小,从而减少内存带宽和功耗。总的来说,这样可以实现非常高效的性能并满足低功耗要求。小型(约1mm2)NNA出色的功率效率,甚至可以使设备以电池或基于太阳能或风能收集到的能量而运行。
将GPU和NNA结合使用的高级方法,可实现用GPU对鱼眼镜头图像(例如广角/鱼眼镜头)进行去扭曲处理,然后将其作为输入送到NNA,再运行SSD(单镜头检测)算法而在输入的去扭曲图像上进行对象检测(图1)。这种方法已经得到实际使用,例如安防监控,或者将它用到需要用智能摄像头或安装在头顶上的摄像头来捕获巨大视野的场景,或者用它来减少镜头失真。
图1:预处理案例。
然而,对于需要中间处理的网络,例如选择已训练的感兴趣区域或人群中的人脸,则可以采用诸如Faster R-CNN的两级对象检测网络实现(图2)。另一个可能的例子是将神经网络链接在一起,即将一个网络的输出作为另一个网络的输入,其中包含了预处理、中间处理和后处理。处理路径中间的非神经网络运算可以根据适用情况而在GPU或CPU上进行处理,而可加速的层则可以在NNA上运行。
图2:两级对象检测。
如果能将GPU和NNA组合到同一芯片上,则有机会充分利用这两个领域,而将图形视觉计算处理与神经网络相结合,这通常会使用共享内存来减少带宽和外部数据传输。
智慧城市与基础设施有关(图3)。在智慧城市里,传感器将数据转发回云端的“大脑”,通过监控交通流量来平稳地引导交通,从而提高道路效率,而车辆依靠这种智能基础设施来让驾驶员了解即将到来的交通状况。因此,车与灯柱、交通信号灯和街道标志进行交互,这可能会让人觉得不可思议;未来,我们的车会一直做这样的事情。因此,我们将看到越来越多的车对车(V2V)和车对基础设施(V2X)进行通信,以及智能边缘传感器“所见”数据的交互,及其如何作为有用信息进行传递。
图3:智慧城市场景。
V2X将会成为一项基本要求——这个领域将使用AIoT(在物联网中结合使用人工智能)并将采用数万亿个传感器。AIoT将会支持这种车对基础设施的通信,也就是说它们之间会进行多方面的信息交换,确保车辆能根据实时预测的信息做出明智的选择。例如,要是人类管理员疏忽,忘了对高速公路标志上的过时信息更新,那将多么令人沮丧?或者,要是能知道提前下高速能避免绕远路或排长队,那岂不是更好?
目前,卫星导航系统依靠众包数据来实现这一目标,但使用实时信息,可以使这个过程实现自动化并减少获取数据的延迟。
自动驾驶汽车上装有多个摄像头,用来实现计算机视觉、对象识别、车道警告和驾驶员监控,以及其他传感器(例如,热成像、RADAR和LiDAR)而实现传感器融合。在边缘端处理数据,可以最大程度地降低汽车收发数据所需的带宽,并避免分析的延迟。在有连接盲点或延迟非常严重的时候(例如以70mph以上的速度行驶),边缘处理对能否挽救生命起到决定性作用。
此外,人工智能和路径规划可以识别和预测是否有小孩会走到公路上,从而让车辆预测和减速,以便采取规避行动。在更简单的层面上,自动代客泊车可以使驾驶员省去寻找停车位的负担。
再者,边缘传感器可以跟踪水、废物、能源和环境污染(进而对流量改道而减少对特定地区的污染),以及使家庭和工作场所变得更安全和智能。
在智慧城市,AIoT将使更智能的边缘设备不仅是数据生成器(传感器),而且是数据聚合器、数据交换器和数据驱动的决策“大脑”。对于城市中的汽车而言,这意味着可以通过街道基础设施(V2X)和其他车辆(V2V)不断对汽车更新信息来分散交通堵塞或完全消除堵塞,共享数据也可更好地对路线规划和行车安全进行决策,并为救护车通行清理道路。
在工作场所,以往“不通情达理”的工业机器人和自动驾驶车辆将变得可“了解”它们周围的环境和人类的存在,从而使未来的工厂变得更加安全,例如,如果有人进入到机器人的工作范围,它就能立即了解到将发生的事情并进入到安全模式,从而提高安全性。虽然工厂和工作场所正采用机器学习来彻底改变任务学习,但我们仍然需要保留在必要时允许人类进行介入和干预的权利。我们正在进入可“教授”机器人做特定任务的阶段,例如让它们做弧形运动或者在做某项事时实现可接受的运动范围。
同样,我们将拥有智能便利店,顾客在此可以方便地选择零售商品,例如维生素饮料,然后当他离开商店时,商店就会自动将款项从其帐户扣除,并更新其忠诚度积分,同时对货架进行补充。所有这一切都是依靠传感器和摄像头的动作实现,而没有任何的人类互动。
人工智能正在推动第四次工业革命。我们所生活的时代激动人心,我们几乎每天都能看到有进步发生。业界对图形和人工智能的投资也正在以指数级的速度扩大,并正在通过持续创新来开发新的用例。计算机和机器视觉的这些发展引人入胜,我们可以通过传感器、边缘设备和先进的高性能IP来为我们的世界增添智能。使用专用芯片IP进行神经网络加速正在创造“智能边缘”,我们正看到新的“视觉技术”部署在此,从而改变我们的世界。