说明:本系列为自动(智能驾驶)感知融合的技术栈和思路(部分图片和资料来源于网络)
本专题是将自己学到的内容整理复习一下,并分享给想学习这方面的人。这是此系列的第一篇文章,主要是介绍,后面也会更算法理解和实现。
本文分为2部分:自动驾驶及传感器简介、传感器标定
目录
1.自动驾驶及传感器简介
1..1自动驾驶分级与产业链
1.2感知模块常见传感器
2.传感器的标定
2.1摄像头
2.2激光雷达的标定(camera2Lidar)
2.3雷达标定
自动驾驶根据SAE分级,分为5个等级:
SAE即美国汽车工程师学会Society of Automotive Engineers)
目前大多公司完成的都是L2级别的辅助驾驶,功能开启时,驾驶员处于驾驶状态,目前最高达到的也就是L4水平的自动驾驶。
目前产业链如上图,宽泛得讲讲自动驾驶模块分为感知、决策和执行模块。
这里我们主要对感知模块进行展开。
感知模块可以看到是后面决策和执行的基础,包含的传感器有摄像机、激光雷达、毫米波雷达、GPS、IMU等等。
感知的主要任务就是通过硬件传感器,对象包含:路面、静态物体和动态物体,涉及道路边界检测、障碍物检测、车辆检测、行人检测、交通信号检测等等。实际上完成检测任务还远远不够,还需要追踪预测运动物体的估计,预计其下一步位置。需要用到多传感器融合技术。获得数据的形式有图像、视频、点云等。
其实传感器融合并不是什么新鲜事物,早在上个世纪都已经出现了,传统上都是基于卡尔曼滤波等统计方法,而如今随着神经网络的发展,推动了自动驾驶的发展,凭借着海量的数据和丰富的网络结构创新,数据驱动下的end2end模式火热发展。
神经网络与传统视觉技术相比:1.更容易迁移到新的目标上,只要获得足够数量的样本、就可以训练得到相应的网络(迁移);2.对于有遮挡物体的鲁棒性,出色的特征提取能力;3.对于光照等条件的鲁棒性;
随着深度学习发展,除了NLP、和视觉方面,出现了对于不规则、非欧式数据上的网络模型,如Pointcloud等。这些新技术使得将如激光雷达、毫米波雷达代入感知领域增强性能成为可能。
但目前,自动驾驶感知领域仍然面临很大的挑战。现阶段很多大型模型能够取得好的效果但是并不能实时处理数据,而不同国家地域的路面情况都有差异,甚至国内不同地区都有不小差异。路面情况复杂,对于视频任务处理的能力往往不能与仅单帧图像效果相比拟。
智能驾驶汽车信息获取一般为车内传感器的融合信息以及V2X车路协同通过5G
等通信方式实现信息交互和共享,基于这些信息,完成对于汽车整体化的控制。这里我们只讨论传感器融合的感知。
首先我们要明确的是,传感器感知是一个软硬结合的产物,既包括硬件的选取方案,又包括软件算法的加持。像前面提到的,硬件包括相机、毫米波雷达、超声波雷达、红外探测器、IMU、GPS、激光雷达等等。多传感器融合就是从不同尺度度对于信息进行整合,相互补充,取长补短,提升系统的稳定性和容错能力。
先从视觉说起,计算机视觉到如今已经有了惊人的发展,和我们人一样,视觉也是无人车的主要感知方式。在交通信号灯、交通标志识别等方面发挥重大作用。马斯克曾在开发大会上表示:他们的纯视觉方案也许会看到T恤上的“停止”符号而产生相应。也许这也是为什么“纯视觉”方案的特斯拉也开始进军雷达界。通过对采集到的图像进行处理,实现分类、分割、跟踪及交通参与者的分类等任务,具有很强的语义信息提取能力,但是在一些光照过弱或过强、视线遮挡的情况下性能退化较为严重,并且最为重要的可见光摄像头无法全天候工作,从而现在有部分车辆加装了被动式红外传感器来对交通参与者进行分类,也取得了一定的效果。比较有名的就是著名红外厂商FLIR,旗下的BOSON甚至可以达到60hz,他们也公布了红外的数据集(但是现在已下架)。对于摄像头而言,常用的也有鱼眼摄像头(fisheye)和针孔摄像头(pinhole)之分。当然对于立体视觉,随着微软的Kinect走入平常百姓家,双目甚至三目也出现在当今的产品中。
接下来我们说说激光雷达,激光雷达的分类有很多种,根据波段分,根据结构工作方式分等等。ToF是主流激光雷达的原理。905nm是最为常见的激光雷达波段,价格相较于1550nm的便宜不少,都属于红外波段。结构上,目前最为常见的就是旋转机械式,其最显著的特点就是360度FOV,是最成熟的激光雷达类型,有较高的精度,缺点是机械式的旋转结构可能需要考虑长时间使用的问题,最最重要的是它的价格,但是随着国产厂商的加入和技术发展价格已经下降不少了,根据业内人士“激光雷达发展也复合摩尔定律” 。另外一种就是类似于速腾的M1激光雷达(半固体)其原理是MEMS Mirror,通过微电机振镜谐振完成扫描。水平视场角为120度,MEMS激光雷达原理图:
目前智能驾驶车辆搭载的激光雷达:
激光雷达最大的优点就是其分辨率高,表现在距离、速度、角分辨率之上。稠密的点云可以实现对人、车辆、树木、建筑等的识别。但是在雨雪天气下可视距离会受到很大影响。
毫米波雷达是非常常见的雷达,其很好的速度分辨率可以对目标测速、测角以完成安全预警。场用的车载雷达都是FMCW,根据发出与收到的差频信号完成距离和角度的测量。同时根据不同chirp之间的关系多普勒测速。相比于激光雷达其具有很强的穿透性,对于金属材质相应明显,宽的频带带来了更远的测距范围,但是一般杂波较多需要处理、传统雷达只有平面信息和速度信息而缺少了高度信息,目前4D雷达的出现弥补了这一问题,并且能产生较为稠密的点云,是如今一个非产有前景的发展方向。
超声波雷达常用于避障,探测距离1~5m,精度1~3cm,穿透性强,结构简单,价格便宜。常安装在汽车的前后保险杠和侧面。其缺点是对温度敏感和方向性差。在自动驾驶的自动泊车、倒车辅助上发挥作用。
IMU,组合惯性导航,核心部件是陀螺仪和加速度计,根据陀螺仪位置建立坐标,根据加速度计输出位置。GPS和IMU结合,可以不断修订IMU长时间的位移漂移,并将IMU坐标系转化为GPS中目前准确的坐标系。不断更新当前位置和速度。RTK服务使得GNSS更加精确,但是一套IMU+GPS再加上RTK服务价格十分的昂贵。惯性导航系统是整个定位模块融合的核心。
下面是总结:
以上介绍了自动驾驶主要的传感器,而每个传感器都有自己的坐标系,那么为了对于空间中的物体有一个统一的映射关系,对于设计好的传感器结构我们就需要对其进行标定将其统一到统一的时空坐标系下。这一点尤为重要,严重影响精度,由于汽车震动等原因需要我们隔段时间就对结构重新进行标定。对于固定的结构,我们将其视为三维刚体变换。
摄像头成像可以简化为“小孔成像”模型,对其来说存在四组坐标关系:即世界坐标系(以m为单位)、相机坐标系(以mm或m为单位)、图像物理坐标系(即物理成像平面,图中底片中心,单位一般为cm)像素坐标系(以pixel为单位)
具体推导可以参考:https://zhuanlan.zhihu.com/p/476032066
在计算内参时,给出了像素平面与相机坐标点的关系,并写成齐次式
fx,fy为经过缩放的等效焦距。cx,cy为物面平移量,单位为pixel,构成内参矩阵。
内参信息一般用.ini或.yaml保存,标定的方法最有名是就是张正友标定法,原理是pnp,标定工具箱有ROS中的autoware工具箱以及MATLAB等
我们对P点再进行钢体变换就可以得到外参,即外参就是相机坐标系与世界坐标系的Rt变换。
相机一般都或多或少有畸变,分为枕形畸变和桶形畸变。一般是由透镜或者安装带来的,所以我们需要去畸变,畸变分为径向和切向畸变。所谓径向就是由镜头引起的,桶形即随着和光心距离增大放大倍率减小,枕形则相反;切向畸变则是有安装误差引起的,透镜和成像平面不平行。
对于径向:
对于切向:
有时候径向仅取两个参数k1,k2表示,切向取p1,p2从而构成五参数或者四参数书畸变矫正参数。
那么我们是先考虑空间关系还是先矫正呢,都可以,但是为了处理方便一般我们是先矫正畸变,后续就直接由对应关系而不用考虑畸变了。
其中:r是将归一化平面极坐标表示的极径等于根号下x方=y方
像素平面对应:
注:六个参数时,x,y方向的系数并不相同,只取二次项,有k1~k4加上p1和p2,一共六个参数。
一般激光雷达的内参由厂家出厂时完成,表征的是激光发射器坐标与传感器定义的自身坐标系的关系。
所以我们需要标定激光雷达到相机的外参。一般有两种方法:target-based和target-less,即用类似棋盘格等实物来标定还是与目标场景重合(如确定一棵树等)度判断来标定,此种方法常常和IMU共同使用。
通过标定板,提取关键点,取大于4个对应带你使用最小二乘求解。
目前还有通过RANSAC方法标定的,这些都是离线办法,目前还有许多根据特征表达的在线标定。
工具仍然可以使用MATLAB和Autoware,当然也可以复现论文中的方法。
雷达标定是较为困难的部分,由于雷达的点云质量一般相比激光雷达要差些,密度小,但核心仍然是求解空间的对应关系。结构设计是关键,一般采用激光雷达和雷达作基准效果要优于相机与雷达做标定。
此外还有兴起的深度学习联合标定方法CalibNet等。
这块主要涉及的知识有pnp,特征点、点云RANSAC等。