李琳芳,王建軍,魏征,馮向榮,安金梁
(1.河南科技學(xué)院信息工程學(xué)院,河南新鄉(xiāng)453003;2.河南科技學(xué)院新科學(xué)院,河南新鄉(xiāng)453003)
我國(guó)現(xiàn)有的水果檢測(cè)分類方法主要有人工檢測(cè)和機(jī)械檢測(cè)[1].人工檢測(cè)耗費(fèi)人力、效率低下、分類不夠客觀準(zhǔn)確;機(jī)械檢測(cè)容易對(duì)水果造成機(jī)械損傷,影響水果品質(zhì).采用機(jī)器視覺的圖像處理技術(shù)可以消除這些弊端,實(shí)現(xiàn)水果的高效無損自動(dòng)檢測(cè)及分類.國(guó)內(nèi)外許多學(xué)者對(duì)基于機(jī)器視覺的圖像處理技術(shù)在水果缺陷檢測(cè)及分類方面的應(yīng)用進(jìn)行了大量研究,并取得了較大進(jìn)展[2-3].Aleixos等[4]應(yīng)用貝葉斯決策理論實(shí)時(shí)對(duì)柑橘類水果表面進(jìn)行多光譜檢測(cè);費(fèi)爾南多等[5]基于顏色和紋理特征實(shí)現(xiàn)對(duì)柑橘類水果表面的缺陷診斷;López-García等[6]采用多變量圖像分析法和主成分分析法實(shí)現(xiàn)柑橘類水果表面的缺陷檢測(cè).
傳統(tǒng)圖像分類主要包含特征提取和分類器設(shè)計(jì)兩大步驟,但有兩個(gè)突出的缺點(diǎn)[7]:一是需要人工設(shè)計(jì)特征,人工設(shè)計(jì)特征往往靠設(shè)計(jì)者的先驗(yàn)知識(shí),具有很大的盲目性,此外,考慮到手工調(diào)參數(shù),特征設(shè)計(jì)時(shí)只允許出現(xiàn)少量參數(shù);二是分類器結(jié)構(gòu)簡(jiǎn)單,可能無法將復(fù)雜的特征映射到最終識(shí)別結(jié)果.近年來,隨著標(biāo)記數(shù)據(jù)和算力的提升,針對(duì)卷積神經(jīng)網(wǎng)絡(luò)的研究被廣泛應(yīng)用于圖像處理領(lǐng)域[8-11],它很好地克服了傳統(tǒng)圖像分類的缺點(diǎn).卷積神經(jīng)網(wǎng)絡(luò)可以從大數(shù)據(jù)中自動(dòng)學(xué)習(xí)特征的表示,對(duì)特征有很強(qiáng)大的表征能力,不僅避免了人工提取特征的繁瑣,而且網(wǎng)絡(luò)學(xué)習(xí)的特征比人工設(shè)計(jì)的特征具有更強(qiáng)的泛化性能.卷積神經(jīng)網(wǎng)絡(luò)的特征提取器和分類器是串聯(lián)在一起的,訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò)就同時(shí)訓(xùn)練了特征提取器和分類器.本文基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)了一個(gè)橘子檢測(cè)分類模型.
當(dāng)前,沒有現(xiàn)成開源的數(shù)據(jù)集,自建了橘子數(shù)據(jù)集,主要包含數(shù)據(jù)采集、數(shù)據(jù)標(biāo)注、數(shù)據(jù)劃分3個(gè)步驟.
(1)數(shù)據(jù)采集.通過兩種方式獲取橘子數(shù)據(jù)集:一種是利用智能手機(jī)在不同光照、不同背景、不同場(chǎng)景下拍攝橘子圖像;另一種是利用Python爬蟲自動(dòng)搜集互聯(lián)網(wǎng)上的橘子圖像.由于卷積神經(jīng)網(wǎng)絡(luò)是基于大數(shù)據(jù)下的特征學(xué)習(xí),通常數(shù)據(jù)集越大,提取到的特征越多,訓(xùn)練得到的網(wǎng)絡(luò)模型越好;如果數(shù)據(jù)集不充分,訓(xùn)練的模型容易發(fā)生欠擬合或過擬合.本文采取對(duì)獲取的數(shù)據(jù)進(jìn)行60°旋轉(zhuǎn)、90°旋轉(zhuǎn)、120°旋轉(zhuǎn)、180°旋轉(zhuǎn)的方式擴(kuò)充數(shù)據(jù)集.為了方便卷積神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)的讀入,對(duì)所有數(shù)據(jù)集格式進(jìn)行統(tǒng)一化處理,將其尺寸統(tǒng)一固定為長(zhǎng)為64、寬為64、水平分辨率為96、垂直分辨率為96.
(2)數(shù)據(jù)標(biāo)注.整個(gè)數(shù)據(jù)集有2 000張圖片,根據(jù)橘子表皮的色澤和亮度、表面是否有霉斑和黑斑、橘子本身是否完整等,以人工標(biāo)注的方式,將橘子分為合格品和不合格品.其中合格品為1 000張,不合格品為1 000張.圖1、圖2分別給出了橘子的部分合格品樣本圖片與不合格品樣本圖片.
圖1 部分合格品橘子Fig.1 Partial qualified oranges
圖2 部分不合格品橘子Fig.2 Partial unqualified oranges
(3)數(shù)據(jù)劃分.采用有監(jiān)督學(xué)習(xí)的方式訓(xùn)練網(wǎng)絡(luò)模型時(shí),為了得到泛化能力強(qiáng)、效果佳的網(wǎng)絡(luò)模型,一般會(huì)按照8∶2的比例將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集.隨機(jī)選取800張合格品橘子圖片和800張不合格品橘子圖片作為訓(xùn)練集,剩余200張合格品橘子圖片和200張不合格品橘子圖片作為測(cè)試集.
卷積神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)具備優(yōu)異的特征自學(xué)習(xí)能力、強(qiáng)大的并行處理能力以及良好的容錯(cuò)能力.卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖3所示,主要由輸入層、卷積層、池化層、全連接層、輸出層5部分構(gòu)成,每一層都是由若干個(gè)包含獨(dú)立神經(jīng)元的二維平面組成.
(1)輸入層:用于輸入圖像,輸入圖像的大小要統(tǒng)一.
(2)卷積層:卷積核在待提取特征的圖像上,按照一定步長(zhǎng),依次掃描進(jìn)行線性卷積運(yùn)算,再加一個(gè)偏置,通過激活函數(shù)得到提取的特征圖.通過引入非線性激活函數(shù),使得網(wǎng)絡(luò)可以表達(dá)非線性模型,增強(qiáng)了網(wǎng)絡(luò)的表達(dá)能力.
(3)池化層:池化也稱為下采樣,主要用于特征降維,壓縮數(shù)據(jù)和參數(shù)的數(shù)量,在一定程度上可以減小過擬合,提高模型的容錯(cuò)性.
(4)全連接層:將卷積和池化之后提取的特征圖中的特征進(jìn)行整合,映射成一個(gè)固定長(zhǎng)度的特征向量,以便交給最后的分類器層.
(5)輸出層:輸出層一般為分類器層,最后輸出的是一個(gè)把制定分類的類目數(shù)作為維度的概率向量.
圖3 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)Fig.3 Basic structureof convolutional neural network
設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)模型如圖4所示,由1個(gè)輸入層、3個(gè)卷積層、3個(gè)池化層、1個(gè)全連接層和1個(gè)Softmax輸出層組成.
圖4 設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)模型Fig.4 Convolutional neural network model designed
把64×64×3的RGB圖像輸入網(wǎng)絡(luò),64×64指圖像的寬度×高度,3指圖像的R、G、B三個(gè)色彩通道,在卷積層Conv1層設(shè)計(jì)了32個(gè)5×5×3的卷積核,5×5指卷積核的寬度×高度,3指卷積核的深度,對(duì)應(yīng)圖像的R、G、B三個(gè)色彩通道,卷積核遍歷圖像進(jìn)行卷積運(yùn)算后得到32個(gè)60×60的二維特征圖,然后通過ReLU激活函數(shù)進(jìn)行計(jì)算,ReLU激活函數(shù)具有實(shí)現(xiàn)簡(jiǎn)單、收斂快速的特點(diǎn).卷積層的計(jì)算公式如式(1)所示
式(1)中:I表示輸入矩陣,W表示卷積核,b表示偏置,f(·)表示激活函數(shù).
已有研究表明,在圖像特征提取方面,最大池化效果優(yōu)于平均池化,設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)池化層均采用最大池化操作.下采樣層Pool1層采用32個(gè)2×2的最大池化濾波器,池化步長(zhǎng)為2,池化運(yùn)算后得到32個(gè)30×30的二維特征圖.池化層的計(jì)算公式如式(2)所示
式(2)中:down表示池化操作.
在卷積層Conv2層使用64個(gè)5×5×3的卷積核,計(jì)算過程類似于Conv1層,經(jīng)過卷積運(yùn)算后得到64個(gè)26×26的二維特征圖,下采樣層Pool2層采用64個(gè)2×2的最大池化濾波器,經(jīng)過池化運(yùn)算,得到64個(gè)13×13的二維特征圖,保留主要特征的同時(shí)進(jìn)一步實(shí)現(xiàn)了降維,減少了后續(xù)層中參數(shù)的數(shù)量.
經(jīng)過Conv1層和Conv2層之后已經(jīng)提取了大部分特征,考慮到自建的樣本數(shù)目不是很大,在Conv3層使用128個(gè)3×3×3的卷積核,小卷積核雖然感知野小了,但不會(huì)影響訓(xùn)練精度,而且減少了網(wǎng)絡(luò)訓(xùn)練參數(shù).下采樣層Pool3層采用128個(gè)2×2的最大池化濾波器,經(jīng)過池化運(yùn)算,得到128個(gè)6×6的二維特征圖.
全連接層FC層將Pool3層產(chǎn)生的二維特征圖轉(zhuǎn)變?yōu)橐痪S特征數(shù)據(jù),利用Softmax邏輯回歸對(duì)特征進(jìn)行分類.Softmax函數(shù)計(jì)算公式如式(3)所示
式(3)中:Ii為所有輸入組合中的第i個(gè)輸入,K為輸入神經(jīng)元個(gè)數(shù).通過Softmax函數(shù),輸出值就映射到了[0,1]范圍的值,Softmax分類是根據(jù)概率值大小進(jìn)行的分類.
實(shí)驗(yàn)環(huán)境為64位的Win10系統(tǒng),計(jì)算機(jī)的CPU為Intel(R)Core(TM)i5-6600K,CPU的主頻為3.5GHz,內(nèi)存為16 GB.模型訓(xùn)練是利用Anaconda下基于Python語言的Spyder編譯工具,采用Keras深度學(xué)習(xí)框架.
設(shè)計(jì)的網(wǎng)絡(luò)模型訓(xùn)練過程如圖5所示.將橘子圖片數(shù)據(jù)集作為輸入分批量提供給網(wǎng)絡(luò),經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)模型后提取分類特征,利用Softmax分類器進(jìn)行分類,根據(jù)預(yù)測(cè)的橘子品類和實(shí)際的橘子品類計(jì)算損失函數(shù),通過小批量梯度下降法,利用反向傳播調(diào)整網(wǎng)絡(luò)參數(shù),不斷減小損失直至網(wǎng)絡(luò)收斂.
圖5 網(wǎng)絡(luò)訓(xùn)練過程Fig.5 Network trainingprocess
為了提高網(wǎng)絡(luò)收斂速度,對(duì)輸入網(wǎng)絡(luò)的橘子圖像進(jìn)行像素值的去均值歸一化處理.去均值歸一化處理的計(jì)算公式為
式(4)中:I表示輸入圖像任意一點(diǎn)的像素值,μ表示輸入圖像的像素均值.
利用均方誤差作為網(wǎng)絡(luò)訓(xùn)練的損失函數(shù).損失函數(shù)計(jì)算公式為
式(5)中:C為分類的類別數(shù),表示訓(xùn)練集中第k個(gè)樣本第j維所對(duì)應(yīng)的期望值,表示第k個(gè)樣本第j維所對(duì)應(yīng)的實(shí)際輸出.
訓(xùn)練過程中設(shè)定批處理的批尺寸為64,初始學(xué)習(xí)率為0.000 1,迭代步數(shù)為30步,訓(xùn)練集包含1 600個(gè)正樣本和1 600個(gè)負(fù)樣本,測(cè)試集包含400個(gè)正樣本和400個(gè)負(fù)樣本,訓(xùn)練集的精度和測(cè)試集的精度分別如圖6和7所示.
圖6 訓(xùn)練集精度Fig.6 Accuracy of thetrainingset
圖7 測(cè)試集精度Fig.7 Accuracy of the test set
由圖6可以看出,訓(xùn)練集的精度呈上升趨勢(shì),經(jīng)過一段時(shí)間的訓(xùn)練后,精度保持在98%以上,由此可知訓(xùn)練模型是比較成功的.利用測(cè)試集對(duì)訓(xùn)練模型進(jìn)行測(cè)試,由圖7可以看出,測(cè)試集的精度基本都在94%以上,某些時(shí)刻的精度比較低,可能是個(gè)別樣本引起的,對(duì)運(yùn)行結(jié)果中測(cè)試集的精度進(jìn)行均值計(jì)算,整個(gè)測(cè)試集的平均精度為94.34%.整個(gè)測(cè)試集的平均精度明顯低于訓(xùn)練集的平均精度99.38%,主要是因?yàn)橛?xùn)練的樣本和測(cè)試的樣本數(shù)量有限導(dǎo)致.
表 1給出了本文算法和現(xiàn)有檢測(cè)分類算法 PCA+KSVM[12]、PCA+FSCAB[13]、FREE+BPNN[14]、FREE+IHGA[15]的精度對(duì)比情況,由于本文算法與其他分類算法的數(shù)據(jù)集不完全相同,因此分類精度是在分類的平均精度上進(jìn)行比較,對(duì)比發(fā)現(xiàn)本文算法具有更優(yōu)的分類性能.
表1 不同算法平均精度比較Tab.1 Comparison of theaverageaccuracy of different algorithms
本文設(shè)計(jì)了基于卷積神經(jīng)網(wǎng)絡(luò)的橘子分類識(shí)別模型,并對(duì)網(wǎng)絡(luò)模型進(jìn)行了訓(xùn)練.模型在足夠的樣本學(xué)習(xí)之后,可以自動(dòng)獲取樣本特征,與傳統(tǒng)分類模型相比,具有更高的速度、更強(qiáng)的泛化性能和更好的識(shí)別效果.在訓(xùn)練樣本和測(cè)試樣本有限的情況下,模型準(zhǔn)確率達(dá)到了94.34%,驗(yàn)證了模型的準(zhǔn)確性和可靠性.