一种基于改进YOLOv5单目测距方法研究

2023-05-19 02:35魏利胜唐绍语
安徽工程大学学报 2023年1期
关键词:锚框单目测距

高 港,魏利胜 ,唐绍语

(安徽工程大学电气工程学院,安徽 芜湖 241000)

随着人工智能快速发展,基于计算机视觉测距的应用在各行业层出不穷,如机器人、智能交通、智能监控等[1]。各行业对检测目标进行反馈的要求,如机器人路障规避、机械手臂抓取物体等,使其保持高精度、高快速性,同时实现目标检测与距离测量,成为当前测距研究的热点与难点。因此,如何有效地结合各种目标检测算法与单目视觉来提高测距精度和速度,具有重要的研究意义。

国内外众多学者已在单目测距领域进行了广泛而深入的研究,取得了诸多成果。于国防等[2]结合单目测距和有限局域图像快速匹配算法,实现倒车影像系统中目标距离探测;汪亚兵等[3]融合RANSAC(Rando m Sa mple Consensus)算法、Pn P(Perspective-n-Point)算法和单目测距进行目标距离的计算;关闯等[4]利用路况消隐点的单目测距方法结合数字图像处理Hough变换,实现车辆间距离测量;刘军等[5]把参变逆透视和道路消失点运用到单目视觉测距,实时测量车辆距离;刘斌等[6]通过边缘损失函数、跨阶段部分网络和双向特征金字塔的融合,实现基于红外图像的更快更准的深度计算;Bojan等[7]利用YOLOv3(You Only Look Once Version 3)算法和立体视觉测量算法,预估目标与摄像头的距离。黄同愿等[8]突出单目测距原理中偏航角和俯仰角的作用,使用冗余切图和边界框筛选,改善行人测距精度;李占旗等[9]采用SSD(Single Shot Multi Box Detector)算法、Pn P算法和单目测距,实现前车车牌距离探测;许洋等[10]结合YOLOv3目标检测网络和多目标跟踪算法,通过相似三角形原理的单目测距算法实现在特定结构化道路环境的测距;王永森等[11]利用基于车辆下边沿估计和逆透视变换的单目测距方法,实现车辆测量精度的提升;王文胜等[12]结合YOLOv5目标检测和单目测距进行车体与标志牌距离的测量。

以上研究成果总体上对匹配算法依赖性强,导致测量精度不高、速度不快,为此,本文将在以上研究的基础上,探讨一种基于改进YOLOv5的测距策略,在目标检测阶段采用K-means++自适应锚框计算、Focal-EIOU 边界框损失函数以及EIOU 非极大抑制优化YOLOv5算法的输入端和输出端,并将得到的目标检测输出预测框作为几何单目测距输入,同时结合摄像机内外参进行相似三角形测距运算,从而实现目标精确测距。

1 基于改进YOLOv5的单目测距原理

基于改进YOLOv5算法的单目测距原理如图1所示。从图1可以看出,基于改进YOLOv5算法的单目测距主要分为目标检测、内外参数获取以及单目测距3个组成部分。在目标检测阶段,主要采用改进YOLOv5算法得到检测框;然后,通过对相机的标定,获取其内外参;最后,根据相似三角形测距原理,将目标检测输出框底部中点作为映射点与相机内外参相结合,实现单目精确测距。

图1 改进YOLOv5测距原理

1.1 目标检测

YOLOv5算法由经典的单阶段目标检测YOLO 算法发展而来,主要有4种类型分别为YOLOv5s、YOLOv5 m、YOLOv5l、YOLOv5x,在视觉目标检测领域均得到了广泛的应用。本文将选用YOLOv5s算法作为单目视觉测距目标检测阶段的基底模型,并从自适应锚框计算、边界框损失函数、非极大抑制3个方面进行改进。改进后的YOLOv5算法流程图如图2所示。由图2可知,改进的YOLOv5算法由预处理、特征提取、特征融合以及预测框输出4个组成部分,改进策略主要集中在YOLOv5s算法的输入和输出两端,其中输入端采用K-means++自适应锚框,输出端则采用Focal-EIOU 损失函数以及基于EIOU的NMS(Non Maxi mu m Suppression)完成预测输出。

图2 改进YOLOv5算法流程图

