張文靜,張 振,黃 劍,周 揚(yáng),蔣 蕓
(1.河海大學(xué)計(jì)算機(jī)與信息學(xué)院,江蘇 南京 211100; 2.贛江中游水文水資源監(jiān)測中心,江西 吉安 343000)
水位是江河湖庫的基本水文要素之一,水位數(shù)據(jù)是防汛抗旱、灌溉、航運(yùn)和水利設(shè)施建設(shè)和管理的基本依據(jù),及時(shí)可靠的水位自動(dòng)監(jiān)測對于提高防洪抗旱的預(yù)警預(yù)報(bào)水平具有重要意義。水尺通過讀數(shù)來記錄水位高度,是最直觀、最簡單的水位測量工具,但傳統(tǒng)水尺測量需要人工定時(shí)觀測,自動(dòng)化程度低,人員勞動(dòng)強(qiáng)度大?,F(xiàn)有的自動(dòng)水位計(jì)根據(jù)測量原理不同主要包括浮子式、壓力式、超聲波式及雷達(dá)式等[1-3]。但這些設(shè)備在實(shí)際安裝、使用和日常維護(hù)中存在一定的局限性,普遍存在設(shè)備及安裝成本高,測量精度易受環(huán)境溫度、水體泥沙含量及現(xiàn)場控制結(jié)構(gòu)的影響,測量結(jié)果不易校驗(yàn),需要工作人員定期維護(hù)等缺點(diǎn)[4-5]。
近年來,網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)已在江河湖庫中得到推廣[6-7],傳統(tǒng)基于圖像的方法通過圖像處理代替人眼自動(dòng)檢測水位線的讀數(shù),包括受人眼視覺啟發(fā)的方法和基于機(jī)器視覺的方法,但這些方法存在一定的局限性。受人眼視覺啟發(fā)的方法通過檢測刻度線和識別字符來確定水位線的位置[8-9],非常依賴刻度線和圖像特征的可見性,在水尺局部污垢和損壞、圖像分辨率低、自然光不足、人工光照過強(qiáng)等復(fù)雜條件下無法測量?;跈C(jī)器視覺的方法首先檢測圖像中水位線的位置,然后利用變換關(guān)系將水位線像素坐標(biāo)轉(zhuǎn)換為實(shí)際水位讀數(shù)[10]。然而在野外實(shí)際應(yīng)用中,水尺和拍攝設(shè)備之間的距離較遠(yuǎn),導(dǎo)致圖像分辨率較低、干擾噪聲較多。此外野外環(huán)境光照強(qiáng)度的變化對成像效果的影響較大,晴天水面耀光、逆光、水體透明、水尺倒影強(qiáng)烈;陰雨天氣水尺和水面的灰度值接近、圖像信噪比降低;夜間人工補(bǔ)光過曝,使得傳統(tǒng)基于灰度、邊緣信息的圖像處理技術(shù)很難準(zhǔn)確有效地檢測出水位線的位置,同時(shí)對于水位線處漂浮物纏繞水尺片等遮擋情況的測量結(jié)果無法進(jìn)行有效性識別。
隨著大數(shù)據(jù)技術(shù)和高性能計(jì)算設(shè)備的發(fā)展,深度學(xué)習(xí)技術(shù)逐漸應(yīng)用于許多計(jì)算機(jī)視覺任務(wù)上[11],傳統(tǒng)圖像處理方法僅利用低層次特征,難以有效解決復(fù)雜水流(波浪破碎、漂浮物纏繞)、光照條件(強(qiáng)光、陰影、反射)下的測量問題,而深度學(xué)習(xí)方法憑借深層結(jié)構(gòu),從輸入圖像的低層次特征中逐步抽象、提取出深層次特征,并以端到端方式自動(dòng)完成分類,表現(xiàn)出優(yōu)秀的分類性能[12-13]。目前采用深度學(xué)習(xí)技術(shù)進(jìn)行水位測量時(shí)仍然遵循傳統(tǒng)基于圖像的兩類方法:①通過深度學(xué)習(xí)識別水尺刻度線和字符,根據(jù)刻度線和字符數(shù)量確定實(shí)際水位值的方法。例如:曹玉超等[14]提出采用深度殘差神經(jīng)網(wǎng)絡(luò)識別礦井水位標(biāo)尺刻度的方法能夠檢測標(biāo)尺的E型刻度字符,但是不能實(shí)現(xiàn)刻度字符到水位的轉(zhuǎn)換,且訓(xùn)練測試樣本過少,不能涵蓋實(shí)際測量的各種條件;王磊等[15]提出采用ResNet網(wǎng)絡(luò)識別水尺在水面以上部分的刻度線數(shù)量,再結(jié)合水尺總長度換算成實(shí)際水位值,但是并未給出實(shí)際的網(wǎng)絡(luò)模型結(jié)構(gòu)和參數(shù)。②通過深度學(xué)習(xí)識別圖像中水位線位置,再換算成實(shí)際水位值。例如:潘金秋等[16]提出一種基于CNN的水位測量方法,利用設(shè)計(jì)的滑動(dòng)窗口對查詢圖像進(jìn)行分類,將水信息圖像的ROI (region of interest)分為標(biāo)尺類和水類,并將這些查詢樣本輸入到訓(xùn)練好的CNN中,得到查詢樣本的標(biāo)簽,最后通過搜索標(biāo)簽的邊界線來確定水位,但是滑動(dòng)窗口大小對于測量結(jié)果的正確性和精度影響較大;程淑紅等[17]提出了一種基于U-net的水位線檢測方法,使用U-net進(jìn)行圖像分割,得到去除外界因素干擾的水和背景的輪廓,再進(jìn)行邊緣提取獲得圖像的水位線,但未將水位線分隔結(jié)果轉(zhuǎn)化為水位值,并且測量環(huán)境相對單一?;谏疃葘W(xué)習(xí)的方法具有誤差小、穩(wěn)定性強(qiáng)的特點(diǎn),但現(xiàn)有利用深度學(xué)習(xí)進(jìn)行水尺和水面圖像分類或者水位線檢測的方法,未能在野外實(shí)際場景下實(shí)現(xiàn)全天候的水位測量,也缺乏針對復(fù)雜水流和光照條件的討論分析。
圖像語義分割是人工智能領(lǐng)域中一個(gè)重要的分支,隨著全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional network, FCN)的出現(xiàn),深度學(xué)習(xí)正式進(jìn)入圖像語義分割領(lǐng)域[18]。針對現(xiàn)有方法存在的問題,本文設(shè)計(jì)了一種基于深度學(xué)習(xí)圖像語義分割的水尺水位智能監(jiān)測方法(以下簡稱FCN法),該方法通過構(gòu)建FCN模型自動(dòng)提取深層次的水尺圖像特征,實(shí)現(xiàn)對水尺圖像逐像素的分類預(yù)測,且能夠自動(dòng)識別測量結(jié)果的有效性,便于資料整編時(shí)進(jìn)行人工核驗(yàn)。
圖像法水尺水位測量的基本流程如下:①進(jìn)行測量系統(tǒng)標(biāo)定,方法是從攝像機(jī)拍攝的原始監(jiān)控圖像中人工選取水尺的ROI,利用與正射水尺模板對應(yīng)的角點(diǎn)坐標(biāo)計(jì)算透視投影變換矩陣,進(jìn)而利用該矩陣對水尺圖像進(jìn)行正射校正,實(shí)現(xiàn)像素對齊;②采集不同條件下的正射水尺圖像構(gòu)建樣本數(shù)據(jù)集,人工標(biāo)注圖像中不同類型的區(qū)域得到標(biāo)簽圖;③對構(gòu)建的FCN模型進(jìn)行訓(xùn)練,并將訓(xùn)練好的模型用于待測水尺圖像的語義分割;④根據(jù)分割圖像的水平投影曲線檢測水位線在圖像垂直方向的坐標(biāo)并識別測量結(jié)果的有效性;⑤利用正射校正圖像的物理分辨率(即物像尺度因子)將水位線坐標(biāo)換算為實(shí)際水位值,并對多次測量結(jié)果進(jìn)行濾波從而抑制隨機(jī)誤差。系統(tǒng)標(biāo)定方法見文獻(xiàn)[19],以下重點(diǎn)討論水尺圖像語義分割、水位線檢測及有效性識別。
1.2.1 數(shù)據(jù)集
基于深度學(xué)習(xí)的網(wǎng)絡(luò)模型訓(xùn)練需要大量的樣本數(shù)據(jù),如果訓(xùn)練樣本的數(shù)量太少,容易導(dǎo)致過擬合的問題。由于水尺水位測量目前沒有直接可用的公共數(shù)據(jù)集,本研究基于該測點(diǎn)2019年6—8月出現(xiàn)洪水過程的數(shù)據(jù),選取不同天氣、光照和水流條件下總計(jì)1850張正射水尺圖像(長2000像素、寬200像素)構(gòu)建數(shù)據(jù)集。其中訓(xùn)練樣本集和測試樣本集按照8∶2的比例進(jìn)行劃分。圖像標(biāo)注采用LabelMe工具,將正射水尺圖像按任意多邊形區(qū)域方式標(biāo)注為水尺、水面和漂浮物3種類型,生成json格式的標(biāo)簽文件以及8位PNG格式的標(biāo)簽圖像,其中3種類型的標(biāo)簽值分別為1、0、2。為便于人工辨識,將標(biāo)簽圖像中的像素值擴(kuò)大100倍得到著色圖像。圖1給出了光照條件分別為夜間人工照明、清晨昏暗光照、直射陽光、陰影投影、斜射陽光、無人工照明(從左到右)的正射水尺圖像(圖1(a))及著色標(biāo)簽圖像(圖1(b))。
圖1 不同光照條件下的正射水尺圖像及其著色標(biāo)簽圖像Fig.1 Orthographic staff gauge images and label images under different illumination conditions
1.2.2 FCN法
FCN以VGG-19網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò),與VGG-19網(wǎng)絡(luò)相比,全連接層全部換成卷積層,可以接受任意尺寸的輸入圖像,即將全連接層FC-4096、FC-4096和FC-1000替換為卷積層conv17、conv18、conv19,卷積核的尺寸(寬,長,通道數(shù))分別為(7,7,4096)、(1,1,4096)、(1,1,N),其中N為要預(yù)測的類別數(shù),本文中N=3,表示水體、水尺、漂浮物3個(gè)類別。分類時(shí)每經(jīng)過一次卷積,特征圖的分辨率就會(huì)降低一半,為了將特征圖大小恢復(fù)到輸入圖像的相同尺寸,對特征圖進(jìn)行了上采樣操作。
使用Softmax分類器做逐像素預(yù)測。Softmax多分類層對各個(gè)輸入分類器的概率值做指數(shù)計(jì)算,經(jīng)歸一化后,最大值所代表的類別即為分類結(jié)果,判斷每個(gè)像素所屬類別后計(jì)算損失函數(shù),將Softmax多分類層的輸出向量和樣本數(shù)據(jù)的標(biāo)簽值做交叉熵處理:
(1)
式中:Hx(y) 為交叉熵,用來衡量模型分割結(jié)果與標(biāo)簽值之間的差異;xi為標(biāo)簽中第i個(gè)元素的值;yi為Softmax層輸出向量(y1,y2,…,ym)的第i個(gè)向量數(shù)據(jù)。
利用從ImageNet分類網(wǎng)絡(luò)上獲得的模型參數(shù)初始化FCN,訓(xùn)練后的網(wǎng)絡(luò)用于測試圖像的語義分割。輸入圖像為24位2 000 × 200像素的正射圖像,分割后生成像素灰度值在0~2之間的8位JPG格式的結(jié)果圖像。分割結(jié)果表明,水體、水尺和漂浮物部分的像素灰度值分別為0、1和2。在后續(xù)的水位線檢測中,對分割結(jié)果圖像的每一部分像素灰度值進(jìn)行100倍的擴(kuò)展,即水體、水尺和漂浮物的灰度值分別為0、100和200。
FCN模型基于TensorFlow平臺(tái)實(shí)現(xiàn),模型訓(xùn)練在操作系統(tǒng)Windows10的工作站上完成,其GPU型號為NVIDIA GeForce GTX 2080Ti,處理器為雙路至強(qiáng)E5-2678v3,內(nèi)存為32GB,顯存為11GB。網(wǎng)絡(luò)訓(xùn)練的初始化學(xué)習(xí)率為0.0001,迭代次數(shù)為2萬次,訓(xùn)練時(shí)長約為7h。
在分割后擴(kuò)大像素灰度值得到的結(jié)果圖中,對圖像中的像素灰度值按行累加[20]:
S(r)=B(r,1)+B(r,2)+…+B(r,w)
(2)
式中:B(r,w)為像素(r,w)處的像素灰度值;r為當(dāng)前像素的行坐標(biāo),取r=1,2,…,2000;w為像素的列坐標(biāo),取w=1,2,…,200。各行像素的灰度累加值S(r)構(gòu)成了像素值水平投影曲線,如圖2所示。
圖2 分割圖像的像素值水平投影Fig.2 Horizontal projection of pixel values in segmentation image
設(shè)定水尺和漂浮物部分的固定灰度值閾值分別為Tw和Tg。在分割結(jié)果圖的像素值水平投影中自上而下進(jìn)行遍歷,S(r)
l=rw2-rw1
(3)
式中:rw2為水體部分頂端像素的行坐標(biāo);rw1為水體部分底端像素的行坐標(biāo)。
由于配準(zhǔn)圖像和模板圖像在統(tǒng)一的坐標(biāo)系下,可以直接采用模板圖像的物像尺度因子s將水位線坐標(biāo)換算為實(shí)際水位值L(每個(gè)像素對應(yīng)的實(shí)際長度為1mm):
L=l/s
(4)
若rr
測點(diǎn)位于中國江西省遂川縣禾源鎮(zhèn)坳下坪水文站,如圖3所示。該站處于長江流域鄱陽湖區(qū)贛江水系,屬國家三類水文站,主要承擔(dān)小流域基本水文資料收集、提供禾源鎮(zhèn)及沿江兩岸防汛信息。該段上游有當(dāng)?shù)夭墒瘓?石材加工使得水體較為渾濁。河床由卵石、粗砂、細(xì)砂組成,斷面穩(wěn)定。右岸有防波堤,左岸由石頭和巖石組成,比較穩(wěn)定。汛期水位短時(shí)間內(nèi)變幅可達(dá)3m,流速可達(dá)3m/s。水面有浮木、樹枝、漂浮物等上游沖積的漂浮物,波浪和漂浮物對流量測量有一定的影響。水位采用站內(nèi)浮子式水位計(jì)自動(dòng)測量,可為水位比測提供參考值。以凍結(jié)基面為水位零點(diǎn),歷史最高水位為72.18m。
圖3 測量系統(tǒng)和斷面Fig.3 Measurement system and section
測量系統(tǒng)由硬件和軟件系統(tǒng)兩部分組成[21]。硬件系統(tǒng)安裝于河流右岸站房一側(cè),其中網(wǎng)絡(luò)攝像機(jī)采用壁裝支架安裝,相對于水平面的俯仰角和橫滾角分別為32.2°和0.1°;圖像傳感器的分辨率為200萬像素,配備4mm焦距的廣角鏡頭;鏡頭表面貼850nm濾光片使其固定工作于近紅外波段以提高成像信噪比;視頻數(shù)據(jù)采用4G路由器和VPN網(wǎng)關(guān)上傳至云端的工控機(jī)進(jìn)行分析處理。水尺布設(shè)于攝像機(jī)下游約3m處,零點(diǎn)高程為69.30m;采用尺寸為1000mm×200mm的黑白雙色水尺片,量程為2m。軟件系統(tǒng)基于網(wǎng)絡(luò)攝像機(jī)軟件開發(fā)工具包(SDK)和開源計(jì)算機(jī)視覺庫OpenCV在VC++MFC平臺(tái)下開發(fā)。
為驗(yàn)證方法對于水位線檢測和漂浮物識別的有效性,選取2019年6月30日的一個(gè)洪水過程進(jìn)行測試。觀測過程起始于16:50,結(jié)束于19:10,包含了水位快速漲落及水尺被漂浮物纏繞遮擋的場景。水位測量以5min為間隔、30s為視頻時(shí)長,共采集了29組數(shù)據(jù),每組數(shù)據(jù)包含了25個(gè)測次,水位測量值為25個(gè)測次的中值濾波結(jié)果。試驗(yàn)中發(fā)現(xiàn),測站浮子式水位計(jì)的進(jìn)水管道由于泥沙淤塞導(dǎo)致測井內(nèi)水位變化滯后,其讀數(shù)無法作為有效真值,因此增加了水尺水位的人工目測值作為參考,并與基于傳統(tǒng)灰度圖像分割的最大均值差法(maximum mean difference, MMD)[22]進(jìn)行了比較,如圖4所示。
圖4 6月30日水位測量結(jié)果Fig.4 Water-level measurement results on June 30
由圖4可以看出:①16:50~16:55時(shí)段處于漲水前期,FCN法與浮子式水位計(jì)和目測值對比,平均誤差均小于2cm;②17:00~17:50時(shí)段處于漲水期間,FCN法與目測值對比,平均誤差小于2cm,其中17:00時(shí)MMD法的水位值偏大,原因是水位線模糊引起單次測量的水位線誤檢率高,攝像機(jī)俯仰角較大,透視畸變嚴(yán)重,使得水尺圖像部分分辨率低,圖像模糊,而FCN法對這種不利條件并不敏感,體現(xiàn)出在不良測量條件下FCN法的魯棒性;③17:50~18:10時(shí)段水位開始回落,但并未受漂浮物影響,FCN法與目測值對比,平均誤差小于2cm;④18:10~19:10時(shí)段,受漂浮物影響,FCN法失效,水位線定位在漂浮物與水尺的分界線處,讀數(shù)偏大,但能準(zhǔn)確判定出該時(shí)間段內(nèi)漂浮物纏繞水尺的不良測量條件,即漂浮物識別有效,漂浮物標(biāo)志位f跳變?yōu)?,提醒用戶需要人工校驗(yàn)結(jié)果,而MMD法無法識別出全部這些不良測量條件,水位線定位在漂浮物頂端。
在16:50~19:10時(shí)段,除去18:10以后漂浮物纏繞水尺的時(shí)段,共有17組數(shù)據(jù),表1顯示了這一時(shí)期FCN和MMD法測量結(jié)果的均方根誤差(RMSE)和不確定度。水位測量的系統(tǒng)不確定度X″、隨機(jī)不確定度X′、綜合不確定度X的計(jì)算公式如下:
表1 FCN和MMD法測量結(jié)果的RMSE和不確定度
(6)
(7)
(8)
式中:N′為比測次數(shù);Lmi為第i個(gè)測量值;Lti為第i個(gè)真值。
表1中N1、N2分別表示測量誤差大于10cm和2cm的測量數(shù)。FCN法17組有效測量值的RMSE為1.73cm,優(yōu)于MMD法,綜合不確定度在3cm以內(nèi),滿足水文測驗(yàn)的要求。測量值誤差較大的原因是高速水流對水位計(jì)的沖擊,造成圖像中水位線的傾斜。
為了進(jìn)一步對比FCN與MMD法的準(zhǔn)確性,給出了4組洪水過程的測量結(jié)果,如圖5所示(圖中左側(cè)為監(jiān)控圖像中水尺所在的區(qū)域,中間是FCN法的可視化結(jié)果圖像,右側(cè)為MMD法的可視化結(jié)果圖像)。可視化圖像包括最左側(cè)的標(biāo)準(zhǔn)水尺模板圖像以及右側(cè)的25幀正射水尺圖像,每幀圖像的水位測量結(jié)果用白色線條標(biāo)識,25幀的中值濾波結(jié)果用藍(lán)色線條在模板圖像上標(biāo)識。從圖5可以明顯看出,受漂浮物影響,18:35時(shí)FCN法失效,水位線定位在漂浮物與水尺的分界線處,MMD法的水位線定位在漂浮物頂端。其余時(shí)間FCN法均能準(zhǔn)確地定位出水位線,識別效果較好。
圖5 不同時(shí)刻水尺圖像及測量結(jié)果Fig.5 Staff gauge images and measurement results at different times
圖6給出了上述4組測量過程中的水尺圖像和分割結(jié)果(從左至右依次為監(jiān)控水尺圖像、正射水尺圖像、水尺語義分割結(jié)果和可視化結(jié)果)。16:50處于漲水前期,水位較低,水位線相對水平,FCN法能準(zhǔn)確分割出水尺區(qū)域,如圖6(a)中紅色區(qū)域所示。17:10高速水流沖擊水尺,引起圖像中水位線傾斜,如圖6(b)所示,水尺分割區(qū)域的底端也符合水位線的傾斜情況。17:50高速水流沖擊水尺頂端,引起圖像中水位線傾斜。18:35水位回落,水位線附近漂浮物遮擋纏繞水尺,如圖6(d)所示,FCN法能識別出漂浮物纏繞水尺的不良測量條件,并能有效分割出漂浮物區(qū)域,體現(xiàn)出FCN法的優(yōu)勢。
圖6 不同時(shí)刻水尺圖像和分割結(jié)果Fig.6 Staff gauge image and segmentation results at different times
本文基于深度學(xué)習(xí)圖像語義分割的思想,設(shè)計(jì)了一種基于深度學(xué)習(xí)的水尺水位智能監(jiān)測方法。采用不同條件下采集并由人工精確標(biāo)注的水尺、水面和漂浮物三分類樣本圖像構(gòu)建數(shù)據(jù)集,訓(xùn)練深層FCN完成對水尺圖像的逐像素分類預(yù)測,最終在語義分割圖像中檢測水位線的像素位置,將其轉(zhuǎn)化為實(shí)際水位值。試驗(yàn)結(jié)果表明,FCN法可對水尺圖像進(jìn)行像素級分割,使水位線檢測的分辨率達(dá)到像素級,水位測量的綜合不確定度小于3cm,滿足水位觀測標(biāo)準(zhǔn)的要求。FCN法能對漂浮物纏繞水尺的不良測量條件進(jìn)行有效性識別,達(dá)到水尺水位智能監(jiān)測的目的,可以作為傳統(tǒng)監(jiān)測手段的有效補(bǔ)充。