?

基于SSD目標檢測的視頻水位檢測算法

2019-05-17 02:45肖卓陶青川沈建軍
現代計算機 2019年9期
關鍵詞:水位邊緣圖像

肖卓,陶青川,沈建軍

(四川大學電子信息學院,成都 610065)

0 引言

水利相關部門在河流、湖泊等地建立視頻監控系統,加速了水利信息化建設的步伐[5]。其中水標尺讀數的讀取能提供預測山洪的有效方法。傳統水位測量方式主要有安裝水尺目測讀數和使用傳感器自動采集水位相關的模擬量再轉換為水位量兩種。其中目測測量方式效率低、及時性差以及惡劣情況下無法讀取,而使用傳感器測量方式成本高、難以維護、受環境影響大[1]。通過數字視頻處理技術可以實時觀測河道水庫的情況,提供直觀的圖像信息,同時可以改善測量工作人員的工作環境,做到無人值守[2]。水利視頻監控采集的視頻圖像信息,利用圖像處理算法對水利視頻監控圖像進行水位提取比人工檢測更直觀,也更節省人力成本[3]。

在依靠傳統機器視覺的水尺識別算法中,普遍通過形態學變換提取水尺邊緣、多幀水尺圖像處理得到水尺位置、RGB空間轉HSV空間根據顏色提取水尺位置、人工預設感興趣區域等方法用來定位水尺目標等方法[4-7]。然而在實際應用場景中,安防監控具有場景復雜,圖像噪聲多,目標不明顯等特點。形態學變換提取水尺邊緣和RGB色彩空間轉換至HSV色彩空間的方法都會受到周圍復雜場景的影響。無論是場景的邊緣和場景的顏色,都會對水尺定位造成很大的影響。而多幀水尺圖像處理得到水尺位置的方法是在攝像頭靜止不動的前提下。由于當前安防攝像頭大部分均由云臺控制等功能,在攝像頭受到環境影響產生抖動、視角被調離水尺區域或云臺自動巡航時,多幀水尺圖像處理得到水尺位置的方法會直接失效。

本文提出一種基于SSD目標檢測的水尺檢測算法,通過深度學習訓練提取水尺特征,能較好地檢測到水尺位置。多幀判斷綜合確定當前水尺的位置,能非常準確的定位到水尺的具體位置。檢測到水尺位置后,邊緣檢測來獲取水尺邊緣信息,形態學處理,填充水尺中心;計算非零像素占比來矯正傾斜的水尺,使水尺垂直于水平面;再重新進行x軸的邊緣檢測獲取水尺中“E”的刻度,并通過形態學處理獲得完整的刻度信息。算法流程如圖1所示。

圖1 算法流程圖

1 SSD水尺目標檢測

SSD(Single Shot Mulitbox Detector)是一種基于卷積神經網絡的目標檢測算法,由Wei Liu在2016年提出,擁有比Fast R-CNN更好的速度及更高的準確率,是目前主流的深度學習目標檢測網絡之一[8]。SSD目標檢測網絡結合YOLO回歸思想以及Faster R-CNN的anchor機制做到速度與準確率并存[9]。SSD目標檢查網絡使用VGG-16作為基礎網絡,并增加了新的卷積層來獲取更多的特征圖。由于使用的是全卷積結構,相對于Faster R-CNN包含的全連接層網絡結構,使網絡計算量急劇減少,提高了運算速度。并使用多尺度特征圖方式,對各個尺寸大小的目標特征進行檢測。網絡模型如圖2所示。

在本文中,由于水尺大小在圖片中各不相同,所以需要提取不同尺度的特征圖進行預測,大尺度特征圖用來檢測小目標,小尺度特征圖用來檢測大目標。并在特征圖上的每一個點生成一系列的候選框,每個框都會生成自己的回歸和分類。由于水尺目標形狀的特殊性,在視頻監控場景下,水尺目標普遍是長條狀,垂直于水平面。本文去掉橫向的矩形框,使用多個不同比例的豎條狀矩形框作為候選框。保持原始網絡中的各尺度特征圖中候選框數量,并去除橫向矩形框,增加豎向矩形框,能更好地與原始框進行匹配,如圖3所示。

