王玉茜,張雪濤,閆 飛,莊 嚴(yán),
(1.大連理工大學(xué)控制科學(xué)與工程學(xué)院,大連 116024;2.大連理工大學(xué)人工智能學(xué)院,大連 116024)
近年來,隨著人類在人工智能、地圖構(gòu)建、圖像處理等領(lǐng)域取得突破性的科技進(jìn)展,無人機(jī)和地面機(jī)器人也得到了迅速發(fā)展,二者各有利弊。一方面,無人機(jī)具有較廣的觀察視角,但其有效載荷低、續(xù)航時(shí)間有限;另一方面,地面機(jī)器人的視角受限制,但其有效載荷高、續(xù)航時(shí)間長[1]。如果利用無人機(jī)進(jìn)行環(huán)境探索,從而引導(dǎo)地面機(jī)器人更快地完成作業(yè)任務(wù),即空地協(xié)作,吸引了諸多學(xué)者研究[2-6]。文獻(xiàn)[7]提出了一種基于鳥瞰圖導(dǎo)航地面機(jī)器人的概念證明。文獻(xiàn)[8]利用無人機(jī)空中建圖,進(jìn)而驅(qū)動(dòng)地面機(jī)器人進(jìn)行避障和路徑規(guī)劃??盏貐f(xié)作可以拓寬地面機(jī)器人的有限視場[9-10],可以用于虛擬現(xiàn)實(shí)[11]、多機(jī)器人監(jiān)控[12-13]、協(xié)同作戰(zhàn)[14]。而如何利用無人機(jī)對(duì)地面環(huán)境建圖是空地協(xié)作領(lǐng)域發(fā)展的一個(gè)關(guān)鍵問題。
本文目標(biāo)是使用無人機(jī)生成可供地面機(jī)器人使用的室外大范圍拓?fù)涞貓D。為此,本文提出了一種基于道路分割、圖像拼接和骨架提取的大范圍拓?fù)涞貓D構(gòu)建方法,其中,圖像拼接技術(shù)可實(shí)現(xiàn)室外大范圍場景的獲取,道路分割和骨架提取可實(shí)現(xiàn)拓?fù)涞貓D的構(gòu)建。
為實(shí)現(xiàn)拓?fù)浠貓D的構(gòu)建,首先需要無人機(jī)對(duì)地面道路的準(zhǔn)確觀測,即對(duì)場景中的道路進(jìn)行準(zhǔn)確分割。在道路分割領(lǐng)域,基于航拍圖像的道路檢測技術(shù)的應(yīng)用范圍越來越廣,道路識(shí)別也得到廣泛研究。文獻(xiàn)[15]基于視覺對(duì)車道線和道路邊界進(jìn)行檢測,同時(shí)運(yùn)用基于蒙特卡羅方法的置信度評(píng)價(jià)方法對(duì)待測圖像進(jìn)行處理。該算法能夠有效地克服道路環(huán)境不佳的影響,并且計(jì)算耗時(shí)較小。然而,該算法僅適用于與環(huán)境背景特征相差較大的道路目標(biāo)檢測,很難適用于背景環(huán)境復(fù)雜的無人機(jī)航拍圖像。文獻(xiàn)[16]提出了基于啟發(fā)式搜索連接的航拍圖像直線檢測方法,首先對(duì)圖像進(jìn)行高斯濾波和邊緣檢測,然后利用啟發(fā)式搜索連接,提取出符合道路直線模型的直線,最終獲得檢測結(jié)果。該算法實(shí)現(xiàn)簡單并具有良好的抗噪性能。文獻(xiàn)[17]提出了基于霍夫變換的航拍圖像道路檢測,霍夫直線檢測作為直線提取的經(jīng)典算法,廣泛應(yīng)用于直線檢測領(lǐng)域。文獻(xiàn)[18]針對(duì)道路顏色與周圍環(huán)境顏色存在明顯區(qū)別的情況,提出了基于顏色識(shí)別的道路檢測,但航拍圖像受屋頂、樹木陰影、車輛等影響較大,不適合應(yīng)用此方法。隨著深度學(xué)習(xí)的發(fā)展,出現(xiàn)了多種基于神經(jīng)網(wǎng)絡(luò)[19-20]的航拍圖像道路提取方法,主要分為兩類:一類追求圖像分割的準(zhǔn)確性,犧牲了時(shí)間;另一類則以快速為主,降低了準(zhǔn)確性。為了兼顧時(shí)間與準(zhǔn)確性,本文采用時(shí)間與準(zhǔn)確性均衡的D-LinkNet 語義分割神經(jīng)網(wǎng)絡(luò)[21]。
其次,通過圖像拼接實(shí)現(xiàn)大范圍場景的獲取,在圖像拼接領(lǐng)域,Szeliski 提出了包含相機(jī)三維旋轉(zhuǎn)運(yùn)動(dòng)的圖像拼接技術(shù),該方法首先求解透視矩陣,然后求解單應(yīng)性矩陣的參數(shù),調(diào)整焦距和旋轉(zhuǎn)矩陣以消除累積誤差,最后采用加權(quán)融合的方法將拼接圖像合成到一起。Brown 等[22-23]使用基于不變局部特征的物體識(shí)別技術(shù)來選擇匹配圖像,實(shí)現(xiàn)了無序圖像的全自動(dòng)拼接,取得了較好的拼接效果。然而,當(dāng)圖像數(shù)目較多時(shí),邊緣圖像會(huì)發(fā)生畸變。為了解決這個(gè)缺陷,Gao 等[24]將場景劃分為背景平面和前景平面,用兩個(gè)單應(yīng)性矩陣分別對(duì)齊背景和前景,進(jìn)而無縫拼接大部分現(xiàn)實(shí)場景。隨后,文獻(xiàn)[25]采用網(wǎng)格優(yōu)化的方法來解決圖像拼接問題,從形狀矯正的角度出發(fā),借鑒圖像縮放的Shape-Preserving 類方法,非重疊區(qū)域逐漸過渡到全局相似變換,并對(duì)整個(gè)圖像 增加相似變換約束,矯正拼接圖像的畸變,減小了投影失真。Lowe[26-27]提出了尺度不變特征變換(Scale-Invariant Feature Transform, SIFT)算法,其具有尺度不變性,可在圖像中檢測出關(guān)鍵點(diǎn),對(duì)于光線、噪聲、微視角改變的容忍度也相當(dāng)高,但SIFT 算法計(jì)算量大,匹配速度較慢。因此,Bay 等[28]提出了快速魯棒特征(Speeded Up Robust Features, SURF)算法,它是SIFT 算法的加速版,其性能可與SIFT 相媲美,且比SIFT 快三倍。SURF 善于處理模糊和旋轉(zhuǎn)的圖像,但不擅長處理視點(diǎn)變化和照明變化。為解決SIFT 特征的高昂計(jì)算代價(jià)以及對(duì)噪聲敏感的弱點(diǎn),Rublee 等[29]提出了特征提取算法(Oriented FAST and Rotated BRIEF,ORB),該算法基于FAST 和BRIEF 特征提出了二值特征,大大減少了計(jì)算量,提高了匹配速度,實(shí)驗(yàn)表明,ORB 算法在時(shí)間上比SIFT 快100 倍,比SURF 快10 倍,并且匹配效果也較好。在道路分割后進(jìn)行圖像拼接,可減少拼接時(shí)提取特征點(diǎn)的數(shù)量,大大減少了匹配拼接的計(jì)算量。除此之外,為了進(jìn)一步提高匹配速度,本文設(shè)計(jì)了基于GPU 加速的ORB 圖像拼接算法,可以兼顧實(shí)時(shí)性與準(zhǔn)確性。
最后,關(guān)于地圖構(gòu)建,目前的地圖表示方法分為三類:柵格地圖、幾何地圖和拓?fù)涞貓D[30]。其中,拓?fù)涞貓D將環(huán)境表示為一張拓?fù)湟饬x的圖,圖中的節(jié)點(diǎn)對(duì)應(yīng)環(huán)境中的拐點(diǎn)或交叉點(diǎn),弧表示不同節(jié)點(diǎn)之間的通道,適合于表示大規(guī)模環(huán)境。為完成拓?fù)涞貓D的構(gòu)建,需要對(duì)道路分割后的大范圍場景進(jìn)行骨架提取。一類方法是通過對(duì)所有道路線段求交來建立道路拓?fù)?,但是在確定道路是否相交時(shí)難以選擇閾值。與此不同,用骨架表示目標(biāo)圖像的連接拓?fù)浜瓦吔缧畔?,在機(jī)器人領(lǐng)域有著廣泛的應(yīng)用。圖像骨架提取,即提取目標(biāo)在圖像上的中心像素輪廓,以目標(biāo)中心為準(zhǔn),對(duì)目標(biāo)進(jìn)行細(xì)化,細(xì)化后的目標(biāo)為單像素寬度。中軸線是一個(gè)典型的骨架模型,其具有簡單、完整等優(yōu)點(diǎn)。在此基礎(chǔ)上,研究人員提出了一系列基于細(xì)化的骨架提取算法,其大致可分為迭代和非迭代兩大類。在迭代算法中,又分為并行迭代和順序迭代兩種。Saeed 等[31]提出的K3M 算法則是順序迭代中應(yīng)用廣泛的方法之一,該類算法的思想是,假定從二值圖像中物體的邊界處同時(shí)開始燃燒,物體就會(huì)被逐步細(xì)化,但在燃燒過程中要保證滿足一定條件的點(diǎn)被保留或者被“燒掉”,以確定燃燒結(jié)束后,剩下最后一個(gè)像素寬度的圖像為圖像的骨架。該方法存在像素冗余問題,得到的骨架出現(xiàn)分叉、不平滑現(xiàn)象。并行迭代以Zhang并行快速細(xì)化算法最為經(jīng)典,該算法多應(yīng)用于文字骨架的提取,在連接性和輪廓噪聲抗擾度方面效果較好。本文使用骨架提取的方法進(jìn)行拓?fù)浠?,將Zhang 并行快速細(xì)化算法應(yīng)用于拓?fù)涞貓D的構(gòu)建。
為了實(shí)現(xiàn)室外大范圍拓?fù)涞貓D構(gòu)建,本文提出了基于道路識(shí)別、圖像拼接、骨架提取集成的拓?fù)涞貓D構(gòu)建框架。具體而言,先由圖像拼接實(shí)現(xiàn)大范圍場景獲取,然后通過道路識(shí)別和骨架提取實(shí)現(xiàn)拓?fù)涞貓D構(gòu)建。由于所提策略先分割后拼接,實(shí)現(xiàn)了方法的實(shí)時(shí)性。此外,設(shè)計(jì)了基于GPU加速的ORB 圖像拼接算法,提高了拼接效率。
本文的整體設(shè)計(jì)方案可分為三部分:道路分割、圖像拼接、拓?fù)錁?gòu)建,采用邊分割邊拼接、先分割后拼接的方案,前者可減少同時(shí)參與拼接的圖像數(shù)目,增加拼接準(zhǔn)確性,后者可減少拼接時(shí)特征點(diǎn)檢測與匹配的計(jì)算量,增加拼接速度,流程圖如圖1 所示。
圖1 整體方案流程圖Fig.1 Flow chart of the general scheme
道路系統(tǒng)是一個(gè)非常復(fù)雜的系統(tǒng),其主要特點(diǎn)是連接特性和寬度特征,傳統(tǒng)的道路檢測的方法包括基于啟發(fā)式搜索連接的直線檢測方法[15]、基于霍夫變換的直線檢測[16]、基于顏色分割的道路檢測[17]等。但是航拍圖像中的道路極易受到非道路因素的干擾,如陰影、車輛、與道路連通的開放區(qū)域(如小型停車場、籃球場)等,這些干擾不可避免,且將直接影響道路的連接特性和寬度特征。為了提高道路分割的準(zhǔn)確性,選用D-LinkNet 語義分割神經(jīng)網(wǎng)絡(luò)對(duì)道路進(jìn)行分割。D-LinkNet 網(wǎng)絡(luò)包含編碼器、中心部分、解碼器三部分,組成結(jié)構(gòu)如圖2 所示。
D-LinkNet 使用ResNet34 作為網(wǎng)絡(luò)的編碼器,編碼模塊由最大池化層和若干殘差塊組成,四個(gè)編碼模塊依次分別具有3、4、6、3 個(gè)殘差塊。單個(gè)殘差塊如圖3 所示,在普通卷積的基礎(chǔ)上增加恒等映射,可以有效解決隨著卷積神經(jīng)網(wǎng)絡(luò)深度的增加而出現(xiàn)的訓(xùn)練誤差增大的問題。激活函數(shù)選用非線性函數(shù)ReLU,殘差塊輸出可表示為
圖2 D-LinkNet 結(jié)構(gòu)圖Fig.2 Structure chart of D-LinkNet
圖3 單個(gè)殘差塊Fig.3 Single residual block
當(dāng)輸入、輸出維度發(fā)生變化時(shí),需要在恒等映射過程中對(duì)x做線性變換Ws,相當(dāng)于加入了1×1 卷積層,如下:
在深度網(wǎng)絡(luò)中為了增加感受野且降低計(jì)算量,通常會(huì)進(jìn)行降采樣,這樣雖然可以增加感受野,但會(huì)使得空間分辨率降低,而空洞卷積的出現(xiàn),巧妙地解決了這一問題。空洞卷積是一種功能強(qiáng)大的內(nèi)核,可用于調(diào)整特征圖的感受野而不降低特征圖的分辨率,使得整個(gè)網(wǎng)絡(luò)識(shí)別能力更強(qiáng)、接收域更大、融合多尺度信息,廣泛應(yīng)用于圖像分割、識(shí)別任務(wù)中。中心層部分由空洞卷積層組成,空洞卷積如圖4 所示。
圖4 膨脹系數(shù)r = 2 的空洞卷積Fig.4 Dilated convolution with r = 2
假設(shè)空洞卷積的卷積核大小為k,膨脹系數(shù)為r,則其等效卷積核k′為
當(dāng)前層感受野Ri計(jì)算公式如下:
其中,Ri-1表示上一層感受野,Si-1表示之前所有層步長之積。
D-LinkNet 中心部分的空洞卷積層結(jié)合級(jí)聯(lián)模式和并行模式,可以靈活調(diào)整特征圖的感受野,且每個(gè)路徑的感受野不同,可以有效地融合多尺度特征。其結(jié)構(gòu)如圖5 所示,當(dāng)堆疊的空洞卷積層膨脹系數(shù)r分別為1、2、4、8 時(shí),每層的感受野一次為3、7、15、31。
圖5 中心部分結(jié)構(gòu)圖Fig.5 Diagram of central part
道路分割是一個(gè)二分類問題,訓(xùn)練模型時(shí),損失函數(shù)采用Dice 損失和二值交叉熵?fù)p失結(jié)合的方式。Dice 損失大多用于樣本極度不均衡的情況,一般情況下使用Dice 損失會(huì)對(duì)反向傳播有不利的影響,使得訓(xùn)練不穩(wěn)定,因此,選用二值交叉熵?fù)p失函數(shù)與Dice 損失相結(jié)合的方式進(jìn)行損失計(jì)算。
其中,yi表示樣本i真實(shí)標(biāo)簽類別,pi表示樣本i預(yù)測輸出類別。
D-LinkNet 是一種高效的語義分段神經(jīng)網(wǎng)絡(luò),它具有跳接、殘差塊、空洞卷積和編碼器-解碼器體系結(jié)構(gòu)的優(yōu)勢,在計(jì)算和存儲(chǔ)方面非常有效。
無人機(jī)航拍受飛行高度、攝像頭視角范圍、焦距等因素的影響,單張圖像涵蓋的室外場景范圍較小,為獲得室外大范圍圖像,需要拍攝多幅圖像,通過圖像拼接技術(shù),把各幅圖像間重疊的部分進(jìn)行提取、匹配、拼接,從而得到大范圍室外場景。圖像拼接算法結(jié)構(gòu)如圖6 所示,主要包含圖像特征點(diǎn)提取與匹配、圖像配準(zhǔn)、圖像融合三部分,其中,特征點(diǎn)提取與匹配、圖像配準(zhǔn)兩步實(shí)現(xiàn)了基于GPU 的CUDA 并行加速處理。
圖6 圖像拼接算法結(jié)構(gòu)圖Fig.6 Diagram of image stitching algorithm
ORB 是一種快速特征點(diǎn)提取和描述的算法,分為兩部分,分別是特征點(diǎn)提取和特征點(diǎn)描述。特征點(diǎn)提取是由FAST 算法發(fā)展來的,特征點(diǎn)描述是根據(jù)BRIEF 特征描述算法改進(jìn)的。ORB 特征是將FAST 特征點(diǎn)的檢測方法與BRIEF 特征描述子結(jié)合起來,并在它們?cè)瓉淼幕A(chǔ)上做了改進(jìn)與優(yōu)化。
圖像的特征點(diǎn)可以理解為圖像中比較顯著的點(diǎn),如物體輪廓點(diǎn)、亮度變化分界點(diǎn)等。ORB 首先采用FAST 算法來檢測特征點(diǎn),F(xiàn)AST 算法是公認(rèn)的最快的特征點(diǎn)提取方法。選取圖像中某一像素為特征點(diǎn),檢測該候選特征點(diǎn)周圍一圈的像素值,如果候選點(diǎn)周圍領(lǐng)域內(nèi)有足夠多的像素點(diǎn)與該候選點(diǎn)的灰度值差別夠大,則認(rèn)為該候選點(diǎn)為一個(gè)特征點(diǎn)。在使用FAST 提取出特征點(diǎn)之后,給其定義一個(gè)特征點(diǎn)方向,以此來實(shí)現(xiàn)特征點(diǎn)的旋轉(zhuǎn)不變性,稱為oFAST 算法,ORB 算法提出使用矩法來確定FAST 特征點(diǎn)的方向。即通過矩來計(jì)算某特征點(diǎn)周圍的圖像區(qū)塊p內(nèi)的質(zhì)心,該特征點(diǎn)坐標(biāo)到質(zhì)心形成一個(gè)向量作為該特征點(diǎn)的方向。對(duì)圖像求質(zhì)心時(shí),每個(gè)像素點(diǎn)的值即該處的密度,利用圖像零階矩和一階矩可求得圖像質(zhì)心,矩定義如下:
其中,(u,v)是特征鄰域內(nèi)的點(diǎn),I(u,v)為圖像灰度表達(dá)式。該矩的質(zhì)心為
假設(shè)特征點(diǎn)坐標(biāo)為O,則向量即為該特征點(diǎn)的方向:
得到特征點(diǎn)后需要以某種方式描述這些特征點(diǎn)的屬性。這些屬性的輸出稱為該特征點(diǎn)的描述子。ORB 采用BRIEF 算法來計(jì)算一個(gè)特征點(diǎn)的描述子。該算法的核心思想是在某特征點(diǎn)周圍的圖像區(qū)塊p內(nèi),選取n對(duì)點(diǎn)對(duì),把這n對(duì)點(diǎn)對(duì)的比較結(jié)果組合起來作為描述子。因此,BRIEF 描述子的輸出結(jié)果是一個(gè)二進(jìn)制串的特征描述符。一個(gè)二值測試τ定義如下:
其中,像素x與像素y組成一對(duì)點(diǎn)對(duì),p(x)、p(y)分別表示圖像區(qū)塊p內(nèi)像素x和像素y的灰度值。
BRIEF 描述子選取點(diǎn)對(duì)的時(shí)候,是以當(dāng)前特征點(diǎn)為原點(diǎn),以水平方向?yàn)閄軸,以垂直方向?yàn)閅軸建立坐標(biāo)系。當(dāng)圖片發(fā)生旋轉(zhuǎn)時(shí),坐標(biāo)系不變,同樣的取點(diǎn)方法取出來的點(diǎn)卻不一樣,計(jì)算得到的描述子也不一樣,所以BRIEF 描述子不具備旋轉(zhuǎn)不變性。ORB 算法對(duì)BRIEF 描述子的這一缺點(diǎn)進(jìn)行了改進(jìn),改進(jìn)后的方法改變了坐標(biāo)系的建立方式,以特征點(diǎn)為圓心,以特征點(diǎn)和選取區(qū)域質(zhì)心的連線為X軸建立平面坐標(biāo)系,即利用oFAST 中求出的特征點(diǎn)的主方向θ,對(duì)特征點(diǎn)鄰域進(jìn)行旋轉(zhuǎn),改進(jìn)后的算法稱為Steer BREIF 算法。假設(shè)在某一特征點(diǎn)的鄰域內(nèi)選取n對(duì)點(diǎn)集,用S表示,則
其中,Rθ表示旋轉(zhuǎn)矩陣,Sθ表示旋轉(zhuǎn)后的點(diǎn)對(duì)位置。
BRIEF 描述子的一個(gè)優(yōu)秀特性為點(diǎn)對(duì)均值穩(wěn)定,方差大,區(qū)分性強(qiáng),那么不同特征點(diǎn)的描述子就表現(xiàn)出的差異性越大,對(duì)匹配來說不容易誤配。但是當(dāng) BRIEF 沿著特征點(diǎn)的方向調(diào)整為Steered BRIEF 時(shí),均值就漂移到一個(gè)更加分散式的模式,且方差變小,區(qū)分性降低,此時(shí)選取點(diǎn)對(duì)時(shí)就不能隨機(jī)選取,需要經(jīng)過比較選取出區(qū)分度大、關(guān)聯(lián)程度低的點(diǎn)對(duì)。ORB 算法的最后一步為特征點(diǎn)的匹配,當(dāng)兩個(gè)描述子的相似度達(dá)到一定閾值時(shí),可認(rèn)為這兩個(gè)描述子代表的是同一個(gè)特征點(diǎn)。
圖像配準(zhǔn)是一種確定待拼接圖像間的重疊區(qū)域以及重疊位置的技術(shù),通過匹配點(diǎn)對(duì)構(gòu)建圖像序列之間的變換矩陣,將兩張圖像轉(zhuǎn)換為同一坐標(biāo)下,RANSAC 算法對(duì)于圖像變換矩陣的求解與精煉有較好的效果。RANSAC 算法首先隨機(jī)地選擇兩個(gè)點(diǎn),通過這兩個(gè)點(diǎn)確定一條直線,并稱在這條直線的一定范圍內(nèi)的點(diǎn)為這條直線的支撐。這樣的隨機(jī)選擇重復(fù)數(shù)次后,具有最大支撐集的直線被確認(rèn)為是樣本點(diǎn)集的擬合。
在特征點(diǎn)提取與匹配和圖像配準(zhǔn)過程中,提取大量特征點(diǎn),并完成大量描述子計(jì)算與匹配的數(shù)學(xué)計(jì)算,是圖像拼接程序耗時(shí)長、效率低的主要原因。由于顯卡具有優(yōu)秀的并行計(jì)算能力,為有效提高拼接效率,本文充分利用顯卡進(jìn)行并行加速計(jì)算,大大提高了算法的運(yùn)行速度。
根據(jù)配準(zhǔn)時(shí)得到的變換矩陣,可以對(duì)相應(yīng)圖像進(jìn)行變換以確定圖像間的重疊區(qū)域,并將待融合圖像映射到一幅新的空白圖像中形成拼接圖。若兩幅待拼接圖像之間亮度、飽和度存在差異,則會(huì)導(dǎo)致拼接后的圖像縫合線兩端出現(xiàn)明顯的明暗變化,此時(shí),可采用加權(quán)平滑算法處理,即圖像重疊區(qū)域中像素點(diǎn)的灰度值由兩幅圖像中對(duì)應(yīng)點(diǎn)的灰度值加權(quán)平均得到。
其中,Pixel_L和Pixel_R分別為兩幅待拼接圖像中對(duì)應(yīng)點(diǎn)的灰度值,k為加權(quán)系數(shù)。
拓?fù)涞貓D由邊和節(jié)點(diǎn)構(gòu)成,用來表示道路的連通關(guān)系,使用骨架提取算法實(shí)現(xiàn)拓?fù)浠瑯?gòu)建出道路的拓?fù)涞貓D。骨架可理解為物體的中軸,骨架提取流程圖如圖7 所示。
圖7 骨架提取流程圖Fig.7 Flow chart of skeleton extraction
骨架提取主要包括以下步驟:首先,圖像細(xì)化。細(xì)化就是經(jīng)過層層剝離,從原圖像中去掉一些點(diǎn),但仍要保持原來的形狀,直到得到圖像的骨架。其次,過濾。過濾使得任意兩骨架點(diǎn)不能緊靠在一起,兩點(diǎn)之間至少間隔一個(gè)空白元素。最后,檢測端點(diǎn)和交叉點(diǎn)。端點(diǎn)和交叉點(diǎn)即拓?fù)涞貓D中的節(jié)點(diǎn),骨架即邊。
選用經(jīng)典的Zhang 并行快速細(xì)化算法,將輸入圖像二值化后選取其中某一像素點(diǎn)P1及其周圍相鄰8 個(gè)像素點(diǎn),按圖8 所示順序標(biāo)號(hào)。
圖8 像素排列示意圖Fig.8 A schematic view of the pixel arrangement
對(duì)圖像中的每個(gè)點(diǎn)進(jìn)行遍歷,對(duì)每個(gè)像素為1 的點(diǎn)進(jìn)行檢測,若符合以下條件1、2,且符合條件3、4 之一,則非骨架點(diǎn),刪除該點(diǎn)。
條件1:2≤N(P1) ≤ 6,其中N(P1)為P1的8個(gè)鄰域中黑色像素的數(shù)目。
條件2:A(P1) = 1,其中A(P1)指的是鄰域像素按順序排列時(shí)像素值由0 變1 的次數(shù)。
條件3:P2×P4×P6= 0且P4×P6×P8= 0或者P2×P4×P8= 0且P2×P6×P8= 0。
條件4:P2×P4×P8= 0且P2×P6×P8= 0。
過濾部分實(shí)現(xiàn)每兩個(gè)白點(diǎn)之間不能緊靠在一起,即兩個(gè)點(diǎn)之間至少隔一個(gè)空白像素,若滿足P2+P3+P8+P9≥ 1,則刪除P1。檢測端點(diǎn)與交叉點(diǎn)部分首先需要確定卷積鄰域范圍,然后統(tǒng)計(jì)卷積范圍內(nèi)像素為1 的點(diǎn)的個(gè)數(shù),若個(gè)數(shù)高于給定閾值,則說明P1為交叉點(diǎn),反之則為端點(diǎn)。圖9為圖像中部分像素排列情況。
圖9 部分像素排列情況Fig.9 Arrangement of partial pixel
為證明本文方案的有效性,在馬薩諸塞州道路數(shù)據(jù)集上進(jìn)行驗(yàn)證。首先,使用圖像標(biāo)注工具labelme 對(duì)數(shù)據(jù)集中道路部分進(jìn)行標(biāo)記,制作出用于訓(xùn)練及驗(yàn)證的數(shù)據(jù)集,并完成對(duì)D-LinkNet 網(wǎng)絡(luò)的訓(xùn)練。所作數(shù)據(jù)集共5300 幅圖像,其中80%用于訓(xùn)練,20%用于測試,該部分基于NVIDIA GTX1080 顯卡配置下完成。其次,創(chuàng)建一個(gè)用于發(fā)送圖像的ROS 節(jié)點(diǎn),而后進(jìn)行道路分割,每完成一幅圖像的分割,便由ROS 節(jié)點(diǎn)發(fā)出該分割后的圖像,直至處理完全部圖像。圖10 給出了兩種不同場景下32 幅圖像的道路分割結(jié)果,單幅圖像程序運(yùn)行時(shí)間約0.17 s,分割準(zhǔn)確率達(dá)92.89%,具有較高的準(zhǔn)確率與場景適應(yīng)性。
圖10 道路分割結(jié)果Fig.10 Result of the road segmentation
在圖像拼接部分,首先創(chuàng)建一個(gè)新的ROS 節(jié)點(diǎn),用于接收道路分割后發(fā)送的圖像,當(dāng)圖像數(shù)量達(dá)到兩幅即進(jìn)行拼接,直到節(jié)點(diǎn)接收不到新的圖像消息。
圖像拼接采用基于GPU 的CUDA 并行加速方法,CUDA 處理圖像的時(shí)候,首先需要把Mat圖像上載到CUDA 數(shù)據(jù)單元GpuMat 對(duì)象中,然后對(duì)特征點(diǎn)提取及圖像配準(zhǔn)進(jìn)行并行處理,處理完成之后,再從GpuMat 下載數(shù)據(jù)到原始Mat 對(duì)象中,完成后續(xù)圖像融合操作。
本文比較了SURF 拼接算法、ORB 拼接算法以及GPU 加速后的ORB 算法的拼接耗時(shí),各圖像拼接算法運(yùn)行時(shí)間對(duì)比如表1 所示。
表1 三種拼接算法時(shí)間對(duì)比Table 1 Time comparison of three stitching algorithms
其中,SURF 拼接算法選取特征點(diǎn)的條件與ORB 算法不同,其提取的特征點(diǎn)個(gè)數(shù)遠(yuǎn)大于ORB算法,因此SURF 算法在三種算法的比較中效率最低、耗時(shí)最長,ORB 算法效率居中,經(jīng)GPU并行加速后的ORB 算法效率更高、耗時(shí)更短。
四種不同場景下的圖像拼接與道路拓?fù)浠Y(jié)果如圖11~12 所示,由此可見,本文方法在多種不同場景中具有較好的適應(yīng)性與準(zhǔn)確性。
圖11 圖像拼接結(jié)果Fig.11 Result of the image stitching
本文針對(duì)空地協(xié)作領(lǐng)域無人機(jī)室外道路觀測問題,提出了由道路分割、圖像拼接、骨架提取組成的基于視覺的無人機(jī)大范圍室外道路拓?fù)涞貓D的構(gòu)建方法。首先,成功地將基于D-LinkNet的航拍圖像道路分割和Zhang 并行快速細(xì)化算法 用于室外大范圍拓?fù)涞貓D構(gòu)建問題;其次,提出先分割后拼接的方案,大大減少了圖像拼接計(jì)算量,設(shè)計(jì)了基于GPU 加速的ORB 拼接算法,提高了拼接效率;最后,在INRIA aerial image 數(shù)據(jù)集上成功驗(yàn)證了該方法的準(zhǔn)確性和實(shí)時(shí)性。
圖12 道路拓?fù)浠Y(jié)果Fig.12 Result of the road topology