大家好,我是SYUI,目前在上海地区某五百强企业自主品牌担任自动驾驶视觉感知工程师的职位,本篇文章将对自动驾驶的视觉感知做一个全方位的剖析。
VisionPerception(视觉感知)系统主要以摄像头作为传感器输入,经过一系列的计算和处理,对自车周围的环境信息做精确感知。
感知的目的在于为上层智驾融合层提供丰富的信息,包括被检测物体的类别、距离信息、速度信息、朝向信息,同时也能够给出抽象层面的语义信息,包括交通灯、交通标志的语义信息。
是不是难以相信,普普通通的摄像头竟然可以如此强大,我们尝试把它变成汽车的眼睛,配以深度学习算法,组成有感知形态的大脑。
视觉传感器:主要分为周视相机和环视鱼眼相机,前者视角较小,一般为60°或120°,主要用来感知距离较远的场景;环视鱼眼相机视角较大,可以达到180°以上,对近距离的感知较好。
感受一下鱼眼相机的超大广角
数据采集标注:采集大量的实车数据用来标注,包括所有感知系统需要检测的类别全部需要进行标注。
相机标定:对相机做内外参标定,直接影响测距的精度;
目标检测分类及测距:输出被检测物的类别以及距离信息,包括车辆的3D信息和速度信息;
多目标追踪:对帧间信息做匹配,确保检测框输出的稳定和预测物体的运行轨迹;
通行空间及场景理解:输出自车可以通行的安全区域和对红绿灯和交通标志等场景的理解。
抛出百度Apollo的perception的感知方案,这里主要关注相机的感知
图片来源:https://github.com/ApolloAuto/apollo/blob/master/docs/specs/images/Apollo3.5_perception_detail.png
梳理下它的流程:
相机输入-->图像的预处理-->神经网络-->多个分支(红绿灯识别、车道线识别、2D物体识别转3D)-->后处理-->输出结果(输出物体类型、距离、速度代表被检测物的朝向)
即输入摄像头的数据,以每帧信息为基础进行检测(detection)、分类(classification)、分割(segmentation)等计算,最后利用多帧信息进行多目标跟踪,输出相关结果。
上述核心环节仍是神经网络算法,它的精度、速度、硬件资源利用率都是需要衡量考虑的指标,哪一个环节做好都不容易,物体检测(OD)最容易误检或漏检、车道线检测拟合4次方程曲线不容易、红绿灯这类小物体检测难度大(现有路口长度动则50米以上),通行空间的边界点要求不要太高。
针对不同场景,感知的内容有所差别:
园区场景:低速(小于10km/h),主要起作用的感知系统为环视鱼眼相机,针对近距离物体的感知,近距离需要视角较大,所以采用广角更大,畸变较大的鱼眼相机。感知的内容包括动态物体检测、库位检测以及通行空间(可通行区域)。
城市场景:正常车速(30km/h-80km/h),对算法的实时性要求很高,举个例子,汽车以60km/h(=16.6m/s)的速度前行,若检测结果有一眨眼的延迟(假设0.5s的延迟),汽车就已往前开出接近10m远,0.5s内10米范围内的物体没有被感知系统检测出来的话,就直接撞上去了。
没有AEB紧急刹车,下一秒可能就是一个生命的消失。
总得来说,视觉感知包含动态物体检测(车辆、行人),静态物体检测(交通信号灯、交通标志),车道线检测,通行空间共四大模块。
视觉感知看似很强大,仅凭摄像头能实现这么多内容的感知,但其仍存在很多挑战。
1.没有车规级的代码,和与之匹配的硬件;
现在的视觉感知系统都是基于深度学习框架做开发,视觉供应商们对汽车功能安全的标准可能还未考虑过,demo车居多,能上量产车的代码难上加难;支持深度学习框架的硬件平台现在默认的是Nvidia支持的好,无论是图森、Momenta还是主机厂等众多厂商,首选都是NV的硬件平台。现在NV出的最高配硬件平台是Pegasus,官方宣称是上一台产品PX2性能的2倍,撇开硬件好坏性能不说,这套硬件平台的软件bug较多,相机读取调用、编解码、成像效果都不尽如人意,时间戳同步问题,经常死机等问题,给人的感觉是产品尚未成熟就放到市场,先让众多厂商试试水,然后给他们反馈问题,NV接着跟进不断迭代这款硬件产品。
国内的独角兽企业地平线也在推广自己的硬件平台Matrix(征程、旭日处理器--名字很霸气),这款平台是基于fpga的硬件架构,具体的使用同事感知效果还不错,但并未上车实车验证过。
除了这两家,还有传统零部件厂商的硬件产品。
2.实际情况复杂,感知难以做到100%;
都说特斯拉激进,不能确保100%安全的情况下,推出的智能驾驶系统,不是没有道理的。曾体验过一次ModelS,在高速公路上,特斯拉的跟车、刹车、高速巡线都是做的极好的,较为复杂的cutin/cutout,特斯拉也是不安全的,要切换变道时,对于左、右后方来车的距离判断,加速判断,还是没有老司机稳,偶尔会出现一些很紧急危险的状况发生。感知系统要做到能够每时每刻处理大量的数据,百分之百的检测和召回率,非常高的精度,实在是太难。
关于红绿灯场景识别难点的回答:
3.自娱自乐产demo,后端优化是关键;
给予一个有2/3年的视觉感知团队几个月的时间,复现产出一版能上车的demo版感知系统是没问题的,cover掉一些场景也是没问题的。更高的要求在于一些特例或极端情况的处理,一些长得很像人的小树(误识别),夜晚来临时商店的夜灯与红绿灯类似,雨雾天气的识别。神经网络黑盒不是万能的,它就像一个小学生,很聪明,记忆力很好,潜力巨大,灌输什么知识,能够立即回答相应的问题。但要让小学生既要懂得高深的数理化(类比于感知系统中的初始检测结果),也要有极强的文学素养(类比于感知系统中检测结果的后处理优化,更好更完美的表达输出的结果),太难了!!!或许,我们可以做这样一个假设,多派一些这样优秀的小学生。深度学习(Deeplearning)太依赖数据,其训练模型的泛化能力是未来急需攻克的,以增强神经网络的可拓展性。
自动驾驶最新技术路线相关的,可以参考:
关于自动驾驶、关于人工智能你可能还感兴趣:
如果想继续关注人工智能、无人驾驶、视觉感知、工程落地等行业发展的新动态,欢迎关注我,也欢迎大家与我进行交流。
完~
未经授权,请勿转载。
全部评论 (0)