机器视觉演算法如何精准地实现对障碍物的识别?
&>&> 本问题已加入 人工智慧 · 自动驾驶 圆桌中,欢迎关注圆桌参与更多讨论 &
道路上的障碍主要分为两类,一类主要指行人、车辆、交通标识等,另一类障碍物还包括石头、塑料袋等非常规物体的识别。
目前,MINIEYE的ADAS系统进行的是前者。MINIEYE的视觉演算法将人与车进一步细分成了以下几个类别:
人:普通行人、打伞的人、骑车的人(骑自行车的人、骑电动车人、骑摩托人)
车辆:普通汽车、特种汽车(运钞车、三轮车、大型卡车等)
交通标识:车道线、红绿灯、限速牌
目前,MINIEYE提供的解决方案有两种:基于摄像头的方案和基于摄像头与毫米波雷达融合的方案。两种方案中,工程师会依据各个感测器的特点进行演算法设计。利用感测器采集的信息,对其进行时间轴对齐、匹配、信度融合等操作,从而完成对周围环境的感知。基于感知信息,实现一系列的功能:前车碰预警、车道偏离预警、车距监控、前车启停提醒等。
下面,我们再来了解一下,当摄像头拍摄到一个障碍物的时候,整个视觉建模是怎样进行的。
第一步:根据摄像头所采集的图像,检测演算法能够定位出前方目标物体(车辆,行人等)的具体位置并提供其大致的轮廓,这个阶段的误差范围还较大。
第二步:基于物体的位置和轮廓,分类演算法对目标进行精确的识别,同时回归演算法对其进行特征点定位,进而得到目标紧致的轮廓信息。
第三步:利用连续帧图像的内容、排除交叉关系和周边环境的干扰,得到关键车辆的视觉信息。
第四步:监测前方关键车辆的距离、速度、碰撞时间等,必要时提示驾驶员并给出预警。
完成了建模,并不代表整个视觉识别的过程是一帆风顺的,逆光、强光、雨天、雾天、隧道、夜晚等特殊情况都会对视觉识别带来困难。
针对这些特殊情况,视觉演算法的识别的难点主要有三个:
1.图像成像质量、表观不一(逆光环境、隧道行驶)
2.解析度不够高(距离较远状况下)
3.演算法的计算能力有限。
一个良好的视觉演算法系统必须平衡好距离、清晰度、成本三个方面平衡。
为了解决上述问题,MINIEYE对整个视觉演算法系统都需要进行相应的调整。
摄像头:利用cmos的选型(尤其关注HDR和低照指标)和ISP参数优化,保证低光照等条件下的图像清晰度
演算法:根据参数,利用视觉原理,对车辆与人进行跟踪,在某一帧图像质量较差时,进行预测,形成动态的决策机制。
图像质量增强:针对雨天、隧道等特殊环境,进行额外的图像质量增强,处理雨珠、增强锐度等。
在相似物体的甄别上,比如大型卡车与小型卡车的高度不同,无论是传统演算法,还是深度学习演算法,都能感知到两种车型完全不同的高度,MINIEYE还设立了专门的数据组来收集样本,实验各种新的演算法,并根据特定场景,开发适应于产品的演算法。
相比于人眼,视觉演算法具有明显的优势。一方面,在低照度情况下,摄像头的识别能力远胜过人眼,在夜晚,人眼的识别只能达到0.2勒克斯(照度的单位,被光均匀照射的物体,在1平方米面积上所得的光通量是1流明时,照度即为1勒克斯),没有月光、路灯辅助的情况下,基本不可能看到车道线,摄像头的动态感知能力却完全可以克服低照度条件下的识别。
另一方面,人眼是基于动态对物体进行识别的,这并不是一个实时系统,具有明显的滞后性,而机器的算力强、运算速度快,能够迅速识别静态物体,比人眼更加敏感。此外,在测距方面,未经专业训练的人眼只能测出一个模糊的距离,而摄像头能够做到高精度的距离识别,测距误差低于5%,这一特性能够帮助驾驶员更好地做出正确的判断。
最后,总结一下,对障碍物的精确识别,是一个复杂的过程,它包括了先验知识融入、图像跟踪、图像质量增强、摄像头选型调参、环境感知融合决策,多样本优演算法等一些系列流程,视觉演算法的精度也因此成为了ADAS产品的核心竞争力之一。
MINIEYE的其他回答:
自动驾驶汽车为什么不能在雨中行驶?
未来十年哪些基础科学突破会影响自动驾驶行业?
深度学习领域有哪些瓶颈?
深度学习在无人驾驶汽车上面的运用有哪些?
汽车的自动驾驶技术为什么要采用那么多感测器?
为什么最近几年 FPGA 变得越发受大家重视了?
进一步了解MINIEYE:
MINIEYE是一家什么样的公司?
在MINIEYE工作是怎样一种体验?
MINIEYE 官方网站:
MINIEYE - 为自动驾驶提供精准的视觉感知?
加入MINIEYE:
MINIEYE招聘职位-拉勾网-专业的互联网招聘平台?人类的交通环境非常复杂,机器必须学会「看懂」障碍物,才能做出有效的规避指令,保障驾驶过程安全顺利,演算法想要良好的运转,当然离不开底层硬体的支持。
SLAM(同时定位与地图构建)作为基础技术之一,在自动驾驶、机器人、无人机等方面均有广泛应用,SLAM 中常用的有单目相机、双目相机、RGB-D 深度相机、激光雷达等等。
想要实现 SLAM 的「定位」和「地图构建」,需要机器对环境有三维感知,因此深度信息非常重要。而上文提到的众多类型的相机感测器就成为了机器的「眼睛」。
激光雷达通过发射和接受反射回来的激光束,获得距离、速度等信息;
单目摄像头需要对比机器在移动过程中拍摄到的图像变化,来判断与物体之间的距离;
双目摄像头更像人眼,可以通过两只眼睛看到图像的不同,直接获取深度信息;
RGB-D 由于配备了红外发射器和接收器,利用结构光方法就能直接获得周围环境的深度信息,我们也将它称为深度相机。
有了这些不同种类的「眼睛」,机器可以感知到周围的信息了,但如何「更精准的」实现对障碍物的识别呢?
答案是更多的感测器和更好的演算法。
但一辆车需要考虑车辆整体设计的需要,使用场景、成本、车辆整体性等问题都要考虑,这时人们就需要多感测器融合技术(Sensor fusion)来解决问题。
感测器数据融合的定义可以概括为把分布在不同位置的多个同类或不同类感测器所提供的局部数据资源加以综合,采用计算机技术对其进行分析,消除多感测器信息之间可能存在的冗余和矛盾,加以互补,降低其不确实性,获得被测对象的一致性解释与描述,从而提高系统决策、规划、反应的快速性和正确性,使系统获得更充分的信息。
通过多感测器数据融合技术,将车辆中来自激光雷达、相机等不同感测器的数据进行融合,提高整体的识别效率和准确率。
例如特斯拉的 Autopilot 系统,搭配了 8 个摄像头,12 个超声波感测器以及前置雷达来提升车辆的感知能力,将这些感测器提供的实时数据很好的整合并进行计算,才能达到「自动辅助驾驶」的能力。
不过目前的自动驾驶系统还未达到「无人驾驶」的地步,即便是特斯拉也只能称自己为「自动辅助驾驶」,还是需要驾驶员坐在驾驶位,以便遇到突发情况时随时接管车辆。
BTW:关于 SLAM 的更多知识,欢迎来小知的专栏《知智一分钟》多了解一下~
KnowingAI知智:无处不在!超火的 SLAM 技术藏在哪儿?| 知智一分钟?计算机视觉在过去十年内取得了巨大进步,但是任何汽车厂商如果单纯采用摄像头来做智能驾驶并宣称系统安全,都是不负责任的。
1.首先分析是何种障碍物,障碍物的特点,以及使用何种感测器获取信号。
2.一般有两种方案进行操作。第一种是使用图像处理+特征抽取+模式识别的研究方案,另一种就是使用机器学习的方案。
3.使用第一种方案,就是对目标进行分析,根据目标的特征寻找或者设计图像处理方法将目标物分割出来,然后使用某种特征提取方法,对ROI进行特征抽取,将特征送去模式识别演算法中进行分类进而达到识别的目标。
4.使用第二种方案,对样本库进行打标签。然后送去分割网路或者是学习演算法,深度网路等进行分割、识别。目前常用的图像分类网路就是CNN,根据训练的结果达到识别的目标。
精准两个字用在机器学习上是不恰当的,自动驾驶的实现目标最多是超过人类识别率多少个点而已,没办法做到百分百绝对安全,这是机器学习的数学本质决定的。
推荐阅读: