劉全周,賈鵬飛,李占旗,王述勇,王啟配
(中國汽車技術(shù)研究中心有限公司,天津 300300)
隨著經(jīng)濟(jì)的快速發(fā)展,人們對產(chǎn)品的開發(fā)和生產(chǎn)周期也提出了更高的要求。人工智能技術(shù)因具有精度高、成本低,能減少人工負(fù)荷的優(yōu)點(diǎn),已經(jīng)被廣泛應(yīng)用到實(shí)際工程當(dāng)中[1]。
汽車儀表總成是汽車安全系統(tǒng)的重要組成部分,它可以實(shí)時(shí)顯示汽車的信號狀態(tài)[2]。小型化、集成化以及多功能化是汽車儀表總成未來發(fā)展的核心方向,其主要意義是為了滿足汽車對于便捷、實(shí)用等方面的需求[3]。國內(nèi)外學(xué)者在汽車儀表領(lǐng)域已做了大量的研究工作,Alegria等[4](2000年)利用背影法對儀表盤的圖案標(biāo)識進(jìn)行了采集,并利用Hough變換對儀表指針進(jìn)行了檢測,計(jì)算出了指針的偏轉(zhuǎn)角度;Jaffery等[5](2011年)利用攝像頭對儀表圖像進(jìn)行實(shí)時(shí)采集,然后選取合適的閾值對圖像進(jìn)行二值化處理,實(shí)時(shí)輸出檢測結(jié)果。國內(nèi),岳曉峰等[6](2014年)對汽車儀表盤的信息進(jìn)行識別,通過SIFI算法獲得目標(biāo)位置區(qū)域,再進(jìn)行細(xì)化,并通過最小二乘法得到儀表指針的直線方程;鄧書勤等[7](2017年)提出一種快速的汽車儀表盤標(biāo)識配準(zhǔn)算法,可獲取匹配特征并求取匹配參數(shù),并進(jìn)行了儀表標(biāo)識的匹配實(shí)驗(yàn)。
從上述的研究來看,國內(nèi)外的研究主要是通過傳統(tǒng)算法對儀表標(biāo)識進(jìn)行提取和檢測,很少對儀表的標(biāo)識進(jìn)行自動化定位和辨別,而傳統(tǒng)圖像識別的算法流程是事先提取圖案的特征,然后再用這些特征去進(jìn)行匹配,但是汽車儀表盤的標(biāo)識種類相對較多,且不同標(biāo)識之間的相似度較高,利用特征提取算法對多種標(biāo)識進(jìn)行辨別時(shí)辨別的精度往往并不太理想。
汽車儀表標(biāo)識的自動化辨別對于前期儀表功能的檢測尤為重要,儀表功能較多且信息龐雜,通過智能算法對儀表標(biāo)識的自動化辨別,不但可以減低人工成本,也有助于實(shí)現(xiàn)儀表功能的自動化測試,大大提高了測試的效率。為此,本文基于深度學(xué)習(xí)Inception框架對汽車儀表標(biāo)識的辨別進(jìn)行了研究,通過采集標(biāo)識信息樣本,制作學(xué)習(xí)數(shù)據(jù)集,對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,實(shí)現(xiàn)儀表標(biāo)識的自動化辨別,辨別結(jié)果進(jìn)行反饋等流程,從而實(shí)現(xiàn)儀表功能的自動化測試。
本文采用的汽車儀表為某汽車品牌的組合儀表,組合儀表包括車速表、轉(zhuǎn)速表、燃油表、水溫表、故障信息以及各種指示燈等內(nèi)容,根據(jù)儀表電器的原理圖和DBC信號列表,在dSpace控制機(jī)柜中配置對應(yīng)的信號可控制不同儀表標(biāo)識的點(diǎn)亮,儀表的信息圖如圖1所示,儀表的電路連接示意圖如圖2所示。
圖1 儀表總成圖片F(xiàn)ig.1 Picture of automotive instrument clusters
圖2 電路連接示意圖Fig.2 Circuit connection diagram
汽車儀表標(biāo)識識別系統(tǒng)包括上位機(jī)控制軟件,dSPACE仿真機(jī)柜,汽車儀表總成,視覺采集設(shè)備(暗箱、臺架、攝像頭)以及下位機(jī)圖像分析模塊。辨別系統(tǒng)結(jié)構(gòu)如圖3所示。
圖3 圖像辨別系統(tǒng)結(jié)構(gòu)圖Fig.3 Identification system structure diagram
在上位機(jī)控制中,根據(jù)儀表總成的電路原理圖和引腳定義,在dSPACE控制機(jī)柜中配置合適的信號值,利用Controldesk軟件搭建儀表總成的GUI控制界面,當(dāng)點(diǎn)擊界面按鈕時(shí),會發(fā)出相應(yīng)的CAN報(bào)文信息,儀表標(biāo)識則會被點(diǎn)亮。通過攝像頭對儀表圖像進(jìn)行實(shí)時(shí)采集,采集的圖像經(jīng)過處理,輸送給識別程序中進(jìn)行辨別,辨別的結(jié)果轉(zhuǎn)換為CAN報(bào)文的信息反饋給計(jì)算機(jī),依次循環(huán)不同儀表標(biāo)識的點(diǎn)亮、辨識,最后形成測試報(bào)告,確定儀表功能是否正常。
由于攝像頭采集的圖像質(zhì)量相對較差,需要通過相關(guān)圖像處理算法來改善圖片的質(zhì)量,本文采用了雙邊濾波對圖像的噪聲進(jìn)行處理,并通過改變圖像的對比度和亮度來增強(qiáng)圖像的質(zhì)量。雙邊濾波是一種非線性濾波器,具有保持圖像邊緣、降噪平滑的效果[8]。在對圖像進(jìn)行處理時(shí),假設(shè)為I原圖像,S為圖像中的方形區(qū)域,q為其中的一個(gè)像素,則S中像素p經(jīng)過雙邊濾波處理的結(jié)果表示為[9]:
式中歸一化因子Wp為:
σd和σr是基于高斯函數(shù)的標(biāo)準(zhǔn)差,決定了雙邊濾波算法的濾波性能。
經(jīng)過雙邊濾波處理后,對圖片的對比度和亮度進(jìn)行調(diào)節(jié),以提高儀表標(biāo)識的清晰度。在處理時(shí),改變圖像的像素值來調(diào)節(jié)圖像的對比度和亮度。
通過vs-openCV編寫相應(yīng)的算法處理程序,為了便于確定圖像合適的亮度和對比度,設(shè)計(jì)了滑動條,拖動滑動條即可改變圖像的對比度和亮度,處理的圖片如下所示。
圖4 攝像頭采集的圖像Fig.4 Image captured by a camera
圖5 雙邊濾波處理的圖像Fig.5 Image processed by bilateral filtering
圖6 對比度亮度調(diào)整后的圖像Fig.6 Image after adjusting contrast and brightness
深度學(xué)習(xí)是人工智能的一種算法,它學(xué)習(xí)的過程主要是通過卷積網(wǎng)絡(luò)對所識別的圖像進(jìn)行特征提取,一個(gè)卷積網(wǎng)絡(luò)一般包含若干卷積層、池化層和全連接層,如圖7所示[10-11]。
圖7 卷積網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Convolutional neural network structure
卷積神經(jīng)網(wǎng)絡(luò)在圖像處理方面一直有著很不錯(cuò)的表現(xiàn),圖像在處理時(shí),要經(jīng)過多層的卷積操作,隨著卷積層數(shù)的增多,網(wǎng)絡(luò)對于圖像“理解”的更深,學(xué)習(xí)到的特征也會更全面[12-13]。
本文所采用的的卷積網(wǎng)絡(luò)模型是Inception v3網(wǎng)絡(luò)結(jié)構(gòu)模型,它是由GoogleNet經(jīng)過改進(jìn)得到的,誤差率僅為3.46%[14-16]。在計(jì)算機(jī)中配置Tensorflow深度學(xué)習(xí)框架,利用TensorBoard可以查看網(wǎng)絡(luò)模型結(jié)構(gòu),Inception v3的結(jié)構(gòu)示意圖如圖8所示。
圖8 Inception v3網(wǎng)絡(luò)結(jié)構(gòu)Fig.8 Inception v3 network structure
Inception v3網(wǎng)絡(luò)結(jié)構(gòu)相比于傳統(tǒng)的CNN卷積網(wǎng)絡(luò),它多了Inception網(wǎng)絡(luò)處理子模塊,每個(gè)網(wǎng)絡(luò)子模塊是由大小不同的卷積核并行連接在一起,增加了網(wǎng)絡(luò)的寬度和網(wǎng)絡(luò)的適應(yīng)性,可以起到減小模型復(fù)雜度,加快訓(xùn)練效率,提高網(wǎng)絡(luò)泛化能力的作用。它求解的思路是通過局部的稀疏矩陣來近似的去表示稠密矩陣,通過分析激活值的統(tǒng)計(jì)特性和高度相關(guān)的輸出進(jìn)行聚集來建立最優(yōu)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程實(shí)則是神經(jīng)元權(quán)重與閾值的更新過程,經(jīng)過不斷的迭代,網(wǎng)絡(luò)通過誤差反向傳播算法來計(jì)算各個(gè)神經(jīng)元的節(jié)點(diǎn)參數(shù),網(wǎng)絡(luò)中神經(jīng)元的激活函數(shù)為Relu函數(shù),使用ReLU激活函數(shù)可以避免梯度彌散和梯度爆炸。利用鏈?zhǔn)角髮?dǎo)計(jì)算損失函數(shù)對每個(gè)權(quán)重的偏導(dǎo)數(shù),然后根據(jù)梯度下降公式跟新權(quán)重,訓(xùn)練算法依據(jù)反向誤差傳播誤差,誤差的更新計(jì)算如圖9所示。
圖9 卷積層處理模型Fig.9 Convolution layer processing model
其中,δl為l的誤差,則l?1層神經(jīng)元的誤差項(xiàng)δl-1由鏈?zhǔn)角髮?dǎo)得:
進(jìn)一步將元素?cái)U(kuò)展到卷積區(qū)域的處理,上式為
將兩項(xiàng)組合起來,便可得到神經(jīng)元的誤差,為
在訓(xùn)練網(wǎng)絡(luò)之前,需要準(zhǔn)備汽車儀表標(biāo)識的數(shù)據(jù)集,控制儀表總成標(biāo)識依次點(diǎn)亮,借助于攝像頭對儀表盤總成的標(biāo)識進(jìn)行實(shí)時(shí)采集,將不同標(biāo)識依次截取出來,制作成不同標(biāo)識的樣本庫,并搜集相同標(biāo)識圖片以擴(kuò)充樣本的數(shù)量,本文所采集的樣本種類一共有23種,每一類一共采集200張圖片。訓(xùn)練之前需要人工對樣本進(jìn)行分類和制作標(biāo)簽以便于網(wǎng)絡(luò)學(xué)習(xí),23種標(biāo)識和標(biāo)簽如表1所示。
表1 儀表標(biāo)識與標(biāo)簽Table 1 Icons and labels
通過編寫批處理文件,將學(xué)習(xí)樣本轉(zhuǎn)換成網(wǎng)絡(luò)可以讀入的TFRecords文件格式,它是一種二進(jìn)制文件,可以更好的利用計(jì)算機(jī)的內(nèi)存,方便移動和復(fù)制[17]。
在Inception v3網(wǎng)絡(luò)的池化層之后,添加全連接層,添加的連接層結(jié)構(gòu)如圖10所示。
連接層輸出的神經(jīng)元個(gè)數(shù)為23,使其與儀標(biāo)標(biāo)識的分類相對應(yīng),網(wǎng)絡(luò)的損失函數(shù)為交叉熵函數(shù),置信度的計(jì)算函數(shù)為softmax函數(shù),學(xué)習(xí)率設(shè)置為0.01,迭代步數(shù)為4000次,批處理bitch_size大小設(shè)置為10,求解過程中損失函數(shù)和準(zhǔn)確率的變化曲線如下圖所示。
圖10 網(wǎng)絡(luò)輸出層結(jié)構(gòu)圖Fig.10 Output layer structure diagram
圖11 求解過程中損失函數(shù)的變化曲線Fig.11 Curve of loss function
圖12 求解過程中準(zhǔn)確率的變化曲線Fig.12 Curve of accuracy
從曲線圖中可以看出,隨著迭代次數(shù)的增加,損失函數(shù)的數(shù)值一直在減小,結(jié)果的準(zhǔn)確率在不斷的提高。由于在訓(xùn)練過程中只改變了網(wǎng)絡(luò)中最后一層的神經(jīng)元參數(shù),保留了前面網(wǎng)路結(jié)構(gòu)中神經(jīng)元的參數(shù),所以訓(xùn)練的速度比較快,當(dāng)?shù)綌?shù)為500時(shí),模型的辨別效果已經(jīng)較為理想,當(dāng)完成訓(xùn)練后,損失函數(shù)的數(shù)值大小為0.0095,準(zhǔn)確率為99%。
要實(shí)現(xiàn)標(biāo)識的自動化辨識,首先要實(shí)現(xiàn)對圖片中標(biāo)識進(jìn)行自動化定位,以獲取點(diǎn)亮的標(biāo)識信息??刂苾x表總成依次點(diǎn)亮不同標(biāo)識信息,采用幀差法對點(diǎn)亮的標(biāo)識進(jìn)行捕捉,它利用了相鄰的兩幀或者三幀圖像,借助于像素之間的差異性,判斷是否有運(yùn)動目標(biāo)[18-20]。固定儀表和攝像頭之后,每隔一段時(shí)間點(diǎn)亮一個(gè)標(biāo)識,攝像頭采集標(biāo)識點(diǎn)亮的視頻,利用vs編寫幀差法處理程序?qū)Σ蹲降囊曨l進(jìn)行處理,攝像頭采集圖片如圖13所示,不同標(biāo)識的定位提取如圖14所示。
圖13 攝像頭圖像采集Fig.13 Image acquisition
圖14 不同標(biāo)識的提取Fig.14 Extraction of different icons
圖15 用戶交互界面Fig.15 User interface
圖16 信號模型Fig.16 Signal model
由汽車儀表總成的功能規(guī)范和DBC文件,依據(jù)接口定義為儀表分配dSPACE機(jī)柜板卡資源,根據(jù)信號控制邏輯在Matlab Simulink中搭建信號控制模型,同時(shí)在congtorldesk中通過button、frame multistate display和LEDs Automotive控件設(shè)計(jì)用戶交互界面,控制不同標(biāo)識的點(diǎn)亮,控制界面如圖15所示,信號控制模型如圖16所示。
在測試時(shí),依次循環(huán)點(diǎn)亮儀表的標(biāo)識,通過儀表標(biāo)識由暗變亮的變化過程,借助于幀差法對點(diǎn)亮的標(biāo)識進(jìn)行提取,得到點(diǎn)亮的標(biāo)識之后,通過Inception網(wǎng)絡(luò)對標(biāo)識進(jìn)行辨別,表2為儀表標(biāo)識的辨別結(jié)果。
表2 不同儀表標(biāo)識的辨別結(jié)果Table 2 Identification results of different icons
表2中展示了部分儀表標(biāo)識的辨別結(jié)果,從表中可以觀測到,網(wǎng)絡(luò)對于圖標(biāo)的辨別精度相對較高,辨別的準(zhǔn)確率達(dá)到了86%以上,并且對應(yīng)標(biāo)簽的置信度要遠(yuǎn)遠(yuǎn)高于非對應(yīng)標(biāo)簽的置信度,起到了很好的分類效果,提取識別結(jié)果中置信度最高的關(guān)鍵字,將關(guān)鍵字信息轉(zhuǎn)換成CAN報(bào)文信息反饋給測試機(jī)柜,判斷功能是否正常,從而形成測試報(bào)告,依次點(diǎn)亮不同圖標(biāo),實(shí)現(xiàn)儀表功能的測試。
1)基于dSPACE硬件在環(huán)仿真平臺,利用圖像識別技術(shù),建立了汽車儀表標(biāo)識的辨別系統(tǒng),可以實(shí)現(xiàn)儀表標(biāo)識的控制、顯示、采集和辨別功能。
2)運(yùn)用了雙邊濾波算法對采集的圖像進(jìn)行預(yù)處理,去除了圖像中的噪聲,并提高像素的對比度和亮度信息,改善了圖像的質(zhì)量。
3)設(shè)計(jì)了用戶交互界面并利用深度學(xué)習(xí)Inception框架對標(biāo)識信息進(jìn)行辨識,實(shí)現(xiàn)了儀表標(biāo)識的自動化定位與辨別,準(zhǔn)確率達(dá)到了86%以上,說明了系統(tǒng)辨別結(jié)果的可靠性并進(jìn)行了儀表功能的測試。