運動目標檢測光流法_第1頁
運動目標檢測光流法_第2頁
運動目標檢測光流法_第3頁
運動目標檢測光流法_第4頁
運動目標檢測光流法_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、沈陽理工大學數字圖像處理課程設計摘 要運動目標檢測方法是研究如何完成對視頻圖像序列中感興趣的運動目標區域的“準確定位”問題。光流場指圖像灰度模式的表面運動,它可以反映視頻相鄰幀之間的運動信息,因而可以用于運動目標的檢測。MATLAB這種語言可移植性好、可擴展性強,再加上其中有豐富的圖像處理函數,所以利用MATLAB軟件來用光流法對運動目標的檢測中具有很大的優勢。本設計主要可以借助matlab軟件編寫程序,運用Horn-Schunck算法對圖像前后兩幀進行處理,畫出圖像的光流場。而圖像的光流場每個像素都有一個運動矢量,因此可以反映相鄰幀之間的運動,分析圖像的光流場就可以得出圖像中的運動目標的運動

2、情況。關鍵字:光流法;Horn-Schunck算法;matlab目 錄1光流法的設計目的12光流法的原理12.1光流法的介紹12.1.1光流與光流場的概念12.1光流法檢測運動目標的原理22.1.1光流場計算的基本原理22.2.2基于梯度的光流場算法22.2.3Horn-Schunck算法32.2.4光流法檢測運動目標物體的基本原理概述53光流法的程序具體實現63.1源代碼63.1.1求解光流場函數63.1.2求導函數83.1.3高斯濾波函數93.1.4平滑性約束條件函數103.1.5畫圖函數104仿真圖及分析12結論13參考文獻14I1 光流法的設計目的數字圖像處理,就是用數字計算機及其他有

3、關數字技術,對圖像進行處理,以達到預期的目的。隨著計算機的發展,圖像處理技術在許多領域得到了 廣泛應用,數字圖像處理已成為電子信息、通信、計算機、自動化、信號處理 等專業的重要課程。數字圖像處理課程設計是在學習完數字圖像處理的相關理論后,進行的綜合性訓練課程,其目的是:使學生進一步鞏固數字圖像處理的基本概念、理論、分析方法和實現方法;增強學生應用Matlab編寫數字圖像處理的應用程序及分析、解決實際問題的能力;嘗試所學的內容解決實際工程問題,培養學生的工程實踐能力。運動目標檢測是數字圖像處理技術的一個主要部分,近些年來,隨著多媒體技術的迅猛發展和計算機性能的不斷提高,動態圖像處理技術日益受到人

4、們的青睞,并且取得了豐碩的成果,廣泛應用于交通管理、軍事目標跟蹤、生物醫學等領域。因此,基于光流法,實現運動目標的檢測是本文的研究對象。結合圖書館書籍、網上資料以及現有期刊雜志,初步建立起運動目標檢測的整體思路和方法。2 光流法的原理2.1 光流法的介紹2.1.1 光流與光流場的概念光流是指空間運動物體在觀測成像面上的像素運動的瞬時速度,它利用圖像序列像素強度數據的時域變化和相關性來確定各自像素位置的“運動”,即反映圖像灰度在時間上的變化與景物中物體結構及其運動的關系。將二維圖像平面特定坐標點上的灰度瞬時變化率定義為光流矢量。視覺心理學認為人與被觀察物體發生相對運動時,被觀察物體表面帶光學特征

5、的部位的移動給人們提供了運動和結構的信息。當相機與場景目標間有相對運動時所觀察到的亮度模式運動稱之為光流(optical flow),或者說物體帶光學特征部位的移動投影到視網膜平面(也即圖像平面)上就形成了光流。光流場是指圖像灰度模式的表觀運動,它是一個二維矢量場,所包含的信息就是各個像素點的瞬時運動速度矢量信息。光流場每個像素都有一個運動矢量,因此可以反映相鄰幀之間的運動1。2.1 光流法檢測運動目標的原理2.1.1 光流場計算的基本原理一般情況下,光流由相機運動,場景中目標運動或兩者的共同運動產生。光流場的計算大致可分為三類:基于梯度的方法(Horn-Schunck);基于匹配的方法;基于

6、能量的方法。基于梯度的方法利用圖像灰度的梯度來計算光流,是研究最多的方法。基于梯度的方法根據運動前后圖像灰度保持不變這個基本假設,導出光流約束方程。由于光流約束方程并不能唯一的確定光流,因此需要導入其他的約束。根據引入的約束不同,基于梯度的方法又可以分為全局約束方法和局部約束方法。全局約束的方法假定光流在整個圖像范圍內滿足一定的約束條件;而局部約束的方法假定在給定點周圍的一個小區域內,光流滿足一定的約束條件。基于匹配的方法,這類方法是將速度vm定義為視差d=(dx,dy)t,使得兩個時刻的圖像區域的匹配最佳。為了找到最佳匹配,我們可以對定義在d上的相似度量,如規一化的互相關系數,進行最大化,也

