孫曉東,宋雷震
(淮南聯(lián)合大學(xué) 智能制造學(xué)院,安徽 淮南 232038)
對(duì)于巡檢機(jī)器人而言,因?yàn)槠涔ぷ鳝h(huán)境多為室內(nèi)、管道、工作站等較為狹小密閉的空間,障礙物較多,因而需要檢測(cè)識(shí)別障礙物,并獲取與障礙物之間的距離,以達(dá)到自主定位導(dǎo)航的目的。目前多數(shù)巡檢機(jī)器人采用雷達(dá)、超聲波傳感器、激光測(cè)距儀等來實(shí)現(xiàn)對(duì)障礙物的識(shí)別與定位,但這些方法的成本較高,智能度也不夠,因此無法滿足需求[1]。針對(duì)上述問題,提出一種基于自主定位導(dǎo)航和深度學(xué)習(xí)的視覺感知的巡檢機(jī)器人檢測(cè)方法。使用深度學(xué)習(xí)中的SSD(Single Shot MultiBox Detector)算法識(shí)別障礙物,并計(jì)算障礙物的像素高度;通過相似集合原理計(jì)算巡檢機(jī)器人與障礙物之間的距離,并向機(jī)器人發(fā)送Twist信息,以完成自主定位導(dǎo)航。研究結(jié)果表明,該方法能夠有效提高巡檢機(jī)器人對(duì)障礙物的識(shí)別與定位精度,對(duì)智能機(jī)器人的發(fā)展有一定借鑒意義[2]。
目前巡檢機(jī)器人使用較多的目標(biāo)檢測(cè)算法有YOLO算法、R-CNN算法以及SSD算法[3]。這三種算法都是基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)的深度學(xué)習(xí)算法[4]。YOLO算法對(duì)目標(biāo)物的定位精度較低,且很難檢測(cè)體積較小的物體,而SSD算法能夠直接采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè),且能夠產(chǎn)生不同大小的先驗(yàn)框以對(duì)不同大小的目標(biāo)物進(jìn)行匹配檢測(cè),克服了YOLO算法存在的缺點(diǎn)[5]。SSD算法是一種單階段目標(biāo)檢測(cè)算法,同時(shí)也是一種端到端的目標(biāo)檢測(cè)算法,因此相較于R-CNN算法,SSD算法對(duì)目標(biāo)物的檢測(cè)速度更快,檢測(cè)效率更高[6]。SSD算法框架主要由基礎(chǔ)網(wǎng)絡(luò)與附加部分組成,其中附加層是尺度逐漸減小的卷積神經(jīng)網(wǎng)絡(luò),待檢測(cè)的所有障礙物會(huì)在不同尺度的特征圖上同時(shí)接受檢測(cè),且不同層級(jí)特征圖的感受特征元素也有所不同,因而在對(duì)障礙物進(jìn)行預(yù)測(cè)時(shí),SSD算法會(huì)運(yùn)用不同層級(jí)的特征圖,并設(shè)置不同尺度的默認(rèn)框和匹配不同大小的感受野[7]。各層級(jí)默認(rèn)框的大小如公式(1)所示。
(1)
公式(1)中,Sk表示第k層特征圖對(duì)應(yīng)的默認(rèn)框大??;Smin與Smax分別表示默認(rèn)框最小和最大的尺度;m根據(jù)不同的SSD算法會(huì)有不同的值。默認(rèn)框的高度如公式(2)所示。
(2)
(3)
(4)
根據(jù)公式(4)與上述內(nèi)容可知,特征圖的任意位置都會(huì)有6個(gè)默認(rèn)框。得到特征圖以后,對(duì)其進(jìn)行卷積操作,進(jìn)而得到對(duì)目標(biāo)物的識(shí)別檢測(cè)結(jié)果[8]。檢測(cè)值部分會(huì)劃分為類別置信度與邊界框位置,且類別置信度與邊界框位置都會(huì)進(jìn)行相同次數(shù)的卷積。邊界框位置誤差與置信度位置誤差的加權(quán)和被稱為損失函數(shù),如公式(5)所示。
(5)
公式(5)中,N為SDD算法中先驗(yàn)框的正樣本數(shù)目,c是類別置信度的預(yù)測(cè)值,L為先驗(yàn)框?qū)?yīng)的邊界框的位置預(yù)測(cè)值,g為groundtruth的位置參數(shù)。根據(jù)公式(5),即可完成對(duì)目標(biāo)物的檢測(cè),并生成相應(yīng)的結(jié)果。
單目視覺測(cè)量即通過相機(jī)拍攝待測(cè)量的目標(biāo)物體,再根據(jù)拍攝的圖片對(duì)實(shí)物進(jìn)行測(cè)量的方法。在獲取巡檢機(jī)器人利用搭載相機(jī)采集的圖片后,可以根據(jù)圖片坐標(biāo)系與世界坐標(biāo)系以及相機(jī)坐標(biāo)系之間的換算關(guān)系,將圖片坐標(biāo)系轉(zhuǎn)化為世界坐標(biāo)系,從而完成圖片坐標(biāo)系與世界坐標(biāo)系之間的匹配[9]。相機(jī)成像一般有透鏡成像與小孔成像,其中原理如圖1所示。
(a)透鏡成像
根據(jù)幾何相似學(xué)理論,即可得到針孔成像模型的相機(jī)投影關(guān)系,如公式(6)所示。
(6)
根據(jù)公式(6),可推導(dǎo)出巡檢機(jī)器人掛載相機(jī)的位置與障礙物之間的水平距離,如公式(7)所示。
D=(W×F)/P
(7)
公式(7)中,D表示巡檢機(jī)器人掛載相機(jī)的位置與障礙物之間的水平距離;W表示待測(cè)障礙物的寬度;P表示障礙物在圖像中的像素寬度;F表示巡檢機(jī)器人掛載相機(jī)的焦距。根據(jù)圖像坐標(biāo)系、成像平面坐標(biāo)系、攝像機(jī)坐標(biāo)系以及世界坐標(biāo)系之間的變換關(guān)系,即可完成圖像坐標(biāo)與世界坐標(biāo)之間的相互轉(zhuǎn)換[10]。圖像坐標(biāo)與成像平面坐標(biāo)之間的關(guān)系如公式(8)所示。
(8)
攝像機(jī)的內(nèi)參矩陣如公式(9)所示。
(9)
用σ表示一個(gè)滿足相應(yīng)條件的非零度因子,并令其滿足σ=1/z,則障礙物的圖像坐標(biāo)系與世界坐標(biāo)系的轉(zhuǎn)換方式如公式(10)所示。
(10)
根據(jù)公式(10),即可將障礙物的圖像坐標(biāo)系轉(zhuǎn)換為世界坐標(biāo)系,進(jìn)而獲得障礙物到巡檢機(jī)器人搭載相機(jī)之間的距離。攝像機(jī)標(biāo)定是指根據(jù)所拍攝的圖片獲取攝像機(jī)參數(shù),并根據(jù)圖像與參數(shù)來還原物體在空間中的位置和形狀[11]。攝像機(jī)標(biāo)定能夠提高巡檢機(jī)器人對(duì)障礙物檢測(cè)定位的準(zhǔn)確度。張正友標(biāo)定法能在降低標(biāo)定難度的同時(shí),還能保證標(biāo)定的精確度[12]。因此采用張正友標(biāo)定法進(jìn)行攝像機(jī)標(biāo)定,棋盤標(biāo)定板作為標(biāo)志物,標(biāo)定板如圖2所示。
圖2 標(biāo)定板
攝像機(jī)的內(nèi)部參數(shù)可以由公式(11)來表述。
(11)
根據(jù)光心以及在圖像坐標(biāo)系中的兩個(gè)方向矢量,可得到兩個(gè)方向矢量的正交關(guān)系,如公式(12)所示。
det[H]≠0
(12)
H則可以用公式(13)表述。
(13)
公式(13)中,m是標(biāo)定點(diǎn)在圖像坐標(biāo)系中的坐標(biāo),m′是標(biāo)定點(diǎn)在標(biāo)定板上的坐標(biāo)。根據(jù)旋轉(zhuǎn)矩陣R的正交性以及公式(13),即可獲得攝像機(jī)內(nèi)部參數(shù)計(jì)算的約束條件,最終根據(jù)約束條件求得相應(yīng)的攝像機(jī)內(nèi)部參數(shù)[13]。在求出內(nèi)部參數(shù)后,將矩陣代入公式(14),即可求得外部參數(shù)。
(14)
公式(14)中,A為求得內(nèi)部參數(shù)的矩陣,λ滿足公式(15)。
(15)
求得攝像機(jī)的內(nèi)部參數(shù)和外部參數(shù)后,即完成了攝像機(jī)的標(biāo)定。單目視覺測(cè)距定位模型在測(cè)距定位過程中需要參照物[14],但在巡檢機(jī)器人實(shí)際自主定位導(dǎo)航中,實(shí)時(shí)性非常重要,參照物不容易找到,針對(duì)這一問題,提出一種空間平行平面測(cè)距模型,如圖3所示。
圖3 空間平行平面測(cè)距模型
空間平行平面測(cè)距模型只能測(cè)試相對(duì)距離,因此基于單目視覺測(cè)距定位模型提出一種地平面約束測(cè)距定位模型。地平面約束測(cè)距定位模型可以根據(jù)目標(biāo)物在圖像坐標(biāo)系中的位置,來推導(dǎo)出目標(biāo)物在世界坐標(biāo)系中的位置[15]。地平面約束測(cè)距定位模型能夠允許巡檢機(jī)器人在自主定位導(dǎo)航的過程中對(duì)目標(biāo)物進(jìn)行實(shí)時(shí)定位?;赟SD算法識(shí)別目標(biāo),地平面約束測(cè)距定位模型定位目標(biāo)物,搭建新的巡檢機(jī)器人視覺系統(tǒng),并根據(jù)系統(tǒng)對(duì)目標(biāo)物的識(shí)別與定位向機(jī)器人發(fā)送Twsist信息,以便完成避讓、跟隨等動(dòng)作,從而實(shí)現(xiàn)巡檢機(jī)器人智能、自動(dòng)的自主定位導(dǎo)航。
分別根據(jù)SSD算法、YOLO算法以及R-CNN算法構(gòu)建模型,并在相同的數(shù)據(jù)訓(xùn)練后,以相同的目標(biāo)物對(duì)三種模型的識(shí)別情況進(jìn)行測(cè)試,驗(yàn)證SSD算法的性能。識(shí)別情況如表1所示。
表1 三種算法的識(shí)別情況
在表1中容易看出,SSD算法和YOLO算法對(duì)目標(biāo)物的檢測(cè)識(shí)別比R-CNN算法快,SSD算法和R-CNN算法對(duì)目標(biāo)物的識(shí)別數(shù)量比YOLO算法多。其中,在目標(biāo)物數(shù)量為20時(shí),SSD算法檢測(cè)時(shí)間為41s,比YOLO算法少2s,比R-CNN算法少23s,三種算法的識(shí)別數(shù)量都為20;在目標(biāo)物數(shù)量為40時(shí),SSD算法檢測(cè)時(shí)間為84s,比YOLO算法少7s,比R-CNN算法少51s,SSD算法和R-CNN算法對(duì)目標(biāo)物的識(shí)別數(shù)量為40,比YOLO算法多2;在目標(biāo)物數(shù)量為60時(shí),SSD算法檢測(cè)時(shí)間為126s,比YOLO算法少12s,比R-CNN算法少87s,SSD算法對(duì)目標(biāo)物的識(shí)別數(shù)量為58,比YOLO算法多6,比R-CNN算法少1。以上結(jié)果說明,SSD算法的綜合性能比YOLO算法和R-CNN算法更加優(yōu)秀。
為了進(jìn)一步分析SSD算法的性能,分別以SSD算法、YOLO算法以及R-CNN算法構(gòu)建模型,以相同的數(shù)據(jù)訓(xùn)練模型,記錄并比較三個(gè)模型的訓(xùn)練時(shí)間和對(duì)目標(biāo)物的識(shí)別準(zhǔn)確率,結(jié)果如圖4所示。
(a)模型訓(xùn)練時(shí)間
從圖4(a)中可以得知,當(dāng)?shù)螖?shù)相同時(shí),SSD模型的訓(xùn)練時(shí)間比另外兩種模型的訓(xùn)練時(shí)間更短。在迭代次數(shù)達(dá)到500次時(shí),SSD模型需要7.8h進(jìn)行訓(xùn)練,而YOLO模型需要10.3h,比SSD模型多2.5h;R-CNN模型則需要11.5h,比SSD模型多3.7h。圖4(b)中,三種模型的最高準(zhǔn)確率均在迭代次數(shù)為600時(shí),其中SSD模型的準(zhǔn)確率為95.8%;而YOLO模型的準(zhǔn)確率為73.4%,比SSD模型低22.4%;R-CNN模型的準(zhǔn)確率則為86.1%,比SSD模型低9.7%。以上結(jié)果說明,SSD模型的收斂速度和識(shí)別準(zhǔn)確率均優(yōu)于YOLO模型和R-CNN模型,更適合應(yīng)用于巡檢機(jī)器人的視覺系統(tǒng)進(jìn)行目標(biāo)物識(shí)別檢測(cè)。
分別構(gòu)建地平面約束測(cè)距定位模型(模型A),空間平面測(cè)距模型(模型B),單目視覺測(cè)距模型(模型C),基于同樣的目標(biāo)和距離對(duì)三種模型進(jìn)行測(cè)試,記錄并比較三種模型的定位檢測(cè)結(jié)果誤差,以驗(yàn)證地平面約束測(cè)距定位模型的性能,測(cè)試結(jié)果如圖5所示。
圖5 地平面約束測(cè)距定位模型的性能分析
圖5中,地平面約束測(cè)距定位模型的最大誤差為2cm,而空間平面測(cè)距模型的最大誤差為3.9cm,比地平面約束測(cè)距定位模型大1.9cm;單目視覺測(cè)距模型的最大誤差為2.7cm,比地平面約束測(cè)距定位模型大0.7cm。在十次測(cè)量后,地平面約束測(cè)距定位模型的平均誤差為0.89cm;而空間平面測(cè)距模型的平均誤差為2.78cm,比地平面約束測(cè)距定位模型的大1.89cm;單目視距測(cè)距模型的誤差為1.92cm,比地平面約束測(cè)距定位模型的大1.03cm。以上結(jié)果說明地平面約束測(cè)距定位模型的測(cè)距精度比另外兩種模型更加優(yōu)秀。
當(dāng)前巡檢機(jī)器人的視覺系統(tǒng)對(duì)障礙物的識(shí)別精度和測(cè)距精度都比較低,針對(duì)這一問題,采用用深度學(xué)習(xí)中的SSD算法識(shí)別障礙物,基于單目測(cè)距模型構(gòu)建地平面約束測(cè)距定位模型以實(shí)現(xiàn)精準(zhǔn)測(cè)距,搭建新的巡檢機(jī)器人視覺系統(tǒng)。研究結(jié)果表明,相比YOLO算法和R-CNN算法,SSD算法綜合性能更加優(yōu)秀;迭代次數(shù)達(dá)到500次時(shí),SSD模型需要7.8h進(jìn)行訓(xùn)練,比YOLO模型快2.5h;比R-CNN模型快3.7h;迭代次數(shù)為600時(shí),SSD模型的準(zhǔn)確率為95.8%,比YOLO模型高22.4%;比R-CNN模型高9.7%;地平面約束測(cè)距定位模型平均誤差為0.89cm,比空間平面測(cè)距模型小1.89cm;比單目視覺測(cè)距模型小1.03cm。以上結(jié)果說明,基于SSD算法和地平面約束測(cè)距定位模型的新巡檢機(jī)器人視覺系統(tǒng)能夠有效地對(duì)障礙物進(jìn)行識(shí)別檢測(cè)和測(cè)距定位,從而實(shí)現(xiàn)智能化、自動(dòng)化自主定位導(dǎo)航。研究的環(huán)境是在室內(nèi),對(duì)較為復(fù)雜的室外環(huán)境未進(jìn)行研究,需要后續(xù)的進(jìn)一步研究。