文章快速检索  
  高级检索
基于单幅立式标靶图像的单目深度信息提取
黄小云, 高峰, 徐国艳, 丁能根, 邢龙龙    
北京航空航天大学 交通科学与工程学院, 北京 100191
摘要:针对在智能车中车载单目视觉系统已经检测到路面障碍物的情况下,计算障碍物相对于本车的距离问题,提出了一种仅利用单幅标靶图像且无需相机内部参数的图像深度信息提取方法.该方法利用一种放置于相机前方的立式标靶,建立图像纵坐标像素与实际成像角度之间的映射关系,结合投影几何模型实现实时深度信息的提取.依据立式标靶图像的特点,设计了包括标靶图像感兴趣区设置、模板匹配、候选点聚类、筛选及精确定位等处理的亚像素级角点检测及定位算法.实验结果显示,该方法具有较高的测量精度及实时性.相对于在路面摆放参照物的方法,该方法无需大标定场地且规避了数据拟合引起的误差.同时该方法标定只需一幅图像,过程简单,便于实际应用.
关键词机器视觉     单目测距     立式标靶     智能车     角点检测    
Depth information extraction of on-board monocular vision based on a single vertical target image
HUANG Xiaoyun, GAO Feng , XU Guoyan, DING Nenggen, XING Longlong     
School of Transportation Science and Engineering, Beijing University of Aeronautics and Astronautics, Beijing 100191, China
Abstract:Calculating obstacle distance for on-board monocular vision system on intelligent vehicle was investigated when the obstacle has been detected. An extraction method of depth information only using a single target image without any internal camera parameters was developed. The mapping relation between image row pixel values and the actual imaging angles was established with the image of vertical target, which was placed in the front of a camera. The obstacle depth information was extracted in real time by combining the projection geometry model. Given the characteristic of vertical target image, an algorithm of sub-pixel corner detection and location was designed, which includes region of interest setting, template matching, candidate points clustering and screening and precise location, etc. Experimental results show that the method has high precision and real-time performance. Compared with the method of putting reference on the road, it does not need large calibration site and could avoid the data fitting error. And the method also has a simple calibration procedure with a single image, which is suitable for practical application.
Key words: machine vision     monocular distance detection     vertical target     intelligent vehicle     corner detection    

机器视觉作为智能车辆环境感知系统中最重要的组成部分,为决策层提供大量必要的环境信息,具有十分重要的意义.其中,障碍物的深度信息为无人驾驶或辅助驾驶系统的主动避撞、防撞预警及路径规划等[1, 2]提供重要的参数信息.目前智能车的机器视觉测量一般分为双目视觉测量[3, 4]和单目视觉测量两类.双目视觉测量容易受到特征点误匹配的影响,且计算量大,难以满足实时性要求;而单目视觉测量结构简单,图像处理算法运算效率高,具有广泛的应用前景.

目前单目视觉系统一般采用对应点标定法(简称标定法)来获取待测物体的深度信息[5, 6, 7, 8, 9].该方法通常是利用棋盘格标定板标定出相机内外部参数后,结合投影模型,求解出图像坐标系与实际成像角度之间的对应关系,从而得到深度信息.此方法需要多次采集不同方位的标定板图像,并且精确记录每个点在世界坐标系和图像坐标系中的对应坐标,标定精度对于测量精度影响相当大,某些参数的标定误差会在测量中被放大数十倍.文献[10]则是在路面摆放参照物并测量其距离,选择合适的数学模型,拟合参照物距离和像素之间的对应关系,再利用此关系实时提取深度信息.此方法在工程中也有广泛的运用,但需要较大的场地,且精度会受到长距离手动测量误差及拟合误差的影响.Wu等[11]研究了一种激光与单目视觉相结合的测距方法;王荻等[12]则是利用光电经纬仪和GPS获得相机位姿信息,然后代入定位方程计算距离;另外,还有通过样本训练[13]或面积映射关系[14]等方法来实现单目深度信息提取的.

