DEIM Forum 2023 4a-6-4

文字種とスタイルを考慮した文字生成による書家俵越山の模倣
桑田 若菜†

三林 亮太††

谷雅德†††,††††

大島 裕明†,††† 兵庫県立大学社会情報科学部 〒 651–2197 兵庫県神戸市西区学園西町 8–2–1†† 兵庫県立大学大学院情報科学研究科 〒 651–2197 兵庫県神戸市西区学園西町 8–2–1††† 関西大学社会学部 〒 564–8680 大阪府吹田市山手町 3–3–35†††† アカデミックビジョン 〒 606–8203 京都府京都市左京区田中関田町
E-mail: †fa19f028@guh.u-hyogo.ac.jp, ††threeforest8@gmail.com, ††††ohshima@ai.u-hyogo.ac.jp
あらまし

本研究では深層学習を用いて，書家俵越山の作品を模倣した文字の生成と分析を行う．文字は，同じ人が同じ文字を書いたとしても，書く文章やタイミングによって微妙なゆれが生じる．書家俵越山の文字にもその傾向があり，実際に俵越山作品を見てみると同じ文字に対してバリエーションのある書き方をしていることがわかる．そこで本研究では，文字のゆれを考慮した文字生成を行うために，文字の文字種とスタイルを抽出してベクトルで表現し，任意の組み合わせで再構築して生成を行うモデルを提案する．本研究では文字の画像をグリフと呼ぶ．今回扱う生成モデルでは 2 つのグリフを入力とする．1 つ目のグリフからはスタイルを抽出し，2 つ目のグリフからは文字種を抽出する．それぞれのグリフから抽出したスタイルと文字種を組み合わせたグリフを出力する問題に取り組む．文字種とスタイルを抽出してベクトルで表現することで，スタイルをゆらすことや，文字種をゆらすことが可能になり，同じ文字に対して様々なバリエーションをもった文字の生成が可能であると考えた．実際に今回提案したモデルにより学習した生成器を用いて，ゆれの表現に取り組んだ．そして，ベクトルの操作や入力グリフの変更によって，生成グリ
フのゆれの表現が可能であることを示した．
キーワード

文字画像生成，書道作品，深層学習

1 はじめに
近年，深層学習を用いて芸術作品を生成する技術が発展している．例えば，17 世紀オランダの画家であるレンブラントをコ

図1

書家俵越山が書いた様々な「あ」

ンピュータで再現する「The Next Rembrandt 1 」というプロジェクトがある．このプロジェクトは，コンピュータに過去のそこで，本研究では深層学習による芸術作品を生成する研究

レンブラントの作品を学習させ，レンブラントの作風でありなの一環として，書家俵越山 3 を模倣した書道作品の生成に取りがらも，レンブラントが書いたことがない新たな作品を生み出組む．書道作品は，毛筆と墨を用いて紙に文字を書くことで制すプロジェクトである．他にも，膨大なデータで事前学習され作される．毛筆は，力の入れ方によって線に強弱をつけること

た，入力されたテキストから画像を生成する Text to Image モができる．線の強弱や筆の運び方によって，さまざまな表現をデルの「Stable Diﬀusion 2 」が 2022 年にオープンソースとし行うことができ，その書家ならではの文字の書体や，書風を表て公開された．このモデル以前にも Text to Image モデルは存現することができる．そして，同じ人が同じ文字を書いたとし在していたが，オープンソースとしての公開はされていなかっても，書く文章やタイミングによって微妙なゆれが生じる．例

たため，一部の人しか利用することができなかった．しかし，えば，図 1 のように書家俵越山の文字を見ると，同じ文字でStable Diﬀusion が公開されて以降，このモデルを用いた画像

あっても様々な書き方をしていることがわかる．

生成サービスが多くリリースされた．それにより，深層学習モ

そこで本研究では，文字のゆれを考慮した文字生成を行うた

デルの学習を行う環境を構築することが難しい一般の人であっ

めに，文字の文字種とスタイルを抽出し，任意の組み合わせでても，各サービスを介して手軽に深層学習による画像生成を行再構築して生成を行うモデルを提案する．文字種とスタイルをうことが容易となった．

抽出してベクトルで表現することで，スタイルをゆらすことや，深層学習による画像生成が身近なものとなっていく中で，深文字種をゆらすことが可能になり，同じ文字であっても様々な層学習を用いて芸術作品を生成するという取り組みは，今後まバリエーションをもった文字の生成が可能であると考えた．

すます発展していくと考えられる．
1：https://www.nextrembrandt.com
2：https://github.com/CompVis/stable-diffusion

3：http://etsuzan.jp，https://twitter.com/etsuzan_tawara

構築され，画像の内容を維持したままスタイルのみを変換した

スタイル
ゴシック体

明朝体

学習を行うことができる．また，pix2pix では U-Net [12] が用

俵越山

いられており，エンコーダ側の特徴マップをデコーダ側の特徴
マップに結合するスキップ接続が行われている．

