?

基于YOLOv8與蟻群算法的三目視覺蘋果采摘系統研究

2024-01-10 09:31胡建易
農業裝備技術 2023年6期
關鍵詞:雙目螞蟻像素

胡建易

(江西理工大學,江西 贛州 341000)

0 引 言

近年來,隨著全球人口的增加和農業現代化進程的加速,農業自動化技術已成為農業領域研究的重要方向之一,受到了廣泛的關注,其中自動化采摘技術是一個重要方向。該技術能夠實現農作物的高效、迅速、易于操作的采摘,提高農業生產效率,降低勞動力成本。隨著現代農業的進步,人們越來越追求高效、安全、精度高的蘋果采摘系統。本研究采用三目視覺技術,以實現蘋果采摘系統的高效、安全、高精度自動化。

雙目視覺系統最主要的優點在于其可以獲得三維信息,由此可以確定蘋果的位置和大小,使得采摘機器人能夠準確地識別蘋果,達到最佳采摘效果。在該系統中,使用了基于深度學習的圖像處理算法,使得機器人能夠準確識別蘋果的位置和大小,同時保持高精度。此外,在處理過程中根據實際情況進行了補充和優化,提高了系統的魯棒性。但雙目視覺會因實際硬件原因造成一定的空間位置誤差,為了使采摘更加準確,在機械抓取裝置上增加了一個攝像頭來輔助精準抓取,實現三目視覺采摘。

YOLOv8 是2023 年1 月由Ultralytics 發布的一款新的檢測模型,集合了之前提出的諸如YOLOX、YOLOv6、YOLOv7 和PPYOLOE 等算法的相關設計,尤其是Head 標簽分配和Loss 部分以及PP-YOLOE非常相似。YOLOv8 集百家所長達到了實時檢測界的一個新高度。由于YOLOv8 具有高精度、速度快等優勢,將為目標檢測領域帶來新的沖擊。本文將YOLOv8 應用于蘋果采摘中,利用其視覺識別能力自動檢測和定位蘋果。同時,為了使自動采摘機器人可以快速完成蘋果采摘,本文采用了蟻群算法進行路徑規劃。

1 方法與實現

本系統主要由計算機、三目視覺(雙目視覺+OV7725 攝像頭)、執行機構等構成,計算機配置采用的是13th Gen Intel (R) Core (TM) i9-13980HX 2.20 GHz 處理器,內存64.0 GB,顯卡為NVIDIA Geforce RTX 4080 Laptop GPU,編程語言采用python。核心板采用STM32F103ZET6 單片機,編程語言采用C。執行機構上掛載的攝像頭采用OV7725,超聲波模塊采用HC-SR04。雙目視覺采用Intel RealsenseT265,執行采摘機構采用的是三維的機械夾取裝置,夾爪上安裝有壓力傳感器。計算機與ARM 之間采用串口通信。系統框圖見圖1。

圖1 系統連接圖

整個采摘流程如下:首先由計算機和雙目視覺識別計算出各個蘋果的坐標值,根據坐標值應用蟻群算法計算出最優采摘路徑,然后將坐標值和采摘路徑通過串口傳給ARM 核心板,ARM 板收到信息后執行采摘任務,采摘裝置先通過橫軸和縱軸移動到第一個待采摘蘋果的(x,y)位置,然后根據蘋果的z 坐標值讓采摘裝置向前延伸靠近蘋果,當接近蘋果時開啟OV7725 攝像頭和超聲波進行位置微調矯正,當到達位置后夾爪開始抓取,待夾爪上壓力傳感器超過一定數值就可以將蘋果進行采摘,然后返回到釋放蘋果的位置進行釋放,完成一個采摘過程。流程圖見圖2。

圖2 采摘流程圖

1.1 雙目視覺

本研究采用了雙目視覺技術來實現對蘋果的自動識別和定位。雙目視覺技術借助2 個相機同時獲取圖像信息,形成2 個視角的立體影像,進而獲取目標物體的深度信息。本研究中采用的雙目視覺設備具有高精度、高分辨率和復雜場景下的抗干擾性等特點,能夠有效提高蘋果采摘系統的性能和準確度。

雙目立體視覺相機深度值計算原理如下(理想情況):

由圖3、4 幾何關系可得如下等式:

圖3 側視圖

圖4 俯視圖

進而得到物體的坐標值:

可以發現如果要計算深度z,必須要知道:

(1)相機焦距f,左右相機距離基線b。這些參數可以通過先驗信息或者相機標定得到。

(2)視差k。知道左相機的每個像素點(xL,yL)和右相機中像素點(xR,yR)的對應關系,就解決了雙目視覺的核心問題。

