王靈敏 蔣 瑜
(1. 桂林理工大學(xué)南寧分校,廣西 南寧 530001;2. 廣西農(nóng)業(yè)職業(yè)技術(shù)大學(xué),廣西 南寧 530007)
傳統(tǒng)的香蕉成熟度判別方法是利用肉眼觀察香蕉表面顏色[1],此法主觀性較強且耗時耗力。隨著科學(xué)技術(shù)的進步,更為科學(xué)嚴謹?shù)姆椒☉?yīng)運而生——生化指標分析法,如利用半乳糖神經(jīng)酰胺等敏感材料修飾的4個石英晶體微天平傳感器對香蕉7個成熟度進行劃分[2];通過檢測建立香蕉樣本果肉成熟度理化指標的光譜和圖像特征分類模型[3];再或者借助色差儀等專業(yè)儀器對香蕉的表皮顏色進行檢測[4]。但生化指標分析法流程復(fù)雜,且對工作人員專業(yè)知識及儀器操作技能要求較高,香蕉分級成本偏高。近年來隨著計算機視覺的發(fā)展,有研究者將其用于香蕉成熟度識別,如張競超等[5]基于神經(jīng)網(wǎng)絡(luò)識別算法建立數(shù)學(xué)模型判斷香蕉的成熟度,但是所建模型主要適用于倉儲階段的香蕉。趙文鋒等[6]提出一種改進的MATLAB香蕉成熟度圖像處理系統(tǒng),根據(jù)香蕉色素組成檢測香蕉所屬成熟度范圍。Adebayo等[7]利用香蕉光學(xué)特性,通過分析吸收系數(shù)和有效衰減系數(shù)與香蕉不同成熟期的關(guān)系建立ANN模型來判斷香蕉成熟度。Olaniyi等[8]利用三層人工神經(jīng)網(wǎng)絡(luò)香蕉進行兩分類,但也需借助香蕉的生化特性或者進行有損檢測,此法流程復(fù)雜,不適用于低成本的香蕉分揀工作。深度學(xué)習(xí)已被用于芒果、棗、番茄、檸檬等水果的分級[9-12]。而香蕉成熟期階段較多,不同成熟期外觀變化又很接近,更細化的多階段分類難度較高,研究擬將遷移學(xué)習(xí)引入Alexnet、DenseNet121、DenseNet201、GoogLeNet、ResNet50、ResNet101、VGG16、VGG19 8種不同模型,通過引用模型特征提取網(wǎng)絡(luò),微調(diào)全連接層的方式,找到合適且穩(wěn)定的香蕉成熟度分類模型,以期為香蕉貯藏、運輸、上架售賣及深加工環(huán)節(jié)的香蕉成熟度自動化判別提供理論依據(jù)。
試驗所用的香蕉樣品購于廣西南寧市某批發(fā)市場,購買后迅速帶回實驗室,確保香蕉處于Level 1級成熟度,挑選大小均勻且沒有任何機械損傷和蟲害等缺陷的香蕉樣品,與蘋果混合放置在密封箱子中進行常溫(20±5) ℃催熟,每間隔1 d定時拍攝取樣,直至失去食用價值。研究將香蕉成熟度劃分為6個階段,Level 1級成熟度的香蕉表皮整體呈綠色;Level 2級成熟度的香蕉表皮綠色中略帶有淡黃色;Level 3級成熟度的香蕉表皮呈黃綠色;Level 4級成熟度的香蕉表皮黃色中略帶有淡綠色;Level 5級成熟度的香蕉表皮整體呈黃色;Level 6級成熟度的香蕉表皮黃色中帶有褐色斑點。
圖像采集裝置如圖1所示。為保證香蕉拍攝時光照均勻,光照箱由400 mm × 400 mm×600 mm的白色紙箱改造而成。整個圖像采集裝置放置于方形木桌上,為避免拍攝時桌面反光,待測樣品置于米色絨布進行拍攝。光源支架頂部設(shè)有轉(zhuǎn)接頭,可安裝環(huán)形光源和手機支架,光源高度可自由調(diào)節(jié)。環(huán)形光源為色溫5 500 K、功率10 W的可調(diào)白色環(huán)形LED燈管,用以模擬正常室內(nèi)光照強度環(huán)境。拍攝手機為華為NOVA2,置于頂部外側(cè),透過與攝像頭大小相當(dāng)?shù)念A(yù)留小孔對樣品進行拍攝。
在圖片拍攝過程中需要對香蕉進行多次移動和翻轉(zhuǎn),拍照次數(shù)越多、成熟度越高的香蕉在拍攝過程中機械損傷的可能性越大。為保證Level 1級至Level 6級成熟度等級香蕉圖片數(shù)量的均衡性,從拍攝的圖片中挑選出幾乎無機械損傷的圖片900張,每個成熟度等級圖片各150張。香蕉分類任務(wù)中圖片顏色是很重要的特征,而顏色會受到光照強度影響,考慮到在數(shù)據(jù)采集時采用可調(diào)光模擬不同光照強度,為進一步豐富圖片,通過旋轉(zhuǎn)不同角度、水平或垂直旋轉(zhuǎn)等方式對數(shù)據(jù)集進行擴充。香蕉每個等級圖片數(shù)量增加到600張,并采用留出法(hold-out)[13],將所得圖片數(shù)據(jù)按照8∶2的比例劃分訓(xùn)練集和數(shù)據(jù)集。
圖1 圖像采集裝置示意圖Figure 1 Schematic diagram of image acquisition device
試驗平臺由計算機硬件和開發(fā)平臺兩部分組成。計算機硬件:處理器(CPU)為Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz,圖形處理器(GPU)為NVIDIA GeForce GTX 1050 Ti。開發(fā)平臺:Windows10操作系統(tǒng)上的Pytorch深度學(xué)習(xí)框架,配置NVIDIA Toolkit 11.6;集成開發(fā)環(huán)境為pycharm,編程語言為Python 3.8.0。
Krizhevsky等[14-15]在AlexNet模型基礎(chǔ)上進行了一系列關(guān)于網(wǎng)絡(luò)各個層級的可遷移性的試驗。由于訓(xùn)練一個新的高性能的卷積神經(jīng)網(wǎng)絡(luò)不僅耗時,對硬件設(shè)備要求高,而且還需要大量數(shù)據(jù)。但實際情況時常面臨數(shù)據(jù)集較小不足以訓(xùn)練一個大規(guī)模高性能的新網(wǎng)絡(luò)模型的問題,遷移學(xué)習(xí)正好可以解決上述問題[16]。
模型參數(shù)較多、訓(xùn)練樣本較小,訓(xùn)練出來的模型很容易過擬合,通常表現(xiàn)為模型在訓(xùn)練數(shù)據(jù)上損失函數(shù)較小,預(yù)測準確率較高;但是在測試數(shù)據(jù)上損失函數(shù)比較大,預(yù)測準確率較低。為了防止過擬合,試驗采用了L2正則化[17-18]和Dropout[19-20]。
將香蕉按照不同成熟度分為Level 1至Level 6共6個等級,將遷移學(xué)習(xí)引入Alexnet[14]、GoogLeNet[21]、VGGNet(VGG16、VGG19)[22]、ResNet(ResNet50、ResNet101)[23]、DenseNet(DenseNet121、DenseNet201)[24]8種不同模型,通過引用模型特征提取網(wǎng)絡(luò),微調(diào)全連接層的方式,從預(yù)訓(xùn)練模型開始,更新模型參數(shù)。
在ImageNet數(shù)據(jù)集上進行預(yù)訓(xùn)練得到的模型參數(shù)文件,然后提取模型的部分權(quán)值并凍結(jié),微調(diào)全連接層,再對香蕉數(shù)據(jù)集進行遷移學(xué)習(xí)訓(xùn)練,最終得到新的最優(yōu)模型參數(shù)文件。為了獲得更好的模型,除了利用SGD算法配合0.9動量進行模型優(yōu)化訓(xùn)練之外,還使用了Adam優(yōu)化算法進行模型優(yōu)化,不同網(wǎng)絡(luò)模型分別采用兩種算法時的準確率和損失函數(shù)進行50輪訓(xùn)練,結(jié)果如圖2所示。對比發(fā)現(xiàn),采用Adam優(yōu)化算法的模型,除了DenseNet121模型之外,其他網(wǎng)絡(luò)模型的損失函數(shù)都下降更快,收斂時間更短;從準確率來看,AlexNet模型和DenseNet201模型提升較明顯,GoogLeNet、VGG19模型準確率略微有所下降,其余幾種模型無明顯變化。綜上,遷移學(xué)習(xí)降低了網(wǎng)絡(luò)模型訓(xùn)練時間成本,對于模型收斂非常有益。
圖2 各模型SGD優(yōu)化與Adam優(yōu)化結(jié)果Figure 2 Results of SGD optimization and Adam optimization of each model
AlexNet、DenseNet、GoogLeNet、ResNet、VGGNet網(wǎng)絡(luò)模型在采用SGD進行算法優(yōu)化10輪訓(xùn)練之后都可以趨于收斂,VGG16模型準確率最高,如圖3所示;采用Adam算法收斂更快,在5輪之后模型趨于收斂,AlexNet模型準確率最高,如圖4所示。AlexNet模型采用Adam優(yōu)化算法準確率為95.56%,高于VGG16模型采用SGD優(yōu)化算法的95%準確率,并且損失函數(shù)更陡峭,更快趨于收斂,如圖5所示;在同等硬件條件下,VGG16模型下訓(xùn)練時間為4.16 h,AlexNet模型只需要3.78 h。因此,選用AlexNet作為成熟度分類模型。
圖3 模型SGD優(yōu)化結(jié)果Figure 3 SGD optimization results of models
圖4 模型Adam優(yōu)化結(jié)果Figure 4 Adam optimization results of models
圖5 VGG16模型SGD優(yōu)化結(jié)果與AlexNet模型Adam優(yōu)化結(jié)果
AlexNet已經(jīng)過預(yù)訓(xùn)練,直接進行遷移學(xué)習(xí),為了避免過擬合,在全連接層運用dropout隨機隱藏部分神經(jīng)元,減少網(wǎng)絡(luò)整體參數(shù)量,提升訓(xùn)練效率[20]。試驗時發(fā)
現(xiàn),適當(dāng)削減全連接層神經(jīng)元連接層數(shù),不僅可以降低模型復(fù)雜度,減少參數(shù)數(shù)量從而提升訓(xùn)練效率,還可以將訓(xùn)練時長縮短約為0.3 h,提高準確率。為了便于區(qū)分,此處將優(yōu)化后模型設(shè)定為AlexNet_1。將全連接層元連接個數(shù)由4 096修改為1 024。AlexNet_1網(wǎng)絡(luò)模型結(jié)構(gòu)示意圖如圖6所示。AlexNet_1與AlexNet模型訓(xùn)練結(jié)果如圖7所示。
圖6 AlexNet_1網(wǎng)絡(luò)結(jié)構(gòu)示意圖Figure 6 AlexNet_1 network structure diagram
圖7 AlexNet_1與AlexNet網(wǎng)絡(luò)準確率和損失率Figure 7 Accuracy and loss of AlexNet_1 and AlexNet
3.4.1 驗證數(shù)據(jù)采集 為驗證模型的實用性,從南寧某批發(fā)市場另外采購一批香蕉,使用華為NOVA2采集圖像,每個類別分別采集了180張進行等級分類測試,對這些香蕉圖片分為Level 1~Level 6。同時香蕉實物留作人工分類用。
3.4.2 模型評估指標 為進一步驗證模型在6個不同成熟度等級的判別表現(xiàn),通過混淆矩陣來分析每一個類別的準確率,矩陣中包含TP,即香蕉實際為某一成熟等級,模型判斷出來也為該等級;FN,即香蕉實際屬于某一成熟等級,模型判斷出來不為該等級;FP,即香蕉實際不屬于某一成熟等級,模型判斷出來屬于該等級;TN,即香蕉實際不屬于某一成熟等級,模型判斷出來也屬于該等級。TP 和TN 是正確預(yù)測,F(xiàn)P 和 FN 是錯誤預(yù)測。混淆矩陣結(jié)果如圖8所示。
為了更好判斷模型在不同成熟度香蕉等級分類上的表現(xiàn),進一步運用了準確率、精確率、召回率、特異度和F1共5個參數(shù)去進行驗證評估。式(1)為召回率的數(shù)學(xué)計算式,式(2)為特異度的數(shù)學(xué)計算式,式(3)為精確率的數(shù)學(xué)計算式,式(4)為準確率的數(shù)學(xué)計算式,式(5)為F1的數(shù)學(xué)計算式。
(1)
(2)
(3)
(4)
(5)
式中:
R——召回率,%;
S——特異度,%;
P——精確率,%;
A——準確率,%;
F1——基于精確率與召回率的調(diào)和平均定義的量,%。
由圖8及表1可知AlexNet模型整體準確度為95.56%,成熟度等級1和成熟度等級6準確率可以達到100%,成熟度等級3最低,但是也能達到90%;成熟等級1和等級5精確率最高均達到了100%,由于部分等級2和等級4被判別為成熟度等級3,導(dǎo)致成熟度等級3的精確率只有93.1%;召回率是香蕉正確成熟度等級與實際正確成熟度等級的比值,反映了不同等級之間判別靈敏度,成熟度等級1和6最容易被檢測出來,成熟度3最不敏感;F1分數(shù)為精確率與召回率的調(diào)和平均值,其取值在0~1,取值越大性能越好。
圖8 AlexNet模型混淆矩陣Figure 8 AlexNet model confusion matrix
表1 AlexNet模型各分類等級性能
3.4.3 人工與模型分級對比 由12名具有香蕉深加工技術(shù)經(jīng)驗的食品專業(yè)老師和同學(xué)組成人工分級小組,分為兩組,每組由2名經(jīng)驗豐富師生、2名中等熟練師生及2名新手師生直接對所采集圖像的香蕉進行實物分揀,分為組1和組2,其中組1成員在檢測過程中每檢測30個香蕉休息5 min,共分6次完成;組2成員檢測過程中不休息,一次性完成180個香蕉分類。測試結(jié)果見表2。兩組成員,在檢測過程中沒有休息的成員準確率略低,長時間的重復(fù)分辨,使師生視覺疲勞、體力疲勞從而導(dǎo)致誤差增加,而且勞動時長會進一步導(dǎo)致準確率下降;檢測過程中有休息的成員,準確率較高,其中經(jīng)驗豐富長期進行香蕉分揀工作的老師和同學(xué)準確率可以與模型準確率相比擬,但是需要預(yù)留足夠時間給檢測人員休息調(diào)整,減少人為誤差,整個過程耗時較長。
表2 香蕉成熟度人工與模型分類結(jié)果
3.4.4 模型應(yīng)用 為了讓試驗?zāi)P透阌趹?yīng)用于香蕉深加工實際生產(chǎn)過程,借助于PyQt5創(chuàng)建一個香蕉等級分類圖形化用戶展示界面,系統(tǒng)可以通過python程序控制實現(xiàn)攝像頭實時調(diào)用拍攝香蕉圖片或者直接加載給定的香蕉圖片進行實時成熟度分類,系統(tǒng)界面如圖9所示。
圖9 系統(tǒng)界面Figure 9 The system interface
采用多種(Alexnet、DenseNet、GoogLenet、ResNet、VGGNet)神經(jīng)網(wǎng)絡(luò)模型進行遷移學(xué)習(xí)提取香蕉成熟度外部特征,可實現(xiàn)香蕉6個成熟度等級無損分類,這種方式對于縮短訓(xùn)練時長非常有效。經(jīng)過試驗對比發(fā)現(xiàn),AlexNet搭配Adam優(yōu)化器訓(xùn)練效果最好,香蕉成熟度等級準確率達到95.56%,通過進一步對AlexNet改進,準確率可達96.67%。同時為提升檢測模型的實用性,設(shè)計了一個簡易香蕉成熟度分類實時顯示界面系統(tǒng)。香蕉成熟度的準確、快速分類,對香蕉深加工領(lǐng)域香蕉成熟度篩選過程,減少人力、物力、節(jié)省時間等方面都有重要價值,研究證明了利用深度卷積網(wǎng)絡(luò)對香蕉成熟度分類具有可行性,卷積模型可初步滿足香蕉深加工在線檢測分類的生產(chǎn)需求,對于與香蕉剝皮機搭配構(gòu)建一整套香蕉深加工自動化系統(tǒng)有一定的可行性。但由于香蕉成熟過程中外形特征是連續(xù)變化過程,對處于中期階段的成熟度較難判斷,后期可進一步提升將單個香蕉分類任務(wù)擴展到整把香蕉的分類任務(wù)。