1. 程式人生 > >影象處理——目標檢測與前背景分離

影象處理——目標檢測與前背景分離

前提

    運動目標的檢測是計算機影象處理與影象理解領域裡一個重要課題,在機器人導航、智慧監控、醫學影象分析、視訊影象編碼及傳輸等領域有著廣泛的應用。
                                      這裡寫圖片描述

目標檢測方法分類

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

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

經典目標檢測方法

1、背景差分法
  在檢測運動目標時,如果背景是靜止的,利用當前影象與預存的背景影象作差分,再利用閾值來檢測運動區域的一種動態目標識別技術。
  背景差分演算法適用於背景已知的情況,但難點是如何自動獲得長久的靜態背景模型。
  matlab中單純的背景差分直接是函式imabsdiff(X,Y)

就可以。
2、幀差分法
  利用視訊序列中連續的兩幀或幾幀影象的差來進行目標檢測和提取。在運動的檢測過程中,該方法利用時間資訊,通過比較影象中若干連續幀獲得對應畫素點的灰度差值,如果均大於一定的閾值T2,則可以判斷該位置存在運動的目標。
  較適合於動態變化場景。
3、光流場法
  利用相鄰兩幀中對應畫素的灰度保持原理來評估二維影象的變化。能夠較好的從背景中檢測到相關前景目標,甚至是運動屋裡中的部分運動目標,適用於攝像機運動過程中相對運動目標的檢測。
  開口問題、光流場約束方程的解的不唯一性問題。不能正確的表示實際的運動場。
        例子如下:
       1.首先在一幀影象內隨機均勻選取k個點,並濾除那些鄰域紋理太光滑的點,因為這些點不利於計算光流。
這裡寫圖片描述

       2.計算這些點與上一幀影象的光流向量,如上右圖,此時已經可以看出背景運動的大概方向了。
       這裡寫圖片描述
       3.接下來的這一步方法因人而異了。
       2007年cvpr的一篇文章Detection and segmentation of moving objects in highly dynamic scenes的方法是把這些光流點的(x,y,dx,dy,Y,U,V)7個特徵通過meanshift聚類來聚合到一起,最後形成運動目標輪廓。

新目標檢測方法

       其實寫到這裡想了想到底能不能叫目標檢測,博主認為影象的前背景分離也是目標檢測的一種(博主才疏學淺,求賜教)

1、畫素點操作
  對每個畫素點進行操作,判別為前景或者背景兩類。如下面的圖片所示:
  這裡寫圖片描述
2、低秩矩陣應用
  背景建模是從拍攝的視訊中分離出背景和前景。下面的例子就是將背景與前景分離開。使用的方法是RPCA的方法。
  其網址以及效果如下:
  http://perception.csl.illinois.edu/matrix-rank/introduction.html
  這裡寫圖片描述
3、深度學習
  FCN + denseCRF 精確分割+語義標籤。影象中的前景目標檢測分割做的很好,下面還能做出語義檢測,判斷出圖中的東西屬於什麼。This demo is based on our ICCV 2015 paper :Conditional Random Fields as Recurrent Neural Networks,
  測試網址以及測試影象如下:
  http://www.robots.ox.ac.uk/~szheng/crfasrnndemo
  這裡寫圖片描述

推薦另外一篇關於神經網路改進方法的上篇內容:
http://blog.csdn.net/u010402786/article/details/49272757
       另外附上一個深度學習未來發展趨勢之一:
       “注意力模型” 在未來的發展,注意力模型的升溫。一些系統,但不是全部,開始放到“注意力模型”的背景中,或者說讓神經網路在完成任務的過程中試圖學習在哪裡放置其“注意力”。這些還不是一個正規神經網路流水線中的一部分,但是已經時不時的出現在模型中了。