郭泓邑,張紅民,李萍萍
重慶理工大學 電氣與電子工程學院,重慶 400054
隨著機器人技術、監控系統和無人駕駛的廣泛應用,將多個同步視頻流拼接成大場景視頻圖像的技術變得越來越重要[1]。與圖像拼接技術不同,視頻拼接需要更強的實時處理能力,同時還必須考慮移動前景引發的一些問題。
目前,視頻拼接的方法主要分為兩類:第一類是基于投影變形的方法[2-3],該方法通常使用SIFT或SURF[4-5]來提取圖像中的特征,然后由相應特征點計算的全局2D 投影變換來對齊輸入圖像,這些方法可以保留全局圖像結構,但是不能處理視差。最近的方法試圖通過應用局部對齊來解決視差問題,Chen等人[6]提出了具有全局相似性的自然圖像拼接方法,該方法使圖像網格化,并計算每個網格的單應性,然后在目標函數中添加全局相似性約束每個網格的變形,從而獲得更好的效果,這種方法可以處理視差但不能消除動態圖像拼接中的偽影;楊毅等人[7]提出了融合圖像語義的動態視頻拼接方法,該方法用兩個局部單應性矩陣擬合,并引入圖像的語義分割,但算法實時性不高。第二類是基于縫合線的方法[8-9],這類方法通過計算視頻圖像的重疊區域中的最佳縫合線來縫合全景視頻,Zhang 等人[10]將內容保護變形和縫驅動方法相結合來拼接圖像,大幅提高了大視差場景的拼接性能,但該方法難以滿足實時處理要求;Li 等人[11]提出了雙縫選擇方案搜索兩個原始圖像對應的縫合線以保持幀間的一致性,但該方法處理存在大量相似結構的場景時會出現明顯視差偽影;Liu 等人[12]采用前景檢測更新每一幀的縫合線,并利用高斯濾波器優化縫合線序列以消除視頻抖動,但相對增加了計算成本。
總的來說,之前的視頻拼接工作仍然存在著視差偽影不易處理的問題,故本文提出一種視差偽影最小化的在線視頻拼接方案。其核心思想是使用基于動態規劃思想的最佳縫合線搜索方法找到非移動前景區域的最佳縫合線,對重疊區域中的每個像素定義有關前景區域、灰度差、邊緣結構和顏色差的能量項;同時為了降低計算復雜度,提出了縫合線更新方案,僅針對穿過移動物體的縫合線的視頻幀重新計算縫合線;此外為限制由移動物體引起的重影效應并減少拼接視頻顏色的不連續,采用自適應融合算法對視頻序列圖像進行縫合。
最佳縫合線搜索方法也稱為切縫方法[13],該方法是為了在對齊圖像的重疊區域中找到一條接縫以連接兩幅圖像。本文在使用能量函數最小化的一般縫合線搜索方法的基礎上采用以下四個能量成本項:前景區域項、灰度差異項、邊緣項和顏色差異項。
(1)前景區域項
本文通過使用視覺背景提取VIBE[14]檢測包含移動物體的區域,如行人、車輛等,將這些區域稱為前景區域。M和R分別表示待拼接圖和參考圖,待拼接圖像和參考圖像的前景檢測結果分別用FGM和FGR表示,其前景區域的值為1,背景區域的值為0。前景區域項定義為:

(2)灰度差異項
在輸入圖像經過圖像配準之后,得到的圖像通常可能未對齊。灰度差異項是為了限制縫合線穿過未對齊區域,計算圖像間的像素灰度值的絕對差值以確定像素是否屬于良好對齊的區域,較高的差值表示相應的像素位置屬于未對齊區域。因此,為了使縫合線不通過未對齊區域,灰度差異項定義為:

式中,I(x,y) 指重疊區域中(x,y) 處的像素灰度值,max(?)為能量項中分子的最大值。
(3)邊緣項
由于存在視差,同一物體的大小和形狀在不同視圖中是不同的,當縫合線穿過物體時,尺寸和形狀的差異導致物體未對齊,邊緣項旨在防止縫合線穿過具有明顯邊界的結構和場景不一致的元素,邊緣項定義為:

