陳奕州,韋春桃*
(1. 重慶交通大學重慶智慧城市學院,重慶 400014)
路是人類活動中的關鍵基礎設施之一,無論是在日常生活中的駕車導航,還是在地學研究中作為關鍵地物數據,均需要準確完善的數字化道路成果作為數據支撐。而衛星遙感影像因其可視范圍廣、重訪周期短,能夠快速獲取大范圍區域的信息,因此常通過遙感影像的解譯獲取區域內的道路信息。
隨著計算機視覺技術和深度學習技術的快速發展,遙感也從人工解譯逐步走向了智能解譯。因此在遙感影像提取道路方面,也經歷了從手工勾畫道路,到采取機器學習或深度學習的方法自動獲取道路。但由于建筑物陰影或樹木遮擋等原因,自動獲取的道路數據通常存在或多或少的不連續,即一條道路被分成了若干段,稱為道路斷線。在模型層面,Zhou[1]等提出可以通過顧及圖譜表征道路上下文信息的潛在能力,通過構建一個分層可分離卷積圖神經網絡提高被遮擋的道路提取精度;Mei[2]等根據相鄰像素之間的關系提出了一種連接性的注意模塊,該模塊通過利用成對相鄰像素之間的依賴關系并結合圖形信息來提高道路的連通性,而更加通用的做法則是通過后處理的方法對模型提取的道路斷線進行修復。關于道路斷線的修復方法主要分為三類,即人工修復、半自動修復和全自動修復。本文主要探討全自動修復,潘勵[3]等提出了一種基于概率松弛法的道路拐點自動連接算法,通過考慮周圍點的影響來過濾不符合常理的連接現象,提高了圖像連接的可靠性,主要應用于多岔路口的斷線修復;于艷超[4]等直接采用遍歷最小距離點進行連接的方式,主要針對于CAD數據轉為Shapefile時候的斷線問題;陽春花[5]等通過位置相關性選擇出備選道路,然后根據光譜、形狀、位置等關系選擇最終道路,該方法主要在模板道路識別后進行連接。上述3 種方法都對應著特定的情況,而對于機器學習或深度學習方法所得的結果,王超[6-7]等提出的修復方法更加通用,即首先尋找道路斷點,然后根據道路斷點的坐標進行k-means聚類[8],最后將聚類得到的符合要求的點兩兩之間進行三次曲線擬合。該方法得到的結果相比原始結果具有一定優勢。但僅使用斷點的坐標值進行聚類,其效果與尋找距離最近的2 點相似,使用中仍然存在以下問題:
1)易將被另一條道路分開的道路斷點或平行道路斷點聚為一類從而進行錯誤連接,如圖1a與1b所示。

圖1 易錯誤匹配或無法匹配的道路情況
2)多個斷點距離較近,容易被聚類算法視為同一類別,此時連接方法無法正常工作,如1c所示。
3)當僅有2個斷點時,距離較遠的2個斷點會被分為兩類而無法進行連接,如圖1d所示。
針對上述情況,對斷點匹配的方法進行了改進,通過在斷點位置的基礎上引入了斷線指向、斷點區域光譜以及斷點所在聯通區是否孤立等作為道路斷點的附加特性,同時在兩兩斷點對中引入指向角度差、光譜相似度等點間特征,根據加權綜合得分和條件限制的方法替代k-means 聚類來得到匹配的斷點對。最后自動計算道路寬度后進行3 次擬合修復道路斷線,能夠有效解決上述情況無法修復或錯誤修改的問題。
道路斷線修復可分為3 個部分,一是查找疑似道路斷線的端點,即道路斷點;二是篩選和匹配所有的道路斷點,找到連接性最好的一對道路斷點;三是遍歷匹配好的道路斷點進行連接修復斷線。其流程如圖2所示。

