基于单目摄像头的地面测距方法

2021-10-19 13:50黄成龙周钰峰孙慧妮孟恺李恪尧
现代信息科技 2021年5期
关键词:针孔测距坐标系

黄成龙 周钰峰 孙慧妮 孟恺 李恪尧

摘  要:为解决传统的小孔成像测距算法需要给出待测物体的形状信息而较为烦琐的问题,提出一种基于大多数机器人摄像头的高度不需要改变的情形,利用针孔相机模型,找出像素坐标系和世界坐标系的转换关系,输入至少三对现实世界和像素世界的点对后,便可以实现对地面和立于地面上的物体进行测距的目的。该算法实现简单,且一定范围内测距精度较高。

关键词:单目相机;地面测距;移动机器人;针孔相机模型

中图分类号:TP391.4;TP242    文献标识码:A      文章编号:2096-4706(2021)05-0118-04

Ground Distance Measurement Based on Monocular Camera

HUANG Chenglong,ZHOU Yufeng,SUN Huini,MENG Kai,LI Keyao

(School of Mechanical Electronic & Information Engineering,China University of Mining and Technology-Beijing,

Beijing  100083,China)

Abstract:In order to solve the troublesome problem that the traditional pinhole imaging distance measurement algorithm needs to give the shape information of the object to be measured,a situation based on the height of most robot cameras does not need to be changed is proposed. The pinhole camera model is used to find out the transformation relationship between pixel coordinate system and world coordinate system. After inputting at least three pairs of point pairs in the real world and pixel world,it can be completed to the ground and the object on the ground distance measurement. The algorithm is simple to implement and has high accuracy in measuring distance in a certain range.

Keywords:monocular camera;ground distance measurement;mobile robot;pinhole camera model

0  引  言

測距对于移动机器人来说有着重要的意义,许多机器人重要技术,例如同步定位与建图技术[1],目标跟踪技术以及自动驾驶技术等都需要进行测距。目前的主流测距方法有激光雷达测距、毫米波雷达测距、视觉测距等。激光雷达虽然测距精度高,但是存在使用寿命以及价格昂贵的问题;毫米波雷达则存在角度分辨率不高,以及精度受环境影响较大的问题;而机器人视觉测距[2]因有灵活性大、成本效率高、适用范围广等优势而越来越受到关注。

目前主流的双目相机测距的精度受光线、基线长度等因素影响较大,且其匹配算法往往较为复杂。红外相机测距无法对黑色物体、镜面反射物体等进行精确测距,且二者的造价往往相对昂贵。而单目视觉测距因造价低,部署方便,测距算法相对简单的优势而备受青睐。但是由于单个摄像头丢失了深度信息,一些传统单目测距算法需要给出待测物体的宽度或者高度才能进行测距,这类方法不仅非常麻烦,误差也较大。较为先进的PNP测距算法[3]要想得到较高的准确率往往需要较多的点对,且理论复杂。

本文基于针孔相机模型,从世界坐标系到相机坐标系转化过程中,假设摄像头光轴平行于地面,此时世界坐标系到像素坐标系的最终转换将简化很多,即可实现定位和测距。

1  算法设计

1.1  相机模型

在相机模型中,针孔相机[4]是相对简单而常用的模型。简单地说就是把相机简化成小孔成像,可以想象,这种简化对于精度要求高的情况或者广角相机是不适用的。针孔相机模型用到了透视变换的投影方法,即被投影物体处于一个四棱台区域中,物体被投影到离相机较近的平面上,相机被抽象为一个点,而投影点是物体上的点和相机的连线与投影平面的交点。由于投影的路径不再相互平行,因此会产生透视效果[4]。针孔相机模型存在四个坐标系:世界坐标系、相机坐标系、图像物理坐标系和图像像素坐标系。此次算法假设世界坐标系与摄像机坐标系原点重合,且任一点用(X,Y,Z)表示,图像像素坐标系用(U,V)表示。

1.2  摄像头成像平面严格垂直地面的情况

