蔣建國 , 吳 暉, 齊美彬, 張 莉
(1. 合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009;2. 安全關(guān)鍵工業(yè)測控技術(shù)教育部工程研究中心,安徽 合肥 230009)
在智能監(jiān)控系統(tǒng)中,有時(shí)需要攝像機(jī)旋轉(zhuǎn)(主要是俯仰運(yùn)動(dòng)和平掃運(yùn)動(dòng))以增加監(jiān)控的范圍,或者隨著目標(biāo)的移動(dòng)進(jìn)行主動(dòng)跟蹤,因此研究攝像機(jī)旋轉(zhuǎn)情況下的運(yùn)動(dòng)目標(biāo)檢測具有重要意義。通常,人們將攝像機(jī)運(yùn)動(dòng)導(dǎo)致圖像全局運(yùn)動(dòng)的序列稱為動(dòng)態(tài)場景圖像序列,動(dòng)態(tài)場景圖像序列的目標(biāo)檢測問題近年來已成為學(xué)者研究的熱點(diǎn)[1-5]。動(dòng)態(tài)場景下運(yùn)動(dòng)目標(biāo)檢測一般分為兩個(gè)步驟[6]:第1步是運(yùn)動(dòng)補(bǔ)償。其目的在于將攝像機(jī)運(yùn)動(dòng)導(dǎo)致的背景運(yùn)動(dòng)去除。首先計(jì)算全局運(yùn)動(dòng)參數(shù),再使用計(jì)算出的全局運(yùn)動(dòng)參數(shù),計(jì)算出當(dāng)前幀每個(gè)像素的移動(dòng)速度,預(yù)測該像素在下一幀的位置,得到補(bǔ)償圖像;第2步是目標(biāo)檢測。將補(bǔ)償圖像與下一幀或重建的背景圖像做幀差,得到運(yùn)動(dòng)目標(biāo)。其中運(yùn)動(dòng)補(bǔ)償最為關(guān)鍵,常用的算法有3種:第1種是分塊運(yùn)動(dòng)補(bǔ)償(BMC for block motion compensation)[6-7],它將每幀分成若干像素塊,并且假設(shè)塊內(nèi)像素運(yùn)動(dòng)矢量相同。對當(dāng)前幀的某個(gè)塊進(jìn)行預(yù)測下一幀中的位置,預(yù)測的過程只有平移,其中背景塊的運(yùn)動(dòng)矢量即為全局運(yùn)動(dòng)矢量。該方法的缺陷是不適合旋轉(zhuǎn)、縮放或者仿射變換等圖像非平移運(yùn)動(dòng)的情況。第2種是光流法。該方法對每個(gè)像素都計(jì)算運(yùn)動(dòng)矢量,從而得到整幅圖像的運(yùn)動(dòng)場,再對運(yùn)動(dòng)場進(jìn)行聚類分割,直接得到前景和背景[8-10]。光流法適應(yīng)的范圍比較廣,但是它的缺點(diǎn)是運(yùn)算量太大。第3種是特征點(diǎn)匹配的方法,該方法在相鄰幀中分別提取特征點(diǎn),并匹配特征點(diǎn),再利用匹配的特征點(diǎn)對求解全局運(yùn)動(dòng)參數(shù)。
由于特征點(diǎn)匹配的方法不需假設(shè)塊內(nèi)像素運(yùn)動(dòng)一致的條件,擺脫了塊匹配方法只適合平移的限制;也不需要像光流法一樣對每個(gè)像素求運(yùn)動(dòng)矢量,只需要對某些有特征的,穩(wěn)定的點(diǎn)計(jì)算,大大提高了算法速度?;谏鲜鰞牲c(diǎn)考慮,本文便采用這種方法。
SIFT特征點(diǎn)是Lowe在1999年提出[11],2004年完善的特征算子[12],該算子不但具有尺度、仿射、視角、光照不變性,對目標(biāo)的運(yùn)動(dòng)、遮擋、噪聲等因素也有很好的魯棒性。該算子一個(gè)重要的特點(diǎn)是匹配點(diǎn)多而且穩(wěn)定,已被廣泛采用在機(jī)器人定位,三維場景建模等方面。SIFT特征點(diǎn)匹配按照最小歐式距離原則,使用 BBF(Best-Bin-First)方法匹配特征點(diǎn)。這個(gè)過程首先需要建立樹,其次在樹中查找最優(yōu)匹配點(diǎn)。當(dāng)特征點(diǎn)數(shù)目比較多的時(shí)候,這種方式比較耗時(shí),難以滿足實(shí)時(shí)性的要求。因此,本文針對SIFT匹配算法速度上的缺陷,提出了基于運(yùn)動(dòng)預(yù)測的特征點(diǎn)匹配算法,在保持SIFT良好性能的前提下,提高匹配效率,快速檢測出運(yùn)動(dòng)目標(biāo)。
運(yùn)動(dòng)補(bǔ)償?shù)年P(guān)鍵在于求解全局運(yùn)動(dòng)參數(shù),1.1節(jié)對全局運(yùn)動(dòng)建立旋轉(zhuǎn)參數(shù)模型,并介紹了特征點(diǎn)匹配的方法求解運(yùn)動(dòng)參數(shù)的原理;針對SIFT算法檢測效率低的缺陷;1.2節(jié)提出基于運(yùn)動(dòng)預(yù)測的特征點(diǎn)匹配算法;1.3節(jié)介紹特征點(diǎn)更新策略;1.4節(jié)為算法整體描述。算法整體流程如圖1所示。
圖1 算法流程圖
全局運(yùn)動(dòng)模型[13]常用的有:二參數(shù)、四參數(shù)、六參數(shù)仿射模型等。這些模型都屬于線性模型,即像素的運(yùn)動(dòng)矢量大小與像素坐標(biāo)呈線性關(guān)系。當(dāng)攝像機(jī)旋轉(zhuǎn)角度比較小時(shí),這些模型一般能夠很好的描述背景運(yùn)動(dòng),但是當(dāng)攝像機(jī)旋轉(zhuǎn)的角度比較大時(shí),像素運(yùn)動(dòng)矢量與坐標(biāo)之間是非線性的二次型變換的關(guān)系,上述模型不能準(zhǔn)確的描述全局運(yùn)動(dòng),因此作者引入旋轉(zhuǎn)參數(shù)模型[14]。
矩陣A為常數(shù)矩陣,由攝像機(jī)內(nèi)部參數(shù)和t時(shí)刻攝像機(jī)的旋轉(zhuǎn)角速度所決定,與像素坐標(biāo)無關(guān)。若已知t時(shí)刻的旋轉(zhuǎn)參數(shù)矩陣A,那么由式(1),就可以求得圖像的全局運(yùn)動(dòng),從而進(jìn)行運(yùn)動(dòng)補(bǔ)償。實(shí)際應(yīng)用時(shí),攝像機(jī)的瞬時(shí)旋轉(zhuǎn)速度是未知的,而且攝像機(jī)通常都是未被標(biāo)定過的,所以必須通過別的途徑估計(jì)矩陣A。值得一提的是:如果將矩陣中二次項(xiàng)對應(yīng)的參數(shù)設(shè)為零,就可以變換成其他的參數(shù)模型。因此,使用該模型的好處是:不僅能夠準(zhǔn)確的描述攝像機(jī)旋轉(zhuǎn)情況下的圖像全局運(yùn)動(dòng),對于攝像機(jī)平移、縮放的情況同樣適用。
使用特征點(diǎn)匹配方法求解全局運(yùn)動(dòng)參數(shù)的思想就是:在相鄰兩幀中分別搜索特征點(diǎn),再對特征點(diǎn)進(jìn)行匹配,得表示匹配點(diǎn)對的集合,其中 fn=(Xt-1,n, Xt,n)為第n對匹配特征點(diǎn)。由式(1)可以建立方程組,每對特征點(diǎn)可以建立兩個(gè)方程,因此N對特征點(diǎn)可以建立2×N個(gè)方程,而矩陣A只有8個(gè)參數(shù),這是一個(gè)超約束方程組,可以采用最小二乘法求最優(yōu)解。
由于噪聲影響,特征點(diǎn)會(huì)出現(xiàn)少量誤匹配的情況,誤匹配的點(diǎn)也稱為外點(diǎn)。即使外點(diǎn)的數(shù)目很少,也有可能會(huì)導(dǎo)致計(jì)算結(jié)果與真實(shí)值有較大的偏差。因此,采用RANSAC方法[15]來去除外點(diǎn)。該方法通過重復(fù)迭代過程,在集合中尋找到不含外點(diǎn)的最大子集(也稱為最大一致集)。去除外點(diǎn)之后采用最小二乘法求得的參數(shù)矩陣就比較接近真實(shí)值。
考慮到監(jiān)控視頻相鄰幀的時(shí)間間隔是很短的,在幀率為25時(shí),兩幀間只有40ms的間隔,在這樣非常短暫的時(shí)間內(nèi),攝像機(jī)的旋轉(zhuǎn)不會(huì)帶來場景的大幅度變化,相鄰幀間通常只是幾個(gè)像素的移動(dòng)量。(t-1)幀的特征點(diǎn)集實(shí)際上包含了大量t幀對應(yīng)特征點(diǎn)位置的信息,因此,可以充分利用這一信息,進(jìn)行基于運(yùn)動(dòng)預(yù)測的匹配,快速匹配特征點(diǎn)。其思路是:使用上一幀圖像特征點(diǎn)集對當(dāng)前幀特征點(diǎn)的位置進(jìn)行預(yù)測,在預(yù)測位置的一個(gè)小范圍內(nèi)搜索特征點(diǎn),從而得到當(dāng)前幀的特征點(diǎn)集。
匹配過程如下:
該算法的優(yōu)點(diǎn)在于:
(1)減少外點(diǎn)的影響。使用Lowe的樹查找方式時(shí),并沒有考慮到匹配點(diǎn)之間的位置相關(guān)性,兩個(gè)位置相差很大的點(diǎn)可能因?yàn)槠涮卣髅枋鲎拥南嗨菩远l(fā)生誤匹配的情況;而基于預(yù)測的匹配算法實(shí)際上是給匹配點(diǎn)對加上了一個(gè)位置的約束,這樣就避免了某些誤匹配的發(fā)生,保證參數(shù)矩陣的準(zhǔn)確求解;
(2)由于對特征點(diǎn)可能存在的位置進(jìn)行了預(yù)測,減少了搜索范圍;
(3)搜索到的點(diǎn)與它在上一幀中的對應(yīng)形成匹配的特征點(diǎn)對,無需為上一幀的特征點(diǎn)集建立樹,以及在樹中查找最優(yōu)匹配點(diǎn),節(jié)約了匹配時(shí)間。
需要注意的是 N的選取與算法的計(jì)算量直接相關(guān)。N太大的話,搜索范圍增大,計(jì)算量增大,對實(shí)驗(yàn)結(jié)果并無明顯改善;通過對多組動(dòng)態(tài)場景下拍攝的視頻進(jìn)行實(shí)驗(yàn)(包括平移、緩慢旋轉(zhuǎn)和快速旋轉(zhuǎn)),確定N =3時(shí)效果最佳。
由于攝像機(jī)的旋轉(zhuǎn),視場中的場景也在發(fā)生變化,圖像的特征也逐漸改變,如果不及時(shí)更新特征點(diǎn),那么匹配特征點(diǎn)對的數(shù)目不可避免的將減少,影響運(yùn)動(dòng)參數(shù)的求解。因此,當(dāng)某時(shí)刻的匹配特征點(diǎn)數(shù)目減少到Tf時(shí),就更新特征點(diǎn)集,保證下一幀有足夠的匹配點(diǎn)對進(jìn)行參數(shù)求解。Tf的選取非常重要,如果太小,平均匹配點(diǎn)數(shù)下降,最小二乘解不夠準(zhǔn)確;Tf太大則造成不必要的冗余數(shù)據(jù),降低算法效率。
為了驗(yàn)證 Tf對算法性能的影響,用TPR(True Positive Rate)來衡量。TPR為最終檢測出的前景中,屬于真實(shí)目標(biāo)的比率,取值在0到1之間;TPR越接近1,說明檢測的準(zhǔn)確度越好。
圖2反映了Tf對算法性能的影響:圖 2(a)說明隨著Tf的增大,算法速度近似線性的下降。圖2(b)反映了Tf對TPR的影響。Tf< 1 5時(shí),Tf增大,TPR隨之增大;Tf> 1 5時(shí), TPR接近100%,增幅也不明顯。綜合考慮算法速度和準(zhǔn)確性,選擇 Tf= 1 5。
更新特征點(diǎn)最簡單的方式是全圖搜索新的特征點(diǎn),但這樣做會(huì)有很大的缺陷:運(yùn)動(dòng)目標(biāo)即前景往往是特征豐富的,當(dāng)全圖搜索進(jìn)行更新時(shí),將會(huì)有很大一部分更新的特征點(diǎn)是目標(biāo)上的點(diǎn)。但是在計(jì)算全局運(yùn)動(dòng)參數(shù)的時(shí)候,真正起作用的是背景點(diǎn)。因此,更新范圍要盡可能排除目標(biāo)所在的區(qū)域。
圖2 Tf對算法性能的影響
基于殘差圖像可以快速標(biāo)記出前景所在的區(qū)域,標(biāo)記過程如圖3所示。由于直接對殘差圖像處理數(shù)據(jù)量較大,必須先對其下采樣到原圖的1/16,再將下采樣的圖分為4× 4的小塊。當(dāng)某個(gè)塊的前景點(diǎn)數(shù)大于零時(shí),標(biāo)記該塊為前景塊,否則為背景塊。更新過程只在背景塊中進(jìn)行,并且要避免特征點(diǎn)集中在一個(gè)小的區(qū)域。實(shí)驗(yàn)證明當(dāng)特征點(diǎn)在圖像中分布均勻時(shí),運(yùn)動(dòng)補(bǔ)償效果最佳。
圖3 標(biāo)記前景塊示意圖
已知Pt-1為t-1幀的特征點(diǎn)集,At-1為t-1幀的旋轉(zhuǎn)參數(shù)矩陣。第t幀運(yùn)動(dòng)目標(biāo)檢測算法詳細(xì)步驟如下:
步驟 2 由Pt-1和tP建立匹配點(diǎn)對tF。
步驟 3 應(yīng)用 RANSAC算法去除tF中的外點(diǎn),再使用最小二乘法求t幀的旋轉(zhuǎn)參數(shù)矩陣At。
步驟 4 使用式(1)對t-1幀圖像It-1進(jìn)行運(yùn)動(dòng)補(bǔ)償,得到補(bǔ)償圖像。
步驟 5 將第t幀圖像It和補(bǔ)償圖像做幀差處理,得到殘差圖像Iobj。
步驟 6 判斷tP中特征點(diǎn)數(shù)目是否小于Tf,若小于,則更新特征點(diǎn)。
步驟 7 保存Iobj,At和tP。t←t+1,結(jié)束。
為了驗(yàn)證該算法的性能,作者將SIFT算法、塊匹配算法[7]和該算法分別應(yīng)用于三組實(shí)驗(yàn)視頻,并對結(jié)果進(jìn)行對比和分析。實(shí)驗(yàn)平臺(tái)在Core 2 Duo、內(nèi)存1G的PC機(jī)上使用VC6.0進(jìn)行調(diào)試。為了提高檢測效率,我們采用隔幀檢測的方法。
圖4是對一實(shí)拍外景序列的實(shí)驗(yàn)結(jié)果,圖像分辨率為 320×240。圖 4(a)為原序列的第 50和100幀;圖4(b)為塊匹配的方法得到的檢測結(jié)果,可以看到背景中的樹木沒有被完全去除,而且目標(biāo)比較模糊,不能清楚分辨;圖4(c)和圖4(d)中分別為SIFT算法和該算法的結(jié)果,可以看到二者效果基本相同,都可以很好的完整正確的檢測到目標(biāo),背景干擾完全去除,這說明該算法很好的繼承了SIFT算法本身的優(yōu)越性能。
圖4 序列1的實(shí)驗(yàn)結(jié)果
圖5是對圖4中的同一場景增大攝像機(jī)旋轉(zhuǎn)速度的實(shí)驗(yàn)結(jié)果,其目的是考察算法在快速旋轉(zhuǎn)情況下的性能。經(jīng)測定,該攝像機(jī)旋轉(zhuǎn)角速度約為0.5rad/s。圖5(a)為原序列的第25和50幀;圖5(b)中塊匹配的方法不能夠準(zhǔn)確的運(yùn)動(dòng)補(bǔ)償,因此背景的干擾非常嚴(yán)重;圖5(c)和圖5(d)中SIFT算法和本文算法依然能夠很好的檢測出前景目標(biāo)。此組實(shí)驗(yàn)說明在旋轉(zhuǎn)速度比較大,塊匹配方法失效的情況下,本文算法仍能夠穩(wěn)定地檢測出目標(biāo)。
圖5 序列2的實(shí)驗(yàn)結(jié)果
圖6是對MPEG-4標(biāo)準(zhǔn)測試序列coastguard的實(shí)驗(yàn)結(jié)果,圖像分辨率為352×288。該序列的背景運(yùn)動(dòng)屬于攝像機(jī)平移導(dǎo)致的全局運(yùn)動(dòng),從實(shí)驗(yàn)結(jié)果可以看到,3種算法的性能相當(dāng),都可以較好的去除全局運(yùn)動(dòng)的影響。此組實(shí)驗(yàn)說明本文算法不僅能夠處理復(fù)雜的旋轉(zhuǎn)情況,而且對于攝像機(jī)平移的情況同樣適用。
圖6 序列3的實(shí)驗(yàn)結(jié)果
表1是3種算法的處理速度比較。從表中可以看出,本文算法的速度是塊匹配方法的 2倍,是SIFT算法的5倍,在隔幀處理時(shí),滿足實(shí)時(shí)性的要求。而且,本文算法檢測準(zhǔn)確度高,能夠準(zhǔn)確進(jìn)行運(yùn)動(dòng)參數(shù)估計(jì),去除全局運(yùn)動(dòng)的影響。因此,本文提出的特征點(diǎn)匹配與更新算法對于攝像機(jī)旋轉(zhuǎn)運(yùn)動(dòng)下的目標(biāo)檢測比傳統(tǒng)的算法更具有實(shí)用性。
表1 3種算法執(zhí)行時(shí)間比較
本文提出了一種基于運(yùn)動(dòng)預(yù)測的特征點(diǎn)匹配算法以解決運(yùn)動(dòng)攝像機(jī)下的目標(biāo)檢測問題。首先為圖像的全局運(yùn)動(dòng)建立旋轉(zhuǎn)參數(shù)模型,其次通過特征點(diǎn)匹配算法在相鄰幀建立特征點(diǎn)對,并通過最小二乘求解旋轉(zhuǎn)參數(shù),最后基于殘差圖像的特征點(diǎn)更新策略保證了參數(shù)的穩(wěn)定求解。實(shí)驗(yàn)結(jié)果證明本文算法可以實(shí)時(shí)、準(zhǔn)確地檢測出復(fù)雜場景中的運(yùn)動(dòng)目標(biāo)。
[1]Irani M, Anandan P. A unified approach to moving object detection in 2D and 3D scenes [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 6(6): 577-589.
[2]Kang J, Cohen I, Medioni G, et al. Detection and tracking of moving objects from a moving platform in presence of strong parallax [C]//Proceedings of the IEEE International Conference on Computer Vision,Beijing, 2005: 10-17.
[3]Kundu A, Krishna K M, SIVASWAMY J. Moving object detection by multi-view geometric techniques from a single camera mounted robot [C]//IEEE International Conference on Intelligent Robots and Systems, 2009: 4306-4312.
[4]Sorwar G, Murshed M, DOOLEY L. Fast global motion estimation using iterative least-square estimation technique [C]//Proceedings of the 2003 Joint Conference of the Fourth International Conference on Information, Communications and Signal Processing, Singapore, 2003: 282-286.
[5]Rath G B, Makur A. Iterative least squares and compression based estimations for a four-parameter linear global motion model and global motion compensation [J]. IEEE Transactions on Circuits and Systems for Video Technology, 1999, 9(7):1075-1099.
[6]Dufaux F, Konrad J. Efficient, robust and fast global motion estimation for video coding [J]. IEEE Transactions on Image Processing, 2000, 9(3):497-500.
[7]Tao T F, Han C Z, Wu Yanqi. Motion estimation based on an improved block matching technique [J].Chinese Optics Letters, 2006, 14(4): 208-210.
[8]Wang J, Adelson E H. Representing moving images with layers [J]. IEEE Transactions on Image Processing Special Issue: Image Sequence Compression, 1994, 3(5): 625-638.
[9]Forsyth D A, Ponce J. Computer vision: a modern approach [M]. New Jersey: Prentice Hall, 2002:359-368.
[10]Turetken E, Alatan A. Temporally consistent depth ordering via pixel voting for pseudo 3D representation [C]// 3DTV Conference: The True Vision Capture, Transmission and Display of 3D Video, 2009: 1-4.
[11]Lowe D G. Object recognition from local scale invariant features [C]//International Conference on Computer Vision, Corfu, Greece, 1999: 1150-1157.
[12]Lowe D G. Distinctive image features from scale invariant keypoints [J]. International Journal of Computer Vision, 2004, 60(2): 91-110.
[13]Mech R, Wollborn M. A noise robust method for 2D shape estimation of moving objects in video sequences considering a moving camera [J]. Signal Processing, 1998, 66(2): 203-217.
[14]Hartley R, Zisserman A. Multiple view geometry in computer vision [M]. Cambridge: Cambridge University Press, 2003: 153-176.
[15]吳福朝. 計(jì)算機(jī)視覺中的數(shù)學(xué)方法[M]. 北京: 科學(xué)出版社, 2008: 338-343.