李晶晶 許建樓 熊 靜 張選德
一直以來,人們對繪畫作品比較感興趣,它反映、傳播和塑造了人類的文化[1].藝術家們手工繪制鉛筆畫、卡通畫、油畫、水彩畫等不同風格的作品,需耗費大量的時間和精力,幾乎每一部經典作品都凝聚著藝術家的心血.近年來,利用算法對輸入圖像進行快速的風格轉化引發了計算機視覺領域廣泛的研究興趣.圖像風格轉化(Image style transfer,IST)算法可視作一個系統,系統的輸入是利用相機拍攝的自然圖像(Photorealistic image),輸出是具有某種特定藝術風格的圖像(Non-photorealistic image).IST 在娛樂產業和消費電子中有著廣泛的應用,例如智能手機的圖片編輯功能中通常提供多個風格轉化選項;在電影和游戲的制作過程中,常采用IST 算法來快速生成各種風格的場景.
過去幾十年來,計算機視覺領域對IST 問題進行了廣泛的研究.1996 年,Decaudin 等[2]對卡通風格轉化進行了明確的定義,并研究了如何從靜態或動態3D 場景中生成卡通風格的2D 圖像或者視頻.2002 年,DeCarlo 等[3]利用眼動儀(Eye tracker)來記錄當人觀測一幅圖像時的眼球運動數據,并基于眼球運動數據和視覺感知模型來確定圖像中的視覺顯著元素(Meaningful elements),然后基于圖像的多尺度表示構造了一種風格轉化算法,風格化后的圖像能保持并凸顯原圖像中的視覺顯著元素.2004 年,Santella 等[4]借助眼動儀來驗證文獻[3]中構造的算法是否達到了凸顯視覺顯著元素的目標.2008 年,Kyprianidis 等[5]提出一種基于結構自適應濾波的圖像風格轉化算法.該算法計算圖像在每一像素點處的結構張量,并以結構張量確定的梯度方向和切線方向作為引導,實現對圖像的局部自適應濾波.2009 年,Kang 等[6]采用雙邊濾波對圖像的切線場進行光滑,并利用光滑切線場來引導風格轉化算法.2015 年,Qian 等[7]提出一種基于各向異性Kuwahara 濾波和迭代線積分卷積的風格化方法,其中Kuwahara 濾波能較好地克服雙邊濾波及其均值漂移濾波器在邊緣保持方面的局限性.
以上方法屬于傳統方法,是研究者基于自己的知識或經驗,啟發式地構造的風格轉化算法,這種算法不依賴于樣本,也無需進行訓練.近幾年來,隨著深度學習方法的“橫空出世”,研究者們對深度學習方法在圖像風格轉化中的應用表現出非常強烈的興趣[8-11].其中 Gatys 等[8]采用預訓練的、用于一般特征表示(Feature representation)的卷積神經網絡 (Convolutional neural network,CNN)來分別處理自然圖像的內容和風格,提出一種基于紋理合成的圖像風格轉化算法.Johnson 等[9]采用感知損失函數(Perceptual loss function)訓練前饋網絡來實現圖像風格轉化.Ulyanov 等[10]首先訓練緊湊的前饋卷積網絡,以生成任意大小且紋理相同的多個樣本,并將藝術風格從給定圖像轉移到任何其他圖像.Elad 等[11]從字典學習、字典表示的角度拓展了Kwatra 等[12]提出的紋理合成方法,得到了具有與CNN 類似效果的圖像風格轉化方法.基于深度學習的方法能夠獲得非常好的風格轉化效果,但是深度學習方法依賴于樣本進行訓練,運算代價較大.
本文采用傳統方法研究圖像風格的轉化,聚焦于“線描畫”風格,提出了一種基于方向場正則化的線描畫生成算法(Direction field regularization based line drawing generation,DFR-LDG).該算法由以下幾部分構成:1)為了減輕噪聲的影響,采用非局部平均(Non-local means,NLM)濾波對輸入圖像進行預處理;2)計算輸入圖像的方向場,并對方向場進行Tikhonov 正則化,為了提高運算速度,采用Sherman-Morrison-Woodbury 公式來對正則化算法進行加速;3)以正則方向場作為引導,對預處理圖像作高斯差分(Difference of Gaussian,DoG)濾波;4)根據人類視覺系統(Human visual system,HVS)的非線性特點,設計感知閾值(Perceptual thresholding) 算法來對高斯差分濾波的結果進行閾值處理,得到二值的線描畫圖像.數值實驗表明,提出的算法可將輸入圖像轉化為線條流暢的線描畫圖像.
本文結構安排如下:第1 節首先介紹線描畫,然后分析線描畫與邊緣檢測的關系,最后探討邊緣檢測算子作為線描畫生成算法的不足;第2 節詳細介紹基于方向場正則化的線描畫生成算法;第3 節進行數值實驗;第4 節對本文工作進行總結.
人類視覺系統具有非常強大的抽象能力,能夠將觀測到的對象抽象成線條.漢字中的象形字便充分地體現了這種抽象能力.此外,圖像信息是通過灰度值的變化來呈現的,如果一幅圖像的灰度值在空域所有像素點處都一致,即沒有任何灰度變化,則這幅圖像不包含任何信息.灰度值劇烈變化的區域通常對應語義對象的邊緣,而語義對象的邊緣可用線條來勾勒.因而,線條自然成為美術構圖的最重要元素,而線描畫也成為最古老、最基礎的繪畫種類.遠古時期,先民們就開始本能地在巖壁上繪制線描畫,圖1 (a)所呈現的是賀蘭山巖畫.美術教育中,也通常將線描畫作為基礎的必修畫種(圖1 (b)).美術史上,畢加索和豐子愷都是描述畫大師(圖1 (c)和圖1 (d)).畢加索采用更簡約流暢的線條,作品趨于夸張和抽象風格,而豐子愷的作品則趨于寫實和漫畫風格.
從圖像處理的角度考察,線描畫圖像具有以下特點:1)線描畫屬于二值圖像,線條所在像素值為0,而背景區域的像素值為1;2)線描畫采用流暢的線條勾勒語義對象的輪廓,比原圖像更加簡約,但能夠表達原圖像中的主要信息.從而,線描畫與邊緣檢測(Edge detection)密切相關,而邊緣檢測算子也可以作為線描畫生成算法.

