?

基于改進YOLOv7 的果園行間導航線檢測

2023-11-26 10:12彭書博陳兵旗李景彬范鵬宣劉翔業鄧紅濤張雄楚
農業工程學報 2023年16期
關鍵詞:樹干果樹注意力

彭書博 ,陳兵旗 ※,李景彬 ,范鵬宣 ,劉翔業 ,房 鑫 ,鄧紅濤 ,張雄楚

(1. 中國農業大學工學院,北京 100083;2. 石河子大學機械電氣工程學院,石河子 832003)

0 引言

在農田作業中,自動導航技術的發展給工作人員帶來了便利,作業效率相對提升,農作物產量也隨之增加[1]。20 世紀90 年代以來,國內外學術刊物上有較多的科研成果,主要集中在機器視覺導航方面;20 世紀90 年代中后期,國內外對農田導航的研究多集中在GPS(global positioning system)導航系統;經過20 多年的發展,全球高精度GNSS(global navigation satellite system)農田導航技術已日趨成熟,但其主要應用于無作物耕地的導航[2],而對于果樹等被葉片嚴重遮蓋的農田,由于衛星信號的丟失而造成定位精度下降。隨著數字照相技術和計算機技術的快速發展,當前的視覺導航不僅具有更低的硬件成本,而且能夠應用于耕作、播種、插秧、植保等農事活動,是農田作業機械實現自動導航的一個重要研究方向[3-5]。

本課題組前期對不同農田作業條件下的導航路徑識別方法的研究,為本課題的實施提供了理論基礎、技術儲備與應用經驗。CHEN 等[6]開發了一種水稻自動插秧機引導系統,對田端田埂和幼苗行列進行提取,并且可以檢測出行列和田間的末端。趙穎等[7]提出了一種改進的哈夫變換(Hough transformation)方法,求得所有方向上的候補點連接已知點斜率的最大值,經過轉化得到導航線斜率。張紅霞等[8]根據農田圖像特點,采用K均值聚類算法(K-means)實現農作物與背景的分離,并通過定位點的位置信息對定位線進行提取。李景彬等[9]先對圖像進行濾波處理,再對第一幀圖像尋找候補點群、非第一幀圖像與前幀關聯尋找候補點群,最后通過已知點Hough 變換完成棉花種植生產過程中的導航路線自動提取。彭順正等[10]針對矮化密植棗園環境,提出“行閾值分割”和“行間區域”方法,將目標和背景分離,并對行間噪聲進行消除,準確定位了主干與地面的交點。張雄楚等[11]提出在灰棗棗園中將像素值為0 的像素坐標平均值作為Hough 變換的已知點坐標進行導航,在駿棗棗園中將每行像素上R(red,R)分量值最小的像素點平均值作為Hough 變換的已知點坐標進行導航。以上研究都是基于色彩變換的傳統圖像處理技術,在特定的農田環境有適用性,但對果園的適應性較弱。

神經網絡是一種非常有效的學習方法。該算法能夠充分考慮不同場景下的真實農業場景,具有較強的抗干擾能力,能夠很好地應對光照、陰影等干擾,如今被廣泛地應用到各個領域。吳偉斌等[12]在金字塔場景解析網絡(pyramid scene parsing network,PSPNet)的基礎上構建了MS-PSPNet 語義分割模型,對山地果茶園道路進行分割識別。韓振浩等[13]使用U-Net 語義分割算法獲取到路徑擬合點,接著對擬合點進行多段擬合,最終形成導航路徑。YU 等[14]研究了5 種基于深度學習的機器視覺方法在不同野外場景下用于導航線的提取,并成功部署在系統上。LIU 等[15]將基于卷積神經網絡(convolutional neural networks,CNN)的Faster R-CNN(faster region convolutional neural networks,Faster R-CNN)和SSD(single shot multiBox detector,SSD)目標檢測模型應用于稻田幼苗的識別和定位,以定位點進行擬合提取導航線,結果表明,Faster R-CNN 精度更高但SSD 速度更快。張勤等[16]介紹了一種利用 YOLOv3 對水稻幼苗進行目標提取的方法,通過對幼苗圖像進行灰度化、濾波,提取到幼苗的特征點,對特征點進行最小二乘法進行苗列中間線的擬合。以上所研究的深度學習算法能夠有效地解決一些應用場景中傳統圖像處理算法難以處理的問題。

