《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于改進(jìn)ORB算法的移動(dòng)機(jī)器人視覺SLAM方法研究
基于改進(jìn)ORB算法的移動(dòng)機(jī)器人視覺SLAM方法研究
2019年電子技術(shù)應(yīng)用第1期
成 怡1,2,,佟曉宇1,,2
1.天津工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,天津300387,; 2.天津工業(yè)大學(xué) 天津市電工電能新技術(shù)重點(diǎn)實(shí)驗(yàn)室,,天津300387
摘要: 以移動(dòng)機(jī)器人視覺導(dǎo)航為應(yīng)用背景,針對傳統(tǒng)ORB算法在視覺SLAM中存在特征點(diǎn)分布不均勻,、重疊特征點(diǎn)較多的問題,,提出一種改進(jìn)ORB算法。首先,,對每層圖像的尺度空間金字塔進(jìn)行網(wǎng)格劃分,,增加空間尺度信息;其次,,在特征點(diǎn)檢測時(shí),,采用改進(jìn)FAST角點(diǎn)自適應(yīng)閾值提取,設(shè)置感興趣區(qū)域,;然后,,采用非極大值抑制的方法,抑制低閾值特征點(diǎn)的輸出,;最后,,使用基于區(qū)域圖像特征點(diǎn)分布的方差數(shù)值評價(jià)待檢測圖像中特征點(diǎn)的分布情況。實(shí)驗(yàn)結(jié)果表明,,改進(jìn)ORB算法特征點(diǎn)的分布較為均勻,,輸出特征點(diǎn)重疊數(shù)量較少,執(zhí)行時(shí)間較短,。
中圖分類號: TP391.4
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.183046
中文引用格式: 成怡,,佟曉宇. 基于改進(jìn)ORB算法的移動(dòng)機(jī)器人視覺SLAM方法研究[J].電子技術(shù)應(yīng)用,2019,,45(1):10-13,,18.
英文引用格式: Cheng Yi,Tong Xiaoyu. Research on visual SLAM method of mobile robot based on improved ORB algorithm[J]. Application of Electronic Technique,2019,,45(1):10-13,,18.
Research on visual SLAM method of mobile robot based on improved ORB algorithm
Cheng Yi1,2,,Tong Xiaoyu1,,2
1.Electronic Engineering and Automation,Tianjin Polytechnic University,,Tianjin 300387,,China; 2.Key Laboratory of Advanced Electrical Engineering and Energy Technology,,Tianjin Polytechnic University,,Tianjin 300387,China
Abstract: Taking mobile robot visual navigation as the application background, an improved ORB algorithm is proposed to solve the problems of feature points unevenly distributing and too many redundant features in visual SLAM. Firstly, the scale-space pyramid of each image is meshed to increase the scale information. Secondly, feature points are detected, using improved FAST corner points adaptive extraction and setting region of interest. Thirdly, non-maximum suppression method is used to suppress the output low threshold feature points. Finally, feature points variance values based on region image is used to evaluate of distribution feature points in images. Experiments verify that the improved ORB algorithm has more uniform distribution, fewer output overlapping feature points and shorter run time.
Key words : mobile robot,;visual navigation,;visual SLAM;improved ORB algorithm

