如何對視頻中人員翻牆的行為進行檢測?
02-05
如圖所示,我需要當左側的人翻牆到右邊的時候進行報警。要求演算法複雜度低,實時性好。 現在已經用了高斯背景法提取背景,並做出了運動物體的外接矩形。但是對接下來的人物識別和跟蹤沒有太好的思路 我現在粗略的判斷了一下矩形和用黃線畫出的牆的位置的關係,然後用Canny+hough變換檢測人頭,但是效果一般,不是很理想。 接下來也沒有太好的想法。求知乎上的各位程序員大神大神提供思路!
該項目目前已取得了一定進展,如視頻所示http://v.youku.com/v_show/id_XODc4MjI4OTQ4.html?x視頻中檢測結果如下圖
謝邀
首先我不是搞演算法的,偏向於視覺應用。
通過你對項目的描述,這個項目分為兩個部分,首先是檢測有沒有人翻牆,然後是對翻牆人的識別和跟蹤。翻牆人的識別部分應該是比較難的,不是說開發演算法難,而是說在這種情況下進行識別很難,人臉識別的演算法,都是成型的,OpenCV也有,無外乎就是修改修改參數,一般都用在入口處的人臉識別,這種情形下,識別率會高一些。像翻牆這種行為,本身就不是光明正大的,會刻意躲避,避免被看到或者拍到,甚至會把頭部遮起來。所以不用說演算法,就是監控拍下來,直接人來看,都分辨不清。所以你的第二部分工作中,進行翻牆人的識別,不管演算法簡單或複雜,基本不太現實。所以按實際應用來看,項目的重點可以放在檢測有沒有人翻牆以及翻牆後的跟蹤。先看檢測翻牆動作。基本思路都是一樣的,就是判斷某個Region之內有沒有運動物體,例如在牆體上或者附近設置一個區域。但這裡面需要考慮干擾因素,例如牆附近如果有樹或者其它容易飄動的物體,在風的作用下會來回擺動,又或者人為的扔過牆的物體,這些可能都會導致誤報警。所以需要增加判斷要素,例如運動物體的形狀或者面積之類的,或者可以增加一台遠紅外熱成像相機(利用溫度成像的),成像效果如下:通過以上找到正確的目標Region之後,接下來進行跟蹤。這個跟蹤應該是在拍攝範圍內的跟蹤,因為拍攝範圍肯定會覆蓋到牆內的一些區域,因此本來在牆內的而且在拍攝範圍內的人來回移動,是不應該被標記為跟蹤對象的。
運動跟蹤的演算法,可以考慮光流法,OpenCV也應該有。效果如下:
這裡面也有一個難點,從人爬牆前(展開)到爬到牆上(蜷縮),再到翻下牆(展開),這期間形態是發生了變化,而且跳下的速度是比較快的,這種情況跟蹤容易丟失。謝邀。
@Tiger David 的思路是對的。檢測黃線右側的運動物體即可。檢測的方法倒是有很多。幀差法。兩幀、三幀、五幀差分都可以,但是這種方法很容易出空洞。
背景模型法也不錯,試試高斯背景建模再減除背景的方法(記得定時更新背景模型),這種方法對於固定拍攝設備的效果較好。話說,要是成本允許的話,結合紅外圖像探測,效果會更好,至少誤檢率會降下來。謝邀
我就提供一下思路,大概能夠簡化一下你的工作量你的這個監測設備,本質上是防止有人進入牆右邊的區域,而那個區域,我看這個樣子平時也不會有人走動吧所以你可以把監測範圍,從判斷牆人有沒有人,轉變成牆右邊的區域,也就是黃線右邊到攝像最右邊這個區域,有沒有在運動的物體,這樣就可以了吧希望這個思路能夠對你有所幫助
以上既然是檢測翻牆,那你直接檢測牆部分區域啊 。 兩條平行線不是更好
只是做翻牆報警的話,不考慮特殊情況和報警時間兩三秒之間的差別,描述下柵欄遮擋範圍就可以了,不用那麼複雜。
將牆的邊緣提取出來然後判斷邊緣是否被遮擋可行嗎?
提取牆邊緣圖像塊,,二值化,,霍夫檢測直線,,檢測直線與二值圖像相與,,結果圖像與標準直線進行比較,,設定閾值判斷遮擋這種方法可行嗎?因為沒看到圖像也不太確定!為何不在牆頭搭紅外?
推薦閱讀:
※OpenCV 與 OpenGL 的關係是什麼?
※OpenCV AdaBoost + Haar目標檢測技術內幕
※在圖像處理中用Mat比IplImage 除了不用自己管理內存,Mat有其他的優勢沒?請熟悉OpenCV和圖像處理的大牛指點
※在 MFC 框架中,有什麼方法能直接將 OpenCV 2.0 庫中 Mat 格式的圖片傳遞到 Picture Control(圖片控制項)顯示?
※[5]OpenCV4Android機器視覺應用入門-拍照預覽界面動態繪圖