あI2I 手法の一つである MUNIT [3] では，Content Encoder とStyle Encoder を用いて，入力画像からコンテンツの特徴量とスタイルの特徴量をそれぞれ抽出する．FUNIT [8] も同様に入

文
字 い
種

力画像からコンテンツの特徴量とスタイルの特徴量をそれぞれ抽出する．FUNIT では同じクラスから複数枚の画像をそれぞれ特徴量抽出し，その結果を平均したものをスタイルの特徴量としている．
本研究ではコンテンツを文字種とし，文字種エンコーダとスう

タイルエンコーダを用いて文字種とスタイルの特徴量をそれぞれ抽出する．

図2

文字種とスタイルの各組み合わせにおけるグリフの例

3. 2 GAN を用いたフォント生成
フォント生成の分野では，フォントをデザインする作業をいかにして自動化するかという問題に取り組まれてきた．この問

2 用語の定義
本節では本論文で使用する用語を定義する．
まず，文字の種類を文字種と呼ぶこととする．具体的には「あ」や「い」といったクラス分類のことを指す．手書きの文字と印刷された文字では，同じ文字であったとしても，線の太さ
や角度，とめやはらいなど，さまざまな部分で形が違う．しかし，これらの文字が持つ骨組みはある程度共通しており，多少文字の形が変わっていても同じ文字であることを認識できる．
次に，文字種を実際に具現化する際の一定のデザインのことをスタイルと呼ぶこととする．具体的にはゴシック体や明朝体などが挙げられる．何らかの文字種に対し，どう具現化して骨組みに肉付けするかという体系的な情報がスタイルには含まれる．その中に文字種，つまり文字の骨組みの情報は含まれない．
例えば，ゴシック体の「あ」とゴシック体の「い」は同じスタイルである．しかし，文字種は違うものである．
そして，文字種にスタイルを合わせ，実際にイメージとして具現化されたものをグリフと呼ぶこととする．スタイルがゴシック体で文字種が「あ」であれば，図 2 の左上のようなグリフとなる．文字種もスタイルも抽象的な概念であり，ある文字
種が具現化され表記された際には，何らかのスタイルを有することになる．文字種もスタイルもそれ単体では具現化することができず，文字種とスタイルが合わさりグリフになることで初題に対して GAN という画像生成技術を利用したフォント生成の研究が多く行われている．
初めて中国語フォント生成に GAN を用いた手法として，

Yuchen が提案した zi2zi [15] がある．zi2zi は pix2pix [4] ベースのフォント生成モデルである．zi2zi では，pix2pix をベースに，ACGAN [10] と DTN [13] の仕組みを取り入れることで，文字種とスタイルを抽出するような学習を行う．zi2zi ではスタ
イルの学習に埋め込み表現を用いている．

DCFont [5] では，zi2zi の構成をもとに，フォント特徴再構成
ネットワークを追加している．フォント特徴再構成ネットワーク
では未見の文字の特徴を推定し，Generator を介して与えられた内容の文字を合成する．SCFont [6] では，まず入力文字の骨格をターゲット文字の骨格に変換し，その骨格に対し GAN モ
デルによってスタイルを付与する．ZiGAN [16] では，ペアではない多数のグリフを利用し，異なる書体の文字の特徴をヒルベ
ルト空間に写像し，特徴分布を整列させることで，文字種情報を保持するとともにスタイル変換を行っている．SE-GAN [18]では筆文字フォントに焦点を当てたフォント生成を行っている．
一般的なフォントは，基本的な構造や配置に共通点があるが，筆文字フォントは大きく歪んでいることが多い．
本論文では zi2zi の構成をもとに，文字種だけでなくスタイ
ルもエンコーディングできるようなモデルを作成した．

めて具現化される．本研究ではこのグリフの生成を行う．

3. 3 Few-shot フォント生成3 関連研究イルを参照するだけで新しいフォントライブラリを生成するこFew-shot フォント生成タスクでは，非常に少ない数のスタ

3. 1 Image-to-Image translation
Image-to-Image translation（I2I）とは，ソースドメインとターゲットドメインの間のマッピング関数を学習するタスクである．ソース画像の内容を保持しながら，同時にターゲットド
メインのスタイルを融合させる．

I2I 手法の一つである pix2pix [4] では，GAN [2] をベースにとを目的としている．Few-shot フォント生成では，与えられたグリフから文字種とスタイルを切り離すことがよく行われている．文字種とスタイルの抽出の方法として，グローバル特徴表
現とコンポーネントに基づいた特徴表現の 2 種類に分けることができる．
グローバル特徴表現では，文字種グリフとスタイルグリフから，それぞれ文字種とスタイルに関連するベクトルを抽出する．

