?

基于ROS和深度學習的杏鮑菇智能分選系統設計*

2023-09-11 09:21孫松麗溫宏愿劉賓齡鐘錦揚毛政興
中國農機化學報 2023年8期
關鍵詞:位姿卷積分級

孫松麗,溫宏愿,劉賓齡,鐘錦揚,毛政興

(南京理工大學泰州科技學院智能制造學院,江蘇泰州,225300)

0 引言

杏鮑菇因具有杏仁的香味而得名,是具有高營養價值的常見菌種,以中國產銷量為之最[1]。對杏鮑菇進行分選分級,是種植企業重要的加工整理工序,通過分級包裝、分級存儲、分級定價和銷售,有利于提高利潤空間。但至今國內普遍采用人工分選方式,耗時低效,且存在分級精度低、一致性差等明顯弊端。針對這一現狀,研究設計一種杏鮑菇智能分選系統,以機器人代替人工實現高效、經濟、準確的分揀目標,有助于推動農產品加工的自動化和智能化水平。

目前尚未見食用菌智能分選的研究文獻,但圍繞冬棗、馬鈴薯、蘋果等果蔬類農產品的智能分選方法,一些學者進行了相關研究。主要有兩類方法,一類是基于顏色、形狀、大小等單一外部特征的品質分級方法,另一類為基于深度學習的品質分級方法。侯鵬帥等[2]基于Openmv視覺技術,以arduino mega 2560單片機為控制核心,設計了一種冬棗智能分選系統,通過色選LAB峰值判斷紅棗或綠棗,通過分選槽機械結構設計實現冬棗大小分揀;鄧立苗等[3]在已有水果機械分選機的基礎上,加裝CCD攝像頭,對所采集的馬鈴薯圖像分別利用近似橢圓度法、HSV空間下的逐點檢測法對馬鈴薯的形狀和綠皮進行外觀檢測后剔除次品,通過稱重進行分級檢測,并基于Visual C++集成開發環境完成了系統整體實現;何進榮等[4]針對傳統機器視覺技術在蘋果外部品質分級檢測中準確率低的問題,提出了基于深度學習DXNet模型的分級檢測方法,通過提取包括色澤、著色度、果型、損傷程度等多種影響蘋果外部品質的指標特征,在測試集上達到了97.84%的準確率,但對檢測方法的集成應用未作提及。

杏鮑菇的篩選分級涉及外形勻稱性、彎曲度、直徑、長度、重量等多種特性,適合采用深度學習與計算機視覺相結合的分級檢測方法,基于卷積神經網絡,自主挖掘更具泛化性的特征,有利于提高分級精度。機器人抓取檢測是指給定一個物體,找到一種滿足抓取任務需求的抓取配置[5]。根據感知信息的不同,可分為基于物體模型的抓取姿態估計和不依賴物體模型的抓取姿態檢測兩類[6]。面向杏鮑菇的機器人抓取屬于后者。同樣,針對第二類抓取檢測,利用深度學習網絡取代傳統機器學習方法已成為國內外學者的研究熱點,主要方法有基于抓取框分類思想[7-9]和基于回歸的像素級預測兩種[10-12],后者的檢測用時普遍快于前者[13]。

綜上所述,結合杏鮑菇機器人分選特點,在充分分析已有網絡模型優劣的基礎上,提出基于分類檢測網絡YOLOv5和抓取檢測網絡GG-CNN2雙模型并聯的杏鮑菇分選檢測方法,由SCARA機器人執行分選動作,通過ROS設計搭建真實的機器人智能分選系統,以實現杏鮑菇無損分級的高精度和高效率。

1 系統總體設計

1.1 系統總體框架

