吳旭明,米金鵬,劉 丹,胡衛(wèi)兵,唐 宋,李清都
1(上海理工大學(xué) 機(jī)器智能研究院,上海 200093)
2(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
3(中原動(dòng)力智能機(jī)器人有限公司,鄭州 450000)
在自動(dòng)化技術(shù)不斷應(yīng)用的現(xiàn)今,智能抓取任務(wù)具有廣泛的應(yīng)用前景與較高的研究意義,例如:垃圾拾取、物流分揀、生產(chǎn)線自動(dòng)化等方向.自動(dòng)化處理不僅能節(jié)省人力,更能提高工作效率、保障工作場(chǎng)景的安全性與可管理性.
以垃圾分揀工作為例,眾多的垃圾分揀場(chǎng)景都需要大量人力資源來處理,而在這個(gè)處理過程中,一線工人不僅要工作在惡劣環(huán)境下,還要受到長(zhǎng)期工作勞動(dòng)與垃圾中有害物質(zhì)對(duì)人體造成的不可逆?zhèn)?為這類任務(wù)明確、效率與安全都需考量的工作場(chǎng)景制定最優(yōu)的解決方案,自動(dòng)化抓取技術(shù)是必不可少的重要環(huán)節(jié).
基于計(jì)算機(jī)視覺的智能機(jī)械臂抓取,使用深度相機(jī)等外部設(shè)備對(duì)目標(biāo)進(jìn)行采樣,再使用傳統(tǒng)機(jī)器學(xué)習(xí)、圖像處理、深度學(xué)習(xí)等方法分析與處理圖像信息.結(jié)合視覺信息,令機(jī)械臂可以有效地在動(dòng)態(tài)環(huán)境中,獲取物體位置、姿態(tài)、類別等信息.
基于視覺的機(jī)械臂抓取方法主要分為兩種:使用傳統(tǒng)的機(jī)器學(xué)習(xí)以及使用深度學(xué)習(xí).傳統(tǒng)的機(jī)器學(xué)習(xí)已經(jīng)發(fā)展了數(shù)十年,例如:SVM(Support Vector Machine),聚類,決策樹等等,這些方法的最大優(yōu)勢(shì)在于它只需要少量的訓(xùn)練數(shù)據(jù),并且具有較強(qiáng)的可解釋性和較快的運(yùn)行速度.文獻(xiàn)[1]使用SVM-rank算法訓(xùn)練了一個(gè)三階段學(xué)習(xí)模型,能夠?yàn)槲逯笝C(jī)械臂生成可行的抓取策略.文獻(xiàn)[2]從物體圖像序列中提取局部特征并使用改進(jìn)后的模糊C-Means聚類,然后把每個(gè)圖像的關(guān)鍵點(diǎn)映射到統(tǒng)一維度的直方圖矢量中,最后將該直方圖視為多類支持向量機(jī)的輸入向量,以建立訓(xùn)練分類器模型并實(shí)時(shí)識(shí)別運(yùn)動(dòng)對(duì)象.但伴隨著大數(shù)據(jù)時(shí)代數(shù)據(jù)的爆炸式增長(zhǎng),傳統(tǒng)機(jī)器學(xué)習(xí)方法體現(xiàn)出了疲態(tài).這些方法通常需要多種算法同時(shí)使用,才能實(shí)現(xiàn)較為完整的目標(biāo)識(shí)別、定位、抓取任務(wù),加大了模型設(shè)計(jì)與訓(xùn)練難度.同時(shí)這些方法通常根據(jù)特定任務(wù)人工設(shè)計(jì)而成,容易受到任務(wù)內(nèi)容、目標(biāo)物體外型等因素的影響,即模型的泛化能力不強(qiáng),難以遷移至新任務(wù)[3].
2012年,Hinton等人[4]提出AlexNet架構(gòu),是深度學(xué)習(xí)在圖像領(lǐng)域的重要里程碑.自此,基于CNN(Convolutional Neural Network)的架構(gòu)也逐步應(yīng)用于機(jī)械臂抓取任務(wù).文獻(xiàn)[5]使用Faster-RCNN獲取目標(biāo)物體的一組候選框,再將這些特征融合輸入兩層全連接網(wǎng)絡(luò)進(jìn)行最佳抓取位置的預(yù)測(cè),獲得了較好的抓取預(yù)測(cè)效果.文獻(xiàn)[6]方法使用級(jí)聯(lián)式Faster-RCNN模型預(yù)測(cè)目標(biāo)物體位置和物體抓取角度.文獻(xiàn)[5,6]均采用Two-Stage的方法,該類方法相較于One-Stage的YOLO架構(gòu),擁有更高的識(shí)別精度,但檢測(cè)速度較低.文獻(xiàn)[7]提出了一個(gè)基于視覺可擴(kuò)展的自監(jiān)督強(qiáng)化學(xué)習(xí)框架,并使用7個(gè)工業(yè)機(jī)械臂分布式訓(xùn)練4個(gè)月,可以實(shí)現(xiàn)自動(dòng)規(guī)劃抓取策略,確定抓取姿態(tài)和動(dòng)態(tài)響應(yīng)外界各類擾動(dòng),最終得到高達(dá)96%的抓取成功率.此方法具有很強(qiáng)的泛化能力以及抗干擾能力,但該框架需要基于大量的數(shù)據(jù)、設(shè)備和時(shí)間成本.不適用于常規(guī)的生活與工業(yè)應(yīng)用.
現(xiàn)有方法中,機(jī)器人感知任務(wù)大多得益于深度學(xué)習(xí),獲得了更高的感知精度.而這些方法無法直接遷移至移動(dòng)機(jī)器人、嵌入式設(shè)備等低算力平臺(tái).針對(duì)多目標(biāo)、物體姿態(tài)不固定、非結(jié)構(gòu)化視覺場(chǎng)景以及需要檢測(cè)速度的感知環(huán)境,本文結(jié)合垃圾拾取的具體任務(wù)提出一個(gè)高效感知方法,其中感知主要分為目標(biāo)檢測(cè)和物體姿態(tài)估計(jì).本文的主要貢獻(xiàn)如下:
1)構(gòu)建了一個(gè)具有12個(gè)類的垃圾識(shí)別數(shù)據(jù)集.
2)提出了基于YOLOv4目標(biāo)檢測(cè)和TensorRT加速的高效感知方法.該方法設(shè)計(jì)了一種基于K-means++聚類算法的深度信息優(yōu)化方法并通過相機(jī)內(nèi)參矩陣計(jì)算物體位置信息,最后結(jié)合RGB圖像使用圖像形態(tài)學(xué)變化和Canny邊緣檢測(cè)算法實(shí)現(xiàn)物體主方向角度估計(jì).整體感知方法框架結(jié)合深度學(xué)習(xí)方法和傳統(tǒng)的機(jī)器學(xué)習(xí)方法,完成目標(biāo)識(shí)別、目標(biāo)定位和抓取角度估計(jì)3個(gè)任務(wù),優(yōu)點(diǎn)是實(shí)時(shí)性強(qiáng)且計(jì)算簡(jiǎn)便.
針對(duì)垃圾拾取任務(wù),本文構(gòu)建了一個(gè)具有12類垃圾的識(shí)別數(shù)據(jù)集.其中數(shù)據(jù)集的[Cylinder,Shoes]兩個(gè)類別的功能主要是用于移動(dòng)機(jī)器人抓取過程中,對(duì)行人進(jìn)行避障,數(shù)據(jù)集的分類類別以及部分?jǐn)?shù)據(jù)樣例如圖1所示.
圖1 數(shù)據(jù)集樣例(12分類)
整個(gè)數(shù)據(jù)集共標(biāo)注有9792張圖片,69477個(gè)標(biāo)注邊界框.數(shù)據(jù)每個(gè)類別的標(biāo)注邊界框數(shù)量分布圖,如圖2所示.
圖2 各類數(shù)據(jù)的邊界框數(shù)量分布圖
近些年,已經(jīng)逐漸使用深度學(xué)習(xí)方法來分類、檢測(cè)和分割非結(jié)構(gòu)化場(chǎng)景中的垃圾[8-10].為了預(yù)訓(xùn)練或微調(diào)深度模型,也有許多相關(guān)數(shù)據(jù)集被建立,一些公開數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如表1所示.
表1 公開垃圾數(shù)據(jù)集統(tǒng)計(jì)數(shù)據(jù)
針對(duì)非結(jié)構(gòu)化場(chǎng)景中的垃圾拾取任務(wù),UAVVaster和MJU-Waster兩個(gè)數(shù)據(jù)集僅有一類,容易造成實(shí)際應(yīng)用情況下,無法識(shí)別不同類別的垃圾,以此反饋相應(yīng)的抓取狀態(tài).
TrashNet數(shù)據(jù)集實(shí)例背景顏色和紋理都較為單調(diào)(純色),在實(shí)際環(huán)境下,應(yīng)用效果較差,且該數(shù)據(jù)集只有類別信息,無法適用于檢測(cè)任務(wù).
TACO數(shù)據(jù)集類別豐富,28個(gè)大類下還包含60個(gè)子類,但是該數(shù)據(jù)集的數(shù)據(jù)實(shí)例數(shù)量分布明顯不平衡[15],容易造成模型的過擬合.
本文構(gòu)建的數(shù)據(jù)集通過分析實(shí)際的應(yīng)用場(chǎng)景,針對(duì)實(shí)際場(chǎng)景的特點(diǎn)采集了數(shù)據(jù).相對(duì)于現(xiàn)有數(shù)據(jù)集,本文數(shù)據(jù)集垃圾類別和實(shí)例數(shù)量豐富,類別分布均勻,實(shí)例背景具有一定復(fù)雜度,可應(yīng)用于實(shí)際場(chǎng)景下的垃圾檢測(cè)問題.
整個(gè)框架硬件方面主要包括深度相機(jī)Intel RealSense D435和自主搭建的六自由度輕量型機(jī)械臂.機(jī)器人平臺(tái)實(shí)體,相機(jī)與機(jī)械臂的大體位置結(jié)構(gòu),如圖3中最左側(cè)圖所示.
圖3 高效感知方法框架圖
高效感知方法總體分為3個(gè)部分:目標(biāo)檢測(cè)算法,物體定位以及物體姿態(tài)估計(jì).首先,使用深度相機(jī)獲取目標(biāo)區(qū)域的彩色圖與深度圖,將彩色圖輸入YOLOv4檢測(cè)模型中,獲得相機(jī)視野范圍內(nèi)多個(gè)物體的邊界框和類別;其次,結(jié)合深度圖,利用K-means++聚類算法和四分位距異常點(diǎn)檢測(cè)獲取目標(biāo)物體的深度信息并計(jì)算目標(biāo)的抓取坐標(biāo);再次,結(jié)合彩色圖、圖像形態(tài)學(xué)變化和Canny邊緣算法快速獲取目標(biāo)物體的抓取角度;最后根據(jù)先前獲取的抓取坐標(biāo)與抓取角度信息,實(shí)現(xiàn)機(jī)械臂的抓取任務(wù).整體感知方法框架如圖3所示.
基于深度學(xué)習(xí)的常用目標(biāo)檢測(cè)算法主要可以分為兩種:two-stage方法和one-stage方法.
現(xiàn)有的two-stage目標(biāo)檢測(cè)模型大多采用單獨(dú)的模塊生成候選區(qū)域(Region Proposal)[3].檢測(cè)的第1階段,模型從原始圖中選取大量的目標(biāo)候選區(qū)域;檢測(cè)的第2階段,模型對(duì)這些區(qū)域進(jìn)行分類和定位.由于這類模型具有兩個(gè)獨(dú)立的步驟,因此它們通常情況下,需要更長(zhǎng)的處理時(shí)間,但帶來的是更高的檢測(cè)精度.其中經(jīng)典的模型有:R-CNN[16]、Faster-RCNN[17]等等.
與之相對(duì)的,one-stage檢測(cè)器使用各種比例的預(yù)定義框或關(guān)鍵點(diǎn)來定位對(duì)象,將物體的類別概率和位置坐標(biāo)直接視為回歸問題,因此該類檢測(cè)器具有更高的實(shí)時(shí)性和更簡(jiǎn)易的模型設(shè)計(jì).其中經(jīng)典的模型有:SSD[18]、YOLO系列[19,20]等等.
結(jié)合垃圾拾取的實(shí)際任務(wù)和移動(dòng)機(jī)器人的具體實(shí)驗(yàn)場(chǎng)景以及一些典型模型在本文數(shù)據(jù)集中的實(shí)驗(yàn)結(jié)果對(duì)比(詳細(xì)見7.1節(jié)),本文選用更為輕量化的one-stage檢測(cè)器中的YOLOv4模型,以實(shí)現(xiàn)高效感知任務(wù).同時(shí)在硬件中部署Nvidia TensorRT用于提高模型的前向推理速度.
YOLOv4架構(gòu)是在原有YOLOv3架構(gòu)的基礎(chǔ)上,從主干網(wǎng)絡(luò)、數(shù)據(jù)增強(qiáng)、模型訓(xùn)練、特征融合等多個(gè)方面引入當(dāng)前最先進(jìn)的方法,從而獲得一個(gè)高效且強(qiáng)大的目標(biāo)檢測(cè)模型.該模型主要由3個(gè)部分組成:主干網(wǎng)絡(luò)(Backbone)、頸部(Neck)和頭部(Head).YOLOv4架構(gòu)3個(gè)部分的主要功能以及相較于YOLOv3的改進(jìn)點(diǎn)如下:
1)Backbone:該部分負(fù)責(zé)圖像的特征提取,用于整體模型前端提取豐富的圖像信息,生成特征圖供后續(xù)的網(wǎng)絡(luò)使用.YOLOv4的主干網(wǎng)絡(luò)使用了CSPDarknet53,該主干網(wǎng)絡(luò)是在Darknet53的基礎(chǔ)上結(jié)合CSPNet[21](Cross-Stage-Partial-connections)改進(jìn)而成,可以大幅減少計(jì)算量.改動(dòng)部分主要體現(xiàn)在ResBlock.
2)Neck:該部分主要就是用各類方法處理或融合主干網(wǎng)絡(luò)提取出來的特征,從而提高網(wǎng)絡(luò)的性能.YOLOv4在這個(gè)部分的改進(jìn)是使用了SPP(Spatial Pyramid Pooling)結(jié)構(gòu)[22]和PANet(Path Aggregation Network)結(jié)構(gòu)[23].SPP結(jié)構(gòu)使用4種不同尺度的最大池化,它能夠很大程度地增加感受野,并找出最顯著的特征信息.PANet結(jié)構(gòu)縮小頂層與底層特征之間的信息路徑,可以較好地保留淺層特征.
3)Head:該部分的功能就是將經(jīng)過融合的主干網(wǎng)絡(luò)特征信息用于目標(biāo)分類與定位.此處YOLOv4和YOLOv3是相同的.
YOLOv4除了在模型架構(gòu)上有修改,還在激活函數(shù)、模型訓(xùn)練、數(shù)據(jù)處理等等方面都應(yīng)用了非常多的最新技術(shù).例如:數(shù)據(jù)增強(qiáng)Mosaic,激活函數(shù)Mish[24]等等.
TensorRT是一個(gè)針對(duì)深度學(xué)習(xí)前向推理的優(yōu)化器,可以為嵌入式等邊緣計(jì)算平臺(tái)進(jìn)行推理加速.TensorRT的優(yōu)化方法如圖4所示,其中最主要的是層間/張量融合以及數(shù)據(jù)精度校準(zhǔn).前者通過合并層間的模塊,使其占用更少的CUDA核心,以此提高推理速度.后者則是適當(dāng)降低數(shù)據(jù)精度,從而壓縮模型體積.
圖4 TensorRT優(yōu)化方法
當(dāng)YOLOv4模型輸出目標(biāo)邊界框之后,把框的中心點(diǎn)作為抓取點(diǎn).將框內(nèi)所有像素點(diǎn)的深度值聚類為3類,排序第2的聚類中心值作為抓取點(diǎn)到相機(jī)成像鏡頭的距離.最后使用相機(jī)內(nèi)參矩陣進(jìn)行矩陣轉(zhuǎn)換獲取抓取點(diǎn)坐標(biāo).
經(jīng)典的K-means算法從數(shù)據(jù)集中隨機(jī)選取K個(gè)樣本作為初始的聚類中心.它有如下幾個(gè)缺點(diǎn):
1)數(shù)據(jù)中的異常點(diǎn)(噪聲數(shù)據(jù)/離群點(diǎn))會(huì)對(duì)均值產(chǎn)生較大的影響,最終導(dǎo)致中心偏移.
2)不同的簇中心初始值會(huì)影響聚類結(jié)果.
針對(duì)上述存在的兩個(gè)問題,本文分別采用邊界框縮小、四分位距和K-means++進(jìn)行改進(jìn).
YOLOv4輸出的標(biāo)準(zhǔn)邊界框,并不是嚴(yán)格貼合物體邊界.即邊框的邊界區(qū)域有可能對(duì)應(yīng)的是目標(biāo)物體背景的深度信息(異常值),從而影響聚類效果.因此本文先對(duì)物體邊界框進(jìn)行縮小,初步減少異常深度值以及整體的深度數(shù)據(jù).
首先通過YOLOv4模型返回抓取目標(biāo)的邊界框大小與位置值(x,y,w,h),4個(gè)值分別對(duì)應(yīng)邊界框的左上角的坐標(biāo)、框?qū)捄涂蚋?然后使用以下公式得到新的邊界框值(x′,y′,w′,h′)用于深度值聚類:
(1)
w′=λw
(2)
y′和h′計(jì)算方式分別同x′和w′一樣,λ為邊界框縮放比例.
由于光照,相機(jī)硬件以及物體背景等外部因素,使得目標(biāo)范圍內(nèi)通常會(huì)具有很多異常深度信息,從而影響深度值聚類的最終效果.因此本文先利用箱型圖的四分位距IQR(Interquartile Range)刪除一些異常點(diǎn),再使用K-means++進(jìn)行區(qū)域深度值聚類.
同時(shí)刪除異常值之后,會(huì)使數(shù)據(jù)量減少,從而令深度值聚類的速度提升.
K-means算法從數(shù)據(jù)集中隨機(jī)選取K個(gè)樣本作為初始的聚類中心,相對(duì)應(yīng)的,這些聚類中心的初始值也是隨機(jī)的.而不合適的初始值會(huì)直接影響聚類的效果.
本文選用的K-means++算法[25]則是令初始的聚類中心彼此盡可能的遠(yuǎn)離,以此來獲取更好的初始值.算法初始點(diǎn)選擇的步驟如下:
1)先設(shè)定簇?cái)?shù)k,然后從輸入樣本X中隨機(jī)選取初始聚類中心c1,并將聚類中心放入空集合?X.
2)計(jì)算數(shù)據(jù)集X中的每個(gè)樣本數(shù)據(jù)與當(dāng)前已有的聚類中心c∈,之間的最短距離D(x).然后使用下述概率公式以及輪盤法選取下一個(gè)聚類中心ci=x′∈X:
(3)
3)重復(fù)執(zhí)行步驟b),直到選出k個(gè)聚類中心.
之后的聚類過程與標(biāo)準(zhǔn)的K-means算法一致.
像素坐標(biāo)到世界坐標(biāo)的轉(zhuǎn)換過程如下:
(4)
上述公式中:K-相機(jī)內(nèi)參矩陣,M-相機(jī)外參矩陣(其中R、T分別為相機(jī)與世界坐標(biāo)系之間的旋轉(zhuǎn)矩陣和平移矩陣),Xw-為目標(biāo)物體在世界坐標(biāo)系的坐標(biāo),(u,v)-像素坐標(biāo)(抓取點(diǎn)).其中世界坐標(biāo)系原點(diǎn)定為:機(jī)械臂底座原點(diǎn).
由于制造工藝的問題,相機(jī)鏡頭還存在徑向和切向畸變兩個(gè)問題.因此坐標(biāo)轉(zhuǎn)換之間還需要進(jìn)行畸變校正.畸變參數(shù)distortioncoeffs=[k1,k2,k3,p1,p2].抓取點(diǎn)在相機(jī)坐標(biāo)系下的坐標(biāo)(xc,yc,zc)計(jì)算過程如下:
(5)
(6)
(7)
公式(6)為畸變校正計(jì)算,獲取物體相機(jī)坐標(biāo)之后,再根據(jù)相機(jī)與實(shí)驗(yàn)平臺(tái)的相對(duì)位置獲取外參矩陣M.最后計(jì)算得到抓取目標(biāo)在世界坐標(biāo)系下的真實(shí)坐標(biāo).
文獻(xiàn)[26,27]與文獻(xiàn)[5,6]類似,他們都是使用Cornell數(shù)據(jù)集訓(xùn)練一個(gè)two-stage的最優(yōu)抓取位置檢測(cè)模型.這類方法在沒有高性能GPU的前提下,檢測(cè)速度都較慢.文獻(xiàn)[28]則是通過改變機(jī)械臂執(zhí)行末端,采用吸取的方式,完成類似任務(wù),這也就不需要進(jìn)行角度估計(jì).文獻(xiàn)[29]則是根據(jù)實(shí)驗(yàn)經(jīng)驗(yàn),將抓取狀態(tài)設(shè)定為固定的3個(gè)角度.這個(gè)方法可擴(kuò)展性不強(qiáng),且實(shí)際應(yīng)用具有較多抓取死角.文獻(xiàn)[30]結(jié)合Canny算法和Hough算法,估計(jì)物體角度,但當(dāng)物體背景復(fù)雜時(shí),會(huì)提取到與物體主方向不一致的直線,從而影響算法效果.
非結(jié)構(gòu)場(chǎng)景中,抓取目標(biāo)物體周圍往往會(huì)具有干擾信息,例如:陰影、強(qiáng)光、物體材質(zhì)以及背景紋理等等,這些干擾會(huì)影響相機(jī)硬件的傳感器檢測(cè)效果和深度模型效果.為了在復(fù)雜場(chǎng)景中能夠迅速獲取物體的抓取角度,本文提出基于Canny算法[31]和圖像形態(tài)學(xué)變化的抓取角度估計(jì)方法.首先是截取具有抓取目標(biāo)的邊界框區(qū)域,然后使用Sobel算子加強(qiáng)全圖像的邊緣信息,再通過閾值設(shè)定和圖像閉運(yùn)算獲取主物體像素信息.最后使用Canny檢測(cè)主物體邊緣信息,并求解最小外接矩陣.矩陣具有4個(gè)返回坐標(biāo)[(x1,y1),(x2,y2),(x3,y3),(x4,y4)],其中矩陣最左上角的頂點(diǎn)為(x1,y1).鑒于反三角函數(shù)值域問題以及圖像坐標(biāo)系問題,因此將兩個(gè)向量以x軸進(jìn)行鏡像變換,并將差向量的起始點(diǎn)平移至原點(diǎn).外接矩陣第一條邊的角度計(jì)算公式如下:
x′=x2-x1
(8)
y′=-y2+y1
(9)
(10)
算法1.抓取角度估計(jì)方法
輸入:BBox區(qū)域的彩色圖XRGB_Region.
輸出:抓取目標(biāo)的角度Grasp_Angle.
a)全圖邊緣信息
XSobel←Sobel(Xgray,dx=1)-Sobel(Xgray,dy=1)
//Xgray由XRGB_Region獲取
b)主目標(biāo)圖像信息
XClosed←morphologyEx(threshold(XSobel),Close)
c)目標(biāo)邊緣信息XCanny←Canny(XClosed)
d)if(m,n)∈XCanny<η*BBoxdo//η為邊緣選取范圍0~1
e)最小外接矩陣頂點(diǎn)[(x1,y1),(x2,y2),(x3,y3),(x4,y4)]
RectVertices←minAreaRect()
利用公式(8)~公式(10)計(jì)算
elseifdo
利用公式(8)~公式(10)計(jì)算
returnGrasp_Angle
本實(shí)驗(yàn)中,模型使用GPU進(jìn)行訓(xùn)練,型號(hào)為Nvidia GeForce RTX 2060S.實(shí)際運(yùn)行平臺(tái)為:Nvidia Jetson Xavier NX.實(shí)驗(yàn)先對(duì)3個(gè)模型進(jìn)行初步對(duì)比,識(shí)別準(zhǔn)確率結(jié)果如表2所示.
表2 目標(biāo)檢測(cè)模型對(duì)比實(shí)驗(yàn)
YOLOv4相較于兩個(gè)經(jīng)典的two-stage模型,在識(shí)別準(zhǔn)確率上依然具有優(yōu)勢(shì),因此選定YOLOv4作為抓取任務(wù)的檢測(cè)模型.該模型的訓(xùn)練方法為:圖片輸入尺寸為(608,608);隨機(jī)選取訓(xùn)練集、驗(yàn)證集分別為8151和1641張;數(shù)據(jù)增強(qiáng)使用mixup、blur等;模型的anchors不直接采用COCO數(shù)據(jù)集的初始設(shè)定,而是根據(jù)12分類垃圾數(shù)據(jù)集的GT(Ground Truth)框大小分布重新生成.YOLOv4在該數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果如表3所示.
表3 YOLOv4檢測(cè)結(jié)果
從實(shí)驗(yàn)結(jié)果中可以看出,SeedShell類別的識(shí)別準(zhǔn)確率很低,這可能是由于數(shù)據(jù)集中的SeedShell數(shù)據(jù)量太少.YOLOv4在Xavier NX上運(yùn)行的原始FPS為3.3,在部署TensorRT之后,能穩(wěn)定在13FPS左右.實(shí)際運(yùn)行的目標(biāo)檢測(cè)效果如圖5所示.
圖5 YOLOv4目標(biāo)檢測(cè)實(shí)際效果
深度聚類實(shí)驗(yàn)中,本文先將檢測(cè)器輸出的邊界框進(jìn)行縮小,初步降低深度數(shù)據(jù)量以及部分異常值,再使用四分位距進(jìn)一步刪除深度值中的離群點(diǎn),異常點(diǎn)檢測(cè)效果如圖6(上)所示.最后使用去噪過后的深度信息,進(jìn)行深度值聚類,設(shè)定聚類中心為3類,取第2個(gè)中心值為最終的抓取點(diǎn)深度值.聚類結(jié)果如圖6(下)所示,深度值對(duì)比實(shí)驗(yàn)結(jié)果如表4所示.
圖6 深度值四分距檢測(cè)(上)和深度值聚類結(jié)果(下)
表4 深度值聚類實(shí)驗(yàn)對(duì)比結(jié)果
表4中,物體中心深度是指不經(jīng)過任何處理,直接選取抓取點(diǎn)的深度值信息;聚類深度是指使用本文優(yōu)化方法獲取的深度值信息.
實(shí)驗(yàn)使用兩類物體,塑料瓶和包裝袋,每類采集4個(gè)組別進(jìn)行對(duì)比.從表中的數(shù)據(jù)可以看出,直接選取某個(gè)點(diǎn)的深度值,可能會(huì)出現(xiàn)與實(shí)際結(jié)果相差很多的深度信息,該現(xiàn)象在透光物體中尤其常見.撇除相機(jī)本身的測(cè)量誤差,有可能是因?yàn)榧t外傳感器通過透光物體,導(dǎo)致返回異常的深度值.實(shí)驗(yàn)結(jié)果表現(xiàn)出本文的聚類方法能一定程度上彌補(bǔ)硬件以及透光物體帶來的異常深度信息.
圖7共有4個(gè)實(shí)例,每個(gè)實(shí)例共有4張結(jié)果圖,分別為角度估計(jì)中的4個(gè)主要步驟.其中①、②為裁切過的數(shù)據(jù)集原圖處理結(jié)果,③、④為實(shí)際目標(biāo)檢測(cè)邊界框區(qū)域處理結(jié)果.從實(shí)例③的Sobel圖中可以看出,圖的左下角具有干擾信息(其他物體);實(shí)例①、②則是物體背景具有明顯的紋理.對(duì)于這類非結(jié)構(gòu)場(chǎng)景中遇到的干擾信息,在經(jīng)過閾值設(shè)定以及形態(tài)學(xué)變化后,圖中的部分干擾像素會(huì)被消弱或消除.為了進(jìn)一步消除目標(biāo)以外的像素干擾,在選取Canny邊界信息的時(shí)候,會(huì)基于邊界框縮小選取范圍,對(duì)應(yīng)算法1中的步驟d.
圖7 角度估計(jì)方法實(shí)驗(yàn)結(jié)果.其中每個(gè)實(shí)例:Sobel(左上)&閉運(yùn)算(右上)& Canny(左下)&最小外接矩陣(右下)
表5為角度估計(jì)實(shí)驗(yàn),共4組,其中組別號(hào)分別對(duì)應(yīng)圖3中的序號(hào),組別2和組別4的結(jié)果誤差可能是由于主物體的像素信息在形態(tài)變化過程中也被一定程度地消除,但該誤差不影響機(jī)械臂的抓取任務(wù).
表5 角度估計(jì)實(shí)驗(yàn)對(duì)比結(jié)果
表6為角度估計(jì)檢測(cè)速度對(duì)比實(shí)驗(yàn).現(xiàn)有方法中,大多是使用深度學(xué)習(xí)的方法估計(jì)物體角度,該類型方法感知能力比較強(qiáng)大,它同時(shí)還能夠檢測(cè)到物體的最優(yōu)抓取位置.但從表中的數(shù)據(jù)可以看出:該類型方法即便在強(qiáng)大的GPU算力支持下,檢測(cè)速度仍舊較為不足,其較高的計(jì)算要求和功耗要求,也使得該類型方法無法部署到輕量型的移動(dòng)機(jī)器人上.而本文使用的角度估計(jì)方法,在CPU上運(yùn)行時(shí)間僅需4.3ms,能夠高效的完成對(duì)應(yīng)任務(wù).
表6 角度估計(jì)檢測(cè)速度對(duì)比結(jié)果
圖8為本文整體感知方法部署到移動(dòng)機(jī)器人上的實(shí)際抓取展示圖.
圖8 機(jī)器人抓取展示圖
本文針對(duì)移動(dòng)機(jī)器人垃圾拾取任務(wù),提出一個(gè)結(jié)合深度學(xué)習(xí)和傳統(tǒng)機(jī)器學(xué)習(xí)的高效感知方法.在多目標(biāo)、物體姿態(tài)不固定、非結(jié)構(gòu)化視覺場(chǎng)景以及需要檢測(cè)速度的感知環(huán)境中實(shí)現(xiàn)了目標(biāo)的識(shí)別、定位與角度估計(jì).
從目標(biāo)檢測(cè)的實(shí)驗(yàn)結(jié)果來看,對(duì)于常見的垃圾,如塑料瓶,包裝袋等都具有較高的識(shí)別準(zhǔn)確率和檢測(cè)速度.深度聚類實(shí)驗(yàn)中,驗(yàn)證了該方法能夠一定程度上優(yōu)化目標(biāo)物體的深度信息.抓取角度估計(jì)實(shí)驗(yàn),驗(yàn)證了該方法檢測(cè)的實(shí)時(shí)性強(qiáng),可以較為準(zhǔn)確的估計(jì)物體主方向角度,同時(shí)可以消除或消弱目標(biāo)物體周圍的一些干擾信息.
未來的研究方向與改進(jìn)點(diǎn)有兩個(gè):1)繼續(xù)豐富與改善本文數(shù)據(jù)集,例如:解決SeedShell類的實(shí)例不平衡問題;2)優(yōu)化本文的抓取框架,例如:提高檢測(cè)模型的穩(wěn)定性與實(shí)時(shí)性,進(jìn)一步優(yōu)化角度估計(jì)方法等等.增強(qiáng)感知方法框架的整體一致性,使其可以更加穩(wěn)定、高效地運(yùn)行在移動(dòng)機(jī)器人上.