EMD [20] や DG-Font [17] では，文字種ベクトルとスタイルベ
クトルを抽出し，2 つのベクトルを合わせることで新たなグリフを合成する．MLFont [1] では，文字種グリフ 1 枚を文字種エンコーダに入力して得られた特徴量と，スタイルグリフ複数枚をスタイルエンコーダに入力して得られた特徴量を合わせてデコーダに入力する．

入力文字種
グリフ画像

生成器G

コンポーネントに基づいた特徴表現では，文字をコンポーネ
ント単位やストローク単位で表現することがよく行われている．

生成グリフ画像コンポーネントとは，例えば「叶」という字であれば「口」と「十」で分けることができる．この「口」と「十」をそれぞれコンポーネントと呼ぶ．ストロークとは，文字を書く際の 1 画 1画のことである．FsFont [14] では，参照スタイル文字からコン
ポーネント単位でスタイルを抽出し，文字種を参照スタイルで構成している．StrokeGAN [19] では，中国語の漢字で用いられるストロークは全部で 32 種類あるとし，任意の漢字に対して何画目がどのストロークかを表すストロークエンコーディン
グを行っている．CG-GAN [7] では，コンポーネント単位でス
タイルと文字種を切り離すように生成器に成約をかけている．

LF-Font [11] ではコンポーネント単位のスタイル表現を学習す

入力スタイル
グリフ画像

図3

入 出

力

文字種 ci とスタイル sj を持つグリフ画像を Ici ,sj と表すこととする．同じ文字種 ci を持ち，異なるスタイル s1 , s2 , s3 , …

, sm をそれぞれ持つグリフの集合を Rci とする．
Rci = {Ici ,s1 , Ici ,s2 , Ici ,s3 , …, Ici ,sm }(3)

る．XMP-Font [9] では，ストロークレベルで文字を分割する
ことで，入力をストロークラベルにすることができ，入力フォ同じスタイル sj を持ち，文字種集合 C の文字種をそれぞれ持ントに縛られない生成を行う事ができる．

つグリフの集合を Rsj とする．

本研究ではグローバル特徴表現を用いて，文字種グリフとス
タイルグリフから，それぞれ文字種とスタイルに関連するベク

Rsj = {Ic1 ,sj , Ic2 ,sj , Ic3 ,sj , …, Icn ,sj }(4)

本研究では，文字種 ci と任意のスタイル s• を持つグリフ画

トルを抽出する．

像 Ici ,s• と，スタイル si と任意の文字種 c• を持つグリフ画像

4 書家俵越山を模倣した文字生成における問題定義と使用するデータ

Ic• ,sj を入力としたときに，文字種 ci とスタイル sj を持つグリフ画像 Ici ,sj を出力する生成器 G を作る問題に取り組む．

本節では，本研究における問題定義と使用するデータについ

Ici ,sj = G(Ici ,s• , Ic• ,sj )

(5)

て述べる．
入力文字種グリフ画像 Ici ,s• ，入力スタイルグリフ画像 Ic• ,sj ，

4. 1 問 題 定 義

出力グリフ画像 Ici ,sj は全て 256 × 256 ピクセルの 2 値化画像

文字種集合 C は n 文字の文字種 ci (i = 1, 2, 3, · · · , n) で構成

C = {c1 , c2 , c3 , · · · , cn }像を入力すると，文字種「あ」とスタイル「俵越山」を持つグ

(1)

例えば，
「あ」と「い」の 2 種類の文字種で構成される文字種集
合 C = {c1 , c2 } であれば，c1 は「あ」，c2 は「い」となる．文
字種集合 C のうち，ある一つの文字種を c• と表すこととする．
今回は 6,527 種類の文字種を使用する．
スタイル集合 S は m 種類のスタイル sj (j = 1, 2, 3, · · · , m)で構成されるものとする．

S = {s1 , s2 , s3 , · · · , sm }とする．入出力のイメージを図 3 に示す．例えば，文字種「あ」を持ったグリフ画像と，スタイル「俵越山」を持ったグリフ画

されるものとする．

リフ画像が出力されるということを行う．

4. 2 俵越山文字データ
本研究を行うにあたり本人から許諾を得た上で，書家俵越山の書道作品を利用した．書家俵越山が自身の Twitter アカウン
ト 4 に投稿した作品から取得した 100 件，書家俵越山から直接提供を受けた 6 件，書家俵越山が手掛けた向日町警察署カレンダーから 13 件の合計 119 件の作品を利用した．図 4 に作品(2)の一例を示す．これら 119 件の作品に対して 1 文字ずつ，最小のバウンディングボックスで切り抜き，合計 1,358 枚のグリフ

例えば，ゴシック体と明朝体の 2 種類のスタイルで構成される画像を取得した．そして，長辺が 236 ピクセルになるよう拡スタイル集合 S = {s1 , s2 } であれば，s1 はゴシック体，s2 は大縮小し，長辺に対しては両端に 10 ピクセルずつ余白を取り，明朝体となる．スタイル集合 S のうち，ある一つのスタイルをs• と表すこととする．今回は 20 種類のスタイルを使用する．

