秦潤澤,聶倩倩
(山西農(nóng)業(yè)大學,山西 太谷 030800)
目標跟蹤是計算機視覺的研究熱點,跟蹤過程中存在遮擋、光照變化、變形等問題,其影響跟蹤效果。王澤楷[1]采用Camshaft與kalman相結(jié)合,加入最優(yōu)閾值法解決跟蹤出現(xiàn)的錯誤識別問題;劉超[2]引入背景減法與Camshift相結(jié)合策略,及非線性核密度估計解決光照變化、陰影等問題。初春霞[3]選取顏色和紋理相融合的直方圖概率分布,適應遮擋等問題,引入權(quán)值將目標模板與檢測模板特征進行處理,克服依靠目標模型的不足。上述算法雖然在一定程度上解決了遮擋、光照、重疊等問題,但運行過程中還是會出現(xiàn)跟蹤錯誤,模板更新不及時等問題。
本文提出了改進Camshift算法,實現(xiàn)及時更新目標模板。采用該算法與人臉檢測算法相結(jié)合實現(xiàn)人臉跟蹤識別。
人臉檢測算法多關(guān)注檢測精度,在視頻中檢測很難達到實時的要求。Camshift算法能達到實時跟蹤的效果。本系統(tǒng)采用基于CamShift改進的人臉跟蹤算法,通過混合人臉輪廓特征與膚色特征提高系統(tǒng)的魯棒性。
整個系統(tǒng)由三大模塊組成:人臉檢測、人臉識別和人臉跟蹤。
人臉檢測模塊采用Haar分類器的Adaboost算法。該算法處理圖像速度較快,通過迭代快速地構(gòu)建出多個弱分類器并集合成強分類器,大大降低分類器檢測的錯誤率,提高檢測準確率。
人臉識別模塊采用Eigenfaces算法。該算法能夠?qū)斎氲挠柧殬颖炯治霾⒏鶕?jù)計算特征值構(gòu)建“特征臉”,將待識別圖像映射到特征值空間,通過閾值法得出待識別圖像最接近的樣本特征,返回特征臉對應的標簽。
表1 特征值
在識別出人臉后需要顯示人臉對應的身份信息,因此系統(tǒng)建立了后臺sqlite數(shù)據(jù)庫,存入人臉標簽與人臉身份信息,通過人臉識別模塊返回的標簽值查詢數(shù)據(jù)庫中對應的身份信息。sqlite是一個輕量級的數(shù)據(jù)庫,占用的內(nèi)存空間小,使得程序的運行速度快,適用于本系統(tǒng)的多平臺移植。
圖1 特征臉(1)
圖2 特征臉(2)
CamShift即Continuously Adaptive Mean-SHIFT,是對MeanShift算法的一種改進。MeanShift算法僅針對單張圖像的顏色概率分布圖迭代尋優(yōu),得到概率密度最大的地方以獲取目標位置。而改進后的CamShift算法是MeanShift算法在連續(xù)圖像序列上的一個應用,其將上一幀MeanShift算法的結(jié)果(搜索窗口的大小和位置)作為下一幀MeanShift算法的輸入。如此迭代,便能很好地實現(xiàn)對目標物體的跟蹤。
MeanShift算法的實現(xiàn)過程為:
1) 設置搜索窗口,即所要跟蹤的感興趣區(qū)域,選定區(qū)域后使用ROI(region of interest)函數(shù)指定圖像分析的重點。
2) 將目標區(qū)域圖像的顏色空間由RGB顏色空間轉(zhuǎn)化為HSV顏色空間。統(tǒng)計搜索框的H通道值,后對整幅圖像二值化處理。此時圖像轉(zhuǎn)化為HSV圖像顯示出目標人臉與背景分割的效果。
3) 使用calcBackProject函數(shù)計算搜索窗口的顏色分布概率,即目標人臉圖像矩陣的反向投影。
4) 計算出目標圖像信息后進行迭代,首先計算搜索窗口的零階矩,再計算一階矩,迭代計算直至計算出搜索窗口的質(zhì)心,將搜索窗口的中心移動到質(zhì)心,即可完成一次跟蹤。否則重復計算直至中心到質(zhì)心距離小于閾值或循環(huán)次數(shù)達到設定的最大值。在函數(shù)中ITER為完成迭代最大次數(shù),達到后停止算法。EPS為算法精度double epsilon,本次實驗環(huán)境下當最大迭代次數(shù)為10,精度為0.8時有較好的效果。
(1)
其中,M00為零階矩,M10、M01為一階矩。
5) CamShift算法進行上述循環(huán),搜索窗口使用此次迭代計算出的新搜索窗口。
傳統(tǒng)的CamShift算法能夠有效解決目標的變形,多維的問題。因為該算法計算了顏色直方圖,出現(xiàn)與目標顏色相近區(qū)域會誤識別,論文在CamShift算法加入了邊緣檢測,很好地實現(xiàn)對人臉區(qū)域檢測跟蹤。
直方圖均衡化利用累計分布函數(shù)變換將直方圖從集中灰度分布映射成均勻灰度分布。具體步驟為:
1) 使用自適應中值濾波去除圖像噪聲。對圖像遍歷時若Zmin 2) 對檢測物體進行輪廓檢測,采用satoshi suzuki的算法。對數(shù)字圖像進行拓撲分析,確定圖像的邊緣信息,由于邊緣與目標圖像有相對應的關(guān)系,可以很好地識別。算法使用時首先對圖像進行形態(tài)學操作,去除圖像不連貫的區(qū)域。計算出目標圖像上所有目標外輪廓的點序列與邊緣的拓撲結(jié)構(gòu)并存儲在vector中,使用canny算子提取邊緣后的二值化圖像。 人臉跟蹤識別系統(tǒng)的具體步驟為: 1) 輸入視頻流,視頻流幀率在100左右,提取視頻流中的一幀圖像。 2) Haar分類器人臉檢測。檢測出人臉區(qū)域,設置人臉搜索框。 圖3 人臉檢測畫面 3) 保存圖片作為訓練樣本,并信息輸入系統(tǒng)。采集樣本間隔為5秒,像素為120,保存后圖像自動歸一化為92*112大小并轉(zhuǎn)化為灰度圖,方便圖像后續(xù)特征值的訓練。在保存夠十張圖片后自動存入數(shù)據(jù)庫。此時訓練集中圖片標簽為1,在數(shù)據(jù)庫中,標簽id對應位置存儲字符為身份信息。 圖4 輸入字符信息 圖5 前臺界面顯示存儲完畢 圖6 訓練樣本保存在本地目錄,at.txt為存儲位置文件 列名含義Id標識人的標簽,具有唯一性Name從前臺界面文本框中輸入的人物身份信息 4) 人臉識別階段將自動與數(shù)據(jù)庫人臉比對,得出信息并顯示。 圖7 人臉識別功能 5) 在完成人臉識別算法后,攝像頭顏色空間轉(zhuǎn)化為HSV空間投影并計算出反向投影圖。根據(jù)反向投影圖和搜索范圍框進行迭代,搜索框中心向重心移動即人臉框偏向反向投影圖概率大的地方。之后系統(tǒng)在下一次設置搜索框時進行邊緣檢測,提取出人臉邊緣作為之后的搜索框。人臉跟蹤不再消耗大量系統(tǒng)CPU資源進行復雜運算,只進行步驟5)持續(xù)跟蹤。 論文綜合了人臉識別準確識別和跟蹤算法的實時性等優(yōu)點提出了改進CamShift算法。采用人臉輪廓特征與膚色特征提高系統(tǒng)人臉識別的魯棒性;采用haar特征的AdaBoost算法檢測面部,Eigenfaces算法實現(xiàn)人臉識別;視頻序列中,識別的人臉作為跟蹤算法的輸入并實時更新;CamShift算法可以實時地跟蹤人臉。實驗顯示,改進算法提高算法檢測精度及可以達到實時跟蹤的效果。 [1] 王澤楷,吳黎明,蔡文,等.基于Camshift改進算法的視頻目標跟蹤方法[J].自動化與信息工程,2014,35(1):27-31. [2] 劉超,惠晶.基于改進CAMShift的運動目標跟蹤算法[J].計算機工程與應用,2014,50(11):149-153,217. [3] 初紅霞,謝忠玉,王科俊.一種結(jié)合顏色紋理直方圖的改進型Camshift目標跟蹤算法[J].西安交通大學學報,2018,52(3):145-152. [4] 譚艷,王宇俊.一種結(jié)合背景差分的改進CamShift目標跟蹤方法[J].西南師范大學學報(自然科學版),2016,41(9):120-125. [5] 楊杰,穆平安,戴曙光.一種改進Camshift算法的研究[J].計算機應用與軟件,2014,31(2):167-170. [6] 劉明,趙孝磊.一種改進的Camshift目標跟蹤算法[J].南京理工大學學報,2013,37(5):755-760.4 系統(tǒng)流程
5 實驗與結(jié)論