智能分選系統主要由視覺系統、計算機系統和SCARA機器人系統三部分組成。硬件部分選用Intel Realsense D435i深度相機采集圖像信息,以配有柔性夾爪的SCARA機器人作為抓取執行器。軟件部分包括感知分析、人機交互、執行規劃三大模塊。感知分析模塊運行于計算機系統1,接收深度相機采集的RGB圖與深度圖,經已訓練好的智能分選檢測模型分析得到杏鮑菇品質級別號和機器人抓取位姿信息,經由ROS總控系統發送給執行規劃模塊。執行規劃模塊規劃SCARA機器人運動軌跡,驅動機器人和柔性夾爪配合完成杏鮑菇的抓取與分類放置?;赑yQt開發的人機交互模塊運行于計算機系統2,負責接收用戶指令、顯示智能分選結果、監控系統運行狀態等。系統總體結構框架如圖1所示。

圖1 系統總體框圖

1.2 系統工作流程

智能分選系統整體工作流程如圖2所示。啟動ROS總控運行程序,等待分級檢測和抓取檢測模型加載完成后,啟動上位機人機交互系統和圖像保存程序,SCARA機器人回到home點,單擊人機交互界面自動模式下的啟動按鈕后系統即進入運行狀態。當杏鮑菇位于深度相機下方時,觸發拍照,系統自主判斷杏鮑菇分級結果和機器人抓取位姿,引導控制SCARA機器人執行動作后返回home點,至此完成一次智能分選。運行過程中,上位機系統實時顯示深度相機采集的RGB圖、分級結果、抓取位姿、數據統計等一系列關鍵數據。

圖2 系統工作流程圖

2 智能分選檢測模型構建

本文的智能分選檢測模型由基于YOLOv5的分級檢測和基于GG-CNN2的抓取檢測雙模型并聯構成,分別用于杏鮑菇品質分級和機器人抓取位姿的檢測實現。

在分類檢測領域,YOLO(You Only Look Once)持續保持領先水平[14-15]。YOLOv5網絡結構具有檢測精度高、運行速度快、權重參數小的優勢,最高檢測速度可達每秒140幀。YOLOv5網絡具體包含YOLOv5s、YOLOv5m、YOLOv5l與YOLOv5x這4種架構,主要區別為在網絡的特定位置處所包含的特征提取模塊數量和卷積核數量不同,4種模型的參數量和體積依次增大[16]。模型越大,精度越高但識別速度越慢[17]。由于模型的檢測精度、實時性與是否輕量化直接關系到機器人分揀的準確率與效率,因此,本文以YOLOv5s為基礎,設計杏鮑菇分級檢測模型。

本文采用自頂向下的頂抓策略實施機器人抓取,為平面抓取。抓取檢測的主要目標是確定機器人空間下抓取點的定位和繞水平面法線方向的旋轉角度。GG-CNN2是具有像素級抓取質量的生成式抓取檢測卷積神經網絡GG-CNN(Generative Grasping Convolutional Neural Network)的改進版。與其它抓取檢測CNN相比,具有2個明顯優勢:一是不依賴抓取候選框的篩選,直接生成像素級的抓取位姿;二是具有66 000個參數,在一臺配置GPU的桌面計算機上進行抓取檢測僅需20 ms,較其他抓取CNN動輒百萬個參數和秒級的檢測時間呈現量級式的減少,檢測速度快、實時性強[18]。

2.1 分級檢測模型

2.1.1 YOLOv5s網絡結構

YOLOv5s網絡結構如圖3所示,主要由Backbone、Neck和Output三大網絡模塊組成。

圖3 YOLOv5s網絡結構

1) Backbone網絡功能為特征提取。第1層Focus模塊用于將輸入圖片進行間隔分塊、拼接、卷積,主要目的是加快訓練速度;第3、5、7、10層為數量不等的BottleneckCSP模塊,主要是為了更好地提取圖像的深層網絡特征;第9層SPP(Spatial Pyramid Pooling)為金字塔池化模塊層,模塊內部有三個大小分別為5×5、9×9、13×13的呈并列關系的最大池化層(Max pooling)和Concat拼接層,通過合理設置最大池化的參數值,可以保證模塊在輸入和輸出特征圖大小相同的情況下提取到更多特征,提高網絡感受野。

