劉新宇 郝同盟 張紅濤 逯芯妍
(華北水利水電大學電力學院,河南 鄭州 450011)
煙葉分級是根據(jù)烤煙的外觀質(zhì)量特征,如煙葉的部位、顏色、成熟度、身份、油分等多種特征來分級[1-3]。目前,煙葉分級系統(tǒng)的難點之一在于對不同姿態(tài)、不同等級、不同產(chǎn)地煙梗部位的精準識別。煙葉含梗率是指煙葉中煙梗占有的比例,含梗率與煙梗粗細、葉片厚薄有關(guān)。部位不同含梗率差異很大(下部最高,中部次之,上部最低[4])。烤煙含梗率一般約為25%。含梗率高低影響著煙葉的使用價值,反映煙葉可用性大小。傳統(tǒng)煙葉分級主要依靠專家經(jīng)驗,依靠人的感官來判斷煙葉的品級,效率低,成本高,很難保證煙葉分級的客觀性和正確性,越來越無法滿足煙草行業(yè)對煙葉質(zhì)量的要求。此外,由于烤煙的特性,經(jīng)過烤煙收集上來的煙葉由于煙油等因素的影響往往會粘連在一起,給煙葉分級智能化帶來了不利影響。
基于機器學習技術(shù)的發(fā)展與計算機算力的不斷提升,利用機器學習對農(nóng)業(yè)進行輔助生產(chǎn)成為了卷煙生產(chǎn)、加工的新方向[4-7]。朱文魁等[8]采用低能X射線透射成像,結(jié)合形態(tài)學濾噪、灰度閾值分割等方法對煙梗識別率達到94.5%。崔云月等[9]基于BP神經(jīng)網(wǎng)絡(luò)利用煙梗的灰度占比作為輸入實現(xiàn)了誤差為3.91%的煙梗長短檢測率。宋洋等[10]利用MPC08SP四軸運動控制卡,基于Visual C++底層控制程序?qū)崿F(xiàn)了煙把的智能定位。席建平等[11]利用煙葉、煙梗在X光下的透射率不同的特性,基于FPGA圖像處理實現(xiàn)了90%的煙梗檢測率。湯龍[12]采用高功率紅外透射光源,基于灰度算法實現(xiàn)了檢測率82%的煙梗檢測。鄭茜等[13]基于高頻低強度震動技術(shù),以高頻低強度激振力實現(xiàn)分選篩的往復運動實現(xiàn)了煙梗的選篩。上述煙梗識別模型都借用了傳統(tǒng)機器學習識別手段,其大多數(shù)根據(jù)煙梗在高能量光線下透視的物理特性來輔助煙梗的檢測識別,當下關(guān)于煙梗識別的研究關(guān)注點在于卷煙加工生產(chǎn)過程中的煙梗的剔除,雖都提高了檢測的精度,但未提高檢測效率。因為目前煙草行業(yè)的智能煙葉分級項目處于研發(fā)且保密階段。公開的煙梗定位研究資料較少,而眾多文獻對于煙葉智能分級系統(tǒng)的關(guān)注點都在于對單片煙葉的分類識別,對煙梗識別定位缺乏一定的關(guān)注。
試驗擬以YOLOv3為基礎(chǔ)網(wǎng)絡(luò),在主干網(wǎng)絡(luò)引入新的單元模塊以增強網(wǎng)絡(luò)的特征提取,使用Swish激活函數(shù)提高語義信息的利用來提高網(wǎng)絡(luò)精度,通過卷積網(wǎng)絡(luò)視覺處理來提高煙梗檢測的準確率與檢測效率,以期為煙葉智能化分級提供先決條件。
目標檢測算法主要分為兩大類別,一類是兩階段的目標檢測器,即基于候選區(qū)域的目標檢測,另一類是單階段的目標檢測器,即將目標檢測任務(wù)作為回歸處理的檢測算法[9-13]。YOLO系列算法是在RCNN的基礎(chǔ)上提出來的,屬于典型的單目標檢測算法,其優(yōu)點是省略了候選區(qū)域生成的步驟,通過檢測目標的位置輸入,將目標分類與位置回歸問題融合到一個卷積網(wǎng)絡(luò)中,提高了目標檢測的速度,增強其工程應用性[14-16]。YOLOv3網(wǎng)絡(luò)是在YOLOv2的網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上改進而來的,其將YOLOv2的主干特征提取網(wǎng)絡(luò)由Darknet-19更換為效果更好的Darknet-53。YOLOv3的結(jié)構(gòu)圖如圖1所示,其特征提取模塊由Darknet-53網(wǎng)絡(luò)與多尺度融合模塊構(gòu)成,通過Darknet-53主干網(wǎng)絡(luò)對輸入圖像的特征壓縮,分別提取經(jīng)過壓縮3次,4次,5次作為后續(xù)網(wǎng)絡(luò)的輸入,得到13×13,26×26,52×52 3個不同大小尺度的特征圖。為了提取更多有效的特征信息YOLOv3通過上采樣的方式,將52×52與26×26的特征圖進行融合,同時將26×26與13×13的特征圖進行融合。通過交互層進行特征融合構(gòu)建特征金字塔模型,提取更深層次的語義信息,有利于提高網(wǎng)絡(luò)的檢測精度。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Figure 1 YOLOv3 network structure
卷積網(wǎng)絡(luò)中通過加深網(wǎng)絡(luò)層數(shù),與加寬網(wǎng)絡(luò)結(jié)構(gòu)來提升網(wǎng)絡(luò)的整體性能,但層數(shù)的增加往往伴隨著特征信息的高度提煉與丟失[17-20]。針對在網(wǎng)絡(luò)訓練過程隨著網(wǎng)絡(luò)層數(shù)增加梯度消失問題,DenseNet網(wǎng)絡(luò)如圖2所示,其引入DenseBlock模塊,DenseBlock模塊的使用使網(wǎng)絡(luò)每層計算量減少,特征得以重復利用。DenseNet使一層的輸入直接影響到之后的所有層,提高網(wǎng)絡(luò)的特征信息的利用,其輸出為:
圖2 DenseNet網(wǎng)絡(luò)結(jié)構(gòu)Figure 2 DenseNet network structure
Xn=Hn([X0,X1,…,Xn-1]),
(1)
式中:
[X0,X2,…,Xn-1]——特征圖像(feature map)以通道維度合并后的特征圖;
Hn——特征拼接函數(shù);
Xn——經(jīng)特征拼接后的特征圖。
DenseNet-53主要有兩個特性:① 在一定程度上減輕在訓練過程中梯度消散的問題。在反傳時每一層都會接收其后所有層的梯度信號,不會隨著網(wǎng)絡(luò)深度的增加,靠近輸入層的梯度會變得越來越小。② 由于大量的特征被復用,使得使用少量的卷積核就可以生成大量的特征,最終模型的參數(shù)也會減少,有利于提高網(wǎng)絡(luò)的識別速度。
在傳統(tǒng)YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)中使用Leakyrelu激活函數(shù)如式(2),Leakyrelu的作用在于反向傳播過程中,對于LeakyReLU激活函數(shù)輸入小于零的部分,也可以計算得到梯度避免上述梯度方向鋸齒問題,但如圖3所示,隨著輸入的負值越大,其影響逐漸增大。其對樣本的訓練精度的影響會增大,為避免負樣本的影響率過大的問題,使用Swish激活函數(shù)如式(3),如圖3所示其相對Leakyrelu激活函數(shù)在X負無窮方向更加平滑且在保證有負樣本輸入的前提下,弱化了其對網(wǎng)絡(luò)整體的影響,允許信息深入網(wǎng)絡(luò),提高網(wǎng)絡(luò)精度。
圖3 激活函數(shù)Figure 3 Activation function
(2)
f(x)=x×[1/(1+e-x)]。
(3)
DenseNet-53中的Dense Block由Bottleneck模塊構(gòu)成,如圖4所示,將原有的Bottleneck模塊結(jié)構(gòu)替換為如圖5所示的結(jié)構(gòu)單元,使用Swish激活函數(shù),在經(jīng)過DepthwiseConv2D升維后,增加了一個關(guān)于通道的注意力機制,利用自注意力機制,可以在模型訓練和預測過程中實現(xiàn)全局參考,最后利用1×1卷積降維后增加一個大殘差邊。利用殘差神經(jīng)網(wǎng)絡(luò)增大神經(jīng)網(wǎng)絡(luò)的深度,通過更深的神經(jīng)網(wǎng)絡(luò)實現(xiàn)特征提取。
圖5 文中使用模塊算法流程Figure 5 This article uses module algorithm flow
D=C?Z,
(4)
式中:
D——經(jīng)注意力機制輸出的特征圖;
Z——輸入X經(jīng)過CV2D卷積核、BN層與Swish激活等網(wǎng)絡(luò)結(jié)構(gòu)的輸出;
C——以Z為輸入經(jīng)過如圖4所示的模塊化卷積、BN層的輸出;
圖4 Bottleneck模塊算法流程Figure 4 Bottleneck module algorithm flow
?——矩陣元素點成。
注意力機制將特征圖像(feature map)中的每個像素作為一個隨機變量,計算所有像素點之間配對的協(xié)方差,根據(jù)每個預測像素在圖像中與其他像素之間的相似性來增強或減弱每個預測像素的值,在訓練和預測時使用相似的像素,忽略不相似的像素,其原理如式(5)~式(7)。
(5)
(6)
(7)
X、Y——隨機變量;
Cov(X,Y)——隨機變量X、Y的協(xié)方差。
采集設(shè)備來源中國煙草總公司職工進修學院,煙葉樣本采集器如圖6所示。
1.高清工業(yè)線陣數(shù)字相機 2.專業(yè)鏡頭 3.高顯色性LED光源 4.煙葉放置平臺 5.試驗平臺 6.滑輪 7.工作站級計算機及iPad 8.高顯色性LED光源控制器圖6 煙葉樣本采集器Figure 6 Tobacco leaf sample collector
試驗共收集到2 500張煙葉樣本,經(jīng)過專家挑選各個地區(qū)的代表樣本,來自不同地區(qū)的42個煙葉樣本等級。
煙梗數(shù)據(jù)集通過Pycharm環(huán)境下labelImg制作,其包含多類數(shù)據(jù)格式文件,樣本集使用PascalVOC格式制作標簽文件,主要標注信息包含煙梗的位置與部位名稱。將制作好的標簽文件存放到Annotations文件夾中,將樣本圖集存入JPEGImages文件夾中。為便于試驗,將煙葉樣本圖像統(tǒng)一變更為416×416像素大小。其中250張樣本作為驗證集,1 575張樣本圖片作為訓練集,675張樣本作為測試集,驗證集與訓練集與測試集樣本比例為10∶63∶27。訓練集與測試集符合7∶3的比率,采用數(shù)據(jù)增強的方法提高網(wǎng)絡(luò)的泛化能力,包括反轉(zhuǎn)180°,亮度調(diào)整,圖片拉伸等。
康復機器人具有不同的康復訓練模式,可以適應不同患者以及患者在不同恢復階段的不同情況?;颊咧鲃影l(fā)起的模式考慮到了患者的意圖和主動參與的能力,較被動模式更有效。許多的證據(jù)證明這種患者-機器人互動的模式對促進患者的恢復非常有效。機器人可以感受到患者的狀態(tài)并且根據(jù)患者的不同狀態(tài)進行順應性的匹配,同時,“按需輔助”的理念在機器人輔助康復中也得到較好的貫徹,機器人只為患者提供必需的輔助以便鼓勵患者得到最大程度的參與[11]。
試驗在Intel I510400f處理器,基礎(chǔ)頻率2.9 GHz,6核12線程,內(nèi)存16 G,顯卡為華碩的1660s的PC上,在Windows系統(tǒng)下利用Pycharm框架進行訓練。訓練所設(shè)置參數(shù)如表1所示。
表1 部分試驗參數(shù)Table 1 Some experimental parameters
從標記的樣本中選取1 575張作為訓練集,675張樣本作測試集,改進前與改進后的模型參數(shù)統(tǒng)一設(shè)置,從零開始訓練,將改進前與改進后的模型做對比試驗,訓練卷積層,全連接層與池化層根據(jù)損失函數(shù)不斷自動反向調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)模型參數(shù),最后到達一個loss函數(shù)的極小值點,訓練時通過Adam算法優(yōu)化初始學習率,設(shè)定網(wǎng)絡(luò)學習率的衰減因子為0.6,當網(wǎng)絡(luò)loss函數(shù)接連兩次不下降時,網(wǎng)絡(luò)的學習率會自動調(diào)整為原來的60%,以助于網(wǎng)絡(luò)的loss函數(shù)跳出局部最優(yōu)解。改進前與改進后網(wǎng)絡(luò)訓練的loss與測試集的val_loss結(jié)果如圖7~圖10所示。
由圖7和圖9可以看出,改進前的YOLOv3的訓練集的loss圖像在第60次迭代后loss函數(shù)變動不大逐漸走向穩(wěn)定,最終收斂于10.31,測試集的val_loss圖像在經(jīng)過80次迭代后逐步穩(wěn)定,最終收斂于11.62。由圖8和圖10可以看出,改進后的YOLOv3模型的測試集loss圖像在第30次迭代后逐步穩(wěn)定,最終收斂于2.95,訓練集的val_loss在第50次迭代后逐步穩(wěn)定,最終收斂于3.162。通過試驗結(jié)果對比可以得出,改進后的YOLOv3模型能更快的收斂,且收斂效果更佳。
圖7 傳統(tǒng)YOLOv3 loss曲線Figure 7 Traditional YOLOv3 loss curve
圖8 改進后YOLOv3 loss曲線Figure 8 The improved YOLOv3 loss curve
圖9 傳統(tǒng)YOLOv3 val_loss曲線Figure 9 Traditional YOLOv3 val_loss curve
圖10 改進后YOLOv3 val_loss曲線Figure 10 Improved YOLOv3 val_loss curve
使用同樣的數(shù)據(jù)集,同樣的測試集樣本輸入至YOLOv3、Faster-rcnn、YOLOv4、Efficientdet與文中算法中,其在經(jīng)100次迭代后,輸入訓練模型,分別選取訓練好的模型參數(shù)載入模型網(wǎng)絡(luò),通過準確率與召回率曲線覆蓋面積的比率(mAP)、準確率(Precision)、召回率(Recall)來衡量模型結(jié)構(gòu),如式(8)所示,其值越高,網(wǎng)絡(luò)的識別效果越好。YOLOv3與文中算法對比如圖11所示,對比分析發(fā)現(xiàn)文中算法其mAP提升7.02%,準確率提升2.02%,回歸率提升11%。
圖11 傳統(tǒng)YOLOv3與改進YOLOv3識別結(jié)果Figure 11 Traditional YOLOv3 and improved YOLOv3 recognition results
(8)
式中:
R——樣本召回率,%;
P——樣本準確率,%;
TP——被判為正類的正類;
FP——正類的負類;
FN——負類的正類。
測試結(jié)果如表2所示。由表2可知:在模型的識別性能上,YOLOv4與改進的YOLOv3模型的準確率與召回率曲線覆蓋面積的比率(mAP)、準確率、回歸率,明顯優(yōu)于傳統(tǒng)YOLOv3、Faster-rcnn與Efficientdet模型;在模型權(quán)重大小上,改進后的算法與Efficientdet相對輕量化,大幅提高了網(wǎng)絡(luò)的可移植性,減少后期工程應用中對設(shè)備的配置要求,具有一定的經(jīng)濟效應;在識別速率上,改進后的算法與YOLOv3、Faster-rcnn、YOLOv4、Efficientdet的識別速率(FPS)差值分別為+1、+6、+3、-1。通過表2的試驗結(jié)果綜合對比分析,在識別速率與模型輕量化上,Efficientdet與改進后的算法存在明顯的優(yōu)勢,但Efficientdet的識別效果相對較差;在識別的準確度上,改進后的算法在準確度與回歸值的對比中分別高出YOLOv4 1.16%,1.26%。出于工程實際的需求,復雜的網(wǎng)絡(luò)結(jié)構(gòu)需要配置性能更加優(yōu)異的煙梗識別工作站,從模型的可移植性、識別速率、識別效果、工程中的經(jīng)濟效應來考慮,改進后的YOLOv3模型更加適用于智能煙葉分級系統(tǒng)的布置。
表2 煙梗識別模型對比Table 2 Comparison of tobacco stem recognition models
為方便以后煙梗的抓取工作通過BOX的坐標定位煙梗位置坐標Xmin、Ymin、Xmax、Ymax,輸出煙梗的中心位置坐標Y如式(9)所示,其識別結(jié)果如圖12所示。
圖12 改進模型識別圖Figure 12 Improved model recognition diagram
Y=[(Xmax-Xmin)/2+Xmin,(Ymax-Ymin)/2+Ymin]。
(9)
命名識別率為0.57的框圖為Box1,同理識別率為0.73,0.55,0.88分別為Box2,Box3與Box4,其煙梗中心輸出結(jié)果如表3所示。
表3 識別輸出坐標Table 3 Identify Output Coordinates
提出了一種改進的YOLOv3的煙梗識別定位檢測算法,經(jīng)專家選取代表性煙葉制作數(shù)據(jù)樣本,在數(shù)據(jù)源頭上提高模型的性能,訓練后得到的煙梗檢測模型優(yōu)于YOLOv3、Faster-rcnn、YOLOv4、Efficientdet等煙梗識別定位模型,能在對智能煙葉分類平臺硬件需求配置最低的基礎(chǔ)上,滿足回歸率、準確率、準確率與召回率曲線覆蓋面積的比率的需求,具有較好的實用性與經(jīng)濟性。由于不同煙葉產(chǎn)地煙葉樣本同等級之間個體差異巨大,自主采集,制作煙葉樣本數(shù)據(jù)集存在一定難度,對模型的驗證實驗的不同產(chǎn)地的樣本太少,存在一定的誤檢率,后續(xù)工作中將提高不同產(chǎn)地的煙葉樣本的采集,進一步提高模型的泛化能力。