式中,GS(x,y)為重疊區域的平滑度,GD(x,y)為兩圖像的梯度差異,α根據實驗結果設定為0.3,?I(x,y)為重疊區域中(x,y)處的梯度值,本文利用Canny 算子來檢測物體的邊緣,檢測結果如圖1所示,圖1(a)為原圖,圖1(b)和圖1(c)分別為前景檢測和邊緣檢測結果。

圖1 前景和邊緣檢測結果
(4)顏色差異項
為了使拼接圖像更符合視覺感知,縫合線應穿過色差盡可能小的區域,顏色差異項等于像素點(x,y)附近不同列和不同通道的色彩之和,即:

式中,Ω={r,g,b} ,Ψ=[x-10,x+10] 。
一旦計算出上述四個能量項,就能得到最終的能量函數,如公式(7)所示:

其中,w1,w2,w3和w4表示每個能量項的權重,根據實驗權重分別設為0.3,0.2,0.3,0.2。上述能量函數最小化問題由動態規劃方法求解得到最佳縫合線。其具體步驟如下:
(1)將第一行每個像素的能量值作為縫合線的初始能量值。
(2)從第二行開始比較當前像素點正對的上一行中3個相鄰點(左上、正上和右上方)的縫合線能量值,其中最小的縫合線能量值加上當前像素的能量值就是縫合線經過當前像素的最低能量值:

式中,C(x,y)表示接縫經過當前像素的最低能量值,E(x,y)表示當前像素的能量值,同時記錄對應的上一行像素p。
(3)重復步驟(2),直到當前像素到圖像中最后一行像素,找到縫合線能量最小值,點p所經過的路徑即為最佳縫合線。
對于存在移動前景的視頻,如果初始縫合線是固定的,后續每幀按照先前的縫合線進行縫合將導致圖像信息的丟失和偽影的出現,而逐幀進行縫合線搜索則難以滿足實時性要求。本文通過使用VIBE 檢測移動物體,并將前一幀的縫合線指定為模板,以縫合線上的每個像素為中心,以寬度為d水平拉伸縫合線的每個像素作為物體感測區,d設置為50。當移動物體進入該區域時,則重新計算最佳縫合線。圖2 為一視頻幀是否進行縫合線更新的拼接效果對比圖,可以看出未進行縫合線更新的拼接圖出現了明顯的視差偽影。

圖2 拼接效果對比
傳統的視頻拼接方法一般使用加權平均融合算法[15]對縫合線附近固定寬度范圍的圖像進行融合,但由于縫合線處的色差不盡相同,該算法偶爾會產生顏色失真。為了使拼接效果更加符合人的視覺感知,本文引入HSI 空間的色彩飽和度S 作為色彩強度值,通過色差自適應地調整算法的融合區域,可以減輕顏色失真。該算法的具體步驟如下:
(1)將圖像從RGB 空間轉換到HIS 空間,計算其S分量。
(2)計算縫合線的融合寬度。假設( )i,j為縫合線上某像素點的坐標,L為縫合線的融合寬度,計算公式如下:

式中,b表示初始值為10的融合寬度,λ為50的色差權重,S(i,j)為點( )i,j的色彩飽和度分量值。
(3)融合兩幅圖像。確定縫合線上每個像素的融合寬度后,對融合區域內的像素所對應的兩圖像進行融合拼接,融合公式為:

