理论与实践是差别很大的,AEB的论文与具体开发差别极大。本文主要说明AEB为什么有那么多限制,如何才能提高AEB系统的实用性。
再简单重复一下目前AEB系统的局限性。首先AEB系统有明显的速度上限和下限,一般来说单纯以毫米波雷达为传感器的AEB系统最高工作上限为时速30公里,以单目摄像头为核心传感器的AEB系统最高工作上限为时速40公里,单目与毫米波雷达融合的AEB最高工作上限为时速70公里,以双目为核心传感器的AEB系统最高工作上限为时速90公里。同时还有一个最低下限。以单目为核心传感器的工作下限为时速8-10公里,毫米波雷达为时速5公里,摄像头与毫米波雷达融合为时速3公里,双目为3公里。
其次,目前绝大多数AEB都是只针对车辆的,对行人和骑车人无效或不明显。或者说探测行人需要比较长的时间,碰撞时速度仍然较高。
第三,AEB对突然出现的静止物体无效。车辆、大型动物、行人和骑车人,在被前车或侧车遮盖住视线,前车不再遮挡后突然出现,AEB系统无法及时识别,特斯拉几次事故都是如此。
第四,盲区明显,车辆转弯时,AEB基本是无效的。迎面而来的交叉车流或转弯车流,对面来车突然变道等等,AEB也是无效的。
第五,天气和光线的局限。对于摄像头为核心的AEB系统,低照度情况下基本无效,高亮度如正对阳光也会无效。
典型的AEB系统构成如下:
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193133247705466.jpg)
对于静止物体,传感器融合是不可缺少的。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193133355473276.jpg)
首先要说融合的三个层次,分别是传感器数据级(Data)、传感器特征级(Feature)、决策级(Decision)。一般情况下都是数据级融合,主要是原始数据(可不是最原始的数据,是从传感器ECU输出的数据)融合,一般采用加权平均或卡尔曼滤波器算法实现融合。特征级融合则把形状、深度、速度等数据融合,通常采用霍夫变换算法。决策级则对比多个决策,算法一般是贝叶斯算法。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193133499394818.jpg)
上图是Matlab的仿真模型,数据级融合通常都是以图像传感器为核心,用卡尔曼滤波器对雷达测量的距离信息进行滤波后,得到世界坐标系下前方车辆与摄像头之间各个坐标轴上的距离估计, 通过坐标映射对它们在二维图像上进行实时描述。这就是传感器视觉化。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193133591663986.jpg)
决定AEB系统反应时间的,首先是执行器的反应时间,其次是处理器的反应时间。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193133690827950.jpg)
目前AEB系统的执行器都依赖ESC或ESP,其从接到信号到轮缸有刹车油进入需要大约300毫秒,到刹车力度达到最大需要550毫秒时间,而人类驾驶员只需要大约350毫秒,这个时间对速度为72公里的汽车意味着增加了4米的刹车距离。
下一代EHB系统可以将时间缩短400毫秒,仅需120-150毫秒就达到最大刹车力度,安全系数大大提高,同时也可以回收几乎100%的刹车能量。目前正式量产使用的下一代EHB系统只有博世的iBooster和日立的e-Act。目前只用于新能源车领域。执行器的反应时间限制了AEB系统的工作上限。执行器领域门槛很高,独立厂家只有3家,分别是博世、天合(ZF)和大陆。
除了执行器所花的时间,还有处理器所花的时间。对AEB开发系统者来说,ESP(ESC)是无法选择的,因为那是底盘工程师的领域,AEB开发者只能被动接受,处理器所花的时间一部分是图像识别与距离输出的时间,一部分是数据融合花费的时间。如果是针对行人的图像识别和数据融合,那么总共花费的时间在150-450毫秒之间。
对于AEB系统,视觉部分主要任务是计算出障碍物与车辆之间的距离,而不是识别障碍物是何类型的物体,路面上的大型障碍物都需要避免与之碰撞。对单目来说,要计算距离必须先识别物体,而双目则是先计算距离,再识别或者不识别。
单目摄像头的大致测距原理,是先通过图像匹配进行目标识别(各种车型、行人、物体等),识别出物体的具体轮廓,特别是宽度,根据传感器的尺寸,再通过目标在图像中的像素大小去估算目标距离。这就要求在估算距离之前首先对目标进行准确识别,是汽车还是行人,是货车、SUV还是小轿车。准确识别是准确估算距离的第一步。要做到这一点,就需要建立并不断维护一个庞大的样本特征数据库,保证这个数据库包含待识别目标的全部特征数据。比如在一些特殊地区,为了专门检测大型动物,必须先行建立大型动物的数据库;而对于另外某些区域存在一些非常规车型,也要先将这些车型的特征数据加入到数据库中。对于车辆,这个数据库还算好做,全球车型毕竟有限。对于行人,难度颇高,出了简单的模型数据库,先进的要用HOG。识别准确率越高,距离计算就越准确。
而双目检测的方式就是通过对两幅图像视差的计算,直接对前方景物(图像所拍摄到的范围)进行距离测量,而无需判断前方出现的是什么类型的障碍物。双目是测量距离,而不像单目是估算距离,理论上双目精度可以达到毫米级。
11款车AEB测试数据对比
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193133818303548.jpg)
很明显,双目的计算距离所花费时间远低于单目系统,因此双目的斯巴鲁有绝对优势,尽管斯巴鲁的双目系统推出于2008年,但是比目前任何一款单目的AEB系统要好,包括特斯拉的三目系统,比沃尔沃的XC60这种融合激光雷达、毫米波雷达和摄像头三者融合的还要占优。需要指出的是,XC60的激光雷达是简易型非扫描型激光雷达,价格非常低廉,低于毫米波雷达。
目前汽车领域最先进的行人识别都是使用HOG,而非深度学习。深度学习的嵌入式应用完全无法实现,功耗和成本都太高,这并非其主要缺点,最重要的是深度学习是一个黑盒子,它在某一个测试集上(如Kitti)表现很好,但是换一个测试集就表现很差,而其中的原因却无从得知。深度学习的表现非常不稳定,这对要求高可靠性的传统汽车厂家来说完全无法接受。
HOG(Histograms of Oriented Gradients)是一个手工设计特征的浅度学习模型,HOG不止可以用来检测行人,也可以检测狗、猫等等几乎任何物体,所做的工作只是训练样本的不同,所以HOG特征可以称为object检测方法。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193133956590108.jpg)
上面是HOG流程,最后一步需要行人分类器,根据大量的样本构建行人检测分类器。提取的特征主要有目标的灰度、边缘、纹理、颜色、梯度直方图等信息。OpenCV里有行人检测分类器(线性SVM)的开源代码,OpenCV自带的分类器使用的是2005年CVPR那篇文章中作者训练好的分类器,所以设计起来并不难, 部分误检可以通过差分解决,但是在拥挤的人群里,误检率很高。不过不要怕,低速工况下搞个免责条款就OK啦。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193134069641324.jpg)
上图是东芝针对ADAS尤其是行人HOG检测推出的一款ASIC,代号为Visconti2,用在丰田的大型车和普锐斯上,效果非常好。它采用了硬件加速器,速度远远超过IP软内核。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193134646655668.jpg)
Visconti2的处理时间大约需要79.3毫秒,而一个1Ghz的CPU需要3.98秒。
Visconti2可能是目前最快的车用行人识别芯片,不过缺点也很明显,太贵。东芝还推出了Visconti4芯片,速度更快,但是要到2018年量产。考虑到出货量非常有限,东芝这款ASIC肯定是亏钱卖的,估计出货量要达到500万套才能覆盖其研发成本。其他厂家多基于FPGA使用软核IP做行人识别的,估计需要150-250毫秒,甚至300毫秒。优点是芯片的价格可以便宜不少。
单目相对双目缺点非常明显,但优点也很明显,成本比较低,特别是边际成本。双目的缺点是计算量大,没有合适的ASIC可用,只能选择FPGA。而FPGA需用特别的VHDL/Verilog语言,这种类似于软件画电路图的本事能掌握的人很少,所以限制了双目的使用范围。同时双目系统对配对一致性要求极高,对于系统的机械加工精度要求高,双目之间基线越长,性能越好,但机械精度和一致性要求就越高,因此只有斯巴鲁敢用31厘米的基线,而宝马的双目都要远低于这个尺寸。
通常双目是不识别物体类型的,当然双目也可以像单目那样识别物体,不过双目在行人检测领域有独特的方法,效率非常高,这就是Stixel(sticks above the ground in the image)。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193134781016296.jpg)
所谓stixel就是指对图片中地面以上的柱状物体进行建模,显然,图像中的树木,人,海报之类的物体都可谓柱状物。利用stereo image可以直接计算出stixel,而无需计算所有的深度(视差)信息。在进行行人检测时,对图像中的地面和stixel进行估计,并设置stixel的高度为1.75m,在CPU上可以达到135fps的速度,这是目前行人检测领域最高效的算法。
AEB的盲区问题,主要源自摄像头的FOV,就是视角的问题。FOV角度很宽,覆盖面就很大,但有效距离就会缩短不少。FOV角度很窄,覆盖面缩窄,近距离有明显的盲区,但有效距离会增加不少。通常取一个中间值,就是45度。三目就完美解决这个问题,它使用三个摄像头,FOV分别是45、25、150度。既有长的有效距离也有宽的覆盖面,但是几个摄像头之间的转换过渡,需要设置滤波器来滤除相同的信息,这就增加了处理时间。
毫米波雷达和摄像头一样,也有FOV的问题。远距离毫米波雷达的FOV很窄,会在车前形成明显的盲区。解决办法有两种,一种是增加两个短距离毫米波雷达,奥迪通常就采用这种做法。另一种是采用双FOV的毫米波雷达,这种雷达拥有两套系统,一套FOV很窄,一套FOV适中,德尔福有这种设计。
再有就是光照度的问题,低照度情况下,无论单目还是双目,性能都会迅速下降。另外正对阳光时,摄像头也会失明,即便是动态范围再高的摄像头也无法避免。虽然这个失明只有几秒钟,但这就埋下了安全隐患。另外,进出隧道时,光照度的急剧变化也会让摄像头短暂失明,而这正是最危险的阶段。此外,雨雪雾霾也让摄像头几乎无用武之地。
激光雷达可以弥补目前AEB系统中的大部分缺点,并且4线或8线激光雷达就可以。激光雷达在雨雪雾霾时,有效距离会下降,但仍然可保证准确性和可靠性,只需要降低车速即可。即便是人类驾驶员,碰到雨雪雾霾也需要降低车速。而摄像头,碰到雨雪雾霾几乎无法工作。激光雷达也没用盲区的问题,即使FOV很宽,有效距离也不会缩短,可以达到150米,而双目(45度FOV)一般是50米。在距离计算上,激光雷达准确度更高,效率也更高。当然,激光雷达有个严重缺点,成本太高,不过只要需求旺盛,成本自然可以快速下滑。
最后需要指出,一套完整的AEB开发系统最少需要2年的开发周期。
![](http://www.shujubang.com/UpLoads/Special/File/2017_01/636193134920445478.jpg)
有些厂家急功近利,取消了最关键的验证测试和场地测试,直接上路,拿活人做小白鼠,这种藐视生命的态度,是万万不可取,早晚会有大麻烦的。