黃小杭 梁智豪 何子俊 黃晨華 李湘勤
摘要 受蓮蓬形狀外觀和生長環境影響,傳統計算機視覺算法識別蓮蓬存在效率與精度不佳的問題。本文研究采用YOLO v2算法進行蓮蓬識別的方式,通過擴充蓮蓬檢測數據集、K-means維度聚類、深度可分離卷積網絡結構和多分辨率圖像對模型微調等方法實現提高識別精度、魯棒性與識別速度。對比Darknet-19、Tiny Darknet與DS Tiny Darknet算法,結果表明,本文研究的識別方式可以達到102.1 fps的識別速率,可實現在復雜環境下對蓮蓬的快速識別,滿足蓮蓬采摘機器人在采摘過程中對實時視覺信息的需求。
關鍵詞 蓮蓬;識別;YOLO v2;深度學習;目標檢測;模型加速
中圖分類號 TP181 文獻標識碼 A 文章編號 1007-5739(2018)13-0164-04
Research on Lotus Quick Recognition Based on YOLO v2
HUANG Xiao-hang LIANG Zhi-hao HE Zi-jun HUANG Chen-hua LI Xiang-qin *
(School of Physics and Mechanical & Electrical Engineering,Shaoguan University,Shaoguan Guangdong 512005)
Abstract Affected by the shape and growth environment of lotus,the traditional computer vision algorithm has the problems of poor efficiency and precision.In this paper,the scheme of using YOLO v2 algorithm to recognize the lotus was proposed.Through expanding lotus detection data set,K-means dimension clustering,depthwise separable convolution network,multi-scale classified network fine-tuning and other methods to improve the recognition accuracy,robustness and recognition speed.Contrasting the actual performance of Darknet-19,Tiny Darknet and DS Tiny Darknet with the YOLO v2 algorithm,the results showed that the scheme could achieve the recognition rate of 102.1 fps,realize the quick recognition of the lotus in a complex environment,so as to meet the realtime vision demand for picking robot in picking process.
Key words lotus;recognition;YOLO v2;deep learning;object detection;model acceleration
蓮蓬是一種特種水生經濟作物,具有生產區域性強、種植面積廣、生命周期長、營養價值豐富、經濟價值高的特點。經過幾千年的不斷培育與發展,我國已成為蓮子、蓮藕生產和出口大國,其市場需求量大,前景廣闊,經濟效益可觀[1-3]。
蓮蓬的采摘期一般集中在6—10月,其中7—8月收采量最高,為了獲得高營養價值的蓮子,需要在蓮子生長最盛時期進行采摘。目前,國內蓮蓬的采摘依然依賴于人工,據調查人工收獲費用占生產成本的50%~70%[4]。人工采摘效率低下,無法滿足市場對于蓮蓬時令性和新鮮度的要求。實現蓮蓬的采摘自動化,對于解決蓮蓬采摘作業中人工采摘工作強度大、采摘難度大和采摘效率低下等問題,以及降低人工成本、提高采摘品質、增強蓮蓬的市場競爭力均具有十分重要的意義。
蓮蓬的檢測、定位以及跟蹤是蓮蓬采摘機器人視覺系統中的重要任務。蓮蓬是一種水生植物,新鮮蓮蓬呈嫩綠色,蓮葉呈翠綠色,蓮花顏色偏紅或白色,蓮蓬與蓮葉顏色差異不明顯,與蓮花形狀相似、顏色差異明顯。除此之外,蓮蓬生長環境(圖1)中存在著水面、山巒、天空等背景元素,且在風力的影響下,蓮蓬存在著不規律的擺動現象。受以上因素的影響,利用基于RGB分量識別的方法[5]具有一定的困難。
在現有的蓮蓬識別方法中,文獻[6]采用了PCNN分割與形態學相結合的方法預處理圖像,提取圖像的顏色與形狀特征并根據特征向量的特點利用PCA算法進行降維,再運用K-means聚類方法獲得識別模型。蓮蓬識別準確率可達88.17%,然而其圖像預處理需要1~3 s,識別時長0.131 s,且模型訓練較復雜。蓮蓬識別任務可看成是具一般性的目標檢測任務,在卷積神經網絡出現之前,DPM(Deformable Parts Model)[7]是一種經典的目標檢測算法,其核心思想是采用支持向量機(SVM)[8]算法對滑動窗口的HOG[9]特征進行分類,在行人檢測[10]等目標檢測任務上DPM具有較好的檢測效果。近年來,以卷積神經網絡(Convolutional Neural Network,CNN)為核心的深度學習的圖像識別算法憑借其在復雜圖像特征提取上的優勢[11],在目標檢測領域取得了革命性進展。2014年,Ross Girshick等[12]在CVPR大會上提出了R-CNN目標檢測網絡,R-CNN利用選擇性搜索(Selective Search)的方法代替了滑動窗口,在VOC 2012的數據集上將目標檢測的平均準確率(mean average precision,mAP)提升了30%。2015年,Ross Girshick[13]和Shaoqing Ren等[14]相繼提出了Fast R-CNN和Faster R-CNN,Faster R-CNN引入了Region Proposal Network(RPN),使候選區域的提取速度和精度獲得了大幅度提升,檢測幀速率達5 fps。而在2016年,Joseph Redmon等[15]提出了YOLO模型,將目標檢測幀速率提高到了45 fps。之后,Joseph Redmon等[16]再次提出了YOLO v2,相較于前代YOLO,其mAP和檢測速度均得到了顯著提高。從VOC 2007數據集的模型檢測測試結果來看,YOLO v2的檢測速度為67 fps,mAP可達到76.8%,在目標檢測領域表現出色,該模型與其他目標檢測模型在VOC 2007數據集上測試數據對比如表1所示。
本文將蓮蓬識別與定位問題轉化成目標檢測問題,提出一種基于YOLO v2的蓮蓬快速檢測方法,實現蓮蓬的實時檢測。結合蓮蓬種植地實地考察和互聯網資源,收集大量的蓮蓬圖片,并進一步篩選制作成蓮蓬檢測數據集,通過對數據集增加擾動而對數據集進行擴充。為了減少模型計算量、提高檢測速率,結合深度可分離網絡結構提出DS Tiny Dar-knet作為蓮蓬的特征提取網絡。通過對預選區域的維度聚類,多分辨率預訓練,提高了檢測模型的檢測精度。選取了Darknet-19、Tiny Darknet和本文改進的基于YOLO v2的檢測模型,通過試驗對比分析各分類模型在蓮蓬檢測任務中的效果。
1 檢測方法
1.1 YOLO v2檢測模型的特點
YOLO v2是一個基于卷積神經網絡的目標檢測模型,僅通過單個卷積神經網絡即可以預測圖像中若干個目標的位置、尺寸、類別及其置信度。YOLO v2在每一個卷積層增加了分批數據標準化的操作,這種操作可以允許在訓練一開始使用較高的學習率,加速模型收斂,并有效防止過擬合,提高了模型的范化能力。在候選區域的提取上引入了預選區域的概念,盡管預選區域的引入使模型的mAP降低,卻大幅提高了召回率。由于采用了卷積層代替了全連接層,輸入圖像的尺寸可以隨時改變,因而可以通過多尺度訓練的方法提高YOLO v2應對不同尺寸圖片時的檢測魯棒性。
1.2 蓮蓬檢測過程
在蓮蓬檢測的過程中選取合適的候選區域,并對這些候選區域進行預測,最后對預測結果篩選,得到置信度較高的預測框。其中,目標的置信度公式如下:
Conf(Object)=Pr(Object)×IOU(Pred, Truth)
式中,Pr(Object)表示預測框是否存在目標物體(存在目標物體則為1,不存在為0),IOU(Pred, Truth)表示真實框與預測框交并比。
IOU(Pred, Truth)=
本文蓮蓬檢測模型基于YOLO v2,采用了類似于RPN[14](Region Proposal Network)的網絡結構,利用卷積層預測框相對于預選區域的偏移量和置信度,從而獲得蓮蓬目標的位置和概率。與Faster R-CNN的RPN網絡不同的是,本文模型采用sigmoid函數對預測偏移量進行約束,防止預測框與預選區域初始位置距離較遠,導致模型需要很長的時間確定目標位置。
利用采樣因子為32的卷積層對輸入特征圖進行降采樣,使輸入網絡為416×416網絡輸出得到13×13的卷積特征圖,對應原圖中分為13×13個預測空間位置(cell),每個cell的中心位置作為預選區域的起始位置,并在其中放置若干個不同形狀大小的預選區域作為候選區域。
每個預測框有5個參數,即tx、ty、tw、th、to。這5個參數的預測公式如下:
bx=σ(tx)+cx,by=σ(ty)+cy
bw=pw e,bh=phe
Conf(Object)=σ(to)
式中,cx、cy為cell的中心坐標,pw、ph為預選區域的初始尺寸,σ為sigmoid函數。
在得到每個預測框的置信度后,通過設置閾值,去掉低分的預測框,然后對剩下的BoundingBox進行非極大抑制(Non Maximum Suppression,NMS)處理,得到多組高分Boun-dingBox,輸出目標位置參數。
1.3 分類模型
蓮蓬檢測模型是以蓮蓬圖像分類網絡作為基礎特征提取網絡,在此基礎上對候選區域進行判斷,從而完成目標檢測任務[17]。因此,優化分類模型是提高檢測網絡效率的重要手段。
YOLO v2是以Darknet-19[18]作為基礎分類模型。Darknet-19包含19個卷積層和5個最大池化層,在網絡最后采用了全局平均池化(average pooling),采用了類似Inception Net[19]的結構,使用了大量3×3卷積層,并在卷積層之間插入1×1卷積層壓縮特征。
Tiny Darknet[18]是一個輕量級的分類網絡,其網絡結構如圖2所示。Tiny Darknet僅由8層卷積層、6層最大池化層和全局平均池化層組成。一次前向傳播僅需8.1億次計算,而Darknet-19一次前向傳播則需要55.8億次計算。盡管Tiny Darknet在計算量上遠遠低于Darknet-19,但是由于其網絡深度有限,其mAP卻相對Darknet-19更低些。對于蓮蓬檢測這種單一目標的檢測任務來說,其精度已經可以滿足基本需求,但其在速度上還有優化的空間。因此,后文以Tiny Darknet和深度可分離卷積網絡結構為基礎,提出了以DS Tiny Darknet作為蓮蓬的特征提取網絡。
2 模型改進與優化
2.1 基于深度可分離結構的特征提取網絡
為了降低蓮蓬識別的計算量,滿足蓮蓬采摘場合對檢測實時性的要求,必須對模型的運算量再做一定的優化。因此,本文借鑒了Xception[20]模型結構,在Tiny Darknet的基礎上提出了DS Tiny Darknet特征提取網絡。DS Tiny Darknet主要采用了深度可分離網絡(Depthwise Separable Convolution)[20]的網絡結構。設Dk為卷積核尺寸,M是輸入通道數,N是輸出通道數,輸入輸出的特征圖尺寸為Dif和Dof,網絡結構變換圖如圖3所示。
可以看出,標準卷積操作(圖3左)的計算復雜度為Dk×Dk×M×N×Dif×Dif,計算復雜度隨M和N的增加而急劇增加,在Tiny Darknet和Darknet-19等采用金字塔結構的分類網絡中,隨著網絡深度增加,輸入輸出通道數都成倍增加,計算復雜度大幅增加。深度可分離卷積網絡(圖3右)由通道分離卷積層(Depthwise Convolution)和逐點卷積層(Pointwise Convolution)組成。首先對每個通道使用單個卷積核進行卷積操作,然后再用逐點卷積層中1×1的卷積核對depthwise層輸出的所有單通道的feature map進行線性疊加。在每層之間都使用了Batch Normalization操作和Leaky-ReLU激活函數。Depthwise Separable Convolution 的計算復雜度為:
Dk×Dk×M×Dif×Dif+M×N×Dif×Dif
深度可分離卷積與標準卷積相比,可減少計算量:
Tiny Darknet只使用了3×3的卷積核,進行上述深度可分離卷積操作后,構成DS Tiny Darknet。其計算復雜度可減少約為原來的1/9,準確率也只有微小的下降。結合檢測模型,構成DS Tiny-YOLO。經過深度可分離卷積網絡結構的優化后,模型識別速度得到了大幅度提升。
2.2 蓮蓬候選區域參數的聚類
YOLO v2雖然在VOC數據集上均取得了較好的檢測效果,但是其預選區域是根據VOC數據集的特點聚類的,部分預選區域長寬比過大,與蓮蓬形狀特征差距較大,對蓮蓬定位的精度較差,不適合蓮蓬檢測任務。對此,本文通過對蓮蓬數據集聚類得到合適的預選區域。數據集的標記框參數有5個,分別是class、x、y、w、h。其中,class為目標類別索引,x和y是標記框的中心坐標,w和h是標記框的寬度和高度。卷積神經網絡具有平移不變性,因而只需要通過K-means對 w和h聚類即可。在距離度量上,本文采用IOU代替標準K-means中的歐氏距離:
d(box,centroid)=1-IOU(Pred, Truth)
且令x,y為0,使標記框都在同一位置上,方便對比不同標記框之間的相似度,而不受標記框位置的影響。
在蓮蓬檢測目標中,本文采用了K-means++的算法進行聚類獲得預選區域。對于聚類中k的選取,采用誤差平方和(Sum of the Squared Error,SSE)作為判別依據,當聚類個數達到一定值時,再增加聚類個數SSE的變化也很小,因而SSE函數的拐點橫坐標即可認為是最優的k。采用K-means++的聚類過程中,SSE的曲線如圖4所示。可以看出,k達到5時,SSE的變化趨勢減小。當k=5時,K-means聚類得出的值再分別乘上每個cell的尺寸(grid size)即可得到預選區域的參數,因為輸入尺寸為416×416,輸出尺寸為13×13,則grid size為416/13=32,最終得到的預選區域的參數分別為(0.003,0.007)、(0.037,0.067)、(0.142,0.136)、(0.305,0.255)、(0.419,0.540),聚類分布如圖5所示。
2.3 模型的預訓練
模型的預訓練是網絡訓練過程的重要環節,直接決定了訓練的收斂速度和模型的檢測效果。對DS Tiny Darknet特征提取網絡采用VOC 2007+2012數據集作為預訓練數據進行訓練。由于網絡結構限制,輸入的圖像均會被統一成相同大小,對此,在得到預訓練模型后,本文對預訓練模型作如下調整處理。一是選取一部分低分辨率(224×224)蓮蓬分類數據集對預訓練模型微調(fine-tuning),使之適應蓮蓬外形特征;二是配置預訓練模型的輸入圖像尺寸為448×448,在蓮蓬數據集上訓練10個循環,使分類網絡適應較高分辨率下蓮蓬特征。
在經過上述預訓練微調過程后,將預訓練分類網絡應用于檢測算法,可有效提高YOLO v2模型檢測的準確率。
3 效果檢測試驗
3.1 試驗平臺
本試驗是在PC端上完成,PC配置為CPU Intel Core i5-7300、顯卡GTX1060、內存8G,訓練和測試框架均為Darknet。
3.2 蓮蓬訓練集制作與擴充
在試驗中,采用了從網絡上和實地拍攝收集的蓮蓬圖片作為蓮蓬識別模型的數據樣本,如圖6所示,共計354張。其中,每張圖片均包含若干個蓮蓬,共有652個人工標記的蓮蓬樣本。
為了提高模型應對不同光照和方向模糊條件的下檢測魯棒性,需要對原數據集進行擴充。本文設置了4種飽和度、3種曝光度、3種色調、2種不同參數的方向模糊共計72種組合,可在原數據集上生成25 488張圖片,另外在模型中設置了7種不同的輸入尺寸,每訓練10個批(Batchs)隨機更換1次尺寸,以適應不同大小的蓮蓬。經上述操作,豐富了訓練數據集,同時也可防止過擬合。
3.3 試驗對比
在試驗中,從蓮蓬種植地錄制的若干視頻文件中截取了100張圖片并標注,作為本次對比試驗的測試集。分別使用YOLO v2、Tiny Darknet和DS Tiny Darknet與YOLO v2配合進行目標檢測效果試驗對比。
3.4 結果分析
通過試驗分析,得出了3種分類模型的平均準確率、召回率(Recall)和識別幀率,測試結果如表2所示,DS Tiny Da-rknet的檢測效果如圖7所示。
YOLO v2+DS Tiny Darknet模型的檢測速度是YOLO v2+Darknet-19的5.8倍,是YOLO v2+Tiny Darknet的3.2倍,模型運行速度得到了顯著提高,基本滿足了蓮蓬的快速檢測需求。從表2還可以看出,YOLO v2+Darknet-19的平均準確率和召回率均最高,YOLO v2+Tiny Darknet與YOLO v2+DS Tiny Darknet在平均準確率和召回率上與YOLO v2+Darknet-19差距較大。相比于YOLO v2+Tiny Darknet,YOLO v2+DS Tiny Darknet僅準確率稍有降低。故YOLO v2+DS Tiny Darknet在檢測準確率上略有不足,但其檢測速度和檢測質量已經可以為蓮蓬采摘任務提供實時的視覺信息。
4 結論與討論
針對蓮蓬識別的任務,本文研究基于YOLO v2的蓮蓬識別方式,利用對蓮蓬候選區域聚類、預訓練和深度可分離網絡結構對模型加速等改進措施,制作、擴充了蓮蓬圖像數據集,使模型對復雜場景下蓮蓬識別的魯棒性獲得增強,并且識別速度也得到提高,從而滿足蓮蓬快速識別的需求。最后,本研究還討論了改進模型與Darknet-19和Tiny Darknet的試驗對比,結果表明,改進模型在速度上更勝一籌。識別效率的提高在實際應用中可節約計算設備成本,提高多設備并行協作的能力,對降低蓮蓬自動識別設備成本、提高識別效率具有重要借鑒意義。
5 參考文獻
[1] 吳芳彤,肖貴平.蓮子的營養保健價值及其開發應用[J].亞熱帶農業研究,2012,8(4):274-278.
[2] 魯運江.蓮子的營養價值與食療保健[J].蔬菜,2001(6):36.
[3] 潘林娜,梁華俤,郭桂玲.蓮子的營養價值與加工工藝[J].食品工業科技,1993(1):29-32.
[4] 魯運江.我國子蓮生產現狀、問題及發展對策[J].蔬菜,2001(4):4-6.
[5] PARRISH E A,GOKSEL A K.Pictorial pattern recognition applied to fruit harvesting[J]. Trans Asae, 1977, 20(5): 822-827.
[6] 唐書萍.基于機器視覺的蓮蓬識別關鍵技術研究[D].鎮江:江蘇大學,2016.
[7] FELZENSZWALB P F,GIRSHICK R B,Mcallester D,et al. Object det-ection with discriminatively trained part-based models[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2010,32(9):1627-1645.
[8] CORTES C,VAPNIK V.Support-Vector Networks[J].Machine Learning,1995,20(3):273-297.
[9] DALAL N,TRIGGS B.Histograms of oriented gradients for human det-ection[J].IEEE Computer Society Conference on Computer Vision & Pat-tern Recognition,2005,1(12):886-893.
[10] 陳芝垚. 基于DPM的行人檢測和行人特征提取算法研究[D].成都:電子科技大學,2016.
[11] LECUN Y,BENGIO Y,HINTON G.Deep learning[J].Nature,2015,521(7553):436-444.
[12] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition.Columbus,2014:580-587.
[13] GIRSHICK R.Fast R-CNN.[EB/OL].[2018-02-21].https://blog.csdn.net/xiaqunfeng123/article/details/78716060.
[14] REN S,HE K,GIRSHICK R,et al.Faster r-cnn:Towards real-time ob-ject detection with region proposal networks[J].IEEE Trans Pattern Anal Mach Intell,2017,39(6):1137-1149.
[15] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:Uni-fied,real-time object detection[EB/OL].[2018-02-21].https://arxiv.org/
abs/1506.02640. 2016:779-788.
[16] REDMON J,FARHADI A.YOLO9000:Better,Faster,Stronger[EB/OL].[2018-02-21].https://blog.csdn.net/zizi7/article/details/75020156.
[17] 張素潔,趙懷慈.最優聚類個數和初始聚類中心點選取算法研究[J].計算機應用研究,2017,34(6):1617-1620.
[18] REDMON J.Darknet:Open source neural networks in c[EB/OL].[2018-02-21].http://pjreddie.com/darknet/,2013-2016.
[19] SZEGEDY C,IOFFE S,VANHOUCKE V,et al.Inception-v4,Inception-ResNet and the impact of residual connections on learning[EB/OL].[2018-02-21].https://blog.csdn.net/kangroger/article/details/69488642.
[20] CHOLLET F.Xception:Deep learning with depthwise separable conv-olutions[EB/OL].[2018-02-21].https://www.computer.org/csdl/procee-dings/cvpr/2017/0457/00/0457b800-abs.html.