(北京工商大學 計算機與信息工程學院 食品安全大數(shù)據(jù)技術北京市重點實驗室,北京 100048)
近年來,隨著人工智能、計算機視覺技術的迅猛發(fā)展,圖像識別作為深度學習技術中重要應用之一,受到越來越多的關注。目前,人們對水果圖像的識別研究主要集中在水果品質(zhì)分級、成熟度識別等方面,而對智慧農(nóng)業(yè)以及采摘機器人的多類水果分類識別的研究較少[1],且大多采用傳統(tǒng)機器學習的方法進行分類識別。傳統(tǒng)的機器學習方法如HOG(Histogram of Oriented Gradient,方向梯度直方圖)和SIFT(Scale Invariant Feature Transform,尺度不變特征變換)等,對水果圖像進行特征提取,并將提取到的特征輸入到分類器實現(xiàn)對水果的分類識別。而該方法提取到的特征,本質(zhì)上是一種人為設定的特征,雖然對特定的數(shù)據(jù)規(guī)模不大的識別任務更有效,但整體泛化能力較差,具有一定的局限性[2]。深度學習方法與上述傳統(tǒng)方法相比,其優(yōu)勢在于圖像特征無需人為設定,而是通過深層次的網(wǎng)絡結構提取到更精確的特征。因此,筆者提出利用深度學習框架下的 Inception-V3模型進行遷移學習,從而實現(xiàn)對水果的快速準確識別分類。
所設計的水果分類算法架構如圖1所示。在TensorFlow深度學習框架下,利用Google公司開發(fā)的Inception-V3模型進行遷移學習。圖1中以ImageNet大量數(shù)據(jù)集訓練的CNN模型作為預訓練模型,將保留Inception-V3模型中分類器前的整體結構,并在模型中定義新的Softmax分類器,再利用水果數(shù)據(jù)集做進一步遷移學習訓練,得到新的網(wǎng)絡模型,以用于水果圖像的分類。

圖1 水果分類算法架構圖
近年來,美國Google公司開發(fā)了許多圖像分類模型,如QuocNet、AlexNet、Inception(GoogleNet)、BN-Inception-V2等,Inception-V3用來訓練2012年ImageNet的Large Scale Visual Recognition Challenge數(shù)據(jù)集[3]。這是計算機視覺領域的一類標準任務,模型要把整個圖像集分為“斑馬”、“達爾瑪西亞狗”和“洗碗機”等1000個類別。為了對模型性能進行比較,檢查模型預測中前5個分類結果不包含正確類別的錯誤率,即“top-5 錯誤率”。在2012年的驗證數(shù)據(jù)集上,AlexNet取得了15.3%的 top-5錯誤率;BN-Inception-V2的錯誤率是6.66%;Inception-V3的錯誤率是3.46%[4]。由此可見,Inception-V3模型對圖像分類有更好的效果。
Inception-V3模型由11個Inception模塊組成,典型的Inception結構如圖2所示,該結構將不同的卷積層通過并聯(lián)的方式結合在一起,同時使用所有不同尺寸的過濾器,然后再將得到的矩陣拼接起來。Inception-V3模型一共96個卷積層,模型預訓練時計算量較大,故很難在普通計算機上實現(xiàn)[5]。因此,采用對預訓練模型遷移學習的方式進行水果分類識別模型的訓練。

圖2 Inception模塊結構圖
深度學習概念源于人工神經(jīng)網(wǎng)絡的研究,是機器學習中一種基于對數(shù)據(jù)進行表征學習的方法。含多隱層的多層感知器就是一種深度學習結構。深度學習的最大優(yōu)勢在于用非監(jiān)督式或半監(jiān)督式的特征學習和分層特征提取高效算法來替代手工獲取特征。
在深度學習領域,遷移學習是一種將預訓練的模型重新訓練后應用在其他任務中的學習方式。通常這些預訓練的模型在開發(fā)時已經(jīng)消耗了巨大的時間資源和計算資源[6]。利用Inception-V3模型進行遷移學習,將該模型對圖像分類的優(yōu)勢發(fā)揮在水果圖像識別上,使水果圖像的分類識別更加快速準確。
遷移學習訓練過程主要包含以下幾個步驟:數(shù)據(jù)集建立、模型準備、分類器設計及模型遷移訓練。
數(shù)據(jù)集包括六類水果(蘋果、香蕉、獼猴桃、芒果、柑橘、梨),每一類各1500張圖片,其中1000張作為訓練樣本,500張作為測試樣本。數(shù)據(jù)集主要來源于百度、Google等網(wǎng)站圖片庫,其余部分由相機實景拍攝。根據(jù)需求對圖片進行篩選過濾,最終得到數(shù)據(jù)集。在項目目錄下建立文件夾fruit_photos,包含6個文件夾apple、banana、kiwifruit、mango、orange、pear。
首先下載由Google公司提供的訓練好的Inception-V3模型作為本次遷移學習的預訓練模型,模型文件名為inception_V3.ckpt。
訓練前還要設置訓練相關參數(shù),如模型特征提取后輸出節(jié)點個數(shù)為2048,學習率為0.01,并設置梯度下降的批尺寸(batch)為100,分類個數(shù)為6。
下面將對模型的分類器進行設計,模型采用Softmax分類器,它是在邏輯回歸(Logistic Regression)分類器的基礎上發(fā)展而來的。Softmax作為邏輯回歸在多分類問題上的推廣,能夠一次完成對多個類別的分類任務,Softmax是一種有監(jiān)督的單層神經(jīng)網(wǎng)絡的分類器,目前它一般與深度學習的方法相結合,從而用于分類識別問題。
在Inception-V3模型中,將299×299的圖片作為輸入,經(jīng)過卷積層的處理后輸出圖片特征向量x(i),大小為1×2048。本文將圖片特征向量x(i)與圖片標簽值作為Softmax分類器的輸入,可表示為{x(1),x(2),…,x(m)},有y(i)∈{1,2,…,k},其中m為樣本數(shù),k為水果類別總數(shù)值為6,則針對給定的輸入樣本x(i)被歸為每一類的概率值P可表示為
(1)

