晏雄鋒,艾廷華,楊 敏,鄭建濱
1. 同濟(jì)大學(xué)測繪與地理信息學(xué)院,上海 200092; 2. 武漢大學(xué)資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079
空間認(rèn)知旨在理解和闡釋人們在空間信息認(rèn)識活動中如何獲取、組織、利用、修改和表達(dá)信息[1-2],是認(rèn)知科學(xué)的重要研究領(lǐng)域??臻g認(rèn)知能夠幫助人們建立對地理空間事物或現(xiàn)象的空間概念,包括位置方位、形狀尺寸、景觀格局、時空變化及相互關(guān)系等[3],并形成認(rèn)知地圖、指導(dǎo)空間行為[4]??臻g認(rèn)知研究通常從兩個角度展開:①認(rèn)知主體特征,即人對事物的認(rèn)知行為或規(guī)律,例如Gestalt原則揭示了人們從視覺上認(rèn)知事物時會自然而然地先追求結(jié)構(gòu)的整體性或守形性趨勢,再逐漸認(rèn)識局部細(xì)節(jié)內(nèi)容[5-6]。②認(rèn)知客體特征,即地理空間要素自身所具有的特性,包括幾何特征、結(jié)構(gòu)特征和分布模式等,通過人腦的認(rèn)知演繹,推導(dǎo)出地理事物現(xiàn)象的高層次特征規(guī)律。
形狀是地理空間要素最直接的特征之一,其精細(xì)地表達(dá)了要素的幾何特征和空間分布,是人們建立空間概念的重要依據(jù)。地圖空間中不同組織方式的對象,其形狀表示與識別方法也有差別。針對遙感影像等柵格對象,形狀通過對像元或光柵單元的集成化處理獲得,如記錄邊界軌跡的鏈?zhǔn)骄幋a或剖分單元的屬性統(tǒng)計(jì)值[7]。針對點(diǎn)云等三維對象,形狀通過手工設(shè)計(jì)提取特征(如法向量、曲率、上下文信息)或深度表征學(xué)習(xí)獲得[8]。針對平面矢量對象,形狀是指邊界點(diǎn)所構(gòu)成的結(jié)構(gòu)模式,包括區(qū)域和邊界兩種表示方法[9]:區(qū)域表示是基于整體的指標(biāo),如緊湊度、凹度[10-11];邊界表示是以字符串或函數(shù)來近似擬合形狀邊界,如形狀上下文[12]、傅里葉算子[13]和轉(zhuǎn)角函數(shù)[14]等?,F(xiàn)有研究在形狀度量解釋和優(yōu)化方面具有成效,但在多特征使用和集成上還不完善,且缺乏對形狀認(rèn)知的合理性解釋。
近年來,以深度學(xué)習(xí)為代表的人工智能技術(shù)快速發(fā)展為空間形狀認(rèn)知提供了理論方法支持的可能:①大數(shù)據(jù)時代豐富的空間數(shù)據(jù)資源提供了學(xué)習(xí)的素材,包括多級尺度、現(xiàn)勢性完好、覆蓋完整的基礎(chǔ)地理信息數(shù)據(jù)庫產(chǎn)品[15]。②啟發(fā)于空間關(guān)聯(lián)性[16]和地理學(xué)第一定律[17]等理論,空間形狀認(rèn)知過程中往往會顧及相鄰點(diǎn)串、轉(zhuǎn)角或弧段等局部特征,最終得到整體結(jié)構(gòu)上的認(rèn)知結(jié)果;而深度學(xué)習(xí)對這類局部視覺特征具有強(qiáng)而有力的表征能力,例如卷積神經(jīng)網(wǎng)絡(luò),即通過小尺寸卷積核和權(quán)值共享等技術(shù)實(shí)現(xiàn)局部特征保持[18]。③深度學(xué)習(xí)對形狀特征具有一定偏好性[19],即優(yōu)先根據(jù)形狀判別對象,而不是顏色或質(zhì)地。基于上述基礎(chǔ),深度學(xué)習(xí)已在地理要素特征描述和認(rèn)知方面取得了初步成果。例如文獻(xiàn)[20]針對柵格形狀提出了形狀識別的卷積自監(jiān)督學(xué)習(xí);文獻(xiàn)[21]針對一維軌跡數(shù)據(jù)提出了基于深度學(xué)習(xí)的相似性度量方法;文獻(xiàn)[22]則關(guān)注空間對象的群組特征,提出了圖卷積神經(jīng)網(wǎng)絡(luò)的識別方法。
建筑物是地理空間的重要組成要素,具有直角轉(zhuǎn)折、軸線對稱等明顯的形狀特征,且針對建筑物的綜合化簡[23]、變化發(fā)現(xiàn)[24]、數(shù)據(jù)更新[25]、質(zhì)量評價[26]等任務(wù)都是以不同形式的形狀識別和認(rèn)知為基礎(chǔ)。本文以二維平面矢量建筑物形狀認(rèn)知為研究案例,借助深度學(xué)習(xí)的特征挖掘能力,提取其形狀表示,為空間認(rèn)知的機(jī)理和形式化提供支撐??紤]到基于邊界的矢量建筑物形狀表達(dá)具有冗余度低、表示精確、信息密度高等優(yōu)點(diǎn),本文首先以形狀邊界為基礎(chǔ),將建筑物形狀轉(zhuǎn)換為序列數(shù)據(jù),并提取其描述特征;然后利用sequence-to-sequence(Seq2seq)自編碼學(xué)習(xí)模型,對無標(biāo)簽的建筑物形狀數(shù)據(jù)進(jìn)行非監(jiān)督學(xué)習(xí)訓(xùn)練,獲得編碼能力。其中,Seq2seq是谷歌提出用于實(shí)現(xiàn)機(jī)器翻譯的模型[27],其輸入輸出分別為不同語言的文本序列,因其支持變長的輸入輸出序列而被廣泛用于處理文本、語音、視頻等具有序列特征的數(shù)據(jù)。本文中,將利用Seq2seq自編碼模型對輸入數(shù)據(jù)進(jìn)行非線性變換編碼,再重構(gòu)為原始輸入,實(shí)現(xiàn)對建筑物形狀的特征編碼和知識發(fā)現(xiàn)。
本文以深度學(xué)習(xí)技術(shù)為核心,通過獲得合理的形狀編碼,實(shí)現(xiàn)對形狀的認(rèn)知表達(dá)目的。整體框架包括4部分:數(shù)據(jù)預(yù)處理、特征提取、形狀自編碼學(xué)習(xí)和形狀表達(dá)與認(rèn)知,如圖1所示。
圖1 基于深度學(xué)習(xí)的建筑物形狀編碼整體框架Fig.1 Framework of building shape coding using deep auto-encoder learning
數(shù)據(jù)預(yù)處理是將二維建筑物形狀以序列表示,特征提取過程即為序列點(diǎn)提取多維尺度特征;隨后通過深度自編碼器得到該建筑物的形狀編碼,形成編碼庫;最后基于該編碼庫,可得到形狀相似度,并應(yīng)用于形狀檢索和匹配等場景。
預(yù)處理采取兩個步驟:①標(biāo)準(zhǔn)化,包括平移、縮放和旋轉(zhuǎn);②序列化,包括化簡、插值。標(biāo)準(zhǔn)化處理目的是消除建筑物位置、尺寸、方向等因素對形狀認(rèn)知帶來的干擾,其中平移操作將建筑物中心點(diǎn)移動至坐標(biāo)原點(diǎn),縮放操作將全部建筑物調(diào)整為面積一致,旋轉(zhuǎn)操作以最小外接矩形長邊方向作為參考。序列化處理目的是從可能存在表達(dá)精度差異的矢量建筑物數(shù)據(jù)中得到點(diǎn)分布較為均衡的序列,其中化簡操作采用極小參量的Douglas算法以消除輕微抖動和冗余數(shù)據(jù)點(diǎn),插值操作采用等距離插值以保證建筑物形狀序列點(diǎn)數(shù)一致。預(yù)處理后按順時針方向?qū)⑿螤钸吔甾D(zhuǎn)換為滿足Seq2seq輸入要求的序列。
幾何形狀特征提取應(yīng)考慮局部差異性、全局整體性、上下文相關(guān)性等方面,往往具有認(rèn)知上的不確定性。本文以三角形結(jié)構(gòu)[28]和三角形質(zhì)心距離[29]等形狀表達(dá)方式為基礎(chǔ),參考本領(lǐng)域?qū)π螤畹亩ㄐ远糠治霾⒔Y(jié)合建筑物的特點(diǎn),確立邊界上點(diǎn)的描述特征,包括局部結(jié)構(gòu)特征和區(qū)域結(jié)構(gòu)特征,如圖2所示。
圖2 建筑物形狀序列的多尺度特征Fig.2 Illustration of the multi-scale features of building shape sequence
1.3.1 局部結(jié)構(gòu)特征
此外,形狀描述特征應(yīng)當(dāng)滿足平移、縮放、旋轉(zhuǎn)不變性。局部結(jié)構(gòu)特征是按相對位置提取的,不會因形狀平移和旋轉(zhuǎn)而變化;而形狀縮放時,三角形面積和弦長特征也隨之變化,因此需要對其進(jìn)行標(biāo)準(zhǔn)化。面積特征取其與建筑物面積S的比值、弦長特征取其與面積S算術(shù)平方根的比值,即
(1)
(2)
1.3.2 區(qū)域結(jié)構(gòu)特征
(3)
(4)
(5)
考慮M個領(lǐng)域尺寸,那么每一個形狀序列點(diǎn)i都可提取7×M維度的特征pi,即
k∈{1,…,M}
(6)
整個形狀序列的特征維度為N×7M,N為序列點(diǎn)數(shù)。這些特征蘊(yùn)含了邊界上下文信息,如轉(zhuǎn)角和曲率信息。同時,結(jié)合邊界點(diǎn)與區(qū)域中心提取特征,也符合Gestalt原則對整體和局部的認(rèn)知過程。
本文利用深度自編碼學(xué)習(xí)思想構(gòu)建形狀編碼模型,從邊界序列點(diǎn)的描述特征學(xué)習(xí)建筑物形狀的編碼特征。模型包括編碼器(encoder)和解碼器(decoder)兩部分,分別用兩個神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)。二者功能相反,編碼器負(fù)責(zé)將輸入的序列特征編碼為一組向量,而解碼器負(fù)責(zé)從該向量重構(gòu)出原始序列特征,重構(gòu)結(jié)果越接近,則該編碼向量信息損失就越少。
經(jīng)典的神經(jīng)網(wǎng)絡(luò)沒有考慮輸入序列的順序,特征之間互相獨(dú)立,并不適用于處理形狀邊界序列特征,因此本文使用循環(huán)神經(jīng)網(wǎng)絡(luò)作為自編碼器中的基本網(wǎng)絡(luò)結(jié)構(gòu),即Seq2seq模型。此外,在形狀邊界序列中間隔很遠(yuǎn)的點(diǎn)也可能在二維空間中距離接近,存在視覺聯(lián)系,經(jīng)典的循環(huán)神經(jīng)網(wǎng)絡(luò)不能很好地解決這種長期依賴問題,因此本文采用的是長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)[30]。模型如圖3所示。
圖3 Seq2seq自編碼器模型架構(gòu)Fig.3 Architecture of seq2seq auto-encoder model
1.4.1 編碼器
編碼器為一個LSTM網(wǎng)絡(luò),其接受輸入為表示單個形狀的N×7M維度矩陣。設(shè)置隱藏層神經(jīng)元數(shù)量為zsize,即形狀編碼維度。循環(huán)中每個時間步的計(jì)算為
[hi;ci]=fe(pi,hi-1,ci-1)
(7)
式中,hi和ci為LSTM單元的輸出值和狀態(tài)值;pi表示輸入;fe(·)表示編碼器中的每個時間步單元計(jì)算。形狀編碼z為最后一個時間步單元的輸出值,即z=hN。
1.4.2 解碼器
解碼器為一個LSTM網(wǎng)絡(luò)和一個全連接層的組合,其接受輸入為N×(zsize+7M)維度矩陣。為了保持與編碼器狀態(tài)值維度相同,隱藏層神經(jīng)元數(shù)量也設(shè)置為zsize。LSTM的輸出添加一個線性全連接層,將序列輸出的維度約束為輸入樣本的維度,實(shí)現(xiàn)序列重構(gòu)。計(jì)算過程為
[Hi;Ci]=fd([pi;z],Hi-1,Ci-1)
(8)
(9)
1.4.3 自編碼學(xué)習(xí)
(10)
同時使用“teacher forcing”方式進(jìn)行解碼器訓(xùn)練,即解碼器的每個輸入不采用上一時間步的輸出,而直接使用訓(xùn)練數(shù)據(jù)中對應(yīng)位置的值,可以加快模型的收斂速度。
Seq2seq自編碼模型將建筑物形狀變換為特征空間內(nèi)的一組編碼?;谠摼幋a,可采用歐氏距離、余弦相似度等方式度量形狀之間的相似性??紤]到形狀的復(fù)雜性和多樣性,同一形狀不同起點(diǎn)構(gòu)成的特征序列,其編碼有所差異。對此,本文按下列方式計(jì)算相似度。
(11)
本文開展了系列試驗(yàn)討論和分析模型的有效性,包括模型訓(xùn)練、形狀編碼可視化及形狀相似度分析。
試驗(yàn)建筑物數(shù)據(jù)從OpenStreetMap獲取,并按10個標(biāo)準(zhǔn)形狀挑選,包括T形、U形等。挑選數(shù)據(jù)時,盡可能考慮不同地理特征下的建筑物結(jié)構(gòu),以保證建筑物形狀的多樣性。
Seq2seq自編碼模型的訓(xùn)練過程并不需要標(biāo)注信息,但為了評價和分析形狀編碼結(jié)果,所選形狀數(shù)據(jù)由3個志愿者手工分類并標(biāo)注為相應(yīng)類別。每個類別包括約150個形狀,每個形狀作為一個訓(xùn)練樣本,共1500個樣本。表1展示了10個標(biāo)準(zhǔn)形狀及其訓(xùn)練形狀示例。
表1 訓(xùn)練樣本中10類形狀示例
根據(jù)相關(guān)模型的訓(xùn)練經(jīng)驗(yàn)和初步嘗試的試驗(yàn)效果,本文選擇tanh激活函數(shù),采用RMSProp優(yōu)化器,學(xué)習(xí)率設(shè)為0.001,序列點(diǎn)數(shù)設(shè)為64。訓(xùn)練時,模型結(jié)構(gòu)中的形狀編碼維度zsize和數(shù)據(jù)預(yù)處理中的鄰域尺寸k可能對性能存在影響,下面通過試驗(yàn)來具體分析。
分別設(shè)置8、16、32、64、128共5種編碼維度,{1}、{2}、{4}、{8}、{2,4}、{2,4,8}、{4,8}、{1,2,4,8}共8種尺度組合,訓(xùn)練結(jié)果如圖4所示。可以看出,損失曲線收斂情況都較為一致,即開始階段急速收斂,中間逐漸放緩,最后趨于平穩(wěn)。
圖4 模型的訓(xùn)練損失曲線Fig.4 Model training loss
比較圖4(a)中不同鄰域尺寸下的損失曲線發(fā)現(xiàn),{1}和{1,2,4,8}損失最高,{2}、{2,4}、{2,4,8}次之,{4}、{4,8}其三,{8}最低。這意味著損失收斂值主要取決于最小鄰域尺寸。分析可能的原因是,鄰域尺寸越小,特征波動越大,其重構(gòu)難度也越大;反之則特征相對平滑,更易于重構(gòu)。比較圖4(b)不同編碼維度下的損失曲線發(fā)現(xiàn),損失收斂值隨維度升高而減小。可以理解為,用更高的編碼維度來表示形狀特征,其重構(gòu)原序列的難度更小。需要注意的是,更小的損失意味著更準(zhǔn)確地重構(gòu)原形狀特征,但并不能說明形狀編碼的優(yōu)劣;使用更高的編碼維度雖然能獲得更低的損失值,但是維度過高可能會削弱模型的信息壓縮能力,甚至只需簡單地復(fù)制或映射即可重構(gòu)序列。
不同形狀在編碼空間中應(yīng)當(dāng)保持同類聚集、異類互斥的分布模式。但由于編碼的質(zhì)量差異或數(shù)據(jù)本身的不確定性,可能會存在不同形狀編碼之間有一定的重疊,導(dǎo)致形狀相似度度量不準(zhǔn)確。圖5是對訓(xùn)練后的32維形狀編碼使用t-SNE方法降維可視化的結(jié)果[31]。
圖5 形狀編碼的t-SNE降維可視化[31]Fig.5 Visualization of shape coding in two-dimensional space using t-SNE method[31]
由圖5可知,不同形狀形成顯著群簇,即同一類別的形狀在空間分布上距離較近,而與其他類別的形狀則距離較遠(yuǎn),這表現(xiàn)本文編碼具有較好的區(qū)分度。相似形狀的群簇距離相對接近,例如E形和F形形狀、I形和O形形狀以及T形和Y形形狀。同時也注意到,T形和Y形形狀的群簇出現(xiàn)了部分重疊,分析可能的原因是兩者在認(rèn)知上相互接近,例如圖5中左下角的第2個T形形狀旋轉(zhuǎn)后從認(rèn)知上也一定程度上符合Y形特征。此外,Z形群簇出現(xiàn)了分離,形成了兩個較為獨(dú)立的子簇,可能原因是Z形形狀較為復(fù)雜,同一類別的形狀之間差異也較大,例如圖5中示意的兩個Z形形狀的形態(tài)差異較大。
通過形狀編碼的可視化分析,可以初步認(rèn)為Seq2seq自編碼模型能夠產(chǎn)生符合形狀認(rèn)知、具有相似度計(jì)算意義的形狀編碼。為了進(jìn)一步驗(yàn)證其有效性,下面以形狀檢索和匹配等應(yīng)用場景開展形狀認(rèn)知試驗(yàn)。
選擇武漢某居民區(qū)OpenStreetMap建筑數(shù)據(jù)作為訓(xùn)練樣本,該區(qū)域內(nèi)包含了一些典型的建筑模式,如H形、U形、TT形等,共474個建筑形狀,如圖6所示。
圖6 試驗(yàn)區(qū)域Fig.6 Experimental area
采用上述模型對試驗(yàn)區(qū)域內(nèi)建筑物形狀進(jìn)行訓(xùn)練,得到形狀編碼庫,為后續(xù)應(yīng)用做準(zhǔn)備。訓(xùn)練時,序列點(diǎn)數(shù)N、鄰域尺寸k和編碼維度zsize分別設(shè)為64、{2,4}和32。
使用試驗(yàn)區(qū)域內(nèi)8個建筑物,基于形狀編碼計(jì)算他們與標(biāo)準(zhǔn)形狀之間的相似度,并確定匹配關(guān)系,結(jié)果見表2。
表2 建筑物與標(biāo)準(zhǔn)形狀相似度
分析表2可知,第1組建筑物與V形形狀、第3組建筑物與U形建筑物的相似度顯著高于其他,符合視覺認(rèn)知;而第2組建筑物在視覺上偏向于I形,但與這7個標(biāo)準(zhǔn)形狀相似度均較低,體現(xiàn)出其中段折角特征對形狀度量的影響;第4組建筑物不是標(biāo)準(zhǔn)的E形,但視覺認(rèn)知上存在相似之處,其相似度也最高,體現(xiàn)了形狀編碼對整體結(jié)構(gòu)的準(zhǔn)確表達(dá);第5、6組建筑物均是TT形,結(jié)果符合視覺認(rèn)知,但第5組相似度明顯高于第6組,區(qū)別在于其偏心率與標(biāo)準(zhǔn)形狀更接近;第7、8組建筑物均是T形,區(qū)別在于第8組存在明顯局部凹處,因此雖然匹配結(jié)果正確,但相似度稍微偏低,且與TT形相似度明顯提高,原因在于二者視覺上都具有連續(xù)凹角特征。
總體來說,對于特征明確的形狀,本文模型能檢索出正確標(biāo)準(zhǔn)形狀,例如第1、3、5、7組;對于邊界有微小擾動但不影響全局特征的形狀,也基本能檢索正確,例如第8組。此外,一些整體性的轉(zhuǎn)折變化和偏心率變化可能對相似度計(jì)算有較大影響,例如第2、6組。
本文選擇典型的建筑物,并從形狀編碼庫中檢索與之最相似的形狀。圖7展示了6組建筑物的前4個檢索結(jié)果,其中數(shù)字為建筑物與檢索形狀之間的余弦相似度。
圖7 形狀檢索結(jié)果Fig.7 Results of building shape retrieval
對于簡單形狀,形狀編碼能夠有效區(qū)分,如前5組形狀。對于第6組,其形狀較復(fù)雜且具有豐富的局部特征,可能會對相似度計(jì)算造成一定影響,檢索結(jié)果也一定程度偏向有較多細(xì)節(jié)的形狀。此外,從第2組檢索結(jié)果中可以看到,形狀編碼不受形狀旋轉(zhuǎn)方向的影響;而第5組結(jié)果檢索到了試驗(yàn)區(qū)內(nèi)全部的H形建筑物,盡管最后一個檢索結(jié)果與其差異較大,相似度也明顯偏低,但仍可注意其具有了H形的部分邊界特征。
進(jìn)一步分析發(fā)現(xiàn),形狀編碼對建筑形狀的偏心率相對敏感,如第2、3組檢索結(jié)果都傾向于檢索出偏心率一致的形狀,而對較小的形變不敏感;第4組檢索中結(jié)果基本符合視覺效果,但相似度普遍偏低,這可能也是偏心率差異較大的緣故。
本文以建筑物形狀檢索應(yīng)用為例,比較Seq2seq模型與傅里葉算子[13]、轉(zhuǎn)角函數(shù)[14]在形狀識別與認(rèn)知上性能。以圖7中前5組建筑物為檢索目標(biāo)進(jìn)行10次檢索(分別返回前一至十個相似建筑物),計(jì)算每次檢索中5組結(jié)果的準(zhǔn)確率和召回率并取平均值,得到precision-recall曲線(圖8)。曲線與坐標(biāo)軸形成的面積越大,性能越佳。
圖8 不同方法的形狀查詢準(zhǔn)確率和召回率Fig.8 Precision and recall of building shape retrieval using different methods
與轉(zhuǎn)角函數(shù)方法相比,Seq2seq模型的形狀認(rèn)知性能有了提高,可能的原因是轉(zhuǎn)交函數(shù)只考慮了單一的轉(zhuǎn)角特征,而Seq2seq模型融合了局部和區(qū)域結(jié)構(gòu)的多個特征。傅里葉方法與Seq2seq模型性能相近,但對于建筑物等人工對象,其頂點(diǎn)較少且常以直角方式轉(zhuǎn)折,傅里葉變換需要以更高階數(shù)的多項(xiàng)式函數(shù)來擬合,這會帶來較大的計(jì)算開銷。而Seq2Seq模型的計(jì)算量主要集中在訓(xùn)練階段,該過程獨(dú)立完成,且對相似數(shù)據(jù)可以嘗試遷移式訓(xùn)練;在空間查詢階段,基于預(yù)存儲的編碼信息計(jì)算形狀相似度,可以滿足快速響應(yīng)的應(yīng)用需求。
形狀識別是空間認(rèn)知的重要內(nèi)容。本文提出了建筑物形狀的Seq2seq自編碼學(xué)習(xí)模型。該模型借助深度學(xué)習(xí)的特征挖掘能力,集成邊界序列的多尺寸鄰域下的多組特征,并通過非監(jiān)督訓(xùn)練方式學(xué)習(xí)建筑形狀的本質(zhì)特征,形成編碼,為空間認(rèn)知的機(jī)理和形式化提供支撐。試驗(yàn)表明,本文提出的學(xué)習(xí)模型能夠構(gòu)建符合形狀認(rèn)知的形狀編碼,該編碼具備對不同形狀的區(qū)分能力,能夠用于度量形狀之間的相似性;同時,在形狀檢索和匹配等應(yīng)用場景中,該編碼能有效地表達(dá)建筑物形狀的全局和局部特征,符合視覺認(rèn)知結(jié)果。
雖然該模型能較好地實(shí)現(xiàn)形狀表示任務(wù),但是也存在一些問題,如形狀編碼在空間分布上存在部分重疊、局部擾動影響形狀度量結(jié)果等。后續(xù)工作將嘗試通過改進(jìn)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、結(jié)合變分自編碼器以及引入認(rèn)知結(jié)果作為監(jiān)督知識進(jìn)行訓(xùn)練等方式予以改進(jìn)。