伍錫如,邱濤濤
(桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004)
隨著汽車儀表生產(chǎn)過程的自動(dòng)化需求不斷提高,如何開發(fā)出一種高效、實(shí)時(shí)的指針檢測(cè)方法成為當(dāng)前人工智能領(lǐng)域的熱點(diǎn)課題[1-3]。面對(duì)自動(dòng)檢測(cè)技術(shù)不斷激增的需求[4-5],大多數(shù)企業(yè)仍采用人工視覺視檢的方法來檢測(cè)儀表指針,人工檢測(cè)方法受工作狀態(tài)影響,導(dǎo)致檢測(cè)標(biāo)準(zhǔn)難以統(tǒng)一,無法滿足流水線上儀表的產(chǎn)量需求,檢測(cè)效率和精度也隨之受到影響。由于指針目標(biāo)較小,對(duì)應(yīng)的像素中包含的特征很少,會(huì)導(dǎo)致存在漏檢的情況。
現(xiàn)有的儀表指針檢測(cè)主要基于經(jīng)典圖像處理方法來實(shí)現(xiàn)[6],通過匹配目標(biāo)形狀與顏色特征來檢測(cè)指針位置[7-9]。例如,文獻(xiàn)[10]中,作者提出了一種改進(jìn)的中心投影法,通過定位圓形比例區(qū)域來匹配指針輪廓獲得指針位置。Hao 等[11]基于OpenCV 提出并實(shí)現(xiàn)了一種汽車儀表自動(dòng)檢測(cè)指針系統(tǒng);Gao 等[12]提出了一種魯棒的字符分割分類器,該分類器是通過級(jí)聯(lián)定向梯度直方圖HOG/支持向量機(jī)SVM 二進(jìn)制分類器來識(shí)別儀表板指針。基于形狀特征與顏色特征的方法抗噪性較好,但提取的信息并不充分,且計(jì)算量大對(duì)硬件支持需求較大,沒有考慮實(shí)時(shí)性與泛化性的需求。因此研究一種汽車儀表指針快速實(shí)時(shí)檢測(cè)方法具有重要的現(xiàn)實(shí)意義。
近年來,深度學(xué)習(xí)方法在圖像的識(shí)別和檢測(cè)方面涌現(xiàn)了許多優(yōu)秀成果,成為當(dāng)前熱點(diǎn)研究領(lǐng)域[13-15]。例如,曹錦綱等[16]提出一種基于生成式對(duì)抗網(wǎng)絡(luò)應(yīng)用于交通場(chǎng)景運(yùn)動(dòng)模糊圖像增強(qiáng),能夠以較好的圖像視覺效果完成模糊圖像的增強(qiáng)。文獻(xiàn)[17]通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)與循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)結(jié)合,能夠?qū)崿F(xiàn)交通場(chǎng)景端到端語義描述,具有很好的魯棒性。Ren 等[18]提出基于卷積神經(jīng)網(wǎng)絡(luò)的Faster R-CNN 算法,該網(wǎng)絡(luò)擁有較強(qiáng)的語義表達(dá)和特征表達(dá)能力,泛化性能良好。Wu 等[19]基于Faster R-CNN 實(shí)現(xiàn)不同尺度的人臉面部檢測(cè),提高了人臉檢測(cè)的效率。文獻(xiàn)[20]使用Faster R-CNN 網(wǎng)絡(luò)實(shí)現(xiàn)了人、車及動(dòng)物等鐵路異物的侵限檢測(cè),取得了較好的效果。深度學(xué)習(xí)使得識(shí)別與檢測(cè)納入一個(gè)整體流程,實(shí)現(xiàn)端到端的學(xué)習(xí)[21-24]。
鑒于以上研究,本文提出了一種基于改進(jìn)Faster R-CNN 汽車儀表指針實(shí)時(shí)檢測(cè)方法。采用RoI Align 層替代原始的RoI Pooling 層,保留了小目標(biāo)的完整像素信息。基于雙線性內(nèi)插方法使特征聚集過程連續(xù)化,縮短了特征映射的計(jì)算時(shí)間。通過多組不同類型的儀表指針實(shí)驗(yàn),在檢測(cè)時(shí)間和檢測(cè)精度上進(jìn)行實(shí)驗(yàn)評(píng)估,驗(yàn)證了所提方法的高效性和實(shí)時(shí)性。
Faster R-CNN 算法網(wǎng)絡(luò)框架如圖1 所示。整體框架由區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)和Fast R-CNN 檢測(cè)網(wǎng)絡(luò)兩部分構(gòu)成。當(dāng)圖像輸入網(wǎng)絡(luò)后,由檢測(cè)網(wǎng)絡(luò)中的卷積網(wǎng)絡(luò)層提取儀表指針特征,得到卷積特征層。卷積特征層被后續(xù)的RPN 層與檢測(cè)網(wǎng)絡(luò)層共享。RPN 層使用錨點(diǎn)與特征層,獲取指針位置信息并輸入到RoI Pooling 中,RoI 層利用所得到指針位置,進(jìn)一步微調(diào)指針在原圖像中的位置,獲取儀表指針的精確位置信息,輸出標(biāo)定結(jié)果。

