劉志勇 周 曼 趙浴陽 楊魯江 施方展 戴玲玲
(浙江中控技術(shù)股份有限公司)
流程工業(yè)現(xiàn)場(chǎng)存在不少需要圖像分類的場(chǎng)景,如傳送帶載料檢測(cè)、反應(yīng)釜中反應(yīng)物料位檢測(cè)等。 在這些圖像分類過程中,一個(gè)重要的問題是如何確保訓(xùn)練出的模型能夠正確學(xué)習(xí)不同類型物體的不同特征。 常常會(huì)發(fā)生因?yàn)樗x用的模型不能學(xué)習(xí)到圖像中的特征部位,導(dǎo)致模型的泛化性能難以達(dá)到應(yīng)用要求。
基于Keras 的卷積神經(jīng)網(wǎng)絡(luò)可視化[1]方法可以用來確定圖像的哪部分對(duì)模型結(jié)果起到了關(guān)鍵作用,同時(shí)定位圖像中物體的位置,從而有助于了解哪些特征正在指導(dǎo)模型對(duì)圖像進(jìn)行分類決策。 筆者對(duì)流程工業(yè)現(xiàn)場(chǎng)的圖像數(shù)據(jù)進(jìn)行重點(diǎn)類激活熱力圖可視化處理,在獲得正確的分類關(guān)注位置后,再利用AlexNet、VGG 等基礎(chǔ)模型進(jìn)行遷移學(xué)習(xí)[2]訓(xùn)練,最終對(duì)圖像進(jìn)行合理分類,以期取得較好的識(shí)別效果。
卷 積 神 經(jīng) 網(wǎng) 絡(luò)[3,4](Convolutional Neural Network,CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),它通過卷積、池化及激活等操作,能夠較好地學(xué)習(xí)空間上關(guān)聯(lián)的特征。 然而,深度卷積神經(jīng)網(wǎng)絡(luò)一直被人們稱為“黑盒子”,它沒有辦法通過文字被形象清楚地描述出來。 直到2013 年,紐約大學(xué)的Zeiler M D 和Fergus R 用可視化的方法揭示出了CNN 的每一層識(shí)別出了什么特征[3],也揭開了CNN 的神秘面紗。
基于Keras 的卷積神經(jīng)網(wǎng)絡(luò)可視化通常有3種方法:卷積核輸出的可視化、卷積核的可視化和類激活熱力圖可視化。 筆者將重點(diǎn)介紹類激活熱力圖可視化,并將它應(yīng)用于流程工業(yè)現(xiàn)場(chǎng)圖像的分類識(shí)別。
卷積核輸出的可視化[1]即可視化卷積操作后的結(jié)果,將卷積核經(jīng)過激活之后的結(jié)果進(jìn)行可視化,能夠看到圖像經(jīng)過卷積之后的結(jié)果,幫助理解卷積核的作用。
卷積核的可視化[1]即對(duì)卷積核本身進(jìn)行可視化,對(duì)卷積核學(xué)習(xí)到的行為進(jìn)行解釋,幫助理解卷積核是如何感受圖像的。
類激活熱力圖(也叫熱度圖)可視化[1,3]是通過類激活熱力圖來了解圖像分類問題中圖像哪些部分起到了關(guān)鍵作用,同時(shí)可以定位圖像中物體的位置。 有助于了解一張圖像的哪一部分讓卷積神經(jīng)網(wǎng)絡(luò)做出了最終的分類決策。 這有助于對(duì)卷積神經(jīng)網(wǎng)絡(luò)的決策過程進(jìn)行調(diào)試,特別是在分類錯(cuò)誤的情況下效果更好。
特征可視化[5]與卷積核輸出的可視化方法類似,但是輸出的不再是卷積層的激活值,而是使用反卷積[6]與反池化來可視化輸入圖像的激活特征。
類激活熱力圖可視化是根據(jù)激活圖的梯度或它們對(duì)輸出的貢獻(xiàn)來權(quán)衡激活圖,對(duì)輸入圖像生成類激活熱力圖,從而表示出每個(gè)位置對(duì)該類別的重要程度。 類激活熱力圖有助于了解一張圖片的哪個(gè)部分促使卷積神經(jīng)網(wǎng)絡(luò)做出最終的決策,還可以定位圖像中特定的目標(biāo)度加權(quán)分類激活映射(Grad-CAM)。
在圖像分類問題中,假設(shè)訓(xùn)練網(wǎng)絡(luò)將一張圖片識(shí)別成某物體的概率是0.9, 想了解最后一層的卷積層對(duì)0.9 概率的貢獻(xiàn)是多少。例如,假設(shè)最后一層卷積層有512 個(gè)卷積核,想了解這512 個(gè)卷積核對(duì)該圖片是此物體分別投了幾票。 投票越多的卷積核,就越確信圖片是此物體,因?yàn)樗鼈兲崛〉降奶卣髭呄蛟撐矬w的實(shí)際特征。
如圖1 所示, 做類激活熱力圖可視化時(shí),首先提取類對(duì)應(yīng)最后一層卷積層的特征映射,獲取最終卷積層的輸出要素圖,然后提取卷積層參數(shù)(包括卷積核、梯度等信息),再將全局平均池化應(yīng)用于梯度對(duì)輸入圖像進(jìn)行卷積,此后將要素圖與相應(yīng)的池化梯度相乘,即使用相對(duì)于特征映射的輸出的梯度對(duì)每個(gè)濾波器進(jìn)行加權(quán)(乘),最后將得到的結(jié)果進(jìn)行歸一化處理后輸出類激活熱力圖,這就完成了類激活熱力圖可視化的整個(gè)過程。
圖1 類激活熱力圖可視化步驟
以某制藥廠生產(chǎn)過程為應(yīng)用案例,采集其中丙酮回收釜中反應(yīng)物生產(chǎn)過程的視頻,將視頻每秒提取一張圖片, 得到原始圖像, 再通過基于Keras 的卷積神經(jīng)網(wǎng)絡(luò)可視化方法中的類激活熱力圖可視化技術(shù),來確定圖像分類問題中圖像哪些部分起到了關(guān)鍵作用,同時(shí)定位圖像中物體的位置,以助于了解哪些特征對(duì)模型的圖像分類起到了決策作用,在正確獲取訓(xùn)練模型的關(guān)注位置后,再開展后續(xù)的模型訓(xùn)練并進(jìn)行正確的圖片分類。
反應(yīng)過程中主要關(guān)注反應(yīng)釜中反應(yīng)物的料位高度,一開始反應(yīng)釜為空狀態(tài),開始反應(yīng)后,慢慢往釜內(nèi)注入反應(yīng)物, 直到反應(yīng)物漫過下槳葉,啟動(dòng)槳葉攪拌,繼續(xù)往釜內(nèi)注入反應(yīng)物直到漫過上槳葉后顯示狀態(tài)為滿,繼續(xù)攪拌指定時(shí)間后開始排出反應(yīng)后的物料, 直到全部反應(yīng)物被排出。整個(gè)反應(yīng)過程按現(xiàn)場(chǎng)需求分為3 個(gè)狀態(tài):第1 個(gè)狀態(tài)為空狀態(tài), 即反應(yīng)釜內(nèi)反應(yīng)物未漫過下槳葉;第2 個(gè)狀態(tài)為攪拌中狀態(tài),即反應(yīng)物料位漫過下槳葉但沒有漫過上槳葉;第3 個(gè)狀態(tài)為滿狀態(tài),即反應(yīng)物漫過上槳葉。
將采集到的視頻提取為圖片信息后進(jìn)行預(yù)處理(包括采用Sobel 算子進(jìn)行邊緣檢測(cè))并采用基于Keras 的卷積神經(jīng)網(wǎng)絡(luò)可視化進(jìn)行類激活熱力圖可視化, 將Sobel 算子處理結(jié)果和類激活熱力圖可視化結(jié)果相疊加并輸出結(jié)果圖片。
采集到的視頻圖像如圖2 所示, 其中圖2a為原始視頻中的截圖,圖2b 為Sobel 算子疊加上類激活熱力圖可視化后的結(jié)果,但是由于原圖中的時(shí)間標(biāo)簽每秒都在變化,因此被誤認(rèn)為是關(guān)注重點(diǎn),為了避免時(shí)間戳的干擾,抹去原圖中該位置的信息, 然后再采用同樣的方法獲得了圖2c,可以看出,圖中熱度最高(紅色)的區(qū)域這正是關(guān)注的重點(diǎn)。
針對(duì)現(xiàn)場(chǎng)反應(yīng)釜內(nèi)不同狀態(tài)的訓(xùn)練數(shù)據(jù)集視頻進(jìn)行同樣的可視化分析,可以得到不同狀態(tài)下模型對(duì)輸入圖像所關(guān)注的重點(diǎn)區(qū)域位置,結(jié)合現(xiàn)場(chǎng)人員經(jīng)驗(yàn),就可以判別出模型的關(guān)注重點(diǎn)是否具有合理性。
圖2 丙酮回收釜料位檢測(cè)視頻截圖與可視化結(jié)果
圖3 為反應(yīng)釜中物料未漫過下槳葉時(shí)的視頻截圖和可視化結(jié)果,可以看到模型對(duì)圖中下槳葉部位予以了最高的關(guān)注熱度,雖然對(duì)左上與右邊也予以了一定的關(guān)注熱度,但是對(duì)于中心區(qū)域的判斷并無太大干擾。 總體而言, 判斷依據(jù)合理。
圖3 未漫過下槳葉時(shí)的第1 狀態(tài)原圖和可視化結(jié)果
圖4 為反應(yīng)釜中物料剛漫過下槳葉時(shí)的視頻截圖和可視化結(jié)果,可以看到模型的關(guān)注熱度集中在下槳葉和釜底一小部分周圍物料形態(tài)特征。
圖4 剛漫過下槳葉后的第2 狀態(tài)原圖和可視化結(jié)果
圖5 為反應(yīng)釜中物料漫過下槳葉但未漫過上槳葉時(shí)的視頻截圖和可視化結(jié)果,可以看到模型的關(guān)注熱度范圍開始由圖3 關(guān)注的區(qū)域逐漸往上擴(kuò)大。從槳葉位置轉(zhuǎn)移到釜內(nèi)上半部分物料的形態(tài)特征上來。
圖6 為當(dāng)反應(yīng)釜中的物料剛漫過上槳葉時(shí)的視頻截圖和可視化結(jié)果,模型的關(guān)注熱度已經(jīng)從槳葉位置轉(zhuǎn)移到釜內(nèi)上半部分物料的形態(tài)特征上來。
圖6 剛漫過上槳葉時(shí)的第3 狀態(tài)原圖和可視化結(jié)果
通過對(duì)可視化結(jié)果進(jìn)行對(duì)比分析,可以判斷模型對(duì)不同狀態(tài)圖像特征的提取判斷是否相對(duì)合理,從而提高識(shí)別模型應(yīng)用于實(shí)際生產(chǎn)的可靠度。
為了提高模型的泛化性能,一般情況下在訓(xùn)練前需要對(duì)現(xiàn)有圖像數(shù)據(jù)集采用旋轉(zhuǎn)、 平移、裁剪及縮放等方式進(jìn)行增廣。 模型訓(xùn)練完成之后,通過基于Keras 的卷積神經(jīng)網(wǎng)絡(luò)可視化方法進(jìn)行類激活熱力圖計(jì)算,將熱力圖計(jì)算結(jié)果疊加邊緣檢測(cè)計(jì)算結(jié)果后生成可視化圖片。
在本案例中,對(duì)基于數(shù)據(jù)增廣后得到的192 180 張圖片,采用AlexNet 為基礎(chǔ)模型進(jìn)行遷移訓(xùn)練。 在數(shù)據(jù)集方面,隨機(jī)選擇了80%作為訓(xùn)練集,余下的20%作為測(cè)試集。 通過該方法開發(fā)的識(shí)別模型在最終測(cè)試集上達(dá)到了98.6%的正確率,符合工業(yè)現(xiàn)場(chǎng)實(shí)際應(yīng)用的需求。
卷積神經(jīng)網(wǎng)絡(luò)的可視化技術(shù)在傳統(tǒng)機(jī)器視覺的圖像分類中起著非常重要的作用,它可以確保模型學(xué)習(xí)不同類型物體的正確特征,幫助分析確定圖像分類問題中圖像的哪些部分起著關(guān)鍵性的作用,同時(shí)還可以定位圖像中關(guān)鍵物體的位置,從而確定在圖像分類模型中至關(guān)重要的數(shù)據(jù)特征, 并為后續(xù)模型的進(jìn)一步訓(xùn)練提供選擇依據(jù)。 筆者通過基于Keras 的卷積神經(jīng)網(wǎng)絡(luò)可視化方法對(duì)工業(yè)現(xiàn)場(chǎng)的圖像數(shù)據(jù)進(jìn)行可視化處理,在得到正確的關(guān)注位置后,再進(jìn)一步利用深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行參數(shù)微調(diào)訓(xùn)練,取得了良好的現(xiàn)場(chǎng)應(yīng)用識(shí)別效果,在流程工業(yè)自動(dòng)化生產(chǎn)中具有一定的推廣應(yīng)用價(jià)值。