錢 江 張桂榮 何 平 姚 江 顧宋華 季建中
(江蘇省泰州引江河管理處 泰州 225300)
隨著內河航運的蓬勃發(fā)展,過閘船舶流量增大,稽查復核工作日益繁重。目前船舶稽查復核工作中需登記船名、船舶尺寸、船身吃水等參數,傳統方法需要工作人員登船測量檢查,此舉耗費大量人力且拖慢了放閘速度。一種先進、高效的船舶參數估計方法亟待提出,目前船閘視頻監(jiān)控技術已逐漸普及,基于視頻進行參數估計是一種成本低、安裝方便的解決方案。
船舶目標檢測是參數估計的關鍵技術,只有精準地檢測到目標區(qū)域是否有船舶和船舶大致位置,才有進行參數估計的必要。國外目標檢測領域研究起步較早,60年代,Papageorgiou等[1]提出了用于靜態(tài)圖像目標檢測的一般框架;Lowe等[2]通過獲取圖像關鍵點附近的梯度信息來檢測運動目標;Dalal等[3]提出了梯度直方圖特征將其用于靜態(tài)圖像的行人檢測。雖然目標檢測算法在國外的研究較早,但在船舶檢測領域的研究起步較晚。劉?。?]提出了一種復雜內河背景下對紅外運動船舶目標檢測和跟蹤的方法;柴東[5]通過兩次檢測運動圖像區(qū)域以確認實際船舶目標的檢測方法;熊木地等[6]研制了基于超聲波傳感器陣列的船舶動態(tài)吃水實時檢測系統。對于船舶尺寸、吃水等參數的估計,陳星明[7]運用PCA方法分類圖像點云數據,測量出運動船舶的三維尺寸;郭方[8]運用BP神經網絡對船舶圖像中分割特征進行識別,完成對吃水線值的求??;邱中亞[9]優(yōu)化了矩陣逼近的尺寸計算方法,利用船舶的輪廓截取船舶的軌跡直線,將截取的線段作為船舶的長度大小。
本文提出一種基于背景建模的方法獲取船舶目標,采用累積差分法獲得船舶邊緣,并通過轉換關系估計船舶尺寸參數。
船舶檢測技術是船舶參數估計的第一步,本文基于視頻分析技術提出一種背景建模船舶檢測方法?;谝曨l的船舶檢測技術算法流程圖如圖1,首先讀入視頻流,之后基于背景建模檢測前景,背景建模包含初始化、前景判斷和背景更新三個步驟,檢測到前景二值圖后進行連通域分析,根據先驗條件去除非船舶目標,最后得到船舶的位置信息。
圖1 基于視頻的船舶檢測技術算法流程圖
在傳統的運動物體識別技術中,各像素都是特定光照射在特定表面的結果,考慮到采樣噪聲,大多采用單高斯建模;為了適應光照的變化,也會對每像素進行自適應單高斯建模??紤]到船舶所處的江面背景復雜,光照變化較大,本文采用改進的混合自適應高斯模型[10](Gaussian Mixture Model,GMM)用于船舶檢測。
該模型的原理為將特定像素q的像素值(灰度值時為標量,彩色圖為矢量)在時間上的序列看作一個“像素過程”,在任何時刻 t,可將 q(x0,y0)的歷史像素信息表示如式,其中I表示圖像序列。
q(x0,y0)當前時刻像素值為 Xt的概率可表示如式,式中 K 為高斯分布的個數,ωi,t為第 i個高斯分量的權重且陣。η為高斯概率密度函數,可表示如式(3),其中n為Xt的維數。
K為高斯分布個數,取決于計算機的運算能力和可用內存,一般取3~5。另外,考慮到計算量,假定方差矩陣有著如下形式∑k,t=σ2kI,即認為R、G、B分量值相互獨立且方差相等。這個假設以精度下降為代價,避免了耗費大量的資源去計算矩陣的逆。由此便建立了GMM模型。一個新的像素值可由模型中的一個主分量來表示,且該新值也被用來更新模型。
若像素的過程變化是平穩(wěn)的,則可用采用最大期望法(Expectation Maximization,EM)估計數據概率。然而,在現實情況中像素值會隨環(huán)境變化而變,故采用近似法。該方法本質上是將每個新觀察值當作一個尺寸為1的樣本集,然后使用標準的學習規(guī)則來將新數據進行整合。
由于每個像素都有一個GMM模型,所以利用EM算法對視頻中一幀圖像進行精確處理非常耗時。為提高計算速度,本方法使用在線K均值近似法[11](On-Line K-means approximation)代替 EM 算法。將新值Xt與K個分布進行檢查,直至匹配成功。匹配門限定義為分布的標準差的2.5倍,像素值小于閾值,則視為匹配成功。該模型的每個像素的每個分布都有一個門限,在圖像各區(qū)域亮度不均勻的情形時極為有用,因為位于暗處的物體的噪聲通常要比亮處物體的要小,單一門限通常會導致當物體進入暗處時無法被檢測到。
若K個分布均與當前像素值失配,則以該值更新最小分量:均值為當前像素值,方差為初始方差值(一個較高的值),以及一個較低的權值。
t時刻K個分布的權值,更新方式如式(4),式中α為學習率,若當前像素值與該模型匹配,則Mk,t=1,否則為0。調整后,重新對權值進行歸一化。1/α定義了時間常量,該常量決定了分布參數的更新快慢。ωk,t為后驗概率均值(給定時刻1~t的觀測值,該像素值與模型k匹配的后驗概率)低通濾波的快速實現,等同于給過去像素值加指數窗的期望。
對于未配分布,μ、σ不變,對于匹配的分布,則按式(5)更新:
連通區(qū)域(Connected Component)一般是指圖像中具有相同像素值且位置相鄰的前景像素點組成的圖像區(qū)域。連通區(qū)域分析是指將圖像中的各個連通區(qū)域找出并標記的方法,該方法在計算機視覺和圖像分析處理的眾多應用領域中較為常用,例如在需要將前景目標提取出來以便后續(xù)進行處理的應用場景中可采用該法。連通區(qū)域分析處理的對象是二值圖像。在本場景中,輸入圖像為背景建模后的二值圖,分析二值圖的連通狀態(tài),得到的連通域作為船舶候選目標。
連通域分析采用種子填充法[12],種子填充方法源自于計算機圖形學,常用于對某個圖形進行填充。該算法思路:選取一個前景像素點作為種子,然后根據連通區(qū)域的兩個基本條件(像素值相同且位置相鄰)將與種子相鄰的前景像素合并到同一個像素集合中,最后得到的該像素集合則為一個連通區(qū)域。
種子填充法算法流程如下:1)掃描圖像,直到當前像素點B(x,y)=1,將該點作為種子,并賦予其Label值,然后將該種子相鄰的所有前景像素都壓入棧中;2)彈出棧頂像素,賦予其相同的Label,然后再將與該棧頂像素相鄰的所有前景像素都壓入棧中;3)重復步驟2),直到棧為空,此時便找到圖像B的一個連通域,該區(qū)域內像素被標記為Label;4)重復步驟1)~3),直到掃描結束。
連通域分析結果中往往有多個連通域,除船舶目標之外,還可能存在水花、雜物、反射太陽光等噪聲,因此如何將噪聲去除得到目標船舶是本節(jié)研究重點。船舶目標相對其他噪聲具有比較固定的形狀和尺寸,因此將非目標去除可以通過分析各連通域的屬性,對每個屬性設定閾值范圍,從而達到去除非目標的目的。
本節(jié)分析的連通域屬性主要有前景點數、外接矩形寬高比和矩形度等。已知連通域是一個點集,包含連通域內每個像素點坐標。區(qū)域面積即為該區(qū)域內像素點個數;外接矩形寬高比即寬度高度之比;矩形度即為區(qū)域面積與外接矩形面積之比,該值越接近1,該區(qū)域外形越接近矩形。對以上屬性設定閾值,可以去除非目標,進而得到符合先驗知識的船舶目標。
表1 連通域屬性說明
本文所用的連通域參數如表1所示。本文設定的船舶目標連通域應滿足式(6)。式(6)中的wm、hm可利用 wp、hp根據像素與米的轉換關系[13]計算而得。若不滿足該式,則判定為非目標。
船舶的底邊緣和左右邊緣檢測是船舶參數估計的關鍵。本文提出一種新的邊緣檢測方法,采用多點累積差分值作為邊緣。
假設目標船舶位于某矩形ROI(感興趣區(qū)域,Region of Interest)內,ROI灰度圖高為 h、寬為 w,G(i,j)表 示 ROI第 i行 j列 像 素 的 灰 度 值 ,0≤G(i,j)≤255。
垂直邊緣檢測步驟如下。
1)對ROI各列求均值,得到一個行向量R,如式(7):
2)設船舶邊緣寬度為b個像素,對R(j)進行差分,得到Diff1,如式(8):
3)計算Diff1的累計值,如式(9):
4)再次對DiffAcc做差分,得到Diff2,如式(10):
5)求Diff2的最大值,及其索引。若最大值超過門限,則返回垂直邊緣的列索引k,如此便得到垂直邊緣。
水平邊緣的檢測方法與垂直邊緣類似,在此不再贅述。
檢測到船舶邊緣之后,可以計算出船舶邊緣點在圖像中的行列位置,將像素位置轉化成世界坐標系坐標是參數估計的關鍵。
在像素與米的轉換中涉及到以下三個坐標系的轉換與計算。
1)世界坐標系(XwYwZw)
它是客觀世界的絕對坐標,是由用戶任意定義的三維空間坐標系。下標w表示World。
2)攝像機坐標系(XcYcZc)
以小孔攝像機模型的聚焦中心為原點,以攝像機光軸為Zc軸建立的三維直角坐標系。Xc、Yc軸一般與圖像像素坐標系的R、C軸平行。下標c表示Camera。
3)圖像像素坐標系(ROiC)
以像素為單位的平面直角坐標系,下標i表示Image。其原點位于圖像左上角,R表示Row(行);C表示Col(列)。
圖像坐標系與世界坐標系可以相互轉換,例如已知P點空間坐標(xw,yw,zw),則可求得該點在圖像上對應點Q的坐標(r,c),轉換關系如式(11)。式中M為3×3矩陣,由攝像機的內部參數構成;W為3×4矩陣由攝像機的外部參數構成;M和W均可通過標定得到。
空間坐標系與像素坐標系投影關系如圖2。若將Ow點與Oc點重合,Yw垂直向上,Zw指向光軸的水平正前方;攝像頭離地高度為h(即yw=h),且只存在俯角pitch(用φ表示),偏角yaw=0,滾動角roll=0。此時給定圖像上一點Q(r,c),其與江面上該點相對攝像頭的前向距離zw與橫向距離xw,存在關系如式(12)和式(13)。式中r0、c0為圖像中心所在的行列,fp為攝像頭的等效焦距(單位:像素,由攝像頭廠家給出或通過標定得到)。
圖2 空間坐標系與像素坐標系投影關系
第3節(jié)中已提到,船舶的左右邊緣和上下邊緣可通過累積差分法檢測到,由此便可得到邊緣點坐標。結合式(13)將邊緣點的圖像坐標轉換到空間坐標,便可計算船舶邊緣在空間坐標的長度和寬度,至此完成船舶的高度和長度估計。
圖3 船舶全景圖(用于船舶檢測)
本文實驗所用視頻和圖像均為在高港船閘現場錄制和拍攝,布設相機分為檢測相機和抓拍相機,檢測相機采用視野較大的全景槍機,分辨率為2560×520,抓拍相機采用普通槍機,分辨率為1920×1080。當檢測相機檢測到有船舶通過時,觸發(fā)普通槍機進行抓拍。本文中,船舶檢測部分采用全景槍機拍攝的視頻流;參數估計部分采用普通槍機拍攝的船舶細節(jié)圖像,圖3為船舶全景圖,圖4為船舶細節(jié)圖。本文算法在Visual Studio 2015環(huán)境中基于C++開發(fā)語言及OpenCV3.1.0開源機器視覺庫進行。
圖4 船舶細節(jié)圖(用于參數估計)
船舶檢測實驗中,對視頻流進行背景建模,得到前景二值圖,如圖5(a)所示,圖中靜止的水面及其他背景表現為黑色,運動的船舶等前景表現為白色,但從圖(a)中可以看出,前景除了船舶還包括一些運動的水波,在進行連通域分析和非目標去除后,僅留下船舶前景如圖(b),船舶最終檢測結果如圖(c)。
圖5 背景建模檢測船舶
本文采用的船舶檢測評價指標為交并比(Intersection over Union,IOU)。IOU計算了真實目標區(qū)域和檢測區(qū)域的交集比并集,描述了兩個區(qū)域的重合程度。一般地,IOU閾值取0.5,即IOU大于0.5視為檢測正確,反之視為檢測錯誤。
本實驗測試視頻為2560×520的全景視頻流,共計1452個船舶目標。對該視頻流采用三種方法進行船舶檢測對比實驗,分別為文獻[14]提出的基于邊緣和HOG相結合的船舶檢測方法、文獻[15]提出的改進Vibe算法的船舶輪廓檢測方法和本文提出的基于混合自適應高斯模型的船舶檢測方法。
表2 船舶檢測統計
表2為三種船舶檢測方法的統計結果。實驗結果表明,本文提出的船舶檢測方法在精度上表現最佳,比文獻[14]方法高3.12%,比文獻[15]方法高10.81%,在誤檢率方面也遠遠優(yōu)于其余兩種方法,且檢測速度可達到實時檢測。
船舶左右邊緣檢測過程如圖6所示,統計每一列差分值,設定差分閾值,本文實驗中左邊緣差分閾值設為40,右邊緣差分閾值設為-30,當差分值大于(或小于)閾值時,判定該區(qū)域存在船舶邊緣,找出差分極值點所在列,即為船舶邊緣。
圖6 累積差分法檢測船舶左右邊緣
本實驗共統計100艘船舶參數估計結果,并與船舶實際參數進行對比,部分船舶參數估計實驗結果如表3所示。從表中可以看出,本文方法估計長度與高度誤差率均在5%以內,且具有較好的魯棒性。
表3 船舶參數估計結果
基于視頻分析的船舶檢測及參數估計方法,能快速、準確、便捷地獲取船舶長度和高度信息,在提高效率的基礎上大大降低了稽查復核工作強度。文中提出的基于混合自適應高斯模型的船舶檢測方法能在復雜的水面環(huán)境具有較高的精度,精度高達96.83%,且具有較低的漏檢率,船舶長度和高度估計誤差率在5%以內。