喬 成,周 磊,盧玉斌,葉 軍
(揚(yáng)州航盛科技有限公司,江蘇 揚(yáng)州 225000)
由于汽車智能化程度越來越高,車載終端設(shè)備的設(shè)計(jì)和制造變得越來越復(fù)雜,產(chǎn)品質(zhì)量把控難度增加。近些年深度學(xué)習(xí)技術(shù)的飛速發(fā)展,特別是圖像技術(shù)的廣泛應(yīng)用,為自動化測試技術(shù)指明了方向,成為眾多學(xué)者、工程師研究的重點(diǎn)。其中,在精密儀表設(shè)備制造領(lǐng)域,武華敏[1]等人將CNN神經(jīng)網(wǎng)應(yīng)用到光學(xué)設(shè)備透鏡的生產(chǎn)中,實(shí)現(xiàn)對透鏡十字像整體特征的識別與定位,提升了透鏡在圖像質(zhì)量較差狀態(tài)下得到準(zhǔn)確的十字線中心點(diǎn)能力;在醫(yī)學(xué)影像領(lǐng)域,BoNet[2]等人利用CNN模型構(gòu)建了一個端到端的自動骨齡評估網(wǎng)絡(luò),該網(wǎng)絡(luò)首先提取手掌骨X光片的關(guān)鍵骨頭區(qū)域,隨后預(yù)測各個骨頭區(qū)域成熟度,最后利用線性回歸的方法預(yù)測骨頭的年齡,其預(yù)測年齡的誤差均值在0.8歲左右,表現(xiàn)明顯優(yōu)于傳統(tǒng)的Tanner-Whitehouse[3]骨齡測試方法;Ali Narin[4]等人利用3種不同的CNN模型(ResNet 50、Inceptionv3e、Inception-ResNetV2),用于檢測新冠病毒肺炎感染者的胸部X射線,結(jié)果顯示使用ResNet 50模型構(gòu)建的分類器模型能夠達(dá)到98%的準(zhǔn)確度,該方法能夠極大地提升新冠病毒檢測的精度和效率;在自動化測試領(lǐng)域,H.Baumgartl[5]利用CNN識別鋁鑄件X射線圖像中的缺陷零件,該方法結(jié)合“轉(zhuǎn)移學(xué)習(xí)”的方法,能夠達(dá)到90%以上的檢測精度;Miao He[6]等人利用(LAMSTAR)神經(jīng)網(wǎng)絡(luò)來診斷軸承故障,該方法將歷史大數(shù)據(jù)中提取特征對電力驅(qū)動器軸承的健康狀態(tài)進(jìn)行判定,實(shí)驗(yàn)結(jié)果表明,LAMSTAR神經(jīng)網(wǎng)絡(luò)能夠在不同狀態(tài)下對軸承狀態(tài)故障進(jìn)行準(zhǔn)確分類。
本文首次將CNN深度學(xué)習(xí)圖像技術(shù)應(yīng)用到車載終端的自動化測試當(dāng)中,并且提出了一種RSPD + 透視變換矯正+YOLOv4[7]的測試方法,其中RSPD關(guān)鍵點(diǎn)檢測模型相比于BoNet[2]端到端結(jié)構(gòu)的CNN模型,能有效解決全連接層結(jié)構(gòu)中空間泛化能力差,特征圖信息丟失的問題。同時采用最新的YOLOv4目標(biāo)識別模型對車機(jī)屏幕功能控件進(jìn)識別,與其他SOTA[8-10]以及YOLOv3[11-12]模型相比較,YOLOv4能更有效平衡模型的預(yù)測精度與運(yùn)行效率。結(jié)果表明,該方法能夠有效應(yīng)用于車機(jī)自動化測試過程中。
基于深度神經(jīng)網(wǎng)絡(luò)的自動化測試技術(shù)涉及關(guān)鍵點(diǎn)檢測、圖片矯正、目標(biāo)識別和機(jī)器臂驅(qū)動4部分。將攝像頭實(shí)時采集的車機(jī)界面圖片作為輸入?yún)?shù)傳遞給測試模塊,機(jī)器臂即可自動完成相關(guān)測試操作,其整個實(shí)現(xiàn)框架如圖1所示。關(guān)鍵點(diǎn)檢測模塊利用ResNet結(jié)構(gòu)的CNN提取圖片特征信息,通過Sub-Pixel[13]進(jìn)行上采樣,將深度信息轉(zhuǎn)換為平面信息,利用DSNT進(jìn)行Heatmap熱力圖和坐標(biāo)點(diǎn)位置的轉(zhuǎn)換,求取k個關(guān)鍵點(diǎn)位置pk=(ik,jk),k=1,2,3,4分別代表4個關(guān)鍵點(diǎn)x,y軸坐標(biāo)。關(guān)鍵點(diǎn)坐標(biāo)輸入后續(xù)圖片矯正模塊,結(jié)合透視變換法,進(jìn)行車機(jī)界面圖片截取以及矯正變換,為目標(biāo)識別提供標(biāo)準(zhǔn)圖片輸入。目標(biāo)識別模塊通過YOLOv4識別圖片內(nèi)功能控件,輸出控件標(biāo)簽名稱(按鈕、對話框、滑塊、…)以及控件對應(yīng)的矩形區(qū)域坐標(biāo)[xmin,xmax,ymin,ymax]。最后,在機(jī)器臂驅(qū)動模塊中計(jì)算目標(biāo)控件矩形區(qū)域的中心點(diǎn)坐標(biāo)Cl=(xl,yl),其中l(wèi)是標(biāo)簽類別,將獲取的Cl坐標(biāo)進(jìn)行坐標(biāo)空間轉(zhuǎn)換映射到機(jī)器臂的坐標(biāo)系中,驅(qū)動機(jī)器臂運(yùn)作。