2) Neck網絡功能為特征融合。通過4個Concat拼接層,分別將第12層與第7層、第16層與第5層、第19層與第15層、第22層與第11層進行拼接,更好地融合了多尺度特征,改善了低層特征的傳播,增強了模型對于不同尺寸對象的檢測。

3) Output網絡為模型的最終預測輸出。通過三個卷積層,可以輸出不同大小目標物的檢測結果。本文分級檢測每個Detect輸出一個27通道的向量(即3×(4+1+4)),包括3個錨框(Anchor box),以及每個錨框對應的4個分類數、1個類別置信度和4個邊界框(Bounding box)位置坐標值。

2.1.2 數據集制作

杏鮑菇分級標準是參照種植企業人工分選方法,依據新鮮杏鮑菇外部品質特性分為A(大一級)、B(一級)、C(二級)、X(次品)4個級別,需自制符合要求的數據集。數據集采用Realsense D435i深度相機自帶SDK進行拍攝,同時保存RGB圖和深度圖。分級檢測算法僅使用RGB圖,大小為640×640。因所拍攝的RGB圖中杏鮑菇大小直接影響分級判斷,故在制作數據集和系統運行時深度相機始終固定在距桌面400 mm高度處,相機鏡頭垂直向下。為提升檢測算法模型的訓練效果和泛化能力,通過隨機旋轉、鏡像翻轉和改變亮度的數據增強方法進一步擴充分級檢測數據集至4 600張,共包含4個級別的杏鮑菇。采用LabelImg標注工具標記杏鮑菇外切最小矩形框和級別號,標注結果保存為YOLO格式的txt文件。

2.1.3 模型訓練與評估

數據集4 600張樣本中按每一級別隨機取80%作為訓練集、20%作為測試集?;贗ntel Core i9-10900k CPU、3.7 GHz,NVIDIA GeForce RTX3070 GPU、8G,在Windows10操作系統下搭建Pytorch 1.11深度學習框架,使用 Python3.8語言編寫程序并調用CUDA 11.3、Cudnn等所需的庫進行了模型訓練和測試。模型訓練時,以8個樣本作為一個batch size,初始學習率設置為0.01,采用SGD作為優化器,共訓練250輪。訓練過程中分類損失逐漸下降、準確率逐漸提升,經過200次迭代后趨于穩定。

以精確率和召回率作為分級檢測模型的評價指標,測試集精確率為98.85%、召回率為98.86%,對應曲線圖如圖4所示。從圖4可以看出訓練所得模型性能良好。

圖4 精確率與召回率

2.2 抓取檢測模型

2.2.1 GG-CNN2網絡結構

GG-CNN2網絡的主要結構如圖5所示,是一種全卷積網絡結構,深度為8層。網絡第5、6層為空洞卷積(Dilated Convolution)層,第7、8層為轉置卷積(Transposed Convolution)層??斩淳矸e的加入,使得GG-CNN2在不增加網絡參數數量和執行時間的基礎上,增加了感受野,提高了輸出特征圖的分辨率。轉置卷積用于將低維特征映射到高維特征,以實現輸出特征圖與輸入深度圖大小相同。

圖5 GG-CNN2網絡結構

2.2.2 數據集制作

GG-CNN2未提供自制數據集的標注方法。此處,參考文獻[12],在與深度圖一一對應的RGB圖上使用標注程序對可行抓取位置進行標注。圖6所示為標注時和標注后的效果。標注時,以物體可抓取部位的中軸線為中心畫一條線并適量加寬(圖6(a)粗實線)表示可抓取點的集合;垂直于粗實線且過左右兩點畫一條細實線,細實線與橫軸的逆時針方向夾角表示抓取角度,細實線長度表示抓取寬度。標簽結果保存為txt文件。標注后的效果如圖6(b)所示。使用程序將txt文件轉換成GG-CNN2規定的mat標簽文件。Morrison等經實驗驗證,對機器人抓取系統的網絡訓練,數據增強尤其重要,可以有效避免網絡無法生成有效抓取和過擬合。因此在數據集制作過程中,使用了旋轉、縮放的數據增強方法,依此制作生成2 400張訓練集,850張測試集。