本文采用SSD 300通過監督學習,訓練樣本,提取網絡特征的方式,訓練模型。在具體算法中,將視頻監控輸出圖像下采樣到300×300的分辨率,并根據網絡輸出分類及概率,使用多幀判斷輸出結果,可以有效解決因日照變化和攝像頭抖動造成的檢測失敗等問題。

圖3 SSD候選框示意圖

首先使用將視頻流解碼成單幀RGB格式,然后對單幀圖像進行下采樣,下采樣至分辨率為300×300,將下采樣后的圖像數據輸入至SSD300目標檢測網絡中。輸出檢測目標的分類、概率及目標框信息。

由于光照的影響及攝像頭的抖動轉動,可能會影響SSD目標檢測網絡的結果。本算法使用多幀結合判斷,在當前幀未檢測到目標框時有兩種可能,一個是攝像頭云臺旋轉,視角切換到了看不到水標尺的位置,一種就是網絡誤判不存在水尺。在上一幀目標框基礎上,對比當前幀與上一幀,求差分,并使用形態學腐蝕濾掉由于攝像頭抖動造成的邊緣。計算非零點占比,當百分比較大時確定當前幀的視角與之前的視角不一致,則當前SSD網絡輸出的結果是正確的,否則使用之前的網絡輸出結果對當前幀進行下一步計算。檢測效果如圖4所示。

2 水位識別

2. 1 圖片增強

圖2 SSD網絡模型圖

由于水尺所持環境光照的變化,安防監控攝像頭獲取到的圖像可能出現曝光過度或者曝光不足的情況,變現在圖像上就是水尺邊緣不清晰,對于分離出水尺刻度造成非常大的影響。

圖4 SSD網絡輸出水尺分類矩形框

本文使用三通道直方圖均衡的方式,將圖像進行非線性拉伸,使圖像峰值部分對比度得到增強[10]。單通道直方圖均衡如公式(1)所示,其中Sk表示灰度為k的像素均衡后的像素值。L表示位深度,灰度范圍為[0,L-1],MN分別表示圖像的寬高。nj表示灰度值為j的像素值總數。

增強后的圖片,圖像邊緣更加清晰,并且圖像的灰度在灰度范圍內均衡分布,能較好地提取出水尺的邊緣信息。原圖與增強后的圖如圖5(a)、(b)所示。

圖5 水尺識別效果圖

2. 2 水尺傾斜矯正

對于增強后的圖像而言,需要進一步縮小水尺范圍。去除水尺周邊復雜的場景邊緣信息對水尺讀數造成的影響,并矯正水尺的角度,使水尺垂直于水平面。

如圖5(b)所示,在實際應用場景中,水尺的角度各異,周邊情況不盡相同,SSD模板檢測網絡能有效地檢測到水尺的大致范圍,但對于復雜場景中,水尺周邊的邊緣信息復雜,對水尺的檢測會造成很大的影響,所以必須進一步精確提取水尺的位置,并對偏移的水尺目標做矯正,使水尺能夠垂直于圖像水平面。為后續的水尺刻度讀數提高精度。

(1)Sobel邊緣提取

Sobel算子主要用來做邊緣檢測上,是離散型差分算子,用來運算圖像亮度函數的灰度近似值,在圖像任一地方使用此算子,均會產生灰度矢量或其法矢量,并能很好地抑制圖像中的噪聲,減少噪聲對實際邊緣信息造成的干擾[10]。Sobel卷積核如公式(2)所示。

Gx、Gy為兩組3×3的矩陣,分別為橫向和縱向,將之與圖像作平面卷積,即可分別得到橫向與縱向的高度差分近似值。

水尺目標中“E”的目標相對于背景有著很明顯的邊緣特征,通過邊緣提取能夠分離出水尺的邊緣,使ROI圖中的E更醒目,由于輸入圖是彩色的,包含更多的信息,使用Sobel算子,對上一步的結果圖進行邊緣檢測提取。邊緣提取后效果如圖5(c)所示。

(2)提取水尺

Sobel邊緣提取后,水尺周圍包含很多場景的噪聲及其他物體邊緣的影響,通過中值濾波去除周圍減小的噪聲,平滑獨立的像素點,并通過形態學閉操作和膨脹填充水尺中“E”的空隙。如圖5(d)所示,水尺依然是傾斜的,并且水尺周圍存在很多的干擾點,直接通過聯通區域找到最大外界矩形是不恰當的,會包含很多水尺外的噪聲點,所以我們通過旋轉圖片,矯正圖片使水尺垂直于水平面。