圖1 車載終端自動化測試框架
本文利用ResNet-50[12]殘差網(wǎng)絡(luò)作為關(guān)鍵點(diǎn)檢測基礎(chǔ)網(wǎng)絡(luò)模型結(jié)構(gòu),并對最后的2個全連接層進(jìn)行刪除操作,在末尾加入了5個Sub-Pixel[13]層進(jìn)行特征圖的上采樣操作,對特征圖的深度信息融合,最后加入微分空間數(shù)值轉(zhuǎn)換層(DSNT)[14]進(jìn)行關(guān)鍵坐標(biāo)點(diǎn)回歸操作,詳細(xì)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。

圖2 RSPD關(guān)鍵點(diǎn)檢測模型網(wǎng)絡(luò)結(jié)構(gòu)
圖2中Sub-Pixel層的實(shí)現(xiàn)方式為:
(1)
式中,Wl,bl為l-th卷積層的訓(xùn)練權(quán)重和偏差值;Wl為卷積過濾器,由一個四維的張量nl-1×kl×kl×nl構(gòu)成;nl-1,nl分別為該卷積過濾器輸入輸出的通道數(shù);kl為該卷積過濾器的尺寸;PS為一種周期篩選方法,該方法能夠?qū)⑻卣鲌D尺寸從H×W×r2轉(zhuǎn)換為rH×rW×C,在ResNet-50[12]輸出端接入5個Sub-Pixel層能夠?qū)⒌头直媛实奶卣鲌D轉(zhuǎn)換為高分辨率,為后面的關(guān)鍵點(diǎn)回歸提供更多特征信息。在每個Sub-Pixel后都會執(zhí)行一個二維卷積操作,該方法主要控制特征圖輸出的數(shù)量,避免其上采樣速率過快,丟失特征信息。由于本文預(yù)測的關(guān)鍵點(diǎn)為車機(jī)4個角坐標(biāo),故設(shè)計(jì)最后一層卷積層結(jié)構(gòu)為nl×kl×kl×4,輸出格式為H=[128,160,4]四通道高分辨率熱力圖,每個通道的熱力圖分別對應(yīng)一個角點(diǎn)坐標(biāo)。
目前,主流的坐標(biāo)回歸方法主要采用全連接層預(yù)測法以及熱力圖極大值法,但是前者對空間泛化能力造成極大的損害,后者又由于計(jì)算熱力圖極大值的操作而無法進(jìn)行整體微分操作,故本文采用了DSNT[14]的方法,有效克服上述缺點(diǎn),該方法采用最小損失訓(xùn)練法(MRT)[15]構(gòu)建熱力圖與坐標(biāo)點(diǎn)之間的可微分損失函數(shù),其簡要公式為:
u=DSNT(H),
(2)
式中,u為熱力圖H經(jīng)過DSNT轉(zhuǎn)換得到的坐標(biāo)信息,真實(shí)結(jié)果為4個角點(diǎn)坐標(biāo)。
由于在實(shí)際測試過程中,無法保證攝像頭準(zhǔn)確定位車機(jī)設(shè)備在視頻中心位置,導(dǎo)致車機(jī)在圖片中存在不同角度偏移情況的出現(xiàn),故本文采用透視變換[16]方法,對定位的4個角點(diǎn)利用透視變換,將截取的目標(biāo)區(qū)域統(tǒng)一轉(zhuǎn)化為240 pixel×320 pixel標(biāo)準(zhǔn)格式的矩形圖像。
透視變換是指利用透視中心、像點(diǎn)和目標(biāo)點(diǎn)三點(diǎn)共線的條件,按透視旋律定律使透視面繞透視軸旋轉(zhuǎn)某一角度,將一個平面通過一個投影矩陣投影到指定平面上。透視變換原理如圖3所示。

