裴莉莉,張 赫,楊 波
(1.長(zhǎng)安大學(xué)信息工程學(xué)院,陜西 西安 710064;2.西安翔騰微電子科技有限公司,陜西西安 710068;3.大唐移動(dòng)通信設(shè)備有限公司西安分公司,陜西西安 710061)
智能視頻監(jiān)控技術(shù)是一個(gè)眾多學(xué)科共同作用下的新興研究領(lǐng)域,也是當(dāng)前計(jì)算機(jī)視覺(jué)、圖像處理等方面的研究熱點(diǎn)[1],能夠?yàn)檎块T(mén)、公共區(qū)域等場(chǎng)所進(jìn)行實(shí)時(shí)、自動(dòng)全時(shí)段的監(jiān)控[2]。
智能視頻監(jiān)控系統(tǒng)最早出現(xiàn)于歐美等發(fā)達(dá)國(guó)家[3-4],歐盟程序委員會(huì)設(shè)立ADVISOR 項(xiàng)目,實(shí)現(xiàn)對(duì)機(jī)場(chǎng)、金融機(jī)構(gòu)、地鐵等公共場(chǎng)所的監(jiān)控[5]。我國(guó)中科院自動(dòng)化研究所在城市交通監(jiān)控方面有深入的研究,其開(kāi)發(fā)的VSTAR 系統(tǒng)可以實(shí)現(xiàn)對(duì)行人的實(shí)時(shí)監(jiān)控以及行為檢測(cè)[6]。
在目標(biāo)檢測(cè)方面,文獻(xiàn)[7]提出一種改進(jìn)的ViBe算法,通過(guò)對(duì)背景進(jìn)行填充得到真實(shí)背景圖像,最后對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)。文獻(xiàn)[8]提出一種改進(jìn)的三幀差分算法,該算法對(duì)尺度變化和部分遮擋的目標(biāo)跟蹤魯棒性更優(yōu)。文獻(xiàn)[9]結(jié)合內(nèi)輪廓填充法,對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)區(qū)域起到增強(qiáng)和濾除干擾的作用。
在目標(biāo)跟蹤方面,文獻(xiàn)[10]實(shí)現(xiàn)了以HSV 色彩空間為基礎(chǔ)的Camshift 算法,能夠較準(zhǔn)確地跟蹤視頻中不同速度的車輛。文獻(xiàn)[11]提出一種改進(jìn)的Camshift 跟蹤算法來(lái)獲得目標(biāo)質(zhì)心的位置,并成功應(yīng)用在移動(dòng)機(jī)器人系統(tǒng)中。文獻(xiàn)[12]提出一種結(jié)合Kalman 濾波和LBP 紋理的改進(jìn)Camshift 算法,能夠在顏色相似干擾、目標(biāo)快速運(yùn)動(dòng)等復(fù)雜背景中跟蹤目標(biāo)。
以上各類智能監(jiān)控系統(tǒng)的設(shè)計(jì)與研發(fā)和三幀差分算法與Camshift 算法在目標(biāo)跟蹤中的應(yīng)用為該研究提供了良好的實(shí)現(xiàn)思路。基于此,文中首先對(duì)三幀差分算法進(jìn)行改進(jìn),得到前景檢測(cè)方法;其次針對(duì)目標(biāo)被干擾后出現(xiàn)無(wú)法跟蹤的情況,對(duì)Camshift 算法進(jìn)行改進(jìn),提高了目標(biāo)跟蹤算法的準(zhǔn)確性與檢測(cè)效率;然后將上述兩種算法相結(jié)合,實(shí)現(xiàn)檢測(cè)物體是否被放回原位的功能;最后利用Qt 軟件設(shè)計(jì)上位機(jī)界面,實(shí)現(xiàn)智能目標(biāo)跟蹤與移位還原監(jiān)控系統(tǒng)。
監(jiān)控系統(tǒng)的核心算法主要有3 個(gè)部分,分別是運(yùn)動(dòng)目標(biāo)檢測(cè)算法、運(yùn)動(dòng)目標(biāo)跟蹤算法、移位還原算法。
在該模塊中,將本地視頻或攝像頭采集的序列作為當(dāng)前系統(tǒng)的輸入視頻序列,然后對(duì)三幀差分算法進(jìn)行改進(jìn),實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的檢測(cè),并與GUI 設(shè)計(jì)相結(jié)合。
由于傳統(tǒng)幀間差分算法[13]在前景目標(biāo)提取時(shí),檢測(cè)到的目標(biāo)不完整,其外輪廓常常出現(xiàn)“雙邊”現(xiàn)象。同時(shí)目標(biāo)的運(yùn)動(dòng)速度越快,產(chǎn)生的這種“雙邊”現(xiàn)象就越明顯,還會(huì)伴隨很大的空洞[14]。因此,文中在三幀差分算法的基礎(chǔ)上又作了如下處理:
將三幀差分算法處理得到的三幀連續(xù)圖像進(jìn)行“與”運(yùn)算,并保留其公共部分,消除部分噪聲后進(jìn)一步去除噪點(diǎn)和閃爍像素點(diǎn);之后進(jìn)行中值濾波處理,消除閃爍點(diǎn),提取圖像輪廓,并將此步驟重復(fù)進(jìn)行10 次;最后對(duì)該圖像進(jìn)行腐蝕操作,從而得到運(yùn)動(dòng)目標(biāo)。
三幀差分算法與改進(jìn)的三幀差分算法對(duì)背景復(fù)雜的視頻處理結(jié)果如圖1 所示。可以看出,原始算法只能夠檢測(cè)到運(yùn)動(dòng)目標(biāo)的輪廓信息,目標(biāo)內(nèi)部存在明顯的黑色空洞現(xiàn)象,且伴有一定的噪聲;而改進(jìn)的三幀差分算法可以準(zhǔn)確地檢測(cè)出運(yùn)動(dòng)目標(biāo),并且圖像中的噪聲得到了有效消除。

