李想 李宏偉
地圖以簡(jiǎn)單、直觀的方式呈現(xiàn)地物的名稱、位置、分布、聯(lián)系及變化,是人們學(xué)習(xí)和生活中不可或缺的工具。注記是地圖符號(hào)系統(tǒng)的有機(jī)組成部分,是地圖的重要元素,其作用包括標(biāo)識(shí)對(duì)象、表明對(duì)象間的關(guān)系、指示對(duì)象屬性等。注記包括名稱注記和說(shuō)明注記,一般用文字和數(shù)字表示,不同類別注記的特征(字體、顏色、尺寸等)不同。注記配置是地圖制圖中的重要步驟,往往耗時(shí)較長(zhǎng),自動(dòng)化地圖制圖必須要解決地圖注記自動(dòng)配置問(wèn)題,從而提高制圖的效率。
傳統(tǒng)的注記配置方法主要有貪婪算法和回溯法,在結(jié)合其他優(yōu)化算法后,形成了基于聚類分組的蟻群算法[1]、遺傳算法[2]、模擬退火算法[3]等。優(yōu)化后的注記配置算法能夠較好地解決注記配置問(wèn)題,但卻忽略了不同類別注記的特征不同,導(dǎo)致不同類別注記使用同一字體或顏色,表達(dá)上有所欠缺。
隨著人工智能技術(shù)、認(rèn)知科學(xué)、地圖學(xué)的不斷發(fā)展,地圖制圖的自動(dòng)化、智能化程度不斷提高,地圖制圖進(jìn)入了機(jī)器智能制圖的新發(fā)展階段。2006年,深度學(xué)習(xí)這一概念由辛頓(Geoffrey Hinton)等[4]提出,此后,其在圖像和自然語(yǔ)言處理中得到了廣泛應(yīng)用,并取得了眾多突破性成果[5——8]。深度學(xué)習(xí)通過(guò)模仿人腦的機(jī)制對(duì)數(shù)據(jù)進(jìn)行解釋,為計(jì)算機(jī)通過(guò)學(xué)習(xí)地圖知識(shí)來(lái)繪制地圖提供了理論基礎(chǔ)。將深度學(xué)習(xí)的方法運(yùn)用至地圖制圖中有助于提高計(jì)算機(jī)的“思維”能力,進(jìn)而提高計(jì)算機(jī)制圖的智能化水平。為此,學(xué)者針對(duì)深度學(xué)習(xí)在地圖學(xué)領(lǐng)域中的應(yīng)用開展了研究,從自動(dòng)勾勒地圖特征[9]、自動(dòng)制圖綜合[10——11]、地圖閱讀[12]和地圖識(shí)別[13——16]等方面,探討了深度學(xué)習(xí)方法在地圖學(xué)研究中的可行性。
在采用傳統(tǒng)方法進(jìn)行注記配置的研究中,已有研究沒(méi)有充分考慮注記的類別及其特征等影響因素。為了在配置結(jié)果中突出注記的類別特征,并同時(shí)保證注記配置的效率和質(zhì)量,本文嘗試將深度學(xué)習(xí)方法引入地圖點(diǎn)注記自動(dòng)配置中,通過(guò)獲取注記圖片的類別及文字信息,實(shí)現(xiàn)針對(duì)不同類別的地圖點(diǎn)注記自動(dòng)配置。首先采集公開出版的地圖集中不同種類的地圖點(diǎn)注記圖片,制作地圖點(diǎn)注記數(shù)據(jù)集,再通過(guò)卷積神經(jīng)網(wǎng)絡(luò)對(duì)地圖點(diǎn)注記圖像的字體、尺寸、顏色、間隔等特征進(jìn)行學(xué)習(xí),從而識(shí)別地圖注記的類別;然后采用基于深度學(xué)習(xí)的文字識(shí)別提取注記文字,根據(jù)文字匹配相應(yīng)的位置信息;最后將深度學(xué)習(xí)模塊與注記配置模塊相結(jié)合,通過(guò)深度學(xué)習(xí)方法識(shí)別地圖注記類別和文字,并在地圖上自動(dòng)進(jìn)行點(diǎn)注記配置。
本文的地圖點(diǎn)注記數(shù)據(jù)集,獲取自星球地圖出版社2017——2019年出版的“中國(guó)分省系列地圖集”中的《河南省地圖集》《湖北省地圖集》《青海省地圖集》《云南省地圖集》和《四川省地圖集》。這5部地圖集全面反映了各省的行政區(qū)劃、交通、旅游、地形等信息,包含較多內(nèi)容明確、較為清晰的地圖注記。根據(jù)實(shí)驗(yàn)需要,選取2200張點(diǎn)注記圖像作為本文的地圖點(diǎn)注記數(shù)據(jù)集,其中包含地名注記、森林公園注記、自然保護(hù)區(qū)注記和風(fēng)景名勝區(qū)注記4個(gè)類別。各類別的注記示例如圖1所示。
圖1 4種類別的地圖注記示例
由圖1可以看出,4種類別的地圖注記在表示形式上具有各自的特點(diǎn)。地名注記以藍(lán)色為主色調(diào)表示,森林公園注記以綠色為主色調(diào)表示,自然保護(hù)區(qū)注記以紫色為主色調(diào)表示,風(fēng)景名勝區(qū)注記以紅色為主色調(diào)表示。4種類別的注記在字體及背景顏色上存在明顯的區(qū)別,反映了人類在進(jìn)行地圖制圖時(shí)對(duì)注記信息的表達(dá)習(xí)慣,而機(jī)器可以通過(guò)算法訓(xùn)練學(xué)習(xí)來(lái)掌握這些習(xí)慣。
在共計(jì)2200張實(shí)驗(yàn)圖像中,包含地名注記圖片1000張,森林公園注記、自然保護(hù)區(qū)注記和風(fēng)景名勝區(qū)注記圖片各400張,在4個(gè)類別中分別選取80%的圖像作為實(shí)驗(yàn)的訓(xùn)練集,其余圖像作為實(shí)驗(yàn)的測(cè)試集,另外根據(jù)實(shí)驗(yàn)需要采集河南省的地圖注記圖像共70張作為驗(yàn)證集,具體的數(shù)量分配見(jiàn)表1。圖片采用JPEG格式,設(shè)置為RGB模式,圖像的像素大小不一,基本為150×100。
表1 注記樣本類別及數(shù)量
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network ,英文縮寫CNN)能夠有效解決圖像分類問(wèn)題[17],基于CNN的研究工作顯著提高了多個(gè)圖像數(shù)據(jù)庫(kù)的最佳性能,尤其在學(xué)習(xí)圖像的局部及全局結(jié)構(gòu)上表現(xiàn)優(yōu)異。本文所采用的地圖點(diǎn)注記數(shù)據(jù)集數(shù)據(jù)量較小,在這種小型數(shù)據(jù)集的圖像處理問(wèn)題中,為了避免過(guò)擬合問(wèn)題,通常采用在其他大型數(shù)據(jù)集上訓(xùn)練好的預(yù)訓(xùn)練網(wǎng)絡(luò)模型,但由于該數(shù)據(jù)集與其他數(shù)據(jù)集中圖像的相似特征較少,需要對(duì)其進(jìn)行單獨(dú)訓(xùn)練,因此選用參數(shù)較少、網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單的CNN作為圖像分類的訓(xùn)練模型。采用CNN對(duì)地圖注記圖像進(jìn)行類別識(shí)別時(shí),地圖注記圖像為CNN的輸入層,卷積層對(duì)注記圖像進(jìn)行特征提取,池化層對(duì)卷積層輸出的特征圖進(jìn)行降采樣,最后通過(guò)全連接層進(jìn)行預(yù)測(cè)。
本文設(shè)置的CNN模型共11層,包含4個(gè)卷積層、4個(gè)池化層和3個(gè)全連接層,激活函數(shù)使用ReLu函數(shù),采用Softmax分類器進(jìn)行分類。輸入層輸入的是尺寸統(tǒng)一為100×100×3的圖片像素矩陣,前兩層卷積層的卷積核尺寸為5×5,第三、四層卷積層的卷積核尺寸為3×3。池化層的尺寸均為2×2,步長(zhǎng)為1。全連接層的節(jié)點(diǎn)個(gè)數(shù)分別為1024、512和4,其中第三層的節(jié)點(diǎn)個(gè)數(shù)與輸出類別數(shù)一致。模型結(jié)構(gòu)如圖2所示。
圖2 卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)示意圖
為避免梯度消失問(wèn)題,提高模型收斂速度,需要尋找合適的神經(jīng)網(wǎng)絡(luò)初始化權(quán)重,一般設(shè)置為接近0的數(shù)字,本文將初始權(quán)重值設(shè)為0.0001,以便使卷積神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練時(shí)能迅速收斂。學(xué)習(xí)率對(duì)函數(shù)的收斂速度和收斂效果起著決定性作用,為達(dá)到更好的學(xué)習(xí)效果,一般將學(xué)習(xí)率設(shè)置為隨著訓(xùn)練進(jìn)程而衰減的值。經(jīng)過(guò)測(cè)試,本文將初始學(xué)習(xí)率設(shè)為0.001,在訓(xùn)練過(guò)程中,隨著迭代次數(shù)的增加,學(xué)習(xí)率不斷減小,直至模型收斂。
為進(jìn)一步提高地圖注記圖像分類的精度,本文在已有的卷積神經(jīng)網(wǎng)絡(luò)模型中加入卷積注意力模塊( convolutional block attention module,英文縮寫 CBAM)[18]進(jìn)行注記分類實(shí)驗(yàn)。CBAM是一種為CNN設(shè)計(jì)的注意力模塊,機(jī)制是使機(jī)器仿照人的視覺(jué)注意閱讀圖像,用于神經(jīng)網(wǎng)絡(luò)可以使其更加關(guān)注重要特征,減少對(duì)圖像背景信息的學(xué)習(xí),從而提高圖像分類的精度。CBAM可以無(wú)縫集成到任何CNN架構(gòu)中,添加至CNN的卷積層中,其開銷可以忽略不計(jì),并可以與基礎(chǔ)CNN一起進(jìn)行端到端的訓(xùn)練。
CBAM包含通道注意力模塊和空間注意力模塊,通過(guò)對(duì)經(jīng)過(guò)卷積的特征圖進(jìn)行通道和空間兩個(gè)維度的特征優(yōu)化,以提高網(wǎng)絡(luò)精度。通道注意力強(qiáng)調(diào)輸入圖像的特征是有意義的,空間注意力強(qiáng)調(diào)輸入圖像哪些部分的特征是有意義的,是對(duì)通道注意力的補(bǔ)充。CBAM的輸入為經(jīng)過(guò)卷積后的特征圖F,將F經(jīng)過(guò)最大池化和平均池化得到的特征相加并通過(guò)激活函數(shù)獲得權(quán)重,得到通道注意力圖像,將其與輸入圖像進(jìn)行像素級(jí)別的相乘操作,得到新的特征圖F'??臻g注意力模塊同樣采用最大池化和平均池化,對(duì)特征圖F'在通道維度上進(jìn)行壓縮,經(jīng)過(guò)激活函數(shù)得到空間注意力圖像,將其與圖像F'進(jìn)行像素級(jí)別的相乘操作,最終得到優(yōu)化后的特征圖像。
本文將CBAM設(shè)置在第一個(gè)卷積層后,在卷積核對(duì)輸入的注記圖像進(jìn)行特征提取后,CBAM采用最大池化和平均池化的方法對(duì)獲得的特征圖進(jìn)行兩個(gè)維度的特征優(yōu)化,再將特征圖像傳遞給池化層。CBAM的具體工作流程如圖3所示。
圖3 卷積注意力模塊工作流程圖
使用深度學(xué)習(xí)方法進(jìn)行文字識(shí)別(optical character recognition ,英文縮寫OCR),已有許多研究成果,并被廣泛應(yīng)用于商業(yè)用途,如采用CRNN(convolutional recurrent neural network,卷積循環(huán)神經(jīng)網(wǎng)絡(luò))[19]、Res-Net(residual network,殘差網(wǎng)絡(luò))[20]等網(wǎng)絡(luò),對(duì)場(chǎng)景文字識(shí)別的精度可達(dá)94.2%,對(duì)印刷文字的識(shí)別精度高達(dá)99%。本文采用密集卷積網(wǎng)絡(luò)(DenseNet)[21]對(duì)地圖點(diǎn)注記圖像進(jìn)行文字識(shí)別。DenseNet主要是在ResNet的基礎(chǔ)上進(jìn)行改進(jìn),其最大的特征是采用密集連接的方式連接所有網(wǎng)絡(luò),其每一層的輸入都來(lái)自前面所有層的輸出。這使得DenseNet具有減輕梯度消失、加強(qiáng)特征傳遞和需要較少參數(shù)等優(yōu)勢(shì)。
在文字識(shí)別中,DenseNet具有預(yù)測(cè)速度快、中文識(shí)別效果更好等優(yōu)點(diǎn)。本文基于中文OCR工具包c(diǎn)nocr中已經(jīng)訓(xùn)練好的DenseNet模型對(duì)地圖點(diǎn)注記圖像進(jìn)行文字識(shí)別,該模型對(duì)印刷體文字的識(shí)別準(zhǔn)確率為97%。
本文使用從地圖集中采集的2200張地圖注記圖像作為實(shí)驗(yàn)數(shù)據(jù)集,開展注記識(shí)別和注記配置實(shí)驗(yàn)。首先基于TensorFlow平臺(tái),采用CNN和插入CBAM的神經(jīng)網(wǎng)絡(luò)開展注記類別識(shí)別實(shí)驗(yàn),使網(wǎng)絡(luò)學(xué)習(xí)不同類別注記的顏色、字體等特征,然后基于MXNet框架,采用DenseNet開展注記文字識(shí)別實(shí)驗(yàn),并且在文字識(shí)別中加入字符串相似度計(jì)算算法以提高識(shí)別精度,最后結(jié)合注記類別識(shí)別和文字識(shí)別的結(jié)果定位注記位置并進(jìn)行注記配置,在遵循注記配置規(guī)則的基礎(chǔ)上注重突出注記的類別特征,賦予各類別注記不同的顏色及符號(hào)特征。
在進(jìn)行訓(xùn)練前,先通過(guò)函數(shù)對(duì)數(shù)據(jù)集圖像的尺寸進(jìn)行調(diào)整,如果圖像像素小于目標(biāo)尺寸100×100,則對(duì)圖像進(jìn)行固色填充;如果圖像大于目標(biāo)尺寸,則截取圖像中心區(qū)域使其與目標(biāo)尺寸大小相等。然后使用CNN開展分類實(shí)驗(yàn),在TensorFlow平臺(tái)上使用搭建好的CNN對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練、測(cè)試及驗(yàn)證。通過(guò)訓(xùn)練數(shù)據(jù)集生成模型,再調(diào)用生成的模型對(duì)地圖注記圖像進(jìn)行驗(yàn)證。實(shí)驗(yàn)表明,該模型在經(jīng)過(guò)約900次迭代后,分類精度趨于穩(wěn)定,針對(duì)測(cè)試集的分類準(zhǔn)確度達(dá)到98.69%,訓(xùn)練時(shí)間為980秒。訓(xùn)練和測(cè)試過(guò)程的精度準(zhǔn)確率變化曲線如圖4所示。
圖4 CNN準(zhǔn)確率變化曲線
然后采用插入CBAM后的CNN模型,在TensorFlow平臺(tái)上對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練、測(cè)試及驗(yàn)證。同樣,先通過(guò)函數(shù)對(duì)數(shù)據(jù)集圖像的尺寸進(jìn)行調(diào)整,然后通過(guò)訓(xùn)練數(shù)據(jù)集生成模型,再調(diào)用生成的模型對(duì)地圖注記圖像進(jìn)行驗(yàn)證。實(shí)驗(yàn)表明,該模型在經(jīng)過(guò)約900次迭代后,分類精度趨于穩(wěn)定,針對(duì)測(cè)試集的分類準(zhǔn)確度達(dá)到99.22%,訓(xùn)練時(shí)間為1436秒。訓(xùn)練和測(cè)試過(guò)程的精度準(zhǔn)確率變化曲線如圖5所示。
圖5 插入CBAM后的CNN準(zhǔn)確率變化曲線
由實(shí)驗(yàn)可知,在同樣的實(shí)驗(yàn)環(huán)境和實(shí)驗(yàn)數(shù)據(jù)集條件下,加入CBAM后,CNN的分類精度有所提高,但訓(xùn)練所耗費(fèi)的時(shí)間更長(zhǎng)。實(shí)驗(yàn)結(jié)果表明,在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行地圖點(diǎn)注記分類時(shí),加入注意力模塊可以更有效地提取圖像特征,提高識(shí)別準(zhǔn)確率。因此,本文使用加入CBAM的CNN訓(xùn)練模型對(duì)驗(yàn)證集進(jìn)行分類,針對(duì)驗(yàn)證集的70張注記圖像,該模型的分類準(zhǔn)確率為98.57%,其中河南省省會(huì)鄭州的分類有誤,原因是省會(huì)注記與其他地名類別注記的字體、顏色不同,存在較大差異,且訓(xùn)練集中的省會(huì)注記圖像較少。手動(dòng)修改錯(cuò)分類別,將分類結(jié)果進(jìn)行記錄以便后續(xù)使用。
將地圖注記圖像作為訓(xùn)練好的DenseNet模型的測(cè)試集,在MXNet平臺(tái)上進(jìn)行驗(yàn)證,其識(shí)別精度為72.86%。由于地圖注記數(shù)據(jù)集存在噪聲,使用DenseNet模型直接進(jìn)行預(yù)測(cè)時(shí)精度較低,因此先收集所需的地名及其經(jīng)緯度,并在識(shí)別程序中加入字符串相似度計(jì)算算法,將模型預(yù)測(cè)出的字符串和地名文件中的字符串作對(duì)比,選取相似度更高的為預(yù)測(cè)結(jié)果,使得文字識(shí)別的結(jié)果可以正確匹配地名。加入字符串相似度計(jì)算算法后,模型的文字識(shí)別準(zhǔn)確率顯著提高,達(dá)到94.29%。
依分類實(shí)驗(yàn)的順序,在MXNet平臺(tái)上對(duì)70張驗(yàn)證集進(jìn)行文字識(shí)別,在匹配到相應(yīng)的地名后,讀取該地名所對(duì)應(yīng)的位置信息。在識(shí)別實(shí)驗(yàn)中,個(gè)別注記圖像由于背景干擾因素較多,識(shí)別較為困難,需要采取裁剪圖像或消除背景的方法對(duì)其進(jìn)行處理,從而提高識(shí)別精度。完成文字識(shí)別后,使用Python編程將地名、經(jīng)度、維度和類別寫入同一文件中。
經(jīng)過(guò)上述實(shí)驗(yàn),根據(jù)地圖注記圖像已獲取地圖注記的文字、位置和類別信息,可以基于網(wǎng)頁(yè)、在線工具、制圖軟件等開展注記配置實(shí)驗(yàn),主要是根據(jù)上述信息對(duì)點(diǎn)注記進(jìn)行定位,尋找注記文字最佳放置位置以及為各類注記設(shè)置不同的字體、顏色、大小等特征。
加載河南省地圖底圖后,首先采用文字識(shí)別實(shí)驗(yàn)中獲取的位置信息對(duì)注記點(diǎn)符號(hào)進(jìn)行定位,并根據(jù)匹配的地名信息加載注記文字,然后根據(jù)地圖注記分類實(shí)驗(yàn)中獲取的注記類別,為4類地圖注記設(shè)置不同的字體、大小、顏色及符號(hào)樣式等特征。
在直接讀取注記位置信息進(jìn)行注記配置時(shí),注記文字默認(rèn)放置于點(diǎn)符號(hào)東北方向,由此產(chǎn)生了地圖注記沖突問(wèn)題,沖突占比為27.15%。為解決該問(wèn)題,在放置注記時(shí)使用ArcGIS環(huán)境下的 Maplex標(biāo)注引擎,以選擇注記理想放置位置,使注記圍繞點(diǎn)符號(hào)分布,將注記沖突占比降至0%。地圖點(diǎn)注記的配置結(jié)果如圖6所示。
圖6 地圖點(diǎn)注記配置結(jié)果
由實(shí)驗(yàn)結(jié)果可知,采用神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對(duì)地圖點(diǎn)注記的類別識(shí)別和文字識(shí)別,并應(yīng)用至地圖注記自動(dòng)配置中,是一種新的地圖注記配置思路。為評(píng)價(jià)本文方法的有效性,將配置結(jié)果與專家系統(tǒng)及其他注記配置方法的注記配置結(jié)果進(jìn)行對(duì)比分析,采取壓蓋、沖突、放置位置等常用的注記質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)對(duì)本文方法與專家系統(tǒng)及其他注記配置方法進(jìn)行評(píng)價(jià),結(jié)果如下:
(1)與專家系統(tǒng)的配置結(jié)果相比,采用本文方法得到的注記配置結(jié)果在注記位置分布上表現(xiàn)良好,避免了注記沖突的情況,注記壓蓋情況更少,注記配置結(jié)果較為分散,符合已有的注記配置規(guī)則,因此本文的注記配置方法能夠用于地圖注記自動(dòng)配置,以提高地圖的質(zhì)量。
(2)與專家系統(tǒng)及其他注記配置方法相比,本文方法考慮了地圖注記的類別屬性,在注記配置時(shí)采用不同的符號(hào)和色彩展示了地圖注記的類別,突出了各類注記的特點(diǎn),進(jìn)一步方便了地圖閱讀。同時(shí),將區(qū)分注記類別與自動(dòng)化配置相結(jié)合,簡(jiǎn)化了地圖注記配置的過(guò)程,提高了地圖制圖的效率。
本文利用從公開出版的地圖集中獲取的地圖注記數(shù)據(jù)集,采用深度學(xué)習(xí)的方法對(duì)地圖點(diǎn)注記圖像進(jìn)行類別識(shí)別和文字識(shí)別,并對(duì)地圖注記進(jìn)行位置匹配,結(jié)合注記文字和類別信息進(jìn)行注記樣式設(shè)置,實(shí)現(xiàn)了通過(guò)地圖注記圖像完成不同類別的地圖注記自動(dòng)配置,為地圖注記自動(dòng)配置提供了新的思路。對(duì)比已有的地圖注記配置方法,本文的方法具有以下優(yōu)點(diǎn):用戶可以通過(guò)注記圖像及地名位置信息實(shí)現(xiàn)注記的自動(dòng)配置,簡(jiǎn)化數(shù)據(jù)獲取過(guò)程,從而降低傳統(tǒng)制圖方法中數(shù)據(jù)處理的復(fù)雜度;將深度學(xué)習(xí)方法應(yīng)用于地圖注記配置中,可以提高地圖制圖的自動(dòng)化、智能化水平,對(duì)泛在用戶的制圖行為起到引導(dǎo)作用,同時(shí)提高了用戶的制圖效率和制圖質(zhì)量;降低了制圖難度,制圖速度更快,制圖選擇性更多,能夠針對(duì)專題進(jìn)行制圖。
隨著地圖注記數(shù)據(jù)集的擴(kuò)大,所包含注記類別的增加,本文的方法將能夠更廣泛地應(yīng)用于地圖制圖中,有效提高地圖制圖效率。根據(jù)地圖注記分類的實(shí)驗(yàn)結(jié)果,可以發(fā)現(xiàn)CBAM能夠提高地圖注記圖像分類的精度,當(dāng)樣本集數(shù)量擴(kuò)大時(shí),增加CBAM是否能進(jìn)一步提高分類精度是后續(xù)研究的一個(gè)方向。