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

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

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

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

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

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

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

圖7 模型訓練損失函數

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

表2 目標識別模型測試精度結果

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

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