圖1 改進(jìn)前后三幀差分算法的實(shí)驗(yàn)結(jié)果對(duì)比
當(dāng)背景顏色與目標(biāo)顏色相似或者與目標(biāo)附近有相似的運(yùn)動(dòng)物體時(shí),僅采用Camshift 算法會(huì)導(dǎo)致目標(biāo)跟蹤失敗。而AKAZE 算法不依賴目標(biāo)的顏色特征,通過(guò)視頻序列中的運(yùn)動(dòng)圖像與目標(biāo)模板之間進(jìn)行特征匹配,從而得到運(yùn)動(dòng)目標(biāo)的位置信息。在Camshift 算法中融合AKAZE 算法可以解決背景顏色對(duì)運(yùn)動(dòng)目標(biāo)的干擾。當(dāng)目標(biāo)被嚴(yán)重遮擋時(shí),通過(guò)Kalman 濾波對(duì)跟蹤目標(biāo)下一時(shí)刻在圖像中可能運(yùn)動(dòng)到的位置進(jìn)行預(yù)先判斷[15],再通過(guò)融合后的Camshfit 算法搜索目標(biāo)并調(diào)整搜索框的大小和位置,從而實(shí)現(xiàn)跟蹤目標(biāo)被遮擋后不丟失目標(biāo)。
基于以上分析,改進(jìn)后的算法流程如圖2 所示。