圖1 線描畫圖Fig.1 Line drawing
圖像處理中,邊緣檢測(Edge detection)指確定(Identify)圖像中具有劇烈灰度變化的、不連續的像素點的方法.常用的邊緣檢測算子包括Canny算子、Sobel 算子、Prewitt 算子、Roberts 算子等.其中Sobel 算子、Prewitt 算子和Roberts 算子三種方法的基本思想類似,都是利用模板卷積來逼近圖像在水平和垂直方向的方向導數,然后對梯度模進行閾值得到二值的邊緣圖像(Edge image).不同之處在于采用模板不同,如圖2 所示.根據采用的模板分析,Sobel 算子和Prewitt 算子都可以度量水平和垂直兩個方向的變化,但Sobel 算子較Prewitt 算子更強調中心位置像素的作用.Roberts 算子度量主對角和副對角方向的變化.這三個算子都未對圖像作預處理,由于導數運算對于噪聲非常敏感,這使得這三個算子對噪聲的魯棒性較差.Canny 算子可視作上述三個算子的改進,其主要步驟包括:1)采用高斯濾波來抑制噪聲,提高方向導數計算的魯棒性;2)計算圖像的梯度模;3)通過非局部極大抑制(Non-maximum suppression)來消除虛假邊緣;4)利用雙閾值來確定潛在的邊緣;5)消除弱的、或者與強的邊緣沒有連接的孤立的檢測點,得到最終的邊緣圖像.Canny 算子有嚴格的理論作支撐,邊緣檢測效果相比其他幾個算子都要好.
圖3 和圖4 呈現了幾種邊緣檢測算子在測試圖像Baboon 和Lena 上的檢測效果.從邊緣檢測的角度分析,利用Sobel 算子、Prewitt 算子、Roberts算子得到的邊緣(分別參考圖3(b)~ (d)和圖4(b)~(d)) 都存在漏檢邊緣、邊緣不夠連續的問題,而Canny 算子(參考圖3 (e)和圖4 (e))能夠檢測出所有主要的邊緣,而且檢測出的邊緣也比較連續.但是,將以上4 種邊緣檢測算子視作線描畫生成算法,從線描畫風格轉化的角度來考察,則不難發現這幾個算子的轉化效果都不能令人滿意,其中最顯著的問題在于得到的線條不夠流暢.圖3 (f)和圖4 (f)還呈現了本文算法得到的結果,對比可以看出,本文算法生成的二值圖像,能表達原圖像的主要信息,而且線條更加流暢,更接近線描畫風格.

