基于计算机视觉的目标测距算法

  • 陈立功 ,
  • 李柯达 ,
  • 张泽宇 ,
  • 于晗 ,
  • 王欣怡
展开
  • 西安现代控制技术研究所, 西安 710065

陈立功(1990-),男,陕西神木人,工程师,硕士,研究方向:软件工程。

收稿日期: 2019-06-16

  网络出版日期: 2025-05-30

Research on Target Ranging Algorithms Based on Computer Vision

  • CHEN Ligong ,
  • LI Keda ,
  • ZHANG Zeyu ,
  • YU Han ,
  • WANG Xinyi
Expand
  • Xi’an Modern Control Research Institute, Xi’an 710065, China

Received date: 2019-06-16

  Online published: 2025-05-30

摘要

基于双目视觉的被动式测距隐蔽性好,在军事领域具有广阔的应用前景。文中提出采用基于计算机视觉的目标测距算法,对双摄像头拍摄的视频中的目标进行距离测量,通过对其重合区域运用双目测距、对非重合区域运用单目测距的方法,最终从目标的二维图像中获取其空间距离信息。经过试验,单目测距的平均相对误差为3%,双目视觉测距的平均绝对误差为0.766 cm,测量结果的准确性符合所需的精度。

本文引用格式

陈立功 , 李柯达 , 张泽宇 , 于晗 , 王欣怡 . 基于计算机视觉的目标测距算法[J]. 弹箭与制导学报, 2020 , 40(2) : 93 -96 . DOI: 10.15892/j.cnki.djzdxb.2020.02.023

Abstract

The passive ranging based on binocular vision has good concealment and broad application prospects in the military field. The target ranging algorithm based on computer vision studied in this paper can measure the distance of obstacles in the video taken by two cameras. The spatial distance information of the obstacle is finally obtained from the two-dimensional image of the obstacle by using the principle of binocular vision in the overlapping area and monocular vision in the non-overlapping area. The average relative error of monocular ranging is 3 %, and the average absolute error of binocular visual ranging is 0.766.The experiment shows that the algorithm can obtain the measurement results with the required accuracy.

0 引言

当前,在军事战场上应用最多的就是主动式测距方法,如利用激光脉冲测距仪,它是使用率最高的测距仪,其技术经过长期发展已相当成熟,能够满足远距离高精度的测量要求。但主动式测距仪存在的共性问题就是必须主动对外发出信号,通过激光或者其它介质的传播时间来测量距离,这个过程很容易暴露自身。双目测距系统根据双目视觉原理,不必对被测目标发出任何信号,在不被暴露的情况下就可以完成距离的测量[1]
双目测距技术与其他测距方法相比,其被动式测距的优点决定其在军事侦测领域具有良好的应用前景。双目测距技术是计算机视觉里被广泛研究和应用的重要分支,其主要原理是仿照人的双眼来测量距离。它利用两台参数完全相同,但处在不同位置的相机代替人的双眼,对相同目标进行图像采集,通过目标在两成像面中所处位置的差异计算出目标的距离信息。通过计算机获取的目标图像,比人眼直接获取的信息更加精确,更加方便处理[2]
文中研究从输入的二维图像信息中获取目标的三维空间中的距离信息。通过对目标距离的度量,为后续的图像融合和定位提供依据。由于双摄像头的特点,即对两个摄像头交叉区域的目标的重复的拍摄,和对两侧目标的单独拍摄,这使得测距工作也需要分为两个部分进行:摄像交叉区域的目标的图像能够应用双目视觉原理进行测距,而两侧的目标图像由于不能提供视差,只能通过单目测距原理获取距离信息。

1 单目测距的实现

图1中非交叉的区域包含摄像头两侧的目标信息,由于每个摄像头只能拍摄该区域的一侧,因此立体视觉原理在此不适用。单目测距可较好的解决这个问题,同时它还具有方法简单,处理速度快和控制实时性好的特点[3]
图1 双目立体视觉相机布局
在单目测距中使用反转透视模型。图像的测距过程可以被视为图像采集过程的逆过程,即从二维的欧拉空间到三维的现实空间的变换。利用反转透视模型测距的实质是利用图像空间的数据,在先验知识的指导下,计算现实空间的某一平面的数据的过程。根据反转透视模型,可获得空间几何关系如图2所示[4]
图2 反转透视模型俯视图关系
图2反转透视模型图关系可得:

