光流法
計算相鄰幀物體運動信息的方法
光流法是通過建立目標運動矢量場,用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關係,從而計算出相鄰幀之間物體的運動信息的一種方法。
目錄
人類主要通過眼睛,耳朵和大腦來獲取、處理與理解獲得的信息。然而圖像具有最直觀、明了、讓人一看就懂的特質,因為人們獲取信息70%以上依靠視覺,20%左右依靠聽覺,10%左右依靠觸覺和嗅覺,這就是為什麼“百聞不如一見”,一幅圖像說明一切問題,勝過千言萬語。
計算機視覺這一領域的先驅可追溯到很早的時候,但是直到20世紀70年代後期,當計算機的性能提高到足以處理諸如圖像這樣的大規模數據時,計算機視覺才得到了正式的關注和發展。計算機視覺就是用各種成象系統代替視覺器官作為輸入敏感手段,由計算機來代替大腦完成處理和解釋,也包括對視覺信息的採集,傳輸,處理,存儲與理解等過程。計算機視覺最終研究目標就是使計算機能像人那樣通過視覺觀察和理解世界,具有自主適應環境的能力,要經過長期的努力才能達到的目標。因此,在實現最終目標以前,人們努力的中期目標是建立一種視覺系統,這個系統能依據視覺敏感和反饋的某種程度的智能完成一定的任務。計算機視覺應用領域較廣泛,包括航空航天、衛星照片、軍事導彈精確制導、移動機器人視覺導航、工業自動化系統、醫學輔助診斷等。
計算機視覺系統的結構形式很大程度上依賴於其具體應用方向。有些是獨立工作的,用於解決具體的測量或檢測問題,也有些作為某個大型複雜系統的組成部分出現,比如工業控制系統,汽車導航系統。計算機視覺系統的具體實現方法同時也由其功能決定,有些是預先固定的,有些是在運行過程中自動學習調整。儘管如此,以下幾個功能卻幾乎是每個計算機系統都需要具備的。
圖像獲取,一幅數字圖像是由一個或多個圖像感知器產生的,例如攝像機,紅外遙感攝像儀,雷達,超聲波接收器等,所產生的圖片包括二維圖像,三維圖像或者一個圖像序列。
預處理,在對圖像實施具體的計算機視覺方法來提取某種特定的信息前,首先通過一種或一些方法預先對圖像進行處理,以滿足後繼圖像處理的要求,包括二次取樣,平滑去噪,提高對比度等。
特徵提取,是使用計算機提取圖像信息,檢查每個像素確定該像素是否代表一個特徵,例如邊緣提取,邊角檢驗,斑點檢驗。圖像分割,對圖像進行分割來提取有價值的信息用於後繼處理的部分。
光流法的基本原理
光流是空間運動物體在觀測成像面上的像素運動的瞬時速度。光流的研究是利用圖像序列中的像素強度數據的時域變化和相關性來確定各自像素位置的“運動”,即研究圖像灰度在時間上的變化與景象中物體結構及其運動的關係。一般情況下,光流由相機運動、場景中目標運動或兩者的共同運動產生。光流計算方法大致可分為三類:基於匹配的、頻域的和梯度的方法。
(1) 基於匹配的光流計算方法包括基於特徵和基於區域兩種。基於特徵的方法不斷地對目標主要特徵進行定位和跟蹤,對大目標的運動和亮度變化具有魯棒性。存在的問題是光流通常很稀疏,而且特徵提取和精確匹配也十分困難。基於區域的方法先對類似的區域進行定位,然後通過相似區域的位移計算光流。這種方法在視頻編碼中得到了廣泛的應用。然而,它計算的光流仍不稠密。
(2) 基於頻域的方法利用速度可調的濾波組輸出頻率或相位信息。雖然能獲得高精度的初始光流估計,但往往涉及複雜的計算。另外,進行可靠性評價也十分困難。
(3) 基於梯度的方法利用圖像序列的時空微分計算2D速度場(光流)。由於計算簡單和較好的效果,基於梯度的方法得到了廣泛的研究。雖然很多基於梯度的光流估計方法取得了較好的光流估計,但由於在計算光流時涉及到可調參數的人工選取、可靠性評價因子的選擇困難,以及預處理對光流計算結果的影響,在應用光流對目標進行實時監測與自動跟蹤時仍存在很多問題。
光流法檢測運動物體的基本原理是:給圖像中的每一個像素點賦予一個速度矢量,這就形成了一個圖像運動場,在運動的一個特定時刻,圖像上的點與三維物體上的點一一對應,這種對應關係可由投影關係得到,根據各個像素點的速度矢量特徵,可以對圖像進行動態分析。如果圖像中沒有運動物體,則光流矢量在整個圖像區域是連續變化的。當圖像中有運動物體時,目標和圖像背景存在相對運動,運動物體所形成的速度矢量必然和鄰域背景速度矢量不同,從而檢測出運動物體及位置。採用光流法進行運動物體檢測的問題主要在於大多數光流法計算耗時,實時性和實用性都較差。但是光流法的優點在於光流不僅攜帶了運動物體的運動信息,而且還攜帶了有關景物三維結構的豐富信息,它能夠在不知道場景的任何信息的情況下,檢測出運動對象。
對於視頻監控系統來說,所用的圖像基本都是攝像機靜止狀態下攝取得,所以對有實時性和準確性要求的系統來說,純粹使用光流法來檢測目標不太實際。更多的是利用光流計算方法與其它方法相結合來實現對目標檢測和運動估計。
然而,在實際應用中,由於遮擋性、多光源、透明性和雜訊等原因,使得光流場基本方程的灰度守恆假設條件不能滿足,不能求解出正確的光流場,同時大多數的光流計算方法相當複雜,計算量巨大,不能滿足實時的要求,因此,一般不被對精度和實時性要求比較高的監控系統所採用。
光流法的國內外現狀 對光流演演算法的研究,最早可追溯到二十世紀五十年代,Gibson和Wallach等學者提出的SFM(Structure From Motion)假設,即以心理學實驗為基礎,開創性的提出從二維平面的光流場可以恢復到三維空間運動參數和結構參數的假設,但該假設直到七十年代末才有ULLman等學者驗證該假設。真正提出有效光流計算方法還歸功於Horn和Schunck在1981年創造性地將二維速度場與灰度相聯繫,引入光流約束方程的演演算法,是光流演演算法發展的基石。光流演演算法發展至今不下幾十種,其中許多是基於一階時空梯度技術,其方法不僅效率高,且易於實現,總的深入分析可將光流演演算法分為四類。
(1)研究解決光流場計算的不適定問題的方法
在研究解決光流場計算不適定問題的方法的過程中,學者們提出了很多克服不適定問題的演演算法,例如Horn根據同一個運動物體的光流場具有連續、平滑的特點,即三維圖像投影到二維圖像上的光流變化也是平滑的,提出一個附加約束條件,將光流場的整體平滑約束轉換為一個變分的問題;Tretiak和Nagel認為對光流場的計算屬於一類微分問題,由於要涉及圖像灰度時空導數計算,而提出了在二階微分運算元的基礎上添加一個附加約束;Nagel提出為使附加的光滑性約束沿光流場梯度的垂直方向上變化率最小,導出了一種新的迭代演演算法;Wohu等人利用非線性平滑條件和局部約束來計算時變序列圖像的光流場;Haralick等人通過將二維物體表面分割為若干個小平面,並假設小平面運動方向,速度近似,且在短時間內為常量,據此思想基礎上得到了附件約束。國內復旦大學的吳立德教授對灰度時變圖像光流場的理論進行過研究並提出了多通道方法。
(2)研究光流場計算的快速演演算法
在光流演演算法快速演演算法研究中,Braillon提出一種光流模型檢測障礙物的方法,該方法是為攝像機建立經典的針孔模型,並在針孔模型上建光流模型,並不需要計算完整的光流場;Valentinotti在并行的DSP系統上實現了基於相位的光流演演算法,對128×128和64×64圖像序列實現了快速處理;Andres Bruhn等人在對光流計算時引入了多尺度分析,提高了計算的效率;昌猛等人在Horn-Schunck演演算法的遞歸方程的基礎上添加了一個慣性因子,性能不降低,然而收斂時間縮短了1/2-1/3,也極大的提高了計算效率。
(3)研究光流場計算基本公式的不連續性
在光流場計算基本公式導出過程中由於利用泰勒級數展開,實際上認為圖像灰度以及亮度場變化都是連續的。然而,實際景物各個獨立的表面就使光流的速度場成為非連續的,因此當光流場計算基本公式出現不連續時,是個值得討論的問題,日本學者 Mukauwa考慮光流場計算基本等式應用泰勒級數展開后,實際上是不連續的,他引入了一個修正因子q后,很好的解決了不連續性的問題。
(4)研究直線和曲線的光流場計算技術
光流場的計算是計算機視覺的重要組成部分,主要是通過二維空間的光流場恢復重建三維物體的運動和結構。一般來說,用當個像素點來表示光流場顯然不合適,通過抽象層次手工勞動提高像素點將更有利於進行圖像處理和分析。例如,Allmen就是通過定義時空表面流為時空表面光流的延伸,認為輪廓線移動時,它們在平面上的投影也相對移動,利用它們在時空表面流與空間流曲線來計算光流場;Kumar提出一種可以很好的保留邊界信息的新的計算光流場的曲線方法,其計算結果和理論分析非常吻合;Park利用輪廓線曲率信息去估算輪廓線的運動。
光流法的意義
將三維空間中的目標和場景對應於二維圖像平面運動時,他們在二維圖像平面的投影就形成了運動,這種運動以圖像平面亮度模式表現出來的流動就稱為光流。光流法是對運動序列圖像進行分析的一個重要方法,光流不僅包含圖像中目標的運動信息,而且包含了三維物理結構的豐富信息,因此可用來確定目標的運動情況以及反映圖像其它等信息。
基於光流可以實現在軍事航天、交通監管、信息科學、氣象、醫學等多個領域的重要應用。例如利用光流場可以非常有效的對圖像目標進行檢測和分割,這對地對空導彈火控系統的精確制導,自動飛行器精確導航與著陸,戰場的動態分析,軍事偵察的航天或衛星圖片的自動分析系統,醫學上異常器官細胞的分析與診斷系統,氣象中對雲圖的運動分析,城市交通的車流量進行監管都具有重要價值。
當前對於光流法的研究主要有兩個方向:一是研究在固有硬體平台基礎上實現現有演演算法,二是研究新的演演算法。光流演演算法的主要目的就是基於序列圖像實現對光流場的可靠、快速、精確以及魯棒性的估計。然而,由於圖像序列目標的特性、場景中照明,光源的變化、運動的速度以及雜訊的影響等多種因素影響著光流演演算法的有效性。儘管近幾十年來,國內外學者提出了各種各樣的光流場的演演算法,然而,建立可靠的光流演演算法模型仍然面臨很大的挑戰。開展研究光流演演算法涉及多個學科領域的理論和技術,如圖像處理、計算機科學、模式識別、矩陣分析、優化理論等。對這一研究的發展不僅拓寬了這些領域的理論基礎和技術研究範疇,而且為這些理論和技術的應用打開一扇新的窗口。
光流法的計算
先設定物體時刻t位於(x,y)點,經過Δt后,物體在t+Δt時刻位於(x+Δx,y+Δy)點,則有:
L(x+Δx,y+Δy,t+Δt)=L(x,y,t)
對圖像約束方程使用一級泰勒公式展開,我們可以得到:
L(x+Δx,y+Δy,t+Δt)=L(x,y,t)+ΔL/Δx+ΔL/Δy+ΔL/Δt
從方程可以得出:
δL/δx*Δx+δL/δy*Δy+δL/δt*Δt=0
由此所求δL/δx,δL/δy,δL/δt是圖像在(x,y,t)這一點相應方向的差分。