基于紋理傳輸?shù)亩囡L(fēng)格視頻藝術(shù)化處理方法
【專利說明】基于紋理傳輸?shù)亩囡L(fēng)格視頻藝術(shù)化處理方法 所屬技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及一種計(jì)算機(jī)圖像處理技術(shù)。 現(xiàn)有技術(shù)
[0002] 視頻藝術(shù)化處理是計(jì)算機(jī)非真實(shí)感繪制的一個(gè)重要研究分支,它采用藝術(shù)的非真 實(shí)感繪制方法呈現(xiàn)動(dòng)態(tài)視頻場景,把用戶給定的一段視頻轉(zhuǎn)化為帶有不同藝術(shù)風(fēng)格的視 頻,使之表現(xiàn)出與原視頻不同的情感特征,在電影、動(dòng)漫制作和視頻娛樂等方面有著廣泛的 應(yīng)用。
[0003] 現(xiàn)有的基于光流的視頻藝術(shù)化方法利用光流信息來指導(dǎo)標(biāo)記(筆刷)或者紋理進(jìn) 行傳輸來生成相應(yīng)藝術(shù)風(fēng)格的視頻。在基于標(biāo)記的方法中,利用彎曲標(biāo)記來模擬畫家畫筆 的粗細(xì)、走向等屬性,可以實(shí)現(xiàn)多種風(fēng)格渲染。但其缺點(diǎn)是標(biāo)記的屬性過多且不易維護(hù),實(shí) 現(xiàn)起來比較困難,部分算法還需要人工輔助,增加了操作的難度?,F(xiàn)有的基于紋理的視頻藝 術(shù)化方法包含基于紋理層傳輸?shù)姆椒ê椭苯雍铣梢曨l幀兩類方法?;诩y理層傳輸?shù)姆椒?通過傳輸與視頻分辨率等大的整塊紋理層來模擬水彩畫風(fēng)格,由于其使用的各向同性的單 一紋理所能表達(dá)風(fēng)格種類有限,使得該方法生成的視頻藝術(shù)化風(fēng)格單一,無法擴(kuò)展生成多 類不同的視頻風(fēng)格。直接合成視頻幀的方法基于單幀紋理合成的思想實(shí)現(xiàn)了自定義的多風(fēng) 格處理,但該方法并沒有使用一個(gè)紋理層進(jìn)行傳輸,直接在視頻幀上合成、分塊傳輸,容易 破壞原有視頻場景的圖像特征,因此該方法需要采用一系列復(fù)雜的修補(bǔ)方法;同時(shí)為了保 證時(shí)域連續(xù)性,該方法要對光流場進(jìn)行優(yōu)化,并計(jì)算相鄰塊之間的相關(guān)性,進(jìn)一步提高了該 方法的計(jì)算復(fù)雜度。且上述基于紋理的視頻藝術(shù)化方法都沒有考慮帶有變化方向場的紋理 生成,從而降低了其對一些特定藝術(shù)風(fēng)格的模擬效果,如筆刷走向較明顯的油畫風(fēng)格。
[0004] 基于分割的方法采用類似于圖像分割算法的方法實(shí)現(xiàn)視頻風(fēng)格化處理,不同的是 基于分割的視頻藝術(shù)化算法不僅要使各個(gè)區(qū)域能夠精確分割,還要保證分割后區(qū)域的幀間 連續(xù)性。目前基于分割的算法渲染樣式比較單一,大多數(shù)只是模擬卡通風(fēng)格,雖然有些算法 結(jié)合了基于標(biāo)記的方法實(shí)現(xiàn)了多風(fēng)格渲染,但實(shí)現(xiàn)起來比較復(fù)雜。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要克服現(xiàn)有技術(shù)的上述缺點(diǎn),提供一種視頻藝術(shù)化合成質(zhì)量更高、較高的 視頻時(shí)域連續(xù)性、速度快、易于實(shí)現(xiàn)的基于紋理傳輸?shù)亩囡L(fēng)格視頻藝術(shù)化處理方法。
[0006] 本發(fā)明采用紋理傳輸?shù)姆椒?,通過用戶輸入源視頻以及不同藝術(shù)風(fēng)格的樣本紋理 渲染出帶有相應(yīng)藝術(shù)風(fēng)格的風(fēng)格化視頻。同時(shí)結(jié)合基于方向場的紋理合成及修補(bǔ)方法實(shí)現(xiàn) 方向感明顯的藝術(shù)風(fēng)格(如油畫等)的模擬。
[0007] 本發(fā)明的視頻藝術(shù)化算法分為三大部分,分別是紋理層的合成傳輸與修補(bǔ)、視頻 抽象操作以及最后的視頻紋理層融合,最終得到多風(fēng)格視頻藝術(shù)化結(jié)果。
[0008] 方法中,先由用戶選擇帶有某種風(fēng)格筆刷的樣本紋理作為期望學(xué)習(xí)的風(fēng)格,該樣 本紋理和源視頻一起成為本發(fā)明的多風(fēng)格視頻藝術(shù)化系統(tǒng)的輸入。對于視頻的第一幀,采 用基于當(dāng)前幀方向場合成得到一個(gè)與視頻分辨率相同的各向異性紋理傳輸層;接下來,讓 這個(gè)紋理層隨著光流場信息進(jìn)行傳輸,與此同時(shí),對傳輸過程中出現(xiàn)的紋理拉伸走樣部分 進(jìn)行有限的高效紋理修補(bǔ)。視頻藝術(shù)化的另一部分即視頻抽象,通過抽象去掉視頻中的不 必要細(xì)節(jié)和立體信息。最后經(jīng)過紋理傳輸層和抽象后視頻的融合,輸出藝術(shù)化后的結(jié)果視 頻。
[0009] 基于紋理傳輸?shù)亩囡L(fēng)格視頻藝術(shù)化處理方法,包含如下四個(gè)步驟:
[0010] 步驟1 :基于方向場的多風(fēng)格紋理合成,采用基于方向場的紋理合成方法,根據(jù)視 頻相關(guān)信息合成出一個(gè)紋理層,使合成的紋理層不僅有樣本紋理的質(zhì)地特征,還能動(dòng)態(tài)體 現(xiàn)視頻中各種場景物體的物體輪廓、走向等信息。
[0011] I. 1生成邊緣切向場(ETF)數(shù)據(jù),并保存成圖片格式。
[0012] 1. 2基于塊的紋理合成生成一個(gè)與視頻分辨率大小相同的紋理層,其合成過程如 下:
[0013] 1. 2. 1初始化系統(tǒng)參數(shù),設(shè)定合成窗口及鄰域大小,根據(jù)視頻幀生成對應(yīng)的方向 場。
[0014] 1. 2. 2根據(jù)合成窗口大小,按照從左到右,由上到下的順序掃面對應(yīng)幀的方向場, 通過計(jì)算合待成窗口內(nèi)像素點(diǎn)的平均方向場方向來決定此待合成窗口的最終方向。
[0015] 1. 2. 3在求得待合成窗口的方向后,在候選紋理集內(nèi)選擇對應(yīng)方向的樣本紋理,按 照基于塊的紋理合成方法合成完整紋理傳輸層。
[0016] 步驟2 :紋理層傳輸與修補(bǔ),把步驟一中合成的紋理層隨光流場進(jìn)行傳輸。為了應(yīng) 對傳輸過程中產(chǎn)生的紋理走樣問題,需要對紋理層執(zhí)行有限修補(bǔ)。
[0017] 2. 1基于光流場的紋理層傳輸:
[0018] 2. I. 1提取視頻光流場,保存在圖片中。
[0019] 2. 1. 2根據(jù)提取到的光流場對步驟一中合成的紋理層進(jìn)行傳輸,傳輸公式如(1)。
[0020] P (U (X, t)) = P0 (U (X, t)) +V (X, t) (1)
[0021] X = (X, y)表示t幀紋理坐標(biāo),U = (X, t)表示t幀屏幕坐標(biāo),P。(U(X, t))表示t 幀待傳輸紋理中點(diǎn)X = (X,y)的像素值,t時(shí)刻視頻幀的X點(diǎn)的運(yùn)動(dòng)向量則表示為V(X, t) =Xt i-Xt,我們可以在光流場中提取到所需要的所有像素點(diǎn)的運(yùn)動(dòng)向量。這樣,在當(dāng)前幀的 紋理層P完成紋理坐標(biāo)到屏幕坐標(biāo)的映射后,會(huì)在下一幀的紋理傳輸過程中成為匕,以此重 復(fù),直至完成全部幀的傳輸。
[0022] 2. 2紋理層的修補(bǔ):
[0023] 2. 2. 1定位發(fā)生紋理走樣的像素點(diǎn):由于紋理傳輸時(shí),只是對紋理坐標(biāo)的傳遞映 射,而紋理拉伸走樣問題就是因?yàn)樵谙袼攸c(diǎn)的運(yùn)動(dòng)軌跡上出現(xiàn)了過多重復(fù)的像素而導(dǎo)致 的。因此,我們只需要在每個(gè)像素點(diǎn)紋理坐標(biāo)的3X3鄰域內(nèi)查找是否含有重復(fù)坐標(biāo)值,若 有重復(fù)值,即可判斷為此像素點(diǎn)發(fā)生走樣,反之則無。
[0024] 2. 2. 2紋理合成的鄰域選取:把紋理合成用于紋理傳輸時(shí)的紋理修補(bǔ),并不能簡 單的選取一個(gè)L型或是I型鄰域。為了使修補(bǔ)后的紋理與原始紋理層中未變形部分能夠良 好銜接),我們的鄰域選擇會(huì)根據(jù)紋理發(fā)生走樣時(shí)的拉伸方向的不同而有所區(qū)別,我們把紋 理拉伸方向量化為水平和垂直方向上的4個(gè)方向,對應(yīng)的鄰域形狀有「、-|和L型。
[0025] 2. 2. 3局部紋理合成順序的確定:因?yàn)檫x擇的鄰域形狀的不同,所以在最終的局 部合成時(shí)的順序也不盡相同。對于具體的局部合成順序,以鄰域形狀為-I為例說明,在全 局掃描順序下,掃描到變形區(qū)域1時(shí),系統(tǒng)會(huì)檢測此時(shí)的變形方向,在確定變形方向向左 時(shí),系統(tǒng)會(huì)把當(dāng)前的待修補(bǔ)塊1放入堆棧里,然后按照變形方向反向繼續(xù)掃描,直至掃描到 圖像邊緣或者未變形塊時(shí)停止(塊2、3)。此時(shí),開始從堆棧中取出待合成塊,由于堆棧的特 性為先進(jìn)后出,所以從最后一個(gè)進(jìn)入堆棧的塊開始,按照右上L型鄰域開始合成。
[0026] 步驟3 :基于GPU的快速視頻抽象,利用GPU加速的彩色圖像形態(tài)學(xué)操作。
[0027] 在灰度圖的形態(tài)學(xué)操作中,膨脹操作(Dilation)可去掉圖中較暗的部分,使較高 亮度的部分得到傳播。腐蝕操作(Erosion)剛好相反,會(huì)使圖中較暗部分得到傳播。
[0028] 讓I代表一幅圖像,B表示一個(gè)形態(tài)學(xué)操作的結(jié)構(gòu)元,它包含了當(dāng)前像素點(diǎn)的鄰域 坐標(biāo),X表示圖像中的一個(gè)像素點(diǎn)。那么,形態(tài)學(xué)膨脹操作β和腐蝕操作ε就可定義為:
[0030] 形態(tài)學(xué)開操作(Opening)是腐蝕操作和膨脹操作的順序組合;而形態(tài)學(xué)閉操作 (Closing)是膨脹操作和腐蝕操作的順序組合。我們通過交替使用形態(tài)學(xué)開閉操作,使視頻 得到抽象。
[0031] 為了把基于圖像的形態(tài)學(xué)操作算法應(yīng)用到視頻抽象中,本發(fā)明也在時(shí)間和空間上 擴(kuò)展了形態(tài)學(xué)操作,其結(jié)構(gòu)元的選取不再是2維空間中的矩陣,而是時(shí)空3維空間上的3D 結(jié)構(gòu)元。
[0032] 在確定結(jié)構(gòu)元的選取后,利用GPU的并行計(jì)算框架CUDA實(shí)現(xiàn)對視頻的連續(xù) 抽象。根據(jù)視頻的大?。僭O(shè)視頻共有200幀,分辨率為640X480)