一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于U-V视差图的障碍物测距方法与流程

2022-03-02 00:26:33 来源:中国专利 TAG:

一种基于u-v视差图的障碍物测距方法
技术领域
1.本发明涉及双目立体视觉测距技术领域,特别是涉及一种基于u-v视差图的障碍物测距方法。


背景技术:

2.双目立体视觉测距相比于单目视觉测距具有精度高、鲁棒性强的特点,已经逐渐成为机器视觉测距中的主流方法。双目立体视觉测距仿照人类双眼感知周围环境空间深度的功能,使用双目摄像头从不同位置拍摄同一目标物,通过各种算法对所拍摄的双目图像进行立体匹配,再利用三角测量原理实现实际距离测量。现有双目立体视觉测距技术都是基于双目图像匹配点视差的估计,但是由于背景与前景不能分离,造成距离误差偏大。


技术实现要素:

3.针对现有的双目立体视觉测距技术存在的背景与前景不能分离,造成距离误差偏大的问题,本发明提供了一种基于u-v视差图的障碍物测距方法。
4.本发明采用以下的技术方案:
5.一种基于u-v视差图的障碍物测距方法,包括以下步骤:
6.步骤1:利用数据集训练yolo-v3模型,通过双目相机采集待测图片,将待测图片输入到训练好的yolo-v3模型中,得到待测图片中障碍物的类别及位置坐标信息;
7.步骤2:将待测图片通过ssd算法处理后得到整图视差图;
8.步骤3:根据步骤2得到的整图视差图及步骤1中获得的障碍物位置坐标信息计算得到障碍物粗略距离,并将障碍物粗略距离由小到大排序,得到障碍物粗略距离排序表;
9.步骤4:依据步骤2中得到的整图视差图、步骤3中得到的障碍物粗略距离排序表以及步骤1中得到的障碍物的位置坐标信息构造障碍物粗略距离排序表中数值最小的障碍物的u视差图和v视差图;
10.步骤5:将步骤4得到的u视差图和v视差图中的有效区域还原并融合得到障碍物准确视差图,将障碍物准确视差图转换为障碍物深度图,通过障碍物深度图求得障碍物三维场景位置信息,从整图视差图减去障碍物准确视差图,删除障碍物粗略距离排序表中数值最小的障碍物粗略距离;
11.步骤6:重复步骤4至步骤5,最终得到待测图片中所有障碍物的三维场景位置信息。
12.优选地,步骤2具体包括以下步骤:
13.步骤2.1:待测图片分为左图像和右图像,将左图像和右图像均转换成灰度图像,设定ssd算法中窗口win的大小为kernel*kernel,搜索最大视差max_disp为256;
14.步骤2.2:对左图像和右图像分别取3*3大小的高斯卷积核,利用高斯卷积分别对两图进行高斯模糊操作;
15.步骤2.3:对左图像分别进行x方向和y方向的sobel滤波,得到左图像x方向和y方
向的梯度矩阵,然后将两个方向的梯度矩阵以各0.5的权重相加得到左图像总的梯度矩阵dst;
16.步骤2.4:在每个线程中,遍历左图像中每个像素点对应的梯度矩阵dst的值,判断当前像素点对应的梯度矩阵的值是否大于阈值k,若不大于k则不计算此像素点的视差值并置为0;若大于k,则认为此像素点是图像中某物体的边缘,计算此像素点的视差值,具体方法如下:
17.对于当前像素点的每个视差值d,计算左右图像win内的像素灰度值的平均值,再用左右图像win内的像素灰度值分别减去平均值,进而计算win内的平方差之和,公式如下:
[0018][0019][0020][0021][0022]
ssd(u,v)=sum{[left

(u,v)-right

(u,v)]2}
[0023]
然后右图像窗口win向左移动一个像素,再计算移动后的ssd,右图窗口共移动max_disp次,取ssd(u,v)最小值对应的视差值d作为最终输出的视差图对应点的灰度值;其中,视差值d就是ssd(u,v)最小值左图像窗口与右图像窗口的距离,取值范围为[0,max_disp];
[0024]
是左图像win内的像素灰度值的平均值,是右图像win内的像素灰度值的平均值;
[0025]
left

