陳善雄 朱世宇,2 熊海靈 趙富佳, 王定旺, 劉云
古彝文作為一種重要的少數民族文字,距今有八千多年歷史,可與甲骨文、蘇美爾文、埃及文、瑪雅文、哈拉般文5 種文字并列,是世界六大古文字之一,一直沿用至今,并在歷史上留下了許多珍貴的典籍.這些用古彝文書寫的典籍具有重要的歷史意義和社會價值[1-2],且種類繁多,內容廣泛,涉及歷史、文學、哲學、宗教、醫(yī)藥、歷法等各個領域,具有較高的傳承價值.而作為彝文古籍的載體,石刻、崖畫、木牘和紙書由于年代久遠,往往模糊不清,或者殘缺不全,這給彝文古籍文獻的保存和傳播帶來極大的困難.目前,從各地收藏單位收集到彝文古籍文獻來看,紙質文件存在泛黃變脆,甚至出現殘邊、蟲蛀等損毀問題;一些碑刻、木刻的古彝文也由于長期的侵蝕,字跡出現了模糊,腐蝕等情況[3-5],如圖1 所示.得益于圖像修復技術的發(fā)展,我們可以通過技術手段對殘缺文字進行修補,還原文字的真實形態(tài).
圖1 彝文殘卷Fig.1 The incomplete literature of the ancient Yi
傳統(tǒng)的文字圖像修復,專業(yè)研究人員是通過語境信息和感知信息進行,即利用圖像周圍的像素以及綜合標準文字中的各個特征要素來完成字符推演.但古彝文沒有標準文字讓計算機參照學習,手寫古彝文存在不確定性問題.同時計算機也很難具備人的語境信息,對于文字的認知,需要很多的背景知識,這些是人類在一定環(huán)境中長期積累形成,很難系統(tǒng)地加以描述和組織.近年來,深度學習在圖像語義修復、情感感知、模式識別以及特征分類等領域展現出令人振奮的前景[6-7],特別在圖像生成方面,表現出優(yōu)越的性能.基于深度學習的圖像生成算法相對于傳統(tǒng)的基于結構和紋理的生成算法能夠捕獲更多圖像的高級特征,常用于進行紋理合成和圖像風格化遷移[8-10].2014 年由Goodfellow 等提出的生成式對抗網絡(Generative adversarial network,GAN)在圖像生成領域取得了開創(chuàng)性進展[11-12],在圖像生成的過程中,生成式對抗網絡相對于傳統(tǒng)的編碼-解碼器而言能夠更好地擬合數據,且速度較快,生成的樣本更加銳利,但該方法也存在不足,如數據訓練不穩(wěn)定、網絡自由不可控、訓練崩潰等問題.2015 年底,Radford 等在深度卷積分類網絡基礎上[13],提出深度卷積生成式對抗網絡(Deep convolutional GAN,DCGAN)[14].DCGAN 融合卷積神經網絡(Convolutional neural network,CNN)和GAN,通過設計獨特的網絡結構,使得訓練更加穩(wěn)定,這是首篇表明向量運算可以作為從生成器中學習的固有屬性進行特征表達的論文.DCGAN 的成功使GAN 拓展出多種應用[15-20],如圖像合成、風格遷移、超分辨率重構、圖像修復以及圖像轉換等.
我們在深度卷積和生成對抗網絡以往的工作之上[13,15,21-24],針對彝文字符的特殊性,提出一個雙判別器生成對抗網絡模型用于古彝文字符修復.本文設計的雙判別器網絡是在DCGAN 的基礎上,增加一個篩選判別器模型,實現從手寫彝文古籍文獻中獲取古彝文字符圖像的概率分布,通過已獲得的概率分布去預測待修復古彝文字符圖像,根據預測圖像完成修復任務.其基本流程為:首先使用古彝文字符對DCGAN 網絡進行訓練,使該網絡的古彝文生成器模型能夠生成古彝文字符圖像,然后建立一個篩選判別器模型,對生成出的古彝文字符進行比較,通過對生成的古彝文字符與待修復古彝文字符的差異建立損失函數,并對雙判別器模型進行優(yōu)化,最后能約束生成器模型,使其生成的古彝文字符不再是隨機字符,而是與待修復的古彝文字符一致.本文使用手寫古彝文字符圖像數據集對上述方法上進行測試,對殘缺1/3 以下的字符能達到77.3%修復率.
本文提出了一種基于雙判別器生成對抗網絡(Generative adversarial networks with dual discriminator,D2GAN)的古彝文字符的修復方法.有別于傳統(tǒng)圖像修復,在文字修復中,如果已有字庫的字符能覆蓋待修復文字,則直接采用待修復字符圖像和字庫比對的方式.然而,古彝文存在字符庫不全且手寫體形式多樣等問題,因而直接進行比對較為困難.針對古彝文缺乏完整字庫樣本,本文通過GAN 生成器來實現一個動態(tài)的古彝文字庫,并利用雙判別器網絡來獲取目標古彝文字符,進一步用于殘字修復.本文關鍵在于設計出能夠生成出古彝文字符的網絡,并加入篩選判別器形成雙判別器的網絡結構.該結構中包含2 個判別器,一個用于判斷生成器生成的字符是否屬于古彝文;另一個用于判斷待修復的古彝文字符和生成字符的相似性.D2GAN 中篩選判別器的作用為判別生成器生成的古彝文字符是否是待修復的古彝文字符,如果生成字符與待修復字符一致,則兩者進行融合,這樣就可以實現殘缺古彝文字符的修復.D2GAN 模型結構如圖2 所示.
圖2 本文雙判別器生成式對抗網絡結構Fig.2 Generative adversarial networks with double discriminator in the paper
該網絡由一個字符判別器、一個篩選判別器和一個字符生成器組成.網絡的訓練分為三個階段:
第1 階段對古彝文字符判別器進行訓練.將生成器生成的字符輸入古彝文字符判別器網絡,正向傳播后,得到輸出,本文期望輸出為 “假”;將真實的古彝文字符輸入字符判別器網絡,正向傳播后,得到輸出,本文期望輸出為 “真”.將2 個輸出結合起來建立損失函數,進行反向傳播,優(yōu)化古彝文字符判別器網絡.
第2 階段對古彝文字符生成器進行訓練.將服從均勻分布的100 維隨機向量輸入古彝文字符生成器網絡,通過正向傳播,得到輸出,輸出數據的形狀為64×64 的矩陣.將輸出結果輸入古彝文字符判別器網絡,在古彝文字符判別器網絡內進行正向傳播后,得到輸出,本文期望輸出為 “真”.通過輸出結果建立損失函數,進行反向傳播,優(yōu)化古彝文字符生成器網絡.
第3 階段,重復第1 階段和第2 階段,直到對古彝文字符生成器網絡完成優(yōu)化,然后停止古彝文字符生成器的優(yōu)化,開始進行對篩選判別器進行訓練.將真實的古彝文字符和生成器生成的字符輸入到篩選判別器網絡,通過網絡的正向傳播,得到輸出,篩選判別器輸出是一個100 維的向量.將該向量輸入到古彝文字符生成器網絡,通過生成器正向傳播,得到輸出,本文期望該輸出盡可能地接近需要修復的殘缺彝文字符,通過對二者一致性的比對,建立損失函數,通過在篩選判別器網絡中反向傳播,對篩選判別器網絡進行優(yōu)化.
經過上述三個步驟,完成針對古彝文字符圖像的雙判別器生成式對抗網絡結構的訓練,得到一個穩(wěn)定的模型.在文獻[25]中,也提出了一個雙判別器生成對抗網絡(D2GAN),如圖3 所示.在兩個判別器固定的情況下,生成器的學習將朝著同時優(yōu)化Kullback-Leibler (KL)散度和反向KL 散度的方向發(fā)展,從而有助于避免模式崩潰.該模型與本文差異在于:1)文獻[25]中,兩個判別器的模型結構,完全一致,作者改變的是兩個判別器損失值的計算方法.在本文的雙判別器框架中,兩個判別器的模型結構相差甚遠,并且數據輸入的方式也并不相同.2)雙判別器模型的訓練方法不一樣.文獻[25]中的訓練方法為生成器與兩個判別器同步訓練,通過兩個判別器,來優(yōu)化生成器,同時通過生成器優(yōu)化判別器.本文的訓練方法為生成器和第1 個判別器同步訓練,相互優(yōu)化,在生成器優(yōu)化結束后,通過第2個判別器對生成器的生成結果進行篩選.3)增加的判別器用途不一樣.文獻[25]中增加的判別器是為了能更好地優(yōu)化生成器的模型參數.本文增加的判別器,是為了從生成器生成出的結果中尋找最優(yōu)解,并沒有對生成器的參數再進行優(yōu)化.
圖3 文獻[25]中D2GN 結構Fig.3 The structure of D2GN in [25]
為了展示本文雙判別器結構的細節(jié),下面首先對古彝文字符判別網絡、篩選判別網絡和古彝文字符生成網絡進行詳細說明.
古彝文字符生成器主要用于獲取古彝文字符的概率分布,在極大似然概率生成網絡上產生出彝文,從而形成動態(tài)彝文字庫.古彝文字符生成器(Generator,下文簡稱網絡G)的優(yōu)化來自于彝文字符判別器(Discri minator,下文簡稱網絡D1),兩個網絡之間相互博弈,從而不斷優(yōu)化,網絡結構示意圖如圖4 所示.
彝文字符生成器用隨機向量z作為網絡G的輸入,將輸出送入網絡D1,通過網絡D1 的正向傳播獲得生成效果,根據生成效果優(yōu)化網絡G,其數學表達式為
因為網絡D1 可以區(qū)分彝文字符的 “真”和 “偽”,所以網絡G為讓網絡D1 將其判斷為 “真”,會不斷優(yōu)化自身,使生成的 “偽”古彝文字符盡可能與 “真實”古彝文字符一致.通過網絡G不斷優(yōu)化,從而學習古彝文字符的本質特性,刻畫出古彝文字符的分布概率,最終使得網絡G生成出的數據與古彝文字符高度相似,形成動態(tài)彝文字庫.其中G表示彝文字符生成器;θG為待優(yōu)化參數;g(·)為需進一步優(yōu)化的非線性映射函數;z為g(·)的輸入,即-1~1 之間的雙精度隨機數,是100 維的向量;x為真實的古彝文字符數據,為生成器輸出的結果,為64×64 像素的圖像,且取值范圍在-1~1 之間.對網絡G而言,在彝文字符判別器固定時,期望生成數據的分布特性盡最大可能與真實古彝文字符一致,即判別器將生成圖像都識別為真.如式(2)所示,因為期望判別器識別為真,因此D()的輸出越接近于1越好,即 lg(D())越大越好.
彝文字符判別器的作用是幫助彝文字符生成器優(yōu)化,通過不斷調整自身的鑒別能力,從而使生成器的能力也不斷提高.彝文字符判別器分別用彝文數據集中的數據和網絡G的輸出作為網絡D1 的輸入,將判斷結果作為網絡D1 的輸出.其數學表達式為
其中,D表示彝文字符判別器;θD為待優(yōu)化的參數;y為d(·)的輸出結果,即將輸入數據判斷為真的概率,且y∈[0,1].判別模型設計為將自然數據判斷為真的概率,以及將生成數據判別為偽的概率要高.通過網絡D1 的正向傳播獲得判別結果,根據結果對網絡D1 進行優(yōu)化,其損失函數為
式(5)中對 lg(d(x,θD))的損失值取負的物理解釋為將x判斷為真的不確定性越小越好,其最佳狀態(tài)為d(x)=1;而對 lg(1-d())的損失值取負的物理解釋為將判斷為偽的不確定性越小越好,即將判斷為偽的概率越大越好;將所有判定的不確定性進行求和,便得到熵.根據熵對模型的參數θD進行優(yōu)化.在對判別模型D的參數進行更新時,對于來自真實分布Pdata 的樣本x而言,因為期望都能夠識別為真,因此D(x)的輸出越接近于1 越好,即 lg(D(x))越大越好;對于通過噪聲z生成的數據G(z)而言,因為期望都能夠識別為假,因此D(G(z))越接近于0 越好,即 lg(1-D(G(z)))越大越好.
通過設計好的損失函數(式(2)和式(5)),使用梯度下降法對 (θG,θD)參數交替優(yōu)化,使網絡G和網絡D1 接近納什均衡.
完成古彝文動態(tài)字庫的設計后,針對古彝文字符缺損的修復問題可以描述為圖像的比對問題.通過對古彝文字符生成器的訓練,可以獲取100 維列向量的隨機數和古彝文字符的映射關系,但是生成器輸出的古彝文字符是隨機的,要完成特定的彝文字符修復,還需要建立起100 維列向量與特定字符之間的映射.假設待修復的圖像為A,設置一個初始隨機值z作為生成器G(z)的輸入,正向傳播后可得到一幅圖像B′.此時的圖像B′與圖像A可能毫無關聯或相關性不大,無法用圖像B′完成圖像A的修復.篩選判別器的作用在于找到一個H,使得生成器G(z)的輸出圖像B′與圖像A無限接近.即,使生成器自動生成的古彝文字符與需要修復的特定古彝文字符盡量接近.
本文通過兩幅圖像的歐氏距離d(A,B),即
建立起兩幅圖像間概率分布的差異,根據差異設計出損失函數對篩選判別器進行優(yōu)化.但僅以此作為損失值對z進行優(yōu)化還不夠,還需限定圖像B′必須是一個古彝文字符,本文將彝文字符判別器對圖像A的判定結果,也作為優(yōu)化目標之一.結合兩個損失值就可以得到優(yōu)化z的函數,即
式(6)中,a代表圖像A中的像素值,b代表圖像B′中的像素值.篩選判別器期望比較出更符合古彝文字符規(guī)律的字符圖像,因此D(z)的輸出越接近1越好,即 lg(1-D(z))越小越好.生成數據的分布特性盡最大可能與真實古彝文字符數據一致,即判別器將生成圖像都識別為真.最小化Lasso,如式(5)所示.因為期望判別器識別為真,因此D(z)的輸出越接近1 越好,即 lg(1-D(z))越小越好.lossz為凸函數,通過梯度下降法[26-27]對z進行優(yōu)化,使得z無限接近于期望的H以此得到圖像B,從而完成古彝文字符修復.
古彝文字符判別器模型的輸入為字符圖像,通過判別器判斷該圖像是否為古彝文字符.模型包括1 個輸入層、4 個卷積層和1 個輸出層.其模型結構如圖5(a)所示,其中層與層之間的黑色連接圓,代表卷積的方法和激活函數,如圖5(b)所示.
圖5 古彝文字符判別器模型詳細結構Fig.5 Detailed structure of the ancient Yi character discriminator model
古彝文字符判別器由4 層CNN (不包含輸入層)組成,圖5(a)中第1 層為輸入層,輸入原始數據,該數據源于古彝文字符圖像,大小為64 × 64 像素,因為古彝文字符是灰度圖像,因此將圖像的3 通道修正為單通道.最后為輸出層,只有1 個節(jié)點.卷積層用C 表示,詳細信息如表1 所示.OUTPUT 層計算輸入向量和權重向量之間的點積,再加上一個偏置,然后將其傳遞給sigmoid 函數輸出結果[28].輸出層的節(jié)點值表示是否為古彝文字符.如果節(jié)點的值為1,則表示網絡識別結果為古彝文字符,0 則相反.
表1 判別器模型參數表Table 1 Parameter table of the discriminator model
古彝文字生成器模型由4 層CNN (不包含輸入層)組成,圖6(a)中第1 層為輸入層,輸入為服從均勻分布的100 維向量的隨機數.最后為輸出層,輸出數據為 64×64×1 的矩陣,希望通過訓練,該數據能表示古彝文字符圖像,其模型如圖6(a)所示.其中層與層之間的白色連接圓,代表反卷積的方法和激活函數(如圖6(b)所示).反卷積層用DC表示,全連接層用F 表示,詳細信息如表2 所示.
表2 生成器模型參數表Table 2 Parameter table of the generator model
圖6 古彝文字符生成器模型詳細結構Fig.6 Detailed structure of the ancient Yi character generator model
在篩選判別器訓練及彝文字符修復階段,古彝文生成器和古彝文判別器停止優(yōu)化.在沒有約束的情況下,生成器的生成效果,只具有古彝文字符的分布特征,而并不一定是真正的古彝文[29-30].本文增加篩選判別器之后,通過與待修復古彝文字殘字圖像做比較,進一步對古彝文字符生成器進行約束,使得生成的結果更符合古彝文的正常書寫規(guī)范,且更接近于待修復的古彝文.其結構如圖7 所示.
圖7 古彝文字符篩選判別器模型Fig.7 Selecting discriminator model for ancient Yi character
篩選判別器的輸入為殘缺的字符和生成的字符,僅有1 個全連接層.該全連接層神經網絡的每層神經元權重的個數,Param=(輸入數據維度+1)×神經元個數,加1 是因為每個神經元都有一個偏置值.輸入數據維度為100,該層使用了 1×64×64 個節(jié)點,所以參數數量為 (100+1)×1×100 =10 100.全連接層輸出作為字符生成器的輸入,是一個100維的向量.
篩選判別器模型優(yōu)化方法如下:
1)從古彝文數據集B中選取一個樣本作為修復對象(如圖8).因為該樣本是完整的古彝文,并無缺失.為驗證效果,使用一個20 × 20 的全1 矩陣對圖像的中間部分進行覆蓋(如圖9).為驗證模型的魯棒性,除矩形外,本文還使用了三角形和圓形等多種形狀進行區(qū)域覆蓋.
圖8 原始樣本Fig.8 The original sample
圖9 待修復古彝文Fig.9 Ancient Yi character need to be restored
2)將進行覆蓋的字符(殘缺字符)和生成器生成的字符作為輸入,用1 個全聯接網絡構成篩選判別器的隱層,同時,把古彝文篩選判別器的輸出z,作為古彝文生成器的輸入,通過正向傳播可以得到輸出G(z),如圖10 所示.
圖10 通過生成器模型輸出圖像G(z)Fig.10 Output imagesG(z)from the generator model
3)從圖8~10 可以看出,此時古彝文字符生成器輸出的G(z)與待修復的古彝文殘字(圖9)之間并無關聯.將G(z)與殘字進行對比,根據式(6)得到損失值lossz.
4)用lossz對篩選判別器進行優(yōu)化.
實驗樣本來源于37 萬字的《西南彝志》中選取的2 142 個常用古彝文字符[31],并邀請彝族老師和學生進行臨摹,發(fā)放了1 200 份采集表(如圖11 所示),其中古彝文正體采集表800 份、軟筆風格采集表200 份、硬筆風格采集表200 份,如圖12 所示,共得到了151 200 個字體樣本.同時,為了便于后期處理分析,設計了相應的字體庫(如圖13 所示)和古彝文輸入法.
圖11 原始樣本Fig.11 The original sample
圖12 古彝文硬筆(上)和軟筆(下)Fig.12 Ancient Yi hard pen (upper)and soft pen (down)
圖13 待修復古彝文Fig.13 Ancient Yi character need to be restored
將古彝文字體庫中的樣本轉換為64 × 64 個像素點構成的圖片,每個像素點用 0~255 灰度值表示,對采集到的樣本,每個字按7 :3 的比例分為訓練集A和測試集B,部分樣本如圖14 所示.
圖14 古彝文手寫數據集樣例Fig.14 The handwritten sample of ancient Yi
實驗環(huán)境:CPU Intel(R)core(7M)i7-7700,3.6 GHz;內存DDR4,8.00 GB;GPU NVIDA Ge-Force RTX 2080 SUPER,基礎頻率1 650 MHz,加速頻率1 815 MHz,顯存:GDDR6,8 GB,顯存位寬256 bit,顯存頻率15.5 GHz,顯存帶寬496 GB/s.
實驗使用訓練集A對模型進行訓練,每次訓練以32 個樣本為單位,進行批量訓練,過程為:
1)從訓練集A中抽取32 個彝文數據,將其作為彝文判別器的輸入,通過彝文判別器的正向傳播,得到d(x,θD),即彝文是否為 “真”的概率,將其代入式(8),得到損失值d1
2)隨機產生32 個服從均勻分布的100 維向量,將其作為彝文生成模型的輸入,通過正向傳播獲得32 個64 × 64 × 1 的矩陣,將這批矩陣作為彝文判別模型的輸入,通過正向傳播也得到d(),將其代入式(9),得到損失值d2
3)將d1和d2 代入式(5),得到彝文判別器的損失值lossd,通過Adam[32-33]算法,對彝文判別的參數進行優(yōu)化.
4)彝文字符生成器輸出的32 個圖像通過彝文字符判別器得到d(),在作為彝文字符判別器的損失值d2 的同時也作為彝文字符生成器的損失值.因為對彝文字符生成器的期望是所有生成出的數據,彝文字符判別器都將其判別為真,所以將d()代入式(2)得到彝文生成器的損失值lossg,用Adam 算法對彝文字符生成模型進行優(yōu)化.
重復一次上述的過程,稱為完成一次訓練.通過不斷重復訓練,對彝文字符判別器和彝文字符生成器同時進行優(yōu)化.
模型采用tensorflow 框架提供的Adam 隨機梯度下降優(yōu)化算法進行訓練,在訓練時,需要設置學習率(Learning rate)控制參數的更新速度.該參數會極大地影響模型收斂速度,過小會收斂太慢,增加訓練成本;過大會導致參數在最優(yōu)解附近振蕩,無法獲取得最優(yōu)解[34].本文對多個學習率下損失值的變化進行對比,當訓練次數為2 000 時,學習率分別為0.2,0.02,0.002 的判別器損失函數曲線如圖15所示.橫軸代表訓練次數,縱軸代表損失值大小,單位為px (像素).
圖15 學習率0.2,0.02,0.002 的損失值變化曲線Fig.15 The loss variation of the learning rate involving 0.2,0.02 and 0.002
通過觀察圖15 可以發(fā)現,學習率在0.2 時,損失值在1 240 次之后就開始劇烈振蕩,這是明顯的學習率過高,導致無法收斂到最優(yōu)點的情況.將學習率0.002和0.02 的損失值進行比較,學習率0.002 的損失值更接近于在1 附近進行波動,其預測值會更接近于1,因此本文以0.002 為基礎再次進行實驗.當訓練次數為2 000 時,學習率分別為0.0002,0.001,0.002 的判別器損失函數曲線如圖16所示.通過觀察圖16,可以判斷學習率為0.001 時,損失值的波動范圍最接近于1,因此本文設置學習率為0.001.
圖16 學習率為0.0002,0.001,0.002 的損失值變化曲線Fig.16 The loss variation of the learning rate involving 0.0002,0.001 and 0.002
訓練過程中,設置訓練次數為10 000 次,每次訓練輸出25 幅64 × 64 像素的生成圖像.在第1 次、第50 次、第100 次、第500 次、第1 000 次、第2 000次、第5 000 次、第10 000 次、第15 000 次、第20 000 次訓練完成后,用生成器生成圖像,每次訓練完成生成25 幅圖像,共250 幅圖像,如圖17所示.
圖17 不同訓練次數下生成器生成圖像Fig.17 The generator generates image under different training times
經彝文專家判斷,在訓練超過10 000 次之后,生成器生成的圖像趨于穩(wěn)定.故采用經過10 000 次訓練的生成器網絡.
在訓練過程中,每100 次記錄一次彝文判別器和彝文生成器的損失值,經過10 000 次訓練之后,損失值變化曲線如圖18 所示.從圖中可以看出,彝文生成器模型和彝文判別器模型在訓練過程中不斷進行博弈.當彝文判別器模型的損失值減小時,判別器判定生成的彝文為假的概率增加.而彝文生成器模型損失值減小時,判別器能較大概率判定生成的彝文為真.當兩個模型的損失值交替上升時,表示這兩個模型在不斷地進行博弈,并交替地對模型參數進行優(yōu)化.
圖18 10 000 次訓練后損失值變化曲線Fig.18 Loss curve after 10 000 training
本文用隨機產生的1 000 個100 維向量作為完成10 000 次訓練的生成器模型的輸入,通過模型正向傳播,得到得到1 000 個圖像,經彝文專家判斷生成結果與真實彝文字符的形態(tài)非常接近.部分數據如圖19 所示.
圖19 生成器輸出圖像Fig.19 Output images by generator
根據第2.3 節(jié)所述流程,在對篩選判別器的訓練過程中,我們設置學習率為0.001,對篩選判別器模型進行2 000 次優(yōu)化.過程中l(wèi)ossz的變化曲線如圖20 所示,橫軸代表訓練次數,縱軸代表損失值大小,單位為px (像素單位).可以看出在訓練750 次后,損失值已經逐步下降到一個范圍內,即表示當前生成的字符與待修復的字符之間的差異也下降到一定范圍.在2 000 次優(yōu)化后,篩選判別器生成的z′,通過在古彝文字符生成器中正向傳播得到G(z′),如圖21 所示,從圖中可以看出G(z′)與殘字接近,卻又保留有殘字所殘缺的那部分.將待修復古彝文中缺失的部分,用G(z′)進行填充,得到修復后的圖像,如圖22 所示.
圖20 篩選判別器的訓練過程中損失值變化曲線Fig.20 The loss curve in process of the training of the selecting discriminator
圖21 訓練得到z′,然后輸入z′到生成器得到的圖像Fig.21 After trainning,z′is generated,and then inputz′to the generator to get the image
圖22 修復后的圖像Fig.22 The restored image
上述實驗重復1 000 次,每一次隨機從古彝文測試集B中抽取一個樣本制作成待修復的古彝文,然后按本文的方法進行修復,對古彝文字符的修復率為77.3%,如表3 所示.
表3 中的評價標準如下:修復后的圖像與原圖像字體形態(tài)一致為完全修復;能夠知道圖像的古彝文字符是哪個古彝文字符,但存在偏旁或部首的缺損為部分修復;通過觀察修復后的圖像,不能判斷出是哪個古彝文字符為未完成修復.圖23 為1 000次實驗中的部分數據,從左至右分別為古彝文原始樣本圖像、生成出的待修復的古彝文圖像、生成器生成出來的圖像以及修復之后的效果圖.圖24 為多種殘缺形狀的修復效果.
圖23 部分古彝文修復結果Fig.23 The repair effect of some ancient Yi
圖24 多形狀殘缺修復結果Fig.24 The repair effect of ancient Yi characterof multiple shape occlusion
表3 古彝文字符修復比例Table 3 Restoration proportion of ancient Yi characters
本文使用上述模型對從彝文古籍中選取出的10 個殘缺的古彝文字符進行處理和修復,其效果如圖25 所示.從左至右分別為殘缺的古彝文字符、通過模型生成的用于修復的字符以及修復結果.其具體修復方法為,取模型生成的字符圖像中某一區(qū)域的黑色像素,疊加到待修復的圖像中.區(qū)域的位置,根據原始古彝文字符的缺損位置來確定.然而,通過專家判別,仍有22.7%是修復失敗的.部分樣本如圖26 所示.其原因在于,殘字缺失的部分,其筆畫較為復雜,且該字符異體字較多,而生成器網絡結構對復雜筆畫的適應性較弱,因此對殘缺部分的重構效果較差.
圖25 彝文古籍文獻中殘缺字符修復效果Fig.25 The repair effect of incomplete characters in ancient Yi literature
圖26 古彝文殘缺字符修復失敗效果Fig.26 The failed repair effect of ancient Yi incomplete characters
本文采用深度卷積生成式對抗網絡來獲取古彝文字符的分布概率,并且在該網絡結構之上增加一個篩選判別器,形成一個雙判別器對抗生成網絡.該模型實現從彝文古籍文獻中獲取古彝文字符圖像的概率分布,通過已獲得的概率分布去預測待修復古彝文字符圖像,完成古彝文字符的修復.這也是對古文字修復的積極嘗試,對保存和發(fā)揚民族文化進行了有益探索.然而,本文對篩選判別器的優(yōu)化函數是圖像間像素的差值,其并不能很好地代表字符圖像間概率分布的差異,后續(xù)研究會嘗試使用多種度量標準作為損失函數.同時,文字修復判斷的可量化指標沒有一個統(tǒng)一標準,因此建立統(tǒng)一的修復標準也是未來研究的方向.