0 引言

    作為移動(dòng)機(jī)器人實(shí)現(xiàn)智能化的關(guān)鍵技術(shù),,同步定位與地圖創(chuàng)建(Simultaneous Localization And Mapping,SLAM)[1]在移動(dòng)機(jī)器人的自主導(dǎo)航,、自主控制中發(fā)揮著重要的意義,。隨著視覺傳感器[2]的發(fā)展,視覺SLAM在移動(dòng)機(jī)器人中的應(yīng)用越趨普遍,。視覺信息與慣性導(dǎo)航系統(tǒng)相結(jié)合,,可以避免移動(dòng)機(jī)器人對有源信號的依賴,更滿足于無源條件下的導(dǎo)航需求,,具有體積小,、重量輕、安裝方便等優(yōu)點(diǎn),。根據(jù)使用視覺傳感器類型的不同,,將視覺SLAM劃分為:單目(Monocular)視覺SLAM、雙目(Binocular)視覺SLAM和深度(RGB-D)視覺SLAM,。深度視覺SLAM利用深度相機(jī)記錄周圍場景的同時(shí),,能夠輸出RGB-D圖像信息(彩色圖像與深度圖像),有效地解決了單目相機(jī)沒有深度信息,、雙目相機(jī)求解深度信息計(jì)算量繁重的問題,。在RGB-D SLAM算法中,特征提取算法的選擇會(huì)影響整個(gè)系統(tǒng)的實(shí)時(shí)性,。目前,,在RGB-D SLAM算法中應(yīng)用最為廣泛的特征點(diǎn)檢測與提取算法有SIFT[3]、SURF[4]和ORB[5]3種。

    尺度不變的特征變換(Scale-invariant Feature Transform,,SIFT)是一種特征檢測與描述子提取算法,。該算法在旋轉(zhuǎn)、尺度的縮放,、光照條件的變化,、噪聲干擾等方面受到的影響較小,具有較好地穩(wěn)定性,。加速魯棒性特征(Speeded Up Robust Features,,SURF)算法是對SIFT算法的改進(jìn),其具有穩(wěn)健的局部特征點(diǎn)檢測和描述符特征,。與SIFT算法相比,,SURF算法采用了積分圖像和Harr特征使得SURF算子在速度上有了一定的提高。但上述兩種算法都要求建立高維描述符,,需要大量的內(nèi)存空間和較長的運(yùn)行時(shí)間[6],,該兩種特征點(diǎn)提取算法都不適合應(yīng)用在對系統(tǒng)實(shí)時(shí)性要求較高的RGB-D SLAM算法中。

    為滿足RGB-D SLAM算法對系統(tǒng)實(shí)時(shí)性的要求,,在此使用運(yùn)算速度較快的ORB(Oriented FAST and rotated BRIEF)算法,。該算法的運(yùn)算速度是SIFT的100倍,是SURF的10倍[7],。但是,,ORB算法存在特征點(diǎn)分布不均勻、輸出重疊特征點(diǎn)較多等問題,。因此,,本文提出一種改進(jìn)ORB算法,并且使用一種特征點(diǎn)分布均勻度的評價(jià)方法計(jì)算特征點(diǎn)的分布情況,。

1 基本原理

1.1 RGB-D SLAM算法

    RGB-D SLAM算法由前端數(shù)據(jù)處理和后端優(yōu)化處理兩部分組成,。前端數(shù)據(jù)處理主要對Kinect相機(jī)采集的彩色圖像與深度圖像進(jìn)行處理,得到相鄰兩幀圖像之間的運(yùn)動(dòng)關(guān)系,,進(jìn)而定量地估計(jì)相機(jī)的運(yùn)動(dòng)情況,,恢復(fù)三維場景的空間結(jié)構(gòu)。后端優(yōu)化處理主要對前端生成的數(shù)據(jù)結(jié)果進(jìn)行優(yōu)化,,使用濾波與非線性優(yōu)化方法,、引入回環(huán)檢測解決RGB-D SLAM過程中存在的噪聲問題,最終生成全局最優(yōu)的運(yùn)動(dòng)軌跡和三維空間環(huán)境地圖,。

1.2 ORB算法基本原理

    在ORB算法中,,特征點(diǎn)提取采用改進(jìn)FAST(oFAST)算法,特征點(diǎn)描述子采用具有旋轉(zhuǎn)不變性的BRIEF(rBRIEF)算法,。ORB算法對角點(diǎn)方向測量時(shí)使用灰度質(zhì)心法[8],。假設(shè)某角點(diǎn)的灰度與其所在的鄰域重心沒有完全重合,發(fā)生了偏移,可以通過角點(diǎn)灰度坐標(biāo)到質(zhì)心之間形成的向量計(jì)算出角點(diǎn)的主方向,。定義角點(diǎn)鄰域的(p+q)階矩,,如式(1)所示:

rgzn2-gs1-4.gif

    由式(4)可知,角點(diǎn)的方向可由角點(diǎn)與質(zhì)心的夾角表示,。I(x,,y)中的x和y的范圍控制在半徑為r的圓形區(qū)域內(nèi),提取到的角點(diǎn)具有旋轉(zhuǎn)不變性,。

    rBRIEF算法的主要思想是采用了隨機(jī)選點(diǎn)的機(jī)制,,在特征點(diǎn)的周圍選取一定數(shù)量的像素點(diǎn),比較這些像素點(diǎn)與特征點(diǎn)對應(yīng)的灰度值,。具體步驟如下:

    (1)在FAST特征點(diǎn)周圍選取31×31的鄰域窗口,,并在鄰域窗口內(nèi)隨機(jī)選擇5×5的像素塊對,比較二者像素的大小,,對其進(jìn)行二進(jìn)制賦值,,相應(yīng)圖像塊的描述子分段函數(shù)τ定義為:

    rgzn2-gs5.gif

式中,p(x)和p(y)是鄰域內(nèi)隨機(jī)點(diǎn)x(u1,,v1)和y(u2,,v2)的灰度函數(shù)。

    (2)在窗口中以特征點(diǎn)p為核心,,選取n個(gè)(xi,,yi)位置點(diǎn)對,得到n維二進(jìn)制碼串,,如式(6)所示:

    rgzn2-gs6.gif

    (3)設(shè)定特征點(diǎn)描述子的方向使其具有旋轉(zhuǎn)不變性。在(xi,,yi)位置點(diǎn)處,,對n個(gè)二進(jìn)制測試向量,設(shè)定一個(gè)2×n矩陣Q,,如式(7)所示:

rgzn2-gs7-10.gif

    (4)利用貪婪搜索算法,,找出256個(gè)點(diǎn)對使其相關(guān)性最低,得到帶有方向的特征描述子rBRIEF,。

2 改進(jìn)ORB算法

    在RGB-D SLAM算法中,,前端數(shù)據(jù)處理部分使用傳統(tǒng)ORB算法對圖像進(jìn)行特征點(diǎn)檢測與提取,會(huì)導(dǎo)致提取到的特征點(diǎn)分布不均勻,,并且還會(huì)在圖像中的某一區(qū)域出現(xiàn)特征點(diǎn)重疊的情況,。特征點(diǎn)分布不均勻以及重疊特征點(diǎn)的出現(xiàn)會(huì)影響移動(dòng)機(jī)器人運(yùn)動(dòng)狀態(tài)的估計(jì)。針對上述問題,,本文提出了一種改進(jìn)ORB算法,,改進(jìn)ORB算法的流程如圖1所示。

rgzn2-t1.gif

2.1 改進(jìn)自適應(yīng)閾值FAST角點(diǎn)提取

    首先,構(gòu)建圖像尺度金字塔,,將高斯金字塔的每一層進(jìn)行網(wǎng)格劃分,,增加空間尺度信息;其次,,在進(jìn)行FAST角點(diǎn)提取時(shí),,對圖像邊界進(jìn)行處理、設(shè)置感興趣區(qū)域[9],;然后,,使用初始閾值對特征點(diǎn)進(jìn)行提取,并對較難提取到的特征點(diǎn)所在的網(wǎng)格部分,,采用先降低閾值再檢測的方法,,同時(shí)對特征點(diǎn)為空的情況,設(shè)置最小閾值,;最后,,實(shí)現(xiàn)FAST角點(diǎn)自適應(yīng)閾值提取。改進(jìn)自適應(yīng)閾值FAST角點(diǎn)提取流程圖如圖2所示,。

rgzn2-t2.gif

    圖2中,,在構(gòu)建圖像尺度金字塔網(wǎng)格劃分時(shí)需對參數(shù)進(jìn)行初始化,設(shè)置網(wǎng)格個(gè)數(shù),,其中,,i是網(wǎng)格行數(shù),j是網(wǎng)格列數(shù),,rows和cols是金字塔分割的行,、列數(shù)。感興趣區(qū)域隨著行數(shù)i和列數(shù)j數(shù)值大小的變化而變化,。并對已在感興趣區(qū)域中提取到的特征點(diǎn)位置還原至已劃分的網(wǎng)格區(qū)域中,。