L= 1 + t a n ( 2 α · x m - 1 + ε 0 - α ) 2·
H t a n ( 2 α · y n - 1 + θ 0 - α )

式中:H是摄像机距地面的高度;2α是摄像机的孔径张角;m×n是摄像机的分辨率;θ0是摄像机中心轴与X轴在(x,z)平面的夹角,(x,y)是测量点在图像中的像素坐标,ε0是摄像机中心轴与X轴在(x,y)平面的夹角,L是测量点到摄像头的距离。

2 双目测距的实现

在理想情况下,双目测距的实现原理可用图3表示。
图3 双目理想测距原理

R P= R + f P + x 2

R P + b= R + f P + b + x 1

由式(2)、式(3)可知,双目测距原理是利用目标像点的视差获得其空间距离。在理想模型中,两摄像机焦距相等、光轴平行,但是在实际中,双目立体视觉相机布局如图3所示,其光轴不平行,左右焦距不相等。所能获取的像点在图像平面的坐标是其像素坐标而非像平面坐标,因此不能简单地建立几何的投影模型以描述被测点的距离与相机参数之间的关系。
实际的模型应当包括3个坐标的转换:世界坐标系到摄像机坐标系的转换,摄像机坐标系到图像坐标的转换,图像坐标到像素坐标的转换[5]
待测物由世界坐标系转化为像素坐标公式:

Z u v 1= α u 0 u 0 0 a v v 0 0 0 1 R w T w O T 1 X w Y w Z w 1=M X w Y w Z w 1

式中:M是摄像机的参数矩阵;(Xw,Yw,Zw)是待测物在世界坐标系下的坐标。
当通过摄像机进行标定获得M之后,就可以建立每个摄像机中待测点的摄像机坐标与图像坐标的对应关系。在双目立体视觉模型中,对两个摄像机均可列出式(4)的关系,利用最小二乘法对线性方程组进行求解[6],即获得该空间点的三维坐标(Xw Yw Zw)。
X w Y w Z w=( M T rMr)-1 M T rB
式中:

Mr= u m 31 - m 11 u m 32 - m 12 u m 33 - m 13 v m 32 - m 21 v m 32 - m 22 v m 33 - m 23 u m 31 - m 11 u m 32 - m 12 u m 33 - m 13 v m 31 - m 11 v m 32 - m 12 v m 33 - m 13

B= m 14 - m 34 u m 24 - m 34 v m 14 - m 34 u m 14 - m 34 v

3 目标测距算法的验证试验

