趙宇琦,連曉峰,譚 勵,劉 棟
(1. 北京工商大學(xué)人工智能學(xué)院,北京 100048;2. 北京工商大學(xué)計算機(jī)學(xué)院,北京 100048)
計算機(jī)視覺是近年來人工智能領(lǐng)域的研究熱點(diǎn),在自主駕駛、智慧城市、醫(yī)療診斷等許多領(lǐng)域得到廣泛應(yīng)用。研究內(nèi)容主要包括圖像分割[1]、目標(biāo)檢測與識別[2]、動態(tài)目標(biāo)跟蹤[3]等,其中圖像特征提取算法的可靠性是保證這些后續(xù)研究的重要前提條件。自從1977年開始,現(xiàn)已提出各種特征提取算法。
表1 特征提取算法發(fā)展
由表1可知,最早提出的Harris角點(diǎn)檢測、MSER、GFTT等算法,主要是用于提取圖像中的角點(diǎn),尤其是2004年提出的SIFT算法因具有高精確度的特點(diǎn)而得到廣泛應(yīng)用,但由于其計算量過大,實際應(yīng)用中的實時性較差。隨后,研究人員著重于改進(jìn)算法效率,以更好地應(yīng)用于實際。于2006年提出的SURF算法是在SIFT算法的特征點(diǎn)檢測速度方面進(jìn)行了改進(jìn),但算法仍不盡如人意;FAST算法則是另辟蹊徑提出的新算法,其優(yōu)點(diǎn)是特征點(diǎn)檢測速度快;于2011年,Rublee Ethan將FAST特征提取與BRIEF[18]特征描述相結(jié)合,提出了ORB特征檢測算法,此算法在運(yùn)算效率上優(yōu)于SURF算法至少兩個數(shù)量級,且具有較高的精度,已被多次應(yīng)用在ORB-SLAM系統(tǒng)[19]中;BRISK、AKAZE、FREAK等算法借鑒了ORB算法的設(shè)計思路,并加以改進(jìn),分別增強(qiáng)了魯棒性與精確度;由于深度學(xué)習(xí)的算法發(fā)展,研究人員開始將其與特征點(diǎn)檢測相結(jié)合,并提出了LIFT,GCNv2等算法,受限于數(shù)據(jù)量的原因這些算法還未能應(yīng)用于實際中。原始ORB算法對比像素點(diǎn)的灰度強(qiáng)度完成特征點(diǎn)的檢測與描述,因此在縮放,旋轉(zhuǎn)和噪聲等情況下,魯棒性有所下降。但由于原始ORB算法在上述算法中兼顧了實時性與計算精度,所以在充分研究原始ORB算法的基礎(chǔ)上,結(jié)合圖像金字塔[20],灰度質(zhì)心法[21]與圖像四叉樹理論[22],提出了一種均勻抗噪自適應(yīng)的ORB圖像特征檢測算法,首先采用快速自適應(yīng)圖像金字塔結(jié)構(gòu)強(qiáng)化尺度自適應(yīng)性能,并約束特征點(diǎn)數(shù)量,提高運(yùn)算速度;其次提出三維描述子灰度質(zhì)心法將算法的描述子從一維擴(kuò)展到三維,在增強(qiáng)抗噪能力同時強(qiáng)化旋轉(zhuǎn)自適應(yīng)性能。最后采用四叉樹特征管理算法進(jìn)行優(yōu)化,減少冗余特征點(diǎn),增強(qiáng)魯棒性,提高分布均勻度。
原始ORB算法主要包括特征點(diǎn)檢測的FAST算法和特征點(diǎn)描述的BRIEF算法。
1)FAST的基本原理:設(shè)p點(diǎn)為待檢測像素點(diǎn)(灰度值記為Ip),以p點(diǎn)為圓心,選取周圍16個像素點(diǎn)(如圖1所示),根據(jù)式(1)進(jìn)行特征點(diǎn)判別:
圖1 FAST特征提取
(1)
其中In為16個像素點(diǎn)中第n個像素點(diǎn)的灰度值;t為預(yù)先設(shè)定的閾值。若連續(xù)9個Fpn為T,則認(rèn)為p是一個特征點(diǎn)。
2)BRIEF算法基本原理:設(shè)p點(diǎn)為特征點(diǎn),以p點(diǎn)為中心選取31×31像素的鄰域,隨機(jī)選取256組像素點(diǎn)對(u,v)(記點(diǎn)u和點(diǎn)v的灰度值分別為I(u)與I(v)),根據(jù)式(2)進(jìn)行特征點(diǎn)描述
(2)
BRIEF算法比較256組點(diǎn)對的灰度值,并根據(jù)τ生成256位的二進(jìn)制數(shù)作為特征點(diǎn)的描述。
改進(jìn)ORB算法對圖像進(jìn)行降采樣處理,然后進(jìn)行高斯濾波,其次進(jìn)行差分運(yùn)算,形成多尺度的圖像金字塔,然后由FAST算法進(jìn)行特征點(diǎn)檢測,并由四叉樹特征管理算法優(yōu)化特征點(diǎn),最后計算三維描述子灰度質(zhì)心法完成特征點(diǎn)提取。改進(jìn)算法如圖2所示。
針對原始ORB算法尺度自適應(yīng)性較差的問題,在此提出一種改進(jìn)的圖像金字塔結(jié)構(gòu)——FAIP算法來增強(qiáng)尺度自適應(yīng)性,并提高算法運(yùn)行效率。具體實現(xiàn)流程如圖3所示:
首先對原圖像進(jìn)行高斯濾波
圖2 算法實現(xiàn)框圖
圖3 快速自適應(yīng)圖像金字塔流程圖
(3)
其中(x0-y0)為待濾波像素點(diǎn)坐標(biāo),(x,y)為濾波半徑內(nèi)所包含的像素點(diǎn)坐標(biāo),σ為濾波系數(shù)。其次將濾波后圖像與原圖像進(jìn)行差分運(yùn)算得到差分圖像,并將差分圖像進(jìn)行歸一化處理;然后按設(shè)定的縮放比例因子SC對原圖像降采樣N次,并逐層進(jìn)行高斯濾波、差分運(yùn)算、圖像歸一化步驟,最后得到差分圖像構(gòu)成的多尺度圖像金字塔。另外,為提高運(yùn)算效率,對N個尺度圖像中可提取的特征點(diǎn)數(shù)量進(jìn)行如下條件約束
(4)
其中Li為第i層的特征點(diǎn)數(shù)量,Li-1為第i-1層的特征點(diǎn)數(shù)量,Si,Si-1分別為第i層和第i-1層的尺度。在此,引入楊氏算法[23]進(jìn)行預(yù)選特征點(diǎn)檢測,提升運(yùn)算效率:
圖4 楊氏算法示意圖
設(shè)p點(diǎn)為待檢測像素點(diǎn),檢測如圖4所示4個像素點(diǎn)位,若有相鄰兩點(diǎn)Fpn=T,則p點(diǎn)為候選特征點(diǎn),最后通過FAST算法篩選候選特征點(diǎn)中的FAST特征點(diǎn)。
針對原始ORB算法旋轉(zhuǎn)自適應(yīng)性能差,抗噪能力弱,在此提出一種三維描述子灰度質(zhì)心法——3D-DGC來解決上述問題。在以特征點(diǎn)p為中心的BRIEF圖像塊B中,建立以p點(diǎn)為原點(diǎn)的坐標(biāo)系(如圖5所示),定義圖像矩
(5)
記點(diǎn)(x,y)的灰度值為I(x,y)。然后通過所得圖像矩計算BRIEF圖像塊質(zhì)心C(如圖5白色像素點(diǎn)所示)
(6)
圖5 灰度質(zhì)心示意圖
(7)
圖6 灰度質(zhì)心示意圖((a);(b))
因像素塊灰度梯度值對噪聲具有抗性,在此加入像素塊在x軸與y軸正向方向上的灰度梯度值dx與dy作為改進(jìn)描述,并定義操作α:
圖7 四叉樹優(yōu)化方法示意圖
(8)
則三維描述子向量為:
(9)
將128組點(diǎn)對(u,v)的坐標(biāo)定義為2×256的矩陣D:
(10)
上式中x和y為點(diǎn)對(u,v)的坐標(biāo),然后以θ構(gòu)建旋轉(zhuǎn)矩陣對D旋轉(zhuǎn):
(11)
最后得到旋轉(zhuǎn)自適應(yīng)性能與抗噪能力較強(qiáng)的三維描述子灰度值心法。
針對原始ORB算法檢測特征點(diǎn)密集度高,均勻性差的問題,將FAST算法的固定閾值改進(jìn)為動態(tài)閾值,并提出四叉樹特征管理算法——QtFM改進(jìn)特征點(diǎn)均勻性。具體算法如下,首先根據(jù)I(n)與I(p)計算動態(tài)閾值:
(12)
(13)
為提升特征點(diǎn)分布均勻度,首先對圖像進(jìn)行網(wǎng)格劃分提取特征點(diǎn),設(shè)定初始網(wǎng)格邊長為a,然后根據(jù)圖像分辨率對網(wǎng)格進(jìn)行調(diào)整,計算出實際的分割行數(shù)與列數(shù)。以計算分割網(wǎng)格的寬為例,若圖像的寬為W,則實際網(wǎng)格寬ω為
(14)
其中round為對結(jié)果取整。
網(wǎng)格劃分完成后對每個網(wǎng)格中采用式(12)所得閾值檢測特征點(diǎn),若有網(wǎng)格未檢測到特征點(diǎn),則降低閾值t為原來的1/4再次進(jìn)行提取,直到所有網(wǎng)格中都有特征點(diǎn)。
然后采用四叉樹方法優(yōu)化特征點(diǎn)分布均勻度。設(shè)特征點(diǎn)分布如圖7(a)所示,四叉樹方法先將圖像均分為4個圖像塊(如圖7(b)所示),并定義為根節(jié)點(diǎn),然后統(tǒng)計每個節(jié)點(diǎn)中特征點(diǎn)的數(shù)量,若數(shù)量大于1,則向下分裂子節(jié)點(diǎn)(如圖7(c)所示),如果等于1或已分裂4次則不再分裂,若特征點(diǎn)數(shù)量為零則舍棄節(jié)點(diǎn)(如圖7(d)所示);然后在每一個特征點(diǎn)數(shù)量大于1的節(jié)點(diǎn)內(nèi)保留Harris響應(yīng)[4]最好的特征點(diǎn),如圖7(e)所示,由此得到更加均勻的特征點(diǎn)分布。四叉樹特征管理算法流程如圖8所示:
圖8 四叉樹優(yōu)化方法流程圖
3.1.1 實驗平臺
實驗基于Ubuntu18.04 LTS操作系統(tǒng)進(jìn)行,計算機(jī)CPU為i7-6700HQ,內(nèi)存為8GB,所用OpenCV[24]版本為3.4.1。
3.1.2 實驗數(shù)據(jù)
實驗采用多個不同場景進(jìn)行,共搜集了2547張圖像構(gòu)成測試數(shù)據(jù)集,包含機(jī)場、臥室、書店、辦公室、倉庫、地鐵等24種不同場景,實驗隨機(jī)選取6組進(jìn)行,并以平均值作為實驗結(jié)果。
3.2.1 特征提取均勻度對比
為了量化均勻度,采用了文獻(xiàn)[25]提出的量化方法。從豎直、水平、45°和135°等4個方向以及中心和外圍對圖像進(jìn)行區(qū)域劃分,得到10個區(qū)域;計算出落在每個區(qū)域內(nèi)的特征點(diǎn)數(shù)量,并根據(jù)這些數(shù)據(jù)計算出方差V,最后計算均勻度u
u=101log(V)
(15)
該數(shù)值越小,則不同區(qū)域內(nèi)的特征點(diǎn)數(shù)量差別越小,分布均勻度越好。實驗采用具有代表性的BRISK算法,ORB算法,SURF算法,以及文獻(xiàn)[23]所提楊氏ORB算法進(jìn)行對比
圖9 不同算法對圖片特征提取結(jié)果
其中圖9(c) 改進(jìn)ORB(Qoff)是將改進(jìn)ORB算法的四叉樹特征管理算法離線后的對比試驗。原始ORB算法與BRISK算法檢測特征點(diǎn)集中在紋理豐富的區(qū)域,針對弱紋理區(qū)域(如:地面,墻壁等)均未檢測到特征點(diǎn);楊氏ORB算法與SURF算法的均勻度優(yōu)于BRISK與原始ORB算法,但存在特征點(diǎn)密集區(qū)域;改進(jìn)ORB算法在紋理豐富區(qū)域未出現(xiàn)特征點(diǎn)密集現(xiàn)象,同時在弱紋理區(qū)域能檢測到一定數(shù)量的特征點(diǎn),有效提高了特征點(diǎn)分布均勻度。實驗結(jié)果見表2。
表2 算法均勻度
表2呈現(xiàn)了整體的實驗情況,較原始ORB算法而言對特征點(diǎn)的分布均勻度提升在10%以上。實驗結(jié)果證明,改進(jìn)ORB算法針對特征點(diǎn)分布均勻度具有較大的提升。表3為不同算法提取特征點(diǎn)所需時間的統(tǒng)計。
表3 算法效率
由表3可以看出,改進(jìn)ORB算法繼承原始ORB算法高效計算的特點(diǎn),計算效率遠(yuǎn)遠(yuǎn)高于SURF算法。其計算效率有所降低,但在可接受范圍內(nèi)。
3.3.1 特征描述自適應(yīng)性能對比
為了驗證本算法的尺度與旋轉(zhuǎn)自適應(yīng)性能,對每張圖像降采樣后旋轉(zhuǎn)90度,然后與原圖像進(jìn)行特征匹配,并使用漢明距離優(yōu)化匹配結(jié)果。結(jié)果如圖10所示。
圖10 不同算法的旋轉(zhuǎn)與尺度的適應(yīng)性
線段為特征點(diǎn)匹配線,代表匹配到的同一特征點(diǎn)的對應(yīng)關(guān)系,其中改進(jìn)ORB(P&GCoff)為將快速自適應(yīng)圖像金字塔和三維描述子灰度質(zhì)心法離線后的改進(jìn)ORB算法。從圖10可以直觀看出改進(jìn)ORB算法相較于其它算法在圖像存在旋轉(zhuǎn)與縮放時能成功匹配更多的特征點(diǎn)。
表4 算法自適應(yīng)性能
表4為各組配對特征點(diǎn)數(shù)量的均值。從表4可以更客觀的看出,改進(jìn)ORB算法擁有更好的旋轉(zhuǎn)與尺度自適應(yīng)性能。
3.3.2 特征描述抗噪能力對比
為了驗證改進(jìn)ORB算法在抗噪能力上的提升,對圖片添加高斯噪聲后提取特征點(diǎn)并進(jìn)行暴力匹配結(jié)果如圖11所示。
圖11 不同算法對噪聲的敏感度
從圖11可以看出,改進(jìn)ORB算法對噪聲的敏感度要低于其它算法,成功配對特征點(diǎn)數(shù)量明顯高于其它算法。
綜上所述改進(jìn)ORB算法在各種情況下均能保持較為優(yōu)秀的分布均勻度,同時擁有良好的旋轉(zhuǎn)與尺度自適應(yīng)性能,并具有較好的抗噪能力。
改進(jìn)ORB算法針對原始 ORB 算法特征點(diǎn)檢測密集度高、抗噪能力弱、自適應(yīng)性能差等問題,在原始ORB算法的基礎(chǔ)上采用快速自適應(yīng)圖像金字塔,三維描述子質(zhì)心法與四叉樹特征管理算法等方法進(jìn)行改進(jìn),應(yīng)用大量不同場景的數(shù)據(jù)進(jìn)行試驗驗證。實驗結(jié)果表明,改進(jìn)ORB算法提高了分布均勻度,增強(qiáng)了抗噪能力,強(qiáng)化了自適應(yīng)性能,對解決實際問題具有一定的應(yīng)用價值。