本文提出一种不受棋盘格标定板标定误差影响且不需要大场地及长距离手动测量的单目深度信息提取方法.此方法通过检测立式标靶图像的角点并定位建立图像纵坐标像素与实际测量角度之间的映射关系,利用此映射关系结合投影几何模型得到深度信息.

1 深度信息提取原理

在智能车辆单目视觉系统中,相机一般安装于车内后视镜或车顶横向中间位置,而这两种安装位置的投影几何模型及后续图像处理方法并没有明显区别.此外,城市化道路一般较平整,坡度不大,所以基于水平路面假设,以相机安装于车内后视镜处为例,相机安装位置及投影几何模型如图 1所示.当前可以通过测量及车辆检测、行人识别等算法得到的信息为:相机高度h、被测物体在图像上的位置(一般为矩形区域,图像平面如图 2所示,其中矩形ABCD即为被测物体位置).而被测物体在路平面上的实际成像角度α无法根据图像得到,所以也不能得到物体的距离LP(即PQ的长度).

图 1 相机安装位置及投影几何模型Fig. 1 Installation position and projection geometry model of camera

如果可以建立图像平面中被测物体底部(即图 2AB所在位置)的像素yP与投影几何模型中实际成像角度α之间的映射关系,即α=F(y),由像素信息得到角度信息,那么图 1中被测物体的距离LP就可以通过边长OQ及角度α算得:

立式标靶如图 3所示,标靶以一定高度竖直放置于地面,靶面上共有17个共线角点,其中最低角点距离地面的竖直高度为1 m,且相邻角点之间相差0.05 m.利用图 3所示的立式标靶确定纵坐标像素与实际成像角度之间的映射关系α=F(y).

图 2 图像平面Fig. 2 Image plane
图 3 立式标靶Fig. 3 Vertical target

图 4为基于立式标靶的测量原理图.将立式标靶放置于相机的正前方,采集标靶图像,通过角点检测算法得到各角点在图像上的坐标.由于各角点的实际高度及标靶与相机的水平距离均已知,可得到其对应的成像角度.以图 4中的角点S为例,由ΔOSG可得到其对应的成像角度αS=arctan ,其中,hS为角点S的高度,D在放置标靶时测得.据此建立图像纵坐标像素与实际成像角度之间的映射关系,再结合式(1)得到深度信息.

图 4 基于立式标靶的测量原理图Fig. 4 Measuring principle diagram based on vertical target

2 立式标靶角点检测及定位

由于整个测量过程均是基于利用立式标靶建立图像纵坐标像素与实际成像角度之间的映射关系,所以立式标靶的角点检测精度及定位准确性成为影响测量精度的关键问题.

2.1 立式标靶图像

现有车型众多,车内后视镜位置离前保险杠的距离也各不相同,为了在方便定位的同时满足精度要求,立式标靶放置的位置在尽量靠近相机的同时,满足采集的图像中必须包含最低的角点且角点总数大于8个这一要求.由于标靶尽量放置于相机正前方,所以设置标靶角点检测的感兴趣区为图像中间1/3的区域,如图 5所示.

图 5 标靶图像Fig. 5 Target image

2.2 初始角点检测

由于传统的角点检测算法会得到过多的非目标角点,容易受到环境的干扰,所以很难满足标靶图像的角点检测要求.本文设计了一种满足小角度旋转的基于模板匹配的角点检测算法.

2.2.1 模板匹配

图 6为4种模板匹配图像,其像素大小都是20×20(此数值可依据图像分辨率的大小适当调整),上下左右平均分为4块,白色部分像素值为255,黑色部分像素值为0.其中,模板1和2用来匹配检测标靶中目标角点的候选点,模板3和4用来匹配检测定位所需的参考点(参考点的定义将在第2.3节中介绍).

图 6 4种模板匹配图像 Fig. 6 Four template images for matching

首先对感兴趣区分块处理,再对每个块运用最大类间方差法进行自适应二值化处理[15],得到感兴趣区的二值图像.在该区域内以逐点匹配的方式检测候选角点,匹配步骤如下:

步骤1 图像中待匹配子图与模板进行差值处理(即像素值相同取0,不同取255),得到差值图像,差值处理如图 7所示.