蘋果一般采用寬行距、窄株距的種植模式[17],果園環境復雜多變,導致果園內的光照和陰影呈現出非均勻分布的特點,傳統圖像處理技術普適性較差。視覺導航參照點的選擇是獲得正確導航線的關鍵[18],果樹樹干根部中點位置是一個重要的特征點。在蘋果樹生長期間,果樹根部易被雜草等遮擋,造成果樹根點提取不準確。

本文提出一種基于 YOLOv7 改進的果樹樹干檢測算法,利用該模型獲得矩形邊框的底部中心坐標,并將其作為定位參照點,通過最小二乘法對兩側果樹行線和導航線進行擬合,以實現導航路徑的精準規劃。

1 YOLOv7 模型

YOLOv7 網絡結構主要由3 個部分組成,即輸入端(Input)、主干網絡(Backbone)、檢測頭網絡(Head),在檢測速率5~160 幀/s 范圍內,該模型在速度和精度上有較大的優勢[19]。輸入部分通常為640×640×3 尺寸的圖像,經過預處理輸入到主干網絡中。主干網絡在YOLOv5 的基礎上引入 ELAN(efficient layer aggregation networks)結構和MP1(max pooling,MP1)結構,結合CBS 模塊對輸入的圖像進行特征提取。其中,CBS 模塊由卷積(convolution)、標準化(batch normalization)、激活函數(SiLU)組成,ELAN 結構由多個CBS 模塊進行堆疊,MP1 結構則通過最大池化層和卷積塊雙路徑分別對特征圖進行壓縮。檢測頭網絡由SPPCSPC(spatial pyramid pooling,cross stage partial channel)結構、引入ELAN-H 和MP2 結構的特征提取網絡以及RepConv 結構組成。由主干網絡輸出的3 個特征層在檢測頭網絡得到進一步訓練,經過整合輸出3 個不同尺寸的預測結果,實現對目標的多尺度檢測。

2 YOLOv7 網絡改進

YOLOv7 模型對尺度較小或低分辨率的目標信息識別能力不足,容易出現漏檢和誤檢的情況。而在果園圖像中,靠近相機的物體會占據更多的圖像空間,離相機較遠的物體圖像空間占據少,看起來更小,這種“透視效果”對于果樹行遠處的目標樹干檢測提出了更高要求。另外,本文以矩形框的底邊中點坐標作為果樹定位參照點,矩形框的準確性對導航線的提取至關重要,因此提升矩形框的置信度以及準確度,可以有效提高導航線的精度。

改進YOLOv7 結構如圖1 所示。本文首先在YOLOv7檢測頭網絡中引入CBAM 注意力機制,以提取蘋果樹干的關鍵特征信息,同時抑制樹干背景噪聲對檢測目標的干擾,增強模型對目標的識別能力,然后在ELAN-H 模塊和Repconv 模塊間增加一個針對低分辨率圖像和小目標的 CNN 模塊SPD-Conv,以替代甚至消除卷積步長和池化層帶來的負面影響,提高模型對低分辨率和小目標的檢測能力。

2.1 CBAM 注意力機制

為有效降低果園復雜環境的干擾,提升樹干識別檢測模型的魯棒性,本文在YOLOv7 的檢測頭網絡中引入CBAM 注意力機制,和SENet(squeeze-and-excitation networks)[20]只關注通道的注意力機制不同,它包括通道注意力模塊(channel attention module)和空間注意力模塊(spatial attention module)兩個部分。

通道注意力模塊用于計算每個通道的重要性。通過最大池化和平均池化對特征圖空間向量進行池化操作,將池化結果輸入到多層感知機(shared multi-layer perception,Shared MLP)模型中,通過Sigmoid 函數生成通道注意力權重向量,從而更好地區分不同通道之間的特征。

空間注意力模塊用于計算每個像素在空間上的重要性,更好地捕捉圖像的空間結構??臻g注意力機制將通道注意力模塊得到的特征圖作為輸入,對其在空間維度上進行最大池化和平均池化操作,然后進行卷積操作,并通過Sigmoid 函數將其歸一化到[0,1]的范圍內,最后與通道注意力模塊得到的特征圖進行內積運算,得到最終的特征圖。

通道注意力和空間注意力的組合,使得網絡能夠更加準確地捕捉到目標的重要特征,提高網絡的表示能力和泛化能力[21],從而實現對樹干關鍵特征的高效提取和特征增強,削弱環境背景干擾。

2.2 SPD-Conv 模塊

