应用于全景影像拼接的棋盘格编码角点检测算法的制作方法

专利2025-01-08  11



1.本发明涉及智能辅助驾驶技术领域,特别是涉及应用于全景影像拼接的棋盘格编码角点检测算法。


背景技术:

2.随着自动驾驶的发展,车载全景影像拼接系统已经得到了广泛的认可及应用,装配率逐年上升。自动标定作为车载全景影像拼接系统的核心功能之一,其性能要求越来越严格,同时为了适配越来越多样化的标定环境,需要研究更为高效快捷的棋盘格角点自动检测算法;
3.全景影像拼接分为标定和拼接两部分内容:标定过程计算得到摄像头内参矩阵和外参矩阵,摄像头内参矩阵取决于摄像头自身属性,在安装前可以通过张正友标定法标定得到,外参矩阵则与摄像头安装位置及其姿态有关,此时摄像头已经固定在车辆上,一般通过在车辆四周铺设标定布,通过识别标定布上的黑白棋盘格角点位置进行外参矩阵的计算;拼接过程是在标定得到内参矩阵和外参矩阵的基础上,对摄像头原始图像进行矫正、透视变换、拼接融合等处理,最终形成一个可以看到汽车四周场景的全景环视影像;
4.自动标定中的棋盘格角点检测算法对标定布铺设、摄像头安装等外部环境要求较高,无法解决因标定环境带来的图像信息失真(光线不均匀、棋盘格变形、标定布褶皱、棋盘格被遮挡等)导致的失败率较高和鲁棒性不好的问题,为此我们提出应用于全景影像拼接的棋盘格编码角点检测算法。


技术实现要素:

