柳進(jìn)元,張明鋒
(濕潤亞熱帶生態(tài)地理過程教育部重點實驗室,福建師范大學(xué)地理科學(xué)學(xué)院,福建 福州 350117)
近年來,隨著城市的快速發(fā)展和極端氣候變化,在全球范圍內(nèi),城市洪水已成為制約人類發(fā)展最頻繁、最嚴(yán)重的災(zāi)害之一.瑞士再保險公司發(fā)布的sigma報告顯示,2017年全球自然災(zāi)害造成的相關(guān)經(jīng)濟(jì)損失高達(dá)3 300多億美元,大部分的損失來自洪水災(zāi)害,洪水災(zāi)害的損失占全球每年受災(zāi)人口的95%,直接經(jīng)濟(jì)損失占總數(shù)的73%[1].城市洪災(zāi)的發(fā)生也會造成重大的生命財產(chǎn)損失,如2021年我國某市特大暴雨,造成全省1 453.16萬人受災(zāi),因災(zāi)遇難302人,50人失蹤[2].
面對城鎮(zhèn)突發(fā)暴雨狀況,如何有效地應(yīng)對城市洪災(zāi)顯得尤為重要.城市洪災(zāi)的預(yù)警和應(yīng)急需要獲取實時且覆蓋面廣的內(nèi)澇深度信息[3].目前,城市內(nèi)澇信息的識別提取主要有以下4種方法: 社交媒體數(shù)據(jù)[4]、水位傳感器[5]、遙感[6-8]和視頻圖像監(jiān)控數(shù)據(jù)[9].其中,水位傳感器由于安裝成本高,且多安裝于江河湖泊水庫等較大型水體處,因此它的監(jiān)測范圍難以覆蓋整個城市區(qū)域[10];通過衛(wèi)星遙感手段可以監(jiān)測區(qū)域受災(zāi)范圍,但其只能區(qū)分非洪水區(qū)和洪水區(qū)[11],并不能詳細(xì)了解到城市道路中內(nèi)澇的深度信息;社交媒體數(shù)據(jù)作為一種新型數(shù)據(jù)源,當(dāng)洪災(zāi)發(fā)生時,社交媒體用戶會發(fā)布大量的視頻圖像數(shù)據(jù),這就為深度學(xué)習(xí)提供了大量研究數(shù)據(jù).隨著深度學(xué)習(xí)的快速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)模型(convolutional neural network,CNN)逐漸應(yīng)用于目標(biāo)檢測任務(wù),這使得基于CNN的目標(biāo)檢測模型算法大量涌現(xiàn),將其應(yīng)用在城市內(nèi)澇研究中既可高效智能地獲取水位信息,也具有部署成本低、覆蓋范圍廣等優(yōu)勢.
當(dāng)前該方面研究已有不少案例.Jiang等[12]利用SSD(single shot multibox detector)提出了一種基于常見參考物的城市內(nèi)澇自動估計方法,并以河北省2017年7月的一場強降雨為案例,然而該實驗缺乏測量工具來驗證水位的真實高度.Vitry等[13]利用DCNN(deep convolutional network)將監(jiān)控設(shè)備拍攝的自然水體與洪水進(jìn)行區(qū)分,并可監(jiān)測洪水水位波動情況,雖然其具有監(jiān)測范圍廣的優(yōu)勢,但不能獲取當(dāng)前地點的絕對水位信息.Huang等[14]利用Mask R-CNN對車輪參照物進(jìn)行識別,之后通過畢達(dá)哥拉斯算法測量出路面水深,這種方法雖然精度較高,但由于Mask R-CNN為多階段目標(biāo)檢測算法,在面對視頻數(shù)據(jù)時,無法做到實時檢測.以上學(xué)者在城市內(nèi)澇信息提取方面做出了許多成果,但所采用的檢測算法大都以固定尺寸圖像作為輸入訓(xùn)練數(shù)據(jù),增加了數(shù)據(jù)預(yù)處理的工作量,而本文所選用的YOLOv5檢測算法可輸入任意尺寸的視頻圖像,在數(shù)據(jù)預(yù)處理方面節(jié)省了大量重復(fù)操作時間,且由于其檢測速度快、準(zhǔn)確率高的特點被廣泛應(yīng)用于實際工作場景.
為了從街道攝像頭所拍攝的視頻圖像中提取內(nèi)澇深度信息,需要將街道上隨處可見的參照物作為識別對象,常見的參照物有防撞桶、交通錐、垃圾箱、共享單車和車輪等,這些參照物在同一片區(qū)域往往具有特定的高度,可當(dāng)作“標(biāo)尺”,因此,根據(jù)參照物高于水面的高度即可估算局地的內(nèi)澇深度.本文在街道上測量了部分參照物(圖1)的真實高度,如表1所示.其中,共享單車的高度選取車把手到地面的距離,輪胎則選取街道中常見的家用小轎車輪胎.
圖1 研究區(qū)參照物Fig.1 Study area reference
表1 參照物實際高度Tab.1 Actual height of reference
YOLOv5[15]算法是由Ultralytics LLC 公司在YOLOv4算法的基礎(chǔ)上不斷改進(jìn)得到的單階段檢測算法,與其他多階段檢測算法相比,其最顯著的優(yōu)勢在于保證了檢測精度的同時大幅提升了檢測速度,算法的結(jié)構(gòu)和輕體量也使得它可以方便快捷的部署在移動端.YOLOv5算法的網(wǎng)絡(luò)結(jié)構(gòu)共分為4個部分,如圖2所示,分別為輸入端(input)、骨干網(wǎng)絡(luò)(backbone)、多尺度特征融合模塊(neck)和預(yù)測端(prediction).
圖2 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of YOLOv5
其中,YOLOv5算法輸入端包含 Mosaic 數(shù)據(jù)增強機(jī)制、自適應(yīng)錨框計算機(jī)制及自適應(yīng)圖片縮放機(jī)制3個部分.在Mosaic 數(shù)據(jù)增強機(jī)制中先將圖像進(jìn)行隨機(jī)裁剪、隨機(jī)縮放和隨機(jī)分布操作,之后再進(jìn)行圖像拼接,以此豐富圖像檢測數(shù)據(jù)集并使得網(wǎng)絡(luò)的魯棒性更好,在減少了GPU計算量的同時增加了網(wǎng)絡(luò)的普遍適用性.自適應(yīng)錨框算法會自動根據(jù)不同的數(shù)據(jù)集設(shè)定初始的錨框,由于初始錨框已有較好的效果,故本實驗不改變錨框參數(shù).骨干網(wǎng)絡(luò)結(jié)構(gòu)主要為Focus結(jié)構(gòu)和CSPNET(cross stage partial network)結(jié)構(gòu).Focus結(jié)構(gòu)會將圖像進(jìn)行切片操作,先將608×608×3的圖像轉(zhuǎn)換為304×304×12的特征圖,然后再經(jīng)過卷積操作后得到304×304×32的特征圖.多尺度特征融合模塊中應(yīng)用了特征金字塔網(wǎng)絡(luò) (feature pyramid networks,F(xiàn)PN)和金字塔注意力網(wǎng)絡(luò) (pyramid attention network,PAN),F(xiàn)PN網(wǎng)絡(luò)將特征信息從上向下通過上采樣的方式傳遞融合,傳達(dá)強語義特征,PAN網(wǎng)絡(luò)將特征信息從下向上傳達(dá)強定位特征,兩者的應(yīng)用加強了網(wǎng)絡(luò)特征融合能力.預(yù)測端包括Bounding box 損失函數(shù)及非極大值抑制 (nonmaximum suppression,NMS)2個部分.YOLOv5 算法將GIOU_Loss函數(shù)作為 Bounding box 的損失函數(shù),解決了圖像中目標(biāo)邊界框不重合的問題,同時使得預(yù)測框回歸的速度和精度有所提高.NMS的使用提高了多目標(biāo)檢測和有遮擋檢測的識別能力,可獲得最優(yōu)目標(biāo)檢測框.
城市未發(fā)生暴雨洪災(zāi)時,街道路面無積水,此時利用目標(biāo)檢測算法可檢測出參照物的完整高度,當(dāng)城市發(fā)生洪災(zāi)后,街道上的參照物被水淹沒,此時可以檢測出參照物高出水面的部分,如圖3所示,由于街道參照物種類較多,此處以輪胎舉例城市內(nèi)澇的測量原理,公式如下:
圖3 水深測量示意圖Fig.3 Schematic diagram of water depth
H1=Ymax-Ymin,
當(dāng)?shù)玫絽⒄瘴镱A(yù)測框的高度差后,城市內(nèi)澇水深可由如下公式計算得出:
其中,H1為參照物的總像素高度,Ymax為參照物上邊框的像素值,Ymin為參照物下邊框的像素值,D為街道積水深度,H2為參照物高于水面部分的像素高度,Hr為參照物的實際高度,單位為m.
本次實驗以校園內(nèi)一處游泳池作為實驗平臺,整個實驗主要包括3個部分,分別為攝像機(jī)、參照物與水尺.首先,將鋁合金水尺固定在池壁上用于記錄真實水位變化;其次,將參照物分別擺放好并將攝像機(jī)調(diào)整到合適的拍攝角度;最后,向水池中注水并打開攝像機(jī)進(jìn)行視頻錄制,實驗的具體場景如圖4所示.
圖4 實驗場景示意圖Fig.4 Schematic diagram of experimental scene
本次實驗以街道上常見的防撞桶作為水深識別的參照物,錄制視頻時長為3 h,幀率為30 幀/s,分辨率為1 080 P,由于泳池注水時間漫長,視頻中真實水位變化緩慢,所以利用視頻剪輯軟件將視頻按照每間隔60 s以圖像的形式輸出,每幅圖像都有一個幀號.相鄰兩張圖像的幀號間隔為1 800,例如一幅圖像的幀號是1 200,那么下一幅圖像的幀號就是3 000,最終該視頻被轉(zhuǎn)化為180張JPEG格式的圖片.
本研究的實驗環(huán)境配置如下:
硬件環(huán)境:處理器為intel xeon(R) Gold 5218,內(nèi)存為256 G,顯卡為Nvidia Quadro RTX4000,顯存為8 G.
軟件環(huán)境:GPU計算軟件為CUDA版本1.9.0,深度學(xué)習(xí)框架為PyTorch1.9.
YOLOv5檢測算法支持識別的目標(biāo)物品數(shù)量達(dá)到了80個類別,而本文所選取的街道參照物較為常見,目前包含5類,分別為輪胎、垃圾箱、交通錐、防撞桶、共享單車,因此只需將網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置為yolov5s.yaml;較少的 epochs可以縮短總訓(xùn)練時長;batch-size是指一次訓(xùn)練迭代所抓取的樣本數(shù),其過小會導(dǎo)致模型不容易收斂,過大則容易陷入局部最優(yōu);經(jīng)過不斷優(yōu)化調(diào)試,最終確定參數(shù)如表2所示.
表2 實驗參數(shù)Tab.2 Experimental parameters
根據(jù)以上參數(shù)進(jìn)行模型訓(xùn)練,測試訓(xùn)練模型耗時161 min,之后將待驗證視頻數(shù)據(jù)輸入模型,平均每張圖片的檢測時間約為0.015 s,且隨著模型的迭代次數(shù)增加,模型的損失率逐漸下降,準(zhǔn)確性逐漸提高,具體如圖5所示.
其中,Box為YOLOv5算法使用GIOU_Loss函數(shù)作為預(yù)測框的損失均值,越小預(yù)測框越準(zhǔn);Objectness為目標(biāo)檢測損失均值,越小目標(biāo)檢測越準(zhǔn);Classification為分類損失均值,越小分類越準(zhǔn);val則為驗證集上的損失均值;Precision為分類器認(rèn)為是正類并且確實是正類的部分占所有分類器認(rèn)為是正類的比例;Recall為分類器認(rèn)為是正類并且確實是正類的部分占所有確實是正類的比例;mAP是用Precision和Recall作為兩軸作圖后圍成的面積,值越高效果越好.由圖5可知,本文所采用的YOLOv5算法具有運算效率高、準(zhǔn)確度高的特點,可以做到實時檢測視頻圖像.
圖5 損失率與準(zhǔn)確性Fig.5 Loss rate and accuracy
本次實驗選取防撞桶作為城市內(nèi)澇水深參照物,將人工手動量算的參照物像素高作為觀測值,將YOLOv5算法自動檢測的參照物像素高作為模擬值,部分圖像的參照物測量數(shù)據(jù)如表3所示.通過觀察實驗數(shù)據(jù)發(fā)現(xiàn)人工量算的參照物像素高和YOLOv5算法檢測的參照物像素高較為接近,如圖6所示.本實驗選取均方根誤差(RMSE)和平均絕對百分比誤差(MAPE)作為結(jié)果準(zhǔn)確性依據(jù),實驗結(jié)果展示RMSE值為1.832像素,MAPE值為1.165%.例如,本實驗中一副圖像里防撞桶的實際高度為0.8 m,手動檢測的像素高為280,而YOLOv5算法檢測的像素高為275,則它們的誤差約為0.01 m,這種誤差是可以接受的,并且未來隨著監(jiān)控攝像頭分辨率的提高,此種誤差會進(jìn)一步縮?。?/p>
圖6 參照物像素高度對比Fig.6 Reference pixel height comparison
表3 參照物高度測量數(shù)據(jù)Tab.3 Reference height measurement data
通過上述實驗可以得到參照物在洪水期前后的像素高度變化,在此基礎(chǔ)上調(diào)用水深計算公式得到計算結(jié)果,本實驗將手動量算的像素高所計算的水深記為觀測值,通過YOLOv5自動檢測的像素高所計算的水深記為模擬值,部分圖像的水深數(shù)據(jù)如表4所示,通過觀察計算結(jié)果發(fā)現(xiàn)人工量算的水深和YOLOv5算法檢測的水深較為接近,具體如圖7所示.選取均方根誤差(RMSE)和平均絕對百分比誤差(MAPE)作為結(jié)果準(zhǔn)確性依據(jù),實驗結(jié)果展示RMSE值為0.007 m,MAPE值為2.738%.
表4 水深計算數(shù)據(jù)Tab.4 Water depth calculation data
圖7 水深計算對比Fig.7 Comparison of water depth calculation
通過觀察實驗結(jié)果,在測量參照物像素高度實驗中,將人工量測數(shù)據(jù)與YOLOv5自動檢測數(shù)據(jù)作對比,其RMSE值為1.832像素,MAPE值為1.165%;在圖像水深估測實驗中,將人工計算數(shù)據(jù)與YOLOv5自動監(jiān)測作對比,其RMSE值為0.007 m,MAPE值為2.738%.整個模型訓(xùn)練共耗時161 min,之后將待驗證視頻數(shù)據(jù)輸入模型,平均每張圖片的檢測時間約為0.015 s.由此本文提出的基于YOLOv5圖像水深自動提取算法具有檢測速度快、準(zhǔn)確性高等優(yōu)勢.然而本文存在以下幾個方面的不足:(1)本次收集的視頻數(shù)據(jù)環(huán)境較為單一,僅在實驗水池中拍攝視頻,未來還需要在更多的場景中進(jìn)行實驗研究,增加實驗環(huán)境的多樣性;(2)本次實驗拍攝條件較為理想,僅有水池中的水紋波動干擾,視頻畫面清晰,未來需要在真實暴雨場景中進(jìn)行實驗,增加雨滴噪聲對視頻圖像的干擾,且有必要選取不同時刻下的暴雨視頻以改變畫面亮度;(3)在城市內(nèi)澇災(zāi)害時期,數(shù)以萬計的攝像頭所產(chǎn)生的視頻圖像數(shù)據(jù)量相當(dāng)巨大,單靠一臺計算機(jī)運行處理無法高效提取水深信息,需要借助巨大算力設(shè)備來運行,未來可建立分布式計算機(jī)運行系統(tǒng),讓多臺計算機(jī)協(xié)同計算運行以應(yīng)對這一挑戰(zhàn);(4)真實場景中通常有行人或車輛掩蓋到參照物,使得參照物的預(yù)測框變大、變小甚至無法識別,這可能會影響到目標(biāo)檢測結(jié)果的準(zhǔn)確性進(jìn)而影響內(nèi)澇估測的深度.遇到此類問題一個有效的解決方法是根據(jù)人為經(jīng)驗來手動估算參照物的預(yù)測框高度或者丟棄此預(yù)測值.
本文提出了一種基于YOLOv5圖像水深自動提取算法,使用了道路中常見的幾類物品作為城市內(nèi)澇水深的參照物,之后在實驗水池中注水以模擬真實街道內(nèi)澇場景,最后經(jīng)過水深算法自動提取水深信息,并將人工量測數(shù)據(jù)與YOLOv5自動檢測數(shù)據(jù)作對比并使用均方根誤差和平均絕對百分比誤差作為實驗精度驗證指標(biāo),實驗結(jié)果顯示2種數(shù)據(jù)具有顯著相關(guān)性,說明該算法在初步測試階段效果良好,后期經(jīng)實地進(jìn)一步調(diào)試驗證后便可為監(jiān)測城市內(nèi)澇水深提供技術(shù)支持.
基于YOLOv5圖像水深自動提取算法具有檢測速度快、準(zhǔn)確性高等優(yōu)勢,不需要專門的儀器或?qū)嵉販y量,就可以低成本的部署監(jiān)測,這具有極大的吸引力,其監(jiān)測結(jié)果可應(yīng)用于城市內(nèi)澇的預(yù)報和預(yù)警,對城市未來的防災(zāi)減災(zāi)工作具有重要實踐應(yīng)用價值.