7、可以對某一距離度量,如光強度差的平方和,進行最小化2。2.2.2 基于梯度的光流場算法梯度光流法又分為全局約束方法和局部約束方法。全局約束方法假定光流在整個圖像范圍內滿足一定的約束條件,而局部約束的方法假定在給定點周圍的一個小區域內,光流滿足于一定的約束條件。下面先導出光流約束方程。然后給出兩種比較典型的基于梯度的方法。假定圖像上點在時刻t的灰度值為,經過時間間隔dt后,對應點的灰度為3,當時,可以認為兩點的灰度不變,也就是: (2.1)如果圖像灰度隨x,y,t緩慢變化,可以將(1)式左邊泰勒級數展開: (2.2)其中代表二階無窮小項。由于dt0,忽略,可以得到: (2.3) 令u=,v=代表

8、x,y方向上的光流,IX=,IY=,IT=分別代表圖像灰度相對于x,y,t的偏導4,式(2.3)可以寫成: (2.4)此式即光流場的基本方程。寫成向量形式,即: (2.5)其中=(IX, Iy)是圖像在點m處的梯度,Vm(U,V)是點m的光流。上式稱為光流約束方程,是所有基于梯度的光流計算方法的基礎。 2.2.3 Horn-Schunck算法Horn-Schunck算法提出了光流的平滑性約束。即:圖像上任一點的光流并不是獨立的,光流在整個圖像范圍內平滑變化。因此Horn-Schunck算法是一種全局約束的方法5。設平滑性約束項為極小化: (2.6)由基本等式,顯然要求極小化: (2.7)于是,

9、由(2.6)和(2.7)式可知,最后求得光流應滿足(2.8)式: (2.8)這里的取值要考慮圖中的噪聲情況,如果噪聲較強,說明圖像數據本身的置信度較低,需要更多的依賴光流約束,所以可以取較大的值;反之,取較小的值。為了滿足(2.8),可將該式對u和v分別求導,并取導數為0。這樣就得到5: (2.9) (2.10) 以上兩式也稱為Euler方程。如果令和分別表示u鄰域和v鄰域中的均值(可用圖像平滑算子求得)6,并令和,則式(2.9)和(2.10)改寫成: (2.11) (2.12) (2.13) 從上式解得: (2.14) (2.15) 式(2.14)和(2.15)提供了用迭代法求解u和v的基礎

10、7。實際中,常用松弛迭方程進行求解: (2.16) (2.17) 其中k是循環數,和是初始值,可以取為0。和是局部平均,為權重系數,根據導數求取的精確度確定。 在實際求解過程中,需要估計亮度的時間和空間微分。這可在圖像點的一個222立方鄰域中估計8,如果下標分別對應,那么3個一階偏導分別是: (2.18) (2.19) (2.20)也就是用一階差分來替代灰度I關于x,y,t軸的偏導。上述算法的實現相對簡單,計算復雜性較低。但是這種技術存在著嚴重缺陷。首先,圖像灰度保持假設對于許多自然圖像序列來講都是不合適的,尤其是在圖像的遮合邊緣處和(或)當運動速度較高時,基于灰度保持假設的約束存在較大誤差。

11、其次,在圖像的遮合區域,速度場是突變的,而總體平滑約束則迫使所估計的光流場平滑地穿過這一區域,此過程平滑掉了有關物體形狀的非常重要的信息。第二,微分技術的一個要求是I(x,y,t)必須是可微的,這暗示著需對圖像數據進行時空預平滑9,以避免混疊效應;而且數值微分的求取具有病態性,如果處理不當將對最終的速度估計產生顯著影響。2.2.4 光流法檢測運動目標物體的基本原理概述給圖像中的每一個像素點賦予一個速度矢量,這就形成了一個圖像運動場,在運動的一個特定時刻,圖像上的點與三維物體上的點一一對應,這種對應關系可由投影關系得到,根據各個像素點的速度矢量特征,可以對圖像進行動態分析。如果圖像中沒有運動物體

