AI对汽车IC设计的影响

作者:Gordon Cooper,Synopsys公司嵌入式视觉产品营销经理

人工智能(AI)以及利用神经网络的深度学习是实现高级驾驶辅助系统(ADAS)和更高程度车辆自主性的强大技术。随着人工智能研究的快速发展,设计人员正面临激烈的竞争,他们需要提供高效、灵活、可扩展的芯片和软件,以便处理各种深度学习汽车应用,例如嵌入式视觉中的推理。尽管这些技术或许可以自由地应用于车辆的非安全关键方面,例如信息娱乐系统,但设计人员如果打算把它们用来满足ISO 26262安全关键等级中所规定的严格的功能安全性规定,那些设计人员需要三思。选择成熟的IP、建立一种安全文化、制定严格的流程和政策,以及聘用安全管理人员,都是必不可少的事情,只有这样,设计人员才可能利用神经网络满足其ISO安全性要求并实现ASIL等级标准。广泛的模拟、验证和测试,以及结构化的验证计划,也将成为满足视觉嵌入式IC方面的标准所不可或缺的东西。

人工智能在视觉ADAS系统中的应用

AI和深度学习正在改进ADAS系统并支持自动驾驶车辆,因为它们能够显著提高对物体和行人探测的准确性,也能够更好地识别多种物体,这都是传统算法很棘手的问题。AI甚至能够让汽车对周围环境进行语义分析,这在您的汽车需要评估附近的环境和事件时将变得至关重要。

AI主要出现在汽车应用中的两个领域:一个是具有人机界面(HMI)的信息娱乐,另一个是ADAS或自主驾驶车辆。HMI包括语音识别(自然语言界面)、手势识别和虚拟助理,这些都已经部署在当今的车辆中。这些系统正在开始利用深度学习的优势,而不再仅仅依赖通用的AI。第二个领域,即ADAS /自主驾驶车辆,则更为复杂。这些系统使用摄像头、远程和短程雷达系统、激光雷达等来识别物体、评估情景,甚至行动预测。

人工智能对软件开发的影响

从软件角度来看,深度学习在编程和算法实现方面产生了重大的范式转变。例如,在传统的计算机视觉中,设计人员往往会在行人检测应用中编写出一套程序来确定某个特定形状是不是人的形状。该程序逐帧分析视频输入中的每幅图像,以确定该图像中是否包含人。面向直方图的梯度(HOG)算法是在深度学习出现之前开发的一种物体检测技术,它通过分析图像中各个形状的边缘方向来确定具体的物体(图1)。

图1:应用处理器中的两个关键显示IP块:Arm Mali-D71和配有DSC编码器的Synopsys DesignWare MIPI DSI主机控制器

图1:在Synopsys公司搭载CNN引擎的DesignWare ® EV61嵌入式视觉处理器上运行的一幅HOG图形,它提供了汽车和监控应用中进行物体检测和分类的示例。

采用诸如HOG等传统的计算机视觉算法时,可能需要花费数年的设计工作量来手工刻画出识别全套物体的算法,因为你需要添加轿车、不同类型的卡车、狗、自行车等等物体。另一方面,神经网络则是采用原始输入数据,并利用这些数据来“学习”如何就图像中所能够找到的东西做出决策。神经网络具有输入层和输出层,而深层神经网络则包含三层或更多层,在输入层和输出层之间有多个隐藏层(图2)。每个层都包含具有学习能力的具体节点,并且每个节点都根据馈入到节点中的乘-累加数(multiply-accumulates)给予不同的权重。这个过程是对神经网络进行训练的一部分,而不是直接编程的。

图2:深度神经网络(DNN)。利用大数据集“训练”的网络能够“学习”对物体进行分类或检测;随着网络学习不断进行,权重(或系数)被不断调整和优化。

图2:深度神经网络(DNN)。利用大数据集“训练”的网络能够“学习”对物体进行分类或检测;随着网络学习不断进行,权重(或系数)被不断调整和优化。

在神经网络中,每个节点都连接到每个其他节点。它的多层方法取代了传统计算机的视觉算法而用于许多应用,例如物体检测、物体分类、面部识别、姿态识别等。它并没有完全取代对可编程解决方案的需求,因为预处理和后处理仍然是需要的。然而,由于DNN在准确性方面有显著提高,DNN已经成为分类、检测、识别和类似分析等领域事实上的标准。