图 7 差值处理Fig. 7 Differential treatment

步骤2 以n×n个像素作为统计单元(本文中n取7),对差值图像进行统计.判定准则为

式中,m为统计单元中像素值为255的点的个数;T为密度阈值(本文中T取0.32).

如果存在满足式(2)的单元则认为此待匹配子图与模板不匹配,否则认为匹配.利用模板1和2匹配检测出角点图像,二值化后目标角点检测结果图像如图 8所示,共检测出89个点.

图 8 二值化后目标角点检测结果图像Fig. 8 Images of target corners detection after binaryzation

2.2.2 候选点聚类及筛选

将所有认为匹配的点作为目标角点的候选点,因为存在相邻多个点都为匹配点或标靶外的区域也存在匹配点的情况,所以为了得到较准确的初始角点,将对候选点集进行聚类及筛选的操作.

聚类:遍历所有候选点,将所有点与点之间的横坐标及纵坐标之差同时小于阈值T1(本文中T1取10)的点记为同一小类,各小类的中心点坐标为

式中,∑ X和∑ Y分别为同一类中所有点的横坐标和纵坐标之和;k为此小类中点的个数.

筛选:遍历所有小类,将所有中心点横坐标之差小于T1的小类记为同一个大类,然后保留包含小类数目最多的大类,剔除其他大类,并将保留下来的小类的中心点存为初始角点.

例如图 8中共检测到89个点,聚类后得到了8个小类,经过筛选只存在1个大类,表 1为保留的初始角点.

表 1 保留的初始角点 Table 1 Preserved initial corner points
编号坐标
I1(439,379)
I2(438,335)
I3(439,247)
I4(439,203)
I5(439,158)
I6(439,113)
I7(438,68)
I8(438,23)

2.3 角点定位

角点定位是指判断检测到的各角点对应的实际高度.3个定位参考点如图 9所示.

图 9 3个定位参考点Fig. 9 Three positioning reference points

由于存在光线等因素的影响,由图 9表 1对比可以看出还有角点未检测到.所以,当定位出最低角点后即可将其余角点全部补充完整,最终实现所有角点的定位,过程如下:

首先,搜索出初始角点中横坐标最大值xmax,利用图 6中的模板3,以第2.2.1 节中的匹配方法,在坐标小于xmax的感兴趣区域内从上至下、从右至左检测匹配子图,一旦匹配即停止检测,记录坐标(xa,ya),此点即为图 9中参考点①或②.计算xmaxxa,作为角点的间距参考值.

然后,在点(xa-(xmax-xa)/2,ya)的左下感兴趣区内利用图 6中模板4从上至下、从右至左检测匹配的子图,一旦匹配即停止检测,点(xb,yb)即为参考点③.

最后,如果ybya接近xmaxxa的3倍则认为(xa,ya)为参考点①,如果ybyaxmaxxa相差很小,则认为(xa,ya)为参考点②.如果没有检测到两个参考点,则需要重新放置标靶再次检测.

目前参考点③、初始角点中的最低点及角点的间距参考值均为已知,通过计算参考点③与初始角点中的最低点在y方向上的位置差值,再与角点间距参考值进行比对,即可判断出初始角点中的最低点是否为标靶最低的角点.如果初始角点中的最低点判断为标靶最低的角点,则利用角点间距参考值将其余初始角点补充完整;如果不是最低的角点,则将点(xmax,yb-2(xmaxxa))定位为最低角点,再将其余初始角点补充完整.表 2为初始角点及补充角点的坐标及定位高度,角点C即为补充的定位角点.

表 2 初始角点及补充角点的坐标及定位高度Table 2 Coordinates and positioning height of initial corner points and complementary corner point
编号坐标定位高度/m
I1(439,379)1.00
I2(438,335)1.05
C(439,291)1.10
I3(439,247)1.15
I4(439,203)1.20
I5(439,158)1.25
I6(439,113)1.30
I7(438,68)1.35
I8(438,23)1.40

2.4 亚像素级角点检测

