肖雷雨,王 澍,劉淵根,張 龍,王 玲,堵勁松,徐大勇*
1.安徽大學(xué)物質(zhì)科學(xué)與信息技術(shù)研究院,合肥市蜀山區(qū)九龍路111 號 230601
2.中科院合肥物質(zhì)科學(xué)研究院,合肥市蜀山湖路350 號 230031
3.中國煙草總公司鄭州煙草研究院,鄭州高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)楓楊街2 號 450001
4.安徽省煙草公司,合肥市政務(wù)區(qū)潛山南路666 號 230072
煙梗作為卷煙的主要原料之一,可以將其加工制成填充值高、燃燒性好的梗絲或梗粒,對于減害降焦、降低配方成本、改善卷煙物理質(zhì)量具有重要作用。因此,長梗率、梗中含葉率、粗梗率、梗頭比例等是衡量卷煙產(chǎn)品質(zhì)量和加工水平的重要指標(biāo),且對切絲后梗絲結(jié)構(gòu)、出絲率、梗簽比例以及卷煙物理質(zhì)量具有顯著影響。針對此,李金學(xué)等[1]研究了梗絲結(jié)構(gòu)對卷煙質(zhì)量穩(wěn)定性的影響;白永忠等[2]發(fā)現(xiàn)不同類別煙梗制成的梗絲在物理、化學(xué)、感官品質(zhì)方面均存在差異。根據(jù)國家煙草專賣局《打葉復(fù)烤技術(shù)升級重大專項實(shí)施方案》,目前行業(yè)內(nèi)打葉復(fù)烤技術(shù)與整個卷煙生產(chǎn)產(chǎn)業(yè)鏈相比明顯處于滯后狀態(tài),亟需進(jìn)行數(shù)字化技術(shù)升級。其中,煙梗的長梗率、梗中含葉率(梗含葉)、梗頭比例及粗梗率等指標(biāo)仍依靠人工在線取樣檢測,并采用“四分法”等方法進(jìn)行分類,勞動強(qiáng)度高,檢測誤差大。因此,建立能夠快速、準(zhǔn)確識別煙梗形態(tài)和特征參數(shù)的方法,實(shí)現(xiàn)煙梗質(zhì)量在線檢測,對于提高打葉復(fù)烤和制絲加工工藝水平具有重要意義。近年來,計算機(jī)視覺技術(shù)在農(nóng)作物生產(chǎn)管理和質(zhì)量檢測方面已有廣泛應(yīng)用,田有文等[3]對葡萄的病害圖像進(jìn)行處理和分類;王獻(xiàn)鋒等[4]提出了一種黃瓜葉片的病害圖像分類識別方法。在模式識別與目標(biāo)檢測算法方面,深度學(xué)習(xí)技術(shù)依靠其自動構(gòu)建特征工程的特性已逐步取代傳統(tǒng)圖像識別算法[5]。其中,洪金華等[6]使用YOLOv3 模型對煙蟲進(jìn)行檢測;高震宇等[7]使用卷積神經(jīng)網(wǎng)絡(luò)檢測煙絲物質(zhì)組成。但對于煙梗分類識別的研究應(yīng)用則鮮見報道。為此,在分析不同類別煙梗形態(tài)差異的基礎(chǔ)上,建立了一種深度學(xué)習(xí)煙梗分類識別模型,通過在YOLOv3 骨干網(wǎng)絡(luò)Darknet53[8]的3 層預(yù)輸出中添加一條增強(qiáng)紋理特征的路徑,提升模型對局部煙梗紋理特征的識別能力,并對模型性能進(jìn)行驗證,以期實(shí)現(xiàn)對3 個類別煙梗的精準(zhǔn)分類識別,為提高煙梗質(zhì)量在線檢測水平提供參考。
樣品為2018 年福建南平C2F+C3F 配打后復(fù)烤前煙梗,直接在輸送帶上取樣,共20 kg。煙梗類別分為純煙梗、梗頭與梗含葉,見圖1。
圖1 3 個類別煙梗圖片F(xiàn)ig.1 Images of three kinds of tobacco stems
1.2.1 煙梗實(shí)時分類識別系統(tǒng)
為了對煙梗圖像進(jìn)行快速采集以及對煙梗分類識別效果進(jìn)行測試,設(shè)計了煙梗在線分類識別系統(tǒng)。該系統(tǒng)的硬件結(jié)構(gòu)主要由計算機(jī)、輸送皮帶機(jī)、環(huán)形LED 光源、高速CCD 相機(jī)等部分組成,見圖2。其中,NVIDIA Jetson TX2 板載AI 計算機(jī)在Ubuntu16.04 操作系統(tǒng)下完成分類識別算法,CPU 為Intel core i7,內(nèi)存為16G,GPU 為NVIDIA GeForce GTX 1080Ti,同時安裝了CUDA9.0、cudnn7.1、Opencv3.4、python3.5等第三方庫以支持模型運(yùn)行;相機(jī)為USB3.0 接口工業(yè)相機(jī),分辨率為4 208×3 120 pixel,鏡頭為低失真廣角C 接口鏡頭。系統(tǒng)與煙梗物料輸送線之間通過多級差速皮帶連接,煙梗被輸送至系統(tǒng)的檢測工位時呈離散狀態(tài)。
圖2 煙梗分類識別系統(tǒng)結(jié)構(gòu)圖Fig.2 Structure of classification and identification system for tobacco stems
1.2.2 深度學(xué)習(xí)環(huán)境的搭建
本研究中采用帶動量因子(momentum)的小批量(mini-batch)隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD)進(jìn)行模型訓(xùn)練,小批量樣本數(shù)量設(shè)置為128,subdivision 參數(shù)設(shè)置為16,動量因子設(shè)置為固定值0.9,前1 000 次學(xué)習(xí)策略采用burn_in,1 000次以后學(xué)習(xí)率策略采用multisteps。初始學(xué)習(xí)率為0.001,在40 000 次和45 000 次分別乘以0.1 降低學(xué)習(xí)率。為防止過擬合,將正則化系數(shù)設(shè)為0.000 5,共迭代50 000 次且每隔2 000 次保存1 次模型,最終選出最優(yōu)模型。使用最優(yōu)模型分類識別測試集,以人工識別結(jié)果為基準(zhǔn),對比本研究中提出的算法與其他主流深度學(xué)習(xí)算法的識別準(zhǔn)確率。
1.3.1 實(shí)驗誤差指標(biāo)
基于每批次的實(shí)際數(shù)量與識別數(shù)量,根據(jù)公式(1)統(tǒng)計該批次總識別誤差:
根據(jù)公式(2)計算單類別煙梗識別誤差:
式中:x 為煙梗類別;T_N 為該批次煙??倲?shù),個;Nx為人工挑選出的某類別煙梗的實(shí)際數(shù)量,個;nx為系統(tǒng)識別出的該類別煙梗的數(shù)量,個;Abs 為計算絕對值函數(shù);E1為該批次總識別誤差,%;E2為類別煙梗識別誤差,%。
1.3.2 模型評價指標(biāo)
采用精確率P(Precision)、召回率R(Recall)、單類別識別精確率AP(Average Precision)和AP 的均值mAP(mean Average Precision)對煙梗檢測識別模型進(jìn)行評價,計算公式分別為:
式中:TP 表示模型對某類別煙梗進(jìn)行預(yù)測且預(yù)測正確的數(shù)量,個;FP 表示對某類別煙梗進(jìn)行預(yù)測但預(yù)測錯誤的數(shù)量,個;FN 表示模型預(yù)測不是某類別煙梗但預(yù)測錯誤的數(shù)量[9],個;P 表示某類別煙梗的預(yù)測正確比例,%;R 表示某類別煙梗被正確識別出的比例,%;P(R)表示以R 為參數(shù)的函數(shù);AP 表示某類別煙梗識別精確率,在模型迭代運(yùn)算過程中,對于每一個R 值,可以計算得到對應(yīng)的P 值,對所有P值求平均則得到AP,%;mAP 為3 類樣本AP 的均值,%;i表示煙梗類別(純煙梗=1,梗頭=2,梗含葉=3)。
煙梗分類識別系統(tǒng)工作流程見圖3。主要步驟:①對相機(jī)進(jìn)行標(biāo)定和畸變復(fù)原,獲取圖像的畸變參數(shù)與像素對應(yīng)的實(shí)際尺寸;②采集煙梗圖像(純煙梗、梗頭及梗含葉)進(jìn)行標(biāo)注,制作煙梗數(shù)據(jù)集(包括圖像文件及標(biāo)注文件);③構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò),在煙梗數(shù)據(jù)集上進(jìn)行訓(xùn)練,生成煙梗分類模型;④在線采集煙梗圖像進(jìn)行目標(biāo)區(qū)域檢測與圖像裁剪,以減少運(yùn)算量;⑤將裁剪好的圖像輸入訓(xùn)練好的分類模型進(jìn)行識別;⑥測量圖像中煙梗的長度、寬度、面積等幾何參數(shù)。
圖3 系統(tǒng)的工作流程圖Fig.3 Flow chart of the system
采集并制作單樣本圖像3 000 張(每個類別各1 000 張),同時使用旋轉(zhuǎn)、翻轉(zhuǎn)及縮放等數(shù)據(jù)增強(qiáng)方法制作補(bǔ)充樣本3 000 張(防止模型過擬合),共6 000張煙梗圖像作為訓(xùn)練數(shù)據(jù)集。另外,采集600 張單類別圖像(1 張圖像只有1 個煙梗)作為測試數(shù)據(jù)集。訓(xùn)練中采用十折交叉驗證,6 000 張訓(xùn)練圖像按比例9∶1 被隨機(jī)拆分為訓(xùn)練集和驗證集,各類別樣本數(shù)量見表1。
表1 數(shù)據(jù)集的組成Tab.1 Composition of data sets (張)
2.3.1 手動標(biāo)注方法
在線采集的煙梗圖像分辨率為4 208×3 120 pixel,見圖4a。在傳統(tǒng)的深度學(xué)習(xí)目標(biāo)分類識別方法中,首先要使用標(biāo)注軟件對樣品類別進(jìn)行手動標(biāo)注,制作圖像標(biāo)簽,再生成VOC 格式文件,見圖4b。由于本研究中的煙梗數(shù)據(jù)集較大,使用手動標(biāo)注工作量繁重,為此設(shè)計了基于HSV(Hue,Saturation,Value)顏色空間的自動標(biāo)注算法。
2.3.2 基于HSV 顏色空間的自動標(biāo)注算法
由圖4a 可見,受光源均勻性及輸送皮帶反光的影響,在線采集的煙梗圖像亮度不均。在設(shè)計自動標(biāo)注方法時,如果煙梗圖像分割提取效果不好,則會造成算法獲取的坐標(biāo)位置不準(zhǔn)確,導(dǎo)致非目標(biāo)信息被用于建模,影響識別率。為準(zhǔn)確提取圖像中的煙梗,制作精確的煙梗標(biāo)簽,基于HSV 顏色空間設(shè)計了煙梗圖像自動標(biāo)注算法。主要步驟:①將已分類好的同一類別樣品送入輸送皮帶機(jī),并采集圖像;②在軟件中設(shè)置該批樣品的類別名稱,例如“gengtou”或“genghanye”等;③將原始圖像轉(zhuǎn)換到HSV 顏色空間,提取H 通道圖像(圖5a)和S 通道圖像(圖5b),并將H 通道圖像與S 通道圖像做差值運(yùn)算(圖5c);④對差值運(yùn)算后的圖像進(jìn)行二值化,并濾除面積較小的連通域(圖5d);⑤遍歷圖像中的各個連通域,提取位置信息,設(shè)置感興趣目標(biāo)區(qū)域(Region of Interest,ROI)(圖5e);⑥將ROI 區(qū)域進(jìn)行裁剪,并將裁剪后的圖像分辨率歸一化為416×416 pixel;⑦存儲每個ROI 區(qū)域的煙梗類別及位置信息,完成標(biāo)簽制作(圖5f)。
圖4 煙梗圖像的手動標(biāo)注方法Fig.4 Manual labeling method for tobacco stem images
圖5 煙梗圖像自動標(biāo)注方法Fig.5 Automatic labeling method for tobacco stem images
YOLOv3 算法在訓(xùn)練前需要進(jìn)行先驗框(Anchors)設(shè)置[10],合理的Anchors 可以加快模型的收斂速度。采用K-means++算法[11]通過聚類可以得到數(shù)據(jù)集中物體的大致尺寸和形狀,并將這些尺寸和形狀作為先驗框輔助模型訓(xùn)練。YOLOv3 的默認(rèn)Anchors 來源于COCO 數(shù)據(jù)集[12],而不同數(shù)據(jù)集適用于不同Anchors。為提升煙梗的定位精度,本研究中對煙梗數(shù)據(jù)集使用K-means++算法重新聚類,得到9個新的Anchors,分別為(55,99),(69,133),(82,156),(106,214),(124,208),(138,206),(156,235),(208,255),(344,356)。
研究發(fā)現(xiàn)直接使用原始YOLOv3 模型進(jìn)行煙梗識別的準(zhǔn)確率并不理想,可能原因是梗含葉的葉子較小導(dǎo)致其與純煙梗的圖像特征差異較小,以及部分梗頭與梗含葉的圖像特征差異也較小。針對該問題進(jìn)行分析,結(jié)果表明低層次的特征圖主要關(guān)注物體的紋理信息,因此煙梗的紋理信息是分類識別的關(guān)鍵。為此,基于路徑增強(qiáng)方法對YOLOv3 模型進(jìn)行了改進(jìn),以提高模型對圖像紋理特征的敏感度。改進(jìn)后YOLOv3 模型網(wǎng)絡(luò)結(jié)構(gòu)見圖6。
在類FPN[13]模塊中,模型對3 個不同尺度的底層、中層與高層特征圖進(jìn)行多尺度預(yù)測。其中,在52×52 pixel 的底層特征圖中包含較多的紋理信息,但原始YOLOv3 模型在這些信息上直接做類別預(yù)測1(圖6),會造成部分紋理特征無法被有效利用。因此,本研究中在52×52 pixel 的底層特征圖上做類別預(yù)測1 之前,先提取該層特征圖,再連續(xù)進(jìn)行BN[14](批歸一化)、Leaky ReLU(非線性激活)與卷積下采樣操作,將其轉(zhuǎn)化為13×13 pixel 的高層特征圖,進(jìn)而參與類別預(yù)測,即相當(dāng)于在模型中增加一個倒金字塔結(jié)構(gòu),通過添加一條自下向上的增強(qiáng)路徑,以充分利用圖像中的紋理特征信息。
圖6 改進(jìn)后YOLOv3 模型網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Structure of revised YOLOv3 model network
由圖6 可見,對拼接后尺寸為52×52 pixel 特征圖進(jìn)行下采樣,使用步長為2 的3×3 pixel 卷積,將52×52 pixel 特征圖縮小為尺寸為26×26 pixel 特征圖;再將得到的特征圖與下一層特征圖進(jìn)行特征融合,融合方式為張量拼接,可以直接將兩張?zhí)卣鲌D進(jìn)行拼接,且不會丟失特征信息;然后繼續(xù)對26×26 pixel 特征圖進(jìn)行下采樣,得到尺寸為13×13 pixel 特征圖,再與下一層特征圖進(jìn)行特征融合。使用標(biāo)注好的數(shù)據(jù)集對改進(jìn)后模型進(jìn)行遷移訓(xùn)練,生成用于在線煙梗分類識別的深度學(xué)習(xí)網(wǎng)絡(luò)模型。
從改進(jìn)后YOLOv3 模型訓(xùn)練日志中提取數(shù)據(jù)繪制Loss 和IOU(Intersection over Union)曲線,見圖7。其中,batches 是模型在訓(xùn)練過程中的迭代次數(shù),Loss 代表訓(xùn)練誤差,當(dāng)Loss 值小于0.01 時判斷訓(xùn)練完成。IOU 為圖像的真實(shí)矩形框與模型預(yù)測矩形框的交集,IOU 值越高說明訓(xùn)練效果越好。由圖7a可見,當(dāng)橫坐標(biāo)batches 值等于10 000 時,函數(shù)趨于收斂(Loss 值接近0.01);當(dāng)橫坐標(biāo)batches 值大于40 000 時,訓(xùn)練結(jié)束(Loss 值小于0.01)。由圖7b 可見,當(dāng)橫坐標(biāo)batches 值為50 000 時,IOU 值接近0.9,表示模型預(yù)測框與真實(shí)框差異較小,模型訓(xùn)練效果趨于最優(yōu)。
圖7 改進(jìn)后YOLOv3 模型訓(xùn)練結(jié)果Fig.7 Training results of revised YOLOv3 model
3.1.1 P-R 曲線
根據(jù)評價指標(biāo)將模型在測試集上運(yùn)行,迭代運(yùn)算過程中計算不同的R 值和P 值,以R 值為橫坐標(biāo),P值為縱坐標(biāo),繪制P-R 曲線,見圖8。其中,藍(lán)色曲線表示梗頭,紅色曲線表示梗含葉,綠色曲線表示純煙梗。識別精確率AP 等價于曲線與x 軸圍成的面積,可以觀察到綠色曲線包含面積最大,紅色曲線包含面積最小,藍(lán)色居中。表明模型對純煙梗的識別精度最高,對梗頭的識別精度次之,對梗含葉的識別精度最低。
圖8 模型在測試集上運(yùn)行的P-R 曲線Fig.8 P-R curve of the model running on test set
3.1.2 復(fù)雜場景的分類識別效果
選取場景較為復(fù)雜的測試圖像,分別使用原始YOLOv3 模型及改進(jìn)后YOLOv3 模型進(jìn)行煙梗分類識別,效果見圖9。圖中背景為黑色輸送帶,分類識別對象包括梗頭、梗含葉、純煙梗與雜物(塑料袋、紙張、螺釘與螺帽等)。分類識別結(jié)果由不同預(yù)測框表示,黃色框為純煙梗,紫色框為梗頭,綠色框為梗含葉。由圖9b 可見,原始YOLOv3 模型將部分梗頭誤識別為純煙梗的有3 個,將部分梗頭誤識別為梗含葉的有2 個,將部分雜物誤識別為梗含葉的有3 個,誤識別率約為10%。由圖9c 可見,改進(jìn)后YOLOv3 模型對不同類別煙梗識別準(zhǔn)確,幾乎無誤判,且對雜物的抗干擾能力強(qiáng),沒有出現(xiàn)將雜物誤識別為煙梗等情況,具有較好的分類識別效果。
圖9 在復(fù)雜環(huán)境下改進(jìn)前后模型識別效果Fig.9 Identification effect of the model before and after revision under complex scenarios
選取SSD、Mask R-CNN、原始YOLOv3 與改進(jìn)后YOLOv3 模型進(jìn)行對比測試。SSD 模型與YOLO系列模型均采用one-stage 方法,其中SSD 以VGG16為基礎(chǔ)網(wǎng)絡(luò)提取特征信息,直接生成物體的類別概率和邊界框的坐標(biāo)值,分類識別速度快,精度高[15];Mask R-CNN 模型沿用了Faster R-CNN 的思想[16],并 且 將FCN 與FPN 融 入 算 法 中[17-18],同 時 采 用ResNet 作為分類器。
將測試集所包含的600 張圖像作為分類識別對象(梗頭、梗含葉、純煙梗各200 張),單張原始圖像大小為4 208×3 120 pixel,經(jīng)感興趣區(qū)域裁剪后,歸一化處理為416×416 pixel。由表2 和表3 可見,SSD模型對煙梗的識別效果最不理想,精確率小于80%;Mask R-CNN 模型識別精確率較高,約為91%,但其對416×416 pixel 圖像的運(yùn)算速度為4 幀/s,無法滿足在線分類識別的實(shí)時性;原始YOLOv3 模型的精確率約為89%,運(yùn)算速度為38 幀/s;改進(jìn)后YOLOv3 模型的識別精確率約為95%,與原始YOLOv3 模型相比識別精確率提高5.97 百分點(diǎn),召回率提高4.76 百分點(diǎn),且識別速度與原始YOLOv3 模型差異較小,具有較高實(shí)時性。
表2 不同模型下識別精確率對比Tab.2 Comparison of identification accuracy among different models (%)
表3 不同模型下召回率對比Tab.3 Comparison of recall rate among different models (%)
將本文研究方法(改進(jìn)后YOLOv3 模型)與人工分選結(jié)果進(jìn)行對比。測試方法:挑選9 批次不同比例煙梗,先通過人工逐一挑選,記錄每批次中各類別煙梗數(shù)量作為實(shí)際數(shù)量;再將其依次放入識別系統(tǒng)中,將系統(tǒng)識別結(jié)果作為識別數(shù)量,結(jié)果見表4??梢姡到y(tǒng)對純煙梗的識別誤差為1.41%,對梗含葉的誤差為7.32%,對梗頭的誤差為4.36%,平均識別誤差為4.35%,能夠滿足在線分類識別要求。
表4 本文研究方法與人工檢測對比Tab.4 Comparison between the proposed method and manual identification
利用高速CCD 相機(jī)與AI 計算機(jī)搭建了煙梗圖像高速采集與處理平臺,基于圖像特征設(shè)計了煙梗圖像自動標(biāo)注方法并對數(shù)據(jù)集進(jìn)行標(biāo)注,在YOLOv3深度學(xué)習(xí)算法框架中加入一條特征增強(qiáng)路徑,提高模型對圖像中煙梗紋理特征的檢測敏感度,并在制作好的數(shù)據(jù)集上進(jìn)行訓(xùn)練,生成煙梗圖像分類識別模型,將該模型與兩個較為先進(jìn)的分類識別模型以及人工分選方式進(jìn)行比對,結(jié)果表明:本研究中所建立模型在測試集上的表現(xiàn)良好,煙梗識別精確率達(dá)到95.01%;針對不同復(fù)雜場景,模型抗干擾能力強(qiáng),可有效識別出煙梗位置及類別并避免雜物干擾,相比原始YOLOv3 模型,識別精確率提高5.97 百分點(diǎn),召回率提高4.76 百分點(diǎn),且均優(yōu)于SSD、Mask R-CNN 等模型,能夠滿足煙梗在線分類識別需求。