圖2 道路斷線修復流程圖
道路斷點的查找方法較為成熟,可以通過結合骨架法[9]和八領域檢測算法[10-12]進行查找。首先通過骨架法對道路進行細化,提取道路中線,在保留其連通性和結構的基礎上簡化形狀;再以道路骨架為基礎,使用八領域檢測算法對骨架圖中的像素點進行分類。類別包括孤立點、斷點以及道路內部點/交叉點3類,其具體方法為如下。
記當前點為B1,1,獲取當前點周圍的8 個像素點,記為Bi,j(i=0,1,2;j=0,1,2;i≠j≠1),有:
1)當僅中心像素有值時,即僅有B1,1≠0,則中心點為孤立點,如圖3a所示。

圖3 八領域檢測算法結果
2)當除中心像素外,八領域內有其他任意一個像素有值時,則表示中心點為斷點,如圖3b所示,其中B1,2≠0。
3)當除中心像素外,八領域內有大于等于2個像素有值時,則表示中心點為道路內部點或道路交叉點,如圖3c 和3d 所示,其中有B1,j≠0(j=0,2)以及額外的Bi,1≠0(i=0,2)。
需要注意的是,在進行道路骨架提取前,通常需要設定一個聯通區面積閾值Tarea用于去除小的聯通區域,此處設置為Tarea=64。通過過濾小聯通區可以避免因為分割結果中的噪聲提取出錯誤的斷點參與計算和匹配,從而減少計算量和提高結果精度。
1.2.1 點內特征提取
在文獻[6] 中,使用k-means 聚類的斷點特征僅有其在圖像上的像素坐標位置,因此聚類的結果可以視為對點間距離閾值的判定,而忽視了其他特征。因此在像素坐標的基礎上,增加了道路斷線的指向、斷點區域光譜和斷線所在聯通區是否孤立3 個特征來提高算法的普適性。
其中道路斷線的指向是避免同向斷線錯誤連接的關鍵,可以通過八領域算法向后回溯得到。其具體方法為:
1)記當前斷點為B0,完成狀態為Flag=0,在B0處進行八領域搜索,找到一個非零的像素點,該點位置即為道路斷點的上一位置,記做B1。
2)移動八領域窗口到Bi(i=1,2,3,…),如果找到2 個有值的像素點,則其中一個為下一位置Bi-1,另一個為上一位置Bi+1。保留Bi+1作為下一步移動的位置;如果找到3個及以上的非零像素點,則Bi為分叉路的交點或道路內部點,此時無法繼續向上回溯,設置完成狀態Flag=1。
3)若Flag=0,則可以繼續回溯,重復2)步驟n次后停止;若Flag=1,則完成查找,跳出2)步驟。記找到的坐標點的總數為m。
4)對m個點的坐標進行直線擬合,方向由Bm-1指向B0,則得到該斷點B0沿道路斷線指向的方向。
當n=4 時的指向結果的查找示意如圖4所示。

