王燕 李旭健
摘? 要: 人形分割在視頻監(jiān)控研究中具有極其重要的意義。ViBe算法因其運(yùn)算效率高、算法思想簡(jiǎn)單且容易實(shí)現(xiàn)的特性受到許多研究學(xué)者的青睞,并被應(yīng)用到人形分割的研究中。針對(duì)ViBe算法在應(yīng)用于人形分割研究時(shí)易于出現(xiàn)鬼影和容易對(duì)光照引起的陰影造成誤檢的現(xiàn)象,提出了一種改進(jìn)的ViBe算法—VSFC(ViBe Surendra Five-frame Canny)算法。首先將利用Otsu自適應(yīng)閾值的Surendra算法得到的初始背景用作背景模型的初始化。其次,通過將ViBe算法所得出的前景與五幀差分法得出的前景采用“與”運(yùn)算的方式獲得人形分割結(jié)果,并對(duì)得到的人形分割結(jié)果進(jìn)行形態(tài)學(xué)處理,以便能夠消除較大的噪聲。最后利用Canny邊緣檢測(cè)算子對(duì)人形的邊緣信息進(jìn)行提取,利用小波融合方法將前面得到的人形結(jié)果和邊緣信息進(jìn)行融合,得到最后的人形分割結(jié)果。在更新機(jī)制方面,提出動(dòng)則更新的更新思想,對(duì)于那些長(zhǎng)時(shí)間靜止不動(dòng)的像素點(diǎn),采取隔時(shí)更新的方式,提高了算法的實(shí)時(shí)性。
關(guān)鍵詞: 視頻監(jiān)控;人形分割;ViBe算法;Surendra算法;五幀差分法;隔時(shí)更新
中圖分類號(hào): TP391.41? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.07.018
【Abstract】: Humanoid segmentation is extremely important in video surveillance research. The ViBe algorithm is favored by many researchers because of its high computational efficiency, simple algorithm and easy to implement, and is applied to the research of human segmentation. Aiming at the phenomenon that ViBe algorithm is prone to ghosting and easy to cause false detection of shadow caused by illumination when applied to human-shaped segmentation, an improved ViBe algorithm-VSFC (ViBe Surendra Five-frame Canny) algorithm is proposed. The initial background obtained using the Otsu adaptive threshold Surendra algorithm is first used as the initialization of the background model. First, the initial background is obtained using the Otsu adaptive threshold Surendra algorithm, and this background is used as the initialization of the background model. Secondly, the human-shaped result is obtained by using the foreground obtained by the ViBe algorithm and the foreground obtained by the five-frame difference method to obtain the humanoid result, and the obtained humanoid result is processed morphologically to eliminate the large noise. Finally, the Canny edge detection operator is used to extract the edge information of the humanoid. The wavelet fusion method is used to fuse the previously obtained humanoid result and edge information to obtain the final humanoid segmentation result. In terms of the update mechanism, the update idea of the update is proposed. For those pixels that are still stationary for a long time, the method of updating at intervals is adopted to improve the real-time performance of the algorithm.
【Key words】: Video surveillance; Humanoid segmentation; ViBe algorithm; Surendra algorithm; Five-frame difference method; Interval update
0? 引言
視頻監(jiān)控可以幫助人們實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)的功能,在人們的生產(chǎn)生活中得到廣泛應(yīng)用,起著舉足輕重的作用。人形分割技術(shù)是視頻監(jiān)控技術(shù)發(fā)展的奠基石,但因?qū)嶋H場(chǎng)景的復(fù)雜性、光照引起的陰影以及人與人之間的遮擋等因素,使得從監(jiān)控視頻中進(jìn)行人形分割的技術(shù)仍然面臨嚴(yán)峻考驗(yàn)。
2009年,Olivier Barnich等人首次提出基于樣本的ViBe算法[1]。近幾年,Vibe算法作為一種有效、快速而且新奇的像素級(jí)前景檢測(cè)算法,為研究學(xué)者們鉆研人形分割技術(shù)開辟了新思路。但是該算法也具有一定的局限性:因?yàn)橹苯永靡曨l首幀構(gòu)建模型,容易產(chǎn)生鬼影問題;容易將長(zhǎng)時(shí)間靜止不動(dòng)的目標(biāo)誤判為背景;容易對(duì)光照所引起的陰影造成誤檢;運(yùn)動(dòng)目標(biāo)容易出現(xiàn)空洞現(xiàn)象。針對(duì)鬼影問題,楊丹等[2]在初始建模階段采用多幀平均法構(gòu)建初始背景,但是多幀平均法僅僅適用于簡(jiǎn)單的監(jiān)控場(chǎng)景。Qin等[3]利用Gabor加速鬼影的消融速度,并通過GPU加速改進(jìn)隨機(jī)擴(kuò)展和更新速度。桂斌等[4]通過采用三幀差分法得到準(zhǔn)確的背景圖像以達(dá)到去除鬼影的目的。針對(duì)陰影問題,徐君妍等[5]在算法中加入幀間差分法進(jìn)行閾值比較,根據(jù)幀間差分法的抗光照性,動(dòng)態(tài)的調(diào)整更新率。但是幀間差分法容易產(chǎn)生“空洞”問題,并不能真正意義上的解決陰影問題。胡小冉等[6]基于先驗(yàn)知識(shí)和邊緣檢測(cè)方法消除陰影,不過人們的先驗(yàn)知識(shí)存在很大的局限性,并不能使所有情況下的問題都得到有效的解決。余燁等[7]將色度和梯度進(jìn)行結(jié)合,用于去除陰影。
本文在此基礎(chǔ)上提出了一種改進(jìn)的ViBe算法—VSFC算法。首先,利用Otsu自適應(yīng)閾值的Surendra算法得到初始背景,并將此背景用作背景模型的初始化。然后結(jié)合五幀差分法,通過將ViBe算法所得到的前景與五幀差分法得出的前景采用“與”運(yùn)算的方式獲得人形結(jié)果,并對(duì)得到的人形結(jié)果進(jìn)行形態(tài)學(xué)上的處理,以便消除較大的噪聲。最后提取人形的邊緣信息,利用小波融合方法將前面提取的人形結(jié)果和邊緣信息進(jìn)行融合,得出最后的人形分割結(jié)果。另外,針對(duì)ViBe原有的更新機(jī)制,本文采用動(dòng)則更新的更新方式,即在更新背景模型時(shí),只更新運(yùn)動(dòng)的像素點(diǎn),對(duì)于長(zhǎng)時(shí)間靜止的像素點(diǎn),采用隔時(shí)更新的方式,能夠有效降低算法的復(fù)雜度。該算法通過融合多種算法的優(yōu)勢(shì),能夠使復(fù)雜視頻監(jiān)控場(chǎng)景下ViBe算法帶來(lái)的鬼影以及陰影誤檢問題得到有效解決。
1? 初始化背景模型
ViBe算法是一種通用的前景檢測(cè)算法,該算法首先為視頻序列中的每個(gè)像素都創(chuàng)建一個(gè)獨(dú)特的背景樣本集,用此樣本集作為背景模型[8]。通過將當(dāng)前像素與背景模型中同一位置的像素作比較來(lái)確定當(dāng)前像素是屬于前景還是背景。但是該算法局限于采用第一幀來(lái)構(gòu)建模型,倘若運(yùn)動(dòng)目標(biāo)存在于視頻的第一幀中,則很容易產(chǎn)生鬼影。故此,本文采用基于Otsu自適應(yīng)閾值的Surendra算法通過不斷迭代得到初始背景,并將此背景用于背景模型初始化? 中[9]。背景模型初始化如下:
(1)選取監(jiān)控視頻序列中的第一幀圖像 作為背景圖像 ,假設(shè)圖像灰度級(jí)為 ,在此通過Otsu方法計(jì)算當(dāng)前幀 的閾值 。幀 的像素之和為 。對(duì)應(yīng)于灰度級(jí) 的像素之和是 ,則第 級(jí)灰度出現(xiàn)的概率為: 。其中? ?, 。通過求當(dāng)前幀 的平均值和方差,得到最優(yōu)閾值 。
(2)求當(dāng)前幀 的差分圖像 :
(3)更新背景圖像 :
符號(hào) 表示更新速度。此時(shí) 即為初始 背景。
(4)為每一個(gè)像素 都建立一個(gè)背景模型[10]: 。其中 表示像素8鄰域隨機(jī)背景樣本值, 為待判定的像素點(diǎn)的像素值, 。
隨機(jī)選取每個(gè)像素對(duì)應(yīng)的8個(gè)鄰域像素作為背景樣本。初始化背景模型:
代表初始時(shí)間點(diǎn), 為鄰域的像素值, 為當(dāng)前點(diǎn)的像素值。
2? 前景分割
2.1? 通過ViBe算法得到前景
上文完成了背景模型的創(chuàng)建,接下來(lái)需要對(duì)新的一幀圖像計(jì)算當(dāng)前像素點(diǎn)與其所對(duì)應(yīng)的樣本集中的像素點(diǎn)之間的歐氏距離,并統(tǒng)計(jì)距離小于閾值 的像素點(diǎn)數(shù),然后與提前設(shè)定的匹配閾值 進(jìn)行比較,若是結(jié)果小于該閾值,則判定該像素點(diǎn)為前景像素點(diǎn)[11]。
2.2? 通過五幀差分法得到前景
本文利用文獻(xiàn)[12]提出的五幀差分法進(jìn)行前景提取,五幀差分法能夠在一定程度上克服原算法檢測(cè)位置不精確、容易出現(xiàn)“空洞”的不足,相對(duì)原始算法,所提取的運(yùn)動(dòng)目標(biāo)更為準(zhǔn)確。
此外,讓差分結(jié)果 和 、 和 分別做“與”運(yùn)算,得到 和 ,最后讓 和 進(jìn)行“或”運(yùn)算得到最終人形結(jié)果 。在做“或”運(yùn)算之前先對(duì)其進(jìn)行二值化和中值濾波處理,以避免“空洞”現(xiàn)象的發(fā)生。
2.3 “與”運(yùn)算和后處理
通過將前文中ViBe算法所得出的前景與五幀差分法得出的前景采用“與”運(yùn)算的方式獲得人形分割結(jié)果,并對(duì)得到的人形分割結(jié)果進(jìn)行形態(tài)學(xué)處理,以便消除較大的噪聲,最終得到準(zhǔn)確無(wú)誤的人形分割結(jié)果。在監(jiān)控視頻中,若是出現(xiàn)光照引起的陰影,ViBe算法常會(huì)對(duì)其造成誤檢。本文針對(duì)ViBe算法對(duì)光照的敏感性,利用小波融合方法將前面得到的人形分割結(jié)果和通過使用Canny算子提取的人形邊緣信息進(jìn)行融合,得出最終的人形分割結(jié)果。
3? 背景模型更新
在更新時(shí),ViBe算法隨機(jī)選擇要更新的像素,其更新策略具有一定的保守性。本文提出動(dòng)則更新的策略,在監(jiān)控視頻中,對(duì)于始終靜止不動(dòng)的像素點(diǎn)在被判定為背景之后,為了提高實(shí)時(shí)性,本文采取隔時(shí)更新的方式,即對(duì)于長(zhǎng)時(shí)間靜止的像素點(diǎn),隔一段時(shí)間更新一次,只更新運(yùn)動(dòng)著的像素點(diǎn)。采取這樣的策略極大的提高了算法的實(shí)時(shí)性,降低了算法復(fù)雜度。
4? 實(shí)驗(yàn)結(jié)果分析
本文所涉及的仿真實(shí)驗(yàn)均在Windows 10操作系統(tǒng)下通過matlab 2017b+opencv 4.0.0+VS 2015環(huán)境完成的。采用的數(shù)據(jù)集為changedetection.net上的2014 DATASET中的“Baseline”數(shù)據(jù)集。因?yàn)楸疚尼槍?duì)解決的重點(diǎn)主要是在進(jìn)行人形分割時(shí)ViBe算法遇到的鬼影問題以及對(duì)光照帶來(lái)的陰影誤檢問題,故選取數(shù)據(jù)集中的一個(gè)視頻序列進(jìn)行實(shí)驗(yàn),以用來(lái)測(cè)試本文改進(jìn)算法的魯棒性和準(zhǔn)確性。實(shí)驗(yàn)中,根據(jù)文獻(xiàn)[13],將ViBe算法參數(shù)分別進(jìn)行如下設(shè)置:樣本數(shù)和閾值分別設(shè)為20, 匹配個(gè)數(shù)設(shè)為2。通過實(shí)驗(yàn),本文算法能夠有效解決ViBe算法在初始化背景模型時(shí)容易出現(xiàn)鬼影的問題。圖1為本文算法所得到的初始背景圖。
圖2展示了在“Baseline”視頻作用下的實(shí)驗(yàn)結(jié)果。圖2(a)為利用五幀差分法得到的二值化結(jié)果圖。圖2(b)為將五幀差分法得到的結(jié)果圖進(jìn)行形態(tài)學(xué)處理優(yōu)化后的結(jié)果。圖2(c)和圖2(d)是原始ViBe算法的檢測(cè)結(jié)果,從中我們可以明顯看出,隨著算法的運(yùn)行,ViBe算法所帶來(lái)的鬼影現(xiàn)象逐漸改善。圖2(e)是五幀差分法得到的前景圖像和本文改進(jìn)的ViBe算法得到的前景圖像進(jìn)行“與”運(yùn)算的結(jié)果。圖2(f)是采用Canny邊緣檢測(cè)算子得到的邊緣特征圖像。圖2(g)為文獻(xiàn)[2]中處理的實(shí)驗(yàn)結(jié)果。圖2(h)為文獻(xiàn)[16]得到的檢測(cè)結(jié)果。圖2(i)為本文算法所得到的最終人形分割結(jié)果??梢钥闯?,本文所提出的算法對(duì)解決ViBe算法中出現(xiàn)的鬼影問題和陰影誤檢問題有良好的效果,能夠很好的應(yīng)用于人形分割當(dāng)中,并取得不錯(cuò)的效果。
5? 結(jié)語(yǔ)
本文針對(duì)ViBe算法在進(jìn)行人形分割時(shí)容易出
(a) 五幀差分法第997幀二值化結(jié)果(b) 五幀差分法第997幀優(yōu)化結(jié)果(c) ViBe算法第997幀結(jié)果? ?(d) ViBe算法第1028幀結(jié)果(e) 本文算法“與”運(yùn)算結(jié)果(f) Canny算法邊緣檢測(cè)結(jié)果? ?(g) 文獻(xiàn)[2]第997幀處理結(jié)果(h) 文獻(xiàn)[16]算法第997幀結(jié)果(i) 本文算法結(jié)果現(xiàn)鬼影現(xiàn)象以及容易將光照導(dǎo)致的陰影誤檢為前景目標(biāo)的問題,提出一種改進(jìn)的ViBe算法—VSFC算法。在ViBe算法構(gòu)建背景模型之前,首先采用Surendra算法獲得初始背景,用于初始化背景模型。然后采用五幀差分法和ViBe相結(jié)合的方式提高算法準(zhǔn)確性,并利用邊緣檢測(cè)和小波融合進(jìn)一步的使人形分割更加準(zhǔn)確。在更新策略方面,提出動(dòng)則更新的思想,在進(jìn)行背景模型更新時(shí),只更新運(yùn)動(dòng)著的像素點(diǎn),對(duì)于長(zhǎng)時(shí)間靜止的像素點(diǎn)采取隔時(shí)更新的方式。在仿真實(shí)驗(yàn)中,與其他算法相比,本文算法呈現(xiàn)出不錯(cuò)的效果且具有較強(qiáng)的魯棒性,人形分割更為完整,適應(yīng)性更強(qiáng)。
但是由于多種算法的結(jié)合,使得計(jì)算量大,從而導(dǎo)致運(yùn)行效率不如其他算法,雖然準(zhǔn)確率有所提高,但是實(shí)時(shí)性卻有所降低。故,仍需要繼續(xù)研究復(fù)雜視頻監(jiān)控場(chǎng)景下的人形分割工作如何進(jìn)行,如何才能真正做到高魯棒性、高效率、高準(zhǔn)確性。
參考文獻(xiàn)
[1] Barnich, O, Van Droogenbroeck, M. ViBE: A powerful random technique to estimate the background in video sequences[C]. Acoustics, Speech and Signal Processing, 2009. ICASSP 2009. IEEE International Conference on, 945-948, 2009.
[2] 楊丹, 戴芳. 運(yùn)動(dòng)目標(biāo)檢測(cè)的ViBe算法改進(jìn)[J]. 中國(guó)圖象圖形學(xué)報(bào), 2018, 23(12): 1813-1828.
[3] Qin L, Sheng B, Lin W, et al. GPU-Accelerated Video Background Subtraction Using Gabor Detector[J]. Journal of Visual Communication and Image Representation, 2015, 32: 1-9.
[4] 桂斌. 基于ViBe的運(yùn)動(dòng)目標(biāo)檢測(cè)與陰影消除方法研究[D]. 安徽大學(xué), 2015.
[5] 徐君妍, 袁址赟, 崔宗勇, 曹宗杰. 基于幀間差分的ViBe運(yùn)動(dòng)目標(biāo)檢測(cè)[J]. 科學(xué)技術(shù)與工程, 2017, 17(27): 82-87.
[6] 胡小冉, 孫涵. 一種新的基于ViBe的運(yùn)動(dòng)目標(biāo)檢測(cè)方法[J]. 計(jì)算機(jī)科學(xué), 2014, 41(02): 149-152.
[7] 余燁, 曹明偉, 岳峰. EVibe: 一種改進(jìn)的Vibe運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J]. 儀器儀表學(xué)報(bào), 2014, 35(04): 924-931.
[8] 陳亮. 視頻監(jiān)控中運(yùn)動(dòng)目標(biāo)的檢測(cè)與跟蹤[D]. 中國(guó)計(jì)量學(xué)院, 2015.
[9] 單玉剛, 汪家寶, 郝峰. 基于自適應(yīng)閾值的Surendra背景提取方法研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2017, 27(07): 91-95.
[10] 嚴(yán)紅亮, 王福龍, 劉志煌, 沈士忠. 基于ViBe算法的改進(jìn)背景減去法[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2014, 23(06): 130-134.
[11] 張玉婉. 智能視頻監(jiān)控中的目標(biāo)檢測(cè)算法研究[D]. 西安電子科技大學(xué), 2017.
[12] 舒欣, 李東新, 薛東偉. 五幀差分和邊緣檢測(cè)的運(yùn)動(dòng)目標(biāo)檢測(cè)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2014, 23(01): 124-127.
[13] Gao J, Zhu H. Moving object detection for video surveillance based on improved ViBe[J]. IEEE 2016 Chinese Control and Decision Conference (CCDC). 2016: 6259-6263.
[14] 劉春, 翟志強(qiáng). 改進(jìn)的ViBe運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J]. 傳感器與微系統(tǒng), 2017, 36(01): 123-126.
[15] 杜晶晶. 智能視頻監(jiān)控中運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤算法研究[D]. 成都: 西南交通大學(xué), 2009.
[16] Xian Sun. Target Detection Via Improved Vibe Algorithm[A]. 中國(guó)自動(dòng)化學(xué)會(huì)控制理論專業(yè)委員會(huì)、中國(guó)系統(tǒng)工程學(xué)會(huì). 第35屆中國(guó)控制會(huì)議論文集(C)[C]. 中國(guó)自動(dòng)化學(xué)會(huì)控制理論專業(yè)委員會(huì)、中國(guó)系統(tǒng)工程學(xué)會(huì): 中國(guó)自動(dòng)化學(xué)會(huì)控制理論專業(yè)委員會(huì), 2016: 5.
[17] Yi Wang, Jodoin, P. -M, Porikli, F. et al. . CDnet 2014: An Expanded Change Detection Benchmark Dataset. Computer Vision and Pattern Recognition Workshops (CVPRW), 2014 IEEE Conference on. 2014.
[18] Li Y, Chen W, Jiang R. The Integration Adjacent Frame Difference of Improved ViBe for Foreground Object Detection[C]. International Conference on Wireless Communications. IEEE, 2011.
[19] Jinlan L, Lin W, Ruliang Z, et al. A Method of Fire and Smoke Detection Based on Surendra Background and Gray Bitmap Plane Algorithm[C]. 2016 8th International Conference on Information Technology in Medicine and Education (ITME). IEEE Computer Society, 2016.
[20] Mahoor E, Maghsoumi H, Asemani D. An improved motion detection algorithm using ViBe[C]. International Conference on Computing. IEEE Computer Society, 2015.
[21] Barnich O, Van Droogenbroeck M. ViBe: A Universal Background Subtraction Algorithm for Video Sequences[J]. IEEE Transactions on Image Processing, 2011, 20(6): 1709- 1724.