晚上喝了杯冷萃,现在毫无困意。想着最近一年工作角色的飞速转变,觉得还是需要经常做些总结。遂从床上爬起来,写一篇关于ADAS前视感知测评的技术文章,尽量做到见微知著,和大家一起交流。 目录:1、前视感知在ADAS/AD中的意义; 2、前视系统的软硬件组成; 3、前视感知算法的测评需求; 4、前视感知算法的测试工具链; 5、测评新技术的展望; 一、前视感知在ADAS中的地位作为普通顾客,如果你花十几万买一款新车,那么它大概率标配了FCW、AEB、ACC等辅助驾驶功能。比如,吉利品牌下面的畅销车型博越SUV,其就是配置了某家国外供应商的前视感知系统,它输出的检测结果,会和车辆上的雷达探测结果进行融合,共同完成对自车前向的目标物检测。前视感知系统(Front Looking Camera System)简称FLC,它前视感知是感知系统的核心组成,主要原因因为汽车95%以上的行驶工况,都是在往前开的。 所以前视感知系统是用来探测自车前向目标,它能够对前向特定目标进行准确的识别、位置估计、3d追踪等功能,其输出的结果,会用于后续的融合、决策等算法模块。那么前视感知系统在一个ADAS/AD系统中占据什么地位呢?简单来说,就是汽车看得远的眼睛。 Tesla Model S(14款,Autopilot 1.0)上只使用一个价格低廉的像素1.2M、HFOV 52°的前向单目感知系统,大约可以检测到150m远的车辆,你可能不觉得这个东西的意义有多大,但是价格要贵几倍的Bosch 4nd Front Radar也仅能够检测到最远160m处的目标。 此外,前视感知系统具备丰富的语义信息识别能力,它还能够提供很多前方道路环境信息,我们以Eye Q3的部分感知功能举例:
可以说前向感知为自车提供了丰富的前方道路环境信息,为ADAS/AD系统重建了世界道路模型,能够让自车理解道路拓扑结构,认识道路上的动静态目标,理解交通信号灯和交通标识的意义。车辆有了这些能力,就具备了类人的视觉感知能力,为进一步实现自主驾驶,提供了基础。 二、前视系统的软硬件组成 ok,前面扯了这么多,那一个前视系统到底是什么样的呢?我们可以先从Tier 1采埃孚(ZF)的前视三目摄像头(S-Cam4)产品聊聊,引出前视系统的软硬件。 ZF S-Cam4硬件拆解上,直接引用下朱校长的文章:https://xueqiu.com/6659575183/153056431 ZF的S-Cam4 包括两个版本,一个三目的和一个单目的版本,三目版本包含一个150°的广角摄像头用于监视车辆周围环境,一个52°的中距摄像头和一个28°的远距摄像头。 3个前视相机通过硬线接口连接在电路板上,通过ISP算法得出人类可感知的图像,再通过MOBILEYE EYE Q4芯片对图像进行处理,得出感知系统的计算结果,输出给下游算法模块。 上面我们从硬件层面初步认识了前视感知系统,下面我们再来聊聊前视感知系统的软件。 现在主流的前视感知都使用单目视觉,比如上面我们提到的S-Cam4也是三个不同检测用于的相机分别运行得出感知结果,只是每个相机承担的功能各有侧重。比如: HFOV 28°的窄视角相机,能够识别到前方260m的车辆,主要用于Highway场景的远处车辆识别; HFOV 52°相机一般是主相机,需要感知的前向目标大都需要这个相机来检测; HFOV 150°相机叫做广角相机,主要用于路口场景横向目标检测; 单目视觉的感知算法,各家算法公司都是采用了深度学习(Deep Learning),因为大家发现rule base 的感知算法检测率远远低于DL的视觉感知。深度学习算法,需要有海量标注数据,用于训练感知算法模型。一个训练出的感知算法模型可以是只检测一种目标的(车辆/行人/自行车)、也可以是检测多种目标(车辆+行人+自行车)。另外,深度学习算法模型可以是只用来做2D识别的,也可以是直接输出目标物类型和3D信息的。(*2D是指目标在二维照片上的检测,3D是指目标在物理空间中目标的三维位姿信息。) 三、前视感知算法的测评需求 那么前视感知算法的测评需求有哪些呢?谈具体的需求,就需用从产品使用的场景出发,依据需要达到的功能性能,反推出具体的模块需求。我们从一个L2+交通拥堵辅助系统TJA(Traffic Jam Assist)为例,来的拆解一下对前向单目感知系统的需求: TJA主要的功能描述如下: 自车需要在0-60km/h车速范围内,实现在当前车道中央,跟随前方的动静态目标行驶,要对应于交通拥堵的高速公路驾驶场景。 对于前向感知系统的需求,上面主要提到了两点:1、要能够检测到车前向道线,给出当前车道的车道中央引导线;2、能够检测到前向动静态目标,给出目标的3D位姿; 针对于这两条需求,我们把需求细化一下:
除了以上两条细化需求,还有吗?当然还有,我们细想一下,这个世界有哪些类型的车道线,有哪些类型的动静态目标? 以上我们对需要探测的车道线、动静态目标做了些举例,这些都是我们在生活中场景的景象。一个人的阅历是有限的,这个世界上多的是我们没见过的事。其实以上尚没有把前世感知需要达到的感知需求说尽全。还需要考虑的因素有:
总结一下,综合以上测评需求,我们对前视感知系统提出了众多的测评指标,简单来说就是在各种环境场景下,前视感知系统对需要探测到的各类目标能否看得到(detection range),看得清(检测分类P/R、追踪tracking),看得准(position、angle、velocity、accelerate、continuity...),看的明白(prediction),当然了目标对自车驾驶行为产生影响越早、越严重,指标要求则越高。 四、前视感知算法的测试工具链 假设我们已经有了一份详尽的前视感知系统需求,并且提出了具体可量化的指标需求,那我们要如何针对指标需求进行测试呢? 通用的前视感知测评工具链有以下几部分组成:
1和2组成了基本的车端感知测试工具,能够满足系统集成商(OEM、Tier1)对前视感知系统的基本测评,能够感性的了解到前视感知的输出结果。 3、4是在解决了感性认知层面后,需要对系统进行指标化测评,实现算法性能迭代用到的工具链,一般只有算法开发公司才会具备这套开发能力。首先通过一个精度满足一定需求的设备,获取一个比待评测目标更精准的结果。这个结果在算法评测上被称真值,简称GT(Ground Truth),而待测的前视感知输出结果则称为检测结果,简称DT(Detection Results)。GT和DT都有了,就可以开发一套评测代码,拿需要评测的DT和GT做比较,从而得到评测指标的结果,最后再开发数据可视化代码,从而更好的展示测评结果。 那么真值怎么搭建呢?可以参考的方法有很多,总的搭建原则是:精度满足、成本低。下面我举一些前视感知真值的事例:
以上真值搭建案例故事纯为虚构。 在1-4的基础上,我们可以做到算法的车端测评,但是我们不可能只在车上做算法测试,一方面是那样的效率太低了,另一方面是待测目标会随着自车运动而运动,很多算法处理不好的corner case都是转瞬即逝的,我们很难对修改后的算法进行问题场景的复测。这就要求我们需要能够将车端测评转到办公室测评,车端发现的问题都能够在办公室复现。 通过开发5、6工具,我们可以很好的解决这两个问题。数据采集设备是一套能够记录车辆原始数据(相机图像数据、CAN数据、GPS等)、算法计算结果(前视感知算法输出结果)的数据采集设备。通过数据设备,我们可以采集到满帧率的车辆运行数据,一般L2+车辆需要采集的数据量在几十MB/s。有了车辆在实际运行过程的原始数据和算法结果,我们就可以拿这份数据回注到嵌入式处理器中,去做算法debug,或者用更新后的算法做回归测试。(*还可以通过对数据时间轴加速/减速,做云端大规模服务器集群的海量数据回放测试。) 这里就给Dspace大哥打个小广告吧。 数据采集和台架回注测试工具呢,全球做的最好的供应商应该就是Dspace了,其他都是弟弟。不过这样的工具链,采购都很贵的。建议还是像我们公司一样,大家自己开发吧。 五、测评新技术展望
版权声明:本文为知乎「熊猫之吻」的原创文章,已获作者发表许可。 |
|