(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022175408
(43)【公開日】2022-11-25
(54)【発明の名称】学習データ生成装置、学習データ生成方法、および学習データ生成プログラム
(51)【国際特許分類】
G06V 30/194 20220101AFI20221117BHJP
【FI】
G06K9/66
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021081769
(22)【出願日】2021-05-13
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】近藤 真暉
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064DA10
5B064DA23
5B064DA24
5B064DA27
(57)【要約】
【課題】対象認識用の効果的な学習データを提供する。
【解決手段】学習データ生成装置10Aは、複数の認識部24と、判定部26と、収集部28と、を備える。複数の認識部24は、対象データによって表される対象を認識する。判定部26は、複数の認識部24の各々の認識結果54に基づいて、対象データの対象の認識し難さを判定する。収集部28は、認識し難さが予め定めた条件を満たす対象データを学習データとして収集する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
対象データによって表される対象を認識する複数の認識部と、
複数の前記認識部の各々の認識結果に基づいて、前記対象データの対象の認識し難さを判定する判定部と、
前記認識し難さが予め定めた条件を満たす前記対象データを学習データとして収集する収集部と、
を備える学習データ生成装置。
【請求項2】
複数の前記認識部は、
互いに異なる対象データ群を用いて予め学習されてなる、
請求項1に記載の学習データ生成装置。
【請求項3】
複数の前記認識部は、
互いに種類の異なる前記対象データ群を用いて予め学習されてなる、
請求項2に記載の学習データ生成装置。
【請求項4】
複数の前記認識部は、
文字列である前記対象データによって表される複数の文字を認識する、
請求項1~請求項3の何れか1項に記載の学習データ生成装置。
【請求項5】
正解対象データにパラメータに応じたノイズを与えた前記対象データを生成する生成部と、
複数の前記認識部の各々の前記認識結果に基づいて、複数の前記認識部の一部が誤認識する前記対象データを生成するように前記生成部の前記パラメータを更新する第1更新部と、
を備える、請求項1~請求項4の何れか1項に記載の学習データ生成装置。
【請求項6】
前記第1更新部は、
複数の前記認識部の各々の前記認識結果である認識した対象に対する確からしさを表すスコアに基づいて、より認識し難い前記対象データを生成するように前記生成部の前記パラメータを更新する、
請求項5に記載の学習データ生成装置。
【請求項7】
前記対象データが生成された対象データであるか実データであるかを識別する識別部と、
識別結果に基づいて、前記対象データを前記実データであると誤識別する確率が高くなるように前記生成部の前記パラメータを更新する第2更新部と、
を備える請求項5または請求項6に記載の学習データ生成装置。
【請求項8】
前記生成部は、
ニューラルネットワークで構成されるモデルである、
請求項5~請求項7の何れか1項に記載の学習データ生成装置。
【請求項9】
収集された前記学習データである前記対象データから、前記対象データによって表される対象を出力する学習モデルを学習する学習部、
を備える、請求項1~請求項8の何れか1項に記載の学習データ生成装置。
【請求項10】
前記対象データは、
文字を表す画像または文字列を表す画像である、
請求項1~請求項9の何れか1項に記載の学習データ生成装置。
【請求項11】
複数の認識部を備えた学習データ生成装置で実行される学習データ生成方法であって、
複数の前記認識部の各々によって認識された、対象データによって表される対象の認識結果に基づいて、前記対象データの対象の認識し難さを判定するステップと、
前記認識し難さが予め定めた条件を満たす前記対象データを学習データとして収集するステップと、
を含む学習データ生成方法。
【請求項12】
複数の認識部を備えたコンピュータに、
複数の前記認識部の各々によって認識された、対象データによって表される対象の認識結果に基づいて、前記対象データの対象の認識し難さを判定するステップと、
前記認識し難さが予め定めた条件を満たす前記対象データを学習データとして収集するステップと、
を実行させるための学習データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、学習データ生成装置、学習データ生成方法、および学習データ生成プログラムに関する。
【背景技術】
【0002】
学習モデルを用いて手書き文字や認識し難い画像などの対象を認識する認識技術が知られている。例えば、文字画像などの文字データを用いて学習モデルを学習し、文字認識に用いる事が行われている。文字認識の性能を上げるには、多様なパターンの文字データを用いて学習モデルを学習することが好ましい。特に、認識し難い形状などで描かれた文字の文字データを用いて学習することで、文字認識の性能を上げることができる。
【0003】
しかしながら、認識し難い文字データなどの対象データを効率よく収集することは難しい。このため、従来技術では、対象認識用の効果的な学習データを提供することは困難であった。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記に鑑みてなされたものであって、対象認識用の効果的な学習データを提供することができる、学習データ生成装置、学習データ生成方法、および学習データ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
実施の形態の学習データ生成装置は、複数の認識部と、判定部と、収集部と、を備える。複数の認識部は、対象データによって表される対象を認識する。判定部は、複数の前記認識部の各々の認識結果に基づいて、前記対象データの対象の認識し難さを判定する。収集部は、前記認識し難さが予め定めた条件を満たす前記対象データを学習データとして収集する。
【図面の簡単な説明】
【0007】
【
図3】学習データ生成装置の情報処理の流れを示すフローチャート。
【
図6】学習データ生成装置の情報処理の流れを示すフローチャート。
【
図8】学習データ生成装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、学習データ生成装置、学習データ生成方法、および学習データ生成プログラムを詳細に説明する。
【0009】
(第1の実施の形態)
図1は、本実施の形態の学習データ生成装置10Aの構成の一例を示すブロック図である。
【0010】
学習データ生成装置10Aは、学習データ生成装置10の一例である。学習データ生成装置10は、学習データを生成する情報処理装置である。
【0011】
学習データは、対象認識に関する学習モデルの学習に用いられるデータである。
【0012】
対象とは、認識する対象である。対象は、例えば、文字、性別や人種等の区別のつき難い顔画像、ブランドの区別のし難いプロダクト画像、などである。プロダクト画像は、例えば、偽物の物体の画像などである。
【0013】
本実施形態および後述する実施形態では、対象が、文字である形態を一例として説明する。しかし、対象は、文字に限定されない。
【0014】
学習データ生成装置10Aは、制御部12と、記憶部14と、通信部16と、を備える。制御部12、記憶部14、および通信部16は、通信可能に接続されている。
【0015】
記憶部14は、各種のデータを記憶する。記憶部14は、例えば、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子、ハードディスク、光ディスク等である。なお、記憶部14は、学習データ生成装置10Aの外部に設けられた記憶装置であってもよい。また、記憶部14は、プログラムや各種の情報を、LAN(Local Area Network)やインターネットなどを介してダウンロードして記憶または一時記憶した記憶媒体であってもよい。
【0016】
通信部16は、ネットワーク等を介して外部の情報処理装置と通信する通信インターフェースである。
【0017】
制御部12は、学習データ生成装置10Aにおいて各種の情報処理を実行する。
【0018】
制御部12は、生成部18と、識別部20と、第2更新部22と、認識部24と、判定部26と、収集部28と、第1更新部30と、を備える。
【0019】
生成部18、識別部20、第2更新部22、認識部24、判定部26、収集部28、および第1更新部30は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0020】
図2は、生成部18、識別部20、第2更新部22、認識部24、判定部26、収集部28、および第1更新部30による処理の流れの一例を示す模式図である。
図2を用いて各部を説明する。
【0021】
生成部18は、正解文字データ50にパラメータに応じたノイズを与えた文字データ52を生成する。例えば、生成部18は、正解文字データ50から文字データ52を出力するモデルである。生成部18のモデルは、例えば、CNN(Convolutional Neural Network)、GCN(Graph Convolutional Network)、またはRNN(Recurrent Neural Network)などのニューラルネットワークで構成される深層学習モデル(DNN)である。
【0022】
正解文字データ50は、正解対象データの一例である。正解文字データ50とは、正解ラベルの付与された文字データである。文字データは、対象データの一例である。なお、対象データは、文字データだけに限らず、画像データや点群データなども含まれる。点群データは、例えば、3Dモデルなどにより表される顔などの深度情報などである。正解ラベルは、文字の正確な認識結果を表す情報である。正解文字データ50は、言い換えると、付与された正解ラベルによって表される正確な認識結果である文字を表すデータである。本実施形態では、正解文字データ50が、1文字の文字を表すデータである形態を一例として説明する。
【0023】
図2には、正解文字データ50が数字の“9”である場合を一例として示す。
【0024】
生成部18は、例えば、ノイズを表す乱数Xを生成する乱数発生器を備える。生成部18は、乱数発生器で生成された乱数Xをノイズとして用い、パラメータによってノイズの重み付け値を変更する。そして、生成部18は、パラメータによって重み付け値を変更したノイズを正解文字データ50に付与することで、正解文字データ50から文字データ52を生成する。
【0025】
文字データ52は、正解文字データ50にノイズを付与した文字データである。すなわち、文字データ52は、正解ラベルの付与された正解文字データ50によって表される文字の少なくとも一部を、正解文字データ50とは異なる形状で表した文字のデータである。本実施形態では、文字データ52が、1文字の文字を表すデータである形態を一例として説明する。
【0026】
図2には、文字データ52として、文字を表す画像を一例として示した。文字を表す画像を、以下では、文字画像と称して説明する場合がある。
【0027】
本実施形態では、生成部18は、文字画像を文字データ52として生成する形態を一例として説明する。
図2に示すように、生成部18が正解文字データ50にノイズを与えることで、正解文字データ50とは異なる形状の文字画像が生成される。すなわち、生成部18によって、正解文字データ50の文字とは異なる形態で描かれた文字の文字データ52が生成される。言い換えると、生成部18によって、正解文字データ50の文字とは異なる筆跡で描かれたような文字データ52が生成される。
【0028】
識別部20および第2更新部22については後述する。
【0029】
認識部24は、文字データ52によって表される文字を認識する。例えば、認識部24は、文字データ52から認識結果54を出力するモデルである。認識部24のモデルは、例えば、CNN、GCN、またはRNNなどのニューラルネットワークで構成される深層学習モデル(DNN)である。認識部24は、予め学習されたモデルである。
【0030】
学習データ生成装置10Aは、複数の認識部24を備える。本実施形態では、一例として、3つの認識部24(認識部24A、認識部24B、認識部24C)を備える形態を一例として説明する。しかし、学習データ生成装置10Aは、2以上の認識部24を備えた構成であればよく、3つの認識部24を備えた構成に限定されない。
【0031】
複数の認識部24は、互いに特性の異なるモデルであり、予め学習されて生成される。特性が異なるとは、学習に用いた文字データ群および認識処理に用いるパラメータの少なくとも一方が異なることを意味する。
【0032】
例えば、複数の認識部24は、互いに異なる文字データ群を用いて予め学習された認識部24である。文字データ群は、複数の文字データ52の群である。
【0033】
なお、複数の認識部24は、互いに異なる種類の対象データ群を用いて予め学習されてなる。上述したように、本実施形態では、対象が文字である場合を一例として説明する。このため、具体的には、複数の認識部24は、互いに文字種の異なる文字データ群を用いて予め学習されてなることが好ましい。文字種とは、文字の種類である。文字種は、具体的には、表記の種類、言語の種類、書体、などである。表記の種類は、例えば、数字、ひらがな、カタカナ、などである。言語の種類は、例えば、日本語、英語、などである。書式は、明朝体、ゴシック体、などである。また、文字種には、手書きによる筆跡、手書きに用いるペンなどの筆記具の種類、手書きによる文字の線の太さ、なども含まれる。
【0034】
例えば、複数の認識部24を、以下の構成とすればよい。例えば、認識部24Aは、数字を表す文字の文字データ52を認識する認識部24である。認識部24Bは、ひらがなを表す文字の文字データ52を認識する認識部24である。認識部24Cは、英語を表す文字の文字データ52を認識する認識部24である。
【0035】
このため、認識対象が数字を表す文字の文字データ52である場合、認識部24Aは、精度良く文字を認識する可能性が高くなる。認識対象がひらがなを表す文字の文字データ52である場合、認識部24Bは、精度よく文字を認識する可能性が高くなる。認識対象が英語を表す文字の文字データ52である場合、認識部24Cは、精度良く文字を認識する可能性が高くなる。
【0036】
互いに文字種の異なる文字データ群を用いて予め学習された複数の認識部24を用いることで、後述する収集部28は、文字種間で誤認識しやすい文字データ52を収集することが可能となる。
【0037】
認識部24A、認識部24B、および認識部24Cは、文字データ52を認識し、認識結果54を表す文字を出力する。
【0038】
判定部26は、複数の認識部24の各々の認識結果54に基づいて、文字データ52の文字の認識し難さを判定する。
【0039】
文字の認識し難さとは、文字データ52の文字が該文字データ52の生成元の正解文字データ50によって表される文字として認識することの困難なレベルを表す。正解文字データ50によって表される文字は、正解文字データ50に付与された正解ラベルよって表される正確な認識結果の文字である。
【0040】
本実施形態では、判定部26は、複数の認識部24の各々の認識結果54に基づいて、文字データ52の文字が認識しやすい文字であるか、認識し難い文字であるか、を判定する。
【0041】
本実施形態では、判定部26は、複数の認識部24の全ての認識結果54が一致する場合、文字データ52を認識しやすい文字であると判定する。
【0042】
上述したように、複数の認識部24は、互いに特性の異なるモデルである。互いに特性の異なるモデルである複数の認識部24が、特性が異なるにも拘らずその認識結果54が一致する場合、判定部26は、文字データ52を誤認識されにくい文字であると判定する。言い換えると、判定部26は、複数の認識部24の全ての認識結果54が一致する場合、文字データ52を、正解ラベルによって表される正確な認識結果に一致または近い、綺麗なまたは正確な筆跡で描かれた文字であると判定する。
【0043】
一方、判定部26は、複数の認識部24の各々の認識結果54の少なくとも一部が不一致である場合、文字データ52を認識し難い文字であると判定する。言い換えると、判定部26は、複数の認識部24の各々の認識結果54の少なくとも一部が不一致である場合、文字データ52を、正解ラベルによって表される正確な認識結果とは異なる、崩れたまたは汚い筆跡で描かれた文字であると判定する。
【0044】
図2には、認識部24Aが文字データ52を数字の“9”と認識し、認識部24Bが文字データ52を数字の“8”と認識し、認識部24Bが文字データ52を数字の“9”と認識した形態を一例として示した。すなわち、
図2に示す例では、認識部24A、認識部24B、および認識部24Cの認識結果54は不一致である。この場合、判定部26は、文字データ52を認識し難い文字であると判定する。
【0045】
収集部28は、判定部26によって判定された認識し難さが予め定めた条件を満たす文字データ52を、学習データとして収集する。すなわち、収集部28は、該条件を満たす文字データ52を、対象認識に関する学習モデルで用いる学習データとして収集する。
【0046】
予め定めた条件は、認識し難い文字データ52であることを表す条件である。
【0047】
判定部26が、複数の認識部24の各々の認識結果54に基づいて、文字データ52の文字が認識しやすい文字であるか、認識し難い文字であるか、を判定する場合を想定する。すなわち、判定部26は、複数の認識部24の全ての認識結果54が一致する場合、文字データ52の文字が認識しやすい文字であると判定する。また、判定部26は、複数の認識部24の少なくとも一部の認識結果54が不一致である場合、文字データ52の文字が認識し難い文字であると判定する。
【0048】
収集部28は、認識し難い文字と判定された文字データ52を、対象認識に関する学習データとして収集する。
【0049】
なお、認識し難さは、文字データ52の文字が認識しやすい文字であるか、認識し難い文字であるか、を表す情報に限定されない。例えば、認識し難さは、認識し難さを表す数値であってもよい。この場合、例えば、判定部26は、複数の認識部24の各々の認識結果54に含まれる、文字データ52の元データである正解文字データ50の文字に一致する認識結果54の割合が低いほど、高い認識し難さを表す数値を判定すればよい。なお、収集部28は、認識部24Aが出力する認識スコアを、認識し難さを表す数値として用いてよい。そして、収集部28は、認識し難さを表す数値が閾値以上である場合、予め定めた条件を満たす文字データ52であると判定し、学習データとして収集すればよい。閾値は、予め定めればよい。
【0050】
このように、収集部28は、認識し難い文字の文字データ52を収集する。すなわち、収集部28は、崩れたまたは汚い筆跡で描かれた文字の文字データ52を学習データとして収集することができる。
【0051】
収集部28は、学習データとして収集した文字データ52を、記憶部14へ記憶する。また、収集部28は、学習データとして収集した文字データ52を、通信部16を介して外部の情報処理装置へ出力してもよい。
【0052】
第1更新部30は、複数の認識部24の各々の認識結果54に基づいて、複数の認識部24の一部が誤認識する文字データ52を生成するように、生成部18のパラメータを更新する。言い換えると、第1更新部30は、複数の認識部24の一部が正しく正解ラベルによって表される文字を認識し、複数の認識部24の一部が誤認識する文字データ52を生成するように、生成部18のパラメータを更新する。
【0053】
詳細には、第1更新部30は、認識部24のロスを算出する。第1更新部30は、複数の認識部24の内、予め定めた割合以上の数の認識部24の認識結果54が正解ラベルによって表される文字と一致するか否かを判断する。予め定めた割合は、50%以上の値であることが好ましい。すなわち、複数の認識部24の各々の認識結果54の少なくとも一部は、正解ラベルと一致している必要がある。本実施形態では、予め定めた割合以上の認識部24の認識結果54が正解ラベルによって表される文字と一致する場合を想定して説明する。
【0054】
この場合、第1更新部30は、複数の認識部24の各々の認識結果54にばらつきが生じるほど、認識部24のロスが下がるように生成部18のパラメータを調整する。
【0055】
詳細には、第1更新部30は、複数の認識部24の各々の認識結果54のばらつきが大きいほど小さくなるロスと、ばらつきが小さいほど小さくなるロスと、を用意する。そして、第1更新部30は、ハイパーパラメータでこれらのロスのウェイトを調整することにより、認識部24のロスを算出する。
【0056】
そして、第1更新部30は、算出した認識部24のロスが第1閾値以下となるまで、生成部18のパラメータを更新する。第1閾値は、予め定めればよい。すなわち、第1更新部30は、複数の認識部24の内の一部が誤認識する文字データ52を生成するように、生成部18のパラメータを算出する。
【0057】
そして、第1更新部30は、算出した該パラメータとなるように、生成部18のパラメータを更新する。このため、生成部18のパラメータは、複数の認識部24の内の一部が誤認識する文字データ52を生成するように更新される。
【0058】
なお、第1更新部30は、複数の認識部24の各々の認識結果54であるスコアに基づいて、生成部18のパラメータを更新してもよい。
【0059】
この場合、複数の認識部24の各々は、認識結果54として、認識した文字および認識した文字に対する確からしさを表すスコアを出力すればよい。例えば、
図2に示す例の場合、認識部24Aの認識結果54が、文字データ52を数字の“9”と認識したスコア“0.9”および数字の“8”と認識したスコア“0.2”である場面を想定する。また、認識部24Bの認識結果54が、文字データ52を数字の“8”と認識したスコア“0.8”および数字の“9”と認識したスコア“0.2”である場面を想定する。また、認識部24Cの認識結果54が、文字データ52を数字の“9”と認識したスコア“0.8”および数字の“8”と認識したスコア“0.6”である場面を想定する。
【0060】
この場合、第1更新部30は、複数の認識部24の各々の認識結果54ごとに、最も高いスコアと次に高いスコアとの差分を算出する。このスコアの差分の絶対値が小さいほど、文字データ52は認識し難い文字であるといえる。
【0061】
このため、第1更新部30は、複数の認識部24の各々ごとに算出したスコアの差分の絶対値が小さいほど、認識部24のロスとして低い値のロスを算出する。また、第1更新部30は、複数の認識部24の各々ごとに算出したスコアの差分の絶対値が大きいほど、認識部24のロスとして高い値のロスを算出する。
【0062】
そして、第1更新部30は、算出した認識部24のロスが第2閾値以下のロスとなるように、生成部18のパラメータを更新する。第2閾値は、予め定めればよい。すなわち、第1更新部30は、複数の認識部24の各々が認識し難い文字データ52を生成するように、生成部18のパラメータを算出する。
【0063】
そして、第1更新部30は、算出した該パラメータとなるように、生成部18のパラメータを更新する。このため、生成部18のパラメータは、複数の認識部24の各々が認識し難い文字データ52を生成するように更新される。
【0064】
次に、識別部20および第2更新部22について説明する。
【0065】
識別部20は、生成部18から取得した文字データ52が生成された文字データであるか実データであるかを識別する。生成された文字データとは、生成部18で生成された文字データである。実データとは、あらかじめユーザによって手書きで描かれた文字の実画像である。
【0066】
識別部20は、文字データ52が生成された文字データであると識別した場合、正しいデータであるRealと識別する。識別部20は、文字データ52が実データであると識別した場合、偽データであるFakeと識別する。
【0067】
第2更新部22は、識別部20の識別結果に基づいて、生成部18のパラメータを更新する。詳細には、第2更新部22は、文字データ52を実データであると誤識別する確率が高くなるように、生成部18のパラメータを更新する。
【0068】
詳細には、第2更新部22は、生成部18のロスを算出する。第2更新部22は、識別部20が文字データ52を実データと識別した場合、低い値のロスを算出する。一方、第2更新部22は、識別部20が文字データ52を生成された文字データであると識別した場合、高い値のロスを算出する。そして、第2更新部22は、算出したロスが第3閾値以下のロスとなるように、生成部18のパラメータを更新する。第3閾値は、予め定めればよい。すなわち、第2更新部22は、識別部20が文字データ52を実データと識別する確率が高くなるように、生成部18のパラメータを算出する。
【0069】
そして、第2更新部22は、算出した生成部18のパラメータに、生成部18のパラメータを更新する。このため、生成部18のパラメータは、より実データに近い文字データ52を生成するように更新される。
【0070】
また、第2更新部22は、識別部20の識別結果に基づいて、識別部20のパラメータを更に更新してもよい。詳細には、第2更新部22は、文字データ52を実データであると誤識別する確率が低くなるように、識別部20のパラメータを更新する。
【0071】
詳細には、第2更新部22は、識別部20が文字データ52を生成された文字データであると識別した場合、低い値のロスを算出する。一方、第2更新部22は、識別部20が文字データ52を実データと識別した場合、高い値のロスを算出する。そして、第2更新部22は、算出したロスが第4閾値以下のロスとなるように、識別部20のパラメータを更新する。第4閾値は、予め定めればよい。すなわち、第2更新部22は、識別部20が文字データ52を誤って実データと識別する確率が低くなるように、識別部20のパラメータを算出する。
【0072】
そして、第2更新部22は、算出した識別部20のパラメータに、識別部20のパラメータを更新する。このため、識別部20のパラメータは、文字データ52を実データと誤って識別する確率が低くなるように更新される。
【0073】
なお、識別部20は、文字データ52が文字を表すデータであるか、文字以外を表すデータであるか、を更に識別してもよい。
【0074】
この場合、第2更新部22は、識別部20のこの識別結果に基づいて、文字を表す文字データ52を生成し、且つ、文字以外を表す文字データ52を生成することを抑制するように、生成部18のパラメータを更新することが好ましい。
【0075】
次に、本実施形態の学習データ生成装置10Aが実行する情報処理の流れを説明する。
【0076】
図3は、本実施形態の学習データ生成装置10Aが実行する情報処理の流れの一例を示すフローチャートである。
【0077】
生成部18が正解文字データ50を取得する(ステップS100)。例えば、生成部18は、記憶部14から1文字の正解文字データ50を取得する。
【0078】
生成部18は、ステップ100で取得した正解文字データ50から文字データ52を生成する(ステップS102)。
【0079】
識別部20は、ステップS102で生成された文字データ52が生成された文字データであるか実データであるかを識別する(ステップS104)。
【0080】
第2更新部22は、ステップS104の識別結果に基づいて、生成部18のパラメータを更新する(ステップS106)。第2更新部22は、文字データ52を実データであると誤識別する確率が高くなるように、生成部18のパラメータを更新する。
【0081】
一方、複数の認識部24の各々は、ステップS102で生成された文字データ52によって表される文字を認識する(ステップS108)。
【0082】
判定部26は、ステップS108で認識された、複数の認識部24の各々の認識結果54に基づいて、ステップS102で生成された文字データ52の文字の認識し難さを判定する(ステップS110)。
【0083】
例えば、判定部26は、複数の認識部24の各々の認識結果54が一致する場合、文字データ52を認識しやすい文字であると判定する。一方、判定部26は、複数の認識部24の各々の認識結果54の少なくとも一部が不一致である場合、文字データ52を認識し難い文字であると判定する。
【0084】
収集部28は、ステップS110で判定された認識し難さが予め定めた条件を満たすか否かを判定する(ステップS112)。例えば、収集部28は、ステップS110の判定結果が、認識し難い文字であることを表す判定結果であるか否かを判定する。
【0085】
ステップS112で否定判断すると(ステップS112:No)、後述するステップS116へ進む。ステップS112で肯定判断すると(ステップS112:Yes)、ステップS114へ進む。
【0086】
ステップS114では、ステップ102で生成された文字データ52を、学習データとして収集する(ステップS114)。そして、ステップS116へ進む。
【0087】
ステップS108~ステップS114の処理によって、認識し難いと判定された文字データ52が、学習データとして収集される。すなわち、ステップS108~ステップS114の処理によって、崩れたまたは汚い筆跡で描かれた文字の文字データ52が学習データとして収集される。
【0088】
ステップS116では、第1更新部30が、ステップS108の認識結果54に基づいて、複数の認識部24の一部が誤認識する文字データ52を生成するように生成部18のパラメータを更新する(ステップS116)。
【0089】
次に、制御部12は、認識部24のロスが収束したか否かを判断する(ステップS118)。制御部12は、認識部24のロスが上述した第1閾値以下に収束したか否かを判別することで、ステップS118の判断を実行する。
【0090】
ステップS118で否定判断すると(ステップS118:No)、上記ステップS102へ戻る。ステップS118で肯定判断すると(ステップS118:Yes)、本ルーチンを終了する。
【0091】
なお、ステップS104~ステップS106の処理は、ステップS108~ステップS116の処理の後に実行してもよい。
【0092】
以上説明したように、本実施形態の学習データ生成装置10Aは、複数の認識部24と、判定部26と、収集部28と、を備える。複数の認識部24は、対象データ(文字データ52)によって表される対象(文字)を認識する。判定部26は、複数の認識部24の各々の認識結果54に基づいて、対象データ(文字データ52)の対象(文字)の認識し難さを判定する。収集部28は、認識し難さが予め定めた条件を満たす対象データ(文字データ52)を学習データとして収集する。
【0093】
ここで、文字などの対象の認識の性能を上げるには、多様なパターンの文字データ52などの対象データを用いて学習モデルを学習することが好ましい。例えば、認識し難い形状などで描かれた文字の文字データ52を用いて学習することで、対象認識の性能を上げることができる。特に、識別境界付近の判断に迷う文字の文字データ52を用いて学習することで、対象認識の性能を更に向上させることができる。しかし、従来技術では、認識し難い文字データ52などの対象データを効率よく収集することは困難であった。
【0094】
一方、本実施形態の学習データ生成装置10Aは、複数の認識部24の各々による対象データの認識結果54を用いて、対象データの対象の認識し難さを判定する。そして、学習データ生成装置10Aは、認識し難さが予め定めた条件を満たす対象データを学習データとして収集する。
【0095】
このため、本実施形態の学習データ生成装置10Aは、認識し難い対象データを学習データとして効率よく収集することができる。
【0096】
従って、本実施形態の学習データ生成装置10Aは、対象認識用の効果的な学習データを提供することができる。
【0097】
なお、本実施形態では、学習データ生成装置10Aが、生成部18、識別部20、第2更新部22、複数の認識部24、判定部26、収集部28、および第1更新部30を備えた構成である形態を一例として説明した。しかし、学習データ生成装置10Aは、複数の認識部24、判定部26、および収集部28を少なくとも備えた構成であればよい。
【0098】
学習データ生成装置10Aが生成部18を備えない構成である場合、識別部20は、記憶部14または通信部16を介して接続された外部の情報処理装置などから、文字データ52を取得し、処理に用いればよい。
【0099】
(第2の実施形態)
上記実施形態では、文字データ52が1文字の文字を表すデータである形態を一例として説明した。本実施形態では、文字データ52が、複数の文字を配列した文字列である形態を一例として説明する。
【0100】
また、本実施形態では、正解文字データ50が、複数の文字を配列した文字列である形態を説明する。
【0101】
図4は、本実施の形態の学習データ生成装置10Bの構成の一例を示すブロック図である。なお、本実施形態の学習データ生成装置10Bにおいて、上記実施形態と同じ機能および構成部分には、同じ符号を付与して詳細な説明を省略する。
【0102】
学習データ生成装置10Bは、学習データ生成装置10の一例である。
【0103】
学習データ生成装置10Bは、制御部13と、記憶部14と、通信部16と、を備える。制御部13、記憶部14、および通信部16は、通信可能に接続されている。記憶部14および通信部16は、上記実施形態と同様である。
【0104】
制御部13は、学習データ生成装置10Bにおいて各種の情報処理を実行する。
【0105】
制御部13は、生成部19と、識別部20と、第2更新部23と、認識部25と、判定部27と、収集部29と、第1更新部30と、を備える。識別部20、第2更新部22、および第1更新部30は、上記実施形態と同様である。
【0106】
生成部19、識別部20、第2更新部22、認識部25、判定部27、収集部29、および第1更新部30は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPUなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0107】
図5は、生成部19、識別部21、第2更新部22、認識部25、判定部27、収集部29、および第1更新部31による処理の流れの一例を示す模式図である。
図5を用いて各部を説明する。
【0108】
生成部19は、正解文字列データ51にパラメータに応じたノイズを与えた文字列データ53を生成する。例えば、生成部18は、正解文字列データ51から文字列データ53を出力するモデルである。生成部19のモデルは、例えば、CNN、GCN、またはRNNなどのニューラルネットワークで構成される深層学習モデル(DNN)である。
【0109】
正解文字列データ51とは、正解ラベルの付与された文字列のデータである。すなわち、本実施形態では、正解文字データ50に替えて、正解の複数の文字からなる正解文字列データ51を用いる。
【0110】
正解文字列データ51には、正解文字列データ51を構成する文字の各々の正解ラベルと、正解文字列データ51を構成する文字の各々の位置座標情報と、が付与されている。すなわち、正解文字列データ51は、付与された正解ラベルによって表される正確な認識結果である複数の文字の各々が、付与された位置座標情報によって示される位置に配置されたデータである。
【0111】
図5には、正解文字列データ51が英数字の“ScrabbleGAN”である場合を一例として示した。なお、正解文字データ50は、正解の複数の文字列のデータであればよく、11文字の文字列に限定されない。
【0112】
生成部19は、上記実施形態の生成部18と同様に、ノイズを表す乱数Xを生成する乱数発生器を備える。生成部19は、乱数発生器で生成された乱数Xをノイズとして用い、パラメータによってノイズの重み付け値を変更する。そして、生成部19は、パラメータによって重み付け値を変更したノイズを正解文字列データ51に付与することで、正解文字列データ51から文字列データ53を生成する。
【0113】
文字列データ53は、正解文字列データ51にノイズを付与した文字データである。文字列データ53は、複数の文字からなる文字列のデータである。すなわち、文字列データ53は、正解ラベルの付与された正解文字列データ51によって表される文字の少なくとも一部を、正解文字列データ51とは異なる形状で表した文字のデータである。すなわち、本実施形態では、文字データ52に替えて、複数の文字からなる文字列データ53を用いる形態を説明する。
【0114】
図5には、文字列データ53として、文字列の文字画像を一例として示した。
【0115】
本実施形態では、生成部19は、文字画像を文字列データ53として生成する形態を一例として説明する。
図5に示すように、生成部19が正解文字列データ51にノイズを与えることで、正解文字列データ51とは異なる形状の文字列が生成される。すなわち、生成部19によって、正解文字列データ51の文字とは異なる形態で描かれた文字の文字列データ53が生成される。言い換えると、生成部19によって、正解文字列データ51の文字とは異なる筆跡で描かれたような文字列データ53が生成される。
【0116】
認識部25は、文字列データ53によって表される文字を認識し、認識結果55を出力する。認識部25は、文字データ52に替えて文字列データ53を用いて文字列を認識し、認識結果54に替えて認識結果55を出力する点以外は、上記実施形態の認識部24と同様である。
【0117】
学習データ生成装置10Bは、複数の認識部25を備える。本実施形態では、一例として、3つの認識部25(認識部25A、認識部25B、認識部25C)を備える形態を一例として説明する。学習データ生成装置10Bは、2以上の認識部25を備えた構成であればよく、3つの認識部25を備えた構成に限定されない。
【0118】
複数の認識部25は、複数の認識部24と同様に、互いに特性の異なるモデルであり、予め学習されて生成される。すなわち、複数の認識部25は、学習に用いる文字列データ群および認識処理に用いるパラメータの少なくとも一方が異なる。
【0119】
判定部27は、複数の認識部25の各々の認識結果55に基づいて、文字列データ53の文字の認識し難さを判定する。
【0120】
本実施形態では、判定部27は、複数の認識部25の各々の認識結果55に基づいて、文字列データ53の文字列が、認識しやすい文字列であるか、認識し難い文字列であるか、を判定する。
【0121】
例えば、判定部27は、複数の認識部25の全ての認識結果55が一致する場合、文字列データ53の文字列が認識しやすい文字列であると判定する。また、判定部27は、複数の認識部25の少なくとも一部の認識結果55が不一致である場合、文字列データ53の文字列が認識し難い文字列であると判定する。
【0122】
詳細には、判定部27は、複数の認識結果55の各々の文字列を構成する文字の各々を、他の認識結果55の対応する位置に配置された文字と比較し、一致するか否かを判定する。対応する位置の特定には、正解文字列データ51の文字列を構成する各文字に付与された位置座標情報を用いればよい。
【0123】
図5に示す例の場合、判定部27は、認識部25Aの認識結果55である“ScrabbleGAN”、認識部25Bの認識結果55である“ScrabbleGIN”、および、認識部25Cの認識結果55である“SaabbleGAN”について、位置座標情報ごとに文字が一致するか否かを判定する。
【0124】
この場合、判定部27は、認識部25Bの認識結果55である“ScrabbleGIN”の左から10文字目の文字“I”が、他の認識部25の認識結果55の同じ位置座標情報の位置に配置された文字“A”とは不一致であると判定する。また、判定部27は、認識部25Cの認識結果55である“SaabbleGAN”の左から2文字目の文字“a”が、他の認識部25の認識結果55の同じ位置座標情報の位置に配置された文字“c”および“a”とは不一致であると判定する。
【0125】
そして、判定部27は、複数の認識部25の各々から出力された複数の認識結果55の少なくとも1つに、他の認識結果55とは不一致の文字が含まれると判定した場合、文字列データ53の文字列が認識し難い文字列であると判定する。一方、判定部27は、複数の認識部25の各々の認識結果55が、他の認識結果55と完全に一致すると判定した場合、文字列データ53の文字列が認識しやすい文字列であると判定する。
【0126】
図5に示す例の場合、複数の認識結果55の内、認識部25Bの認識結果55である“ScrabbleGIN”および認識部25Cの認識結果55である“SaabbleGAN”の各々に、他の認識結果55とは不一致の文字が含まれる。このため、この場合、判定部27は、文字列データ53を認識し難い文字列であると判定する。
【0127】
収集部29は、判定部27によって判定された認識し難さが予め定めた条件を満たす文字列データ53を、学習データとして収集する。すなわち、収集部29は、該条件を満たす文字列データ53を、対象認識に関する学習モデルで学習に用いる学習データとして収集する。この予め定めた条件は、認識し難い文字列データ53であることを表す条件である。
【0128】
判定部27が、複数の認識部25の各々の認識結果55に基づいて、文字列データ53の文字列が認識しやすい文字列であるか、認識し難い文字列であるか、を判定する場合を想定する。すなわち、判定部27は、複数の認識部25の全ての認識結果55が一致する場合、文字列データ53を認識しやすい文字列であると判定する。また、判定部27は、複数の認識部25の少なくとも一部の認識結果55が不一致である場合、文字列データ53を認識し難い文字列であると判定する。
【0129】
収集部29は、認識し難い文字列と判定された文字列データ53を、対象認識に関する学習データとして収集する。すなわち、収集部29は、崩れたまたは汚い筆跡で描かれた文字列の文字列データ53を学習データとして収集することができる。
【0130】
なお、認識し難さは、文字列データ53の文字列が認識しやすい文字列であるか、認識し難い文字列であるか、を表す情報に限定されない。例えば、認識し難さは、認識し難さを表す数値であってもよい。この場合、例えば、判定部27は、複数の認識部25の各々の認識結果55に含まれる、互いに不一致の文字の割合または不一致の文字の数が多いほど、高い認識し難さを表す数値を判定すればよい。そして、収集部29は、認識し難さを表す数値が閾値以上である場合、予め定めた条件を満たす文字列データ53であると判定し、学習データとして収集すればよい。閾値は、予め定めればよい。
【0131】
収集部29は、学習データとして収集した文字列データ53を、記憶部14へ記憶する。また、収集部29は、学習データとして収集した文字列データ53を、通信部16を介して外部の情報処理装置へ出力してもよい。
【0132】
識別部20、第2更新部22、および第1更新部30は、文字データ52に替えて文字列データ53を用いる点以外は、上記実施形態と同様である。このため、詳細な説明を省略する。
【0133】
次に、本実施形態の学習データ生成装置10Bが実行する情報処理の流れを説明する。
【0134】
図6は、本実施形態の学習データ生成装置10Bが実行する情報処理の流れの一例を示すフローチャートである。
【0135】
生成部19が正解文字列データ51を取得する(ステップS200)。例えば、生成部19は、記憶部14から正解文字列データ51を取得する。
【0136】
生成部19は、ステップ200で取得した正解文字列データ51から文字列データ53を生成する(ステップS102)。
【0137】
識別部20は、ステップS202で生成された文字列データ53が生成された文字列データであるか実データであるかを識別する(ステップS204)。
【0138】
第2更新部22は、ステップS204の識別結果に基づいて、生成部19のパラメータを更新する(ステップS206)。第2更新部22は、文字列データ53を実データであると誤識別する確率が高くなるように、生成部19のパラメータを更新する。
【0139】
複数の認識部25は、ステップS202で生成された文字列データ53によって表される文字列を認識する(ステップS208)。
【0140】
判定部27は、ステップS208で認識された、複数の認識部25の各々の認識結果55に基づいて、ステップS202で生成された文字列データ53の文字列の認識し難さを判定する(ステップS210)。
【0141】
収集部29は、ステップS210で判定された認識し難さが予め定めた条件を満たすか否かを判定する(ステップS212)。例えば、収集部29は、ステップS210の判定結果が、認識し難い文字列であることを表す判定結果であるか否かを判定する。
【0142】
ステップS212で否定判断すると(ステップS212:No)、後述するステップS216へ進む。ステップS212で肯定判断すると(ステップS212:Yes)、ステップS214へ進む。
【0143】
ステップS214では、ステップ202で生成された文字列データ53を、学習データとして収集する(ステップS214)。そして、ステップS216へ進む。
【0144】
ステップS208~ステップS214の処理によって、認識し難いと判定された文字列データ53が、学習データとして収集される。すなわち、ステップS214の処理によって、崩れたまたは汚い筆跡で描かれた文字列の文字列データ53が学習データとして収集される。
【0145】
ステップS216では、第1更新部30が、ステップS208の認識結果55に基づいて、複数の認識部25の一部が誤認識する文字列データ53を生成するように生成部19のパラメータを更新する(ステップS216)。
【0146】
次に、制御部13は、認識部25のロスが収束したか否かを判断する(ステップS218)。制御部13は、認識部25のロスが上述した第1閾値以下に収束したか否かを判別することで、ステップS218の判断を実行する。
【0147】
ステップS218で否定判断すると(ステップS218:No)、上記ステップS202へ戻る。ステップS218で肯定判断すると(ステップS218:Yes)、本ルーチンを終了する。
【0148】
なお、ステップS204~ステップS206の処理は、ステップS208~ステップS216の処理の後に実行してもよい。
【0149】
以上説明したように、本実施形態の学習データ生成装置10Bは、上記実施形態で用いた文字データ52に替えて、文字列データ53を用いる。収集部29は、複数の認識部25の各々の認識結果55に基づいて判定された文字列データ53の認識し難さに基づいて、認識し難さが予め定めた条件を満たす文字列データ53を学習データとして収集する。
【0150】
このため、本実施形態の学習データ生成装置10Bは、認識し難い対象データである文字列データ53を学習データとして効率よく収集することができる。
【0151】
従って、本実施形態の学習データ生成装置10Bは、上記実施形態と同様に、対象認識用の効果的な学習データを提供することができる。
【0152】
(第3の実施形態)
本実施形態では、収集された学習データを用いて学習する学習モデルを更に備えた構成を説明する。
【0153】
図7は、本実施形態の学習データ生成装置10Cの一例を示す模式図である。学習データ生成装置10Cは、学習データ生成装置10の一例である。
【0154】
なお、本実施形態の学習データ生成装置10Cにおいて、上記実施形態と同様の機能および構成を示す部分には、同じ符号を付与して詳細な説明を省略する。
【0155】
学習データ生成装置10Cは、記憶部14と、通信部16と、制御部32と、を備える。学習データ生成装置10Cは、制御部12に替えて制御部32を備えた点以外は、上記実施形態の学習データ生成装置10Aと同様の構成である。
【0156】
制御部32は、生成部18と、識別部20と、第2更新部22と、複数の認識部24と、判定部26と、収集部28と、第1更新部30と、学習部34と、を備える。制御部32は、学習部34を更に備える点以外は、第1の実施形態の学習データ生成装置10Aの制御部12と同様の構成である。
【0157】
学習部34は、学習モデルを学習する。学習部34によって学習される学習モデルは、対象認識用の学習モデルである。本実施形態では、学習モデルは、文字認識用の学習モデルである形態を一例として説明する。
【0158】
学習部34によって学習される学習モデルは、例えば、CNN、GCN、またはRNNなどのニューラルネットワークで構成される深層学習モデル(DNN)である。
【0159】
学習部34は、収集部28によって収集された学習データである文字データ52から、文字データ52によって表される文字を出力する学習モデルを学習する。すなわち、学習部34は、収集部28によって収集された学習データを入力とし、該学習データである文字データ52に対応する正解文字データ50に付与された正解ラベルである正解の文字を出力とする、学習モデルを学習する。
【0160】
学習部34は、収集部28によって収集された学習データである文字データ52を用いて学習モデルを学習するため、効率よく高精度に対象認識可能な学習モデルを学習することができる。
【0161】
また、学習データ生成装置10Cに学習部34を備えた構成とすることで、収集部28で収集された学習データを学習部34で直接学習に用いることができる。このため、学習データ生成装置10Cは、大容量メモリを搭載した構成とすればよく、ストレージや高速R/W(リーダ・ライタ)を搭載せずに学習を実行することが可能となる。
【0162】
なお、学習部34は、学習データから正解ラベルである正解の文字を出力する確率が高くなるように、学習モデルの重み値などを更新することで学習すればよい。
【0163】
なお、本実施形態では、上記実施形態の学習データ生成装置10Aに更に学習部34を備えた構成を一例として説明した。しかし、学習部34は、上記実施形態の学習データ生成装置10Bに搭載した構成であってもよい。この場合、学習部34は、収集部29で収集された学習データである文字列データ53を用いて、正解ラベルである正解の文字列を出力する学習モデルを学習すればよい。
【0164】
次に、上記実施の形態の学習データ生成装置10のハードウェア構成を説明する。
図8は、上記実施の形態の学習データ生成装置10のハードウェア構成例を示す図である。
【0165】
上記実施の形態の学習データ生成装置10は、CPU71などの制御装置と、ROM(Read Only Memory)72やRAM(Random Access Memory)73などの記憶装置と、ネットワークに接続して通信を行う通信I/F74と、各部を接続するバス75と、を備える。
【0166】
上記実施の形態の学習データ生成装置10で実行されるプログラムは、ROM72等に予め組み込まれて提供される。
【0167】
上記実施の形態の学習データ生成装置10で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0168】
さらに、上記実施の形態の学習データ生成装置10Eで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施の形態の学習データ生成装置10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0169】
上記実施の形態の学習データ生成装置10で実行されるプログラムは、コンピュータを、上記実施の形態の学習データ生成装置10の各部として機能させうる。このコンピュータは、CPU71がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0170】
上記には、本発明の実施の形態を説明したが、上記実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上記新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0171】
10、10A、10B、10C 学習データ生成装置
18、19 生成部
20 識別部
22 第2更新部
24、24A、24B、24C、25、25A、25B、25C 認識部
26、27 判定部
28、29 収集部
30 第1更新部