周華平, 汪曉燕, 桂海霞
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
非真實(shí)感繪制(Non-photorealistic rendering,簡(jiǎn)稱(chēng)NPR)是自1995年開(kāi)始逐漸形成的一項(xiàng)技術(shù),發(fā)展至今已經(jīng)成為計(jì)算機(jī)圖形學(xué)領(lǐng)域的一個(gè)熱點(diǎn)[1]。NPR通常是將自然圖片轉(zhuǎn)換為鉛筆畫(huà)、油畫(huà)、水粉畫(huà)或鋼筆畫(huà)等風(fēng)格。與真實(shí)感繪制(Photorealistic rendering)強(qiáng)調(diào)將原圖中所有細(xì)節(jié)展現(xiàn)出來(lái)不同的是,非真實(shí)感繪制以突出原圖欲傳達(dá)的重點(diǎn)為目標(biāo),必要時(shí)會(huì)舍棄一些細(xì)節(jié)以便更好得突出原圖主體。鉛筆畫(huà)的生成是NPR最為常見(jiàn)的一種表現(xiàn)形式,也是近年來(lái)學(xué)者研究的重點(diǎn)。遺憾的是,眾多學(xué)者都將目光放在輪廓圖和色調(diào)圖的生成兩個(gè)部分,而忽視了NPR突出重點(diǎn)區(qū)域這一特點(diǎn),而這正是非真實(shí)繪制區(qū)別于真實(shí)繪制的最主要的特點(diǎn)。針對(duì)這個(gè)問(wèn)題提出了一種改進(jìn)的自然圖像生成鉛筆畫(huà)算法,用一種以頻率作為篩選條件的算法提取原圖的主體,將原圖分為主體區(qū)域和背景區(qū)域,對(duì)不同的區(qū)域進(jìn)行不同的參數(shù)設(shè)置,以突出原圖的主體,使生成的鉛筆畫(huà)更符合NPR定義。
鉛筆畫(huà)生成技術(shù)以其廣大的應(yīng)用場(chǎng)景與經(jīng)濟(jì)價(jià)值,吸引著國(guó)內(nèi)外眾多學(xué)者對(duì)其生成過(guò)程進(jìn)行不斷探索與改進(jìn)。Lu等人[1]結(jié)合線條與紋理生成鉛筆畫(huà)的方法比較經(jīng)典,通過(guò)卷積運(yùn)算生成筆畫(huà)圖S,調(diào)整色調(diào)結(jié)合紋理生成色調(diào)紋理圖T,最后將圖S與圖T融合,該算法生成效果自然。黃志勇等人[2]為追求更多細(xì)節(jié),在Lu的算法的基礎(chǔ)上,生成不同的層次與尺度,進(jìn)行不同的筆畫(huà)模擬,使原圖中所有細(xì)節(jié)被清晰展現(xiàn)。文獻(xiàn)[3]在生成紋理步驟中進(jìn)行改進(jìn),提取邊緣圖后通過(guò)運(yùn)動(dòng)模糊處理得到紋理圖,以獲得與手繪風(fēng)格比較接近的素描圖。文獻(xiàn)[4]分區(qū)域?qū)πK圖形進(jìn)行紋理模擬,首先對(duì)原圖做霓虹處理后反相得到輪廓圖,將輪廓圖劃分為若干個(gè)子區(qū)域,最后在每個(gè)子區(qū)域內(nèi)用LIC生成紋理圖,將處理過(guò)的子圖合并得到輸出圖片。
可以發(fā)現(xiàn):分步生成線條輪廓圖與色調(diào)紋理圖,再將二者結(jié)合生成鉛筆畫(huà)是比較常用的方法。
攝影學(xué)中將人們感興趣的事物稱(chēng)為主體,計(jì)算機(jī)圖形學(xué)將主體所在區(qū)域定義為顯著性區(qū)域(Saliency area,簡(jiǎn)稱(chēng)SA)。為突出主體,應(yīng)對(duì)顯著性區(qū)域做特殊處理,這就要求提取原圖的顯著區(qū)域。顯著性區(qū)域的提取可分為兩大類(lèi)方法,一類(lèi)是做視覺(jué)仿真,另一類(lèi)是計(jì)算對(duì)比度,而對(duì)比度又可細(xì)分為局部和全局兩種。
IT模型[5]是第一個(gè)較為完善的顯著性檢測(cè)算法,Itti仿真人類(lèi)搜尋顯著物體的過(guò)程,提取方位、顏色和灰度三個(gè)特征的拓?fù)鋱D,計(jì)算顯著區(qū)域,由于提出時(shí)間早,后人在此模型上做出了許多改進(jìn)。AC算法[6]通過(guò)計(jì)算顏色與灰度的局部對(duì)比度確定顯著區(qū)域,計(jì)算簡(jiǎn)單,但忽略了全局結(jié)構(gòu)。LC算法[7從顏色的全局對(duì)比度出發(fā),由于采用線性表達(dá)式,導(dǎo)致存在稀有色調(diào)時(shí)對(duì)判斷結(jié)果影響較大。RC算法[8]同時(shí)考慮顏色和空間關(guān)系的影響,但由于在預(yù)處理階段對(duì)原圖進(jìn)行了分割,加大了計(jì)算時(shí)間,且輸出結(jié)果沒(méi)有明顯的邊界。
選用了頻率協(xié)調(diào)(Frequency-tuned,簡(jiǎn)稱(chēng)FT)算法,F(xiàn)T算法[9]將頻率作為篩選條件,以顏色與亮度作為影響顯著性的因素。該算法輸出的圖片不損失分辨率,保留了圖形邊界,且計(jì)算準(zhǔn)確率最高。因此顯著性區(qū)域的提取借鑒了該方法,以便突出主體。
現(xiàn)有的顯著性提取算法存在:1.檢測(cè)不全面;2.顯著圖缺失邊界;3.計(jì)算復(fù)雜;4.輸出圖分辨率過(guò)低等問(wèn)題。下面將會(huì)從上述問(wèn)題產(chǎn)生的原因給出選擇FT算法的原因以及參數(shù)設(shè)置的依據(jù)。
FT模型通過(guò)設(shè)置一定的頻率范圍作為滿足顯著的條件,計(jì)算亮度、顏色與灰度均值的歐幾里得距離判斷顯著與否。假設(shè)fh為高頻截止值,fl為低頻截止值。因?yàn)橹黧w過(guò)大時(shí)處于低頻域,導(dǎo)致問(wèn)題1的出現(xiàn),因此,應(yīng)將fl設(shè)置得足夠低。邊緣處于高頻域,fh足夠大即可解決問(wèn)題2。為了避免噪聲被檢測(cè)到,需將頻域內(nèi)的最高值剔除掉。至此,初步確定了一個(gè)帶寬為[fl,fh]的有限區(qū)間,為使檢測(cè)效果最好,不設(shè)置固定的范圍。
為解決問(wèn)題3,選擇Matlab中可直接調(diào)用的高斯差分函數(shù)(Difference of Gaussians,簡(jiǎn)稱(chēng)DoG)作為帶通濾波器。DoG公式定義為:
G(x,y,σ1)-G(x,y,σ2)
(1)
(1)式中,σ1和σ2是DoG算子的標(biāo)準(zhǔn)差,當(dāng)σ1>σ2時(shí),為獲得滿足條件的fl和fh,將σ1設(shè)置為無(wú)窮大,σ2無(wú)窮小(反之亦成立)。以顏色和亮度作為特征值計(jì)算顯著性,由于Lab模式比RGB模式多一個(gè)亮度通道“L”,故需將平滑后的圖像由RGB模式轉(zhuǎn)化為L(zhǎng)ab模式。通過(guò)計(jì)算Lab模式下每個(gè)點(diǎn)與灰度均值的歐幾里得距離判斷其視覺(jué)重要性,表達(dá)式如下:
S(x,y)=‖IA-G(x,y)‖
(2)
(2)式中,IA為圖像平均灰度值,G(x,y)是平滑后點(diǎn)(x,y)處的Lab信息,其中G(x,y)=[LG,aG,bG]T,║║表示第二范數(shù)。
文獻(xiàn)[1]為減少計(jì)算量,向下取樣對(duì)圖片進(jìn)行壓縮,嚴(yán)重縮小了圖片分辨率,導(dǎo)致問(wèn)題4的出現(xiàn)。而FT算法完整保留了原圖分辨率,輸出圖片與原始圖片保持相同尺寸,效果如圖1。