为了更精确地提取角点位置,运用openCV中的cvFindCornerSubPix()函数,以初始角点为基准将其更新为亚像素级角点,亚像素级角点检测结果如表 3所示.cvFindCornerSubPix()函数的具体用法见文献[16].

表 3 亚像素级角点检测结果Table 3 Subpixel corner point detection results
编号初始坐标亚像素级角点坐标
I1(439,379)(438.387 91,378.317 99)
I2(438,335)(438.592 53,334.891 36)
C(439,291)(438.714 80,290.474 18)
I3(439,247)(438.826 14,246.784 79)
I4(439,203)(438.821 87,202.199 31)
I5(439,158)(438.652 92,157.331 95)
I6(439,113)(438.432 56,112.366 84)
I7(438,68)(438.042 79,67.456 29)
I8(438,23)(437.650 18,22.745 09)

3 建立像素与成像角度的映射关系

分析图 4可知,当相机和立式标靶安装或放置完毕后,距离D及高度h的值将固定不变,各角点的实际成像角度可通过计算得出.此外,各角点的像素与实际标靶上的角点也已经通过定位一一对应.所以各角点的实际成像角度值与像素值即可完全确定.

例如,采集图 8时,距离D=1 500 mm,高度h=1 320 mm,计算得到像素值与实际成像角度的映射关系如图 10所示.可以看出,实际成像角度与y方向像素的映射关系可以近似为一条直线,但是为进一步提高精度,采用相邻点的分段直线来表示映射关系,从而减少拟合误差.

图 10 像素值与实际成像角度的映射关系Fig. 10 Mapping relation between image row pixel values and actual imaging angles

在计算某像素点对应的成像角度时,需先判断此像素点的y值所在像素值范围,然后利用相邻两点构造的直线方程计算成像角度.例如,当y=210时,利用相邻两点建立的直线方程可求解对应的实际成像角度α为85.095 1°,然后通过式(1)即可求得距离结果.

4 实验验证

为验证方法的可行性及精度,在VS2010+OpenCV2.2环境下,按照上述方法编写程序并调试后,分别进行了静态及动态实验.将CCD(Charge-coupled Device)相机安装于车内后视镜处,俯仰角为5°,距地面高度h为1 320 mm,立式标靶的靶面与相机距离D为1 800 mm.图像分辨率为752×480.

4.1 静态实验

首先将标靶放置于相机前方,使立式标靶的角点在图像的感兴趣区内.运行编写好的程序,完成角点检测及定位,标靶角点检测及定位界面如图 11所示,亚像素级角点坐标及对应实际成像角度如表 4所示.然后将实验被测物体按不同的距离放置于路面,并记录其实际距离值.选取采集的被测物体图像,手动选取出物体底部位置,通过上述程序运算后得到被测物体的深度信息.部分实验图像如图 12所示,实际距离和计算距离对比如表 5所示.

图 11 标靶角点检测及定位界面Fig. 11 Target corner detection and positioning interface
表 4 亚像素级角点坐标及对应实际成像角度Table 4 Coordinates and actual imaging angles of subpixel corner points
编号亚像素级角点坐标成像角度/(°)
1(363.838 84,401.420 47)79.919 47
2(364.333 74,364.973 36)81.469 30
3(364.413 33,329.076 60)83.031 81
4(365.247 28,291.402 07)84.604 81
5(365.594 76,254.206 18)86.186 00
6(365.937 74,216.781 45)87.773 03
7(366.441 19,179.210 14)89.363 48
8(366.855 07,142.176 82)90.954 77
9(367.151 34,104.834 32)92.544 73
10(367.534 64,67.900 67)94.130 78
11(367.822 54,30.959 16)95.710 52
表 5 实际距离和计算距离对比Table 5 Comparison between actual distance and calculated distance
实际距离/my像素值计算距离/m误差/%
5.534795.549 60.354 4
83848.025 80.322 5
1034110.043 70.437 0
2025320.069 90.349 5
3022429.836 80.544 0
4020939.840 30.399 3
5020049.854 70.290 6
6019459.887 40.187 7
8018681.842 32.302 9
100182100.207 80.207 8
140177139.631 70.263 1
图 12 部分实验图像Fig. 12 Part of experimental images