2.2 引入非極大值抑制的方法剔除重疊點(diǎn)

    非極大值抑制算法(Non-Maximum Suppression,NMS)[10]的本質(zhì)是在圖像中對需要檢測的目標(biāo)搜索局部極大值,,并抑制非極大值元素,。當(dāng)出現(xiàn)多個(gè)候選結(jié)果時(shí),根據(jù)設(shè)定的目標(biāo)條件對其進(jìn)行篩選并選擇最優(yōu)的效果,。本文在對特征點(diǎn)輸出時(shí),,為防止重疊特征點(diǎn)的出現(xiàn),選用非極大值抑制的方法,。以圖像建立的尺度空間金字塔頂層為基準(zhǔn),,選取在每層金字塔上都出現(xiàn)的特征點(diǎn)pi,pi∈P,,P={p1,,p2,,…,pi}作為已有特征點(diǎn),。對候選特征點(diǎn)qj(非每層均出現(xiàn)),,qj∈Q,Q={q1,,q2,,…,qj}進(jìn)行非極大值抑制剔除,,防止特征點(diǎn)的重疊輸出,。該剔除重疊特征點(diǎn)的方法步驟如下:

    (1)在特征點(diǎn)輸出時(shí),計(jì)算圖像中現(xiàn)有的候選特征點(diǎn)qj所在的某網(wǎng)格區(qū)域與已有特征點(diǎn)pi坐標(biāo)之間的距離,。設(shè)定距離的臨界閾值為l,,候選特征點(diǎn)所在的坐標(biāo)和Harris角點(diǎn)響應(yīng)閾值為qj={xj,yj,,εj},;

    (2)求解出候選特征點(diǎn)qj={xj,yj,,εj}與特征點(diǎn)P={p1,,p2,…,,pi}之間的坐標(biāo)距離,,篩選出距離不大于l的候選特征點(diǎn)qj={xj,yj,,εj},;

    (3)計(jì)算按照步驟(2)求出的距離值不超過l的候選特征點(diǎn)qj={xj,yj,,εj}的Harris角點(diǎn)響應(yīng)閾值εj,,根據(jù)候選特征點(diǎn)響應(yīng)閾值的激烈程度(即εj數(shù)值大小)將這些候選特征點(diǎn)進(jìn)行從大到小排序;

    (4)根據(jù)非極大值抑制算法的原理,,將Harris角點(diǎn)響應(yīng)閾值εj極大值所在的候選特征點(diǎn)qj={xj,yj,,εj}保留下來,,得到特征點(diǎn)所處最佳位置的鄰近特征點(diǎn)。并將低閾值的鄰近候選特征點(diǎn)剔除,,減少重疊特征點(diǎn)的輸出,。

2.3 圖像特征點(diǎn)分布均勻性評價(jià)方法

    圖像特征點(diǎn)分布均勻性評價(jià)用來判斷圖像中特征點(diǎn)分布是否均勻。如果圖像中不同分割區(qū)域內(nèi)特征點(diǎn)的數(shù)目相等或者接近,,說明圖像中的特征點(diǎn)分布較為均勻,;反之,,特征點(diǎn)分布不均勻。鑒于上述評價(jià)方法,,本文在計(jì)算特征點(diǎn)分布情況時(shí)首先對待檢測的圖像進(jìn)行區(qū)域劃分,,如圖3所示;接著,,統(tǒng)計(jì)每個(gè)區(qū)域內(nèi)的特征點(diǎn)數(shù)量,;然后,計(jì)算特征點(diǎn)區(qū)域統(tǒng)計(jì)分布的方差數(shù)值,;最后,,根據(jù)方差數(shù)值的大小判斷圖像特征點(diǎn)分布的均勻情況。從特征點(diǎn)方差數(shù)值的大小關(guān)系可以看出,,方差數(shù)值越大,,代表特征點(diǎn)數(shù)量的波動(dòng)越大,間接地反映特征點(diǎn)分布不均勻,。

rgzn2-t3.gif