由于水尺目標的特點,水尺在圖片中包含了大量的白點,其他白點是水尺周圍物體的邊緣。圖6為二值圖中每列像素包含的非0點個數,可以看出,在40~100中間包含了大量的非0點,而40則為水尺左邊界,100為右邊界。通過計算非0像素在邊界范圍內的面積比,找出面積比最大的一個角度,此時的水尺接近于垂直水平面。并且可以通過計算列像素的梯度提取出水尺的左右邊界。獲得傾斜矯正后的水尺圖片后,對圖片的行像素進行同樣的處理,去除噪聲及其他邊界,就此得到水尺原圖。旋轉后的二值圖如圖5(e)所示。

圖6 二值圖y軸非0點個數

2. 3 水位識別

對增強后的圖片進行相同的傾斜矯正和圖片截取。圖片中水尺位置垂直水平面,并通過使用Sobel算子x方向邊緣檢測,由于水尺矯正后,x軸方向梯度變化較大。通過Sobel算子x方向邊緣檢測,能很好地過濾掉y軸的邊緣信息,而保留x軸的邊緣,從而能很好地提取出水尺x方向的邊緣信息。如圖5(f)能看出,雖然能很好地提取出水尺刻度,但仍然有水尺邊緣及水尺上數字的干擾。通過降噪消燥和形態學處理如圖5(g)(h),能很好地保留水尺的刻度信息,再通過尋找連通區域來確定水尺刻度如圖5(i)。

3 實驗結果

3. 1 數據集

本文數據集分為SSD目標檢測網絡訓練集和算法測試集。例圖如圖7所示。

SSD目標檢測網絡訓練集包括互聯網上抓取的水尺圖片和四川大學校內拍攝的水尺圖片,通過對圖片進行截取、旋轉、翻轉和對比度調整等操作,擴充水尺圖片數據。并根據數據集制作樣本。

算法測試集采用手機拍攝視頻,通過晃動和移動手機模擬實際水利場景下的監控攝像頭抖動及云臺控制。視頻采集于成都市九眼橋,使用最小刻度為1cm的紅藍兩種顏色的水尺在不同場景下錄制視頻。

3. 2 實驗結果

實驗環境如表1所示。

表1 實驗環境

實驗使用FFMpeg對分辨率為1280×720、幀率為30的輸入視頻進行解碼、使用SSD300-Caffe版本進行水尺目標檢測,使用OpenCV3.2對水尺目標區域圖像進行處理識別水位值。對紅藍兩種水尺,兩個不同場景下共四個視頻片段進行水位檢測。本文算法能做到單幀目標檢測加識別在80ms內,水尺定位實驗結果如表2所示、水位檢測部分實驗結果如圖7所示。

表2 SSD多幀水尺定位實驗結果表

圖8 水位檢測效果圖

從表2、圖8可以看出,對兩個不同場景下的紅藍兩種不同顏色的水尺進行視頻水位檢測,本文算法能做到水尺目標檢測準確率在95%以上,水位檢測誤差在2cm以內。并且視頻抖動和移動都不會對算法結果造成太大的影響。符合當前水利視頻監控的特征,對水位檢測系統有一定的幫助。

4 結語

本文采用深度學習目標檢測網絡SSD,能準確定位到安防監控中的水尺位置,并結合傳統機器視覺算法,計算最大像素占比來對水尺圖像進行傾斜矯正,再經過邊緣檢測,使用連通區域計算圖像中的水尺刻度數。經實驗結果表明,該算法能準確地定位水尺并識別水尺刻度,水位誤差低,并能良好地適應多種場景下的水尺目標,在監控云臺旋轉時,也能有效定位及識別。滿足行業需求?;赟SD目標檢測網絡的算法可以在增加目標分類基礎上進行擴展,增加諸如漂浮物、人等目標分類。并在此基礎上添加越線檢測,漂浮物檢測等算法。

猜你喜歡
水位邊緣圖像
基于生成對抗網絡的CT圖像生成
淺析p-V圖像中的兩個疑難問題
巧用圖像中的點、線、面解題
一張圖看懂邊緣計算
趣味數獨等4則
七年級數學期中測試題(B)
在邊緣尋找自我
走在邊緣
邊緣藝術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合