圖2 幾種邊緣檢測算子采用的模板Fig.2 Templates for several edge detection operators
本文提出一種基于方向場正則化的線描畫生成算法,該算法由以下4 個部分構成:1)為了在消除噪聲的同時盡可能保持圖像的結構,采用非局部平均算法對輸入圖像進行預處理;2)考慮到圖像在局部具有各向異性結構,分別利用水平、垂直、主對角、副對角共4 個方向的模板來計算方向場,為了能夠提取連續流暢的線條,對方向場進行Tikhonov 正則化,為了提高運算速度,采用Sherman-Morrison-Woodbury 公式來對正則化算法進行加速;3)以正則方向場為引導,對預處理圖像逐點進行一維DoG 濾波,即在每一像素點處,沿變化最大的方向進行DoG 濾波;4)對DoG 濾波的結果進行非線性閾值處理,得到二值的線描畫圖像.整個算法流程如圖5 所示,下面對每一步驟逐一闡釋.
Canny 算子采用高斯濾波來濾除噪聲,但高斯核是各向同性的,不能自適應于圖像的局部結構,這使得高斯濾波在濾除噪聲的同時在一定程度上模糊圖像的邊緣.這里采用NLM[13]濾波來對輸入圖像進行預處理,NLM 利用鄰域像素的加權平均來對圖像進行逐點估計,而權重通過相似度來計算.
記輸入圖像V={V(i)|i ∈Ω},NLM 濾波后的圖像U={U(i)|i ∈Ω},其中,Ω為圖像區域,i為像素索引.則U(i) 可表示為

圖3 幾種邊緣檢測算子和本文算法在Baboon 上的效果對比Fig.3 Comparison of several edge detection operators and the algorithm of this paper on Baboon

圖4 幾種邊緣檢測算子和本文算法在Lena 上的效果對比Fig.4 Comparison of several edge detection operators and the algorithm of this paper on Lena

圖5 基于方向場正則化的線描畫生成算法框圖 (注:為了使正則化的效果可視,對方向場進行降維處理且只在Lena 局部區域上顯示)Fig.5 Block diagram of line drawing generation algorithm based on direction field regularization (Note:In order to make the regularization effect visible,the direction field is dimension-reduced and displayed only on the local area of Lena)

NLM 算法中,濾波的光滑程度由參數h和t控制.h決定相似性度量d(i,j)對于權重w(i,j) 的影響程度,h越大,d(i,j)對于w(i,j) 的影響越小,從而濾波的光滑程度越大;反之,h越小,濾波的光滑程度也越小.t決定參與加權的像素點的個數,濾波的光滑程度隨著t的增大而增大.圖像風格轉化問題中,輸入圖像通常只包含弱噪聲,因此h和t的取值都較小.這里取h=8,t=5 .
2.2.1 方向場的計算
經典的Sobel、Roberts、Prewitt 等一階梯度算子只能度量水平和垂直兩個方向的變化,但圖像在空域具有豐富的多方向結構.為此,這里考慮4 個方向的變化,在每一像素點計算水平、4 5°方向、垂直方向、135°方向共4 個方向的方向導數.方向導數通過模板卷積來計算,所采用的模板如圖6 所示.

圖6 計算方向導數采用的模板Fig.6 Template for calculating directional derivatives
以M1,M2,M3,M4分別表示圖6 所示的水平、45°方向、垂直方向、135°方向的模板,則U的方向導數為Gd=U ?Md,d=1,2,3,4,其中“?”表示卷積運算.以Gd(i),i ∈Ω表示U在像素點i處、d方向上的方向導數,則g(i)=[G1(i),G2(i),G3(i),G4(i)]T構成像素點i處的方向矢量.方向矢量刻畫了圖像的局部結構,而圖像在所有像素點處的方向矢量總體{g(i)|i ∈Ω}就構成了圖像的方向場.
2.2.2 方向場的Tikhonov 正則化
盡管對輸入圖像的預處理可以一定程度上提高方向導數對于噪聲的魯棒性,但直接從預處理圖像計算得到的方向場不夠正則,尤其邊緣處的方向顯得比較雜亂,如圖7 (a)所示.為了提取流暢的線條,這里基于自表示的思想,利用Tikhonov 方法對方向場進行正則化處理.像素點i處的方向矢量為g(i),以i為中心、t為半徑的方鄰域 Ωi中所有像素點處的方向矢量為g(j),j ∈Ωi.考慮到圖像在空域的平穩性及圖像中存在大量的自相似結構,g(i)可由g(j),j ∈Ωi線性表示,即

