張惠良
(蘇州市水利工程管理處,江蘇 蘇州 215000)
隨著內(nèi)河工業(yè)化以及河流沿岸人口數(shù)量飆升,向內(nèi)河排放的工業(yè)廢棄物量增加,河邊農(nóng)業(yè)活動以及亂丟生活垃圾都使得內(nèi)河異物增加。為了實現(xiàn)智能識別內(nèi)河河面上異物,有必要提取出準確清晰的內(nèi)河河道線,精準的內(nèi)河河道線能夠較大程度提升河面異物的識別正確率。由于內(nèi)河多有閘壩控制河流的流量,導致內(nèi)河的河面會隨閘壩的開閉情況上下起伏,因此需要一種實時性好、效果穩(wěn)健的河道線提取算法。
傳統(tǒng)圖像算法中,圖像分割指的是根據(jù)圖像中各區(qū)域的灰度特征、色彩差異、紋理形狀的不同,將圖像劃分為不同的區(qū)域,各區(qū)域內(nèi)的像素特征呈現(xiàn)一定的規(guī)律性,使每個區(qū)域成為一個完整的背景或物體。圖像分割算法大體包括基于像素閾值的圖像分割、基于邊緣的圖像分割、基于區(qū)域的圖像分割、基于能量泛函的分割方法。2013年6月,彭明陽等通過研究水域與河岸的飽和度、亮度特征上的差異,提取出基底圖像并進行區(qū)域分割,最終通過邊緣檢測算子處理后提取出水岸線[1]。2013年12月,李春娟等結(jié)合形態(tài)學與hough直線檢測算法,實現(xiàn)了水岸線提取[2]。2018年7月,余加俊等根據(jù)城鄉(xiāng)河道的直線特征,使用Fitline直線擬合算法,在直線河道的提取上獲得了較好的結(jié)果[3-4]。2019年5月,鄭又能等根據(jù)圖像lab模型中水域與河岸的l、a、b三分量的差異,粗略提取出水域roi,并基于最優(yōu)化理論計算出最佳種子點,使用區(qū)域生長最終提取出河岸線[5]。
綜上所述,經(jīng)典圖像算法對于復雜環(huán)境下的河道線提取效果無法達到河道線實際應用的要求。實際的內(nèi)河河道大多包含許多的彎曲處,使直線檢測算法無法提取出準確的河道;河道光照以及反射使河面表現(xiàn)出巨大的差異,使用經(jīng)典圖像算法自適應地將其準確分割。因此,本文引入HED神經(jīng)網(wǎng)絡算法,以實現(xiàn)更迅速、更魯棒的內(nèi)河河道線提取。
邊緣檢測的目的是提取出圖像中目標區(qū)域與無關區(qū)域的邊界,剔除與任務無關的圖像信息,從而大幅提升圖像運算任務的實時性。邊緣在圖像中大都存在于兩個不同區(qū)域的交界處,由于不同區(qū)域交界處的像素值發(fā)生了劇烈的跳變,從而表現(xiàn)為邊緣。
實際的邊緣檢測方法一般基于邊緣處像素值變化劇烈的特征,定義各種差分算子來計算得到圖像的邊緣圖像。常用的邊緣算子大多是一階和二階的,之所以不使用更高階的算子是因為導數(shù)操作對噪聲十分敏感,使得三階以上的算子失去了實際使用的意義。低階算子往往可以在使用前對圖像進行平滑濾波,從而消除部分噪聲的影響。
Sobel算子是典型的基于一階導數(shù)的邊緣檢測算子,由于該算子中引入了類似局部平均的運算,因此對噪聲具有平滑作用,能很好地消除噪聲的影響。Sobel算子對于象素位置的影響作了加權(quán),與Prewitt算子、Roberts算子相比,其效果更好[6-8]。
Laplace算子是一種二階微分算子,算子本身具有各向同性和旋轉(zhuǎn)不變性。若只關心邊緣點的位置而不需要了解其周圍的實際灰度差時,一般選擇該算子提取圖像的邊緣。由于其對噪聲比較敏感,所以很少用該算子檢測邊緣,而是用來判斷邊緣像素是位于圖像的明區(qū)還是暗區(qū)[9]。
Canny邊緣檢測算法不是簡單的圖像運用算子卷積而已,它包含濾波平滑、計算梯度、非極大值抑制、雙閾值抑制偽邊緣4部分的圖像運算。首先使用高斯算子模板對圖像進行平滑模糊,濾除部分噪聲。隨后使用Sobel算子計算平滑后圖像的邊緣圖像,并將非極大值點設置為背景,從而剔除一部分并非邊緣的灰度跳變點。此時還存在偽邊緣,通過雙閾值限定并判斷其像素連接特征得到較好結(jié)果。Canny方法不容易受噪聲干擾,使用兩種不同的閾值分別檢測強邊緣和弱邊緣,并且當弱邊緣和強邊緣相連時,才將弱邊緣包含在輸出圖像中,能夠檢測到真正的弱邊緣[10]。
區(qū)域生長法是一種常用的區(qū)域分割方法,若能分割出河道區(qū)域,則可以很方便地提取出河道輪廓線。區(qū)域生長法是一種根據(jù)像素點某種屬性的相似性進行聚類的分割方法,要進行區(qū)域生長首先要找到合適的生長種子點,種子點需要具備屬于河道像素點最大程度的特征,隨后根據(jù)指定的生長法則判斷種子點與其周圍點是否滿足生長法則進行區(qū)域生長。區(qū)域生長法的關鍵在于最優(yōu)種子點的篩選,以及選擇一個較好的生長法則[11]。
目前,基于深度學習的邊緣檢測算法主要通過卷積神經(jīng)網(wǎng)絡進行特征的提取、選擇和分類,以替換傳統(tǒng)方法中的人工特征提取與分類,常見的用于邊緣檢測的深度學習網(wǎng)絡有CASENet、DeepEdge、HED等。
CASENet將每個邊緣像素與多于一個的邊緣類相關聯(lián),是一種基于ResNet的端到端深度語義邊緣學習的架構(gòu),同時也是一種跳層(skip-layer)架構(gòu),其中頂層卷積層的類別邊緣激活共享并與底層特征的同一集融合,這里利用一種多標簽損失函數(shù)來監(jiān)督激活的融合[12-13]。
DeepEdge利用目標相關特征作為輪廓的高級線索檢測,這點不同于大多使用紋理或顯著性等低級特征來檢測輪廓的網(wǎng)絡。DeepEdge是多級深度網(wǎng)絡,由5個卷積層和1個分叉全連接子網(wǎng)絡組成。分叉子網(wǎng)絡包含一個學習預測輪廓似然的分支,以及一個訓練學習在給定點輪廓分支[14]。
HED 是一個整體嵌套邊緣檢測的深度學習邊緣提取算法,HED能使用整體圖像進行訓練和預測,且能進行多尺度、多層特征學習。該深度學習模型利用全卷積網(wǎng)絡,自動學習豐富的分層表示,并基于側(cè)面響應進行深層監(jiān)督指導[15-16]。
由于河道大多存在于野外,采集到的河道圖像必然受到野外環(huán)境、天氣等多重影響,因此有必要先對采集圖像進行預處理,去除部分干擾邊緣提取的因素[17-19]。觀察野外相機采集的河道圖像,風吹過水面會產(chǎn)生水波,同時光線照射會使水波一側(cè)產(chǎn)生陰影,從而在河面產(chǎn)生新的偽邊緣。使用傳統(tǒng)的平滑濾波方法,可以平滑偽邊緣,但同時圖像的模糊可能會使得河道線丟失,綜合考慮使用一種改進的方差濾波器[20-21]。
Papari濾波是一種非線性濾波,比一般的線性濾波器和非線性濾波器效果要好,能夠在保持邊緣和角落的情況下平滑圖像。圖1為原圖與幾種濾波方法的對比。其中,圖1(a)為原圖;圖1(b)為均值濾波,可明顯看出河道邊緣存在嚴重模糊且水波平滑效果不佳;圖1(c)為高斯濾波,邊緣保存但水面平滑未達到預期;圖1(d)為Papari濾波,可以看到保存了明顯的角落和邊緣,且河面區(qū)域濾波效果較好。

