天天看點

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

1 案例背景

運動視覺研究的内容是如何從變化場景中的一系列不同時刻的圖像中提取有關場景中物體的形狀、位置和運動的資訊。根據研究的方法,它可以分為兩類:基于特征的方法和基于光流場的方法。基于特征的方法抽取特征點,是離散的;光流場屬于運動資料研究範疇,是基于連續的圖像序列,并直接對其進行運動估計,可以求得圖像中每一像素處所對應物體的運動資訊。

當物體運動時, 在圖像上對應物體的亮度模式也在運動。光流(Optical Flow) 是指圖像中亮度模式運動的速度,光流場是一種二維瞬時速度場,它是景物中可見點的三維速度矢量在成像表面的投影。光流不僅包含了被觀察物體的運動資訊,而且攜帶着有關場景的三維結構資訊。本案例基于Computer Vision System Toolbox, 使用光流場算法對交通視訊中汽車的運動進行檢測和估計。

2 理論基礎

2.1光流法檢測運動原理

光流場是指圖像灰階模式的表觀運動,它是一種像素級的運動。光流法檢測運動物體的基本原理是:根據各個像素點的速度矢量特征,可以對圖像進行動态分析。如果圖像中沒有運動物體,則光流矢量在整個圖像區域是連續變化的;當圖像中有運動物體時,由于目标和圖像背景存在相對運動,是以運動物體所形成的速度矢量必然和鄰域背景速度矢量不同,進而檢測出運動物體及其位置。但是光流法的優點在于,光流不僅攜帶了運動物體的運動資訊,還攜帶了有關三維結構的豐富資訊,它能夠在不知道場景任何資訊的情況下,檢測出運動的圖像。基于光流場的運動檢測的步驟如圖1所示。在理想情況下,光流場和二維運動場互相吻合,但這一命題不總是對的。如圖2所示,一個均勻球體在某一光源照射下,亮度呈現一定的明暗模式。當球體繞中心軸旋轉時,明暗模式并不随着表面運動,是以圖像也沒有變化,此時光流在任意地方都等于零,然而運動場卻不等于零。如果球體不動而光源運動,則明暗模式将開始随着光源運動,此時光流不等于零但運動場為零。

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

圖1基于光流場的運動檢測的步驟 圖2光流場和運動場的聯系和差別

光流場的方法能夠較好地用于二維運動估計,它也可以同時給出全局點的運動估計,但是光流場并不等價于運動場,是以其本身必然存在着一些問題:遮擋問題、孔徑問題、光照問題等。

2.2 光流的主要計算方法

光流場的計算主要有基于梯度的方法、基于比對的方法、基于能量的方法和基于相位的方法。另外,近幾年神經網絡動力學也頗受學者重視。基于梯度的方法利用圖像灰階的梯度來計算光流,是研究得最多的方法,比如Horn-S chun ck算法、Lucas-Kanade算法和Nagel算法。基于梯度的方法以運動前後圖像灰階保持不變作為先決條件,導出光流限制方程。由于光流限制方程并不能唯一地确定光流,是以需要導入其他限制。根據引入的限制不同,基于梯度的方法又可以分為全局限制方法和局部限制方法。全局限制的方法假定光流在整個圖像範圍内滿足一定的限制條件;而局部限制的方法假定在給定點周圍的一個小區域内,光流滿足一定的限制條件。

基于比對的方法包括基于特征比對和基于區域比對兩種。基于區域比對技術在視訊編碼中得到了廣泛應用,它通過對圖像序列中相鄰兩幀圖像間的子塊比對來進行運動估值。在區域比對算法中,圖像被分割為子塊,子塊中所有像素的運動被認為是相同的,由于複雜的運動可以被近似地分解為一組平移運動之和,是以區域比對算法采用的運動模型假設圖像中的運動物體由做平移運動的剛體組成,且假設在圖像場景中沒有大的遮擋物。

基于能量的方法首先要對輸入圖像序列進行時空濾波處理,這是一種時間和空間整合。對于均勻的流場,要獲得正确的速度估計,這種時空整合是非常必要的。然而,這樣做會降低光流估計的空間和時間分辨率。尤其是當時空整合區域包含幾個運動成分(如運動邊緣)時,估計精度将會惡化。此外,基于能量的光流技術涉及大量的濾波器,是以存在高計算負荷的問題。然而可以預期,随着相應硬體的發展,在不久的将來,濾波将不再是一個嚴重的限制因素,所有這些技術都可以在幀速下加以實作。

基于相位的方法由Fleet和Jepson提出, 該算法根據帶通濾波器輸出的相位特性來确定光流。通過與帶通速度調諧濾波器輸出中的等相位輪廓相垂直的瞬時運動來定義分速度。帶通濾波器按照尺度、速度和定向來分離輸入信号。基于相位的光流技術的綜合性能比較優秀,光流估計比較精确且具有較高的空間分辨率,對圖像序列的适用範圍也比較寬。

