李 舒 唐夢笛 同思遠(yuǎn) 孫 柯
(安徽師范大學(xué)生命科學(xué)學(xué)院,安徽 蕪湖 241000)
雞蛋在收售加工過程中容易形成裂紋。裂紋雞蛋容易受微生物侵染而腐敗,內(nèi)容物流出還會(huì)污染其他雞蛋。目前,裂紋雞蛋的檢測主要采用人工視覺輔助的半自動(dòng)式透光檢測方法或人工通過分辨雞蛋的敲擊聲音判斷,效率低。對雞蛋裂紋自動(dòng)檢測方法的研究主要集中在聲學(xué)震動(dòng)和計(jì)算機(jī)視覺兩個(gè)方面?;诼晫W(xué)振動(dòng)法的雞蛋裂紋檢測需要振動(dòng)或敲擊,識(shí)別速度無法進(jìn)一步提高,且當(dāng)敲擊點(diǎn)遠(yuǎn)離裂紋位置時(shí)容易造成誤判[1-2]。與聲學(xué)振動(dòng)方法相比,計(jì)算機(jī)視覺方法所用設(shè)備簡單,成本較低,易于實(shí)現(xiàn),裂紋雞蛋在強(qiáng)光穿透照射下裂紋較為明顯,可通過采集雞蛋透光圖像,然后使用圖像處理及模式識(shí)別方法實(shí)現(xiàn)。
早期學(xué)者多利用基于閾值分割的傳統(tǒng)圖像處理方法識(shí)別裂紋雞蛋圖像[3-5],但由于雞蛋蛋殼透光性及蛋黃吸光性的影響,雞蛋透光圖像灰度值不均勻,細(xì)長的裂紋區(qū)域灰度值變化較大,難以找到適合分割的閾值,較小的裂紋容易被忽略?;诖?Priyadumkol等[6]、Yoon等[7]設(shè)計(jì)并實(shí)現(xiàn)了一種基于改進(jìn)壓力室和連續(xù)旋轉(zhuǎn)雞蛋的雞蛋裂紋檢測機(jī)器視覺系統(tǒng),通過壓力變化擴(kuò)大雞蛋裂紋后檢測,但會(huì)導(dǎo)致檢測速率下降而且設(shè)備復(fù)雜。此后,Sun等[8]根據(jù)雞蛋圖像中裂紋區(qū)域局部灰度值的變化規(guī)律,提出了有序波信號提取和識(shí)別算法,適合對圖像中具有亮度差異的細(xì)條狀區(qū)域進(jìn)行提取,對寬度為0.06~1.13 mm的裂紋雞蛋的識(shí)別準(zhǔn)確率為98.9%,完好雞蛋的識(shí)別準(zhǔn)確率為96%。
使用復(fù)雜的圖像算法能夠提取雞蛋圖像中的裂紋信號,但往往也會(huì)受到雞蛋表面亮斑的干擾,將一部分完好的雞蛋判定為裂紋雞蛋。隨著深度學(xué)習(xí)技術(shù)的發(fā)展和完善,卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中展現(xiàn)出強(qiáng)大的學(xué)習(xí)能力。陳羽立等[9]利用 EfficientNet 搭建遷移學(xué)習(xí)網(wǎng)絡(luò),訓(xùn)練含裂紋蛋與完好蛋的分類模型,最終測試集綜合準(zhǔn)確率達(dá)到97. 2%;Nasiri等[10]使用基于VGG16結(jié)構(gòu)的CNN模型,對裂紋雞蛋圖像進(jìn)行判別,準(zhǔn)確度為96.55%;Turkoglu[11]利用深度學(xué)習(xí)技術(shù),使用DenseNet模型從6個(gè)不同方向采集的圖像中提取特征,然后將獲得的特征輸入雙向長短期記憶模型(BiLSTM),對裂紋雞蛋的識(shí)別準(zhǔn)確率達(dá)到了99.17%;Botta等[12]使用改良后的LeNet-5 架構(gòu)建立了裂紋雞蛋圖像識(shí)別的CNN模型,其準(zhǔn)確率為95.38%;趙祚喜等[13]利用機(jī)器視覺技術(shù),并結(jié)合深度學(xué)習(xí)網(wǎng)絡(luò)深層次特征提取、高精度檢測分類的特性,提出一種基于YOLOv4網(wǎng)絡(luò)的破損雞蛋檢測方法,在線檢測時(shí),YOLOv4模型對含不同比例的破損蛋識(shí)別正確率平均為86.22%;Tang等[14]使用改進(jìn)的MobileNetV3_large模型對破損皮蛋圖像進(jìn)行識(shí)別,準(zhǔn)確率達(dá)96.3%。Wong等[15]使用AlexNet卷積神經(jīng)網(wǎng)絡(luò)模型,提取蛋殼上斑駁圖案的學(xué)習(xí)圖像特征,對裂紋特征檢測準(zhǔn)確率為91.8%;姚學(xué)峰等[16]建立了一種改進(jìn)的YOLOv5裂紋雞蛋圖像檢測模型,將輕量級網(wǎng)絡(luò)MobileNetv3添加到Y(jié)OLOv5模型中,以降低模型復(fù)雜度,刪除頸部網(wǎng)絡(luò)和輸出端小目標(biāo)檢測結(jié)果,其檢測準(zhǔn)確率達(dá)95%以上。
相比于傳統(tǒng)的圖像處理方法,卷積神經(jīng)網(wǎng)絡(luò)模型能夠達(dá)到更高的識(shí)別準(zhǔn)確度。卷積神經(jīng)網(wǎng)絡(luò)模型種類繁多,有以YOLO、R-CNN卷積神經(jīng)網(wǎng)絡(luò)為代表用于圖像目標(biāo)定位的模型和ResNet、SuffleNet等用于整體圖像識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)模型。因此,不同模型對裂紋雞蛋圖像識(shí)別準(zhǔn)確率的差異有待研究。此外,雞蛋圖像的預(yù)處理會(huì)占用部分運(yùn)算時(shí)間,卷積神經(jīng)網(wǎng)絡(luò)模型能否對未經(jīng)預(yù)處理的原始雞蛋圖像進(jìn)行準(zhǔn)確識(shí)別有待進(jìn)一步確認(rèn)。
研究擬使用在線式雞蛋圖像采集設(shè)備采集裂紋雞蛋和完好雞蛋的圖像作為數(shù)據(jù)集,分別建立用于雞蛋裂紋識(shí)別的YOLO-v5、ResNet和SuffleNet模型,并比較不同模型對裂紋雞蛋的識(shí)別準(zhǔn)確率和對未經(jīng)預(yù)處理雞蛋圖像的適應(yīng)性,以期獲得準(zhǔn)確率更高的裂紋雞蛋圖像判別模型。
來航雞產(chǎn)新鮮白殼蛋500枚,采購于南京市童衛(wèi)路農(nóng)貿(mào)市場,送入實(shí)驗(yàn)室后未進(jìn)一步清洗以保證其狀態(tài)與實(shí)際生產(chǎn)中雞蛋狀態(tài)一致,其中250枚雞蛋使用自制禽蛋模擬撞擊設(shè)備產(chǎn)生,禽蛋模擬撞擊設(shè)備參考文獻(xiàn)[17]28制作,結(jié)構(gòu)如圖1所示。從10 cm長30°的V型斜坡滾落以不同位置撞擊與蛋殼曲率近似的塑料弧面撞擊頭,共產(chǎn)生250枚裂紋雞蛋,剩余250枚為完好雞蛋,經(jīng)數(shù)碼顯微鏡檢測,裂紋蛋裂紋寬度為(65±28) μm。
圖1 禽蛋模擬撞擊設(shè)備示意圖
1.2.1 雞蛋圖像采集 使用文獻(xiàn)[17]82中的雞蛋圖像采集設(shè)備,如圖2所示,該設(shè)備利用禽蛋輸送裝置下方的輸送輥將禽蛋輸送至光源正上方,雞蛋遮擋住感應(yīng)模塊探頭,感應(yīng)模塊向計(jì)算機(jī)發(fā)送電位信號,連續(xù)觸發(fā)圖像采集,且該過程中沒有禽蛋的拍攝位下方光源在圖像采集時(shí)保持關(guān)閉,不影響其他拍攝位禽蛋圖像的采集,實(shí)現(xiàn)了穩(wěn)定的禽蛋在線動(dòng)態(tài)圖像采集。分別模擬雞蛋裂紋實(shí)際檢測過程采集雞蛋圖像,共采集不同角度裂紋雞蛋圖像473張和完好雞蛋圖像576張,并使用文獻(xiàn)[5]中圖像預(yù)處理方法,即使用紅色和藍(lán)色的差值分量進(jìn)行自適應(yīng)雙峰閾值分割,得到雞蛋區(qū)域的二值圖像,然后以此二值圖像為模板將圖像中除雞蛋外的區(qū)域設(shè)定為純黑色,預(yù)處理效果如圖3所示。雞蛋蛋殼形成過程中產(chǎn)生的長條狀低密度區(qū)域會(huì)在透光圖像中形成長條狀亮斑,是影響裂紋雞蛋識(shí)別的主要因素。
圖2 雞蛋動(dòng)態(tài)圖像采集設(shè)備[17]82
圖3 裂紋和完好雞蛋圖像
1.2.2 裂紋雞蛋圖像識(shí)別的YOLO模型建立 YOLO模型可以識(shí)別出圖像中特定類別目標(biāo)的位置,訓(xùn)練前需要手動(dòng)標(biāo)記出雞蛋圖像中裂紋位置。如圖4所示,為了研究YOLO-v5模型對裂紋雞蛋的檢測效果,使用Python平臺(tái)的LabelImg工具(https://github.com/tzutalin/labelImg)對原始和經(jīng)過預(yù)處理的裂紋雞蛋圖像中的雞蛋裂紋區(qū)域進(jìn)行人工標(biāo)記,并將每種標(biāo)記后的圖像按照6∶4的比例劃分為建模集和驗(yàn)證集,以作為YOLO-v5模型的訓(xùn)練數(shù)據(jù)集。
圖4 雞蛋圖像裂紋標(biāo)記
使用Python平臺(tái)的Yolov5-master工具(https://github.com/ultralytics/yolov5)建立原始和經(jīng)預(yù)處理后的雞蛋圖像中裂紋區(qū)域的識(shí)別模型,YOLOv5中包含s、m、n、l和x 5種規(guī)模的模型架構(gòu),其中s規(guī)模的模型架構(gòu)深度和寬度分別為正常架構(gòu)的33%和50%,更適合普通計(jì)算機(jī)的訓(xùn)練及部署。因此,以其進(jìn)行模型的建立。此外,建模過程中采用了馬賽克增強(qiáng)、圖像左右翻轉(zhuǎn)和上下翻轉(zhuǎn)策略,并使用CoCo數(shù)據(jù)集(美國Microsoft公司)作為預(yù)訓(xùn)練模型以減少訓(xùn)練次數(shù)。模型輸入圖像尺寸寬度設(shè)置為640像素,批尺寸設(shè)為4以節(jié)約顯存,訓(xùn)練次數(shù)為100,其余建模參數(shù)采用模型推薦參數(shù)。模型驗(yàn)證時(shí),置信度閾值選擇0.3,訓(xùn)練時(shí)記錄模型每次訓(xùn)練后的目標(biāo)損失和邊界框損失,并計(jì)算最佳模型的判別準(zhǔn)確率。計(jì)算準(zhǔn)確率時(shí)凡檢測出包含裂紋的圖像均被判定為裂紋雞蛋圖像。
1.2.3 裂紋雞蛋圖像識(shí)別的ResNet和SuffleNet模型建立 使用Python平臺(tái)的Deep learning for image processing master(https://github.com/WZMIAOMIAO/deep-learning-for-image-processing)工具建立原始和經(jīng)預(yù)處理后的裂紋雞蛋圖像的ResNet和SuffleNet識(shí)別模型。ResNet和SuffleNet沒有圖像目標(biāo)識(shí)別能力,只能對圖像整體進(jìn)行分類,因此無需對裂紋進(jìn)行標(biāo)記。ResNet模型建立時(shí)建模集和驗(yàn)證集圖像比例為6∶4,而SuffleNet建模算法中自動(dòng)劃分建模集和驗(yàn)證集比例為7∶3。ResNet學(xué)習(xí)速率設(shè)為0.000 1,SuffleNet學(xué)習(xí)速率設(shè)為0.01,均為默認(rèn)參數(shù),批尺寸均為4,訓(xùn)練次數(shù)均為50。訓(xùn)練時(shí)記錄模型每次訓(xùn)練后的誤差和準(zhǔn)確率,并計(jì)算最終訓(xùn)練模型的判別準(zhǔn)確率。
由于圖像中的裂紋為連續(xù)的線形或網(wǎng)狀信號,而非邊界明確的單個(gè)信號,因此僅以邊界框損失評價(jià)YOLO-v5模型訓(xùn)練效果。如圖5所示,3種卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練時(shí)收斂速度均較快,ResNet、YOLO-v5和SuffleNet分別在5,10,30次訓(xùn)練后,其對驗(yàn)證集識(shí)別誤差達(dá)到穩(wěn)定狀態(tài),過渡訓(xùn)練容易造成過擬合。但訓(xùn)練用于原始裂紋雞蛋識(shí)別的ResNet模型時(shí),驗(yàn)證集準(zhǔn)確率波動(dòng)較大,ResNet模型不適用于原始裂紋雞蛋圖像的識(shí)別。
圖5 不同模型訓(xùn)練過程誤差變化
如表1所示,YOLO-v5模型對預(yù)處理后的圖像和原始圖像中裂紋區(qū)域的識(shí)別準(zhǔn)確率都能達(dá)到0.95左右。YOLO-v5模型能夠有效識(shí)別雞蛋圖像中的裂紋區(qū)域,并進(jìn)行定位,但部分較小的裂紋未被識(shí)別出來。這是由于雞蛋圖像中裂紋錯(cuò)綜復(fù)雜且形態(tài)多變,無固定的人工標(biāo)定依據(jù),導(dǎo)致部分細(xì)小裂紋在訓(xùn)練時(shí)被忽略。而且裂紋區(qū)域識(shí)別準(zhǔn)確度是機(jī)器對裂紋區(qū)域標(biāo)定結(jié)果與人工標(biāo)定結(jié)果的對比。由于難以形成統(tǒng)一的標(biāo)定標(biāo)準(zhǔn),同一條裂紋機(jī)器標(biāo)定區(qū)域與人工標(biāo)定區(qū)域會(huì)存在少部分的偏差,造成裂紋區(qū)域識(shí)別準(zhǔn)確度下降,但這并不影響后續(xù)的判別結(jié)果。
表1 YOLO-v5模型對圖像中裂紋區(qū)域識(shí)別準(zhǔn)確度
YOLO-v5、ResNet和SuffleNet模型對經(jīng)過預(yù)處理后的裂紋雞蛋圖像識(shí)別效果如表2所示。其中,SuffleNet模型識(shí)別準(zhǔn)確率達(dá)99%以上,YOLO-v5和ResNet模型對驗(yàn)證集的識(shí)別準(zhǔn)確率分別為98.8%和97.8%。而潘磊慶等[3]的方法識(shí)別準(zhǔn)確率為92.9%,Priyadumkol等[6]的方法識(shí)別準(zhǔn)確率為94%,可以看出,這3種卷積神經(jīng)網(wǎng)絡(luò)模型與傳統(tǒng)基于邊緣檢測和閾值分割的圖像處理方法相比具有更高的識(shí)別準(zhǔn)確率,且對完好雞蛋圖像的識(shí)別錯(cuò)誤率控制強(qiáng)于基于連續(xù)波信號的裂紋雞蛋識(shí)別法[8]。此外,Nasiri等[10]使用VGG模型識(shí)別準(zhǔn)確率為96.55%,Botta等[12]使用LeNet-5模型識(shí)別準(zhǔn)確率為95.38%,Wong等[15]使用AlexNet模型識(shí)別準(zhǔn)確率為91.8%,可見相對于VGG、LeNet-5、AlexNet等前期經(jīng)典卷積網(wǎng)絡(luò)模型,YOLO-v5、ResNet和SuffleNet模型在裂紋雞蛋圖像識(shí)別中也展示出了更強(qiáng)的識(shí)別能力。
表2 經(jīng)預(yù)處理后的裂紋雞蛋圖像識(shí)別結(jié)果
YOLO-v5能夠?qū)崿F(xiàn)對裂紋等細(xì)節(jié)目標(biāo)位置的識(shí)別,但并不是準(zhǔn)確率最高的識(shí)別模型。此外,YOLO-v5的建模工作量比ResNet和SuffleNet大很多,且人工標(biāo)記的失誤會(huì)影響模型的檢測準(zhǔn)確度。雖然SuffleNet無需標(biāo)記裂紋位置,但依然可以在較少的訓(xùn)練次數(shù)中找出不同類別的圖像特征差異,這得益于其較高的圖像輸入分辨率和較小的卷積核尺寸。因此,相對于YOLO-v5模型,SuffleNet模型更適合于裂紋雞蛋圖像的識(shí)別。
YOLO-v5、ResNet和SuffleNet模型對未經(jīng)預(yù)處理的原始裂紋雞蛋圖像識(shí)別準(zhǔn)確率如表3所示。YOLO-v5和SuffleNet模型對未經(jīng)預(yù)處理的裂紋雞蛋圖像的識(shí)別準(zhǔn)確率與經(jīng)預(yù)處理后的圖像相比變化不大,而ResNet模型對未經(jīng)預(yù)處理的裂紋雞蛋識(shí)別準(zhǔn)確率較低,說明ResNet模型較容易受到冗余圖像信息的干擾。從圖5也可以看出,使用未經(jīng)預(yù)處理的雞蛋圖像建模時(shí),ResNet模型無法收斂。而SuffleNet模型對未經(jīng)預(yù)處理的裂紋雞蛋圖像識(shí)別準(zhǔn)確率接近100%,是理想的雞蛋裂紋圖像檢測模型。
表3 未經(jīng)預(yù)處理裂紋雞蛋圖像識(shí)別結(jié)果
實(shí)際生產(chǎn)過程中,雞蛋在生產(chǎn)線上高速運(yùn)動(dòng)。采集雞蛋圖像時(shí)不可避免會(huì)拍攝到輸送雞蛋的輸送輥和鏈條。使用圖像處理方法能夠有效去除這些冗余信息,但會(huì)增加設(shè)備的運(yùn)算量,而使用SuffleNet模型能夠?qū)崿F(xiàn)雞蛋圖像采集后立即識(shí)別,節(jié)約了算力和時(shí)間,有利于檢測速度的提升。
研究建立了用于裂紋雞蛋圖像識(shí)別的YOLO-v5、ResNet和SuffleNet模型,其中,SuffleNet模型對經(jīng)過和未經(jīng)過預(yù)處理的裂紋雞蛋圖像均能夠準(zhǔn)確識(shí)別,準(zhǔn)確率達(dá)99%,超過了傳統(tǒng)機(jī)器學(xué)習(xí)方法和前期的卷積神經(jīng)網(wǎng)絡(luò)模型。從識(shí)別準(zhǔn)確率來看,能夠?qū)崿F(xiàn)圖像目標(biāo)定位的YOLO-v5模型并不是裂紋雞蛋檢測的最佳模型,用于圖像整體識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)也能夠有效分辨雞蛋圖像中的裂紋信號。此外,ResNet模型易受冗余圖像信息干擾,難以適應(yīng)未經(jīng)預(yù)處理的雞蛋圖像。因此,這3種模型中最適合裂紋雞蛋圖像識(shí)別的模型為SuffleNet模型,該模型能夠準(zhǔn)確識(shí)別裂紋雞蛋圖像且不需要圖像預(yù)處理過程,可節(jié)約算力和時(shí)間提升檢測速度。但試驗(yàn)所用的裂紋雞蛋樣本為人工制得,對實(shí)際生產(chǎn)中出現(xiàn)的裂紋雞蛋是否適用,特別是裂紋位于雞蛋兩個(gè)尖端情況的檢測方法有待于進(jìn)一步研究討論。