崔寧,胡曉光
(1.中國(guó)人民公安大學(xué)信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院,北京100000;2.中國(guó)人民公安大學(xué)偵查與刑事科學(xué)技術(shù)學(xué)院,北京100000)
近幾年機(jī)器人技術(shù)大力的發(fā)展,對(duì)國(guó)家國(guó)防、工業(yè)的發(fā)展都做出了巨大的貢獻(xiàn)。人們對(duì)于機(jī)器人技術(shù)投入了大量資金,使傳感器技術(shù)、計(jì)算機(jī)視覺、控制算法等技術(shù)得到飛速發(fā)展。機(jī)器人技術(shù)也順應(yīng)這些技術(shù)的應(yīng)用與時(shí)代發(fā)展的需要,呈現(xiàn)多元化發(fā)展的趨勢(shì)。除了傳統(tǒng)的工業(yè)機(jī)器人外,各類小型移動(dòng)服務(wù)機(jī)器人也得到了很快的發(fā)展。機(jī)器視覺在現(xiàn)代化工廠中得到了越來越多的應(yīng)用,該技術(shù)主要應(yīng)用于物體的類別識(shí)別、形狀識(shí)別、空間定位等領(lǐng)域[1-2]。在工業(yè)生產(chǎn)領(lǐng)域和危險(xiǎn)環(huán)境下通過機(jī)械手抓取物體降低了生產(chǎn)成本、減少了人員的傷亡,得到了廣泛的應(yīng)用。目前關(guān)于視覺傳感器進(jìn)行物體定位與識(shí)別主要是通過單目視覺、雙目視覺、RGB-D 相機(jī)三種方式。單目視覺是通過單個(gè)RGB 相機(jī)獲取2D 彩色圖像數(shù)據(jù),通過單幀計(jì)算和雙幀計(jì)算兩種方式獲取物體的距離,單幀計(jì)算需要物體的幾何尺寸等額外的場(chǎng)景信息,多幀計(jì)算通過連續(xù)幀中物體相應(yīng)位置像素的位移變化計(jì)算物體的距離。雙目視覺是指通過兩個(gè)攝像頭之間形成的視差計(jì)算得出深度數(shù)據(jù),從而產(chǎn)生立體視覺,此方法計(jì)算量較大,對(duì)設(shè)備性能要求高。RGB-D 方案是指深度相機(jī)和彩色相機(jī)相結(jié)合,將彩色圖像數(shù)據(jù)和深度數(shù)據(jù)進(jìn)行了耦合。其測(cè)的深度信息相對(duì)于雙目視覺精度高,且不需進(jìn)行額外計(jì)算。
本文使用RGB-D 相機(jī)方案,首先利用Mask RCNN 卷積神經(jīng)網(wǎng)絡(luò)[3]對(duì)物體進(jìn)行識(shí)別得出物體的類別,然后找出物體的SIFT 特征點(diǎn)并進(jìn)行匹配等技術(shù)。本方案在對(duì)物體進(jìn)行定位與姿態(tài)調(diào)整時(shí)無需使用昂貴的3D 建模設(shè)備對(duì)物體進(jìn)行建模的預(yù)處理,并能接近達(dá)到通過三維建模-點(diǎn)云配準(zhǔn)方法進(jìn)行定位的精度[4]。
RGB-D 是RGB 彩色傳感器和深度傳感器的結(jié)合體,既能夠獲取RGB 彩色圖像信息也能獲取深度圖像信息。目前深度傳感器按照結(jié)構(gòu)光法和光飛行時(shí)間法兩種不同獲取深度數(shù)據(jù)的方式分為結(jié)構(gòu)光式相機(jī)和飛行時(shí)間測(cè)距成像相機(jī)兩種類型。結(jié)構(gòu)光式攝像頭精度高,但測(cè)量距離短;飛行時(shí)間測(cè)距成像相機(jī)測(cè)量距離相對(duì)于結(jié)構(gòu)光法要長(zhǎng),但測(cè)量精度低于結(jié)構(gòu)光法。RGBD 相機(jī)可以主動(dòng)測(cè)量每個(gè)像素對(duì)應(yīng)的距離,并能將RGB 彩色圖像信息和深度數(shù)據(jù)進(jìn)行耦合。RGB-D 相機(jī)模型根據(jù)RGB 彩色攝像頭和深度傳感器兩者之間的外參構(gòu)建RGB 彩色圖像數(shù)據(jù)與深度數(shù)據(jù)兩者之間的映射關(guān)系。相機(jī)最終得到的圖像是以像素坐標(biāo)的形式存在的,像素平面中P’的像素坐標(biāo)為[u,v]。RGB-D深度相機(jī)利用相機(jī)內(nèi)參進(jìn)行坐標(biāo)系變換可以直接獲得測(cè)量點(diǎn)的空間位置信息,即空間坐標(biāo)P(X,Y,Z)可根據(jù)相機(jī)的內(nèi)參K 和像素P’(u,v)對(duì)應(yīng)的深度Z 由公式(1)得出。
注:式中K 矩陣表示的是相機(jī)的內(nèi)參數(shù)矩陣(Camera Intrinsic),P 為點(diǎn)P’的三維空間坐標(biāo)。
目前,卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型是解決圖像識(shí)別問題的最優(yōu)方法,以Mask R-CNN、YOLO 等模型為代表。Mask R-CNN 模型是由R-CNN、Fast R-CNN 、Faster R-CNN、CNN[5-7]模型改進(jìn)而來。R-CNN 模型在CNN 的基礎(chǔ)上設(shè)計(jì),在目標(biāo)檢測(cè)測(cè)試中取得了很好的成績(jī)。研究者對(duì)R-CNN 的不斷改進(jìn),使得卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測(cè)領(lǐng)域不斷有新的突破。相繼發(fā)展出了Fast R-CNN,Faster R-CNN,Mask R-CNN 等算法。RCNN 與傳統(tǒng)圖像目標(biāo)檢測(cè)方法相比,不再需要人工提取特征,采用了多尺度卷積核的卷積網(wǎng)進(jìn)行替代。首先進(jìn)行區(qū)域推薦采用selective search 的方法在輸入圖像上生成待檢測(cè)區(qū)域構(gòu)成候選檢測(cè)集。然后進(jìn)行特征提取,R-CNN 通過使用卷積神經(jīng)網(wǎng)絡(luò)(AlexNet)在待檢測(cè)區(qū)域上分別計(jì)算每個(gè)推薦的特征并提取,最后通過使用類別相關(guān)線性支持向量機(jī)(SVM)對(duì)這些提取的特征向量進(jìn)行打分,根據(jù)分?jǐn)?shù)的高低進(jìn)行分類,進(jìn)而得到目標(biāo)的分類。R-CNN 通過采用bounding box regression對(duì)圖像中的目標(biāo)邊框的圖像區(qū)域進(jìn)行更正,使得目標(biāo)檢測(cè)精度大大提升。但R-CNN 因?yàn)椴捎么惺紺NN前向傳播而且沒有考慮共享計(jì)算,耗費(fèi)了大量的時(shí)間。對(duì)于每一個(gè)輸入圖像和感興趣區(qū)域(RoI)都需要經(jīng)過AlexNet 網(wǎng)絡(luò)進(jìn)行特征提取,為所有的感興趣區(qū)域(RoI)提取特征使用46s 左右,并且訓(xùn)練時(shí)提取的特征需存入硬盤,需要很大的存儲(chǔ)空間。為了應(yīng)對(duì)復(fù)雜的機(jī)器視覺使用環(huán)境,提高算法的實(shí)時(shí)性,研究者提高了檢測(cè)速度,提取的特征不再存入硬盤,相繼提出了Fast R-CNN、Faster R-CNN 對(duì)R-CNN 進(jìn)行改進(jìn)。首先將R-CNN 耗時(shí)的特征提取方式修改成一個(gè)全卷積網(wǎng)絡(luò)對(duì)全圖進(jìn)行提取特征的方式。使用RoI Pooling Layer在全圖特征上提取每一個(gè)感興趣區(qū)域(RoI)對(duì)應(yīng)的特征,再通過全連接層(FC Layer)對(duì)目標(biāo)區(qū)域進(jìn)行分類和包圍框的更正;取代selective search 構(gòu)成候選檢測(cè)集的方法,直接通過一Region Proposal Network(RPN)生成幾乎無代價(jià)的區(qū)域推薦,將生成輸入圖像和感興趣區(qū)域(RoI)由2s 變?yōu)?0ms。
Mask R-CNN 主要是在Faster R-CNN 的基礎(chǔ)上進(jìn)行了擴(kuò)展。①借用了Faster R-CNN 的區(qū)域推薦網(wǎng)絡(luò)(RPN),生成檢測(cè)目標(biāo)的邊框。②在Faster R-CNN 的基礎(chǔ)上用RoIAlign 代替了RoIPooling,RoIPooling 使用取整量化,導(dǎo)致特征圖RoI 映射回原圖RoI 時(shí)空間不對(duì)齊明顯,造成誤差;RolAlign 不使用取整量化而是采用雙線性插值,完成像素級(jí)的對(duì)齊;Mask R-CNN 添加了平行于分類和邊框的回歸分支的掩模分支,一個(gè)用在ROI 上的小型全卷積網(wǎng)絡(luò),以此實(shí)現(xiàn)了像素級(jí)的分割。
圖1 Mask R-CNN網(wǎng)絡(luò)結(jié)構(gòu)圖
此方案提出的對(duì)目標(biāo)物體抓取點(diǎn)空間坐標(biāo)的檢測(cè),主要分為兩個(gè)階段:預(yù)處理階段和識(shí)別處理階段。預(yù)處理階段需要訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)對(duì)其物體進(jìn)行分類識(shí)別,對(duì)圖片進(jìn)行加工處理后生成識(shí)別需要的模板,用于后期處理時(shí)的匹配;識(shí)別處理階段即對(duì)物體進(jìn)行定位檢測(cè)、處理、抓取點(diǎn)空間坐標(biāo)結(jié)果輸出。
預(yù)處理階段要訓(xùn)練一個(gè)物體檢測(cè)模型和對(duì)物體進(jìn)行模板圖片制作。①對(duì)于待檢測(cè)的物體建立2D 圖像數(shù)據(jù)集,使用Mask R-CNN 卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,進(jìn)而對(duì)物體進(jìn)行識(shí)別分類。②對(duì)于每個(gè)物體四周進(jìn)行拍照,步長(zhǎng)大概45 度,圍繞物體拍8 張,并用SIFT 進(jìn)行特征點(diǎn)提取,保存此圖片和此圖片中SIFT 檢測(cè)出的各特征點(diǎn)的像素坐標(biāo)。③選定一個(gè)抓取點(diǎn),即擬測(cè)量的物體某個(gè)具體空間坐標(biāo)的點(diǎn),這個(gè)點(diǎn)可以是物體上任意處的點(diǎn)。④借助深度相機(jī)和公式測(cè)量保存各特征點(diǎn)和抓取點(diǎn)的空間坐標(biāo),通過距離公式((Xi-x)2+(Yi-y)2+(Zi-z)2=)計(jì)算得出兩點(diǎn)距離。⑤保存每個(gè)特征點(diǎn)到抓取點(diǎn)的直線距離。步驟②拍攝的圖片和步驟③計(jì)算出的距離組成了各個(gè)物體的模板。
①相機(jī)拍照并保存圖片,取名為測(cè)量圖片。Mask R-CNN 對(duì)此測(cè)量圖片進(jìn)行識(shí)別,給出測(cè)量圖片中的分類結(jié)果和物體在此圖片中的掩模像素坐標(biāo)。②通過Mask R-CNN 得到的物體分類結(jié)果,調(diào)取出在預(yù)處理階段保存的相應(yīng)模板。對(duì)彩色圖片中經(jīng)Mask R-CNN 得到的物體的掩模與相應(yīng)的模板進(jìn)行SIFT 特征匹配。③對(duì)彩色圖像和步驟二中調(diào)取的模板圖片這兩張圖片之間的特征點(diǎn)進(jìn)行映射,使模板圖片與測(cè)量圖片經(jīng)SIFT 特征點(diǎn)匹配成功的各特征點(diǎn)到抓取點(diǎn)的距離映射到彩色圖片的特征點(diǎn)到抓取點(diǎn)的距離。并計(jì)算出各特征點(diǎn)的空間坐標(biāo)。④根據(jù)各特征點(diǎn)到抓取點(diǎn)的距離可列出方程:設(shè)A 特征點(diǎn),已知測(cè)量圖片中A 特征點(diǎn)的空間坐標(biāo)為(X1,Y1,Z1)與到抓取點(diǎn)的距離為D1,可得方程:(X-X1)2-(Y-Y1)2+(Z-Z1)2=D12。若知道4 個(gè)特征點(diǎn)(不共線)即可列出4 個(gè)方程,解出方程組即可求出物體抓取點(diǎn)的空間坐標(biāo)。由于相機(jī)設(shè)備的誤差,致其測(cè)量的數(shù)據(jù)存在誤差導(dǎo)致方程組無解,故使用最小二乘法進(jìn)行迭代求解[8]。
圖右面為測(cè)量圖片,圖左面為測(cè)試圖片經(jīng)Mask R-CNN 處理得出物體類別后,調(diào)取出的對(duì)應(yīng)物體模板圖片。圖片經(jīng)過Mask R-CNN 處理后給出了物體掩模區(qū)域像素位置,只需對(duì)其區(qū)域掩碼區(qū)域進(jìn)行匹配,增加了SIFT 的匹配精度。
圖2 模板與測(cè)試圖片示意圖(ps示意圖)
本文提出一種對(duì)物體某點(diǎn)進(jìn)行空間坐標(biāo)測(cè)量的方案。結(jié)合RGB-D 相機(jī)、Mask R-CNN 深度網(wǎng)絡(luò)學(xué)習(xí)模型、SIFT 特征點(diǎn)查找進(jìn)行物體空間坐標(biāo)的測(cè)量。對(duì)獲取到的彩色圖像使用Mask R-CNN 深度網(wǎng)絡(luò)學(xué)習(xí)模型進(jìn)行類別識(shí)別,得到類別后調(diào)取相應(yīng)的模板進(jìn)行SIFT特征匹配,對(duì)于匹配的結(jié)果結(jié)合深度相機(jī)獲取到的深度信息列出計(jì)算抓取點(diǎn)空間坐標(biāo)的方程,使用最小二乘法對(duì)方程進(jìn)行計(jì)算得到結(jié)果。通過此方法可避免點(diǎn)云配準(zhǔn)方案中使用昂貴的3D 掃描儀進(jìn)行物體建模的步驟,且接近達(dá)到通過點(diǎn)云配準(zhǔn)方案的精度。相較于使用深度學(xué)習(xí)模型學(xué)習(xí)物體各種姿態(tài)進(jìn)行估計(jì)的方法精度會(huì)高一些。