APP下载

基于CenterNet的车辆姿态识别研究

2022-08-29倪健甄玉航

电脑知识与技术 2022年20期
关键词:计算机视觉

倪健 甄玉航

摘要:为了实现自动驾驶,提高道路车辆姿态检测识别精度,实验以计算机视觉识别技术为基础,提出了一种基于CenterNet的车辆姿态识别方法。首先使用在车辆正常行驶道路拍摄的高清图片模拟行车记录仪所拍到的每帧图像;然后,用CenterNet网络模型进行特征提取;最后,特征网络用回归的方式,输出一个四元数,来描述车辆具体的位置信息和姿态信息。实验结果表明,此方法能有效检测出图片中车辆姿态信息。

关键词:计算机视觉;车辆姿态识别;四元数;CenterNet

中图分类号:TP18      文献标识码:A

文章编号:1009-3044(2022)20-0001-03

1 引言

在日常生活中,路上的私家车越来越多,伴随着汽车数量增多的同时,汽车具有自动驾驶功能也成了需求与趋势,这成为汽车制造商需要关注和解决的实际问题。自动驾驶这一部分,最基础的功能就是计算机视觉中的目标检测与识别。因为驾驶系统是以检测到前方车辆并且获取到其位置信息为前提下才能做出反应与调整,所以目标检测是自动驾驶后续所有操作的前提。因此如何提升目标检测算法[1]的精准度、速度是主要问题。

首先,利用Anchor的方法来获取到可能会存在目标物体位置的信息,再通过目标物体位置信息对其进行分类,是前些年目标检测常采纳的方法。此种方法不但耗时长、效率还低,并且还需要NMS去除重复框[2],所以,这样的目标检测法正逐渐被摒弃。近几年的目标检测算法层出不穷,如CornerNet、Yolo 、CenterNet等,这类Anchor-Free算法提供了更大更灵活的解空间,以提升计算量的方式摆脱Anchor,使检测和分割进一步走向实时高精度,体现了计算机视觉领域的技术正以蓬勃的势头发展。对于数字设备来讲,检测识别图片以及视频中的物体可以集快速、准确于一体,这对于交通、体育、建筑等行业来说,为其行业内的视觉数据的收集、处理、分析等提供了更便利的条件与基础。

本文采用CenterNet [3]目标检测算法对城市道路的车辆进行目标检测,加入EfficientNet网络结构训练数据集,结合翻转、旋转等手段来进行数据增强,再利用四元数来解决欧拉角产生的万向锁问题,网络采用[x,y,z,yaw,pitch,roll]等变量输出,显示更为简洁直观。

2 模型方法

2.1 实验内容

本实验主要包括两部分:目标检测、姿态评估。目标检测用CenterNet算法把输入图片进行关键点检测,得到关键点的热力图,热力图中中心点的位置预测了目标的宽高。用训练好的网络模型进行特征提取,之后姿态评估部分为了避免轴共面,产生万向锁问题,所以利用网络特征回归的方式输出为一个四元数,用来描述图片车辆具体的位置信息、姿态信息。

CenterNet网络结构包括主干网络(EfficientNet)、上采样模块(双线性差值或转置卷积)、head输出预测值。

2.2 CenterNet算法

本实验算法CenterNet的前身为CornerNet[3],CornerNet算法可取之處在于可以消除anchor box(锚框) ,如图1所示,把目标检测转化为一对关键点的检测,即左上角点和右下角点。

相对于CornerNet而言,CenterNet的中心思想是把目标检测问题转化成目标物体的一个关键点估计问题[5],如图2所示,传入卷积网络一张图片,得到热力图(heatmap) ,图中的峰值点、中心点为同一点,目标的宽高由中心点的位置预测决定。

CenterNet的检测过程关键点热力图生成:

输入图像的规格为I∈RW×H×3,W为宽,H为高。生成的关键点热力图规格为 Y∈[[0,1]WR×HR×C],其中R为输出图像的步长(stride) ,C是关键点类型数(特征图通道数) 。

在目标检测中,Yx,y,c=1表示检测到的物体预测值为1,即在坐标(x,y) 处检测到了类别为C的物体;反之,Yx,y,c=0则表示未检测到。

在训练中,CenterNet沿用CornerNet的方法,对标签图(ground truth) 里的某一C类,把真实关键点(true keypoint) p∈R2计算出来用于训练,中心点坐标的计算方式为P =([x1+x22,y1+y22]) ,对于下采样后的坐标设为 p^=[pR],其中 R是上文中提到的下采样因子4。所以计算出来的中心点与低分辨率的中心点[4]相对应。

然后利用 Y∈[[0,1]WR×HR×C] 来对图像进行标记,在下采样的[128,128]图像中标签真值点(ground truth point) 以 Y∈[[0,1]WR×HR×C]的形式,用一个高斯核将关键点分布到特征图上。

Yxyc=exp(-[x-px2+y-py22σ2p])          (1)

其中 σp是标准差,σp的值与目标物体的宽高相关。如果某一个类的两个高斯分布发生了重叠,取最大元素即可。

每个点Y∈[[0,1]WR×HR×C]的范围为0~1,当Y=1时,代表此点为目标中心点(预测学习的点) 。

运行demo,输入一张图,得到其热力图如图3所示。

2.3 损失函数

整体损失函数(Ldet) 包括目标中心点预测损失(Lk) 、目标中心偏置损失(Loff)、目标大小损失(Lsize),总公式如下:

Ldet=Lk+λsizeLsize+λoffLoff  (2)

其中λsize=0.1,λoff=1。在主干网络后,每个坐标生成C+4个数据,包括类别、偏置x与y、宽、高。

2.4 欧拉角、四元数