小孔成像原理如图1所示,H为摄像头焦点,F为地面上的待测点,假设摄像头光轴平行于地面,可以看出当摄像头的高度不变时,地面上所有的点到焦点的垂直距离Y不变。

在相机坐标系下,建立针孔相机模型,以摄像头中心为原点,以垂直地面竖直向上为Y轴建立右手直角坐标系,对于地面上任一点(X,Y,Z),由三角形的相似性可得:

(1)

(2)

其中f为相机焦距,Δy为成像平面的对应点到中心点的对应距离。再由成像平面坐标系到像素坐标系(U,V),即经过缩放以及平移,有:

(3)

(4)

其中,V0,U0为图像的高度和宽度的一半。

从上述两式可得如果相机高度不变,则对于平坦地面而言Y不变,便可以得到V和Z,以及U和X的一一对应关系。

(5)

X=Zf(U-U0)·du                          (6)

1.3  摄像头成像平面下边沿平行于地面的情况

但是,通常很难保证摄像头成像平面严格垂直地面,即V轴垂直地面,U轴平行于地面,大多数情况下只能做到其中一个条件,即保持相机底部V轴平行于地面,此时则需要对模型进行修正。假设相机平面在相机坐标系下绕X轴旋转一定的角度θ,依然根据三角形相似原理,此时式(1)可调整为:

(7)

联立式(1)和式(7)可解得可得:

(8)

相机的高度Y和摄像头转动角度θ通常容易测得,但成像平面到像素平面的转换比例dv和du较难测量,在实际使用中可以对上述公式进行简化为反比例函数和线性函数。

(9)

X=k(U-U0)                            (10)

只需要三组已知的Z和V的对应点,以及1组已知的X和U的对应点与摄像头像素宽度,即可解出式(9)和式(10)对应的函数参数a、b、c、k、U0。此时便确定了地面坐标(X,Y,Z)。大多数情况下為提高精度也可以提供多个点进行函数的拟合。

2  实验设计及分析

2.1  实验环境

为了测试在最差的情况下算法的精度,本实验使用三个点对拟合式(9)和一个点对拟合式(10)。实验设置摄像头中心离地高度Y约为16 cm,图片的宽高为640×480,给出了位于摄像头正前方即Z轴30 cm,40 cm,50 cm距离处的三个(V,Z)点对,以及位于X轴50 cm,X轴12 cm处的一个点对(U,X)。计算出对应的参数为c=-6.37,a=15 679.34,b=-23.18,k=0.001 169 6。测量方式为固定摄像头不动,移动一个颜色鲜明的物体,手动在图片上找出对应的点,并记录下真实轴距离、预测轴距离以及对应的像素坐标。

2.2  实验设计

2.2.1  Z轴测量结果

此次实验测试当X=0时,Z以步长为10 cm,由30增至200 cm时算法对各点预测的Z值。对Z轴的测量结果如表1所示。

由图2可以看到Z轴误差随距离的增大而增大,符合Z和V成反比例的关系模型,且最大误差为0.03。但是由于随着距离增大,每减小一个像素增加的距离也越大,可以从图3中看出Z值越大,像素坐标点也越发密集,如图2所示。总体而言,算法在Z轴2米内的测距精度都达到了可以接受的水平(偏差<10%~15%)。

2.2.2  X轴测量结果

此次实验测试当Z=0时,世界坐标系下X轴由-40 cm,以10 cm为步长,增至40 cm处算法得到的预测X轴距离,对X轴的测量结果如表2所示。

如图4所示,对于X轴,由于使用的相机较为廉价会导致较大程度的画面畸变,虽然可以通过软件进行校正,但准确来说这些情况都属于无法完全消除的偏差,只能尽量减少这种误差,故在图片两边的Z值偏小导致误差较大。但可以看出未进行校正的情况下图片的最大相对误差也不超过10%,在对精度要求不是非常严格的情况下也可以使用。

3  算法用处及改进

3.1  算法应用场景

此算法可以用于二维建图,由于这个算法的本质是对处于同一平面上的各点的坐标确定,故如果可以通过语义识别从图像中找出地面的轮廓即可对地面上各个点进行定位,而不需要额外的激光雷达、毫米波雷达等测距工具[5]。

