完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
作者:Gordon Cooper,Synopsys嵌入式视觉产品营销经理
嵌入式视觉解决方案将是汽车实现全自动驾驶的关键驱动因素。为汽车装配眼睛 – 采用多个摄像头和图像传感器 – 是第一步,而汽车解析来自这些图像的内容并且相应采取行动也至关重要。要做到这一点,嵌入式视觉处理器的硬件必须经过性能优化,同时实现低功耗和小体积,拥有对硬件进行高效编程的工具,并且拥有运行这些处理器的算法。 |
|
相关推荐
4个回答
|
|
过去,汽车安全的重大改进(例如抗碎裂玻璃、三点式安全带、气囊)都是被动安全措施,目的是尽量减少事故造成的伤害。现在,我们的技术可主动帮助驾驶员第一时间避免碰撞。高级驾驶员辅助系统 (ADAS) 将帮助自动驾驶车辆成为现实。盲点侦测可以在驾驶员试图进入被占用车道时发出提醒。车道偏离报警和车道保持辅助可在车辆偏离车道时提醒驾驶员,并主动将车辆驶回原先车道。行人侦测可告知驾驶员注意车前或车后的行人,而自动紧急刹车通过刹车而避免事故或者行人受伤。通过将ADAS能力结合在一起,我们离自动驾驶车辆的目标越来越近 —所有这些都通过高性能视觉处理而实现。
目前,汽车制造商在汽车中配备了更多摄像头,如图1所示。前置摄像头可以侦测行人和其他障碍,并且采用适当的算法帮助驾驶员制动。后置摄像头 – 美国强制要求从2018年起的大多数新车配置后置摄像头 – 可以通过提醒驾驶员注意不在视野内的车后物体而挽救生命。驾驶舱内面向驾驶员的摄像头可以识别驾驶员分心,并发出提醒。最近,增加四到六个摄像头可以提供车辆周围360度的视图。 图1:配备高性能视觉处理器的摄像头可以 “看到” 物体是否未在预期地点 |
|
|
|
用于对象检测的视觉处理器
由于驾驶员面向前方,前置摄像头似乎没有必要。其价值在于,前置摄像头在探测和提醒障碍时必须始终比驾驶员快。尽管ADAS系统的反应快于驾驶员,但它需要借助嵌入式视觉提供对视频流的实时分析,并知道采取哪种应对措施。 视觉处理器基于异构处理单元。这意味着编程任务被分配到具有不同强项的处理单元中(见图2)。用于传统32位标量处理器(易于编程开发的处理器)的大部分代码使用C或C++编写。向量DSP单元将执行大部分计算工作,因为该单元极大的指令字可对收到的每个图像的像素进行大量并行计算。 图2:视觉处理器基于异构处理单元,包括标量和极大指令字 (VLIW) 向量DSP单元 检测车前行人是广义的“物体检测”的一部分。对于要检测的每个物体,传统计算机视觉算法采用手工方式。检测算法的例子包括Viola-Jones和最近的定向梯度直方图 (HoG)。HOG算法通过查看图像内的边缘方向而试图描述物体。HOG直到2014年才被视为一种先进的行人检测算法。 通过深度学习而进行物体检测的兴起 尽管依据人类大脑建模的计算机系统 – 神经网络的概念已经出现了很长时间,但直到最近,半导体才实现了处理器的性能,使其成为可行的现实。2012年,卷积神经网络 (CNN) 进入每年一度的ImageNet竞赛表明,在图像分类方面,这种技术比传统计算机视觉算法在准确度上有重大改进。由于准确度更高,基于神经网络的图像分类、检测和识别技术得到了快速普及。 深度神经网络的重要突破是,对象检测不必进行手动编码。深度经网络允许各种特性自动从训练实例中学习。如果神经网络有一个输入和输出层,而且至少有一个隐含的中间层,它就被视为具有“深度”学习能力。每个节点从前一层中多个节点的加权输入结果进行计算。CNN是目前为视觉处理高效实施深度神经网络的最先进技术。CNN的效率更高,因为它们重复利用图像中的多个权重。 在嵌入式领域,早期的CNN采用GPU或者采用视觉处理器的向量DSP部分实现。然而,考察三个不同异构处理单元中执行的任务非常有帮助,如图3所示。 图3:向嵌入式视觉处理器添加CNN引擎可帮助系统通过训练而学习 CNN早期在硬件中的实施包括有限的乘累加 (MAC) 单元。例如,Synopsys的EV5x – 业内首个可编程、可配置的视觉处理器IP内核 – 实施了具有64个MAC的CNN引擎。EV5x的运行频率为500 MHz,可产生32 GMACs/s或64 GOPs/s的性能(乘法累加器在一个指令中执行两次运算)。这一性能不足以处理整个1MP (1280 x 1024) 帧或图像。然而,其处理能力足以在部分图像上执行CNN(比如64x64像素块)。要处理整个图像,行人检测需要分两个步骤进行。向量DSP将对收到的每个视频流中的图像执行计算密集型感兴趣区域 (ROI) 算法。ROI采用滑动窗口方法识别可能的行人候选对象(例如排除天空部分)。然后,这些“行人”图像块由CNN处理,确定是否真的是行人。实践证明,基于CNN的行人决策解决方案比HoG等算法的精确度更高,也许更重要的是,与通过写入新的手动算法而检测自行车而非行人相比,CNN更容易重新训练,从而用来查找自行车。 |
|
|
|
更大型的CNN用于全帧对象决策
随着嵌入式CNN变得更加强大,它们不再仅仅限于处理收到的图像。Synopsys最新的视觉处理器EV6x包含了一个配备880个MAC的CNN引擎 – 比前代产品的性能有了显著提高。该产品的运行频率为800MHz,可生成 (880 x .8) = 704 GMACs/s或大约1400 GOPs/s。这一性能足以使用CNN处理整个1MP图像。向量DSP对于预处理图像(例如重新格式化和金字塔处理)以及执行后处理任务仍然非常有用,例如非极大值抑制 (NMS)。如图4所示,EV6x仍为异构处理提供了标量、向量和CNN单元。它还带有多内核特性,可通过轻松扩展而配置多个视觉内核。 图4:DesignWare EV6x嵌入式视觉处理器包含用于预处理和后处理的标量、向量和CNN处理 处理整个图像帧的好处是CNN可以通过训练而检测多个对象。如今,CNN图形不仅仅用于寻找行人,而是可以通过训练而寻找自行车、其他机动车辆、货车等。采用HoG算法做到这一点需要针对每个新对象类型对算法进行手动编写。 |
|
|
|
训练和部署CNN
如前文所述,CNN不采用编程方式。它需要经过训练。Caffe或TensorFlow这样的深度学习框架将使用较大的图像数据集对CNN图形进行训练 – 通过多次迭代而对各个系数进行优化 – 从而检测图像中的具体特征。图5显示了CNN图形训练的关键组件,其中,训练阶段采用云端的GPU存储体,以提供所需的大量处理能力。 图5:图形训练所需的组件 部署 – 或“推理”–阶段在嵌入式系统上执行。如Synopsys的MetaWare EV Toolkit等开发工具采用训练阶段的32位浮点权重或系数输出,并扩展为定点格式。这样做的目标是采用最小的分辨率,因为这仍能产生与32位浮点输出相当的精确度。对于嵌入式解决方案来说,更少的乘累加位数意味着计算CNN所需的功耗更低,芯片面积更小(从而降低成本)。根据Synopsys的计算,如果不进行图形的重新训练,需要至少10位定点的格式来保证和32位浮点Caffe输出差不多的精度。 MetaWare EV工具采用权重和图形拓扑(CNN图形中存在的卷积,非线性,池化结构和全面互连层),并且会把这些映射到专用CNN引擎的硬件中。假设没有特殊图形层,CNN现在可通过“编程” 检测你想要识别的对象,只要这些内容CNN事先训练过。 为了保持小巧的体积,CNN引擎经过优化,可执行关键CNN特性,例如3x3和5x5矩阵相乘,但其优化程度不够,无法成为完全的硬件解决方案。通过编程保持灵活性非常重要。随着CNN的持续演进 – 例如新的分层技术或池化方法 – 向量DSP可以在视觉处理中扮演另一个重要角色。由于向量DSP和CNN引擎在Synopsys EV6x中密切耦合,根据需要从CNN对向量DSP分派任务变得非常简单。整合进MetaWare EV工具中的OpenVX运行环境保证了这些任务根据其他向量DSP处理要求而定时运行。向量DSP应该是很好地前瞻到了CNN的发展。 图6显示了嵌入式视觉处理器的输入和输出。来自车辆摄像头的流图被送到预先配置了图形算法和权重的CNN引擎中。CNN的输出是经过分类的图像内容。 图6:嵌入式视觉处理器的输入和输出 |
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4439 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
311浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
295浏览 2评论
311浏览 2评论
310浏览 2评论
352浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 21:55 , Processed in 1.016765 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号