薛金林 李雨晴 曹梓建
(南京農業(yè)大學工學院, 南京 210031)
在農業(yè)機器人或者無人農業(yè)車輛行進路線上不可避免地存在大量障礙物,包括樹木、草堆、房屋、電線桿、人、牛、羊和其他農機,如果不通過傳感器實時感知并及時避開,會造成嚴重的安全問題。因此,農業(yè)機器人或者無人農業(yè)車輛應該具有檢測和識別障礙物的能力[1]。
針對農田障礙物,傳統檢測方法采用立體視覺技術[2]、小波多分辨率分解[3]、激光掃描定位[4-5]、HOG特征與支持向量機[6]等來進行。傳統方法存在的缺陷有:只進行障礙物定位而不對障礙物進行識別分類,這不利于后續(xù)精準的路徑規(guī)劃和避障;檢測障礙物的種類和數量有限;根據人的經驗選取特征,如果選取的特征不足以表征目標障礙物,則會影響識別效果。深度學習的興起為農田障礙物檢測識別帶來了新思路。薛金林等[7]針對農田作業(yè)場景中的人和其他農業(yè)車輛等動態(tài)障礙物提出了一種基于卷積神經網絡的農業(yè)自主車輛多種類障礙物分類識別方法。劉慧等[8]針對果園環(huán)境復雜難以準確檢測出障礙物信息的問題,提出了一種改進SSD方法。楊娟娟[9]提出了一種結合區(qū)域提名與無需區(qū)域提名的新型智能目標檢測算法。農田環(huán)境的地形通常是凹凸不平的,視覺傳感器需要在不穩(wěn)定的狀態(tài)中采樣,以上研究均未考慮不穩(wěn)定狀態(tài)采樣造成的模糊圖像的輸入對深度學習檢測模型的影響,這勢必造成實際檢測效果達不到預期水平。
在檢測模型的訓練階段,所使用的數據集通常是在一個穩(wěn)定的、高質量的環(huán)境中采集的。然而,當農機在田間作業(yè)時,由于相機鏡頭缺陷、相機抖動、目標運動等原因,會獲得一些模糊圖像,它們會改變圖像中包含的重要信息,導致訓練后的模型在推理階段檢測精度較差。因此,本文研究一種基于改進Faster R-CNN和SSRN-DeblurNet的兩階段檢測方法,來解決模糊圖像輸入導致的深度學習檢測模型檢測精度下降、漏檢和誤檢問題。
兩階段檢測模型的網絡結構如圖1所示,整個網絡分為4部分:去模糊網絡、骨架網絡、區(qū)域候選網絡、分類回歸網絡。去模糊網絡由不同尺度的全卷積子網絡構成,主要作用是對銳度S低于閾值SThr的圖像去模糊以恢復圖像質量;骨架網絡由去除全連接層的ResNet50網絡構成,主要作用是對圖像進行特征提??;區(qū)域候選網絡由卷積層、池化層和全連接層構成,主要作用是生成優(yōu)化候選區(qū)域;分類回歸網絡由池化層和全連接層組成,主要作用是進行目標識別和精準定位。
整個檢測模型的工作流程分為2個階段。第1個階段是基于SSRN-DeblurNet去模糊網絡進行去模糊,首先對輸入圖像進行銳度評價,如果輸入圖像的銳度S低于設定的銳度閾值SThr,則圖像被送入SSRN-DeblurNet網絡中進行去模糊處理,去模糊后的圖像被送入第2階段進行檢測;如果輸入圖像的銳度S高于設定的銳度閾值SThr,則圖像直接被送入第2階段進行檢測。第2階段是基于改進的Faster R-CNN網絡檢測圖像中的農田障礙物。首先利用骨架網絡對輸入圖像進行特征提取,生成的特征圖用于區(qū)域候選網絡(Region proposal network,RPN)和分類回歸網絡。RPN網絡級聯1個候選區(qū)域優(yōu)化網絡用于過濾低質量的候選區(qū)域,提升檢測的精度。利用RPN網絡生成的優(yōu)化候選區(qū)域和骨架網絡最后一層得到的特征圖,得到固定尺寸的候選區(qū)域特征圖。最后利用Softmax函數進行目標類別的確定并利用邊界框回歸獲得目標的精確位置。
1.1.1銳度閾值
清晰圖像比模糊圖像的邊緣更加銳利清晰,邊緣像素灰度變化大,因而有更大的梯度。因此,可以利用梯度函數獲取圖像梯度信息,從而評判圖像的銳度。梯度函數主要包括Brenner梯度函數[10]、Tenengrad梯度函數[11]、Laplacian梯度函數[12]、SMD函數[13]、Variance函數等[14]。
圖像銳度評價算法的性能通過人眼主觀評分和算法預測評分的相關性進行評價[15]。預測準確性和單調一致性是衡量評價算法性能的2個常用標準,通過以下參數體現:皮爾森線性相關系數(Pearson linear correlation coefficient,PLCC)、肯德爾秩次相關系數(Kendallrank order correlation coefficient,KROCC)、斯皮爾曼等級相關系數(Spearman rank order correlation coefficient,SRCC)、均方根誤差(Root mean square error,RMSE)[16]。如果以上3個相關系數的值越接近于1,RMSE越小,說明銳度評價算法越準確。此外,本文將單幅圖像檢測時間也納入評價參數范圍,單幅圖像檢測時間是隨機選取的500幅圖像的平均檢測時間?;谝陨?個參數進行圖像銳度評價函數的選擇。
在ITU-R BT.500 圖像質量主觀評價方法的五級損傷量表[17]的基礎上建立圖像銳度的主觀評分標準,本文只需要2個尺度對需要去模糊和不需要去模糊的圖像進行評價。因此,主觀評分標準為:當評價人認為圖像的模糊程度可以察覺但并不討厭時,該圖像的主觀得分為2;當評價人認為圖像的模糊程度討厭時,該圖像的主觀得分為1。
從數據集中隨機抽取500幅圖像,同時用4種不同的梯度函數預測銳度以及進行人眼主觀評分。4種不同的梯度函數性能如圖2所示。
圖2 4種梯度函數的性能Fig.2 Performance of four gradient functions
由圖2可以看出,采用Tenengrad梯度函數作為銳度評價函數,檢測速度快、均方根誤差最小、與主觀評價方法相關性較大。Tenengrad梯度函數采用Sobel算子分別提取水平和垂直方向的梯度[18],基于Tenengrad的圖像銳度定義為
(1)
其中
式中T——給定的邊緣檢測閾值,對應圖像最大梯度的0.5倍
Gx——像素點(x,y)處Sobel水平方向邊緣檢測算子的卷積
Gy——像素點(x,y)處Sobel垂直方向邊緣檢測算子的卷積
銳度閾值的選擇是基于測試集上的人眼主觀評分與算法預測分數分布,需滿足檢測效率要求和準確性的要求。對測試集進行主觀評分后,利用Tenengrad梯度函數對測試集的圖像進行銳度預測,根據人眼主觀評價分與算法預測分的分布確定銳度閾值。
如圖3所示,當閾值為15,有些圖像的算法預測得分較高,但主觀感覺嚴重模糊。當閾值為20時,圖像的預測得分與主觀得分基本一致。當閾值為25時,對相對清晰的圖像去模糊浪費時間和計算資源。因此,選擇銳度閾值為20是合理而高效的。
圖3 主觀評價分和算法預測分的分布Fig.3 Distribution of subjective evaluation score and algorithm prediction score
1.1.2SSRN-DeblurNet去模糊網絡
引入去模糊網絡(Scale recurrent network,SRN-DeblurNet)[19],進行模型精簡后得到SSRN-DeblurNet進行圖像的去模糊操作。SRN-DeblurNet的網絡結構如圖4所示。
圖4 SRN-DeblurNet的網絡結構Fig.4 Structure of SRN-DeblurNet
SRN-DeblurNet由3層代表不同尺度輸入且結構相同的全卷積子網組成,3層子網之間參數共享,減少可訓練參數的數量。每層子網分為編碼部分和解碼部分,編碼部分包含3個編碼模塊(EBlock),如圖4b所示,每個EBlock由1個卷積層(Conv)和3個殘差塊(ResBlock)組成。解碼部分與編碼部分結構對稱,對應3個解碼模塊(DBlock),如圖4c所示,每個DBlock由3個ResBlock和1個轉置卷積層(DeConv)組成。ResBlock的結構如圖4d所示,通過跳連接實現不同層的特征信息共享。此外,每1層還有1個循環(huán)卷積網絡(ConvLSTM),將不同尺度的圖像特征看作時序與局部空間均相關的序列進行處理。訓練過程中,隨機裁剪 256像素×256像素圖像塊(X3),然后用最近鄰插值方法得到64像素×64像素分辨率子圖(X1)和128像素×128像素分辨率子圖(X2)。上一層網絡的輸出作為下一層網絡的輸入,由粗到精,由小到大復原出清晰圖像,最后一層網絡的輸出I3作為最終的復原結果。
對于每個尺度的損失L,計算式為
(2)
式中Ii——第i個尺度上的網絡輸出
ki——每個尺度的權重,初始權重設置為1
Ni——Ii中需標準化的元素個數
SRN-DeblurNet存在參數過多,在推理階段運行速度較慢的問題,在保證模型精度的情況下,希望該模型參數量少、占用內存少、速度快、計算量低,所以本文對SRN-DeblurNet去模糊模型進行了精簡。深度學習模型的精簡方式一般有網絡剪枝、知識蒸餾、參數量化等[20]。本文采用參數量化對SRN-DeblurNet進行模型壓縮加速,得到精簡模型SSRN-DeblurNet。
對于參數量化對象,主要有:權重、激活函數輸出、梯度[21]。量化位數可分為:16位、8位、8位以下。本文采用的8位量化可帶來4倍的模型壓縮、4倍的內存帶寬提升以及更高效的緩存利用。此外,計算速度也通常有2~3倍的提升,且對精度不會造成較大損失。按量化過程中是否需要進行訓練可分為以下2類[22]:在模型訓練后做量化(Post training quantization,PTQ)、在模型訓練時做量化(Quantization aware training,QAT)。一般情況下,QAT可以得到更高的準確率,但同時需要有訓練數據和訓練環(huán)境。
深度學習模型壓縮流程如圖5所示?;赥ensorFlow工具箱中的graph_transforms,本文對訓練好的SRN-DeblurNet網絡的權重進行32位轉8位的PTQ量化操作,并刪除一些在推理階段不使用的計算節(jié)點,合并一些重復計算節(jié)點,得到一個壓縮率與準確率都滿足實際需求的精簡模型SSRN-DeblurNet。
圖5 深度學習模型壓縮流程圖Fig.5 Compression process of deep learning model
ROSS在R-CNN和Fast R-CNN基礎上提出了Faster R-CNN[23],其主要由骨架網絡、區(qū)域候選網絡、分類回歸網絡組成。區(qū)域候選網絡為每幅輸入圖像輸出大約300個候選區(qū)域,其中存在大量與障礙物真值框重疊率較低的低質量候選區(qū)域,這給Faster R-CNN網絡增加了許多無用的計算。為了減少低質量候選區(qū)域,本文在區(qū)域候選網絡后級聯了一個候選區(qū)域優(yōu)化網絡。該優(yōu)化網絡主要由ROI池化層和4個全連接層組成。候選區(qū)域優(yōu)化網絡以候選區(qū)域生成網絡輸出的候選區(qū)域作為輸入;對候選區(qū)域所包含的特征進行池化,生成池化特征圖;利用全連接層FC1和FC2對池化特征圖進行特征映射;利用全連接層FC3根據映射后的特征輸出該候選區(qū)域內是否包含待測目標的分數,利用 Softmax函數對分數進行歸一化,從而得到候選區(qū)域內是否包含待測目標的置信度;全連接層FC4通過邊界框回歸輸出邊界框的坐標偏移量,從而修正候選區(qū)域的位置。將候選區(qū)域內包含待測目標的置信度與設置的前景過濾閾值(0.8)和背景過濾閾值(0.2)進行比較,輸出置信度大于前景閾值的正樣本和置信度小于背景閾值的負樣本。候選區(qū)域優(yōu)化網絡的結構如圖6所示。
圖6 候選區(qū)域優(yōu)化網絡Fig.6 Region proposal optimization network
候選區(qū)域優(yōu)化網絡的損失函數為
(3)
式中p——候選區(qū)域內包含待測目標的置信度
u——候選區(qū)域的標簽,正樣本時為1,否則為0
λ——損失函數的損失權重,初始設置為1
圖像采集設備為QR-USB500W02M-V60型USB高清數碼攝像頭,分辨率為640像素×480像素時,幀率為30 f/s,實際使用時為20 f/s左右。將攝像頭安裝在茂源MY250型輪式拖拉機上,攝像頭與地面的垂直距離為1.33 m。攝像頭通過以太網將接收到的圖像傳送到計算機上。攝像頭的安裝位置如圖7所示。
圖7 攝像頭安裝位置Fig.7 Installation location of camera
將收集到的2 370幅圖像按比例7∶2∶1分為訓練集、驗證集、測試集。利用標注軟件對圖像中的人、拖拉機、草堆、電線桿、樹、房子、羊、牛8種農田障礙物進行標注。為最大限度模擬農田環(huán)境下圖像采集可能遇到的模糊類型,模糊數據集由GOPRO數據集與自制模糊數據集組成,共5 347個清晰和模糊圖像對。其中自制模糊數據集基于馬爾可夫過程隨機生成相機運動軌跡和模糊內核[24],對圖像進行處理得到,如圖8所示。
圖8 自制模糊數據集Fig.8 Self-made blurring dataset
試驗平臺為臺式計算機,處理器為Intel Core i7-8700k,主頻為3.70 GHz,32 GB內存,250 GB固態(tài)硬盤,顯卡為GeForce GTX1060。運行環(huán)境在Ubuntu 16.04 LTS下,編程語言為Python 3.6,模型訓練均在TensorFlow深度學習框架下進行,并行計算框架和深度學習GPU加速庫分別為CUDA 9.0和cuDNN 7.4.2。
訓練去模糊網絡SRN-DeblurNet時,在每次迭代過程中,隨機剪裁256像素×256像素的模糊圖像塊作為輸入,模糊圖像塊每個通道除以255進行數據歸一化。尺度設為3,批量大小設為8,訓練輪數設為2 000輪,動量因子設置為0.9。采用Adam優(yōu)化器,參數β1=0.9,β2=0.999,ε=10-4。利用隨機梯度下降法訓練網絡,初始學習率設置為0.001。訓練參數初始化方式采用Xavier方法。
2.3.1去模糊結果評價指標
以峰值信噪比(Peak signal to noise ratio,PSNR)和結構相似度(Structural similarity,SSIM)作為去模糊網絡輸出結果的評價指標[25]。
PSNR是一個表示信號最大可能功率和噪聲功率比值的工程術語,單位是dB,一般取值范圍為20~40 dB,數值越大表示失真越小。SSIM分別從亮度、對比度、結構三方面度量圖像相似性,取值范圍為0~1,其值越大,表示圖像失真越小。
2.3.2去模糊結果
SSRN-DeblurNet與SRN-DeblurNet的參數對比如表1所示,包括參數量、單幅圖像去模糊時間、PSNR和SSIM。圖9為SSRN-DeblurNet與SRN-DeblurNet的去模糊效果對比。
表1 SSRN-DeblurNet與SRN-DeblurNet的參數對比Tab.1 Comparison of indicators between SSRN-DeblurNet and SRN-DeblurNet
圖9 SSRN-DeblurNet與SRN-DeblurNet去模糊效果對比Fig.9 Comparison of deblurring between SSRN-DeblurNet and SRN-DeblurNet
從圖9可以看出,相比于原始模糊圖,SSRN-DeblurNet恢復了部分圖像質量。但恢復效果比SRN-DeblurNet差。如表1所示,SSRN-DeblurNet與SRN-DeblurNet相比,PSNR下降7.59%,SSIM下降9.64%。PSNR和SSIM小幅度下降是因為SSRN-DeblurNet的權值數值類型是8位而不是32位,權重值更稀疏必然會導致量化過程中數值精度的損失,進而影響SSRN-DeblurNet的去模糊效果。雖然去模糊的效果不及SRN-DeblurNet,但SSRN-DeblurNet在推理速度上有顯著提高,不僅參數量減少到原模型的25.36%,檢測時間也減少到原模型的31.76%,實現了精度和推理速度之間的平衡。
在訓練階段,Faster R-CNN網絡與SSRN-DeblurNet網絡相互獨立進行訓練。為了檢驗候選區(qū)域優(yōu)化網絡的效果,將所有損失函數的權值設為1。使用ImageNet預訓練模型對改進Faster R-CNN的權重進行初始化,訓練50 000輪,初始學習率為0.002 5,權重衰減為0.000 1。
2.4.1目標檢測結果評價指標
本文以平均精度均值(mAP)和平均精度(AP)作為目標檢測結果評價指標。
當拖拉機在水泥平地處于啟動狀態(tài)時,在相機采集到的連續(xù)7幀圖像中,如圖10a所示,某幀清晰圖像的銳度約為42.73,如圖10b所示,某幀輕微模糊圖像的銳度約為38.96,說明拖拉機的振動對相機成像質量有一定影響。假設拖拉機處于以下狀態(tài):在農田作業(yè)時遇到起伏較大的坑洼地帶;鏡頭中的目標障礙物快速運動;相機未能成功對焦時,輕微模糊圖像出現的時間點將有更大的概率生成銳度低于20的模糊圖像。因此以7幀圖像作為1個周期計算單幅圖像的推理時間,計算方式為
圖10 拖拉機振動對圖像質量的影響Fig.10 Influence of tractor vibration on image quality
(4)
式中ti、ti+1、…、ti+6——第i、i+1、…、i+6幀圖像的推理時間
2.4.2改進Faster R-CNN檢測結果
對無優(yōu)化網絡和有優(yōu)化網絡時的候選區(qū)域生成結果進行可視化,如圖11所示。
圖11 生成候選區(qū)域比較圖Fig.11 Comparison of proposal regions
圖11a為輸入網絡前的原圖,圖11b為原圖輸入原始Faster R-CNN網絡時RPN網絡輸出的候選區(qū)域。從圖11b可以看出,RPN網絡將房屋前的農作物、房屋左側的雜草和樹葉都作為目標障礙物生成了候選區(qū)域。但圖像中只有房屋和電線桿是目標障礙物,因此無優(yōu)化網絡的RPN網絡生成的這些候選區(qū)域是低質量的,這些低質量的候選區(qū)域將為分類回歸網絡增加大量無用計算,降低整體網絡的收斂速度。圖11c為在RPN網絡后級聯了一個優(yōu)化網絡后原始圖像輸入網絡生成的優(yōu)化候選區(qū)域。由于設置了更高的正樣本過濾閾值0.8,優(yōu)化后的RPN網絡將房屋周圍的雜草、農作物和樹葉等作為目標障礙物生成的候選區(qū)域進行了濾除,保留的候選區(qū)域邊界框更集中于目標障礙物的真值邊界框附近,這有利于網絡快速收斂和提升網絡的檢測精度。從表2可以看出,改進后的Faster R-CNN網絡對各種農田障礙物的平均精度平均提高了1.93個百分點,這說明候選區(qū)域優(yōu)化網絡的加入能提升檢測精度。
表2 8種農田障礙物的平均精度Tab.2 Average precision of eight kinds of farmland obstacles %
為了驗證改進檢測模型的性能,在推理階段比較以下5種目標檢測方法:原始Faster R-CNN網絡、改進Faster R-CNN網絡、YOLO v5s網絡、改進Faster R-CNN與SRN-DeblurNet的兩階段檢測模型和改進Faster R-CNN與SSRN-DeblurNet的兩階段檢測模型。利用AP、mAP、單幅圖像推理時間對檢測結果進行綜合評價。
IoU閾值為0.5時,不同方法的各類障礙物的平均精度如表3所示。
表3 不同方法的各類障礙物平均精度Tab.3 Average precision of different algorithms for eight kinds of farmland obstacles %
如表3所示,不同方法對人、草堆、電線桿、拖拉機這4類目標障礙物的檢測效果較好,檢測的平均精度在50.00%以上;不同方法對羊、房屋、牛、樹這4類目標障礙物的檢測效果較差。主要原因在于數據集的樣本分布不均,后4種目標障礙物的訓練樣本數量偏少,出現過擬合現象,在推理階段表現為訓練樣本偏少的目標障礙物的平均檢測精度較低。由于采用的測試集不同,與表2相比, Faster R-CNN與改進Faster R-CNN的平均精度均大幅降低,這進一步證實了模糊圖像的輸入會導致訓練好的深度學習檢測模型的檢測精度降低。
IoU閾值為0.5時,改進Faster R-CNN由于增加了一個候選區(qū)域優(yōu)化網絡,其mAP較原始Faster R-CNN提升了1.91個百分點。對于結合了去模糊網絡的兩階段檢測模型, mAP都有了很大的提升,其中改進Faster R-CNN與SRN-DeblurNet的兩階段檢測模型的mAP最高,為66.84%。兩階段檢測方法由于添加了去模糊網絡,提高了嚴重模糊圖像的質量,因此大大減少了漏檢和誤檢的情況,從而提高了mAP,與原始Faster R-CNN相比,改進Faster R-CNN與SSRN-DeblurNet的mAP提高了12.32個百分點。出于實時性因素的考慮,對SRN-DeblurNet網絡進行了量化壓縮,以提升檢測速度,但也因此造成了改進Faster R-CNN與SSRN-DeblurNet的兩階段檢測模型的mAP降低了2.76個百分點。
由于增加了候選區(qū)域優(yōu)化網絡,改進Faster R-CNN相比于原始Faster R-CNN的單幅圖像推理時間增加了0.19 s。不同組合的兩階段檢測模型的單幅圖像推理時間均較長,主要原因是去模糊操作需要占用大量時間和計算資源。為此對去模糊網絡SRN-DeblurNet進行了模型壓縮,降低去模糊操作占用的時間,從而改進Faster R-CNN與SSRN-DeblurNet的單幅圖像推理時間較改進Faster R-CNN與SRN-DeblurNet的時間降低了0.09 s,單幅圖像平均推理時間為0.53 s。
拖拉機根據其負載水平可將其作業(yè)工況分為重負荷作業(yè)、中等負荷作業(yè)、輕負荷作業(yè)及道路運輸作業(yè)等[26]。其中,拖拉機處于重負荷和中等負荷作業(yè)工況的速度覆蓋2~14 km/h,且拖拉機大部分時間都在此速度范圍作業(yè);拖拉機處于輕負荷和道路運輸作業(yè)工況的速度覆蓋14~30 km/h。因此,改進Faster R-CNN與SSRN-DeblurNet的兩階段檢測方法基本滿足拖拉機低速作業(yè)的實時性要求。
當輸入銳度低于20的模糊圖像時,原始Faster R-CNN與兩階段檢測方法檢測結果如圖12所示。
圖12 Faster R-CNN與兩階段檢測方法檢測結果對比Fig.12 Comparison of results between Faster R-CNN and two-stage detection method
利用原始Faster R-CNN方法對4幅銳度低于20的測試圖像進行檢測(圖12a),這4幅圖像的前2幅是人工生成的,后2幅是在農田中實際采集的。在第1幅測試圖像中,草堆的置信度為0.95,草堆左邊的2人均被漏檢;在第2幅測試圖像中,在草堆的位置同時檢測出牛和草堆這2種目標障礙物,其中,牛的置信度為0.63,草堆的置信度為0.61;在第3幅和第4幅實際采集的測試圖像中,人作為目標障礙物均被漏檢。
采用改進Faster R-CNN與SSRN-DeblurNet的兩階段檢測方法時(圖12b),銳度均低于20的圖像被輸入去模糊網絡中進行去模糊后再進行檢測。第1幅測試圖像中的2人均被檢出,且置信度均為1;第2幅測試圖像中草堆被正確檢出,置信度為0.99;第3幅和第4幅測試圖像中的人均被檢出,置信度均為0.99。因此,本文提出的兩階段檢測方法可以很好地解決由于模糊圖像的輸入造成的漏檢和誤檢。
(1)為實現模糊農田圖像中的障礙物檢測,提出了一種基于改進Faster R-CNN和SSRN-DeblurNet的兩階段農田障礙物檢測方法。試驗表明,與原始Faster R-CNN相比,兩階段檢測方法的mAP提高了12.32個百分點,在模糊圖像輸入情況下很好地緩解了漏檢和誤檢情況;單幅圖像平均推理時間為0.53 s,滿足拖拉機在重負荷和中等負荷作業(yè)工況的實時性需求。
(2)由于現有的數據集樣本不均勻,進一步需建立更完整、數據量更大的農田障礙物數據集。為滿足拖拉機在輕負荷以及道路運輸工況時的實時性需求,進一步需將YOLO v5s和SSRN-DeblurNet融合進一個框架,進行端到端訓練以進一步降低模型復雜度和提升效率。