圖2 改進(jìn)后Camshift算法實(shí)現(xiàn)流程
具體步驟如下:
1)讀取圖像序列,將圖像序列由原來(lái)的RGB 色彩空間轉(zhuǎn)換到HSV 色彩空間,提取圖像的H 通道。
2)選取待跟蹤目標(biāo),用選出的目標(biāo)框作為目標(biāo)的初始狀態(tài),計(jì)算并顯示目標(biāo)的顏色直方圖Hobj,計(jì)算出目標(biāo)模板的AKAZE 特征點(diǎn),為后續(xù)的特征匹配做準(zhǔn)備。
3)初始化Kalman 濾波器的參數(shù)。
4)預(yù)測(cè)下一時(shí)刻前景目標(biāo)在場(chǎng)景中可能出現(xiàn)的位置以及得到目標(biāo)框的寬度和高度。
5)計(jì)算場(chǎng)景中被跟蹤的目標(biāo)顏色直方圖Hsce,并結(jié)合步驟2)計(jì)算得到的Hobj,從而得到相似度D(Hobj,Hsce)。以該相似度作為目標(biāo)是否被遮擋的判斷依據(jù)[16]。
6)判斷D(Hobj,Hsce)與Tth大小。當(dāng)D(Hobj,Hsce)>Tth時(shí),表示目標(biāo)被遮擋,此時(shí)將視頻序列中的目標(biāo)子圖與目標(biāo)模板進(jìn)行AKAZE 特征點(diǎn)匹配,并統(tǒng)計(jì)出兩者之間的最優(yōu)匹配數(shù)N。將N與閾值Nth進(jìn)行比較,若N≥Nth,則采用隨機(jī)抽樣一致算法來(lái)確定被跟蹤目標(biāo)在場(chǎng)景中的位置信息以及包圍運(yùn)動(dòng)目標(biāo)的矩形框的寬度和高度。根據(jù)得到的數(shù)據(jù)更新Kalman 濾波算法中的參數(shù)。若N<Nth,則直接更新Kalman 濾波器中的參數(shù)。
當(dāng)D(Hobj,Hsce)≤Tth時(shí),表示目標(biāo)沒(méi)有被遮擋,此時(shí)采用Camshift 算法實(shí)時(shí)跟蹤前景目標(biāo),并將得到的前景目標(biāo)位置信息以及矩形框的大小作為Kalman濾波器的參數(shù),實(shí)時(shí)更新Kalman濾波器參數(shù)。
7)在圖像序列中畫(huà)出矩形運(yùn)動(dòng)目標(biāo)。
8)判斷是否為最后一幀圖像,如果不是最后一幀圖像則跳轉(zhuǎn)到步驟4),如果是則結(jié)束跟蹤。
采用RANSAC算法(Random Sample Consensus)[17]將目標(biāo)模板的圖像特征與視頻序列中的目標(biāo)子圖按單映射進(jìn)行匹配。將目標(biāo)模板圖像4 個(gè)角的映射點(diǎn)顯示在當(dāng)前的圖像中,從而得到運(yùn)動(dòng)目標(biāo)在當(dāng)前視頻序列中的位置,此時(shí)跟蹤丟失后的目標(biāo)將再一次出現(xiàn)在區(qū)域當(dāng)中。
使用OpenCV3.1 計(jì)算機(jī)視覺(jué)算法庫(kù)中的測(cè)試視頻vtest.avi,對(duì)Camshift 算法以及改進(jìn)后的目標(biāo)跟蹤算法進(jìn)行測(cè)試,結(jié)果如圖3 所示。

圖3 有遮擋目標(biāo)跟蹤結(jié)果
從圖3 中可以發(fā)現(xiàn),當(dāng)運(yùn)動(dòng)目標(biāo)被部分遮擋并且在背景中存在干擾時(shí),改進(jìn)后算法可以準(zhǔn)確并持續(xù)性地對(duì)目標(biāo)進(jìn)行跟蹤,而原始算法則會(huì)出現(xiàn)明顯的目標(biāo)誤判。
移位還原技術(shù)首先檢測(cè)項(xiàng)目中是否存在殘留的工程圖像,然后再采集圖像。將采集到的圖像與現(xiàn)有視頻圖像進(jìn)行目標(biāo)移位還原對(duì)比,若繼續(xù)還原目標(biāo)物體則繼續(xù)進(jìn)行檢測(cè),直到目標(biāo)物體不再進(jìn)行還原動(dòng)作后,記錄結(jié)果并保存,流程如圖4 所示[18-19]。

圖4 移位還原流程
監(jiān)控系統(tǒng)的設(shè)計(jì)采用GUI 用戶界面、接口、圖像處理算法,整個(gè)系統(tǒng)由一個(gè)主窗口和多個(gè)對(duì)話框組成。所采用的軟件開(kāi)發(fā)環(huán)境、運(yùn)行環(huán)境及開(kāi)發(fā)語(yǔ)言如表1 所示。