4：https://twitter.com/etsuzan_tawara

表1

使用したフォント一覧

フォント名

サンプル

DelaGothicOne-Regular
DotGothic16-Regular
HachiMaruPop-Regular
HinaMincho-Regular
KaiseiDecol-Regular
KleeOne-Regular
図4

俵越山作品

MochiyPopOne-Regular

短辺に対しては 256 ピクセルになるように余白を取ることで，256 × 256 ピクセルの画像にした．その後，グレースケール化

NewTegomin-Regularを行った上で各ピクセルの値が 128 未満であれば 0，128 以上であれば 1 になるよう 2 値化を行った．

PottaOne-Regular

1,358 枚のグリフ画像うち，向日町警察署カレンダーから取得したグリフ画像の中で，向日町警察署カレンダー以外のグリ

ReggaeOne-Regular

フ画像に含まれていない文字種を持つグリフ画像 72 枚を評価用に使用するため省き，残りの 1,286 枚を学習用データとした．
また，評価用に省いた 72 枚から文字種の重複をなくした 54 枚
を評価用データとし，残りの 18 枚は学習にも評価にも使用しないこととした．

RocknRollOne-Regular
ShipporiMincho-Regular
SourceHanSansJP-Regular

4. 3 日本語フォントデータ
Google Fonts 5 にて取得できる日本語フォントから，19 フォントを取得した．使用するフォントを表 1 に示す．フォントのSourceHanSerifJP-Regular
Stick-Regular

太さは全て Regular とした．19 種類の各フォントについて，ひらがな，カタカナ，JIS 第一水準漢字，JIS 第二水準漢字の計YujiSyuku-Regular

6,523 文字を使用した．こちらも俵越山文字データと同様に，1文字に対して最小のバウンディングボックスで切り抜き，長辺YuseiMagic-Regularが 236 ピクセルになるよう拡大縮小した．そして，長辺に対しては両端に 10 ピクセルずつ余白を取り，短辺に対しては 256

ZenKurenaido-Regular

ピクセルになるように余白を取ることで，256 × 256 ピクセルの画像にした．その後，グレースケール化を行った上で各ピク

ZenMaruGothic-Regular

セルの値が 128 未満であれば 0，128 以上であれば 1 になるよう 2 値化を行った．

4. 4 俵越山文字データと日本語フォントデータからなるデータセット

スタイル sj に応じて，入力文字種グリフ集合 Rci と入力スタ
イルグリフ集合 Rsj にも追加する．
各ターゲットグリフ画像 1 枚につき，入力文字種グリフ画像

俵越山文字データの学習用データ 1,286 枚と，日本語フォンと入力スタイルグリフ画像の 2 枚の入力画像を用いる．入力文

トデータから 19 スタイル各 6,523 枚からそれぞれランダムに字種グリフ画像は，ターゲットグリフ画像 Ici ,sj と同じ文字種

1,286 枚ずつ選んだ 24,434 枚を合わせた，25,720 枚のグリフ

ci の入力文字種グリフ集合 Rci からランダムに 1 枚選んだグリ

画像をターゲットグリフとする．

フ画像 Ici ,s• を用いる．入力スタイルグリフ画像は，ターゲッ

25,720 枚のグリフ画像は全てターゲットグリフ画像として用トグリフ Ici ,sj と同じスタイル sj の入力スタイルグリフ集合

いるとともに，それぞれのグリフ画像 Ici ,sj が持つ文字種 ci と

Rsj からランダムに 1 枚選んだグリフ画像 Ic• ,sj を用いる．各
ターゲットグリフに対して，入力文字種グリフ画像 Ici ,s• ，入5：https://fonts.google.com

力スタイルグリフ画像 Ic• ,sj ，ターゲットグリフ画像 Ici ,sj のDropout

ターゲット
グリフ画像

F
C
𝐃

文字種ベクトルロス

F
C
入力文字種
グリフ画像

文字種
分類ロス

L
1
ロ
ス

敵対的
ロス

F
C

文字種
分類ロス

F
C

スタイル
分類ロス

512次元
512次元

F
C𝐆

入力スタイル
グリフ画像

生成
スタイル グリフ画像

分類ロススタイルベクトルロス
図5

モデルの構成図

3 枚を 1 組とするデータセットを作り，9:1 の割合でランダムに訓練データと検証データに分割し，学習に用いた．

同じ次元数の m 次元ベクトルを出力する．
そ し て ，文 字 種 ベ ク ト ル Ec (Ici ,s• ) と ス タ イ ル ベ ク ト ル

Es (Ic• ,sj ) を，結合してデコーダ DG に入力する．デコーダ

5 文字種とスタイルを考慮したグリフ生成モデル
5. 1 モデルの概要
今回提案するモデルは，生成器 G と識別器 D で構成する．
モデル構成を図 5 に示す．
生成器 G は，文字種エンコーダ Ec ，スタイルエンコーダ Es ，デコーダ DG ，2 つの FC 層からなる．識別器 D は，エンコー
ダ ED と FC 層からなる．