卷积神经网络用于自动紧急制动

卷积神经网络(CNN)是一种特定类型的DNN,其已经成为图像识别领域的最先进技术。CNN逐帧处理视频输入中的每幅图像。采用CNN时,将借助于一个过滤器对每幅图像进行卷积,从而生成中间特征图。这个过程在多个层次上重复进行,以提取低级特征、中级特征和高级特征,供自动紧急制动(AEB)系统中的行人检测等应用来使用(图3)。

图3:CNN把图像分解为特征图。资料来源:用于行人检测的深度卷积神经网络。Milan: Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano(米兰:米兰理工大学,电子、信息及生物工程学系),2016年。网络(Web)。2017年3月14日。

图3:CNN把图像分解为特征图。资料来源:用于行人检测的深度卷积神经网络。Milan: Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano(米兰:米兰理工大学,电子、信息及生物工程学系),2016年。网络(Web)。2017年3月14日。

低级特征可能是一些曲线或边缘。中级特征可能是圆圈(曲线的组合),或者是方块或正方形(边缘的组合),等等,直到识别出诸如手臂、腿和躯干等形状(假设该网络被训练用来识别行人)。最后一层完全连接起来,将所有的分析结果组合到一起。实质上,计算机或机器获得了一张图像,然后将其分解成小块,再然后重新把它构建起来,并做出判断:根据所有这些曲线、边缘和线条来判断,这是个行人吗?或者说,不是个行人吗?这个决定是根据CNN的训练阶段来做出的。

训练和部署CNN

AI应用的编程体验已经不同于传统的计算机编程,因为现在有两个阶段(图4)。第一阶段是训练,即对网络进行训练以识别物体。第二阶段是推理或部署,这包括在嵌入式环境中(即在汽车中)运行的硬件。训练阶段通常在具有一个或多个GPU的云数 据中心内完成,而推理阶段在最终产品中进行。

图4:训练阶段在云端或服务器场中进行,而推理阶段在最终产品(如自动驾驶汽车)中进行。

图4:训练阶段在云端或服务器场中进行,而推理阶段在最终产品(如自动驾驶汽车)中进行。

在训练阶段通过为网络提供有注释的图像进行训练。通过反复迭代来调整网络的系数或权重,以此使网络“学会”识别期望的物体。如果网络经过了良好的训练,就可以把权重和网络转移至嵌入式系统中,以便在汽车中在推理阶段对物体进行识别。神经网络在推理阶段的输出实际上是关于神经网络所训练对象的一个概率值。如果神经网络被训练去寻找行人,则神经网络将返回在输入图像包含行人的概率。下一步是将其提升到更高的水平,并决定如何让汽车就关于图像(如停车标志)该采取什么行动来做出决策。人工智能和深度学习也适用于这个阶段,因为可以就不同情况下应当做什么对系统进行训练。

人工智能与硬件开发

训练过程的输出是一个32位浮点数。对于汽车推理实施而言,设计人员正在寻找最小、最精确的硬件,因为功能安全性和功耗都是挑战。与面积和功耗相比,理解位分辨率能够让设计人员创造出尽可能小的硬件。在过去的几年中,已经开发出一些硬件与这些新型神经网络算法相结合,以创建出具有嵌入式CNN功能的小型、快速、低功耗的SoC。

嵌入式视觉处理器,例如搭载紧密集成CNN的DesignWare EV6x嵌入式视觉处理器(图5),使设计人员能够在满足性能、功耗和面积要求的同时扩展其设计。标量和矢量单元执行预处理和后处理,而CNN引擎管理深度学习任务。当然,软件对于高效地为这些功能进行编程也是至关重要的。

图5:DesignWare EV6x嵌入式视觉处理器

图5:DesignWare EV6x嵌入式视觉处理器

神经网络是硬件开发人员的移动目标

当然,使用AI技术进行硬件设计所面临的挑战之一是,这是一个动态的目标。神经网络在不断变化之中。分类网络已经从AlexNet发展到GoogLeNet,再到ResNet,等等。物体识别,分类和定位的结合,以期不但识别出物体是什么,而且还要识别出物体在什么地方,这带来了另一层复杂性,进一步提升了对计算的要求。这也是一类快速发展的神经网络,先是Regional CNN(RCNN)让位于Fast RCNN,后者又让位于Faster RCNN,现在进一步让位于SSD和YOLO变体。让这些计算挑战更为复杂的事情是,汽车内的摄像头和分辨率也在发生变化。目前的汽

