一种双目测距系统及方法

未命名 09-29 阅读:111 评论:0


1.本发明涉及双目测距技术领域,特别是涉及一种双目测距系统及方法。


背景技术:

2.双目视觉测距系统是由两个相机同时对同一目标拍摄,通过被测物体在两个不同相机图像中的视差来获得目标物体的距离信息。
3.在核设施及其事故检测等现场,由于各种限制,通常会出现不适合人亲自到现场测量的情况,需使用到机器视觉技术,实现目标检测以及距离测量等要求。目前,数字技术在图像处理领域和光电领域具有广阔的应用前景。在智能机器人方面,测距技术是机器人智能化的一项关键技术,而传统的超声测距,激光测距具有诸多局限性,需要一种新的测距技术。视觉是人类获得信息的重要渠道,因此计算机视觉技术具有广阔的发展前景。计算机视觉主要有单目,双目和多目等方式,单目系统无法直接获得物体的深度信息,需要添加一个额外的约束条件。多目测距系统价格比起双目系统昂贵了许多,在需要控制成本的系统中不具有实用性,因此本发明提出了一种双目测距系统及方法来解决上述问题。


技术实现要素:

4.针对上述现有技术存在的缺陷,本发明的目的在于提供一种双目测距系统及方法。
5.为实现上述目的,本发明提供了一种双目测距系统,包括两台平行放置的摄像机,通过两个相机同时观察被测物体,通过寻找目标物体在不同视角下投影图像中的对应关系,计算图像中像素之间的视差来获得目标物体的深度信息,采用bouguet算法对图像进行矫正,将矫正之后的图片和获得的标定结果导入opencv进行立体匹配,获得视差图和测量距离。
6.进一步地,相机的标定包括人工标定、基于matlab工具箱的标定方法和opencv的标定方法三种方法,其中opencv和matlab采用张正友标定法,相较于传统标定法需要一个三维的标定板,制作难度较大,单平面棋格盘的相机标定法制作简单,并且精度较高,便于操作,三种方法中,matlab工具箱的标定方法具有更高的精度和更强的鲁棒性。
7.进一步地,所述matlab工具箱标定包括如下步骤:
8.步骤一:自制标定板,每个黑白格子大小为16mm
×
16mm;
9.步骤二:将双目相机平行放置,对标定板进行不同角度的图像采集,采集数量越多,标定效果越好,本发明相机共采集12次;
10.步骤三:打开stereocameracalibrator;
11.步骤四:将左右相机的图像分别导入其中,选择计算几个径向畸变参数k和切向畸变参数,进行校准;
12.步骤五:获得标定板与双目相机的三维关系图,最后得到双目相机的具体参数。
13.通过建立一个能量代价函数,通过此能量代价函数最小化来计算像素点的视差
值,寻找一个最优化求解,通过建立合理的能量函数,增加一些约束,采用最优化理论的方法进行方程求解。
14.进一步地,所述sgbm算法包括如下步骤:
15.步骤一:预处理,sgbm采用水平sobel算子,把图像进行水平方向的滤波,公式为:
16.sobel(x,y)=2[p(x+1,y)-p(x-1,y)]+p(x+1,y-1)-p(x-1,y-1)+p(x+1,y+1)-p(x-1,y+1);
[0017]
用一个函数将经过水平sobel算子处理后的图像上每个像素点映射成一个新的图像,映射函数为:
[0018][0019]
式中:perfiltercap为常数参数,pnew为新图像上的像素值,预处理得到的是图像的梯度信息,将用于计算代价;
[0020]
步骤二:代价计算,代价有两部分,经过sobelx算子处理后得到的图形,计算sad代价,原图像经过基于采样的方法得到的sad代价,将得到的两种代价进行融合,将融合后的代价值进行成块处理;
[0021]
步骤三:动态规划,利用sgm算法利用多个方向上的信息,让当前像素的代价聚合过程受多个路径上像素的影响,参与的方向越多,影响当前像素的领域像素就越多,保证了全局像素的约束,试图消除误差信息的干扰,能明显减弱动态规划算法产生的拖尾效应,完成sgm优化后,最终通过wta算法来选择每个像素的视差;
[0022]
步骤四:后处理。
[0023]
进一步地,sgbm的后处理包括以下如下步骤:
[0024]
步骤一:唯一性检测,也称为置信度检查,确保最佳视差值是全局最优,避免发生局部最优的情况;
[0025]
步骤二:亚像素插值,使图像的物体表面更加平滑;
[0026]
步骤三:左右一致性检测,消除左右视野不同带来的视差错误。
[0027]
进一步地,假定左右完全相同的摄像机的图像在同一平面上,两个相机的光心之间的距离为基线t,目标物p在两个相机平面上的交点为p
l
、pr,在图像上就具有相同的y坐标y=y
l
=yr,则由三角相似得到:
[0028]
z=f
·
t/(x
1-xr)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0029]
式中:f为相机的焦距;z为目标物体p到相机平面的距离,令视差d=x
1-xr,便可得出点p在相机坐标下的坐标,因此只要确定视差值,就可以确定目标点p的三维坐标,而要得到视差值,首先要在左右相机上分别找到对应的p点,进行立体匹配。
[0030]
进一步地,相机标定模型一共有四套坐标系,相机坐标系是以相机的光心为原点,平行于图像的x和y方向为x轴和y轴,z轴和光轴平行,x,y,z相互垂直,图像物理坐标系是以主光轴和图像的交点为坐标远的,x’和y’的方向与相机坐标系的x轴和y轴方向一致,图像像素坐标系是以图像的顶点作为坐标原点,u和v的方向与x’和y’的方向一致,将世界坐标转换为图像像素坐标,实现三维向二维化准备;
[0031]
空间中的点p通过坐标转换得到图像像素坐标p,其数学表达式为:
[0032][0033]
式中:d
x
、dy分别为单位像素的物理尺寸;f为相机的焦距;r为倾斜因子;a为内参数矩阵;r为正交旋转矩阵;t为平移向量,r与t组成外参数矩阵,旋转矩阵r和平移向量t为两个相机的相对位置关系。
[0034]
进一步地,摄像机镜头因制作工艺和其他原因产生的滋生误差,使得镜头产生径向畸变用k1、k2和k3表示:
[0035]
x
corrected
=x(1+k1r2+k2r4+k3r6)
ꢀꢀꢀꢀꢀ
(4)
[0036]
ycorrected=y(1+k1r2+k2r4+k3r6)
ꢀꢀꢀ
(5)
[0037]
镜头由于安装时或其他人为原因产生的误差将带来切向畸变,可以用p1、p2表示:
[0038]
xcorrected=x+[2p1y+p2(r2+2x2)]
ꢀꢀꢀ
(6)
[0039]
ycorrected=y+[2p1x+p2(r2+2y2)]
ꢀꢀꢀ
(7)。
[0040]
与现有技术相比,本发明的有益效果是:
[0041]
1、本发明采用matlab与opencv相结合的方法,先通过matlab对双目相机进行高精确度的标定,然后将获得的相机参数导入opencv中,通过立体匹配算法获得视差图,本发明利用sgbm算法,获得视差图以及目标物体的深度信息;
[0042]
2、本发明使用双目相机,matlab和opencv实现了双目测距系统,通过在python环境下,基于双目测距的基本原理,借助matlab标定工具箱对双目相机进行标定,将得到的双目相机的内参和外参导入到opencv,之后进行图像矫正和立体匹配,最终得到目标物体在实际场景中的三维信息。根据实验结果可知,本发明可以较好的标定双目相机的参数,并完成图像矫正和立体匹配,最终获得视差图和目标物体的深度信息,具有良好的稳定性和较高的鲁棒性。
附图说明
[0043]
为了更清楚地说明本发明中的方案,下面将对本发明实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]
图1是本发明提供的双目视觉原理示意图;
[0045]
图2是本发明提供的理想的摄像机模型示意图;
[0046]
图3是本发明提供的坐标关系图;
[0047]
图4是本发明提供的标定方格板;
[0048]
图5是本发明提供的标定图像;
[0049]
图6是本发明提供的标定板与左右相机的位置关系图;
[0050]
图7是本发明提供的sgbm流程图;
[0051]
图8是本发明提供的视差图。
具体实施方式
[0052]
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
[0053]
本发明的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本发明的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
[0054]
请参阅图1,一种双目测距系统,包括两台平行放置的摄像机,通过两个相机同时观察被测物体,通过寻找目标物体在不同视角下投影图像中的对应关系,计算图像中像素之间的视差来获得目标物体的深度信息,采用bouguet算法对图像进行矫正,将矫正之后的图片和获得的标定结果导入opencv进行立体匹配,获得视差图和测量距离。
[0055]
相机的标定包括人工标定、基于matlab工具箱的标定方法和opencv的标定方法三种方法,其中opencv和matlab采用张正友标定法,相较于传统标定法需要一个三维的标定板,制作难度较大,单平面棋格盘的相机标定法制作简单,并且精度较高,便于操作,三种方法中,matlab工具箱的标定方法具有更高的精度和更强的鲁棒性。
[0056]
matlab工具箱标定包括如下步骤:
[0057]
步骤一:自制标定板,如图4所示,每个黑白格子大小为16mm
×
16mm;
[0058]
步骤二:将双目相机平行放置,对标定板进行不同角度的图像采集,采集数量越多,标定效果越好,本发明相机共采集12次,标定图像(如图5);
[0059]
步骤三:打开stereocameracalibrator;
[0060]
步骤四:将左右相机的图像分别导入其中,选择计算几个径向畸变参数k和切向畸变参数,进行校准;
[0061]
步骤五:获得标定板与双目相机的三维关系图(如图6),最后得到双目相机的具体参数。
[0062]
通过建立一个能量代价函数,通过此能量代价函数最小化来计算像素点的视差值,寻找一个最优化求解,通过建立合理的能量函数,增加一些约束,采用最优化理论的方法进行方程求解,如图7所示。
[0063]
sgbm算法包括如下步骤:
[0064]
步骤一:预处理,sgbm采用水平sobel算子,把图像进行水平方向的滤波,公式为:
[0065]
sobel(x,y)=2[p(x+1,y)-p(x-1,y)]+p(x+1,y-1)-p(x-1,y-1)+p(x+1,y+1)-p(x-1,y+1);
[0066]
用一个函数将经过水平sobel算子处理后的图像上每个像素点映射成一个新的图像,映射函数为:
[0067]
[0068]
式中:perfiltercap为常数参数,pnew为新图像上的像素值,预处理得到的是图像的梯度信息,将用于计算代价;
[0069]
步骤二:代价计算,代价有两部分,经过sobelx算子处理后得到的图形,计算sad代价,原图像经过基于采样的方法得到的sad代价,将得到的两种代价进行融合,将融合后的代价值进行成块处理;
[0070]
步骤三:动态规划,利用sgm算法利用多个方向上的信息,让当前像素的代价聚合过程受多个路径上像素的影响,参与的方向越多,影响当前像素的领域像素就越多,保证了全局像素的约束,试图消除误差信息的干扰,能明显减弱动态规划算法产生的拖尾效应,完成sgm优化后,最终通过wta算法来选择每个像素的视差;
[0071]
步骤四:后处理。
[0072]
sgbm的后处理包括以下如下步骤:
[0073]
步骤一:唯一性检测,也称为置信度检查,确保最佳视差值是全局最优,避免发生局部最优的情况;
[0074]
步骤二:亚像素插值,使图像的物体表面更加平滑;
[0075]
步骤三:左右一致性检测,消除左右视野不同带来的视差错误。
[0076]
假定左右完全相同的摄像机的图像在同一平面上,如图1所示,两个相机的光心之间的距离为基线t,目标物p在两个相机平面上的交点为p
l
、pr,在图像上就具有相同的y坐标y=y
l
=yr,则由三角相似得到:
[0077]
z=f
·
t/(x
1-xr)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0078]
式中:f为相机的焦距;z为目标物体p到相机平面的距离,令视差d=x
1-xr,便可得出点p在相机坐标下的坐标,因此只要确定视差值,就可以确定目标点p的三维坐标,而要得到视差值,首先要在左右相机上分别找到对应的p点,进行立体匹配。
[0079]
相机标定模型一共有四套坐标系,如图2所示,相机坐标系是以相机的光心为原点,平行于图像的x和y方向为x轴和y轴,z轴和光轴平行,x,y,z相互垂直,图像物理坐标系是以主光轴和图像的交点为坐标远的,x’和y’的方向与相机坐标系的x轴和y轴方向一致,图像像素坐标系是以图像的顶点作为坐标原点,u和v的方向与x’和y’的方向一致,将世界坐标转换为图像像素坐标,实现三维向二维化准备;
[0080]
空间中的点p通过坐标转换得到图像像素坐标p,如图3所示,其数学表达式为:
[0081][0082]
式中:d
x
、dy分别为单位像素的物理尺寸;f为相机的焦距;r为倾斜因子;a为内参数矩阵;r为正交旋转矩阵;t为平移向量,r与t组成外参数矩阵,旋转矩阵r和平移向量t为两个相机的相对位置关系。
[0083]
摄像机镜头因制作工艺和其他原因产生的滋生误差,使得镜头产生径向畸变用k1、k2和k3表示:
[0084]
x
corrected
=x(1+k1r2+k2r4+k3r6)
ꢀꢀꢀꢀꢀ
(4)
[0085]
ycorrected=y(1+k1r2+k2r4+k3r6)
ꢀꢀꢀ
(5)
[0086]
镜头由于安装时或其他人为原因产生的误差将带来切向畸变,可以用p1、p2表示:
[0087]
xcorrected=x+[2p1y+p2(r2+2x2)]
ꢀꢀꢀ
(6)
[0088]
ycorrected=y+[2p1x+p2(r2+2y2)]
ꢀꢀꢀ
(7)
[0089]
本发明采用双目相机对标定板的不同位置进行拍摄,得到12组图像,将图像进行标定,得到的结果如下:
[0090]
左相机内参:
[0091][0092]
畸变系数:distortion_l=[-0.6562,6.1574,-0.0013,0.0192,-63.5256]
[0093]
右相机内参:
[0094][0095]
畸变系数:distortion_r=[-0.4040,104706,0.003,-0.0039,-324.637]
[0096]
旋转矩阵:
[0097][0098]
平移矩阵:t=[-104.1233,-0.7818,-11.0054]
[0099]
在立体匹配时,需要左右相机的摄像机平面是平行的,而实际操作中往往很难做到完全平行,这是需要采用bouguet算法对图像进行矫正
[16]
,将矫正之后的图片和获得的标定结果导入opencv进行立体匹配,获得视差图(如图8所示)和测量距离列于表1。由表1实验结果可知:本发明使用的方法具有较高的精度,当目标物距离拍摄相机越远时,精度越低。
[0100][0101]
本发明使用双目相机,matlab和opencv实现了双目测距系统,通过在python环境下,基于双目测距的基本原理,借助matlab标定工具箱对双目相机进行标定,将得到的双目相机的内参和外参导入到opencv,之后进行图像矫正和立体匹配,最终得到目标物体在实际场景中的三维信息。根据实验结果可知,本发明可以较好的标定双目相机的参数,并完成图像矫正和立体匹配,最终获得视差图和目标物体的深度信息,具有良好的稳定性和较高
的鲁棒性,在近距离测距具有较高的精度,随着测量距离增大,误差逐渐增大,但sgbm算法的计算速度相较其他算法速度较慢,可以植入fpga内提高速度。
[0102]
以上所述仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:
1.一种双目测距系统,其特征在于:包括两台平行放置的摄像机,通过两个相机同时观察被测物体,通过寻找目标物体在不同视角下投影图像中的对应关系,计算图像中像素之间的视差来获得目标物体的深度信息,采用bouguet算法对图像进行矫正,将矫正之后的图片和获得的标定结果导入opencv进行立体匹配,获得视差图和测量距离。2.根据权利要求1所述的一种双目测距系统及方法,其特征在于:相机的标定包括人工标定、基于matlab工具箱的标定方法和opencv的标定方法三种方法,其中opencv和matlab采用张正友标定法,相较于传统标定法需要一个三维的标定板,制作难度较大,单平面棋格盘的相机标定法制作简单,并且精度较高,便于操作,三种方法中,matlab工具箱的标定方法具有更高的精度和更强的鲁棒性。3.根据权利要求2所述的一种双目测距系统及方法,其特征在于:所述matlab工具箱标定包括如下步骤:步骤一:自制标定板,每个黑白格子大小为16mm
×
16mm;步骤二:将双目相机平行放置,对标定板进行不同角度的图像采集,采集数量越多,标定效果越好,本发明相机共采集12次;步骤三:打开stereocameracalibrator;步骤四:将左右相机的图像分别导入其中,选择计算几个径向畸变参数k和切向畸变参数,进行校准;步骤五:获得标定板与双目相机的三维关系图,最后得到双目相机的具体参数。4.根据权利要求3所述的一种双目测距系统及方法,其特征在于:通过建立一个能量代价函数,通过此能量代价函数最小化来计算像素点的视差值,寻找一个最优化求解,通过建立合理的能量函数,增加一些约束,采用最优化理论的方法进行方程求解。5.根据权利要求4所述的一种双目测距系统及方法,其特征在于:所述sgbm算法包括如下步骤:步骤一:预处理,sgbm采用水平sobel算子,把图像进行水平方向的滤波,公式为:sobel(x,y)=2[p(x+1,y)-p(x-1,y)]+p(x+1,y-1)-p(x-1,y-1)+p(x+1,y+1)-p(x-1,y+1);用一个函数将经过水平sobel算子处理后的图像上每个像素点映射成一个新的图像,映射函数为:式中:perfiltercap为常数参数,pnew为新图像上的像素值,预处理得到的是图像的梯度信息,将用于计算代价;步骤二:代价计算,代价有两部分,经过sobelx算子处理后得到的图形,计算sad代价,原图像经过基于采样的方法得到的sad代价,将得到的两种代价进行融合,将融合后的代价值进行成块处理;步骤三:动态规划,利用sgm算法利用多个方向上的信息,让当前像素的代价聚合过程受多个路径上像素的影响,参与的方向越多,影响当前像素的领域像素就越多,保证了全局像素的约束,试图消除误差信息的干扰,能明显减弱动态规划算法产生的拖尾效应,完成sgm优化后,最终通过wta算法来选择每个像素的视差;
步骤四:后处理。6.根据权利要求5所述的一种双目测距系统及方法,其特征在于,sgbm的后处理包括以下如下步骤:步骤一:唯一性检测,也称为置信度检查,确保最佳视差值是全局最优,避免发生局部最优的情况;步骤二:亚像素插值,使图像的物体表面更加平滑;步骤三:左右一致性检测,消除左右视野不同带来的视差错误。7.根据权利要求6所述的一种双目测距系统及方法,其特征在于:假定左右完全相同的摄像机的图像在同一平面上,两个相机的光心之间的距离为基线t,目标物p在两个相机平面上的交点为p
l
、p
r
,在图像上就具有相同的y坐标y=y
l
=y
r
,则由三角相似得到:z=f
·
t/(x
1-x
r
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)式中:f为相机的焦距;z为目标物体p到相机平面的距离,令视差d=x
1-x
r
,便可得出点p在相机坐标下的坐标,因此只要确定视差值,就可以确定目标点p的三维坐标,而要得到视差值,首先要在左右相机上分别找到对应的p点,进行立体匹配。8.根据权利要求7所述的一种双目测距系统及方法,其特征在于:相机标定模型一共有四套坐标系,相机坐标系是以相机的光心为原点,平行于图像的x和y方向为x轴和y轴,z轴和光轴平行,x,y,z相互垂直,图像物理坐标系是以主光轴和图像的交点为坐标远的,x’和y’的方向与相机坐标系的x轴和y轴方向一致,图像像素坐标系是以图像的顶点作为坐标原点,u和v的方向与x’和y’的方向一致,将世界坐标转换为图像像素坐标,实现三维向二维化准备;空间中的点p通过坐标转换得到图像像素坐标p,其数学表达式为:式中:d
x
、d
y
分别为单位像素的物理尺寸;f为相机的焦距;r为倾斜因子;a为内参数矩阵;r为正交旋转矩阵;t为平移向量,r与t组成外参数矩阵,旋转矩阵r和平移向量t为两个相机的相对位置关系。9.根据权利要求8所述的一种双目测距系统及方法,其特征在于:摄像机镜头因制作工艺和其他原因产生的滋生误差,使得镜头产生径向畸变用k1、k2和k3表示:x
corrected
=x(1+k1r2+k2r4+k3r6)
ꢀꢀꢀꢀꢀ
(4)ycorrected=y(1+k1r2+k2r4+k3r6)
ꢀꢀꢀ
(5)镜头由于安装时或其他人为原因产生的误差将带来切向畸变,可以用p1、p2表示:xcorrected=x+[2p1y+p2(r2+2x2)]
ꢀꢀꢀ
(6)ycorrected=y+[2p1x+p2(r2+2y2)]
ꢀꢀꢀ
(7)。

技术总结
本发明公开了一种双目测距系统及方法,包括两台平行放置的摄像机,通过两个相机同时观察被测物体,通过寻找目标物体在不同视角下投影图像中的对应关系,计算图像中像素之间的视差来获得目标物体的深度信息,采用bouguet算法对图像进行矫正,将矫正之后的图片和获得的标定结果导入OpenCV进行立体匹配,获得视差图和测量距离,本发明使用双目相机,MATLAB和OpenCV实现了双目测距系统,通过在python环境下,基于双目测距的基本原理,借助MATLAB标定工具箱对双目相机进行标定,将得到的双目相机的内参和外参导入到OpenCV,之后进行图像矫正和立体匹配,最终得到目标物体在实际场景中的三维信息。三维信息。三维信息。


技术研发人员:黄昊天 林伟
受保护的技术使用者:上海应用技术大学
技术研发日:2023.06.26
技术公布日:2023/9/25
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