DG から文字種 ci とスタイル sj を持つグリフ画像 Ici ,sj が生成されるような学習を行う．
今回，生成器 G には U-Net を用いる．文字種エンコーダ Ecとスタイルエンコーダ Es はそれぞれ 8 層の畳み込み層で構成する．各層の間には，活性化関数 Leaky ReLU を用いる．各層の出力に対し，ミニバッチごとに正規化を行う．文字種エンコーダ Ec とスタイルエンコーダ Es は，それぞれ 256 × 256 ピ
クセルの画像を入力として受け取り，512 次元ベクトルを出力

生成器 G では，生成したい文字種 ci を持つグリフ画像 Ici ,s•

する．出力したベクトルは，2 つの FC 層とデコーダ DG に入と，生成したいスタイル sj を持つグリフ画像 Ic• ,sj を，生成力する．FC 層には線形層を用いる．文字種エンコーダ Ec から器 G に入力すると，文字種 ci とスタイル sj を持つグリフ画像

出力された 512 次元ベクトルは FC 層に入力され，6,523 次元

Ici ,sj が生成されることを目的とする．

ベクトルを出力する．スタイルエンコーダ Ec から出力された

識別器 D は，生成器 G が生成したグリフ画像 G(Ici ,s• , Ic• ,sj )512 次元ベクトルは FC 層に入力され，19 次元ベクトルを出力と，ターゲットグリフ画像 Ici ,sj を分類することを目的とする．

する．2 つの 512 次元ベクトルを結合した 1,024 次元ベクトル

5. 2 生 成 器

をデコーダ DG に入力する．

生成したい文字種 ci を持つグリフ画像 Ici ,s• と，生成したいスタイル sj を持つグリフ画像 Ic• ,sj が，生成器 G に与えられたとき，生成される画像は文字種 ci とスタイル sj を保持している必要がある．そこで，文字種エンコーダ Ec を用いて文字種グリフ画像 Ici ,s• から文字種ベクトル Ec (Ici ,s• ) を抽出し，スタイルエンコーダ Es を用いてスタイルグリフ画像 Ic• ,sj からスタイルベクトル Es (Ic• ,sj ) を抽出する．
抽出した文字種ベクトル Ec (Ici ,s• ) を FC 層に入力し，文字種数 n と同じ次元数の n 次元ベクトルを出力する．同様にスタイルベクトル Es (Ic• ,sj ) を FC 層に入力し，スタイル数 m とデコーダ DG は 8 層の逆畳み込み層で構成する．各層の前には，活性化関数 ReLU を用いる．各層の出力に対し，ミニバッ
チごとに正規化を行う．文字種エンコーダ Ec の各層での出力を，デコーダ DG の対応する層に渡し，前の層からの出力と結合する．デコーダ DG は 256 × 256 ピクセルの画像を出力する．

5. 3 識 別 器
識 別 器 D で は ，生 成 器 G か ら 出 力 さ れ た グ リ フ 画 像G(Ici ,s• , Ic• ,sj ) またはターゲットグリフ画像 Ici ,sj を入力とする．入力された画像が生成器 G から出力されたグリフ画像

G(Ici ,s• , Ic• ,sj ) であれば 0，ターゲットグリフ画像 Ici ,sj であm と同じ m 次元のベクトルを出力する全結合層 FCm に入力

れば 1 が出力されることを目的とする．
今回，識別器 D のエンコーダ ED は 4 層の畳み込み層で構する．出力したベクトルに softmax 関数を適用したものと，正成する．各層の前には活性化関数 Leaky ReLU を用いる．各層

解ラベル sj を m 次元で One-Hot エンコーディングしたベクの出力に対し，ミニバッチごとに正規化を行う．Dropout 層でトル tsj から，Cross Entropy loss を用いて入力スタイル分類

は Dropout 率を 0.5 に設定した．FC 層には線形層を用いる．

ロスを計算する．

エンコーダ ED からの出力を Dropout 層に入力する．Dropout層からの出力を FC 層に入力し，1 次元ベクトルを出力する．

5. 4 学

LSinput = CE(softmax(FCm (Es (Ic• ,sj ))), tsj )生成グリフ画像 G(Ici ,s• , Ic• ,sj ) を文字種エンコーダ Ec に

習

入力文字種グリフ画像 Ici ,s• と入力スタイルグリフ画像 Ic• ,sj
から，ターゲットグリフ画像 Ici ,sj が生成されるようにモデルの学習を行う．入力文字種グリフ画像 Ici ,s• は，ターゲットグ
リフ画像 Ici ,sj と同じ文字種 ci を持つグリフである必要があ
る．入力スタイルグリフ画像 Ic• ,sj は，ターゲットグリフ画像