在蘋果樹干圖像中存在著一些小目標,這些小目標分辨率較低,特征學習受限;同時大目標通常主導特征學習過程,致使小目標無法檢測到。傳統CNN 架構使用跨步卷積和池化層跳過具有大量冗余像素的信息,但在圖像分辨率低和小目標識別任務中存在細粒度特征損失從而導致學習特征困難[22]。如圖1 所示,在YOLOv7 目標檢測模型檢測頭網絡的ELAN-H 模塊后引入SPDConv 模塊可有效提升對低分辨率小目標的檢測能力,減少漏檢、誤檢現象。

SPD-Conv 主要由一個SPD 層和一個非跨步卷積構成。當比例因子為2 時,在SPD 層部分,給定原始特征圖X尺寸為s×s×c1(s代表特征圖的長和寬,c1為特征圖的通道數),通過切片得到4 個子映射,它們的尺寸均為(s/2,s/2,c1),沿著通道維度將這些子特征映射連接起來,從而得到一個特征映射X′,它的空間維度減少了一個比例因子,通道維度增加了一個比例因子,尺寸為(s/2,s/2,4c1)。在SPD 特征轉換層之后,為了盡可能地保留所有的判別特征信息,添加一個具有c2通道數的無卷積步長層,其中c2<4c1,特征圖尺寸變為(s/2,s/2,c2)。

3 試驗與結果分析

3.1 數據采集及預處理

數據集采集于北京市昌平區的北京興壽農業專業合作社,果園內果樹樹形為紡錘形,種植行距約3.5 m,株距約2.5 m。數據集由PCBA-P1080P 工業攝像頭進行采集,拍攝時水平手持攝像頭,置于兩行果樹中央,距離地面1.5 m 左右,緩慢向前移動,并采集攝像頭正前方的圖像,包括不同光照亮度下的蘋果樹行間信息。共采集視頻28 條,平均時長在30 s 以上,對視頻進行抽幀處理,得到數據集共1 588 張。將數據集進行劃分,得到訓練集1 264 張、驗證集158 張、測試集158 張,使用LabelImg 進行標注,標簽設置為tree。將完整的樹干標定在矩形邊框內,1 588 張圖像所標記的蘋果樹干為11 043 個。圖像標定完成后,所生成的標簽以xml 文件保存,文件中包含了標簽類別和矩形邊框的左上角和右下角坐標。

3.2 試驗環境與評價指標

試驗采用臺式計算機,處理器為Intel(R)Core(TM)i5-12 400 2.50 GHz,內存為16 GB,GPU 為NVIDIA GeForce RTX 3 070,運行環境為Windows10(64 位)操作系統,配置深度學習環境為Python=3.7.12+torch=1.7.1+torchvision=0.8.2,CUDA 版本為11.0。在訓練過程中,對網絡模型使用隨機梯度下降法(stochastic gradient denset,SGD)進行學習和更新網絡參數[23],并采用余弦退火的學習率衰減方式,設定的部分超參數如表1 所示。

表1 網絡訓練超參數Table 1 Network training hyperparameters

本文采用準確率(precision,P)、召回率(recall,R)、精度均值(average precision,AP)參數量(parameters,Params)和畫面每秒傳輸幀數(frames per second,FPS)來共同對改進模型進行評價[24]。其中準確率指模型正確預測為正的占全部預測為正的比例,召回率指正確預測為正的占全部實際為正的比例,參數量代表模型的空間復雜程度,每秒傳輸幀數評價模型的識別速度。相關計算式如下:

式中TP 為準確識別出樹干的數量,FP 為非樹干被檢測為樹干的數量,FN 為未檢測出樹干的數量。

3.3 試驗結果分析

為驗證本文改進YOLOv7 模型的優勢,將其與Faster R-CNN、YOLOv7、YOLOv5、YOLOv4 進行對比。在相同的硬件條件、數據集和試驗參數下,試驗結果如表2 所示??梢钥闯?,改進后的模型檢測精度比Faster R-CNN、YOLOv7、YOLOv5、YOLOv4 分別高11.5、2.31、4.02、13.87 個百分點;檢測速度相對于YOLOv5、YOLOv4 較低,但高于Faster R-CNN 和原始YOLOv7 模型,滿足實時檢測的需要;在參數量方面,改進YOLOv7 模型相比較原始YOLOv7 模型有一定增加,但遠低于Faster R-CNN、YOLOv5、YOLOv4 模型。綜合比較,改進后模型在蘋果樹干識別方面有較大的優勢。

表2 不同模型試驗結果對比Table 2 Comparison of different models test results