a.輸入圖像 b.顯著性區(qū)域檢測(cè) c.顯著性區(qū)域提取
畫(huà)家在繪制鉛筆畫(huà)的時(shí)候,通常先用簡(jiǎn)單線條完成整體輪廓,然后添加聚集的弧線來(lái)表示顏色和紋理。在生成鉛筆畫(huà)的時(shí)候采取同樣的方法,分步生成線條圖與色調(diào)紋理圖。
為生成鉛筆畫(huà)輪廓,許多算法與文獻(xiàn)[4]一樣對(duì)圖片依次進(jìn)行霓虹處理,反相和灰度化得到輪廓。但是,這樣生成的只是原圖的邊緣,而邊緣與素描畫(huà)的輪廓并不相同。邊緣線條是連續(xù)圓滑的,而素描畫(huà)的輪廓線條是斷開(kāi)的、交叉的。因此,本模型并不直接使用邊緣圖,而是由邊緣卷積生成輪廓筆畫(huà)。
對(duì)于邊緣線條的提取,選擇Canny算子[10],因?yàn)樗谝种圃肼暦矫鎯?yōu)于差分運(yùn)算、Sobel算子、Prewitt和Roberts等邊緣提取算法,且輸出清晰。Canny算子的原理:用高斯函數(shù)平滑噪聲后計(jì)算其梯度,結(jié)合微分性質(zhì)抑制梯度信息里的非極大值,最后用一組閾值剔除非邊緣點(diǎn),留下邊緣點(diǎn)將其連接成邊緣圖。因前文在提取顯著性區(qū)域時(shí)已經(jīng)利用高斯平滑函數(shù)對(duì)圖片進(jìn)行降噪處理,故本階段省略了降噪步驟,直接使用高斯平滑后得到的圖作為輸入圖像,計(jì)算梯度提取邊緣。
為生成具有人類(lèi)手繪風(fēng)格,斷開(kāi)、交叉的輪廓線條,借鑒了文獻(xiàn)[1]中生成輪廓圖的方法。首先以22.5°為間隔將二維空間分為八個(gè)參考方向,經(jīng)過(guò)多次試驗(yàn),選擇以輸入圖片長(zhǎng)度的1/30作為線條長(zhǎng)度,生成八個(gè)方向的短線段。判斷邊緣圖中的線段屬于哪個(gè)方向的判別式為:
Ei=Li*E
(3)
式(3)中Li為第i個(gè)方向的短線,其中i∈{1,2,…,8}。沿著8個(gè)方向?qū)吘増DE進(jìn)行卷積,將響應(yīng)的線段定義為Ei。利用判別式對(duì)線段進(jìn)行組合,其表達(dá)式為:
(4)
式(4)中,p表示像素,將響應(yīng)第i個(gè)方向上所有短線的像素賦值給Bi,以組合形式輸出,接著對(duì)下一個(gè)方向進(jìn)行同樣的操作,一直到所有的Ei都被分類(lèi)。值得注意的是此時(shí)只是根據(jù)卷積運(yùn)算將圖像邊緣圖分成了8個(gè)方向的子圖,為獲得素描畫(huà)特有的線條圖,還需將Bi與Li再次進(jìn)行卷積:
(5)
將Bi中的曲線沿著方向i卷積成短的、交叉的直線,合并后得到輪廓線條圖。采用此方法生成輪廓圖,效果生動(dòng),貼近人類(lèi)手繪風(fēng)格,為方便理解,給出圖2所示步驟圖。

