晏雄鋒,艾廷華,楊 敏,鄭建濱
1. 同濟大學測繪與地理信息學院,上海 200092; 2. 武漢大學資源與環境科學學院,湖北 武漢 430079
空間認知旨在理解和闡釋人們在空間信息認識活動中如何獲取、組織、利用、修改和表達信息[1-2],是認知科學的重要研究領域。空間認知能夠幫助人們建立對地理空間事物或現象的空間概念,包括位置方位、形狀尺寸、景觀格局、時空變化及相互關系等[3],并形成認知地圖、指導空間行為[4]。空間認知研究通常從兩個角度展開:①認知主體特征,即人對事物的認知行為或規律,例如Gestalt原則揭示了人們從視覺上認知事物時會自然而然地先追求結構的整體性或守形性趨勢,再逐漸認識局部細節內容[5-6]。②認知客體特征,即地理空間要素自身所具有的特性,包括幾何特征、結構特征和分布模式等,通過人腦的認知演繹,推導出地理事物現象的高層次特征規律。
形狀是地理空間要素最直接的特征之一,其精細地表達了要素的幾何特征和空間分布,是人們建立空間概念的重要依據。地圖空間中不同組織方式的對象,其形狀表示與識別方法也有差別。針對遙感影像等柵格對象,形狀通過對像元或光柵單元的集成化處理獲得,如記錄邊界軌跡的鏈式編碼或剖分單元的屬性統計值[7]。針對點云等三維對象,形狀通過手工設計提取特征(如法向量、曲率、上下文信息)或深度表征學習獲得[8]。針對平面矢量對象,形狀是指邊界點所構成的結構模式,包括區域和邊界兩種表示方法[9]:區域表示是基于整體的指標,如緊湊度、凹度[10-11];邊界表示是以字符串或函數來近似擬合形狀邊界,如形狀上下文[12]、傅里葉算子[13]和轉角函數[14]等。現有研究在形狀度量解釋和優化方面具有成效,但在多特征使用和集成上還不完善,且缺乏對形狀認知的合理性解釋。
近年來,以深度學習為代表的人工智能技術快速發展為空間形狀認知提供了理論方法支持的可能:①大數據時代豐富的空間數據資源提供了學習的素材,包括多級尺度、現勢性完好、覆蓋完整的基礎地理信息數據庫產品[15]。②啟發于空間關聯性[16]和地理學第一定律[17]等理論,空間形狀認知過程中往往會顧及相鄰點串、轉角或弧段等局部特征,最終得到整體結構上的認知結果;而深度學習對這類局部視覺特征具有強而有力的表征能力,例如卷積神經網絡,即通過小尺寸卷積核和權值共享等技術實現局部特征保持[18]。③深度學習對形狀特征具有一定偏好性[19],即優先根據形狀判別對象,而不是顏色或質地。基于上述基礎,深度學習已在地理要素特征描述和認知方面取得了初步成果。例如文獻[20]針對柵格形狀提出了形狀識別的卷積自監督學習;文獻[21]針對一維軌跡數據提出了基于深度學習的相似性度量方法;文獻[22]則關注空間對象的群組特征,提出了圖卷積神經網絡的識別方法。
建筑物是地理空間的重要組成要素,具有直角轉折、軸線對稱等明顯的形狀特征,且針對建筑物的綜合化簡[23]、變化發現[24]、數據更新[25]、質量評價[26]等任務都是以不同形式的形狀識別和認知為基礎。本文以二維平面矢量建筑物形狀認知為研究案例,借助深度學習的特征挖掘能力,提取其形狀表示,為空間認知的機理和形式化提供支撐。考慮到基于邊界的矢量建筑物形狀表達具有冗余度低、表示精確、信息密度高等優點,本文首先以形狀邊界為基礎,將建筑物形狀轉換為序列數據,并提取其描述特征;然后利用sequence-to-sequence(Seq2seq)自編碼學習模型,對無標簽的建筑物形狀數據進行非監督學習訓練,獲得編碼能力。其中,Seq2seq是谷歌提出用于實現機器翻譯的模型[27],其輸入輸出分別為不同語言的文本序列,因其支持變長的輸入輸出序列而被廣泛用于處理文本、語音、視頻等具有序列特征的數據。本文中,將利用Seq2seq自編碼模型對輸入數據進行非線性變換編碼,再重構為原始輸入,實現對建筑物形狀的特征編碼和知識發現。
本文以深度學習技術為核心,通過獲得合理的形狀編碼,實現對形狀的認知表達目的。整體框架包括4部分:數據預處理、特征提取、形狀自編碼學習和形狀表達與認知,如圖1所示。

圖1 基于深度學習的建筑物形狀編碼整體框架Fig.1 Framework of building shape coding using deep auto-encoder learning
數據預處理是將二維建筑物形狀以序列表示,特征提取過程即為序列點提取多維尺度特征;隨后通過深度自編碼器得到該建筑物的形狀編碼,形成編碼庫;最后基于該編碼庫,可得到形狀相似度,并應用于形狀檢索和匹配等場景。
預處理采取兩個步驟:①標準化,包括平移、縮放和旋轉;②序列化,包括化簡、插值。標準化處理目的是消除建筑物位置、尺寸、方向等因素對形狀認知帶來的干擾,其中平移操作將建筑物中心點移動至坐標原點,縮放操作將全部建筑物調整為面積一致,旋轉操作以最小外接矩形長邊方向作為參考。序列化處理目的是從可能存在表達精度差異的矢量建筑物數據中得到點分布較為均衡的序列,其中化簡操作采用極小參量的Douglas算法以消除輕微抖動和冗余數據點,插值操作采用等距離插值以保證建筑物形狀序列點數一致。預處理后按順時針方向將形狀邊界轉換為滿足Seq2seq輸入要求的序列。
幾何形狀特征提取應考慮局部差異性、全局整體性、上下文相關性等方面,往往具有認知上的不確定性。本文以三角形結構[28]和三角形質心距離[29]等形狀表達方式為基礎,參考本領域對形狀的定性定量分析并結合建筑物的特點,確立邊界上點的描述特征,包括局部結構特征和區域結構特征,如圖2所示。

圖2 建筑物形狀序列的多尺度特征Fig.2 Illustration of the multi-scale features of building shape sequence
1.3.1 局部結構特征

此外,形狀描述特征應當滿足平移、縮放、旋轉不變性。局部結構特征是按相對位置提取的,不會因形狀平移和旋轉而變化;而形狀縮放時,三角形面積和弦長特征也隨之變化,因此需要對其進行標準化。面積特征取其與建筑物面積S的比值、弦長特征取其與面積S算術平方根的比值,即
(1)
(2)
1.3.2 區域結構特征

(3)
(4)
(5)
考慮M個領域尺寸,那么每一個形狀序列點i都可提取7×M維度的特征pi,即

k∈{1,…,M}
(6)
整個形狀序列的特征維度為N×7M,N為序列點數。這些特征蘊含了邊界上下文信息,如轉角和曲率信息。同時,結合邊界點與區域中心提取特征,也符合Gestalt原則對整體和局部的認知過程。
本文利用深度自編碼學習思想構建形狀編碼模型,從邊界序列點的描述特征學習建筑物形狀的編碼特征。模型包括編碼器(encoder)和解碼器(decoder)兩部分,分別用兩個神經網絡實現。二者功能相反,編碼器負責將輸入的序列特征編碼為一組向量,而解碼器負責從該向量重構出原始序列特征,重構結果越接近,則該編碼向量信息損失就越少。
經典的神經網絡沒有考慮輸入序列的順序,特征之間互相獨立,并不適用于處理形狀邊界序列特征,因此本文使用循環神經網絡作為自編碼器中的基本網絡結構,即Seq2seq模型。此外,在形狀邊界序列中間隔很遠的點也可能在二維空間中距離接近,存在視覺聯系,經典的循環神經網絡不能很好地解決這種長期依賴問題,因此本文采用的是長短期記憶網絡(long short-term memory,LSTM)[30]。模型如圖3所示。

圖3 Seq2seq自編碼器模型架構Fig.3 Architecture of seq2seq auto-encoder model
1.4.1 編碼器
編碼器為一個LSTM網絡,其接受輸入為表示單個形狀的N×7M維度矩陣。設置隱藏層神經元數量為zsize,即形狀編碼維度。循環中每個時間步的計算為
[hi;ci]=fe(pi,hi-1,ci-1)
(7)
式中,hi和ci為LSTM單元的輸出值和狀態值;pi表示輸入;fe(·)表示編碼器中的每個時間步單元計算。形狀編碼z為最后一個時間步單元的輸出值,即z=hN。
1.4.2 解碼器
解碼器為一個LSTM網絡和一個全連接層的組合,其接受輸入為N×(zsize+7M)維度矩陣。為了保持與編碼器狀態值維度相同,隱藏層神經元數量也設置為zsize。LSTM的輸出添加一個線性全連接層,將序列輸出的維度約束為輸入樣本的維度,實現序列重構。計算過程為
[Hi;Ci]=fd([pi;z],Hi-1,Ci-1)
(8)
(9)

1.4.3 自編碼學習

