王 強,武 凱,*,王新宇,孫 宇,楊曉燕,樓曉華
(1.南京理工大學(xué)機械工程學(xué)院,江蘇 南京 210094;2.南通四方冷鏈裝備股份有限公司,江蘇 南通 226300)
速凍食品是我國食品行業(yè)的重要組成部分,因其具有新鮮、衛(wèi)生、營養(yǎng)合理、食用方便的特點,深受人們的喜愛,已經(jīng)成為人們?nèi)粘o嬍成钪胁豢扇鄙俚囊徊糠諿1]。同時隨著中國飲食文化在國外影響的逐漸擴大,具有“中國特色”的速凍水餃深受國際市場的歡迎,出口量迅速增加。“民以食為天,食以安為先”,速凍食品行業(yè)的快速發(fā)展是建立在食品質(zhì)量與食品安全的基礎(chǔ)之上的。然而近年來因金屬、石頭、玻璃等異物[2]引發(fā)的食品安全事件,不但嚴重損害消費者的身心健康,而且給食品企業(yè)帶來巨大的信譽和經(jīng)濟損失。因此在食品生產(chǎn)、加工等流程中增加對異物的檢測,及時剔除含有異物的有害產(chǎn)品具有重要意義[3]。目前速凍水餃中的金屬異物主要通過金屬檢測機利用電磁感應(yīng)原理檢測,存在很大局限性:1)只能夠檢測金屬,無法檢測石頭、玻璃、骨頭等異物;2)對于高含水量食品檢測精度受到一定的影響;3)檢測結(jié)果無法直觀可視,無法實現(xiàn)異物的精確定位,一旦發(fā)現(xiàn)金屬異物,整袋水餃即被丟棄,無法將不含異物的單個水餃重新利用,造成巨大浪費?;赬射線的無損檢測技術(shù)因其具有穿透力強、檢測速度快、檢測精度高、檢測結(jié)果直觀、可實現(xiàn)在線自動檢測等優(yōu)點,廣泛應(yīng)用于食品、農(nóng)業(yè)、工業(yè)等行業(yè),為上述問題提供了一個高效、可靠的解決方法[4-5]。
目前利用X射線進行產(chǎn)品檢測的研究報道已經(jīng)很多。在農(nóng)產(chǎn)品品質(zhì)方面:Kotwaliwale等[6]將X射線應(yīng)用于山核桃缺陷與蟲害的無損檢測;Tollner等[7]利用X射線檢測洋蔥內(nèi)部缺陷,把圖像的邊緣特征和余弦特征作為檢測因子,構(gòu)建神經(jīng)網(wǎng)絡(luò)和貝葉斯分類器對其進行缺陷識別,正確率分別為90%和80%;Jiang等[8]利用X射線并提出了一種自適應(yīng)閾值分割算法對感染亞洲果蠅蟲卵的石榴、桃子進行檢測,正確率高達95%和98%。在食品異物檢測方面:洪冠等[9]以鋁箔包裝鴨肫X射線圖像為研究對象,通過提取長寬比、圓度和方差等特征,利用BP神經(jīng)網(wǎng)絡(luò)對鴨肫中的金屬絲、石子、骨頭3 種異物進行檢測;Nielsen等[10]利用X射線暗場成像和光柵干涉儀對碎肉和牛奶中的瓢蟲、蒼蠅、厚紙條、玻璃進行識別,以信噪比作為判斷依據(jù),取得了較好的實驗結(jié)果。
傳統(tǒng)上,利用X射線進行產(chǎn)品質(zhì)量檢測,很大程度上受到樣本本身和人為提取特征的影響,不具有普適性,魯棒性差。相比于常規(guī)方法,深度學(xué)習(xí)中的CNN模型無需人工提取特征,其網(wǎng)絡(luò)可以根據(jù)輸入的數(shù)據(jù)本身自動學(xué)習(xí)特征,對圖像具有極強的表征能力,在解決許多傳統(tǒng)人工智能和計算機視覺問題上取得了突破性進展,目前已經(jīng)廣泛用于手寫字符識別[11-13]、人臉識別[14-16]、圖像分類[17-19]和物體識別[20-22]。以上應(yīng)用為CNN模型用于盒裝水餃異物識別提供了依據(jù),同時也表明CNN模型在圖像識別中可以有效克服傳統(tǒng)方法的不足。
圖1 本實驗算法整體識別流程圖Fig. 1 Flow chart of overall recognition of algorithm
本實驗通過X射線檢測設(shè)備采集了大量水餃樣本圖像,根據(jù)X射線圖像的特點,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的異物水餃識別模型,以實現(xiàn)對含有金屬球、鐵絲、鐵釘、石頭和玻璃5 種異物水餃的有效識別,為盒裝水餃中的異物在線自動檢測提供了一種新的方法。本實驗算法的主要步驟包括:1)圖像獲?。菏褂肵射線成像系統(tǒng)獲取不含和含有異物的水餃數(shù)字圖像,并儲存在電腦中。2)圖像預(yù)處理:對獲取的X射線數(shù)字圖像進行去噪、對比增強處理。3)構(gòu)建正負樣本集:根據(jù)盒裝水餃的分布特點,對圖像進行分塊,獲取單個水餃圖像,并進行尺寸縮放以滿足實驗要求。4)構(gòu)建CNN模型:確定各層參數(shù),包括卷積層、批量歸一化層、ReLu層、最大池化層、Dropout層等。5)利用構(gòu)建好的CNN模型訓(xùn)練、驗證無異物和異物水餃圖像,并保存網(wǎng)絡(luò)模型。6)利用訓(xùn)練好的CNN模型對整幅水餃圖像進行測試,并顯示結(jié)果。本實驗算法的整體識別流程圖如圖1所示。
選取某品牌的盒裝速凍水餃作為本實驗的研究對象并挑選直徑分別為1、2、3 mm的金屬鋼球、直徑為1 mm的細鐵絲、直徑為2 mm的螺釘以及長×寬×厚度為(2~3 mm)×(2~3 mm)×(1~2 mm)的石頭與玻璃作為嵌入水餃中的異物。盒裝水餃和異物圖像如圖2所示。
圖2 實驗材料Fig. 2 Experimental materials
采用蘇州科耐視智能科技有限公司KST-T半自動雙轉(zhuǎn)盤式X射線檢測器采集水餃圖像,其主要由X射線源、平板探測器、圖像采集卡、主機、檢測平臺、射線防護箱等部件組成,如圖3a所示。其中X射線源主要提供不同能量大小的X射線,其管電壓為0~160 kV可調(diào),焦點尺寸為0.8 mm。平板探測器主要用于接收X射線,完成光電信號轉(zhuǎn)換,最后經(jīng)過數(shù)字信號轉(zhuǎn)換器形成所需要的數(shù)字圖像。其最大檢測尺寸為9 寸×9 寸,最小像素單位為200 μm,檢測畫面如圖3b所示。
圖3 檢測設(shè)備Fig. 3 Testing equipment
1.3.1 圖像采集
圖4 圖像預(yù)處理與圖像分塊過程Fig. 4 Image preprocessing and blocking
在獲取X射線圖像之前,將盒裝速凍水餃分成A、B兩組放在常溫下融化,待水餃松軟時,使用剪刀和鑷子將異物放入B組水餃內(nèi)部。為最大化圖像對比度和最小化圖像噪聲,使用10 組測試的X射線水餃圖像調(diào)節(jié)X射線管電壓與管電流參數(shù),最終獲得最佳的管電壓范圍為60~80 kV,管電流為0.8~1 mA。在設(shè)置最佳參數(shù)后,分別采集了300 幅X射線無異物水餃圖像和300 幅X射線異物水餃圖像。獲取的原始圖像大小為860×800,如圖4a、e所示,為方便后期處理,將原始圖像采用線性插值的方式放大至900×800。
1.3.2 圖像去噪與對比拉伸變換
圖4b、f為使用大小為3×3的窗口進行中值濾波后得到的去噪圖像G(x,y);圖4c、g為去噪后圖像進行對比拉伸后的得到的圖像,即Y(x,y)=c×lg(1+G(x,y)),其中c為尺度比例常數(shù),取0.8,Y(x,y)為變換后的圖像。經(jīng)過去噪和對比拉伸變換處理后[23-24],圖像中孤立的噪點得以消除,圖像灰度更加均勻,目標(biāo)異物邊界清晰。
1.3.3 構(gòu)建正負樣本集
在采集的X射線水餃圖像中各選取200 幅無異物和異物水餃圖像作為樣本采集對象,根據(jù)盒裝水餃的分布特點,為方便后期圖像中單個異物水餃統(tǒng)計和異物水餃的二次處理,將整幅水餃圖像分成12 塊尺寸大小為300×200的單個水餃圖像,如圖4d、h所示。隨后對單個水餃圖像進行篩選,避免數(shù)據(jù)樣本的錯誤選定和單一性,最后選取了正、負樣本各1 500 幅作為本實驗的數(shù)據(jù)集,數(shù)據(jù)均用于構(gòu)建的CNN模型的訓(xùn)練和參數(shù)優(yōu)化驗證。從正、負樣本集隨機選擇80%的樣本作為訓(xùn)練集,20%的樣本作為驗證集,部分正、負樣本圖樣如圖5所示。CNN模型訓(xùn)練完成后,將剩余的異物和無異物水餃圖像各100 幅,作為模型效果驗證的測試集。
圖5 實驗部分數(shù)據(jù)集樣本示例Fig. 5 Sample images of selected datasets
1.3.4 構(gòu)建CNN模型
CNN模型具有比例縮放、平移不變性的特點,其主要利用卷積運算提取目標(biāo)不同層次的特征,并在網(wǎng)絡(luò)訓(xùn)練的過程中自動調(diào)節(jié)網(wǎng)絡(luò)的參數(shù),產(chǎn)生最合適的分類特征,避免了傳統(tǒng)識別方法中復(fù)雜的特征提取過程。CNN具有兩種重要的特征:局部感知和參數(shù)共享。局部感知是指,網(wǎng)絡(luò)中的每一個神經(jīng)元不需要對整幅圖像進行全連接,只需要對局部區(qū)域進行感知,然后在更高層將局部信息綜合起來得到全局信息。參數(shù)共享是指所有神經(jīng)元對局部區(qū)域采用相同的連接參數(shù),即所有神經(jīng)元提取的局部特征是同一性質(zhì)的。在參數(shù)共享的基礎(chǔ)上,為獲取更多的特征映射特征圖,往往給出不同的卷積核。同時為降低分辨率,減少冗余特征,需要對特征圖進行池化操作,來加速網(wǎng)絡(luò)的訓(xùn)練和學(xué)習(xí)。
LeNet是經(jīng)典的CNN模型,最初成功用于手寫字符識別,由于異物水餃識別也是對某一未知的水餃圖像進行識別與匹配,該過程與手寫字符識別相似,因此本實驗將LeNet模型作為基礎(chǔ)網(wǎng)絡(luò)框架,使用MATLAB中的MatConvnet工具箱對其重要結(jié)構(gòu)參數(shù)和訓(xùn)練策略進行優(yōu)化,以獲取適合的異物水餃識別模型框架。具體結(jié)構(gòu)設(shè)計描述如下:
1)輸入層:為減少計算量和加快算法運行時間,將尺寸大小為300×200單個水餃圖像縮放至64×64,并將正負樣本分別標(biāo)記為“1”和“2”,作為卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)輸入。
2)卷積層:卷積層用于提取輸入圖像的特征,假設(shè)輸入圖像通過j個不同的卷積核進行圖像卷積,生成j個不同特征圖,則第l層的第j個特征圖xlj的計算公式如下:
式中:f()為激活函數(shù),本實驗選擇非飽和線性修正單元ReLu作為激活函數(shù)。ReLu函數(shù)可以訓(xùn)練層次比較深的網(wǎng)絡(luò)模型,而且可以加快網(wǎng)絡(luò)的學(xué)習(xí)和計算速度。Mj為輸入圖像的特征量,為卷積核,為輸入特征圖的偏置。在實驗的過程中,本實驗借鑒了LeNet卷積核大小的設(shè)計,針對不同結(jié)構(gòu)的CNN模型進行訓(xùn)練,然后通過對比不同模型的識別準(zhǔn)確率,最終設(shè)計了5 個卷積層。其中卷積層1,有50 個卷積核,即輸出50 幅特征圖,卷積核大小為3×3;卷積層2,有100 個卷積核,大小為4×4;卷積層3,有300 個卷積核,大小為5×5;卷積層4,有500 個卷積核,大小為5×5;卷積層5,卷積核大小為1×1。
3)批量歸一化層:為加速網(wǎng)絡(luò)訓(xùn)練、防止各層分布不均和梯度彌散,在網(wǎng)絡(luò)的前4 個卷積層之后添加批量歸一化層,即在上一層的輸入進行歸一化處理之后再進入網(wǎng)絡(luò)的下一層。具體操作如下式所示[20]:
式中:x1,x2,...,xm為輸入值,m為每次批量歸一化的樣本數(shù)量,γ和β為學(xué)習(xí)參數(shù),μB為樣本均值,σB為樣本方差,為規(guī)范化后的數(shù)據(jù),ε為常量,用來保證數(shù)值的穩(wěn)定性,yi為輸出。
4)池化層:為減少相鄰卷積層連接單元的數(shù)量、減少冗余特征和網(wǎng)絡(luò)的計算負擔(dān),需要進行池化操作。假設(shè)經(jīng)過池化之后的特征圖為,則池化操作的計算公式如下:
圖6 最大池化操作Fig. 6 Max pooling operation
5)Dropout層:為提高CNN的性能和模型的泛化能力,防止過度擬合,在卷積層5之前引入了一個Dropout層。
6)輸出層:經(jīng)過一系列的卷積、池化和特征映射操作之后,本實驗選取Softmax分類器來計算CNN的損失值,衡量模型分類估計值與真實值之間的誤差,誤差越趨近于0,表示所構(gòu)建的模型對當(dāng)前測試數(shù)據(jù)的分類效果越好。
根據(jù)實驗結(jié)果,最終確定的CNN模型如圖7所示。
圖7 本實驗設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)模型Fig. 7 Convolution neural network model designed in this study
1.3.5 實驗軟件及硬件
本實驗實驗平臺為臺式計算機,PC處理器為Inter(R)Core(TM) i3-2000H(主頻3.10 GHz),運行內(nèi)存為4 GB,500 G硬盤,運行環(huán)境為Windows 7 64位,在MATLAB R2016b的編程環(huán)境下實現(xiàn)。
使用正負樣本集來訓(xùn)練和驗證構(gòu)建的CNN模型,網(wǎng)絡(luò)權(quán)重的初始化采用標(biāo)準(zhǔn)差為0.01,均值為0的高斯分布。樣本的迭代次數(shù)設(shè)置為60 次,每次批處理的Batch Size為200,并設(shè)置權(quán)重參數(shù)的初始學(xué)習(xí)速率前期為0.001,后期為0.000 5,動量因子設(shè)置為0.9。分別使用經(jīng)過批量歸一化處理和沒有批量歸一化層的兩種網(wǎng)絡(luò)結(jié)構(gòu)對樣本進行60 次迭代訓(xùn)練,其變化曲線如圖8所示。
圖8 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練和驗證誤差曲線Fig. 8 Convolution neural network training and verification error curves
從圖8可以看出,隨著迭代次數(shù)的增加,訓(xùn)練和驗證的分類誤差逐漸降低并趨于穩(wěn)定。對于沒有批量歸一化層的網(wǎng)絡(luò)結(jié)構(gòu),在前30 次迭代時,網(wǎng)絡(luò)的訓(xùn)練和驗證誤差一直處于0.28~0.4之間,尤其是在第3~22次迭代期間,網(wǎng)絡(luò)訓(xùn)練和驗證誤差一直保持在0.34,隨后網(wǎng)絡(luò)的誤差急劇下降,在第60次迭代結(jié)束時,訓(xùn)練和驗證誤差達到0.02。對于含有批量歸一化層的網(wǎng)絡(luò)結(jié)構(gòu),在前10 次迭代時,網(wǎng)絡(luò)的訓(xùn)練和驗證誤差就開始急劇下降,后面逐漸趨于平緩,當(dāng)訓(xùn)練迭代到第30次時,網(wǎng)絡(luò)可以實現(xiàn)對訓(xùn)練集和驗證集的誤識別率都降至0,之后模型分類準(zhǔn)確率趨于穩(wěn)定。這兩種不同的網(wǎng)絡(luò)結(jié)構(gòu)表明,在網(wǎng)絡(luò)結(jié)構(gòu)中加入批量歸一化層,可以有效地加快網(wǎng)絡(luò)訓(xùn)練速度和降低網(wǎng)絡(luò)誤差,幫助網(wǎng)絡(luò)提前收斂。模型在經(jīng)過60 次迭代之后,訓(xùn)練損失收斂到穩(wěn)定值,表明CNN達到了預(yù)期的效果。
按照圖7網(wǎng)絡(luò)結(jié)構(gòu),使用訓(xùn)練好的CNN模型對異物水餃圖像樣本進行識別。圖9為輸入的異物水餃圖像在5 個卷積層所對應(yīng)的特征圖的輸出結(jié)果,輸出1和2分別表示異物和無異物水餃。如圖9所示,本實驗構(gòu)建的CNN模型通過局部感受野和權(quán)值共享,可以有效地提取異物水餃特征。
圖9 異物水餃在CNN網(wǎng)絡(luò)各卷積層的處理結(jié)果Fig. 9 Processing results of foreign body-containing dumplings in each convolution layer of CNN
為驗證本實驗網(wǎng)絡(luò)模型的可靠性和穩(wěn)定性,利用訓(xùn)練好的網(wǎng)絡(luò)模型和滑動窗口,對測試集中無異物和異物水餃圖像各100 幅進行識別,選擇正確識別整幅水餃圖像和正確對圖像中異物水餃計數(shù)作為實驗結(jié)果有效性的評價指標(biāo)。圖10a為無異物水餃識別結(jié)果,圖10b從左到右依次為含有金屬鋼球一種異物和含有鋼球、石頭、螺釘、鐵絲4 種異物以及含有全部5 種異物的水餃圖像異物計數(shù)與識別結(jié)果??梢钥闯觯緦嶒灅?gòu)建的CNN模型可以實現(xiàn)異物水餃的精確識別。
圖10 水餃識別結(jié)果Fig. 10 Identification results of dumplings
為驗證本實驗的算法性能,與常規(guī)方法進行比較。首先,分別提取水餃圖像的提取局部二值模式(local binary pattern,LBP)[25]、方向梯度直方圖(histogram of oriented gradient,HOG)[26]和Gabor[27]紋理特征,作為識別無異物和異物水餃的特征向量,然后使用BP神經(jīng)網(wǎng)絡(luò)[28]、支持向量機(support vector machine,SVM)[29]、KNN分類器、AdaBoost分類器[30]、樸素貝葉斯分類器和決策樹分類器對水餃圖像進行識別,將識別結(jié)果與本實驗算法進行對比;同時為了驗證本實驗CNN模型所提取特征的有效性,使用上述分類器用本實驗提取的特征進行重新識別,如表1所示,不同方法對一幅水餃圖像的平均識別時間如表2所示。
表1 不同特征和不同算法下異物水餃的識別率Table 1 Recognition rates of foreign body-containing dumplings with different characteristics and different algorithms
表2 不同特征和不同算法下異物水餃的識別時間Table 2 Recognition times of foreign body-containing dumplings with different characteristics and different algorithms
從表1、2可以看出,在相同的圖像尺寸下,LBP特征向量的維數(shù)最少僅為59,其次為本實驗CNN模型所提取的特征向量,維數(shù)為500,而HOG和Gabor的特征向量維數(shù)最多,分別為1 764和2 560。當(dāng)把LBP特征作為識別無異物和異物水餃的特征向量時,常規(guī)方法所得到的識別效果最差、對一幅水餃圖像的平均識別時間最短,其中樸素貝葉斯分類器的識別率僅為68.62%,識別時間為0.053 s,其次為HOG特征;當(dāng)把Gabor特征作為特征向量時,常規(guī)方法所得到的識別效果最好,同時對一幅水餃圖像的平均識別時間也最長,其中BP神經(jīng)網(wǎng)絡(luò)和SVM的識別率分別達到了88.82%和92.15%,識別時間分別為1.754 s和1.575 s。在幾種常規(guī)方法中,使用SVM進行識別時,所獲得的識別效果最好,表明在本實驗問題中,SVM的分類效果優(yōu)于其他傳統(tǒng)方法。相比于常規(guī)方法,使用本實驗?zāi)P蛯λ湀D像進行識別,不僅避免了復(fù)雜的手動特征提取,而且所提取的特征向量的維數(shù),相比于HOG和Gabor特征要少的多,在計算時可以有效節(jié)省內(nèi)存,提高檢測速度,識別率達到了99.78%,識別時間為0.332 s。綜合識別率和識別時間,可以看出本實驗CNN模型優(yōu)于其他方法。同時,當(dāng)各常規(guī)方法使用本實驗所提取的特征進行識別時,識別率均得到了大幅度提升,表明本實驗CNN卷積運算所提取的特征比LBP、HOG和Gabor特征更有效。
為檢測本實驗CNN模型對不同異物的識別效果,分別統(tǒng)計了5 種異物在該網(wǎng)絡(luò)模型下的識別率,如表3所示。根據(jù)實驗結(jié)果和5 種異物的特性可以發(fā)現(xiàn),由于金屬鋼球、鐵絲、螺釘?shù)拿芏却?、穿透性差,?dǎo)致在X射線水餃圖像中,呈現(xiàn)出灰度低、顏色暗,與周圍物體和背景差異大、對比鮮明,識別率很高,分別為99.97%、99.91%、99.93%;石頭的密度和穿透性次之,識別率稍低于金屬異物,為99.72%,而透明玻璃密度低、穿透性好,在X射線圖像中,呈現(xiàn)出的灰度與水餃灰度相似,易造成混淆,不易識別,識別率為98.85%,低于其他異物;因此本實驗算法對于密度大、穿透性差的金屬異物和石頭具有很好的識別效果,而對密度小、穿透性好的玻璃的識別率稍低。
表3 不同異物的識別率Table 3 Recognition rates of different foreign bodies
本實驗以盒裝水餃為研究對象,通過X射線檢測設(shè)備來獲取水餃圖像,對其進行去噪和對比拉伸變換處理;然后對經(jīng)典的LeNet模型進行優(yōu)化,在網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計中加入批量歸一化層和Dropout層,以此提高網(wǎng)絡(luò)學(xué)習(xí)速度,避免網(wǎng)絡(luò)過度擬合;最后利用本實驗構(gòu)建的CNN模型對異物水餃進行識別,并與其他方法進行對比。結(jié)果表明,CNN模型的識別效果優(yōu)于其他常規(guī)方法,而且可以自動地從復(fù)雜數(shù)據(jù)中學(xué)習(xí)到有效的特征,實現(xiàn)對盒裝水餃的準(zhǔn)確、快速、無損檢測,為食品中的異物自動檢測提供了新思路。