实验已经用训练模型进行特征提取,下一步实现车辆姿态的识别,识别的思路为利用网络特征回归的方式输出为一个四元数,用来描述图片车辆具体的位置信息,此时引入欧拉角和四元数。

欧拉角[6]包括三个独立的角参量,如图4:章动角θ、旋进角(进动角) ψ和自转角φ。三个参量为一组来描述一个以定点转动的刚体的位置。

绕X轴旋转Roll翻滚角,绕Y轴旋转Pitch仰俯角,绕Z轴旋转Yaw偏航角。

万向锁问题:正常情况下,物体旋转时三个旋转轴相互独立,但是选择±90°作为pitch角,在时间上产生了共轴、共面,就会使第一次旋转和第三次旋转效果相同,整个旋转表示系统被限制在只能绕竖直轴旋转,缺少一个表示维度。

为了解决万向锁,这里引入四元数,四元数是一种简单的超复数,包括实数部和三个虚数部,一般形式为a + bi+ cj + dk(a、b、c、d均为实数,i、j、k均为虚数单位) 。可以把i j k(X轴Y轴Z轴) 本身的几何含义当作是旋转,满足左手系准则:大拇指指向旋转轴,另外四根手指所握方向即为旋转的正方向,所转角度即为正角度,反之为反向旋转。依次可得出i、j、k的正向旋转与反向旋转[7]。

用四元数表示姿态信息优点在于只要参考坐标系、动坐标系恒定,四元数就唯一,并且四元数保存的姿态信息数据可以转化成欧拉角。

3 数据收集与增强

本次实验采用多种方式获取数据,用来测试和训练模型。包括个人拍摄图片30张,网络图片108张,Kaggle无人车大赛公开数据集2762张。其中Kaggle为车辆的目标检测提供车辆的类别标签,从中提取车辆图像。这样的数据集进行模型训练,更能准确地检测识别出单帧图像中的车辆姿态。最终用于模型训练的训练集1703张,测试集662张,验证集530张。

实验中数据增强的操作包括尺寸变换(scale)、翻转变换(flip)。其中scale设置为8,在主干网络上采样中,产生的mask特征图尺寸为128[×]40,训练模型中图像尺寸1024[×]320的1/8。开启翻转(flip)的话,就将mask特征图(单通道的)、 regression特征图(7通道的) 取反。通过数据增强可以阻止神经网络模型学习不相关的特征,从根本上提升网络的整体性能。

4 实验结果与分析

4.1 实验环境

本实验操作系统Win10下完成,CPU为Intel(R) Core(TM) i7-6700HQ /GPU:GTX950M,内存为16G。开发环境为Python3.8、EfficientNet-B0等。

4.2 实验结果

最后验证经过训练后的模型,如图5所示,分别为原图和测试结果图。

以表1为图5中各个车辆的位置信息:

4.3 实验结果分析

通过图片验证与测试可以看出,车辆即使较远,小目标车辆也能很好地检测到,对于其位置姿态,也能用偏航角(pitch)、x、y、z等直观地展现出来,达到了本实验的基本目的。本实验仅对车辆这一类物体进行识别,因此采用精确率[8](Precision) 、召回率(Recall) 两个参数评价模型。精确率反映在测试集识别时,预测正样本中实际正样本所占的比例;召回率反映所有正样本中预测正样本所占的比例。

Precision=[tptp+fp] (3)

Recall=[tptp+fn] (4)

注:[tp]为识别到样本中的正样本,[fp]为识别到样本中的负样本,[fn]为未识别到样本中的正样本。

使用662张图片测试集在训练好的模型上进行验证,得到基于CenterNet的车辆姿态识别模型的精确率和召回率如表2所示:

通过表2以及图5可以看出,本实验训练的基于CenterNet的车辆姿态识别模型,对一些目标较小、较偏的车辆也能进行识别,其精准率以及召回率都在90%以上,可以较准确地检测车辆、识别车辆姿态,达到本实验目的。

5 结论

针对道路车辆姿态识别问题,传统目标检测算法识别率较低,鲁棒性不强,所以本文在基于CenterNet的目标检测算法上,实现了车辆的检测与姿态识别。结果表明,识别准确度与识别速度都得到了不错的结果,在662张图片测试集测试下进行模型评估,精准度基本在93%,证实了本实验的可行性,满足车辆姿态识别的要求。同样,后续的车辆姿态识别依然有很大的改进空间,进一步优化网络能得到更理想的效果。

参考文献:

[1] 黄健,张钢.深度卷积神经网络的目标检测算法综述[J].计算机工程与应用,2020,56(17):12-23.

[2] 杜鹏,谌明,苏统华.深度学习与目标检测[M].北京:电子工业出版社,2020.

[3] 黄跃珍,王乃洲,梁添才,等.基于改进CenterNet的车辆识别方法[J].华南理工大学学报(自然科学版),2021,49(7):94-102.

[4] Law H,Deng J.CornerNet:detecting objects as paired keypoints[J].International Journal of Computer Vision,2020,128(3):642-656.

[5] 石先讓,苏洋,提艳,等.基于CenterNet目标检测算法的改进模型[J].计算机工程,2021,47(9):240-251.

[6] 中国大百科全书总编辑委员会《力学》编辑委员会.中国大百科全书(力学) [M].北京:中国大百科全书出版社,1987:373.

[7] 程烺,俞家勇,马龙称,等.单位四元数、罗德里格转换模型与欧拉角的映射关系[J].北京测绘,2020,34(1):44-50.

[8] 李航.统计学习方法[M].北京:清华大学出版社,2012.

【通联编辑:唐一东】

猜你喜欢

计算机视觉
基于深度卷积神经网络的物体识别算法
双目摄像头在识别物体大小方面的应用
危险气体罐车液位计算机视觉监控识别报警系统设计