(10)
同時使用“teacher forcing”方式進行解碼器訓練,即解碼器的每個輸入不采用上一時間步的輸出,而直接使用訓練數據中對應位置的值,可以加快模型的收斂速度。
Seq2seq自編碼模型將建筑物形狀變換為特征空間內的一組編碼。基于該編碼,可采用歐氏距離、余弦相似度等方式度量形狀之間的相似性。考慮到形狀的復雜性和多樣性,同一形狀不同起點構成的特征序列,其編碼有所差異。對此,本文按下列方式計算相似度。

(11)
本文開展了系列試驗討論和分析模型的有效性,包括模型訓練、形狀編碼可視化及形狀相似度分析。
試驗建筑物數據從OpenStreetMap獲取,并按10個標準形狀挑選,包括T形、U形等。挑選數據時,盡可能考慮不同地理特征下的建筑物結構,以保證建筑物形狀的多樣性。
Seq2seq自編碼模型的訓練過程并不需要標注信息,但為了評價和分析形狀編碼結果,所選形狀數據由3個志愿者手工分類并標注為相應類別。每個類別包括約150個形狀,每個形狀作為一個訓練樣本,共1500個樣本。表1展示了10個標準形狀及其訓練形狀示例。

表1 訓練樣本中10類形狀示例
根據相關模型的訓練經驗和初步嘗試的試驗效果,本文選擇tanh激活函數,采用RMSProp優化器,學習率設為0.001,序列點數設為64。訓練時,模型結構中的形狀編碼維度zsize和數據預處理中的鄰域尺寸k可能對性能存在影響,下面通過試驗來具體分析。
分別設置8、16、32、64、128共5種編碼維度,{1}、{2}、{4}、{8}、{2,4}、{2,4,8}、{4,8}、{1,2,4,8}共8種尺度組合,訓練結果如圖4所示。可以看出,損失曲線收斂情況都較為一致,即開始階段急速收斂,中間逐漸放緩,最后趨于平穩。

圖4 模型的訓練損失曲線Fig.4 Model training loss
比較圖4(a)中不同鄰域尺寸下的損失曲線發現,{1}和{1,2,4,8}損失最高,{2}、{2,4}、{2,4,8}次之,{4}、{4,8}其三,{8}最低。這意味著損失收斂值主要取決于最小鄰域尺寸。分析可能的原因是,鄰域尺寸越小,特征波動越大,其重構難度也越大;反之則特征相對平滑,更易于重構。比較圖4(b)不同編碼維度下的損失曲線發現,損失收斂值隨維度升高而減小。可以理解為,用更高的編碼維度來表示形狀特征,其重構原序列的難度更小。需要注意的是,更小的損失意味著更準確地重構原形狀特征,但并不能說明形狀編碼的優劣;使用更高的編碼維度雖然能獲得更低的損失值,但是維度過高可能會削弱模型的信息壓縮能力,甚至只需簡單地復制或映射即可重構序列。
不同形狀在編碼空間中應當保持同類聚集、異類互斥的分布模式。但由于編碼的質量差異或數據本身的不確定性,可能會存在不同形狀編碼之間有一定的重疊,導致形狀相似度度量不準確。圖5是對訓練后的32維形狀編碼使用t-SNE方法降維可視化的結果[31]。

圖5 形狀編碼的t-SNE降維可視化[31]Fig.5 Visualization of shape coding in two-dimensional space using t-SNE method[31]
由圖5可知,不同形狀形成顯著群簇,即同一類別的形狀在空間分布上距離較近,而與其他類別的形狀則距離較遠,這表現本文編碼具有較好的區分度。相似形狀的群簇距離相對接近,例如E形和F形形狀、I形和O形形狀以及T形和Y形形狀。同時也注意到,T形和Y形形狀的群簇出現了部分重疊,分析可能的原因是兩者在認知上相互接近,例如圖5中左下角的第2個T形形狀旋轉后從認知上也一定程度上符合Y形特征。此外,Z形群簇出現了分離,形成了兩個較為獨立的子簇,可能原因是Z形形狀較為復雜,同一類別的形狀之間差異也較大,例如圖5中示意的兩個Z形形狀的形態差異較大。
通過形狀編碼的可視化分析,可以初步認為Seq2seq自編碼模型能夠產生符合形狀認知、具有相似度計算意義的形狀編碼。為了進一步驗證其有效性,下面以形狀檢索和匹配等應用場景開展形狀認知試驗。
選擇武漢某居民區OpenStreetMap建筑數據作為訓練樣本,該區域內包含了一些典型的建筑模式,如H形、U形、TT形等,共474個建筑形狀,如圖6所示。

圖6 試驗區域Fig.6 Experimental area
采用上述模型對試驗區域內建筑物形狀進行訓練,得到形狀編碼庫,為后續應用做準備。訓練時,序列點數N、鄰域尺寸k和編碼維度zsize分別設為64、{2,4}和32。
使用試驗區域內8個建筑物,基于形狀編碼計算他們與標準形狀之間的相似度,并確定匹配關系,結果見表2。

