(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024022192
(43)【公開日】2024-02-16
(54)【発明の名称】学習データ生成装置、学習装置、予測装置、学習データ生成方法、学習方法、予測方法、及びプログラム
(51)【国際特許分類】
G06V 30/194 20220101AFI20240208BHJP
【FI】
G06V30/194
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022125593
(22)【出願日】2022-08-05
(71)【出願人】
【識別番号】000003193
【氏名又は名称】TOPPANホールディングス株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【弁理士】
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】河津 光晟
(72)【発明者】
【氏名】波多野 亮平
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AB03
5B064CA08
5B064DA27
(57)【要約】
【課題】特徴を有する文字列において、その特徴を有する文字列、及び、一部の文言が省略される等してその特徴を有しない文字列の両方に対し、共通する1つのモデルを用いて文字を正しく文字認識させる。
【解決手段】構成要素に特徴を有する文字列の文字情報が記憶された文字列データベースと、文字列データベースから選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取る切取部と、手書きされた文字である手書文字の画像情報が記憶された画像データベースと、切取部によって切り取られた第2文字列を構成する文字のそれぞれに対応する手書文字の画像を前記画像データベースから選択する選択部と、選択部によって選択された画像を連結させることによって文字列画像を生成し、第2文字列の文字情報と文字列画像とを対応づけることによって、学習モデルに学習させる学習データを生成する生成部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
構成要素に特徴を有する文字列の文字情報が記憶された文字列データベースと、
前記文字列データベースから選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取る切取部と、
手書きされた文字である手書文字の画像情報が記憶された画像データベースと、
前記切取部によって切り取られた前記第2文字列を構成する文字のそれぞれに対応する前記手書文字の画像を前記画像データベースから選択する選択部と、
前記選択部によって選択された画像を連結させることによって文字列画像を生成し、前記第2文字列の文字情報と前記文字列画像とを対応づけることによって、学習モデルに学習させる学習データを生成する生成部と、
を備える学習データ生成装置。
【請求項2】
前記第1文字列の特徴に応じて、前記第2文字列として切り取る文字数である切取範囲が決定される、
請求項1に記載の学習データ生成装置。
【請求項3】
前記切取部は、前記切取範囲からランダムに選択した値を、前記第1文字列から切取る文字数である切取文字数とする、
請求項2に記載の学習データ生成装置。
【請求項4】
前記切取部は、前記第1文字列の文字数と前記切取文字数とに基づいて、前記第2文字列の文字数が前記切取文字数を下回らないようにランダムに始端位置を決定し、決定した前記始端位置を用いて、前記第1文字列における前記始端位置から前記切取文字数の文字列を前記第2文字列として切り取る、
請求項3に記載の学習データ生成装置。
【請求項5】
前記切取部は、前記第1文字列の文字数と前記切取文字数に基づいて、前記第2文字列の文字数が前記切取文字数を下回らない始端位置の全てを用いて、前記第1文字列における前記始端位置のそれぞれから前記切取文字数の文字列を前記第2文字列として切り取る、
請求項3に記載の学習データ生成装置。
【請求項6】
前記文字列データベースには、住所が示された文字列の文字情報が記憶される、
請求項1に記載の学習データ生成装置。
【請求項7】
請求項1から請求項6のいずれか一項に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって、手書きされた文字列における文字を予測するための予測モデルを生成する学習部、
を備える学習装置。
【請求項8】
請求項1から請求項6のいずれか一項に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって生成された、書きされた文字列における文字を予測するための予測モデルを用いて、手書きされた文字列における文字を予測する予測部、
を備える予測装置。
【請求項9】
構成要素に特徴を有する文字列の文字情報が記憶された文字列データベースと、手書きされた文字である手書文字の画像情報が記憶された画像データベースと、を備える学習データ生成装置であるコンピュータが行う学習データ生成方法であって、
切取部が、前記文字列データベースから選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取り、
選択部が、前記切取部によって切り取られた前記第2文字列を構成する文字のそれぞれに対応する前記手書文字の画像を前記画像データベースから選択し、
生成部が、前記選択部によって選択された画像を連結させることによって文字列画像を生成し、前記第2文字列の文字情報と前記文字列画像とを対応づけることによって、学習モデルに学習させる学習データを生成する、
を含む学習データ生成方法。
【請求項10】
学習装置であるコンピュータが行う学習方法であって、
学習部が、請求項1から請求項6のいずれか一項に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって、手書きされた文字列における文字を予測するための予測モデルを生成する、
学習方法。
【請求項11】
予測装置であるコンピュータが行う予測方法であって、
予測部が、請求項1から請求項6のいずれか一項に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって生成された、書きされた文字列における文字を予測するための予測モデルを用いて、手書きされた文字列における文字を予測する、
予測方法。
【請求項12】
構成要素に特徴を有する文字列の文字情報が記憶された文字列データベースと、手書きされた文字である手書文字の画像情報が記憶された画像データベースと、を備える学習データ生成装置であるコンピュータに、
前記文字列データベースから選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取らせ、
前記切り取られた前記第2文字列を構成する文字のそれぞれに対応する前記手書文字の画像を前記画像データベースから選択させ、
前記選択された画像を連結させることによって文字列画像を生成し、前記第2文字列の文字情報と前記文字列画像とを対応づけることによって、学習モデルに学習させる学習データを生成させる、
プログラム。
【請求項13】
学習装置であるコンピュータに、
請求項1から請求項6のいずれか一項に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって、手書きされた文字列における文字を予測するための予測モデルを生成させる、
プログラム。
【請求項14】
予測装置であるコンピュータに、
請求項1から請求項6のいずれか一項に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって生成された、書きされた文字列における文字を予測するための予測モデルを用いて、手書きされた文字列における文字を予測させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習データ生成装置、学習装置、予測装置、学習データ生成方法、学習方法、予測方法、及びプログラムに関する。
【背景技術】
【0002】
近年、ディープラーニングを用いた学習を行うことによって、帳票などに書かれている手書きの文字列を文字認識する手法が盛んに開発されている。
【0003】
ディープラーニングを用いた学習では、例えば、手書きの文字列を撮像した文字列画像を学習モデルに入力することによって文字列を認識させると共に、文字列として妥当な並びを学習する。ここで用いられる学習モデルは、例えば、CRNN(Convolution Recurrent Neural Networks)と称されるようなモデルである。CRNNでは、単純にCNN(Convolution Neural Networks)によって画像の特徴を学習させるだけではなく、画像を認識した結果をRNN(Recurrent Neural Networks)によって入力の前後関係を学習させることができる。
【0004】
例えば、特許文献1には、文字列をOCR(Optical character Recognition)によって認識させた結果に対して、文字列をいくつかのサブ文字列に分割し、RNNによって認識結果の正誤を学習する技術が開示されている。特許文献2には、文字列画像をCNNに入力することによってCNNスコア行列を求め、そのCNNスコア行列をRNNに入力することによって認識させた文字や文字列の並びが妥当であるかを学習する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2018-92459号公報
【特許文献2】特開2017-215859号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
通常、CRNNを用いて文字列画像を学習させる際には、文字や文字列の並びに特徴がある文字列の全体(以下、全体文字列という)を学習させることを想定している。文語を示す文字列であれば、全体文字列として、例えば、句点「。」、及び「です」或いは「ます」等の文末表現が含まれる文字列を学習させることを想定している。また、住所を示す文字列であれば、全体文字列として、都道府県から番地までが順番に一行で記載された文字列画像330(
図6A参照)に示された文字列を学習させることを想定している。
【0007】
一方、全体文字列が複数行で示されたり、或いは、一部の記載が省略されたりして、全体文字列における一部の文字列(以下、部分文字列という)が文字認識の対象となる場合がある。例えば、文語で示された文字列であれば、文字列の途中で改行されるなどして、部分文字列として、句点「。」等の文末表現が含まれない文字列が文字認識の対象となり得る。また、住所を示す文字列であれば、部分文字列として、二段に分けて記載された住所を示す文字列画像331(
図6B参照)の上段、或いは下段のみに示された文字列が文字認識の対象となり得る。
【0008】
前者のような全体文字列と、後者のような部分文字列とでは、文字列が持つ特徴が異なる。前述した通り、CRNNは、文字や文字列の並びを学習するモデルであることから、文字列が持つ特徴が異なる場合、それぞれの特徴毎に、別々のモデルを用いて学習させた方が、文字認識の精度が高くなる場合が多い。つまり、全体文字列を学習させたモデルを用いて全体文字列の文字認識を行い、部分文字列を学習させたモデルを用いて部分文字列の文字認識を行う方が、文字認識の精度が高くなる可能性が高い。しかし、データ容量などの観点から、複数のモデルのそれぞれを学習させたり、運用したりすることが困難な場合があり、共通する1つのモデルを用いて、全体文字列および部分文字列の両方の文字列を文字認識させたいというニーズがある。
【0009】
しかしながら、例えば、全体文字列を学習させたモデルを用いて、部分文字列の文字認識を行った場合、部分文字列の認識結果に、全体文字列の特徴に基づく誤った認識結果が含まれる可能性がある。例えば、文語で示された部分文字列における認識結果において、末尾に句点「。」が付されてしまう可能性がある。また、都道府県のみが書かれた部分文字列の認識結果において、末尾に、番地を示す「号」が付されてしまう可能性がある。
【0010】
本発明は、このような状況に鑑みてなされたものであり、構成要素に特徴を有する文字列において、その特徴を有する文字列、及び、一部の文言が省略される等してその特徴を有しない文字列の両方に対し、共通する1つのモデルを用いて文字を正しく文字認識させることができる学習データ生成装置、学習装置、予測装置、学習データ生成方法、学習方法、予測方法、及びプログラムを提供する。
【課題を解決するための手段】
【0011】
本発明の一態様にかかる学習データ生成装置は、構成要素に特徴を有する文字列の文字情報が記憶された文字列データベースと、前記文字列データベースから選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取る切取部と、手書きされた文字である手書文字の画像情報が記憶された画像データベースと、前記切取部によって切り取られた前記第2文字列を構成する文字のそれぞれに対応する前記手書文字の画像を前記画像データベースから選択する選択部と、前記選択部によって選択された画像を連結させることによって文字列画像を生成し、前記第2文字列の文字情報と前記文字列画像とを対応づけることによって、学習モデルに学習させる学習データを生成する生成部と、を備える。
【0012】
本発明の一態様にかかる学習装置は、上記に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって、手書きされた文字列における文字を予測するための予測モデルを生成する学習部、を備える。
【0013】
本発明の一態様にかかる予測装置は、上記に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって生成された、書きされた文字列における文字を予測するための予測モデルを用いて、手書きされた文字列における文字を予測する予測部、を備える。
【0014】
本発明の一態様にかかる学習データ生成方法は、構成要素に特徴を有する文字列の文字情報が記憶された文字列データベースと、手書きされた文字である手書文字の画像情報が記憶された画像データベースと、を備える学習データ生成装置であるコンピュータが行う学習データ生成方法であって、切取部が、前記文字列データベースから選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取り、選択部が、前記切取部によって切り取られた前記第2文字列を構成する文字のそれぞれに対応する前記手書文字の画像を前記画像データベースから選択し、生成部が、前記選択部によって選択された画像を連結させることによって文字列画像を生成し、前記第2文字列の文字情報と前記文字列画像とを対応づけることによって、学習モデルに学習させる学習データを生成する。
【0015】
本発明の一態様にかかる学習方法は、学習装置であるコンピュータが行う学習方法であって、学習部が、上記に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって、手書きされた文字列における文字を予測するための予測モデルを生成する。
【0016】
本発明の一態様にかかる予測方法は、予測装置であるコンピュータが行う予測方法であって、予測部が、上記に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって生成された、書きされた文字列における文字を予測するための予測モデルを用いて、手書きされた文字列における文字を予測する。
【0017】
本発明の一態様にかかるプログラムは、構成要素に特徴を有する文字列の文字情報が記憶された文字列データベースと、手書きされた文字である手書文字の画像情報が記憶された画像データベースと、を備える学習データ生成装置であるコンピュータに、前記文字列データベースから選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取らせ、前記切り取られた前記第2文字列を構成する文字のそれぞれに対応する前記手書文字の画像を前記画像データベースから選択させ、前記選択された画像を連結させることによって文字列画像を生成し、前記第2文字列の文字情報と前記文字列画像とを対応づけることによって、学習モデルに学習させる学習データを生成させるプログラムである。
【0018】
本発明の一態様にかかるプログラムは、学習装置であるコンピュータに、上記に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって、手書きされた文字列における文字を予測するための予測モデルを生成させるプログラムである。
【0019】
本発明の一態様にかかるプログラムは、予測装置であるコンピュータに、上記に記載の学習データ生成装置によって生成された学習データを用いて学習モデルを学習させることによって生成された、書きされた文字列における文字を予測するための予測モデルを用いて、手書きされた文字列における文字を予測させるプログラムである。
【発明の効果】
【0020】
本発明によれば、構成要素に特徴を有する文字列において、その特徴を有する文字列、及び、一部の文言が省略される等してその特徴を有しない文字列の両方に対し、共通する1つのモデルを用いて文字を正しく文字認識させることができる。
【図面の簡単な説明】
【0021】
【
図1】実施形態にかかる文字認識システム1の構成を示すブロック図である。
【
図2】実施形態にかかる学習データ生成装置10が行う処理を説明するための図である。
【
図3】実施形態の文字認識システム1が行う処理の流れを示すフローチャートである。
【
図4】実施形態の変形例にかかる学習データ生成装置10が行う処理を説明するための図である。
【
図5】実施形態の変形例にかかる学習データ生成装置10が行う処理を説明するための図である。
【
図6A】実施形態の文字認識システム1が文字認識をする文字列画像の例を示す図である。
【
図6B】実施形態の文字認識システム1が文字認識をする文字列画像の例を示す図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施の形態について図面を参照しながら説明する。
【0023】
(文字認識システム1の概要について)
文字認識システム1は、手書文字を文字認識するシステムである。手書文字は手書きされた文字である。
【0024】
文字認識システム1では、構成要素に特徴を有する文字列に対する文字認識を行う。ここでの特徴とは、文字認識の対象とする文字列において、一様な頻度よりも有意に高い確率で出現する、特定の文言(特定文言)が含まれることを指す。
【0025】
例えば、文字認識システム1において、文語を示す文字列の文字認識を行う場合、文字列の特徴として、例えば、句点「。」、「です」、「ます」等の文末表現を示す特定文言が、有意に高い割合で文字列に出現する。
【0026】
例えば、文字認識システム1において、住所を示す文字列の文字認識を行う場合、文字列の特徴として、例えば、「都」、「道」、「府」、「県」、「市」、「区」、「町」、「村」、「丁目」、及び「番地」等の地区を示す特定文言が、有意に高い割合で文字列に出現する。
【0027】
また、文字認識システム1では、文字列の全体(全体文字列)、及び全体文字列が複数行で示される等した場合における、全体文字列の一部の文字列(部分文字列)に対する文字認識を行う。
【0028】
図6(
図6A及び
図6B)は、実施形態の文字認識システム1が文字認識をする文字列画像の例を示す図である。
図6Aに示すように、本実施形態では、都道府県から番地までが順番に一行で記載された文字列画像330を、文字認識を行う対象とする。文字列画像330に対応する文字列は、「全体文字列」の一例である。
【0029】
図6Bに示すように、本実施形態では、都道府県から番地までを二段に分けて記載された住所を示す文字列画像331の上段、或いは下段のみに示された文字列を、文字認識を行う対象とする。文字列画像331の上段、或いは下段に対応する文字列は、「部分文字列」の一例である。
【0030】
以下では、住所の特徴を有する手書きの文字列の文字認識を行う場合を例示して説明する。しかしながらこれに限定されない。少なくとも文字の並べ方に何等かの規則性がある文字列であって、記載の形式が複数あり得る文字列であれば、任意の文字列に対し本実施形態の文字認識システム1を適用することが可能である。
【0031】
例えば、帳票において、一文字につき一枠で区切られていない等、自由に記入欄することができる自由記入欄に手書きで記載される事項、例えば、住所の他、年月日、電話番号、及び、法人名称等を示す文字列に対し本実施形態の文字認識システム1を適用することが可能である。また、文頭または文末に特定の文字列が付されたり、特定の文字列の記載が省略されたりする場合がある文字列に対し本実施形態の文字認識システム1を適用することが可能である。
【0032】
特に、年月日を示す文字列については、帳票などにおいて、元号が記入される場合と省略される場合があり得る。このような、帳票などにおいて手書きで記入された、元号が記入されたものと、元号の記載が簡略化されたり省略されたりしたものとが混在する年月日を示す文字列のそれぞれにおける文字認識に、本実施形態の文字認識システム1を適用することが可能である。
【0033】
また、電話番号を示す文字列については、帳票などにおいて、先頭の3桁(地域によっては4桁)の番号が、別の段に記入されたり、同じ段に記入されたり、省略されたりする場合がある。このような、帳票などにおいて手書きで記入された、先頭の3桁(地域によっては4桁)が、含まれているものと含まれていないものとが混在する電話番号を示す文字列のそれぞれにおける文字認識に、本実施形態の文字認識システム1を適用することが可能である。
【0034】
また、法人名称を示す文字列については、帳票などにおいて、「株式会社」、「銀行」、「信金」等の文言が記入される場合と、省略される場合があり得る。このような、帳票などにおいて手書きで記入された、「株式会社」等の記載が含まれているものと含まれていないものとが混在する法人名称を示す文字列のそれぞれにおける文字認識に、本実施形態の文字認識システム1を適用することが可能である。
【0035】
(文字認識システム1の構成について)
図1は、本発明の実施形態にかかる文字認識システム1のブロック図である。
図1に示すように、本発明の実施形態にかかる文字認識システム1は、学習データ生成装置10と、学習装置20と、予測装置30とを備える。
【0036】
(学習データ生成装置10について)
学習データ生成装置10は、コンピュータである。学習データ生成装置10として、PC(Personal Computer)、サーバ装置、クラウド等を適用することができる。学習データ生成装置10は、学習データを生成する。ここでの学習データは、文字認識を行うための学習モデル(学習装置20の学習モデル22)に学習させるデータである。
【0037】
学習データ生成装置10は、例えば、文字列DB11と、切取部12と、画像DB13と、選択部14と、生成部15と、画像データ記憶部16とを備える。
【0038】
学習データ生成装置10が備える機能部(切取部12、選択部14、及び生成部15)により行われる処理は、学習データ生成装置10がハードウェアとして備えるCPU(Central Processing Unit)にプログラムを実行させることによって実現される。
【0039】
ここでのプログラムは、学習データ生成装置10が備える記憶部に記憶される。記憶部は、HDD(Hard Disk Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、RAM(Random Access read/write Memory)、ROM(Read Only Memory)などの記憶媒体、あるいはこれらの組合せによって構成される。記憶部は、学習データ生成装置10の各種処理を実行するためのプログラムの他、各種処理を行う際に利用される一時的なデータを記憶する。
【0040】
なお、この学習データ生成装置10が備える記憶部に、後述する、文字列DB11、画像DB13、及び画像データ記憶部16が含まれていてもよいし、この記憶部とは別個に、文字列DB11、画像DB13、及び画像データ記憶部16が設けられていてもよい。
【0041】
文字列DB11は、構成要素に共通の特徴を持つ文字列群の文字情報(例えば、テキスト情報)が記憶されたデータベース(DB)である。例えば、文字列DB11には、物語文、論説文、住所であれば都道府県から町字以下までが示された文字列、及び氏名であれば姓名が示された文字列などが、記憶されている。学習データ生成装置10では、文字列DB11に記憶された文字列を用いて、学習データが生成される。
【0042】
ここでの特徴とは、文字認識の対象とする文字列において、一様な頻度よりも有意に高い確率で出現する、特定の文言(特定文言)が含まれることを指す。例えば、特定文言の文字数をnとし、文字数がnである文言が、c種類あるとする。字数がnである文言のそれぞれが出現する頻度が均一であれば、それぞれの文言は(1/c)の割合で文字列に出現する。これに対し、特定文言は、(1/c)よりも有意に高い割合で、その文字列に出現する。例えば、有意に高い割合と判定する閾値として、1%を適用することができる。なお、ここでのnおよびcは任意の自然数である。すなわち、文字列DB11に記憶された文字列は、特定文言が出現する頻度が有意に高い文字列である。
【0043】
切取部12は、文字列DB11から選択された文字列(第1文字列)に対して、切取処理を行う。切取処理は、第1文字列から、当該第1文字列の文字数よりも短い文字列(第2文字列)を切り取る処理である。切取処理の詳細については後で詳しく説明する。切取部12は、第2文字列の文字情報を、選択部14に出力する。
【0044】
画像DB13は、手書文字の画像情報が記憶されたデータベース(DB)である。例えば、画像DB13には、手書文字の一文字ごとに、その画像情報が記憶される。画像DB13には、各文字種に対して1つ以上の手書文字の画像情報が記憶される。
【0045】
選択部14は、第2文字列を構成する文字のそれぞれに対応する手書文字の画像を画像DB13から選択する。例えば、選択部14は、第2文字列を構成する文字の文字種に基づいて画像DB13を参照し、画像DB13に記憶されている当該文字種に対応する複数の手書文字から1つの手書文字を選択し、選択した手書文字の画像情報を抽出する。
【0046】
生成部15は、選択部14によって選択された手書文字の画像を連結することによってし、手書文字の文字列画像を生成する。画像DB13は、第2文字列の文字情報と、生成した手書文字の文字列画像とを対応づけることによって学習データを生成する。生成部15は、生成した学習データを画像データ記憶部16に記憶させる。
【0047】
画像データ記憶部16は、生成部15によって生成された学習データを記憶する。学習データには、文字情報と、その文字情報に対応する手書文字の文字列画像とが対応づけられている。
【0048】
(学習装置20について)
学習装置20は、コンピュータである。学習装置20として、PC、サーバ装置、クラウド等を適用することができる。学習装置20は、文字認識を行うための学習済モデル(予測装置30の予測モデル32)を生成する。
【0049】
学習装置20は、例えば、学習部21と学習モデル22とを備える。学習装置20が備える機能部(学習部21)により行われる処理は、学習装置20がハードウェアとして備えるCPUにプログラムを実行させることによって実現される。ここでのプログラムは、学習装置20が備える記憶部に記憶される。記憶部は、HDD、フラッシュメモリ、EEPROM、RAM、ROMなどの記憶媒体、あるいはこれらの組合せによって構成される。記憶部は、学習装置20の各種処理を実行するためのプログラムの他、各種処理を行う際に利用される一時的なデータを記憶する。
【0050】
学習部21は、学習モデル22を含む。学習部21は、学習モデル22に学習データを学習させる。学習部21は、画像データ記憶部16を参照することによって、文字情報と、その文字情報に対応する手書文字の文字列画像とが対応づけられた学習データを取得する。学習部21は、取得した学習データを学習モデル22に入力することによって、学習モデル22を学習させる。
【0051】
学習モデル22は、例えば、CRNNであり、文字列画像に示されている文字列が、何の文字であるかを学習するためのモデルである。学習モデル22は、学習モデル22におけるCRNNのCNNの部分によって、画像DB13に記憶されている手書文字の画像と文字との対応関係を、事前に学習させたモデルである。
【0052】
(予測装置30について)
予測装置30は、コンピュータである。予測装置30として、PC、サーバ装置、クラウド等を適用することができる。予測装置30は、文字認識を行う。予測装置30は、予測モデル32を用いて文字認識を行う。
【0053】
予測装置30は、例えば、予測部31と予測モデル32と予測画像DB33と出力部34とを備える。予測装置30が備える機能部(予測部31及び出力部34)により行われる処理は、予測装置30がハードウェアとして備えるCPUにプログラムを実行させることによって実現される。ここでのプログラムは、予測装置30が備える記憶部に記憶される。記憶部は、HDD、フラッシュメモリ、EEPROM、RAM、ROMなどの記憶媒体、あるいはこれらの組合せによって構成される。記憶部は、予測装置30の各種処理を実行するためのプログラムの他、各種処理を行う際に利用される一時的なデータを記憶する。この記憶部に、予測モデル32及び予測画像DB33が記憶されていてもよいし、別の記憶媒体に、予測モデル32及び予測画像DB33が記憶されていてもよい。
【0054】
予測部31は、予測モデル32を含む。予測部31は、予測モデル32を用いて、手書文字で示されている文字列に対応する文字を予測する。予測部31は、予測画像DB33を参照することによって、文字認識の対象とする手書きの文字列の画像を取得する。予測部31は、取得した画像の画像情報を予測モデル32に入力することによって、予測モデル32から得られる出力を、その手書の文字列に対応する文字の予測結果とする。
【0055】
予測モデル32は、学習装置20によって学習された学習モデル22である。予測モデル32は、入力された文字列画像に対応する文字列の文字情報を、文字列画像における文字認識の結果として出力する。
【0056】
予測画像DB33は、文字認識の対象である手書きの文字列の画像情報が記憶されたデータベース(DB)である。予測画像DB33には、予測部31と同様の特徴を有する文字列、例えば、住所などが手書で記載された文字列がスキャンされることによって生成された画像の画像情報が記憶される。
【0057】
出力部34は、予測モデル32によって予測された文字認識の結果を出力する。出力部34は、例えば、液晶ディスプレイを備え、予測モデル32によって予測された文字認識の結果を液晶ディスプレイに表示する。
【0058】
(切取処理について)
ここで、切取部12が行う切取処理について、
図2を用いて説明する。
図2は、実施形態にかかる学習データ生成装置10が行う処理を説明するための図である。
【0059】
切取部12は、例えば、予め定められた切取範囲に応じて、切取文字数をランダムに決定する。切取範囲は、第2文字列として切り取る文字数の範囲である。切取範囲は、文字列の特徴によって決定される。例えば、住所を示す文字列の場合、切取範囲は、8~16文字などに設定される。切取文字数は、第2文字列の文字数である。
【0060】
図2には、切取処理が示されている。文字列401は、学習データ生成装置10から選択された文字列「富山県魚津市本新町8丁目9番3号」であり、第1文字列の一例である。文字列402は、文字列401から切取られた文字列「県魚津市本新町8丁目」であり、第2文字列の一例である。
【0061】
まず、切取部12は、切取文字数を決定する。例えば、切取部12は、切取範囲からランダムに切取文字数を決定する。例えば、切取範囲が8~16に設定されている場合、切取部12は、ある文字列401に対し、切取文字数を「10」に決定する。また、切取部12は、別の文字列401に対し、切取文字数を「16」に決定する。
【0062】
このように、ランダムに切取文字数を決定することによって、文字列の特徴である特定文言が含まれる第2文字列と、含まれない第2文字列とを無作為に生成することができ、学習データにおける偏り、つまり、特定文言が出現する頻度を低減させることができる。
【0063】
次に、切取部12は、文字列401を切取るか否かを判定する。切取部12は、文字列401の文字数と、切取文字数とを比較し、切取文字数が、文字列401の文字数より小さい場合に文字列401を切取る(切取あり)と判定する。一方、切取部12は、切取文字数が、文字列401の文字数以上である場合に文字列401を切取らない(切取なし)と判定する。このように、切取部12は、文字列401の文字数と、切取文字数との関係に応じて、切取処理を行うか否かを判定するようにしてよい。
【0064】
例えば、切取文字数を「10」とした場合、切取部12は、切取文字数である「10」が文字列401の文字数「16」より小さいことから、文字列401を切取る(切取あり)と判定する。一方、切取文字数を「16」とした場合、切取部12は、切取文字数である「16」が、文字列401の文字数「16」以上であることから、文字列401を切取らない(切取なし)と判定する。
【0065】
切取ありの場合、切取部12は、始端位置を決定する。始端位置は、文字列401から切り取る文字列の先頭となる文字の位置である。
【0066】
まず、切取部12は、切取文字数と文字列401の文字数との関係に基づいて、切り取り後における文字列の文字数が切取文字数未満にならないような、始端位置の範囲(始端範囲)を決定する。例えば、切取文字数として「10」を選択した場合、切取部12は、文字列401の文字数「16」から切取文字数「10」を減算した数である「6」に1を加えた数を上限とする範囲、つまり「1~7」文字目を、始端範囲とする。
【0067】
次に、切取部12は、始端範囲からランダムに始端位置を決定する。例えば、始端範囲が「1~7」文字目である場合、切取部12は、ある文字列401については始端位置として「3」を選択する。また、切取部12は、別の文字列401については始端位置として「5」を選択する。
【0068】
このように、ランダムに始端位置を決定することによって、文字列の特徴である特定文言が含まれる第2文字列と、含まれない第2文字列とを無作為に生成することができ、学習データにおける偏り、つまり、特定文言が出現する頻度を低減させることができる。
【0069】
切取部12は、文字列401における始端位置から、切取文字数に相当する数の文字を切り取ることによって、第2文字列としての文字列402を生成する。
【0070】
例えば、始端位置として「3」を選択した場合、切取部12は、文字列401における3番目の文字「県」から、切取文字数である「10」文字を切取ることによって、「県魚津市本新町8丁目」との文字列402を、第2文字列として生成する。そして、切取部12によって生成された文字列402に対し、選択部14によって文字列402を構成する文字のそれぞれに対応する手書文字の画像が選択され、生成部15によって画像が連結されることによって文字列画像403が生成される。
【0071】
一方、切取文字数を「16」とした場合、切取部12は、文字列401を切取らない(切取なし)と判定する。そして、切取部12によって切取りなしが選択された文字列401に対し、選択部14によって文字列401を構成する文字のそれぞれに対応する手書文字の画像が選択され、生成部15によって画像が連結されることによって文字列画像404が生成される。
【0072】
(文字認識システム1が行う処理の流れについて)
図3は、本発明の実施形態にかかる文字認識システム1が行う処理を示すフローチャートである。
(ステップS1):学習データ生成装置10の切取部12は、文字列DB11に記憶された文字列から、第1文字列を選択する。
(ステップS2):切取部12は、切取文字数を決定する。切取部12は、例えば、予め決定された切取範囲からランダムに選択した文字数を切取文字数とする。
(ステップS3):切取部12は、第1文字列の文字数が、ステップS2で決定した切取文字数を超えるか否かを判定する。
(ステップS4):第1文字列の文字数が、切取文字数を超える場合、切取部12は、始端位置を決定し、始端位置から切取文字数の文字列を切り取ることによって第2文字列を生成する。例えば、切取部12は、第1文字列の文字数と切取文字数との関係から算出した始端範囲からランダムに選択した位置を始端位置とする。
(ステップS5):選択部14は、第2文字列の各文字に対応する手書文字の画像を、画像DB13から選択する。
(ステップS6):生成部15は、選択部14によって選択された画像を結合することによって文字列画像を生成する。
(ステップS7):生成部15は、第2文字列の文字情報と、ステップS7で生成した文字列画像とを対応づけることによって学習データを生成し、生成した学習データを画像データ記憶部16に記憶させる。
(ステップS8):学習装置20の学習部21は、学習データを用いて、学習モデル22を学習させることによって学習済モデル(予測モデル32)を生成する。学習部21は、学習データとして、画像データ記憶部16に記憶された文字列の文字情報と、その文字情報に対応する手書文字の画像とを取得し、取得した学習データを学習モデル22に入力することによって、学習モデル22を学習させる。
(ステップS9):予測装置30の予測部31は、予測画像DB33から取得した手書文字で書かれた文字列画像を予測モデル32に入力する。
(ステップS10):出力部34は、予測モデル32から出力された予測結果を表示する。
【0073】
(まとめ)
以上説明したように、実施形態の学習データ生成装置10は、文字列DB11(文字列データベース)と、切取部12と、画像DB13(画像データベース)と、選択部14と、生成部15を備える。文字列DB11は、構成要素に特徴を有する文字列の文字情報が記憶されたデータベースである。切取部12は、文字列DB11から選択された第1文字列から、当該第1文字列の文字数よりも短い文字数を有する第2文字列を切り取る。画像DB13は、手書文字の画像情報が記憶されたデータベースである。手書文字は、手書きされた文字である。選択部14は、第2文字列を構成する文字のそれぞれに対応する手書文字の画像を、画像DB13から選択する。生成部15は、選択部14によって選択された画像を連結させることによって文字列画像を生成する。生成部15は、第2文字列の文字情報と文字列画像とを対応づけることによって、学習データを生成する。学習データは、学習モデルに学習させるデータである。これにより、実施形態の学習データ生成装置10では、第1文字列を用いて、第1文字列の特徴を有する文字列と、第1文字列の特徴を有さない文字列とを生成することができる。したがって、構成要素に特徴を有する文字列において、その特徴を有する文字列、及び、一部の文言が省略される等してその特徴を有しない文字列の両方に対し、共通する1つのモデルを用いて文字を正しく文字認識させることができる。
【0074】
また、実施形態の学習データ生成装置10では、第1文字列の特徴に応じて、切取範囲(第2文字列として切り取る文字数の範囲)が決定される。これにより、実施形態の学習データ生成装置10では、複数の記入形式が存在し得るような場合に、それぞれの記入形式に対応する文字数の学習データを生成することができる。例えば、住所を示す文字列であれば、住所が二段で記載される場合において、上段或いは下段に記載される平均的な文字数に応じて、切取範囲を決定することができる。或いは、住所が二段で記載される場合を考慮して、住所を示す文字列における平均的な文字数の半分に相当する数を中心として、マージンを付与した範囲を切取文字数としてもよい。また、切取範囲を決定することにより、切取文字数を固定することなく、切取範囲において様々な文字数の学習データを生成することができ、実際に手書記される文字列に近い学習データを生成することが可能となる。
【0075】
また、実施形態の学習データ生成装置10では、切取部12は、切取範囲からランダムに選択した値を、切取文字数とする。切取文字数は、第1文字列から切取る文字数である。また、切取文字数は、第2文字列の文字数である。これにより、実施形態の学習データ生成装置10では、複数の記入形式が存在し得るような場合に、切取範囲において無作為に選択した文字数の学習データを生成することができ、実際に手書記される文字列に近い学習データを生成することが可能となる。
【0076】
また、実施形態の学習データ生成装置10では、切取部12は、第1文字列の文字数と切取文字数とに基づいて、第2文字列の文字数が切取文字数を下回らないようにランダムに始端位置を決定する。切取部12は、決定した始端位置を用いて、第1文字列における始端位置から切取文字数の文字列を、第2文字列として切り取る。これにより、実施形態の学習データ生成装置10では、ランダムに始端位置を決定することができ、様々な学習データを生成することが可能となる。
【0077】
また、実施形態の学習データ生成装置10では、文字列DB11には、住所が示された文字列の文字情報が記憶される。これにより、実施形態の学習データ生成装置10では、住所の特徴を有する文字列について、住所が一段で記載される場合と複数段で記載される場合との両方に対応できる学習データを生成することができる。
【0078】
(実施形態の変形例)
ここで、実施形態の変形例について説明する。実施形態の変形例では、始端範囲にある全ての始端位置のそれぞれに対応する第2文字列が生成される点において、上述した実施形態と相違する。
【0079】
図4及び
図5は、実施形態の変形例にかかる学習データ生成装置10が行う処理を説明するための図である。
図4に示すように、文字列401の文字数が「16」であり、切取文字数が「10」である場合、始端範囲は「1~7」文字目となる。本変形例では、切取部12は、始端範囲にある「1~7」文字目のそれぞれに対応する全ての始端位置のそれぞれに対応する第2文字列を生成する。具体的には、
図5に示すように、始端位置「7」文字目に対応する「本新町8丁目9番3号」との文字列402、始端位置「6」文字目に対応する「市本新町8丁目9番3」との文字列402、…、始端位置「1」文字目に対応する「富山県魚津市本新町8」との文字列402のそれぞれが生成される。
【0080】
以上説明したように、実施形態の変形例に係る学習データ生成装置10では、切取部12は、始端範囲にある始端位置の全てを用いて、第1文字列における始端位置のそれぞれから切取文字数の文字列を第2文字列として切り取る。これにより、実施形態の変形例に係る学習データ生成装置10では、1つの第1文字列から、多数の第2文字列を生成することができる。
【0081】
上述した実施形態における文字認識システム1及び学習データ生成装置10の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0082】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0083】
1…文字認識システム、10…学習データ生成装置、11…文字列DB(文字列データベース)、12…切取部、13…画像DB(画像データベース)、14…選択部、15…生成部