表1 智能系統(tǒng)監(jiān)控系統(tǒng)開(kāi)發(fā)環(huán)境需求
系統(tǒng)在界面設(shè)計(jì)方面主要包括登錄界面和目標(biāo)跟蹤還原等子功能界面。
系統(tǒng)登錄界面分為系統(tǒng)管理員登錄和操作人員登錄,系統(tǒng)管理員有最高權(quán)限并且是唯一的,管理員可以對(duì)其他人員進(jìn)行授權(quán),授權(quán)后的其他人員就可以通過(guò)指定的用戶名和密碼進(jìn)行后續(xù)操作。
運(yùn)動(dòng)目標(biāo)跟蹤界面主要由3 部分組成:圖像顯示區(qū)、控制區(qū)和參數(shù)顯示區(qū)。
移位還原界面主要包含3 部分:位于左上角多攝像頭間的切換區(qū)域、位于左側(cè)的工具箱和圖像顯示區(qū)。
目標(biāo)跟蹤模塊首先啟動(dòng)攝像頭或打開(kāi)視頻文件,然后選擇目標(biāo),選出待跟蹤的目標(biāo)。此時(shí)算法中目標(biāo)模板被初始化,接著開(kāi)始跟蹤目標(biāo)。其中算法計(jì)算得到特征點(diǎn)匹配對(duì)數(shù)為10,巴氏距離為0.348,圖5 為目標(biāo)跟蹤結(jié)果。

圖5 目標(biāo)跟蹤的結(jié)果
在啟動(dòng)系統(tǒng)后,進(jìn)入移位還原系統(tǒng)。從攝像頭中采集一幀圖像并將其顯示在圖像采集區(qū)。然后移走目標(biāo)物體,在攝像頭顯示區(qū)域顯示物體的輪廓信息。
當(dāng)需要對(duì)物體進(jìn)行還原時(shí),只需將目標(biāo)物體逐漸向原位置移動(dòng),右側(cè)圖像采集區(qū)的圖像可以幫助對(duì)目標(biāo)物體進(jìn)行快速定位。在目標(biāo)物體逐漸被還原的過(guò)程中,已被完全還原的部分外部輪廓會(huì)消失,如圖6 所示,從“驗(yàn)證還原結(jié)果”處可以看到,目標(biāo)物體已被大部分還原,并且在“圖像還原程度”區(qū),定量地顯示物體被還原99.83%。

圖6 目標(biāo)物體臨近還原
當(dāng)移動(dòng)目標(biāo)物體與初始輪廓完全融合時(shí),目標(biāo)被完全還原,如圖7 所示。從圖中可以得到,像素值的對(duì)比為0,目標(biāo)物體被100%還原。為了進(jìn)一步檢驗(yàn)?zāi)繕?biāo)物體的還原程度,采用AKAZE 算法對(duì)目標(biāo)物體的特征點(diǎn)進(jìn)行檢測(cè),并對(duì)前后兩張圖像的特征點(diǎn)進(jìn)行匹配,結(jié)果顯示兩幅圖特征點(diǎn)100%匹配。

圖7 目標(biāo)物體完全被還原
針對(duì)復(fù)雜場(chǎng)景下目標(biāo)跟蹤和移位還原的問(wèn)題,設(shè)計(jì)了一種智能監(jiān)控系統(tǒng)。首先,對(duì)三幀差分檢測(cè)算法和Camshift 目標(biāo)跟蹤算法進(jìn)行改進(jìn),通過(guò)AKAZE特征匹配算法獲得當(dāng)前圖像序列中跟蹤目標(biāo)的位置和大小。當(dāng)目標(biāo)失去跟蹤能力時(shí),能夠重新定位移動(dòng)目標(biāo)。當(dāng)運(yùn)動(dòng)目標(biāo)被完全遮擋時(shí),Kalman 濾波算法可以實(shí)現(xiàn)對(duì)前景目標(biāo)位置的預(yù)測(cè),從而確保目標(biāo)的定位。其次,實(shí)現(xiàn)了目標(biāo)的移位還原功能。之后轉(zhuǎn)換圖像格式,基于Qt 語(yǔ)言和OpenCV 完成軟件界面設(shè)計(jì)。最后,通過(guò)實(shí)際復(fù)雜與有遮擋場(chǎng)景中運(yùn)動(dòng)目標(biāo)的測(cè)試,可視化地展示了算法在監(jiān)控系統(tǒng)的實(shí)際運(yùn)行效果。
良好的測(cè)試效果表明,設(shè)計(jì)的監(jiān)控系統(tǒng)可以很好地用于復(fù)雜背景下的目標(biāo)檢測(cè)與跟蹤,也可以用于刑偵案件中的目標(biāo)移位還原,對(duì)保障人民生命財(cái)產(chǎn)安全具有積極意義。