本发明一种涉及结合图象识别与激光雷达点云分割的驾驶环境感知方法,属于无人驾驶环境感知技术领域。
背景技术:
随着人工智能应用技术在语音识别、推荐系统、智能机器人等方面的落地,社会各界对人工智能技术应用在无人驾驶领域的需求也越来越迫切。实现无人驾驶技术的前提是需要“像人”一样对周围的环境能够准确地感知并且识别出可驾驶区域和物体。传统的方法主要使用图像识别来识别可驾驶区域和物体。图像识别在识别可驾驶区域和物体方面,虽然具有识别速度快、识别效果好的特点,但是存在识别远处物体以及天气、光线不佳的情况下识别效果不好的缺点。
近年来,学术界和工业界都开始尝试使用激光雷达进行环境感知。激光雷达的工作原理是通过向周围环境发射激光束,当激光束遇到障碍物就会返回,通过计算激光束发射和返回的时间差来计算目标的距离以及反射强度等信息。因此激光雷达对环境的感知不受天气、光线的影响,输出稳定,成为了众多无人驾驶公司环境感知模块必装的硬件。
现有的激光雷达点云分割算法,存在有几个缺点:1、缺少标注好的数据;2、网络结构大、运算耗时太长;3、丢失了点云之间的空间结构信息。
技术实现要素:
发明目的:为了解决无人驾驶环境感知过程中图像识别抗干扰能力差、识别远处物体效果差的缺点,本发明提供一种涉及结合图象识别与激光雷达点云分割的驾驶环境感知方法,利用rangenet 算法,使用一个简单有效的网络结构,通过人工收集激光雷达点云数据并标记,将三维点云映射到二维平面图像,对二维平面图像中每个像素的类别通过上述网络进行判断,并将得到的像素类别映射回三维点云,从而得到点云中每个点的类别,以所有点云的分类误差作为损失函数,不断更新网络直到收敛或者达到最大训练次数。该算法具有识别准确度高、识别效果好和识别效果稳定的优点。
另外将图像识别算法和rangenet 激光雷达点云分割算法相结合,使用rangenet 算法分割点云,使用摄像头进行图像识别,将两者的识别结果进行融合,用激光雷达点云分割来克服图像识别的缺点。
技术方案:一种涉及结合图象识别与激光雷达点云分割的驾驶环境感知方法,收集无人驾驶车人工驾驶过程中的激光雷达点云数据并进行类别标注,使用深度学习网络进行训练分类模型,该网络通过点云的(x,y,z,remission)等信息,判断点云所属的类别。网络训练好后将该网络移植到带有激光雷达、摄像头和工控机的无人驾驶车中,在无人驾驶过程中加载该网络,实时收集周围环境点云和图像数据,使用该网络判断得出点云的类别,使用图像识别算法识别图像数据,将两个模块的感知结果进行融合,来实现精确感知环境的目的。本发明包含以下步骤:
(1)人工驾驶无人车行驶在真实道路上,收集地面激光雷达点云数据和图像数据;
(2)使用收集的图像数据作为参考,将激光雷达点云数据与图像数据进行标定,标记收集的激光雷达点云数据;
(3)初始化点云分割网络,对标记的激光雷达点云数据进行训练,以减少真实类别和分类类别之间的误差作为目标,更新网络参数,直到网络收敛或者运行至最大训练次数;
(4)将训练好的网络移植到无人车工控机中,在无人车行驶的过程中使用点云分割网络对实时收集的激光雷达点云进行分割,获得点云所属物体的类别。
(5)使用图像识别算法对图像数据进行识别。
(6)对分割后的激光雷达点云数据与图像识别后的图像数据进行融合,获取道路和物体所在的位置,达到精确感知环境的功能。
对实时收集的激光雷达点云进行分割,将三维点云映射到二维平面图像,使用深度学习技术对二维平面图像进行分割,获得二维平面图像中每个像素的类别;将二维平面图像中每个像素的类别映射回三维点云的类别,对映射后的三维点云类别进行聚类操作来消除映射过程产生的毛边和阴影,得到分割后的激光雷达点云。
收集数据阶段,无人驾驶车安装激光雷达和摄像头,人工驾驶无人车,收集地面激光雷达点云数据和图片数据,每一帧激光雷达点云数据以4×h×w的格式保存下来,其中第一个维度的4表示(x,y,z,remission)的信息,h表示激光雷达的垂直分辨率,w便表示激光雷达的水平分辨率。
标记过后的点云数据形状为5×h×w,其中第一个维度表示(x,y,z,remission,label)的信息。
将标注好的三维空间点云数据映射到二维平面图像,根据三维点云的坐标(x,y,z),参照公式
所述的激光雷达点云分割所使用的深度学习技术,使用一个分割网络对点云数据进行分割,网络主体部分包含下采样编码块、上采样编码块和类别计算。下采样编码块对平面图像进行下采样,减少处理需要的时间;上采样对平面图像进行上采样,并且加上之前下采样对应维度的图像,补充细节,逐步恢复到输入的维度;类别计算对恢复后的平面图像进行计算得到平面每个像素的类别,然后计算输出类别和真实类别之间的误差,更新网络至收敛或达到最大训练次数。
所述下采样编码块的实现步骤为:
11)将二维平面图像与对应点的距离拼接成5×h×w的张量。其中,h和w分别表示平面图片的高度和宽度,第1维表示该像素对应的点的x,y,z,r,remission信息,x,y,z分别表示点的三维坐标,r表示点到主车的距离,remission表示点的反射强度。
12)对输入图像进行下采样,采样步长为2×1,下采样后图像的h(高度)不变,w(宽度)变为原来的二分之一。
13)对输入图像做卷积,使用残差块对下采样的图像进行卷积,残差块使用两层conv bn relu网络。
14)重复12)-13)两个步骤预设次数。
所述上采样编码块的实现步骤为:
21)对输入图像进行上采样,采样步长为2×1,上采样后图像的高度不变,长度变为输入时的两倍,再加上在下采样过程中与图像相同维度的数据(对应同样层次的),恢复因为下采样带来了细节的丢失。
22)对输入图像做卷积,使用残差块对上采样的图像进行卷积,残差块使用两层的conv bn relu网络。
23)重复21)-22)直到数据恢复到原始图像的维度。
所述的类别计算包含以下步骤:
31)对恢复到原始维度的图像,做1×1卷积,生成一个n×h×w的图像,其中n表示类别总数。
32)对输出的图像使用softmax函数计算每个类别出现的概率,
33)根据损失函数来更新网络参数,损失函数的公式为:
通过knn方法对神经网络分类的结果进行聚类处理,解决从二维平面映射回三维空间产毛边和阴影的缺点。对二维平面每个像素,根据其周围像素的类别来决定其类别。
将二维平面映射回三维空间,得到原始三维空间中每个点的类别。三维空间中每个点的真实类别和输出类别的误差作为损失函数,以最小化损失函数作为训练网络的目标来优化网络直到网络收敛或者达到最大训练次数。
对激光雷达和摄像头进行标定。使用autoware的calibrationtookit对摄像头进行标定获取摄像头的参数(fu,fv,u0,v0),其中(fu,fv)是平面xy轴方向尺度因子,(u0,v0)是平面的中心点。使用autoware的calibrationtookit对摄像头和激光雷达进行联合标定,得到旋转矩阵r和平移矢量t,雷达点云坐标转换到图像坐标的公式为
使用训练好的雷达点云分割模型对无人驾驶车激光雷达点云进行分割,使用图像识别对图像数据进行识别,将识别后的数据按照上述的公式进行融合,将激光雷达点云转换到图像中,从而达到无人驾驶精确感知环境。
与现有技术相比,本发明具有的益处有:
本方法不受天气、光线等因素干扰,识别效果稳定。在天气、光线等条件不佳的情况下依然能够表现出较好的识别效果。
本方法识别出来的物体是三维空间信息,不仅有平面信息,还带有深度信息,对近处物体和远处物体的识别效果差别不大。
本方法能够在激光雷达的单帧时间间隔内对一帧进行分割,能够达到实时的效果。
附图说明
图1为本发明的整体框架图。
图2为本发明的激光雷达摄像头融合示意图;
图3为本发明的网络训练流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
涉及结合图象识别与激光雷达点云分割的驾驶环境感知方法,提出了激光雷达点云分割算法,使用该算法对激光雷达点云进行分割,使用成熟的图像识别算法对图像数据进行识别。将分割后的点云和识别后的图像进行融合,得到精确的环境感知。
激光雷达点云分割算法中,提出了一种将三维点云映射到二维平面图像的方法,使用深度学习技术对二维平面图像进行分割,获得二维平面图像中每个像素的类别;将二维平面图像中每个像素的类别映射回三维点云的类别,对映射后的三维点云类别进行聚类操作来消除映射过程产生的毛边和阴影,得到分割后的激光雷达点云。
将三维点云映射到二维平面图像的方法为:根据三维点云的坐标(x,y,z),参照公式
激光雷达点云分割所使用的深度学习技术,使用一个分割网络对点云数据进行分割,网络主体部分包含下采样编码块、上采样编码块和类别计算。下采样编码快对平面图像进行下采样,减少处理需要的时间;上采样对平面图像进行上采样,并且加上之前下采样对应维度的图像,补充细节,逐步恢复到输入的维度;类别计算对恢复后的平面图像进行计算得到平面每个像素的类别,然后计算输出类别和真实类别之间的误差,更新网络至收敛或达到最大训练次数。
下采样编码块的实现包含以下步骤:
(1)将得到的二维平面图像与对应点的距离拼接成5×h×w的张量。其中,h和w分别表示平面图片的高度和宽度,第1维表示该像素对应的点的x,y,z,r,remission信息,x,y,z分别表示点的三维坐标,r表示点到主车的距离,remission表示点的反射强度。
(2)对输入图像做下采样,采样步长为1×2,下采样后图片的高度不变,长度变为输入时的
(3)对输入图像做卷积,使用残差块对下采样后的图像进行卷积,残差块使用两层conv bn relu网络结构。
(4)按照训练经验,重复(2)、(3)两个步骤预设的次数。
上采样编码块的实现包含以下步骤:
(1)对输入图像进行上采样,采样步长为1*2,上采样后图像高度不变,长度变为输入时的2倍,再加上在下采样过程中与该图像相同维度的图像,恢复因为下采样造成丢失的细节。
(2)对输入图像做卷积,使用残差块对上采样的图像进行卷积,残差块使用两层的conv bn relu网络结构。
(3)重复(1)、(2)两个步骤直到恢复到原始图像的维度。
类别计算包含以下步骤:
(1)对恢复到原始维度的图像,做1×1卷积,生成一个n×h×w的图像,其中n表示类别总数。
(2)对输出的图像使用softmax函数计算每个类别出现的概率,
(3)根据损失函数来更新网络参数,损失函数的公式为:
将三维点云类别进行聚类操作,针对分割后平面图像中的每一个像素,以该像素为中心像素,使用一个大小为s×s的滑动窗口,来保存该像素周围s2个像素,计算这些像素的距离与中心像素的距离的差值的绝对值,通过两个标准正态分布来计算每像素被选取的概率,将距离差值的绝对值乘以概率得到距离,按照距离近远进行排序,对前k个点的类别进行统计,出现次数最多的类别为最终类别。
图像识别算法中,采用开源的faster-rcnn框架和模型,对摄像头实时接收的图像进行分割,得到物体、可行驶区域和行驶路径检测结果。
将图像识别的结果和激光雷达点云的分割结果进行融合,对激光雷达和摄像头进行标定,得到激光雷达到摄像头的转换参数,将激光雷达点云的分割结果转换到摄像头的坐标系中,实现两个传感器的融合。
结合图像识别和激光雷达点云分割的无人驾驶环境感知的还需要如下硬件,包括:(1)激光雷达:用于收集周围环境点云信息;(2)单目摄像头:用于收集周围图片数据;(3)工控机:用于雷达点云数据点云分割、图像识别和融合。
图1是本发明的整体框架图,使用激光雷达收集点云数据,对数据进行预处理,使用预处理后带有类别的数据训练点云分割网络,使用点云分割网络对实时激光雷达点云进行分割,使用图像识别算法对图像进行识别,将二者识别结果进行融合。
图2是本发明中激光雷达和摄像头融合的示意图。
图3是本发明的网络训练流程图,网络训练图分为两步,第一步为下采样编码过程,第二部为上采样编码过程,第三步为类别计算过程;下采样编码过程先对预处理后的图像进行卷积(使用一个两层残差块),然后进行下采样,然后再进行一次卷积,然后再进行一次下采样,下采样和卷积合适的次数;上采样编码过程,将上采样编码的结果进行上采样,然后加上对应下采样过程中同样维度的图像数据,进行卷积,以此类推,直到恢复到原来的维度,最后进行一次1×1的卷积,输出的维度为c×h×w,其中c为标记总数,通过softmax来计算各个标记的概率,选择概率最大的为作为像素的类别。
下面分别为本发明的knn算法的伪代码,使用一个大小为s×s的滑动窗口收集分割后平面中的每个像素周围s2个像素距离和该像素距离差值的绝对值,计算s2个像素中每个像素被选择的概率,然后用每个像素的概率乘以这个距离得到一个值,对这些值进行排序,选择前k个元素中出现次数最多的作为该像素的标记。