(u,v)代表左图像win内的像素灰度值减去平均值,right

(u,v)代表右图像win内的像素灰度值减去平均值;
[0026]
u和v是窗口win中相对于中间点的相对坐标,即u和v属于(-kernel,kernel);
[0027]
ssd(u,v)是左图像窗口与右图像窗口的差距;
[0028]
再进行置信度判断:若当前像素的

最小的ssd(u,v)值’/

次小的ssd(u,v)值’小于置信阈值uniquenessratio,则保留计算结果;若大于等于置信阈值,则将当前像素的视差置为0;
[0029]
步骤2.5:重复步骤2.4得到左图像中所有像素点视差值,最终形成整图视差图。
[0030]
优选地,步骤3具体包括以下步骤:
[0031]
步骤3.1:设障碍物信息中边框的左上角和右下角坐标(x1,y1),(x2,y2),从整图视差的二维数组中提取行范围为[x1,x2],列范围为[y1,y2]的局部数组信息,从而得到障碍物的局部视差图;
[0032]
步骤3.2:将局部视差图利用视差深度转换公式转为局部深度图,设f为双目相机焦距,tx为双目相机基线距离,d为视差值,z为深度,则公式如下:
[0033]
z=f*tx/d;
[0034]
步骤3.3:对局部深度图利用高斯分布求得期望作为障碍物粗略距离信息;
[0035]
步骤3.4:对每个障碍物都执行步骤3.1至步骤3.3,并将障碍物粗略距离信息由小到大排序,得到障碍物粗略距离排序表。
[0036]
优选地,步骤4具体包括以下步骤:
[0037]
步骤4.1:将障碍物粗略距离排序表中数值最小的障碍物粗略距离对应的障碍物的障碍物局部视差图作为原始视差图i0(i,j,d),其中,d为像素点(i,j)对应的视差值;得到视差最大值d
max