圖1 Faster R-CNN 整體框架Fig.1 Faster R-CNN overall framework
RPN 是一個(gè)全卷積網(wǎng)絡(luò),用來得到候選區(qū)域并輸出一組矩形區(qū)域建議。它使用一個(gè)n×n滑動(dòng)窗口在卷積網(wǎng)絡(luò)層輸出的卷積特征層上滑動(dòng)來提取區(qū)域建議,該網(wǎng)絡(luò)同時(shí)提供多個(gè)預(yù)測(cè)區(qū)域建議,每個(gè)位置最大的滑窗建議數(shù)量為k。對(duì)于不同大小的對(duì)象,使用3 個(gè)比例尺1282、2562、5122與3 種長寬比(1∶1、1∶2、2∶1)的滑動(dòng)窗口,可以得到k=9 種類型滑動(dòng)窗口。
獲得的9 個(gè)錨點(diǎn)用來預(yù)測(cè)9 個(gè)候選區(qū)域,每個(gè)候選區(qū)域用一個(gè)四維向量(x,y,w,h) 來表示,x、y、w、h分別代表邊界框的中心點(diǎn)坐標(biāo)及其高和寬。通過式(1) 實(shí)現(xiàn)檢測(cè)框與真實(shí)框的重疊校準(zhǔn):
式中:Ax、Ay、Aw、Ah表示檢測(cè)框的4 個(gè)坐標(biāo)向量;表示真實(shí)框的4 個(gè)坐標(biāo)向量。通過平移、變換來對(duì)式(1)求解,可得到以下4 個(gè)變換,即平移2 個(gè)和縮放2 個(gè)。

平移:

式中dx、dy、dw、dh表示線性變換。
計(jì)算邊界框的回歸:

式中:x和y表示邊界框的中心坐標(biāo);tx、ty表示平移因子;tw、th表示縮放因子。
對(duì)于單一圖像,損失函數(shù)定義為

分類和回歸損失函數(shù)分別為

式中:i表示最小采樣中錨點(diǎn)的指數(shù);表示錨點(diǎn)預(yù)測(cè)目標(biāo)的概率,當(dāng)錨點(diǎn)為正樣本,;當(dāng)錨點(diǎn)為負(fù)樣本,;λ 為常量,用于控制分類損失和回歸損失的平衡;ti表示候選框的參數(shù)化坐標(biāo);表示錨點(diǎn)為正樣本候選框的坐標(biāo)。
從圖1 中可以得到,F(xiàn)ast R-CNN 作為檢測(cè)網(wǎng)絡(luò),卷積網(wǎng)絡(luò)層由卷積、Relu 和池化組成,負(fù)責(zé)對(duì)輸入圖像提取特征,對(duì)于全圖只進(jìn)行一次區(qū)域特征的提取,減少了特征的搜索時(shí)間。RoI Pooling 層由共享特征卷積層與RPN 層給出的多個(gè)建議區(qū)域作為輸入。全連接層結(jié)構(gòu)實(shí)現(xiàn)將高維數(shù)據(jù)進(jìn)行一系列非線性變換,通過卷積操作將對(duì)應(yīng)指針區(qū)域合并成固定大小的特征圖,利用標(biāo)定框回歸實(shí)現(xiàn)指針檢測(cè)框修正以更加準(zhǔn)確的位置,輸出指針檢測(cè)結(jié)果。
檢測(cè)網(wǎng)絡(luò)實(shí)現(xiàn)流程如下:
1) 使用卷積網(wǎng)絡(luò)層提取圖片中指針的特征;
2) 通過RPN 網(wǎng)絡(luò)給出的建議區(qū)域,判定是否屬于檢測(cè)目標(biāo)指針;
3) 使用標(biāo)定框回歸來不斷逼近真實(shí)目標(biāo)區(qū)域;
4) 通過全連接網(wǎng)絡(luò)層回歸獲取指針精確的位置;
5) 輸出指針檢測(cè)結(jié)果。
改進(jìn)的Faster R-CNN 指針檢測(cè)實(shí)現(xiàn)流程(見圖2),包括在線實(shí)時(shí)檢測(cè)與離線訓(xùn)練模型兩個(gè)過程。在線實(shí)時(shí)檢測(cè)通過加載待檢測(cè)指針圖像,網(wǎng)絡(luò)對(duì)其進(jìn)行學(xué)習(xí)與檢測(cè),給出指針檢測(cè)結(jié)果。離線訓(xùn)練通過工業(yè)機(jī)采集儀表指針數(shù)據(jù)之后,以預(yù)訓(xùn)練的模型在數(shù)據(jù)集上進(jìn)行訓(xùn)練,通過特征提取和學(xué)習(xí)不同類型的儀表指針,得到優(yōu)化后的指針檢測(cè)模型,根據(jù)指針類型不同,通過反饋機(jī)制實(shí)現(xiàn)檢測(cè)模型的及時(shí)更新。離線訓(xùn)練能夠保證模型適應(yīng)不同類別儀表指針,提升模型遷移能力。對(duì)于所獲得的更新之后的訓(xùn)練模型,在線實(shí)時(shí)檢測(cè)可以調(diào)用更新之后的網(wǎng)絡(luò)模型,實(shí)現(xiàn)將待檢測(cè)的儀表指針數(shù)據(jù)集加載進(jìn)去并實(shí)現(xiàn)自動(dòng)給出檢測(cè)結(jié)果,完成在線實(shí)時(shí)檢測(cè)。

