本發明涉及計算機視覺技術與視頻圖像處理領域,具體涉及面向ViBe(Visual Background Extractor,即可視化背景提取器)的前景對象檢測及抑制鬼影技術。
背景技術:
隨著高清攝像頭的普及和物聯網的飛速發展,視頻監控被廣泛應用于人們的生產生活之中,從而產生了海量的視頻數據,傳統的人工查閱隨著視頻數據的增加變得越來越困難,如何利用計算機從海量視頻中提取有用的信息成為目前計算機視覺領域的研究熱點之一。提取視頻中有意義的信息落地第一步是要對視頻進行運動目標的檢測與提取,目前運動目標檢測的方法主要有三種常用的方法:光流法、幀間差分法、背景差法。
背景差法中的ViBe與諸多方法相比具有計算量小、內存占用率低、實時性高、抗噪效果好等優點。但是由于ViBe只需第一幀就可以完成背景模型的初始化,而僅僅靠第一幀不包含時空信息,存在易引入鬼影的缺點,且當有前景對象不斷經過鬼影區域時,會出現鬼影被不斷加強無法消去的情況。這將嚴重影響背景建模的準確性,從而影響了ViBe在前景檢測應用中的效果。
針對該缺點,常見的抑制鬼影的方法有:1、對視頻前n幀進行預處理,運用幀間差法先得到不包含前景對象的背景圖片,在進行模型的初始化,可以有效的消除鬼影的產生,但是由于預留n幀進行預處理同時也拉長了模型初始化的時間,相比原ViBe只需第一幀就可完成初始化,該方法實現了一定程度上的鬼影消除,但卻犧牲了方法的實時性;2、基于閾值的鬼影抑制方法,對鬼影具有一定的抑制作用,但是因為閾值的設定使得方法具有一定的延時性,鬼影的消除速度方面仍有提高的空間。
本
技術實現要素:
為江蘇省科技廳重點研發計劃產業前瞻與共性關鍵技術:“大規模監控視頻存儲與分析關鍵技術研發”(BE2015137)的研究成果之一。
發明內容
本發明的目的在于提供一種面向ViBe的前景鬼影消除方法,克服原ViBe提取前景容易引入鬼影的缺陷,以提高魯棒性和實時性,減少鬼影對背景建模的影響,從而提高目標檢測的準確性。
為了解決以上技術問題,通過進行實時鬼影檢測和對鬼影區域進行局部初始化,此方法能夠在視頻背景建模的過程中實時地對鬼影產生抑制效果,并采用與原ViBe相同的思路,屬于基于像素點的運算,并沒有增加過多運算量,平均每幀處理時間在可接受范圍內,具有良好的魯棒性和實時性,有效地減少了鬼影對背景建模的影響,提高了目標檢測的準確性。
在原ViBe提取前景的基礎上引入實時鬼影區域檢測和局部模型重新初始化的策略,發明的主體包含鬼影區域檢測,鬼影區域定位,以及鬼影的抑制三部分。其中鬼影的抑制包含三個關鍵問題:(1)對何時進行局部模型重新初始化操作的判定、(2)如何確定局部重新初始化的具體區域,即如何定位每一幀中新出現的屬于背景的像素的位置、(3)如何確定鬼影區域的像素集是否已經被完全重新初始化。
本發明與已公開的專利《基于ViBe算法的鬼影快速抑制方法》采用了不同的思路,《基于ViBe算法的鬼影快速抑制方法》是通過閾值給予匹配數目置信因子權值,通過判斷某像素點匹配數目與閾值的關系確定該像素點是否是鬼影點,若是鬼影點則將其劃為背景點,而本發明是通過第二幀檢測對鬼影區域進行劃定,通過確定候選鬼影區域集合,對鬼影區域中的鬼影進行實時的檢測與抑制。且相比前者閾值的選定容易受特定的視頻序列影響,本方法更具可實施性與直觀性,通過在不同場景上的實驗具有良好的抑制鬼影效果與運行速度。
本發明采用的具體技術方案如下:
一種面向ViBe的鬼影消除方法,其特征在于包括以下步驟:
分為鬼影區域的檢測、鬼影區域的定位、前景鬼影的抑制三個部分其特征在于將鬼影的消除置于每一幀的背景建模之后,通過設置前景像素點連通域的面積閾值得到前景ROI(Region of Interest,即感興趣區域),當前景移動后,通過像素點集合的交運算將背景模型初始化中被前景遮擋的背景的部分區域定位并進行重新初始化,不斷地矯正混入前景像素的背景模型,以達到實時抑制鬼影的目的。具體權利要求包括以下步驟:
步驟一,對鬼影區域進行檢測得鬼影區域:逐幀讀取視頻序列,檢測是否存在由第一幀初始化過程中含有的前景對象而引入的鬼影,若存在則轉到步驟二,否則結束執行對鬼影區域的檢測;
步驟二,對鬼影區域的定位:通過對前景對象ROI矩形區域與所述步驟一中得到的鬼影區域進行交運算,將計算所得的像素點集合所在的位置作為鬼影區域記錄下來并轉到步驟三;
步驟三,對前景鬼影的抑制:判斷是否可以對步驟二得到的鬼影區域進行重新初始化,若可以,則對當前幀指定區域進行局部模型重新初始化,并將新的樣本集重新填充到背景模型對應的區域中,否則讀取下一幀,繼續執行步驟三。
對前景鬼影區域的實時檢測,引入第二幀判斷法,即通過利用像素點之間的鄰接關系得到前景對象的連通域,并設置閾值,從而判斷第二幀是否含有前景對象,進而判斷視頻序列中是否可能含有鬼影。所述步驟一具體包括以下過程:
過程1.1,將前景像素點的灰度值設置為255,,將背景點的像素值設置為0;
過程1.2,利用像素點的鄰接關系獲取連通域,設置面積閾值AreaThreshold;
過程1.3,計算連通域面積S,若S>AreaThreshold,則判定視頻的背景模型在初始化中有運行的前景對象的,在之后的檢測過程中將會出現鬼影;否則結束執行本方法;
過程1.4,記運動的前景對象因位移產生的兩個區域的外接矩形為R1,R2,R1和R2有重疊部分,對R1和R2取外接矩形Rghost,記滿足條件的Rghost組成的集合為G。
所述步驟二中位置信息包括鬼影區域集合中元素左上角的坐標(x0,y0),以及其高度h和寬度w。
對前景鬼影區域的背景模型重新初始化的鬼影抑制,通過將原先被前景對象遮擋的,且沒有被新的前景對象遮擋的背景區域進行重新初始化,以矯正在第一幀中初始化模型過程中混入的前景像素點對模型的干擾。步驟三具體包括以下過程:
過程3.1,確定何時進行局部模型重新初始化操作:在檢測鬼影階段記錄下鬼影區域Rghost的位置信息,在以后的每一幀中也可以得到劃分被判斷為前景的像素點形成連通域的外接矩形Rforeground,通過判定Rforeground與Rghost的幾何關系,如果Rghost沒有完全被Rforeground覆蓋,則開始更新未被覆蓋的區域的所有像素對應的樣本集;
過程3.2,確定局部重新初始化的具體區域:當鬼影區域存在沒有被前景對象遮擋住的背景時,對此部分的區域進行重新初始化的操作,局部重新初始化的具體區域為背景像素集合和鬼影區域的像素集合的交集;把即將被進行局部更新操作的區域記為RtoBeReinitialized。則RtoBeReinitialized=Rghost-Rforeground∩Rghost;
過程3.3,確定鬼影區域的像素集是否已經被完全重新初始化:當檢測到某一幀時,任意Rghost∈G的面積滿足Sghost<AreaThreshold時可以確定該鬼影區域已經重新初始化完畢,即背景模型對應的區域不再包含前景像素點的樣本,將該區域從集合G中移除。
所述面積閾值AreaThreshold=64。
所述獲取Rghost位置信息的方法如下:對連通域像素集合坐標值進行遍歷,分別獲得X方向Y方向的最值,在X方向上,記最小值為xmin,最大值xmax;在Y方向上,記最小值為ymin,最大值為ymax記所述連通域表征鬼影區域的Rghost的左上角坐標為(x0,y0),高度為h,寬度為w,則x0=xmin,y0=ymin,h=ymax-ymin,w=xmax-xmin。
所述過程3.1中判定Rforeground與Rghost的幾何關系的方法如下:,記Rforeground的左上角坐標為(x0',y0'),高度為h’和寬度w’,則當滿足或時矩形框Rforeground與Rghost沒有重疊部分。
本發明具有有益效果:
(1)在目標檢測應用方面,一般而言,視頻序列中的目標檢測需要對前景對象進行分離與提取,ViBe相比其他方法有計算量小、內存占用率低、實時性高、抗噪效果好等諸多優點,但是容易引人鬼影的問題會導致前景對象的誤檢,錯誤地將背景對象檢測為前景,降低目標檢測的準確性。本發明針對該問題,本發明通過引入第二幀鬼影區域檢測和局部背景模型重新初始化策略,使得在ViBe背景建模的基礎上產生的前景鬼影得到實時的檢測與抑制。可以有效地提高目標檢測的精度,降低誤檢率。
(2)在視頻濃縮應用方面,視頻濃縮第一步往往需要對視頻序列進行背景建模,當視頻幀中不存在前景對象時,可以認定該幀不包含有意義的信息,因此可以將該幀略去,而鬼影的存在會導致原本不存在前景對象的視頻幀被誤判為含有前景對象的情況發生,從而影響了視頻濃縮的效率,表現為降低了視頻濃縮率,增加了視頻存儲的體積,而且還增加視頻檢索查閱的工作量。因此,本發明通過抑制鬼影的產生避免以上情況的發生,起到提高視頻濃縮的效率,減少視頻文件的體積,從而減少視頻文件對存儲的壓力,降低了視頻查閱人員的工作量。
附圖說明
圖1是本發明所述面向ViBe的前景鬼影消除方法的流程示意圖。
圖2是本發明所述鬼影區域檢測中判為前景區域的外接矩形R1,R2示意圖。
圖3是本發明所述N幀后局部重新初始化區域與更新的鬼影區判定示意圖。
具體實施方式
下面結合附圖和具體實施方式對本發明進一步詳細說明。
本發明的實現具體是依序采用如下步驟:
(1)運用OpenCV(cSource Computer VisionLibrary,開源的跨平臺計算機視覺庫)中包含的視頻流處理的函數庫,對待處理的視頻序列進行逐幀讀取,同時獲取視頻的基本編碼信息。
(2)通過ViBe進行背景建模,從而對前景對象進行檢測,將構成前景對象的像素集合的像素值設置為255,將構成背景區域的像素值設置為0。從而得到二值圖像作為視頻序列的背景掩模。
(3)利用像素點的鄰接關系獲取像素值為255的連通區域,并設置面積閾值AreaThreshold,當連通域面積S>AreaThreshold,則判定視頻的背景模型在初始化中有運行的前景對象,在之后的檢測過程中將會出現鬼影,則轉到第(4)步。若不存在,則執行結束。
(4)將符合條件的連通域的外接矩形記錄下,構成鬼影區域集合。具體方案為:將得到運動對象因位移產生的兩個區域,記這兩個區域外接矩形為R1,R2,如圖2所示R1和R2是有重疊部分的,對R1和R2取外接矩形。則Rghost的個數則為鬼影的數目,且每個Rghost所在位置即為鬼影的對應位置。記滿足條件的Rghost組成的集合為G。
(5)對鬼影區域進行局部初始化,在第二幀后,對每一幀的沒有被前景對象遮擋的鬼影區域進行局部重新初始化,并更新鬼影區域。記局部重新初始化區域為RtoBeReinitialized,則RtoBeReinitialized=Rghost-Rforeground∩Rghost
(6)依照像素點的位置將重新初始化后的部分的矩陣填充到背景模型中去,從而更新背景模型。
(7)在對鬼影區域進行局部初始化后,需要對鬼影集合進行更新操作,將已經重新初始化的鬼影區域從集合中剔除,Rghost'=Rghost-RtoBeReinitialized。遍歷Rghost中的元素當滿足Sghost<AreaThreshold則將該元素從G中移除,當G為空,即card(G)=0時,可以確定鬼影區域已被完全消除,則執行結束,否則轉到第(3)步。圖1為本發明提出的面向ViBe的鬼影消除方法的流程示意圖。
S1:視頻序列的讀取
運用OpenCV中包含的視頻流處理的函數庫,對待處理的視頻序列進行逐幀讀取,同時獲取視頻的基本編碼信息。
S2:對視頻序列進行背景建模
通過ViBe進行背景建模,從而對前景對象進行檢測,將構成前景對象的像素集合的像素值設置為255,將構成背景區域的像素值設置為0。從而得到二值圖像作為視頻序列的背景掩模。
S3:檢測鬼影區域
由S2獲得的二值背景掩膜,利用像素點的鄰接關系獲取像素值為255的連通區域,并設置面積閾值AreaThreshold,當連通域面積S>AreaThreshold,則可判定視頻的背景模型在初始化中有運行的前景對象的,在之后的檢測過程中將會出現鬼影。
進一步優選方案,所述AreaThreshold=64。
S4:劃定鬼影區域
由S3確定是否會存在鬼影區域,若不存在,則執行結束;若存在,則將符合條件的連通域的外接矩形記錄下,構成鬼影區域集合。將得到運動對象因位移產生的兩個區域,記這兩個區域外接矩形為R1,R2,如圖2所示,R1和R2存在重疊部分,對R1和R2取外接矩形。則Rghost的個數則為鬼影的數目,且每個Rghost所在位置即為鬼影的對應位置。記滿足條件的Rghost組成的集合為G。
進一步優選方案,所述位置信息包括Rghost中元素左上角的坐標(x0,y0),以及其高度h和寬度w。
進一步優選方案,在X方向上,記最小值為xmin,最大值xmax;在Y方向上,記最小值為ymin,最大值為ymax記所述連通域表征鬼影區域的Rghost的左上角坐標為(x0,y0),高度為h,寬度為w,則x0=xmin,y0=ymin,h=ymax-ymin,w=xmax-xmin。
S5:局部區域重新初始化
在第二幀后,對每一幀的沒有被前景對象遮擋的鬼影區域進行局部重新初始化。當鬼影區域存在沒有被前景對象遮擋住的背景時,對此部分的區域進行重新初始化的操作,記重新初始化的區域所構成的集合為RtoBeReinitialized,則:RtoBeReinitialized=Rghost-Rforeground∩Rghost,RtoBeReinitialized區域如圖3所示。
進一步優選方案,記Rforeground的左上角坐標為(x0',y0'),高度為h’和寬度w’,則當或時矩形框Rforeground與Rghost沒有重疊部分,當滿足上訴條件時,則可對Rghost進行重新初始化的操作。
S6:更新背景模型
在對局部重新初始化后,依照像素點的位置將重新初始化后的部分的矩陣填充到背景模型中去,從而更新背景模型。
S7:更新鬼影區域集合
在對鬼影區域進行局部初始化后,需要對鬼影集合進行更新操作,將已經重新初始化的鬼影區域從集合中剔除,如圖3所示,Rghost'=Rghost-RtoBeReinitialized。遍歷Rghost中的元素當滿足Sghost<AreaThreshold則將該元素從集合G中移除,當G為空,即card(G)=0時,可以確定鬼影區域已被完全消除,則執行結束,否則轉到S3。
在數據集Crowd_PETS09上的對比實驗表明,在使用本方法后基于ViBe前景提取在鬼影消除方面的效果上有顯著提升。本方法可以有效地在第一時間對背景模型進行修正,從而起到消除鬼影的作用。在有稠密的目標經過鬼影區域的時候效果尤為明顯。對比使用本方法前后背景建模的效果,可以發現,未使用本方法的實驗組中,會存在前景對象不斷進入鬼影區域,從而鬼影被不斷被地強化而長時間不能被及時地消去的情況;而使用本方法的實驗組中,鬼影在第二幀之后就得到了及時的消除,從而避免了鬼影對目標檢測的影響。
以上所述僅為本發明技術方案和具體實施例的描述,并不用于限定本發明的保護范圍,應當理解,在不違背本發明實質內容和精神的前提下,所作任何修改、等同替換等都將落入本發明的保護范圍內。