支持多樣圖的快速藝術(shù)風(fēng)格學(xué)習(xí)方法
【專利摘要】一種支持多樣圖的藝術(shù)風(fēng)格學(xué)習(xí)方法,輸入為一組或一張藝術(shù)樣圖、一張控制圖和一張目標(biāo)圖像B,輸出為和樣圖具有相似風(fēng)格的藝術(shù)圖B’,包括:用戶從藝術(shù)樣圖中選取出最能代表其風(fēng)格特征的樣圖風(fēng)格塊Ti(i=1,2,…,nexem),nexem為樣圖風(fēng)格塊的個(gè)數(shù)。將Ti轉(zhuǎn)化到Y(jié)IQ空間,選取Y通道值作為特征;計(jì)算B圖的邊緣切向流場directionB;根據(jù)B圖的大小sizeB,生成Ti的高斯金字塔生成B’的坐標(biāo)金字塔S=(S0,…,Sx,…,SL),x∈[0,L],L=log2(sizeB),表示樣圖風(fēng)格塊Ti高斯金字塔第x層的圖像,Sx表示坐標(biāo)金字塔第x層的圖像;讀入控制圖,設(shè)定初始層initl;從最粗糙層initl開始,對B’的坐標(biāo)金字塔從粗糙層Sinitl到最精細(xì)層SL中的每一層Sl循環(huán)執(zhí)行旋轉(zhuǎn)矩陣計(jì)算、超采樣、校正步驟,直到達(dá)到最精細(xì)層停止:執(zhí)行亮度重映射,計(jì)算得到B’。
【專利說明】支持多樣圖的快速藝術(shù)風(fēng)格學(xué)習(xí)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)圖像處理技術(shù)。
【背景技術(shù)】
[0002] 基于學(xué)習(xí)的藝術(shù)風(fēng)格繪制技術(shù)能根據(jù)用戶提供的藝術(shù)風(fēng)格參考圖和一張目標(biāo) 圖像,計(jì)算機(jī)通過學(xué)習(xí)算法對目標(biāo)圖像處理,生成與參考圖具有類似風(fēng)格的結(jié)果圖像。 該類技術(shù)對用戶來說較為簡單,用戶不需要對繪畫風(fēng)格有深入的了解,僅需提供藝術(shù)參 考圖就能得到想要的具有某種藝術(shù)風(fēng)格的作品。該類技術(shù)最早提出于圖像類比框架 (Hertzmann, A. , Jacobs, C. E. , Oliver, N. , Curless, B. , Salesin, D. H. : Image analogies. In:Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques, 2001, pp. 327 - 340),用戶給出一對關(guān)系樣本 A 和 A',A 到 A' 存 在某種風(fēng)格轉(zhuǎn)換關(guān)系,對一張目標(biāo)圖像B,算法合成得到新的藝術(shù)風(fēng)格圖B',使得B'和A' 具有類似的藝術(shù)風(fēng)格。由于關(guān)系樣本中的A圖很難獲得,為了簡化樣本輸入,Ashikhmin提 出了基于單模板的風(fēng)格學(xué)習(xí)算法(Ashikhmin M. Fast texture transfer. IEEE Computer Graphics and Applications. 2003 ;23 (4) : 38 - 43),用戶只需提供一幅風(fēng)格圖像作為模 板,就能執(zhí)行風(fēng)格學(xué)習(xí)。以上兩種方法都采用基于像素的紋理合成在參考圖像中查找最 匹配點(diǎn),像素相似性的度量標(biāo)準(zhǔn)局限于鄰域的平均顏色值、方差,只能傳輸樣圖大體的紋 理特征,但忽略了重要的筆刷方向信息。為了學(xué)習(xí)藝術(shù)樣圖的畫筆特征,Wang等人提出 了一種基于塊紋理合成的風(fēng)格遷移技術(shù)(Wang, B.,Wang, W.,Yang, H.,Sun, J. :Efficien t example-based painting and synthesis of 2d directional texture. IEEE Trans. Vis. Comput. Graph. 10, 266 - 277 (2004)),用戶在藝術(shù)圖中指定一些最具藝術(shù)風(fēng)格代表 性的塊,通過保存樣圖風(fēng)格塊各個(gè)旋轉(zhuǎn)后的版本,在合成時(shí)根據(jù)目標(biāo)圖像的方向場來選擇 對應(yīng)的旋轉(zhuǎn)后樣圖風(fēng)格塊,從而達(dá)到學(xué)習(xí)樣圖畫筆方向的目的,但該過程較為復(fù)雜,處理 速度也很慢。2011年,Lee等人提出了有向紋理合成的風(fēng)格學(xué)習(xí)技術(shù),在鄰域匹配度量中 加入了梯度因子用于度量方向場的影響,捕獲了樣圖的筆刷信息(Lee, Hochang, Sanghyun Seo, and Kyunghyun Yoon. Directional texture transfer with edge enhancement. Computers&Graphics 35.1(2011):81-91)
[0003] 藝術(shù)家在創(chuàng)建一幅藝術(shù)作品時(shí),通常使用具有相似風(fēng)格的筆刷在畫布上繪制,但 是會(huì)根據(jù)繪制物體的重要程度不同,選擇不同粗細(xì)的筆刷。用戶也希望能學(xué)習(xí)多張樣圖的 風(fēng)格,傳輸給目標(biāo)圖像的指定區(qū)域,得到多樣性的藝術(shù)設(shè)計(jì)體驗(yàn)。而以上這些方法大都學(xué)習(xí) 整張樣圖的風(fēng)格,無法針對目標(biāo)圖像中物體區(qū)域的特點(diǎn)繪制不同的筆刷,也無法將多張樣 圖的藝術(shù)風(fēng)格傳輸給目標(biāo)圖像的不同區(qū)域。另外,以上方法在合成時(shí)后合成像素/塊的值 依賴于已合成的像素/塊,使得對每個(gè)像素的處理無法并行執(zhí)行,風(fēng)格學(xué)習(xí)速度有待提高。 Nvidia公司推出的CUDA編程模型為實(shí)現(xiàn)實(shí)時(shí)藝術(shù)風(fēng)格傳輸算法提供了很好的技術(shù)支持。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要克服現(xiàn)有技術(shù)的上述缺點(diǎn),提供一種支持多樣圖的藝術(shù)風(fēng)格學(xué)習(xí)方法, 快速地將多張樣圖的藝術(shù)風(fēng)格傳輸給目標(biāo)圖像的不同區(qū)域,使得生成圖像同時(shí)具有藝術(shù)樣 圖的紋理和畫筆風(fēng)格,并且整個(gè)處理過程可以在GPU上并行執(zhí)行,提高風(fēng)格學(xué)習(xí)的效率。
[0005] -種支持多樣圖的藝術(shù)風(fēng)格學(xué)習(xí)方法,輸入為一組或一張藝術(shù)樣圖、一張控制圖 和一張目標(biāo)圖像B,輸出為和樣圖具有相似風(fēng)格的藝術(shù)圖B',包括如下步驟 :
[0006] 步驟1:用戶從藝術(shù)樣圖中選取出最能代表其風(fēng)格特征的樣圖風(fēng)格塊f (i = 1,2,. . .,nexem),nexem為樣圖風(fēng)格塊的個(gè)數(shù)。將f轉(zhuǎn)化到Y(jié)IQ空間,選取Y通道值作為特 征;
[0007] 步驟2 :計(jì)算B圖的邊緣切向流場directionB ;所述步驟2中,為了使生成的藝術(shù) 圖像具有樣圖的筆刷風(fēng)格,需要構(gòu)造一個(gè)目標(biāo)圖像B的光滑連貫的方向場,指導(dǎo)圖像合成; 計(jì)算B圖的邊緣切向流場(Edge Tangent Flow)作為它的方向場,對B圖的每個(gè)像素點(diǎn)都 賦予了一個(gè)方向;邊緣切向流場不但光滑連貫而且保持了重要特征;其中t(p)表示計(jì)算得 到的P點(diǎn)處的邊緣切向流場,t (p)x和t (p)y分別表示邊緣切向流場在x和y軸方向上的偏 移,則該像素點(diǎn)的方向?yàn)? =arctan(-t(p)x/t(p)y);
[0008] 步驟3 :生成f的高斯金字塔T_(T:;.....T:.....T;Me|()./」。根據(jù)B圖的大小sizeB,生 成B'的坐標(biāo)金字塔S = (S。,…,Sx,…,Sj, x G [0, L], L = log2(sizeB)表示金字塔的 層數(shù),T:表示樣圖風(fēng)格塊f的高斯金字塔第x層的圖像,Sx表示坐標(biāo)金字塔S第x層的圖 像;
[0009] 所述步驟3中,f的高斯金字塔為(T,; T:.....T; :).A-S|0./.|,其中T丨表示高斯金 字塔的最模糊層,T!表示高斯金字塔的最精細(xì)層;坐標(biāo)金字塔S的最精細(xì)層&的大小 與B圖一樣,&的初始值都賦為0 ;對&執(zhí)行下采樣得到坐標(biāo)金字塔的每一層S= (S。,. . .,Sx,. . .,SJ,xG[0,L],SQ為最粗糙層;SX (p)表示坐標(biāo)金字塔第x層像素點(diǎn)p的 值,它包含了兩個(gè)值(Pu,Pi),其中Pu是一個(gè)二維坐標(biāo),表示像素點(diǎn)在圖像橫向和縱向上的 取值,Pi為樣圖索引,sx(p) = (pu,Pi)表明p點(diǎn)的值和T1中的pu點(diǎn)一樣;
[0010] 步驟4 :讀入控制圖,設(shè)定初始層initl ;所述步驟4中,讀入的控制圖是一張灰度 圖,每個(gè)像素點(diǎn)的值idx指示了該點(diǎn)學(xué)習(xí)第idx個(gè)樣圖風(fēng)格塊的特征;根據(jù)控制圖指定初始 層initl,滿足S initl的大小和控制圖一樣;根據(jù)控制圖的值,對Sinitl的像素點(diǎn)賦值。其中 S initl(P)中Pu的取值為隨機(jī)取得,大小不超過控制圖的長度和寬度,Pi被賦為idx,表示該 像素點(diǎn)的風(fēng)格取自于第idx個(gè)樣圖風(fēng)格塊;
[0011] 步驟5 :從最粗糙層initl開始,對B'的坐標(biāo)金字塔從粗糙層Sinitl到最精細(xì)層& 中的每一層&循環(huán)執(zhí)行如下步驟,直到達(dá)到最精細(xì)層停止:
[0012] 步驟5. 1 :讀取B圖的流場directionB,計(jì)算每個(gè)點(diǎn)的旋轉(zhuǎn)矩陣;所述步驟5. 1中, 根據(jù)B圖的流場directionB計(jì)算每個(gè)點(diǎn)的旋轉(zhuǎn)矩陣,在步驟2中計(jì)算得到每個(gè)像素點(diǎn)p的 方向?yàn)?,旋轉(zhuǎn)矩陣R的每個(gè)像素點(diǎn)計(jì)算如下:
【權(quán)利要求】
1.支持多樣圖的藝術(shù)風(fēng)格學(xué)習(xí)方法,輸入為一組或一張藝術(shù)樣圖、一張控制圖和一張 目標(biāo)圖像B,輸出為和樣圖具有相似風(fēng)格的藝術(shù)圖B',包括如下步驟: 步驟1 :用戶從藝術(shù)樣圖中選取出最能代表其風(fēng)格特征的樣圖風(fēng)格塊= 1,2,. . .,nexem),nexem為樣圖風(fēng)格塊的個(gè)數(shù)。將f轉(zhuǎn)化到Y(jié)IQ空間,選取Y通道值作為特 征; 步驟2 :計(jì)算B圖的邊緣切向流場directionB ;所述步驟2中,為了使生成的藝術(shù)圖像 具有樣圖的筆刷風(fēng)格,需要構(gòu)造一個(gè)目標(biāo)圖像B的光滑連貫的方向場,指導(dǎo)圖像合成;計(jì)算 B圖的邊緣切向流場作為它的方向場,對B圖的每個(gè)像素點(diǎn)都賦予了一個(gè)方向;邊緣切向流 場不但光滑連貫而且保持了重要特征;其中t(p)表示計(jì)算得到的p點(diǎn)處的邊緣切向流場, 分別表示邊緣切向流場在x和y軸方向上的偏移,則該像素點(diǎn)的方向?yàn)? = arctan (-t (p) x/t (p) y); 步驟3:生成疒的高斯金字塔1=戌,...,乜...尤),1£[0,1]。根據(jù)8圖的大小5^必,生成8' 的坐標(biāo)金字塔 S = (SQ, ? ? ?,Sx, ? ? ?,S),x G [〇, L],L = log2 (sizeB)表示金字塔的層數(shù),T: 表示樣圖風(fēng)格塊I"的高斯金字塔第x層的圖像,Sx表示坐標(biāo)金字塔S第x層的圖像; 所述步驟3中,f的高斯金字塔為(T::.....T;.....T;:).xe|0.L|,其中宄表示高斯金字 塔的最模糊層,C表示高斯金字塔的最精細(xì)層;坐標(biāo)金字塔S的最精細(xì)層\的大小 與B圖一樣,&的初始值都賦為0 ;對&執(zhí)行下采樣得到坐標(biāo)金字塔的每一層S = (S。,. . .,Sx,. . .,SJ,x G [〇, L],SQ為最粗糙層;Sx(p)表示坐標(biāo)金字塔第x層像素點(diǎn)p的 值,它包含了兩個(gè)值(Pu,Pi),其中Pu是一個(gè)二維坐標(biāo),表示像素點(diǎn)在圖像橫向和縱向上的 取值,Pi為樣圖索引,sx(p) = (pu, Pi)表明p點(diǎn)的值和T1中的pu點(diǎn)一樣; 步驟4 :讀入控制圖,設(shè)定初始層initl ;所述步驟4中,讀入的控制圖是一張灰度圖, 每個(gè)像素點(diǎn)的值idx指示了該點(diǎn)學(xué)習(xí)第idx個(gè)樣圖風(fēng)格塊的特征;根據(jù)控制圖指定初始 層initl,滿足Sinitl的大小和控制圖一樣;根據(jù)控制圖的值,對Sinitl的像素點(diǎn)賦值。其中 Sinitl(P)中Pu的取值為隨機(jī)取得,大小不超過控制圖的長度和寬度,Pi被賦為idx,表示該 像素點(diǎn)的風(fēng)格取自于第idx個(gè)樣圖風(fēng)格塊; 步驟5 :從最粗糙層initl開始,對B'的坐標(biāo)金字塔從粗糙層Sinitl到最精細(xì)層&中的 每一層&循環(huán)執(zhí)行如下步驟,直到達(dá)到最精細(xì)層停止: 步驟5. 1 :讀取B圖的流場directionB,計(jì)算每個(gè)點(diǎn)的旋轉(zhuǎn)矩陣;所述步驟5. 1中,根據(jù) B圖的流場directionB計(jì)算每個(gè)點(diǎn)的旋轉(zhuǎn)矩陣,在步驟2中計(jì)算得到每個(gè)像素點(diǎn)p的方向 為9,旋轉(zhuǎn)矩陣R的每個(gè)像素點(diǎn)計(jì)算如下:
旋轉(zhuǎn)矩陣主要用于在校正步驟中旋轉(zhuǎn)樣圖和合成圖的鄰域,使合成結(jié)果的紋元按目標(biāo) 圖像的流場方向變化; 步驟5. 2 :上采樣(upsample) Si得到S1+1 ;所述步驟5. 2中,對較粗糙層執(zhí)行上采 樣步驟得到一個(gè)分辨率更高的較精細(xì)層& ;上采樣只對圖像坐標(biāo)pu進(jìn)行,將父層次中 每個(gè)點(diǎn)根據(jù)旋轉(zhuǎn)矩陣R和偏移量△進(jìn)行旋轉(zhuǎn)偏移,保證從粗糙層到精致層過渡時(shí)方向場的 連貫性;但保持樣本索引Pi不變,從而保證上采樣后點(diǎn)的特征取自同一張樣圖的更精細(xì)層。 因此Si層每個(gè)像素值,其Pi值與層相同,pu值由層的像素值加上相應(yīng)的偏移量得 至IJ。公式如下所示: SjPi] = ShEpJ
步驟 5. 3 :校正(correction) S1+1 ; 所述步驟5. 3中,為了對結(jié)果圖像的每個(gè)點(diǎn)S (p)賦予最適合的值,需要執(zhí)行校正步驟, 根據(jù)目標(biāo)圖像像素點(diǎn)的方向在風(fēng)格樣圖中找到鄰域最相似的點(diǎn); 定義如下同時(shí)考慮灰度和方向信息的距離度量準(zhǔn)則diStance( ?),來衡量待合成像素 和候選像素的相似程度。
其中P為待合成圖\中一點(diǎn),q為樣圖中的一個(gè)候選點(diǎn),乂⑷,' (P)分別 表示待合成圖、樣圖、目標(biāo)圖像第1層點(diǎn)的鄰域。I I I |2SL2距離,w為權(quán)值。距離度量的第 一項(xiàng)定義了樣圖風(fēng)格塊與目標(biāo)圖像之間的顏色差值,第二項(xiàng)定義了樣圖風(fēng)格塊與合成圖的 方向差值。若樣圖中具有明顯的方向特征,可將w取的大些,如取w = 0.8 ; 由于要沿著目標(biāo)圖像的流場放置合成結(jié)果的筆刷,因此在鄰域匹配時(shí)要同時(shí)對樣圖鄰 域和合成圖鄰域按流場方向旋轉(zhuǎn)。旋轉(zhuǎn)后待合成點(diǎn)P的鄰域乂,(/0計(jì)算如下:
其中n為鄰域窗口的大小,N表示大小為nXn窗口內(nèi)所有像素點(diǎn)的集合。(pu, Pi) 為鄰域窗口內(nèi)的點(diǎn)。?<△)是經(jīng)過標(biāo)準(zhǔn)化處理的旋轉(zhuǎn)逆矩陣和鄰域偏移量的乘積, 舛(凡)A|| + 0.5」。凡巧⑷表示Pu坐標(biāo)點(diǎn)的8個(gè)最近鄰。以凡?⑷)為樣圖中 的坐標(biāo)值,從而預(yù)測的合成點(diǎn)的坐標(biāo)為+P(A))-i?(AMA)。最后加上樣圖鄰域空間的偏 移量A ; 樣圖中候選點(diǎn)q的鄰域乂 (9)計(jì)算如下: ihi^? 其中PU__U和Pbandi為候選點(diǎn)在樣本中的坐標(biāo)和樣圖索引; candi(p) = {puj.p^^}表示候選點(diǎn)集合。為了加快鄰域搜索過程,不對樣圖中的 所有鄰域執(zhí)行搜索,只在待合成p點(diǎn)的k-coherence候選集candi (p)中進(jìn)行搜索。 通過采用k-coherence方法計(jì)算得到候選集candi (p),計(jì)算公式如下: candi(p) = |C/' (S, [pu + A]) - R(pu )A | |A| < l] 其中Cf(?)表示一個(gè)集合,存放的是對P的第1層全搜索得到的k個(gè)與a最相似的點(diǎn), 然后減去旋轉(zhuǎn)矩陣R旋轉(zhuǎn)的偏移,得到候選點(diǎn); 計(jì)算目標(biāo)圖像鄰域'時(shí),無需旋轉(zhuǎn)鄰域,只需在氏圖中取p點(diǎn)的方形鄰域即可; 在計(jì)算得到乂(辦八17;(9),義,(^)后,根據(jù)距離度量虹8丨311〇6(*)在候選集〇311(1;[(?)中找 出與待合成點(diǎn)距離最小的qmin點(diǎn)作為合成結(jié)果,并將qmin的坐標(biāo)和樣圖索引賦值給Si (p);
步驟6 :執(zhí)行亮度重映射,計(jì)算得到B' ; 所述步驟6中,根據(jù)合成最精細(xì)層&中存儲(chǔ)的樣圖索引對目標(biāo)圖像執(zhí)行亮度重映射, 使得目標(biāo)圖和樣圖風(fēng)格塊的統(tǒng)計(jì)特性基本一致; 首先根據(jù)Sjpu)的值及樣圖風(fēng)格塊P的亮度值(Y通道值),還原得到B'圖p點(diǎn)的亮 度值B' Y(p);然后根據(jù)相應(yīng)的樣圖風(fēng)格塊的顏色均值和方差,對B' Y(p)執(zhí)行亮度重映射; B、人P) = T、SLiPJ) (p) = 5y ( p) - m; ,, ) + 其中為風(fēng)格塊P的亮度平均值,~?和〇 B為樣圖風(fēng)格塊P和B圖的亮度方差值, BY(p)為B圖p點(diǎn)處的亮度值; 最后將B'的亮度值B'Y(p)與B圖中IQ通道的值&⑦)和仏⑦)相融合,將圖像從HQ 空間轉(zhuǎn)化到RGB空間,計(jì)算得到B'圖RGB三個(gè)通道的值: BJE (p) = BJY (p) +0. 956^! (p) +0. 620*Bq (p) B,G (p) = B,Y (p) -0? 272*8! (p) -0? 647*BQ (p) B,B(p) = B,Y(p)-1. 108*BI(p)+l. 705*BQ(p) 最終得到的藝術(shù)風(fēng)格圖B'同時(shí)具有B的顏色特征和樣圖的畫筆風(fēng)格特征。
【文檔編號】G06T5/50GK104346789SQ201410408573
【公開日】2015年2月11日 申請日期:2014年8月19日 優(yōu)先權(quán)日:2014年8月19日
【發(fā)明者】范菁, 史曉穎, 董天陽, 湯穎 申請人:浙江工業(yè)大學(xué)