Softmax的代價函數(shù)是對函數(shù)中對類標記的k個概率值進行累加,可以表示為
(2)
式中,1{·}為示性函數(shù),當大括號中值為真時,函數(shù)值為1。
在訓練中,利用梯度下降法不斷調(diào)整訓練模型參數(shù)θ,使其能夠最小化代價函數(shù)J(θ),保證收斂到全局最優(yōu)解。
本次訓練是在NVIDIA的Jetson TX2上進行,TX2開發(fā)板如圖3所示,它是一臺基于NVIDIA PascalTM架構的AI單模塊超級計算機,運行Ubuntu 16.04系統(tǒng),運行內(nèi)存4 GB。模型訓練中,定義訓練迭代次數(shù)為5000次,學習率為0.01。每隔100次進行一次權值調(diào)整,并輸出測試準確率。

圖3 NVIDIA Jetson TX2開發(fā)板
為了更加方便地查看模型訓練過程,訓練過程中每隔200次設立一個檢查點,對測試集中數(shù)據(jù)進行測試,輸出測試準確率,最后保存模型和測試摘要,訓練最終輸出結果如圖4所示,經(jīng)過5000次迭代次數(shù),訓練結果準確率為98.5%。
3.1誤差值與準確率分析
模型訓練過程中的損失值(loss)和準確率(accuracy)是判斷模型性能的重要指標,損失值為模型預測值與真實值的差距,即代價函數(shù)中的J(θ)[7],準確率為訓練過程中每次迭代后測試的準確率。

圖4 訓練最終輸出結果
利用TensorFlow框架的可視化模塊Tensorboard,可以在Web界面上來查看通過訓練數(shù)據(jù)生成的曲線,下面將對比在不同迭代次數(shù)下loss的值,如圖5所示,當?shù)螖?shù)為1000次時,loss為0.18;當?shù)螖?shù)為3000時,loss為0.13;當?shù)螖?shù)大于3000時,loss為0.11。

圖5 不同迭代次數(shù)的loss
訓練過程中準確率的變化曲線如圖6所示,圖中已對曲線進行平滑濾波處理,在水果數(shù)據(jù)集遷移訓練過程中,訓練準確率在迭代次數(shù)為1000次左右時迅速提升至95%,之后經(jīng)過4000次的迭代,訓練過程中accuracy緩慢提升至98.5%。
根據(jù)實驗,在相同水果圖像數(shù)據(jù)樣本下,將Inception-V3模型遷移學習的識別效果與采用傳統(tǒng)機器學習的方法[8]進行對比,識別準確率如表1所示。

表1 不同方法水果識別準確率
通過表1數(shù)據(jù)分析可以看出,采用基于CNN的Inception-v3模型遷移學習的方法,相對于傳統(tǒng)方法識別準確率上有很大提升。由于傳統(tǒng)方法在提取特征過程中需要有豐富的人為經(jīng)驗,這就造成了傳統(tǒng)方法特征提取存在著很大的不確定性,而且傳統(tǒng)方法還存在著復雜的調(diào)參過程,很大程度上增加了訓練時間。利用Inception-V3模型遷移學習可以在較好的分類模型內(nèi)進行參數(shù)微調(diào),快速提升分類識別準確率。
本節(jié)將對訓練好的網(wǎng)絡模型進行實時分類測試。在測試中,將攝像頭實時拍攝到的水果圖片輸入到訓練好的模型中進行識別,測試輸出顯示水果圖片并輸出預測概率和預測分類結果,圖7為水果圖片,圖8中預測概率值分別對應蘋果、香蕉、芒果、獼猴桃、柑橘、梨,最終預測水果類型為芒果(mango)。

圖7 測試圖像顯示

圖8 測試程序結果圖
本文提出基于CNN的Inception-V3模型遷移學習的圖像分類方法,在遷移預訓練好的CNN模型到小目標集時,保留原有卷積層結構并搭建新的Softmax分類器對數(shù)據(jù)進行分類。利用遷移學習的Inception-V3模型較傳統(tǒng)水果分類算法水果識別準確率明顯提升。所設計的水果實時分類算法,可用于蘋果、香蕉、獼猴桃、芒果、柑橘、梨六類水果的實時識別,在智慧農(nóng)業(yè)等方面具有很好應用前景。本文中訓練集和測試集均采用相似光強的水果圖片,但在實際應用中,采集的圖像往往受光照、旋轉(zhuǎn)、遮擋等因素的影響,后期可針對這些影響因素進行水果分類識別研究。