雷锋网按:本文内容来自中科慧眼副总经理孟然在硬创公开课的分享,由雷锋网旗下栏目新智驾(微信号:AI-Drive)编辑与整理。
孟然,原华夏视科集团联合创始人,从事信号处理、机器视觉等相关领域的研发,设计与市场运营工作十余年,具有丰富的视觉产品生产与营销经验,销售业绩达数十亿元,并拥有多项机器视觉相关专利。2014联合创立北京中科慧眼科技有限公司,任副总经理,主管公司的产品研发及市场。
内容介绍
本期雷锋网公开课包括以下内容:
1、用于汽车感知的传感器种类;
2、单目视觉与双目视觉的特点和优势;
3、双目视觉的关键技术;
4、双目深度信息的评价指标;
5、双目摄像机的研制;
*公开课全程视频
1、用于汽车感知的传感器种类
自动驾驶分为感知、决策以及控制。而感知,分为三大类传感器:雷达、单目视觉、双目视觉。
雷达的种类非常多,有激光雷达,毫米波雷达,以及各种各样不同波长的雷达。激光雷达探测距离远、精度高、反馈速度快。但也有缺点,比如造价高,对黑色物体不敏感。毫米波雷达是一个二维雷达,分为单模和双模。毫米波雷达对生物体不敏感,超声波雷达测距范围有限。
单目视觉首先通过识别进行分类。比如说汽车、行人,进而计算出对物体的碰撞距离,也就是说单目视觉计算出来的值,只是一个碰撞时间。
双目视觉不做具体的测量,而是利用左摄像头和右摄像头的视差去计算传感器与物体之间的距离,从而实现碰撞预警。
对于一辆自动驾驶汽车来说,主要是由这几部分组成(如上图):
摄像头(单目或双目),各种雷达,比如激光雷达、毫米波雷达、超声波雷达。那么雷达通常与什么相配?与 GPS、惯性导航和高精度地图。GPS 用于定位,惯性导航在没有定位的时候提供精确位置计算,上述传感器构成了一个自动驾驶汽车的智能系统。
所有的这些信息汇总到它的「大脑」,这个「大脑」进行路径规划,最终传给汽车的执行系统,对汽车进行全自动控制。
一般而言,ADAS 提前 2.7 秒就可以把事故的概率降低到 90% 以上。
实际上很多人有一种错误的概念,认为提前的时间越长就越安全,实际不然。提前警报时间越长,会对驾驶者的某些判断形成干扰。但提前警报时间越短,可能驾驶者来不及作出反馈,造成事故发生。
所以,最好的方式是提前的时间不多也不少,与驾驶者驾驶习惯契合,这个时候的体验才是最好的。
那么雷达和摄像头是不是只需要一种传感器就可以了?当然不是。现在业界有一个共识:未来的全自动驾驶汽车一定是多传感器融合的感知方式。
雷达擅长探测远距离的大目标,对于图像感知(单目和双目),这种感知实际上是二维的,更适合捕捉细节,比如停车场进出口的横杆,用雷达检测通常会丢失。比如说车道线、交通标识以及更细小的物体,如果我们用视觉的方式可能会检测得更精确。
在 2016 年之前,基本上所有的高端车型都已经配备了 Mobileye 单目视觉,比如沃尔沃、奔驰、宝马。
那么在近几年,包括 2016 奔驰 S 级、2016 奔驰 E 级、2016 宝马 7 系、2017 宝马 5 系、斯巴鲁都已经从单目改成了双目,包括新出厂的特斯拉,也是改用双目。
所以双目会不会在视觉领域取代单目,现在可以看到一些趋势。已经在一些高端的车型上,开始逐步用双目去代替单目的解决方案了。
2、单目视觉与双目视觉的特点和优势
单目和双目到底谁更好?两者各有自己的优势和特点。
对于单目来讲,第一步,需要进行识别和分类,再通过图像大小的变化估计碰撞时间。双目和单目的原理完全不一样:双目不需要建模,也不需要对物体进行识别,而是利用左眼和右眼的视差去计算距离。
什么叫「左眼和右眼的视差」?
如上图,在双目相机的前面(左上图a):近处有一个人,远处有一棵树,对于左眼形成的图像,人会在树的右侧;而对于右眼,人会在树的左侧。
如果我们把这两幅图像放在一起(右上图b),你会发现离摄像头比较近的人,它的视差比较大,离摄像头比较远的树,它的视差比较小。那么如果离摄像头无限远,它的视差可能为零。
视差与距离一一对应,并且是准确的对应,进而双目可以把这种二维图像转化成三维数据。在转化为三维数据以后,色调更清晰表达这个三维数据:暖色调代表近,冷色调代表远。
双目感知会展示一个彩色图像(如上图),这个图像不是红外图像,而是三维信息图(深度图)。通过这个图像,我们可以很清晰、直观地看到三维信息的感知情况。
单目成本比较低,但它的问题在于,只能感知规则的障碍物。比如汽车、行人甚至自行车。动物也可以被感知,但前提条件是必须对动物的大量样本进行建模。
可是路面上很多信息不胜枚举:比如垃圾桶,建筑物、树木花草或者其他障碍物。但如果去建模,收集它的样本,单目也是可以识别的,但这个工作量太大。所以,对于单目来而言,基本只识别标准的障碍物。
双目的优势是什么?不需要建模,也不需要收集大量样本就可以感知所有障碍物,但它的缺点是计算量大——带来的结果是芯片的成本会提高。当然,整个双目结构也比较复杂。
上图是我们做的双目摄像机的壳体。双目有一个要求,两个相机的相对位置在标定以后不能发生任何改变。这就要求我们必须用一个非常特殊的壳体把双目紧紧锁在壳体上,以维持在四季变化的时候,它的相对位置不发生任何变化。
所以我们在做壳体设计和研发的时候,下了很大的功夫:我们使用了一种特殊金属,把它进行一次塑造成型以后,打造了这样一个双目摄像机的壳体。
上图是 2014 年日本的一份研究报告:通过对富士重工、沃尔沃,日产和宝马四款车型各自传感器配置的组合进行评价。
富士重工的双目摄像头;沃尔沃的“毫米波雷达+单目摄像头+红外线激光”组合;日产的单目摄像头;宝马的单目摄像头。最后排序是这样的:双目是七分,分数高于其他传感器的组合配置。
一般说来,双目在成本上会比单目方案要贵上 20% 到 30% 左右。但是它比摄像头与雷达的组合方案要低将近百分之百,并且具有很好的性能。
所以我们认为未来的传感器融合,有可能是双目摄像头加雷达的组合。
3、双目视觉的关键技术
双目视觉的关键技术有三大类要求:清晰、准确和成熟。
首先是清晰。这是所有视觉产品的要求:包括单目、双目。
什么是清晰?比如汽车从隧道出来或者刚进隧道,在黑白交界的时候,要求图像有一个很好的对比度或者动态范围,并且它的收敛速度(注:因为外部环境光线有变化,软件要去调节适应这种变化,调节的过程不是一步到位,从开始调节到最终符合的这段时间就是收敛速度)一定要快,不可能从隧道出来两秒钟的时候,才收敛成正常的情况。
我们通常用的传感器,比如说 OV(OmniVision)、Sony,对每一种传感器的不同调校都会出现明显的效果和区别,因为这里有上千个参数。所以摄像头的调校与选择,对于视觉传感器而言属于重中之重的一环。
其次是双目的算法:基于“面”和基于“边”。在图像处理领域,有一种技术叫做模版匹配,分为三种类型:面匹配、边匹配、几何匹配。
边匹配是什么概念?边是亮暗区别比较明显的界限,比如说外轮廓。边匹配的时候会把这种高频的轮廓进行左右眼的匹配,因为匹配上以后才能决定视差。
用这种轮廓继续进行匹配,我们管它叫边缘匹配。里面每一个点都能匹配,我们就叫做面匹配。虽然面匹配的计算量远远大于边匹配,但前者的可靠性也大于后者。
因为边匹配只是部分轮廓的匹配,不能确定非轮廓区域有没有障碍物。也就是说,非轮廓区域是没有被感知到的,一旦有障碍物就会发生碰撞。所以我们觉得 ADAS 系统尚且可以使用。如果使用双目系统,尚且可以使用边缘匹配进行计算,从而降低它的计算量,提高计算效率。
但是对于一套自动驾驶系统,为了提高它的可靠性,一定是用面匹配方式进行对前方距离的感知与探测,这样才能达到更可靠的效果。
第三,产品公司通常会遇到量产问题。更细一点,比如说配套设备的成熟度问题。
双目视觉在进行标定的时候,有一个黑白格标定板,可以去确定双目相机的一个相对位置变化甚至每一点的变化,比如伸缩、位移以及旋转。
我们在研究样机包括当时在日本做研究的时候,都是通过人拿着一块标定板,去给设备进行标定,需要花费 1 到 2 小时才能完成一台设备的标定,从而得到一个标定矩阵,完成相机标定。
但在设备量产过程中,我们不能通过这种方式完成,因为时间和成本很高。因此我们要对这种标定设备进行双目特有的设计、研发与制造。现在我们大概需要两分钟就可以完成一台相机的标定。
对于相机来讲,既要自动对焦和自动调平,两个相机还必须保持水平。所有这些要求需要在 ADAS 系统出厂前完成。所以,我们在做产品量产时候,技术的成熟度就显得至关重要。
感知
成像的难点在哪?比如说逆光成像。
逆光的时候,人眼也是会致盲的。所以这就要求摄像头必须适应逆光,也即是太阳光照射的问题。
通常来讲,太阳光照射的时候(如左上图),我们会发现旁边的场景非常暗。由于我们采取自动曝光的策略,要求在逆光的时候,其他的场景不能特别暗:我们可以清晰地看到车道线,汽车以及路面,还有旁边景物。
还有是在傍晚、低光(如右上图)或者下雨的时候,对于人眼来讲,它的感光也非常微弱。
当然,人眼有自动调节功能,通过一段时间的学习与适应,它的曝光时间实际上被拉长。拉长以后,那些物体就能看的比较清楚。
对摄像头来讲,它的曝光时间也会拉长,拉长以后看上去会比较清楚,但丢了对比度。因为曝光时间拉长后,整个全局的曝光时间都会被拉长,图像整体偏亮,但是它没有对比度。
我们要求在夜晚:图像不会太暗,景物之间要有对比度,可以清晰地看到车道线、路面、障碍物、汽车、行人等等。也就是说,我们要求的是一个对比度的问题。
24 小时高品质成像的难点在于:成像质量难以去统一量化标准,并且 ADAS 相机普遍在逆光、雨雾等条件下无法提供有价值的细节。
所以我们必须通过镜头与传感器的分析和实验,自行根据这些要求去调校相机参数。总而言之,不管是逆光还是白天大照度,夜晚低照度,还是说在路灯情况下,我们都要求前方景物有一个非常好的对比度,这是算法对于成像系统的要求。这个时候,我们就要对它的上千个参数进行试验和调校。
分析
对于双目算法来讲,它的要求非常高,我们从 3 个维度去评价它。
首先,我们对于双目算法提出要求,所有的点都需要有感知,并且感知正确。
第二,这些感知区域没有噪声和杂点。如果这个噪声是红色的,可能会当成近处的障碍物,导致车辆的急刹。如果是深蓝色的,它就会认为是很远的障碍物。我们不希望这些噪声过多,而是希望这些噪声能够尽可能的被压制。
第三,没有孔洞(如上图)。一些图像有很多孔洞,表示这一区域没有匹配,也就是说没有距离的感知。没有距离感知,如果有障碍物,它可能就会发生碰撞。
是不是越平滑,越平缓的深度图是我们希望的?也不是,因为过于平缓证明会丢失一些小的障碍物。也就是说,在上述所有的要求都实现的情况下,我们还希望一些微小的障碍物,如树木、路灯灯杆、行人等等,也能够同样准确地被感知出来。
所以双目算法指标其实也是互为矛盾的。我们既希望它平滑,没有噪音和孔洞,又希望它能感知微小障碍物。当然,感知所有障碍物,能够使感知的结果更加稳定和精确,这是对双目算法评测的维度。
4、双目深度信息的评价指标
什么是完美的深度图?
四个维度:面匹配、没有噪音、孔洞以及在此基础上,所有小的障碍物都能够被感知。这是对双目深度图的一个评价指标。
我们看到上图的深度图,它的路面从近及远,从黄色浅蓝色、深蓝色,这是一个平缓的过渡。我们希望是这种感知:一级一级发生变化,两侧的树木、中间的汽车和远方的天空,感知的非常准确,并且没有噪点,而且非常连续和平滑。
效率
为什么我们要求效率?
举个例子,如果一秒钟进行左右图像匹配达到 15 次,车速是 120 公里/小时,相当于每行驶 2.22 米探测一次。换句话说,如果这个距离突然出现一个障碍物,摄像头是没有感知到的,这样就会造成风险。
那么,如果我们每秒计算是 30 帧,车速是 120 公里/小时,相当于每行驶 1.11 米探测一次。这个风险比刚才的失误要大大缩减。
所以我们希望一秒钟探测的次数越多,这也意味着我们计算效率越高,那么稳定性、可靠性或者安全性就会越高。
而效率越高,对于一个固定的计算性能芯片而言,它就会要求算法要简化,但效果的简化就会导致效率变差。效果和效率其实也是一个矛盾体。所以在做产品的时候,需要在效率和效果上取得一个平衡。
5、双目摄像机的研制
上图是我们第一代产品的双目摄像机。
双目摄像机本身我们遇到一些问题。比如说 OV 有一些比较好的芯片支持双目同时曝光和感知,但是我们在做这款产品的时候,我们买的传感器芯片,是不支持同时曝光的。
第一,曝光绝对同步。双目相机最基本的要求就是两个传感器要同时曝光,曝光的时间差要控制到微秒级,否则采集的图像没办法进行匹配。
第二,传感器的位置要固定。两个相机中间的相对位置,要绝对固定,并达到微米级。
第三,双目相机的散热问题。所有的视觉感知一定要贴在前挡风玻璃上,那是风吹日晒的地方。本身双目的功率大,而且也不能用风扇进行主动散热。这对于壳体、热方面的设计和计算,需要我们非常关注。
上图是双目摄像机与激光雷达的一个性能对比测试。
这个场景,前面摆了几个小箱子,我们可以看到 Velodyne 激光雷达发射出来的激光束用红色表示,Ibeo 发射出来的激光束用是蓝色表示,双目摄像机用黑色的点表示。
我们看到,Velodyne 的激光束与 MPV 算法的点基本上重合。这也说明 Velodyne 在探测微小障碍物的时候与双目摄像机的效果是比较接近的。
相机是二维探测,而激光雷达是发射激光束。如果障碍物恰巧在线与线的间隔,那么可能会产生漏检的风险。所以我们要求雷达去探测非常远的物体,需尽早进行预警。
而视觉产品,关注中距离与近距离,它更加细腻,遇到细小的问题,就会更加的准确。我的比喻是「雷达是抱西瓜,视觉是捡芝麻」。所以在整套系统里,它一定是融合的,缺一不可。
精彩问答
问:双目 ADAS 中处理双目图像的像素和帧率一般是多少才能满足实际应用?在双目图像处理过程中使用 FPGA 实现部分甚至全部的算法是否有何优势或劣势?
答:对 ADAS 和自动驾驶系统来讲,它们对像素和帧数的要求不一样。对与辅助驾驶来讲,双目图像像素要求远远低于自动驾驶,包括帧率比全自动驾驶要求得更低。
图像计算是并行计算,我们会用到 GPU 或者 FPGA,FPGA 计算效率比 GPU 更高,FPGA 更像是一款定制化的芯片。GPU 或者他 ARM 芯片是通用型芯片,并不是为了算法而去设计的。所以 FPGA 的计算分辨率更高,帧率也会更高。
问:双目的标定受环境影响大吗?比如车辆震动、温度等因素是否会影响摄像头之间的标定?是否需要在线自动标定算法?
答:双目的标定受环境影响主要看结构设计。如果结构设计可以保证相对距离不发生变化或发生微小变化,那么环境对它的影响不大。结构设计、材料、结构制造工艺要适应环境影响,这样可以把环境影响降到最低。
另外,对于特别微小的变化,再好的结构也难以保证。所以自适应自动标定的算法也是需要的。但有一个前提:形变一定在一个非常微小的范围内。如果说形变非常大,自适应校正是校不回来的。所以,我们必须通过结构去保证它的主要距离不发生变化,再通过自动标定的算法去校正因为环境而导致的微小变化。
问:镜头和传感器属于成本很难压缩的组件,增加这部分成本,能否带来合理的性价比的性能提升来对抗来自传统的单目方案?
答:镜头和传感器在整套设备中并不是非常昂贵。镜头和传感器的成本应该不到 100 元。这套设备主要成本来源于计算芯片 CPU,FPGA 或者 GPU。因为用了双目,计算量变得庞大,导致我们对中心处理要求提升,也带来了成本的增加。核算下来,双目成本应该是单目成本的 20% 左右。
至于性能,单目和双目各有优势,单目是基于识别和分类,双目是基于三角测量。
雷峰网原创文章,未经授权禁止转载。详情见转载须知。