官洪運(yùn),井倩倩,王亞青,繆新苗,張抒藝
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海201620)
隨著電子技術(shù)與計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展,視頻監(jiān)控被廣泛地運(yùn)用于各種場(chǎng)所。動(dòng)態(tài)目標(biāo)檢測(cè)作為獲取視頻信息的重要技術(shù),其實(shí)時(shí)性與準(zhǔn)確性變得至關(guān)重要。常用的動(dòng)態(tài)目標(biāo)檢測(cè)算法有幀差法、背景差分法以及光流法[1]。幀差法由于計(jì)算簡(jiǎn)單,算法運(yùn)行速度快,光照突變也不會(huì)對(duì)其造成影響,但是當(dāng)運(yùn)動(dòng)目標(biāo)在相鄰幀位置變化緩慢時(shí),算法提取出的前景目標(biāo)會(huì)出現(xiàn)空洞現(xiàn)象[2]。背景差分法的關(guān)鍵是背景建模及背景更新,其基本思想是利用背景的參數(shù)模型來近似真實(shí)背景,再用當(dāng)前圖像幀與背景模型進(jìn)行差分,從而達(dá)到檢測(cè)運(yùn)動(dòng)目標(biāo)的目的[3]。但是由于背景無法做到實(shí)時(shí)更新且在攝像頭運(yùn)動(dòng)的情況下算法的檢測(cè)效果也會(huì)受到一定影響。光流法的基本原理是為圖像中的每一個(gè)像素建立一個(gè)運(yùn)動(dòng)矢量,當(dāng)圖像中存在運(yùn)動(dòng)目標(biāo)時(shí),運(yùn)動(dòng)目標(biāo)的矢量場(chǎng)會(huì)與背景的矢量場(chǎng)存在明顯差異,由此來獲取圖像中的運(yùn)動(dòng)目標(biāo)[4],但是無法同時(shí)保證光流法的時(shí)效性與準(zhǔn)確性。
ViBe 算法由于思想簡(jiǎn)單、檢測(cè)效果好且易于實(shí)現(xiàn),被廣泛運(yùn)用于動(dòng)態(tài)目標(biāo)檢測(cè),但是算法自身也存在著局限性,會(huì)產(chǎn)生鬼影、空洞和陰影前景等問題[5]。文獻(xiàn)[6]提出一種結(jié)合三幀差法的改進(jìn) ViBe算法,解決了ViBe 算法光適應(yīng)性差的問題;針對(duì)傳統(tǒng)ViBe 算法存在鬼影問題,文獻(xiàn)[7]提出了一種V-ViBe 算法的改進(jìn)方案;文獻(xiàn)[8]為了解決陰影問題,結(jié)合色相和紋理特征對(duì)ViBe 算法做出了改進(jìn)。
針對(duì)傳統(tǒng)ViBe 算法的鬼影和陰影問題,本文提出了一種更加有效的目標(biāo)檢測(cè)算法,利用均值背景建模對(duì)傳統(tǒng)ViBe 算法進(jìn)行改進(jìn),消除鬼影現(xiàn)象,并且在此基礎(chǔ)上進(jìn)一步融合了混合HSV 色度空間與HSI 色度空間的閾值自適應(yīng)陰影消除算法,消除了前景目標(biāo)中包含的陰影區(qū)域。
2009 年 ,Olivier Barnich 和 Marc Van Droogenbroeck首次提出了ViBe 前景檢測(cè)算法。ViBe 算法是一種魯棒性強(qiáng)的隨機(jī)背景建模的動(dòng)態(tài)前景目標(biāo)檢測(cè)算法,其計(jì)算過程簡(jiǎn)單、實(shí)時(shí)性高、應(yīng)用廣泛。
ViBe 算法使用視頻序列的第一幀圖像進(jìn)行背景模型初始化。在初始化過程中,對(duì)每個(gè)像素隨機(jī)抽取鄰域內(nèi)的像素值生成樣本集,構(gòu)建背景模型。通常一個(gè)像素點(diǎn)在其8 鄰域的范圍內(nèi)隨機(jī)選取20個(gè)樣本點(diǎn)來構(gòu)建對(duì)應(yīng)的背景模型。由于ViBe 算法只使用視頻序列的第一幀來構(gòu)建背景模型,背景模型初始化時(shí)間大大縮短,使得算法的實(shí)時(shí)性變得更好。但是當(dāng)?shù)谝粠瑘D像中存在運(yùn)動(dòng)目標(biāo)時(shí),這樣的方法會(huì)使檢測(cè)結(jié)果出現(xiàn)所謂的“鬼影”,經(jīng)過一段時(shí)間背景更新后鬼影才會(huì)消除,動(dòng)態(tài)目標(biāo)檢測(cè)的準(zhǔn)確性會(huì)有所降低。
ViBe 算法根據(jù)二維空間中的歐氏距離來對(duì)像素點(diǎn)進(jìn)行分類,從而分割前景與背景。記 v(x)為 x位置像素點(diǎn)的像素值,S(v(x))是以像素點(diǎn)為中心,R 為半徑生成的圓形。以 v(x)與 x 像素點(diǎn)的背景模型中的所有樣本點(diǎn)的歐式距離與半徑閾值R 進(jìn)行比較,小于閾值時(shí)則說明當(dāng)前像素點(diǎn)與該樣本點(diǎn)匹配。記 #min 為最小匹配次數(shù),當(dāng)前像素點(diǎn)與背景模型中的樣本點(diǎn)的匹配次數(shù)大于#min 時(shí),將該像素點(diǎn)分類為背景點(diǎn),反之則分類為前景點(diǎn)。
ViBe 算法背景更新即對(duì)構(gòu)成像素點(diǎn)背景模型的樣本集的更新。當(dāng)像素值被判斷為背景點(diǎn)時(shí),用當(dāng)前像素的像素值替換樣本集中的樣本點(diǎn)的概率為 1/φ(一般 φ 取 16)。同時(shí) 根據(jù)鄰域傳播 原 則 ,該像素點(diǎn)鄰域中的像素值也將以相同的概率被當(dāng)前像素點(diǎn)的像素值替換,這種策略有效地保證了空間一致性,可以很快地恢復(fù)被誤判為前景目標(biāo)的背景像素。
在傳統(tǒng)的ViBe 算法中使用第一幀來進(jìn)行背景模型初始化,但是當(dāng)視頻第一幀存在運(yùn)動(dòng)目標(biāo)時(shí),初始背景模型的準(zhǔn)確性會(huì)受到很大的影響,導(dǎo)致動(dòng)態(tài)目標(biāo)檢測(cè)會(huì)出現(xiàn)鬼影現(xiàn)象。因此提高初始背景模型的準(zhǔn)確性會(huì)消除前期檢測(cè)的鬼影現(xiàn)象。本文利用均值背景建模構(gòu)建了ViBe 算法的初始化背景。
均值背景建模是背景差分法的一種,其背景建模是基于統(tǒng)計(jì)濾波思想[9]。原理是將一段時(shí)間采集到的N 幀圖像相加,求其平均值,計(jì)算出的圖像作為參考背景模型。計(jì)算公式如式(1)所示:
其中,Bn為計(jì)算出的參考背景,N 為選取的幀數(shù),(fn+fn-1+…+fn-N+1)為連續(xù)的 N 幀圖像。根據(jù)式(1)對(duì)視頻序列進(jìn)行均值背景建模,獲取的初始背景模型如圖1 所示。
圖1 數(shù)據(jù)集不同幀數(shù)獲取的參考背景
從圖1 可知,當(dāng)計(jì)算均值背景選取的幀數(shù)越大,得到的背景就越貼近真實(shí)背景;選取的幀數(shù)越小,有前景目標(biāo)經(jīng)過的背景區(qū)域顏色會(huì)比真實(shí)背景相同的區(qū)域更深。
融合了均值建模的ViBe 算法在開始時(shí)就已經(jīng)獲得了較為準(zhǔn)確的背景模型,所以前景提取不會(huì)出現(xiàn)鬼影現(xiàn)象,大大提高了動(dòng)態(tài)目標(biāo)檢測(cè)的準(zhǔn)確性。
傳統(tǒng)的 ViBe 算法是在像素點(diǎn) 8 鄰域的范圍內(nèi)隨機(jī)選取20 個(gè)樣本點(diǎn)構(gòu)成背景模型,這樣會(huì)導(dǎo)致背景模型中樣本重復(fù)的概率增大,重復(fù)選取樣本會(huì)增大背景點(diǎn)與前景點(diǎn)的誤判概率,所以本文將像素點(diǎn)的 24 鄰域作為背景模型樣本選取范圍,降低樣本重復(fù)選取概率,從而降低誤判概率。
改進(jìn)的ViBe 算法選取了均值背景建模的結(jié)果作為背景初始化模型,有效地消除了鬼影現(xiàn)象。由于光照因素,視頻序列中的動(dòng)態(tài)目標(biāo)會(huì)產(chǎn)生陰影,并且陰影的運(yùn)動(dòng)特性與真實(shí)目標(biāo)相似,所以陰影也會(huì)被誤檢為前景目標(biāo),會(huì)對(duì)檢測(cè)的準(zhǔn)確性造成影響。
HSV 是根據(jù)顏色的直觀特性由A.R.Smith 在1978 年創(chuàng)建的一種顏色空間,模型中的三個(gè)參數(shù)分別為色調(diào)(H)、飽和度(S)、明度(V)。相 較于 RGB 色度空間,HSV 更貼近于人眼感覺顏色的方式[10]。當(dāng)陰影覆蓋背景像素時(shí),色度和飽和度基本不發(fā)生變化,只有亮度會(huì)明顯降低?;谶@一特性,根據(jù)式(2)來判斷像素點(diǎn)是否為陰影點(diǎn)。
當(dāng) Sp(x,y)=1 時(shí),當(dāng)前位置的像素點(diǎn)判斷為陰影 點(diǎn) 。其 中 IH(x,y)、IS(x,y)、IV(x,y)和 BH(x,y)、BS(x,y)、BV(x,y)分別是當(dāng)前幀與背景圖像在(x,y)位置的像素在HSV 色度空間的分量; 由于陰影點(diǎn)的像素亮度小于背景點(diǎn)像素,因此 0≤α≤β≤1;τS是飽和度參數(shù)的閾值;τH是色度參數(shù)的閾值。
HSI 色彩空間是從人的視覺系統(tǒng)出發(fā),與HSV色度空間不同的是亮度分量。HSI 色彩空間可以用一個(gè)圓錐空間模型來描述,而HSV 色度空間相當(dāng)于一半的圓錐空間模型。HSV 陰影消除也是根據(jù)亮度來區(qū)分陰影點(diǎn)。本文中主要使用了HSI 色度空間中的亮度參數(shù)來獲取當(dāng)前視頻的亮度,從而動(dòng)態(tài)設(shè)置判斷條件的閾值。
陰影是由于物體遮擋光線而形成的,它會(huì)隨著物體的運(yùn)動(dòng)而運(yùn)動(dòng),所以會(huì)被誤檢為前景目標(biāo)。對(duì)于視頻序列中同一位置的區(qū)域,被陰影覆蓋時(shí)的亮度相較于沒有覆蓋時(shí)會(huì)降低,但當(dāng)運(yùn)動(dòng)目標(biāo)經(jīng)過時(shí)亮度一般會(huì)比真實(shí)背景區(qū)域的亮度要高[11]。本文基于這一特征進(jìn)行陰影消除。
首先讀取視頻幀,此時(shí)讀取的圖像處于RGB 色度空間。進(jìn)行陰影消除之前需要將圖像轉(zhuǎn)換至HSV色度空間。RGB 轉(zhuǎn)換至 HSV 的公式如式(3)~式(5)所示:
運(yùn)動(dòng)目標(biāo)陰影和背景相比較只有V 分量明顯降低,在HSV 色度空間中,陰影像素點(diǎn)三個(gè)參數(shù)的向量和小于被覆蓋的背景像素點(diǎn)的向量和,所以陰影判斷公式如式(6)所示:
如果 Sp(x,y)=1,則像素點(diǎn)為陰影點(diǎn);如果 Sp(x,y)=0,則像素點(diǎn)為前景點(diǎn)。其中 IH(x,y)、IS(x,y)、IV(x,y)和 BH(x,y)、BS(x,y)、BV(x,y)分 別 是 當(dāng) 前 幀 與 背景圖像在 (x,y) 位置的像素在HSV 色度空間的分量;α 和 β 分 別 為自 設(shè)閾值 。
在實(shí)際情況中,攝像頭采集到的視頻序列亮度會(huì)不斷發(fā)生變化,為了達(dá)到最好的陰影消除效果,需要更改判斷條件的閾值。所以考慮到算法的實(shí)用性,進(jìn)一步對(duì)算法進(jìn)行改進(jìn),使其可以根據(jù)當(dāng)前檢測(cè)視頻亮度自動(dòng)更改陰影判斷閾值。將視頻轉(zhuǎn)換至HSI 色度空間,獲取視頻亮度分量如式(7)所示:
在當(dāng)前圖像隨機(jī)選取一定數(shù)量的像素點(diǎn)計(jì)算HSI 色度空間的亮度分量,根據(jù)式(8)計(jì)算均值作為當(dāng)前幀的亮度。
根據(jù)多次實(shí)驗(yàn)結(jié)果總結(jié),自適應(yīng)閾值更改公式如式(9)所示:
視頻經(jīng)過運(yùn)動(dòng)目標(biāo)提取和陰影消除后,為進(jìn)一步消除圖像小部分區(qū)域殘存的陰影,以防止提取到的車輛目標(biāo)中存在空洞,利用圖像處理中的膨脹、腐蝕、開運(yùn)算與閉運(yùn)算等形態(tài)學(xué)處理操作,去除未消除的小區(qū)域陰影像素點(diǎn)及噪聲點(diǎn),之后再對(duì)提取出的車輛前景進(jìn)行孔洞填充,從而提取出完整的運(yùn)動(dòng)目標(biāo)。
本文實(shí)驗(yàn)環(huán)境為1.4 GHz 4 核 Intel Core i5 處理器、8 GB 內(nèi)存計(jì)算機(jī),系統(tǒng)為 MacOS Mojave,運(yùn)行環(huán)境為 PyCharm CE,結(jié)合開源 OpenCV 庫(kù)。
為了驗(yàn)證本文提出的目標(biāo)檢測(cè)算法的有效性,采用國(guó)際上通用的標(biāo)準(zhǔn)數(shù)據(jù)集Highway I 和Highway II進(jìn)行實(shí)驗(yàn)。分別對(duì)不同光照強(qiáng)度下的道路車輛進(jìn)行檢測(cè)及動(dòng)態(tài)陰影消除。本文提出的 ViBe 改進(jìn)算法實(shí)驗(yàn)結(jié)果與傳統(tǒng)ViBe 算法實(shí)驗(yàn)結(jié)果進(jìn)行比較,結(jié)果如圖2 所示。其中圖2(a)為 Highway I 和 Highway II視頻序列的第 1 幀圖像;圖2(b)為 Highway I 視頻序列的第 56 幀和 Highway II 視頻序列的第 114 幀輸入圖像;圖2(c)為傳統(tǒng) ViBe 算法對(duì) Highway I 視頻序列的第56 幀和 Highway II 視頻序列的第114幀的實(shí)驗(yàn)結(jié)果;圖2(d)為改進(jìn) ViBe 算法,即融合均值背景建模算法對(duì)Highway I 視頻序列的第 56 幀和 Highway II 視頻序列的第114 幀的實(shí)驗(yàn)結(jié)果;圖2(e)為本文提出的基于ViBe 改進(jìn)算法的閾值自適應(yīng)陰影消除算法對(duì)Highway I 視頻序列的第56幀和Highway II 視頻序列的第114 幀的實(shí)驗(yàn)結(jié)果。
由于兩個(gè)視頻序列第一幀均存在運(yùn)動(dòng)目標(biāo),從圖2(c)的實(shí)驗(yàn)結(jié)果可以看出,傳統(tǒng)的 ViBe 檢測(cè)算法存在嚴(yán)重的鬼影現(xiàn)象,在 Highway I 第 56 幀和Highway II 視頻第114 幀中動(dòng)態(tài)目標(biāo)提取結(jié)果中仍存在明顯的“鬼影”,并且視頻中的運(yùn)動(dòng)陰影也會(huì)被當(dāng)作前景提取出來。從圖2(e)的實(shí)驗(yàn)結(jié)果可以看出,本文提出的算法有效地抑制了鬼影的產(chǎn)生和陰影像素點(diǎn)的錯(cuò)誤提取,很好地提取出運(yùn)動(dòng)前景,并且經(jīng)過形態(tài)學(xué)處理之后,運(yùn)動(dòng)目標(biāo)更加清晰完整。
圖2 實(shí)驗(yàn)結(jié)果
動(dòng)態(tài)目標(biāo)檢測(cè)是獲取視頻序列中信息的關(guān)鍵步驟,保證目標(biāo)檢測(cè)的準(zhǔn)確性十分重要。本文提出了一種融合改進(jìn)的ViBe 和閾值自適應(yīng)混合色度空間陰影消除的動(dòng)態(tài)目標(biāo)檢測(cè)算法,該算法有效地抑制了傳統(tǒng)ViBe 算法產(chǎn)生的鬼影,并且消除了動(dòng)態(tài)目標(biāo)產(chǎn)生的陰影。實(shí)驗(yàn)表明,本文提出的動(dòng)態(tài)目標(biāo)檢測(cè)算法易于實(shí)現(xiàn),具有很好的實(shí)時(shí)性及魯棒性,且可以準(zhǔn)確提取出運(yùn)動(dòng)目標(biāo),得到的目標(biāo)完整且輪廓清晰。