白崗崗,侯精明,韓 浩,夏軍強(qiáng),李丙堯,張陽(yáng)維,衛(wèi)志豪
(1.西安理工大學(xué)省部共建西北旱區(qū)生態(tài)水利國(guó)家重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710048;2.武漢大學(xué)水資源與水電工程科學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430072)
隨著全球氣候變化加劇,極端降雨頻次不斷增多,與此同時(shí)城鎮(zhèn)化進(jìn)程快速推進(jìn),極大地改變了下墊面條件,致使城市內(nèi)澇積水問(wèn)題日益突出[1-5]。2012年北京“7·21”特大暴雨引發(fā)了嚴(yán)重的城市內(nèi)澇,造成嚴(yán)重的人員傷亡和經(jīng)濟(jì)損失。2018年8月遼寧大連突降大到暴雨,路面積水使燈箱漏電,致一名蹚水行走的男子不幸觸電身亡??梢?jiàn)高效、安全、精準(zhǔn)地開(kāi)展城市內(nèi)澇積水監(jiān)測(cè)對(duì)降低內(nèi)澇成災(zāi)風(fēng)險(xiǎn)、減少內(nèi)澇引起的城市交通及市民出行安全等隱患具有重要意義[6]。
目前針對(duì)城市內(nèi)澇積水信息監(jiān)測(cè)的主要方法有人工觀測(cè)法、儀器測(cè)量法等,其中人工觀測(cè)法需要消耗大量的人力物力,效率較低且存在嚴(yán)重的安全隱患;儀器測(cè)量法通過(guò)傳感器進(jìn)行量測(cè),有著方便快捷且精度較高的優(yōu)點(diǎn),但缺點(diǎn)也較明顯,如儀器成本較高且受外界的干擾較大[7]。因此,需尋找一種安全、效率高且成本低的監(jiān)測(cè)方法來(lái)監(jiān)測(cè)城市內(nèi)澇積水。
近年來(lái)隨著深度學(xué)習(xí)技術(shù)的不斷提高,人工智能飛速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)作為深度學(xué)習(xí)的代表算法,在圖像識(shí)別領(lǐng)域中的應(yīng)用取得了大量突破性成果。Hua等[8]針對(duì)大場(chǎng)景遙感影像中多個(gè)物體和微物體的實(shí)時(shí)檢測(cè),提出了一種將視覺(jué)感知和CNN相結(jié)合的遙感影像實(shí)時(shí)物體檢測(cè)算法,該算法不僅能保證檢測(cè)精度,且可大幅度提高目標(biāo)檢測(cè)的效率。Zang等[9]提出了一種基于深度學(xué)習(xí)和計(jì)算機(jī)視覺(jué)的自動(dòng)車牌檢測(cè)和識(shí)別方法,該方法對(duì)于車牌檢測(cè)和識(shí)別的效果較好。Massoli等[10]基于深度學(xué)習(xí)對(duì)人臉進(jìn)行識(shí)別,并采用超分辨率技術(shù)提升了對(duì)人臉識(shí)別的精度。陳利[11]提出了一種基于深度學(xué)習(xí)技術(shù)的車牌識(shí)別方法,與傳統(tǒng)方法相比識(shí)別和定位車牌的準(zhǔn)確率更高。何西麟[12]采用深度學(xué)習(xí)技術(shù)搭建了基于CNN模型的手寫字符識(shí)別模型,手寫體字符的識(shí)別率超過(guò)90%。盧宏濤等[13]將CNN應(yīng)用于物體監(jiān)測(cè)和人臉識(shí)別,與傳統(tǒng)方法相比,CNN模型的識(shí)別精度較高。劉胤等[14]應(yīng)用圖像識(shí)別技術(shù)實(shí)現(xiàn)了實(shí)驗(yàn)室異常自動(dòng)監(jiān)測(cè)和人臉自動(dòng)識(shí)別等功能,比傳統(tǒng)人工監(jiān)控方法具有更高的識(shí)別速度和精度。張雪芹等[15]基于植物識(shí)別算法和CNN中的AlexNet網(wǎng)絡(luò)模型對(duì)植物圖像進(jìn)行識(shí)別,該方法的泛化性和準(zhǔn)確性較高,識(shí)別速度較快。
本文基于西安理工大學(xué)金花校區(qū)內(nèi)的道路積水圖像,采用基于CNN的目標(biāo)檢測(cè)算法識(shí)別道路積水區(qū)域并提取積水面積,與實(shí)測(cè)結(jié)果對(duì)比表明,該方法可以實(shí)現(xiàn)道路積水范圍的提取且具有較高的精度,可為相關(guān)部門自動(dòng)準(zhǔn)確獲取道路積水信息提供技術(shù)依據(jù)。
CNN是基于深度學(xué)習(xí)理論的一種前饋神經(jīng)網(wǎng)絡(luò),在圖像處理領(lǐng)域有著出色的表現(xiàn)[16]。CNN擅長(zhǎng)發(fā)掘數(shù)據(jù)的局部特征,對(duì)數(shù)據(jù)的旋轉(zhuǎn)、平移等具有較高的穩(wěn)健性,通過(guò)輸入原始數(shù)據(jù),采取卷積、池化及激活函數(shù)映射等操作,最后按目標(biāo)任務(wù)特征輸出目標(biāo)分類和定位[17]。CNN由輸入層、卷積層、池化層、全連接層以及輸出層組成,其中輸入層用來(lái)接收樣本數(shù)據(jù),并將樣本數(shù)據(jù)輸送到CNN中進(jìn)行特征提取;卷積層通過(guò)多個(gè)濾波器進(jìn)行卷積操作進(jìn)而提取輸入數(shù)據(jù)的特征,每個(gè)卷積層包含若干個(gè)特征圖,同一特征圖的神經(jīng)元共享同一卷積核的權(quán)值參數(shù),可以減少各網(wǎng)絡(luò)層間的連接及過(guò)擬合現(xiàn)象,由前一層的特征圖與卷積核進(jìn)行卷積運(yùn)算并經(jīng)過(guò)激活函數(shù)后輸出得到這一層的特征圖;池化層亦稱為下采樣層,通過(guò)求局部區(qū)域的最大值或平均值進(jìn)行降采樣,進(jìn)而縮小矩陣尺寸,減小特征空間,即在減少數(shù)據(jù)量的同時(shí)保留可用信息。CNN通常取若干個(gè)卷積層和池化層交替連接,而后連接若干個(gè)全連接層,全連接層用于將目標(biāo)任務(wù)形式化為目標(biāo)函數(shù),實(shí)現(xiàn)最終分類[18]。
CNN不需要任何輸入和輸出之間的精確表達(dá)式,只需通過(guò)大量學(xué)習(xí)就能得到輸入與輸出之間的映射關(guān)系[19]。在訓(xùn)練CNN時(shí),反向傳播算法是性能最好且應(yīng)用最為廣泛的方法,通過(guò)計(jì)算預(yù)測(cè)值與真實(shí)值之間的誤差(損失),并將誤差由最后一層逐層向前反饋,同時(shí)更新每層參數(shù),再進(jìn)行前饋,如此往復(fù),直到網(wǎng)絡(luò)模型收斂,進(jìn)而達(dá)到模型訓(xùn)練的目的[20]。對(duì)于樣本數(shù)量為N的訓(xùn)練集,使用交叉熵作為損失函數(shù)[21],可表示為
(1)
式中:J為損失函數(shù);yn為第n個(gè)樣本所屬的類別;xn為第n個(gè)樣本的特征向量;w為末層權(quán)參數(shù);b為相應(yīng)偏置參數(shù)。
CNN在測(cè)試時(shí)輸入圖像所屬某一類別y的預(yù)測(cè)值ypred為
(2)
TensorFlow是Google在Dist Belief的基礎(chǔ)上采用數(shù)據(jù)流程圖進(jìn)行數(shù)值計(jì)算,對(duì)神經(jīng)網(wǎng)絡(luò)框架進(jìn)一步優(yōu)化得到的一種深度學(xué)習(xí)系統(tǒng),可在CPU和GPU上運(yùn)行,具有速度快、精度高、靈活性強(qiáng)、可用范圍廣等特點(diǎn),被廣泛應(yīng)用于CNN、遞歸神經(jīng)網(wǎng)絡(luò)(RNN)等各類機(jī)器學(xué)習(xí)算法[18,22]。TensorFlow是通過(guò)計(jì)算圖的形式來(lái)表述計(jì)算的一種深度學(xué)習(xí)系統(tǒng),目前已有多種經(jīng)COCO數(shù)據(jù)庫(kù)訓(xùn)練且基于TensorFlow的網(wǎng)絡(luò)結(jié)構(gòu),如Fast R-CNN、Faster R-CNN、YOLO、R-FCNN 及YOLOv2等,故僅需在這些基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)上修改某些參數(shù)便可訓(xùn)練目標(biāo)檢測(cè)模型[23]。與Faster R-CNN、YOLO相比,YOLOv2提出了新的Darknet-19基礎(chǔ)網(wǎng)絡(luò),共包含19層卷積層和5層池化層,使用大量的3×3和1×1卷積,通過(guò)將1×1的卷積置于3×3卷積之間對(duì)積水特征進(jìn)行壓縮,并采用了Batch Normalization(批量歸一化)處理及 K-means 聚類作為候選框選取規(guī)則,通過(guò)這一系列調(diào)優(yōu)算法,在保證檢測(cè)精度的基礎(chǔ)上提升了檢測(cè)速度。
本文選用基于CNN的YOLOv2目標(biāo)檢測(cè)模型,模型通過(guò)輸入分辨率為416像素×416像素的積水圖像,采用Darknet-19基礎(chǔ)結(jié)構(gòu)對(duì)輸入積水圖像進(jìn)行積水特征提取,輸出13×13×1 024特征圖,并取第16層的26×26×512特征圖重組成13×13×256特征圖,采用融合方法將二者相結(jié)合,生成13×13×1 280特征圖,最終經(jīng)過(guò)卷積操作,生成13×13×30的特征圖,具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
采用高清數(shù)碼攝像機(jī)和照相機(jī)設(shè)備采集西安理工大學(xué)金花校區(qū)道路地勢(shì)低洼或易積水區(qū)積水圖像。攝像機(jī)安裝位置如圖2所示,每隔10 min獲取一幀積水圖像,得到的圖像分辨率為2 560像素×1 440像素;照相機(jī)拍攝的積水圖像分辨率為4 272像素×2 848像素。共篩選采集了積水圖像1 000幅,作為初始積水樣本數(shù)據(jù)集,圖3為數(shù)據(jù)集圖像示例。
(a) 攝像機(jī)拍攝圖像
為避免在訓(xùn)練過(guò)程中由于訓(xùn)練樣本過(guò)少而出現(xiàn)過(guò)擬合現(xiàn)象,需對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充。數(shù)據(jù)擴(kuò)充方法有隨機(jī)裁剪、角度變換及彩色轉(zhuǎn)換等,為增加數(shù)據(jù)多樣性,考慮不同方位和光照強(qiáng)度時(shí)的積水圖像,采用彩色轉(zhuǎn)換、角度變換將樣本數(shù)據(jù)集擴(kuò)充至3 000幅,其中由700幅圖像進(jìn)行角度變換得到2 000幅,另300幅圖像進(jìn)行彩色轉(zhuǎn)換得到1 000幅。因檢測(cè)目標(biāo)較大,而降低圖像像素不會(huì)影響目標(biāo)檢測(cè)精度,但可大幅度提高模型訓(xùn)練速度,故將圖像縮小至416像素×416像素,最后采用LabelImg標(biāo)注工具對(duì)數(shù)據(jù)集進(jìn)行標(biāo)簽制作。
基于OpenCV(open source computer vision library)計(jì)算機(jī)視覺(jué)開(kāi)源庫(kù),編寫代碼對(duì)原積水樣本圖像進(jìn)行角度變換(水平或垂直方向旋轉(zhuǎn)),如圖4所示;通過(guò)Matlab 軟件編寫代碼實(shí)現(xiàn)對(duì)數(shù)據(jù)集的彩色轉(zhuǎn)換,如圖5所示,分別在色彩原色R、G、B即紅色、綠色和藍(lán)色3個(gè)通道加不同的失真值。
圖4 角度變換
圖5 彩色轉(zhuǎn)換
積水目標(biāo)檢測(cè)是通過(guò)學(xué)習(xí)有標(biāo)簽的圖像樣本,然后對(duì)新的圖像做出預(yù)測(cè)的過(guò)程,故需提前生成標(biāo)簽[24]。用LabelImg標(biāo)注工具可在圖像中標(biāo)注目標(biāo)位置并生成表示目標(biāo)標(biāo)準(zhǔn)框位置的xml文件,文件中包含圖像名稱、像素大小、所屬圖片位置及標(biāo)注的積水范圍等信息,極大地方便了數(shù)據(jù)集標(biāo)簽的制作,如圖6所示。
(a) 制作標(biāo)簽界面
在經(jīng)數(shù)據(jù)預(yù)處理后得到的3 000幅積水?dāng)?shù)據(jù)集中,選取2 500幅圖像作為訓(xùn)練集,其中1 665幅圖像是由原始圖像經(jīng)過(guò)彩色轉(zhuǎn)換、角度變換得到的,500幅圖像作為測(cè)試集(攝像機(jī)圖像145幅,照相機(jī)圖像355幅)。采用中央處理器為Intel i7-8700、GPU為RTX2070的硬件配置,運(yùn)行環(huán)境為Windows 10.0、CUDA 10.0以及TensorFlow深度學(xué)習(xí)系統(tǒng),實(shí)現(xiàn)基于YOLOv2算法的模型訓(xùn)練。經(jīng)多次訓(xùn)練和參數(shù)調(diào)整,設(shè)置的模型網(wǎng)絡(luò)參數(shù)如下:初始學(xué)習(xí)率為0.001,批尺寸為32,迭代次數(shù)為50次,并采用正則化方法來(lái)防止模型過(guò)擬合,最終訓(xùn)練產(chǎn)生了用于預(yù)測(cè)積水的模型權(quán)重,其保存了模型的結(jié)構(gòu)、權(quán)重以及訓(xùn)練參數(shù)配置等。圖7為模型對(duì)積水?dāng)?shù)據(jù)集的訓(xùn)練與驗(yàn)證準(zhǔn)確率,平均值分別為96.1%和90.1%。
圖7 模型訓(xùn)練和驗(yàn)證結(jié)果
利用訓(xùn)練好的模型權(quán)重,可實(shí)現(xiàn)積水圖像自動(dòng)識(shí)別及積水面積自動(dòng)提取。圖8為部分測(cè)試集里的圖像對(duì)模型準(zhǔn)確率進(jìn)行測(cè)試的效果。攝像機(jī)拍攝機(jī)位、角度不變,拍攝畫面單一,而照相機(jī)拍攝場(chǎng)地、角度都是隨機(jī)的,故模型對(duì)攝像機(jī)圖像識(shí)別效果較照相機(jī)要好。
(a) IMG_1
為實(shí)現(xiàn)對(duì)圖像中積水面積的提取,分別用照相機(jī)垂直拍攝的圖像(圖9(a)(b))和攝像機(jī)拍攝的、經(jīng)過(guò)曲面矯正和透視變換技術(shù)矯正的圖像(圖9(c))進(jìn)行識(shí)別,并可自動(dòng)提取識(shí)別類別、識(shí)別率及檢測(cè)框坐標(biāo)xmax、xmin、ymax、ymin等信息,表1為積水圖像檢測(cè)框信息。
(a) IMG_4
表1 積水圖像檢測(cè)框信息
所有圖像尺寸均為416像素×416像素,即圖像大小Sa=173 056像素,以圖像IMG_4為例,整個(gè)圖像的真實(shí)尺寸為55 cm×55 cm,即圖像實(shí)際面積A=3 025 cm2,利用攝影測(cè)量原理,即式(3)可計(jì)算出積水識(shí)別面積A識(shí)=1 551 cm2,與積水實(shí)測(cè)面積A實(shí)=1 434 cm2相比,誤差約為8%。同理可計(jì)算出圖像IMG_5和IMG_6的積水面積,結(jié)果如表2所示。
(3)
表2 積水識(shí)別面積與實(shí)測(cè)面積對(duì)比
由表2可知,利用本文方法計(jì)算得到的積水識(shí)別面積與實(shí)測(cè)面積誤差均在允許范圍(±20%)內(nèi),驗(yàn)證了基于深度學(xué)習(xí)技術(shù)的城市道路積水范圍識(shí)別和提取方法的合理性和可行性。
于西安理工大學(xué)金花校區(qū)采集1 000幅道路積水圖像數(shù)據(jù),經(jīng)數(shù)據(jù)擴(kuò)充得積水樣本集3 000幅圖像,其中2 500幅作為訓(xùn)練集,500幅作為測(cè)試集,采用TensorFlow深度學(xué)習(xí)系統(tǒng),基于CNN的YOLOv2模型對(duì)積水區(qū)域進(jìn)行了智能識(shí)別,實(shí)現(xiàn)了對(duì)積水圖像信息的智能獲取,訓(xùn)練和驗(yàn)證的平均準(zhǔn)確率分別為96.1%和90.1%,自動(dòng)提取的積水面積誤差也均在允許的范圍內(nèi),驗(yàn)證了方法的合理性和可行性,可為城市內(nèi)澇積水監(jiān)測(cè)與管理提供參考。