可用于自动驾驶的神经网络及深度学习
高级辅助驾驶系统(ADAS)可提供解决方案,用以满足驾乘人员对道路安全及出行体验的更高要求。诸如车道偏离警告、自动刹车及泊车辅助等系统广泛应用于当前的车型,甚至是功能更为强大的车道保持、塞车辅助及自适应巡航控制等系统的配套使用也让未来的全自动驾驶车辆成为现实。
如今,车辆的很多系统使用的都是机器视觉。机器视觉采用传统信号处理技术来检测识别物体。对于正热衷于进一步提高拓展ADAS功能的汽车制造业而言,深度学习神经网络开辟了令人兴奋的研究途径。为了实现从诸如高速公路全程自动驾驶仪的短时辅助模式到专职无人驾驶旅行的自动驾驶,汽车制造业一直在寻求让响应速度更快、识别准确度更高的方法,而深度学习技术无疑为其指明了道路。
以知名品牌为首的汽车制造业正在深度学习神经网络技术上进行投资,并向先进的计算企业、硅谷等技术引擎及学术界看齐。在中国,百度一直在此技术上保持领先。百度计划在 2019 年将全自动汽车投入商用,并加大全自动汽车的批量生产力度,使其在 2021 年可广泛投入使用。汽车制造业及技术领军者之间的密切合作是嵌入式系统神经网络发展的催化剂。这类神经网络需要满足汽车应用环境对系统大小、成本及功耗的要求。
1轻型嵌入式神经网络
卷积式神经网络(CNN)的应用可分为三个阶段:训练、转化及CNN在生产就绪解决方案中的执行。要想获得一个高性价比、针对大规模车辆应用的高效结果,必须在每阶段使用最为有利的系统。
训练往往在线下通过基于CPU的系统、图形处理器(GPU)或现场可编程门阵列(FPGA)来完成。由于计算功能强大且设计人员对其很熟悉,这些是用于神经网络训练的最为理想的系统。
在训练阶段,开发商利用诸如Caffe(Convolution Architecture For Feature Extraction,卷积神经网络架构)等的框架对CNN进行训练及优化。参考图像数据库用于确定网络中神经元的最佳权重参数。训练结束即可采用传统方法在CPU、GPU或FPGA上生成网络及原型,尤其是执行浮点运算以确保最高的精确度。
作为一种车载使用解决方案,这种方法有一些明显的缺点。运算效率低及成本高使其无法在大批量量产系统中使用。
CEVA已经推出了另一种解决方案。这种解决方案可降低浮点运算的工作负荷,并在汽车应用可接受的功耗水平上获得实时的处理性能表现。随着全自动驾驶所需的计算技术的进一步发展,对关键功能进行加速的策略才能保证这些系统得到广泛应用。
利用被称为CDNN的框架对网络生成策略进行改进。经过改进的策略采用在高功耗浮点计算平台上(利用诸如Caffe的传统网络生成器)开发的受训网络结构和权重,并将其转化为基于定点运算,结构紧凑的轻型的定制网络模型。接下来,此模型会在一个基于专门优化的成像和视觉DSP芯片的低功耗嵌入式平台上运行。图1显示了轻型嵌入式神经网络的生成过程。与原始网络相比,这种技术可在当今量产型车辆的有限功率预算下带来高性能的神经处理表现,而图像识别精确度降低不到 1%。
图1 CDNN将通过传统方法生成的网络权重转化为一个定点网络
英文解释:
Network structure 网络架构
Image database 图像数据库
Training stage(offline) 训练阶段(离线)
Network weights 网络权值
Floating-point Network+weight 浮点 网络+权重
CEVA Network generator CEVA网络生成器
Fixed-point customized network+weights 定点定制 网络+权重
Detection stage(real-time)检测阶段(实时)
一个由低功耗嵌入式平台托管的输入大小为224x224,卷积过滤器分别为11x11、5x5及3x3的24层卷积神经网络,其性能表现几乎是一个在典型的GPU/CPU综合处理引擎上运行的类似CNN的三倍,尽管其所需的内存带宽只是后者的五分之一, 且功耗大幅降低。
2下一代深度学习神经网络
汽车制造业进入神经网络领域所习得的经验不断推动技术的发展,并因此开发出了更先进的网络架构及更复杂的拓扑,如每级多层拓扑、多入/多出及全卷积网络。新推出的重要网络类型不仅可用来识别物体,也可用来识别场景,从而提供用以解决汽车领域应用程序(如自动驾驶功能)所需的图像分割。当然,中国40家左右的汽车制造商并不会在此道路上踽踽独行。他们会与百度等技术公司进行密切合作。技术公司是这些网络和架构发展的核心。CNN网络生成器功能的完善也为新的网络架构和拓扑提供了支持,如SegNet、GoogLeNet、ResNet等其它网络结构以及高级网络层(图2)。此外,一键启用也让预训网络转换成优化的实时网络执行更为便捷。为确保给常用的网络生成器提供支持,CDNN框架与Caffe、TensorFlow(谷歌的机器学习软件库)都有合作。
图 2网络生成器的发展为新网络层及更深的架构提供了支持
英文解释:
Typical CNN layer 典型的CNN架构
Input 输入
Convolutional stage:affine transform 卷积阶段:仿射变换
Detector stage:nonlinearity 检测阶段:非线性
Pooling stage 统筹阶段
Normalization stage(optional)正规化阶段(可选)
Output:feature map 输出:特征映射
由于最新推出的嵌入式处理平台在可扩展性及灵活性上都有了很大改进,因此嵌入式部署也可以利用这些改进来完善自身。由于深度学习领域的发展越来越多样化,因此拥有一个不仅能满足当今处理需求,也具有适应未来的技术创新的灵活架构非常重要。
3铺好路
第一批神经网络应用程序将专注于视觉处理,以支持诸如自动行人、交通信号或道路特征识别等功能。由于这些系统的性能不断改进,例如处理越来越大的来自高分辨率相机的数据集,因此神经网络也有望在未来的汽车中发挥更大的作用。这些作用将包括承担系统中其它复杂的信号处理任务,例如雷达模块及语音识别系统。
随着神经网络首次应用于车载自动驾驶系统,(据报道,某些国家将在2019-2020年型的新车辆中使用神经网络,)对同时兼具安全性及可靠性的系统的需求会越来越大。中国政府计划在2021至2025年推出自动驾驶车辆。要让此类系统具备可让客户使用的条件,汽车制造商必须同时确保其符合相关的安全标准,如ISO 26262功能安全性。这需要硬件、软件及系统的综合发展。
由于这些系统变得越来越复杂,因此确保系统可靠安全且能满足处理需求也成为汽车制造商所面临的越来越大的挑战。
4结论