為進一步驗證本文改進YOLOv7 模型中各改進方法的有效性,對同一數據集以原始YOLOv7 模型為基礎進行消融試驗,試驗設置參數與表1 相同,試驗結果如表3 所示。在檢測頭網絡引入CBAM 注意力機制模塊,優化了網絡結構的特征融合能力,減小了圖像中背景的干擾,增強目標果樹的關鍵特征;同時引入SPD-Conv模塊,提高對低分辨率圖像和小物體的識別效果,降低模型錯檢、漏檢率。如表3 所示,原始YOLOv7 模型精度為92.9%,引入CBAM 注意力機制模塊后模型精度為93.97%,比原始YOLOv7 模型提升了1.07 個百分點,本文算法精度達到了 95.21%,比引入 CBAM 注意力機制模型提升了1.24 個百分點,檢測速度提升了4.85 幀/s。

表3 消融試驗結果Table 3 Ablation experiment results

3.4 檢測結果對比

為驗證本文改進算法對樹干識別的有效性和通用性,對原YOLOv7 模型和改進YOLOv7 模型的檢測效果進行比較,如圖2 所示??梢钥闯?,對于場景1,原YOLOv7模型漏檢了右前方的一棵蘋果樹,且圖像左下角這棵樹的目標框標記不太準確,改進YOLOv7 模型則沒有出現這些問題;對于場景2,原YOLOv7 模型漏檢了遠處特征不明顯的一顆小樹,改進YOLOv7 模型則檢測成功且更為準確;場景3 中棗樹較密,原YOLOv7 模型識別數量少,改進YOLOv7 模型識別出大多數樹干。試驗結果表明,改進后的算法在蘋果園以及棗園環境中能夠更有效更準確地檢測出目標。此外,改進YOLOv7 模型輸出的置信度值通常更高,這說明改進后的網絡檢測能力更強,更能關注目標的特征信息。

圖2 果樹樹干檢測效果對比Fig.2 Comparison of fruit tree trunk detection results

4 導航線檢測

4.1 定位參照點的獲取

定位參照點的正確提取對于獲得果園內導航線至關重要[25]。蘋果樹干與樹冠在橫向面積上相差較大,且樹枝向外部延伸長短不一,導致樹干中心點橫坐標與樹冠不同,另外果樹在種植時一般以樹干根點作為定位成行的基點,若以整棵樹的中心作為定位參照點,導航線誤差較大,因此選擇以蘋果樹干根部中心作為定位參照點。

通過YOLOv7 訓練可得到目標樹干的矩形邊框坐標,進而得到蘋果樹干的中心坐標。設矩形邊框的左上角坐標為(x1,y1),右下角的坐標為(x2,y2),蘋果樹干根部中心坐標(x,y)可以表示為

對圖2 中3 個場景進行定位參照點提取,結果如圖3 所示,提取到的定位參照點用黃色標記點表示,紅色標記點為人工標記樹干中點。

圖3 人工標記樹干中點與定位參照點提取結果Fig.3 Extraction results of manual marking of trunk midpoints and locating reference points

4.2 定位參照點誤差分析

在測試集中隨機抽取100 張圖像共計769 棵蘋果樹干進行定位參照點的誤差分析,以驗證本文選擇定位參照點的效果。如圖4 所示,可以看出橫向誤差和縱向誤差大都集中在10 像素以內,橫向誤差在10 像素以內的有750 棵,占比97.5%,縱向誤差在10 像素以內的有758 棵,占比98.5%,平均直線誤差為4.43 像素。

圖4 人工標記樹干中點與定位參照點像素誤差Fig.4 Pixel error between manual marking of trunk midpoints and locating reference points

對相機進行標定,使用Matlab 軟件得到相機的內參矩陣,通過計算將像素坐標轉換成相機坐標[26]繼而求出定位參照點與人工標記樹干中點的實際平均誤差為8.85 cm,證明本文以矩形邊框底部中點代替樹干根部中點作為導航線定位參照點的有效性。

4.3 導航線擬合

導航線擬合算法常用的有三次樣條插值[27]、Hough變換[28]和最小二乘法[29]等。三次樣條插值曲線每兩個坐標點之間都需要擬合一組參數,復雜度較高;Hough變換和最小二乘法都可以用于本研究導航線的擬合,但是由于目標點較少,最小二乘法相對簡單快速,因此本研究選擇以最小二乘法進行導航線的擬合。

最小二乘法的擬合原理是:給定一系列(xi,yi),(i=1,2,3…N),假定x和y具有線性關系,即可以用y=Kx+B的方式進行擬合。定義一個優化函數,為了避免正負相消,使用實際觀察值與擬合值之間的差的平方和來定義:

