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