APP下载

改进Faster R-CNN 的汽车仪表指针实时检测

2021-11-27伍锡如邱涛涛

智能系统学报 2021年6期
关键词:指针仪表卷积

伍锡如,邱涛涛

(桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004)

随着汽车仪表生产过程的自动化需求不断提高,如何开发出一种高效、实时的指针检测方法成为当前人工智能领域的热点课题[1-3]。面对自动检测技术不断激增的需求[4-5],大多数企业仍采用人工视觉视检的方法来检测仪表指针,人工检测方法受工作状态影响,导致检测标准难以统一,无法满足流水线上仪表的产量需求,检测效率和精度也随之受到影响。由于指针目标较小,对应的像素中包含的特征很少,会导致存在漏检的情况。

现有的仪表指针检测主要基于经典图像处理方法来实现[6],通过匹配目标形状与颜色特征来检测指针位置[7-9]。例如,文献[10]中,作者提出了一种改进的中心投影法,通过定位圆形比例区域来匹配指针轮廓获得指针位置。Hao 等[11]基于OpenCV 提出并实现了一种汽车仪表自动检测指针系统;Gao 等[12]提出了一种鲁棒的字符分割分类器,该分类器是通过级联定向梯度直方图HOG/支持向量机SVM 二进制分类器来识别仪表板指针。基于形状特征与颜色特征的方法抗噪性较好,但提取的信息并不充分,且计算量大对硬件支持需求较大,没有考虑实时性与泛化性的需求。因此研究一种汽车仪表指针快速实时检测方法具有重要的现实意义。

近年来,深度学习方法在图像的识别和检测方面涌现了许多优秀成果,成为当前热点研究领域[13-15]。例如,曹锦纲等[16]提出一种基于生成式对抗网络应用于交通场景运动模糊图像增强,能够以较好的图像视觉效果完成模糊图像的增强。文献[17]通过卷积神经网络(CNN)与循环神经网络(RNN)结合,能够实现交通场景端到端语义描述,具有很好的鲁棒性。Ren 等[18]提出基于卷积神经网络的Faster R-CNN 算法,该网络拥有较强的语义表达和特征表达能力,泛化性能良好。Wu 等[19]基于Faster R-CNN 实现不同尺度的人脸面部检测,提高了人脸检测的效率。文献[20]使用Faster R-CNN 网络实现了人、车及动物等铁路异物的侵限检测,取得了较好的效果。深度学习使得识别与检测纳入一个整体流程,实现端到端的学习[21-24]。

鉴于以上研究,本文提出了一种基于改进Faster R-CNN 汽车仪表指针实时检测方法。采用RoI Align 层替代原始的RoI Pooling 层,保留了小目标的完整像素信息。基于双线性内插方法使特征聚集过程连续化,缩短了特征映射的计算时间。通过多组不同类型的仪表指针实验,在检测时间和检测精度上进行实验评估,验证了所提方法的高效性和实时性。

1 Faster R-CNN 检测原理

Faster R-CNN 算法网络框架如图1 所示。整体框架由区域建议网络(region proposal network,RPN)和Fast R-CNN 检测网络两部分构成。当图像输入网络后,由检测网络中的卷积网络层提取仪表指针特征,得到卷积特征层。卷积特征层被后续的RPN 层与检测网络层共享。RPN 层使用锚点与特征层,获取指针位置信息并输入到RoI Pooling 中,RoI 层利用所得到指针位置,进一步微调指针在原图像中的位置,获取仪表指针的精确位置信息,输出标定结果。

图1 Faster R-CNN 整体框架Fig.1 Faster R-CNN overall framework

1.1 RPN 网络

RPN 是一个全卷积网络,用来得到候选区域并输出一组矩形区域建议。它使用一个n×n滑动窗口在卷积网络层输出的卷积特征层上滑动来提取区域建议,该网络同时提供多个预测区域建议,每个位置最大的滑窗建议数量为k。对于不同大小的对象,使用3 个比例尺1282、2562、5122与3 种长宽比(1∶1、1∶2、2∶1)的滑动窗口,可以得到k=9 种类型滑动窗口。

获得的9 个锚点用来预测9 个候选区域,每个候选区域用一个四维向量(x,y,w,h) 来表示,x、y、w、h分别代表边界框的中心点坐标及其高和宽。通过式(1) 实现检测框与真实框的重叠校准:

式中:Ax、Ay、Aw、Ah表示检测框的4 个坐标向量;表示真实框的4 个坐标向量。通过平移、变换来对式(1)求解,可得到以下4 个变换,即平移2 个和缩放2 个。

平移:

式中dx、dy、dw、dh表示线性变换。

计算边界框的回归:

式中:x和y表示边界框的中心坐标;tx、ty表示平移因子;tw、th表示缩放因子。

对于单一图像,损失函数定义为

分类和回归损失函数分别为

式中:i表示最小采样中锚点的指数;表示锚点预测目标的概率,当锚点为正样本,;当锚点为负样本,;λ 为常量,用于控制分类损失和回归损失的平衡;ti表示候选框的参数化坐标;表示锚点为正样本候选框的坐标。