圖3 透視變換原理
(3)
式中,u,v是原始圖片;w等于1。通過透視變化得到的圖片坐標(biāo)x,y,其計(jì)算方式為:
(4)
在目標(biāo)識別技術(shù)領(lǐng)域,YOLO系列模型一直以識別精度高,效率高而被應(yīng)用在眾多的圖像識別工程中,本文采用的YOLOv4[7]模型在前者YOLOv3[11]基礎(chǔ)進(jìn)行了眾多改進(jìn)與優(yōu)化,使得其在相同執(zhí)行效率下能夠取得更好的識別結(jié)果。模型網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。

圖4 YOLOv4模型網(wǎng)絡(luò)結(jié)構(gòu)
由圖4可以看出,YOLOv4主要由三部分構(gòu)成:CSPDarknet53(backbone)+(SPP+PANet)+YOLOv3 Head。其中,主干特征提取網(wǎng)絡(luò)CSPDarkNet53相比于YOLOv3的DarkNet53網(wǎng)絡(luò),將卷積層的激活函數(shù)由LeakyReLU換成了Mish,并且使用了CSPnet結(jié)構(gòu)構(gòu)建resblock_body模塊,其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。

圖5 SPResNet(x)網(wǎng)絡(luò)結(jié)構(gòu)
SPP[17]網(wǎng)絡(luò)連接在CSPDarknet53最后一個特征層的卷積里,在對CSPDarknet53的最后一個特征層進(jìn)行3次卷積后,分別利用4個不同尺寸的最大池化進(jìn)行處理,最大池化的核大小分別為13×13、9×9、5×5、1×1(即無處理)。SPP[17]相比單級池化具有更強(qiáng)魯棒性,并且可以在不同尺寸上提取特征。PANet[18]網(wǎng)絡(luò)主要對圖4三個特征層的結(jié)果進(jìn)行實(shí)例分割,該方法相比傳統(tǒng)的特征金字塔的方法,增加從下到上的提取結(jié)構(gòu),能夠顯著提升模型在物體檢測和實(shí)例分割網(wǎng)絡(luò)上的性能。最后的網(wǎng)絡(luò)輸出結(jié)構(gòu)采用YOLOv3 Head的結(jié)構(gòu),完成對loss損失函數(shù)的構(gòu)建。
機(jī)器臂驅(qū)動模塊主要利用電機(jī)驅(qū)動機(jī)器人手臂,觸摸車機(jī)設(shè)備功能控件區(qū)域,完成相關(guān)功能的觸發(fā),其主要通過3個步驟完成相關(guān)的操作。第一步機(jī)器臂坐標(biāo)區(qū)域初始化,手動控制機(jī)器臂點(diǎn)擊車機(jī)屏幕4個角點(diǎn),繪制機(jī)器臂內(nèi)部坐標(biāo)系。第二步計(jì)算YOLOv4識別目標(biāo)區(qū)域的中心點(diǎn),其實(shí)現(xiàn)公式為:
(5)
式中,(xmin,ymin),(xmax,ymax)為識別目標(biāo)區(qū)域左上和右下角點(diǎn)坐標(biāo)。在計(jì)算獲得目標(biāo)識別區(qū)域的中心點(diǎn)坐標(biāo)(x′,y′)后,利用其在屏幕中寬高比,計(jì)算得到其在機(jī)器臂坐標(biāo)中的點(diǎn)擊位置(x,y),完成第三步的工作,其公式如下:
(6)
在求取機(jī)器臂觸控目標(biāo)坐標(biāo)后,發(fā)送點(diǎn)擊信號觸發(fā)點(diǎn)擊事件的完成。機(jī)器臂觸近點(diǎn)映射示意如圖6所示。