5.为了克服现有技术的不足,本发明提供应用于全景影像拼接的棋盘格编码角点检测算法,能够自适应棋盘格形变较大、棋盘格被遮挡或者有效信息损失等标定场景,在保证自动标定的准确性和高效率基础上,具有更好的适应性。
6.为解决上述技术问题,本发明提供如下技术方案:应用于全景影像拼接的棋盘格编码角点检测算法,包括如下步骤:
7.步骤一:获取棋盘格roi区域,全景环视采用的是鱼眼摄像头,具有超过180度的视角,拍摄的图像内容要素过多且两端景物畸变明显,严重影像棋盘格识别的成功率,为了减少环境和摄像头畸变带来的干扰,对鱼眼摄像头原图进行矫正并剔除了畸变原图中的干扰信息,仅保留棋盘格及其附近的像素信息;
8.1、对鱼眼摄像头原图进行矫正,去除鱼眼摄像头带来的畸变,鱼眼图像的畸变矫正需要获取摄像头内参矩阵,采用张正友标定法获取,制作一块具有黑白棋盘格的标定板,使用鱼眼摄像头在不同角度下拍摄该标定板得到一组图片,识别图像中的棋盘格角点并通过迭代法计算得到对应摄像头的内参矩阵;
9.2、利用1中的内参矩阵对鱼眼畸变原图进行矫正,为了尽量保留畸变原图中完整的信息,将矫正图的宽、高方向在原图的基础上分别扩大了3倍和2倍;
10.3、若原图像上的像素信息较少,经过矫正之后在矫正图像中出现了模糊不清甚至变形的情况,并且矫正图中的冗余信息过多,会严重影响棋盘格角点识别的准确性,通过将矫正图像进行一次透视变换,利用识别标定布中间位置特征明显的棋盘格角点信息,结合标定布的实际尺寸计算得到一个投影矩阵,从而将2中的矫正图像变换成一个俯视视角的投影图像,该变换可将矫正图像中的大部分无关信息裁剪掉,仅保留棋盘格及其附近的有效像素信息;
11.4、根据标定布的实际位置关系,估算出左右两侧棋盘格在投影图像中的区域作为roi区域,并将其裁剪截取出来,作为下一步角点检测的输入;
12.步骤二:对棋盘格区域编码得到矩阵c0,目标棋盘格的roi区域分别对应标定场的四个角,棋盘格位置分布关系左上和右下相同,右上和左下相同,将黑块区域记为1,白块记为0,对每一块棋盘格进行编码,左上和右下棋盘格对应的编码方式为右上和左下棋盘格对应的编码方式为
13.步骤三:提取roi区域上的黑色格子的四边形轮廓,并对其进行二进制编码排序,编码方式和步骤二中的编码方式相同,即黑色格子记作1,白色格子记作0,具体流程主要如下:
14.1、对roi区域图像进行灰度化,并通过高斯滤波,滤除低通噪声;
15.2、进行二值化处理,结合形态学闭运算操作,消除干扰杂散黑块;
16.3、对2处理后的roi进行形态学膨胀运算操作,使四边形黑块分离;
17.4、进行腐蚀操作,拉近四边形黑色块间的距离;
18.5、进行多边形轮廓检测,根据棋盘格上黑色格子的实际面积和几何特性得到对应的四边形轮廓;
19.6、计算提取出来的四边形轮廓的平均边长,根据边长及四边形间的相对距离进行二进制编码,轮廓内记为1,轮廓外记为0,并得到二进制码矩阵c1;
20.7、根据检测出的四边形的坐标得到棋盘格在roi区域中的具体位置p0;
21.步骤四:对检测出来的二进制编码c1与已知的二进制编码c0进行匹配,并计算出经纬线及其交点,从交点中提取出所需的目标标定角点,最终还原到矫正图像上完成角点的自动检测,具体流程如下:
22.1、确定编码c1是否与c0中的某个唯一子集的“1”相匹配,通过查找方式定位编码c1在c0中的位置;
23.2、通过流程1中的定位以及检测到的四边形轮廓的平均间距,结合步骤三中流程7得到的p0位置关系,补全得到4*4方块区域;
24.3、采用横纵坐标相连的经纬线划分方式,得到识别出的内角点交点;
α3+k2α5+k3α7+k4α9+......
44.式中,[k0,k1,k2,k3,k4]为畸变系数,一般k0=1,rd为畸变图中某成像点的像高,α为该成像点对应的入射光线和相机光轴的夹角;
[0045]
3、根据1和2所得的四路鱼眼摄像头的内参矩阵和畸变系数,分别计算每路摄像头下的矫正图像;
[0046]
步骤三:自动标定计算外参矩阵,具体流程如下:
[0047]
1、确定并计算全景图像中的标定角点;
[0048]
2、对步骤二中的矫正图像利用棋盘格角点检测算法识别标定角点;
[0049]
3、经透视投影变换计算外参矩阵,如下式所示:
[0050][0051]
式中的h对应外参的单应性矩阵,[u v 1]
t
为全景图像上的某一点像素坐标,[x y 1]
t
为矫正图像上的某一点像素坐标;
[0052]
步骤四:图像拼接和融合,具体流程如下:
[0053]
1、通过步骤三中计算得到的外参,对四路摄像头画面进行全景拼接;
[0054]
2、采用加权平均算法处理四幅图像融合区域的平滑过渡,左前和右前的融合区域的面积比例为1/2,左后和右后的比例为1/4;
[0055]
3、融合权重的计算方法,以左前融合区域为例:
[0056]
p为融合区域内的某一像素点,假设点p到前向边界的垂直距离为df,到左向边界的垂直距离为d
l
,则点p相对于前向和左向的权重分别为:ω
l
=1-ωf[0057]
上式中ωf为前向的像素权重,ω
l
为左向的像素权重,则该点p的融合像素为如下式所示:p=ωfpf+ω
l
p
l
[0058]
上式中的p为点p的融合像素值,pf为前向摄像头对应的原像素值,p
l
为左向摄像头对应的原像素值。
[0059]
综合上述流程,可以发现自动标定是车载全景影像拼接的关键环节,该环节决定是否能够将四路摄像头的图像信息精确的拼接起来,同时该环节的标定效率和稳定性也直接影响了车载全景影像系统的整体性能,根据步骤三自动标定流程的数学原理可知,要获得相应的外参矩阵,需要至少四组标定角点对(全景图像上的角点和矫正图像上的角点一一对应)才能实现,全景图像上的标定角点可以通过与标定场景的比例关系计算得到,矫正图像上对应的标定角点则需要通过棋盘格角点检测算法自动识别得到。
[0060]
请参照图2所示,基于四边形轮廓的角点识别算法流程如下:
[0061]
步骤一:获取roi区域,全景影像标定所用的鱼眼摄像头视野范围宽广,为了减少环境干扰进而提高识别成功率,将目标棋盘格区域裁剪出来单独进行处理;
[0062]
1、利用内参矩阵对鱼眼摄像头原图进行畸变矫正;
[0063]
2、将矫正图像做透视变换,去除掉矫正图像中与棋盘格不相关的部分,仅保留目标棋盘格区域的图像;
[0064]
3、根据相对坐标位置关系裁剪出目标棋盘格区域,并记录裁剪时的像素坐标;
[0065]
步骤二:图像预处理,在对裁剪的图像进行角点识别前,会进行图像预处理以提高检测的准确性和成功率。
[0066]
1、滤波处理,减少图像的噪声;
[0067]
2、二值化处理,提取有效信息;
[0068]
3、形态学操作,使棋盘格区块分离,便于后续的轮廓提取;
[0069]
步骤三:轮廓提取与多边形拟合,从预处理后的图像中提取棋盘格轮廓,利用多边形拟合算法对提取出来的轮廓进行拟合,仅保留四边形拟合结果;
[0070]
步骤四:识别目标角点,对多边形拟合结果进行过滤判断,排除不是棋盘格轮廓的四边形,取余下四边形的各角点作为识别结果;
[0071]
步骤五:识别角点后处理,由于在图像预处理中对棋盘格进行了改变,直接使用步骤四中的四边形轮廓角点作为最终的结果将带来较大误差,通过相邻四边形存在公共角点的关联性,将两个四边形公共角点的坐标进行算数平均作为最终角点识别的结果,可降低误差带来的影响。
[0072]
最后通过逆计算内参矩阵,将roi区域的角点位置计算回矫正图像中,并对角点进一步做亚像素精确化处理,提高数值精度,完成标定。
[0073]
基于轮廓的角点识别算法中,存在以下问题:
[0074]
在对roi区域图像进行二值化处理、形态学操作和多边形拟合的过程中,相关参数受外部环境影响较大,导致图像预处理不能对每一个棋盘格完成分离,从而影响棋盘格的轮廓识别,无法提取到完整的棋盘格轮廓;矫正图像上的棋盘格信息存在缺失,无法获取到棋盘格的所有轮廓或者出现找不到棋盘格轮廓的情况,从而角点识别失败。
[0075]
请参照图3至图8所示,根据棋盘格黑白格子间分布的几何特性,以及排列顺序的方式本发明提供应用于全景影像拼接的棋盘格编码角点检测算法,包括如下步骤:
[0076]
步骤一:获取棋盘格roi区域,全景环视采用的是鱼眼摄像头,具有超过180度的视角,拍摄的图像内容要素过多且两端景物畸变明显,严重影像棋盘格识别的成功率,为了减少环境和摄像头畸变带来的干扰,对鱼眼摄像头原图进行矫正并剔除了畸变原图中的干扰信息,仅保留棋盘格及其附近的像素信息;
[0077]
1、对鱼眼摄像头原图进行矫正,去除鱼眼摄像头带来的畸变,鱼眼图像的畸变矫正需要获取摄像头内参矩阵,采用张正友标定法获取,制作一块具有黑白棋盘格的标定板,使用鱼眼摄像头在不同角度下拍摄该标定板得到一组图片,识别图像中的棋盘格角点并通过迭代法计算得到对应摄像头的内参矩阵;
[0078]
2、利用1中的内参矩阵对鱼眼畸变原图进行矫正,为了尽量保留畸变原图中完整的信息,将矫正图的宽、高方向在原图的基础上分别扩大了3倍和2倍;
[0079]
3、若原图像上的像素信息较少,经过矫正之后在矫正图像中出现了模糊不清甚至变形的情况,并且矫正图中的冗余信息过多,会严重影响棋盘格角点识别的准确性,通过将矫正图像进行一次透视变换,利用识别标定布中间位置特征明显的棋盘格角点信息,结合标定布的实际尺寸计算得到一个投影矩阵,从而将2中的矫正图像变换成一个俯视视角的投影图像,该变换可将矫正图像中的大部分无关信息裁剪掉,仅保留棋盘格及其附近的有效像素信息;
[0080]
4、根据标定布的实际位置关系,估算出左右两侧棋盘格在投影图像中的区域作为roi区域,并将其裁剪截取出来,作为下一步角点检测的输入;
[0081]
步骤二:对棋盘格区域编码得到矩阵c0,目标棋盘格的roi区域分别对应标定场的四个角,棋盘格位置分布关系左上和右下相同,右上和左下相同,将黑块区域记为1,白块记为0,对每一块棋盘格进行编码,左上和右下棋盘格对应的编码方式为右上和左下棋盘格对应的编码方式为
[0082]
步骤三:提取roi区域上的黑色格子的四边形轮廓,并对其进行二进制编码排序,编码方式和步骤二中的编码方式相同,即黑色格子记作1,白色格子记作0,具体流程主要如下:
[0083]
1、对roi区域图像进行灰度化,并通过高斯滤波,滤除低通噪声;
[0084]
2、进行二值化处理,结合形态学闭运算操作,消除干扰杂散黑块;
[0085]
3、对2处理后的roi进行形态学膨胀运算操作,使四边形黑块分离;
[0086]
4、进行腐蚀操作,拉近四边形黑色块间的距离;
[0087]
5、进行多边形轮廓检测,根据棋盘格上黑色格子的实际面积和几何特性得到对应的四边形轮廓;
[0088]
6、计算提取出来的四边形轮廓的平均边长,根据边长及四边形间的相对距离进行二进制编码,轮廓内记为1,轮廓外记为0,并得到二进制码矩阵c1;
[0089]
7、根据检测出的四边形的坐标得到棋盘格在roi区域中的具体位置p0;
[0090]
步骤四:对检测出来的二进制编码c1与已知的二进制编码c0进行匹配,并计算出经纬线及其交点,从交点中提取出所需的目标标定角点,最终还原到矫正图像上完成角点的自动检测,具体流程如下:
[0091]
1、确定编码c1是否与c0中的某个唯一子集的“1”相匹配,通过查找方式定位编码c1在c0中的位置;
[0092]
2、通过流程1中的定位以及检测到的四边形轮廓的平均间距,结合步骤三中流程7得到的p0位置关系,补全得到4*4方块区域;
[0093]
3、采用横纵坐标相连的经纬线划分方式,得到识别出的内角点交点;
[0094]
4、筛选出目标标定角点,并通过逆矩阵计算还原到矫正图像。
[0095]
本发明提供的应用于全景影像拼接的棋盘格编码角点检测算法,一是适应性更好:对非均匀环境下如强弱光照射不均、标定布摆放位置失准、标定布起褶皱等场景的自动标定成功率有显著提升,在相同环境下,传统的基于多边形轮廓的角点检测识别算法标定100次成功率接近90%,本发明100次标定成功率100%,其中在强光环境下,图像预处理后的roi图像上无法完全滤除强光反射的高亮区域,传统方法识别出来的角点数量不足从而
导致标定完全失败,而本发明可根据识别出来的相邻区域位置补全缺失信息,极限情况下只需要识别出3块黑色棋盘格位置即可将其余位置推算出来,大大提升了标定成功率;同理因标定布铺设问题产生的棋盘格形变,本发明的算法容错性更大,在多种环境下尝试均能在保证准确度的基础上成功标定;(二是效率更高:本发明单次标定及全景拼接平均时长为10.5s,传统的基于多边形轮廓的角点检测识别算法平均时长超过20s,传统方法要求尽量得到完整的roi区域,部分棋盘格的缺失将导致多边形轮廓识别失败,需要进一步放大矫正图像,数据量增大将延长处理时间,而本发明对roi区域要求更宽松,可节约更多处理时长。
[0096]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.应用于全景影像拼接的棋盘格编码角点检测算法,其特征在于,包括如下步骤:s1、获取棋盘格roi区域;s1-1、全景环视采用的是鱼眼摄像头,具有超过180度的视角,拍摄的图像内容要素过多且两端景物畸变明显,为了减少环境和摄像头畸变带来的干扰,对鱼眼摄像头原图进行矫正并剔除了畸变原图中的干扰信息,仅保留棋盘格及其附近的像素信息;s1-2、对鱼眼摄像头原图进行矫正,去除鱼眼摄像头带来的畸变,鱼眼图像的畸变矫正需要获取摄像头内参矩阵,采用张正友标定法获取,制作一块具有黑白棋盘格的标定板,使用鱼眼摄像头在不同角度下拍摄该标定板得到一组图片,识别图像中的棋盘格角点并通过迭代法计算得到对应摄像头的内参矩阵;s1-3、利用s1-2中的内参矩阵对鱼眼畸变原图进行矫正,为了尽量保留畸变原图中完整的信息,将矫正图的宽、高方向在原图的基础上分别扩大3倍和2倍;s1-4、若原图像上的像素信息较少,经过矫正之后在矫正图像中出现了模糊不清甚至变形的情况,并且矫正图中的冗余信息过多,会严重影响棋盘格角点识别的准确性,通过将矫正图像进行一次透视变换,利用识别标定布中间位置特征明显的棋盘格角点信息,结合标定布的实际尺寸计算得到一个投影矩阵,从而将s1-3中的矫正图像变换成一个俯视视角的投影图像,该变换可将矫正图像中的大部分无关信息裁剪掉,仅保留棋盘格及其附近的有效像素信息;s1-5、根据标定布的实际位置关系,估算出左右两侧棋盘格在投影图像中的区域作为roi区域,并将其裁剪截取出来,作为下一步角点检测的输入;s2、对棋盘格区域编码得到矩阵c0;s2-1、目标棋盘格的roi区域分别对应标定场的四个角,棋盘格位置分布关系,左上和右下相同,右上和左下相同,将黑块区域记为1,白块记为0,对每一块棋盘格进行编码,左上和右下棋盘格对应的编码方式为右上和左下棋盘格对应的编码方式为s3、提取roi区域上的黑色格子的四边形轮廓,并对其进行二进制编码排序,编码方式和s2中的编码方式相同,即黑色格子记作1,白色格子记作0;s3-1、对roi区域图像进行灰度化,并通过高斯滤波,滤除低通噪声;s3-2、进行二值化处理,结合形态学闭运算操作,消除干扰杂散黑块;s3-3、对s3-2处理后的roi进行形态学膨胀运算操作,使四边形黑块分离;s3-4、进行腐蚀操作,拉近四边形黑色块间的距离;s3-5、进行多边形轮廓检测,根据棋盘格上黑色格子的实际面积和几何特性得到对应的四边形轮廓;
s3-6、计算提取出来的四边形轮廓的平均边长,根据边长及四边形间的相对距离进行二进制编码,轮廓内记为1,轮廓外记为0,并得到二进制码矩阵c1;s3-7、根据检测出的四边形的坐标得到棋盘格在roi区域中的具体位置p0;s4、对检测出来的二进制编码c1与已知的二进制编码c0进行匹配,并计算出经纬线及其交点,从交点中提取出所需的目标标定角点,最终还原到矫正图像上完成角点的自动检测;s4-1、确定编码c1是否与c0中的某个唯一子集的“1”相匹配,通过查找方式定位编码c1在c0中的位置;s4-2、通过流程s4-1中的定位以及检测到的四边形轮廓的平均间距,结合s3中流程s3-7得到的p0位置关系,补全得到4*4方块区域;s4-3、采用横纵坐标相连的经纬线划分方式,得到识别出的内角点交点;s4-4、筛选出目标标定角点,并通过逆矩阵计算还原到矫正图像。

技术总结
本发明公开了应用于全景影像拼接的棋盘格编码角点检测算法,包括如下步骤:获取棋盘格ROI区域:全景环视采用的是鱼眼摄像头,具有超过180度的视角,拍摄的图像内容要素过多且两端景物畸变明显,为了减少环境和摄像头畸变带来的干扰,对鱼眼摄像头原图进行矫正并剔除了畸变原图中的干扰信息,仅保留棋盘格及其附近的像素信息;对棋盘格区域编码得到矩阵C0:目标棋盘格的ROI区域分别对应标定场的四个角;提取ROI区域上的黑色格子的四边形轮廓,并对其进行二进制编码排序;对检测出来的二进制编码C1与已知的二进制编码C0进行匹配,并计算出经纬线及其交点,从交点中提取出所需的目标标定角点,最终还原到矫正图像上完成角点的自动检测。动检测。动检测。


技术研发人员:罗韬 王小保 何十全 陈建亮 蒋荣飞
受保护的技术使用者:成都上富智感科技有限公司
技术研发日:2022.06.28
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-11346.html

最新回复(0)