从测量结果中可以看出,该方法总体误差很小,一般小于1%.由于80 m时误差突然达到2.302 9%,所以又进行了进一步分析.将y像素值调整为187,利用表 4的映射关系,计算得到深度值为78.262 5 m.因此一个像素所占的距离为3.579 8 m,而且这个数值会随着实际距离的增加而变大.所以,距离越远对障碍物检测精度的要求越高,可能的误差也越大.但对于智能车系统,离本车越远危险系数越低,所以测量的精度要求也可以有所降低.总的来说,实验结果显示上述方法已经可以满足系统的要求.

4.2 动态实验

为检验此方法的实时性及在实际行驶状态下的效果,进行了动态实验,动态实验图像如图 13所示.实验中采集图像的帧率为15帧/s.实验主要是利用上述方法结合基于机器学习的车辆识别技术实现前方车辆识别及深度信息提取.实验表明,从采集图像到处理完成共消耗不到50 ms,可以满足实时性要求.而且同时与雷达测量结果进行对比发现,两种测量值相差保持在±0.5 m以内,所以此方法也可以满足智能车单目视觉系统准确性的要求.

图 13 动态实验图像Fig. 13 Dynamic experimental images

5 结 论

利用单幅立式标靶图像、焦点检测与定位算法建立了实际成像角度与y方向像素的映射关系.再结合投影几何模型,实现了单目视觉图像的深度信息提取.通过分析与比较,得到以下结论:

1) 所设计的依据二值化差值图像统计单元中不匹配点密度的模板匹配算法可快速检测目标角点.结合OpenCV库函数,实现了亚像素级的角点检测及定位,进一步提高了检测精度.

2) 利用检测立式标靶中高度已知的角点可建立图像纵坐标像素与实际成像角度之间的映射关系,而且此关系近似于一条直线.

3) 上述定位方法只需测量相机高度及相机与标靶的距离,采集一副标靶图像即可,操作简单且测量精度及实时性都可满足智能车辆单目视觉系统要求.

本文暂未考虑相机抖动造成的俯仰角变化以及斜坡路面的影响,因此在不平路面及驶入或驶出斜坡之前的工况下测量精度略显不足,还有继续改进的空间.