圖1 濾波效果對比圖
HED神經(jīng)網(wǎng)絡是一個基于VGG16網(wǎng)絡改進而來的網(wǎng)絡,VGG16本身是多個卷積池化層連接上全連接層和softmax層,HED神經(jīng)網(wǎng)絡則在此基礎上刪除了VGG16的全連接層和softmax層,僅保留卷積池化層。
輸入圖片經(jīng)過多次卷積和最大池化,取每次卷積的最后一層作為該網(wǎng)絡的外側(cè)輸出,這樣一共得到5個外側(cè)輸出。但是外側(cè)輸出的尺寸不一致,因此在網(wǎng)絡中對每個外側(cè)輸出進行反卷積,使其擴大到輸入的尺寸大小,并將這5層輸出進行融合,得到融合層,則HED神經(jīng)網(wǎng)絡一共有6層輸出[15]。見圖2。

圖2 HED神經(jīng)網(wǎng)絡結(jié)構(gòu)
由于邊緣提取中邊緣與非邊緣的像素點在數(shù)目上存在巨大差異,因此HED神經(jīng)網(wǎng)絡改進了傳統(tǒng)的損失函數(shù),對邊緣與非邊緣的損失計算進行相應的加權(quán)。
HED神經(jīng)網(wǎng)絡的外側(cè)總損失函數(shù)為:
(1)

