朱丹平,朱 明,周恒森
(中國科學技術(shù)大學 信息科學技術(shù)學院,合肥 230026)
隨著我國物流行業(yè)的發(fā)展,以及勞動力成本的不斷上升,自動化倉儲物流近年來不斷發(fā)展,自動化運輸設(shè)備的需求不斷提升.自動叉車是一種自動駕駛車輛,可以完成對貨物的自動搬運,能有效降低人力成本,被廣泛應(yīng)用于自動化物流中.在倉儲物流中,因為貨物的外觀存在大小、形狀、顏色等明顯的差異,所以直接對貨物定位非常困難.而托盤用于承載和搬運貨物,且具有通用的規(guī)格和形狀.因此自動叉車一般通過托盤定位來叉取和搬運貨物.
托盤定位方法主要分為以下3 類: 第1 類是基于激光雷達傳感器的檢測方法.趙俊宏等人[1]根據(jù)2D 激光雷達掃描結(jié)果分析托盤的距離和姿態(tài).雖然基于激光雷達的方法對光照有比較好的魯棒性,但是激光雷達成本高昂、不利于大規(guī)模普及.第2 類是傳統(tǒng)圖像處理的方法.Cui 等人[2]使用傳統(tǒng)圖像處理的方法直接分析圖像本身特征,如角點、邊緣和顏色等特征來檢測托盤.Seelinger 等人[3]提出了一種利用標簽來定位托盤的方法,但存在標簽安裝和維護的成本,而且在使用過程中容易損壞.武文漢[4]使用tof 相機和紙標簽分別完成了對遠距離托盤和近距離托盤的檢測定位,但是算法速度較慢,實時性不高,因此難以應(yīng)用于工業(yè)場景.此類方法易受到光照等環(huán)境因素影響,魯棒性較差.第3 類是基于深度學習的托盤檢測方法.Mohamed 等人[5]使用了Faster R-CNN[6]來訓練模型,實現(xiàn)了對托盤的定位.李天健等人[7]使用改進的SSD 算法[8]實現(xiàn)了倉儲環(huán)境中托盤的定位.葉偉[9]首先使用YOLOv4 算法[10]對托盤進行目標檢測,再使用GrabCut 分割方法[11]提高精度.此類方法準確率高,抗干擾能力強,而且成本遠低于激光雷達,適合部署于實際工業(yè)場景中.
在實際物流場景中,自動叉車為完成自動叉卸貨任務(wù),需要將叉鏟對準托盤中心點,將叉鏟方向與托盤水平方向保持一致,以保證安全無碰撞地叉取托盤.因此托盤定位任務(wù)可分為2 部分: (1)托盤中心點定位;(2)托盤水平方向估計.目前基于目標檢測的托盤定位算法,一般使用矩形框進行定位,只能檢測托盤區(qū)域位置,使用目標框中心點對托盤中心點定位精度不高,且無法有效估計托盤水平方向,難以應(yīng)用于自動叉車系統(tǒng)中.基于此問題,本文提出了一種基于改進Center-Net[12]的托盤定位方法.在目標檢測的基礎(chǔ)上,通過托盤關(guān)鍵點檢測,在精準定位托盤中心點的同時,完成對托盤水平方向的估計.
本文的貢獻如下: (1)本文使用遷移學習的方法,將人體姿態(tài)估計引入托盤定位任務(wù),完成了托盤關(guān)鍵點定位.(2)針對托盤定位任務(wù),本文對CenterNet 網(wǎng)絡(luò)做出2 點改進: 1)改進關(guān)鍵點分組方法,提出基于托盤關(guān)鍵點位置的區(qū)域約束方法; 2)提出關(guān)鍵點回歸評價指標與自適應(yīng)補償,提高關(guān)鍵點檢測精度.(3)在關(guān)鍵點定位的基礎(chǔ)上,提出基于幾何約束的托盤中心點計算方法,以及托盤水平方向估計方法.(4)使用RGB 攝像頭拍攝并標注了托盤數(shù)據(jù)集.
Mohamed 等人[5]、李天健等人[7]與葉偉[9]所使用的目標檢測算法,都需要人工設(shè)計特定長寬比的錨框,以訓練出更好的檢測器.但是人工設(shè)計的錨框難以兼顧所有長寬比的目標,針對此問題,Law 等人提出了CornerNet[13],通過檢測目標的左上角和右下角關(guān)鍵點來檢測目標,不需要人工設(shè)計錨框.ExtremeNet[14]通過檢測目標的頂部、底部、最左側(cè)、最右側(cè)和中心點這5 點信息來完成目標檢測.以上兩種無錨框目標檢測算法在關(guān)鍵點檢測之后,都需要進行復雜且耗時的后處理步驟,這大大降低了算法的實時性.而Zhou 等人[12]提出的CenterNet 較好解決了這個問題.CenterNet 將目標檢測簡化成為對目標中心點的檢測.使用3×3 最大池化選取目標中心點,從而避免了NMS 等后處理步驟.
CenterNet 可選取3 種不同的骨干網(wǎng)絡(luò),分別為Hourglass[15]、ResNet[16]、DLA[17],都是編碼-解碼結(jié)構(gòu).其中Hourglass 在3 種骨干網(wǎng)絡(luò)中精度最高但預(yù)測速度較慢,而使用DLA 可以得到較好的精度以及較快的速度,因此選擇DLA 作為算法的骨干網(wǎng)絡(luò).如圖1 所示,CenterNet 網(wǎng)絡(luò)的頭部可分為3 個互相獨立的部分,分別完成目標框中心點、中心點偏置和目標框?qū)捀叩臋z測.CenterNet 使用二維高斯核函數(shù)將輸入圖像映射成為熱力圖作為訓練目標.二維高斯核函數(shù)的公式為:
圖1 CenterNet 網(wǎng)絡(luò)結(jié)構(gòu)圖
其中,Yxyc是歸一化后的熱力圖,(x,y)為熱力圖中點的坐標,(p~x,p~y)為目標中心點4 倍下采樣后的坐標(向下取整),σp是自適應(yīng)標準差[13].CenterNet 目標檢測任務(wù)中損失函數(shù)為Ldet:
Ldet由3 部分組成,分別為置信度損失Lk、下采樣損失Loff和目標框?qū)捀邠p失Lsize,超參數(shù)λsize為0.1,λoff為1.Lk用來訓練目標中心點位置.由于正樣本遠少于負樣本數(shù)量,為了使模型在訓練時更加關(guān)注于難檢測的樣本,Lk使用focal loss[18].因為輸出的熱力特征圖為原圖大小的0.25 倍,所以中心點位置預(yù)測存在離散化誤差,Loff用來訓練下采樣偏置的大小.
其中,Yxyc=1表示正樣本,Y?xyc是目標檢測的預(yù)測值.N是圖像中正樣本的數(shù)量.超參數(shù)α 和 β分別為2 和4.
其中,為預(yù)測的中心點偏置大小,p為中心點真實值坐標,R為下采樣倍數(shù),中心點坐標p下采樣R倍后向下取整得到.
其中,sk=(wk,hk)為目標k的寬高,為寬高估計值.
CenterNet 具有良好可擴展性,可以將CenterNet應(yīng)用到人體姿勢估計任務(wù)中.人體姿勢估計的任務(wù)要求估計出圖像中每個人體實例的人體關(guān)鍵點位置.首先直接回歸每個關(guān)鍵點與中心點之間的偏移量,得到關(guān)鍵點的初步定位,使用L1 損失函數(shù)Lreg進行訓練.然后為了細化關(guān)鍵點定位,類似目標檢測,通過熱力特征圖以及中心點偏置來進行關(guān)鍵點檢測,并以初步定位位置為依據(jù)進行分組.關(guān)鍵點檢測使用目標檢測任務(wù)中的置信度損失LK和偏移損失Loff進行訓練.
其中,E為關(guān)鍵點個數(shù),M為關(guān)鍵點掩碼,對于圖像中被遮擋等不可見的關(guān)鍵點Mki=0,可見關(guān)鍵點Mki=1.=(xkj,ykj)為第k個目標的第j個關(guān)鍵點坐標的偏移量.關(guān)鍵點檢測失函數(shù)為Lkey=Lk+Loff+Lreg,得到總損失函數(shù)Loss:
在多人姿態(tài)檢測場景中,通過關(guān)鍵點檢測得到的結(jié)果無法確定屬于哪個人體實例.CenterNet 使用初步定位結(jié)果作為分組依據(jù),使用3 項規(guī)則進行匹配:(1)所匹配的熱力特征圖關(guān)鍵點置信度得分大于0.1;(2)匹配歐氏距離最近的初步定位位置; (3)僅匹配目標框內(nèi)的關(guān)鍵點.
如圖2 所示,不同類型托盤外觀存在一定差異,主要可分為兩柱形托盤和三柱形托盤.為適應(yīng)不同類型托盤,選取托盤正面外輪廓的4 個角點作為關(guān)鍵點.從左上角點開始順時針將關(guān)鍵點分別編號為1,2,3,4.托盤定位算法可分為托盤檢測、托盤關(guān)鍵點檢測以及托盤中心點計算與水平方向估計的后處理部分.算法框架如圖3 所示,其具體流程如算法1 所示.算法1 中的所有步驟均在圖3 中標出,其中本文提出的工作用星號標記,在原算法基礎(chǔ)上改進的工作用菱形標記.
圖2 托盤類型圖
圖3 托盤定位算法圖
算法1.托盤定位算法1)將輸入圖片通過仿射變換轉(zhuǎn)為512×512 固定大小輸入;2)通過骨干網(wǎng)絡(luò)生成128×128 高分辨率熱力特征圖;3)基于熱力特征圖進行托盤檢測獲得托盤目標框;4)直接回歸得到托盤關(guān)鍵點初步定位位置;5)使用自適應(yīng)補償對初步定位位置進行調(diào)整;6)使用熱力特征圖進行關(guān)鍵點檢測;
7)以托盤目標框和關(guān)鍵點初步定位位置為分組依據(jù),對步驟6)的結(jié)果進行關(guān)鍵點分組;8)基于托盤關(guān)鍵點定位結(jié)果,計算托盤中心點,估計托盤的水平方向.
CenterNet 網(wǎng)絡(luò)為了對關(guān)鍵點進行分組,只對目標框內(nèi)的關(guān)鍵點進行匹配.由于托盤關(guān)鍵點分布于托盤邊緣,托盤檢測輕微的精度誤差就可能導致目標框無法包含關(guān)鍵點位置,嚴重影響關(guān)鍵點分組結(jié)果,針對此問題,本文根據(jù)托盤關(guān)鍵點分布特點,如圖4 所示,分別為左右兩邊的關(guān)鍵點設(shè)置了兩組約束區(qū)域.
圖4 區(qū)域約束對比圖
其中,Pleft和Pright分別為托盤左右兩邊關(guān)鍵點的約束區(qū)域,(xm,ym)為托盤目標框中心點,(w,h)為托盤目標框?qū)捀?(x,y)為圖像中點的坐標.
關(guān)鍵點回歸結(jié)果作為關(guān)鍵點定位的初步結(jié)果,是關(guān)鍵點檢測的分組依據(jù).較差的關(guān)鍵點回歸結(jié)果,會直接影響關(guān)鍵點定位的最終精度.因為關(guān)鍵點分布于托盤外邊緣,所以關(guān)鍵點的最小外接矩形與托盤的目標框相近.托盤目標框中心點與第i個關(guān)鍵點的歐式距離為,目標框中心點與目標框角點歐式距離Ddet.Ddet反映了目標的大小情況,對有一定參考意義.在與Ddet數(shù)值差距較大時,認為托盤關(guān)鍵點回歸效果較差.根據(jù)二者大小關(guān)系得到關(guān)鍵點回歸評價指標.
其中,=(xi,yi)為第i個托盤關(guān)鍵點回歸的坐標.將目標框角點從左上角按順時針編號為1,2,3,4,=(,)為第i個托盤目標框角點坐標.當與Ddet接近時,接近于1,關(guān)鍵點回歸效果好,補償比重小;當與Ddet差距較大時,接近于0,關(guān)鍵點回歸效果差,補償比重大.
自動叉車相機與托盤空間關(guān)系如圖5 所示,坐標系z軸指向相機正前方,y軸垂直向下.因為托盤承載貨物一般水平放置于地面,所以設(shè)定托盤放置平面與自動叉車相機坐標系xz平面平行.Pi為托盤關(guān)鍵點(i=1,2,3,4),Pi在自動叉車相機坐標系中的坐標為(Xi,Yi,Zi).Pc為托盤中心點,在自動叉車相機坐標系中的坐標為(Xc,Yc,Zc).pi為托盤關(guān)鍵點在歸一化平面中的坐標(xi,yi),pc為托盤中心點在歸一化平面的坐標(xc,yc).基于針孔相機模型,本文提出基于幾何約束的托盤中心點計算方法,通過托盤關(guān)鍵點計算托盤中心點.
圖5 叉車相機與托盤空間關(guān)系圖
其中,K為相機內(nèi)參矩陣.因為托盤放置平面與自動叉車相機坐標系xz平面平行,在自動叉車相機坐標系中Z1=Z4,Z2=Z3,根據(jù)式(11)可得:
托盤中心點Pc與托盤關(guān)鍵點的空間關(guān)系為:
將式(12)-式(15)帶入式(11)得到托盤中心點坐標(xc,yc):
為了估計托盤水平方向,本文在自動叉車相機坐標系中分析了托盤關(guān)鍵點坐標與水平方向的關(guān)系.如圖5,定義托盤水平方向的角度θ為托盤正面所在平面P1P2P3與坐標系x軸正方向所成夾角,設(shè)定Z1<Z2時θ為正,反之為負.通過托盤關(guān)鍵點p1和p2的y坐標之差Δy=y1-y2來估計托盤水平方向.關(guān)鍵點P1和P2在空間中的關(guān)系如式(17),其中W為關(guān)鍵點P1和P2的空間距離,也即托盤正面長度.
將式(17)帶入式(11),得到:
在Z1不變的前提下,Δy對θ求導:
由式(18)和式(19)可知,當 θ為0 時,p1和p2的y 坐標之差 Δy為0; 當θ大于0 時,Δy大于0; 當θ小于0 時,Δy小于0.同一距離下 Δy在θ ∈[-0.5π,0.5π]的區(qū)間內(nèi)單調(diào)遞增,因此通過 Δy可以有效估計托盤水平方向.考慮到關(guān)鍵點檢測誤差,設(shè)Δy∈[-10,10]時,托盤水平方向正對; Δy<-10時,托盤水平方向左偏; Δy>10時,托盤水平方向右偏.
本文采用的數(shù)據(jù)集為筆者自己采集制作的數(shù)據(jù)集.筆者使用1920×1080分辨率的RGB 攝像頭拍攝了一個數(shù)據(jù)集.如圖6 所示,攝像頭安裝在自動叉車系統(tǒng)前方的叉齒架上.叉齒架可上升下降,在不同高度拍攝托盤照片.整個數(shù)據(jù)集拍攝了合力叉車公司2 種類型的托盤,在多個場景中采集了時長60 分鐘的視頻.從中選取1 251 幀圖片,使用coco-annotator 工具標注.將其中80%圖片作為訓練集,10%用作驗證集,10%用作測試集.
圖6 數(shù)據(jù)集采集裝置圖
實驗所用的機器配置如表1 所示.實驗有兩個評價指標.第1 個是關(guān)鍵點定位精度指標APkp,用以衡量關(guān)鍵點定位的精度,APkp越高代表托盤關(guān)鍵點定位越精確.第2 個指標是筆者提出的托盤中心點定位指標平均定位精度ALP(average location precision),通過托盤定位中心點與托盤實際中心點的歐式距離Dc和托盤真實框面積Abbox得到.
表1 訓練所用機器配置表
在ALP中只考慮檢測目標框和真實框IOU大于0.5的樣本,式(20)中N為樣本數(shù)量.ALP越高代表對托盤中心點定位越準確.因為數(shù)據(jù)集規(guī)模較小,模型在訓練時隨機對輸入圖像進行反轉(zhuǎn),同時疊加一個服從正態(tài)分布的隨機白噪聲,用以提高模型的魯棒性.學習率設(shè)為0.000 25,訓練的epoch 設(shè)為120,為了防止過擬合,筆者在驗證集Loss 不再下降時停止訓練.
為了驗證本文對CenterNet 算法提出改進方法的有效性,筆者使用關(guān)鍵點定位精度指標APkp,做了模型自身的縱向?qū)Ρ葘嶒?將關(guān)鍵點位置約束設(shè)為改進1,關(guān)鍵點回歸自適應(yīng)補償設(shè)為改進2,實驗結(jié)果如表2 所示,兩項改進均顯著提高了APkp,證明了本文方法的有效性.
表2 縱向?qū)Ρ葘嶒灡?/p>
為了驗證本文方法定位托盤中心點的有效性,筆者使用評價指標ALP,與其他目標檢測算法進行了橫向?qū)Ρ葘嶒?對于其他目標檢測算法,筆者使用托盤目標框中心點作為托盤中心點的定位結(jié)果.實驗結(jié)果如表3 所示.可以看到,本文方法對比其他目標檢測算法,中心點定位精度均有顯著提高.
表3 橫向?qū)Ρ葘嶒灡?/p>
為驗證本文方法估計托盤水平方向的有效性,筆者分別選取托盤左偏、右偏與正對3 種具有代表性的情況進行實際測試.結(jié)果如圖7 所示,圖7(a)中,關(guān)鍵點p1和p2的y坐標之差Δy=-75,托盤水平方向左偏;圖7(b)中,Δy=1,托盤水平方向正對; 圖7(c)中,Δy=59,托盤水平方向右偏.通過 Δy可有效對托盤水平方向進行估計.
圖7 托盤方向估計圖
本文提出了一種基于關(guān)鍵點檢測的托盤定位方法.首先將CenterNet 人體姿態(tài)估計引入到托盤定位任務(wù)中,完成對托盤外邊緣4 個關(guān)鍵點的檢測.然后改進關(guān)鍵點分組約束,并提出關(guān)鍵點回歸自適應(yīng)補償,顯著提高了托盤關(guān)鍵點定位精度.在關(guān)鍵點檢測的基礎(chǔ)上,提出了托盤中心點計算與托盤水平方向估計方法,提高了托盤中心點的定位精度,解決了目前目標檢測算法無法有效估計托盤水平方向的問題.與其他托盤檢測方法相比,本文提出的方法表現(xiàn)優(yōu)異,下一步計劃將本文方法應(yīng)用于自動叉車系統(tǒng)中.