天天看點

遺留物檢測算法及實作

        從最終實作的角度來看,說不上是遺留物檢測,至多是靜止目标檢測【運動物體長時間滞留檢測】。實驗室同學搞畢業設計,幫忙弄弄,也沒弄成。

         本文将分别給出老外論文+對應的代碼【在老外論文基礎上改進的】和國内的論文+代碼【失敗,能力不行】。總體思路都是幀間差分法,沒有用sift特征比對或者線上學習。

算法一:

《An abandoned object detection system based on dual backgroundsegmentation》 IEEE 2009

搞了兩個背景緩沖區:

Current_background:初始為第一幀,其後對每個像素,若下一幀像素大于該背景像素,則該出背景像素加1,否則該處背景像素減1。【挺神奇的,好處是This way, even if the foreground ischanging at a fast pace, it will not affect the background but if theforeground is stationary, it gradually merges into the background.但是效果還是不及混合高斯,因為适應期太長太頻繁了】

 Buffer_background:論文上說每隔20秒更新一次,直接拷貝Current_background,遺留物檢測直接通過Current_background和Buffer_background相減即可。【他這邊認為一個遺留物丢棄滿20秒,如果還在,則認為該遺留物為背景了】。随後,搞了一堆跟蹤該區域的東西,我不太感興趣。

 本文對上述的改進的目标是物體如果被遺棄了,那麼它就應該一直被檢測到。我額外搞了一個遺棄背景模版abandon_background,用于記錄遺棄物之前的背景圖像。

A.若物體離開,則abandon相應區域恢複到目前current的值,buffer更新為目前整個current。B.若物體未離開,則用abandon對buffer局部更新

整體算法:

1.      第一幀,用來初始化Current_background和Buffer_background

2.      通過兩個背景區域計算遺留物

3.      每一幀更新Current_background

4.      若時間間隔滿足,更新Buffer_background和遺棄物背景abandon_background,更新計數器

   a.      若遺棄物背景首次更新,根據current和buffer之差,在相應的地方賦current的值,其餘為0

   b.      進行物體離開判斷,即:若abandon與current對應區域背景像素不同,則物體還未離開,否則離開

   c.      若物體離開,将current更新abandon的相應區域,buffer複制完整的current

   d.      若物體未離開,将abandon更新buffer的相應區域,abandon保持不變。

5.      讀取下一幀,傳回2

代碼:

調用的函數:

主函數:

效果圖:

遺留物檢測算法及實作
遺留物檢測算法及實作
遺留物檢測算法及實作

說明:左下角有個女的運動規律也符合靜止目标檢測規律,是以也被檢測出來了。後期可以通過外接矩形長寬比等其他手段過濾掉。

視訊+代碼工程的下載下傳連接配接:http://download.csdn.net/detail/jinshengtao/7157943

算法二:

《一種基于雙背景模型的遺留物檢測方法》

搞了個髒背景和純背景,定義:

當視訊場景中不出現運動目标,或者背景不受場景中所出現的運動目标影響時,這樣的背景稱為純背景。否則,稱為髒背景

它們的更新規則:

一般背景的更新按照幀間差分法:

遺留物檢測算法及實作

髒背景使用全局更新,直接指派一般背景:

遺留物檢測算法及實作

純背景根據前景掩膜,進行局部更新,即若前景掩膜被标記為運動的部分,則相應的純背景區域用上一幀的純背景更新;若前景掩膜被标記為非運動的部分,則相應的純背景區域用目前幀的一般背景更新。

遺留物檢測算法及實作

靜止目标前景檢測算法可以通過以下公式看明白:

遺留物檢測算法及實作

具體算法流程不給咯,論文沒提,自己摸索的,反正試驗效果失敗了。

算法三【MATLAB toolbox中的一個demo】

理論部分沒看,在控制台直接輸入:edit videoabandonedobj 會有相應的代碼跳出來。

在help中搜尋Abandoned Object Detection,會有理論部分介紹

視訊素材下載下傳位址:http://www.mathworks.cn/products/viprocessing/vipdemos.html

代碼:【2010b 版本可跑】

雖然不是自己的研究方向,但也算嘗試了吧。馬上快答辯咯,攢個人品先~

繼續閱讀