参考文献
[1] Xu F F, Wang B,Zhou Z Q,et al.Real-time lane detection for intelligent vehicles based on monocular vision[C]//Proceedings of the 31st Chinese Control Conference.Washington D.C.:IEEE,2012:7332-7337.
Click to display the text
[2] Sivaraman S, Trivedi M M.Combining monocular and stereo-vision for real-time vehicle ranging and tracking on multilane highways[C]//Proceedings of International IEEE Conference on Intelligent Transportation Systems.Washington D.C.:IEEE,2011:1249-1254.
Click to display the text
[3] 王浩,许志闻, 谢坤,等.基于OpenCV的双目测距系统[J].吉林大学学报,2014,32(2):188-194. Wang H,Xu Z W,Xie K,et al.Binocular measuring system based on OpenCV[J].Journal of Jilin University,2014,32(2):188-194(in Chinese).
Cited By in Cnki (258)
[4] Sun W, Chen L,Hu B,et al.Binocular vision-based position determination algorithm and system[C]//Proceedings of the 2012 International Conference on Computer Distributed Control and Intelligent Environmental Monitoring.Piscataway:IEEE Computer Society,2012:170-173.
Click to display the text
[5] 于乃功,黄灿, 林佳.基于单目视觉的机器人目标定位测距方法研究[J].计算机测量与控制,2012,20(10):2654-2660. Yu N G,Huang C,Lin J.Target location and ranging based on monocular vision robot[J].Computer Measurement & Control,2012,20(10):2654-2660(in Chinese).
Cited By in Cnki (323)
[6] 吴刚,唐振民. 单目式自主机器人视觉导航中的测距研究[J].机器人,2010,32(6):828-832. Wu G,Tang Z M.Distance measurement in visual navigation of monocular autonomous robots[J].Robot,2010,32(6):828-832(in Chinese).
Cited By in Cnki (636)
[7] 鲁威威,肖志涛, 雷美琳.基于单目视觉的前方车辆检测与测距方法研究[J].视频应用与工程,2011,35(1):125-128. Lu W W,Xiao Z T,Lei M L.Study on method of preceding vehicles detection and distance measurement based on monocular vision[J].Video Application & Project,2011,35(1):125-128(in Chinese).
Cited By in Cnki (419)
[8] 战强,吴佳. 未知环境下移动机器人单目视觉导航算法[J].北京航空航天大学学报,2008,34(6):613-617. Zhan Q,Wu J.Monocular vision-based navigation algorithm for mobile robots in unknown environments[J].Journal of Beijing University of Aeronautics and Astronautics,2008,34(6):613-617(in Chinese).
Cited By in Cnki (863)
[9] 王青. 基于机器视觉的车辆距离测量技术[D].南京:南京理工大学,2008. Wang Q.Vehicle distance measurement technology based on machine vision[D].Nanjing:Nanjing University of Science and Technology,2008(in Chinese).
Cited By in Cnki (578)
[10] Wu C F, Lin C J,Lee C Y,et al.Applying a functional neurofuzzy network to real-time lane detection and front-vehicle distance measurement[J].IEEE Transactions on Systems,Man,and Cybernetics-Part C:Applications and Reviews,2012,42(4): 577-589.
Click to display the text
[11] Wu K,Di K C, Sun X,et al.Enhanced monocular visual odometry integrated with laser distance meter for astronaut navigation[J].Sensors,2014,14(3):4981-5003.
Click to display the text
[12] 王荻,王洁,付小宁. 基于单目图像和方向的测距系统及性能分析[J].光子学报,2011,40(7):1112-1116. Wang D,Wang J,Fu X N.A passive ranging system based on image sequence from single lens and the respective imaging direction along with its performance[J].Acta Photonica Sinica,2011,40(7):1112-1116(in Chinese).
Cited By in Cnki (239)
[13] 赵信宇,朱晓蕊, 余锦全.单幅图像深度信息的提取[J].制造业自动化,2010,32(3):15-17. Zhao X Y,Zhu X R,Yu J Q.Learning depth information from monocular image[J].Manufacturing Automation,2010,32(3): 15-17(in Chinese).
Cited By in Cnki (553)
[14] 韩延祥,张志胜, 戴敏.用于目标测距的单目视觉测量方法[J].光学精密工程,2011,19(5):1110-1117. Han Y X,Zhang Z S,Dai M.Monocular vision system for distance measurement based on feature points[J].Optics and Precision Engineering,2011,19(5):1110-1117(in Chinese).
Cited By in Cnki (1251)
[15] Otsu N. A threshold selection method from gray-level histograms[J].IEEE Transactions on Systems,Man,and Cybernetics,1979,9(1):62-66.
Click to display the text
[16] 刘瑞祯,于仕琪. OpenCV教材[M].北京:北京航空航天大学出版社,2007:249-250. Liu R Z,Yu S Q.OpenCV teaching material[M].Beijing:Beihang University Press,2007:249-250(in Chinese).
http://dx.doi.org/10.13700/j.bh.1001-5965.2014.0272
北京航空航天大学主办。
0

文章信息

黄小云, 高峰, 徐国艳, 丁能根, 邢龙龙
HUANG Xiaoyun, GAO Feng, XU Guoyan, DING Nenggen, XING Longlong
基于单幅立式标靶图像的单目深度信息提取
Depth information extraction of on-board monocular vision based on a single vertical target image
北京航空航天大学学报, 2015, 41(4): 649-655
Journal of Beijing University of Aeronautics and Astronsutics, 2015, 41(4): 649-655.
http://dx.doi.org/10.13700/j.bh.1001-5965.2014.0272

文章历史

收稿日期: 2014-05-14
录用日期: 2014-07-25
网络出版时间:2014-08-11

相关文章

工作空间