(1)K-means++自适应锚框获取。锚框又称先验框,是现阶段众多目标检测的基础。锚框用于边界框的回归,其大小和位置越接近初始标定真实框越好。当前,YOLOv5算法锚框主要采用K-means聚类方法计算得到,而K-means聚类方法存在两个方面的问题:①K 值的设定具有偶然性,可能存在聚类中心个数设定不合理的情况;②初始聚类中心的选取具有随机性,影响聚类速度。为此,在YOLOv5算法锚框初始化阶段研究了一种K-means++聚类方法,其流程图如图3所示。从图3可见,K-means++算法首先从一张图片标记的N个标签中随机选取第i个标签,作为初始聚类中心,并记录此时聚类中心个数和位置大小:a=1,(wa,ha)=(wi,hi);然后选择a个聚类中心中使1-IOUij最大的标签,将此标签定义为第a+1个聚类中心并记录标签位置大小:(wi,hi)=(wj,hj);若a未达到设定K值,则重复上一步骤,直至完成K个聚类中心的选取;在此基础上,根据所选取聚类中心采用基于1-IOU的K-means算法,算出每个标签和每个聚类中心的距离d,按照距离大小划分为K簇标签,求解每一类别中所有标注框高和宽的平均值;最后输出K个簇锚框初始尺寸大小。

图3 K-means++算法流程图

(2)Focal-EI OU 损失函数选取。Y OL Ov5s目标检测中使用CI OU(Co mplete-I OU)损失回归边界框,虽然考虑到了边界框回归的重叠度、中心点、边界长宽等3个方面的因素,但存在长宽比相同、梯度符号相反等问题,易导致锚框长宽均大于或小于目标框时,出现不合理回归现象[13]。为此,在原Y OL Ov5s算法中参考EI OU 损失函数,其表达式如下:

式中,LIOU表示IOU;Ldis、Lasp分别表示距离、长宽损失;b为预测框中心点;bgt为目标框中心点;ρ2(b,bgt)代表欧几里得距离;c是真实框和生成框最小外接矩形框的对角线长度;Cw、Ch分别是外接矩形框的宽度和高度。

此外,为解决目标检测中的不平衡问题,使EI OU 损失聚焦于高质量锚框,引入聚焦损失Focal L1 Loss[13],如式(2)所示:

式中,c是一个常量,为保证上式在x =1处连续,使C =;β是用于控制聚焦损失曲线线形的参数;α是用于将不同β情况下对应高低质量锚框梯度的归一化;x是边界框回归损失。

考虑到将EI OU 代替Focal L1 Loss中的x,会引起整体梯度变小,从而弱化EI OU 损失边界框加权影响。为此,使用I OU 值对EI OU 损失函数进行加权处理,得到Focal-EI OU 损失函数为:

式中,IOU表示交并比;γ表示用于抑制低质量预测框的参数。这样,随着边界框回归误差的增大,锚框的梯度值会随之发生变化,高质量锚框的梯度值会增加,而低质量锚框的梯度值会降低。

(3)EI OU-NMS设置。在Y OL Ov5算法中,采用基于I OU 的NMS,以I OU为阈值,滤除I OU大的预测框,可能导致其他目标预测框被误删除。为此,在非极大抑制部分采用基于EI OU-NMS策略,使得边界框筛选可基于不同I OU 的NMS,具体如下:

式中,M表示得分(置信度)最高的预测框;Bi为同一目标其他预测框;EIOU(M,Bi)为M和Bi的EI OU 损失;ε为NMS 阈值;si为分类置信度。 可见,当EIOU(M,Bi)小于定值ε时,Bi预测框分类置信度留存,否则si置0,即被抑制。

1.2 内外参获取

本文采用MATLAB标定工具箱对实验相机标定内外参,使用该工具箱对相机进行标定,需要将准备好的约25张棋盘格照片导入工具箱,通过标定输出内参矩阵N1和组成相机外参矩阵N2,如式(5)所示[14]:

式中,(u0,v0)为图像平面中心;fx、fy分别表示u轴、v轴的尺度因子;R表示旋转矩阵;T表示平移向量。

1.3 单目测距

根据所得目标检测预测框与相机标定内外参矩阵,采用基于俯仰角的相似三角形几何测距,通过摄像机成像几何数学模型把视觉坐标系下特征点信息与成像平面坐标系投影点信息对应关系建立起来,选取目标检测阶段输出预测框底部的中点Q作为距离测量的参考点,利用Q坐标与相机内外参进行计算,从而得到确定检测目标的位置信息。测距原理如图4所示。由图4可见,Oc为相机光心,Zc为相机光轴,XcYcZc为相机坐标系,相机成像平面为xO1y,满足x轴、y轴 与Xc轴、Yc轴 平 行,Zc与 平 面xO1y的交点是O1,相机焦距为O1Oc,XwYwZw为建立于M平面上的世界坐标系,坐标系原点为Ow,Q(Xw,Yw,Zw)为M平面上的点,Q'是Q在平面xO1y上的映射,为Q'(x,y),对应平面xO1y像素坐标系uO0v中的坐标为(u,v)。可推得空间中任意一点Q距离摄像头深度信息Zc为:

图4 单目视觉测距原理图