[0038]
步骤4.2:依据步骤4.1中的视差最大值d
max
构造u视差图的行数和列数,u视差图的行数为视差最大值d
max
加1,u视差图的列数为原始视差图的列数;
[0039]
步骤4.3:确定好u视差图的行数和列数后进行视差映射,最终得到u视差图;
[0040]
步骤4.4:依据步骤4.1中的视差最大值d
max
构造v视差图的行数和列数,v视差图的行数为原始视差图的行数,v视差图的列数为视差最大值加1;
[0041]
步骤4.5:确定好v视差图的行数和列数进行视差映射,最终得到v视差图;
[0042]
步骤4.6:对u视差图和v视差图进行卷积增强处理,然后对u视差图和v视差图进行图像滤波,对图像滤波后的u视差图和v视差图进行处理提取u视差图和v视差图中的有效区域;
[0043]
步骤4.7:根据不同场景选择视差最大值或者视差平均值过滤有效区域。
[0044]
优选地,步骤5具体包括以下步骤:
[0045]
步骤5.1:取一个有效区域,设此有效区域的左上和右下两个点的坐标分别为(a1,b1)和(a2,b2),对于u视差图,取原始视差图的b1至b2列作为遍历图像,遍历图像中的每一个像素点是否在u视差图中的有效区域内,并保存所有在有效区域内的像素点;对于v视差图,取原始视差图的a1至a2列作为遍历图像,遍历图像中的每一个像素点是否在v视差图中的有效区域内,并保存所有在有效区域内的像素点;
[0046]
步骤5.2:利用步骤5.1遍历所有有效区域,最终得到还原后的u视差图和v视差图;
[0047]
步骤5.3:将还原后的u视差图和v视差图取交集,作为障碍物准确视差图;
[0048]
步骤5.4:将障碍物准确视差图利用视差深度转换公式转换为障碍物深度图;
[0049]
步骤5.5:求出障碍物深度图中像素值不为0的所有点的高斯分布,以高斯分布的期望作为障碍物的距离;
[0050]
步骤5.6:将整图视差图减去步骤5.3得到的障碍物准确视差图,并删除障碍物粗略距离排序表中数值最小的障碍物粗略距离。
[0051]
本发明具有的有益效果是:
[0052]
本发明提供的一种基于u-v视差图的障碍物测距方法,利用数据集训练yolo-v3模型,通过双目相机采集待测图片,将待测图片输入到训练好的yolo-v3模型中,得到待测图片中障碍物的类别及位置坐标信息;将待测图片通过ssd算法处理后得到整图视差图,本发明改进了ssd算法,相较于传统ssd算法,增加求平均值的步骤,使得结果更加准确;另外,ssd算法得到的稀疏视差图相比于稠密视差图,计算量小,速度快。根据得到的整图视差图及障碍物位置坐标信息计算得到障碍物粗略距离,并将障碍物粗略距离由小到大排序,得到障碍物粗略距离排序表;依据整图视差图、障碍物粗略距离排序表以及障碍物的类别及位置坐标信息构造障碍物粗略距离排序表中数值最小的障碍物的u视差图和v视差图;将得
到的u视差图和v视差图中的有效区域还原并融合得到深度图及障碍物三维场景位置信息,删除障碍物粗略距离排序表中数值最小的障碍物粗略距离;重复上述过程,最终得到待测图片中所有障碍物的三维场景位置信息。
[0053]
本发明能够准确提取障碍物视差信息,与整图u-v视差图不同,本发明采用局部u-v视差图,可以有效避免将背景视差作为障碍物视差的情况,从而降低障碍物距离的误差,提高距离信息的精确度。采用先计算距离近的障碍物,后计算远的,迭代思想,解决了一张图中由于多个障碍物相互遮挡导致误差大的问题。
附图说明
[0054]
图1为基于u-v视差图的障碍物测距方法的流程图。
[0055]
图2为实施例1的待测图片。
[0056]
图3为实施例1的整图视差图。
[0057]
图4为实施例1中一个障碍物局部视差图。
[0058]
图5为图4障碍物的u视差图。
[0059]
图6为图4障碍物的v视差图。
[0060]
图7为图5和图6还原融合后的障碍物准确视差图。
[0061]
图8为实施例1的待测图片的三维位置信息。
具体实施方式
[0062]
下面结合附图和具体实施例对本发明的具体实施方式做进一步说明:
[0063]
实施例1
[0064]
结合图1至图8,一种基于u-v视差图的障碍物测距方法,包括以下步骤:
[0065]
步骤1:利用现有数据集训练yolo-v3模型,通过双目相机采集待测图片,将待测图片输入到训练好的yolo-v3模型中,得到待测图片中障碍物的类别及位置坐标信息;其中,现有数据集可通过网络获得。待测图片如图2所示。
[0066]
步骤2:将待测图片通过ssd算法处理后得到整图视差图,如图3所示。
[0067]
具体包括以下步骤:
[0068]
步骤2.1:待测图片分为左图像和右图像,将左图像和右图像均转换成灰度图像,设定ssd算法中窗口win的大小为kernel*kernel,搜索最大视差max_disp为256;
[0069]
步骤2.2:对左图像和右图像分别取3*3大小的高斯卷积核,利用高斯卷积分别对两图进行高斯模糊操作;
[0070]
步骤2.3:对左图像分别进行x方向和y方向的sobel滤波,得到左图像x方向和y方向的梯度矩阵,然后将两个方向的梯度矩阵以各0.5的权重相加得到左图像总的梯度矩阵dst;
[0071]
步骤2.4:在每个线程中,遍历左图像中每个像素点对应的梯度矩阵dst的值,判断当前像素点对应的梯度矩阵的值是否大于阈值k,若不大于k则不计算此像素点的视差值并置为0;若大于k,则认为此像素点是图像中某物体的边缘,计算此像素点的视差值,具体方法如下:
[0072]
对于当前像素点的每个视差值d,计算左右图像win内的像素灰度值的平均值,再
用左右图像win内的像素灰度值分别减去平均值,进而计算win内的平方差之和,公式如下:
[0073][0074][0075][0076][0077]
ssd(u,v)=sum{[left

(u,v)-right

(u,v)]2}
[0078]
然后右图像窗口win向左移动一个像素,再计算移动后的ssd,右图窗口共移动max_disp次,取ssd(u,v)最小值对应的视差值d作为最终输出的视差图对应点的灰度值;其中,视差值d就是ssd(u,v)最小值左图像窗口与右图像窗口的距离,取值范围为[0,max_disp];
[0079]
是左图像win内的像素灰度值的平均值,是右图像win内的像素灰度值的平均值;
[0080]
left