表2 建筑物與標準形狀相似度
分析表2可知,第1組建筑物與V形形狀、第3組建筑物與U形建筑物的相似度顯著高于其他,符合視覺認知;而第2組建筑物在視覺上偏向于I形,但與這7個標準形狀相似度均較低,體現出其中段折角特征對形狀度量的影響;第4組建筑物不是標準的E形,但視覺認知上存在相似之處,其相似度也最高,體現了形狀編碼對整體結構的準確表達;第5、6組建筑物均是TT形,結果符合視覺認知,但第5組相似度明顯高于第6組,區別在于其偏心率與標準形狀更接近;第7、8組建筑物均是T形,區別在于第8組存在明顯局部凹處,因此雖然匹配結果正確,但相似度稍微偏低,且與TT形相似度明顯提高,原因在于二者視覺上都具有連續凹角特征。
總體來說,對于特征明確的形狀,本文模型能檢索出正確標準形狀,例如第1、3、5、7組;對于邊界有微小擾動但不影響全局特征的形狀,也基本能檢索正確,例如第8組。此外,一些整體性的轉折變化和偏心率變化可能對相似度計算有較大影響,例如第2、6組。
本文選擇典型的建筑物,并從形狀編碼庫中檢索與之最相似的形狀。圖7展示了6組建筑物的前4個檢索結果,其中數字為建筑物與檢索形狀之間的余弦相似度。

圖7 形狀檢索結果Fig.7 Results of building shape retrieval
對于簡單形狀,形狀編碼能夠有效區分,如前5組形狀。對于第6組,其形狀較復雜且具有豐富的局部特征,可能會對相似度計算造成一定影響,檢索結果也一定程度偏向有較多細節的形狀。此外,從第2組檢索結果中可以看到,形狀編碼不受形狀旋轉方向的影響;而第5組結果檢索到了試驗區內全部的H形建筑物,盡管最后一個檢索結果與其差異較大,相似度也明顯偏低,但仍可注意其具有了H形的部分邊界特征。
進一步分析發現,形狀編碼對建筑形狀的偏心率相對敏感,如第2、3組檢索結果都傾向于檢索出偏心率一致的形狀,而對較小的形變不敏感;第4組檢索中結果基本符合視覺效果,但相似度普遍偏低,這可能也是偏心率差異較大的緣故。
本文以建筑物形狀檢索應用為例,比較Seq2seq模型與傅里葉算子[13]、轉角函數[14]在形狀識別與認知上性能。以圖7中前5組建筑物為檢索目標進行10次檢索(分別返回前一至十個相似建筑物),計算每次檢索中5組結果的準確率和召回率并取平均值,得到precision-recall曲線(圖8)。曲線與坐標軸形成的面積越大,性能越佳。

圖8 不同方法的形狀查詢準確率和召回率Fig.8 Precision and recall of building shape retrieval using different methods
與轉角函數方法相比,Seq2seq模型的形狀認知性能有了提高,可能的原因是轉交函數只考慮了單一的轉角特征,而Seq2seq模型融合了局部和區域結構的多個特征。傅里葉方法與Seq2seq模型性能相近,但對于建筑物等人工對象,其頂點較少且常以直角方式轉折,傅里葉變換需要以更高階數的多項式函數來擬合,這會帶來較大的計算開銷。而Seq2Seq模型的計算量主要集中在訓練階段,該過程獨立完成,且對相似數據可以嘗試遷移式訓練;在空間查詢階段,基于預存儲的編碼信息計算形狀相似度,可以滿足快速響應的應用需求。
形狀識別是空間認知的重要內容。本文提出了建筑物形狀的Seq2seq自編碼學習模型。該模型借助深度學習的特征挖掘能力,集成邊界序列的多尺寸鄰域下的多組特征,并通過非監督訓練方式學習建筑形狀的本質特征,形成編碼,為空間認知的機理和形式化提供支撐。試驗表明,本文提出的學習模型能夠構建符合形狀認知的形狀編碼,該編碼具備對不同形狀的區分能力,能夠用于度量形狀之間的相似性;同時,在形狀檢索和匹配等應用場景中,該編碼能有效地表達建筑物形狀的全局和局部特征,符合視覺認知結果。
雖然該模型能較好地實現形狀表示任務,但是也存在一些問題,如形狀編碼在空間分布上存在部分重疊、局部擾動影響形狀度量結果等。后續工作將嘗試通過改進神經網絡結構、結合變分自編碼器以及引入認知結果作為監督知識進行訓練等方式予以改進。