Ici ,sj と同じスタイル sj を持つグリフである必要がある．
ピクセルレベルでの学習には，生成器 G から生成されたグ

入力して得られた文字種ベクトル Ec (G(Ici ,s• , Ic• ,sj )) を，文
字種数 n と同じ n 次元のベクトルを出力する全結合層 FCn に入力する．出力したベクトルに softmax 関数を適用したものと，正解ラベル ci を n 次元で One-Hot エンコーディングしたベクトル tci から，Cross Entropy loss を用いて入力文字種分類ロスを計算する．

LCf ake = CE(softmax(FCn (Ec (G(Ici ,s• , Ic• ,sj )))), tci )リフ画像 G(Ici ,s• , Ic• ,sj ) とターゲットグリフ画像 Ici ,sj との間の平均絶対誤差を用いる．

LL1 = ∥Ici ,sj − G(Ici ,s• , Ic• ,sj )∥1

(10)

(11)
生成グリフ画像 G(Ici ,s• , Ic• ,sj ) をスタイルエンコーダ Es(6)に入力して得られたスタイルベクトル Es (G(Ici ,s• , Ic• ,sj )) を，
スタイル数 m と同じ m 次元のベクトルを出力する全結合層

生成グリフ画像 G(Ici ,s• , Ic• ,sj ) を文字種エンコーダ Ec と

FCm に入力する．出力したベクトルに softmax 関数を適用しスタイルエンコーダ Es にそれぞれ入力する．入力文字種グたものと，正解ラベル sj を m 次元で One-Hot エンコーディ

リフ画像 Ici ,s• を文字種エンコーダ Ec に入力して得られた文

ングしたベクトル tsj から，Cross Entropy loss を用いて入力

字種ベクトル Ec (Ici ,s• ) と，生成グリフ画像 G(Ici ,s• , Ic• ,sj )スタイル分類ロスを計算する．

を文字種エンコーダ Ec に入力して得られた文字種ベクトル

Ec (G(Ici ,s• , Ic• ,sj )) から，平均二乗誤差によって文字種ベク
トルロスを計算する．

LCconst = ∥Ec (Ici ,s• ) − Ec (G(Ici ,s• , Ic• ,sj ))∥22

LSf ake = CE(softmax(FCm (Es (G(Ici ,s• , Ic• ,sj )))), tsj )(12)
生成器 G から生成されたグリフ画像 G(Ici ,s• , Ic• ,sj ) のみを(7)

識別機 D に入力する．生成グリフ画像かターゲットグリフ画像
かの 2 値分類を行い，Binary Cross Entropy loss を用いて生スタイルについても文字種と同様のことを行い，入力ス

成器敵対的ロスを計算する．生成グリフ画像が 1 となるように

タイルグリフ画像 Ic• ,sj をスタイルエンコーダ Es に入力し学習を行う．以下，損失関数内において Binary Cross Entropyて得られたスタイルベクトル Es (Ic• ,sj ) と，生成グリフ画像

loss を BCE と表記する．

G(Ici ,s• , Ic• ,sj ) をスタイルエンコーダ Es に入力して得られたスタイルベクトル Es (G(Ici ,s• , Ic• ,sj )) から，平均二乗誤差によってスタイルベクトルロスを計算する．

LSconst = ∥Es (Ic• ,sj ) − Es (G(Ici ,s• , Ic• ,sj ))∥22

LGGAN = BCE(sigmoid(D(G(Ici ,s• , Ic• ,sj ))), 1)(13)

上記の損失関数を組み合わせた損失関数 LG を用いて生成器(8)

入力文字種グリフ画像 Ici ,s• を文字種エンコーダ Ec に入力して得られた文字種ベクトル Ec (Ici ,s• ) を，文字種数 n と同じ

n 次元のベクトルを出力する全結合層 FCn に入力する．出力

G の学習を行う．
LG = LL1 + LCconst + LSconst + LCinput + LSinput+ LCf ake + LSf ake + LGGAN(14)

したベクトルに softmax 関数を適用したものと，正解ラベル ci

生成器 G から生成されたグリフ画像 G(Ici ,s• , Ic• ,sj ) と，を n 次元で One-Hot エンコーディングしたベクトル tci から，

ターゲットグリフ画像 Ici ,sj を識別機 D に入力する．生成グ

Cross Entropy loss を用いて入力文字種分類ロスを計算する．

リフ画像かターゲットグリフ画像かの 2 値分類を行い，Binary

以下，損失関数内において Cross Entropy loss を CE と表記

Cross Entropy loss（BCE）を用いて識別器敵対的ロスを計算

する．

する．生成グリフ画像であれば 0，ターゲットグリフ画像であLCinput = CE(softmax(FCn (Ec (Ici ,s• ))), tci )れば 1 になるように識別器 D の学習を行う．

(9)

入力スタイルグリフ画像 Ic• ,sj をスタイルエンコーダ Es に入力して得られたスタイルベクトル Es (Ic• ,sj ) を，スタイル数

