趙鵬++趙雪峰++趙慶安++李生元++方騰偉++趙鑫如
摘 要:21世紀(jì)以來,在大數(shù)據(jù)和GPU加速訓(xùn)練的支持下,以深度學(xué)習(xí)為核心的人工智能技術(shù)迅速發(fā)展,并在多領(lǐng)域得到了廣泛應(yīng)用。與此同時,隨著國民經(jīng)濟(jì)實力和文化素質(zhì)的不斷提升,國家對于古建筑的保護(hù)也愈發(fā)重視。然而在長期自然及人為因素的共同作用下,古建筑難免會受到不同程度的損傷,這些損傷在很大程度上表現(xiàn)在結(jié)構(gòu)的表層,如裂縫、酥堿、剝落、傾斜、空鼓等。因此,對這些表層損傷實施快速和高效的識別和定位,為后續(xù)的診斷和修復(fù)工作提供指導(dǎo)具有重大意義。目前國內(nèi)對于古建筑表層損傷的檢測主要為人工方法,即通過目測和借助專業(yè)的設(shè)備完成工作。然而人工方法效率不高,且需要較強(qiáng)的專業(yè)性和經(jīng)驗因素。為解決該問題,文中提出了一種基于人工智能方法的古建筑表層損傷檢測技術(shù),通過獲取大量具有多類損傷古建筑的表層圖像樣本并進(jìn)行人工分類,使用卷積神經(jīng)網(wǎng)絡(luò)對樣本進(jìn)行訓(xùn)練,得到一個用于識別損傷的分類器并驗證其準(zhǔn)確性。分類器成功建立后,使用滑動窗口算法對結(jié)構(gòu)表層圖像進(jìn)行測試,從而完成損傷的定位工作。最后提出了眾包式檢測的思想,通過調(diào)動公眾來收集訓(xùn)練樣本,達(dá)到提高效率,節(jié)約成本的目的。
關(guān)鍵詞:人工智能;深度學(xué)習(xí);機(jī)器視覺;古建筑;損傷檢測
中圖分類號:TP368.5;TU317 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2017)09-00-05
0 引 言
古建筑作為一種重要的文明載體,是歷史文化遺產(chǎn)不可或缺的一部分。自21世紀(jì)以來,國家對于古建筑的保護(hù)愈發(fā)重視,維護(hù)和修復(fù)工作大量展開,并且得到了長足的發(fā)展[1]。
然而,古建筑的破壞現(xiàn)狀決定了損傷檢測和維護(hù)修復(fù)工作的高難度和高成本。近些年,國內(nèi)各地區(qū)將大量資金投入于古建筑修復(fù)工作。2014年,安徽省黃山市徽州區(qū)投入8 000萬元,對該區(qū)147處古建筑實施保護(hù)利用工程[2];同年,貴州省銅仁市投入6 000萬元,啟動了40個古建筑維護(hù)項目[3];2015年,廣東省珠海市高新區(qū)投入近3 000萬元,完成了對該區(qū)18處重要古建筑的修繕和活化工作[4];2016年,國家文物局投入2610萬元開始對永樂宮實施整體維修[5]。大量高投入的維護(hù)工作對損傷檢測與評定環(huán)節(jié)提出了更高的要求。
當(dāng)前古建筑砌體結(jié)構(gòu)的表層損傷檢測一般以目測為主,檢測設(shè)備為輔的方法進(jìn)行檢測。這種方式雖然看似簡便,但對檢測人員的專業(yè)性要求十分高,且需具備一定的損傷判定經(jīng)驗。例如對墻體裂縫的檢測,檢測人員必須具備能夠熟知該裂縫的性質(zhì)以及判定是否需要對其修復(fù)處理的能力。并且大范圍的檢測消耗人力成本高,故只能采取定期檢測和抽樣檢測的方式。就目前來說,這種檢測方式雖然可以達(dá)到基本滿意的效果,但有時仍然不能及時發(fā)現(xiàn)問題,無法對維護(hù)工作提供實時和必要的指導(dǎo),導(dǎo)致維修成本大大提高。
以深度學(xué)習(xí)為核心的人工智能技術(shù)的最大優(yōu)勢是無需特征提取,只要擁有足夠的樣本,經(jīng)過訓(xùn)練的分類器可以準(zhǔn)確識別損傷。隨著該研究領(lǐng)域的不斷升溫,每年都會出現(xiàn)許多訓(xùn)練更高效,分類更準(zhǔn)確的卷積神經(jīng)網(wǎng)絡(luò)模型,將深度學(xué)習(xí)應(yīng)用于結(jié)構(gòu)損傷檢測領(lǐng)域是趨勢發(fā)展的必然。
目前將深度學(xué)習(xí)引入結(jié)構(gòu)表層損傷檢測的研究很少,相關(guān)研究的網(wǎng)絡(luò)深度相對較淺[6],基本上均為二分類問題[7],且在識別的算法上效率不高。同時,也尚未見到任何應(yīng)用于古建筑或砌體結(jié)構(gòu)的相關(guān)研究。而本文將填補(bǔ)這一部分空白。
1 基本原理
以本文研究內(nèi)容為例,假設(shè)輸入一張像素分辨率為480×105的真彩色磚塊圖像,如圖1所示。圖像以像素為單位,因此該磚塊圖像寬度為480個像素,高度為105個像素。由于是真彩色圖像,每個像素具有紅、綠、藍(lán)三原色通道,即三個數(shù)字分量,每個分量的范圍為0~255,通過這三個分量的組合,形成了每個像素的顏色效果(例如三個分量均為0則為純黑色;三個分量均為255則為純白色)。對于計算機(jī)來說,真彩色圖像是由數(shù)字組成的三維數(shù)組,因此,圖1中的磚塊圖像在計算機(jī)中的表達(dá)為480×105×3=151 200個數(shù)字。圖像分類的任務(wù)即為對這數(shù)十萬個數(shù)字進(jìn)行數(shù)學(xué)運(yùn)算,從而得到一個最大概率的類別標(biāo)簽,如“裂縫”。
一般來說,圖像分類任務(wù)的網(wǎng)絡(luò)越深,效果就越好。但以全連接層為主的BP神經(jīng)網(wǎng)絡(luò)并不能做得很深。以圖1中的磚塊圖像為例,假如使用隱層神經(jīng)元個數(shù)為100的雙層神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,則需要學(xué)習(xí)480×105×3×100+100+100×4+4= 15120504個參數(shù),如果增加中間的隱層數(shù)量與更大尺寸的圖像,參數(shù)數(shù)目極易達(dá)到上百億。巨大的參數(shù)數(shù)量對計算機(jī)的運(yùn)算速度來說是一個極大的障礙,再加之海量參數(shù)很快會形成過擬合,因此一般的BP神經(jīng)網(wǎng)絡(luò)做到4層就已足夠。
卷積神經(jīng)網(wǎng)絡(luò)能夠做得較深的主要原因在于它擁有一般BP神經(jīng)網(wǎng)絡(luò)所不具備的可以很大程度上減少參數(shù)數(shù)目的特征,即局部連接和參數(shù)共享[8]。由于本文的研究內(nèi)容是基于視覺的損傷識別,因此只討論用于圖像分類的卷積神經(jīng)網(wǎng)絡(luò),而這也是目前研究應(yīng)用最為廣泛,發(fā)展速度最快的卷積神經(jīng)網(wǎng)絡(luò)。
不同于一般的BP神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)對于輸入圖像的處理方式并不是將其像素值排成一維的向量,而是直接將其看作一個三維的數(shù)組。例如上文提到的磚塊,卷積神經(jīng)網(wǎng)絡(luò)直接將其看作一個寬度為480,高度為105,深度為3的三維數(shù)組。寬度和高度代表了磚塊圖像的實際寬度和高度的像素值,深度代表每個像素三原色的通道值。卷積神經(jīng)網(wǎng)絡(luò)對輸入的數(shù)據(jù)在寬度和高度的方向上不斷進(jìn)行降維,但深度有時會增加,一般到最后的輸出層會減到和類別一樣的數(shù)量。本文的分類數(shù)目為4,因此最終通過卷積神經(jīng)網(wǎng)絡(luò)時,輸出層將具有1×1×4的維度,其圖形化架構(gòu)如圖2所示。
2 網(wǎng)絡(luò)架構(gòu)及超參數(shù)配置
本文的網(wǎng)絡(luò)訓(xùn)練基于22層的GoogLeNet[9](層數(shù)的確定僅考慮具有學(xué)習(xí)參數(shù)的結(jié)構(gòu)層,即卷積層和全連接層),GoogLeNet是ILSVRC-2014[10]的冠軍模型,是一種非常具有代表性的經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。endprint
針對磚塊損傷的特定圖像分類問題,本文對GoogLeNet的某些超參數(shù)做了細(xì)微調(diào)整,仍保留其基本的網(wǎng)絡(luò)架構(gòu)。為尊重原作者,本文將調(diào)整過的網(wǎng)絡(luò)在下文中稱為GoogLeNet for HMDI,HMDI為“古建筑”、“砌體結(jié)構(gòu)”、“損傷”和“識別”四個詞語的英文首字母。GoogLeNet for HMDI由卷積層、匯聚層、全連接層、ReLU層、局部響應(yīng)歸一化層(LRN層)、隨機(jī)失活層和Softmax層組合而成。此外,GoogLeNet具有一種稱為“Inception”的結(jié)構(gòu)。在Inception結(jié)構(gòu)中,將具有不同尺寸卷積核的卷積層并聯(lián),最后設(shè)置深度匯聚層,即將幾個分支在深度方向進(jìn)行組合并輸出。這種連接方式實現(xiàn)了網(wǎng)絡(luò)同時對多種尺度范圍特征的提取。Inception結(jié)構(gòu)如圖3所示。
GoogLeNet在最后的全連接層前設(shè)置了一個全局平均匯聚層,再次有效降低了參數(shù)數(shù)量。同時,為防止由于網(wǎng)絡(luò)過深造成梯度消失現(xiàn)象,GoogLeNet在網(wǎng)絡(luò)中增加了兩個輔助的Softmax層,用于反向傳播時增加前層的梯度。GoogLeNet for HMDI網(wǎng)絡(luò)架構(gòu)如圖4所示(省略了輔助的Softmax層)。
超參數(shù)配置如下:
(1)輸入層。輸入圖像尺寸為227×227。
(2)LRN層。歸一化區(qū)域尺寸n=5;LRN公式系數(shù)α=0.000 1,β=0.75。
(3)隨機(jī)失活層。隨機(jī)失活率為0.5。
(4)卷積層、匯聚層、全連接層超參數(shù)見表1所列。
3 數(shù)據(jù)集的建立及訓(xùn)練環(huán)境的搭建
本文用于實驗的數(shù)據(jù)集均來自北京故宮博物院古建部提供的故宮某一段像素分辨率為57 780×11 400的城墻的整體正投影圖像。使用人工方式將該圖像分出5 145個單獨磚塊樣本作為訓(xùn)練集,分成4類,即“未損傷”1 466個;“剝落”1830個;“酥堿”984個;“裂縫”865個。每種類別的圖像如圖5所示。
為保證訓(xùn)練集的樣本數(shù)量足夠多,本文采取數(shù)據(jù)增強(qiáng)操作,即對圖像實施旋轉(zhuǎn)、鏡像和改變對比度處理,最終將訓(xùn)練集擴(kuò)充為40 000個樣本(每類10 000個)。同時,在整體樣本圖像距訓(xùn)練集較遠(yuǎn)的位置,由人工分割2 000個樣本并進(jìn)行分類(每類500個),作為驗證集。最后,在城墻樣本其余位置取1個具有60個磚塊的部分城墻圖像用于測試。
本文的網(wǎng)絡(luò)訓(xùn)練及測試工作均在Windows環(huán)境下借助Caffe[11]深度學(xué)習(xí)框架使用GPU進(jìn)行網(wǎng)絡(luò)訓(xùn)練。Caffe基于C++語言,同時在訓(xùn)練和測試的過程中對結(jié)果的可視化處理需使用Matlab和Python語言。Caffe官方源代碼可在GitHub網(wǎng)站上取得[12],并在工作站上進(jìn)行調(diào)整和編譯。
研究使用的工作站軟硬件配置見表2、表3所列。
4 網(wǎng)絡(luò)訓(xùn)練
網(wǎng)絡(luò)訓(xùn)練之前需對數(shù)據(jù)進(jìn)行預(yù)處理,本文采取零均值化方式。零均值化,即將所有輸入圖像 (訓(xùn)練集和驗證集分開處理)的像素平均值計算出來,再用每個像素值減去該平均值得到新的圖像代替原有圖像作為輸入,此舉可降低由較大均值產(chǎn)生的梯度膨脹影響。若需進(jìn)行一些后續(xù)處理工作,例如主成分分析,則需數(shù)據(jù)的均值為零。需要說明的是,零均值化并沒有改變圖像的有效特征信息,因為其并沒有改變像素之間的相對差值。例如將灰色調(diào)的磚塊圖像整體變換為白色調(diào),通過人眼仍然能夠判斷出其是否損傷,正如計算機(jī)對圖像的識別也并非根據(jù)其絕對像素值一樣。
網(wǎng)絡(luò)訓(xùn)練采用隨機(jī)梯度下降+動量法,基礎(chǔ)學(xué)習(xí)率設(shè)為0.001,步長為5 000,衰減率為0.96,即每迭代5 000次將學(xué)習(xí)率乘上0.96;訓(xùn)練迭代200次進(jìn)行一次驗證,最大迭代次數(shù)為10 000;動量系數(shù)為0.9;權(quán)重正則化系數(shù)取0.000 2。
學(xué)習(xí)率隨迭代次數(shù)變化如圖6所示。訓(xùn)練損失隨迭代次數(shù)變化如圖7所示。驗證準(zhǔn)確率隨迭代次數(shù)變化如圖8所示。
由訓(xùn)練結(jié)果可知,在之前約20 000次迭代中,損失迅速減小,最終在第4 000次左右趨近于0。同時,準(zhǔn)確率從初始的25%到第4 000次左右的迭代基本穩(wěn)定,最終為90.85%,對于具有很多通過人工方式尚無法準(zhǔn)確分類的磚塊樣本來說,這個準(zhǔn)確率很高。
5 滑動窗口定位測試
利用卷積神經(jīng)網(wǎng)絡(luò)成功識別磚塊的損傷后,便可完成“定位”任務(wù),即給定輸入的結(jié)構(gòu)表面圖像,計算機(jī)不僅可以識別其損傷,還能夠?qū)p傷的位置進(jìn)行精確定位。為了實現(xiàn)此功能,本文提出了滑動窗口算法。
滑動窗口算法即采取若干較小尺寸的“滑窗”對輸入圖像進(jìn)行等步長或變步長掃描?;懊客A粼谝粋€位置,便將該位置的部分圖像提取并輸入分類器。每次測試選取一個類別作為研究對象,若該位置的圖像被分類器識別為這一類(結(jié)果為陽性),則保留該位置的圖像;若識別為其他類(結(jié)果為陰性),則將該位置填充為白色。因此,最終的測試結(jié)果為在白色背景上顯示檢測出的陽性區(qū)域,即完成了定位工作。
如前文所述,選取一塊具有60塊磚塊的城墻表層圖像用于測試,圖像像素分辨率為1 860×1 260,采取兩種尺寸的滑窗:480×105作為磚塊中“順”的滑窗,第一次掃描將xy方向起始位置均設(shè)為1,第二次x方向設(shè)為480-(480-210)/2+1=346,y方向設(shè)為105+1=106;210×105作為“丁”的滑窗,第一次掃描x方向起始位置設(shè)為480+1=481,y方向設(shè)為1,第二次x方向設(shè)為(480-210)/2+1=136,y方向設(shè)為105+1=106。二者移動步長均為x方向480+210=690,y方向為210?;瑒硬呗约皽y試樣本分別如圖9(a),圖9(b)所示。
(a)滑動策略
(b)測試樣本
三種損傷的測試結(jié)果如圖10和表4所示。
(a)剝落結(jié)果endprint
(b)裂縫結(jié)果
(c)酥堿結(jié)果
圖10 3種損傷的測試結(jié)果
由測試結(jié)果可知,三種損傷檢測準(zhǔn)確率均在90%以上。
(1)對于剝落損傷,4塊沒有識別出來,其中1塊誤判成了裂縫,且有1塊未損傷的磚塊誤判成了剝落;
(2)對于裂縫損傷,1塊沒有識別出來,該磚塊誤判成了酥堿,且有1塊剝落誤判成了裂縫;
(3)對于只有2塊的酥堿損傷,分類器成功將其識別,但有1塊裂縫誤判成了酥堿。
導(dǎo)致分類錯誤的原因在于大多損傷程度較輕,或者具有另一類損傷特征,僅有一處錯誤分類為噪聲干擾,其表面有一些深色物質(zhì),如圖11所示。
6 眾包式損傷檢測
人工智能領(lǐng)域之所以能夠持續(xù)升溫并發(fā)揮巨大的作用,除了計算機(jī)硬件性能不斷提升外,海量數(shù)據(jù)的支持也是重要原因。如果具有更多的古建筑結(jié)構(gòu)表層圖像訓(xùn)練樣本,甚至建立一個龐大的損傷檢測數(shù)據(jù)庫,無論對于損傷檢測分類器性能的提升,還是人工智能技術(shù)在土木工程領(lǐng)域應(yīng)用的發(fā)展,都十分有利。
所謂眾包,即能夠讓大眾參與到建立數(shù)據(jù)庫的工作中。數(shù)據(jù)庫中的樣本均為圖像,因此,只要具備拍攝圖像的條件,便能使數(shù)據(jù)庫不斷擴(kuò)充。通過建立服務(wù)器,號召大眾在古建名勝游玩時拍照上傳,由工作人員對上傳的圖像進(jìn)行提取和初步處理,再由專業(yè)檢測人員進(jìn)行分類,最后進(jìn)入數(shù)據(jù)庫,并不斷對分類器進(jìn)行訓(xùn)練,優(yōu)化其性能。眾包式損傷檢測模式如圖12所示。
圖12 眾包式損傷檢測模式
采取眾包模式可大量減少數(shù)據(jù)收集的時間,提升效率。并且大數(shù)據(jù)的實現(xiàn)使更深卷積神經(jīng)網(wǎng)絡(luò)的實現(xiàn)成為可能,人工智能技術(shù)在土木工程結(jié)構(gòu)檢測中的應(yīng)用具有廣闊的發(fā)展空間。
7 結(jié) 語
本文提出了一種基于人工智能的古建筑表層損傷檢測技術(shù)。該技術(shù)以深度卷積神經(jīng)網(wǎng)絡(luò)為核心,通過網(wǎng)絡(luò)訓(xùn)練得到識別損傷的分類器,并借助滑動窗口技術(shù)實現(xiàn)損傷定位。實驗結(jié)果表明,該方法具有較高的準(zhǔn)確度和實用性,且發(fā)展空間較大。提出一種眾包檢測模式,使公眾能夠間接參與到古建筑的損傷檢測工作中。建立損傷檢測“大數(shù)據(jù)”,在提高工作效率的同時還能夠節(jié)約成本,因此我們在未來的研究中將會繼續(xù)完成這一工作。
參考文獻(xiàn)
[1]陳蔚.我國建筑遺產(chǎn)保護(hù)理論和方法研究[D].重慶:重慶大學(xué), 2006.
[2]程錫鋒, 王金滿.徽州區(qū)實施古建筑保護(hù)利用工程[EB/OL]. http://www.newshs.com/a/20140213/00180.htm.
[3]田牛強(qiáng).銅仁市投入6000萬元保護(hù)性維修古建筑群[EB/OL]. http://www.tongrenshi.com/show-9-9923-1.html.
[4]劉海瑋.珠海高新區(qū):增加投入修繕古建筑并活化利用[J].城鄉(xiāng)建設(shè), 2016(9):42-42.
[5]張碧.國家文物局投資2610萬保護(hù)永樂宮古建筑[EB/OL]. http://www.chinanews.com/cul/2014/03-26/5993746.shtml.
[6] Makantasis K, Protopapadakis E, Doulamis A, et al. Deep convolutional neural networks for efficient vision based tunnel inspection[C].Intelligent Computer Communication and Processing (ICCP), 2015 IEEE International Conference on. IEEE, 2015: 335-342.
[7] Cha Y J, Choi W, Buyukozturk O. Deep learning-based crack damage detection using convolutional neural network[J].Computer-Aided Civil and Infrastructure Engineering, 2017, 32(5): 361-378.
[8]張重生.深度學(xué)習(xí)原理與應(yīng)用實踐[M].北京: 電子工業(yè)出版社, 2016.
[9] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2015: 1-9.
[10] Stanford Vision Lab. Large Scale Visual Recognition Challenge (ILSVRC)[EB/OL]. http://www.image-net.org/challenges/LSVRC.
[11] Jia Y, Shelhamer E. Caffe[EB/OL].http://caffe.berkeleyvision.org/
[12] GitHub. Caffe[CP/OL]. https://github.com/BVLC/caffe/tree/windows.endprint