(u,v)代表左图像win内的像素灰度值减去平均值,right

(u,v)代表右图像win内的像素灰度值减去平均值;
[0081]
u和v是窗口win中相对于中间点的相对坐标,即u和v属于(-kernel,kernel);
[0082]
ssd(u,v)是左图像窗口与右图像窗口的差距;
[0083]
再进行置信度判断:若当前像素的

最小的ssd(u,v)值’/

次小的ssd(u,v)值’小于置信阈值uniquenessratio,则保留计算结果;若大于等于置信阈值,则将当前像素的视差置为0;
[0084]
步骤2.5:重复步骤2.4得到左图像中所有像素点视差值,最终形成整图视差图。
[0085]
本发明改进了ssd算法,相较于传统ssd算法,增加求平均值的步骤,使得结果更加准确;另外,ssd算法得到的稀疏视差图相比于稠密视差图,计算量小,速度快。
[0086]
步骤3:根据步骤2得到的整图视差图及步骤1中获得的障碍物位置坐标信息计算得到障碍物粗略距离,并将障碍物粗略距离由小到大排序,得到障碍物粗略距离排序表。
[0087]
具体包括以下步骤:
[0088]
步骤3.1:设障碍物信息中边框的左上角和右下角坐标(x1,y1),(x2,y2),从整图视差的二维数组中提取行范围为[x1,x2],列范围为[y1,y2]的局部数组信息,从而得到障碍物的局部视差图;如图4。
[0089]
步骤3.2:将局部视差图利用视差深度转换公式转为局部深度图,设f为双目相机焦距,tx为双目相机基线距离,d为视差值,z为深度,则公式如下:
[0090]
z=f*tx/d;
[0091]
步骤3.3:对局部深度图利用高斯分布求得期望作为障碍物粗略距离信息;
[0092]
步骤3.4:对每个障碍物都执行步骤3.1至步骤3.3,并将障碍物粗略距离信息由小到大排序,得到障碍物粗略距离排序表。
[0093]
步骤4:依据步骤2中得到的整图视差图、步骤3中得到的障碍物粗略距离以及步骤
1中得到的障碍物的类别及位置坐标信息构造障碍物粗略距离排序表中数值最小的障碍物的u视差图和v视差图。
[0094]
具体包括以下步骤:
[0095]
步骤4.1:将障碍物粗略距离排序表中数值最小的障碍物粗略距离对应的障碍物的障碍物局部视差图作为原始视差图i0(i,j,d),其中,d为像素点(i,j)对应的视差值;得到视差最大值d
max