式中,N =N1N2表示3×3的投影矩阵,其中N1为单目相机内参,N2为单目相机外参。

2 实验验证

实验1 目标检测

本实验采用VOC 2007数据集,在Windows 10操作系统、Py Char m 2021.3集成开发环境下进行,使用Pytorch 1.10.0框架,CUDA 版本为11.3,用Python语言编程。所采用的硬件配置为AMD R7 CPU,GTX 3070显卡,8 G 显存。网络参数设置为:识别类别数20、网络深度增益0.33、卷积通道增益0.50、batch-size=8、epochs=15、输入图像大小默认640×640等。经过训练后,得出检测效果如图5所示。由图5可见,0~19数字分别表示飞机、自行车、鸟、船、杯子、公共汽车、小汽车、猫、椅子、奶牛、餐桌、狗、马、摩托车、人、盆栽植物、羊、沙发、火车、电视。从检测结果中可以看出,算法即使在目标与背景相似、检测目标密集的情况下,也具有很好的检测效果。为验证所提方法的有效性,选用精确度、召回率、平均精度平均值(mAP)、每秒传输帧数(FPS)、训练模型文件大小5个性能指标对算法结果进行评估,并在经过15 epochs训练后,与YOLOv3、YOLOv5s进行比较实验,所得结果如表1所示。由表1可知,改进的YOLOv5算法虽然在召回率上分别较YOLOv3有所下降,但是比YOLOv5s高3.2%,且在准确率和mAP上均优于YOLOv3和YOLOv5s,分别高出16.0%、0.6%和1.5%、2.1%,同时,改进的YOLOv5算法检测速度和模型大小更优。

图5 改进YOLOv5目标检测效果图

表1 目标检测算法性能参数比较表

实验2 单目测距

本实验中,单目相机为联想拯救者RP 9000笔记本自带摄像头,分辨率为1280×720,焦距为35 mm,放置在距地面0.72 m 高度,保持路面与摄像机光轴平行,实验测量距离不同目标,经标定可得相机内外参为:

为了检测不同目标(行人和自行车)的距离,经过单目相机拍摄,得到3张待检测源图像,结果如图6所示。由图6可见,源图像Ⅰ表示15.0 m 位置行人照,源图像Ⅱ表示15.0 m 位置自行车照,源图像Ⅲ表示15.0 m 位置自行车和20.0 m 位置行人混合照。采用改进后的YOLOv5算法输出预测框的底部中点作为单目测距原理中的Q 点进行测距,同时与YOLOv3、YOLOv5s算法进行测距比较实验,所得结果如图7~9所示。

图6 待检测源图像

为便于比较改进后的YOLOv5与YOLOv3、YOLOv5s的测距精确度和快速性,将图7~9中实验参数统计,得到3种方法的测距对比如表2所示。由表2可知,对源图像Ⅰ,改进后的YOLOv5对于行人测距效果更优,测距误差与YOLOv3测距方法相同,较YOLOv5s降低了8.6%,而平均耗时较YOLOv3方法缩短了0.006s,与YOLOv5s方法相当;对源图像Ⅱ,改进后的YOLOv5对自行车测距效果更优,相较YOLOv5s测距误差优化6.7%,耗时相当,而YOLOv3方法未能检测出图像中自行车;对源图像Ⅲ,改进后的YOLOv5对多目标测距效果更优,能同时实现行人和自行车的高精度测距,而YOLOv3 与YOLOv5s方法均未能检测图像中的自行车。综上可见,本文所提方法对单目标或多目标识别精度和识别速度均有所改善,特别是多目标的场景,实验效果更优。

图8 源图像Ⅱ测距效果对比

图9 源图像Ⅲ测距效果对比

表2 3种方法测距对比表

3 结论

针对YOLOv3与YOLOv5s算法在多目标场景下识别率不高、测距精度不准的问题,研究了一种基于改进YOLOv5的单目测距方法。通过对YOLOv5算法自适应性锚框计算能力、边界框回归质量、预测框筛选精度的改进,以提高目标检测算法的快速性和准确性,并进行了两个实验验证,表明所提方法在单目测距中的可行性和有效性。如何进一步降低单目相机内外参标定不准确所带来的测距误差,提高复杂多目标场景下的目标精确识别,这将是接下来的重点研究工作。

猜你喜欢
锚框单目测距
基于YOLOv3锚框优化的侧扫声呐图像目标检测
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
基于GA-RoI Transformer的遥感图像任意方向目标检测
类星体的精准测距
一种单目相机/三轴陀螺仪/里程计紧组合导航算法
单目SLAM直线匹配增强平面发现方法
浅谈超声波测距
基于CAD模型的单目六自由度位姿测量
基于PSOC超声测距系统设计