式中,‖ ? ‖表示用于每個像素{r,g,b} 三通道灰度值的范數函數,(xi,y)表示縫合線上的像素。
為了驗證本文算法的效果,進行了實驗驗證。硬件平臺:Intel?CoreTMi7-8750H@2.20 GHz CPU,內存為16 GB;軟件平臺:Visual Studio 2017+OpenCV 3.0。實驗中,本文首先使用SIFT從輸入的圖像中檢測特征點,然后使用隨機抽樣一致算法(RANSAC)找到最佳匹配點,計算單應性完成圖像預對齊。
為驗證本文提出方法的效果,將本文方法與其他成熟的方法和拼接工具進行比較,如全景圖像合成工具AutoStitch[16]、逼近投影變換圖像拼接方法APAP[17]和形狀保持半投影變換方法SPHP[18]。使用SPHP 提供的圖像數據進行仿真實驗,實驗結果如圖3所示。

圖3 靜態圖像拼接結果

圖4 視頻拼接結果
圖3(a)為輸入圖像,圖3(b)~(d)的左圖為地面部分局部放大圖,右圖為移動前景區域放大圖,中圖為拼接效果圖。AutoStitch算法使用全局單應性和線性融合算法來拼接圖像,當輸入圖像視差較大和存在移動前景時,該算法在重疊區域內無法完全對齊,如圖3(b)所示,紅色框內的行道存在明顯的錯位。APAP和SPHP算法使圖像網格化,然后通過全局相似變換矯正圖像,該算法在重疊區域內也不能完全對齊,并且有明顯偽影現象,如圖3(c)、圖3(d)所示,紅色框內移動前景區域存在明顯的偽影并且地面的縫隙出現了重影和彎曲。圖3(e)是本文拼接結果,本文方法可以盡可能地避免穿過對象,進行自適應融合后,輸入圖像的質量得到很好的保留。相比之下,本文方法的拼接結果在視覺上比其他三種方法更好。
為了證明視頻拼接的有效性,本文在視頻拼接中與AutoStitch、APAP 和 SPHP 進行了比較。APAP 和 SPHP都主要用于圖像拼接,因此本文將比較方法應用于視頻各個幀以進行公平比較,實驗結果如圖4所示。視頻數據集由具有兩個不同視圖的兩個固定攝像機同步采集,這里,選擇四個視頻幀并分別標記為t1、t2 和t3、t4,它們是相同時間間隔內的連續視頻幀,圖中右上角為綠色方框內局部路面放大圖。從圖4(a)和(b)中可以看出AutoStitch 和APAP 的結果存在錯位問題,例如由綠色方框所指示的道路隔離線出現了扭曲、錯位和鋸齒的情況。如圖4(c)所示,SPHP 雖然能較好地對齊圖像但還是存在模糊、重影問題,降低了圖像的視覺質量。而本文方法的結果能夠無縫地拼接視頻幀并保持視頻的原始質量(如圖4(d)所示)。圖5 顯示了本文方法的縫合線更新過程,從圖5(a)~(c)可以看出,當上一幀的縫合線穿過移動前景時,縫合線進行了更新,而重疊區域中沒有移動物體時則縫合線不更新(如圖5(c)、(d)所示)。相比其他三種方法,本文方法可以有效避免由移動物體引起的偽影和錯位問題。

圖5 縫合線更新過程
為了評估所提方法的運算速度,本文將上述四個視頻幀作為輸入并測試不同方法的時間消耗,所有測試的算法都用C++實現,并利用CUDA并行編程對本文方法進行加速優化。所消耗時間見表1,相比APAP和SPHP方法,本文方法更能滿足實時要求。

表1 不同方法耗時對比 ms
針對視頻拼接中移動前景易產生視差偽影的情況,提出了一種視差偽影最小化的視頻拼接方法。本文結合最佳縫合線搜索和縫合線搜索方法對輸入視頻圖像進行拼接,從而達到視差偽影的最小化,并且采用自適應融合算法,減輕拼接圖像的色彩失真,提高視頻拼接質量。實驗證明,該方法不僅可以在重疊區域內有效抑制視覺偽影,還能實現實時處理。但本文方法也存在一定的不足,在移動前景目標移動緩慢的情況下,前幾幀圖像有可能前景檢測錯誤導致拼接效果較差,在未來的工作中將進一步研究并解決以上問題。