當f最小時,擬合效果最好,此時的K和B值為最優參數。

在獲得左右兩列蘋果樹干的定位參照點坐標后,進行果樹行線的擬合。設單側樹干生成的20 個定位參照點坐標為 (Xi,Yi),i=1,2,3,···m(Xi,Yi),i=1,2,3···20,通過最小二乘法對其進行擬合,得到兩側果樹行線如圖5所示。在得到的兩側果樹行線上分別在垂直方向上等間隔取20 個點,坐標記為(Xl,Yl),l=1,2,3…20;(Xr,Yr),r=1,2,3…20;將這左右各20 個點的x、y坐標分別對應求取平均值,可以得到位于兩側果樹行線中間的導航擬合線的20 個定位點,其坐標為(Xp,Yp),p=1,2,3…20,表達式為

對定位點進行最小二乘法計算,得到擬合導航線如圖6 中的黃色線段所示。圖中紅色線段為人工觀測導航線,是對兩側果樹人工標記樹干中點進行對應求取平均值,再通過最小二乘法得到的。

圖6 擬合導航線和人工觀測導航線Fig.6 Fitting navigation line and manual observation navigation line

4.4 導航線提取精度分析

為分析擬合導航線與人工觀測導航線的誤差,引入偏差Xo,指人工觀測導航線的中點與擬合導航線中點的橫向像素距離。

對測試集中隨機抽取的100 張圖像進行分析,得到Xo的統計結果,如圖7 所示。結果顯示,偏差均小于7.88 像素,平均偏差為2.45 像素,實際平均偏差為4.90 cm,滿足蘋果園內導航的精確度要求。

圖7 導航線偏差分析Fig.7 Navigation line deviation analysis

4.5 導航線檢測速度分析

對導航線檢測速度進行分析,讀入在不同光照條件下拍攝的3 條視頻,并記錄視頻幀數。在處理程序中設置計時器,對程序開始和程序結束時間進行記錄。完成對讀入視頻的導航線檢測之后,用程序結束的時刻減去程序開始的時刻,即為視頻處理時長。將視頻處理時長除以視頻幀數,得到處理1 幀圖像的平均耗時。如表4 所示,3 段視頻平均耗時分別為0.047、0.040 和0.044 s/幀,總平均耗時為0.044 s/幀,滿足蘋果園內導航的實時性需要。

表4 導航線提取速度分析Table 4 Navigation line extraction speed analysis

5 結論

本文提出一種改進YOLOv7 模型,在模型的檢測頭網絡加入CBAM 注意力機制模塊,使卷積神經網絡能夠去注意圖像中的特殊的和重要的信息;同時引入了SPD-Conv 模塊,使模型更適合處理低分辨率圖像。使用改進YOLOv7 模型,可以更精確地獲得果樹樹干的坐標信息,進而通過最小二乘法擬合導航線。結果表明本文所研究方法檢測出的擬合導航線和人工觀測導航線誤差較小,可以滿足導航的需要。本文獲得了以下主要結論:

1)改進模型在兼顧檢測速度的同時有效提升了檢測精度,且在蘋果園和樹干密集的棗園中都適用。原始YOLOv7 算法精度為92.9%,改進后的YOLOv7 算法精度為95.21%,減少了在檢測過程中出現的誤檢、漏檢等情況。

2)采用矩形邊框的中點代替樹干根點作為定位參照點,對測試集中抽取的100 張圖像中的769 棵樹干進行誤差分析,結果顯示橫向誤差在10 像素以內的占比為97.5%;縱向誤差在10 像素以內的占比為98.5%,證明了矩形邊框的中點代替樹干根點的可行性。

3)通過對定位參照點進行最小二乘法計算得到擬合后的導航線。對測試集中抽取的100 張圖像進行導航線誤差和速度分析,以擬合導航線的中點和人工觀測導航線中點的橫向像素距離作為依據,結果顯示偏差在7.88個像素以內,平均偏差為2.45 像素,實際平均偏差為4.90 cm,處理1 幀圖像平均耗時為0.044 s,證明本文所采用提取導航線的方法具有較高的精確度。

猜你喜歡
樹干果樹注意力
種果樹
果樹冬季要休眠 易受凍害要注意
讓注意力“飛”回來
為什么樹干不是方的?
天漸冷果樹防凍要抓緊
“揚眼”APP:讓注意力“變現”
為什么要在樹干上刷白漿
為什么要在樹干上刷白漿
A Beautiful Way Of Looking At Things
怎么解決施肥引起的果樹爛根
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合