對于光流計算來講,如果說前面的基于能量或相位的模型有一定的生物合理性的話,那麼近幾年出現的利用神經網絡建立的視覺運動感覺的神經動力學模型則是對生物視覺系統功能與結構的更為直接的模拟。盡管現有的神經動力學模型還不成熟,然而這些方法及其結論為其進一步研究打下了良好的基礎,是将神經機制引入運動計算方面所做的極有意義的嘗試。

目前,對光流的研究方興未艾,新的計算方法還在不斷湧現。這裡對光流技術的發展趨勢與方向提出以下看法。

(1)現有技術有各自的優點與缺陷,方法之間互相結合,優勢互補,建立光流計算的多階段或分層模型是光流技術發展的一個趨勢。

(2)通過深入的研究發現,現有光流方法之間有許多共通之處。如微分法和比對法的前提假設極為相似;某些基于能量的方法等效于區域比對技術;而相位方法則将相位梯度用于法向速度的計算。

(3)盡管光流計算的神經動力學方法還很不成熟,然而對它的研究卻具有極其深遠的意義。随着生物視覺研究的不斷深入,神經網絡方法無疑會不斷完善,也許光流計算乃至計算機視覺的根本出路就在于神經機制的引入。

2.3 梯度光流場限制方程

假定像素點(x,y)在1時刻的灰階值為I(x,y,t),在1+dr時刻,該像素點運動到新的位置(x+dx,y+dy),此時對應的灰階值為I(x+dx,y+dy,t+dr)。根據圖像的一緻性假設,當dt→0時,圖像沿着運動軌迹的亮度保持不變,即:I(x,y,t)=I(x+dx,y+dy,t+dt)(23.1)

如果圖像灰階随(x,y,t)緩慢變換,則将(23.1)式進行泰勒級數展開:

(1)

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

如果圖像灰階随(x,y,t)緩慢變換,則将(1)式進行泰勒級數展開:

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

于是

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】
【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】
【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

式中,VI-[1…1,]表示梯度方向;U=[u,可表示光流。(23.4)式稱為光流限制方程,是

所有基于梯度的光流計算方法的基礎。

考慮由u和v組成的二維空間,那麼(4)式定義了一條直線,所有滿足限制方程的U=[u,都在該直線上,如圖3所示,該直線和梯度VI-[1…1,]垂直。由于光流限制方程包含u和v兩個未知量,顯然由一個方程并不能唯一确定,為了求解光流場,必須引入新的限制條件。

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

圖3光流基本方程所确定的限制線

根據限制條件的不同,梯度光流法又分為全局限制方法和局部限制方法。全局限制方法假定光流在整個圖像範圍内滿足一定的限制條件,而局部限制的方法假定在給定像素點周圍的一個小區域内,光流滿足于一定的限制條件。常用的基于梯度的光流計算方法如下。

(1)運動場平滑

Horn-S chun ck假設光流在整個圖像上光滑變化, 即運動場既滿足光流限制方程又滿足全局平滑性。将光滑性測度同權重微分限制測度組合起來,其中權重參數控制圖像流限制微分和光滑性微分之間的平衡。

(2)預測校正

Lucas-kanade假設在一個小的空間鄰域上運動矢量保持恒定, 然後使用權重最小二乘的思想來估計光流,它是一種基于像素遞歸的光流算法,就是預測校正型的位移估算器。預測值可以作為前一個像素位置的運動估算值,或作為目前像素鄰域内的運動估算線性組合。依據該像素上的位移幀差的梯度最小值,對預測做進一步的修正。

(3)平滑限制

與Hom-S chun ck算法一樣, Nagel也使用了全局平滑限制來建立光流誤差測度函數,

但是Nagel提出的一種面向平滑的限制, 并不是強加在亮度梯度變化最劇烈的方向(比如

邊緣方向)上的,這樣做的目的是為了處理遮擋。

2.4 Horn-S chun ck光流算法

Horn-S chun ck算法是一種全局限制的方法, 其提出了光流的平滑性限制條件, 即圖像

上任一點的光流并不是獨立的,光流在整個圖像範圍内平滑變化。所謂平滑,就是在給定

鄰域内其速度分量平方和積分最小:

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

在實際情況下,(5)式可以使用下面的表達式代替:

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

式中,u和▼分别表示u鄰域和v鄰域中的均值。

根據光流基本方程(4) 式考慮光流誤差, Horn-S chun ck算法将光流求解歸結為如下極值問題:

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

式中,入控制平滑度,它的取值要考慮圖中的噪聲情況,如果噪聲較強,則說明圖像資料

本身的置信度較低,需要更多地依賴光流限制,是以1可以取較大的值;反之,可以取較

小的值。

【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】
【車輛計數】基于matlab光流法行駛車輛檢測計數【含Matlab源碼 627期】

1 matlab版本

2014a

2 參考文獻

[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.

[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.

[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.

[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.

繼續閱讀