本發(fā)明涉及一種背景建模方法,特別涉及應(yīng)用于安防系統(tǒng)視頻監(jiān)控中的多場(chǎng)景的無(wú)參數(shù)背景建模方法。
背景技術(shù):
近年來(lái),隨著社會(huì)對(duì)公共安全的不斷重視,具有智能分析功能的視頻監(jiān)控已經(jīng)成為安全防范系統(tǒng)不可或缺的部分。絕大部分的智能分析都是建立在背景建模的基礎(chǔ)之上的,而一般的背景建模方法都存在一些技術(shù)上的不足,主要體現(xiàn)在:具有復(fù)雜的參數(shù),不同的場(chǎng)景需要重新調(diào)整;對(duì)有抖動(dòng)的圖像誤報(bào)比較多;建立背景模型的時(shí)間較長(zhǎng),往往需要幾十幀甚至上百幀的視頻,這樣不僅會(huì)耗費(fèi)比較多的時(shí)間,如果在這些幀中有運(yùn)動(dòng)目標(biāo),則會(huì)丟失這些目標(biāo),不能很好的檢測(cè)出來(lái);Ghost區(qū)域難以消除,如果在背景建模期間有暫時(shí)待在原地的目標(biāo),之后再運(yùn)動(dòng)則會(huì)引入Ghost區(qū)域;Ghost過(guò)早消除,現(xiàn)在的一些背景建模算法有一些可以很快的消除Ghost區(qū)域,但是過(guò)早的消除并不一定就是好事,對(duì)于物品看護(hù)來(lái)說(shuō),這會(huì)對(duì)算法的準(zhǔn)確性產(chǎn)生嚴(yán)重的影響;閃光點(diǎn)難以消除,波紋,隨風(fēng)擺動(dòng)的樹(shù)葉,都會(huì)帶來(lái)一些閃光點(diǎn),被認(rèn)為是運(yùn)動(dòng)物體,這些往往都是無(wú)用的;大部分只適用于槍機(jī),會(huì)轉(zhuǎn)動(dòng)的球機(jī)則無(wú)法使用。
為了克服以上技術(shù)不足,本發(fā)明提出了一種基于可變學(xué)習(xí)速率和隨機(jī)鄰域像素點(diǎn)的無(wú)參數(shù)背景建模方法。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的目的在于提供了一種適用多場(chǎng)景的無(wú)參數(shù)背景建模方法,其特征在于,包括步驟:a)對(duì)圖像做初始化處理,判斷所取幀圖像是否為圖像的第一幀,若是第一幀,進(jìn)入步驟h,否則,進(jìn)入步驟b;b)查找?guī)瑘D像的運(yùn)動(dòng)點(diǎn),然后進(jìn)入步驟c;c)判斷是否需要重新建立模型,若不需要重新建立模型則進(jìn)入步驟d,否則,進(jìn)入步驟h;d)根據(jù)先前處理的處理結(jié)果,有條件的更新模型;e)根據(jù)先前處理的結(jié)果,查找出閃光點(diǎn),并將其去除;f)對(duì)于處理產(chǎn)生的噪點(diǎn)逐一去除;g)對(duì)算法生成的運(yùn)動(dòng)前景和靜止背景進(jìn)行平滑處理,然后進(jìn)入步驟i;h)建立一個(gè)背景模型序列,然后進(jìn)入步驟i;i)輸出結(jié)果。
優(yōu)選地,所述步驟a中圖像初始化處理的具體方法為:a1)輸入圖像序列;a2)針對(duì)RGB圖像,對(duì)于每一個(gè)像素點(diǎn)(x,y)進(jìn)行灰度化處理,每一個(gè)像素點(diǎn)(x,y)的像素值都在0~255之間;a3)把灰度圖像的直方圖變換為均勻分布的形式,增加灰度值得動(dòng)態(tài)范圍,從而達(dá)到增強(qiáng)圖像對(duì)比度的效果;a4)輸出每一個(gè)像素點(diǎn)(x,y)的灰度值都在0-255之間的灰度圖像。
優(yōu)選地,所述步驟b中運(yùn)動(dòng)點(diǎn)的查找方法為:b1)讀取新的灰度圖像的每一個(gè)像素點(diǎn)(x,y);b2)讀取背景模型序列和顏色矩R,顏色距R表示灰度圖像中的像素點(diǎn)(x,y)與背景序列模型中同位置(x,y)點(diǎn)的灰度值的差值;b3)判斷背景模型中位置為(x,y)的像素點(diǎn)是否全部讀取結(jié)束,若全部讀取結(jié)束,則灰度圖像的像素點(diǎn)(x,y)為非運(yùn)動(dòng)點(diǎn),否則,進(jìn)入步驟b4;b4)判斷顏色矩R是否大于顏色矩閾值,若是,進(jìn)入步驟b5,否則,返回步驟b3;b5)判斷顏色矩R大于顏色矩閾值的計(jì)數(shù)是否大于計(jì)數(shù)閾值,若是,則該點(diǎn)為運(yùn)動(dòng)點(diǎn),否則,返回步驟b3。
優(yōu)選地,所述步驟d中的更新模型的方法為:d1)讀取非運(yùn)動(dòng)像素點(diǎn)(x,y);d2)有SUBSAMPLE_FACTOR的概率用現(xiàn)在像素點(diǎn)(x,y)的像素值隨機(jī)替換背景模型序列中的其中之一;d3)SUBSAMPLE_FACTOR的概率用現(xiàn)在像素點(diǎn)(x,y)的像素值的鄰域隨機(jī)替換背景模型序列中的其中之一。
優(yōu)選地,所述步驟f中的去噪點(diǎn)的方法采用水漫法,具體步驟為:f1)讀取二值圖像;f2)對(duì)圖像進(jìn)行閉操作;f3)將圖像寬度為1的內(nèi)邊全部涂黑,即將像素值設(shè)置為0;f4)以圖像左上角的點(diǎn)(x0,y0)為原點(diǎn),利用水漫法,將與點(diǎn)(x0,y0)所連通的像素值為0的區(qū)域,及相連通的黑色區(qū)域都涂為白色,即像素值為255;f5)現(xiàn)在圖像上的黑色區(qū)域的像素點(diǎn)(x,y)的像素值都改為255,即白色;f6)輸出黑白二值圖。
優(yōu)選地,所述步驟h中的建立背景模型序列的方法為:h1)讀取灰度值在0-255間的灰度圖;h2)遍歷灰度圖說(shuō)有的像素點(diǎn),并判斷灰度圖所有像素點(diǎn)是否遍歷完全,若未遍歷完全,進(jìn)入步驟h3,否則,進(jìn)入步驟h4;h3)背景模型序列中同位置的像素值隨機(jī)為原始像素本身或者其鄰域;h4)輸出背景模型序列。應(yīng)當(dāng)理解,前述大體的描述和后續(xù)詳盡的描述均為示例性說(shuō)明和解釋?zhuān)⒉粦?yīng)當(dāng)用作對(duì)本發(fā)明所要求保護(hù)內(nèi)容的限制。
附圖說(shuō)明
參考隨附的附圖,本發(fā)明更多的目的、功能和優(yōu)點(diǎn)將通過(guò)本發(fā)明實(shí)施方式的如下描述得以闡明,其中:
圖1示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法的流程圖;
圖2示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中圖像的初步處理流程圖;
圖3示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中建立背景模型序列的流程圖;
圖4示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中運(yùn)動(dòng)點(diǎn)的判斷方法流程圖;
圖5示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中顏色閾值及學(xué)習(xí)率動(dòng)態(tài)更新方法流程圖;
圖6示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中水漫法去誤刪的流程圖。
具體實(shí)施方式
通過(guò)參考示范性實(shí)施例,本發(fā)明的目的和功能以及用于實(shí)現(xiàn)這些目的和功能的方法將得以闡明。然而,本發(fā)明并不受限于以下所公開(kāi)的示范性實(shí)施例;可以通過(guò)不同形式來(lái)對(duì)其加以實(shí)現(xiàn)。說(shuō)明書(shū)的實(shí)質(zhì)僅僅是幫助相關(guān)領(lǐng)域技術(shù)人員綜合理解本發(fā)明的具體細(xì)節(jié)。
在下文中,將參考附圖描述本發(fā)明的實(shí)施例。在附圖中,相同的附圖標(biāo)記代表相同或類(lèi)似的部件,或者相同或類(lèi)似的步驟。
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
圖1示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法的流程圖;
步驟101:對(duì)圖像做初始化處理,判斷所取幀圖像是否為圖像的第一幀,若是第一幀,進(jìn)入步驟108,否則,進(jìn)入步驟102;步驟102:查找?guī)瑘D像的運(yùn)動(dòng)點(diǎn),然后進(jìn)入步驟103;
步驟103:判斷是否需要重新建立模型,若不需要重新建立模型則進(jìn)入步驟104,否則,進(jìn)入步驟108;
步驟104:根據(jù)先前處理的處理結(jié)果,有條件的更新模型;
步驟105:根據(jù)先前處理的結(jié)果,查找出閃光點(diǎn),并將其去除;
步驟106:對(duì)于處理產(chǎn)生的噪點(diǎn)逐一去除;
步驟107:對(duì)算法生成的運(yùn)動(dòng)前景和靜止背景進(jìn)行平滑處理,然后進(jìn)入步驟109;
步驟108:建立一個(gè)背景模型序列,然后進(jìn)入步驟109;
步驟109:輸出結(jié)果。
圖2示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中圖像的初步處理流程圖;
步驟201:首先要對(duì)圖像做初步處理,輸入圖像序列;
步驟202:針對(duì)RGB圖像,對(duì)于每一個(gè)像素點(diǎn)(x,y)進(jìn)行灰度化處理,每一個(gè)像素點(diǎn)(x,y)的像素值都在0~255之間;
步驟203:把灰度圖像的直方圖變換為均勻分布的形式,增加灰度值得動(dòng)態(tài)范圍,從而達(dá)到增強(qiáng)圖像對(duì)比度的效果;
步驟204:輸出每一個(gè)像素點(diǎn)(x,y)的灰度值都在0-255之間的灰度圖像。
之后利用第一幅圖像建立一個(gè)背景模型序列,圖3示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中建立背景模型序列的流程圖;步驟如圖3所示:
步驟301:讀取灰度值在0-255間的灰度圖;
步驟302:以圖像的左上角為起點(diǎn),右下角為終點(diǎn),遍歷灰度圖說(shuō)有的像素點(diǎn),并判斷灰度圖所有像素點(diǎn)是否遍歷完全,若未遍歷完全,進(jìn)入步驟303,否則,進(jìn)入步驟304;
步驟303:背景模型序列中同位置的像素值隨機(jī)為原始像素本身或者其鄰域,詳細(xì)方法如下:
背景序列模型由20幅與原圖大小相同的圖像組成,若記現(xiàn)在讀取的位置為(x,y),那么,在這20幅背景模型中,在同樣的(x,y)位置的像素值可能為其領(lǐng)域的任何一個(gè),及可能為(x-1,y-1)、(x-1,y)、(x-1,y+1)、(x,y-1)、(x,y)、(x,y+1)、(x+1,y-1)、(x+1,y)、(x+1,y+1)中的任何一個(gè),如果某些領(lǐng)域不存在,則隨機(jī)為其他鄰域的任何一個(gè)。遍歷完成后則形成一個(gè)有20幅圖像組成的背景模型序列,這樣的話(huà),即使畫(huà)面有一些抖動(dòng),算法也能穩(wěn)定的檢測(cè)出運(yùn)動(dòng)的目標(biāo),同時(shí)對(duì)Ghost區(qū)域的消除也會(huì)又很大的影響;
步驟304:輸出背景模型序列。
然后對(duì)運(yùn)動(dòng)點(diǎn)進(jìn)行檢測(cè),圖4示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中運(yùn)動(dòng)點(diǎn)的判斷方法流程圖;具體步驟如圖4所示:
步驟401:讀取新的灰度圖像的每一個(gè)像素點(diǎn)(x,y);
步驟402:讀取背景模型序列和顏色矩R,顏色距R表示灰度圖像中的像素點(diǎn)(x,y)與背景序列模型中同位置(x,y)點(diǎn)的灰度值的差值;
步驟403;判斷背景模型中位置為(x,y)的像素點(diǎn)是否全部讀取結(jié)束,若全部讀取結(jié)束,則灰度圖像的像素點(diǎn)(x,y)為非運(yùn)動(dòng)點(diǎn),否則,進(jìn)入步驟404;
步驟404:判斷顏色矩R是否大于顏色矩閾值,若是,進(jìn)入步驟405,否則,返回步驟403;
步驟405:判斷顏色矩R大于顏色矩閾值的計(jì)數(shù)是否大于計(jì)數(shù)閾值,若是,則該點(diǎn)為運(yùn)動(dòng)點(diǎn),否則,返回步驟403。
實(shí)施例如下所示:
當(dāng)遍歷到點(diǎn)(x,y)時(shí),(x,y)處的像素值與模型序列逐個(gè)做差,如果差值大于累計(jì)閾值Value_thre,則開(kāi)始計(jì)數(shù),如果模型已經(jīng)全部對(duì)比完畢累計(jì)還沒(méi)有達(dá)到Frame_change_num,則判定為背景點(diǎn),否則就判定為運(yùn)動(dòng)點(diǎn),建立一幅新的圖像m_cfg,運(yùn)動(dòng)點(diǎn)的像素值為255,背景點(diǎn)的為0。
Value_thre和Frame_change_num也不是一成不變的,每個(gè)位置的的運(yùn)動(dòng)位置都會(huì)被記錄,當(dāng)運(yùn)動(dòng)的時(shí)間過(guò)長(zhǎng)是就會(huì)出現(xiàn)經(jīng)常出現(xiàn)運(yùn)動(dòng)的區(qū)域,此時(shí)適當(dāng)?shù)脑龃驠rame_change_num和Value_thre的值以減少誤檢測(cè)。同樣的如果長(zhǎng)期的為非運(yùn)動(dòng)點(diǎn),則需要減小Value_thre和Frame_change_num,使更多的點(diǎn)能夠被檢測(cè)出來(lái),并算法提高效率。
圖5示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中顏色閾值及學(xué)習(xí)率動(dòng)態(tài)更新方法流程圖;如圖5所示,步驟為:讀取非運(yùn)動(dòng)像素點(diǎn)(x,y);有SUBSAMPLE_FACTOR的概率用現(xiàn)在像素點(diǎn)(x,y)的像素值隨機(jī)替換背景模型序列中的其中之一;有SUBSAMPLE_FACTOR的概率用現(xiàn)在像素點(diǎn)(x,y)的像素值的鄰域隨機(jī)替換背景模型序列中的其中之一。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,具體方法為:
步驟501:輸入像素點(diǎn);
步驟502:判斷像素點(diǎn)是否為運(yùn)動(dòng)點(diǎn),若是,則進(jìn)入步驟503a;若不是,則進(jìn)入步驟503b;
步驟503a;運(yùn)動(dòng)點(diǎn)累計(jì)值增大;若判斷為運(yùn)動(dòng)點(diǎn)累計(jì)值增大過(guò)大,進(jìn)入步驟504a;
步驟503b;運(yùn)動(dòng)點(diǎn)累計(jì)值減?。蝗襞袛酁檫\(yùn)動(dòng)點(diǎn)累計(jì)值減小過(guò)小,進(jìn)入步驟504b;
步驟504a:增大顏色矩閾值、增大顏色矩累計(jì)閾值;
步驟504b:減小顏色矩閾值、減小顏色矩累計(jì)閾值。
之后背景的更新也是遵循策略如下,如果點(diǎn)(x,y)被認(rèn)定為非運(yùn)動(dòng)點(diǎn),那么它將有1/SUBSAMPLE_FACTOR的概率隨機(jī)去更新背景模型中的某一幀,是其像素值與當(dāng)前點(diǎn)的相素值相同,同時(shí)它也有1/SUBSAMPLE_FACTOR的概率隨機(jī)去更新背景模型中的某一幀,是其像素值與當(dāng)前點(diǎn)鄰域的相素值相同,這樣背景既不會(huì)一成不變也不會(huì)變化過(guò)快,同時(shí)提高了運(yùn)行效率。
接下來(lái)要進(jìn)行一個(gè)運(yùn)動(dòng)點(diǎn)數(shù)量的判斷,如果連續(xù)多幀運(yùn)動(dòng)的點(diǎn)數(shù)過(guò)多,則就可能出現(xiàn)了攝像頭位置變化的等情況使得背景模型變化較多,這樣便立刻建立起一個(gè)新的模型序列出來(lái),否則就認(rèn)為是背景。
下面要進(jìn)行的便是Ghost區(qū)域的消除,對(duì)于Ghost區(qū)域的消除的策略是更新Ghost區(qū)域的背景,使用一個(gè)特定的值Ghost_value來(lái)記錄各個(gè)點(diǎn)的運(yùn)動(dòng)狀態(tài),當(dāng)然,這個(gè)值始從重新建立起背景模型序列之后開(kāi)始計(jì)數(shù)的,同時(shí)在運(yùn)動(dòng)模型重新建立時(shí)也會(huì)重新計(jì)數(shù)。如果是運(yùn)動(dòng)狀態(tài),Ghost_value就會(huì)有所增加,反正則會(huì)減小,但是增加的速度要快于減小的速度,當(dāng)這個(gè)值達(dá)到一個(gè)可調(diào)節(jié)的閾值NUM_REFERSH之后,則會(huì)被定為是Ghost點(diǎn)。但這并不是要更新這些點(diǎn)的必要條件,還有一個(gè)條件就是此時(shí)的運(yùn)動(dòng)區(qū)域也達(dá)到了一個(gè)閾值,否則這些點(diǎn)即使不重新建立模型,也會(huì)被背景的隨機(jī)變化而慢慢被替換。
然后進(jìn)行閃光點(diǎn)的消除,比如說(shuō)隨風(fēng)擺動(dòng)的樹(shù)葉,粼粼的波光,本發(fā)明便使用了一個(gè)波動(dòng)計(jì)數(shù)的方法,如果點(diǎn)(x,y)的前后兩幀的狀態(tài)不同,波動(dòng)計(jì)數(shù)器就會(huì)增加,反之就會(huì)減小。當(dāng)累計(jì)到一定的值得時(shí)候,就把值寫(xiě)點(diǎn)記錄下來(lái),再通過(guò)膨脹的方式擴(kuò)大區(qū)域,再將其從運(yùn)動(dòng)的點(diǎn)中剔除掉。
閃光點(diǎn)的腐蝕操作無(wú)疑會(huì)增大其閃光點(diǎn)的誤報(bào)面積,下面將利用水漫的方法來(lái)填充一些區(qū)域,圖6示出了根據(jù)本發(fā)明的適用多場(chǎng)景的無(wú)參數(shù)背景建模方法中水漫法去誤刪的流程圖;具體方法所下:步驟601:輸入二值圖像;
步驟602:對(duì)圖像進(jìn)行一次閉操作,是白色區(qū)域閉合,然后將圖像拷貝一份,稱(chēng)之為m_flood;
步驟603:然后對(duì)m_flood圖像寬度為1的內(nèi)邊緣進(jìn)行賦值,賦值為0,即黑色;
步驟604:以圖像左上角的點(diǎn)(x0,y0)為原點(diǎn),利用水漫法,將與點(diǎn)(x0,y0)所連通的像素值為0的區(qū)域,及相連通的黑色區(qū)域都涂為白色,即像素值為255;
步驟605:然后拿m_cfg與m_flood作比對(duì),兩幅圖像中同時(shí)為黑色的區(qū)域也就是誤刪的或者漏檢測(cè)的區(qū)域,在m_cfg上將這些區(qū)域填充為白色;
步驟606:輸出黑白二值圖。
之后是中值濾波,經(jīng)過(guò)上述處理的處理已經(jīng)可以形成一個(gè)清晰的黑白二值圖像,對(duì)m_cfg進(jìn)行中值濾波后的二值圖便會(huì)更加清晰。
最后便是m_cfg與原圖進(jìn)行合并,m_cfg的白色區(qū)域?yàn)檫\(yùn)動(dòng)的區(qū)域,黑色為靜止區(qū)域。
本專(zhuān)利能適用于不同的場(chǎng)景,且不需要調(diào)節(jié)參數(shù),建模時(shí)間短,能消除圖像的抖動(dòng),以及閃光點(diǎn),對(duì)Ghost區(qū)域消除的時(shí)間可自由設(shè)定,對(duì)會(huì)能動(dòng)的球機(jī)也能有一個(gè)很好的建模效果。
結(jié)合這里披露的本發(fā)明的說(shuō)明和實(shí)踐,本發(fā)明的其他實(shí)施例對(duì)于本領(lǐng)域技術(shù)人員都是易于想到和理解的。說(shuō)明和實(shí)施例僅被認(rèn)為是示例性的,本發(fā)明的真正范圍和主旨均由權(quán)利要求所限定。