1.2 检测网络

从图1 中可以得到,Fast R-CNN 作为检测网络,卷积网络层由卷积、Relu 和池化组成,负责对输入图像提取特征,对于全图只进行一次区域特征的提取,减少了特征的搜索时间。RoI Pooling 层由共享特征卷积层与RPN 层给出的多个建议区域作为输入。全连接层结构实现将高维数据进行一系列非线性变换,通过卷积操作将对应指针区域合并成固定大小的特征图,利用标定框回归实现指针检测框修正以更加准确的位置,输出指针检测结果。

检测网络实现流程如下:

1) 使用卷积网络层提取图片中指针的特征;

2) 通过RPN 网络给出的建议区域,判定是否属于检测目标指针;

3) 使用标定框回归来不断逼近真实目标区域;

4) 通过全连接网络层回归获取指针精确的位置;

5) 输出指针检测结果。

2 改进Faster R-CNN 实现指针检测

改进的Faster R-CNN 指针检测实现流程(见图2),包括在线实时检测与离线训练模型两个过程。在线实时检测通过加载待检测指针图像,网络对其进行学习与检测,给出指针检测结果。离线训练通过工业机采集仪表指针数据之后,以预训练的模型在数据集上进行训练,通过特征提取和学习不同类型的仪表指针,得到优化后的指针检测模型,根据指针类型不同,通过反馈机制实现检测模型的及时更新。离线训练能够保证模型适应不同类别仪表指针,提升模型迁移能力。对于所获得的更新之后的训练模型,在线实时检测可以调用更新之后的网络模型,实现将待检测的仪表指针数据集加载进去并实现自动给出检测结果,完成在线实时检测。

图2 检测算法流程Fig.2 Detection algorithm flow

2.1 数据集

为保证算法检测准确度,本文从真实指针仪表生产线获取工业机录制的仪表指针转动视频,按照固定帧数裁剪成图片集,图片分辨率为2 448×2 050,再使用LabelImg 标注软件转换成VOC2007[25]数据集格式,构成网络模型预训练的数据集。VOC 格式数据集主要包括:1)训练样本集、验证样本集和测试样本集;2)每个样本图像对应的XML 信息文件;3)样本图像类别标签的TXT 文件。为了保证预训练模型的泛化能力,通过收集并扩充不同类别的指针仪表添加到数据集中,数据集总量为8000 张,对其按比例进行划分,以总体数据集的70%作为训练样本集,20%作为验证样本集,10%作为测试样本集。

2.2 网络改进

检测网络中的RoI Pooling 层,在特征计算中需要通过两次量化操作来得到回归框的位置,输出固定大小的特征映射。两次量化操作是不连续的且像素计算形式为整数(见图3),计算过程会舍去小数点后的数值,从而丢失图像像素。而对于小目标检测,像素的丢失可能会导致特征的丢失,以至于检测不到目标对象。同时,两次的量化操作也会增加网络的计算时间,影响实时性。

图3 RoI Pooling 与RoI Align 改进实现机制Fig.3 Improved implementation mechanism of RoI Pooling and RoI Align

针对两次量化操作导致的图像像素丢失问题,本文采用RoI Align 层取代RoI Pooling 层的策略进行改进。改进的机制是使用双线性内插取代两次量化操作,使得特征聚集的计算变成一个连续的过程。RoI Align 层通过遍历每一个候选区域,能以浮点数的形式计算回归框的位置,保留了像素坐标的小数部分而不作量化处理,有效提高了小目标的检测能力。改进前后的效果如图3所示,对于大小为960×960 的特征区域,如果使用原始的RoI Pooling 层,第一次量化操作舍去了0.9 个像素,缩放到原图就是30 个像素的差别,并且像素的分辨率越大,丢失的像素信息越多。与之相比,使用RoI Align 层的改进处理,完整地保留了图像的像素信息,在检测准确度上得到了较大的提升。双线性内插算法定义如下:

沿x方向的线性插值为

式中:Qab=(xa,yb)(a=1,2;b=1,2),表示已知的4 个点坐标;f(x,y1)、f(x,y2) 表示沿x方向进行线性插值。

沿y方向的进行线性插值为

目标线性插值的结果为

对式(10)求偏导,可得

式中:d(i,i∗(r,j)) 表示两点之间距离;Δh与 Δw表示xi与i∗(r,j) 之间的差异是水平和垂直坐标。

双线性内插计算步骤为:针对加载图像信息,设定图像矩阵为I、缩放因子zmf(zmf>0),分情况讨论,当01 时为放大。首先,计算原始图像矩阵,结果表示为IH×IW×ID(H、W表示图像的宽和高),灰度图像通道的ID为1,彩色RGB 图像通道ID为3,将缩放因子整合计算,生成一个全零矩阵 (zmf×IH)×(zmf×IW)×ID。其次,将原始图像矩阵I增加一个单位,记为IT,增加单位后的矩阵为 (IH+2)×(IW+2)×ID。对于任意像素坐标位置 (zi,zj),通过缩放(zi/zmf,zj/zmf) 映射到原图像中得到对应目标像素坐标 (x,y)。如果 (x,y) 不为整数,则通过向下取整得到(i,j),得到计算结果为 (x=i+u,y=j+v),u,v∈[0,1),此时,根据式(11)进行双线性内插值计算,遍历计算每个映射像素的原目标像素坐标,直至填充完缩放矩阵ZI。

