(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-07
(45)【発行日】2022-11-15
(54)【発明の名称】文字データ生成装置、方法及びプログラム
(51)【国際特許分類】
G09G 5/24 20060101AFI20221108BHJP
G06F 40/109 20200101ALI20221108BHJP
【FI】
G09G5/24 630Z
G06F40/109
(21)【出願番号】P 2019023545
(22)【出願日】2019-02-13
【審査請求日】2022-02-07
(73)【特許権者】
【識別番号】000139403
【氏名又は名称】株式会社ワコム
(74)【代理人】
【識別番号】100176072
【氏名又は名称】小林 功
(74)【代理人】
【識別番号】100169225
【氏名又は名称】山野 明
(72)【発明者】
【氏名】宮本 雅之
【審査官】武田 悟
(56)【参考文献】
【文献】特開2003-233825(JP,A)
【文献】特開平6-110444(JP,A)
【文献】特開平11-66047(JP,A)
【文献】特開2018-77677(JP,A)
【文献】特開平7-21164(JP,A)
【文献】中国特許出願公開第102156688(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09G 5/00 - 5/42
G06F 40/109
(57)【特許請求の範囲】
【請求項1】
文字列を取得する文字列取得部と、
前記文字列取得部により取得された前記文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する変形量決定部と、
前記変形量決定部により決定された前記変形量を用いて、元のフォントを示すフォントデータに対する変形処理を文字毎に施すことで、変形後のフォント配列を示す文字データを生成する文字生成部と、
を備え、
前記変形量決定部は、前記文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、前記指定文字の変形量を逐次的に決定することを特徴とする文字データ生成装置。
【請求項2】
前記変形量決定部は、前記指定文字の特徴量、前記他の文字の特徴量及び変形量を入力とし、前記指定文字の変形量を出力とする学習器を含んで構成されることを特徴とする請求項1に記載の文字データ生成装置。
【請求項3】
前記学習器は、人間の筆記によるストロークを記述するインクデータから生成された教師データを用いて機械学習がなされることを特徴とする請求項2に記載の文字データ生成装置。
【請求項4】
前記変形量決定部は、前記文字列が示す言語の種類に応じた前記学習器を用いて、前記変形量を決定することを特徴とする請求項2又は3に記載の文字データ生成装置。
【請求項5】
前記変形量決定部は、前記文字列の書字方向に応じた前記学習器を用いて、前記変形量を決定することを特徴とする請求項2又は3に記載の文字データ生成装置。
【請求項6】
前記変形量決定部は、疑似1/fゆらぎ付与法を用いて、前記指定文字の直前にある文字の変形量から前記指定文字の変形量を決定することを特徴とする請求項1に記載の文字データ生成装置。
【請求項7】
前記疑似1/fゆらぎ付与法は、間欠カオス法であることを特徴とする請求項6に記載の文字データ生成装置。
【請求項8】
前記変形量決定部は、前記変形量として、2次元アフィン変換に関する少なくとも1つの変換パラメータを決定し、
前記文字生成部は、元のフォントに対して2次元アフィン変換を施すことで前記文字データを生成する
ことを特徴とする請求項1~7のいずれか1項に記載の文字データ生成装置。
【請求項9】
文字列を取得する取得ステップと、
取得された前記文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する決定ステップと、
決定された前記変形量を用いて、元のフォントを示すフォントデータに対する変形処理を文字毎に施すことで、変形後のフォント配列を示す文字データを生成する生成ステップと、
を1つ又は複数のコンピュータが実行し、
前記決定ステップでは、前記文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、前記指定文字の変形量を逐次的に決定することを特徴とする文字データ生成方法。
【請求項10】
文字列を取得する取得ステップと、
取得された前記文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する決定ステップと、
決定された前記変形量を用いて、元のフォントを示すフォントデータに対する変形処理を文字毎に施すことで、変形後のフォント配列を示す文字データを生成する生成ステップと、
を1つ又は複数のコンピュータに実行させ、
前記決定ステップでは、前記文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、前記指定文字の変形量を逐次的に決定することを特徴とする文字データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字データ生成装置、方法及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、乱数を用いて文字毎の角度をランダムに決定し、その角度分だけ回転又は傾斜させる変形処理を元のフォントデータに対して施すことで、表現のばらつきがある個性的な文字データを出力する装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところが、回転角度又は傾斜角度を含む変形量が一様分布に従うように、文字毎の変形量をランダムに決定すると、フォントの変形に起因するノイズパワースペクトル(NPS)が周波数によらず一定である、いわゆる「ホワイトノイズ」的な表現になってしまう。この場合、観察者は、出力された文字列を画像として視認する際に雑然さを覚える可能性がある。
【0005】
本発明の目的は、文字毎のフォントをランダムに変形する場合と比べて、視認時の雑然さが抑制された文字データを生成可能な文字データ生成装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
第1の本発明における文字データ生成装置は、文字列を取得する文字列取得部と、前記文字列取得部により取得された前記文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する変形量決定部と、前記変形量決定部により決定された前記変形量を用いて、元のフォントを示すフォントデータに対する変形処理を文字毎に施すことで、変形後のフォント配列を示す文字データを生成する文字生成部と、を備え、前記変形量決定部は、前記文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、前記指定文字の変形量を逐次的に決定する。
【0007】
第2の本発明における文字データ生成方法は、文字列を取得する取得ステップと、取得された前記文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する決定ステップと、決定された前記変形量を用いて、元のフォントを示すフォントデータに対する変形処理を文字毎に施すことで、変形後のフォント配列を示す文字データを生成する生成ステップと、を1つ又は複数のコンピュータが実行し、前記決定ステップでは、前記文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、前記指定文字の変形量を逐次的に決定する。
【0008】
第3の本発明における文字データ生成プログラムは、文字列を取得する取得ステップと、取得された前記文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する決定ステップと、決定された前記変形量を用いて、元のフォントを示すフォントデータに対する変形処理を文字毎に施すことで、変形後のフォント配列を示す文字データを生成する生成ステップと、を1つ又は複数のコンピュータに実行させ、前記決定ステップでは、前記文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、前記指定文字の変形量を逐次的に決定する。
【発明の効果】
【0009】
本発明によれば、文字毎のフォントをランダムに変形する場合と比べて、視認時の雑然さが抑制された文字データを生成することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態における文字データ生成装置の電気的なブロック図である。
【
図2】
図1の文字データ生成装置の動作説明に供されるフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明における文字データ生成装置について、文字データ生成方法及び文字データ生成プログラムとの関係において好適な実施形態を挙げ、添付の図面を参照しながら説明する。なお、この発明は、後述する実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。
【0012】
<文字データ生成装置10の構成>
図1は、本発明の一実施形態における文字データ生成装置10の電気的なブロック図である。文字データ生成装置10は、後述する文字データ34を生成して出力するコンピュータであり、柔らかな感触をもった/ストレスを感じさせないユーザ・インターフェース(SF-UI;Soft Feel/Stress Free User Interface)を実現する装置である。この文字データ生成装置10は、具体的には、通信部12と、入力部14と、表示部16と、制御部18と、記憶部20とを含んで構成される。
【0013】
通信部12は、外部装置に対して電気信号を送受信するための通信インターフェースである。これにより、文字データ生成装置10は、元のフォントを示すフォントデータを外部装置から受信可能であり、自身が生成した文字データ34を外部装置に向けて送信可能である。
【0014】
入力部14は、マウス、キーボード、タッチセンサ、又はマイクロフォンを含んで構成される。表示部16は、液晶ディスプレイ、OLED(Organic Electro-Luminescence Display)を含む表示装置から構成される。入力部14による入力機能及び表示部16による表示機能を組み合わせることで、グラフィカル・ユーザ・インターフェース(GUI)を構築可能である。
【0015】
制御部18は、CPU(Central Processing Unit)又はGPU(Graphics Processing Unit)のプロセッサによって構成されている。制御部18は、記憶部20に格納されたプログラムを読み出し実行することで、文字列取得部22、変形量決定部24、文字生成部26、及び出力処理部28の各機能を遂行可能である。
【0016】
記憶部20は、制御部18が各構成要素を制御するのに必要なプログラム及びデータを記憶している。記憶部20は、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。ここで、コンピュータ読み取り可能な記憶媒体は、光磁気ディスク、ROM、CD-ROM、フラッシュメモリ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。
【0017】
なお、記憶部20には、文字のフォントに関するデータベース(以下、フォントDB30)が構築されると共に、入力データ32、文字データ34、及び複数のパラメータセット36が格納されている。
【0018】
<文字データ生成装置10の動作>
この実施形態における文字データ生成装置10は、以上のように構成される。続いて、文字データ生成装置10の動作(ここでは、文字データ34の生成及び出力)について、
図2のフローチャート及び
図3~
図5を参照しながら説明する。
【0019】
図2のステップS1において、文字列取得部22は、文字列を含む入力データ32を記憶部20から読み出すことで、対象である文字列を取得する。この入力データ32は、入力部14からのユーザの入力操作を通じて得られたデータであってもよいし、外部装置から供給されたデータであってもよい。
【0020】
ステップS2において、制御部18は、ステップS1で取得された文字列の種類に応じて、変形量の決定アルゴリズムを選択する。ここで、「変形量」とは、フォントの変形度合いを示す量であり、具体例として、2次元アフィン変換における変換パラメータ(θ,γ1,γ2,s1,s2)が挙げられる。なお、θは回転角度、γ1はX軸方向の拡縮率、γ2はY軸方向の拡縮率、s1はX軸方向のシフト量、s2はY軸方向のシフト量にそれぞれ相当する。
【0021】
図3は、文字座標系の定義の一例を示す図である。すべてのフォントを正方形状の画像領域40内で表現する場合、この画像領域40に対応する二次元座標系(つまり、文字座標系;X-Y)を定義する。この文字座標系の原点Oは画像領域40の中心に、X軸は横方向、Y軸は縦方向にそれぞれ相当する。X軸,Y軸のスケールは、画像領域40をなす4つの頂点の座標が(-1,-1),(1,-1),(-1,1),(1,1)となるように正規化されている。なお、1つの文章内で複数種別の文字が混在する場合を考慮し、文字の種別毎に画像領域40のサイズ(一辺の長さ)を異ならせてもよい。
【0022】
この文字座標系において、2次元アフィン変換後の座標(X’,Y’)は、変換前の座標(X,Y)及び変換パラメータ(θ,γ1,γ2,s1,s2)を用いて、次の(1)式及び(2)式で与えられる。
X’= γ1・Xcosθ+γ2・Ysinθ+s1 ・・・(1)
Y’=-γ1・Xsinθ+γ2・Ycosθ+s2 ・・・(2)
【0023】
ところで、上記した変形量をランダムに決定すると、フォントの変形に起因するノイズパワースペクトルが周波数によらず一定である、いわゆる「ホワイトノイズ」的な表現になってしまう。この場合、観察者は、出力された文字列を画像として視認する際に雑然さを覚える可能性がある。そこで、変形量の決定アルゴリズムとして、視認時の雑然さを抑制可能な手法を選択することが望ましい。その一例として、人間が心地よさを感じる「1/fゆらぎ」を発現する疑似1/fゆらぎ付与法や、人間の筆記傾向を学習した人工知能(AI)を用いた推論法等が挙げられる。
【0024】
図2のステップS3において、制御部18は、未指定であって文字列の先頭に最も近い1つの文字(以下、「指定文字」という)を指定する。このステップS3を初めて実行する場合、指定文字は、文字列の先頭の文字である。
【0025】
ステップS4において、変形量決定部24は、ステップS3で指定された指定文字よりも配列順が前である他の文字(1つ又複数の文字)の変形量を用いて、この指定文字の変形量を決定する。以下、この決定方法について、
図4を参照しながら詳細に説明する。
【0026】
図4(a)は、間欠カオス法を用いた変形量の決定方法を示す図である。グラフの横軸は(i-1)番目の決定量P(i-1)を示すとともに、グラフの縦軸はi番目の決定量P(i)を示す。ここで、決定量Pは、[0,1]の範囲で正規化された変形量に相当する。例えば、変換パラメータs1(X軸方向のシフト量)がとり得る範囲を(-0.2≦s1≦0.2)と定めた場合、P=0の値がs1=-0.2(範囲の下限値)に、P=1の値がs1=0.2(範囲の上限値)にそれぞれ対応する。
【0027】
変形量決定部24は、この不連続的な写像に基づいて、(i-1)番目の文字の変形量からi番目の変形量を逐次的に決定する。これにより、フォントの変形に起因するノイズパワースペクトルが周波数に対して反比例する「1/fゆらぎ」が発現する。1つの指定文字に対して複数の変形量を決定する場合、変形量決定部24は、カオスを発生可能な写像関数を用いて、それぞれの変形量を独立して決定してもよい。なお、疑似1/fゆらぎ付与法は、上記した間欠カオス法に限られず、例えば、セルラーオートマトン、1/2階積分法を含む様々な手法を採用してもよい。
【0028】
図4(b)は、学習器38を用いた変形量の決定方法を示す図である。この学習器38は、i番目の文字の特徴量、(i-1)番目の文字の特徴量及び変形量を入力し、i番目の変形量を出力する。本図の例では、学習器38は、(i-1)番目の文字情報のみを入力可能であるが、さらに前の文字を含む複数の文字情報を同時に入力可能に構成されてもよい。
【0029】
文字の変形量は、上記した変換パラメータ(θ,γ1,γ2,s1,s2)のうち少なくとも1つのパラメータである。また、文字の特徴量の具体例として、[1]文字全体の特徴量(重心の座標、ストローク数、ストロークの分布を含む)、[2]ストローク毎の特徴量(始点の座標、終点の座標、長さ、曲率を含む)、[3]文字の種別(平仮名・片仮名・漢字・句読点・記号を含む)等が挙げられる。
【0030】
一例として、文字の特徴量に「文字の種別」を含む学習器38を学習させることで、複数の種別が混在する1つの文章内で文字サイズの大小を使い分けてもよい。具体的には、日本語の文章中で、漢字の直後にある平仮名のサイズ(拡縮率γ1,γ2)を小さくすることで、文章全体の見栄えを良くすることができる。
【0031】
学習器38の演算規則は、学習パラメータの集合体であるパラメータセット36の値によって定められる。パラメータセット36は、例えば、ユニットの活性化関数を記述する係数、ユニット間の結合強度を含む「可変パラメータ」と、学習モデルのアーキテクチャを特定するための「固定パラメータ」(いわゆるハイパーパラメータ)から構成される。ハイパーパラメータの例として、各層を構成するユニットの個数、中間層の数が挙げられる。
【0032】
パラメータセット36を決定するための機械学習の手法は、深層学習を含むニューラルネットワークの他に、ロジスティック回帰モデル、サポートベクターマシン(SVM)、ディシジョンツリー、ランダムフォレスト、ブースティング法を含む様々な手法を採用してもよい。
【0033】
また、機械学習のための教師データは、人間の筆記によるストロークを記述するインクデータから生成されてもよい。このインクデータの形式(すなわち、インク記述言語)は、WILL(Wacom Ink Layer Language)、InkML(Ink Markup Language)又はISF(Ink Serialized Format)のいずれであってもよい。
【0034】
特に、パラメータセット36は、文字列が示す言語の種類(例えば、日本語・英語・中国語)毎に、あるいは文字列の書字方向(つまり、縦書き/横書き)毎に準備されてもよい。なぜならば、言語の種類又は書字方向に応じて人間による筆記の傾向が異なるからである。
【0035】
図2のステップS5において、制御部18は、文字列を構成するすべての文字を指定したか否かを確認する。未指定の文字が少なくとも1つある場合(ステップS5:NO)、ステップS3に戻って、以下、ステップS3~S5を順次繰り返す。一方、すべての文字が指定済みである場合(ステップS5:YES)、次のステップS6に進む。
【0036】
ステップS6において、文字生成部26は、ステップS4で逐次的に決定された変形量を用いて、変形後のフォント配列を示す文字データ34を生成する。具体的には、文字生成部26は、文字列を構成する文字毎に、フォントDB30からフォントデータを読み出した後、このフォントデータに対して変形処理を施し、得られた文字画像を所定の位置に配置する画像処理を行う。例えば、ラスタ形式のフォントデータを用いる場合、文字生成部26は、画像データを構成する画素毎に2次元アフィン変換を行う。
【0037】
一方、ベクトル形式のフォントデータを用いる場合、文字生成部26は、ストロークの形状を示す特徴点グループに対して2次元アフィン変換を行った後、変換後の特徴点グループに基づいてラスタライズ処理を行う。このラスタライズ処理を行う際に、1つの文字を構成するストローク、あるいは1本のストローク上の位置に応じて線幅を変化させてもよい。これにより、フォントの部分的な潰れ、欠損、断線、かすれ等を演出可能となり、人間の筆記により近い表現を行うことができる。
【0038】
ステップS7において、出力処理部28は、ステップS6で生成された文字データ34を出力する出力処理を行う。この出力処理は、文字データ34を外部装置に送信する処理であってもよいし、表示部16に可視情報を表示させる処理であってもよい。
【0039】
図5は、文字列画像42,44の変化を模式的に示す図である。より詳しくは、
図5(a)は変形前の文字列画像42を示すとともに、
図5(b)は変形後の文字列画像44を示している。両図から理解されるように、観察者は、変形前の文字列画像42に対して機械的・無機質的な印象を受ける一方、変形後の文字列画像44に対して人間的・有機質的な印象を受ける。
【0040】
以上のようにして、文字データ生成装置10の動作が終了する。フォントの変形処理を通じて、「人間らしさ」を訴求した文字が具現化される。その結果、柔らかな感触をもったストレスを感じさせないUI(つまり、SF-UI)を実現することができる。
【0041】
<文字データ生成装置10による効果>
以上のように、文字データ生成装置10は、文字列を取得する文字列取得部22と、取得された文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する変形量決定部24と、決定された変形量を用いて、元のフォントを示すフォントデータに対する変形処理を施すことで、変形後のフォント配列を示す文字データ34を生成する文字生成部26と、を備える。そして、変形量決定部24は、文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、指定文字の変形量を逐次的に決定する。
【0042】
また、文字データ生成装置10を用いた方法及びプログラムによれば、1つ又は複数のコンピュータが、文字列を取得する取得ステップ(S1)と、取得された文字列を構成する文字毎にフォントの変形度合いを示す変形量を決定する決定ステップ(S4)と、決定された変形量を用いて、元のフォントを示すフォントデータに対する変形処理を施すことで、変形後のフォント配列を示す文字データ34を生成する生成ステップ(S6)と、を実行する。そして、決定ステップ(S4)では、文字列において指定された指定文字よりも配列順が前である他の文字の変形量を用いて、指定文字の変形量を逐次的に決定する。
【0043】
このように、配列順が前である他の文字の変形量を用いて指定文字の変形量を逐次的に決定するので、既に筆記された文字の変形度合いを視認しながら次の文字の筆記バランスを取ろうとする人間の筆記パターンを模擬可能となり、文字毎のフォントをランダムに変形する場合と比べて、視認時の雑然さが抑制された文字データ34を生成することができる。
【0044】
また、変形量決定部24は、指定文字の特徴量、他の文字の特徴量及び変形量を入力とし、指定文字の変形量を出力とする学習器38を含んで構成されてもよい。特に、学習器38は、人間の筆記によるストロークを記述するインクデータから生成された教師データを用いて機械学習がなされることが好ましい。これにより、機械学習を通じて人間の潜在的な筆記パターンを抽出可能となり、「人間らしさ」が文字の変形量に適切に反映されやすくなる。
【0045】
また、変形量決定部24は、文字列が示す言語の種類に応じた学習器38を用いて、変形量を決定してもよい。これと併せて又はこれとは別に、変形量決定部24は、文字列の書字方向に応じた学習器38を用いて、変形量を決定してもよい。言語の種類又は書字方向に応じて筆記の傾向が異なる点を考慮することで、人間らしさがさらに反映されやすくなる。
【0046】
また、変形量決定部24は、疑似1/fゆらぎ付与法を用いて、指定文字の直前にある文字の変形量から指定文字の変形量を決定してもよい。これにより、人間が心地よさを感じる「1/fゆらぎ」を擬似的に発現することができる。
【0047】
また、変形量決定部24は、変形量として、2次元アフィン変換に関する少なくとも1つの変換パラメータを決定し、文字生成部26は、元のフォントに対して2次元アフィン変換を施すことで文字データ34を生成してもよい。これにより、簡単な線形演算によって、文字の識別性を保ちながら文字の調子を変化させることができる。
【符号の説明】
【0048】
10 文字データ生成装置、12 通信部、14 入力部、16 表示部、18 制御部、20 記憶部、22 文字列取得部、24 変形量決定部、26 文字生成部、28 出力処理部、30 フォントDB、32 入力データ、34 文字データ、36 パラメータセット、38 学習器、40 画像領域、42,44 文字列画像。