張子珺,陳勁松,錢(qián)夕元
(1.華東理工大學(xué) 數(shù)學(xué)學(xué)院,上海 200237;2.上海宏弈源軟件科技有限公司,上海 200233)
書(shū)法以漢字為載體,承載著中華民族文化,見(jiàn)證了中華上下五千年的文明,是中國(guó)傳統(tǒng)文化的重要組成部分。近年來(lái),國(guó)家投入大量資源發(fā)展書(shū)法教育,書(shū)法逐漸走入課堂。書(shū)法學(xué)習(xí)是一個(gè)模仿、對(duì)比、改進(jìn)的過(guò)程,老師在課堂中扮演的角色是對(duì)書(shū)法字進(jìn)行合理評(píng)價(jià),指導(dǎo)學(xué)生如何改進(jìn)。一般而言,課堂上的書(shū)法字評(píng)價(jià)是老師通過(guò)書(shū)寫(xiě)經(jīng)驗(yàn)主觀地評(píng)判學(xué)生的書(shū)寫(xiě)結(jié)果,并觀察學(xué)生書(shū)寫(xiě)過(guò)程中的姿勢(shì)和運(yùn)筆等給出改進(jìn)建議。這一教學(xué)方式受制于教學(xué)地點(diǎn)的局限以及師資力量的短缺。
隨著互聯(lián)網(wǎng)的飛速發(fā)展,許多教育培訓(xùn)機(jī)構(gòu)嘗試將人工智能技術(shù)應(yīng)用到書(shū)法教育領(lǐng)域,促使書(shū)法教育進(jìn)一步的發(fā)展。書(shū)法字主要通過(guò)運(yùn)筆改變筆畫(huà)的粗細(xì)和走勢(shì)以獲得美感,這些特征是評(píng)價(jià)書(shū)法字體的重要依據(jù)。書(shū)法字骨架提取技術(shù)使用極少的像素信息卻能保留完整的拓?fù)浣Y(jié)構(gòu),傳達(dá)了形狀識(shí)別的關(guān)鍵信息,對(duì)于評(píng)價(jià)書(shū)法字符筆畫(huà)結(jié)構(gòu)極為重要。
常見(jiàn)的骨架提取算法主要有基于像素點(diǎn)鄰域的書(shū)法骨架提取算法,以ZHANG-SUEN(Z-S)細(xì)化算法[1]和AHMED-WARD(A-W)細(xì)化算法[2]為主,基于目標(biāo)像素點(diǎn)在鄰域上的連通性進(jìn)行刪除和保留操作,以此不斷剝離二值圖像的邊界像素,直到保留物體的中軸線(xiàn)。基于鄰域的細(xì)化算法應(yīng)用到筆畫(huà)骨架提取時(shí),會(huì)產(chǎn)生大量毛刺、骨架非單像素寬度以及交叉區(qū)域扭曲等問(wèn)題。文獻(xiàn)[3-5]改進(jìn)上述細(xì)化算法,消除了骨架毛刺并提取出單像素寬度的骨架。文獻(xiàn)[5]通過(guò)模板將骨架進(jìn)一步細(xì)化,引進(jìn)門(mén)限機(jī)制的判定方法去除了骨架毛刺;文獻(xiàn)[6]提出一種基于筆畫(huà)連續(xù)性檢測(cè)的改進(jìn)算法,對(duì)骨架筆畫(huà)進(jìn)行了校正處理;文獻(xiàn)[7]基于手寫(xiě)漢字骨架,利用局部關(guān)聯(lián)度來(lái)提取筆畫(huà),定位并刪除模糊區(qū)域,根據(jù)方向信息和平滑信息將屬于同一筆畫(huà)的筆畫(huà)段連接起來(lái)以修正模糊區(qū)域的骨架畸形,但無(wú)法修正模糊區(qū)域筆畫(huà)嚴(yán)重扭曲的情況,對(duì)一些字體的泛化能力不高。另外一類(lèi)骨架提取是基于距離的算法,變體的方法主要是因?yàn)榫嚯x函數(shù)有所不同:如歐氏距離[8]、街市距離[9]或約束德勞內(nèi)三角剖分距離[10]等。通過(guò)計(jì)算目標(biāo)像素點(diǎn)到邊界的距離,找到圖像中的所有局部極大值點(diǎn),根據(jù)物體的拓?fù)浣Y(jié)構(gòu)將極大值點(diǎn)關(guān)聯(lián)起來(lái),生成定位準(zhǔn)確的骨架,這類(lèi)方法的困難性主要在于不能保證骨架的連通性。
上述基于像素點(diǎn)計(jì)算的骨架提取方法通常對(duì)噪聲不魯棒,并具有較低的精度,在復(fù)雜場(chǎng)景下不能得到令人滿(mǎn)意的結(jié)果。由于無(wú)法提取到圖像的深度特征,提取的漢字骨架極易在交叉區(qū)域扭曲,且在骨架化的過(guò)程中無(wú)法保留筆畫(huà)的原始走勢(shì),這給筆畫(huà)提取以及結(jié)構(gòu)分析帶來(lái)了困難。
近年來(lái)發(fā)展起來(lái)的深度學(xué)習(xí)算法使得提取圖像的深層特征成為可能。文獻(xiàn)[11]提出了融合與尺度相關(guān)的深度側(cè)輸出(Fusing Scale-associated Deep Side,F(xiàn)SDS)來(lái)提取自然圖像的骨架,以解決復(fù)雜場(chǎng)景和對(duì)象多樣性帶來(lái)的困難,但全卷積網(wǎng)絡(luò)無(wú)法保證相似像素之間的平滑度,另外由于比例預(yù)測(cè)不準(zhǔn)確,F(xiàn)SDS 經(jīng)常產(chǎn)生更粗的骨架;文獻(xiàn)[12]提出基于全卷積網(wǎng)絡(luò)的手寫(xiě)漢字骨架提取方法,通過(guò)繼承預(yù)訓(xùn)練的 HCCR-CNN9Layer[13]的權(quán)重并進(jìn)行微調(diào),優(yōu)化數(shù)據(jù)集使得網(wǎng)絡(luò)可以學(xué)習(xí)到手寫(xiě)漢字的豐富特征,但網(wǎng)絡(luò)輸出只能得到相對(duì)粗略的結(jié)果,需要通過(guò)K 均值(K-Means)聚類(lèi)來(lái)消除筆畫(huà)斷裂問(wèn)題;文獻(xiàn)[14]使用pix2pix cGAN 來(lái)實(shí)現(xiàn)ESPI 條紋圖像骨架的批量提取,相較于Cycle GAN 和U-Net 方法,可以更快地獲得準(zhǔn)確、完整、光滑的骨架,且具有一定的魯棒性;文獻(xiàn)[15]評(píng)估了pix2pix cGAN 方法在幾何形狀理解上的效果,但近年來(lái)很少有學(xué)者在骨架提取上對(duì)pix2pix cGAN 進(jìn)行改進(jìn)以?xún)?yōu)化效果。
本文提出一個(gè)基于改進(jìn)的條件生成對(duì)抗網(wǎng)絡(luò)的書(shū)法字骨架提取算法,可以學(xué)習(xí)到書(shū)法字圖像的深層信息,端到端的生成器使得模型可以直接提取書(shū)法字骨架。使用在線(xiàn)偽書(shū)法字作為訓(xùn)練集,以獲取運(yùn)筆信息,使骨架特征更具有代表性。該算法通過(guò)改善現(xiàn)有方法在提取書(shū)法字骨架時(shí)出現(xiàn)斷裂以及毛刺的問(wèn)題,使得提取出的骨架圖像能夠展現(xiàn)書(shū)法字的形態(tài)。
條件生成對(duì)抗網(wǎng)絡(luò)(conditional Generative Adversarial Network,cGAN)[16]將監(jiān)督學(xué)習(xí)的思想加入到生成模型中,每個(gè)輸入的圖像數(shù)據(jù)都對(duì)應(yīng)一個(gè)標(biāo)簽。經(jīng)過(guò)大量訓(xùn)練后可以根據(jù)網(wǎng)絡(luò)輸入的標(biāo)簽生成對(duì)應(yīng)的輸出,有效地解決了GAN 自由生成的結(jié)果不可控的缺點(diǎn),使網(wǎng)絡(luò)朝著期望的方向生成樣本。由于cGAN 強(qiáng)大的圖像生成能力和端到端的結(jié)構(gòu),在語(yǔ)義分割[17]、圖像去霧[18]、圖像著色[19]等眾多領(lǐng)域得到了廣泛應(yīng)用。近年來(lái),研究人員嘗試將cGAN應(yīng)用于書(shū)法圖像處理,如書(shū)法字符生成[20-21]、筆畫(huà)分割任務(wù)[22-23]等,取得了較好的效果。
pix2pix[24]屬于條件生成對(duì)抗網(wǎng)絡(luò),通過(guò)訓(xùn)練配對(duì)數(shù)據(jù),學(xué)習(xí)從輸入圖像到輸出圖像的映射等。pix2pix 由生成器和鑒別器兩部分組成,其條件為圖片,生成器為U-Net,可以實(shí)現(xiàn)圖像到圖像的轉(zhuǎn)換。
條件生成對(duì)抗網(wǎng)絡(luò)的目的是完成輸入圖像x和隨機(jī)矢量z到圖像y的映射,其目標(biāo)函數(shù)可表示如下:
pix2pix 網(wǎng)絡(luò)在條件生成對(duì)抗網(wǎng)絡(luò)的損失函數(shù)基礎(chǔ)上增加L1距離函數(shù)來(lái)恢復(fù)圖像的低頻部分,生成更加清晰的圖像,提高生成器的性能。與cGAN 不同,不需要輸入隨機(jī)噪聲z。新的目標(biāo)函數(shù)表示如下:
其中:LL1(G)=Ex,y[‖y-G(x)‖1];λ為超參數(shù)用于平衡兩個(gè)目標(biāo)函數(shù)。
生成器的目標(biāo)是通過(guò)使其輸出與目標(biāo)圖像具有相同的分布來(lái)欺騙鑒別器。因此,在訓(xùn)練生成器時(shí),損失函數(shù)需要最大化D(x,G(x))。鑒別器的目標(biāo)是不要將生成的圖像識(shí)別為真實(shí)圖像,因此它的損失函數(shù)需要最大化D(x,y),同時(shí)最小化D(x,G(x))。通過(guò)大量的訓(xùn)練,生成器產(chǎn)生的輸出,令鑒別器無(wú)法將其與“真實(shí)”圖像區(qū)分開(kāi)來(lái),而鑒別器能夠盡可能地檢測(cè)出生成器的輸出為“假”。
圖1 所示為pix2pix 模型進(jìn)行骨架提取的示意圖。從圖1(a)和圖1(c)可以看出,pix2pix 模型可以很好地提取出骨架圖。從圖1(b)和圖1(c)可以發(fā)現(xiàn),骨架的整體定位在視覺(jué)上基本一致,但是骨架端點(diǎn)、拐點(diǎn)和交叉點(diǎn)會(huì)有一定程度上的偏移,筆畫(huà)的平滑度不高。
圖1 基于pix2pix 模型的書(shū)法字符骨架提取效果圖Fig.1 Calligraphy character skeleton extraction renderings based on pix2pix model
目前的骨架提取算法都是對(duì)二值圖進(jìn)行骨架提取,需要進(jìn)行一定的預(yù)處理工作,文獻(xiàn)[12]基于3 通道圖像進(jìn)行骨架提取,但需要后處理來(lái)消除筆畫(huà)的大量斷裂。本文提出一個(gè)改進(jìn)pix2pix 的書(shū)法字骨架提取算法,通過(guò)CASIA 在線(xiàn)手寫(xiě)漢字?jǐn)?shù)據(jù)集生成一一對(duì)應(yīng)的偽書(shū)法圖像和骨架圖像進(jìn)行模型訓(xùn)練。將真實(shí)的書(shū)法圖像輸入網(wǎng)絡(luò),得到二值化的骨架圖像來(lái)測(cè)試網(wǎng)絡(luò)的泛化性。本文方法的總體結(jié)構(gòu)如圖2所示。
圖2 網(wǎng)絡(luò)總體結(jié)構(gòu)Fig.2 Overall structure of the network
本文使用文獻(xiàn)[23]中沒(méi)有搭載注意力機(jī)制的基于pix2pix 的改進(jìn)框架作為基線(xiàn)網(wǎng)絡(luò)(Baseline),該框架將pix2pix 生成器的8 次下采樣縮減為6次,在編碼器階段用1×1 卷積使得特征圖在傳遞到下一層之前實(shí)現(xiàn)降維,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)U-Net 結(jié)構(gòu)更適合生成筆畫(huà),殘差結(jié)構(gòu)可以提高每個(gè)生成筆畫(huà)交叉區(qū)域的準(zhǔn)確性。生成器架構(gòu)如圖3 所示。
圖3 生成器架構(gòu)Fig.3 Architecture of the generator
與書(shū)法風(fēng)格遷移任務(wù)不同,骨架提取不需要多樣性的結(jié)果,因此可以不用執(zhí)行減少參數(shù)數(shù)量的處理。生成器的ResU-Net 結(jié)構(gòu)雖然使用了跳躍連接來(lái)融合深層和淺層的語(yǔ)義信息,但在下采樣和上采樣的過(guò)程中仍會(huì)丟失大量信息。骨架提取任務(wù)可以近似于語(yǔ)義分割任務(wù),而骨架所占圖像比例極低,需要模型學(xué)習(xí)到更為精確的像素級(jí)預(yù)測(cè)。因此,在生成器的每一層都添加了分層空洞卷積模塊使模型可以學(xué)習(xí)到不同尺度下的長(zhǎng)距離上下文信息,下采樣層的激活函數(shù)使用Leaky ReLU 函數(shù)。在模型底部搭載微調(diào)的CCA 模塊,以連續(xù)的方式學(xué)習(xí)注意力系數(shù)和偏移來(lái)獲取近似全局自我注意力。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),該模塊能有效地提高筆畫(huà)的連通性和平滑度,很大程度地提升了模型的泛化能力。由于希望生成一個(gè)單通道的字符骨架,因此調(diào)整生成器輸出圖像的通道數(shù)為1,以此來(lái)獲得二值化的字符骨架圖像的近似輸出。
2.1.1 分層空洞卷積模塊
空洞卷積已經(jīng)被證明在很多分類(lèi)和分割任務(wù)上有優(yōu)異的表現(xiàn),書(shū)法字符的骨架提取可以看作是圖像分割任務(wù),文獻(xiàn)[25]提出密集擴(kuò)張卷積合并(Dense Dilated Convolutions Merging,DDCM)模塊來(lái)進(jìn)行圖像分割,通過(guò)不斷增大膨脹速率與之前不同膨脹速率的特征層并合并在一起,有效地?cái)U(kuò)大核的接受場(chǎng),獲得融合的局部和全局上下文信息,以促進(jìn)周?chē)呐袆e能力。為了讓生成器在下采樣和上采樣的過(guò)程中捕獲到更加完整的上下文信息,受上述模塊啟發(fā)提出分層空洞卷積合并(Hierarchical Atrous Convolutions Merging,HACM)模塊,在本文任務(wù)上得到了較DDCM 模塊更優(yōu)的結(jié)果,如圖4 所示。首先將輸入的特征圖通過(guò)一個(gè)1×1 的卷積,將其分別與通過(guò)不同膨脹因子空洞卷積的輸出堆疊在一起饋送到下一層,然后將不同膨脹率輸出的特征圖堆疊在一起通過(guò)一個(gè)3×3 的卷積,得到的輸出與模塊的初始輸入堆疊在一起通過(guò)一個(gè)1×1 的卷積。線(xiàn)性增加的擴(kuò)張因子使得網(wǎng)絡(luò)的感受野增大,減輕了上下文信息丟失。在每個(gè)卷積層中使用PReLU激活函數(shù),避免隨著網(wǎng)絡(luò)層數(shù)增加而梯度消失的情況。
圖4 分層空洞卷積合并模塊Fig.4 Hierarchical atrous convolution merging module
2.1.2 交叉注意力模塊
文獻(xiàn)[26]提出交叉注意力(Criss Cross Attention,CCA)模塊以改進(jìn)引入注意力機(jī)制需要消耗大量計(jì)算資源的問(wèn)題。交叉注意力模塊通過(guò)使用幾個(gè)連續(xù)的稀疏特征圖來(lái)代替普通的單密度連通圖,高效地獲取全圖的上下文信息。文獻(xiàn)[27]通過(guò)修改交叉注意力模塊并集成在U-Net 架構(gòu)中來(lái)標(biāo)記相對(duì)較小的數(shù)據(jù)。
在基線(xiàn)網(wǎng)絡(luò)上添加了HACM 模塊后,發(fā)現(xiàn)網(wǎng)絡(luò)提取的骨架在指標(biāo)上較大提升,但生成的骨架線(xiàn)條并不光滑,存在較為明顯的鋸齒形線(xiàn)條。本文將CCA模塊集成在pix2pix 生成器U-Net 架構(gòu)的底部對(duì)網(wǎng)絡(luò)進(jìn)行改進(jìn)。如圖5 所示,區(qū)別于交叉注意力模塊,在pix2pix 生成器編碼過(guò)程中,下采樣4 次后,特征層數(shù)不再增加,因而在特征送入模塊后進(jìn)行3×3 卷積時(shí),不進(jìn)行特征層數(shù)減少的操作。
圖5 交叉注意力模塊Fig.5 Cross attention module
鑒別器網(wǎng)絡(luò)是一個(gè)70×70 像素的PatchGan,廣泛用于圖像到圖像轉(zhuǎn)換的網(wǎng)絡(luò)架構(gòu)。PatchGan 輸出為30×30 的矩陣,矩陣中的每個(gè)值代表每個(gè)70×70 的patch 為真樣本的概率,使得模型更能關(guān)注圖像的細(xì)節(jié)信息。GAN 通常被認(rèn)為難以訓(xùn)練,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),對(duì)于本文的任務(wù),到后期損失函數(shù)仍會(huì)大幅震蕩,訓(xùn)練過(guò)程極為不穩(wěn)定。
Lipschitz 條件可以限制函數(shù)變化的劇烈程度,即函數(shù)的最大梯度。假設(shè)鑒別器D:I→R,其中I是圖像空間。如果鑒別器是K-Lipchitz 連續(xù)的,即函數(shù)的最大梯度為K,那么對(duì)圖像空間中的任意x和y,有:
其中:‖·‖為L(zhǎng)2-norm,如果K取到最小值,那么K被稱(chēng)為L(zhǎng)ipschitz 常數(shù)。
譜歸一化[28]使得鑒別器D滿(mǎn)足1-Lipschitz 條件,已經(jīng)被證明可以限制函數(shù)變化的劇烈程度來(lái)穩(wěn)定模型訓(xùn)練。因此,將鑒別器每個(gè)卷積層后的歸一化層用譜歸一化替代,使用Leaky ReLU 函數(shù)作為激活函數(shù),如圖6 所示。通過(guò)約束鑒別器的Lipschitz常數(shù)得到穩(wěn)定的訓(xùn)練結(jié)果,該替代不需要額外超參數(shù)調(diào)整,計(jì)算成本相對(duì)較小。
圖6 鑒別器架構(gòu)Fig.6 Architecture of the discriminator
3.1.1 數(shù)據(jù)集準(zhǔn)備
對(duì)于監(jiān)督模型,需要準(zhǔn)備大量的書(shū)法字及對(duì)應(yīng)的真實(shí)骨架,采用人工標(biāo)注骨架或細(xì)化算法提取骨架難以保留書(shū)法字的書(shū)寫(xiě)原始路徑且丟失大量的用筆信息等。在線(xiàn)手寫(xiě)樣本[29]通過(guò)(x,y)坐標(biāo)序列記錄書(shū)寫(xiě)過(guò)程,保留了用筆書(shū)寫(xiě)的過(guò)程信息,可以視為骨架,如圖7(a)所示。在此基礎(chǔ)上,通過(guò)擴(kuò)大筆畫(huà)寬度,在交叉區(qū)域和端點(diǎn)進(jìn)行膨脹腐蝕操作并控制邊緣平滑度和前景灰度生成如圖7(b)所示的合成圖,構(gòu)成配對(duì)的偽書(shū)法字圖像和骨架的學(xué)習(xí)樣本。
圖7 在線(xiàn)手寫(xiě)字與離線(xiàn)書(shū)法字Fig.7 Online handwritten character and offline calligraphy character
3.1.2 訓(xùn)練細(xì)節(jié)
所有實(shí)驗(yàn)均使用相同的設(shè)備完成,操作系統(tǒng)為CentOS Linux release 8.5.2111、顯卡為T(mén)esla T4、處理器 為 Intel?Xeon?Platinum 8163 CPU @2.50 GHz,在Python3.8,PyTorch1.7-cuda11.0 的環(huán)境下運(yùn)行。
生成器和鑒別器的初始學(xué)習(xí)率設(shè)置為0.000 2,在訓(xùn)練到50 個(gè)epoch 后學(xué)習(xí)率調(diào)整為0.000 1,使訓(xùn)練結(jié)果逐步收斂,采用Adam 優(yōu)化器加速訓(xùn)練過(guò)程,其參數(shù)設(shè)置保持默認(rèn)值,λ設(shè)置為10,批訓(xùn)練量的大小設(shè)置為16,在訓(xùn)練過(guò)程中隨機(jī)改變輸入圖片的亮度、對(duì)比度和飽和度以提高模型的泛化性。
骨架提取圖像為二值圖,圖像中像素點(diǎn)的灰度值均為0 或者255,本文的任務(wù)實(shí)際上是一個(gè)二分類(lèi)任務(wù)。為了評(píng)價(jià)本文方法在骨架提取上的性能,采用5 個(gè)常用于骨架提取評(píng)價(jià)指標(biāo)進(jìn)行定量評(píng)價(jià):即準(zhǔn)確度(ACC)、召回率(Recall)、精度(Precision)、F1 值(F1)以及聯(lián)合交并比(Intersection over Union,IoU),這5 項(xiàng)的評(píng)價(jià)指標(biāo)的定義如下:
其中:TTP是網(wǎng)絡(luò)輸出為正確的骨架像素的數(shù)量;TTN是網(wǎng)絡(luò)輸出為正確的非骨架像素的數(shù)量;FFN是網(wǎng)絡(luò)輸出為不正確的骨架像素的數(shù)量;FFP是網(wǎng)絡(luò)輸出為正確的非骨架像素的數(shù)量。
在二值化骨架圖中,骨架點(diǎn)和非骨架點(diǎn)類(lèi)別極度不均衡。F1 值考慮了真實(shí)骨架圖和生成的圖像中的骨架和背景像素的數(shù)量,可以衡量骨架像素點(diǎn)和非骨架像素點(diǎn)之間類(lèi)別不平衡的影響程度,值越大,影響程度越低。ACC 和F1 值越大,網(wǎng)絡(luò)生成的骨架圖像的整體結(jié)構(gòu)越好,召回率和精度分?jǐn)?shù)越高,生成骨架的網(wǎng)絡(luò)性能越好,IoU 則顯示了骨架定位的準(zhǔn)確性。
為了更加直觀地描述不同模型的性能,文獻(xiàn)[12]提出了最小平均距離(AMD)來(lái)度量不同模型生成骨架的效果:
其中:D為生成骨架點(diǎn)和目標(biāo)骨架點(diǎn)兩兩之間的歐氏距離;H為匈牙利算法,通過(guò)求解對(duì)應(yīng)骨架點(diǎn)集之間的最大匹配問(wèn)題來(lái)計(jì)算骨架相似度。AMD 值越低,生成骨架與原始骨架的相似性越高。
為了驗(yàn)證所添加的模塊的有效性,對(duì)添加模塊后的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行定量分析,如表1 所示。從表1 可以看出,在基線(xiàn)網(wǎng)絡(luò)上添加了HACM 模塊和CCA 模塊后,指標(biāo)都有明顯提升,ACC、Recall 和Precision指標(biāo)分別為0.983 5、0.825 4 和0.845 5,IoU 指標(biāo)的提升顯示出本文算法在骨架定位上的優(yōu)勢(shì),AMD 指標(biāo)顯示出生成骨架與目標(biāo)骨架相似程度較高。
表1 不同網(wǎng)絡(luò)結(jié)構(gòu)的定量比較Table 1 Quantitative comparison of different network structures
圖8 所示為在改進(jìn)的pix2pix 模型上,鑒別器的卷積層分別使用Batch Normalization 和Spectral Normalization 進(jìn)行模型訓(xùn)練過(guò)程中生成器和鑒別器損失函數(shù)的變化。其中,G_BCE 和G_L1 為生成器的二元交叉熵?fù)p失和L1 損失,D_real 和D_fake 分別為真實(shí)骨架圖和生成骨架圖的判別損失。從損失函數(shù)的振蕩情況來(lái)看,使用譜歸一化的鑒別器可以得到更加穩(wěn)定的訓(xùn)練過(guò)程。
圖8 骨架提取算法的局部對(duì)比圖Fig.8 Local contrast map of skeleton extraction algorithms
表2 所示為不同激活函數(shù)實(shí)驗(yàn)結(jié)果的定量比較,可以看出修改激活函數(shù)為L(zhǎng)eaky ReLU 的模型相較于僅使用ReLU 作為激活函數(shù)的模型在各項(xiàng)指標(biāo)上都顯示出更優(yōu)的表現(xiàn)。
表2 不同激活函數(shù)的定量比較Table 2 Quantitative comparison of different activation functions
在生成器的損失函數(shù)中,L1 Loss 用于生成圖像的低頻部分,超參數(shù)λ用于平衡Gan 損失和L1 損失。如圖9所示,在λ=5的情況下,L1 Loss波動(dòng)較為 劇烈,而λ在10、15、20 以及25 的情況下幾乎沒(méi)有明顯區(qū)別,因此認(rèn)為在本文任務(wù)中,λ取值不敏感,采用默認(rèn)取值10。
圖9 不同λ 取值下L1 loss 的對(duì)比Fig.9 Comparison of L1 loss with different λ values
將本文算法與Z-S 細(xì)化算法、常慶賀等[5]提出的改 進(jìn)Z-S 細(xì)化算法、FSDS算法、pix2pix cGAN算法以及應(yīng)用于書(shū)法圖像筆畫(huà)分割的改進(jìn)pix2pix 算法SSGAN 等現(xiàn)有的骨架提取算法進(jìn)行比較分析,對(duì)比結(jié)果如表3 所示。
表3 不同算法在合成的書(shū)法字?jǐn)?shù)據(jù)集上性能的定量比較Table 3 Quantitative comparison of the performance of different algorithms on synthetic calligraphy character dataset
從表3 可以看出,本文算法與其他算法相比在性能指標(biāo)上有明顯提升。IoU 的顯著提高表明本文算法可以獲得更準(zhǔn)確的字符骨架定位。FSDS 算法生成筆畫(huà)較粗,顯示出更高的精確度和較優(yōu)的AMD值,但I(xiàn)oU 和F1 值較低,表明其生成骨架在整體結(jié)構(gòu)上的劣勢(shì)。
圖10 所示為書(shū)法字測(cè)試集在不同算法下的骨架提取效果,其中,從左到右依次為合成書(shū)法字、真實(shí)骨架、Z-S 細(xì)化算法、FSDS 算法、pix2pix cGAN、SSGAN、本文的算法。從圖10 可以看出:Z-S 細(xì)化算法在交叉區(qū)域扭曲嚴(yán)重,丟失大量信息;基于全卷積網(wǎng)絡(luò)的FSDS 生成的字符骨架優(yōu)化了傳統(tǒng)算法在交叉區(qū)域的扭曲,但生成筆畫(huà)較粗,且有大量斷點(diǎn);pix2pix cGAN 算法極易產(chǎn)生筆畫(huà)斷裂的情況,難以獲得相對(duì)平滑的骨架;SSGAN 算法十分接近原始骨架,但無(wú)法準(zhǔn)確地分隔開(kāi)粘連部分的骨架,更易產(chǎn)生臟背景的情況;采用本文算法的骨架提取結(jié)果最接近真實(shí)骨架,筆畫(huà)連貫清晰,形態(tài)自然。
圖10 不同算法在合成的書(shū)法字?jǐn)?shù)據(jù)集上的骨架提取結(jié)果Fig.10 Skeleton extraction results of different algorithms on the synthesized calligraphy character dataset
為了評(píng)價(jià)網(wǎng)絡(luò)的泛化性,隨機(jī)拍攝了字帖上的書(shū)法字進(jìn)行骨架提取,并將其與其他骨架提取算法的提取結(jié)果進(jìn)行了比較。圖11 所示為本文算法與傳統(tǒng)基于鄰域的骨架提取算法的局部對(duì)比。從圖11中筆畫(huà)的局部可以看出,改進(jìn)Z-S 算法可以在保證骨架連通性的前提下去除冗余像素,但骨架交叉區(qū)域的扭曲情況無(wú)法改善。值得注意的是,在離線(xiàn)圖片上雖然顯示筆畫(huà)粘連,但是交叉區(qū)域并非實(shí)際書(shū)寫(xiě)時(shí)的落筆的重心位置,本文的方法可以更好地捕捉到這類(lèi)深層信息。
圖11 骨架提取算法的局部對(duì)比圖Fig.11 Local contrast map of skeleton extraction algorithm
不同算法在真實(shí)書(shū)法字上的骨架提取結(jié)果如圖12 所示,其中,從左到右依次為書(shū)法字、Z-S 細(xì)化算法、FSDS 算法、pix2pix cGAN 算法、SSGAN 算法、本文算法。由于FSDS 的輸出骨架較粗,圖12 對(duì)FSDS 的輸出結(jié)果使用Z-S 細(xì)化算法進(jìn)行了后處理使其具有可讀性。從不同算法的輸出結(jié)果可以看出,本文算法可以成功地提取字帖書(shū)法字的骨架,不會(huì)產(chǎn)生過(guò)多的背景噪聲,泛化能力較高。
圖12 不同算法在真實(shí)書(shū)法字上的骨架提取結(jié)果Fig.12 Skeleton extraction results of different algorithms on real calligraphy characters
值得一提的是,與其他算法相比,本文算法有效地保留了書(shū)寫(xiě)過(guò)程中的運(yùn)筆信息,例如起筆、收筆以及筆畫(huà)轉(zhuǎn)折處的細(xì)節(jié)信息,在筆畫(huà)交叉區(qū)域也表現(xiàn)得非常好。
本文提出一種改進(jìn)pix2pix 算法用于書(shū)法字骨架提取,通過(guò)添加HACM 和CCA 模塊加深網(wǎng)絡(luò)對(duì)圖像深度理解,對(duì)鑒別器使用譜歸一化來(lái)穩(wěn)定模型訓(xùn)練過(guò)程。實(shí)驗(yàn)結(jié)果表明,該算法相較于傳統(tǒng)的Z-S 算法和改進(jìn)的Z-S 算法、FSDS 算法,可以獲得離線(xiàn)字符丟失的書(shū)寫(xiě)過(guò)程信息,較好地解決現(xiàn)有算法在提取字符骨架時(shí)極易產(chǎn)生筆畫(huà)斷裂的情況。此外,F(xiàn)1、IoU 指標(biāo)值的提升以及AMD 的降低,說(shuō)明該算法可以有效地提高骨架提取的完整度和定位的準(zhǔn)確性,在保持骨架圖像結(jié)構(gòu)信息基礎(chǔ)上提升了模型的泛化能力,應(yīng)用到真實(shí)的書(shū)法字?jǐn)?shù)據(jù)集上可以達(dá)到提取完整自然骨架的效果。本文的訓(xùn)練數(shù)據(jù)集在字體類(lèi)別上還存在一定的限制,后續(xù)將進(jìn)一步豐富數(shù)據(jù)集以完善模型。