圖2 檢測(cè)算法流程Fig.2 Detection algorithm flow
為保證算法檢測(cè)準(zhǔn)確度,本文從真實(shí)指針儀表生產(chǎn)線獲取工業(yè)機(jī)錄制的儀表指針轉(zhuǎn)動(dòng)視頻,按照固定幀數(shù)裁剪成圖片集,圖片分辨率為2 448×2 050,再使用LabelImg 標(biāo)注軟件轉(zhuǎn)換成VOC2007[25]數(shù)據(jù)集格式,構(gòu)成網(wǎng)絡(luò)模型預(yù)訓(xùn)練的數(shù)據(jù)集。VOC 格式數(shù)據(jù)集主要包括:1)訓(xùn)練樣本集、驗(yàn)證樣本集和測(cè)試樣本集;2)每個(gè)樣本圖像對(duì)應(yīng)的XML 信息文件;3)樣本圖像類別標(biāo)簽的TXT 文件。為了保證預(yù)訓(xùn)練模型的泛化能力,通過收集并擴(kuò)充不同類別的指針儀表添加到數(shù)據(jù)集中,數(shù)據(jù)集總量為8000 張,對(duì)其按比例進(jìn)行劃分,以總體數(shù)據(jù)集的70%作為訓(xùn)練樣本集,20%作為驗(yàn)證樣本集,10%作為測(cè)試樣本集。
檢測(cè)網(wǎng)絡(luò)中的RoI Pooling 層,在特征計(jì)算中需要通過兩次量化操作來得到回歸框的位置,輸出固定大小的特征映射。兩次量化操作是不連續(xù)的且像素計(jì)算形式為整數(shù)(見圖3),計(jì)算過程會(huì)舍去小數(shù)點(diǎn)后的數(shù)值,從而丟失圖像像素。而對(duì)于小目標(biāo)檢測(cè),像素的丟失可能會(huì)導(dǎo)致特征的丟失,以至于檢測(cè)不到目標(biāo)對(duì)象。同時(shí),兩次的量化操作也會(huì)增加網(wǎng)絡(luò)的計(jì)算時(shí)間,影響實(shí)時(shí)性。

