IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特許7513947学習済みの機械学習モデル、画像データ生成装置、および、方法
<>
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図1
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図2
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図3
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図4
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図5
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図6
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図7
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図8
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図9
  • 特許-学習済みの機械学習モデル、画像データ生成装置、および、方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-02
(45)【発行日】2024-07-10
(54)【発明の名称】学習済みの機械学習モデル、画像データ生成装置、および、方法
(51)【国際特許分類】
   G09G 5/24 20060101AFI20240703BHJP
   B41J 5/30 20060101ALI20240703BHJP
   B41J 29/38 20060101ALI20240703BHJP
   G06F 40/109 20200101ALI20240703BHJP
   G06T 7/00 20170101ALI20240703BHJP
   G09G 5/00 20060101ALI20240703BHJP
   G09G 5/30 20060101ALI20240703BHJP
【FI】
G09G5/24 610Z
B41J5/30 Z
B41J29/38 501
G06F40/109
G06T7/00 350C
G09G5/00 510P
G09G5/24 630Z
G09G5/30 610Z
【請求項の数】 6
(21)【出願番号】P 2019146891
(22)【出願日】2019-08-08
(65)【公開番号】P2021026191
(43)【公開日】2021-02-22
【審査請求日】2022-07-15
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】渡邉 航平
【審査官】橋本 直明
(56)【参考文献】
【文献】特開2019-028094(JP,A)
【文献】特開平06-019449(JP,A)
【文献】特開2016-110468(JP,A)
【文献】中国特許出願公開第108804397(CN,A)
【文献】特開平05-266226(JP,A)
【文献】国際公開第2018/203550(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G09G 5/24
B41J 5/30
B41J 29/38
G06F 40/109
G06T 7/00
G09G 5/00
G09G 5/30
(57)【特許請求の範囲】
【請求項1】
トレーニング処理によってトレーニングされた学習済みの機械学習モデルであって、
前記機械学習モデルは、入力画像データとラベルデータとを含む入力データに対して、畳込層を含むニューラルネットワークによって特徴データ生成処理を実行して特徴データを生成するエンコーダと、前記特徴データに対して、次元数を復元する次元復元処理を実行して出力画像データを生成するデコーダと、を含むモデルであって、前記特徴データ生成処理は、前記ニューラルネットワークの演算処理によって前記入力画像データの画素に対応する次元数を削減し、成分に対応する次元数を増加させるように、前記入力画像データの次元数を変更する処理であり、複数個の演算パラメータを用いて前記特徴データ生成処理および前記次元復元処理を実行するモデルであり、
学習済みの前記機械学習モデルは、第1の書体を有する特定の文字を示す前記入力画像データが入力される場合に、前記第1の書体とは異なる第2の書体を有する前記特定の文字を示す前記出力画像データを生成するようにコンピュータを機能させ
前記トレーニング処理は、
第1の書体を有する文字を示す入力画像データと、前記入力画像データに対応付けられる前記ラベルデータと、をそれぞれ含む複数個の前記入力データを前記機械学習モデルに入力することによって、前記複数個の入力データに対応する複数個の出力画像データを生成する処理と、
前記複数個の出力画像データと、前記複数個の入力画像データに対応する複数個の教師画像データと、の間の誤差値を、所定の損失関数を用いて算出する処理と、
前記誤差値が小さくなるように、前記複数個の演算パラメータを調整する処理と、
を含み、
前記複数個の教師画像データのそれぞれは、前記第2の書体を有する文字を示し、
前記ラベルデータは、前記入力画像データによって示される文字が属するカテゴリであって複数個の文字が属する前記カテゴリを示す情報を含み、前記カテゴリに属する複数個の文字を識別する識別情報を含まず、
前記カテゴリは、(1)ひらがな、(2)カタカナ、(3)ひらがなとカタカナとを含む「かな」、(4)アルファベット、(5)漢字、(6)簡体字、(7)繁体字のうちのいずれかである、学習済みの機械学習モデル。
【請求項2】
請求項1に記載の学習済みの機械学習モデルであって、
前記第2の書体を有する文字は、手書き文字であり、
前記トレーニング処理は、
複数個の領域のそれぞれに前記手書き文字が記入された原稿を示す原稿画像データであってイメージセンサを用いて生成される前記原稿画像データを取得する処理と、
前記原稿画像データを用いて、前記複数個の領域に対応する複数個の手書き文字画像データを取得する処理と、
を含み、
前記複数個の教師画像データは、前記複数個の手書き文字画像データである、学習済みの機械学習モデル。
【請求項3】
請求項1または2に記載の学習済みの機械学習モデルであって、
前記複数個の入力画像データは、
第1のカテゴリを示す前記ラベルデータに対応付けられる第1の画像データであって、前記第1のカテゴリに属する第1の文字を示す前記第1の画像データと、
第2のカテゴリを示す前記ラベルデータに対応付けられる第2の画像データであって、前記第2のカテゴリに属し、かつ、前記第1の文字と形状が類似する第2の文字を示す前記第2の画像データと、
を含む、学習済みの機械学習モデル。
【請求項4】
画像データ生成装置であって、
第1の書体を有する文字を示す入力画像データを取得する画像取得部と、
前記入力画像データに対応付けられるラベルデータを取得するラベル取得部であって、前記ラベルデータは、前記入力画像データによって示される文字が属するカテゴリであって複数個の文字が属する前記カテゴリを示す情報を含み、前記カテゴリに属する複数個の文字を識別する識別情報を含まず、前記カテゴリは、(1)ひらがな、(2)カタカナ、(3)ひらがなとカタカナとを含む「かな」、(4)アルファベット、(5)漢字、(6)簡体字、(7)繁体字のうちのいずれかである、前記ラベル取得部と、
前記入力画像データと前記ラベルデータとを含む入力データを機械学習モデルに入力することによって前記第1の書体とは異なる第2の書体を有する文字を示す出力画像データを生成する画像生成部と、
を備え、
前記機械学習モデルは、前記入力画像データと前記ラベルデータとを含む前記入力データに対して、畳込層を含むニューラルネットワークによって特徴データ生成処理を実行して特徴データを生成するエンコーダと、前記特徴データに対して、次元数を復元する次元復元処理を実行して前記出力画像データを生成するデコーダと、を含むモデルであって、前記特徴データ生成処理は、前記ニューラルネットワークの演算処理によって前記入力画像データの画素に対応する次元数を削減し、成分に対応する次元数を増加させるように、前記入力画像データの次元数を変更する処理であり、複数個の演算パラメータを用いて前記特徴データ生成処理および前記次元復元処理を実行するモデルであり、
前記機械学習モデルは、前記第1の書体を有する特定の文字を示す前記入力画像データが入力される場合に、前記第2の書体を有する前記特定の文字を示す前記出力画像データを生成するように、トレーニング処理によってトレーニングされた学習済みのモデルであり、
前記トレーニング処理は、
前記第1の書体を有する文字を示す学習用の前記入力画像データと、学習用の前記入力画像データに対応付けられる前記ラベルデータと、をそれぞれ含む複数個の前記入力データを前記機械学習モデルに入力することによって、前記複数個の入力データに対応する複数個の出力画像データを生成する処理と、
前記複数個の出力画像データと、前記複数個の入力画像データに対応する複数個の教師画像データと、の間の誤差値を、所定の損失関数を用いて算出する処理と、
前記誤差値が小さくなるように、前記複数個の演算パラメータを調整する処理と、
を含み、
前記複数個の教師画像データのそれぞれは、前記第2の書体を有する文字を示す、画像データ生成装置。
【請求項5】
請求項4に記載の画像データ生成装置であって、
前記出力画像データを用いて、前記第2の書体を有する文字を含む画像を示す印刷データを生成する、画像データ生成装置。
【請求項6】
画像データを生成する方法であって、
第1の書体を有する文字を示す入力画像データを取得する画像取得工程と、
前記入力画像データに対応付けられるラベルデータを取得するラベル取得工程であって、前記ラベルデータは、前記入力画像データによって示される文字が属するカテゴリであって複数個の文字が属する前記カテゴリを示す情報を含み、前記カテゴリに属する複数個の文字を識別する識別情報を含まず、前記カテゴリは、(1)ひらがな、(2)カタカナ、(3)ひらがなとカタカナとを含む「かな」、(4)アルファベット、(5)漢字、(6)簡体字、(7)繁体字のうちのいずれかである、前記ラベル取得工程と、
前記入力画像データと前記ラベルデータとを含む入力データを機械学習モデルに入力することによって前記第1の書体とは異なる第2の書体を有する文字を示す出力画像データを生成する画像生成工程と、
を備え、
前記機械学習モデルは、前記入力画像データと前記ラベルデータとを含む前記入力データに対して、畳込層を含むニューラルネットワークによって特徴データ生成処理を実行して特徴データを生成するエンコーダと、前記特徴データに対して、次元数を復元する次元復元処理を実行して前記出力画像データを生成するデコーダと、を含むモデルであって、前記特徴データ生成処理は、前記ニューラルネットワークの演算処理によって前記入力画像データの画素に対応する次元数を削減し、成分に対応する次元数を増加させるように、前記入力画像データの次元数を変更する処理であり、複数個の演算パラメータを用いて前記特徴データ生成処理および前記次元復元処理を実行するモデルであり、
前記機械学習モデルは、前記第1の書体を有する特定の文字を示す前記入力画像データが入力される場合に、前記第2の書体を有する前記特定の文字を示す前記出力画像データを生成するように、トレーニング処理によってトレーニングされた学習済みのモデルであり、
前記トレーニング処理は、
前記第1の書体を有する文字を示す学習用の前記入力画像データと、学習用の前記入力画像データに対応付けられる前記ラベルデータと、をそれぞれ含む複数個の前記入力データを前記機械学習モデルに入力することによって、前記複数個の入力データに対応する複数個の出力画像データを生成する処理と、
前記複数個の出力画像データと、前記複数個の入力画像データに対応する複数個の教師画像データと、の間の誤差値を、所定の損失関数を用いて算出する処理と、
前記誤差値が小さくなるように、前記複数個の演算パラメータを調整する処理と、
を含み、
前記複数個の教師画像データのそれぞれは、前記第2の書体を有する文字を示す、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、機械学習モデルを用いて文字を示す画像データを生成する技術に関する。
【背景技術】
【0002】
特許文献1に開示された文字フォントの作成処理方式では、標準フォントおよびユーザ筆記文字をそれぞれ複数個の部品に分割し、各部品の幅、高さ、オフセットなどの特徴を測定する。この技術では、標準フォントの特徴とユーザ筆記文字の特徴とを、ニューラルネットワークに学習させる。使用時には、使用したい標準フォントの文字の特徴をニューラルネットワークに入力すると、ユーザ筆記文字の特徴に応じた個性的フォントの特徴データが生成される。そして、出力された特徴データと標準フォントの文字とを用いて個性的フォントの文字が生成される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平5-265429号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、使用したい文字ごとに標準フォントの文字の特徴を測定する必要があり、個性的フォントの文字の生成が煩雑になる可能性があった。また、個性的フォントには、部品の幅、高さ、オフセットなどの特徴しか反映されないため、ユーザ筆記文字の特徴が十分に反映されない可能性があった。
【0005】
本明細書は、第1の書体とは異なる第2の書体を有する文字を示す出力画像データを容易に生成できる技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【0007】
[適用例1]トレーニング処理によってトレーニングされた学習済みの機械学習モデルであって、前記機械学習モデルは、入力画像データに対して複数個の演算パラメータを用いる演算処理を実行することによって、前記入力画像データの特徴の抽出と、抽出された特徴に基づく出力画像データの生成と、を行うモデルであり、前記トレーニング処理は、第1の書体を有する文字を示す入力画像データと、前記入力画像データに対応付けられるラベルデータであって文字の種別を示す前記ラベルデータと、をそれぞれ含む複数個の入力データを前記機械学習モデルに入力することによって、前記複数個の入力データに対応する複数個の出力画像データを生成する処理と、前記複数個の出力画像データと、前記複数個の入力画像データに対応する複数個の教師画像データと、を用いて、前記出力画像データと前記教師画像データとの差が小さくなるように、前記複数個の演算パラメータを調整する処理と、を含み、前記複数個の教師画像データのそれぞれは、前記第1の書体とは異なる第2の書体を有する文字を示す、学習済みの機械学習モデル。
【0008】
上記構成によれば、学習済みの機械学習モデルは、第1の書体を有する文字を示す入力画像データとラベルデータとが入力されるだけで、第2の書体を有する文字を示す出力画像データを容易に生成することができる。さらには、入力画像データとともに文字の種別を示すラベルデータが学習済みの機械学習モデルに入力されるので、機械学習モデルは、文字の種別に応じた特徴をトレーニング処理において適切に学習できる。この結果、学習済みの機械学習モデルは、文字の種別に応じた特徴を反映した出力画像データを生成することができる。
[適用例2]
適用例1に記載の学習済みの機械学習モデルであって、
前記第2の書体を有する文字は、手書き文字であり、
前記トレーニング処理は、
複数個の領域のそれぞれに前記手書き文字が記入された原稿を示す原稿画像データであってイメージセンサを用いて生成される前記原稿画像データを取得する処理と、
前記原稿画像データを用いて、前記複数個の領域に対応する複数個の手書き文字画像データを取得する処理と、
を含み、
前記複数個の教師画像データは、前記複数個の手書き文字画像データである、学習済みの機械学習モデル。
[適用例3]
適用例1または2に記載の学習済みの機械学習モデルであって、
前記ラベルデータは、複数個の文字が属するカテゴリを示す情報を含み、前記カテゴリに属する複数個の文字のそれぞれを識別する識別情報を含まない、学習済みの機械学習モデル。
[適用例4]
適用例3に記載の学習済みの機械学習モデルであって、
「漢字」を示す前記入力画像データに対応付けられる前記カテゴリを示す情報は、「漢字」を示す情報であり、
「かな」を示す前記入力画像データに対応付けられる前記カテゴリを示す情報は、「かな」を示す情報である、学習済みの機械学習モデル。
[適用例5]
適用例3または4に記載の学習済みの機械学習モデルであって、
前記複数個の入力画像データは、
第1のカテゴリを示す前記ラベルデータに対応付けられる第1の画像データであって、前記第1のカテゴリに属する第1の文字を示す前記第1の画像データと、
第2のカテゴリを示す前記ラベルデータに対応付けられる第2の画像データであって、前記第2のカテゴリに属し、かつ、前記第1の文字と形状が類似する第2の文字を示す前記第2の画像データと、
を含む、学習済みの機械学習モデル。
【0009】
[適用例]画像データ生成装置であって、第1の書体を有する文字を示す入力画像データを取得する画像取得部と、前記入力画像データに対応付けられるラベルデータであって前記第1の文字の種別を示す前記ラベルデータを取得するラベル取得部と、前記入力画像データと前記ラベルデータとを含む前記入力データを機械学習モデルに入力することによって前記第1の書体とは異なる第2の書体を有する文字を示す前記出力画像データを生成する画像生成部であって、前記機械学習モデルは、前記入力画像データの特徴を抽出し、抽出された特徴に基づいて前記出力画像データを生成するモデルである、前記画像生成部と、を備える画像データ生成装置。
【0010】
上記構成によれば、画像データ生成装置は、第1の書体を有する文字を示す入力画像データとラベルデータとが入力されるだけで、第2の書体を有する文字を示す出力画像データを容易に生成することができる。さらには、入力画像データとともに文字の種別を示すラベルデータが入力されるので、文字の種別に応じた特徴を反映した出力画像データを生成することができる。
[適用例7]
適用例6に記載の画像データ生成装置であって、
前記出力画像データを用いて、前記第2の書体を有する文字を含む画像を示す印刷データを生成する、画像データ生成装置。



【0011】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、上記の機械学習モデルのトレーニング方法、上記装置、方法の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【0012】
図1】本実施例の手書文字生成システム1000の構成を示すブロック図。
図2】入力画像IIと出力画像OIとの一例を示す図。
図3】生成ネットワークGNの構成を示すブロック図。
図4】トレーニング処理のうち、複合機200が実行する処理のフローチャート。
図5】シートデータSDによって示される画像の一例を示す第1の図。
図6】シートデータSDによって示される画像の一例を示す第2の図。
図7】記入済みの記入シートESと、属性データADと、の一例を示す図。
図8】トレーニング処理のうち、サーバ100が実行する処理のフローチャート。
図9】データ生成処理のフローチャート。
図10】宛名情報TXと、印刷画像PIと、の一例を示す図。
【発明を実施するための形態】
【0013】
A.実施例
A-1.手書文字生成システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、本実施例の手書文字生成システム1000の構成を示すブロック図である。手書文字生成システム1000は、本実施例の画像データ生成装置としてのサーバ100と、複合機200と、を備えている。
【0014】
サーバ100は、インターネットITに接続された計算機である。サーバ100は、サーバ100のコントローラとしてのCPU110と、RAMなどの揮発性記憶装置120と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置130と、通信インタフェース(IF)140と、を備えている。通信インタフェース140は、インターネットITと接続するためのインタフェースである。
【0015】
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、コンピュータプログラムPGと、フォントデータFDと、シートデータSDと、シートデータSDと対応づけられた属性データADと、が格納されている。
【0016】
コンピュータプログラムPGとフォントデータFDとシートデータSDと属性データADとは、複合機200の製造者によって提供され、サーバ100にアップロードされる。CPU110は、コンピュータプログラムPGを実行することにより、複合機200と協働して、後述するトレーニング処理とデータ生成処理を実行する。フォントデータFDは、既存の公知のフォント(例えば、明朝体)の文字を示すデータである。シートデータSDと属性データADとは、後述するトレーニング処理にて用いられる。シートデータSDと属性データADとについては、後述する。
【0017】
コンピュータプログラムPGは、後述する生成ネットワーク(generator)GNの機能をCPU110に実現させるコンピュータプログラムをモジュールとして含んでいる。
【0018】
複合機200は、CPUやメモリを含む制御部210と、読取部220と、印刷部230と、を備えている。制御部210は、読取部220と印刷部230とを制御する。読取部220は、光電変換素子(例えば、CCD、CMOS)を備える一次元イメージセンサを用いて光学的に原稿を読み取ることによって原稿を示すスキャンデータを生成する。印刷部230は、インクジェット方式や電子写真方式などの印刷方式に従って印刷材としてのインクやトナーを用いて用紙などの印刷媒体上に画像を印刷する。複合機200は、インターネットITを介してサーバ100と通信可能に接続されている。
【0019】
A-2.生成ネットワークGNの構成
図1の下側には、生成ネットワークGNの概略図が示されている。生成ネットワークGNは、CPU110がコンピュータプログラムPGを実行することによって実現される。図1に示すように、生成ネットワークGNには、入力データとして、入力画像データIDとラベルデータLDとからなるデータペアが入力される。
【0020】
図2は、入力画像IIと出力画像OIとの一例を示す図である。入力画像データIDは、入力画像IIを示す画像データである。本実施例の入力画像IIは、既存のフォント(例えば、明朝体)で文字を示す画像データである。CPU110は、フォントデータFDにて規定されている文字を示す入力画像データIDを、フォントデータFDに基づいて生成することができる。ラベルデータLDは、対応する入力画像データIDによって示される文字が属するカテゴリを示す情報である。図2(A)には、一例として、入力画像II1~II6と、対応するラベルデータLDa~LDcと、が図示されている。漢字の「花」、「力(ちから)」を示す入力画像II1、II2には、カテゴリが「漢字」であることを示すラベルデータLDaが対応付けられている。ひらがなの「か」を示す入力画像II3には、カテゴリが「ひらがな」であることを示すラベルデータLDbが対応付けられている。カタカナの「カ」を示す入力画像II4には、カテゴリが「カタカナ」であることを示すラベルデータLDcが対応付けられている。カテゴリは、想定される入力画像IIによって示される文字が漏れなく、1個のカテゴリに属するように設定される。例えば、本実施例では、「漢字」、「ひらがな」、「カタカナ」の3種のカテゴリに加えて、例えば、アルファベットとアラビア数字が属するカテゴリ「英数字」と、これらの4種のカテゴリのいずれにも属さない文字(例えば、算術記号などの文字)が属するカテゴリ「その他」と、が設定されている(図示省略)。
【0021】
なお、ラベルデータLDは、各カテゴリに属する複数個の文字のそれぞれを識別する識別情報を含まない。例えば、漢字の「花」、「力」を示す入力画像II1、II2に対応付けられるラベルデータLDaは、包括的なカテゴリである「漢字」を示す情報(例えば、「漢字」に割り当てられた特定のデータ)を含むが、「花」や「力」を識別する情報は含まない。
【0022】
生成ネットワークGNは、オートエンコーダとも呼ばれるニューラルネットワークである。生成ネットワークGNは、入力画像データIDの特徴(入力画像IIの特徴)を抽出し、抽出された特徴に基づいて出力画像OIを示す出力画像データODを生成する(図1)。出力画像データODによって示される出力画像OIは、対応する入力画像IIに示される特定の文字を手書きの書体で示す。
【0023】
図2(B)には、図2(A)の入力画像II1~II4に対応する出力画像OI1~OI4が図示されている。図2(B)に示すように、「花」、「力(ちから)」、「か」、「カ(かたかな)」を示す入力画像II1~II4に対応する出力画像OI1~OI4は、それぞれ、「花」、「力(ちから)」、「か」、「カ(かたかな)」の手書き文字を示す。このように、生成ネットワークGNは、特定の文字の書体を、特定のフォントの書体から、手書きの書体に変換することができる。これは、後述するトレーニング処理によって、生成ネットワークGNがトレーニングされるためである。
【0024】
本実施例では、入力画像データIDおよび出力画像データODは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB値によって画素ごとの色を表すRGB画像データである。RGB値は、3個の色成分の階調値(以下、成分値とも呼ぶ)、すなわち、R値、G値、B値を含むRGB表色系の色値である。R値、G値、B値は、例えば、所定の階調数(例えば、256)の階調値である。入力画像データIDおよび出力画像データODのデータの次元数、すなわち、入力画像IIと出力画像OIとの画素数は、互いに等しい。
【0025】
図3は、生成ネットワークGNの構成を示すブロック図である。図1図3に示すように、生成ネットワークGNは、エンコーダECとデコーダDCとを含んでいる。
【0026】
エンコーダECは、入力画像データIDとラベルデータLDとからなる入力データに対して、複数個の演算パラメータPeを用いて、次元削減処理を実行して、入力画像データIDの特徴(すなわち、入力画像IIの特徴)を示す特徴データCDを生成する。本実施例では、入力画像データIDは、(256×256)個の画素のそれぞれの3個の成分値(R値、G値、B値)を含むので、(256×256×3)個の値を含むデータ、すなわち、(256×256×3)次元のデータである。また、ラベルデータLD(カテゴリを示す情報)は、(256×256×1)個の値を含むデータ、すなわち、(256×256×1)次元のデータである。である。したがって、本実施例の入力データは、(256×256×4)次元のデータである。特徴データCDは、本実施例では、(16×16×128)次元のデータである。このように、次元削減処理では、入力画像データIDの次元数が削減される。
【0027】
図3の左側には、エンコーダECの構成が示されている。エンコーダECは、入力層EL_0と、複数個の畳込層EL_1~畳込層EL_4を有するニューラルネットワークである。
【0028】
入力層EL_0は、入力データ(入力画像データIDとラベルデータLD)が入力される層である。1番目の畳込層EL_1には、入力層EL_0に入力された入力データがそのまま入力される。畳込層EL_1は、(256×256×4)次元の入力データに対して、後述する演算処理を実行して(A×B×C)次元のデータを生成する(A、B、Cは正の整数)。
【0029】
k番目(kは、2~4の整数)の畳込層EL_kには、(k-1)番目の畳込層EL_(k-1)によって生成される(Ak-1×Bk-1×Ck-1)次元のデータに対して、所定の後処理(後述)を実行して得られる(Ak-1、Bk-1、Ck-1)次元の処理済データが入力される。畳込層EL_kは、(Ak-1×Bk-1×Ck-1)次元の処理済データに対して、後述する演算処理を実行して(A×B×C)次元のデータを生成する(A、B、Cは正の整数)。
【0030】
各畳込層EL_1~EL_4が実行する演算処理は、畳込処理(convolution)とバイアスの加算処理とを含む。畳込処理は、入力されたデータに対して、(p×q×r)次元のs個のフィルタを順次に適用して入力されたデータとフィルタとの相関を示す相関値を算出する処理である。各フィルタを適用する処理では、フィルタをスライドさせながら複数個の相関値が順次に算出される。1個のフィルタは、(p×q×r)個の重みを含んでいる。バイアスの加算処理は、算出された相関値に、1個のフィルタに対して1個ずつ準備されたバイアスを加算する処理である。s個のフィルタに含まれる(p×q×r×s)個の重みと、s個のフィルタに対応するs個のバイアスと、は、上述した複数個の演算パラメータPeであり、後述するトレーニング処理において調整される値である。
【0031】
各畳込層EL_1~EL_4によって生成されるデータの各値は、上述した相関値にバイアスを加えた値である。各畳込層EL_1~EL_4によって生成されるデータに含まれるデータの個数(例えば、畳込層EL_1の場合は(A×B×C))は、畳込処理におけるストライド(フィルタをスライドさせる量)と、フィルタの個数sと、によって決定される。
【0032】
畳込層EL_1によって生成されるデータの各値は、上述した後処理として、活性化関数に入力されて変換される。本実施例では、活性化関数には、いわゆるLeakyReLU(Leaky Rectified Linear Unit)が用いられる。
【0033】
畳込層EL_2~畳込層EL_4によって生成されるデータの各値は、上述した後処理として、バッチノーマライゼーション(Batch Normalization)によって変換された後に、さらに、活性化関数に入力されて変換される。バッチノーマライゼーションは、後述するトレーニング処理では、用いられる入力データの集合(バッチ)分について、各値の平均と分散を計算して、各値を正規化する処理である。使用時(後述するデータ生成処理時)には、トレーニング処理時にバッチごとに算出された平均と分散の移動平均値を用いて、各値が正規化される。
【0034】
畳込層EL_4によって生成されるデータに対して、上述した後処理を実行して得られる処理済データが、上述した特徴データCDである。
【0035】
なお、本実施例にて、各畳込層EL_1~EL_4によって生成されるデータの次元数(A×B×C)~(A×B×C)は、以下の通りである。
(A×B×C)=(128×128×32)
(A×B×C)=(64×64×64)
(A×B×C)=(32×32×128)
(A×B×C)=(16×16×128)
【0036】
デコーダDCは、エンコーダECによって生成された特徴データCDに対して、複数個の演算パラメータPdを用いて、次元復元処理を実行して、上述した出力画像データODを生成する。本実施例では、特徴データCDは、上述したように(16×16×128)次元のデータである。本実施例では、出力画像データODは、入力画像データIDと同様に、(256×256×3)個の値を含むデータ、すなわち、(256×256×3)次元のデータである。本実施例では、このように、本実施例の次元復元処理では、特徴データCDの次元数が復元される。
【0037】
図3の右側には、デコーダDCの構成が示されている。デコーダDCは、複数個の転置畳込層DL_1~転置畳込層DL_4を有するニューラルネットワークである。
【0038】
1番目の転置畳込層DL_1には、特徴データCDが入力される。転置畳込層DL_1は、特徴データCDに対して、後述する演算処理を実行して(D×E×F)次元のデータを生成する(D、E、Fは正の整数)。
【0039】
m番目(mは、2~4の整数)の転置畳込層DL_mには、(m-1)番目の転置畳込層DL_(m-1)によって生成される(Dm-1、Em-1、Fm-1)次元のデータに対して所定の後処理(後述)を実行して得られる(Dm-1、Em-1、Fm-1)次元の処理済データが入力される。転置畳込層DL_mは、入力される処理済データに対して、後述する演算処理を実行して(D×E×F)次元のデータを生成する(D、E、Fは正の整数)。
【0040】
各転置畳込層DL_1~DL_4が実行する演算処理は、転置畳込処理(transposed convolution)とバイアスの加算処理とを含む。転置畳込処理は、入力されたデータに対して、ストライドに応じて適宜に値(例えばゼロの値)を追加して次元数を増加させた後に、上述した畳込処理と同様に(p×q×r)次元のフィルタを用いた畳み込み演算を行う処理である。バイアスの加算処理は、転置畳込演算で算出された相関値に、1個のフィルタに対して1個ずつ準備されたバイアスを加算する処理である。s個のフィルタに含まれる(p×q×r×s)個の重みと、s個のフィルタに対応するs個のバイアスと、は、上述した複数個の演算パラメータPdであり、後述するトレーニング処理において調整される値である。
【0041】
各転置畳込層DL_1~DL_4によって生成されるデータの各値は、上述した相関値にバイアスを加えた値である。各転置畳込層DL_1~DL_4によって生成されるデータに含まれるデータの個数(例えば、転置畳込層DL_1の場合は(D×E×F))は、転置畳込処理におけるストライド(ゼロ等の値を追加する量)と、フィルタの個数sと、によって決定される。
【0042】
転置畳込層DL_1によって生成されるデータの各値は、上述した後処理として、上述したバッチノーマライゼーションによって変換される。そして、バッチノーマライゼーションによって変換された各値は、さらに後処理として、活性化関数に入力されて変換される。活性化関数には、いわゆるReLU(Rectified Linear Unit)が用いられる。
【0043】
転置畳込層DL_2、DL_3によって生成されるデータの各値は、上述した後処理として、上述したバッチノーマライゼーションによって変換される。そして、トレーニング処理では、バッチノーマライゼーションによって変換された各値は、さらに後処理として、ドロップアウトによって変換された後に、活性化関数に入力されて変換される。ドロップアウトは、過学習を抑制するために、ランダムに選択された一部の値を無効化(0にする)する処理である。活性化関数には、上述のReLUが用いられる。使用時(後述のデータ生成処理)では、ドロップアウトは行われず、バッチノーマライゼーションによって変換された各値は、活性化関数に入力されて変換される。
【0044】
転置畳込層DL_4によって生成されるデータの各値は、上述した後処理として活性化関数に入力されて変換される。活性化関数には、いわゆるシグモイドが用いられる。後処理後の(D×E×F)次元のデータは、上述した出力画像データODである。したがって、転置畳込層DL_4によって生成されるデータの次元数(D×E×F)は、出力画像データODの次元数(256×256×3)と等しい。
【0045】
なお、本実施例にて、各転置畳込層DL_1~DL_4によって生成されるデータの次元数(D×E×F)~(D×E×F)は、以下の通りである。
(D×E×F)=(32×32×32)
(D×E×F)=(64×64×32)
(D×E×F)=(128×128×32)
(D×E×F)=(256×256×3)
【0046】
A-3.トレーニング処理
トレーニング処理によって、上述した生成ネットワークGNは、入力画像データIDとラベルデータLDとからなる入力データが入力された場合に、所望の出力画像データODを生成できるように、トレーニングされる。複合機200とサーバ100とは、協働してトレーニング処理を実行する。
A-3-1.複合機の処理
図4は、トレーニング処理のうち、複合機200が実行する処理のフローチャートである。この処理は、例えば、複合機200のユーザの開始指示に基づいて開始される。
【0047】
S10では、複合機200の制御部210は、シートデータSDをサーバ100から受信する。具体的には、制御部210は、サーバ100にシートデータSDの要求を送信する。サーバ100は、該要求に対する応答としてシートデータSDを複合機200に送信する。これによって、制御部210は、シートデータSDを受信する。
【0048】
図5図6は、シートデータSDによって示される画像の一例を示す図である。シートデータSDは、複数個のサンプル画像SPIと、複数個の空欄画像EPIと、を示すデータである。複数個のサンプル画像SPIと、複数個の空欄画像EPIとは、一対一で対応している。例えば、図5(A)の漢字用のサンプル画像SPIaと、図5(B)の漢字用の空欄画像EPIaと、は対応している。図6(A)のかな用のサンプル画像SPIbと、図6(B)のかな用の空欄画像EPIbと、は対応している。
【0049】
サンプル画像SPI(例えば、SPIa、SPIb)は、識別番号NMと、既存のフォントの文字を含む複数個の文字領域CAと、を含んでいる。空欄画像EPI(例えば、EPIa、EPIb)は、識別番号NMと、空欄となっている複数個の記入領域EAと、を含んでいる。識別番号NMは、サンプル画像SPIと該サンプル画像SPIと対応する空欄画像EPIとのペアごとに付加された番号であり、ペアごとに異なる。サンプル画像SPIの各文字領域CAの文字は、予め領域ごとに定められたカテゴリに属する文字である。サンプル画像SPIに示される文字は、カテゴリに属する全ての文字を含まず、カテゴリに属する一部の文字のみである。例えば、「漢字」のカテゴリに属する文字は、6000字以上であるが、サンプル画像SPIに示される文字は、例えば、そのうちの数百字である。「ひらがな」、「カタカナ」のカテゴリに属する文字は、約50字であるが、サンプル画像SPIに示される文字は、例えば、そのうちの10~30字である。
【0050】
S20では、制御部210は、シートデータSDを用いて、印刷部230に、シートデータSDによって示される複数個のサンプル画像SPIと複数個の空欄画像EPIとを用紙に印刷させる。これによって、複数個のサンプル画像SPIが印刷された複数枚のサンプルシートSSと、複数個の空欄画像EPIが印刷された複数枚の記入シートESと、が作成される。図5図6は、サンプルシートSSa、SSb、記入シートESa、ESbを示す図とも言うことができる。
【0051】
ユーザは、複数枚のサンプルシートSSを参照しながら、複数枚の記入シートESの複数個の記入領域EAに、手書き文字を記入する。各記入領域EAに記入領域EAに記入すべき文字は、サンプルシートの対応する文字領域CAに示された文字である。図7は、記入済みの記入シートESと、属性データADと、の一例を示す図である。図7(A)に示すように、記入済みの記入シートESa、ESbには、複数個の記入領域EAに手書きで文字が記入されている。
【0052】
ここで、複数個のサンプル画像SPI(複数枚のサンプルシートSS)に示される文字、換言すれば、ユーザが複数枚の記入シートESに記入すべき文字は、カテゴリに属する全ての文字を含まず、カテゴリに属する一部の文字のみである。例えば、「漢字」のカテゴリに属する文字は、5000字以上であるが、サンプル画像SPIに示される文字は、例えば、そのうちの数百字である。「ひらがな」、「カタカナ」のカテゴリに属する文字は、約50字であるが、サンプル画像SPIに示される文字は、例えば、そのうちの10~30字である。記入シートESに記入すべき文字の個数が過度に少ないと、ユーザの手書きの書体の特徴が十分に反映された出力画像データODを出力できるように生成ネットワークGNをトレーニングできない可能性がある。記入シートESに記入すべき文字の個数が過度に多い場合には、ユーザの記入の負担が過度に大きくなる可能性がある。これらのバランスを考慮して、記入シートESに記入すべき文字の個数が決定されている。また、記入シートESに記入すべき文字の個数や種類は、漢字の部首などの特徴的な要素を網羅するように決定されることが好ましい。
【0053】
図4のS30では、制御部210は、読取部220に記入済みの複数枚の記入シートESを読み取らせることによって、読取部220に複数枚の記入済みの記入シートESを示すスキャンデータを生成させる。図7(A)は、該スキャンデータによって示されるスキャン画像SIa、SIbを示す図とも言うことができる。スキャンデータは、例えば、RGB画像データである。
【0054】
S40では、制御部210は、生成されたスキャンデータをサーバ100に送信すると複合機200の処理を終了する。
【0055】
A-3-2.サーバの処理
図8は、トレーニング処理のうち、サーバ100が実行する処理のフローチャートである。S100では、サーバ100のCPU110は、図4のS40にて複合機200から送信されるスキャンデータを受信する。スキャンデータは、上述したように、複数個のスキャン画像SI(例えば、図7(A)のSIa、SIb)を示す。
【0056】
S105では、CPU110は、スキャンデータを用いて、複数個のスキャン画像SIに含まれる複数個の記入領域EAを特定する。記入領域EAの特定は、属性データAD(図1)を用いて実行される。属性データADは、各空欄画像EPIに対応する属性情報AIを含んでいる。図7(B)には、空欄画像EPIa、EPIbに対応する属性情報AIa、AIbが示されている。
【0057】
属性情報AIは、対応する空欄画像EPIに含まれる識別番号NMを含む。この識別番号NMは、空欄画像EPIに対応するスキャン画像SIにも含まれるので、CPU110は、スキャンデータを解析して、スキャン画像SIに含まれる識別番号NMを特定する。これによって、CPU110は、スキャン画像SIごとに、参照すべき属性情報AIを特定できる。例えば、CPU110は、図7(A)のスキャン画像SIaに含まれる識別番号NMとして、「0001」を特定することで、該識別番号「0001」を含む属性情報AIa(図7(B))を、参照すべき属性情報として特定する。
【0058】
属性情報AIは、空欄画像EPIaに含まれる複数個の記入領域EAに関する領域情報、換言すれば、該空欄画像EPIa対応するスキャン画像SIに含まれる複数個の記入領域EAに関する領域情報を含む(図7(B))。領域情報は、該複数個の記入領域EAに記入されるべき文字のカテゴリ(例えば、「漢字」、「ひらがな」、「かたかな」)を示す情報を含む。領域情報は、該複数個の記入領域EAを特定するための座標リストを含む。座標リストは、例えば、矩形の記入領域EAの左上と右下の頂点の位置(座標)を、空欄画像EPIの特定位置(例えば、左上の頂点)を基準とする座標系で示す座標情報である。空欄画像EPIにおける記入領域EAの位置は、スキャン画像SIにおける記入領域EAの位置と等しいので、CPU110は、これらの領域情報に基づいてスキャン画像SI上における複数個の記入領域EAを特定する。
【0059】
S110では、CPU110は、スキャンデータから、複数個の記入領域EAのそれぞれに対応する部分画像データを、教師画像データTDとして取得する。教師画像データTDは、例えば、上述した入力画像データIDと同様に、(256×256×3)次元のデータである。教師画像データTDは、入力画像データIDによって示される入力画像IIと同じ画素数の画像を示すRGB画像データである。なお、教師画像データTDは、取得された部分画像データに対して、所定の処理(例えば、ノイズの除去処理や二値化処理やスムージング処理)が実行された後の画像データであっても良い。
【0060】
S115では、CPU110は、属性データADとフォントデータFD(図1)を用いて、複数個の教師画像データTDに対応する複数個の入力画像データIDを生成する。図7(B)に示すように、属性データADの各属性情報AIの領域情報は、文字リストを含む。文字リストは、各記入領域EAに記入されるべき文字を示す文字コードのリストである。この文字リストは、記入領域EAに対応するサンプル画像SPIの文字領域CAに含まれる文字のリストとも言うことができる。CPU110は、文字リストを参照して、各教師画像データTDに対応する記入領域EAに記入されるべき文字を、教師画像データTDによって示される文字として特定する。CPU110は、フォントデータFDを用いて、特定された文字を既存のフォントで示す画像データを、該教師画像データTDに対応する入力画像データIDとして生成する。
【0061】
S120では、CPU110は、必要なラベルデータLDを生成する。例えば、CPU110は、属性データADの各属性情報AIに含まれるカテゴリの情報を参照して、教師画像データTDおよび入力画像データIDによって示される文字が属するカテゴリを示すラベルデータLDを生成する。例えば、「漢字」、「ひらがな」、「カタカナ」、「英数字」、「その他」などのカテゴリを示すラベルデータLDが生成される。
【0062】
S100~S120の処理を終えた時点で、トレーニングに必要なデータ群、すなわち、複数個の入力画像データIDと、該複数個の入力画像データIDと一対一で対応する複数個の教師画像データTDと、該複数個の入力画像データIDによって示される文字のカテゴリを示すラベルデータLDと、の準備が完了する。
【0063】
S130では、CPU110は、生成ネットワークGNの複数個の演算パラメータPe、Pdを初期化する。例えば、これらの演算パラメータPe、Pdの初期値は、同一の分布(例えば、正規分布)から独立に取得された乱数に設定される。
【0064】
S135では、CPU110は、S115にて生成された複数個の入力画像データの中から、バッチサイズ分の入力画像データIDを選択する。複数個の入力画像データIDは、V個(Vは2以上の整数)ずつの入力画像データIDをそれぞれ含む複数個のグループ(バッチ)に分割される。CPU110は、これらの複数個のグループから1個のグループを順次に選択することによって、V個の使用すべき入力画像データIDを選択する。これに代えて、V個ずつの入力画像データIDは、複数個の入力画像データIDから、毎回、ランダムに選択されても良い。
【0065】
S140では、CPU110は、選択されたV個の入力画像データIDを、それぞれ、対応するラベルデータLDとともに、生成ネットワークGNに入力して、V個の出力画像データODを生成する。
【0066】
S145では、CPU110は、V個の出力画像データODのそれぞれについて、出力画像データODと、対応する教師画像データTDと、の間の誤差値EVを算出する。出力画像データODに対応する教師画像データTDは、該出力画像データODを生成する際に生成ネットワークGNに入力された入力画像データIDと対応する教師画像データTDである。誤差値EVは、所定の損失関数に基づいて算出される。例えば、誤差値EVの算出には、平均二乗誤差(MSE(Mean Squared Error))が用いられる。誤差値EVは、出力画像データODと教師画像データTDの差分が小さくなるほど小さくなる。
【0067】
S150では、CPU110は、V個の誤差値EVを用いて、生成ネットワークGNの複数個の演算パラメータPe、Pdを調整する。具体的には、CPU110は、誤差値EVが小さくなるように、すなわち、出力画像データODと教師画像データTDとの差分が小さくなるように、所定のアルゴリズムに従って演算パラメータPe、Pdを調整する。所定のアルゴリズムには、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。
【0068】
S155では、CPU110は、トレーニングが完了したか否かを判断する。本実施例では、例えば、S135~S150の処理が所定回数だけ繰り返された場合に、トレーニングが完了されたと判断される。これに代えて、例えば、CPU110は、複合機200のユーザからの完了指示が複合機200から取得された場合にトレーニングが完了したと判断しても良い。例えば、CPU110はトレーニング用に用いられた入力画像データIDとは別の複数個のテスト用の入力画像データIDを、生成ネットワークGNに入力して、複数個の出力画像データODを生成する。CPU110は、出力画像データODを複合機200に送信して、出力画像データODによって示される文字を複合機200の表示部に表示させる。ユーザは、出力画像データODによって示される文字が、十分に自分の手書きの書体で表現されているか否かを確認する。ユーザは、確認結果に応じて、複合機200に、トレーニングの完了指示または継続指示を入力する。サーバ100のCPU110は、これらの指示に基づいて、トレーニングが完了したか否かを判断しても良い。
【0069】
トレーニングが完了していないと判断される場合には(S155:NO)、CPU110は、S135に処理を戻す。トレーニングが完了したと判断される場合には(S155:YES)、CPU110は、生成ネットワークGNのトレーニング処理を終了する。このトレーニング処理が終了した時点で、生成ネットワークGNは、演算パラメータPe、Pdが調整された学習済みモデルになっている。したがって、このトレーニング処理は、学習済みの生成ネットワークGNを生成(製造)する処理である、と言うことができる。
【0070】
A-4.データ生成処理
上述したトレーニング処理が完了して、サーバ100に、複合機200のユーザの手書きの書体で文字を示す出力画像データODを生成できるネットワークGNが、サーバ100に生成されると、複合機200のユーザは、データ生成処理を利用することができる。本実施例のデータ生成処理は、ユーザの手書きの書体を有する文字を含む宛名画像を示す印刷データを生成し、該印刷データによって示される画像をハガキに印刷する処理である。図9は、データ生成処理のフローチャートである。
【0071】
A-4-1.複合機の処理
図9(A)には、データ生成処理のうち、複合機200が実行する処理のフローチャートが示されている。この処理は、例えば、複合機200のユーザの開始指示に基づいて開始される。
【0072】
S210では、複合機200の制御部210は、ユーザから宛名情報TXを取得する。図10は、宛名情報TXと、印刷画像PIと、の一例を示す図である。図10(A)の宛名情報TXは、郵便番号と住所と氏名とを示す文字情報(テキストデータ)である。宛名情報TXは、例えば、複合機200のボタンやタッチパネルなどの操作部(図示省略)を介して、ユーザによって入力される。
【0073】
S220では、制御部210は、宛名情報TXをサーバ100に送信する。S230では、制御部210は、サーバ100から印刷画像PIを示す印刷データを受信する。例えば、制御部210は、S220にてサーバ100に送信した宛名情報TXに対する応答として、印刷データを受信する。印刷データは、後述するサーバの処理(図9(B))をサーバ100のCPU110が実行することによって生成される。
【0074】
図10(B)の印刷画像PIは、図9(A)の宛名情報TXに示される文字を手書きの書体で示す文字、具体的には、漢字TXIa、ひらがなTXIb、数字TXIcを含んでいる。
【0075】
S240では、制御部210は、印刷データを用いて、印刷部230に、印刷画像PIを用紙(例えば、ハガキ)に印刷させる。これによって、宛名がユーザの手書きの書体で記載されたハガキが作成される。
【0076】
A-4-2.サーバの処理
図9(B)には、データ生成処理のうち、サーバ100が実行する処理のフローチャートが示されている。S310では、サーバ100のCPU110は、図9(A)のS220にて複合機200から送信される宛名情報TXを受信する。
【0077】
S320では、CPU110は、宛名情報TXとフォントデータFD(図1)とを用いて、複数個の入力画像データIDを生成する。入力画像データIDは、宛名情報TXに含まれる各文字について生成される。生成される1個の入力画像データIDは、宛名情報TXに含まれる1つの文字を既存のフォントで示す。
【0078】
S330では、生成された複数個の入力画像データIDに対応するラベルデータLDを生成する。具体的には、各入力画像データIDによって示される文字が属するカテゴリを示すラベルデータLDが生成される。例えば、図9(A)の宛名情報TXは、漢字(例えば、「山」「田」)、ひらがな(例えば、「か」)、英数字(例えば、「1」、「2」)を含むので、「漢字」、「ひらがな」、「英数字」を示すラベルデータLDが生成される。ここで、生成されるラベルデータLDは、トレーニング処理(図8)で用いられたラベルデータLDと同じデータである。
【0079】
S340では、CPU110は、S320にて生成された複数個の入力画像データIDを、それぞれ、対応するラベルデータLDとともに、生成ネットワークGNに入力して、複数個の出力画像データODを生成する。生成される複数個の出力画像データODは、それぞれ、宛名情報TXに含まれる1つの文字をユーザの手書きの書体で示す画像である。
【0080】
S350では、CPU110は、S340にて生成された複数個の出力画像データODを用いて、印刷データを生成する。例えば、CPU110は、複数個の出力画像データODのそれぞれに対して、所定の調整処理、例えば、拡大縮小処理やスムージング処理を実行して、図10(B)の印刷画像PIに配置すべき文字、すなわち、漢字TXIa、ひらがなTXIb、数字TXIcを示す画像データを生成する。CPU110は、これらの画像データと、予め準備されたテンプレートデータ(図示省略)と、を用いて、印刷データを生成する。生成される印刷データは、テンプレート画像に漢字TXIa、ひらがなTXIb、数字TXIcが配置された印刷画像PI(図10(B))を示す。
【0081】
S360では、CPU110は、生成された印刷データを複合機200に送信して、処理を終了する。
【0082】
以上説明した本実施例によれば、データ生成処理に用いられる学習済みの生成ネットワークGNは、図4図8のトレーニング処理によってトレーニングされている。このトレーニング処理は、既存のフォントの書体を有する文字を示す入力画像データID(図2)と、文字の種別を示すラベルデータLD(図2)と、をそれぞれ含む複数個の入力データを、生成ネットワークGNに入力することによって、複数個の出力画像データODを生成する処理(図8のS140)と、複数個の出力画像データODと複数個の教師画像データTDとを用いて、出力画像データODと教師画像データTDとの差が小さくなるように、複数個の演算パラメータPe、Pdを調整する処理(図8のS145、S150)と、を含む。複数個の教師画像データTDのそれぞれは、既存のフォントの書体とは異なる手書きの書体を有する文字を示す(図7図8のS110など)。この結果、学習済みのネットワークGNは、既存のフォントの書体を有する文字を示す入力画像データIDとラベルデータLDとが入力されるだけで、手書きの書体を有する文字を示す出力画像データODを容易に生成することができる。さらには、入力画像データIDとともに文字の種別を示すラベルデータLDがトレーニング処理にて生成ネットワークGNに入力されるので、生成ネットワークGNは、文字の種別に応じた特徴を適切に学習できる。したがって、学習済みの生成ネットワークGNは、文字の種別に応じた特徴を反映した出力画像データODを生成することができる。
【0083】
また、本実施例では、例えば、6000字以上ある文字のうちの数百字分の入力画像データIDを学習するだけで、学習済みの生成ネットワークGNは、あらゆる文字について、手書きの書体を有する文字を示す出力画像データODを生成できる。例えば、従来では、新たな書体のデータ(例えば、フォントデータ)を作成するためには、6000字以上の文字について、一字ずつ書体のデータを作成する必要があり、膨大な作業量と時間とを要していた。このために、例えば、多数のユーザの一人一人について、各ユーザの筆跡の特徴を反映するように手書きの書体のデータを生成することは、困難であった。本実施例によれば、新たな書体のデータを作成するための負荷を大幅に軽減できるので、例えば、サーバ100を利用することで、多数のユーザのそれぞれが、自身の筆跡の特徴が反映された手書きの書体のデータを生成することができる。
【0084】
さらに、図8のトレーニング処理は、複数個の記入領域EAのそれぞれに手書き文字が記入された原稿である記入シートESを示すスキャンデータを取得する処理(図8のS100)と、スキャンデータを用いて、複数個の記入領域EAに対応する複数個の手書き文字画像データを、複数個の教師画像データTDとして取得する処理(図8のS105、S110)と、を含む。これにより、ユーザの手書きの書体の文字を示す教師画像データTDを容易に取得できる。この結果、トレーニング処理において、ユーザの手書きの書体の文字を示す適切な教師画像データTDを用いて、生成ネットワークGNをトレーニングできる。したがって、上記構成によれば、学習済みの生成ネットワークGNは、手書き文字を示す出力画像データを容易に生成することができる。
【0085】
さらに、本実施例では、ラベルデータLDは、複数個の文字が属するカテゴリ(例えば、「漢字」、「ひらがな」)を示す情報を含み、カテゴリに属する複数個の文字のそれぞれを識別する識別情報を含まない。この結果、生成ネットワークGNは、文字のカテゴリに応じた特徴をトレーニング処理において適切に学習できる。この結果、学習済みの生成ネットワークGNは、文字のカテゴリに応じた特徴が反映された出力画像データODを生成することができる。例えば、手書き文字の書体は、カテゴリに応じて異なる特徴を有する場合がある。例えば、ユーザによっては、手書きの「漢字」は角張った書体になるが、「ひらがな」や「カタカナ」は柔らかな丸みを帯びた書体になる場合がある。本実施例では、トレーニング時に、入力画像データIDとともにカテゴリを示すラベルデータLDがネットワークGNに入力されるので、ネットワークGNは、カテゴリごとに適切に書体の特徴を学習できる。また、データ生成処理時には、入力画像データIDとともにカテゴリを示すラベルデータLDがネットワークGNに入力されるので、学習済みの生成ネットワークGNは、ラベルデータLDによって示されるカテゴリの書体の特徴が反映された文字を示す出力画像データODを生成することができる。
【0086】
さらに、上述したように、トレーニング処理で用いられる入力画像データIDの個数は、数百字程度であり、使用時(例えば、データ生成処理時)に入力され得る入力画像データIDの種類数(例えば、6000字以上)よりも遙かに少ない。仮にネットワークGNに入力されるラベルデータLDに、文字のそれぞれを識別する識別情報(例えば、「花」、「力」などの個々の文字の識別情報)が含まれる場合には、学習済みの生成ネットワークGNを使用する際に、未知のラベルデータLDが学習済みの生成ネットワークGNに入力される可能性が高い。この場合には、ラベルデータLDは、生成ネットワークGNにとって有用な情報であるとは言えないので、生成ネットワークGNによる出力画像データODの生成に悪影響を与え得る。例えば、生成される出力画像データODにおいて手書きの書体を再現する精度が低下し得る。本実施例によれば、ラベルデータLDは文字のそれぞれを識別する識別情報を含まないので、出力画像データODにおける手書きの書体の再現精度が低下することを抑制できる。
【0087】
さらに、本実施例では、「漢字」を示す入力画像データIDに対応付けられるラベルデータLD(カテゴリを示す情報)は、「漢字」を示す情報であり、「かな」(例えば、ひらがなやカタカナ)を示す入力画像データIDに対応付けられるラベルデータLDは、当該「かな」(例えば、ひらがなやカタカナ)を示す情報である。この結果、生成ネットワークGNは、「漢字」の特徴と、「かな」の特徴と、をトレーニング処理においてそれぞれ適切に学習できる。したがって、学習済みの生成ネットワークGNは、ユーザの「漢字」の書体の特徴が反映された「漢字」を示す出力画像データODと、ユーザの「かな」の書体の特徴が反映された「かな」を示す出力画像データODとを、それぞれ、生成することができる。例えば、上述したように、「漢字」の書体の特徴と、「かな」の書体の特徴と、が異なる場合であっても、「漢字」と「かな」の書体の特徴をそれぞれ反映するように、「漢字」と「かな」を示す出力画像データODをそれぞれ生成することができる。
【0088】
さらに、上記実施例によれば、複数個の入力画像データIDは、「漢字」のカテゴリを示すラベルデータLDに対応付けられる入力画像データIDであって、「漢字」のカテゴリに属する「カ(ちから)」の文字を示す入力画像データID(図2図5)を含む。複数個の入力画像データIDは、「カタカナ」のカテゴリを示すラベルデータLDに対応付けられる入力画像データIDであって、「カタカナ」のカテゴリに属する「カ」の文字を示す入力画像データID(図2図6)を含む。「漢字」のカテゴリに属する「カ(ちから)」の文字と、「カタカナ」のカテゴリに属する「カ」の文字とは、形状が類似している。本実施例によれば、ネットワークGNは、このような「漢字」のカテゴリに属する「カ(ちから)」の文字と、「カタカナ」のカテゴリに属する「カ」の文字と、のように、カテゴリが異なるが互いに形状が類似する文字の特徴を、それぞれ、適切に学習できる。この結果、学習済みの生成ネットワークGNは、「漢字」のカテゴリに属する「カ(ちから)」の文字と、「カタカナ」のカテゴリに属する「カ」の文字と、のように、カテゴリが異なるが互いに形状が類似する文字を示す出力画像データODを、それぞれ、適切に生成することができる。例えば、漢字は角張った筆跡で書き、カタカナは丸みのある筆跡で書くユーザの手書き文字として、「漢字」の「カ(ちから)」を角張った書体で再現し、「カタカナ」の「カ」を丸みのある書体で再現するような生成ネットワークGNが実現できる。カテゴリが異なるが互いに形状が類似する文字としては、他に、「漢字」の「二」、「口」、「夕」と「カタカナ」の「二」、「ロ」、「タ」などがある。
【0089】
さらに、上記実施例のサーバ100が実行するデータ生成処理において、図9(B)のS310、S320にて既存のフォントの書体を有する文字を示す入力画像データIDを取得するCPU110は、画像取得部の例である。図9(B)のS330にて、入力画像データIDに対応付けられるラベルデータLDを取得するCPU110は、ラベル取得部の例である。図9(B)のS340にて、入力画像データIDとラベルデータLDとを含む入力データを学習済みの生成ネットワークGNに入力することによって、手書きの書体を有する文字を示す出力画像データODを生成するCPU110は、画像生成部の例である。このように、画像データ生成装置としてのサーバ100は、既存のフォントの書体を有する文字を示す入力画像データIDとラベルデータLDとが入力されるだけで、手書きの書体を有する文字を示す出力画像データODを容易に生成することができる。さらには、入力画像データIDとともに文字の種別を示すラベルデータLDが入力されるので、文字の種別に応じた特徴を反映した出力画像データODを生成することができる。
【0090】
さらに、本実施例のサーバ100は、図9(B)のS350にて、出力画像データODを用いて、手書きの書体を有する文字を含む印刷画像PI(図10(B))を示す印刷データを生成する。このように、サーバ100は、手書き文字を含む画像を示す印刷データを容易に生成することができる。したがって、例えば、複合機200は、サーバ100によって生成される印刷データを用いて、印刷画像PIを用紙に印刷することによって、ユーザの手書きの書体を有する文字を印刷して、ユーザに提供することができる。
【0091】
以上の説明から解るように、本実施例の生成ネットワークGNは、機械学習モデルの例であり、スキャンデータは、原稿画像データの例である。既存のフォントの書体は、第1の書体の例であり、ユーザの手書きの書体は、第2の書体の例である。「漢字」のカテゴリに属する「カ(ちから)」の文字は、第1のカテゴリに属する第1の文字の例であり、「カタカナ」のカテゴリに属する「カ」の文字は、第2のカテゴリに属する第2の文字の例である。
【0092】
B.変形例:
(1)上記実施例のトレーニング処理では、教師画像データTDは、スキャンデータから取得されている。これに代えて、教師画像データTDは、2次元イメージセンサを備えるデジタルカメラを用いて、記入済みのテストシートTSを撮影して得られる撮影画像データから取得されても良い。また、教師画像データTDは、例えば、タッチパネル上に指やタッチペンを用いて手書きされた文字を示す画像データから取得されて良い。
【0093】
(2)上記実施例では、教師画像データTDは、複数個の記入領域EAを含むスキャン画像SIから取得されているが、これに限られない。例えば、教師画像データTDは、習字などの手書き文字をデジタルカメラで一文字ずつ撮影して得られる画像データであっても良い。
【0094】
(3)上記実施例では、教師画像データTDによって示される文字は、手書きの書体を有する文字である。これに代えて、例えば、教師画像データTDによって示される文字は、手書きではない手法で作成された新規のフォントの書体を有する文字であっても良い。この場合には、新規のフォントの書体を有する数百字分の教師画像データTDを準備して生成ネットワークGNをトレーニングすることによって、他の数千字分の新規のフォントの書体を有する文字を生成できる学習済みの生成ネットワークGNが得られる。
【0095】
(4)上記実施例では、ラベルデータLDは、複数個の文字が属するカテゴリを示す情報である。これに代えて、ラベルデータLDは、例えば、アルファベットなどの限られた個数の文字について、手書きの書体の文字を示す出力画像データODを生成する場合には、個々の文字を識別する情報であっても良い。
【0096】
(5)上記実施例のデータ生成処理では、出力画像データODを用いて生成される画像(印刷画像PI)は、複合機200によって印刷されることによって、ユーザに提供される。これに代えて、出力画像データODを用いて生成される画像は、例えば、ユーザの複合機200や端末装置(例えば、スマートフォン)の表示部に表示されることによって、ユーザに提供されても良い。
【0097】
(6)上記実施例では、データ生成処理の対象となる文字は、漢字、ひらがな、カタカナを含む日本語の文字である。これに代えて、データ生成処理の対象となる文字は、他の言語の文字であっても良い。例えば、データ生成処理の対象となる文字は、中国語の文字であっても良い。この場合には、例えば、ラベルデータLDによって示されるカテゴリは、「簡体字」と「繁体字」とを含んでも良い。また、データ生成処理の対象となる文字は、英語の文字であっても良い。この場合には、例えば、ラベルデータLDによって示されるカテゴリは、「アルファベット」と「記号や数字」とを含んでも良い。
【0098】
(7)上記実施例の生成ネットワークGN(図2)の構成は一例であり、これに限られない。例えば、生成ネットワークGNにおいて、畳込層や転置畳込層の層数は、適宜に変更されて良い。また、生成ネットワークGNの各層で出力された値に対して実行される後処理も適宜に変更され得る。例えば、後処理に用いられる活性化関数は、任意の関数、例えば、ReLU、LeakyReLU、PReLU、ソフトマックス、シグモイドが用いられ得る。また、バッチノーマリゼイション、ドロップアウトなどの処理も後処理として適宜に追加や省略がされ得る。
【0099】
(8)上記実施例の生成ネットワークGNのトレーニング処理(図4図8)は、一例であり、これに限られない。例えば、上記実施例では、教師画像データTDと出力画像データODとの誤差値EVが小さくなるように、生成ネットワークGNがトレーニングされている。これに代えて、例えば、トレーニング処理では、生成ネットワークGNと識別ネットワークとから成るネットワークシステムであって、いわゆる敵対的生成ネットワーク(GANs(Generative adversarial networks))を構成するネットワークシステムを用いて、生成ネットワークGNをトレーニングしても良い。この場合には、識別ネットワークは、出力画像データODを偽データと判定し、教師画像データTDを真データと判定するようにトレーニングされる。生成ネットワークGNは、識別ネットワークが出力画像データODを真データであると誤って判定するようにトレーニングされる。
【0100】
また、上記実施例のトレーニング処理では誤差値EVとして、平均絶対誤差が用いられているが、これに代えて、他の種類の誤差値が用いられても良い。例えば、クロスエントロピー誤差や平均絶対誤差が用いられても良い。
【0101】
(9)図1のサーバ100のハードウェア構成は、一例であり、これに限られない。例えば、サーバ100のプロセッサは、CPUに限らず、GPU(Graphics Processing Unit)やASIC(application specific integrated circuit)、あるいは、これらとCPUとの組み合わせであっても良い。また、サーバ100は、ネットワークを介して互いに通信可能な複数個の計算機(例えば、いわゆるクラウドサーバ)であっても良い。
【0102】
(10)図8図9(B)のサーバ100の全部を、複合機200の制御部210が実行しても良い。この場合には、サーバ100は不要である。この場合には、複合機200が画像データ生成装置の例である。
【0103】
また、図8のトレーニング処理の一部、例えば、スキャンデータから複数個の教師画像データTDを取得する処理(図8のS100~S110)は、複合機200の制御部210によって実行されても良い。この場合には、複合機200は、複数個の教師画像データTDをサーバ100に送信する。
【0104】
また、図9(B)のデータ生成処理の一部、例えば、宛名情報を用いて入力画像データIDを生成する処理(図9(B)のS320)、入力画像データIDに対応するラベルデータLDを生成する処理(図9(B)のS330)は、複合機200によって実行されても良い。この場合には、複合機200は、入力画像データIDやラベルデータLDをサーバ100に送信する。また、複合機200は、図9(B)のS340にて生成される出力画像データODをサーバ100から受信しても良い。この場合には、複合機200の制御部210が、図9(B)のS350にて、出力画像データODを用いて印刷データを生成しても良い。これらの場合には、サーバ100と複合機200との全体が、画像データ生成装置の例である。
【0105】
(11)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、生成ネットワークGNや識別ネットワークDNは、プログラムモジュールに代えて、ASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実現されてよい。
【0106】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0107】
1000…手書文字生成システム、100…サーバ、110…CPU、120…揮発性記憶装置、130…不揮発性記憶装置、140…通信インタフェース、200…複合機、210…制御部、220…読取部、230…印刷部、FD…フォントデータ、SD…シートデータ、AD…属性データ、PG…コンピュータプログラム、GN…生成ネットワーク、LD…ラベルデータ、ID…入力画像データ、TD…教師画像データ、OD…出力画像データ、EV…誤差値、II…入力画像、OI…出力画像、IT…インターネット、SPI…サンプル画像、EPI…空欄画像、EA…記入領域、CA…文字領域、SI…スキャン画像、TX…宛名情報、PI…印刷画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10