關立文,孫鑫磊,楊 佩
1.清華大學 機械工程系,北京100084
2.電子科技大學 機械與電氣工程學院,成都611731
雖然抓取物體對于人類而言非常簡單,但是對于機器人而言,可靠地抓取任意物體仍然是非常具有難度的。解決這個問題可以促進機器人在工業(yè)領域的應用,如零件組裝、分揀、裝箱等,同時也能夠推進服務機器人的發(fā)展,通過增強機器人與周圍環(huán)境的交互,滿足人類的需求。機器人抓取涉及到物體感知、路徑規(guī)劃以及控制。得到要抓取的對象的位置以及對應的抓取姿態(tài)對于一個成功的抓取是非常重要的。物體的幾何外形是決定抓取位置的主要因素,可以通過引入機器視覺來增加抓取檢測網(wǎng)絡的泛化能力。描述一個抓取的參數(shù)主要有三個,分別是抓取點的坐標、抓取手爪張開的寬度以及抓取的旋轉(zhuǎn)角度。
抓取檢測算法的研究在20 世紀80 年代就開始了,但早期的研究主要是針對抓取點的檢測,無法提供一個準確的抓取描述。直到2011 年Jiang 等[1]提出了一種抓取矩形框的表示方法,如圖1(a)所示,抓取矩形框由一個五維向量g=(x,y,w,h,θ)來表示,其中(x,y)表示抓取點在圖像中的坐標,h表示平行爪夾持器張開的寬度,w表示手爪的寬度,θ表示抓取角度。用這樣的方法表示抓取,那么抓取檢測就可以將一個在空間中尋找抓取姿態(tài)與抓取點的問題,轉(zhuǎn)換成在一個包含待抓取目標的圖像中檢測抓取矩形框的問題。針對這一問題,使用深度學習在圖像上學習特征的方法在抓取檢測中獲得了很好的效果。
Lenz等[2]率先采用深度學習方法提取特征,使用基于滑動窗口檢測的框架同時使用支持向量機(support vector machine,SVM)作為分類器,預測輸入圖像中是否存在合適的抓取位置,這種方法在康奈爾抓取數(shù)據(jù)集[3]上達到了73.9%的準確率。但是由于采用滑動窗口的方法導致在遍歷可能存在抓取時消耗大量時間。
Redmon等[4]拋棄了滑動窗口機制,將整幅圖像劃分成N×N個單元網(wǎng)絡,使用AlexNet 網(wǎng)絡[5]直接在每個單元格中回歸抓取框的參數(shù)以及可行抓取的概率,取其中概率最高的作為預測結果。這種方法在相同的數(shù)據(jù)集中達到了88.0%的準確率。
Guo 等[6]將參考矩形框引入到抓取檢測當中,這是一種無向錨框,如圖1(b)所示,這些參考矩形是圖像在每個特定大小的區(qū)域中生成的具有相同面積、不同長寬比的矩形框。在他的研究中,并沒有直接通過深度學習的方法檢測抓取方向,而是通過一種融合視覺感知與觸覺感知的模型預測可抓取性、抓取手爪的張開寬度以及抓取的方向。
Chu等[7]利用深度學習的方法來檢測抓取框的位置以及抓取方向,他們使用了與Guo文章中相同的參考矩形框,用來回歸抓取矩形框,同時將抓取角度看作抓取的語義信息,將角度按照不同的區(qū)間分成不同的類。網(wǎng)絡檢測時對回歸的抓取矩形框旋轉(zhuǎn)預測得到的角度類別所對應的角度,如圖1(c),得到一個有向抓取矩形框的檢測結果。
圖1 基于錨框的抓取表示Fig.1 Anchor-based grasping representation
以上幾個研究都是基于錨框的抓取檢測算法?;阱^框的檢測算法檢測速度較慢,同時錨框的設計也影響著網(wǎng)絡的性能。另外在Guo 與Chu 的研究中對水平抓取框與抓取角度分別進行檢測,忽略了抓取角度是抓取框的幾何屬性而非語義屬性的事實,這樣做會導致抓取檢測的準確度下降。因此本文提出了一種更加簡單高效的方法,如圖2 所示,用抓取框的中心點來表示一個抓取,同時在中心點處直接預測抓取檢測框的尺寸和角度。這里抓取檢測問題被簡化成了一個關鍵點檢測問題,本文將圖片輸入到一個全卷積網(wǎng)絡中得到一張抓取熱力圖,在抓取熱力圖中的局部峰值就對應抓取檢測框中心點的位置。同時在特征圖上中心點對應的位置會預測抓取框的尺寸和角度。該模型在康奈爾抓取數(shù)據(jù)集上使用GTX1080TI顯卡運行,達到了97.6%的準確率,并且達到了42 frame/s的檢測速度,滿足檢測實時性的要求。本文主要做了以下工作:
圖2 基于關鍵點的抓取框表示Fig.2 Key-point-based grasping representation
(1)設計了一種特征融合方法B-FPN,可以通過權重融合不同階段的特征圖,減少特征的丟失。
(2)設計了一個基于關鍵點估計的抓取檢測網(wǎng)絡,直接在特征圖上預測抓取中心點位置以及抓取尺寸與抓取角度。
(3)使用了一種新的損失函數(shù),能夠在不增加模型復雜度的情況下避免由于正負樣本不均衡帶來的預測準確度下降。
目標檢測算法主要可以分為單階段與兩階段兩種類型,目前主流的兩階段目標檢測算法以R-CNN(region-based convolutional neural networks)系列為主,比較成功的有Faster R-CNN[8]、Mask R-CNN[9]等。兩階段的目標檢測算法首先通過一次粗回歸得到ROI(region of interest)作為候選框樣本輸入到卷積神經(jīng)網(wǎng)絡中,通過精回歸得到對應的目標檢測框。R-CNN 系列算法雖然在性能上有比較大的提升,但是由于其在訓練網(wǎng)絡時的正負樣本由傳統(tǒng)算法生成,這限制了算法的檢測速度。
以R-CNN算法為代表的兩階段檢測算法由于RPN結構的存在,雖然檢測的精度越來越高,但是檢測速度卻很難達到實時檢測的需求。因此,研究人員提出了基于回歸的單階段目標檢測算法。以YOLO(you only look once)系列為例,YOLO算法經(jīng)歷了從早期的YOLO[10]到YOLOv2[11]再到后來的YOLOv3[12],算法的準確率不斷提高。在YOLOv3中也引入了anchor機制,并采用特征金字塔結構增強網(wǎng)絡對多尺度目標的檢測能力。
CenterNet[13]目標檢測算法不同于R-CNN、YOLOv3[12]、SSD[14]等基于錨框的檢測算法,它利用關鍵點估計的思想,通過檢測目標框的中心點,然后回歸檢測框的其他屬性,比如尺寸、姿態(tài)等,如圖3所示邊界框的尺寸與其他對象屬性是從中心的關鍵點特征判斷出來的,中心點以彩色顯示。相比基于錨框的檢測算法,CenterNet 的模型是端到端的,因此它更加簡單、更加準確,檢測速度也更快,其與不同算法的比較如圖4所示。
圖3 利用邊界框的中心點建模Fig.3 Modelling object as center point of bounding box
圖4 不同檢測方法在COCO數(shù)據(jù)集上的速度-精度曲線圖Fig.4 Speed-accuracy trade-off on COCO validation for different detectors
CenterNet 以目標的中心點來表示目標的位置,然后在特征圖上中心點的位置回歸出目標的其他屬性,這樣一來就將目標檢測問題轉(zhuǎn)換成一個關鍵點估計的問題。將圖像傳入到一個全卷積網(wǎng)絡中,網(wǎng)絡會輸出一個熱力圖,熱力圖中峰值點的位置就是圖像中目標的中心點位置,同時特征圖上每一個峰值點的位置都會預測目標的尺寸信息。整個網(wǎng)絡采用監(jiān)督學習的方式來訓練,并且不需要對檢測結果進行附加的后處理操作。
本文算法的整體框架如圖5所示,本章主要從網(wǎng)絡結構、損失函數(shù)以及訓練策略三方面對基于關鍵點估計的抓取檢測算法進行介紹。
圖5 基于關鍵點估計的抓取檢測算法框架Fig.5 Grasping detection algorithm based on key point estimation
在CenterNet論文中采用Resnet101[15]作為特征提取網(wǎng)絡,在上采樣階段,先用3×3 的深度可分離卷積改變圖像的通道數(shù),然后使用轉(zhuǎn)置卷積進行上采樣。最后得到相當于輸入圖像4倍下采樣大小的特征圖,相比于傳統(tǒng)目標檢測算法使用16 倍下采樣作為特征圖,較大的特征圖更適合關鍵點估計。但是這里用到的特征圖原論文中只使用了最后4 倍下采樣的特征圖進行目標檢測,這會導致圖像的一些特征丟失。為了充分利用卷積階段的各個特征圖,本文將Resnet101網(wǎng)絡產(chǎn)生的4個特征圖使用特征金字塔(feature pyramid networks,F(xiàn)PN)[16]的特征圖融合方法進行融合。
但是常規(guī)的特征金字塔融合方法是直接將各個特征圖進行融合的,沒有考慮到不同的特征圖對最后的目標檢測性能的區(qū)別。研究表明,各個階段的特征圖對于最后融合的特征圖的貢獻是不同的,Tan 等[17]在EfficientDet 中提出了一種對各個特征圖的加權特征融合方法BiFPN。在對特征圖進行融合時,對每個輸入的特征圖增加一個權重,這個權重是可學習的,這樣網(wǎng)絡能夠在訓練過程中學習到特征圖融合的權重,改變各個特征圖對最后目標檢測性能的貢獻。
本文采用了快速標準化特征融合的方法來進行特征圖的權重融合,其表達式如下:
在每一個wi后接一個Relu 函數(shù)來保證wi≥0 。其中ε=0.000 1,可以避免分母為0 而導致的數(shù)值不穩(wěn)定。經(jīng)過標準化之后每一個權重都落在了0 到1 之間,然后對不同的特征圖Ii進行加權求和,得到的O就是融合特征圖。
本文中的特征融合網(wǎng)絡B-FPN的結構如圖6所示,圖中的圓形表示卷積操作,虛線箭頭表示上采樣,高層的特征圖通過上采樣與低層的特征圖進行融合,得到最后的特征圖輸出O。
圖6 B-FPN結構Fig.6 B-FPN structure
其計算公式如下:
與CenterNet中的Resnet101特征提取網(wǎng)絡相比,本文使用的Resnet101+B-FPN 特征提取網(wǎng)絡能夠通過添加權重的方式進行特征圖融合,減少特征的損失。
網(wǎng)絡改進前后的特征提取網(wǎng)絡如圖7所示。圖7(a)為CenterNet 中原本的特征提取網(wǎng)絡,圖7(b)為改進后的特征提取網(wǎng)絡。在網(wǎng)絡的上采樣階段在每一個轉(zhuǎn)置卷積前加上了一個3×3 的深度可分離卷積來改變通道數(shù),然后使用轉(zhuǎn)置卷積進行上采樣(如圖中32 →16 的上采樣過程中,黑色虛線箭頭表示深度可分離卷積,紅色實線箭頭表示轉(zhuǎn)置卷積上采樣,在16 →8、8 →4 的上采樣過程中,使用一個紅色虛線箭頭代替兩個過程)。最后得到相當于輸入圖像4倍下采樣大小的特征圖,相比于傳統(tǒng)目標檢測算法使用16 倍下采樣作為特征圖,較大的特征圖更適合關鍵點估計。
圖7 特征提取網(wǎng)絡Fig.7 Feature extraction network
特征圖后接4 個通道,分別為關鍵點檢測通道、關鍵點偏移量預測通道、抓取框尺寸預測通道以及抓取角度的預測通道。在本文的抓取檢測算法中,因為不涉及對目標類別的分類,只需要檢測是否可抓取,所以在抓取可行性熱力圖的通道數(shù)為1。在關鍵點偏移量預測通道中網(wǎng)絡會預測每個點在x與y方向上的偏移量,因此其通道數(shù)為2。在抓取框尺寸預測通道中網(wǎng)絡會預測抓取框的尺寸信息,分別w、h,通道數(shù)為2。最后在抓取角度預測通道,網(wǎng)絡會預測抓取框的抓取角度θ,其通道數(shù)為1。
設I∈RH×W×3為寬為W、高為H的輸入圖像,網(wǎng)絡的輸出是利用關鍵點估計生成的熱力圖其中R是輸出特征圖的下采樣倍率(即尺寸縮放比例),本文中取4。C表示輸出特征圖的個數(shù),在本文的抓取檢測算法中,C=1,即可抓取類別。對于Ground Truth 的關鍵點K,其坐標為p∈R2,經(jīng)過下采樣之后在特征圖上的位置為。本文通過使用二維高斯核將熱力標簽分散到熱力圖中。其中σp為尺度自適應標準差,其值為卷積核大小的,本文使用大小為的高斯核,w表示標注抓取框的寬度。如圖8所示為高斯熱力分布圖。
圖8 康奈爾抓取數(shù)據(jù)集中的物體及其抓取熱力圖Fig.8 Objects in Cornell grasp dataset and grasping heat map
熱力圖在訓練時的損失函數(shù)使用改進的Focal Loss[18],其表達式如下:
其中α、β為超參數(shù),在本實驗中選擇2 和4,N表示一張圖片中關鍵點的個數(shù)。不考慮權重(1-Yxyc)β,可以將上述損失函數(shù)轉(zhuǎn)換成以下形式:
當Pt的值比較接近于1 時,(1-Pt)α會比較小,這樣損失函數(shù)的值也會變小;當Pt的值比較小時,表示當前樣本為難分樣本,對應的(1-Pt)α會比較大,這樣一來網(wǎng)絡在訓練過程中會更加關注難分樣本的分類。(1-Yxyc)β表示負樣本的權重項,在傳統(tǒng)的Focal Loss 中,對于預測值過高的負樣本,網(wǎng)絡會用來懲罰損失函數(shù),但是在關鍵點檢測中,期望越接近于中心點的位置其預測值越大,因此這里使用了(1-Yxyc)β權重項,當預測位置越接近中心點,其值就越小,損失函數(shù)也會越小。而對于遠離中心的預測位置,該項不起作用。
因為在對圖像進行下采樣操作時存在量化操作,這使得Ground Truth的關鍵點會產(chǎn)生偏移,所以需要對關鍵點的位置進行回歸。本文對每一個關鍵點的位置進行了局部偏移的預測,對于這個偏移量,使用L1 Loss 來訓練,這里只計算關鍵點處的偏移損失,損失函數(shù)表達式如下:
其中,p表示中心點在原圖中的坐標,R為圖像的縮放尺度,本文取4,為量化操作后的坐標,N為正樣本的數(shù)量。
因為在抓取檢測算法中,目標框的bounding box不是水平矩形,所以無法用左上右下點的坐標來表示,這里需要用4 個點的坐標來表示bounding box。設表示目標k的bounding box 的4個角點的坐標,那么其中心點的位置為:
同時也可以計算出目標的尺寸信息。根據(jù)康奈爾數(shù)據(jù)標注的特點,參考抓取框的寬為參考抓取框的高為。可以估計出目標尺寸信息:
這里的損失函數(shù)也用到了L1 Loss函數(shù),其表達式如下:
其中,為目標k的參考抓取框尺寸,可以表示為(w,h),w表示平行爪夾持器張開的寬度,h表示手爪的寬度,N為正樣本的數(shù)量。
在抓取檢測算法中除了對抓取檢測框尺寸進行預測,還需要預測抓取框的角度,本文中的抓取角度θ表示平行爪夾持器在圖像平面中的投影與圖像水平方向所成的夾角,范圍為(0,π)。根據(jù)康奈爾抓取數(shù)據(jù)集上數(shù)據(jù)標注的規(guī)則,前兩個點所連線段的方向代表平行爪夾持器手爪張開的方向,即抓取角度,因此可以用θ=來表示。計算角度損失使用的損失函數(shù)為L1損失函數(shù),其表達式如下:
其中,為目標k的抓取角度,N表示正樣本的數(shù)量。
因為本文沒有對目標尺寸做歸一化處理,直接選用原始像素的坐標,所以會導致Lsize的值較大。為了平衡損失函數(shù)的分布,需要在各個損失函數(shù)前添加權重,其表達式如下:
參考了文獻[12]中的權重設置,在實驗中,使用λsize=0.1,λoff=1,λtheta=1。
本文使用的輸入圖像大小為512×512,經(jīng)過4 倍下采樣操作之后特征圖的大小為128×128,網(wǎng)絡會在特征圖的每一個位置預測6個值,分別為特征圖每個點處的關鍵點熱力圖,偏移量δx、δy,尺寸預測值w、h,抓取角度預測量θ。
在抓取熱力圖中將所有點與其8 鄰域內(nèi)的所有點的預測值做比較,如果該點的值大于或等于其他8個鄰近點則保留,最后保留滿足之前所有要求的前100個峰值點。設為抓取熱力圖中檢測到的n個預測關鍵點的集合,。其中每一個關鍵點的坐標都是以整數(shù)形式(i,)給出的,因此最后生成的抓取檢測框的表示形式為:
其中,(δi,)表示關鍵點位置偏移量預測,表示抓取框的尺寸預測,表示抓取角度的預測值。所有的預測輸出都是通過點估計直接產(chǎn)生的,不需要進行非極大值抑制或其他后處理操作。
本文實驗使用的操作系統(tǒng)是ubuntu16.04,處理器的型號為Intel?CoreTMi7-8700K,顯卡型號為NVIDIA GeForce?GTX 1080Ti,采用NVIDIA CUDA9.0 加速工具箱。
為了對新設計的Resnet101+B-FPN 模型的性能進行測試,在Pascal VOC數(shù)據(jù)集上進行實驗。Pascal VOC是一個常用的目標檢測數(shù)據(jù)集,其中包含20 個類別的16 551 張訓練圖片以及4 962 張測試圖片。本文使用IoU閾值為0.5時的mAP作為評價指標。比較CenterNet在分別使用Resnet101和Resnet101+B-FPN時網(wǎng)絡的表現(xiàn)。在實驗中分別采用了兩種分辨率的輸入384×384,512×512。兩個網(wǎng)絡采用相同的訓練策略,批大小為32,初始學習率設置為1.25E-4,總共迭代70次,其中在迭代次數(shù)達到45 和60 時將學習率減小為原來的1/10。實驗結果如表1所示。
表1 Pascal VOC數(shù)據(jù)集上目標檢測的結果Table 1 Object detection results on Pascal VOC dataset
從表1中可以看到,加入B-FPN之后網(wǎng)絡的mAP提高了,并且在大分辨率的圖片上mAP提高得更加明顯,由此可見使用了特征融合方法融合特征圖之后可以增強網(wǎng)絡的性能。在后續(xù)的抓取檢測網(wǎng)絡中,用到的特征提取網(wǎng)絡部分為Resnet101+B-FPN。
本實驗在康奈爾抓取數(shù)據(jù)集上進行訓練和測試,該數(shù)據(jù)集包含240 個可抓取物品的885 張圖片,在每張圖片中,可行的抓取被表示成抓取矩形框。在訓練時將數(shù)據(jù)集按照4∶1的比例劃分成訓練集與測試集。
在訓練集上進行算法模型的訓練,512×512的圖像輸入到網(wǎng)絡當中,模型輸出大小為128×128。在訓練過程中,對訓練集中的圖像進行隨機翻轉(zhuǎn)、隨機旋轉(zhuǎn)、隨機縮放、隨機裁剪和色彩抖動等方法來進行數(shù)據(jù)增強,算法模型的優(yōu)化器選擇Adam。輸入數(shù)據(jù)的批量大小為16,迭代步數(shù)為140,初始學習率設定為0.001,在訓練步數(shù)達到60和80時,學習率減小為原來的1/10。
訓練過程中損失函數(shù)的收斂趨勢如圖9所示。圖9(a)表示抓取檢測總損失函數(shù)(Ldet)的收斂趨勢,圖9(b)表示關鍵點估計損失函數(shù)(Lhm)的收斂趨勢,圖9(c)表示目標尺寸大小損失函數(shù)(Lsize)的收斂趨勢,圖9(d)表示目標中心點偏移損失函數(shù)(Loff)的收斂趨勢,圖9(e)表示角度預測損失函數(shù)(Ltheta)的收斂趨勢。
圖9 訓練階段損失Fig.9 Loss in training stage
測試時本文采用的仍然是康奈爾抓取數(shù)據(jù)集來評估抓取檢測的性能。本實驗采用Zhang等人[22]提出的評價指標,當抓取檢測框滿足以下兩個條件時認為是一個正確的預測:
(1)預測抓取框與參考抓取框之間抓取角度的差值小于30°。
(2)Jaccard相似系數(shù)大于25%,其中Jaccard相似系數(shù)計算公式如下:
其中,g表示預測抓取框所圍成的區(qū)域,表示參考抓取框所圍成的區(qū)域,表示兩個區(qū)域相交部分的面積,表示兩個區(qū)域覆蓋部分的面積。
模型在康奈爾抓取數(shù)據(jù)集中的驗證集上的檢測結果如圖10所示。第一行為康奈爾抓取數(shù)據(jù)集中的物體,第二行為預測抓取熱力圖,第三行為抓取框的檢測結果。
圖10 抓取檢測結果Fig.10 Results of grasp detection
表2 是本文網(wǎng)絡模型與其他抓取網(wǎng)絡檢測模型的準確率與檢測速度的對比表。
由表2可以發(fā)現(xiàn),本文的模型在準確率與檢測速度上都有提升,使用了無錨框的網(wǎng)絡結構使檢測速度更加快,同時使網(wǎng)絡具有更強的魯棒性。
表2 抓取位置檢測算法準確率對比Table 2 Accuracy for grasping detection
為了加快抓取檢測網(wǎng)絡的檢測速度以及增強對抓取角度的檢測能力,本文提出了一種新的檢測方法,通過關鍵點估計的方法檢測抓取框的中心點位置,并且預測抓取的角度、尺寸等信息。一方面CenterNet 端到端的網(wǎng)絡結構以及無需后處理的網(wǎng)絡特點,能夠加快網(wǎng)絡的檢測速度;另一方面高分辨率的特征圖的輸入能夠檢測到更多的可行抓取框。同時,基于關鍵點的檢測思路與抓取檢測任務更加匹配,在抓取檢測時從抓取點去回歸抓取框,相較于基于錨框的抓取檢測算法能夠更好地得到抓取輪廓,獲得更多的可行抓取。在康奈爾抓取數(shù)據(jù)集中,相比于基于錨框的抓取檢測算法,基于關鍵點估計的檢測模型能夠在保證較高準確率的同時達到較快的檢測速度。實驗結果顯示本文的模型在驗證集上有97.6%的準確率,并且能夠達到42 frame/s的檢測速度。