1)单目测距的验证试验
为了验证反转透视模型的准确性,在公式所使用的实验环境下,采用先标定再验证的思路,首先利用最小二乘法在标定图片中获取式(1)中的难以测量的孔径角α,然后在验证图片中,采用标定的结果利用反转透视模型测量标定尺上的点的测量误差。
在本实验中考虑到在输入标定点时可能存在的误差,选择了6个标定点,并重复大量实验,以使标定的孔径角准确有效。
在孔径角定义域0到π范围内每隔0.01 rad取一个孔径角,计算6个点的距离,并累计误差,最终获得距离误差最小的孔径角,再缩小间隔长度,提高孔径角的测量精度。最终获得孔径角为31.633 31°,累积误差为1.330 25 cm。然后将孔径角代入公式,对标定图片和验证图片分别进行测量获得10个点的测量误差见表1
表1 单目测距结果的相对误差
点的
距离/cm
测量误差/cm
标定图片 验证图片
8 0.172 154 204 27 0.135 286 034 93
9 0.304 903 632 10 0.473 093 445 74
10 0.412 352 515 23 0.326 531 309 32
11 0.031 965 674 84 0.129 465 176 93
12 0.160 842 698 81 0.186 739 009 45
13 0.203 659 257 13 0.842 032 713 23
14 0.429 349 566 94 0.148 535 784 55
15 0.188 553 138 69 0.569 614 904 87
16 0.055 679 493 628 0.233 718 818 33
17 0.558 084 670 705 0.723 905 342 81
图4 单目测距实验环境
经过10个点测量,得到标定图片测量点的平均相对误差是2%,验证图片测量点的平均相对误差是3%。说明了反转透视模型的准确性。
2)双目测距的验证试验
双目视觉测距模型是利用两台摄像机的几何投影关系联立获得方程,方程的解向量是目标点的空间坐标,而方程的建立则需要相机内外参数的标定。相机标定时没能直接给出旋转矩阵,而是给出了相对于空间坐标系旋转的角度向量。因此,首先应当进行旋转矩阵的求解。其次,将3个矩阵Rx(ψ)、Ry(ψ)、Rz(θ)相乘,获得旋转矩阵R,然后加入平移向量构建出摄像机的外参矩阵,再将外参矩阵与内参矩阵相乘获得摄像机的单应性矩阵,最后将两个摄像机方程联立,利用最小二乘法对目标的世界坐标进行求解。
本验证实验对一幅棋盘格用两个摄像头同时进行拍摄,首先建立标准距离模版,即将棋盘格的右上角设定为原点,然后计算各角点到该点的距离,该棋盘格为7×8的边长为2.5 cm黑白正方形交替排列而成的,建立的标准距离模版如图5所示。
图5 实验的标准距离模板
由于棋盘格是标定的工具,因此其内角点位置已由内角点提取程序产生,相对于单目测距实验中使用鼠标点击目标点的方式更为精确,从而有效减少了系统误差。
在输入同时拍摄的左右两幅图片的所有内角点位置后,利用标定的结果建立起摄像机参数矩阵,便可以利用最小二乘法求解每个内角点的世界坐标,再算出每个内角点相距原点的欧氏距离,就可以与距离模版的值进行比较,如图6所示,从而获得42个点的距离误差。
图6 未进行畸变校正的双目测距结果
这样的结果并不令人满意,这是由于图像畸变的原因。对该畸变进行修正:

xc=x(1+k1r2+k2r4+k3r6)

yc=y(1+k1r2+k2r4+k3r6)

式中:xcyc分别表示x向、y向的畸变修正。
利用标定提供的畸变系数重新计算获得在消除畸变之后角点所在的像素坐标,然后进行求解,可以获得42个点的相对误差距离表。
可见通过畸变矫正后双目测距的结果误差显著降低,提高了测量的精度,此时测量的平均绝对误差为0.766 cm。
图7 进行畸变校正后的双目测距结果

4 结语

文中深入研究了单目测距原理和双目测距原理,为双目测距系统的目标距离测量提供了一种基于计算机视觉的计算方法,并进行了验证实验,实验环境下单目测距的平均相对误差为3%,双目视觉测距的平均绝对误差为0.766 cm,获得了符合精度要求的结果。
[1]
丁欢engwen_left_div_p_1"> 丁欢欢. 双目立体视觉测距系统关键技术研究[D]. 成都: 电子科技大学, 2015.

[2]
ZHOU H L, WEI L, CREIGHTON D, et al. Orientation aware vehicle detection in aerial images[J]. Electronics Letters, 2017, 53(21):1406-1408.

[3]
SATZODA R K, LEE S, LU F, et al. Vision-based front and rear surround understanding using embedded processors[J]. IEEE Transactions on Intelligent Vehicles, 2017, 1(4):335-345.

[4]
周士超. 无人机电力巡检视觉避障技术研究[D]. 北京: 北京理工大学, 2016.

[5]
裴聪. 基于计算机视觉中双目立体匹配技术研究[D]. 镇江: 江苏大学, 2010.

[6]
尚倩. 基于双目立体视觉的目标识别与定位[D]. 北京: 北京交通大学, 2011.

文章导航

/

[an error occurred while processing this directive]