12、,則光流矢量在整個圖像區域是連續變化的。當圖像中有運動物體時,目標與圖像背景存在相對運動,運動物體所形成的速度矢量必然與鄰域背景速度矢量不同,從而檢測出運動物體及位置。光流法的優點:光流不僅攜帶了運動物體的運動信息,而且攜帶了有關景物三維結構的豐富信息,它能夠在不知道場景的任何信息的情況下,檢測出運動對象10。3 光流法的程序具體實現下面,以光流場計算的典型方法Horn-Schunck算法位例,介紹光流法的Matlab程序實現對圖像運動目標的檢測。3.1 源代碼3.1.1 求解光流場函數function u, v = HS(im1, im2, alpha, ite, uInitial, vIn

13、itial, displayFlow, displayIm) % 輸入:% im1-輸入圖像1% im2-輸入圖像2% alpha-反映HS光流算法的平滑性約束條件的參數% ita-(3.15.9)式中的迭代次數% uInitial-光流橫向分量初始值% vInitial-光流縱向分量初始值% displayFlow-光流場顯示參數,其值為1時顯示,為0時不顯示% displayImg-顯示光流場的指定圖像,如果為空矩陣,則無指定圖像輸出% 輸出:% u-橫向光流矢量% v-縱向光流矢量 % 初始化參數g)% 功能:求解光流場 if nargin1 | nargin2 im1=imread(y

14、os9.tif); im2=imread(yos10.tif);endif nargin3 alpha=1;endif nargin4 ite=100;endif nargin5 | nargin6 uInitial = zeros(size(im1(:,:,1); vInitial = zeros(size(im2(:,:,1);elseif size(uInitial,1) =0 | size(vInitial,1)=0 uInitial = zeros(size(im1(:,:,1); vInitial = zeros(size(im2(:,:,1);endif nargin7 disp

15、layFlow=1;endif nargin8 displayImg=im1;end% 將RGB圖像轉化為灰度圖像if size(size(im1),2)=3 im1=rgb2gray(im1);endif size(size(im2),2)=3 im2=rgb2gray(im2);endim1=double(im1);im2=double(im2);% 調用平滑性約束函數對圖像進行平滑im1=smoothImg(im1,1);im2=smoothImg(im2,1);tic;% 為光流矢量設置初始值u = uInitial;v = vInitial;fx, fy, ft = computeD

16、erivatives(im1, im2); % 調用求導函數對時間分量和空間分量進行求導kernel_1=1/12 1/6 1/12;1/6 0 1/6;1/12 1/6 1/12; % 均值模板% 迭代次數為100for i=1:ite % 計算光流矢量的局部均值 uAvg=conv2(u,kernel_1,same); vAvg=conv2(v,kernel_1,same); % 用迭代法求解光流矢量 u= uAvg - ( fx .* ( ( fx .* uAvg ) + ( fy .* vAvg ) + ft ) ) ./ ( alpha2 + fx.2 + fy.2); v= vAv

17、g - ( fy .* ( ( fx .* uAvg ) + ( fy .* vAvg ) + ft ) ) ./ ( alpha2 + fx.2 + fy.2);endu(isnan(u)=0;v(isnan(v)=0;% 畫圖if displayFlow=1 plotFlow(u, v, displayImg, 5, 5); % 調用畫圖函數end3.1.2 求導函數function fx, fy, ft = computeDerivatives(im1, im2)% 功能:求輸入圖像參考像素點的像素值沿三軸方向的偏導數% 輸入:% im1-輸入圖像1% im2-輸入圖像2% 輸出:% f

18、x-參考像素點的灰度值沿x方向的偏導數% fy-參考像素點的灰度值沿y方向的偏導數% fz-參考像素點的灰度值沿z方向的偏導數 if size(im2,1)=0 im2=zeros(size(im1);end % 利用標準模板求得式(3.15.5)中的偏導數Ix, Iy, Itfx = conv2(im1,0.25* -1 1; -1 1,same) + conv2(im2, 0.25*-1 1; -1 1,same);fy = conv2(im1, 0.25*-1 -1; 1 1, same) + conv2(im2, 0.25*-1 -1; 1 1, same);ft = conv2(im

19、1, 0.25*ones(2),same) + conv2(im2, -0.25*ones(2),same);3.1.3 高斯濾波函數function G=gaussFilter(segma,kSize)% 功能:實現高斯濾波% 輸入:% sigma-高斯分布的概率密度函數的方差% kSize-高斯向量的模板尺寸大小% 輸出: % G-方差為segma,大小為kSize的一維高斯向量模板 if nargin1 segma=1;endif nargin2 kSize=2*(segma*3);end x=-(kSize/2):(1+1/kSize):(kSize/2);% 利用均值為0,方差為se

20、gma高斯分布概率密度函數求解一維高斯向量模板G=(1/(sqrt(2*pi)*segma) * exp (-(x.2)/(2*segma2);3.1.4 平滑性約束條件函數function smoothedImg=smoothImg(img,segma)% 功能:實現平滑性約束條件% 輸入:% img-數字圖像% sigma-高斯分布的方差% 輸出:% smoothedImg-經高斯濾波的圖像矩陣if nargin2 if sum(sum(imgOriginal)=0 imshow(imgOriginal,0 255); hold on; endendif nargin4 rSize=5;e

21、ndif nargin5 scale=3;endfor i=1:size(u,1) for j=1:size(u,2) if floor(i/rSize)=i/rSize | floor(j/rSize)=j/rSize u(i,j)=0; v(i,j)=0; end endendquiver(u, v, scale, color, g, linewidth, 2);set(gca,YDir,reverse);4 仿真圖及分析將上述程序保存為matlab.m格式,并輸入兩幀連續圖像,如圖4.1所示: 圖4.1輸入的兩幀測試圖像由圖4.1可知:輸入的兩幀連續圖像為灰度圖像,并且有運動的目標即河中水流和空氣。 圖4.2兩幀測試圖像的光流場及放大圖像由圖4.2可知:輸入的兩幀連續圖像,在經過求導函數、高斯濾波函數、平滑條件函數處理之后,用光流法將圖像中運動物體的速度矢

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論