馬婷婷,嚴華
(四川大學電子信息學院,成都610065)
隨著科學技術的不斷發(fā)展,各種顯示設備諸如手機、平板、電腦等層出不窮,且不同設備的屏幕尺寸和寬高比例也各式各樣。但是一段視頻的尺寸通常是固定的,將同一段視頻顯示在不同的設備時,為了保持視頻內(nèi)容的完整性和可讀性,需要有效調(diào)整視頻的寬高比例,這種技術稱為視頻重定向技術。
在改變視頻數(shù)據(jù)寬高比和分辨率,以適應目標顯示設備的前提下,保持盡可能多的重要內(nèi)容和避免可見偽影是視頻重定向的目的。視頻重定向處理的難點在于如何快速生成同時保持時間連續(xù)性和空間圖像形狀的結(jié)果視頻。傳統(tǒng)的方法有裁剪、均勻縮放和邊緣填充三種方法。這三種傳統(tǒng)方法雖然能高效實現(xiàn)視頻重定向,但都沒有基于視頻內(nèi)容做出考量,影響了視頻內(nèi)容的可讀性。針對這個問題,有學者提出了基于內(nèi)容的視頻重定向(video retargeting)方法,這種方法因能同時滿足保持重要內(nèi)容的形狀和時間連續(xù)性的要求而廣受好評。目前基于內(nèi)容的視頻重定向方法主要有以下4 類:基于智能裁剪的方法、基于細縫裁剪(seam carving)的方法、基于網(wǎng)格非均勻映射(wrapping)的方法和基于多算子的方法。
基于智能裁剪的方法,通過裁剪與目標尺寸寬高比一致的圖像顯著性區(qū)域,進而縮放裁剪區(qū)域達到視頻大小調(diào)整的目的。Chou 等人[1]首先利用SSIM 檢測算法和顯著性檢測方法進行顯著性區(qū)域檢測,然后基于顯著性區(qū)域進行裁剪,若裁剪后圖像不滿足目標大小,則直接縮放至目標大小。這種方法雖然計算效率較高,但忽略了攝像機運動的情況,且對于包含劇烈運動場景的視頻幀結(jié)果不太理想。基于智能裁剪方法的結(jié)果好壞很大程度上依賴于圖像顯著度圖的正確性,一旦顯著性區(qū)域出現(xiàn)偏差,極易產(chǎn)生視頻幀之間的抖動。另外為了保持重要對象形狀裁剪窗口需頻繁移動,這樣會導致視覺體驗差。
基于Seam carving[2-7]的方法為重復插入或者刪除視頻幀中重要度值較低的細縫。Seam carving 方法容易錯誤裁去視頻中的快速運動物體,造成內(nèi)容不連續(xù)?;趙rapping[8-13]的方法首先在視頻幀上劃分多個網(wǎng)格,然后根據(jù)網(wǎng)格重要度和相關約束對網(wǎng)格進行映射。該方法主要缺點在于需要耗費較多的時間來保持時間連續(xù)性。基于多算子[15-19]的方法即應用兩種或者兩種以上的操作符進行視頻重定向處理。基于Seam carving 的方法、基于wrapping 的方法和基于多算子的方法,一般而言時間復雜度要遠高于基于智能裁剪的方法。為了能夠高效處理視頻重定向問題,本文將基于智能裁剪方法進行視頻大小調(diào)整。
針對智能裁剪中對圖像顯著度圖的依賴程度高、文獻[1]方法不適用于劇烈運動場景的問題,本文提出了一種基于運動歷史圖的智能裁剪方法來調(diào)整視頻大小。首先基于時間軸將視頻幀通過估計幀間攝像機運動對齊獲取全局運動模型;然后基于全局運動模型,利用融合了圖像顯著度圖和運動顯著度圖的重要度圖求得運動歷史圖;最后,基于運動歷史圖的重要區(qū)域進行裁剪。
與傳統(tǒng)的圖像顯著性檢測算法、運動顯著性檢測不同,本文采用近年的文獻[20]的級聯(lián)編-解碼器的方法和文獻[21]的視頻分割方法獲取更加精準的圖像顯著度圖和運動顯著度圖。圖像顯著度圖和運動顯著度圖的精確度的提高有助于提高重要度圖的精確度,從而達到更好的視頻重定向結(jié)果。與文獻[10]求取運動歷史圖的方法不同的是,本文基于全局運動模型求取運動歷史圖,可保證視頻序列中背景與前景的時間連續(xù)性一致。運動歷史圖的應用不僅可降低對圖像顯著度圖的依賴程度,而且能更好地指導包含復雜攝像機運動和物體運動情況的視頻序列的形變和保護重要對象的整體結(jié)構(gòu)。
智能裁剪方法典型的工作有:Cheng 等人[22]提出了一種基于內(nèi)容重組的視頻自適應新框架:首先通過視覺注意力特征的組合從視頻場景中提取重要對象;其次,將刪除重要對象后的視頻幀進行縮放以滿足目標尺寸大小;最后,將提取的對象重新整合到視頻中。Yuan 等人[23]提出了一種內(nèi)容感知的方法:在每個視頻幀中裁剪一個用戶感興趣的區(qū)域作為重定向結(jié)果,同時應用動態(tài)規(guī)劃優(yōu)化裁剪區(qū)域的時間一致性。Liu 等人[24]提出了曲線擬合的方法:①獲得基于感知的興趣區(qū)域;②采用快速曲線擬合策略,在給定的視頻鏡頭上尋找最優(yōu)的裁剪序列,避免了幀間復雜的時間約束設計。
圖1 為本文方法的整體框架流程。首先,計算當前視頻幀的圖像顯著性區(qū)域和運動顯著性區(qū)域;其次,將圖像顯著區(qū)域和運動顯著性區(qū)域融合,得到當前幀的重要性區(qū)域(重要度圖);然后,采用特征點匹配建立視頻幀的全局運動模型,結(jié)合重要度圖獲得其對應的運動歷史圖;最后,基于運動歷史圖的重要區(qū)域進行裁剪和縮放。重復上述步驟直至完成全部視頻幀重定向。
下面對本文算法的實現(xiàn)進行具體描述。
圖1 整體框架流程
本文應用文獻[20]新穎的級聯(lián)編碼-解碼器的方法求圖像顯著度圖,實例見圖2。與經(jīng)典的圖像顯著性檢測算法(如AC 算法、FT 算法等)相比,該方法能快速生成更加精準的圖像顯著度圖。該方法以ResNet50 作為級聯(lián)部分解碼器框架的骨干網(wǎng)絡來提取圖像多層次特征信息,ResNet50 結(jié)構(gòu)中的兩個卷積模塊分別作檢測分支和注意分支。檢測分支提取初步顯著度圖,注意分支對該顯著度圖進行優(yōu)化,優(yōu)化后的結(jié)果重新傳回網(wǎng)絡,再次進行編碼-解碼,從而得到最終的顯著度圖。
圖2 圖像顯著度圖實例
運動顯著圖的應用不僅能整合運動信息,將更多的重要信息包含其中,而且可以彌補上述圖像顯著性檢測偶爾帶來的誤差問題。與幀差法、光流法等相比,采用文獻[21]的方法能更準確地計算出運動顯著性區(qū)域。圖3 是文獻[21]方法的一個實例,其計算過程如下:①將輸入視頻幀分割為超像素,將圖像上兩個超像素間的最短路徑定義為測地線距離;②利用幀內(nèi)的靜態(tài)邊緣信息和幀間的運動信息生成時空邊緣圖。在幀內(nèi)圖和幀間圖中,分別采用測地線距離來估計前景概率、更新每對相鄰幀的時空顯著度圖;③定義能量函數(shù)并通過圖形切割將其最小化以獲得最終的分割結(jié)果。
圖3 運動顯著度圖實例
重要度圖越精確,根據(jù)重要性區(qū)域進行視頻重定向的結(jié)果就越好。本文通過選取圖像顯著度圖與運動顯著度圖中對應像素點的較大值來獲取重要信息,從而構(gòu)成重要度圖。其計算公式如下:
運動歷史圖的計算步驟有如下3 步:①將全部視頻幀基于時間軸對齊,建立全局運動模型;②在全局運動模型的基礎上,以當前幀為起始位置的一個窗口內(nèi)所有視頻幀對應的重要度圖進行濾波,從而求得當前幀的運動歷史圖。
(1)全局運動模型
采用文獻[9]的方法,以輸入視頻序列的首幀為基準,通過估計幀間相機運動將所有視頻幀基于一個公共的攝像機坐標系對齊,保證視頻背景與前景的時間連續(xù)性一致,圖4 是全局運動模型的一個實例。步驟如下:①利用SIFT 算法[25]獲取相鄰兩幀間的匹配特征點;②使用RANSAC 算法[26]剔除SIFT 算法中匹配錯誤的結(jié)果并計算相鄰幀之間的變換矩陣Ht→t-1。③利用變換矩陣進行圖像融合,即可建立全局運動模型。
(2)運動歷史圖
運動歷史圖的應用不僅能降低對圖像顯著度圖的依賴程度、較好地處理包含復雜運動場景的視頻,而且由于其包含了當前窗口運動目標的所有運動信息,因而保證了視頻幀重定向結(jié)果的時間連續(xù)性。其計算公式如下:
其中,St為第t 幀的重要性區(qū)域,k 是當前視頻幀后面包含的視頻幀數(shù)。通過調(diào)節(jié)k 值可以平衡背景與運動前景:k 值越大,運動歷史圖包含的運動信息越多,背景裁剪越少,但時間復雜度也隨之增大;k 值越小,運動前景物體形狀保持越好,但視頻將有可能出現(xiàn)明顯抖動。
圖4 Stefan視頻序列的全局運動模型
圖5 和圖6 是運動歷史圖的實例。圖6 是從視頻首幀開始,每隔5 幀取一次原始視頻幀、文獻[1]算法的結(jié)果幀和本文算法結(jié)果幀的實例。由圖6 可看出,由于文獻[1]算法只根據(jù)當前幀的顯著性區(qū)域進行裁剪,當場景突變且顯著物體數(shù)目由一個船員增加至一個船員和一艘白色艦艇時,該算法無法及時更新顯著性區(qū)域,將丟失較多的重要信息。而本文算法使用運動歷史圖,可以得到后續(xù)k 幀的重要信息,所以在得到的結(jié)果視頻幀中本文算法能保留更多的重要信息、更好地保護重要對象的整體結(jié)構(gòu)。
圖5 第1張是k=3時的運動歷史圖,其余是重要度
圖6
在保證了視頻重定向結(jié)果的時間連續(xù)性的基礎上,本文基于運動歷史圖的重要性區(qū)域大小進行裁剪。若重要區(qū)域大小尺寸小于目標尺寸,則以重要區(qū)域為中心進行裁剪;否則,裁剪重要區(qū)域,將裁剪后的視頻幀縮放至目標尺寸。同時保證每一幀的裁剪方案一致,并對相鄰幀的裁剪做平滑處理。
為了驗證本文多算子視頻重定向算法的普遍適用性,本文實驗選取了13 個不同類型的YUV420 格式視頻,使用MATLAB 軟件,在CPU 為3.20GHz、內(nèi)存8G的計算機上進行測試。視頻類型包含了攝像機靜止、攝像機運動、慢速物體運動、中快速物體運動、1 個對象運動和多個對象運動。本次實驗采用2 種視頻重定向方法(文獻[1]算法和本文算法)對13 個視頻序列進行了各種視頻長寬比變化的測試。在上述進行測試結(jié)果中隨機選取了寬度縮小至原寬度50%的3 個視頻序列中的任意連續(xù)4 個視頻幀作比較,結(jié)果如圖6~8 所示。
下面將從主觀性能比較和重要信息量比較對重定向后的視頻質(zhì)量進行討論分析。
圖7(b)~圖9(b)是各視頻序列采用文獻[1]算法得到的結(jié)果視頻幀。由圖7(b)紅色框中的小車可看出裁剪窗口在頻繁移動,降低了人們的視覺體驗感。這是因為裁剪窗口為了展示盡可能多的重要性信息需要頻繁移動。對于中快速物體運動的視頻,由于場景突變和顯著性檢測的誤差會導致視頻產(chǎn)生抖動。由圖8(b)和圖9(b)的黃色虛線可以看出,圖8(b)第二行和第三行之間、圖9(b)第一行和第二行之間存在抖動現(xiàn)象。
圖7(c)~圖9(c)是各視頻序列采用本文算法得到的結(jié)果視頻幀。由圖7(c)紅色框中的小車可看出,由于運動歷史圖的作用,圖7(c)相較于圖7(b)來說,背景無移動現(xiàn)象,增強了視覺上的舒適度;圖8(c)相較于圖8(b)以及圖9(c)相較于圖9(b)來說,各視頻幀之間不存在抖動現(xiàn)象。由此可見,本文方法在保持重定向視頻時間連貫性、減少視頻抖動方面效果較好,同時能較好地保持重要物體整體結(jié)構(gòu)。
以原始視頻幀中的重要對象信息量為基準,本小節(jié)對基于內(nèi)容感知的文獻[1]算法和本文算法進行重要信息量的比較。重要信息量的比較有助于了解算法在保持重要對象整體結(jié)構(gòu)方面的性能。表1 是3 個視頻序列(圖7~圖9)平均每幀重要信息量的比較結(jié)果。
圖7 Sign_irene 視頻幀的寬度縮小至原來的50%
圖8 Stefan 視頻幀的寬度縮小至原來的50%
圖9 Coastguard 視頻幀的寬度縮小至原來的50%
表1 視頻序列平均每幀重要信息量比較
從表1 可以看到:本文算法的平均每幀重要信息量高于文獻[1]算法的方法。這是因為文獻[1]算法僅獲取了當前視頻幀的重要信息,而本文算法采用了運動歷史圖,可以獲取更多的重要信息。由此可見,本文算法在保持重要對象的整體結(jié)構(gòu)方面具有一定優(yōu)勢。
本文提出了一種基于運動歷史圖的智能裁剪方案以進行視頻大小調(diào)整。該方法首先融合了圖像顯著度圖和運動顯著度圖,以生成重要度圖;然后基于時間軸將視頻幀通過估計幀間攝像機運動對齊獲得由重要度圖生成的運動歷史圖;最后基于運動歷史圖的重要性區(qū)域順序指導單幀圖像裁剪不重要的邊界。實驗結(jié)果表明,本文方法在實現(xiàn)視頻時間連續(xù)性的同時能有效地保持重要對象的形狀,獲得較好的視覺效果。另外,運動歷史圖的運用降低了對圖像顯著度圖的依賴程度,同時能更好地處理包含復雜攝像機運動和物體運動場景的視頻。如何與其他算子結(jié)合進一步提升視頻重定向性能將成為日后努力的方向。