APP下载

基于改进立体视觉算法的无人驾驶测距技术

2022-09-28刘型定任志强朱煜君

智能计算机与应用 2022年9期
关键词:双目测距直方图

刘型定,张 欣,任志强,朱煜君

(贵州大学 大数据与信息工程学院,贵阳 550025)

0 引 言

无人驾驶测距技术作为自动驾驶中不可或缺的一部分,其精确的测量结果可以为无人驾驶系统操控汽车行驶提供可靠的数据支持。应用于无人驾驶的测距技术一般有雷达测距技术、激光测距技术、超声波测距技术等。这些测距技术存在设备成本高、测量精度较低、对环境因素较为敏感、探测角度小等缺点。

视觉测距技术能够很好地规避上述缺陷,目前视觉测距技术主要分为单目视觉测距和双目视觉测距。其中,单目视觉测距通过传统小孔成像物理模型得到目标深度信息,因获取图像信息量少,其测量精度较低;双目视觉测距通过模拟人类双眼来感知物体在环境中的远近,可改变双目相机的基线来增加其测量范围,获取更多环境信息,成本较低,易于普及。

许多研究者在双目视觉测距技术方面进行研究并取得了丰硕的研究成果。文献[5]针对双目视觉测距误差大等缺点,提出了一种基于ORB(Oriented Fast and Rotated Brief)特征的双目测距方法,使用RANSAC(Random Sample Consensus)模型去除误匹配,该方法在较大程度上消除了像素点的误匹配,但对于中远距离的测量精度具有一定的局限性。文献[6]运 用 卷 积 神 经 网 络(Convolutional Neural Network,CNN)多阶段多分支结构,检测出图像中人体的关键点,并得到这些点的坐标,用三角法原理测量行人距离,为了提高实时性,通过减少关键点数来降低系统计算量,导致测距精度不太理想。文献[7]采用微变焦的超分辨率图像重建双目测距方法,通过变焦系统进行超分辨率重建,提高图像分辨率,使测距相对误差得以减小,同时增大测距距离。

基于改进双目视觉算法的测距技术,在对双目相机标定后得到标定数据,使用所得数据对双目图像进行立体校正,采用CLAHE算法对立体校正后的灰度图像进行了预处理,优化视差计算,同时又使用k-means聚类算法选取视差值作为计算深度的视差值,实现双目视觉测距。

1 双目立体视觉测距原理

双目立体视觉测距原理如图1所示。图1中,和分别表示双目摄像机的左摄像头(左目)和右摄像头(右目),在理想状态下,左目和右目光轴在三维立体空间中相互平行,不存在任何角度交错。点为目标物,利用三角形的相似定理得到目标物的深度信息,LR分别表示左目和右目的成像平面,点在左目和右目中成像的点分别为PP,就是以两者成像平面左端点为坐标系原点建立坐标系,则2点的坐标可以表示为(xy)和(xy),双目摄像机的基线为,焦距为,利用三角法获取目标的深度信息。

图1 双目测距原理Fig.1 Principle diagram of binocular ranging

根据论证2个三角形相似的定理可得式(1):

计算可得:

其中,为双目图像中某一点的像素视差。

可见只需计算出目标点的视差值,便可得到该点深度信息。

1.1 双目相机标定

在实际情况下,双目相机因生产或者安装等不可避免的因素会产生畸变而导致相机成像平面与理想模型存在一定角度偏差,将双目相机标定所得到的标定数据进行图像校正可以使整个测距系统最大限度接近理想状态。使用Matlab R2019b中自带标定软件进行双目自动标定,双目相机标定误差如图2所示,具体内外参数结果见表1。

表1 双目相机标定参数结果Tab.1 The results of the calibration parameters of the binocular camera

图2 双目相机标定误差结果Fig.2 Calibration error results of binocular cameras

从标定结果可以得出,平均标定误差约为0.125个像素,且根据平移向量第一个参数可知,标定的基线距离约为198.759 5 mm,与手动设定的基线距离200 mm基本一致,标定结果达到测距要求。

1.2 立体校正

将得到的标定数据结果导入OpenCV库,利用库中相关函数进行双目图像立体校正以消除畸变,使OpenCV能够更加精准地进行像素立体匹配以降低视差计算量。对双目图像进行立体更正,其输出的结果为立体校正中所需要的映射矩阵,随后计算畸变矫正。校正结果如图3所示,可看出左目和右目中的同一点基本在一条直线上,图像畸变基本消除,满足理想状态要求。

图3 校正后的图像对Fig.3 Corrected images pair

2 优化视差计算

在视差计算过程中,若图像局部区域的细节信息没有得到有效处理,将导致立体匹配计算视差时出现误匹配,严重影响视差计算结果。采用直方图均衡化(Histogram Equalization,HE)技术增强图像局部区域信息,会放大局部噪声,使图像失真,若处理的图像中存在过亮或者过暗的像素信息,经过HE处理后,过亮和过暗的图像区域可能会出现全白或全黑情况;自适应直方图均衡化(Adaptive Histogram Equalization,AHE)在HE的基础上进行改进,将需要处理的图像划分为几个区域,分别对这几个区域进行处理,这样的处理方式将会加大系统计算量,降低时间效率,且由于每个单独的像素块都需要一个映射函数进行处理,则像素块与像素块之间的区域无法得到边缘过度处理,最终呈现的图像效果是不连续的。为了解决上述问题,Zuiderveld等人对AHE进行改进,提出对比度受限自适应直方图均衡化(CLAHE)的方法。

2.1 CLAHE原理

