孟凡墨
(吉林師范大學(xué),吉林 四平 136000)
三維視頻缺幀、跳幀是指在視頻播放過程中存在黑屏或閃屏、卡頓不流暢等現(xiàn)象,極為影響視覺感官,通常會(huì)動(dòng)態(tài)補(bǔ)償方法來彌補(bǔ)缺失。跳幀、缺幀補(bǔ)償作為三維視頻處理的重要領(lǐng)域,其在視頻的虛擬圖像合成、視頻幀率提升和慢速制造等方面都擁有廣泛使用。傳統(tǒng)補(bǔ)償方法通過光流場檢測完成視頻輸入聚類匹配,然后使用計(jì)算出的匹配數(shù)據(jù)合成中間幀圖像。但因?yàn)楣饬鲌龃嬖诓环€(wěn)定現(xiàn)象,導(dǎo)致三維視頻缺幀補(bǔ)償后效果不佳,而其它方法在現(xiàn)實(shí)應(yīng)用中經(jīng)常面臨困難,基于此相關(guān)研究者提出如下解決方案。
文獻(xiàn)[1]通過混入統(tǒng)計(jì)特性的高斯噪聲,從而提高三維視頻缺幀、跳幀補(bǔ)償精準(zhǔn)度,但因?yàn)楦咚乖肼暬烊胄枰罅康臅r(shí)間進(jìn)行實(shí)現(xiàn),導(dǎo)致該方法在補(bǔ)償效率上并不理想。文獻(xiàn)[2]提出了一種基于結(jié)構(gòu)相似的幀間組稀疏表示重構(gòu)算法研究,該方法首先將三維視頻的結(jié)構(gòu)相似度作為匹配的標(biāo)準(zhǔn),再對(duì)其參考幀進(jìn)行搜索匹配,從而生成相似塊組,然后通過相似塊組中關(guān)鍵特征實(shí)現(xiàn)幀間補(bǔ)償。但該方法步驟過于繁瑣,需要消耗大量的人力、物力資源和時(shí)間。文獻(xiàn)[3]提出了一種基于特征匹配與運(yùn)動(dòng)補(bǔ)償?shù)囊曨l穩(wěn)像算法,通過長度不變的SURE對(duì)視頻進(jìn)行特征提取,并計(jì)算描述符,再引入鄰近匹配算法獲得匹配點(diǎn),從而提高對(duì)視頻幀間的補(bǔ)償效率。但SURE算法在特征提取的過程中,容易將重要特征當(dāng)做冗余干擾并實(shí)行剔除,導(dǎo)致最后的補(bǔ)償不夠完整,三維視頻效果差強(qiáng)人意。
針對(duì)上述問題本文提出了一種基于幀間投影的補(bǔ)償方法,通過對(duì)三維視頻進(jìn)行投影,有效提高補(bǔ)償過程的完整性。根據(jù)投影結(jié)果獲得單獨(dú)兩種的波形,并利用深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)兩個(gè)獨(dú)立波形進(jìn)行訓(xùn)練,有效縮短視頻補(bǔ)償時(shí)間,從而實(shí)現(xiàn)三維視頻中的跳幀、缺幀進(jìn)行補(bǔ)償。實(shí)驗(yàn)結(jié)果證明,相較于傳統(tǒng)方法,本文提出的方法在補(bǔ)償三維視頻幀間的效率上較為突出,并且不會(huì)出現(xiàn)補(bǔ)償遺漏以及補(bǔ)償不完整問題。
三維視頻跳幀、缺幀的實(shí)質(zhì)就是視頻幀間的丟失或跳過[4]。預(yù)算三維視頻幀間的平移運(yùn)動(dòng)算法有很多種,比如代表點(diǎn)比較法、匹配算法、邊沿識(shí)別算法等。本文提出的幀間投影算法,會(huì)依據(jù)所獲得的三維視頻總體分布規(guī)律來求出當(dāng)前幀相對(duì)于參考幀在水平方向與垂直方向的運(yùn)動(dòng)矢量,它擁有計(jì)算速度快、效率高等優(yōu)點(diǎn)。
對(duì)于三維視頻輸入預(yù)處理的所有幀來說,通過預(yù)處理后,將其幀間運(yùn)動(dòng)投影成兩個(gè)單獨(dú)的波形,其投影方法表示為
(1)
(2)
式中,Gk(i)和Gk(j)分別代表為k幀視頻第j列和第i行,Gk(i,j)表示第k幀視頻上的(i,j)的位置。經(jīng)過分別匹配行、列的投影矢量,就能求得在水平方向和垂直方向的運(yùn)動(dòng)矢量。因?yàn)橥队捌ヅ渌惴梢园讶S視頻轉(zhuǎn)化為兩個(gè)一維的矢量,因此很大程度上提高了計(jì)算效率。
分別將參考視頻和當(dāng)前視頻分成若干的子區(qū)域,當(dāng)子區(qū)域劃分較少時(shí),會(huì)省略旋轉(zhuǎn)運(yùn)動(dòng),使用投影匹配算法可以精準(zhǔn)的求出子區(qū)域在垂直方向和水平方向的局部運(yùn)動(dòng)矢量。
如何確準(zhǔn)子區(qū)域的大小是一個(gè)非常重要的問題。如果區(qū)域劃分的越多,理論上最終實(shí)現(xiàn)的視頻旋轉(zhuǎn)補(bǔ)償精準(zhǔn)度就越高,如果區(qū)域選擇過大,那么區(qū)域的旋轉(zhuǎn)運(yùn)動(dòng)則不能忽略,同時(shí)會(huì)缺失一些局部運(yùn)動(dòng)信息[5-6]。考慮到現(xiàn)實(shí)的應(yīng)用,對(duì)一些分辨率為650*490像素的三維視頻來說,能夠選擇子區(qū)域的大小為6*65像素,即將一幀三維視頻分成25個(gè)子區(qū)域,對(duì)于分辨率為353*289像素的三維視頻來說,能偶分成17個(gè)子區(qū)域,子區(qū)域的大小則選為51*65像素。
因?yàn)槿S視頻上存在的背景和景物不同,區(qū)分以后,有的區(qū)域會(huì)產(chǎn)生不明顯變化,不具有足夠的信息量,尤其是航攝三維視頻[7]。比如,某一個(gè)區(qū)域只存在幀間單一的景物,出現(xiàn)該區(qū)域,能夠使用各子區(qū)域運(yùn)動(dòng)矢量的均衡值作為該區(qū)域的運(yùn)動(dòng)矢量[8]。
三維視頻幾何變換就是視頻中點(diǎn)和點(diǎn)之間的空間投影關(guān)系,這屬于初始圖像和其變形之后圖像中所有各點(diǎn)間的投影關(guān)系函數(shù),可表示為
[x,y]=[X(u,v),Y(u,v)]
(3)
或
[u,v]=[U(x,y),V(x,y)]
(4)
式中,[u,v]代表輸入三維視頻中像素的坐標(biāo),[x,y]代表輸出視頻中像素的坐標(biāo)。X、Y、U、V代表唯一確準(zhǔn)的空間變換函數(shù),就是它們定義了輸出視頻和輸入視頻中的全部點(diǎn)間幾何對(duì)應(yīng)關(guān)系,X、Y把輸入投影到輸出,叫做向前投影,U、V把輸出視頻投影到輸入,叫做逆向投影。
仿射變換是一種常見是平面投影方法,但其轉(zhuǎn)化方式比較特殊,表達(dá)公式為
(5)
逆變轉(zhuǎn)化能夠限制三維視頻的旋轉(zhuǎn)、平移與基礎(chǔ)的變形,減少后續(xù)補(bǔ)償?shù)母蓴_向量。
相對(duì)于傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò),構(gòu)建用于三維視頻跳幀、缺幀動(dòng)態(tài)補(bǔ)償?shù)纳疃染矸e神經(jīng)網(wǎng)絡(luò)需要對(duì)下述三個(gè)問題進(jìn)行考慮:
1)和僅為目標(biāo)分類概率的目網(wǎng)絡(luò)不同,本文的任務(wù)是為了將輸入視頻分辨率和輸出視頻分辨率進(jìn)行相同的匹配,從而融合出完整一幀[9-10]。
2)考慮到三維視頻中使用場景的視頻長度比,經(jīng)常會(huì)各不相同的情況,用于三維視頻中跳幀、缺幀補(bǔ)償?shù)木矸e神經(jīng)網(wǎng)絡(luò),需要擁有處理不同長度視頻的能力,提升方法適用性。
3)設(shè)計(jì)出的卷積神經(jīng)網(wǎng)路需要擁有視頻細(xì)節(jié)處理能力,并且還要考慮在視頻中幀數(shù)較多的情況下,如何使用優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)降低幀分散現(xiàn)象,使得卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)g進(jìn)行優(yōu)質(zhì)的訓(xùn)練,提升跳幀、缺幀補(bǔ)償效果[11-12]。
本文提出的三維視頻跳幀、缺幀動(dòng)態(tài)補(bǔ)償深度卷積神經(jīng)網(wǎng)絡(luò)總體構(gòu)造如圖1所示。
圖1 深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
對(duì)于給定的一幅圖像,第1次卷積選取5個(gè)卷積核,經(jīng)過遍歷輸入圖像,經(jīng)過采樣處理,得到下采樣特征圖,下采樣層一般采用均值處理,每6個(gè)像素進(jìn)行平均;第2個(gè)卷積層再次使用卷積核,再經(jīng)過2次卷積處理后,和最終的輸出層實(shí)現(xiàn)全連接。
利用初始卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建反卷積模塊,通過激活卷積層和函數(shù)層進(jìn)行三次重復(fù)交替,訓(xùn)練模塊最后在融入池化層內(nèi)組合。本文深度卷積層的設(shè)定跨步尺寸和內(nèi)部邊距為1,3,1。啟用函數(shù)層使用參數(shù)修正現(xiàn)單元作為激活函數(shù),池化層的預(yù)感跨步為1,尺寸為3。
如上文所述,本文可以使用現(xiàn)有的三維視頻對(duì)上節(jié)建造的深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并且去掉了人工標(biāo)注環(huán)節(jié),在節(jié)省了大量時(shí)間的同時(shí),減少人力物力資源的浪費(fèi)。因?yàn)槿S視頻中含有時(shí)序一致性,就是在短時(shí)間內(nèi)可以對(duì)拍攝物體與攝像機(jī)進(jìn)行快速運(yùn)動(dòng),所以建造的深度卷積神經(jīng)網(wǎng)絡(luò)較為適合對(duì)本文三維視頻進(jìn)行訓(xùn)練。
本文使用Durian來建造訓(xùn)練樣本,其中原始數(shù)據(jù)是KITTI。KITTI是三維視頻中安放在汽車上的攝影機(jī),它是公開的數(shù)據(jù)集,可以對(duì)自動(dòng)駕駛、像視覺里程計(jì)算、Stereo、光流場計(jì)算和圖像分割等進(jìn)行應(yīng)用。相較于KITTI和Sintel數(shù)據(jù),本文只使用起始的三維視頻數(shù)據(jù)對(duì)訓(xùn)練樣本進(jìn)行提取。
KITTI數(shù)據(jù)集包含58個(gè)視頻序列,總計(jì)15942幀圖像。在全部序列中,使用三幀連續(xù)的圖像建造為一個(gè)訓(xùn)練樣本,第一幀和第三幀當(dāng)做輸入視頻,第二幀則表示為運(yùn)動(dòng)插值視頻的真值。并且對(duì)事項(xiàng)中包含上下翻轉(zhuǎn)、左右翻轉(zhuǎn)跡象的方式通過訓(xùn)練來構(gòu)建新的樣本,同時(shí)該樣本一共生成了123517個(gè)訓(xùn)練樣本。對(duì)三維視頻,還是使用65個(gè)視頻序列進(jìn)行采集,序列中含有5891幀圖像。使用和KITTI數(shù)據(jù)類似的方法建造36541個(gè)訓(xùn)練樣本。對(duì)KITTI數(shù)據(jù)的輸入圖像采樣為280*248,對(duì)Sintel數(shù)據(jù),使用的視頻尺寸為275*137。
(6)
(7)
式中ε為0.2。
仿真環(huán)境為:操作系統(tǒng)為Windows7Ultimate,處理器為Intel T6400,內(nèi)存為2GB,仿真軟件為Matlab7.8a。
為了更好的檢驗(yàn)本文方法的性能,采用文獻(xiàn)[1]的方法和本文方法進(jìn)行比較,因?yàn)镸PEG-1輸出三維視頻碼率是固定的1.3MBIT/s,所以標(biāo)準(zhǔn)的MPEG-1三維視頻編碼器擁有碼率控制能力。在進(jìn)行視頻補(bǔ)償仿真過程中,取消了碼率控制,并定義量化參數(shù),對(duì)IP于B幀都固定為Q=30,其中,運(yùn)動(dòng)估值使用的是全搜索算法,下表給出實(shí)驗(yàn)比較結(jié)果。
表1 不同方法的對(duì)比結(jié)果
從表1能夠看出本文方法較比文獻(xiàn)[1]在三維視頻補(bǔ)償效率上要高出很多,分析其原因,本文方法使用了幀間投影算法,通過簡單的投影就可以節(jié)省大量時(shí)間,較比文獻(xiàn)[1]通過特征提取來分類三維視頻要快。
首先為了檢驗(yàn)方法補(bǔ)償完整性,將本文方法于文獻(xiàn)[2]、文獻(xiàn)[3]的方法進(jìn)行對(duì)比,使用常見的Comer Planes與Punctured Sphere模型,如圖2所示。
圖2 實(shí)驗(yàn)中使用的兩種模型
求三維視頻模型的缺幀、跳幀補(bǔ)償誤差結(jié)果,對(duì)比結(jié)果如圖3所示。其中曲線InvErr是文獻(xiàn)[2]的補(bǔ)償結(jié)果。
圖3 不同方法相同模型的誤差圖
從圖3能夠看出,其中本文的結(jié)果對(duì)于幀間誤差不大,這代表鄰近圖能夠用來更好的模擬高維數(shù)據(jù)低維流形結(jié)構(gòu)。文獻(xiàn)[2]、文獻(xiàn)[3]中因?yàn)猷徑鼒D使用的順序?yàn)樗阉鞑呗裕粝碌氖峭耆珴M足條件的數(shù)據(jù)點(diǎn),但滿足部分條件的有效點(diǎn)被刪除,所以比較降維前后鄰近圖中相似性時(shí)會(huì)出現(xiàn)一定的偏差,使補(bǔ)償誤差大幅度增加,三維視頻補(bǔ)償后視覺效果差。
然后構(gòu)建最優(yōu)質(zhì)的映射矩陣,考慮到三維視頻和數(shù)據(jù)在時(shí)間上存有聯(lián)系,同時(shí)也是為了盡量保持三維視頻的流行結(jié)構(gòu),使用鏡頭樣本來獲取映射矩陣。首先來獲得三維視頻鏡頭的最優(yōu)質(zhì)維度數(shù),建造鄰近結(jié)構(gòu)矩陣。通過在實(shí)驗(yàn)中對(duì)不同方法進(jìn)行降維處理,獲得了降維前后的流行結(jié)構(gòu)誤差圖,如圖4所示。
圖4 兩種方法的完整性對(duì)比
通過圖4能夠看出,本文方法比較文獻(xiàn)[2]方法的補(bǔ)償完整度更高,主要原因是,深度卷積神經(jīng)網(wǎng)絡(luò)在分類兩種波形時(shí)擁有具體的分類形式,不會(huì)出現(xiàn)檢測遺漏波形,所以本文補(bǔ)償三維視頻的跳幀、缺幀時(shí)不會(huì)出現(xiàn)傳統(tǒng)方法的遺漏現(xiàn)象,從而更加完整的補(bǔ)償三維視頻的幀間運(yùn)動(dòng)。
從上述可以看出本文提出的方法在三維視頻跳幀、缺幀方面擁有非常好的性能,并且效率更高。
為了解決三維視頻缺幀、跳幀補(bǔ)償?shù)男蔬^慢,補(bǔ)償不完整問題,提出了一種通過幀間投影和深度卷積神經(jīng)網(wǎng)絡(luò)的補(bǔ)償方法。通過仿真結(jié)果證明,所提方法具有良好應(yīng)用性能,可以在該領(lǐng)域得以廣泛應(yīng)用。但三維視頻幀間補(bǔ)償是一種非常復(fù)雜的程序,需要涉及到很多種學(xué)科問題,由于作者的水平限制,研究時(shí)間較短,雖然在三維視頻的跳幀、缺幀補(bǔ)償方面小有成就,但以下問題仍然沒有做到滿意:
1)動(dòng)態(tài)補(bǔ)償方法還沒有成熟。動(dòng)態(tài)補(bǔ)償可以從理論上解釋三維視頻幀間治理、視頻資源提取思想,但針對(duì)三維視頻動(dòng)態(tài)補(bǔ)償模式研究還不夠成熟,會(huì)限制實(shí)際使用。
2)如何改進(jìn)算法使其進(jìn)一步提高三維視頻跳幀缺幀補(bǔ)償性能也是未來需要研究的方向。
3)本文中的補(bǔ)償研究大部分都是圍繞著跳幀、缺幀進(jìn)行的,但三維視頻中出現(xiàn)的問題不止是跳幀和缺幀,還有很多的問題等待的廣大學(xué)者的研究。