齊 紅,任洪娥,田少卿,胡 鴻
(1.東北林業(yè)大學(xué)信息與計(jì)算機(jī)工程學(xué)院,黑龍江 哈爾濱 150040 2.國(guó)家林業(yè)局調(diào)查規(guī)劃設(shè)計(jì)院,北京 100714)
穩(wěn)像技術(shù)從早期的機(jī)械穩(wěn)像到光學(xué)穩(wěn)像,再到電子穩(wěn)像,是一個(gè)漫長(zhǎng)的發(fā)展過(guò)程。隨著計(jì)算機(jī)軟硬件的飛速發(fā)展,電子穩(wěn)像技術(shù)逐漸的取代了機(jī)械穩(wěn)像和光學(xué)穩(wěn)像成為目前運(yùn)用最廣泛的穩(wěn)像技術(shù)[1]。而在電子穩(wěn)像技術(shù)的發(fā)展過(guò)程中又根據(jù)算法的不同分為多種穩(wěn)像法,主要包括:代表點(diǎn)匹配算法(RPM),投影算法(PRA),位平面匹配算法(BPM),特征量跟蹤算法(FTA)[2],代表點(diǎn)比較算法(BERP),塊匹配算法(BMA),邊沿檢測(cè)匹配算法(EDA)[3-4],頻域估計(jì)算法(FDE)和光流算法(OF)等[5-7]。其中,灰度投影算法由于其運(yùn)算速度快[8-9]、性能穩(wěn)定而被廣泛應(yīng)用。而灰度投影算法在處理存在運(yùn)動(dòng)物體的圖像時(shí),會(huì)產(chǎn)生不盡如人意的結(jié)果——偏移量跳變,這種跳變的表現(xiàn)是偏移量突然大幅度增加或減少。本文提出了一種對(duì)灰度投影改進(jìn)的方法,可以有效的消除灰度投影算法在處理有運(yùn)動(dòng)物體存在的圖像時(shí)所產(chǎn)生的錯(cuò)誤運(yùn)動(dòng)估計(jì)現(xiàn)象。同時(shí)設(shè)計(jì)了一套針對(duì)圖像序列是否需要穩(wěn)像,以及穩(wěn)像后是否達(dá)到穩(wěn)像效果的檢驗(yàn)策略,這樣可以達(dá)到電子穩(wěn)像系統(tǒng)自動(dòng)檢測(cè)并決定何時(shí)對(duì)圖像進(jìn)行穩(wěn)像處理的效果。
電子穩(wěn)像算法是通過(guò)電子設(shè)備采集圖像序列,同時(shí)運(yùn)用數(shù)字圖像處理的方法直接處理所得圖像序列,確定圖像偏移量并進(jìn)行相應(yīng)補(bǔ)償來(lái)達(dá)到圖像穩(wěn)定的一種方法,如圖1所示為電子穩(wěn)像處理過(guò)程。
圖1 電子穩(wěn)像處理過(guò)程
運(yùn)用灰度投影算法主要包括4個(gè)步驟:
1)先將采集來(lái)的圖像轉(zhuǎn)化成灰度圖。
2)進(jìn)行灰度投影運(yùn)算,即將圖像的每一行或列的灰度值相加,投影公式如下:
(1)
上式中row(i)是第i行的投影值,column(j)是圖像第j列的投影值,pic(i,j)是圖像點(diǎn)(i,j)處的灰度值。
3)進(jìn)行相關(guān)運(yùn)算,得到抖動(dòng)偏移量,列相關(guān)運(yùn)算公式如下:
1≤w≤2M+1
(2)
其中C(w)是相關(guān)運(yùn)算值,M是檢測(cè)圖像抖動(dòng)的范圍。Wmin是C(w)最小時(shí)W的值,可得圖像在縱向上的位移量motionc。行相關(guān)運(yùn)算亦如此。
motionc=M+1-Wmin
(3)
4)將發(fā)生抖動(dòng)的圖像反向移動(dòng)motionr,motionc后得到的圖像為穩(wěn)定圖像。
由設(shè)備獲取視頻圖像時(shí),難免有運(yùn)動(dòng)物體出現(xiàn)在圖像中,因此可能導(dǎo)致兩種情況:
1)圖像沒有發(fā)生抖動(dòng),而灰度投影算法可能會(huì)誤判為圖像發(fā)生抖動(dòng)而對(duì)圖像進(jìn)行處理。
2)圖像正好發(fā)生抖動(dòng),而物體的運(yùn)動(dòng)會(huì)對(duì)灰度投影算法造成一定的影響,出現(xiàn)錯(cuò)誤穩(wěn)像。
如何使運(yùn)動(dòng)物體不影響到算法是解決問題的關(guān)鍵。
在視頻捕獲過(guò)程中,運(yùn)動(dòng)物體穿越拍攝區(qū)域時(shí)其走向是不確定的,物體或是橫向運(yùn)動(dòng),或是縱向運(yùn)動(dòng),還有可能是斜向運(yùn)動(dòng)。而斜向運(yùn)動(dòng)在連續(xù)單幅圖像中可以被看做是橫向運(yùn)動(dòng)和縱向運(yùn)動(dòng)的組合,因此總的來(lái)說(shuō)可以把物體運(yùn)動(dòng)方向分為:橫向與縱向。下面以橫向?yàn)槔f(shuō)明(后面沒有特殊說(shuō)明,均為橫向),縱向亦然。
1)情況一:未發(fā)生抖動(dòng)的運(yùn)動(dòng)物體檢測(cè)方法。
在物體開始出現(xiàn)在圖像中的幾幀圖像中,讀取連續(xù)兩幀圖像,一幀為參考圖像A,另一幀為待檢測(cè)圖像B。將A ,B兩圖分別做灰度投影,然后將兩圖像的投影值相減,得到投影差值[10-12]。下列為行的相關(guān)算式:
rowsub(i)=|rowA(i)-rowB(i)|
(4)
(5)
其中rowsub(i)是行投影差值,Rsum是行投影差值的平均值。用投影差值減去平均值后取大于零的部分,行這部分的個(gè)數(shù)多于列的相對(duì)應(yīng)的個(gè)數(shù),說(shuō)明物體是做橫向運(yùn)動(dòng)的;反之,為縱向運(yùn)動(dòng)。因?yàn)橐话阄矬w進(jìn)入圖像的一剎那,必然有一邊的變化是寬的而另一邊是窄的。同時(shí)根據(jù)大于零的灰度變化區(qū)域可以估計(jì)出物體的大概運(yùn)動(dòng)范圍。通過(guò)對(duì)連續(xù)圖像的運(yùn)動(dòng)范圍值的記錄,取其平均值可以得到比較準(zhǔn)確的物體運(yùn)動(dòng)范圍,如圖2可知物體運(yùn)動(dòng)范圍大概在(110,360)之間。
圖2 無(wú)抖動(dòng)時(shí)物體運(yùn)動(dòng)的區(qū)域與投影差值
2)情況二:發(fā)生抖動(dòng)的運(yùn)動(dòng)物體檢測(cè)方法。
情況二與情況一基本一致,只是情況二讀取的圖像B是穩(wěn)像后的圖像,如圖3所示。這里說(shuō)明一下,在運(yùn)動(dòng)物體進(jìn)入圖像的初期,由于其灰度變化面積較小而不影響灰度投影算法,這一說(shuō)法在隨后的實(shí)驗(yàn)驗(yàn)證中有詳細(xì)證明。
圖3 抖動(dòng)時(shí)物體運(yùn)動(dòng)區(qū)域與投影差值