張文利,陳開臻,劉鈺昕,段玉林,郭 威,史 云※
(1.北京工業(yè)大學信息學部,北京100124;2.中國農業(yè)科學院農業(yè)資源與農業(yè)區(qū)劃研究所,北京100081;3.日本東京大學田間表型實驗室,東京188-0002)
當前我國農業(yè)信息化水平相對發(fā)達國家仍較落后,存在單產低、成本較高等問題。柑橘作為我國種植面積最大水果作物之一,可利用果實檢測技術使果農實時掌握果園果實生長狀態(tài),根據(jù)需求對生產資料的投入進行精細調整,降低成本。果實檢測技術可從圖片中獲取目標果實的位置和類別信息,是果實估產[1-2]、果實自動采摘[3-4]、果實分煉[5]等果園工作技術的基礎,能否快速、準確地檢測目標果實直接影響果園相關工作的效率。
針對果園中果實目標檢測工作,許多學者也展開了廣泛研究。一些研究基于手工設計的特征提取算法設計果實檢測系統(tǒng),李寒等[6]提出基于RGB圖像的藍莓估產方法和綠色柑橘估產方法,該算法通過提取顏色、紋理、形狀等多種特征,對特征圖進行分類,分別對多種分類器進行測試比較并獲取良好的檢測結果。成芳等[7]提出應用于柑橘采摘機器人的果實檢測算法,算法通過利用HSV圖像和Canny邊緣算子提取,獲取圖片中柑橘邊緣特征信息并通過橢圓擬合確定目標柑橘位置信息。盡管上述方法能夠檢測到圖像中的果實,但基于特征提取的檢測方法,系統(tǒng)整體上表現(xiàn)精度低、魯棒性弱、速度慢等缺點,檢測效果較差。
近年來,深度卷積神經(jīng)網(wǎng)絡在許多計算機視覺任務(如目標檢測和目標分類)中表現(xiàn)優(yōu)異。2018年薛月菊等[8]提出基于Yolov2的未成熟芒果檢測系統(tǒng),通過在Yolv2網(wǎng)絡中添加密集連接層,提高對芒果果實的檢測能力。2019年閏建偉等[9]提出基于Faster RCNN的刺梨果實識別方法,分別基于VGG網(wǎng)絡、VGG_CNN_M1024網(wǎng)絡和ZF網(wǎng)絡作為特征提取網(wǎng)絡并進行測試對比,選取精度更高、速度更快的網(wǎng)絡組合作為刺梨果實識別網(wǎng)絡。2019年李善軍等[10]提出基于目標檢測技術的柑橘分類檢測算法,使用基于Resnet18特征提取網(wǎng)絡的SSD算法進行檢測,應用于柑橘質量鑒定分類。2020年熊俊濤等[11]提出基于檢測算法YOLO的夜間柑橘檢測算法,對夜間中的柑橘的位置進行檢測,輔助機器人執(zhí)行采摘工作。深度學習方法與傳統(tǒng)方法相比具有強大的特征提取能力和自主學習機制,表現(xiàn)出更好的魯棒性和精準性。
近年來,隨著網(wǎng)絡算法的不斷優(yōu)化和可用數(shù)據(jù)量的增加,深度學習目標檢測技術中檢測器的精度和速度都不斷提升,計算設備算力不斷提升的同時,價格也逐步下降,使得基于深度學習的目標檢測技術在各個領域得到了廣泛的應用。當前多數(shù)目標檢測算法雖然在算法穩(wěn)定性上得到了提升,但由于模型參數(shù)過多,網(wǎng)絡計算量大,對硬件計算資源要求較高,同時較大的模型體積也使得無法適用于硬件資源相對受限的作業(yè)平臺,導致多數(shù)檢測模型算法難以部署到邊緣設備上進行使用。
而當前果實檢測工作存在以下兩個問題:(1)模型計算量大,運行速度慢。果實檢測模型多數(shù)依賴卷積神經(jīng)網(wǎng)絡進行特征提取,而一些較大型特征提取網(wǎng)絡導致計算量大,在計算能力弱、內存帶寬小的邊緣設備上難以達到實時運行要求。(2)小目標果實檢測精度低。根據(jù)小目標的相對定義方式,當目標尺寸的長寬小于原圖像尺寸的10%大小時,即可認為是小目標物體;而在拍攝獲取的果實圖像中,柑橘果實多數(shù)呈現(xiàn)為小型目標物體,目標尺度小且包含特征少,導致果實檢測難度大。
針對以上提出的兩點問題,文章通過改進Yolov3模型,提出一種輕量化小目標果實檢測模型RegNet-Yolov3,能夠實現(xiàn)在保持較高檢測精度的同時,減少模型計算量,降低模型資源占用的目標,從而滿足果園作業(yè)平臺對于輕量化目標檢測模型的需求。該文的主要貢獻有:(1)基于RegNet網(wǎng)絡[12]中X_Block模塊,設計并搭建了一種輕量化特征提取網(wǎng)絡,有效降低模型參數(shù)計算量。(2)通過Mosaic[13]數(shù)據(jù)增強方法和添加淺層網(wǎng)絡檢測分支方法,對模型的小目標檢測性能進行優(yōu)化。
該文通過改進Yolov3模型,設計并實現(xiàn)一種輕量化小目標果實檢測模型RegNet-Yolov3,如圖1所示,結構設計主要有兩點:(1)基于RegNet網(wǎng)絡中X_Block模塊設計輕量化特征提取網(wǎng)絡,減少模型參數(shù)計算量。(2)去除原Yolov3[14]模型中下采樣率為32的深層網(wǎng)絡檢測分支,在下采樣率為4的網(wǎng)絡層中添加淺層檢測分支,最終模型分別在下采樣率為4、8和16的輸出特征圖中進行檢測,并沿用FPN網(wǎng)絡結構,提高模型對小目標果實的檢測能力。
圖1 模型RegNet-Yolov3網(wǎng)絡結構Fig.1 RegNet-Yolov3 network structure diagram
原Yolov3中特征提取網(wǎng)絡Darknet53網(wǎng)絡層數(shù)深、計算量大,導致模型在邊緣設備上運行速度較慢。該文基于RegNet網(wǎng)絡中X_Block模塊,對原Yolov3中特征提取網(wǎng)絡進行輕量化設計并重新搭建。由于目標果實多數(shù)為小目標物體,不需要過深的網(wǎng)絡層數(shù)提供大的感受野,網(wǎng)絡層數(shù)設計為8層。X_Block模塊結構示意圖如圖2所示,該模塊中含有兩個1×1卷積和一個3×3卷積,同時具有3個網(wǎng)絡激活層,相比單個卷積層與激活層連接,X_Block模塊加深了網(wǎng)絡深度,在提高網(wǎng)絡擬合能力的同時,淺層網(wǎng)絡也具有更好的特征提取能力。不同于標準卷積使用多個與輸入數(shù)據(jù)相同深度的卷積核進行卷積求和的過程,X_Block模塊中采用分組卷積的方法。該方法對輸入的特征圖通道進行分組,以及每個卷積核也相應進行分組,最后在對應的組內進行卷積操作。分組卷積最終輸出數(shù)據(jù)的維度與標準卷積輸出的數(shù)據(jù)維度相同,但計算量會因為這種分組卷積方式的卷積操作而大幅度減少。因此,分組卷積的主要功能是減少模型的參數(shù)量,從而加快計算速度。
針對果園中多數(shù)果實為小目標物體,研究主要通過兩種方法對模型小目標檢測性能進行優(yōu)化:(1)Mosaic數(shù)據(jù)增強方法,(2)添加淺層網(wǎng)絡檢測分支。
圖2 X_Block模塊結構Fig.2 X_Block module structure diagram
該文應用Masoic數(shù)據(jù)增強方法提升網(wǎng)絡模型多尺度學習能力。Mosaic數(shù)據(jù)增強方法通過讀取數(shù)據(jù)集中4張圖片,對每張圖片進行翻轉、縮放、色域變換等操作,并按照不同方向位置將這4張圖片拼接合成一張圖,輸入網(wǎng)絡進行訓練,如圖3所示。由于圖像采集過程中拍攝距離等參數(shù)的不同,果實呈現(xiàn)不同尺度特征,合成后的圖片融合了多種尺度的果實特征信息,并豐富了目標果實背景信息,有利于提升模型多尺度學習能力。同時,采集圖片中多數(shù)果實呈現(xiàn)為小目標物體,對樣本圖片進行拼接合成,間接的增加了小目標樣本數(shù)據(jù)量,增強了模型對小目標果實的檢測能力。
圖3 Mosaic數(shù)據(jù)增強方法效果Fig.3 A diagram showing the results of the data enhancement method Mosaic
由于小目標的檢測主要在淺層網(wǎng)絡層中進行,而淺層網(wǎng)絡擬合能力較弱且網(wǎng)絡層特征圖缺乏高級語義特征,使得小目標檢測能力較弱。該文采用添加淺層網(wǎng)絡檢測分支的方法,提升網(wǎng)絡對小目標的檢測能力。如圖1所示,模型結構中沿用原Yolov3的FPN結構作為特征融合網(wǎng)絡,將不同深度網(wǎng)絡層特征信息進行融合,增加輸出特征圖包含的信息,提升目標檢測效果。原Yolov3模型中分別在下采樣率為8、16和32的輸出特征圖中進行檢測,該文通過去除原Yolov3模型中下采樣率為32的深層網(wǎng)絡檢測分支和添加下采樣率為4的淺層網(wǎng)絡檢測分支,提高模型的小目標果實檢測能力,最終設計的模型分別在下采樣率為4、8和16的輸出特征圖中進行檢測。
實驗圖像數(shù)據(jù)采集地點位于中國四川省某柑橘果園區(qū)。數(shù)據(jù)采集設備使用DJI osmo action相機(深圳市大疆創(chuàng)新科技有限公司),共采集615幅柑橘圖像,包括順光、逆光、密集小目標、遮擋目標等多種果實場景,并對數(shù)據(jù)集圖片按照8∶2的比例隨機切分為訓練數(shù)據(jù)和測試數(shù)據(jù)。相機拍攝要求采集到的每幀圖像垂直方向必須覆蓋果樹頂端和底端,以保證能夠采集到垂直方向上每個果實,并且每幀圖像最多只包含一顆果樹全貌,以保證果實在圖像中的尺度不會太小。同時,運用相關標注工具對圖片中的柑橘果實進行標注,獲取并記錄每個柑橘標注框的坐標信息,即標注框的左上角和右下角兩個點的x、y坐標信息。
該研究實驗運用深度學習框架進行模型訓練和測試。在計算機平臺上訓練網(wǎng)絡,使用的計算機硬件配置為Intel Core i7-6700 CPU處理器(8GB內存),GeForce GTX 1060GPU顯卡(6GB顯存),操作系統(tǒng)為ubuntu18.4系統(tǒng),使用python3.6.9編程語言在Pytorch1.5深度學習框架下實現(xiàn)網(wǎng)絡模型的構建、訓練和驗證。將訓練好的網(wǎng)絡模型在Jetson TX2 nano平臺進行部署,該平臺硬件配置為四核Cortex-A57 CPU處理器(4GB內存),maxwell架構GPU(具有128CUDA單元),操作系統(tǒng)為ubuntu18.4系統(tǒng),python版本為3.7,且應用Pytorch1.0版本的深度學習框架。
網(wǎng)絡模型在帶有GPU的計算機硬件環(huán)境下進行訓練,以提高模型訓練的收斂速度。采用帶動量因子(Momentum)的小批次(Mini-batch)隨機梯度下降法(Stochastic Gradient Descent,SGD)來訓練網(wǎng)絡。其中,動量因子設置為固定值0.9,權值衰減(Decay)為0.0005,每一批量圖像樣本數(shù)量為(Batch size)設置為4。初始學習率為0.01,使用余弦退火函數(shù)調整學習率,前期較大學習率有助于網(wǎng)絡快速收斂,后期使用較小學習率使網(wǎng)絡更加穩(wěn)定,獲取最優(yōu)解。實驗中使用GIOU計算邊框損失,使用BCE損失計算置信度損失,單分類中目標分類損失恒為0,將邊框回歸損失、置信度損失和目標分類損失三者損失函數(shù)相加作為總損失函數(shù)。
果實目標檢測模型RegNet-Yolov3的檢測精度決定著果園作業(yè)平臺中果實工作的質量,較快的網(wǎng)絡推理速度代表著模型能夠在更短時間內處理更多的數(shù)據(jù),更容易移植到硬件資源有限的果園作業(yè)平臺中,滿足果園作業(yè)的需求。該文主要從模型的平均檢測精度(mAP)、召回率(recall)和網(wǎng)絡推理時間三個方面來對果實目標檢測模型RegNet-Yolov3進行評價,相關計算公式為:
式(1)(2)(3)中,Tp—實際為正樣本且被檢測為正樣本的數(shù)量;Fp—實際為負樣本且被檢測為正樣本的數(shù)量;Fn—實際為負樣本且被檢測為負樣本的數(shù)量;J(Precision,Recall)—平均精度函數(shù),即Precision與Recall所構成P-R曲線的面積。
該文實驗主要對果實目標檢測模型RegNet-Yolov3進行三個方面比較:(1)不同輕量化特征提取網(wǎng)絡之間的性能比較;(2)優(yōu)化后的小目標檢測性能比較;(3)與其他經(jīng)典算法模型的性能比較。
2.4.1 輕量化網(wǎng)絡性能對比
該文對Yolov3模型進行輕量化設計,分別基于MobileNet[15]、ShuffleNet[16]和RegNet模型搭建輕量化果實目標檢測模型MobileNet-Yolov3、ShuffleNet-Yolov3和Regnet-Yolov3網(wǎng)絡,并分別在邊緣設備Jetson TX2 nano上進行實驗測試和結果比較。從表1數(shù)據(jù)可知,Regnet-Yolov3網(wǎng)絡的平均精度值和召回率均優(yōu)于其他兩類網(wǎng)絡模型。其中,召回率方面分別比MobileNet-Yolov3和ShuffleNet-Yolov3高2.6%、2.6%,在平均精度方面分別比MobileNet-Yolov3和ShuffleNet-Yolov3高0.9%、3.0%。
由表1測試結果可以看出,MobileNet-Yolov3模型整體速度較慢,因為MobileNet模型中采用深度可分離卷積方法,特征圖通道的卷積次數(shù)增加導致內存訪問的消耗時間增加;ShuffleNet-Yolov3模型精度較低,因為ShuffleNet模型中將特征圖通道分為兩部分,一部分用來提取特征,另一部分做殘差連接,有效的特征提取通道數(shù)減少導致模型精度較低;RegNet模型中使用分組卷積減少網(wǎng)絡計算量同時降低網(wǎng)絡計算耗時,達到較高精度和速度,所以RegNet-Yolov3模型整體上精度和速度較為均衡,適合在邊緣設備上進行部署。
表1 不同輕量化網(wǎng)絡檢測結果對比Table 1 Comparing the detection results of different lightweighting networks
2.4.2 小目標檢測性能優(yōu)化對比
該文基于3.4.1節(jié)中設計好的輕量化果實檢測模型RegNet-Yolov3基礎上,對RegNet-Yolov3模型的小目標檢測性能進行優(yōu)化,并在邊緣設備Jetson TX2 nano上進行測試。因為小目標的檢測主要在網(wǎng)絡淺層中進行,所以通過去除原Yolov3中下采樣率為32的深層網(wǎng)絡檢測分支,添加下采樣率為4的淺層網(wǎng)絡檢測分支的方法,提升模型小目標檢測能力。實驗結果如表2所示,通過添加淺層網(wǎng)絡檢測分支,RegNet-Yolov3模型平均精度值和召回率值分別達到96.0%和95.3%,僅在增加少量的計算時間基礎上,模型性能得到了較大的提升。
表2 小目標檢測性能優(yōu)化結果對比Table 2 Optimization results for comparing small object detection performance
2.4.3 與其他經(jīng)典模型比較
經(jīng)3.4.1節(jié)和3.4.2節(jié)實驗結果可知,該文基于原Yolov3網(wǎng)絡模型基礎上,利用RegNet網(wǎng)絡中X_Block模塊搭建輕量化特征提取網(wǎng)絡,并加入淺層網(wǎng)絡檢測分支,實現(xiàn)精度高、速度快的輕量化果實檢測模型RegNet-Yolov3,并和其他模型進行了比較。從表3可知,在柑橘果實檢測任務中,Yolov3因模型網(wǎng)絡較大,精度高但網(wǎng)絡推理速度慢;Tiny-Yolov3特征提取網(wǎng)絡淺,網(wǎng)絡推理速度快但精度較低;該文提出的RegNet-Yolov3網(wǎng)絡模型,在邊緣設備Jetson TX2 nano計算耗時為122 ms,檢測精度為96%,整體上速度和精度都較為均衡,可部署在邊緣設備TX2 nano中應用于果園作業(yè)平臺果實檢測工作。
表3 不同網(wǎng)絡模型檢測結果對比Table 3 Comparison of detection results of different network models
針對果園中柑橘果實的檢測任務,該研究設計并實現(xiàn)了一種基于邊緣設備Jetson TX2 nano的柑橘果實檢測模型RegNet-Yolov3。該模型采用RegNet模型中X_Block模塊,構建輕量級特征提取網(wǎng)絡,有效提高模型在邊緣設備上的運行速度;并針對果園中柑橘果實小尺度目標特點,提出采用Mosaic數(shù)據(jù)增強方法提升模型多尺度學習能力,并通過加入淺層網(wǎng)絡檢測分支,優(yōu)化模型小尺度目標果實的檢測性能,實現(xiàn)高精度果實檢測。該研究實驗結果表明,RegNet-Yolov3模型能夠很好分辨出圖像中前景目標果實,并能夠在邊緣設備Jetson TX2 nano上實時運行檢測,檢測平均精度值和模型推理速度時間分別為96%和122 ms,證明該模型能夠很好的在戶外果園移動作業(yè)平臺上進行部署和使用。
在未來的研究工作中,該研究將繼續(xù)改進模型并應用到各種不同類別的果園工作中。在檢測方面,進一步分析不同場景中果實生長狀態(tài)和圖像特征,優(yōu)化模型以提升果實檢測性能和模型泛化能力。在模型輕量化設計方面,將繼續(xù)研究并設計輕量化網(wǎng)絡模塊,簡化模型結構來減少計算參數(shù)量,實現(xiàn)更快模型檢測速度,以適配果園中不同的工作需求,提高果園整體工作效率。