圖7 方向場正則化效果圖 (注:為了使正則化的效果可視,對方向場進行降維處理且只在Lena 局部區域上顯示)Fig.7 Directional field regularization effect map (Note:In order to make the regularization effect visible,the direction field is dimension-reduced and displayed only on the local area of Lena)


2.2.3 正則化算法的加速
第2.2.2 節中對方向場的正則化需要逐點計算,且由式(7)可見,每個點上都需要計算一個大小為(2t+1)2× (2t+1)2的矩陣的逆.當t取值較大時,運算量會非常大.實驗中取t=5,那么對于512×512像素的圖像,方向場正則化需要計算262 144 個121×121 的矩陣的逆,運算開銷很大.為了減少運算量,加速算法,我們引用Sherman-Morrison-Woodbury[14]矩陣恒等式:

對比式(7)與式(10)不難發現,利用式(7),需要計算 (2t+1)2×(2t+1)2的矩陣的逆;而利用式(10),無論t如何取值,都只需計算 4×4 的矩陣的逆;因此,當t取值較大時,利用式(10)可大大加速算法.
由式(6)可見,當正則參數λ→0 時,Tikhonov正則化退化為最小二乘法,這會導致平凡解,起不到正則化的作用;由式(10)可見,當λ→∞時,線性表示的系數向量中的各個分量趨于相同,這會使得Tikhonov 正則化具有類似于均值濾波的效果,會破壞方向場的固有結構.為了既能保持方向場固有的大結構,又能對方向場進行一定的正則化處理.在數值實現過程中,取λ=25 .圖7 呈現了方向場正則化的效果圖.從中可見,經正則化處理后,方向場更為正則.
自然圖像中,語義對象的邊緣對應灰度值變化較顯著的區域.因此,要勾勒出語義對象的邊緣,首先需要度量圖像在空域的灰度值變化.原則上,所有的高通濾波都可以度量灰度值的變化.這里選用一維高斯差分濾波來度量變化,DoG 濾波以下面的函數作為濾波的核函數:

可見,K(r) 是兩個零均值的高斯函數之差.Marr等[15]指出,DoG 濾波能很好地模擬人類視網膜細胞對于亮度變化的響應,并且建議取α2=1.6α1.為了提升DoG 濾波的穩定性,數值實現過程中使用文獻[16]的核函數:

并取ε=0.001 .
自然圖像在空域具有“各向異性”的性質,灰度值通常在與邊界垂直的方向上變化大,而在與邊界平行的方向上變化小.像素點i處的方向矢量為,這4 個分量分別度量了圖像在水平、45°、垂直、135°方向的灰度變化,如圖8 (a)所示.在圖8 (b)中,的4 個分量中絕對值最大者所在的方向為變化最大的方向,記為,我們沿著變化最大的方向對預處理圖像作一維高斯差分濾波,而具體實現過程中,需要對DoG 濾波的核函數進行離散.上述DoG 濾波在每個像素處都需要利用方向矢量來確定濾波的方向,因而將其稱之為“正則方向場引導的DoG 濾波(Regularized direction field guided dog filter,RDF-DoG)”.濾波的結果記作

圖8 (c)中展示了RDF-DoG 濾波的結果,從中可見,濾波結果能較準確地度量圖像灰度值的變化.

圖8 RDF-DoG 濾波操作示意圖Fig.8 RDF-DoG filtering operation diagram
類似于邊緣檢測,對RDF-DoG 濾波的結果進行閾值處理就可以勾勒出語義對象的邊緣,這里根據人類視覺系統的非線性特點來設計閾值算法.RDF-DoG 的濾波結果所度量的灰度值變化,屬于客觀量(物理量,客觀刺激),而HVS 感知到的變化屬于主觀量(心理量,主觀響應),如圖9 所示.眾所周知,人類所有的感知系統,包括聽覺系統、視覺系統、觸覺系統、味覺系統、嗅覺系統,都是非線性系統.生物學和計量心理學中都對人類感知系統的響應規律進行了廣泛的研究.一般認為人類所有的感知系統都具有“雙邊抑制”效應.以味覺系統對鹽溶液的感知為例,考察鹽濃度(客觀量)與人感知到的“咸的程度”(主觀量)之間的關系,人在鹽濃度非常小時,感覺不到咸;只有鹽濃度達到一定程度時,才開始有咸的感覺;此時,隨鹽濃度的增加,人會感覺到越來越咸;但是鹽濃度達到一定量時,再增加鹽濃度,人不會有更咸的感覺(主觀量不會明顯增加).HVS 對灰度值變化的感知具有類似的規律,只有當客觀灰度變化達到一定程度時,才能被HVS 感覺到.此時,隨著客觀變化的增大,HVS 感知到的變化隨之增大,但是客觀變化達到一定量時,HVS 感知到的變化量不再隨客觀變化的增加而明顯增加.