LD = BCE(sigmoid(D(Ici ,sj )), 1)+ BCE(sigmoid(D(G(Ici ,s• , Ic• ,sj ))), 0)

(15)

入力
文字種

入力
スタイル

出⼒

正解

入力
文字種

入力
スタイル

正解

出⼒

入力
文字種

入力
スタイル

正解

出⼒

30
25
20

zi2zi
提案手法

15
10
5
0
1

図7

2

3

4

5

生成画像が俵越山文字をどのくらい模倣できているか

30
25
20

zi2zi
提案手法

15
10
5
0
1

図8

図6

生成結果

2

3

4

5

生成画像が文字として成立しているかるか」に対する評価結果を図 7 に示す．zi2zi が平均 3.59，提案手法が平均 2.17 であった．

2 つ目の「生成画像が文字として成立しているか」に対する評

6 実

験

であった．

6. 1 生 成 結 果
評価用データ 54 枚をターゲットグリフとした．入力文字種
グリフには，ターゲットグリフと同じ文字種を持つグリフを

SourceHanSansJP-Regular から用いた．入力スタイルグリフには，評価データからターゲットグリフを抜いた 53 枚のうちランダムに 1 枚を用いた．生成結果を図 6 にて示す．

6. 2 評価結果を図 8 に示す．zi2zi が平均 2.31，提案手法が平均 2.51

価

6. 3 学習済み生成器を用いたゆれの表現
学習済み生成器を用いて，グリフのゆれの表現を行った．
まず，抽出したベクトルを用いてグリフのゆれを表現した．俵
越山文字とゴシック体フォントの SourceHanSansJP-Regular
から文字種「相」を持つグリフを用いて，文字種エンコーダ Ecとスタイルエンコーダ Es にそれぞれ入力し，文字種ベクトルとスタイルベクトルを抽出した．俵越山のスタイルベクトル

評価用データ 54 枚を正解データとし，zi2zi 及び提案モデルと，ゴシック体のスタイルベクトルを，割合を変えて足し合わの推論を行った．zi2zi が生成したグリフ画像 54 枚と提案モデ

せ，デコーダ DG に入力し，グリフ生成を行った．この際，文ルが生成したグリフ画像 54 枚の合計 108 枚を，どちらの手法

字種ベクトルには俵越山の文字種ベクトルを用いた．生成結果で生成したかわからないようにシャッフルした．生成したグリを図 9 に示す．俵越山からゴシック体へ，スタイルベクトルをフ画像 1 枚ずつに対して，2 つの指標にて評価を行った．1 つ

0.25 ずつ割合を変えながら生成を行った．少しずつ線の太さが目は「生成画像が俵越山文字をどのくらい模倣できているか」

変わっていき，まっすぐな線に変化していることがわかる．文である．書家俵越山本人が，1 が「できていない」，5 が「でき字種ベクトルだけでなく，スタイルベクトルも他のベクトルとている」として 5 段階で評価を行った．2 つ目は「生成画像が混ぜ合わせることで，グリフを少しずつゆらすことができた．

文字として成立しているか」である．こちらは本人ではない人

次に，入力グリフ自体を変更することによってグリフのゆれが，1 が「成立していない」，5 が「成立している」として 5 段を表現した．入力スタイルグリフは固定し，入力文字種グリフ

階で評価を行った．評価の際は，どちらも参考として正解デーのスタイルを変えて生成を行った結果と，入力文字種グリフはタを見せた．

固定し，入力スタイルグリフの文字種を変えて生成を行った結

1 つ目の「生成画像が俵越山文字をどのくらい模倣できてい果を図 10 に示す．入力グリフの組み合わせによっても，グリ俵越山

SourceHanSansJP-Regular

1：０

図9

入力
文字種

0.5:0.5

0.75:0.25

入力
スタイル

図 10

0.25:0.75

0:1

ベクトルを用いたゆれの表現

出力

入力
文字種

入力
スタイル

出力

グリフの変更によるゆれの表現

フをゆらすことができた．

7 まとめと今後の課題
本論文では，書家俵越山の文字を生成するために，文字種とスタイルを抽出する手法を提案した．文字は書く文章やタイミ
ングによって微妙なゆれが生じるものであり，実際に書家俵越山の文字にもその傾向がある．そこで本研究では，文字のゆれを考慮した文字生成を行うために，文字の文字種とスタイルを抽出してベクトルで表現し，再構築して生成を行うモデルを提案した．そして今回学習した生成器を用いて，グリフのゆれの表現が可能であることを示した．
課題としては，他のスタイルと比較すると俵越山スタイルの生成が安定していないという点や，学習したスタイルに引っ張られて違うスタイルが生成されてしまうという点がある．これ
らは学習データの少なさが影響していると考えられるため，今後は学習データの少ないスタイルや未知のスタイルであっても，対応できるような構造を検討したいと考えている．

謝辞

