陳茜,李鋒,靳青梅,宋潔,王晉安
(西北機(jī)電工程研究所,陜西 咸陽(yáng) 712099)
人機(jī)工程在武器裝備領(lǐng)域的應(yīng)用隨著裝備集成度和面板操作復(fù)雜程度的提高而與日俱增。這對(duì)裝備研發(fā)、制造和維護(hù)來講需要更加關(guān)注裝備的質(zhì)量監(jiān)控。目前的裝備運(yùn)行檢修、狀態(tài)辨識(shí)方法除了少數(shù)采用數(shù)據(jù)驅(qū)動(dòng)、解析模型和計(jì)算機(jī)仿真的方法外,大部分還處于人工篩選的階段,且通過肉眼有效監(jiān)測(cè)結(jié)果不理想,給裝備狀態(tài)辨識(shí)帶來了極大的挑戰(zhàn)。筆者從某型裝備人機(jī)交互面板故障篩選場(chǎng)景出發(fā),通過采集原始圖像、處理、分析、識(shí)別、測(cè)試,進(jìn)而實(shí)現(xiàn)了從高效識(shí)別和識(shí)別器正確性檢測(cè)的裝備面板故障檢測(cè)流程。
基于神經(jīng)網(wǎng)絡(luò)[1]機(jī)器學(xué)習(xí)的深度學(xué)習(xí)是目前面向自動(dòng)識(shí)別技術(shù)的熱點(diǎn)方向之一。其中計(jì)算機(jī)視覺、自認(rèn)語(yǔ)言(Natural Language Process,NLP)和語(yǔ)音識(shí)別(Speech Recognition)[1],被人們應(yīng)用于各種工程背景當(dāng)中。筆者通過使用通道注意力機(jī)制改進(jìn)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)針對(duì)裝備面板故障分類的圖像分類器,同時(shí)通過研究蛻變測(cè)試技術(shù)[4](Metamorphic Testing,MT)解決傳統(tǒng)測(cè)試方法驗(yàn)證結(jié)果置信度不高[2],測(cè)試面臨的oracle問題[3]。結(jié)合實(shí)際背景,筆者展開如下研究工作:分析裝備面板故障檢測(cè)現(xiàn)狀,總結(jié)被測(cè)裝備面板控件特征及目前識(shí)別方式不足;基于實(shí)際環(huán)境構(gòu)建數(shù)據(jù)集,為運(yùn)用機(jī)器學(xué)習(xí)理論解決裝備面板故障識(shí)別;基于卷積神經(jīng)網(wǎng)絡(luò)等算法在裝備狀態(tài)識(shí)別中的技術(shù)實(shí)現(xiàn)與優(yōu)化研究;結(jié)合所實(shí)現(xiàn)分類器運(yùn)用蛻變測(cè)試?yán)碚揫5]驗(yàn)證合理性;針對(duì)不足對(duì)后續(xù)技術(shù)研究工作提出設(shè)想。
要實(shí)現(xiàn)某型裝備人機(jī)交互面板的圖像分類,首先將需要進(jìn)行故障檢測(cè)的裝備圖片信號(hào)源輸入預(yù)處理;然后識(shí)別出輸入圖像的邊界,按不同功能模塊進(jìn)行劃分;最后對(duì)劃分好的區(qū)域狀態(tài)進(jìn)行辨識(shí)并給出是否故障的結(jié)論以及當(dāng)出現(xiàn)故障時(shí)具體出現(xiàn)的定位信息。
1.1.1 裝備人機(jī)工程裝置圖像分割
針對(duì)人機(jī)交互面板控件數(shù)量多、類別雜,形狀多樣、大小不一等特點(diǎn)。應(yīng)用傳統(tǒng)的邊緣檢測(cè)會(huì)存在信息缺失風(fēng)險(xiǎn),故采用GrabCut方法對(duì)裝備進(jìn)行圖像分割,效果如圖1所示。
1.1.2 人機(jī)工程裝置邊界識(shí)別
為了加快故障檢測(cè)速度。通過設(shè)置固定的標(biāo)簽來進(jìn)行邊界識(shí)別,以提高機(jī)器學(xué)習(xí)邊界特征的效率。同時(shí)通過標(biāo)簽具有共用性的特點(diǎn)建立識(shí)別器,提高其可移植性。
1.1.3 裝備人機(jī)工程裝置狀態(tài)識(shí)別
狀態(tài)識(shí)別過程依據(jù)當(dāng)前所針對(duì)控件類別其準(zhǔn)則也有所不同。以按鈕控件為例,針對(duì)每一個(gè)控件劃分的區(qū)域,建立每個(gè)控件的數(shù)據(jù)集,利用卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,對(duì)每個(gè)圖像控件的狀態(tài)進(jìn)行識(shí)別,將結(jié)果存至結(jié)構(gòu)體數(shù)組中。結(jié)構(gòu)體widgetState由兩部分組成,stateValue為當(dāng)前卷積網(wǎng)絡(luò)分類值,imgFile為當(dāng)前識(shí)別的圖像存儲(chǔ)路徑。
1.1.4 面板故障狀態(tài)判斷
面板故障結(jié)論包含兩個(gè)層面:第一個(gè)層面是當(dāng)前面板整體是否存在故障;第二個(gè)層面是當(dāng)?shù)谝粚用娲嬖诠收虾?對(duì)存在故障面板控件的定位。程序結(jié)構(gòu)體數(shù)組widgetState來存儲(chǔ)面板信息,通過對(duì)widgetState數(shù)組中的widgetState.stateValue求和,若值大于0表示存在故障;等于0則表示正常。當(dāng)存在故障時(shí),該下標(biāo)對(duì)應(yīng)的被識(shí)別圖形會(huì)被顯示出來,提示該部件出現(xiàn)故障。
1.2.1 數(shù)據(jù)集構(gòu)建
本文所使用的數(shù)據(jù)集命名為CTK,是針對(duì)某型裝備多個(gè)操作面板進(jìn)行圖像采集和預(yù)先處理后得到。源圖像共326張三通道彩色圖,162張故障圖和164張正常圖。具體分成14個(gè)種類,如表1所示。
表1 分類器網(wǎng)絡(luò)結(jié)構(gòu)
該裝備面板圖形并沒有成熟的開源數(shù)據(jù)集。采集到的原圖通過圖像旋轉(zhuǎn)、高斯模糊等,構(gòu)建了包含3 500張面板控件樣本的訓(xùn)練集(命名為TrainData)和1 350張測(cè)試集(命名為TestData),其中包含部分分類及每種類別圖像如圖2所示。
1.2.2 卷積網(wǎng)絡(luò)結(jié)構(gòu)搭建
通過對(duì)裝備人機(jī)交互面板圖像特征的分析,構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),命名為SCNN。該網(wǎng)絡(luò)的輸入層是一個(gè)經(jīng)過灰度化[6]處理的一維圖像,網(wǎng)絡(luò)結(jié)構(gòu)的輸入是64×64的灰度圖,卷積核采取5×5大小,網(wǎng)絡(luò)深度12,特征圖的變化為16-32-64-64-128,輸出為由14個(gè)神經(jīng)單元向量,分別對(duì)應(yīng)14種裝備人機(jī)交互面板控件類型(7種控件×2個(gè)狀態(tài))。
使用自建數(shù)據(jù)集CTK訓(xùn)練網(wǎng)絡(luò)SCNN,得到的混淆矩陣[7]如圖3所示,可知網(wǎng)絡(luò)結(jié)構(gòu)針對(duì)其中fillin-switch類和indicatorlight類的學(xué)習(xí)效果沒有達(dá)到預(yù)期。因此,引入CA通道注意力機(jī)制[7]來增加網(wǎng)絡(luò)對(duì)于未劃分成功的兩類控件圖形的學(xué)習(xí)[8]。
經(jīng)過改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)如圖4所示,g表示全連接層獲取的全局參數(shù)特征信息,l1,l2,l3表示中間層獲取的局部參數(shù)特征信息,£1,£2,£3表示通過注意力調(diào)整的權(quán)重參數(shù)。主要的變化有兩個(gè)方面:通過使用兩個(gè)低維度卷積層3×3大小代替一個(gè)高維度5×5卷積層的操作,可以保證在維持較大感受野的前提下縮減卷積所需的計(jì)算時(shí)間[8];同時(shí)在網(wǎng)絡(luò)中加入注意力機(jī)制[9],選用調(diào)取部分中間卷積層的局部特征和全連接層的全局特征進(jìn)行融合,構(gòu)建注意力特征[10]作為最后的分類特征,并與全連接層FC2-14進(jìn)行級(jí)聯(lián),實(shí)現(xiàn)對(duì)裝備面板圖像識(shí)別精度的提升。
筆者將構(gòu)建的SCNN網(wǎng)絡(luò)結(jié)構(gòu)與目前識(shí)別效率較好的網(wǎng)絡(luò)ResNet-50、VGG-19,采用遷移學(xué)習(xí)的方式對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。針對(duì)上述2種公開網(wǎng)絡(luò)結(jié)構(gòu),使用CTK測(cè)試集和訓(xùn)練集以1∶3的比例獲取,使用MATLAB2019B深度學(xué)習(xí)工具箱、TITAN X GPU進(jìn)行遷移學(xué)習(xí)。網(wǎng)絡(luò)結(jié)構(gòu)借鑒已經(jīng)在開源網(wǎng)絡(luò)上訓(xùn)練好的權(quán)重參數(shù),對(duì)上述3種網(wǎng)絡(luò)結(jié)構(gòu)的全連接層、softmax層和輸出層進(jìn)行替換,并將全連接層設(shè)置為與新數(shù)據(jù)種類相同。圖5為VGG19進(jìn)行網(wǎng)絡(luò)模型替換的前后對(duì)比,幾種網(wǎng)絡(luò)訓(xùn)練相關(guān)參數(shù)與結(jié)果如表2所示。
表2 各分類器參數(shù)結(jié)果
將準(zhǔn)備好的測(cè)試集合(從測(cè)試樣本集中選取350張圖片進(jìn)行測(cè)試),具體分類實(shí)驗(yàn)精度達(dá)到97.19%;并且相比于其他對(duì)比網(wǎng)絡(luò)在占用空間和精度的雙重考量下表現(xiàn)更良好。
由于卷積神經(jīng)網(wǎng)絡(luò)的輸入和輸出并不存在一一對(duì)應(yīng)的關(guān)系,因此使用傳統(tǒng)黑盒測(cè)試思想設(shè)計(jì)的測(cè)試用例得出的結(jié)果置信度并不高。筆者使用SCNN網(wǎng)絡(luò)來解決裝備人機(jī)交互面板圖像特征的分析問題。
蛻變測(cè)試是基于此類問題提出來的一個(gè)應(yīng)對(duì)措施。依據(jù)網(wǎng)絡(luò)特點(diǎn)設(shè)計(jì)圖6所示的蛻變測(cè)試[11]方法,驗(yàn)證筆者提出的分類器識(shí)別技術(shù)是否有效。構(gòu)造的蛻變關(guān)系一般來源算法本身的結(jié)構(gòu)特性、相關(guān)測(cè)試程序的經(jīng)驗(yàn)[12]。
神經(jīng)網(wǎng)絡(luò)龐大的訓(xùn)練集以及黑盒特性[13]導(dǎo)致測(cè)試人員很難去構(gòu)建完備的測(cè)試結(jié)果參照物[14]。蛻變關(guān)系的好壞直接決定蛻變關(guān)系的測(cè)試效率[15]。目前對(duì)于蛻變關(guān)系的識(shí)別大多從機(jī)器學(xué)習(xí)程序的算法性質(zhì)出發(fā),且無法找到待測(cè)試對(duì)象所有的蛻變關(guān)系,所以找到合適數(shù)量且有效的蛻變測(cè)試關(guān)系是研究的重點(diǎn)難點(diǎn)[15]。Liu等[16]在研究中發(fā)現(xiàn),一些少量的蛻變測(cè)試關(guān)系檢測(cè)被測(cè)件的能力與目前通用測(cè)試技術(shù)的測(cè)試能力相當(dāng)接近。還發(fā)現(xiàn)3~6個(gè)這樣的蛻變關(guān)系可以平均檢測(cè)出實(shí)際應(yīng)用中90%可能出現(xiàn)的故障[17]。目前圖像領(lǐng)域的蛻變關(guān)系構(gòu)建研究尚處于起步階段且蛻變關(guān)系缺乏適用性。裝備面板圖像的采集過程中,得到的圖片往往存在模糊、旋轉(zhuǎn)、遮擋、曝光不足、過度曝光等問題。以這幾個(gè)方面為出發(fā)點(diǎn)探索出3種蛻變關(guān)系應(yīng)用于SCNN結(jié)構(gòu)的檢測(cè)和預(yù)測(cè)之中。
2.1.1 MR-1關(guān)系構(gòu)造
MR-1關(guān)系的構(gòu)造基于圖像旋轉(zhuǎn)變化。實(shí)驗(yàn)選取SCNN和數(shù)據(jù)集CTK,最大步數(shù)5 000。使圖像旋轉(zhuǎn)15°,30°,45°,60°,90°,置信水平為90%。重復(fù)測(cè)試10次防止實(shí)驗(yàn)誤差和干擾因素,每次隨機(jī)抽取500張圖片樣本進(jìn)行測(cè)試,分類器識(shí)別效率如圖7所示。
實(shí)驗(yàn)結(jié)果表明圖像旋轉(zhuǎn)確實(shí)影響SCNN識(shí)別機(jī)制,圖像在旋轉(zhuǎn)中會(huì)對(duì)局部依存性產(chǎn)生破壞[18]。經(jīng)分析,實(shí)驗(yàn)測(cè)試集合的數(shù)據(jù)圖像均為正向朝上,根據(jù)文獻(xiàn)[11]可得,經(jīng)過旋轉(zhuǎn)變化的圖像損失函數(shù)的收斂點(diǎn)相近。由此構(gòu)建MR-1:
(1)
式中:X1表示源測(cè)試集;Xchange1表示旋轉(zhuǎn)變化衍生測(cè)試集;f(X1,w1,b1)表示輸入X1時(shí)SCNN損失函數(shù)的收斂點(diǎn);f(Xchange1,w1,b1)表示輸入Xchange1時(shí)SCNN損失函數(shù)的收斂點(diǎn)。
2.1.2 MR-2關(guān)系構(gòu)造
假設(shè)微量的模糊變化不會(huì)對(duì)SCNN判定結(jié)果造成改變,當(dāng)模糊超過一定程度會(huì)對(duì)SCNN分類結(jié)果產(chǎn)生較大影響。這些假設(shè)成立的先決條件是待識(shí)別控件圖片背景色單一。選取SCNN和數(shù)據(jù)集CTK,最大步數(shù)5 000,設(shè)定高斯模糊系數(shù)1.8,模糊半徑為1、2、3、5、8和10,置信水平為90%。重復(fù)測(cè)試10次防止實(shí)驗(yàn)誤差和干擾因素,每次隨機(jī)抽取500張圖片樣本,分類器識(shí)別效率如圖8所示。
由實(shí)驗(yàn)結(jié)果可知,模糊變化對(duì)SCNN識(shí)別機(jī)制有一定影響能力。低模糊半徑下衍生測(cè)試用例[19]Xchange對(duì)SCNN識(shí)別機(jī)制影響較少,高模糊半徑下分類器識(shí)別機(jī)制已經(jīng)遭到破壞。由此構(gòu)建MR-2:
(2)
式中:X2表示源測(cè)試集;Xchange2表示低模糊半徑變化衍生測(cè)試集;f(X2,w2,b2)表示輸入X2時(shí)SCNN的輸出;f(Xchange2,w2,b2)表示輸入Xchange2時(shí)SCNN的輸出。
2.1.3 MR-3關(guān)系構(gòu)造
MR-3構(gòu)造是基于圖像的遮擋變化。實(shí)驗(yàn)選取SCNN網(wǎng)絡(luò)和數(shù)據(jù)集CTK,最大步數(shù)5 000。使用遮擋比例10%、20%、30%、50%及60%,置信水平為90%。重復(fù)測(cè)試10次防止實(shí)驗(yàn)誤差和干擾因素,每次隨機(jī)抽取500張圖片樣本,得到的分類器識(shí)別效率如圖9所示。
由圖9可知,10%遮擋比例對(duì)SCNN識(shí)別機(jī)制無影響,當(dāng)遮擋比例上升,對(duì)SCNN的識(shí)別機(jī)制產(chǎn)生影響[19]。由此構(gòu)建MR-3:
(3)
式中:X3表示源測(cè)試集;Xchange3表示少量遮擋變化產(chǎn)生的衍生測(cè)試集;f(X3,w3,b3)表示輸入X3時(shí)SCNN的輸出;f(Xchange3,w3,b3)表示輸入Xchange3時(shí)SCNN的輸出。
使用Mutpy[20]工具構(gòu)造變異體M1-M9,如表3所示,這些變異體都是在SCNN網(wǎng)絡(luò)結(jié)構(gòu)程序編寫過程中可能產(chǎn)生的常見錯(cuò)誤。通過蛻變關(guān)系MR-1、MR-2、MR-3生成的測(cè)試數(shù)據(jù)依次在表3生成的變異體網(wǎng)絡(luò)中進(jìn)行訓(xùn)練測(cè)試,然后計(jì)算測(cè)試損失數(shù)據(jù)的最大偏差,大于0.5則認(rèn)為蛻變關(guān)系殺死變異體[21],由上述步驟得到成功殺死變異體的蛻變關(guān)系過程損失數(shù)據(jù)如表4~6所示。3種蛻變關(guān)系執(zhí)行變異體測(cè)試的結(jié)果如表7所示,其中√表示變異體被殺死。從表7中可以看到MR-1殺死了M8,MR-2殺死了M4、M6、M8這3個(gè)變異體,MR-3殺死了M1變異體,從而確定了尋找的3種蛻變測(cè)試關(guān)系的有效性[22]。
表3 變異體構(gòu)造列表
表4 MR-1殺死M8過程損失數(shù)值表
表5 MR-3殺死M1過程損失數(shù)值表
表6 MR-2殺死M4、M6、M8過程損失數(shù)值表
表7 蛻變關(guān)系執(zhí)行變異體測(cè)試結(jié)果
筆者基于武器裝備人機(jī)工程背景,借助機(jī)器學(xué)習(xí)技術(shù)構(gòu)建了合理高效的SCNN分類器,經(jīng)實(shí)驗(yàn)驗(yàn)證其精度保持在97.19%,運(yùn)行內(nèi)存占用率占目前主流網(wǎng)絡(luò)結(jié)構(gòu)的37%以下;并通過尋找到的蛻變測(cè)試關(guān)系驗(yàn)證了筆者提出的分類器識(shí)別技術(shù)的有效性。此外,針對(duì)本文應(yīng)用技術(shù)的目前發(fā)展趨勢(shì),計(jì)劃就以下兩個(gè)方面開展后續(xù)應(yīng)用技術(shù)研究:
1)目前蛻變測(cè)試關(guān)系僅可有效殺死一定的程序變異體,但蛻變關(guān)系建立與驗(yàn)證、變異體構(gòu)造等還停留在從無到有的階段。后續(xù)應(yīng)對(duì)單個(gè)蛻變關(guān)系對(duì)整個(gè)待測(cè)程序的覆蓋率等方面繼續(xù)研究,因?yàn)橹挥忻鞔_了此類問題,才能提高蛻變關(guān)系的精準(zhǔn)性。
2)目前的分類器搭建大多基于監(jiān)督學(xué)習(xí)模式,該模式存在過度依賴訓(xùn)練數(shù)據(jù)的構(gòu)造。且對(duì)于一些無法事先獲得大量準(zhǔn)確訓(xùn)練數(shù)據(jù)集的問題,會(huì)影響其結(jié)果準(zhǔn)確性和充分性。因此需要對(duì)無監(jiān)督學(xué)習(xí)方式神經(jīng)網(wǎng)絡(luò)技術(shù)開展更多的研究,以提高分類器的適應(yīng)性和應(yīng)用場(chǎng)景。