當前位置:編程學習大全網 - 源碼下載 - 運動目標檢測——光流法與opencv代碼實現

運動目標檢測——光流法與opencv代碼實現

運動目標的檢測的其主要目的是 獲取目標對象的運動參數(位置、速度、加速度等)及運動軌跡 ,通過進壹步分析處理,實現對目標行為更高層級上的理解。

運動目標檢測技術目的是 從序列圖像中將變化區域從背景圖像中提取出來 ,常用於視頻監視、圖像壓縮、三維重構、異常檢測等。

運動目標檢測主流方法有幀差法、背景差法、光流法等。光流法源於 仿生學 思想,更貼近於直覺,大量昆蟲的視覺機理便是基於光流法。

二十世紀五十年代心理學家Gibson在他的著作“The Perception of Visual World”中首次提出了以心理學實驗為基礎的光流法基本概念,而直到八十年代才由Horn、Kanade、Lucash和Schunck創造性地將灰度與二維速度場相聯系,引入光流約束方程的算法,對光流計算做了奠基性的工作。

光流(optical flow):由於目標對象或者攝像機的移動造成的圖像對象在連續兩幀圖像中的移動。

小球在連續五幀運動構成的光流 小球在連續五幀運動構成的光流

通俗說,對於壹個圖片序列,把每張圖像每個像素在連續幀之間的運動速度和方向( 某像素點在連續兩幀上的位移矢量 )找出來就是光流場。

第t幀的時A點的位置是(x1, y1),第t+1幀時A點位置是(x2,y2),則像素點A的位移矢量:(ux, vy) = (x2, y2) - (x1,y1)

如何知道第t+1幀的時候A點的位置涉及到不同的光流計算方法,主要有四種:基於梯度的方法、基於匹配的方法、基於能量的方法、基於相位的方法。

光流法依賴於三個假設:

根據所形成的光流場中 二維矢量的疏密程度 ,光流法可分為稠密光流與稀疏光流。

基於區域匹配生成的稠密光流場 基於區域匹配生成的稠密光流場

稀疏光流只對有 明顯特征的組點 (如角點)進行跟蹤,計算開銷小。

基於特征匹配發生成的稀疏光流場 基於特征匹配發生成的稀疏光流場

/opencvdoc/2.3.2/html/modules/video/doc/motion_analysis_and_object_tracking.html#calcopticalflowfarneback

(1)calcOpticalFlowPyrLK

基於金字塔LK光流算法,計算某些點集的稀疏光流。

參考論文《Pyramidal Implementation of the Lucas Kanade Feature TrackerDescription of the algorithm》

(2)calcOpticalFlowFarneback

基於Gunnar Farneback 的算法計算稠密光流。

參考論文《Two-Frame Motion Estimation Based on PolynomialExpansion》

(3)CalcOpticalFlowBM

通過塊匹配的方法來計算光流

(4)CalcOpticalFlowHS

基於Horn-Schunck 的算法計算稠密光流。

參考論文《Determining Optical Flow》

(5)calcOpticalFlowSF

論文《SimpleFlow: A Non-iterative, Sublinear Optical FlowAlgo》的實現

LK光流法效果 LK光流法效果

  • 上一篇:網銷全車險是怎麽計算
  • 下一篇:實時加載源代碼
  • copyright 2024編程學習大全網