a.輸入圖 b.提取邊緣 c.反相操作 d.卷積生成具有手繪風(fēng)格的線條圖
圖2 根據(jù)邊緣圖生成的線條圖過(guò)程

a.輸入圖片 b.文獻(xiàn)[1]效果 c.改進(jìn)后效果

圖4 背景區(qū)域填充紋理與顯著區(qū)域填充紋理
根據(jù)NPR定義,為使主體能在整幅圖中引起視覺(jué)關(guān)注,做出如下的設(shè)置:顯著區(qū)域線條粗細(xì)為2、長(zhǎng)度為區(qū)間[6,9],背景區(qū)域線條粗細(xì)為1,長(zhǎng)度為區(qū)間[10,13]。[6,13]是經(jīng)過(guò)各種不同尺寸輸入圖片測(cè)試效果最佳的線條長(zhǎng)度范圍,具體的數(shù)值大小隨輸入圖片大小改變。由于計(jì)算能力過(guò)強(qiáng),文獻(xiàn)[1]中原始圖片中虛化區(qū)域的線條也被計(jì)算出,這并不符合NPR定義。為解決這個(gè)問(wèn)題,根據(jù)區(qū)域的顯著與否設(shè)置不同的參數(shù),強(qiáng)調(diào)主體,同時(shí)對(duì)背景稍加抑制,得到主次分明的鉛筆畫(huà),效果如下。
Lu等人[1]發(fā)現(xiàn)用灰度圖直接生成色調(diào)并不科學(xué),因?yàn)榛叶葓D的曲線呈中間高兩邊低趨勢(shì),而鉛筆畫(huà)直方圖只有在到達(dá)高亮度區(qū)域的某一個(gè)臨界值時(shí)呈爆發(fā)式增長(zhǎng)。這種分布規(guī)律是因?yàn)樵阢U筆畫(huà)中黑色像素很少,空白區(qū)域所占比例較大,而且與線條的亮度值差距很大,導(dǎo)致在亮區(qū)域的某一臨界值,曲線會(huì)陡然上升。根據(jù)這個(gè)特點(diǎn)分別用拉普拉斯分布、均勻分布和高斯分布表示鉛筆畫(huà)的陰影層、中間層和高光層,最后使用參數(shù)模型對(duì)色調(diào)進(jìn)行調(diào)整,表達(dá)公式如下:
(6)
(7)
(8)
其中p1(r),p2(r)和p3(r)分別表示陰影層、中間層和高光層,r為色調(diào)值,σa決定陰影區(qū)域峰值,根據(jù)觀察設(shè)為9,ua和ub確定了中間層的色調(diào)范圍,分別為105,205,將高斯分布中的比例參數(shù)σb設(shè)為11,ν為陰影層平均值,一般為90。將定義好的色調(diào)模式映射到鉛筆畫(huà)中,公式如下:
(9)
式(9)中,wi為pi(r)所對(duì)應(yīng)的權(quán)重,N為歸一化因子,值為3。原文作者對(duì)于w1:w2:w3給出的一組參考數(shù)據(jù)為11:37:52。發(fā)現(xiàn)將w1,w2和w3設(shè)置為可調(diào)整輸出效果更好,例如:輸入圖片的中間色調(diào)分布較多,在映射色調(diào)的時(shí)候可以將w2設(shè)置的大一點(diǎn)。
為突出主體,需要加深顯著區(qū)域的色調(diào),同時(shí)對(duì)背景區(qū)域的色調(diào)做適量削弱。設(shè)置方法為加大顯著性區(qū)域w2和w3所占比例,使顏色變亮、加深,同時(shí)減小背景區(qū)域w1所占比例,畫(huà)面變白在視覺(jué)上有變淡的效果。按照定義的公式,用組映射規(guī)則(group mapping law,簡(jiǎn)稱(chēng)GML)對(duì)原始圖片的色調(diào)值進(jìn)行規(guī)定化處理。
根據(jù)觀察,畫(huà)家在繪制鉛筆畫(huà)的時(shí)候,背景區(qū)域一般采用平行的、方向一致的弧線快速填充,與之相反的是主體部分往往是經(jīng)過(guò)精雕細(xì)琢繪制的。因此,對(duì)于紋理的模擬,根據(jù)區(qū)域選擇不同的紋理圖進(jìn)行填充。選擇圖4左圖填充背景區(qū)域,右圖用來(lái)填充顯著性區(qū)域,由于個(gè)人繪畫(huà)習(xí)慣不同,可將左圖旋轉(zhuǎn)獲得不同方向的紋理。
本實(shí)驗(yàn)硬件環(huán)境為第四代英特爾酷睿i5-4210U雙核處理器(1.7G赫茲,睿頻可達(dá)2.7G赫茲),32G內(nèi)存,硬盤(pán)500GB,2GB獨(dú)立顯存,Windows10 64位操作系統(tǒng),軟件環(huán)境為MatlabR2016b版本。本模型生成的鉛筆畫(huà)在建筑、植物、人物等風(fēng)格中表現(xiàn)效果都很好,篩選了部分生成的鉛筆畫(huà)展示如下:

圖5 部分鉛筆畫(huà)生成效果展示

a.原始圖片 b.文獻(xiàn)[1]效果 c.改進(jìn)后效果
生成鉛筆畫(huà)的模型借鑒并改進(jìn)了文獻(xiàn)[1],取得了更好得結(jié)果:(1)在生成線條圖時(shí)文獻(xiàn)[1]使用差分運(yùn)算提取邊緣信息,替換成Canny算子提取的邊緣更清晰、完整,且有較好的抗噪能力;(2)模擬色調(diào)時(shí),文獻(xiàn)[1]中w1:w2:w3提供固定值以供選擇,實(shí)驗(yàn)發(fā)現(xiàn)將色調(diào)值設(shè)為可調(diào)使鉛筆畫(huà)色彩更明艷;(3)在模擬紋理時(shí),文獻(xiàn)[1]用共軛梯度求解法設(shè)置不同密度紋理,為簡(jiǎn)便實(shí)驗(yàn)過(guò)程,選取了不同的紋理直接填充不同區(qū)域,方法更為簡(jiǎn)單,且效果貼合素描畫(huà)的特點(diǎn)。通過(guò)改進(jìn),生成了更為符合NPR定義的鉛筆畫(huà),實(shí)現(xiàn)了突出主體且貼近人類(lèi)手繪風(fēng)格等要求,如圖6所示。
針對(duì)目前非真實(shí)感繪制存在有悖NPR定義的情況,提出改進(jìn)算法,根據(jù)NPR強(qiáng)調(diào)突出主體這一特點(diǎn),將輸入圖片劃分為顯著性區(qū)域與背景區(qū)域。并借鑒經(jīng)典算法,分別生成輪廓線條圖與色調(diào)紋理圖。根據(jù)所屬區(qū)域的視覺(jué)重要性設(shè)置不同粗細(xì)與長(zhǎng)短的線條,填充不同密度、色調(diào)與方向的紋理,突出原圖重點(diǎn)。通過(guò)大量實(shí)驗(yàn)對(duì)比發(fā)現(xiàn)改進(jìn)的方法更為符合NPR的定義,主體明顯,且繪制的線條清晰生動(dòng),紋理十分接近手繪風(fēng)格。由于改進(jìn)的方法不依賴(lài)機(jī)器學(xué)習(xí),對(duì)各種風(fēng)格的圖片都有較好的兼容性,故在各個(gè)領(lǐng)域都具有較強(qiáng)的使用價(jià)值。但本方法也存在不足,即參數(shù)設(shè)置較為繁瑣,接下來(lái)的工作將致力于解決這個(gè)問(wèn)題,并嘗試將之運(yùn)用到視頻當(dāng)中,生成動(dòng)畫(huà)風(fēng)格的視頻。