其中,f 為焦距,b 為2 個相機間的距離,ps 為單個像素點的寬度,d 為視差距,k 為像素視差。

圖5 為像素視差等于3 的情況,即k=3。

圖5 物體在兩個相機中的成像

像素大小指的是圖像傳感器中單個像素的尺寸大小,通常用μm 表示。在立體視覺系統中,由于使用了2 個攝像機,因此圖像傳感器中的像素大小必須相同。隨著像素大小的縮小,立體視覺系統的深度范圍將變得更大。視差是指在兩個攝像機圖像之間的像素位置的差異,它可以通過計算兩個攝像機中相同像素之間的距離差來得到。例如,如果左視圖圖像中一個像素在位置(1,30)處,而相同位置的像素在右視圖圖像中的位置為(4,30),那么視差值(差值)將為4-1=3。視差值與深度呈反比例關系。

1.2 YOLOv8 圖像識別技術

Ultralytics 公司從YOLOv5 到YOLOv8 的升級,精度上YOLOv8 相比YOLOv5 高出一大截,但速度略有下降。簡單總結下YOLOv8 在結構算法上相比YOLOv5 的升級。

1.2.1 骨干網絡部分

選用梯度流更豐富的C2f 結構替換了YOLOv5中的C3結構,為了輕量化也縮減了骨干網絡中最大stage 的blocks 數,同時不同縮放因子N/S/M/L/X 的模型不再是共用一套模型參數,M/L/X 大模型還縮減了最后一個stage 的輸出通道數,這樣可減少參數量和計算量。

1.2.2 Neck 部分

同樣是C2f 模塊替換C3模塊,為了輕量化刪除了Neck 結構中top-down 階段的兩個上采樣卷積。

1.2.3 Head 部分

換成了目前主流的Decoupled-Head 解耦頭結構,將分類分支和定位分支分離,緩解了分類和回歸任務的內在沖突。

1.2.4 標簽分配和Loss 部分

從Anchor-Based 換成了Anchor-Free,采用了TAL (Task Alignment Learning) 動態匹配,并引入了DFL(Distribution Focal Loss)結合CIoU Loss 做回歸分支的損失函數,使得分類和回歸任務之間具有較高的一致性。

1.2.5 訓練策略

訓練的數據增強部分最后10 epoch 關閉Mosaic增強更有利于模型收斂的穩定,同時訓練epoch 數從300 增大到500,使得模型訓練更充分。

YOLO 算法的第一步是分割圖片,它將圖片分割為(a×a)個grid,每個grid 的大小都相等。然后基于grid 生成bounding box,其中confidence 的計算公式是:

要使用YOLOv8 算法首先要了解其整個步驟,圖6 展示了YOLOv8 算法從電腦環境配置直至驗證效果的整個應用過程。

圖6 YOLOv8 算法的應用過程

1.3 路徑規劃

20 世紀90 年代,一位來自意大利的學者首次提出了蟻群最優路徑規劃算法。該算法通過觀察螞蟻尋找食物的行為,發現雖然單只螞蟻并沒有很強的規律性,但是多只螞蟻行動時會形成一定的規律。在不同的環境下,蟻群可以高效地尋找到到達食物源的最短路徑。當螞蟻行走時,會釋放一種叫做“信息素”的化學物質。螞蟻會感知到這種“信息素”,并向濃度更高的路徑方向前進。由于螞蟻在路上留下的“信息素”,整個蟻群逐漸形成了一個正反饋機制。經過一段時間后,整個蟻群會沿著最短路徑到達食物源。其具體算法步驟如下:

1.3.1 初始化各參數

計算之初需要初始化各種參數,例如螞蟻數量m、Alpha 信息素因子、Beta 啟發函數因子、ROU 信息素揮發因子、Q 信息素常數、T 最大迭代次數等。在運用蟻群算法時,為了選擇最佳的參數,需要一定的經驗或者試錯。參數設置建議如下:當螞蟻數量設置得過多時,路徑上的信息素會變得趨同,正反饋作用會被削弱,從而導致收斂速度減慢;如果將螞蟻數量m設置得過小,可能會導致一些路徑從未被探索,導致信息素濃度為0,過早收斂,降低全局最優解的可行性。根據經驗螞蟻數量=目標數×1.5。本系統是根據檢測到的蘋果數量來確定螞蟻數量。