圖6 機(jī)器臂觸控點(diǎn)映射示意
本文測試數(shù)據(jù)來源于揚(yáng)州航盛測試驗(yàn)證科,圖片分辨率為480 pixel×640 pixel,其中5 000張圖片用于模型的訓(xùn)練,1 000張圖片用于測試結(jié)果分析。采用cvat工具對圖片進(jìn)行標(biāo)注,其中關(guān)鍵點(diǎn)標(biāo)注采用畫點(diǎn)法,控件標(biāo)注則采用矩形軌跡跟蹤法,以標(biāo)準(zhǔn)tfrecord格式存儲標(biāo)注數(shù)據(jù)。
3.2.1 RSPD檢測結(jié)果分析
本文關(guān)鍵點(diǎn)檢測模型主要基于谷歌tensorflow2.0框架構(gòu)建而成,并采用Adam[19]優(yōu)化算法對模型的參數(shù)進(jìn)行求導(dǎo)優(yōu)化,其中超參數(shù)學(xué)習(xí)率設(shè)置為e-3,批量數(shù)據(jù)為30,迭代次數(shù)為50,衰減因子為e-6,損失函數(shù)采用的是歐幾里德距離公式。本實(shí)驗(yàn)的硬件設(shè)備由CPU(E5-2630@2.4 GHz),顯卡(Nvidia GTX1080 8GB)。訓(xùn)練結(jié)果如圖7所示,模型測試結(jié)果均方誤差如表1所示。由表1可以看到,采用ResNet+Sub-Pixel+DSNT網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練的損失函數(shù)值明顯小于其他傳統(tǒng)的方法,其歐幾里德?lián)p失函數(shù)值遠(yuǎn)小于0.02,在測試數(shù)據(jù)階段,也獲得了平均誤差0.027 8的優(yōu)異表現(xiàn),故可以說明該方法能夠有效預(yù)測車機(jī)4個關(guān)鍵點(diǎn)角坐標(biāo)的位置。

圖7 模型訓(xùn)練損失函數(shù)

表1 模型測試結(jié)果均方誤差
3.2.2 YOLOv4目標(biāo)識別結(jié)果分析
本文目標(biāo)識別數(shù)據(jù)是通過CVAT進(jìn)行車機(jī)界面區(qū)域截取并利用透視變換矯正后獲取,其默認(rèn)標(biāo)準(zhǔn)分辨率為240 pixel×360 pixel。其損失函數(shù)由IOU[20]損失、置信度損失、分類損失三部分組成,超參數(shù)設(shè)置以及硬件配置與上文關(guān)鍵點(diǎn)檢測模塊相同,最終對定義的6個標(biāo)簽?zāi)繕?biāo)對象(按鈕、對話框、群組、滑動條、復(fù)選框、輸入框)測試結(jié)果如表2和表3所示。由測試結(jié)果可看出,在檢測精度方面, YOLOv4對單個目標(biāo)AP預(yù)測結(jié)果基本都在0.95以上,且單幀運(yùn)行之間也只有86 ms,無論是識別精度還是效率都表現(xiàn)出了極好的優(yōu)異性。

表2 目標(biāo)識別模型測試精度結(jié)果

表3 目標(biāo)識別模型測試性能結(jié)果
3.2.3 機(jī)器臂點(diǎn)擊結(jié)果分析
通過前文關(guān)鍵點(diǎn)檢測、圖像矯正和目標(biāo)檢測一系列操作后,將車機(jī)屏幕識別的目標(biāo)區(qū)域中心點(diǎn)坐標(biāo)轉(zhuǎn)換至機(jī)器臂定位的內(nèi)部坐標(biāo)系,觸發(fā)機(jī)器臂“點(diǎn)擊”動作,判斷該次動作是否觸發(fā)了其點(diǎn)擊目標(biāo)的相關(guān)功能,若成功觸發(fā)目標(biāo)控件功能,則認(rèn)為該次操作正確,否則被判定為錯誤操作。最終測試結(jié)果如表4所示。

表4 機(jī)器臂點(diǎn)觸結(jié)果分析(1 000次)
由上表所示,RSPD + 透視變換矯正+ YOLOv4的模型組合在1 000次機(jī)器臂點(diǎn)擊測試中獲得的準(zhǔn)確率最高,達(dá)到了97.3%,明顯優(yōu)于其他組合,證明其在實(shí)際生產(chǎn)操作中具有極高的可靠性。
本文基于CNN技術(shù),提出了一種RSPD + 透視變換矯正+YOLOv4的車載終端自動化測試方法,該方法利用深度學(xué)習(xí)模型檢測識別車機(jī)屏幕相關(guān)功能控件位置坐標(biāo),控制機(jī)器臂完成對控件區(qū)域的點(diǎn)擊測試操作,其測試結(jié)果取得了97.3%準(zhǔn)確率。雖然在實(shí)際應(yīng)用中,該技術(shù)取得了不錯的效果,但是仍然存在不足,主要問題在于當(dāng)前測試環(huán)境處于理想狀態(tài)下,如何提升模型的魯棒性,使其在復(fù)雜環(huán)境下仍能保持較高的準(zhǔn)確率,成為接下來的研究重點(diǎn)。