圖9 HVS 對于灰度變化的感知過程Fig.9 HVS perception process of grayscale changes
人類視覺系統具有的非線性特性與支撐視覺感知過程的復雜生化反應有關,這種特性是人類在長期的進化中形成的.這里用雙曲正切函數來模擬客觀灰度變化 (B(i),i ∈Ω) 與HVS 感知到的變化之間的關系,即取

圖10 展示了H(x)的形態,利用H(x) 可將客觀量映射為主觀量.
為了勾勒語義對象的邊緣,這里對主觀量(HVS 感知到的變化)進行閾值處理,采用如下形式的閾值函數:


圖10 客觀灰度變化與感知到的變化之間的關系Fig.10 The relationship between objective grayscale changes and pereceived changes
其中,τ表示閾值參數,正常取值范圍τ ∈[0,1],這意味著將HVS 感知到的變化大到一定程度的部分作為語義對象的邊緣.通常美術構圖中需充分考慮HVS的感知規律,因而這一處理更符合美術構圖的原則.
為了驗證本文提出的線描畫提取算法,我們進行了大量的實驗.實驗在3.6 GHz Intel CPU,8 GB RAM 的個人計算機上進行,算法采用MATLAB 2016a來實現.除了式(16)中閾值參數τ外,在第2 節中對算法涉及的所有參數進行了說明,這里對式(16)中閾值參數τ選取進行分析,圖11 呈現了閾值參數取不同值時算法的輸出結果.

圖11 Lena 圖像在不同參數 τ 時的線描畫Fig.11 Line drawing of Lena images at different parameters τ
從中可見,閾值參數τ的設定對算法的輸出有很大的影響,隨著閾值參數的增大,圖像的邊緣對噪聲更敏感,邊緣涵蓋過多的噪聲信息直接影響結果的美觀性.而閾值參數偏小時容易遺漏原圖像的一些細節信息.實驗中,我們根據經驗取閾值τ=0.6.
隨后,我們用本文算法對大量圖像進行了測試.圖12 為任意選取的幾幅測試圖像,其實現的線描畫效果如圖13 所示.從中可見,提取的線描畫利用簡潔流暢的線描線條勾勒了語義對象的邊緣,能凸顯出圖像中的主要信息,視覺上相當美觀.由于該算法直接從自然圖像中生成線描畫,與圖1 呈現的藝術家們手工繪制的線描畫相對比,具有“完全寫實”的風格.

圖12 測試圖像Fig.12 Test image

圖13 線描畫圖Fig.13 Line drawing
本文構造了一種基于方向場正則化的線描畫生成算法,該算法的顯著特點體現在以下兩個方面:1)基于自表示的思想,采用Tikhonov 正則化方法對方向場進行正則化處理,且對正則化算法進行了加速;2)利用HVS 的非線性特點設計感知閾值算法.數據實驗表明,本文算法可從任意圖像中提取相當美觀的線描畫.本文的工作可從以下幾個角度進行拓展:1)如第2.3 節中對RDF-DoG 濾波的結果作進一步處理,沿著邊緣方向作平滑濾波,有望改善提取的線描畫的質量;2)本文算法是對灰度圖像設計的,如何刻畫彩色圖像的邊緣,從彩色圖像中提取線描畫,值得進一步研究;3)將本文算法擴展到視頻序列,利用鄰近幀的信息來優化算法的性能;4)與其他風格轉化問題一樣,線描畫的風格轉化可以利用深度學習方法實現,當然,這需要經過一定訓練的志愿者根據給定自然圖像繪制一定數量的線描畫作為訓練樣本,工作量很大;5)嚴格來講,圖像風格轉化問題的構建不夠明確.圖像的“風格”難以明確定義,也難以準確量化,這使得風格轉化算法的處理效果只能采用主觀評價.如何客觀地評價風格轉化算法的性能同樣是值得考慮的問題,對算法性能評價問題的研究會使得風格轉化問題的構建更加明確.