本研究は JSPS 科研費 JP21H03775，JP22H03905 の助成を受けたものです．ここに記して謝意を表します．

文

献[1] Xu Chen, Lei Wu, Minggang He, Lei Meng, and Xiangxu
Meng. MLFont: Few-shot chinese font generation via deepmeta-learning. In Proceedings of ICMR’21, pp. 37–45, 2021.
[2] Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing
Xu, David Warde-Farley, Sherjil Ozair, Aaron C. Courville,
and Yoshua Bengio. Generative adversarial nets. In Proceedings of NIPS’14, pp. 2672–2680, 2014.

[3] Xun Huang, Ming-Yu Liu, Serge Belongie, and Jan Kautz.
Multimodal unsupervised image-to-image translation. In
Proceedings of ECCV’18, pp. 179–196, 2018.
[4] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A.
Efros. Image-to-image translation with conditional adversarial networks. In Proceedings of CVPR’17, pp. 1125–1134,
2017.
[5] Yue Jiang, Zhouhui Lian, Yingmin Tang, and Jianguo Xiao.
DCFont: An end-to-end deep chinese font generation system. In Proceedings of SIGGRAPH’17, pp. 1–4, 2017.
[6] Yue Jiang, Zhouhui Lian, Yingmin Tang, and Jianguo Xiao.
SCFont: Structure-guided chinese font generation via deep
stacked networks. In Proceedings of AAAI’19, pp. 4015–
4022, 2019.
[7] Yuxin Kong, Canjie Luo, Weihong Ma, Qiyuan Zhu, Shenggao Zhu, Nicholas Yuan, and Lianwen Jin. Look closer tosupervise better: One-shot font generation via componentbased discriminator. In Proceedings of CVPR’22, pp.
13482–13491, 2022.
[8] Ming-Yu Liu, Xun Huang, Arun Mallya, Tero Karras, Timo
Aila, Jaakko Lehtinen, and Jan Kautz. Few-shot unsupervised image-to-image translation. In Proceedings of
ICCV’19, pp. 10551–10560, 2019.
[9] Wei Liu, Fangyue Liu, Fei Ding, Qian He, and Zili Yi.
XMP-Font: Self-supervised cross-modality pre-training forfew-shot font generation. In Proceedings of CVPR’22, pp.
7905–7914, 2022.
[10] Augustus Odena, Christopher Olah, and Jonathon Shlens.
Conditional image synthesis with auxiliary classiﬁer GANs.
In Proceedings of ICML’17, pp. 2642–2651, 2017.
[11] Song Park, Sanghyuk Chun, Junbum Cha, Bado Lee, andHyunjung Shim. Few-shot font generation with localizedstyle representations and factorization. In Proceedings of
AAAI’21, pp. 2393–2402, 2021.
[12] Olaf Ronneberger, Philipp Fischer, and Thomas Brox. UNet: Convolutional networks for biomedical image segmentation. In Proceedings of MICCAI’15, pp. 234–241, 2015.
[13] Yaniv Taigman, Adam Polyak, and Lior Wolf. Unsupervised
cross-domain image generation. In Proceedings of ICLR’17,
pp. 1–15, 2017.
[14] Licheng Tang, Yiyang Cai, Jiaming Liu, Zhibin Hong, Mingming Gong, Minhu Fan, Junyu Han, Jingtuo Liu, Errui Ding, and Jingdong Wang. Few-shot font generationby learning ﬁne-grained local styles. In Proceedings of
CVPR’22, pp. 7895–7904, 2022.
[15] Yuchen Tian.
zi2zi: Master chinese calligraphy withconditional adversarial networks. https://github.com/
kaonashi-tyc/zi2zi, 2017. 2022 年 12 月 15 日閲覧.
[16] Qi Wen, Shuang Li, Bingfeng Han, and Yi Yuan. ZiGAN:
Fine-grained chinese calligraphy font generation via a fewshot style transfer approach. In Proceedings of MM’21, pp.
621–629, 2021.
[17] Yangchen Xie, Xinyuan Chen, Li Sun, and Yue Lu. DGFont: Deformable generative networks for unsupervised fontgeneration. In Proceedings of CVPR’21, pp. 5126–5136,
2021.
[18] Shaozu Yuan, Ruixue Liu, Meng Chen, Baoyang Chen, Zhijie Qiu, and Xiaodong He. SE-GAN: Skeleton enhanced
gan-based model for brush handwriting font generation. In
Proceedings of ICME’22, pp. 1–6, 2022.
[19] Jinshan Zeng, Qi Chen, Yunxin Liu, Mingwen Wang, andYuan Yao. StrokeGAN: Reducing mode collapse in chinese font generation via stroke encoding. In Proceedingsof AAAI’21, pp. 3270–3277, 2021.
[20] Yexun Zhang, Ya Zhang, and Wenbin Cai. Separating styleand content for generalized style transfer. In Proceedings of
CVPR’18, pp. 8447–8455, 2018.