圖4 n=4 時道路斷點指向示意圖
其中關于n大小的確定可通過實驗對比確認。過大的n值會導致過于平滑方向,而過小的n值則可能會使道路斷線指向受到端點形狀對骨架法簡化的影響。通過實驗后發現取n=5 可以取得較好的效果。
影像光譜的相似可以表示出2 個區域的相似性,而特征相似的2 個區域通常在圖中距離較近且關系密切,因此可以用于提高道路斷點匹配的準確性。道路斷點區域的光譜以該斷點坐標為中點,以d為邊長,構建矩形,通過該矩形的范圍裁剪原始遙感影像從而得到斷點處周圍的影像光譜信息,其中默認d=49。
而最后的聯通區是否孤立的特征可以用于離體道路與主體道路的連接關系修復。由于一條道路必定與其他某條道路相連,因此孤立的道路則需要考慮修復其連通性。而道路斷線所在聯通區是否孤立則可通過以下方式進行判別:
1)對原始道路提取結果進行聯通區劃分,找到所有與圖像邊緣相接的聯通區,記為Si,新建與結果等大的空圖像qimg,將Si對應的區域賦值為1。
2)通過斷點的坐標反查qimg中對應像素的值,若值為1,則表明該斷點在主要道路聯通區中;反之則表示該斷點所在的道路斷線沒有與主要道路聯通區相連,為孤立道路。
1.2.2 點間特征組合
當得到每個斷點的特征后,需要將兩兩斷點之間組成點對,并通過計算點對的特征判斷點對是否匹配。有關點對間的特征有距離、指向角度差和光譜相似度,可通過下列方法計算得到:
首先是兩斷點之間距離。當兩斷點的距離越小,兩斷點是匹配斷點的可能性越大。記2 個斷點分別為A和B,則兩點之間的距離可用公式(1)進行計算。
其次是2 條道路斷線的指向角度差。當指向角度差等于180°,則表明2 條斷線互相指向對方斷線的內部方向,相連可能性最大;而當指向角度差等于0°,則表明2 條斷線指向同一方向,相連可能最低。兩斷線之間的指向角度差指標可用公式(2)計算,其中sgn 表示符號函數,而angAB越趨近1 表示2 條斷線的指向角度差越接近180°。
最后是2 個斷點的區域光譜相似度。當2 個斷點周圍的光譜相似性高時,則表明2 個斷點處于同一種環境中,則匹配概率較大。通過從訓練數據集中截取固定大小的道路區域圖像塊,使用自監督對比學習網絡SimCLR[13]訓練了一個判斷相似性的網絡,將2個斷點的區域影像對輸入網絡,從而得到2 個圖像的光譜相似程度,即下列公式(3)所示。其中f表示訓練好的SimCLR模型。
1.2.3 斷點匹配
最后的匹配則是根據上述3 條點間特征綜合得分進行篩選,對所有點對的點間特征按公式(4)進行線性歸一化,然后根據公式(5)計算結果,所得的scoreAB值在0 到1 之間。其中a、b和c為權重系數,此處分別取值為2、2和1。
同時在距離和指向角度差上進行限制,具體規則如下:
1) 設定分數閾值Tscore,對于任意scoreAB>Tscore的點對AB加入備選點對,此處Tscore=0.5。
2) 設定距離閾值Tdis,對備選點對中任意disAB>Tdis的點對AB進行排除,此處Tdis=256。
3)設定角度差閾值Tang,對備選點對中任意angAB 4)若點對AB間的連線與另一條道路相交,則對該點對進行排除。 對找到的所有匹配斷點對,按1.2.1中尋找道路斷線指向的方法向后回溯t次,每次步長為s,則可找到包括2 個斷點在內的2(t+1) 個點,此處取值為t=1,s=max(1,dis/4)。按照公式(6)對上述點進行3 次擬合,得到擬合函數g(x)。并在上述點范圍內密集采樣,使用g(x)計算擬合結果,并將所有結果點進行連接,得到修復完成的道路結果。 式中,ki(i=1,2,3)為多項式系數;b為偏置。 而對于孤立的聯通區,若該區域的所有斷點都未能匹配到其他位于主要聯通區上的斷點,則循環該聯通區所有斷點向其斷線指向方向查找最近的交點。并在所有的交點中找到距離最低的交點進行連接。 修復繪制中的道路寬度問題,按斷點在與其對應的斷線指向的垂直方法的直線與原始道路邊緣的2 個交點之間的距離計算,若為點對間的道路寬度,則將2個結果進行平均取值。 以文獻[6] 中示例的Massachusetts Roads 數據集[14]圖像為例,執行完成上述全部算法后,得到的結果及其處理的中間過程可視化如圖5所示。其中Massachusetts Roads 數據集包含馬薩諸塞州1171 張航拍影像,每張影像的長寬均為1500 像素,道路掩碼來自對OpenStreetMap 的道路中心線柵格化生成,并擴展為7像素線寬。 圖5 可視化結果 圖5d為該圖像斷點位置、斷線指向、區域光譜和聯通區情況可視化。圖上T表示該斷點所在的聯通區與圖像邊界相接,反之F表示該斷點所在的聯通區為孤立聯通區。后方所接的數字為該聯通區內共有斷點的個數。 為了定量評估道路斷線修復結果的效果,使用PP-LiteSeg網絡[15]在DeepGlobe Road數據集[16]上進行了道路提取的訓練,該數據集的訓練集包含803 個遙感圖像,圖像長寬均為1024 像素,包含了來自全球不同地區的道路圖像,該數據集提供了精確標注的道路掩碼。通過將預測結果與經過k-means 聚類修復后和經過本文方法修復后的結果進行對比,分別在查準率P,查全率R和平衡F分數F1-Score上進行計算。其中上述評價指標的表達式如下公式(7-9)所示。 式中,TP為正樣本被正確識別的數量;FP為誤報的負樣本數量;FN為漏報的正樣本數量。 數據、標簽及最終結果如圖6所示。 圖6 道路斷線修復結果對比 由圖6 可知,對于第一行數據,當斷點間的位置分布有明顯聚類中點時,K-means 可以比較好的匹配效果。而第二行數據中斷點僅有2 個且距離較遠,因此在聚類中被分為了2 個類別從而無法修復;而指向和光譜的協同克服了距離的阻礙,使得本文方法可以對該類型的道路斷線進行修復。最后在第3 行的數據中,左下方的區域內點數較多,聚類時聚為一類,因此對于該區域的斷點匹配無法提供指導;而同樣基于有指向性的匹配可以較好地發現需要連接的斷點;左上方由于2 點距離較近,因此容易聚類為一類,而相互的指向也趨近相反,容易識別為一對斷點從而進行錯誤的連接修復。但由于本文方法還限制了2 點間的連線不能切割任意其他道路路線,因為能夠正確的避免此類情況。 在40張圖像的測試基準中,3種情況的定量統計結果如下表1所示。 表1 指標統計表/(%) 由表1 所示,由于斷線連接的方法不可避免地都會出現錯誤連接,且修復部分不是按照真實影像上的道路提取要素而是生成的,因此檢測的準確度有所下降。但查全率上升明顯,表明最終的道路提取結果的漏檢情況減少。且從F1-Score來看,綜合查準率和查全率的結果均優于模型直接預測的結果,表明了修復后處理的有效性。而本文方法由于使用了更多的斷點特征及點間特征來匹配斷點,相比僅依靠距離進行聚類的方法能夠有效減少錯誤連接,但由于未像K-means 聚類一樣對斷點間的距離進行限制,一些錯誤的連接造成了較高的FP,因此在查準率上可能反而有所下降;而正確連接和修復的結果又較多,因此在查全率上取得了較好結果。綜合F1-Score來看,本文方法相比直接預測和K-means聚類修復的結果能夠在道路的斷線修復中起到更好的效果。 深度學習在計算機視覺領域的興起使得遙感影像的智能解譯也進入了快速發展,但由于遙感影像相比自然圖像更加復雜,因此僅使用神經網絡對遙感影像進行處理還達不到應用標準。針對在遙感道路檢測中因為陰影等原因存在的道路斷線問題,提出了一種綜合多種道路斷線端點特征和點間特征的道路斷線修復方法,通過綜合道路斷線的指向、位置以及光譜等信息匹配近似的另一條斷線,并使用三次曲線擬合的方法進行等寬度修復。通過實驗,該方法將原始結果的F1-Score 提高了1.27%,達到了77.04%。表明該方法具有一定的有效性和魯棒性,并對其他線性地物的斷裂修復有一定參考價值。但當圖上斷點數量急劇增加時,該方法的運算時間也會增加較多。因此后續需要優化計算性能,以及將更多情況的道路斷線納入考慮,進一步提高算法的實用性和泛化能力。1.3 斷線修復

2 實驗結果與分析


3 結語