(2)
其中:β和1-β為加權(quán)參數(shù);Y-為ground truth中標記為邊緣的像素集合;Y+為非邊緣的像素集合;Pr為由側(cè)邊輸出通過sigmoid函數(shù)計算得到的響應值。
融合層的損失之計算為:
(3)
最終的優(yōu)化目標函數(shù)為:
argmin(Lfuse(W,w,h)+Lside(W,w))
(4)
實驗中使用的硬件平臺為64位 windows 10 操作系統(tǒng),內(nèi)存為32GB,GPU為VIDIA GeForce GTX 1080 Ti,編程語言為python,深度學習框架為TensorFlow,監(jiān)控攝像機為海康威視智能球型攝像機。
本文使用BSDS500數(shù)據(jù)集訓練了用于提取通用邊緣的HED模型。并通過在蘇州某河道上架設監(jiān)控攝像頭來獲取河面的監(jiān)控視頻,以獲取不同環(huán)境、時間下的真實河道圖像,圖像的尺寸為1920*1080像素,數(shù)據(jù)集包含有6 546張圖像.
由于截取的圖像中存在眾多的類似圖像,因此從圖像數(shù)據(jù)集中挑選273張河道圖像進行檢測試驗。見圖3。

圖3 河道線檢測效果比較圖
對比canny算子、區(qū)域生長法、HED的檢測結(jié)果圖可以得出,邊緣檢測算子對于復雜環(huán)境下的邊緣檢測效果不佳,存在大量的偽邊緣;區(qū)域生長法的區(qū)域生長準則需要人為調(diào)整,否則可能會產(chǎn)生生長失敗或者生長區(qū)域蔓延的河岸;而HED產(chǎn)生的結(jié)果圖相對清晰完整,易于提取出準確的河道線,同時無需逐個站點調(diào)整參數(shù),能夠基本實現(xiàn)自適應。
針對經(jīng)典圖像算法在河道邊緣檢測中河道線提取不準確、實時性不高、魯棒性不強的情況,本文提出一種基于改進HED提取河道線的方法。通過比較不同算法在不同場景采集的內(nèi)河河道圖像上河道線提取的效果可知,本文算法相比傳統(tǒng)算法具有更高的準確性和魯棒性。本文算法在蘇州各河道圖像組成的驗證集上達到正確率96.3%,平均每張圖像耗時220 ms。而且河道線短時間變化不大,滿足實時性要求,同時正確率較高。