车搭载1百万或2百万像素的摄像头,设备制造商正在推出3百万或4百万像素的摄像头,而800万像素的摄像头也正在到来。这么高的分辨率能够带来更好的可见性,但也促使设计人员集成更大的处理能力。只要能够把延迟保持较低程度,如果将帧率从目前的15-30fps升级到即将到来的60 fps,即可以实现更短的停车距离。

分辨率和帧率的提高意味着,几年前,提供具备64个乘-累加器的神经网络就足够了,但很快,该要求已经变为800-100MAC了。目前,设计人员正在规划具有低功耗预算的50 TeraMAC/s性能,以处理多个摄像头。

为了帮助设计人员解决这些快速变化的需求,Synopsys公司提供了DesignWare EV6x嵌入式视觉处理器,其中包括一套专用的神经网络引擎以及多个视觉内核,还包括了MetaWare EV 工具包。由传统计算、神经网络引擎和软件构成的这一组合既能够让设计人员创建出用于驾驶员瞌睡检测的小面积SoC,也能够让他们创建出用于自主驾驶的快速、安全关键性SoC。DesignWare解决方案在设计上能够根据各种规模的应用进行扩展,但采用了相同的基本硬件和软件构建模块。

图6:DesignWare EV6x处理器可以针对更小型设计实现一套880 CNN引擎,并在AXI总线上实现更高的CNN性能。DesignWare EV6x处理器目前部署在低功耗、高性能设计中,其中也包括汽车设计。

图6:DesignWare EV6x处理器可以针对更小型设计实现一套880 CNN引擎,并在AXI总线上实现更高的CNN性能。DesignWare EV6x处理器目前部署在低功耗、高性能设计中,其中也包括汽车设计。

符合功能安全性标准

人工智能和神经网络正在改进ADAS应用并能够支持自主驾驶车辆。然而,如果公众对相关系统的安全性没有强烈信心的话,公众就不会接受这些自主驾驶车辆。汽车行业要求车辆系统能够正确运行以避免发生危险情况,并且还应当证明它们能够检测和管理故障。这些要求由ISO 26262功能安全性标准及其定义的汽车安全完整性等级(ASIL)进行管理。

图7:定义各种级别的汽车安全完整性等级

图7:定义各种级别的汽车安全完整性等级

深度学习系统在ISO 26262规范中的地位仍在探索之中。对于信息娱乐系统而言,或许实现ASIL B级是件相当简单的事情。但如果我们转向要求ASIL C级和D级水平的、更具有安全关键性的应用,设计人员将需要为其系统增加冗余。他们还需要制定符合ISO 26262严格认证要求的策略、流程和文档战略。

在这种情况下,以50 TeraMAC/s的性能来运行是面临的第一道挑战,但设计人员需要增加冗余和容错来满足ASIL的要求。Synopsys公司正投资于各种解决方案,以帮助设计人员对于信息娱乐之类的系统实现ASIL B级水平,对于安全关键性应用实现ASIL D级水平。在一套SoC中开发出符合ASIL B级要求的SoC对于SoC二次迭代而言可能是不可接受的,因为下一个设计就可能需要满足针对更加自主车辆的ASIL D级要求。

除了提供广泛的面向ASIL B和ASIL D的IP产品组合之外,Synopsys在满足ISO 26262要求方面也拥有丰富的经验,并且可以分享我们在建立安全性文化、制定验证计划以及实施故障模式效应和诊断分析评估等方面所积累的丰富经验。Synopsys还与SGS-TUV建立了合作关系,这有助于加快SoC安全性评估和认证。

总结

汽车系统设计人员已经在使用传统的嵌入式视觉算法。车辆自主性的关键推动力之一将是人工智能技术的应用,特别是那些基于深度学习算法、在诸如嵌入式视觉等多层CNN上实施的技术。这些算法在车辆自主驾驶所必需的物体识别、分割和分类等任务中显示出很好的前景。

AI与汽车系统的整合正在改变软件和硬件工程师设计系统的方式,因为它们能够满足更高水平的性能、功耗、面积和功能安全性要求。如果与Synopsys公司这样在提供面向ASIL的IP方面拥有成功记录的IP供应商合作,将有助于系统架构师让他们的产品在市场上取得成功。

了解更多信息: