黃子君,陳 琪,羅文兵
1.南昌師范學(xué)院 數(shù)學(xué)與信息科學(xué)學(xué)院,南昌330022
2.江西師范大學(xué) 計(jì)算機(jī)信息工程學(xué)院,南昌330022
漢字作為中華民族文化的重要載體,其書寫作為一種文學(xué)藝術(shù),能夠讓人感受到中華文化的博大精深。目前,手寫漢字生成在館藏學(xué)特別是在古文獻(xiàn)修復(fù)、名人書法鑒別等應(yīng)用中有廣泛的應(yīng)用前景[1-8],區(qū)別于圖像模式識(shí)別[9-10]任務(wù)主要通過對(duì)圖像進(jìn)行分割、特征提取等方式實(shí)現(xiàn)圖像識(shí)別的目的,漢字生成任務(wù)主要是通過學(xué)習(xí)不同漢字表示域之間的映射,實(shí)現(xiàn)從一種漢字風(fēng)格遷移到另一種漢字風(fēng)格[11-12]。手寫漢字生成任務(wù)研究工作前驅(qū)是標(biāo)準(zhǔn)字體的風(fēng)格遷移,例如從楷體到宋體漢字的風(fēng)格轉(zhuǎn)換。由于手寫漢字的生成任務(wù)更為復(fù)雜,所以在現(xiàn)階段想要生成效果上乘的手寫漢字仍亟待進(jìn)一步研究。
回顧機(jī)器學(xué)習(xí)歷史,采用機(jī)器學(xué)習(xí)的方式解決手寫漢字生成任務(wù)的方法可以總體概括為兩大類,一種是基于淺層學(xué)習(xí)的手寫漢字生成方式[13-22],該方法是將漢字拆分之后提取漢字的層次結(jié)構(gòu)、筆畫、大小等局部信息,通過一定的算法合成手寫漢字。另一種是基于深度學(xué)習(xí)的手寫漢字生成方式[23-26],該方式是將單個(gè)漢字看成一個(gè)基本單元,是一個(gè)不可分割的整體,關(guān)注的是漢字的整體風(fēng)格,基于這樣的想法采用以卷積神經(jīng)網(wǎng)絡(luò)[27](Convolutional Neural Networks,CNNs)為代表的深度學(xué)習(xí)模型實(shí)現(xiàn)手寫漢字生成。
一般而言,基于淺層學(xué)習(xí)的手寫漢字生成方式的關(guān)注點(diǎn)在漢字的局部信息上,在生成漢字的過程中需要對(duì)漢字的筆畫大小與位置進(jìn)行控制調(diào)整,除此之外,在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理的時(shí)候,往往需要大量的人力物力去進(jìn)行手工標(biāo)注[12-16]。最后,基于淺層學(xué)習(xí)的手寫漢字生成方法面臨硬件計(jì)算能力不足及數(shù)據(jù)集規(guī)模較小等瓶頸問題。
近些年來,隨著硬件計(jì)算能力的極大提升及大規(guī)模數(shù)據(jù)集的出現(xiàn),深度學(xué)習(xí)在圖像、語音和自然語言處理等應(yīng)用領(lǐng)域取得了巨大的成功[28-30]。深度學(xué)習(xí)的一個(gè)核心要素便是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的搭建,其中一些典型的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括卷積神經(jīng)網(wǎng)絡(luò)(CNNs)、循環(huán)神經(jīng)網(wǎng)絡(luò)[31-33](Recurrent Neural Networks,RNNs)和深度殘差網(wǎng)絡(luò)[34-35](Deep Residual Networks,DRNs)。特別地,作為深度學(xué)習(xí)新的研究熱點(diǎn),生成對(duì)抗網(wǎng)絡(luò)[36-37](Generative Adversarial Networks,GANs)被逐步應(yīng)用到手寫漢字生成任務(wù)中[23-26],所生成的漢字質(zhì)量顯著優(yōu)于基于淺層學(xué)習(xí)的漢字生成方法的效果,從而為手寫漢字生成研究開辟了一個(gè)新的方向?;谏疃葘W(xué)習(xí)的漢字生成方法通常存在訓(xùn)練方式復(fù)雜,訓(xùn)練不穩(wěn)定,對(duì)數(shù)據(jù)集規(guī)模及存儲(chǔ)空間需求較高等問題。目前,一些典型的基于深度學(xué)習(xí)的漢字生成研究見文獻(xiàn)[23-25],其中白海娟等人采用了生成對(duì)抗網(wǎng)絡(luò)實(shí)現(xiàn)手寫漢字生成,取得了較好的實(shí)驗(yàn)效果[24];Chang和Zhang等人采用循環(huán)生成對(duì)抗網(wǎng)絡(luò)實(shí)現(xiàn)手寫漢字的生成任務(wù)[23],這種網(wǎng)絡(luò)結(jié)構(gòu)在損失函數(shù)部分添加了循環(huán)一致性損失,該方法除了對(duì)普通的手寫漢字有好的效果之外,對(duì)于王羲之這樣的書法藝術(shù)字也能夠有較好的生成效果;在滕少華和孔棱睿[25]的工作中除了采用生成對(duì)抗網(wǎng)絡(luò)作為手寫漢字生成的基本模型,還通過增加遷移條件,控制生成模型的目標(biāo)輸出,進(jìn)而實(shí)現(xiàn)了一對(duì)一、一對(duì)多等字體風(fēng)格遷移。
基于深度學(xué)習(xí)的手寫漢字生成方法的關(guān)注點(diǎn)在于漢字的整體風(fēng)格上,利用該方法生成的漢字能夠有效地關(guān)注到漢字的整體風(fēng)格,通過端到端的方式實(shí)現(xiàn)漢字的自動(dòng)生成。該方式無需人工提取漢字的結(jié)構(gòu)信息且不需要對(duì)漢字的局部進(jìn)行調(diào)整。
但現(xiàn)有的基于深度學(xué)習(xí)的漢字自動(dòng)生成方法仍然存在一定的局限性,如該方法實(shí)現(xiàn)的前提是需要大量的數(shù)據(jù)集訓(xùn)練模型,才能產(chǎn)生較好的效果,對(duì)硬件配置的要求也比較大。目前現(xiàn)有的手寫漢字生成的方法所得到漢字仍然會(huì)有一些生成錯(cuò)字、生成筆畫非美學(xué)形式扭曲、生成的漢字結(jié)構(gòu)錯(cuò)亂等錯(cuò)誤[17],并且在手寫漢字生成的應(yīng)用上也沒有大規(guī)模的推廣應(yīng)用,相關(guān)軟件產(chǎn)品的生成效果還有待改善。因此,現(xiàn)階段的研究方法生成手寫漢字,仍然還有很大的提升空間??梢哉f手寫漢字生成是一個(gè)仍未完全解決且極富挑戰(zhàn)性的研究課題。這些挑戰(zhàn)主要表現(xiàn)在以下幾個(gè)方面[8]:
(1)中國漢字字符類別繁多,相較于拉丁語與英語來說,它們通常只有幾十個(gè)數(shù)目的字符組成單詞,然后再通過單詞組成句子表達(dá)所需要表達(dá)的含義。而對(duì)于中文漢字來說,在1980年制定的國際標(biāo)準(zhǔn)GB 2312—80編碼就定義了多達(dá)6 763類常用漢字,這遠(yuǎn)遠(yuǎn)高于英語和拉丁語。然而這些編碼還遠(yuǎn)遠(yuǎn)不能滿足人們漢字處理信息的需求。在2000年發(fā)布的國標(biāo)18010第一版中大幅度擴(kuò)展了字符集,定義了27 533類漢字編碼標(biāo)準(zhǔn)。在之后的第二版包含42 711個(gè)漢字和多種少數(shù)民族文字等字符,所收錄的字符種類高達(dá)70 244類。如果要生成一套符合GBK(中國政府規(guī)定的字符集)的字體,需要一個(gè)設(shè)計(jì)師花幾年的時(shí)間設(shè)計(jì)大約幾萬字。
(2)雖然漢字的印刷體有固定的格式,但是針對(duì)于手寫漢字生成任務(wù)來說,手寫體的漢字隨意性很大,并且缺乏規(guī)范性。對(duì)于不同的人來說,同一個(gè)漢字可能會(huì)寫成不同的形態(tài),或是同一個(gè)漢字的同一個(gè)筆畫可能都會(huì)寫成不同的長(zhǎng)短,甚至可能會(huì)出現(xiàn)寫錯(cuò)的現(xiàn)象。例如應(yīng)該寫的筆畫沒寫上、多寫了本不該存在的筆畫,或者是某些結(jié)構(gòu)出現(xiàn)了錯(cuò)亂。同時(shí)人們?cè)谟霉P書寫漢字的時(shí)候,根據(jù)個(gè)人的書寫習(xí)慣,連筆書寫漢字,這樣不該連上的筆畫就會(huì)連上。如果這樣的漢字作為手寫漢字生成的數(shù)據(jù)集,也許會(huì)給生成漢字的任務(wù)帶來一定的困難。除此之外,中國書法漢字生成也是一項(xiàng)非常困難的任務(wù),大多數(shù)書法創(chuàng)作時(shí)有很多的個(gè)人感情包含在內(nèi),中國書法注重的是意念而不是形態(tài),可能會(huì)因?yàn)閭€(gè)人感情的原因而將漢字大程度的扭曲。此外,中國上下五千年孕育了太多字體,從最早的甲骨文到后來的楷、隸、行、草等,每一種字體都有他們自己的風(fēng)格,這無疑增加了手寫漢字生成的難度。
(3)中文漢字中有許多漢字都非常的相似,例如大-太、嬡-媛、往-住等,對(duì)于手寫漢字來說,如果不聯(lián)系上下文去判別寫的非常相似的兩個(gè)漢字準(zhǔn)確率也許會(huì)大大降低。所以在生成手寫漢字的時(shí)候,這些相似的漢字會(huì)大大提高生成漢字的錯(cuò)誤率,給生成任務(wù)帶來巨大的挑戰(zhàn)。
(4)無論是生成任務(wù)還是識(shí)別任務(wù),想要得到很好的效果必須要依賴大量的數(shù)據(jù)集。越多的數(shù)據(jù)集會(huì)給實(shí)驗(yàn)帶來更好的效果。如果想要生成具有個(gè)人風(fēng)格的手寫漢字無疑需要大量的手寫漢字的數(shù)據(jù)集,但是現(xiàn)階段手寫漢字?jǐn)?shù)據(jù)庫明顯不足。在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的采集和整理都需要花費(fèi)大量的人力物力,在采集數(shù)據(jù)集的過程中還需要估計(jì)搜集漢字?jǐn)?shù)據(jù)集的完整性和正確性。現(xiàn)階段所擁有較好的數(shù)據(jù)集包括:①中文手寫數(shù)據(jù)集是由模式識(shí)別國家實(shí)驗(yàn)室(NLPR)和中國自動(dòng)化研究所科學(xué)院(CASIA)共同整理的,這個(gè)數(shù)據(jù)集是由171個(gè)字母數(shù)字字符和符號(hào)以及3 866中文漢字(DB1.0)或3 755中文漢字(DB1.1)組成。②華南理工大學(xué)發(fā)布的涵蓋單詞、詞組、文本行、數(shù)字、字母、符號(hào)等綜合手寫數(shù)據(jù)集SCUT-COUCH。③清華大學(xué)與騰訊共同推出了中文自然文本數(shù)據(jù)集(Chinese Text in the Wild,CTW)——一個(gè)超大的街景圖片中文文本數(shù)據(jù)集,為訓(xùn)練先進(jìn)的深度學(xué)習(xí)模型提供了重要的數(shù)據(jù)集來源。該數(shù)據(jù)集包含32 285張圖像和1 018 402個(gè)中文字符。前兩個(gè)數(shù)據(jù)集的總量相對(duì)于本文的生成任務(wù)來說不夠大,而第三個(gè)數(shù)據(jù)集雖然數(shù)量龐大,但是由于是街景采集的中文數(shù)據(jù)集,干擾性太強(qiáng),更適合運(yùn)用于自然場(chǎng)景文字的檢測(cè)和識(shí)別中。
針對(duì)手寫漢字生成的相關(guān)研究,本文主要綜述以及分析近些年來手寫漢字生成任務(wù)的發(fā)展過程和最新進(jìn)展。
本章主要介紹與漢字生成相關(guān)的深度學(xué)習(xí)模型與算法。
深度學(xué)習(xí)是近些年發(fā)展起來的機(jī)器學(xué)習(xí)的一個(gè)新的分支。深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)的起源要追溯到20世紀(jì)40年代的McCullock-Pitts(MCP)[38]人工神經(jīng)元模型。反向傳播(Back Propagation)算法[39-40]的出現(xiàn)加上隨機(jī)梯度下降(Stochastic Gradient Descent)算法[41]為訓(xùn)練淺層神經(jīng)網(wǎng)絡(luò)提供了有力的支撐。1986年Hinton發(fā)明了適用于多層感知器(MLP)的BP算法,并采用Sigmoid進(jìn)行非線性映射。LeCun等人在1989年提出了LeNet的最初模型[42]并在多年的研究改進(jìn)之后提出了改進(jìn)模型LeNet-5[43]。2006年Hinton利用一種無監(jiān)督的方式[28]——“逐層初始化”(Layer-wise pre-training)首次實(shí)現(xiàn)了DNNs的模型訓(xùn)練并取得了很好的效果,這為深度學(xué)習(xí)的興起帶來了曙光。典型的網(wǎng)絡(luò)結(jié)構(gòu)有卷積神經(jīng)網(wǎng)絡(luò)[42-43]、循環(huán)神經(jīng)網(wǎng)絡(luò)[31-33]、深度殘差網(wǎng)絡(luò)[34-35]和生成對(duì)抗網(wǎng)絡(luò)[36-37]等。下面將對(duì)這幾種網(wǎng)絡(luò)做簡(jiǎn)單的介紹。
卷積神經(jīng)網(wǎng)絡(luò)(CNNs)是目前在深度學(xué)習(xí)中被廣泛應(yīng)用的網(wǎng)絡(luò)框架,其早期雛形可以追溯到1980年Fukushima發(fā)表的關(guān)于自組織神經(jīng)網(wǎng)絡(luò)模型的論文[44]。在20世紀(jì)90年代,LeCun將反向傳播和隨機(jī)梯度下降算法運(yùn)用于卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練,搭建了LeNet?,F(xiàn)有CNNs的基本框架大體可分為卷積層、池化層和全連接層。后續(xù)許多深度神經(jīng)網(wǎng)絡(luò)如AlexNet等都是在LeNet的基礎(chǔ)上所發(fā)展出來的。
由于CNNs的輸出只考慮前一個(gè)輸入的影響而不考慮其他時(shí)刻輸入的影響,這種模型對(duì)簡(jiǎn)單的圖片的識(shí)別會(huì)有較好的效果,如果是一些與時(shí)間相關(guān)的任務(wù)如在篇章中預(yù)測(cè)一個(gè)字是什么等,CNNs這類模型有時(shí)會(huì)表現(xiàn)得不盡人意。針對(duì)此類任務(wù),循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs)是一種有效的解決途徑。區(qū)別于CNNs,RNNs不僅依賴于當(dāng)前的輸入,還依賴于過去的輸入。這種方式賦予了神經(jīng)網(wǎng)絡(luò)“記憶”的功能。RNNs的權(quán)重參數(shù)也可以采用反向傳播的方式,與前面提到的網(wǎng)絡(luò)不同的是,由于每一步的輸出不僅僅依賴的是當(dāng)前的網(wǎng)絡(luò),還需要前若干步的網(wǎng)絡(luò)狀態(tài),根據(jù)這種BP改版的算法叫做Backpropagation Through Time[45](BPTT)。
深度殘差網(wǎng)絡(luò)[34](DRNs)是一種非常深的前向反饋神經(jīng)網(wǎng)絡(luò)(這樣的網(wǎng)絡(luò)結(jié)構(gòu)信息流是單向的,不會(huì)構(gòu)成回路)。它有一種特殊的鏈接,能夠?qū)⑿畔哪骋粚觽鞯胶竺娴暮脦讓印0凑諔T性思維會(huì)認(rèn)為神經(jīng)網(wǎng)絡(luò)的層數(shù)越深,所訓(xùn)練的效果會(huì)越好。但實(shí)際情況往往是由于常規(guī)網(wǎng)絡(luò)的堆疊,當(dāng)網(wǎng)絡(luò)很深的時(shí)候,梯度消失的現(xiàn)象會(huì)越來越不好,同時(shí)難以訓(xùn)練,深度殘差網(wǎng)絡(luò)就是解決這個(gè)問題的。
近年來,還有一類特別值得關(guān)注的神經(jīng)網(wǎng)絡(luò)生成對(duì)抗網(wǎng)絡(luò)[36-37](GANs)。對(duì)抗生成網(wǎng)絡(luò)由兩個(gè)網(wǎng)絡(luò)組成,一個(gè)生成器網(wǎng)絡(luò)和一個(gè)判別器網(wǎng)絡(luò),這兩個(gè)網(wǎng)絡(luò)可以按照自己的需求設(shè)計(jì)(如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)和自編碼器等)。GANs訓(xùn)練是無監(jiān)督的,它也不需要標(biāo)記數(shù)據(jù)。在訓(xùn)練的過程中,可以看作是兩個(gè)網(wǎng)絡(luò)相互博弈競(jìng)爭(zhēng)的過程,雙方在不斷地博弈過程中讓自身變得更完美。GAN的應(yīng)用非常廣泛,如可以生成高質(zhì)量的圖片,還可以增強(qiáng)照片,從文本生成圖片,或是將圖像從一個(gè)域轉(zhuǎn)換到另一個(gè)域等。然而,由于存在訓(xùn)練不穩(wěn)定、模式坍塌等問題,如何有效訓(xùn)練GAN是一個(gè)極富挑戰(zhàn)性的課題。
目前深度學(xué)習(xí)已在眾多的領(lǐng)域中被廣泛應(yīng)用。相應(yīng)的深度學(xué)習(xí)框架也如雨后春筍般被不斷推出。現(xiàn)有比較主流的開源深度學(xué)習(xí)訓(xùn)練平臺(tái)主要有Caffe(http://caffe.berkeleyvision.org/)、Torch(http://torch.ch)、TensorFlow(https://tensorflow.google.cn)等。這些訓(xùn)練平臺(tái)的搭建為深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練提供了極大的便利。
在這部分主要介紹幾種利用深度學(xué)習(xí)的方式生成手寫漢字的方法。有學(xué)者認(rèn)為,通過深度學(xué)習(xí)的方式不僅能夠避免傳統(tǒng)方式那樣需要對(duì)數(shù)據(jù)進(jìn)行繁雜的預(yù)處理,還能夠獲得比傳統(tǒng)方式更好的生成效果。所以近年來提出了不少基于深度學(xué)習(xí)的手寫漢字生成的方法。區(qū)別于基于深度學(xué)習(xí)的方法,基于淺層學(xué)習(xí)的方法通常關(guān)注的是漢字的局部信息。利用算法提取漢字的筆畫、部首等局部特征,然后生成目標(biāo)字符。而基于深度學(xué)習(xí)的方式通常關(guān)注的是漢字的整體風(fēng)格,對(duì)漢字進(jìn)行風(fēng)格遷移,將標(biāo)準(zhǔn)字體風(fēng)格轉(zhuǎn)換為想要生成的手寫漢字的風(fēng)格。下面將詳細(xì)介紹現(xiàn)有基于深度學(xué)習(xí)的手寫漢字生成方法。
在深度學(xué)習(xí)的領(lǐng)域中,以卷積神經(jīng)網(wǎng)絡(luò)(CNNs)為基礎(chǔ)的模型最受關(guān)注,在語音處理、自然語言處理、圖像處理等任務(wù)中都能看到CNNs的身影。CNNs的網(wǎng)絡(luò)結(jié)構(gòu)與生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相類似,其復(fù)雜度相比于全連接神經(jīng)網(wǎng)絡(luò)大大降低,在圖像處理方面的優(yōu)勢(shì)尤為明顯。CNNs發(fā)展過程已在第1章中簡(jiǎn)要提及,雖然CNN在圖像識(shí)別(例如AlexNet在2012ImageNet(ILSVRC12)競(jìng)賽中獲得大幅度超過第二名的冠軍成績(jī)以及2014年在ImageNet挑戰(zhàn)賽(ILSVRC14)獲得第一與第二名的GooLeNet[46]和VGGNet[47])的任務(wù)中表現(xiàn)不俗,但是在生成任務(wù)中的應(yīng)用要少得多,所以將CNNs用到手寫漢字生成的相關(guān)文獻(xiàn)的報(bào)道一直很少。這主要是由于手寫漢字的類別數(shù)很多,而能夠運(yùn)用的手寫漢字的數(shù)據(jù)集卻不多。這使得常規(guī)的仿真實(shí)驗(yàn)難以訓(xùn)練或是需要很長(zhǎng)的時(shí)間訓(xùn)練。在2010年中科院自動(dòng)化所(CASIA)公布的脫機(jī)手寫漢字樣本庫為手寫漢字生成提供了良好的數(shù)據(jù)集,基于深度學(xué)習(xí)的手寫漢字生成的方法得到了學(xué)者們的重視,近幾年不斷有人利用不同的方式生成手寫漢字。下面將詳細(xì)介紹基于CNN實(shí)現(xiàn)手寫漢字生成。
研究者肖奮溪所發(fā)表的文獻(xiàn)[26]中提到Baluja實(shí)現(xiàn)了利用神經(jīng)網(wǎng)絡(luò)對(duì)漢字分類[48],并進(jìn)行了測(cè)試,平均準(zhǔn)確率可以達(dá)到90%以上,說明深度學(xué)習(xí)的模型對(duì)字體的風(fēng)格特征提取有很好的效果,證明了深度學(xué)習(xí)模型用于漢字風(fēng)格遷移的可行性。該類方法主要涉及如下幾個(gè)相關(guān)處理模塊:
(1)數(shù)據(jù)處理技術(shù):在訓(xùn)練的過程中為了避免出現(xiàn)過擬合的現(xiàn)象以及提高模型的魯棒性,除了采用Dropout一些經(jīng)典的技術(shù)之外,還采取了一些其他的方法。根據(jù)網(wǎng)絡(luò)的輸入輸出特點(diǎn)對(duì)輸入數(shù)據(jù)進(jìn)行適當(dāng)?shù)奶幚?,例如?shù)據(jù)增強(qiáng)、調(diào)整大小、主成分分析、去噪等操作。在上面所提到的文獻(xiàn)中所采用的訓(xùn)練圖片均是像素點(diǎn)圖片,在送入模型訓(xùn)練的時(shí)候?qū)⑾袼刂档缺壤成涞揭欢ǚ秶?。由于其采用的是TTF(True Type Font)文件生成的矢量圖,所以需要將字體文件進(jìn)行轉(zhuǎn)換。
(2)模型設(shè)計(jì):文獻(xiàn)[26]中采用的CNNs一共有15層,其中9層為卷積層。在每一層卷積層后會(huì)伴隨一個(gè)批量正則化,調(diào)整該層輸出的均值與方差,使得輸出的結(jié)果為高斯分布。在之后采用線性整流函數(shù)[49](Rectified Linear Unit,ReLU)作為激活函數(shù),使得梯度下降算法能夠更快地收斂。模型中還額外添加了總變誤差(Total variation loss),使得生成的圖片更為平滑,能夠避免出現(xiàn)過多的噪點(diǎn)以及中斷??傋冋`差為:
在網(wǎng)絡(luò)末尾輸出層并沒有采用常用的結(jié)構(gòu)全連接層,這是因?yàn)橹形臐h字生成時(shí),采用全連接層生成的圖片的噪聲過于明顯。圖1[26]展示了使用該方法實(shí)現(xiàn)的漢字風(fēng)格遷移的實(shí)驗(yàn)效果。
圖1 卷積神經(jīng)網(wǎng)絡(luò)模型在測(cè)試集中的表現(xiàn)Fig.1 Performance of convolutional neural network model in test set
雖然使用這樣的方式生成圖片的清晰度不是很好,但是在風(fēng)格辨識(shí)方面還是很明顯的,能夠輕易地識(shí)別生成的漢字。但該方法仍然存在一定的缺陷,例如只能進(jìn)行一對(duì)一風(fēng)格轉(zhuǎn)換,即只能一種字體轉(zhuǎn)換成手寫漢字。除此之外參數(shù)訓(xùn)練量大,存儲(chǔ)空間要求高,使得模型訓(xùn)練時(shí)對(duì)設(shè)備有一定的要求。
上文中作者[26]認(rèn)為卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)于漢字風(fēng)格遷移有著較大的局限性與不足,所以嘗試采用另一種基于編碼-解碼器[50](encoder-decoder)的網(wǎng)絡(luò)模型對(duì)字體風(fēng)格遷移任務(wù)進(jìn)行嘗試。
在文獻(xiàn)[26]中,編碼器與解碼器采用的是卷積、轉(zhuǎn)置卷積和連通結(jié)構(gòu)U-Net。編碼器由多層卷積層構(gòu)成,卷積通道不斷增加,單個(gè)卷積通道的尺寸不斷減少,解碼器由轉(zhuǎn)置卷積層構(gòu)成,卷積通道不斷減少,單個(gè)卷積通道尺寸不斷增加。編碼器與解碼器都為8層。每層卷積都包含了批量正則化與激活函數(shù),除了最后輸出層的激活函數(shù)是雙曲正切函數(shù)(tanh)之外,其他層的激活函數(shù)均為L(zhǎng)eaky ReLU。在實(shí)驗(yàn)中將標(biāo)簽引入U(xiǎn)-Net結(jié)構(gòu),在編碼器完成的編碼中拼接一段長(zhǎng)度為40的標(biāo)簽編碼。該網(wǎng)絡(luò)結(jié)構(gòu)如圖2[26]所示。
圖2 編碼-解碼器漢字字體風(fēng)格遷移模型結(jié)構(gòu)示意圖Fig.2 Encoder-decoder Chinese character font style migration model structure diagram
該模型能夠在大樣本訓(xùn)練下對(duì)字體進(jìn)行風(fēng)格遷移,特征提取的效果較好,除此之外還通過U-Net實(shí)現(xiàn)了在編碼中嵌入標(biāo)簽,對(duì)生成類別有十分顯著的影響。雖然生成的效果優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)的效果,但是該模型對(duì)小樣本的處理仍然不佳,生成的效果明顯有所降低。圖3至圖4[26]是分別在大樣本與小樣本的情況下訓(xùn)練的效果圖。
圖3 在大樣本的數(shù)據(jù)集下生成的結(jié)果Fig.3 Results generated under large sample data set
圖4 使用小樣本數(shù)據(jù)集生成的結(jié)果Fig.4 Results generated using small sample data set
在手寫漢字生成的領(lǐng)域里,為了進(jìn)一步地?cái)U(kuò)大手寫漢字生成的應(yīng)用領(lǐng)域和提高生成效果,研究人員將生成對(duì)抗網(wǎng)絡(luò)運(yùn)用在手寫漢字中[23-25]。生成對(duì)抗網(wǎng)絡(luò)對(duì)于圖片的生成有著較好的效果,如白海娟與周未等人的工作[24]所提到的:生成對(duì)抗網(wǎng)絡(luò)模型的訓(xùn)練方式是一種典型的非監(jiān)督學(xué)習(xí),需要大量的訓(xùn)練數(shù)據(jù)。在每次小批量樣本訓(xùn)練時(shí),判別器試圖區(qū)分真實(shí)字體和生成的假字體,而生成器不斷地提高自己的性能希望盡可能地欺騙判別器,在二者不斷抗衡的過程中提高生成字體的質(zhì)量。雖然生成對(duì)抗網(wǎng)絡(luò)是近幾年才出現(xiàn)的新模型,但是它在生成圖像的任務(wù)中有著自己的優(yōu)勢(shì),現(xiàn)階段在高分辨率的圖像生成任務(wù)中也有優(yōu)異的表現(xiàn)。圖5[24]是使用GANs生成的漢字。
圖5 金陵宋體轉(zhuǎn)換手寫刻印宋體Fig.5 Jinling Song type conversion handwritten and engraved Song type
滕少華和孔棱睿[25]首先采用端到端的方式實(shí)現(xiàn)一對(duì)一的字體風(fēng)格遷移,但是這一對(duì)一的映射關(guān)系,無法滿足多種字體轉(zhuǎn)換的實(shí)際運(yùn)用需求,所以在一對(duì)一的字體風(fēng)格遷移方法的基礎(chǔ)上增加了遷移條件,從而實(shí)現(xiàn)一對(duì)多的字體風(fēng)格遷移。該方法主要是通過在生成對(duì)抗網(wǎng)絡(luò)的損失函數(shù)上添加一個(gè)額外的信息作為字體風(fēng)格遷移條件,將輸入字體圖像與轉(zhuǎn)換條件(不同的數(shù)字代表不同的字體之間的相互轉(zhuǎn)換)進(jìn)行組合后送到網(wǎng)絡(luò)模型中。圖6和圖7[25]展示了一對(duì)一的漢字風(fēng)格遷移與多對(duì)多的手寫漢字風(fēng)格遷移的實(shí)驗(yàn)結(jié)果。
圖6 一對(duì)一字體風(fēng)格遷移實(shí)驗(yàn)結(jié)果Fig.6 One-to-one font style transfer experiment results
圖7 多對(duì)多的字體風(fēng)格遷移實(shí)驗(yàn)結(jié)果Fig.7 Many-to-many font style transfer experiment results
除此之外,研究人員還將漢字生成的任務(wù)拓展到具有個(gè)人風(fēng)格的手寫漢字生成任務(wù)上。雖然從標(biāo)準(zhǔn)字體轉(zhuǎn)換到手寫漢字也是圖像風(fēng)格遷移的一種,但是與標(biāo)準(zhǔn)字體遷移到另一種標(biāo)準(zhǔn)字體不同。因?yàn)槊總€(gè)人的手寫字體都有自己獨(dú)特的風(fēng)格,沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。雖然手寫漢字生成任務(wù)面臨著巨大的挑戰(zhàn),但是研究人員在基于深度學(xué)習(xí)的手寫漢字生成任務(wù)中仍然拓展出一片天地。在Chang與Zhang等人2018年的研究工作文獻(xiàn)中[23],針對(duì)漢字?jǐn)?shù)量多,但是手寫漢字?jǐn)?shù)據(jù)集較少,并且大多數(shù)數(shù)據(jù)集都是非配對(duì)的問題,提出了一種利用循環(huán)生成對(duì)抗網(wǎng)絡(luò)(CycleGANs)的方式生成手寫漢字,解決了訓(xùn)練數(shù)據(jù)不足的問題。在手寫漢字生成的過程中,要求用戶寫出大量的漢字作為轉(zhuǎn)換字體的訓(xùn)練數(shù)據(jù)是不符合實(shí)際的,而且用戶每天每次寫同一個(gè)可能都會(huì)發(fā)生一些細(xì)微的變化,這種現(xiàn)象充分說明了一個(gè)能夠利用非配對(duì)的訓(xùn)練集的深度學(xué)習(xí)模型是有價(jià)值的。采用這樣的方式使深度學(xué)習(xí)模型關(guān)注于漢字的整體風(fēng)格,不需要對(duì)生成的漢字進(jìn)行微調(diào)。該模型將DenseNet-5與DenseNet-7[51]運(yùn)用于CycleGAN的生成器的構(gòu)架中,在CASIA-HWDB1.1和蘭亭字體數(shù)據(jù)集上以生成漢字內(nèi)容的準(zhǔn)確性評(píng)價(jià)指標(biāo),獲得最好成績(jī)達(dá)到90.03%的準(zhǔn)確率。圖8與圖9[23]分別為模型生成器的結(jié)構(gòu)圖與生成的結(jié)果圖。
圖8 DenseNet-5 CycleGAN中生成器的構(gòu)架Fig.8 Architecture of generator in DenseNet-5 CycleGAN
圖9 采用DenseNet-5和ResNet-6在蘭亭數(shù)據(jù)集上生成的實(shí)驗(yàn)結(jié)果Fig.9 Experimental results generated on Lanting dataset using DenseNet-5 and ResNet-6
使用上述方式生成的手寫漢字在整體風(fēng)格上有較好的效果,生成的漢字的識(shí)別率也比較高,雖然有少量的生成漢字字體模糊,但總體來說是較好的手寫漢字生成方式。同樣的它也存在著與卷積神經(jīng)網(wǎng)絡(luò)同樣的問題,大多數(shù)生成模型只能進(jìn)行一對(duì)一的風(fēng)格轉(zhuǎn)換,在要將其他字體轉(zhuǎn)換成手寫漢字的時(shí)候就需要重新訓(xùn)練模型。此外,模型復(fù)雜,訓(xùn)練時(shí)間長(zhǎng),存儲(chǔ)量大也是神經(jīng)網(wǎng)絡(luò)的一大劣勢(shì)。
本文回顧了手寫漢字生成的研究背景,系統(tǒng)地介紹了基于深度學(xué)習(xí)的手寫漢字生成方法的基本思想、主要步驟及關(guān)鍵技術(shù),并指出了相應(yīng)方法的優(yōu)點(diǎn)及局限性。
隨著移動(dòng)端智能設(shè)備在人們?nèi)粘I钪械膹V泛普及,特別是觸摸屏的迅速普及促使傳統(tǒng)的鍵盤輸入發(fā)展為虛擬鍵盤、手寫和語音等其他方式。在相關(guān)的調(diào)查中發(fā)現(xiàn),手寫輸入方式占總輸入的13.1%,按照使用漢字的人口比例來算,這無疑是一個(gè)巨大的數(shù)字。這種輸入方式潛在給手寫漢字生成任務(wù)的研究者們提供了一定數(shù)量的手寫漢字研究樣本。這種輸入方式能夠更便捷地獲取具有個(gè)人風(fēng)格的漢字樣本,給未來具有個(gè)人風(fēng)格的手寫漢字生成模型遷移到移動(dòng)端提供了一定的數(shù)據(jù)集支撐,使得手寫漢字生成任務(wù)的應(yīng)用前景更加寬闊。因此,手寫漢字生成技術(shù)仍值得人們更深入地研究。
手寫漢字生成經(jīng)過多年的發(fā)展,生成的漢字的正確性與多樣性有了很大的提高,特別是在以CNNs為代表的一系列深度學(xué)習(xí)模型的出現(xiàn),使得手寫漢字生成工作有了很大的提高。在大數(shù)據(jù)集的支持下,節(jié)約很多人力物力并能夠生成效果較好的手寫漢字。雖然在研究者們的共同努力下,手寫漢字生成任務(wù)有了很大的進(jìn)展,但是仍然有很多問題尚待解決。根據(jù)現(xiàn)階段存在的問題,如下研究方向仍值得深入研究:
(1)在漢字生成的領(lǐng)域中,基于深度學(xué)習(xí)的方式,采用卷積神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)模型只能實(shí)現(xiàn)一對(duì)一的漢字風(fēng)格轉(zhuǎn)換,例如從楷體字轉(zhuǎn)換成宋體字。如果要實(shí)現(xiàn)其他風(fēng)格的轉(zhuǎn)換則需要重新訓(xùn)練模型,這樣的方法無疑花費(fèi)了大量的時(shí)間。如何實(shí)現(xiàn)多種字體域之間的相互轉(zhuǎn)換仍然是一個(gè)值得深入研究的問題。
(2)因漢字的結(jié)構(gòu)復(fù)雜,存在大量結(jié)構(gòu)相似的字體,使?jié)h字生成的效果不能達(dá)到令人滿意的程度。特別是在手寫漢字生成中,手寫漢字的數(shù)據(jù)集通常存在一定的噪聲,這種噪聲可能會(huì)帶來漢字的形變或是結(jié)構(gòu)錯(cuò)誤。到目前為止,還沒有一個(gè)抗干擾能力強(qiáng)的高效生成方法,如何利用存在一定噪聲的數(shù)據(jù)集生成效果較好的手寫漢字仍值得深入研究。
(3)無論是基于淺層學(xué)習(xí)的方式還是深度學(xué)習(xí)的方式或多或少都需要人工進(jìn)行標(biāo)注,需要人工處理就意味著需要耗費(fèi)一定程度的人力資源。因此,利用現(xiàn)有互聯(lián)網(wǎng)未標(biāo)注數(shù)據(jù),實(shí)現(xiàn)手寫漢字生成的高效方法仍值得深入研究。
(4)在利用生成對(duì)抗網(wǎng)絡(luò)生成手寫漢字的過程中,不可避免地會(huì)出現(xiàn)模式崩潰的現(xiàn)象。產(chǎn)生模式崩潰的現(xiàn)象的原因主要有以下兩點(diǎn):①生成對(duì)抗網(wǎng)絡(luò)本身就易產(chǎn)生模式崩潰的現(xiàn)象;②對(duì)于手寫字體,經(jīng)常會(huì)出現(xiàn)相似的字,由于手寫漢字可能會(huì)產(chǎn)生連筆等,可能會(huì)出現(xiàn)兩個(gè)字非常接近甚至難以區(qū)分,這也會(huì)導(dǎo)致模式崩潰。除此之外,不同的字體之間也可能會(huì)出現(xiàn)相似的字。以上這兩種現(xiàn)象都會(huì)導(dǎo)致模式崩潰。因此,如何解決GAN在漢字生成任務(wù)中的訓(xùn)練不穩(wěn)定及模式坍塌問題,是GAN在該任務(wù)中取得成功的關(guān)鍵。
(5)另外手寫漢字生成成果缺乏標(biāo)準(zhǔn)的鑒定和評(píng)價(jià)依據(jù),而且并未建立標(biāo)準(zhǔn)的漢字生成成果測(cè)試的數(shù)據(jù)庫與測(cè)試機(jī)制,大多數(shù)評(píng)價(jià)是通過肉眼結(jié)合少量的評(píng)價(jià)指標(biāo)判別生成效果好壞,評(píng)價(jià)指標(biāo)通常為多樣性與準(zhǔn)確性等。因此建立統(tǒng)一的漢字字體庫并且制定一套完整的測(cè)試、評(píng)價(jià)以及鑒定機(jī)制也是必要的。
總之,手寫漢字生成任務(wù)現(xiàn)階段仍需要研究者們?cè)谠擃I(lǐng)域進(jìn)行不斷的探索。希望通過本文能夠讓研究者們對(duì)手寫漢字生成的研究工作有較為全面的認(rèn)識(shí)。