3 實(shí)驗(yàn)結(jié)果與分析

    本實(shí)驗(yàn)基于實(shí)驗(yàn)室自主研發(fā)的輪式移動(dòng)機(jī)器人開展,,如圖4所示。其配有Kinect1.0深度攝像機(jī),,系統(tǒng)操作環(huán)境是一臺(tái)配置為i3處理器,、內(nèi)存為4.0 GB的電腦,運(yùn)行環(huán)境為Ubuntu14.04的32位indigo的開源機(jī)器人操作系統(tǒng)(Robot Operating System,,ROS)[11],。采集實(shí)驗(yàn)室場景的圖像信息,并對該場景實(shí)現(xiàn)移動(dòng)機(jī)器人的同步定位與地圖創(chuàng)建,。

rgzn2-t4.gif

3.1 圖像特征點(diǎn)提取實(shí)驗(yàn)

    輪式移動(dòng)機(jī)器人采集的實(shí)驗(yàn)室數(shù)據(jù)集包含彩色圖像與深度圖像,,均為640×480的png格式。其中,,深度圖像的位深度為16 bit,,彩色圖像的位深度為24 bit。為使實(shí)驗(yàn)操作簡潔方便,,適合PCL可視化工具數(shù)據(jù)的讀取,,兩種圖片的像素坐標(biāo)均已通過OpenNI[12]處理,實(shí)現(xiàn)一一對應(yīng)的坐標(biāo)關(guān)系,。使用傳統(tǒng)ORB算法和改進(jìn)ORB算法對同一張圖像進(jìn)行特征點(diǎn)提取,。實(shí)驗(yàn)結(jié)果如圖5所示。

rgzn2-t5.gif

    從圖5可以看出,,傳統(tǒng)ORB算法輸出的特征點(diǎn)提取效果分布情況較為密集,,改進(jìn)ORB算法的特征點(diǎn)提取效果分布情況較為均勻。為了量化傳統(tǒng)ORB算法與改進(jìn)ORB算法圖像特征點(diǎn)分布的均勻情況,,引入文中提出的圖像特征點(diǎn)分布均勻性評價(jià)方法計(jì)算特征點(diǎn)在圖像中的分布情況,,如表1所示,。

rgzn2-b1.gif

    從表1中可以看出,當(dāng)特征點(diǎn)期望數(shù)值相同時(shí),,改進(jìn)ORB算法提取到特征點(diǎn)的方差數(shù)值比傳統(tǒng)ORB算法提取到特征點(diǎn)的方差數(shù)值小,。并且,隨著特征點(diǎn)期望數(shù)值的增加,,相同圖像特征點(diǎn)數(shù)量的方差數(shù)值也在增加,,即特征點(diǎn)在圖像中分布的均勻度降低。由于方差數(shù)值越大,,表示圖像中特征點(diǎn)分布的波動(dòng)越大,,即圖像特征點(diǎn)分布的均勻情況較差,因此,,該實(shí)驗(yàn)結(jié)果顯示,,改進(jìn)ORB算法提取到的圖像特征點(diǎn)分布的均勻情況較好。

3.2 重疊特征點(diǎn)的剔除

    傳統(tǒng)ORB算法在特征點(diǎn)進(jìn)行輸出時(shí),,輸出的特征點(diǎn)會(huì)在圖像中出現(xiàn)重疊現(xiàn)象,。改進(jìn)ORB算法在特征點(diǎn)輸出時(shí),采取非極大值抑制的算法對其進(jìn)行處理,,減少重疊特征點(diǎn)的輸出,。待檢測的圖像是否采用非極大值抑制算法進(jìn)行重疊特征點(diǎn)剔除的實(shí)驗(yàn)結(jié)果如圖6所示。

rgzn2-t6.gif

    圖6(a)是傳統(tǒng)ORB算法未使用非極大值抑制對輸出特征點(diǎn)進(jìn)行處理的整張圖像的視覺效果,,圖6(b)是改進(jìn)ORB算法使用非極大值抑制對輸出特征點(diǎn)進(jìn)行處理的整張圖像的視覺效果,。選擇圖像中的某一區(qū)域進(jìn)行放大對比,可以看出改進(jìn)ORB算法的重疊特征點(diǎn)的數(shù)量明顯減少,,有效地抑制低閾值特征點(diǎn)的輸出,。

3.3 算法實(shí)時(shí)性分析

    由于RGB-D SLAM算法對實(shí)時(shí)性的要求較為嚴(yán)格,對比改進(jìn)ORB算法與傳統(tǒng)ORB算法在特征點(diǎn)提取與匹配消耗的時(shí)間,,比較結(jié)果如表2所示,。

