一種運動目標(biāo)檢測的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像處理,特別是涉及一種運動目標(biāo)檢測的方法。
【背景技術(shù)】
[0002] 對于運動目標(biāo)檢測,現(xiàn)有的技術(shù)一般都是建立并維護(hù)一個背景模型,然后逐像素 對比背景模型與當(dāng)前幀圖片來差分運動目標(biāo),對于動態(tài)背景的誤檢(如樹葉的晃動)和 靜止目標(biāo)漏檢的現(xiàn)象考慮稍顯不足,因而在某些場景下的檢測準(zhǔn)確性難以令人滿意。例 如 Olivier Barnich 等人在《IEEE TRANSACTIONS ON IMAGE PROCESSING》提出的使用 ViBe (Visual Background Extraction)算法進(jìn)行目標(biāo)檢測,其整個流程可以概括如下:使 用起始幀為每一個像素點建立背景模型(背景模型是一個非參數(shù)逐像素模型,具體是指圖 片中的每一像素都具有一個模型,并且該模型是由20個像素值構(gòu)成,也稱為樣本;初始化 過程:每個像素的模型是從起始幀圖片的當(dāng)前像素和其8鄰域的像素的9個像素值中有放 回的抽取20個樣本構(gòu)成,如圖1所示),讀入新的一幀利用背景模型差分出前景(具體來 說就是如果某個像素的當(dāng)前值與兩個或者多于兩個背景樣本相似(相似的定義為像素當(dāng) 前值和背景樣本之間的距離度量小于R)則認(rèn)為該像素為背景,反之為前景,如圖2所示)。 如果某像素被檢測為背景,該像素的模型將有1/16概率被更新(某像素模型被更新是指模 型中的20個樣本的某一個被該像素的當(dāng)前值隨機(jī)替換掉,如圖3所示),同時還有1/16的 概率更新8鄰域內(nèi)某個像素的模型。其在進(jìn)行前景檢測時,缺乏對晃動背景的干擾和運動 目標(biāo)靜止不動對檢測效果可能產(chǎn)生的影響進(jìn)行考慮。處理方式如圖1至3,圖1的ViBe初 始化過程,圖中所示為任一像素的背景模型初始化過程。圖2的ViBe檢測過程,圖中所示 為任意一個像素前景檢測過程,并且圖中事例的判斷結(jié)果為背景。sl-s20是像素模型中的 20個樣本,v(x)是像素當(dāng)前值,S R(v(x))是以當(dāng)前值v(x)為中心R為半徑的圓形區(qū)域,某 個樣本落在圓形區(qū)域內(nèi)即認(rèn)為樣本與當(dāng)前值v( x)相似。為方便表示,我們假設(shè)像素可以用 一個二維向量表示,其他維度的表示與之類似。圖3的ViBe的更新過程,圖中所示為一個 像素的模型被更新的過程。圖的左側(cè)的檢測示意圖認(rèn)為該像素點為背景,如果當(dāng)前像素此 次獲得了可以更新模型的機(jī)會,就會如圖中所示用當(dāng)前像素值隨機(jī)的替換掉背景模型中的 一個樣本。
[0003] ViBe算法使用起始幀為每一個像素點建立背景模型,讀入新的一幀利用背景模 型差分出前景,如果某像素被檢測為背景,該像素的模型將有1/16概率被更新,同時還有 1/16的概率更新8鄰域內(nèi)某個像素的模型。其所使用的更新機(jī)制對背景的更新速度較慢, 難以適應(yīng)快速變化的動態(tài)背景區(qū),容易將動態(tài)背景(如晃動的樹葉)誤檢測為前景;如果起 始幀包含前景目標(biāo),會在目標(biāo)離開后的一段時間內(nèi)將目標(biāo)在起始幀停留的區(qū)域誤檢測為前 景,現(xiàn)有初始化方案沒有專門對此類錯誤進(jìn)行處理;其傳播更新機(jī)制雖然能夠使得之前被 前景遮擋的區(qū)域的背景信息迅速融入背景模型,但是也會使得靜止目標(biāo)漸漸融入背景中, 污染了背景模型,如果靜止目標(biāo)再次運動,其之前靜止位置也會在很長一段時間內(nèi)被誤檢 為前景。
[0004] 例如,樹葉常常會受到風(fēng)的影響進(jìn)行無規(guī)則的晃動,現(xiàn)有的技術(shù)會將其誤檢測出 來,如圖4所示。其中左上為原圖;右上為人工標(biāo)注出的理想檢測結(jié)果;左下為ViBe算法檢 測結(jié)果;右下為使用本發(fā)明實施例的進(jìn)行檢測的結(jié)果。通過對比可以明顯看出,ViBe算法 對晃動背景的抗干擾能力較差,會在檢測過程中大量將晃動的背景誤檢測為前景。
[0005] 如圖5,當(dāng)視頻的起始幀含有運動目標(biāo)時會將運動目標(biāo)初始化進(jìn)背景模型中,因 而當(dāng)車開走時,其初始停留的位置會在相當(dāng)長的時間段內(nèi)被檢測為前景,雖然這些檢測錯 誤都會隨著算法的運行慢慢被糾正,但其耗時較長,且對于已檢測錯誤的片段,沒有提出專 門的措施進(jìn)行糾正。其中左上為包含運動目標(biāo)的起始幀;右上為起始幀中的目標(biāo)離開了起 始位置的某幀圖片;左下為傳統(tǒng)檢測算法的檢測效果圖;右下為本發(fā)明實施例的檢測效果 圖。可以看到傳統(tǒng)算法在車開走之后會將其原先停留的位置誤檢測為前景。
[0006] 圖6中目標(biāo)運動到視野內(nèi)后做了一段時間的停留,由于其背景傳播更新機(jī)制,目 標(biāo)會慢慢融入背景中,直到完全檢測不出來。其中左上為依次從視野外搬入三個物體靜置 的原圖;右上為人工標(biāo)注出的理想檢測效果圖;左下為傳統(tǒng)算法檢測效果圖;右下為本發(fā) 明實施例的檢測效果圖??梢钥闯?,在傳統(tǒng)算法檢測效果圖中,先行搬入的兩個物體由于停 留時間較長,已經(jīng)完全融入到背景了。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明提出一種運動目標(biāo)檢測方法,可以有效提高視頻運動目標(biāo)檢測的準(zhǔn)確性。
[0008] 為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
[0009] -種運動目標(biāo)檢測的方法,包括以下步驟:
[0010] 1)讀入視頻流的一幀圖像;
[0011] 2)判斷讀入的幀圖像是否為第一幀,如果是則以第一幀建立背景模型,否則轉(zhuǎn)向 步驟3);
[0012] 3)對讀入的幀圖像用背景模型差分出初步檢測圖;
[0013] 4)對初步檢測圖做后處理;
[0014] 5)使用Blink Map圖確定動態(tài)背景區(qū)域;
[0015] 6)對動態(tài)背景區(qū)域使用鄰域匹配(Neighboring Match)和急速更新(Sharp Update)機(jī)制進(jìn)行模型修正;
[0016] 9)完成背景模型更新;如果視頻未結(jié)束,轉(zhuǎn)步驟1),否則處理完畢。
[0017] 進(jìn)一步地:
[0018] 在步驟6)和9)之間還包括以下步驟:
[0019] 7)檢測步驟4)獲得的后處理結(jié)果是否有長時間前景區(qū)域,如果檢測到長時間前 景區(qū)域則轉(zhuǎn)到步驟8),否則轉(zhuǎn)到步驟9);
[0020] 8)對于長時間前景區(qū)域,分別計算該區(qū)域模型與其鄰域模型的對比度RC_M和該 區(qū)域聚類結(jié)果與其鄰域模型的對比度RC_C,如果RC_M大于ratio_upLimit倍的RC_C (可優(yōu) 選設(shè)定ratio_upLimit為1. 5,也可根據(jù)具體情況做適當(dāng)調(diào)整),則認(rèn)為該區(qū)域的初始模型 是錯誤的,并使用聚類結(jié)果修正該區(qū)域的模型,反之,認(rèn)為該區(qū)域的初始模型是正確的;然 后轉(zhuǎn)步驟9)。
[0021] 步驟2)中,采用Vibe初始化方法構(gòu)建背景模型;步驟3)中,采用ViBe檢測方法 進(jìn)行初步檢測;步驟9)中,采用取消了鄰域更新的Vibe更新機(jī)制進(jìn)行更新。
[0022] 步驟4)包括:
[0023] 對初步檢測圖進(jìn)行中值濾波、閉操作、凸包處理,再將處理結(jié)果與初步檢測圖作與 操作得到去除噪聲的檢測圖;
[0024] 對去除噪聲的檢測圖做膨脹、填洞處理得到包含所有前景目標(biāo)的檢測圖;
[0025] 設(shè)定一個比初始像素差值檢測閾值更小的像素差值檢測閾值,重新檢測包含所有 前景目標(biāo)的檢測圖中指示的前景區(qū)域中的前景目標(biāo);
[0026] 經(jīng)過中值濾波、閉操作、填洞處理得到最終處理結(jié)果圖。
[0027] 步驟5)包括:
[0028] 比較當(dāng)前幀的初步檢測圖和前一幀的初步檢測圖,找出數(shù)值相同的像素,再將 Blink Map圖中對應(yīng)的像素值減去step_decrease (可優(yōu)選設(shè)定step_decrease為1,也可 根據(jù)具體情況做適當(dāng)調(diào)整),找出數(shù)值不同的像素,然后將Blink Map圖中對應(yīng)的像素值 加上step_increase (可優(yōu)選設(shè)定step_increase為15,也可根據(jù)具體情況做適當(dāng)調(diào)整), 且Blink Map圖中的每一個像素值限制在[0,level_upLimit]之間(可優(yōu)選設(shè)定level_ upLimit為150,也可根據(jù)具體情況做適當(dāng)調(diào)整);
[0029] 以step_threshold作為閾值(可優(yōu)選設(shè)定step_threshold為30,也可根據(jù)具體 情況做適當(dāng)調(diào)整),閾值化Blink Map圖得到二值圖Blink Mask,從而確定動態(tài)背景區(qū)域。
[0030] 步驟5)進(jìn)一步包括:
[0031] 檢測二值圖Blink Mask中的像素,如果二值圖Blink Mask中某個像素非0,并且 該像素在當(dāng)前幀的最終處理結(jié)果圖中也非0,則在二值圖Blink Mask中將該像素值置0。
[0032] 步驟6)中所述鄰域匹配包括:對于既被初步檢測為前景同時又為動態(tài)背景的像 素,將該像素的像素值重新與其半徑為5像素距離的圓形鄰域內(nèi)的像素的模型進(jìn)行比對, 如果模型認(rèn)為該像素為背景,則將該像素位置修改為背景;所述急速更新包括:對于被更 新修改為背景的像素,使用該像素的像素值替換掉背景模型中設(shè)定數(shù)量的背景像素樣本 (可優(yōu)選設(shè)定兩個,也可根據(jù)具體情況做適當(dāng)調(diào)整)。
[0033] 步驟7)包括:統(tǒng)計步驟4)得到的后處理結(jié)果中的每個像素檢測結(jié)果,如果某個 區(qū)域在設(shè)定時間段內(nèi)被檢測為前景的頻度達(dá)到設(shè)定的程度,則認(rèn)為該區(qū)域是長時間前景區(qū) 域。
[0034] 步驟8)包括:通過如下公式計算對比度RC_M和對比度RC_C :
[0035]
[0036]
[0037] 其中D (Pl,Pj)是像素pjP p ,在RGB色彩空間內(nèi)的歐式距離,P MC表示長時間前景 區(qū)域的模型中的代表像素構(gòu)成的一個集合,?《表示長時間前景區(qū)域的周圍鄰域區(qū)域的模型 中的代表像素構(gòu)成的一個集合,P ee表示長時間前景區(qū)域的聚類結(jié)果中的像素構(gòu)成的一個集 合,#PMC,#PMS,#P CC分別是PMC,PMS,Pcc集合中元