[0096]
步骤4.2:依据步骤4.1中的视差最大值d
max
构造u视差图的行数和列数,u视差图的行数为视差最大值d
max
加1,u视差图的列数为原始视差图的列数;
[0097]
步骤4.3:确定好u视差图的行数和列数后进行视差映射,最终得到u视差图;如图5。
[0098]
具体为:在原始视差图i0(i,j,d)的基础上,将每一列具有相同视差值du的像素点的个数d
u_count
进行累加,并以(du,j)作为新的像素点坐标,d
u_count
作为该像素点的值,从而得到u视差图,过程公式如下:
[0099][0100]
步骤4.4:依据步骤4.1中的视差最大值d
max
构造v视差图的行数和列数,v视差图的行数为原始视差图的行数,v视差图的列数为视差最大值加1;
[0101]
步骤4.5:确定好v视差图的行数和列数进行视差映射,最终得到v视差图;如图6。
[0102]
具体为:在原始视差图i0(i,j,d)的基础上,将每一行具有相同视差值dv的像素点的个数d
v_count
进行累加,并以(i,dv)作为新的像素点坐标,d
v_count
作为该像素点的值,从而得到v视差图,过程公式如下:
[0103][0104]
步骤4.6:对u视差图和v视差图进行卷积增强处理,其中,卷积核窗口大小为3
×
3像素,卷积权值矩阵为:
[0105][0106]
然后对u视差图和v视差图进行图像滤波,图像滤波方法选用效果较好的高斯滤波方法。
[0107]
高斯滤波的基本思想是将高斯核函数与原始信号进行卷积得到滤波输出后的信号。设σ为标准差;k为高斯核,(x,y)为图像的像素点坐标,则高斯滤波器一般均表示为:
[0108][0109]
对图像滤波后的u视差图和v视差图进行处理提取u视差图和v视差图中的有效区域。
[0110]
具体为:对图像滤波后的u视差图和v视差图采用otsu算法进行二值化,原理如下:
otsu算法的假设是存在阈值th将图像所有像素分为两类c1(小于th)和c2(大于th),则这两类像素各自的均值就为m1、m2,图像全局均值为mg。同时像素被分为c1和c2类的概率分别为p1、p2。因此就有:
[0111]
p1*m1 p2*m2=mg
[0112]
p1 p2=1
[0113]
根据方差的概念,类间方差σ2表达式为:
[0114]
σ2=p1(m1-mg)2 p2(m2-mg)2[0115]
我们把上式化简,将式(1)代入式(3),可得:
[0116]
σ2=p1p2(m1-m2)2[0117]
其中:
[0118][0119][0120][0121]
求能使得上式最大化的灰度级k作为otsu阈值,设g(x,y)为图像上坐标为点(x,y)的像素值,min为最小阈值,max为最大阈值,将阈值带入下列公式:
[0122][0123]
经过二值化处理后的u视差图和v视差图,再选取合适的结构元素对图像进行膨胀操作,将得到的图像中空洞部分填充,再进行开运算,消除图像中的噪点;再利用opencv的cv2.findcontours()函数找到轮廓,并且得到各轮廓像素点的横纵坐标最大最小值,作为有效区域。
[0124]
步骤4.7:根据不同场景选择视差最大值或者视差平均值过滤有效区域。如车辆碰撞预警则应选择视差最大的有效区域、车辆速度检测则应使用视差平均值、行人异常行为检测应使用视差平均值等。
[0125]
步骤5:将步骤4得到的u视差图和v视差图中的有效区域还原并融合得到障碍物准确视差图,将障碍物准确视差图转换为障碍物深度图,通过障碍物深度图求得障碍物三维场景位置信息,从整图视差图减去障碍物准确视差图,删除障碍物粗略距离排序表中数值最小的障碍物粗略距离。
[0126]
具体包括以下步骤:
[0127]
步骤5.1:取一个有效区域,设此有效区域的左上和右下两个点的坐标分别为(a1,b1)和(a2,b2),对于u视差图,取原始视差图的b1至b2列作为遍历图像,遍历图像中的每一个像素点是否在u视差图中的有效区域内,并保存所有在有效区域内的像素点;对于v视差图,取原始视差图的a1至a2列作为遍历图像,遍历图像中的每一个像素点是否在v视差图中的有效区域内,并保存所有在有效区域内的像素点;
[0128]
步骤5.2:利用步骤5.1遍历所有有效区域,最终得到还原后的u视差图和v视差图;
[0129]
步骤5.3:将还原后的u视差图和v视差图取交集,作为障碍物准确视差图;如图7。
[0130]
步骤5.4:将障碍物准确视差图利用视差深度转换公式转换为障碍物深度图;
[0131]
步骤5.5:求出障碍物深度图中像素值不为0的所有点的高斯分布,以高斯分布的期望作为障碍物的距离。
[0132]
步骤5.6:将整图视差图减去步骤5.3得到的障碍物准确视差图,并删除障碍物粗略距离排序表中数值最小的障碍物粗略距离。
[0133]
步骤6:重复步骤4至步骤5,最终得到待测图片中所有障碍物的三维场景位置信息。如图8。
[0134]
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献