CLAHE方法主要是通过设定一个阈值限制局部直方图幅度来抑制噪点放大,同时将高于阈值部分的灰度像素值均匀分配到各个灰度级中,达到增强图像的效果;对于计算效率与图像效果不连续的问题,使用双线性插值法进行优化,当前像素块的灰度值由与其相邻的子块来共同决定,通过此方法进行边缘处理,图像效果会更加平滑。CLAHE方法数学原理如下:

首先,令灰度图的直方图累积分布函数为C(),再将需要处理的图像分为个正方形像素块,每个像素块对应的局部映射函数为式(2):

令直方图的幅度为H(),则像素块的局部直方图累积分布函数(Cumulative Distribution Function,CDF)为式(3):

对比度的大小可以通过分布函数的斜率控制,从式(3)可以得出,分布函数的斜率是由直方图的幅度来决定,以此控制对比度大小。给定一个最大分布函数斜率,那么可以得出直方图的最高幅度为式(4):

在实际处理中,设定的阈值并不等于式(4)中的,将大于的灰度像素值部分均匀分布在整体灰度级中,这部分灰度像素值所产生的直方图平均幅度为,则最终改进的直方图函数为式(5):

如果每个像素块仅使用本块的映射函数进行处理,得到的整个图像将呈块状效果,采用插值法优化这一问题。

插值法原理如图4所示。由图4可知,中间无色区域属于非边缘像素点区域,剩余区域均属于边缘像素点区域,只有非边缘像素点能够进行双线性插值,即该点像素值由其周围4个像素块的映射函数决定,进行插值运算;对于有色区域像素点的像素值由2个像素块的映射函数决定,左上、左下、右上、右下角点像素值则由与其对角像素块的映射函数决定,再进行线性插值运算。

图4 插值法原理图Fig.4 Schematic diagram of the interpolation method

2.2 CLAHE优化结果分析

将原灰度图像进行HE和CLAHE处理,处理结果如图5所示。经HE处理的灰度图的对比度得到了一定增强,但增强效果不明显;经CLAHE处理的灰度图,整体图像和细节区域对比度显著增强,且细节信息保存完好。

图5 优化前后效果比较Fig.5 Comparison of the effect before and after optimization

直方图结果比较如图6所示。对比图6实验结果可知,原灰度图的灰度值基本分布在20~55和190~250的灰度级区间范围内,经HE处理后把大部分灰度值均匀分布于80~160之间,仅进行了局部均衡;原灰度图经CLAHE优化后,高于阈值的灰度值得以均匀分布在整体灰度级中,对直方图进行了全局均衡。

图6 直方图结果比较Fig.6 Comparison of histogram results

3 优化视差选取

选取合适的视差值进行深度计算在测距过程中十分重要,采用k-means无监督聚类算法来选取目标区域的最佳视差值。

将目标区域内的各个像素点视差值转化为一个32位浮点型无标记视差矩阵集合,中包含视差值,,…,x,因k-means聚类算法为无监督算法,没有对应的分类标签,即在视差集合样本中找出分类规律并聚类为个簇。具体的数学原理,可做阐释表述如下。

无差别地在视差集合矩阵中选取个聚类质心点,,…,c,即存在个簇R,,,,…,cR

对于每一个视差值,都需要计算其到各个质心点的距离,比较个距离,此视差值属于最小距离所属质心点的簇R,推得的数学公式可写为:

得到个簇,之前所选取的质心将会失效,重新选择质心进行距离计算,直至迭代得到合理的分类。

因为车窗反光、夜间车灯打开对视差计算影响较大,检测框接近底部位置的视差值对于计算准确的深度没有意义,所以需要对目标视差区域进行裁剪,即只选取整个区域的3/11(包括车灯以下,车辆底盘以上之间)的区域进行聚类,得到的聚类区域如图7所示,聚类区域裁剪还可以降低系统的计算量。

图7 选择聚类区域原理图Fig.7 Schematic diagram of selecting the clustering area

因目标视差值占据裁剪区域中的大部分面积,所以选择2个质心点、即2,并取最大质心作为计算目标深度的视差值。

4 测距实验结果分析

通过在公开的目标检测框架上对车辆目标进行测距实验。设置系统最大视差值为128,则其理论测距范围约为1.65~211 m。当目标物体十分接近双目相机时,该目标区域是双目相机的视觉盲区,无法计算视差;目标物体越远,由于相机像素缺陷,视差计算误差过大。所以远距离和近距离的测距数据不存在参考价值,通过测距实验仅选取3~28 m范围内的测距数据作为有效距离。测距实验结果见表2。

通过分析表2中的测距实验结果可知,CLAHE优化视差计算对双目视觉测距精度的提升影响更大,k-means聚类算法进一步提升了测距精度。部分车辆测距结果如图8所示。

表2 测距实验结果Tab.2 Ranging experimental results

图8 部分车辆测距结果Fig.8 Partial vehicles ranging results

5 结束语

本文针对传统立体视觉测距算法测量精度较低的问题,通过CLAHE对双目灰度图进行预处理,解决视差计算不准确的弊端,使中远距离测量精度得到一定提升;引入k-means聚类算法优化视差选取,使测量精度进一步提升。测距实验结果表明,基于改进的双目视觉测距方法测距效果表现良好,但对于较远距离测量精度不高,后续将做深入探究和改进。

猜你喜欢

双目测距直方图
采用双目视觉和自适应Kalman滤波的作物行识别与跟踪
霜 降 苏美玲
基于双目视觉的机器人定位与导航算法
机械手的双目视觉定位抓取研究
用直方图控制画面影调
例析频率分布直方图
中考频数分布直方图题型展示
电力电缆故障测距分析与应用
220 kV电网行波测距系统组网运行实践探讨