易慧敏,朱子奇
(武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065)
動(dòng)態(tài)紋理也稱為運(yùn)動(dòng)紋理或紋理視頻[1],來自于在空間和時(shí)間上定義的均勻隨機(jī)過程的樣本[2-3]。它在現(xiàn)實(shí)世界的視頻中很常見,例如火焰、波浪、擺動(dòng)的燈泡、旋轉(zhuǎn)的風(fēng)車等。
動(dòng)態(tài)紋理合成被定義為生成此類人造紋理的過程。它是圖像處理中的一個(gè)重要主題,在計(jì)算機(jī)視覺和圖像處理中有許多應(yīng)用,包括模式識(shí)別[4]、圖像壓縮[5]、醫(yī)學(xué)影像診斷[6]和材料結(jié)構(gòu)研究等[7]。因此,在過去的幾十年里,動(dòng)態(tài)紋理合成一直是計(jì)算機(jī)視覺和圖形學(xué)中一個(gè)充滿活力且富有挑戰(zhàn)性的主題。
現(xiàn)有的動(dòng)態(tài)紋理合成參數(shù)化建模方法大致可分為2類:淺層模型和深層模型。
1)淺層模型。
LDS(Linear Dynamic System)[8]是一種眾所周知的方法。在LDS中,每個(gè)視頻幀被擴(kuò)展成一個(gè)列向量,然后通過奇異值分解將輸入的視頻幀投影到低維空間,并對(duì)其動(dòng)態(tài)軌跡進(jìn)行建模。因此,尋找一個(gè)合適的子空間來描述軌跡是LDS的關(guān)鍵。近十年來,繼LDS之后,許多淺層模型被相繼提出,例如閉環(huán)LDS[9]、穩(wěn)定LDS[10-11]、Kernel-DT(Kernel Dynamic Texture)等[12]。雖然這些模型提高了LDS的性能,但是LDS方法存在使運(yùn)動(dòng)趨于平滑的問題,只能對(duì)振蕩系統(tǒng)達(dá)到良好的綜合效果。
2)深層模型。
隨著深度學(xué)習(xí)引發(fā)的活動(dòng)浪潮,Gatys等人[13]提出了一種基于深層卷積神經(jīng)網(wǎng)絡(luò)的紋理合成模型,可以合成高質(zhì)量的靜態(tài)紋理。這也證明了卷積神經(jīng)網(wǎng)絡(luò)可以用于紋理特征提取。與傳統(tǒng)的淺層模型相比,深層模型具有更強(qiáng)的非線性特征提取和非線性行為表達(dá)能力。隨后,Lotter等人[14]將卷積神經(jīng)網(wǎng)絡(luò)與預(yù)測(cè)編碼相結(jié)合,提出了PredNet(Predictive coding Networks),再次證明了RNN(Recurrent Neural Network)模型[3]在時(shí)間序列建模中的能力。因此,深度學(xué)習(xí)方法為動(dòng)態(tài)紋理建模提供了有力的理論工具。
雖然這些方法比傳統(tǒng)的參數(shù)化模型有了很大的改進(jìn),但仍然存在著未解決或部分解決的問題:回歸預(yù)測(cè)的誤差積累會(huì)導(dǎo)致合成紋理圖像質(zhì)量的顯著下降。對(duì)于回歸而言,誤差是不可避免的,并且在遞歸預(yù)測(cè)的過程中會(huì)累積。PredNet通過輸入真實(shí)數(shù)據(jù)來修正合成的動(dòng)態(tài)紋理的誤差,但這種方法不能合成較長(zhǎng)的動(dòng)態(tài)紋理。在缺乏真實(shí)數(shù)據(jù)的情況下,累積的誤差會(huì)導(dǎo)致合成的動(dòng)態(tài)紋理質(zhì)量急劇下降。因此,優(yōu)化回歸過程是合成高質(zhì)量動(dòng)態(tài)紋理的關(guān)鍵。
為了解決這一問題,本文提出一種基于自糾正機(jī)制的動(dòng)態(tài)紋理合成模型DTSC(Dynamic Texture synthesis model based on Self-Correction)。DTSC首先使用可訓(xùn)練的CAE(Convolutional Auto-Encoder)進(jìn)行動(dòng)態(tài)紋理特征提取,卷積算子捕獲空間特征并提取相鄰像素的關(guān)系。然后,利用回歸模型對(duì)捕獲到的特征進(jìn)行預(yù)測(cè),并在回歸框架中加入自糾正機(jī)制,通過光流、清晰度、結(jié)構(gòu)相似性等指標(biāo)對(duì)回歸結(jié)果進(jìn)行優(yōu)化,從而減少遞歸預(yù)測(cè)過程中積累的誤差,提高合成的動(dòng)態(tài)紋理質(zhì)量。
因此,本文的主要工作如下:1)提出結(jié)合自糾正機(jī)制和卷積自編碼器框架的動(dòng)態(tài)紋理合成模型DTSC;2)設(shè)計(jì)一套自糾正優(yōu)化方案,并根據(jù)設(shè)計(jì)的方案找到優(yōu)化極值點(diǎn);3)本文模型可以合成視覺效果良好的動(dòng)態(tài)紋理長(zhǎng)序列。
DTSC模型框架如圖1所示。該模型主要由2種模塊重復(fù)堆疊而成。第一種模塊為CAE。此模塊用于提取輸入的紋理圖片特征,并將預(yù)測(cè)得到的紋理特征進(jìn)行重構(gòu)。第二種模塊為帶有自糾正機(jī)制的LSTM(Long Short-Term Memory)。此模塊用于時(shí)間序列的建模和回歸。
卷積自編碼器模塊的設(shè)計(jì)與Du等人[15]提出的方法類似,本文設(shè)計(jì)4個(gè)CNN層進(jìn)行紋理特征提取。在CNN層之上,使用2個(gè)全連接層來減少數(shù)據(jù)的冗余信息。
預(yù)測(cè)過程,首先通過門來控制傳輸狀態(tài),讓需要長(zhǎng)時(shí)間記憶的信息保留,忘記不重要的信息。門實(shí)際上是全連接層,它的輸出是一個(gè)0~1之間的實(shí)向量。可表示為:g(z)=σ(Wz+b),其中,z為輸入值,W為權(quán)重,b為偏置項(xiàng),σ為sigmoid函數(shù)。如圖1所示,預(yù)測(cè)部分主要由遺忘門、輸入門和輸出門[16-17]3種門結(jié)構(gòu)控制。
遺忘門決定了上一時(shí)刻的狀態(tài)信息Ct-1有多少保留到當(dāng)前時(shí)刻狀態(tài)信息Ct,計(jì)算公式如下:
ft=σ(Wf[Ht-1,Int]+bf)
(1)
輸入門決定哪些新信息被存儲(chǔ)到狀態(tài)Ct中,計(jì)算公式為:
it=σ(Wi[Ht-1,Int]+bi)
(2)
(3)
其中,Wf是遺忘門的權(quán)重矩陣,Wi是輸入門的權(quán)重矩陣,Wc是輸出門的權(quán)重矩陣,Ht-1表示上一個(gè)輸出,Int表示當(dāng)前的輸入,bf、bi、bc分別為遺忘門的偏置項(xiàng)、輸入門的偏置項(xiàng)和輸出門的偏置項(xiàng)。
隨后,將原來的狀態(tài)信息Ct-1更新為Ct,使用*表示Hadamard積,公式如下:
(4)
輸出門決定輸出的信息。本文在輸出門后增加了一個(gè)自糾正機(jī)制,自糾正的具體實(shí)現(xiàn)如圖1右上方所示。選取SSIM(Structural SIMilarity)、光流、清晰度這3個(gè)評(píng)估指標(biāo),對(duì)每次回歸的結(jié)果進(jìn)行誤差糾正。原始數(shù)據(jù)經(jīng)過自糾正機(jī)制后得到優(yōu)化數(shù)據(jù),優(yōu)化數(shù)據(jù)通過卷積自編碼器重構(gòu)得到的結(jié)果被稱為優(yōu)化紋理。將原始數(shù)據(jù)替換為優(yōu)化數(shù)據(jù),并將優(yōu)化數(shù)據(jù)作為下一次回歸預(yù)測(cè)的輸入,進(jìn)一步改善預(yù)測(cè)結(jié)果。具體計(jì)算公式如下:
圖1 DTSC模型框架
ot=σ(Wo[Ht-1,Int]+bo)
(5)
Ht=fSC(ot*tanh(Ct))
(6)
其中,fSC(ot*tanh(Ct))代表對(duì)輸入的數(shù)據(jù)ot*tanh(Ct)進(jìn)行自糾正。門結(jié)構(gòu)主要解決了長(zhǎng)序列訓(xùn)練過程中梯度消失和梯度爆炸的問題。相比于普通的預(yù)測(cè)模型,此模型能夠在更長(zhǎng)的序列中有更好的表現(xiàn)。
與靜態(tài)紋理不同,動(dòng)態(tài)紋理由符合視覺邏輯的連續(xù)視頻幀構(gòu)成。從人眼觀察動(dòng)態(tài)紋理的角度出發(fā),預(yù)測(cè)得到的高質(zhì)量動(dòng)態(tài)紋理視頻幀應(yīng)該滿足以下幾個(gè)條件:1)預(yù)測(cè)得到的當(dāng)前幀應(yīng)與前一幀的內(nèi)容相似,否則會(huì)導(dǎo)致視覺上的不連續(xù);2)當(dāng)前幀的運(yùn)動(dòng)狀態(tài)變化應(yīng)符合物理運(yùn)動(dòng)的邏輯,與前幾幀的運(yùn)動(dòng)狀態(tài)變化相近;3)合成的動(dòng)態(tài)紋理視頻幀應(yīng)具有良好的清晰度?;谝陨?個(gè)條件,本文選取SSIM、清晰度和光流作為動(dòng)態(tài)紋理視頻幀的評(píng)估指標(biāo)。
SSIM是一種經(jīng)典的衡量圖像質(zhì)量的方法[18]。它將結(jié)構(gòu)信息定義為獨(dú)立于圖像的亮度和對(duì)比度的屬性。將均值用于亮度估計(jì),標(biāo)準(zhǔn)差用于對(duì)比度估計(jì),協(xié)方差用于結(jié)構(gòu)相似性度量。SSIM值的取值范圍為-1~1,當(dāng)2張圖片越相近時(shí),SSIM的值越接近1。給定圖像p和q,2張圖像的SSIM可按照以下公式求出:
(7)
在圖像質(zhì)量評(píng)價(jià)中,圖像清晰度是衡量圖像質(zhì)量的一個(gè)重要指標(biāo),它能夠很好地反映人的主觀感受[19]。本文使用Laplacian方法來定義圖像的清晰度,通過Laplacian算子計(jì)算圖像的二階導(dǎo)數(shù),以突出灰度值快速變化的區(qū)域,即邊界。正常圖片的邊界清晰、方差大,而模糊圖片中包含的邊界信息少、方差小。如果方差小于一定值則視圖片為模糊。Laplacian算子定義如下:
(8)
給定圖像p,基于Laplacian梯度函數(shù)的圖像清晰度定義為:
(9)
其中TL?p(m,n)代表圖像p在像素點(diǎn)(m,n)處Laplacian算子的卷積。
光流是一種圖像模式的表觀運(yùn)動(dòng),常被觀察者用來判斷目標(biāo)的運(yùn)動(dòng)狀態(tài)。它利用圖像序列中像素在時(shí)域上的變化以及相鄰幀之間的相關(guān)性,找到上一幀和當(dāng)前幀之間存在的對(duì)應(yīng)關(guān)系,從而計(jì)算出相鄰幀之間物體的運(yùn)動(dòng)信息[20]。由于相鄰幀的運(yùn)動(dòng)狀態(tài)相似,因此相鄰幀光流的差值較小。本文使用的是稠密光流,其目標(biāo)函數(shù)定義如下:
=?[φ(q(x,y)-p(x+u,y+v))]dxdy+
?[λ·ψ(|?u|,|?v|)]dxdy
(10)
根據(jù)以上3個(gè)動(dòng)態(tài)紋理視頻幀評(píng)估指標(biāo),期望通過自糾正機(jī)制后得到的優(yōu)化數(shù)據(jù)能夠盡可能地?cái)M合真實(shí)數(shù)據(jù)?;赟SIM、清晰度和光流設(shè)計(jì)的評(píng)估函數(shù)計(jì)算公式為:
Feval(p,p-1,p-2)
=λS·Fpre(SSIM(p,p-1))+λL·Fpre(FLaplacian(p))-
λOF·Fpre(|FOF(p,p-1)-FOF(p-1,p-2)|)
(11)
評(píng)估值的預(yù)處理函數(shù)計(jì)算公式為:
(12)
其中,p表示當(dāng)前預(yù)測(cè)數(shù)據(jù)經(jīng)CAE重構(gòu)后得到的動(dòng)態(tài)紋理視頻幀,p-1、p-2分別表示p的前一幀和前2幀動(dòng)態(tài)紋理視頻幀。SSIM(p,p-1)表示p與p-1計(jì)算得到的SSIM值,F(xiàn)Laplacian(p)表示p的Laplacian清晰度值,|FOF(p,p-1)-FOF(p-1,p-2)|表示p、p-1光流值與p-1、p-2光流值之間的絕對(duì)差值。
由于不同評(píng)估指標(biāo)的數(shù)值分布差異較大,因此,在計(jì)算Feval前應(yīng)對(duì)評(píng)估指標(biāo)的值進(jìn)行預(yù)處理。θ表示輸入的評(píng)估指標(biāo)值,根據(jù)訓(xùn)練數(shù)據(jù),得到對(duì)應(yīng)評(píng)估指標(biāo)的最大值max(θ)和最小值min(θ)。預(yù)處理函數(shù)Fpre的輸出主要分布在0~1的范圍內(nèi)。Fpre(SSIM(p,p-1))、Fpre(FLaplacian(p))、Fpre(|FOF(p,p-1)-FOF(p-1,p-2)|)分別表示對(duì)SSIM(p,p-1)、FLaplacian(p)和|FOF(p,p-1)-FOF(p-1,p-2)|進(jìn)行預(yù)處理。λS·Fpre(SSIM(p,p-1))、λL·Fpre(FLaplacian(p))、λOF·Fpre(|FOF(p,p-1)-FOF(p-1,p-2)|)為根據(jù)訓(xùn)練集得到的權(quán)重與對(duì)應(yīng)的動(dòng)態(tài)紋理視頻幀評(píng)估指標(biāo)預(yù)處理后數(shù)值的乘積。
圖2為原始數(shù)據(jù)周圍隨機(jī)數(shù)據(jù)點(diǎn)的Feval熱點(diǎn)圖。隨機(jī)數(shù)據(jù)點(diǎn)的顏色與右側(cè)的數(shù)值對(duì)應(yīng)。顏色越淺,說明Feval的數(shù)值越高。黑色三角形為原始數(shù)據(jù),黑色圓點(diǎn)為自糾正之后的優(yōu)化數(shù)據(jù)。從圖2中可以發(fā)現(xiàn),原始數(shù)據(jù)的Feval數(shù)值較低,重構(gòu)的紋理圖像存在殘影。優(yōu)化數(shù)據(jù)的Feval數(shù)值更高,重構(gòu)的紋理圖像具有更好的視覺效果。
圖2 評(píng)估函數(shù)Feval的熱點(diǎn)圖、原始數(shù)據(jù)重構(gòu)結(jié)果及優(yōu)化數(shù)據(jù)重構(gòu)結(jié)果
由于評(píng)估函數(shù)Feval的輸入為網(wǎng)絡(luò)的輸出,因此,無法通過訓(xùn)練網(wǎng)絡(luò)模型參數(shù)得到Feval數(shù)值最大的優(yōu)化數(shù)據(jù)。為解決以上問題,本文同時(shí)設(shè)計(jì)了一種尋找Feval數(shù)值極值點(diǎn)的方案。1)以原始數(shù)據(jù)為中心,以當(dāng)前幀和上一幀的數(shù)據(jù)差值作為為半徑,確定優(yōu)化數(shù)據(jù)的范圍。2)將優(yōu)化數(shù)據(jù)的范圍等分為4個(gè)部分,從每個(gè)部分隨機(jī)選取一個(gè)數(shù)據(jù),計(jì)算其Feval數(shù)值。3)選取4個(gè)隨機(jī)數(shù)據(jù)中Feval數(shù)值最大的一個(gè),將優(yōu)化數(shù)據(jù)范圍改為此數(shù)據(jù)所在的部分,并多次重復(fù)步驟2~步驟3。4)比較最后得到的優(yōu)化數(shù)據(jù)Feval與原始數(shù)據(jù)Feval,用Feval數(shù)值更大的數(shù)據(jù)替換原始數(shù)據(jù)。
DynTex數(shù)據(jù)庫[21]是一個(gè)高質(zhì)量的動(dòng)態(tài)紋理視頻集合。最新的版本包含650個(gè)動(dòng)態(tài)紋理視頻序列,主要內(nèi)容為周圍環(huán)境中常見的紋理運(yùn)動(dòng)。作為動(dòng)態(tài)紋理研究領(lǐng)域的標(biāo)準(zhǔn)數(shù)據(jù)庫,DynTex數(shù)據(jù)庫包含了許多高質(zhì)量的數(shù)據(jù)集,在視頻紋理識(shí)別[22]、視頻紋理分割[23-24]和視頻紋理合成[25]等許多領(lǐng)域都有應(yīng)用。
本文選擇3種自然場(chǎng)景的動(dòng)態(tài)紋理視頻片段進(jìn)行評(píng)測(cè),包括擺動(dòng)的燈泡、旋轉(zhuǎn)的屋頂及風(fēng)車。輸入的所有視頻幀都按照224×224的比例進(jìn)行裁剪。訓(xùn)練階段,對(duì)于每個(gè)視頻序列,使用4/5作為訓(xùn)練樣本(約200幀)。在合成階段,以樣本的第200幀作為初始幀,合成150幀的動(dòng)態(tài)紋理序列。為了便于訓(xùn)練和合成,所有的訓(xùn)練樣本都被轉(zhuǎn)換成灰度視頻。將本文提出的方法與LDS[8]、KernelDT[12]、PredNet[14]進(jìn)行比較,并進(jìn)行無自糾正機(jī)制的消融實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如圖3~圖5所示。
對(duì)于動(dòng)態(tài)紋理合成模型的定量評(píng)估,本文采用MSE(Mean Square Error)、PSNR(Peak Signal to Noise Ratio)和SSIM來進(jìn)行誤差判別。MSE是真實(shí)值與預(yù)測(cè)值的均方誤差,它的值始終為非負(fù)值,并且其值越接近0,效果越好。PSNR是最普遍和使用最為廣泛的一種圖像客觀評(píng)價(jià)指標(biāo),它是基于誤差敏感的圖像質(zhì)量評(píng)價(jià),PSNR的值越大表明效果越好。SSIM與1.2節(jié)介紹的內(nèi)容相同,越接近1表明效果越好。需要特別注意的是,此處比較的是合成的動(dòng)態(tài)紋理視頻幀與真實(shí)的動(dòng)態(tài)紋理視頻幀。實(shí)驗(yàn)結(jié)果見表1~表3。表中的MSE、PSNR、SSIM的數(shù)值計(jì)算方法如下:在無真實(shí)數(shù)據(jù)輸入的情況下,計(jì)算每個(gè)模型合成的前10幀動(dòng)態(tài)紋理和真實(shí)動(dòng)態(tài)紋理的MSE、PSNR、SSIM數(shù)值的平均值。PredNet由于自身特性,在合成動(dòng)態(tài)紋理的前30幀時(shí),有真實(shí)數(shù)據(jù)作為輸入。因此,在表中,PredNet部分計(jì)算的是合成的第31幀~40幀動(dòng)態(tài)紋理與對(duì)應(yīng)真實(shí)動(dòng)態(tài)紋理之間的MSE、PSNR、SSIM數(shù)值的平均值。
圖3顯示了5種合成方法在“64cce10”中的視覺質(zhì)量比較。從左到右,列是合成序列的第1幀、第10幀、第30幀、第60幀、第100幀和第150幀。表1展示了原始動(dòng)態(tài)紋理序列“64cce10”和合成序列的MSE、PSNR、SSIM值?!?4cce10”樣本的主要內(nèi)容為擺動(dòng)的燈泡,紋理比較簡(jiǎn)單。
圖3 DynTex數(shù)據(jù)庫中樣本“64cce10”在各種方法上的合成結(jié)果
表1 原始動(dòng)態(tài)紋理序列“64cce10”和合成序列的MSE、PSNR、SSIM值
圖4顯示了5種合成方法在“649i110”中的視覺質(zhì)量比較。表2展示了原始動(dòng)態(tài)紋理序列和合成序列的MSE、PSNR、SSIM值?!?49i110”樣本的主要內(nèi)容為旋轉(zhuǎn)的屋頂,其運(yùn)動(dòng)具有周期性。
圖4 DynTex數(shù)據(jù)庫中樣本“649i110”在各種方法上的合成結(jié)果
表2 原始視頻序列“649i110”和合成序列的MSE、PSNR、SSIM值
圖5顯示了5種合成方法在“6486e10”中的視覺質(zhì)量比較。表3展示了原始動(dòng)態(tài)紋理序列和合成序列的MSE、PSNR、SSIM值。“6486e10”樣本的主要內(nèi)容為轉(zhuǎn)動(dòng)的風(fēng)車,其紋理相對(duì)于燈泡和屋頂更為復(fù)雜。
圖5 DynTex數(shù)據(jù)庫中樣本“6486e10”在各種方法上的合成結(jié)果
表3 原始視頻序列“6486e10”和合成序列的MSE、PSNR、SSIM值
除PredNet方法合成的前30幀外,其他方法在合成動(dòng)態(tài)紋理序列的過程中均無真實(shí)視頻幀作為輸入。從以上3組實(shí)驗(yàn)可以看出,LDS合成的動(dòng)態(tài)紋理視頻幀較為模糊。KernelDT方法無法較好地捕獲動(dòng)態(tài)紋理的運(yùn)動(dòng)狀態(tài)變化,例如燈泡一直在小范圍內(nèi)擺動(dòng),屋頂和風(fēng)車合成結(jié)果的運(yùn)動(dòng)狀態(tài)基本無變化,并且這2種方法都存在使運(yùn)動(dòng)趨于平滑的問題。PredNet在有真實(shí)數(shù)據(jù)輸入時(shí)具有良好的合成結(jié)果(前30幀),但缺乏真實(shí)數(shù)據(jù)輸入時(shí),合成的動(dòng)態(tài)紋理序列質(zhì)量急速下降。在無自糾正機(jī)制的消融實(shí)驗(yàn)中,合成的動(dòng)態(tài)紋理序列存在殘影(燈泡)、模糊(屋頂)及噪聲(風(fēng)車)等問題。本文模型不僅能解決了以上問題,并且具有最好的綜合效果。
本文提出了一種基于自糾正機(jī)制的動(dòng)態(tài)紋理合成模型。在該模型中,利用CAE提取紋理圖像特征,并設(shè)計(jì)了基于SSIM、清晰度和光流等評(píng)估指標(biāo)的自糾正機(jī)制。在實(shí)驗(yàn)部分,設(shè)計(jì)了無自糾正的消融實(shí)驗(yàn),表明了自糾正機(jī)制的有效性,并與LDS、KernelDT和PredNet等典型的參數(shù)化建模方法進(jìn)行了比較。實(shí)驗(yàn)結(jié)果表明,本文的方法可以生成高質(zhì)量的動(dòng)態(tài)紋理視頻幀,具有更好的視覺效果。