rgzn2-b2.gif

    從表2中可以看出,ORB算法的實(shí)時(shí)性與特征點(diǎn)期望的數(shù)值有著緊密的聯(lián)系,,即特征點(diǎn)期望的數(shù)值越大,,特征點(diǎn)提取與匹配消耗的時(shí)間就越長;當(dāng)特征點(diǎn)期望的數(shù)量相同時(shí),,同一張圖像改進(jìn)ORB算法比傳統(tǒng)ORB算法消耗的時(shí)間少,。實(shí)驗(yàn)結(jié)果表明,改進(jìn)ORB算法可以更好地應(yīng)用在RGB-D SLAM算法中,。

4 結(jié)論

    本文在傳統(tǒng)ORB算法的基礎(chǔ)上,,針對其存在特征點(diǎn)分布不均勻,、重疊特征點(diǎn)較多的問題,,提出一種改進(jìn)ORB算法,,并將該算法應(yīng)用在移動(dòng)機(jī)器人視覺導(dǎo)航中的RGB-D SLAM算法中。使用實(shí)驗(yàn)室自主研發(fā)的輪式移動(dòng)機(jī)器人分別從圖像特征點(diǎn)分布的均勻情況,、特征點(diǎn)輸出的重疊情況以及特征點(diǎn)提取與匹配消耗的時(shí)間情況三個(gè)方面比較傳統(tǒng)ORB算法與改進(jìn)ORB算法,。實(shí)驗(yàn)結(jié)果表明,改進(jìn)ORB算法特征點(diǎn)的分布較為均勻,、輸出特征點(diǎn)重疊數(shù)量較少,、執(zhí)行時(shí)間較短,可以更好地應(yīng)用在RGB-D SLAM算法中,。

參考文獻(xiàn)

[1] KHAIRUDDIN A R,,TALIB M S,HARON H.Review on simultaneous localization and mapping(SLAM)[C].IEEE International Conference on Control System,,Computing and Engineering.IEEE,,2016:85-90.

[2] 黨宏社,候金良,,強(qiáng)華,,等.基于視覺引導(dǎo)的SCARA機(jī)器人自動(dòng)裝配系統(tǒng)[J].電子技術(shù)應(yīng)用,2017,,43(5):21-24.

[3] LOWE D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,,2004,60(2):91-110.

[4] BAY H,,ESS A,,TUYTELAARS T,et al.Speeded-up robust features(SURF)[J].Computer Vision & Image Understanding,,2008,,110(3):346-359.

[5] RUBLEE E,RABAUD V,,KONOLIGE K,,et al.ORB:an efficient alternative to SIFT or SURF[C].International Conference on Computer Vision.IEEE,2012:2564-2571.

[6] 劉宏偉,,余輝亮,,梁艷陽.ORB特征四叉樹均勻分布算法[J].自動(dòng)化儀表,2018,,39(5):52-54,,59.

[7] 毛星云.OpenCV3編程入門[M].北京:電子工業(yè)出版社,2015.

[8] XU J,,CHANG H W,,YANG S,et al.Fast feature-based video stabilization without accumulative global motion estimation[J].IEEE Transactions on Consumer Electronics,,2012,,58(3):993-999.

[9] PRIVITERA C M,,STARK L W.Algorithms for defining visual regions-of-interest: comparison with eye fixations[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2000,,22(9):970-982.

[10] HOSANG J,,BENENSON R,SCHIELE B.A convnet for non-maximum suppression[M].Pattern Recognition.Springer International Publishing,,2016:192-204.

[11] KEI O.ROS(robot operating system)[J].Journal of the Robotics Society of Japan,,2012,30(9):830-835.

[12] 宋艷.基于圖像特征的RGB-D視覺SLAM算法[D].青島:中國海洋大學(xué),,2015.



作者信息:

成  怡1,,2,佟曉宇1,,2

(1.天津工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,,天津300387;

2.天津工業(yè)大學(xué) 天津市電工電能新技術(shù)重點(diǎn)實(shí)驗(yàn)室,,天津300387)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。