運動背景下的運動目標檢測

2022-05-02 21:48:07 字數 1702 閱讀 2316

**:

各種目標檢測方法介紹(懶人可以直接略過)

目標檢測是乙個老話題了,在很多演算法當中都有它的身影。目標檢測要做的就兩件事:檢測當前中有沒有目標?如果有的話,在哪?按照先驗知識和背景運動來劃分的話,目標檢測方法大概可以分為兩大類:

第一,已知目標的先驗知識。在這種情況下檢測目標有兩類方法,第一類方法是用目標的先驗知識訓練一堆弱分類器,然後這些弱分類器一起投票來檢測目標,如boosting,  random forest 都是這個思路,大家熟知的adaboost人臉檢測也是如此,這一類方法我會在以後的文章中討論。第二類方法是根據先驗知識找到目標和非目標的最佳劃分線,如svm.這兩類方法各成一家,各有所長,都有著不錯的表現。

第二,未知目標的先驗知識。此時不知道要檢測的目標是什麼,於是什麼是目標就有了不同的定義。一種方法是檢測場景中的顯著目標,如通過一些特徵表達出場景中每個畫素的顯著性概率,然後找到顯著目標。另一種方法就是檢測場景當中的運動目標了,這也是本文下面將要討論的重點內容。

在檢測運動目標時,如果背景是靜止的,so easy,略過。當背景也跟隨一起運動時就比較麻煩了,現如今大概有兩種方法來處理。第一種方法是背景補償,即通過平移,縮放,仿射變換等計算出背景的運動,然後補償背景再做差分。不過這種方法有兩個問題,一是仿射變換運算量巨大,二是即使求出背景補償向量,背景中的遠景和近景的向量也會有相對誤差,所以這種方法幾乎不可行。第二種方法就是傳說中的optical flow(光流)了,下面進入正文。

正文

光流法的大致流程如下:

1.在一幀影象中選取大量的光流點(具體選取方法可以不同,如fast角點,隨機選,等間隔選...)。

2.計算所有光流點的運動向量(常用方法有lk光流,hs光流等)。

3.根據這些向量和其它一些特徵檢測運動目標。

下面以乙個具體例子進行分析

1.首先在一幀影象內隨機均勻選取k個點,並濾除那些鄰域紋理太光滑的點,因為這些點不利於計算光流

2.計算這些點與上一幀影象的光流向量,如上右圖,此時已經可以看出背景運動的大概方向了

3.接下來的這一步方法因人而異了。

2023年cvpr的一篇文章detection and segmentation of moving objects in highly dynamic scenes的方法是把這些光流點的(x, y, dx, dy, y, u, v)7個特徵通過meanshift聚類來聚合到一起,最後形成運動目標輪廓。

而我的方法很簡單,只用到了(dx, dy)兩個特徵,如上左圖,首先把所有光流點投射到直角座標,圖中的座標軸是(dx,dy), 然後通過meanshift找到密度最大的(dx, dy)座標點,也就是背景向量最集中的位置(圖中點的亮度越大代表該位置向量的密度越大),如紅圈所示,紅圈外面的向量就可以認為是運動目標了,如上右圖所示。

運動目標檢測 背景減法

一 原理 背景減法 background subtraction 是當前運動目標檢測技術中應用較為廣泛的一類方法,它的基本思想和幀間差分法相類似,都是利用不同影象的差分運算提取目標區域。不過與幀間差分法不同的是,背景減法不是將當前幀影象與相鄰幀影象相減,而是將當前幀影象與乙個不斷更新的背景模型相減,...

運動目標檢測

目錄 檢測方法 背景模型 目標檢測 後處理 檢測方法 基於統計背景模型的運動目標檢測方法 問題 1 背景獲取 需要在場景存在運動目標的情況下獲得背景影象 2 背景擾動 背景中可以含有輕微擾動的物件,如樹枝 樹葉的搖動,擾動部分不應該被看做是前景運動目標 3 外界光照變化 一天中不同時間段光線 天氣等...

運動目標檢測OpenCV背景減除法

背景減除法 1.gmm mog2演算法,高斯混合模型分離演算法,它為每個畫素選擇適當數量的高斯分布 函式 cv2.createbackgroundsubtractormog2 int history 500,double varthread 16,bool detectshadows true 2....