董 燕,李環(huán)宇,李衛(wèi)杰,李春雷,劉洲峰
(中原工學(xué)院電子信息學(xué)院,河南 鄭州 450007)
種子純度直接影響種子育種和后續(xù)加工產(chǎn)品的質(zhì)量,如種子收獲和貯藏過程中,可能會(huì)混入許多雜質(zhì)或雜交種,給農(nóng)業(yè)生產(chǎn)及加工帶來不同程度的經(jīng)濟(jì)損失。因此,需要對(duì)種子中的雜質(zhì)和雜交種進(jìn)行分選,以保證農(nóng)作物種子的純度達(dá)到市場標(biāo)準(zhǔn)。傳統(tǒng)人工分選方式存在分選效率低、人工成本高等不足,而基于機(jī)器視覺的自動(dòng)分選方法,已經(jīng)成為目前研究的熱點(diǎn)。傳統(tǒng)種子自動(dòng)分選方法基于手工設(shè)計(jì)特征進(jìn)行圖像表征,如顏色、紋理和形狀等特征,然后選擇分類器如支持向量機(jī)(Support vector machine,SVM)、線性判別分析(Linear discriminant analysis,LDA)和人工神經(jīng)網(wǎng)絡(luò)(Artificial neural network,ANN)等來實(shí)現(xiàn)種子的分類[1-3],這類識(shí)別需要依賴專業(yè)知識(shí)針對(duì)不同種子特點(diǎn)設(shè)計(jì)特征提取方法,泛化能力和魯棒性較差。
近年來深度學(xué)習(xí)在圖像分類[4]、目標(biāo)檢測[5]及圖像分割[6]等多個(gè)領(lǐng)域取得了顯著的效果。其中以卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)為代表的深度學(xué)習(xí)模型無需經(jīng)過繁瑣的預(yù)處理、特征選擇等中間建模過程,由數(shù)據(jù)驅(qū)動(dòng)自動(dòng)提取一些深層的抽象特征,減少了人工設(shè)計(jì)特征的不完備性。許多研究學(xué)者將Vgg[7]、ResNet[8]和GoogleNet[9]等經(jīng)典的CNN 網(wǎng)絡(luò)模型運(yùn)用到植物病害檢測和農(nóng)作物類型劃分等方面,并取得了比傳統(tǒng)識(shí)別方法更好的效果[10-13]。如朱榮勝等[12]構(gòu)建一個(gè)簡單的6 層卷積神經(jīng)網(wǎng)絡(luò)用于對(duì)正常和異常大豆種子的識(shí)別,實(shí)現(xiàn)了98.8%的識(shí)別準(zhǔn)確率。HUANG 等[13]利用Vgg19和GoogleNet 對(duì)玉米種子缺陷進(jìn)行分類,并分析了2個(gè)不同深度的網(wǎng)絡(luò)對(duì)玉米缺陷識(shí)別性能的影響。
基于CNN 的農(nóng)作物識(shí)別分類方法性能依賴于模型深度,因此,研究者往往依靠提升模型復(fù)雜度來提高檢測識(shí)別系統(tǒng)的性能。然而隨著網(wǎng)絡(luò)深度的增加,模型的參數(shù)量和計(jì)算量增大,導(dǎo)致模型推理速度變慢,難以有效部署到計(jì)算資源受限的邊緣設(shè)備上,特別是吞吐量較高的種子分選系統(tǒng)。此外,研究表明,現(xiàn)有的過度參數(shù)化卷積神經(jīng)網(wǎng)絡(luò)模型存在大量的參數(shù)冗余,導(dǎo)致計(jì)算資源和存儲(chǔ)資源的浪費(fèi)。為了能夠有效減少神經(jīng)網(wǎng)絡(luò)的計(jì)算量和內(nèi)存占用,深度模型壓縮提供了一種有效的解決思路,如神經(jīng)網(wǎng)絡(luò)搜索、低秩近似、剪枝和量化等。其中,神經(jīng)網(wǎng)絡(luò)剪枝具有操作簡單、實(shí)施高效、可降低網(wǎng)絡(luò)復(fù)雜度和解決過擬合問題等優(yōu)勢,成為了卷積神經(jīng)網(wǎng)絡(luò)模型壓縮的主流方法。
卷積神經(jīng)網(wǎng)絡(luò)剪枝方法可實(shí)現(xiàn)權(quán)重參數(shù)[14]、通道(濾波器)[15-16]和卷積層[17-18]等3 種模式的剪枝。HAN 等[14]根據(jù)神經(jīng)元連接權(quán)重參數(shù)的范數(shù)值大小,刪除范數(shù)小于閾值的連接,并重新訓(xùn)練恢復(fù)性能。盡管這種細(xì)粒度的剪枝方法壓縮率高,靈活性大,但需要配合專門做稀疏矩陣運(yùn)算的軟硬件才能達(dá)到實(shí)用效果。而基于濾波器和卷積層的剪枝,靈活性較高而且不用相應(yīng)的軟硬件配合,因此被廣泛研究。但是濾波器剪枝方法沒有明顯降低數(shù)據(jù)訪問頻率,模型推理速度的提升有限,而卷積層剪枝在計(jì)算效率方面具有顯著優(yōu)勢。鑒于此,利用易于部署的Vgg 網(wǎng)絡(luò)模型,提出一種通道和卷積層聯(lián)合剪枝的方法,在實(shí)現(xiàn)模型壓縮的同時(shí),提升算法執(zhí)行效率,最后利用知識(shí)蒸餾技術(shù)(Knowledge distilling,KD)[19]對(duì)剪枝網(wǎng)絡(luò)進(jìn)行知識(shí)遷移,補(bǔ)償網(wǎng)絡(luò)因?yàn)榧糁Χ斐傻木葥p失,為開發(fā)基于嵌入式設(shè)備的種子分選識(shí)別系統(tǒng)提供模型構(gòu)建技術(shù)支持。
針對(duì)現(xiàn)有卷積神經(jīng)網(wǎng)絡(luò)模型參數(shù)量和計(jì)算量高使其難以有效部署的問題,提出一種基于通道和卷積層聯(lián)合剪枝的模型壓縮方法用于種子分選,其過程如圖1所示。在通道剪枝階段,對(duì)BN層參數(shù)進(jìn)行稀疏正則化訓(xùn)練,迫使冗余通道的比例因子趨于0,獲得稀疏的卷積神經(jīng)網(wǎng)絡(luò)模型,并將BN 層的特征縮放系數(shù)作為衡量通道重要性的標(biāo)準(zhǔn),通過手工選取最優(yōu)閾值,實(shí)現(xiàn)最大限度無損壓縮。在層剪枝階段實(shí)現(xiàn)最大限度的通道剪枝壓縮,通過自適應(yīng)平均池化和全連接層為每個(gè)中間層構(gòu)造一個(gè)線性分類器,即線性探針[20],然后基于預(yù)定義的閾值來去除貢獻(xiàn)小的卷積層。最后利用知識(shí)蒸餾技術(shù)提高修剪模型的性能。最終在保持模型識(shí)別精度及提升模型推理速度的同時(shí),實(shí)現(xiàn)將復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型壓縮為更緊湊的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 基于通道和卷積層聯(lián)合剪枝的模型壓縮方法示意圖Fig.1 Schematic diagram of model compression method based on joint pruning of channels and convolutional layers
1.1.1 卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建 Vgg 網(wǎng)絡(luò)具有結(jié)構(gòu)簡單、模型推理速度快和易于部署等優(yōu)點(diǎn),在工業(yè)界和學(xué)術(shù)界被廣泛使用[21]。本研究利用一種改進(jìn)Vgg16 作為特征提取網(wǎng)絡(luò)[22],其采用自適應(yīng)平均池化替換3 層的全連接網(wǎng)絡(luò)結(jié)構(gòu),極大減少了模型參數(shù),使得模型抗過擬合能力更強(qiáng),并提升了模型訓(xùn)練速度。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。卷積層主要用于特征提取,其中低卷積層可表征種子的邊緣、角點(diǎn)、顏色等細(xì)節(jié)紋理信息,高層卷積更加關(guān)注圖像復(fù)雜特征,比如形狀、輪廓等,通過在卷積運(yùn)算中不斷迭代,從而實(shí)現(xiàn)農(nóng)作物種子特征的有效提取。
圖2 用于種子分選的Vgg16深度模型結(jié)構(gòu)圖Fig.2 Structure diagram of Vgg16 depth model for seed sorting
1.1.2 通道剪枝 通道剪枝方法主要通過分析卷積層通道的重要性,在不損失模型精度的前提下,刪除不重要的濾波器,實(shí)現(xiàn)對(duì)模型的壓縮。其中,如何衡量通道重要性是模型壓縮的關(guān)鍵。由于BN層具有加速收斂和正則化的作用,所以廣泛存在于卷積神經(jīng)網(wǎng)絡(luò)中。因此,選用BN 層縮放因子作為衡量通道重要性的標(biāo)準(zhǔn),通過引入通道稀疏正則化訓(xùn)練,迫使冗余通道的比例因子趨于0,然后移除小于設(shè)定閾值對(duì)應(yīng)的次要通道,從而進(jìn)行模型壓縮[16],具體過程如圖3所示。
圖3 通道剪枝示意圖Fig.3 Schematic diagram of channel pruning
BN 層的比例因子代表對(duì)應(yīng)通道的激活程度,其計(jì)算方法如公式(1)所示:
其中,zin和zout分別是BN 層的輸入和輸出,B表示當(dāng)前的批量大小,μB和σB分別為輸入的激活值均值與方差,γ和β分別為對(duì)應(yīng)激活通道的縮放系數(shù)和偏移系數(shù)。為了便于剪枝且保持模型精度,本研究在損失函數(shù)中添加了懲罰因子,對(duì)BN 層的比例因子進(jìn)行約束,將模型稀疏化,則損失函數(shù)可表示如公式(2):
其中,x和y是訓(xùn)練的輸入和輸出,W是模型權(quán)重參數(shù),l[f(x,W),y]是原損失函數(shù),λ是正則化系數(shù),λ越大,約束力度越大,R(γ) = |γ|表示正則化范數(shù)。由于L1范數(shù)正則化具有稀疏解特性,適合關(guān)鍵特征的選擇,因此,選用L1 范數(shù)對(duì)比例因子進(jìn)行約束求解,從而使不重要特征通道對(duì)應(yīng)的比例因子置為零或逼近零,便于剪枝操作。
然后根據(jù)計(jì)算出的剪枝閾值θ將符合剪枝要求的濾波器進(jìn)行修剪,從而生成剪枝后的精簡模型。最后,通過對(duì)剪枝后的模型進(jìn)行微調(diào),以恢復(fù)損失的準(zhǔn)確率。
1.1.3 層剪枝 通道剪枝在保證模型精度的前提下,實(shí)現(xiàn)對(duì)模型的壓縮,然而由于網(wǎng)絡(luò)深度使數(shù)據(jù)讀寫頻繁,模型推理速度改善有限。層剪枝技術(shù),可實(shí)現(xiàn)在壓縮模型的同時(shí),顯著提升模型計(jì)算效率。因此,提出通道和卷積層聯(lián)合剪枝的方法。在通道剪枝的基礎(chǔ)上,采用層剪枝進(jìn)一步對(duì)模型壓縮處理。
層剪枝主要通過評(píng)價(jià)不同卷積層的重要程度,刪除不重要的卷積層,進(jìn)而實(shí)現(xiàn)對(duì)模型的裁剪。現(xiàn)有基于層剪枝的方法是粗粒度的,由于不同種類的種子區(qū)分度小,導(dǎo)致種子識(shí)別精度下降明顯。實(shí)際上,中間卷積層包括更多與任務(wù)相關(guān)的重要信息,通過分析層與層直接的關(guān)聯(lián)性,可以實(shí)現(xiàn)更為準(zhǔn)確的剪枝,從而保持識(shí)別精度。因此,提出一種基于線性探針的層剪枝方法,利用層之間的關(guān)聯(lián)性,在盡可能保持模型精度的前提下,實(shí)現(xiàn)模型剪枝并提升推理速度。
該方法使用一個(gè)全連接層作為線性分類器來評(píng)估各卷積層的有效性。由于每一層都有不同的輸出特征形狀,因此采用自適應(yīng)平均池化統(tǒng)一嵌入長度,從而使每個(gè)卷積層輸出尺寸相同的特征圖:
其中,Mi為i(1 ≤i≤L)層輸出的特征圖,自適應(yīng)平均池化將輸出特征圖的Mi減少為Ei∈Rn×d×d,最后通過flatten(·)函數(shù)將每層輸出轉(zhuǎn)化為向量ti,送入線性分類器fi(ti),具體如公式(5)(6)所示:
其中,wi和bi分別為線性分類器的權(quán)重和偏置項(xiàng)。在訓(xùn)練線性層時(shí),首先固定已經(jīng)訓(xùn)練好的原始網(wǎng)絡(luò)參數(shù),然后通過反向傳播對(duì)線性分類器進(jìn)行逐層的微調(diào),每一層得到最佳識(shí)別精度,將相鄰層最佳識(shí)別精度的差值作為評(píng)價(jià)卷積層重要性的指標(biāo),然后基于預(yù)定義的閾值χ來去除不重要的卷積層。具體算法實(shí)現(xiàn)流程如表1所示。
表1 基于線性探針的層剪枝算法實(shí)現(xiàn)流程Tab.1 Implementation process of layer pruning algorithm based on linear probe
1.1.4 知識(shí)蒸餾 經(jīng)過剪枝后,得到了一個(gè)更加緊湊的網(wǎng)絡(luò)模型。然而由于剪枝過程中,不可避免地?fù)p失了部分有效信息,導(dǎo)致模型性能有所下降。知識(shí)蒸餾技術(shù)可以將原始模型學(xué)習(xí)到的豐富特征信息遷移到剪枝后的小模型上,進(jìn)而提升其性能。因此,采用知識(shí)蒸餾技術(shù)[19],提升壓縮模型的性能。
教師模型為訓(xùn)練出過參數(shù)化的原始模型,學(xué)生模型為經(jīng)過通道和層聯(lián)合剪枝生成的緊湊模型。通過在原始損失函數(shù)中引入附加項(xiàng)(即兩模型的輸出結(jié)果的差),實(shí)現(xiàn)大模型對(duì)小模型的指導(dǎo),從而提升小模型性能。具體實(shí)現(xiàn)可描述如下,通過在Softmax 層引入溫度參數(shù)T使輸出變得更加平滑,以突出不同類別的信息表征,具體如公式(6)所示:
其中,zi為Softmax 層輸出的類別概率,exp(·)為指數(shù)運(yùn)算,qi是得到的教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)軟目標(biāo)輸出,然后通過作差得到蒸餾損失,作為目標(biāo)損失的附加項(xiàng)。除此以外,學(xué)生網(wǎng)絡(luò)還存在與真實(shí)標(biāo)簽值之間的損失項(xiàng)。所以學(xué)生網(wǎng)絡(luò)的最終目標(biāo)函數(shù)為兩者的加權(quán)平均,具體如公式(7)所示:
其中,S(x;W)為學(xué)生網(wǎng)絡(luò)總損失函數(shù),x為輸入,W為學(xué)生網(wǎng)絡(luò)權(quán)重參數(shù),H為交叉熵函數(shù),y為數(shù)據(jù)集真標(biāo)簽,q(·)為上式的軟目標(biāo)函數(shù),η與δ分別是相應(yīng)損失項(xiàng)的系數(shù),zt與zs分別為教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)的Softmax 層輸出的類別概率。最終通過迭代訓(xùn)練,實(shí)現(xiàn)大模型對(duì)小模型的指導(dǎo),從而提升小模型性能。
1.1.5 模型訓(xùn)練 本研究基于分類模型配置網(wǎng)絡(luò)參數(shù),并通過反向傳播損失函數(shù)的梯度來更新網(wǎng)絡(luò)權(quán)重。輸入圖片尺寸224×224,并使用小批量隨機(jī)梯度下降(SGD)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,正則化系數(shù)λ設(shè)為0.000 1,初始學(xué)習(xí)率為0.001,Batch_size 為16,Epoch 為64,在1/2 和3/4 的步數(shù)中學(xué)習(xí)率調(diào)整為原來的1/10,動(dòng)量參數(shù)設(shè)為0.9,權(quán)重衰減參數(shù)設(shè)為0.000 1。在進(jìn)行知識(shí)蒸餾時(shí)溫度參數(shù)T為3,δ為0.3。此外還采用了水平、豎直翻轉(zhuǎn)和旋轉(zhuǎn)等方法進(jìn)行數(shù)據(jù)增強(qiáng)。
本研究中建模及模型訓(xùn)練在Ubuntu 18.04系統(tǒng)上進(jìn)行。軟件主要基于深度學(xué)習(xí)架構(gòu)的Pytorch 和Python 開發(fā)環(huán)境的Spyder。硬件基于英特爾(R)酷睿(TM)i7-6770K@4.00 GHz CPU 和1 個(gè)NVIDIA GTX1080 圖形處理器,并采用CUDA10.0 進(jìn)行加速。為了評(píng)價(jià)模型性能,采用的評(píng)價(jià)指標(biāo)有準(zhǔn)確度、參數(shù)量、計(jì)算量和推理速度(ms/p)。
為驗(yàn)證基于通道和卷積層聯(lián)合剪枝的模型壓縮方法的自適應(yīng)性,選用公開的玉米種子數(shù)據(jù)集及自建的紅蕓豆數(shù)據(jù)集進(jìn)行試驗(yàn)。
1.2.1 玉米種子數(shù)據(jù)集 玉米種子數(shù)據(jù)集是土耳其薩卡里亞玉米研究所公開的單倍體和雙倍體玉米種子數(shù)據(jù)集,包括3 000 個(gè)RGB 圖像的玉米種子[23]。在該數(shù)據(jù)集中,有1 230個(gè)單倍體種子圖像和1 770 個(gè)雙倍體種子圖像。根據(jù)種子的大小,數(shù)據(jù)集中圖像的分辨率在300×289 像素和610×637 像素之間變化,典型圖像如圖4 所示。選用861 幅單倍體圖像和1 239 幅雙倍體圖像作為訓(xùn)練集,其余圖像用于測試。
圖4 玉米種子數(shù)據(jù)集Fig.4 Maize seed dataset
1.2.2 紅蕓豆數(shù)據(jù)集 玉米種子數(shù)據(jù)集是針對(duì)二分類種子分選問題。為了驗(yàn)證基于通道和卷積層聯(lián)合剪枝的模型壓縮方法在多分類種子分選任務(wù)中的有效性,自建了紅蕓豆種子數(shù)據(jù)集。采集設(shè)備為1 臺(tái)1/2.5CMOS 相機(jī),采用白色環(huán)形光源進(jìn)行補(bǔ)光,并利用白色背景板使紅蕓豆種子和背景更容易區(qū)分。按照企業(yè)對(duì)紅蕓豆品質(zhì)分級(jí)的要求,將紅蕓豆樣本圖像分為豐滿豆、破皮豆、干癟豆和破損豆4類,典型圖像如圖5 所示。共計(jì)采集3 831 張,其中豐滿豆1 661 張、破皮豆509 張、干癟豆1 173 張、破損豆488張,其中訓(xùn)練集與測試集的比例為7∶3。
圖5 紅蕓豆數(shù)據(jù)集Fig.5 Red kidney bean dataset
首先在紅蕓豆和玉米種子數(shù)據(jù)集上對(duì)模型進(jìn)行訓(xùn)練,其結(jié)果如表2 所示。其中Vgg16_B 為基準(zhǔn)網(wǎng)絡(luò),Vgg16_S 指加入L1 正則項(xiàng),目的是使不重要特征通道對(duì)應(yīng)的比例因子置為零或逼近零,便于通道剪枝。從結(jié)果可以看出,加入稀疏正則化使紅蕓豆和玉米種子分類準(zhǔn)確度分別為97.56% 和96.78%。
表2 Vgg16在加入正則化前后結(jié)果對(duì)比Tab.2 Comparison of Vgg16 results before and after regularization
將稀疏訓(xùn)練后的模型進(jìn)行通道剪枝以獲取更緊湊的網(wǎng)絡(luò)模型,從圖6可以看到,經(jīng)過剪枝的神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確度甚至高于原始網(wǎng)絡(luò),這是因?yàn)樵寄P蛥?shù)是冗余的,并不是一個(gè)最優(yōu)網(wǎng)絡(luò)的結(jié)構(gòu),而神經(jīng)網(wǎng)絡(luò)修剪本質(zhì)是一個(gè)最優(yōu)子網(wǎng)絡(luò)結(jié)構(gòu)搜索問題(Neural architecture search,NAS),所以經(jīng)過修剪的模型,甚至可以達(dá)到比原始模型更優(yōu)的結(jié)果。同時(shí)也可以觀察到,當(dāng)通道剪枝比例設(shè)置過小,節(jié)省的資源會(huì)很有限;設(shè)置過大時(shí),會(huì)因剪掉過多的通道而導(dǎo)致模型性能顯著下降。綜合考慮準(zhǔn)確率與模型尺寸之間的平衡,本研究選擇了兩者的最佳折衷點(diǎn),即玉米種子和紅蕓豆數(shù)據(jù)集都以60%的剪枝率進(jìn)行修剪。2種數(shù)據(jù)集在該比例下的通道剪枝結(jié)果如表3所示,在該剪枝比例下,原始模型的參數(shù)是剪枝模型的5 倍以上,而且計(jì)算量僅是原始模型的17.35%(紅蕓豆)和16.44%(玉米種子),同時(shí)精度并沒有明顯降低,甚至在玉米種子數(shù)據(jù)集下模型性能得到了一定程度的提升。
圖6 通道剪枝比例對(duì)識(shí)別準(zhǔn)確度的影響Fig.6 The influence of the pruning ratio on the recognition accuracy
表3 60%通道剪枝試驗(yàn)結(jié)果Tab.3 Experimental results after 60%channels were pruned
層剪枝技術(shù)可實(shí)現(xiàn)在模型壓縮的同時(shí)顯著提升模型推理速度。由于不同種子差別體現(xiàn)在紋理、形狀及邊緣等低層特征,而高層語義特征對(duì)種子分選性能影響很小。因此可以對(duì)高層特征進(jìn)行直接剪枝操作;對(duì)于低層特征,本研究提出基于線性探針的層剪枝方法對(duì)模型進(jìn)一步壓縮。為了驗(yàn)證不同層對(duì)識(shí)別的影響,根據(jù)表1 算法,將閾值設(shè)為0.4,在紅蕓豆和玉米種子數(shù)據(jù)集上利用通道剪枝后的網(wǎng)絡(luò)模型,生成卷積層的診斷結(jié)果。如圖7 所示,虛線是驗(yàn)證精度,對(duì)識(shí)別貢獻(xiàn)較小的層采用網(wǎng)格柱表示,對(duì)識(shí)別貢獻(xiàn)度大的層采用條紋柱表示。通過特征診斷可視化,突出顯示了修剪后的層次,依據(jù)該結(jié)果,在紅蕓豆和玉米種子數(shù)據(jù)集上分別刪除第10、11、12、13 和第6、7、9、10、11、12 層,這也驗(yàn)證了高層語義特征對(duì)種子分選性能影響較小的結(jié)論。
圖7 通道剪枝后模型線性探針診斷結(jié)果Fig.7 The results of linear probe diagnosis of the model after channel pruning
表4對(duì)比原始稀疏模型Vgg16_S(teacher)、直接訓(xùn)練層剪枝后模型Vgg16_Pruned 和利用知識(shí)蒸餾技術(shù)訓(xùn)練層剪枝后模型Vgg16_Pruned(student)的試驗(yàn)結(jié)果??梢钥闯觯狙芯刻岢龅纳疃饶P蛪嚎s方法能夠顯著降低計(jì)算成本,并取得與原始深度模型相當(dāng)?shù)男阅?。例如,在紅蕓豆和玉米種子數(shù)據(jù)集上,所提出的方法使模型計(jì)算量減少86.55%(紅蕓豆)和91.55%(玉米)的情況下,模型獲得了97.38%(vs.97.56%)和96.56%(vs.96.78%)的分類準(zhǔn)確度。此外,通過知識(shí)蒸餾技術(shù),學(xué)生模型可以充分獲取教師模型中獲取的知識(shí),從而提升模型性能。如表4所示,知識(shí)蒸餾相較于直接訓(xùn)練層剪枝后的模型,準(zhǔn)確度分別提高了0.26(紅蕓豆)、0.56(玉米種子)個(gè)百分點(diǎn)。以上試驗(yàn)結(jié)果表明,采用線性探針去除冗余的特征表示層,并使用知識(shí)蒸餾技術(shù)重新訓(xùn)練修剪后的網(wǎng)絡(luò)結(jié)構(gòu),可得到緊湊而高效的種子分選模型。
表4 剪枝后模型與典型CNN網(wǎng)絡(luò)性能對(duì)比Tab.4 Performance comparison between model after pruning and typical CNN network
將基準(zhǔn)模型Vgg16_B、剪枝蒸餾后網(wǎng)絡(luò)模型Vgg16_Pruned(student)和一些典型卷積網(wǎng)絡(luò)模型( 如AlexNet、ResNet18、ResNet50、DenseNet121、MobileNetv2 和ShuffleNetv2 等)加載到NVIDIA 公司生產(chǎn)的Quadro M5000 GPU進(jìn)行推理速度測試,結(jié)果如表4 所示,其中Vgg16 在聯(lián)合剪枝前后,對(duì)1 張紅蕓豆(玉米種子)圖片的推理速度分別為9.78 ms/p(9.80 ms/p)和3.18 ms/p(2.57 ms/p),提高了2.1 倍(2.8 倍)。與Vgg16_Pruned(student)相比,盡管ResNet50 在玉米數(shù)據(jù)集上獲得了96.89%(vs.96.56%)的分類準(zhǔn)確度,但是參數(shù)量和推理速度分別達(dá)到了23.51 M(vs.0.41 M)和13.15 ms/p(vs.2.57 ms/p),并不利于部署在資源受限的邊緣設(shè)備上。此外,與典型的輕量化網(wǎng)絡(luò)(MobileNetv2、ShuffleNetv2)相比,Vgg16_Pruned(student)在參數(shù)量和計(jì)算量較少的情況下,也得到了最好的分類準(zhǔn)確度和推理速度,如在玉米種子數(shù)據(jù)集上,在參數(shù)量為0.41 M(vs.2.23 M、1.26 M)條件下,學(xué)生網(wǎng)絡(luò)獲得了96.56%(vs. 96.44%、96.33%)的分類準(zhǔn)確度和2.57 ms/p(vs. 12.15 ms/p、14.82 ms/p)的推理速度,這也說明所提方法在實(shí)際部署條件下具有高效性。
為了解決目前用于種子分選的深度學(xué)習(xí)模型參數(shù)量大且執(zhí)行效率不高的難題,本研究結(jié)合模型壓縮和知識(shí)蒸餾技術(shù),提出了一種基于通道和卷積層聯(lián)合修剪網(wǎng)絡(luò)的模型壓縮方法,并應(yīng)用于種子分選問題。結(jié)果表明,在2個(gè)數(shù)據(jù)集上,所提出的方法在使模型計(jì)算量減少86.55%(紅蕓豆)和91.55%(玉米)的情況下,實(shí)現(xiàn)了實(shí)際推理速度2.1 倍和2.8倍的提升,且仍保持較好的識(shí)別準(zhǔn)確度(97.38%和96.56%)。同時(shí),通過在Quadro M5000 GPU 上的試驗(yàn)也證實(shí),壓縮后模型與典型的輕量化CNN 網(wǎng)絡(luò)相比(如MobileNetv2、ShuffleNetv2)在移動(dòng)端設(shè)備上有更好的測試性能和推理速度。
本模型包含著諸多間斷的處理步驟,后期考慮將此過程進(jìn)行串聯(lián),設(shè)計(jì)一種端到端的學(xué)習(xí)模型,并對(duì)模型進(jìn)行量化,為模型部署到移動(dòng)端進(jìn)行農(nóng)作物的分級(jí)分選提供支撐。