(a) 標注方法

2.2.3 模型訓練與評估

在與2.1.3節所述相同的環境配置下,以8個樣本作為一個batch size,初始學習率設置為0.001,采用Adam作為優化器,共訓練1 000輪。經過700輪次迭代后損失趨于穩定。

圖7所示為抓取檢測模型精確率和抓取置信度趨勢圖,穩定時兩者分別為62.3%和0.678。

圖7 精確率與抓取置信度

數據顯示該模型的精度不高,主因是GG-CNN2追求輕量化、簡化模型,從而導致精度損失。但抓取置信度均超過0.5,表示訓練模型對每一張測試集圖像均可成功預測得到一個可行抓取。結合杏鮑菇的抓取特性,綜合評價訓練生成的模型合理有效。

2.2.4 坐標變換

圖8 抓取檢測結果

根據針孔相機成像原理,若相機坐標系下的空間一點Q(Xc,Yc,Zc)成像至圖像坐標系下的對應點為s(u,v),兩者之間存在關系如式(1)所示。

(1)

采用自定義的內參標定程序和自制標定板標定可得深度相機的內參分別為:α=601.552,β=602.695,Cx=324.350,Cy=250.354。深度相機固定安裝,取Zc=385,代入式(1)后便可將抓取檢測模型輸出的圖像坐標系下的最優抓取點s(u,v)轉換為相機坐標系下的最優抓取點p(Xc,Yc,Zc)。再由式(2)相機坐標系與機器人基坐標系之間的位姿變換關系進一步求得機器人坐標空間下的最優抓取點p′(xw,yw,zw)。

(2)

3 ROS系統設計

智能分選系統總控及各子系統遵從ROS的分布式網絡思想進行部署?;赗OS的應用開發程序是一系列節點(Node)的集合,每個節點視為完成某項功能的進程。各節點之間采用包括基于服務(services)的同步通信、基于話題(topic)的異步數據流以及參數服務器(Parameter Server)上的數據存儲等點對點分布式通信機制進行通信。

3.1 總體設計

結合智能分選系統人機交互、系統總控、相機獲取圖像、分級檢測、抓取檢測、機器人控制、柔性夾爪控制等功能需求,在ROS melodic環境下,基于ROS采用python和C++語言共設計了8個ROS節點,分別為Qt_hmi、uer、Realsense_camera、gu_yolo、gu_ggcnn、Robot、gripper和arduino節點,各節點功能如表1所示,各節點關系示意如圖9所示。節點之間通過訂閱和發布話題的方式進行數據傳輸通信。

表1 ROS節點功能Tab. 1 ROS node function

圖9 ROS節點關系圖

3.2 user節點設計

user節點是核心節點,與其它每一個節點均存在通信,分選系統的邏輯控制由此節點的控制程序控制實現,是系統的數據交互樞紐。

user節點的控制流程是:Qt_hmi上位機節點通過scara_msgs/systemRun系統啟停話題發布系統啟動消息給user節點;user節點通過scara_msgs/arduinoRun話題和scara_msgs/scaraRun話題啟動arduino模塊和SCARA機器人;當傳感器檢測到杏鮑菇到達相機下方時,arduino節點通過scara_msgs/visualArrival話題向user節點發布視覺到位消息,user節點通過scara_msgs/cameraRun話題向Realsense_camera節點發布啟動相機消息,相機啟動;相機獲取杏鮑菇深度圖和RGB圖,分別通過gu_yolo節點和gu_ggcnn節點對杏鮑菇進行分級檢測與抓取位姿判斷,生成杏鮑菇級別和位姿信息;gu_yolo節點通過scara_msgs/cameraType杏鮑菇級別話題、gu_ggcnn節點通過scara_msgs/cameraGoal杏鮑菇位姿話題將生成的杏鮑菇分選結果信息發送給user節點;user節點對數據進行處理后,將分選結果通過scara_msgs/goal杏鮑菇抓取位姿話題發送給Robot節點,同時通過scara_msgs/show話題發送給Qt_hmi上位機節點;Qt_hmi上位機收到結果信息后,將信息實時顯示在上位機界面上;Robot節點收到結果信息后,將信息封裝成為空間指令幀,通過串口發送給機器人,機器人根據空間指令幀動作,并通過scara_msgs/goalState到達抓取位置狀態話題發送給user節點;user節點經處理后,通過scara_msgs/gripper夾爪驅動話題發送給gripper節點,夾爪動作實施抓取,機器人搬運、分類放置后返回home點,至此一個完整的分揀流程結束。