圖3 RoI Pooling 與RoI Align 改進(jìn)實(shí)現(xiàn)機(jī)制Fig.3 Improved implementation mechanism of RoI Pooling and RoI Align
針對(duì)兩次量化操作導(dǎo)致的圖像像素丟失問題,本文采用RoI Align 層取代RoI Pooling 層的策略進(jìn)行改進(jìn)。改進(jìn)的機(jī)制是使用雙線性內(nèi)插取代兩次量化操作,使得特征聚集的計(jì)算變成一個(gè)連續(xù)的過程。RoI Align 層通過遍歷每一個(gè)候選區(qū)域,能以浮點(diǎn)數(shù)的形式計(jì)算回歸框的位置,保留了像素坐標(biāo)的小數(shù)部分而不作量化處理,有效提高了小目標(biāo)的檢測(cè)能力。改進(jìn)前后的效果如圖3所示,對(duì)于大小為960×960 的特征區(qū)域,如果使用原始的RoI Pooling 層,第一次量化操作舍去了0.9 個(gè)像素,縮放到原圖就是30 個(gè)像素的差別,并且像素的分辨率越大,丟失的像素信息越多。與之相比,使用RoI Align 層的改進(jìn)處理,完整地保留了圖像的像素信息,在檢測(cè)準(zhǔn)確度上得到了較大的提升。雙線性內(nèi)插算法定義如下:
沿x方向的線性插值為

式中:Qab=(xa,yb)(a=1,2;b=1,2),表示已知的4 個(gè)點(diǎn)坐標(biāo);f(x,y1)、f(x,y2) 表示沿x方向進(jìn)行線性插值。
沿y方向的進(jìn)行線性插值為

目標(biāo)線性插值的結(jié)果為

對(duì)式(10)求偏導(dǎo),可得

式中:d(i,i?(r,j)) 表示兩點(diǎn)之間距離;Δh與 Δw表示xi與i?(r,j) 之間的差異是水平和垂直坐標(biāo)。
雙線性內(nèi)插計(jì)算步驟為:針對(duì)加載圖像信息,設(shè)定圖像矩陣為I、縮放因子zmf(zmf>0),分情況討論,當(dāng)0
本實(shí)驗(yàn)基于Caffe 深度學(xué)習(xí)平臺(tái),操作系統(tǒng)為Ubuntu16.04,網(wǎng)絡(luò)選用端到端的訓(xùn)練方式。修改網(wǎng)絡(luò)結(jié)構(gòu)之后,同時(shí)調(diào)整網(wǎng)絡(luò)超參數(shù)。網(wǎng)絡(luò)學(xué)習(xí)率初始化為0.01,一共迭代13000 次,迭代到8500 次時(shí)將學(xué)習(xí)率改為0.001。得到訓(xùn)練模型之后,隨機(jī)選取測(cè)試集中的樣本,使用所得到的訓(xùn)練模型檢測(cè)不同類別的儀表指針圖片,評(píng)估模型的檢測(cè)能力測(cè)試結(jié)果如圖4 所示。由圖4(a)~(d)可知,對(duì)于不同的兩類速度儀表指針,本文采用的方法可以有效地標(biāo)定出指針的準(zhǔn)確位置。針對(duì)圖4(e)、(f)中不同類型的轉(zhuǎn)速儀表盤指針,同樣具有較準(zhǔn)確的檢測(cè)效果,表明改進(jìn)網(wǎng)絡(luò)能有效地提取并學(xué)習(xí)儀表指針的高維特征,證明實(shí)際生產(chǎn)環(huán)境下,改進(jìn)的Faster R-CNN 算法對(duì)于儀表指針的檢測(cè)是可行和有效的。

圖4 不同類型的儀表指針檢測(cè)結(jié)果Fig.4 Different types of instrument pointer test results
為了驗(yàn)證訓(xùn)練模型的泛化能力,使用未經(jīng)過訓(xùn)練的不同類型速度儀表指針圖片作為檢測(cè)樣本,測(cè)試結(jié)果如圖5 所示。從圖5 可知,不同類型的儀表外觀差異很大,表盤顏色和指針形狀變化明顯。對(duì)于未經(jīng)過訓(xùn)練的儀表樣本,本文方法依然可以檢測(cè)并準(zhǔn)確地標(biāo)出指針的位置,表明所訓(xùn)練的模型具有較強(qiáng)的泛化能力與遷移能力。

圖5 遷移實(shí)驗(yàn)檢測(cè)結(jié)果Fig.5 Migration test results
本文所提的檢測(cè)網(wǎng)絡(luò)為兩階段網(wǎng)絡(luò),為了驗(yàn)證所提算法網(wǎng)絡(luò)性能,將本文方法與單階段檢測(cè)網(wǎng)絡(luò)YOLO-v3 進(jìn)行了比較,實(shí)驗(yàn)結(jié)果如圖6所示。

