基于深度学习的汽车仪表标识辨别系统设计
2018-07-12刘全周贾鹏飞李占旗王述勇王启配
刘全周,贾鹏飞,李占旗,王述勇,王启配
(中国汽车技术研究中心有限公司,天津 300300)
0 引言
随着经济的快速发展,人们对产品的开发和生产周期也提出了更高的要求。人工智能技术因具有精度高、成本低,能减少人工负荷的优点,已经被广泛应用到实际工程当中[1]。
汽车仪表总成是汽车安全系统的重要组成部分,它可以实时显示汽车的信号状态[2]。小型化、集成化以及多功能化是汽车仪表总成未来发展的核心方向,其主要意义是为了满足汽车对于便捷、实用等方面的需求[3]。国内外学者在汽车仪表领域已做了大量的研究工作,Alegria等[4](2000年)利用背影法对仪表盘的图案标识进行了采集,并利用Hough变换对仪表指针进行了检测,计算出了指针的偏转角度;Jaffery等[5](2011年)利用摄像头对仪表图像进行实时采集,然后选取合适的阈值对图像进行二值化处理,实时输出检测结果。国内,岳晓峰等[6](2014年)对汽车仪表盘的信息进行识别,通过SIFI算法获得目标位置区域,再进行细化,并通过最小二乘法得到仪表指针的直线方程;邓书勤等[7](2017年)提出一种快速的汽车仪表盘标识配准算法,可获取匹配特征并求取匹配参数,并进行了仪表标识的匹配实验。
从上述的研究来看,国内外的研究主要是通过传统算法对仪表标识进行提取和检测,很少对仪表的标识进行自动化定位和辨别,而传统图像识别的算法流程是事先提取图案的特征,然后再用这些特征去进行匹配,但是汽车仪表盘的标识种类相对较多,且不同标识之间的相似度较高,利用特征提取算法对多种标识进行辨别时辨别的精度往往并不太理想。
汽车仪表标识的自动化辨别对于前期仪表功能的检测尤为重要,仪表功能较多且信息庞杂,通过智能算法对仪表标识的自动化辨别,不但可以减低人工成本,也有助于实现仪表功能的自动化测试,大大提高了测试的效率。为此,本文基于深度学习Inception框架对汽车仪表标识的辨别进行了研究,通过采集标识信息样本,制作学习数据集,对网络进行训练,实现仪表标识的自动化辨别,辨别结果进行反馈等流程,从而实现仪表功能的自动化测试。
1 辨别系统整体设计
1.1 汽车仪表总成
本文采用的汽车仪表为某汽车品牌的组合仪表,组合仪表包括车速表、转速表、燃油表、水温表、故障信息以及各种指示灯等内容,根据仪表电器的原理图和DBC信号列表,在dSpace控制机柜中配置对应的信号可控制不同仪表标识的点亮,仪表的信息图如图1所示,仪表的电路连接示意图如图2所示。
图1 仪表总成图片Fig.1 Picture of automotive instrument clusters
图2 电路连接示意图Fig.2 Circuit connection diagram
1.2 辨别系统结构
汽车仪表标识识别系统包括上位机控制软件,dSPACE仿真机柜,汽车仪表总成,视觉采集设备(暗箱、台架、摄像头)以及下位机图像分析模块。辨别系统结构如图3所示。
图3 图像辨别系统结构图Fig.3 Identification system structure diagram
在上位机控制中,根据仪表总成的电路原理图和引脚定义,在dSPACE控制机柜中配置合适的信号值,利用Controldesk软件搭建仪表总成的GUI控制界面,当点击界面按钮时,会发出相应的CAN报文信息,仪表标识则会被点亮。通过摄像头对仪表图像进行实时采集,采集的图像经过处理,输送给识别程序中进行辨别,辨别的结果转换为CAN报文的信息反馈给计算机,依次循环不同仪表标识的点亮、辨识,最后形成测试报告,确定仪表功能是否正常。
2 图像处理算法
2.1 图像预处理
由于摄像头采集的图像质量相对较差,需要通过相关图像处理算法来改善图片的质量,本文采用了双边滤波对图像的噪声进行处理,并通过改变图像的对比度和亮度来增强图像的质量。双边滤波是一种非线性滤波器,具有保持图像边缘、降噪平滑的效果[8]。在对图像进行处理时,假设为I原图像,S为图像中的方形区域,q为其中的一个像素,则S中像素p经过双边滤波处理的结果表示为[9]:
式中归一化因子Wp为:
σd和σr是基于高斯函数的标准差,决定了双边滤波算法的滤波性能。
经过双边滤波处理后,对图片的对比度和亮度进行调节,以提高仪表标识的清晰度。在处理时,改变图像的像素值来调节图像的对比度和亮度。
通过vs-openCV编写相应的算法处理程序,为了便于确定图像合适的亮度和对比度,设计了滑动条,拖动滑动条即可改变图像的对比度和亮度,处理的图片如下所示。
图4 摄像头采集的图像Fig.4 Image captured by a camera
图5 双边滤波处理的图像Fig.5 Image processed by bilateral filtering
图6 对比度亮度调整后的图像Fig.6 Image after adjusting contrast and brightness
2.2 Inception深度学习网络
深度学习是人工智能的一种算法,它学习的过程主要是通过卷积网络对所识别的图像进行特征提取,一个卷积网络一般包含若干卷积层、池化层和全连接层,如图7所示[10-11]。
图7 卷积网络结构Fig.7 Convolutional neural network structure
卷积神经网络在图像处理方面一直有着很不错的表现,图像在处理时,要经过多层的卷积操作,随着卷积层数的增多,网络对于图像“理解”的更深,学习到的特征也会更全面[12-13]。
本文所采用的的卷积网络模型是Inception v3网络结构模型,它是由GoogleNet经过改进得到的,误差率仅为3.46%[14-16]。在计算机中配置Tensorflow深度学习框架,利用TensorBoard可以查看网络模型结构,Inception v3的结构示意图如图8所示。
图8 Inception v3网络结构Fig.8 Inception v3 network structure
Inception v3网络结构相比于传统的CNN卷积网络,它多了Inception网络处理子模块,每个网络子模块是由大小不同的卷积核并行连接在一起,增加了网络的宽度和网络的适应性,可以起到减小模型复杂度,加快训练效率,提高网络泛化能力的作用。它求解的思路是通过局部的稀疏矩阵来近似的去表示稠密矩阵,通过分析激活值的统计特性和高度相关的输出进行聚集来建立最优网络。
2.3 误差更新计算
神经网络的学习过程实则是神经元权重与阈值的更新过程,经过不断的迭代,网络通过误差反向传播算法来计算各个神经元的节点参数,网络中神经元的激活函数为Relu函数,使用ReLU激活函数可以避免梯度弥散和梯度爆炸。利用链式求导计算损失函数对每个权重的偏导数,然后根据梯度下降公式跟新权重,训练算法依据反向误差传播误差,误差的更新计算如图9所示。
图9 卷积层处理模型Fig.9 Convolution layer processing model
其中,δl为l的误差,则l−1层神经元的误差项δl-1由链式求导得:
进一步将元素扩展到卷积区域的处理,上式为
将两项组合起来,便可得到神经元的误差,为
3 实验设计与结果分析
3.1 数据集
在训练网络之前,需要准备汽车仪表标识的数据集,控制仪表总成标识依次点亮,借助于摄像头对仪表盘总成的标识进行实时采集,将不同标识依次截取出来,制作成不同标识的样本库,并搜集相同标识图片以扩充样本的数量,本文所采集的样本种类一共有23种,每一类一共采集200张图片。训练之前需要人工对样本进行分类和制作标签以便于网络学习,23种标识和标签如表1所示。
表1 仪表标识与标签Table 1 Icons and labels
通过编写批处理文件,将学习样本转换成网络可以读入的TFRecords文件格式,它是一种二进制文件,可以更好的利用计算机的内存,方便移动和复制[17]。
3.2 模型的训练
在Inception v3网络的池化层之后,添加全连接层,添加的连接层结构如图10所示。
连接层输出的神经元个数为23,使其与仪标标识的分类相对应,网络的损失函数为交叉熵函数,置信度的计算函数为softmax函数,学习率设置为0.01,迭代步数为4000次,批处理bitch_size大小设置为10,求解过程中损失函数和准确率的变化曲线如下图所示。
图10 网络输出层结构图Fig.10 Output layer structure diagram
图11 求解过程中损失函数的变化曲线Fig.11 Curve of loss function
图12 求解过程中准确率的变化曲线Fig.12 Curve of accuracy
从曲线图中可以看出,随着迭代次数的增加,损失函数的数值一直在减小,结果的准确率在不断的提高。由于在训练过程中只改变了网络中最后一层的神经元参数,保留了前面网路结构中神经元的参数,所以训练的速度比较快,当迭代步数为500时,模型的辨别效果已经较为理想,当完成训练后,损失函数的数值大小为0.0095,准确率为99%。
3.3 标识信息的定位
要实现标识的自动化辨识,首先要实现对图片中标识进行自动化定位,以获取点亮的标识信息。控制仪表总成依次点亮不同标识信息,采用帧差法对点亮的标识进行捕捉,它利用了相邻的两帧或者三帧图像,借助于像素之间的差异性,判断是否有运动目标[18-20]。固定仪表和摄像头之后,每隔一段时间点亮一个标识,摄像头采集标识点亮的视频,利用vs编写帧差法处理程序对捕捉的视频进行处理,摄像头采集图片如图13所示,不同标识的定位提取如图14所示。
图13 摄像头图像采集Fig.13 Image acquisition
图14 不同标识的提取Fig.14 Extraction of different icons
3.4 仪表的半自动化测试
图15 用户交互界面Fig.15 User interface
图16 信号模型Fig.16 Signal model
由汽车仪表总成的功能规范和DBC文件,依据接口定义为仪表分配dSPACE机柜板卡资源,根据信号控制逻辑在Matlab Simulink中搭建信号控制模型,同时在congtorldesk中通过button、frame multistate display和LEDs Automotive控件设计用户交互界面,控制不同标识的点亮,控制界面如图15所示,信号控制模型如图16所示。
在测试时,依次循环点亮仪表的标识,通过仪表标识由暗变亮的变化过程,借助于帧差法对点亮的标识进行提取,得到点亮的标识之后,通过Inception网络对标识进行辨别,表2为仪表标识的辨别结果。
表2 不同仪表标识的辨别结果Table 2 Identification results of different icons
表2中展示了部分仪表标识的辨别结果,从表中可以观测到,网络对于图标的辨别精度相对较高,辨别的准确率达到了86%以上,并且对应标签的置信度要远远高于非对应标签的置信度,起到了很好的分类效果,提取识别结果中置信度最高的关键字,将关键字信息转换成CAN报文信息反馈给测试机柜,判断功能是否正常,从而形成测试报告,依次点亮不同图标,实现仪表功能的测试。
4 结论
1)基于dSPACE硬件在环仿真平台,利用图像识别技术,建立了汽车仪表标识的辨别系统,可以实现仪表标识的控制、显示、采集和辨别功能。
2)运用了双边滤波算法对采集的图像进行预处理,去除了图像中的噪声,并提高像素的对比度和亮度信息,改善了图像的质量。
3)设计了用户交互界面并利用深度学习Inception框架对标识信息进行辨识,实现了仪表标识的自动化定位与辨别,准确率达到了86%以上,说明了系统辨别结果的可靠性并进行了仪表功能的测试。