張然 湯全武 李明源 劉東昌 解波
關(guān)鍵詞: 安檢;危險液體;X射線圖像;改進的卷積神經(jīng)網(wǎng)絡(luò);圖像識別
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)08-0029-05
0 引言
公共場所與交通工具的安檢中,液體安檢一直是較為困難的安檢內(nèi)容。大多數(shù)安檢關(guān)卡,在發(fā)現(xiàn)包裹中有液體物質(zhì)時,還需要打開包裹對液體進行單獨檢查、耗時耗力,效率低下。南迪娜等人[1]對42種危險液體使用785nm激光器的拉曼光譜儀建立檢測光譜,使用線性判別分析模型區(qū)分出水、汽油、其他有毒液體;張濤等人[2]使用拉曼光譜定性定量分析了兩種或三種危險液體混合物的各成分及含量;王君玲等人[3]通過實驗研究表明,兩個毛細管X光半透鏡組成的準直系統(tǒng),能顯著地提高光源的X射線利用效率,提高散射能譜的分辨率等;胡紫薇等人[4]提出了一種理想狀態(tài)下基于雙能X射線安檢機的液體識別方法,解決了難以提取有效原子序數(shù)實現(xiàn)液體分類識別的問題;鐘煜等人[5]固定散射角θ,采用連續(xù)波長的X射線對3類純液體物質(zhì)(伯醇、苯同系物與氯代甲烷)進行了能量色散X射線散射實驗,能量色散X射線散射方法有可能作為非破壞性、非接觸式檢測與識別隱藏液體物質(zhì)的有效手段;但是在實際應(yīng)用中,還存在一些現(xiàn)實問題,例如,拉曼光譜儀檢測需要單獨取出液體進行檢測,過程步驟較為煩瑣;毛細管X光半透鏡對液體體積變化敏感,還需要結(jié)合因子分析等數(shù)據(jù)處理算法,較為煩瑣,影響處理速度;基于雙能X射線安檢機的液體識別方法并未給出算法的處理時間,對于厚度不均勻的容器可能出現(xiàn)誤檢和漏檢情況;能量色散X射線散射方法還需要建立目標液體X射線散射特征數(shù)據(jù)庫等問題。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是深度學習的重要算法之一,在圖像處理和模式識別方面發(fā)揮了重要作用[6-7]。本文首先對92 號汽油、甲醇與硝基甲烷混合液、75%酒精、食用油、水共5種液體分別用玻璃、金屬、塑料、陶瓷共4種容器盛裝后進行X射線圖像獲取,對樣本圖像進行旋轉(zhuǎn)、鏡像、平移等操作增強樣本平衡性、現(xiàn)實性,再對樣本圖像分割、前景獲取等處理后,試圖通過6類特征值的支持向量機(Support Vector Machine,SVM)網(wǎng)絡(luò)、改進的32特征圖像的基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)、改進的2048特征圖像的ResNet-50網(wǎng)絡(luò)來實現(xiàn)在現(xiàn)有X射線安檢技術(shù)條件下的危險液體準確、快速識別。
1 實驗數(shù)據(jù)
1.1 實驗材料
實驗用5種液體:92號汽油、甲醇與30%硝基甲烷混合液、75%酒精、食用油、水的原始樣本各400份(模型識別按訓練集和預(yù)測集3:1分配,即每種液體訓練集300份樣本,預(yù)測集100份樣本),分別用玻璃、金屬、塑料、陶瓷共4種容器盛裝,容量均為500mL,進行X射線圖像獲取實驗。
1.2 實驗設(shè)備及其參數(shù)
實驗采用深圳市天和時代電子設(shè)備有限公司生產(chǎn)的安天下牌X射線安檢機,型號為AT6550,分辨力為直徑0.0787 mm金屬線,空間分辨力為水平:直徑1.0 mm,垂直:直徑1.0 mm,穿透分辨力為直徑0.254mm,穿透力為34 mm鋼板,單次檢查劑量小于1μGy,射線束方向為底照式,管電流為0.4~1.2 mA(可調(diào)),管電壓為100~160 kV(可調(diào)),射線束發(fā)散角為80°,X射線傳感器為L形光電二極管陣列探測器(多能量)。
1.3 圖像采集與數(shù)據(jù)獲取
將每個樣本依次經(jīng)過X射線安檢機并獲取樣本高、低能X射線圖像[8]各8000張(每種液體樣本400×5種液體×4種容器),原始圖像均為大小1024×640像素,水平和垂直分辨率為96 DPI,位深度為RGB格式24位彩色圖像,圖1為部分樣本X射線圖像。
1.4 圖像預(yù)處理
通過上述X射線原始圖片可知,圖片中目標物體較小,背景所占面積較大,需進行圖像分割,通過基于梯度的分水嶺分割[9]、多尺度擴張卷積網(wǎng)絡(luò)分割[10]、隨機分形搜索(SFS) 算法分割[11]、自適應(yīng)多重歐氏距離變換的分水嶺粘連顆粒分割[12]、RGB顏色空間的彩色圖像分割[13]、基于超像素的快速聚類圖像分割[14]等多種分割方法的分割效果和處理時間比較,最終選用基于RGB三原色分解的二值圖像分割算法進行圖像分割,分割后的樣本圖像均為大小94×131像素,水平和垂直分辨率為96 DPI,位深度為RGB格式24位彩色圖像,分割后的部分樣本圖像如圖2所示。同時,由于SVM神經(jīng)網(wǎng)絡(luò)建模需要,對所有分割后的樣本圖像進行特征值提取[15-16],獲取了均值、標準偏差、平滑度、三階矩、一致性、熵共6類特征值,如表1所示,并組成特征向量,為輸入模型進行識別做準備。
2 模型建立
2.1 模型運行環(huán)境
基于Matlab R2018a平臺進行3種神經(jīng)網(wǎng)絡(luò)的訓練與測試。硬件環(huán)境:Intel(R)Core(TM)i7 -10750CPU@2.60GHz處理器,8GB內(nèi)存,NVIDIA GeForce GTX 1660Ti。GPU 軟件環(huán)境:Windows10 64bit 系統(tǒng),CUDA10.0,CUDNN7.4。
2.2 SVM 神經(jīng)網(wǎng)絡(luò)
2.2.1 模型原理
支持向量機(SVM)[17]像多層感知器網(wǎng)絡(luò)和徑向基函數(shù)網(wǎng)絡(luò)一樣,可用于模式分類和非線性回歸。SVM不利用問題的領(lǐng)域內(nèi)部問題,但在模式分類問題上支持向量機能提供好的泛化性能,這個屬性是支持向量機特有的。它具有出色的小樣本學習性能和良好的泛化性能,與傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)法相比,它具有在小樣本下高精度逼近函數(shù)的能力,并且可以避免維數(shù)災(zāi)難,具有一定的工程實用價值。
2.2.2 SVM 模型建立
本文選用均值、標準偏差、平滑度、三階矩、一致性、熵,六個描繪子組成的向量作為樣本的特征向量,輸入SVM模型。本文選取libsvm3.24版工具箱實現(xiàn)SVM神經(jīng)網(wǎng)絡(luò)。libsvm工具箱主要函數(shù)是svmtrain和svmpredict。
2.2.3 SVM 模型參數(shù)優(yōu)化
此處的參數(shù)優(yōu)化主要為SVMtrain(訓練函數(shù))CMD中的參數(shù)c和g,依據(jù)是SVM建立的分類超平面作為決策曲面,不同類別之間的隔離邊緣最大化,即SVMtrain(訓練函數(shù))得到的model網(wǎng)絡(luò)不同類別邊緣最大化。
通過循環(huán)迭代model網(wǎng)絡(luò)22次,最終得到參數(shù)c和g最優(yōu)值均為32。
2.3 卷積神經(jīng)網(wǎng)絡(luò)
2.3.1 模型原理
卷積神經(jīng)網(wǎng)絡(luò)(CNN或ConvNet) [18-21]是最常用的深度神經(jīng)網(wǎng)絡(luò)類型之一。CNN使用二維卷積層,通過輸入數(shù)據(jù)學習特征,使此架構(gòu)非常適合用來處理諸如圖像數(shù)據(jù)等數(shù)據(jù)。
CNN無須手動提取特征,它通過數(shù)十或數(shù)百個隱藏層提取圖像的不同特征,每個隱藏層都增加了所學習圖像特征的豐富程度[22-24]。第一個隱藏層學習如何檢測邊緣,而最后一個隱藏層學習如何檢測更復(fù)雜的形狀。這種自動化的特征提取使深度學習模型能夠為諸如對象分類等計算機視覺任務(wù)提供高精確度。
2.3.2 基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)模型建立
本文使用兩種卷積神經(jīng)網(wǎng)絡(luò)建立模型,一種為基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò),另一種為Resnet-50卷積神經(jīng)網(wǎng)絡(luò)。
基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)基本架構(gòu)為:conv1 (8)→pool1→ conv2 (16)→pool2→conv3 (32)→fc4 (20)→softmax。
本文使用改進的32特征圖像的基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò),在保證特征圖像能充分反映5種液體X射線圖像微小差別的同時,精簡了卷積層過多帶來的信息冗余和時間增加,最后全連接層輸出為20,對應(yīng)于20個類(5種液體分別盛裝在4種容器內(nèi),共20類)。
2.3.3 ResNet-50卷積神經(jīng)網(wǎng)絡(luò)模型建立
ResNet是ILSVRC2015的冠軍。ResNet最大的貢獻在于解決了深層網(wǎng)絡(luò)難以訓練的問題(反向傳播梯度彌散),ResNet網(wǎng)絡(luò)之所以能夠訓練下去主要得益于residual block(殘差模塊)的使用。
使用改進的2048特征圖像的ResNet-50卷積神經(jīng)網(wǎng)絡(luò)建立模型,通過遷移學習來重新訓練卷積神經(jīng)網(wǎng)絡(luò)以對新圖像集進行分類,針對不同種類液體圖像差別細微的問題,新增4層卷積層來增強5種液體在4種容器中的X射線圖像微小差別。
網(wǎng)絡(luò)卷積層會提取最后一個可學習層和最終分類層,用來對輸入圖像進行分類的圖像特征。將全連接層替換為新的全連接層,其中輸出數(shù)量等于新數(shù)據(jù)集中類的數(shù)量,本實驗中為5種液體分別盛裝在4種容器中,共20類。
3 結(jié)果
分析本文利用測試精度(Test Accuracy),訓練損失(Loss)和耗時(Time Elapsed)[25]3個指標評估一個網(wǎng)絡(luò)的識別效果。測試精度指模型在測試集上輸出正確結(jié)果的比率,計算公式如式(1)所示。
3.1 SVM 神經(jīng)網(wǎng)絡(luò)的識別結(jié)果與分析
五種液體(部分樣本)分別盛裝在四種容器(共20個分類)中的SVM識別模型結(jié)果如圖3,具體識別情況見表2。
在圖3中,空心圓表示實際類別標簽,實心星號表示預(yù)測集類別標簽,橫坐標表示預(yù)測集樣本數(shù)量,縱坐標表示類別,1~5依次為玻璃容器盛裝的92號汽油、甲醇與30%硝基甲烷混合液、75%酒精、食用油、水,6~10為金屬容器盛裝的同樣順序五類液體,11~15為塑料容器盛裝的五類液體,16~20為陶瓷容器盛裝的五類液體,由圖5可知,SVM模型把預(yù)測集金屬容器盛裝的75%酒精全部錯誤識別為甲醇與硝基甲烷混合液,把陶瓷容器盛裝的92號汽油全部錯誤識別為食用油。由表2可知,SVM模型通過小樣本訓練后,預(yù)測集總體識別正確率為90%。
3.2 基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)的識別結(jié)果與分析
五種液體分別盛裝在四種容器(共20個分類)中的基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)識別模型結(jié)果如圖4。
圖4中淺色線為訓練集識別正確率和損失數(shù),深色線為被平滑的訓練集識別正確率和損失數(shù),黑色虛線為預(yù)測集識別正確率和損失數(shù),由圖4可知,訓練集和預(yù)測集識別正確率(圖4的上半部分)在第50次、100次和184次迭代后逐步提升,綜合考慮時間消耗和實際效果,將本實驗的迭代次數(shù)設(shè)定為184,訓練集最終識別正確率為97.6%,預(yù)測集最終識別正確率為97.2%。訓練集和預(yù)測集損失值(圖4的下半部分)在第50次、100次和184次迭代后逐步下降,訓練集和預(yù)測集最終損失值均在0.1以下。
3.3 ResNet-50卷積神經(jīng)網(wǎng)絡(luò)的識別結(jié)果與分析
五種液體分別盛裝在四種容器(共20個分類)中的ResNet-50卷積神經(jīng)網(wǎng)絡(luò)識別模型結(jié)果如表3。
結(jié)合表3,多次測試發(fā)現(xiàn)預(yù)測集識別正確率在第50次、100次和250次迭代后逐步提升,迭代250次后圖像識別正確率趨于穩(wěn)定,預(yù)測集平均正確率為99.2%,損失值從開始到最后(迭代640次)一直在下降,最終損失值為0.6357。
3.4 三種神經(jīng)網(wǎng)絡(luò)模型訓練和預(yù)測耗時比較
三種神經(jīng)網(wǎng)絡(luò)模型識別耗時比較如表4所示。由表4可知,模型在本實驗的軟硬件環(huán)境下,SVM網(wǎng)絡(luò)檢測400份樣本(每種液體20個樣本×5種液體×4種容器)的耗時為2.31秒,平均單個樣本耗時0.0057秒,基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)檢測8 000份樣本(每種液體400個樣本×5種液體×4種容器)的耗時為14秒,平均單個樣本耗時0.0017 秒,ResNet-50 神經(jīng)網(wǎng)絡(luò)檢測8000份樣本(每種液體400個樣本×5種液體×4種容器)的耗時為237秒,平均單個樣本耗時0.0296秒。
4 結(jié)論
本文認為未來可對以下兩個方面繼續(xù)進行研究:1) 實際中,液體均盛放于某種容器內(nèi),得到的X射線圖像均為有容器壁疊加的圖像,如何更好地去除容器壁的影響,可進一步研究;2) 三種模型識別過程中,均出現(xiàn)部分75%酒精液體錯誤識別為甲醇與硝基甲烷混合液,部分92號汽油錯誤識別為食用油,需要作進一步的研究。
總之,在本文描述的條件下,得出了以下3個結(jié)論:1) SVM網(wǎng)絡(luò)預(yù)測集的識別正確率為90%,基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)預(yù)測集的識別正確率為97.2%,ResNet-50卷積神經(jīng)網(wǎng)絡(luò)預(yù)測集的識別正確率為99.2%;2) 模型在本實驗的軟硬件環(huán)境下,SVM網(wǎng)絡(luò)的單個樣本檢測耗時為0.0057秒,基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)的單個樣本檢測耗時為0.0017秒,ResNet-50神經(jīng)網(wǎng)絡(luò)的單個樣本檢測耗時為0.0296秒;3.在本實驗條件下,綜合耗時、識別準確率、訓練損失3個維度,基礎(chǔ)型卷積神經(jīng)網(wǎng)絡(luò)為最優(yōu)液體X射線圖像識別模型。