設定信息素常量Q 時需要謹慎考慮,如果設置過大,會限制蟻群的搜索范圍,導致算法過早地陷入局部最優解;如果設置過小,路徑上的信息含量差別會減小,容易導致算法進入混沌狀態。因此,需要合理選擇Q 值,以保證算法具有全局搜索能力。在本系統中,常量信息素一般按照經驗取值在[10,100],本系統的取值為36;而最大迭代次數t 的設置則需要注意避免設置過大導致算法運行時間過長,同時也要避免設置過小導致可選路徑減少,使得種群容易受限于局部最優解。一般而言,最大迭代次數的取值范圍在[100,500],本系統的取值為213。信息素因子是指在螞蟻搜索過程中,路徑上的信息素對螞蟻群搜索起到指導作用的相對重要程度。若將該參數設置過大,則會讓螞蟻更傾向于選擇之前走過的路徑,減弱算法的隨機性;而過小則會減小蟻群的搜索范圍,使算法早期就陷入局部最優解。通常,信息素因子的取值范圍為1~4,本系統的取值為2.5。

啟發函數因子是指在引導蟻群搜索過程中,啟發式信息對搜索的相對重要程度。如果該參數設置過大,可以提高搜索的收斂速度,但也有可能導致算法陷入局部最優解;反之,如果該參數設置得過小,搜索過程中的隨機性就會增強,難以找到最優解。一般經驗值將該參數的取值范圍定為[0,5],本系統取值為3.2。

信息素揮發因子則是表示信息素的揮發消失水平的參數。當該參數值設置過大時,信息素將很快就消失,這樣會導致一些較優路徑被排除在搜索范圍外;若該參數值設定過小,則各路徑上的信息素含量差別很小,因此算法的收斂速度也會降低。通常經驗值將該參數的取值范圍定為[0.2,0.5],本系統的取值為0.24。

1.3.2 構建解空間

為了實現每只螞蟻的隨機分布,我們將它們分別放置在不同的起始位置上,并為每只螞蟻k(k 范圍為1~m)計算下一個要訪問的蘋果,直到每只螞蟻都訪問完所有的蘋果,螞蟻在構建路徑的每一步中,根據輪盤賭法選擇下一個要到達的蘋果。我們使用概率來表示每個路徑的選擇概率:

其中,i、j 分別表示每段路徑的起點和終點,τ 表示時間t 由i 到j 的信息素濃度,η 的值等于路徑長度d的倒數,allowedk表示未訪問過的節點的集合。

根據當前路徑ij 上的信息素濃度和啟發式函數,就可以確定從起點i 選擇終點j 的概率。通過對公式進行分析,可以得知兩個地點之間距離越短,且信息素濃度越大的路徑被選擇的概率應該相對較大。

1.3.3 更新信息素

每只螞蟻將會經過一條路徑,我們將計算出這條路徑的長度L,并記錄歷史記錄中的最優路徑長度,也就是最短路徑。同時,會更新每個蘋果路徑上的信息素濃度。信息素的更新方式如式(8)所示:

也就是說,在第t+1 次循環后,若路徑連接蘋果i 和蘋果j,則路徑上的信息素含量將會更新。我們使用一種信息素更新機制,具體是將路徑上的信息素含量在t 次循環后乘以信息素殘留系數,并加上新增信息素。這里的新增信息素是指所有螞蟻在從蘋果i 到蘋果j 的路徑上所留下的信息素之和。

1.3.4 判斷是否達到終止條件

在蟻群算法中,判斷是否達到最大迭代次數被作為算法的停止條件。圖7 蟻群算法具體流程圖。

圖7 蟻群算法具體流程

2 實驗結果

本研究研制了一種基于三目視覺的采摘系統,其應用于采摘蘋果。該系統采用了YOLOv8 算法,對蘋果進行了準確的識別和定位,并采用蟻群算法優化采摘路徑。在人工數據集測試中,該系統的蘋果定位準確率達到了95%以上,并且每張圖像的檢測時間為10~100 ms。同時進行了70 次蘋果采摘實驗,每次采摘的時間為10 s 內,一次采摘一個蘋果,綜合采摘成功率達到了93%。圖8 為模擬采摘實物圖。

圖8 模擬采摘實物圖

3 結 語

本文研究了一種采用三目視覺、YOLOv8 和蟻群算法相結合的蘋果采摘系統,實現了YOLOv8 和蟻群算法的協同工作,從而能夠自動化地識別和定位蘋果,并找到最佳的采摘路徑,實現蘋果的自動化采摘。實驗結果表明,該系統的采摘效率和準確性都比較理想。因此,該系統為農業領域實現自動化采摘提供了一種新的思路和解決方案,具有一定的應用價值和推廣前景。

猜你喜歡
雙目螞蟻像素
趙運哲作品
像素前線之“幻影”2000
基于雙目測距的卡爾曼濾波船舶軌跡跟蹤
“像素”仙人掌
我們會“隱身”讓螞蟻來保護自己
螞蟻
高像素不是全部
基于雙目視覺圖像的長度測量方法
螞蟻找吃的等
基于雙目視覺的接觸線幾何參數測量方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合