4 智能分選試驗

因分級檢測和抓取檢測在進行模型評估時已測試過各自的檢測精度,故本智能分選實驗的主要目的是確認智能分選檢測耗時和智能分選系統整體運行效果。對隨機放置的4種經人工初選分級但智能分選系統未知的市場隨機購買的杏鮑菇進行了總計60次的分選試驗,每一次分選過程和結果均可通過上位機人機交互界面直接觀測,如圖10所示。

圖10 系統主監控畫面

通過試驗可確認單只杏鮑菇分選檢測總耗時在18 ms內,識別速度快。從表2對應的實驗結果可知,分級平均準確率為88.35%,較分級模型測試準確率有小幅下降,分析原因主要在于:(1)實驗樣本為隨機選取且數量偏少,(2)準確性按人工分級標準判斷。60只測試樣品中,機器人成功抓取59只,抓取成功率為98.33%。1只抓取未成功,是因抓取位姿被確定在接近杏鮑菇根部,機器人抓取途中掉落。分析原因是在制作抓取數據集時,少部分數據將極限抓取位置標記為可抓取位置。以分級正確且柔性夾爪無損傷抓取杏鮑菇并按類放置作為一次成功分選,智能分選總成功率為88.35%,驗證了分選系統的整體可行性和有效性。

表2 智能分選試驗結果Tab. 2 Experimental results of intelligent sorting

5 結論

1) 提出了一種基于YOLOv5分級檢測和GG-CNN2抓取檢測雙模型并聯的杏鮑菇智能分選方法?;趦煞N網絡結構,分別進行了訓練、測試與驗證,初步證明訓練所得的分級檢測與抓取檢測模型的有效性與準確度,并在所搭建的智能分選系統平臺上進行了系統聯調。結果表明,分級檢測平均準確率為88.3%,抓取檢測成功率為98.33%;單只杏鮑菇分選檢測總用時18 ms,檢測模型能夠在保證一定精度的情況下滿足快速檢測要求。

2) 以SCARA機器人(含柔性夾爪)作為分揀執行器,設計開發了基于ROS的user總控系統,包括相機獲取圖像、分級檢測、抓取檢測、機器人控制、柔性夾爪控制等功能需求的8個子系統,以及用于人機交互的基于PyQt的杏鮑菇生產監控管理系統等全套智能分揀軟件系統,并在此基礎上完成了杏鮑菇智能分選系統物理樣機搭建與驗證,實現了智能分選算法的系統化集成應用。

3) 本文所述智能分選系統主要探討了杏鮑菇智能分選整體實現的可行性和有效性。后續將結合杏鮑菇分選特性,圍繞提高分級檢測模型的泛化性能、分級檢測與抓取檢測一體化分選算法以及流水線分揀作業場景下的機器人動態跟蹤閉環抓取等開展進一步研究。

猜你喜歡
位姿卷積分級
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
分級診療路難行?
分級診療的“分”與“整”
基于共面直線迭代加權最小二乘的相機位姿估計
基于CAD模型的單目六自由度位姿測量
小型四旋翼飛行器位姿建模及其仿真
分級診療的強、引、合
“水到渠成”的分級診療
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合