申光鵬 苗鴻賓② 余 浪 蘇赫朋
(①中北大學(xué)機(jī)械工程學(xué)院,山西 太原 030051;②山西省深孔加工工程技術(shù)研究中心,山西 太原 030051)
在當(dāng)下人工智能技術(shù)快速發(fā)展以及產(chǎn)業(yè)快速增長(zhǎng)的時(shí)代,機(jī)械臂以其自由度高、工作空間大等特性,被廣泛用于特征異構(gòu)的個(gè)性化產(chǎn)品裝配和物流等生產(chǎn)過程中,為生產(chǎn)效率的提高發(fā)揮著越來越重要的作用[1]。而機(jī)械臂最重要的工作環(huán)節(jié)就是抓取環(huán)節(jié),如貨物分揀、物流分揀、工業(yè)生產(chǎn)等任務(wù),因此機(jī)器人抓取問題受到了學(xué)者的廣泛關(guān)注[2]。
當(dāng)前工業(yè)抓取上的許多機(jī)械臂大多被應(yīng)用在點(diǎn)到點(diǎn)之間的操作[3],在單一的環(huán)境下進(jìn)行簡(jiǎn)單的重復(fù)性抓取作業(yè)。如果作業(yè)環(huán)境變?yōu)檩^復(fù)雜的作業(yè)環(huán)境,例如抓取對(duì)象位置變化、抓取對(duì)象狀態(tài)變化等,這時(shí)就需要重新調(diào)整部署機(jī)械臂,每一次重新部署都會(huì)消耗人力物力[4]。所以如何讓機(jī)械臂能自主準(zhǔn)確快速地獲得抓取目標(biāo)物體的位置是一項(xiàng)非常值得研究的問題。隨著深度學(xué)習(xí)以及視覺檢測(cè)的深入發(fā)展,研究者發(fā)現(xiàn)可以通過深度學(xué)習(xí)結(jié)合視覺技術(shù)來解決機(jī)械臂的復(fù)雜抓取問題。
Lenz I 等[5]首次將深度學(xué)習(xí)應(yīng)用到機(jī)械臂的抓取研究中,提出了一個(gè)具有兩個(gè)深度網(wǎng)絡(luò)的兩步級(jí)聯(lián)系統(tǒng),此方法雖然在Cornell 抓取數(shù)據(jù)集上獲得了73.9%的抓取準(zhǔn)確率,但是速度很慢,處理一張深度圖像的時(shí)間在10 s 以上。Mallick A 等[6]通過深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)義分割實(shí)現(xiàn)目標(biāo)的檢測(cè)與抓取,在基于RESNET 的語(yǔ)義分割中,目標(biāo)被精確地分割出來,并且不存在之前產(chǎn)生冗余的矩形形狀相關(guān)誤差,與單目標(biāo)檢測(cè)器算法(YOLO)相比,該算法的檢測(cè)精度幾乎提高了一倍。該項(xiàng)工作雖然高效,但是同樣耗費(fèi)時(shí)間。孫先濤等[7]采用通道注意力機(jī)制對(duì)YOLO-V3 進(jìn)行算法改進(jìn),增強(qiáng)了對(duì)圖像特征的提取能力,提高了識(shí)別率,同時(shí)引入最小面積外接矩形算法,對(duì)抓取位姿和角度進(jìn)行優(yōu)化,提高了抓取效率,減小了抓取過程中產(chǎn)生的有害扭矩。Anjum M U 等[8]通過建立數(shù)學(xué)關(guān)系來估計(jì)目標(biāo)到機(jī)械手坐標(biāo)系的位置,同時(shí)提出一種減少誤差的方法,即捕捉多個(gè)圖像并逐漸向目標(biāo)中心移動(dòng),該方法目標(biāo)定位精度達(dá)到 99.785%,誤差減小到2 mm,可以有效地應(yīng)用于機(jī)器人操作機(jī)。Morrison D 等[9]提出了一種新穎的方法來執(zhí)行對(duì)象獨(dú)立的抓取合成從深度圖像通過深度神經(jīng)網(wǎng)絡(luò),將雜亂中的整體抓取成功率提高了10%,但是速度明顯下降。
從整體來看,機(jī)械臂抓取在工業(yè)生產(chǎn)中仍存在由于復(fù)雜作業(yè)環(huán)境、不同零件之間存在干擾等許多問題造成的不確定性以及不穩(wěn)定性,因此本文提出了一種基于深度學(xué)習(xí)的目標(biāo)識(shí)別及抓取方法,來減少抓取場(chǎng)景中物體位置的不確定性,提高檢測(cè)準(zhǔn)確率和抓取成功率。本文抓取系統(tǒng)如圖1 所示。
圖1 抓取系統(tǒng)圖
(1)使用張正友標(biāo)定法[10]獲取相機(jī)參數(shù),之后確定電動(dòng)夾爪的末端中心,用手眼標(biāo)定的方式得到相機(jī)與機(jī)械臂末端夾爪之間的關(guān)系,由于實(shí)驗(yàn)平臺(tái)是眼在手上(eye-in-hand)的方式,因此還需要獲得標(biāo)定板與機(jī)械臂底座之間的關(guān)系,最后得到機(jī)械臂與相機(jī)之間的坐標(biāo)轉(zhuǎn)換關(guān)系矩陣。
(2)在圖像處理階段,首先對(duì)要輸入的圖像進(jìn)行預(yù)處理,將處理后的數(shù)據(jù)傳輸?shù)讲捎肅BAM[11]模塊改進(jìn)的YOLO-V5 目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)目標(biāo)物體進(jìn)行檢測(cè)。
(3)PC 端與機(jī)械臂建立通信,實(shí)現(xiàn)目標(biāo)的識(shí)別及抓取動(dòng)作。
自從卷積神經(jīng)網(wǎng)絡(luò)(region proposals convolutional neural networks,R-CNN)[12]的概念被提出,由于其在視覺任務(wù)上的優(yōu)秀屬性,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法開始了快速發(fā)展,先后出現(xiàn)了Fast R-CNN[13]、Faster R-CNN[14]、Mask R-CNN[15]等先區(qū)域推薦然后識(shí)別的兩階段檢測(cè)算法以及YOLO系列的直接預(yù)測(cè)結(jié)果輸出的一步目標(biāo)檢測(cè)算法。同時(shí),目標(biāo)檢測(cè)算法與深度學(xué)習(xí)的結(jié)合使得目標(biāo)識(shí)別在準(zhǔn)確度和速度方面也有極大的提高。
自Redmon 提出YOLO 算法以來,該算法不斷被優(yōu)化,其檢測(cè)準(zhǔn)確度和速度都在不斷上升。
YOLO 有端到端的網(wǎng)絡(luò)結(jié)構(gòu)特性,其區(qū)別于之前的候選區(qū)域推薦和預(yù)測(cè)結(jié)果優(yōu)化的兩步檢測(cè)方法,具有輸入一張圖像直接預(yù)測(cè)結(jié)果的特性,并且最大的特性就是檢測(cè)速度較快。2020 年Jocher 提出了YOLO-V5 算法,將CSP1_X 結(jié)構(gòu)應(yīng)用于Backbone主干網(wǎng)絡(luò),另一種CSP2_X 結(jié)構(gòu)則應(yīng)用于Neck 中,加強(qiáng)網(wǎng)絡(luò)特征融合的能力。圖2 所示為YOLO-V5的網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖2 YOLO-V5 結(jié)構(gòu)圖
現(xiàn)在的YOLO-V5 檢測(cè)模型已經(jīng)擁有了很好的檢測(cè)精度和檢測(cè)速度,但是依然有著改進(jìn)空間。在目標(biāo)識(shí)別中,如何讓檢測(cè)模型更快更好地識(shí)別圖像的特征并將之提取出來十分重要。本文在YOLOV5 檢測(cè)模型中引入一個(gè)輕量級(jí)的卷積注意力模塊CBAM,該模塊同時(shí)在通道和空間兩個(gè)維度上引入了注意力機(jī)制,在不顯著增加計(jì)算量和參數(shù)量的前提下能提升網(wǎng)絡(luò)模型的特征提取能力。
由圖3 可知,CBAM 由輸入、通道注意力模塊CAM(channel attention module)、空間注意力模塊SAM(spartial attention module)和輸出組成。
圖3 CBAM 結(jié)構(gòu)圖
圖4 所示為通道注意力機(jī)制結(jié)構(gòu)。通道注意力機(jī)制結(jié)構(gòu)首先將輸入的特征圖經(jīng)過兩個(gè)并行的平均池化層和最大池化層,將特征圖的高和寬變?yōu)?,然后經(jīng)過Share MLP 模塊,在該模塊中,先壓縮通道數(shù),然后再擴(kuò)張到原通道數(shù),經(jīng)過ReLU 激活函數(shù)得到兩個(gè)激活后的結(jié)果。將輸出的兩個(gè)結(jié)果進(jìn)行逐元素相加,再經(jīng)過一個(gè)Sigmoid 激活函數(shù)特征加權(quán)得到輸出結(jié)果,最后乘以原圖變回原來的大小。
圖4 通道注意力機(jī)制結(jié)構(gòu)
圖5 所示為空間注意力機(jī)制結(jié)構(gòu)??臻g注意力機(jī)制結(jié)構(gòu)首先經(jīng)過兩個(gè)并行的平均池化層和最大池化層突出特征區(qū)域,得到兩個(gè)1×H×W的特征圖,接下來經(jīng)過一個(gè)卷積層卷積變?yōu)? 通道的特征圖,再由Sigmoid 函數(shù)歸一化得到新的特征圖,并生成空間注意力矩陣。最后經(jīng)過加權(quán)操作為特征圖增加空間注意力,得到新的特征圖。
圖5 空間注意力機(jī)制結(jié)構(gòu)
如圖6 所示,為了更好地加強(qiáng)改進(jìn)后網(wǎng)絡(luò)的特征提取能力,本文將CBAM 模塊加入到原網(wǎng)絡(luò)Backbone 部分的C3 網(wǎng)絡(luò)結(jié)構(gòu)中,形成了新的C3_CBAM 網(wǎng)絡(luò)結(jié)構(gòu)。相較于單純的C3 網(wǎng)絡(luò),添加CBAM 模塊的C3_CBAM 網(wǎng)絡(luò),優(yōu)點(diǎn)在于引入了注意力機(jī)制,可以使網(wǎng)絡(luò)加強(qiáng)對(duì)圖像的關(guān)注能力,提高特征提取能力,從而提升檢測(cè)效果。
圖6 網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比
機(jī)器人想要準(zhǔn)確地抓取目標(biāo)物體,首要條件就是獲取待抓取物體的位姿信息[7]?,F(xiàn)位姿表示方法多以3 自由度以及6 自由度為主,由于本文僅涉及平面工作臺(tái)上的目標(biāo)物體的識(shí)別及抓取,因此本文采用Redmon J 等提出的機(jī)器人抓取參數(shù)表征方法,通過5 個(gè)參數(shù)來確定抓取框圖[16],該方法由3 自由度擴(kuò)展而來,如圖7 所示。
圖7 抓取框圖
五維抓取位姿的函數(shù)表示方法如下:
式中:(x,y)為矩形的中心; θ為矩形相對(duì)于水平軸的方向;h為高度;w為寬度。
抓取位姿算法本質(zhì)是使用主干網(wǎng)絡(luò)對(duì)于輸入的圖像進(jìn)行特征提取,然后對(duì)目標(biāo)抓取的{x,y,w,h}信息做回歸預(yù)測(cè)以及抓取角度做預(yù)測(cè)[17]。
結(jié)合實(shí)際情況,本文使用的抓取位姿估計(jì)算法是對(duì)單個(gè)目標(biāo)進(jìn)行位姿估計(jì)的單層網(wǎng)絡(luò),主體為VGG-16 網(wǎng)絡(luò)[18],有13 個(gè)卷積層和3 個(gè)全連接層。抓取網(wǎng)絡(luò)結(jié)構(gòu)圖如圖8 所示。
圖8 抓取網(wǎng)絡(luò)結(jié)構(gòu)圖
本文目標(biāo)檢測(cè)所采用的數(shù)據(jù)集是基于VOC2012格式的自建數(shù)據(jù)集進(jìn)行目標(biāo)檢測(cè)訓(xùn)練,一共選取了8 個(gè)類別,分別為“apple”“box”“screwdriver”“scissors” “pincers ” “stapler ” “hammer”“key”。本文共采集了960 張圖像進(jìn)行目標(biāo)識(shí)別,其中900 張用于訓(xùn)練模型,剩余60 張圖像用于測(cè)試。圖9 所示為檢測(cè)類別圖。
圖9 檢測(cè)類別圖
本文目標(biāo)檢測(cè)主要采用的配置為:使用基于Windows 下的Pycharm 編譯軟件進(jìn)行開發(fā),環(huán)境配置主要為Python 3.9,使用Pytorch 深度學(xué)習(xí)框架,torch 版本為2.0.1+cu118,torchvision 版本為0.15.2+cu118。迭代次數(shù)epoch 為300 次。在訓(xùn)練之后得到訓(xùn)練權(quán)重,利用該權(quán)重文件對(duì)輸入的圖像進(jìn)行檢測(cè),得到輸出的預(yù)測(cè)結(jié)果和種類,以及兩個(gè)網(wǎng)絡(luò)特征圖的對(duì)比,如圖10 所示。
圖10 檢測(cè)結(jié)果圖
經(jīng)計(jì)算得知,相比于改進(jìn)前,加入CBAM 機(jī)制模型的網(wǎng)絡(luò)檢測(cè)的平均識(shí)別精度(mean average precision,mAP)從88.62% 增加到93.88%,提升了5.26%,同時(shí)可以清楚地看到集成了CBAM 的網(wǎng)絡(luò)對(duì)于特征圖的提取相比之前的方法更優(yōu)秀。
本文提出的算法與Lenz I 等[5]的算法、YOLOV3[7]、YOLO-V3 改[7]、Morrison D 等[9]的算法、YOLO-V5 等5 種算法進(jìn)行對(duì)比,對(duì)比指標(biāo)為平均識(shí)別精度和檢測(cè)速度,對(duì)比結(jié)果見表1。
表1 算法對(duì)比表
由表1 結(jié)果可以得出,本文所提出算法平均精度與文獻(xiàn)[5]的基本持平,但是檢測(cè)速度方面領(lǐng)先了約13 s。與其他算法相比,平均精度分別提高了1.55%、1.23%、5.88%、5.26%,同時(shí)在速度方面并沒有出現(xiàn)明顯劣勢(shì),表明了本文所改進(jìn)的檢測(cè)模型有著較好的應(yīng)用前景。
本文所使用的機(jī)器人抓取系統(tǒng)主要包括AUBOi5 工業(yè)機(jī)器人、??倒I(yè)相機(jī)、PC 端、平行夾爪、KWR75 六軸力傳感器等。系統(tǒng)整體圖如圖11 所示。
圖11 系統(tǒng)整體圖
PC 端連接真實(shí)工業(yè)機(jī)器人和相機(jī),進(jìn)行圖像處理以及配合機(jī)械臂進(jìn)行抓取工作。在抓取實(shí)驗(yàn)中,機(jī)械臂須獲得目標(biāo)物體的坐標(biāo)信息,而機(jī)械臂是沒辦法直接使用相機(jī)獲取到的目標(biāo)位置信息。想要實(shí)現(xiàn)機(jī)器人目標(biāo)的抓取,就必須得到機(jī)器人末端坐標(biāo)系和相機(jī)坐標(biāo)系之間的轉(zhuǎn)換關(guān)系,即手眼標(biāo)定。
本文實(shí)驗(yàn)平臺(tái)的相機(jī)裝在機(jī)械臂末端,采用eye-in-hand(圖12)的方法進(jìn)行手眼標(biāo)定。
圖12 eye-in-hand
由于目標(biāo)工件放置在二維平面的平臺(tái)上,因此選擇更方便的九點(diǎn)標(biāo)定法,這種手眼標(biāo)定方法是基于仿射變換的標(biāo)定方法,實(shí)際標(biāo)定僅需要目標(biāo)工件相對(duì)工業(yè)機(jī)器人的基坐標(biāo)系的二維坐標(biāo)即可,較為方便且適合本文的標(biāo)定模型。九點(diǎn)標(biāo)定法通過仿射變換構(gòu)建相機(jī)坐標(biāo)系和工業(yè)機(jī)器人末端坐標(biāo)系之間的坐標(biāo)轉(zhuǎn)換關(guān)系,其中仿射變換主要包括縮放、旋轉(zhuǎn)、平移3 種變換方式,原理如下:
式中:u、v為相機(jī)像素坐標(biāo);x、y為工業(yè)機(jī)器人末端坐標(biāo); β為旋轉(zhuǎn)角度,Sx、Tx分別為x軸方向的縮放因子和平移系數(shù),對(duì)應(yīng)的Sy、Ty為y軸的相應(yīng)系數(shù)。
對(duì)式(2)進(jìn)行變換可得:
由式(3)可以看出,只需要獲得三組像素坐標(biāo)和工業(yè)機(jī)器人末端坐標(biāo)數(shù)據(jù)即可得到它們的映射關(guān)系,但是考慮到誤差因素的影響,一般選取九組數(shù)據(jù)完成標(biāo)定,再用最小二乘法求解各個(gè)未知參數(shù)以優(yōu)化提高標(biāo)定精度。經(jīng)過標(biāo)定實(shí)驗(yàn)之后,通過計(jì)算得到的機(jī)器人坐標(biāo)和實(shí)際機(jī)器人坐標(biāo)之間的誤差在0.1 mm 以內(nèi),可以滿足抓取實(shí)驗(yàn)的要求。在完成標(biāo)定以及坐標(biāo)系的轉(zhuǎn)換之后,電腦獲得數(shù)據(jù)然后對(duì)機(jī)械臂進(jìn)行控制,進(jìn)行對(duì)目標(biāo)物體的抓取。圖13 所示為抓取實(shí)驗(yàn)。
圖13 抓取實(shí)驗(yàn)
抓取實(shí)驗(yàn)在3 種不同的光照環(huán)境下進(jìn)行,來驗(yàn)證改進(jìn)后的方法對(duì)不同光照環(huán)境的適應(yīng)性。3 種環(huán)境下的光通量大約為426 流明、267 流明、96 流明,來驗(yàn)證改進(jìn)后的方法對(duì)不同光照環(huán)境的適應(yīng)性。抓取場(chǎng)景分別為在沒有雜物干擾和堆疊的情況下,以及在有雜物干擾和堆疊的情況下。本文在兩種抓取場(chǎng)景中分別進(jìn)行了多次檢測(cè)和抓取實(shí)驗(yàn)。
由表2 可明確看出,在進(jìn)行實(shí)際抓取的實(shí)驗(yàn)中,添加了CBAM 模塊的YOLO-V5 檢測(cè)模型在抓取平臺(tái)上進(jìn)行抓取實(shí)驗(yàn)時(shí)的平均檢測(cè)準(zhǔn)確率相比較原YOLO-V5 模型抓取實(shí)驗(yàn)的準(zhǔn)確率提高了約4.1%。
表2 實(shí)驗(yàn)抓取結(jié)果
針對(duì)機(jī)械臂在工業(yè)生產(chǎn)中的復(fù)雜抓取作業(yè)環(huán)境,本文提出了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)及機(jī)械臂抓取方法。
(1)經(jīng)實(shí)驗(yàn)驗(yàn)證,在加入CBAM 模塊后的YOLO-V5 目標(biāo)檢測(cè)模型,在復(fù)雜抓取的作業(yè)環(huán)境下有更好的檢測(cè)效率,相較YOLO-V5 的識(shí)別率提高了5.26%。
(2)實(shí)驗(yàn)結(jié)果表明,添加了CBAM 模塊的YOLO-V5 檢測(cè)模型在抓取平臺(tái)上進(jìn)行抓取實(shí)驗(yàn)時(shí)的平均檢測(cè)準(zhǔn)確率,相較原YOLO-V5 模型抓取實(shí)驗(yàn)的準(zhǔn)確率提高了約4.1%。
(3)本文沒有提及具體抓取優(yōu)化改進(jìn)及抓取后的裝配問題,后續(xù)可在此方面深入研究。