圖6 YOLO-v3 檢測(cè)結(jié)果Fig.6 YOLO-v3 test results
從YOLO-v3 實(shí)驗(yàn)結(jié)果可知,單階段網(wǎng)絡(luò)可以實(shí)現(xiàn)儀表指針檢測(cè),但是存在指針檢測(cè)區(qū)域有偏差且準(zhǔn)確率不高的問題。YOLO-v3 網(wǎng)絡(luò)將采集的特征直接用于檢測(cè),雖然降低了檢測(cè)時(shí)間,但缺少標(biāo)定框的回歸與參數(shù)學(xué)習(xí),導(dǎo)致其檢測(cè)準(zhǔn)確率相對(duì)較低,計(jì)算性能如表1 所示。

表1 單張圖片檢測(cè)時(shí)間和精度對(duì)比Table 1 Single-image detection time and accuracy comparison
進(jìn)一步驗(yàn)證本文算法的有效性,對(duì)現(xiàn)有的Hough 方法采用相同的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖7 所示。檢測(cè)時(shí)間和精度對(duì)比由表1 可見,Hough 直線檢測(cè)需要計(jì)算坐標(biāo)并將其映射到另一坐標(biāo)空間點(diǎn)的峰值,導(dǎo)致其運(yùn)算檢測(cè)時(shí)間較長,且易受到圖片中其他直線空間復(fù)雜度干擾,導(dǎo)致檢測(cè)精度低,算法魯棒性較差。

圖7 Hough 算法檢測(cè)結(jié)果Fig.7 Hough algorithm test results
將本文算法與YOLO-v3 網(wǎng)絡(luò)、經(jīng)典Hough 方法以及HOG/SVM 方法進(jìn)行對(duì)比,具體結(jié)果如表1所示。經(jīng)過計(jì)算,本文提出的改進(jìn)Faster R-CNN算法在驗(yàn)證集的平均測(cè)試精度高達(dá)92.7%,在單個(gè)GPU 上單張圖片的平均檢測(cè)時(shí)間約為0.197 s,優(yōu)于其他方法檢測(cè)精度與檢測(cè)時(shí)間,可達(dá)到實(shí)時(shí)檢測(cè)的目的。以上結(jié)果表明,改進(jìn)方法能夠?qū)崿F(xiàn)儀表指針快速檢測(cè)且滿足準(zhǔn)確度的要求,滿足指針儀表在實(shí)際檢測(cè)應(yīng)用中的需求。
為了保證模型學(xué)習(xí)性能,原始與改進(jìn)的網(wǎng)絡(luò)分別在訓(xùn)練8500 次的時(shí)候改變一次學(xué)習(xí)率,訓(xùn)練過程的各階段網(wǎng)絡(luò)損失如圖8、9 所示。圖8(a)、(b)是原始Faster R-CNN 的回歸與分類損失曲線,圖8(c)、(d)表示改進(jìn)Faster R-CNN 的回歸與分類損失曲線。圖9 是訓(xùn)練損失曲線對(duì)比。結(jié)合圖8和圖9 可知,原始的網(wǎng)絡(luò)損失出現(xiàn)波動(dòng),且下降不穩(wěn)定。改進(jìn)網(wǎng)絡(luò)能夠更快地收斂速度下降,且下降穩(wěn)定,出現(xiàn)波動(dòng)小。損失值快速下降表明改進(jìn)Faster R-CNN 網(wǎng)絡(luò)可以有效地學(xué)習(xí)儀表指針的特征,回歸損失能夠快速收斂,并且加以更正標(biāo)定框完成指針檢測(cè)。

圖8 回歸與分類損失曲線對(duì)比Fig.8 Comparison of the regression and classification loss curves

圖9 訓(xùn)練損失曲線對(duì)比Fig.9 Comparison of the training loss curves
汽車的儀表指針快速實(shí)時(shí)檢測(cè)是汽車制造行業(yè)生產(chǎn)過程自動(dòng)化與智能化迫切需要攻破的技術(shù)難題。實(shí)際生產(chǎn)環(huán)境中,人工視檢任務(wù)繁重,自動(dòng)化程度低,檢測(cè)難度較大。本文以深度學(xué)習(xí)主流框架Faster R-CNN 為基礎(chǔ),通過改進(jìn)網(wǎng)絡(luò)層架構(gòu),提高圖像特征傳遞能力,調(diào)整超參數(shù),實(shí)現(xiàn)了儀表指針的快速檢測(cè)。通過實(shí)驗(yàn)結(jié)果驗(yàn)證,單張圖片檢測(cè)時(shí)間為0.197 s,檢測(cè)精度達(dá)到92.7%,證明了所提方法的有效性和實(shí)時(shí)性。后續(xù)的遷移測(cè)試表明訓(xùn)練的模型具有良好的遷移泛化能力。