3 实验结果分析

本实验基于Caffe 深度学习平台,操作系统为Ubuntu16.04,网络选用端到端的训练方式。修改网络结构之后,同时调整网络超参数。网络学习率初始化为0.01,一共迭代13000 次,迭代到8500 次时将学习率改为0.001。得到训练模型之后,随机选取测试集中的样本,使用所得到的训练模型检测不同类别的仪表指针图片,评估模型的检测能力测试结果如图4 所示。由图4(a)~(d)可知,对于不同的两类速度仪表指针,本文采用的方法可以有效地标定出指针的准确位置。针对图4(e)、(f)中不同类型的转速仪表盘指针,同样具有较准确的检测效果,表明改进网络能有效地提取并学习仪表指针的高维特征,证明实际生产环境下,改进的Faster R-CNN 算法对于仪表指针的检测是可行和有效的。

图4 不同类型的仪表指针检测结果Fig.4 Different types of instrument pointer test results

为了验证训练模型的泛化能力,使用未经过训练的不同类型速度仪表指针图片作为检测样本,测试结果如图5 所示。从图5 可知,不同类型的仪表外观差异很大,表盘颜色和指针形状变化明显。对于未经过训练的仪表样本,本文方法依然可以检测并准确地标出指针的位置,表明所训练的模型具有较强的泛化能力与迁移能力。

图5 迁移实验检测结果Fig.5 Migration test results

本文所提的检测网络为两阶段网络,为了验证所提算法网络性能,将本文方法与单阶段检测网络YOLO-v3 进行了比较,实验结果如图6所示。

图6 YOLO-v3 检测结果Fig.6 YOLO-v3 test results

从YOLO-v3 实验结果可知,单阶段网络可以实现仪表指针检测,但是存在指针检测区域有偏差且准确率不高的问题。YOLO-v3 网络将采集的特征直接用于检测,虽然降低了检测时间,但缺少标定框的回归与参数学习,导致其检测准确率相对较低,计算性能如表1 所示。

表1 单张图片检测时间和精度对比Table 1 Single-image detection time and accuracy comparison

进一步验证本文算法的有效性,对现有的Hough 方法采用相同的数据集进行实验,实验结果如图7 所示。检测时间和精度对比由表1 可见,Hough 直线检测需要计算坐标并将其映射到另一坐标空间点的峰值,导致其运算检测时间较长,且易受到图片中其他直线空间复杂度干扰,导致检测精度低,算法鲁棒性较差。

图7 Hough 算法检测结果Fig.7 Hough algorithm test results

将本文算法与YOLO-v3 网络、经典Hough 方法以及HOG/SVM 方法进行对比,具体结果如表1所示。经过计算,本文提出的改进Faster R-CNN算法在验证集的平均测试精度高达92.7%,在单个GPU 上单张图片的平均检测时间约为0.197 s,优于其他方法检测精度与检测时间,可达到实时检测的目的。以上结果表明,改进方法能够实现仪表指针快速检测且满足准确度的要求,满足指针仪表在实际检测应用中的需求。

为了保证模型学习性能,原始与改进的网络分别在训练8500 次的时候改变一次学习率,训练过程的各阶段网络损失如图8、9 所示。图8(a)、(b)是原始Faster R-CNN 的回归与分类损失曲线,图8(c)、(d)表示改进Faster R-CNN 的回归与分类损失曲线。图9 是训练损失曲线对比。结合图8和图9 可知,原始的网络损失出现波动,且下降不稳定。改进网络能够更快地收敛速度下降,且下降稳定,出现波动小。损失值快速下降表明改进Faster R-CNN 网络可以有效地学习仪表指针的特征,回归损失能够快速收敛,并且加以更正标定框完成指针检测。

图8 回归与分类损失曲线对比Fig.8 Comparison of the regression and classification loss curves

图9 训练损失曲线对比Fig.9 Comparison of the training loss curves

4 结束语

汽车的仪表指针快速实时检测是汽车制造行业生产过程自动化与智能化迫切需要攻破的技术难题。实际生产环境中,人工视检任务繁重,自动化程度低,检测难度较大。本文以深度学习主流框架Faster R-CNN 为基础,通过改进网络层架构,提高图像特征传递能力,调整超参数,实现了仪表指针的快速检测。通过实验结果验证,单张图片检测时间为0.197 s,检测精度达到92.7%,证明了所提方法的有效性和实时性。后续的迁移测试表明训练的模型具有良好的迁移泛化能力。

猜你喜欢

指针仪表卷积
◆ 仪表
仪表
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
为什么表的指针都按照顺时针方向转动
奔驰E260车行驶过程中仪表灯熄灭
基于改进Hough变换和BP网络的指针仪表识别
一种基于卷积神经网络的性别识别方法
Microchip推出全新零漂移仪表放大器