对于立于地面上的物体,只需要找出物体的下边缘轮廓,即找出物体在地面上的点的坐标便可以实现对物体的测距,而不需要知道现实世界下物体轮廓的具体大小。

3.2  算法改进

如果要提高算法的精度,首先最简单的方法便是给出更多的世界坐标系与像素坐标系的点对来对函数进行拟合,拟合度越高测距精度显然也就越高。通常情况下,对于提供的点对中间的点测距精度较高,所以最好给出的点对是从可视范围内地面上最近的点到最远距离的较多分段上的点对坐标,而不是集中于某一部分上的几个点对。然后就是对图片进行去畸变预处理,以减少同一X轴距离下图像两边与中间的点的距离差,此时可以提升左右两边的测距精度。也可以提高相机的视野宽度和分辨率,以降低一个像素所代表的距离,这样可以显著提升对远距离的点的测距精度,同时也可以提高目标识别的精度来更准确地确定物体位置。另外,如果想要提高测距的距离,那么需要提高摄像头的高度,但此时一个像素所间隔的现实距离也会增加,故同时最好可以提升摄像头的分辨率,以及可以尽可能地向下倾斜摄像头,以使可视范围内的最远地面落在图片上靠上的位置。

此算法虽然不要求摄像头光轴平行于地面,但是要求摄像头下边缘平行于地面,即不可以绕Z轴有旋转角,否则像素坐标系下的V值相同的点在世界坐标下的X轴距离将不同。如果使用PNP求解法[6],找出两个坐标下的旋转和平移矩阵,则摄像头绕Z轴也可以有一定的旋转。

4  结  论

本文基于针孔相机模型提出了一种在摄像头高度不变的情况下,不需要提前知道物体的具体高度和宽度的,并且相对简单的单目测距方法,且测距距离较近时表现较好。此算法可用于二维的同步定位和建图,以及目标跟踪等技术。本次实验实现了摄像头高度在一般移动机器人高度(16厘米)时,可对Z轴最远200厘米处的点进行测距,对Z轴测距时最大相对误差不超5%,离Z轴越远误差越大,且在Z轴120厘米处对X轴测距时最大相对误差不超10%。若要提高测距精度,可以提供更多的点对、提高摄像头的分辨率以及对图片进行去畸变处理。若要提高最远测距距离,可以增加摄像头的高度以及适当将摄像头向下倾斜。算法允许摄像头沿X、Y轴任意旋转,但不允许绕Z轴旋转,这点可以通过找出像素坐标系到世界坐标系的变换矩阵而继续改进。

参考文献:

[1] 董伯麟,柴旭.基于IMU/视觉融合的导航定位算法研究 [J].压电与声光,2020,42(5):724-728.

[2] 李宏伟,陈冰,张贺磊.计算机视觉测距技术研究 [J].电视技术,2020,44(8):60-61+71.

[3] 李占旗,高继东,彭凯,等.基于PnP算法的前方车辆测距方法 [J].国外电子测量技术,2020,39(12):104-108.

[4] JUAREZSALAZAR R,ZHENG J,DIAZRAMIREZ V H. Distorted pinhole camera modeling and calibration [J].Applied optics,2020,59(36):11310-11318.

[5] 董静薇,蒋燚铭,韩知雨.RGB-DSLAM前端视觉里程计的优化算法 [J].哈尔滨理工大学学报,2020,25(6):157-164.

[6] 王平,周雪峰,安爱民,等.一种鲁棒且线性的PnP问题求解方法[J].仪器仪表学报,2020,41(9):271-280.

作者简介:黄成龙(2000—),男,汉族,江西赣州人,本科在读,研究方向:嵌入式移动机器人。

猜你喜欢
针孔测距坐标系
一起来探案
极坐标系中的奇妙曲线
三角函数的坐标系模型
求坐标系内三角形的面积
电力电缆故障测距分析与应用
220 kV电网行波测距系统组网运行实践探讨
例谈坐标系与参数方程常考题型
决战前夜
针孔是唯一的方式
自制个人化针孔相机 解放摄影童心