(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】学習モデルの生成方法、コンピュータプログラム、情報処理装置、及び情報処理方法
(51)【国際特許分類】
G06V 30/194 20220101AFI20240110BHJP
G06T 7/00 20170101ALI20240110BHJP
【FI】
G06V30/194
G06T7/00 350C
(21)【出願番号】P 2019233573
(22)【出願日】2019-12-24
【審査請求日】2022-11-11
【新規性喪失の例外の表示】特許法第30条第2項適用 令和 1年 6月 4日に、2019年度 人工知能学会全国大会(第33回)にて公開 令和 1年 7月 1日に、データサイエンティスト:ゆるふわ採用座談会にて公開 令和 1年 7月13日に、CCSE 2019にて公開 令和 1年 7月16日に、Data Driven Developer Meetup #6にて公開
(73)【特許権者】
【識別番号】512200217
【氏名又は名称】GO株式会社
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】高橋 文彦
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2018-152026(JP,A)
【文献】特開2019-148521(JP,A)
【文献】特開2018-132953(JP,A)
【文献】Khaoula Elagouni,Combining Multi-Scale Character Recognition and Linguistic Knowledge for Natural Scene Text OCR,2012 10th IAPR International Workshop on Document Analysis Systems,IEEE,2012年,P.120-124,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6195347
【文献】芦田 和毅,情景画像からの文字抽出,電子情報通信学会論文誌 D-II,日本,社団法人電子情報通信学会,2005年09月01日,Vol.J88-D-II No.9,P.1817-1824
【文献】Siyang Qin,Cascaded Segmentation-Detection Networks for Word-Level Text Spotting,2017 14th IAPR International Conference on Document Analysis and Recognition,IEEE,2017年,P.1275-1282,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8270141
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/194
G06V 30/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
画像データを入力した場合に、写っている文字列のテキストデータ及び存否データを出力する学習モデルを、
生成する方法であって、
前記学習モデルは、画像データを分別して順次入力する畳み込みニューラルネットワーク、及び、該畳み込みニューラルネットワークから出力された特徴量データを順次入力する再帰型ニューラルネットワークを含み、
前記再帰型ニューラルネットワークは、入力された画像データの画像に写る文字列を出力する第1出力層、及び、前記画像における文字列の存否データを出力する第2出力層を含み、
前記学習モデルに対し、文字列が写っている画像の画像データ及び前記文字列のテキストデータの組、文字列が写っている画像及び文字列が写っていない画像それぞれの画像データと、該画像データそれぞれについて画像に文字列が写っているか否かを示す存否データとの組を含む教師データを取得し、
前記教師データに含まれる、文字列が写っている画像の画像データが入力される場合に、前記第1出力層からの出力と、第2出力層からの出力とを用いて、前記畳み込みニューラルネットワークにおけるパラメータを学習し、
前記教師データに含まれる、文字列が写っていない画像の画像データが入力される場合には、前記畳み込みニューラルネットワーク及び再帰型ニューラルネットワークにおけるパラメータを、前記第1出力層からの出力を用いず、前記第2出力層からの出力を用いた損失関数によって学習する
学習モデルの生成方法。
【請求項2】
前記畳み込みニューラルネットワークには、入力された画像データの画像から、水平方向に順次、相互に重複する所定範囲を抽出し、抽出した所定範囲の画像の画像データが入力される
請求項
1に記載の生成方法。
【請求項3】
前記文字列が写っている画像の画像データが入力される場合に、前記第1出力層からの出力と、第2出力層からの出力とを用いて前記教師データの正解のテキストデータとなる確率を最大化するように、前記畳み込みニューラルネットワーク及び再帰型ニューラルネットワークにおけるパラメータを学習
する
請求項
1又は2に記載の生成方法。
【請求項4】
前記学習モデルは、
文字列が写っている画像の画像データが入力された場合には、前記文字列のテキストデータ、及び文字列が写っていることを示す存否データを出力し、
文字列が写っていない画像の画像データが入力された場合には文字列が写っていないことを示す存否データを出力するように学習される
請求項
1から請求項
3のいずれか1項に記載の生成方法。
【請求項5】
前記画像データは、車両に外向きに搭載された撮影装置によって撮影された画像データである
請求項1から請求項
4のいずれか1項に記載の生成方法。
【請求項6】
コンピュータに、画像データを入力した場合に、写っている文字列のテキストデータ及び存否データを出力する学習モデルを、生成させるコンピュータプログラムであって、
前記学習モデルは、画像データを分別して順次入力する畳み込みニューラルネットワーク、及び、該畳み込みニューラルネットワークから出力された特徴量データを順次入力する再帰型ニューラルネットワークを含み、
前記再帰型ニューラルネットワークは、入力された画像データの画像に写る文字列を出力する第1出力層、及び、前記画像における文字列の存否データを出力する第2出力層を含み、
前記コンピュータに、
前記学習モデルに対し、文字列が写っている画像の画像データ及び前記文字列のテキストデータの組、文字列が写っている画像及び文字列が写っていない画像それぞれの画像データと、該画像データそれぞれについて画像に文字列が写っているか否かを示す存否データとの組を含む教師データを取得し、
前記教師データに含まれる、文字列が写っている画像の画像データが入力される場合に、前記第1出力層からの出力と、第2出力層からの出力とを用いて、前記畳み込みニューラルネットワークにおけるパラメータを学習し、
前記教師データに含まれる、文字列が写っていない画像の画像データが入力される場合には、前記畳み込みニューラルネットワーク及び再帰型ニューラルネットワークにおけるパラメータを、前記第1出力層からの出力を用いず、前記第2出力層からの出力を用いた損失関数によって学習する
処理を実行させるコンピュータプログラム。
【請求項7】
コンピュータが、画像データを入力した場合に、写っている文字列のテキストデータ及び存否データを出力する学習モデルを、生成する方法であって、
前記学習モデルは、画像データを分別して順次入力する畳み込みニューラルネットワーク、及び、該畳み込みニューラルネットワークから出力された特徴量データを順次入力する再帰型ニューラルネットワークを含み、
前記再帰型ニューラルネットワークは、入力された画像データの画像に写る文字列を出力する第1出力層、及び、前記画像における文字列の存否データを出力する第2出力層を含み、
前記コンピュータは、
前記学習モデルに対し、文字列が写っている画像の画像データ及び前記文字列のテキストデータの組、文字列が写っている画像及び文字列が写っていない画像それぞれの画像データと、該画像データそれぞれについて画像に文字列が写っているか否かを示す存否データとの組を含む教師データを取得し、
前記教師データに含まれる、文字列が写っている画像の画像データが入力される場合に、前記第1出力層からの出力と、第2出力層からの出力とを用いて、前記畳み込みニューラルネットワークにおけるパラメータを学習し、
前記教師データに含まれる、文字列が写っていない画像の画像データが入力される場合には、前記畳み込みニューラルネットワーク及び再帰型ニューラルネットワークにおけるパラメータを、前記第1出力層からの出力を用いず、前記第2出力層からの出力を用いた損失関数によって学習する
情報処理方法。
【請求項8】
請求項1から5のいずれか1項に記載した生成方法によって学習済みのモデルを記憶してあるコンピュータに、
画像データを取得し、
取得した画像データを前記モデルに入力し、
前記モデルから出力されたテキストデータ及び存否データに基づき、前記画像データの画像に文字列が写っているか否か、及び、写っている文字列を出力する
処理を実行させるコンピュータプログラム。
【請求項9】
前記コンピュータに、
前記モデルから出力されたテキストデータと、該テキストデータと共に出力される前記画像データの画像に文字列が写っている確信度に関する情報と、前記画像データとを対応付けて記憶する
処理を実行させる請求項
8に記載のコンピュータプログラム。
【請求項10】
前記コンピュータに、
前記モデルから出力された存否データが、文字列が写っていないことを示している場合に、前記画像データと、文字列の不存在を示すデータとを対応付けて記憶する
処理を実行させる請求項
8又は
9に記載のコンピュータプログラム。
【請求項11】
前記画像データは、車両に外向きに搭載された撮影装置によって撮影された画像データである
請求項
8から請求項
10のいずれか
1項に記載のコンピュータプログラム。
【請求項12】
前記コンピュータに、
前記画像データが撮影されたタイミングにおける前記車両の位置データを取得し、
取得した位置データを、前記画像データを前記モデルに入力することによって前記モデルから出力されるテキストデータ及び存否データと対応付けて記憶する
処理を実行させる請求項
11に記載のコンピュータプログラム。
【請求項13】
画像データを入力した場合に、前記画像データの画像に検出対象の文字列が写っている範囲を検出するように学習されてある第1モデル、及び、
請求項1から5のいずれか1項に記載した生成方法によって学習済みの第2モデルを記憶してあるコンピュータに、
第1画像データを取得し、
取得した第1画像データを前記第1モデルに入力し、
前記第1画像データの画像から、前記第1モデルにて検出された検出範囲を抽出した第2画像データを取得し、
第2画像データを前記第2モデルに入力し、
前記第1モデルから出力される、検出範囲及び該検出範囲に文字列が写っている確信度、並びに、前記第2モデルから出力されたテキストデータ及び該テキストデータと共に出力される文字列である確信度を、前記第1画像データと対応付けて記憶する
処理を実行させるコンピュータプログラム。
【請求項14】
請求項1から5のいずれか1項に記載した生成方法によって学習済みのモデルが記憶してある記憶部と、
画像データを取得する画像取得部と、
該画像取得部が取得した画像データを前記モデルに入力することによって前記モデルから出力されたテキストデータ及び存否データに基づき、前記画像データの画像に文字列が写っているか否か、及び、写っている文字列を出力する出力部と
を備える情報処理装置。
【請求項15】
請求項1から5のいずれか1項に記載した生成方法によって学習済みのモデルを記憶しておき、
画像データを取得し、
取得した画像データを前記モデルに入力し、
前記モデルから出力されたテキストデータ及び存否データに基づき、前記画像データの画像に文字列が写っているか否か、及び、写っている文字列を出力する
処理を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から文字列を認識する学習モデルの生成方法、コンピュータプログラム、情報処理装置、及び、情報処理方法に関する。
【背景技術】
【0002】
画像内の文字列を、ニューラルネットワークを用いて認識する学習方法が種々提案されている。特許文献1には、帳票に記入されうる単語が登録されたデータベースを用いた学習によって、帳票の画像データからの文字列の認識処理の精度を改善する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ニューラルネットワークを用いた文字認識が多様な場面で可能であるとはいえ、あらゆる画像から特に条件もなく、文字を認識することは依然として難しい。ニューラルネットワークを用いた文字認識を精度よく、また学習効率を向上させるためには、特許文献1に示されているように、対象となる画像を特定の画像とし、認識対象外の単語を除外し、前後の文字から類推が可能な状態とすることが必要である。
【0005】
本発明は、精度よく、教師データのデータ量が少ない場合であっても効率的に学習できる文字認識のための学習モデルの生成方法、コンピュータプログラム、情報処理装置、及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一実施形態の学習モデルの生成方法は、文字列が写っている画像の画像データ及び前記文字列のテキストデータの組、画像データ及び該画像データの画像に文字列が写っているか否かを示す存否データの組を含む教師データを取得し、画像データを入力した場合に、写っている文字列のテキストデータ及び存否データを出力する学習モデルを、前記教師データを用いて生成する。
【0007】
本開示の学習モデルの生成方法では、学習モデルは、文字列が写っていない画像の画像データと、文字列が写っている画像の画像データ及びその画像に写っている文字列の正解データとを用いて、文字列が写っているか否かの存否の判定と、文字列の認識とを同一のネットワークで学習させて生成される。
【0008】
本開示の一実施形態の情報処理装置は、画像データを入力した場合に、前記画像データの画像に写っている文字列の認識結果であるテキストデータ及び存否データを出力するように学習してあるモデルが記憶してある記憶部と、画像データを取得する画像取得部と、該画像取得部が取得した画像データを前記モデルに入力することによって前記モデルから出力されたテキストデータ及び存否データに基づき、前記画像データの画像に文字列が写っているか否か、及び、写っている文字列を出力する出力部とを備える。
【0009】
本開示の一実施形態の情報処理方法は、画像データを入力した場合に、前記画像データ
の画像に写っている文字列の認識結果であるテキストデータ及び存否データを出力するように学習してあるモデルを記憶しておき、画像データを取得し、取得した画像データを前記モデルに入力し、前記モデルから出力されたテキストデータ及び存否データに基づき、前記画像データの画像に文字列が写っているか否か、及び、写っている文字列を出力する処理を含む。
【0010】
本開示の一実施形態のコンピュータプログラムは、画像データを入力した場合に、前記画像データの画像に写っている文字列の認識結果であるテキストデータ及び存否データを出力するように学習してあるモデルを記憶してあるコンピュータに、画像データを取得し、取得した画像データを前記モデルに入力し、前記モデルから出力されたテキストデータ及び存否データに基づき、前記画像データの画像に文字列が写っているか否か、及び、写っている文字列を出力する処理を実行させる。
【0011】
本開示のコンピュータプログラムでは、車両から撮像される画像に写っている文字といった、低解像であって教師データが少ない対象であっても、学習モデルを用いて認識精度を向上させることができる。
【0012】
本開示の一実施形態のコンピュータプログラムは、画像データを入力した場合に、前記画像データの画像に検出対象の文字列が写っている範囲を検出するように学習されてある第1モデル、及び、画像データを入力した場合に、写っている文字列を示すテキストデータ及び存否データを出力するように学習してある第2モデルを記憶してあるコンピュータに、第1画像データを取得し、取得した第1画像データを前記第1モデルに入力し、前記第1画像データの画像から、前記第1モデルにて検出された検出範囲を抽出した第2画像データを取得し、第2画像データを前記第2モデルに入力し、前記第1モデルから出力される、検出範囲及び該検出範囲に文字列が写っている確信度、並びに、前記第2モデルから出力されたテキストデータ及び該テキストデータと共に出力される文字列である確信度を、前記第1画像データと対応付けて記憶する処理を実行させる。
【発明の効果】
【0013】
本開示の生成方法によれば、少ない教師データであっても、教師データが多い場合と同程度の精度で文字列を認識できる学習モデルが生成できる。
【図面の簡単な説明】
【0014】
【
図1】文字認識を実行する情報処理装置のブロック図である。
【
図3】学習モデルの生成方法の一例を示すフローチャートである。
【
図6】学習データ量の精度の関係を示すグラフである。
【
図7】実施の形態2の情報提供サービスの概要図である。
【
図8】情報提供サービスを実現する通信機の構成を示すブロック図である。
【
図9】収集装置、情報処理装置及び記憶装置の構成を示すブロック図である。
【
図10】収集装置及び情報処理装置による処理手順の一例を示すフローチャートである。
【
図11】ドライブレコーダで撮像された画像に対する処理結果を示す。
【
図12】情報提供装置及び情報端末装置の構成を示すブロック図である。
【
図13】情報提供装置によって提供される情報の表示例を示す。
【発明を実施するための形態】
【0015】
本開示をその実施の形態を示す図面を参照して具体的に説明する。
【0016】
(実施の形態1)
図1は、文字認識を実行する情報処理装置1のブロック図である。情報処理装置1は、制御部10、画像処理部11、記憶部12、通信部13、及び読取部14を備える。情報処理装置1及び情報処理装置1における動作について以下では、1台のサーバコンピュータとして説明するが、複数のコンピュータによって処理を分散するようにして構成されてもよい。
【0017】
制御部10は、CPU(Central Processing Unit )等のプロセッサ及びメモリ等を用い、装置の構成部を制御して各種機能を実現する。画像処理部11は、GPU(Graphics
Processing Unit)又は専用回路等のプロセッサ及びメモリを用い、制御部10からの制御指示に応じて画像処理を実行し、学習モデル1Mとして機能する。なお、制御部10及び画像処理部11は、一体のハードウェアであってもよい。また制御部10及び画像処理部11は、CPU、GPU等のプロセッサ、メモリ、更には記憶部12及び通信部13を集積した1つのハードウェア(SoC:System On a Chip)として構成されていてもよい。
【0018】
記憶部12は、ハードディスク又はフラッシュメモリを用いる。記憶部12には、学習プログラム1P、DL(Deep Learning )ライブラリ1Lが記憶されている。また記憶部12には、DLライブラリ1Lを用いた学習によって生成される学習モデル1Mを定義する定義情報、学習済み(学習中)の学習モデル1Mにおける各層の重み係数等を含むパラメータ情報等が記憶される。
【0019】
記憶部12には、学習モデル1Mの学習を実行するための学習プログラム(コンピュータプログラム)1Pが記憶されている。制御部10は、学習プログラム1Pに基づいて、記憶部12に記憶されている定義情報に基づくネットワークのパラメータの学習処理を実行する。
【0020】
通信部13は、外部からのデータを入力し、外部へデータを送信するインタフェースである。通信部13は、インターネット等の通信網への通信接続を実現する通信モジュールである。通信部13は、ネットワークカード、無線通信デバイス又はキャリア通信用モジュールを含んでもよい。通信部13は、USBインタフェースであってもよい。
【0021】
読取部14は、例えばディスクドライブを用い、光ディスク等を用いた記録媒体7に記憶してある学習プログラム71P、DLライブラリ71Lを読み取ることが可能である。記憶部12に記憶してあるDLライブラリ1Lは、記録媒体7から読取部14が読み取った学習プログラム71Pを、制御部10が記憶部12に複製したものであってもよい。
【0022】
このように構成される情報処理装置1は、記憶部12に記憶してあるDLライブラリ1L、及び学習プログラム1Pに基づき、畳み込みニューラルネットワーク(以下、CNN(Convolutional Neural Network )と呼ぶ)及びリカレントNNを、学習モデル1Mとするべくパラメータを学習する処理を行なう。
【0023】
図2は、学習モデル1Mの概要図である。学習モデル1Mは、文字列の画像データを入力して特徴量を出力するCNN121と、CNN121からの出力を順次入力するBi-LSTM(Long Short Term Memory)であるRNN122とを含む。学習モデル1Mは、RNN122の出力から尤もらしい文字の確率分布を出力するCRF(Conditional Random Field)層123を含む。
【0024】
学習モデル1Mは、CRF層123からの出力を分岐させて入力し、画像に写っている
文字列のデータを出力する第1出力層124と、分岐された出力を入力し、画像に文字列が写っているかの存否データを出力する第2出力層125とを含む。
【0025】
このように、本開示の学習モデル1Mは、入力はCNN121であるのに対し、異なるデータを出力する第1出力層124及び第2出力層125を同時に学習させるマルチタスク学習によって生成される。
【0026】
CNN121は、入力された画像データの画像から、文字列の並列方向に、相互に重複する範囲を抽出するフィルターを含む。CNN121は、順次抽出された範囲の画像データについて、特徴量を文字列の並列方向に沿って順に出力する。
【0027】
RNN122は、CNN121から順に出力される特徴量を順に入力し、入力される範囲毎に、その範囲に写っている文字の確信度を順次出力する。このときRNNは、空白文字も含めてその確信度を出力する。
【0028】
CRF層123はRNN122から順次出力される文字及び角度から、CNN121に入力されている画像データの画像に写っている可能性が最も確率が高い文字の組み合わせを出力する。
【0029】
第1出力層124は、CRF層123から出力される文字列の組み合わせから、CNN121のフィルターで重複して抽出されていることを考慮し、連続する文字列は同一の文字であると判断し、CNN121に入力されている画像データの画像に写っている可能性が最も高い文字列を出力する。
図2に示すように第1出力層124は、CTC(Connectionist Temporal Classification )を用い、空白文字を挟まずに連続して同一の文字が出力されている場合には、1つの文字であるとして出力する。
【0030】
第2出力層125は、CRF層123から出力される文字列の組み合わせと、その確率から、CNN121に入力されている画像データの画像にそもそも、文字列が写っているか否かの判定結果である存否データを出力する。
【0031】
図3は、学習モデル1Mの生成方法の一例を示すフローチャートであり、
図4及び
図5は、学習モデル1Mの学習の概要図である。
図4及び
図5に示す概要図は、
図2の学習モデル1Mと、教師データの例を示している。
【0032】
制御部10は、学習プログラム1Pに基づいて、DLライブラリ1Lに基づいて画像処理部11を用い、
図2のように、CNN121、RNN122、CRF層123、第1出力層124、及び第2出力層125を定義するネットワークを生成する(ステップS101)。
【0033】
制御部10は、教師データとして
図4に示すように、文字列(
図4では数字列)が写っている画像の画像データをネットワークのCNN121へ与える(ステップS102)。制御部10は、ネットワークの第1出力層124から出力される文字列及びその確信度と、第2出力層125から出力される存否データ(確率)とを特定する(ステップS103)。
【0034】
制御部10は、ステップS103で特定した文字列のテキスト、確信度、存否データと、教師データである前記画像に写っている文字列を表すテキスト(正解)、及び、文字列が存在することを示す存否データ(正解)とを用いて損失を演算で求める(ステップS104)。
【0035】
制御部10は、画像処理部11を用い、ステップS104で求めた損失を、ネットワークに逆伝播させる学習を実行し、パラメータを更新する(ステップS105)。ステップS105において制御部10は、1つの画像データに対し、学習回数が所定回数と到達するまで、又は、第1出力層124から出力される文字列の精度が所定精度に到達するまで繰り返し学習するとよい。
【0036】
制御部10は、教師データとして
図5に示すように、文字列が写っていない画像の画像データをネットワークのCNN121へ与える(ステップS106)。制御部10は、第1出力層124からの出力は用いず、第2出力層125から出力される存否データ(確率)のみを特定する(ステップS107)。
【0037】
制御部10は、ステップS107で特定した存否データと、教師データである画像に文字列が存在しないことを示す存否データ(正解)とを用いて損失を演算で求める(ステップS108)。
【0038】
制御部10は、画像処理部11を用い、ステップS108で求めた損失を、ネットワークに逆伝播させる学習を実行し、パラメータを更新する(ステップS109)。ステップS109においても制御部10は、1つの画像データに対し、第2出力層125から出力される存否データの精度が所定精度に到達するまで繰り返し学習するとよい。
【0039】
制御部10は、教師データとして用意された画像データ全てについて学習処理を実行したか否かを判断する(ステップS110)。制御部10は、全てについて学習処理を実行していないと判断した場合(S110:NO)、処理をステップS102へ戻す。全てについて学習処理を実行したと判断された場合(S110:YES)、制御部10は、学習処理を終了する。
【0040】
図3のフローチャートに示す手順では、制御部10は、文字列が写っている画像を1つ選択してステップS102-S105の処理を実行してから、文字列がいない画像を1つ選択してステップS106-S109の処理を実行することを、全ての画像データに対して処理が完了するまで、交互に繰り返すとして説明した。しかしながら、制御部10は、文字列が写っている画像の全ての画像データについてステップS102-S105の処理を実行してから、文字列が写っていない画像の全ての画像データについてステップS106-S109の処理を実行するようにしてもよい。
【0041】
再学習の際は、新たな画像データを用いて制御部10は、ステップS102-S110の処理を実行するとよい。
【0042】
このように学習モデル1Mは、文字列が写っていない画像の画像データと、文字列が写っている画像の画像データ及びその画像に写っている文字列の正解データとを用いて、文字列が写っているか否かの存否の判定と、文字列の認識とを同一のネットワークで学習させて生成される。これにより、学習モデル1Mに対し、文字列(数字)の形自体を学習させることができ、認識精度が、少ない教師データ量でも向上する。
【0043】
実施の形態1では、学習モデル1Mは、
図2-5に示したように、CNN-RNNで構成するとして説明した。学習モデル1Mは、画像を文字列方向に順次抽出するフィルターを使わず、且つRNN122及びCRF層123を用いることなく実現されてもよい。例えば学習モデル1Mは、画像データを入力するCNN121及び他の公知の画像認識用のネットワークを用いて実現されてもよい。
【0044】
図6は、学習データ量の精度の関係を示すグラフである。
図6は、教師データの消費割
合に対する、認識精度の向上の推移を示す。
図6中、実線は、上述の学習モデル1Mの学習方法によって生成されている過程における精度の推移を示す。破線は、第2出力層125を用いないモデル、即ち単純に文字列認識を学習させたモデルにおける精度の推移を示す。
【0045】
図6に示すように、複数の出力によってネットワークのパラメータを更新するマルチタスク学習によって、少ない教師データ量であっても、学習が進んだ後の精度と同程度に向上していることが分かる。
【0046】
(実施の形態2)
実施の形態では、実施の形態1で説明した情報処理装置1によって文字列を認識し、認識した文字列と、文字列を含む画像が撮影された位置情報とを対応付けて記憶するデータベースを作成し、文字列が示すテキストデータに基づく情報を提供する情報提供サービスを実現する。認識される文字列は、実施の形態2においてはガソリンスタンドにおけるガソリンの値段を示す数字列である。
【0047】
図7は、実施の形態2の情報提供サービスの概要図である。情報提供サービスは、ガソリンスタンドが設けられている道路を走行する車両V、情報処理装置1、通信機2、収集装置3、記憶装置4、情報提供装置5、及び、情報端末装置6を含む。
【0048】
通信機2は、車両Vに搭載されている。通信機2は、車両Vに設けられたドライブレコーダによって得られる画像データを収集装置3へ画像データを送信する。通信機2と収集装置3との間は、公衆ネットワークN1及びキャリアネットワークN2を含むネットワークNを介して通信接続が可能である。ネットワークNは、車両Vと収集装置3との間の通信接続のための専用ネットワークを含んでもよいし、道路交通情報の通信に使用されるネットワークであってもよい。
【0049】
収集装置3は、複数の車両Vから画像データを収集し、記憶装置4に記憶させる。収集装置3、情報処理装置1、記憶装置4、及び情報提供装置5は、サービス提供者のローカルネットワークLNを介して相互に、また、各々、外部のネットワークNを介して他装置と通信接続が可能である。収集装置3は、記憶装置4に記憶した画像データを情報処理装置1へ与える。収集装置3は、情報処理装置1から出力される、画像データの画像に数字列が写っているか否か、写っている場合には数字列が示す数値は何であるかのデータを取得する。収集装置3は、取得した数値データ、即ちガソリンの値段を示す数値データを、画像データが撮像された際の車両Vの走行位置を示す位置データと対応付けて記憶装置4にて蓄積し、逐次最新のデータに更新する。
【0050】
情報提供装置5は、情報端末装置6と、ネットワークNを介して通信接続が可能である。情報提供装置5は、記憶装置4に記憶されている位置データと対応付けられているガソリンの値段を示す数値データに基づいて、地図上にガソリンの値段を表示させるサービスを提供する。
【0051】
図8は、情報提供サービスを実現する通信機2の構成を示すブロック図である。通信機2は、通信部22及びGPS受信機23を備え、車両Vに、車両外を写すように搭載された撮影装置20(例えばドライブレコーダ)から動画像の画像データを逐次取得する。通信機2は、撮影装置20から画像データを取得した時点の車両Vの位置を示す位置データをGPS受信機23によって取得し、画像データに対応付ける。通信機2は、対応付けられた画像データ及び位置データを、キャリアネットワーク、専用ネットワーク、又はビーコン等の無線通信を実現する通信部22により、収集装置3に向けて送信する。通信機2は、撮影装置20が設けられている車両Vの識別情報、及び時刻情報を、画像データ及び
位置データ対応付けて送信してもよい。
【0052】
図9は、収集装置3、情報処理装置1及び記憶装置4の構成を示すブロック図である。収集装置3は、制御部30、画像処理部31、記憶部32、及び通信部33を備える。制御部30は、CPU等のプロセッサ及びメモリ等を用い、装置の構成部を制御して各種機能を実現する。画像処理部31は、GPU又は専用回路等のプロセッサ及びメモリを用い、制御部30からの制御指示に応じて画像処理を実行する。なお、制御部30及び画像処理部31は、一体のハードウェアであってもよい。
【0053】
記憶部32は、処理プログラム30P及び画像処理プログラム31Pを記憶する。記憶部32には、画像処理部31によってガソリンの値段が写っている可能性が高い領域を検出するための検出モデル3Mの定義データが記憶されている。
【0054】
制御部30は、処理プログラム30Pに基づき、通信機2から画像データ及び位置データを受信し、少なくとも、画像データを識別する識別IDと、受信した日時のデータとを対応付けて記憶装置4へ送信して記憶させる処理を実行する。
【0055】
制御部30は、画像処理プログラム31Pに基づき、取得した画像データから、ガソリンの値段が写っている可能性が高い領域を検出する検出モデル3Mによる領域検出処理を、画像処理部31を用いて実行する。検出モデル3Mは、ドライブレコーダで撮像された画像から、ガソリンの値段が写っている領域を検出するように学習されている。検出モデル3Mは、例えばSSD(Single Shot Detector/Single Shot Multibox Detector )等を用い、予めその領域がガソリンの値段が写っている領域であるという教師データに基づいて学習済みである。画像処理部31は、その他、画像データにおける特定のものが写っている可能性が高い領域を画像から抽出するための公知の手法を用いてもよい。
【0056】
通信部33は、ローカルネットワークLN、又はネットワークNを介した記憶装置4及び情報処理装置1との通信接続を実現する通信モジュールである。通信部33は例えばネットワークカードである。
【0057】
記憶装置4は、制御部40、記憶部41及び通信部42を備える。制御部40は、CPU等のプロセッサを用いる。記憶部41は、ハードディスク、SSD(Solid State Drive)等の大容量不揮発性メモリを用いる。記憶部41には、車両Vのドライブレコーダで撮像されて送信された画像データ及び位置データ、画像データから文字列の部分を抽出した画像データ、並びに、抽出後の画像データから認識されたテキストデータ(数値データ)及び存否データが、識別IDに対応付けて記憶される。
【0058】
図10は、収集装置3及び情報処理装置1による処理手順の一例を示すフローチャートである。
【0059】
制御部30は、通信機2から画像データを通信によって取得する(ステップS301)。制御部30は、画像データと対応付けて送信される位置データを取得する(ステップS302)。
【0060】
制御部30は、画像データ及び位置データを、識別IDに対応付けて記憶装置4に記憶させる(ステップS303)。
【0061】
制御部30は、画像データを検出モデル3Mへ入力し(ステップS304)、検出モデル3Mから出力される検出範囲、及び、検出範囲にガソリンの値段を示す文字列(数字列)が写っている確信度を示すデータを取得する(ステップS305)。
【0062】
制御部30は、確信度に基づいてガソリンの値段が写っている領域が検出できたか否かを判断する(ステップS306)。制御部40は、ステップS305によって複数の領域が検出されている場合、夫々に対してステップS306の処理及び以下のステップS307以降の処理を実行する。
【0063】
ステップS306にて、値段が写っている領域が検出できたと判断された場合(S306:YES)、制御部30は、ステップS301で取得した画像データの画像から、検出範囲を抽出し(ステップS307)、抽出された画像の画像データを取得する(ステップS308)。
【0064】
制御部30は、抽出後の画像データを、情報処理装置1へ通信部33から送信する(ステップS309)。
【0065】
情報処理装置1は、収集装置3から送信された抽出後の画像データを通信部13から取得する(ステップS121)。情報処理装置1の制御部10は、取得した画像データを、学習済みの学習モデル1Mとして機能する画像処理部11へ入力する(ステップS122)。
【0066】
画像処理部11は、学習モデル1Mとして、値段を示すテキストデータ(数値データ)、認識された数値の確信度のデータ、及び値段が写っているか否かを示す存否データを出力する(ステップS123)。
【0067】
制御部10は、テキストデータ(数値データ)及び存否データを通信部13から収集装置3へ送信する(ステップS124)。
【0068】
収集装置3の制御部30は、情報処理装置1から送信されたテキストデータ及び存否データを通信部33によって取得する(ステップS310)。制御部30は、取得したテキストデータ及び存否データを、識別IDに対応付けて記憶装置4に記憶させ(ステップS311)、処理を終了する。
【0069】
ステップS311により、存否データが、文字列が写っていないことを示す画像データであっても、記憶装置4に蓄積される。
【0070】
ステップS306にて、値段が写っている領域が検出できていなかったと判断された場合(S306:NO)、制御部30は、ステップS307-S311の処理を省略して処理を終了する。制御部30はこの場合、ステップS303で記憶した画像データ及び位置データを削除してもよい。
【0071】
収集装置3は、情報処理装置1とは異なるハードウェアとして存在し、
図10のフローチャートに示す処理手順を実行するとして説明したが、収集装置3及び情報処理装置1は1つのコンピュータで実現されてもよい。
【0072】
図11は、ドライブレコーダで撮像された画像に対する処理結果を示す。
図11に示すように、撮像画像に対し、検出モデル3Mに基づいて値段が写っている領域が、所定の確信度で検出されて抽出される。
図11に示すように、抽出後の画像が学習モデル1Mに入力された場合、ガソリンの値段を示す数値、領域検出の確信度、数値の確信度、存否結果の確信度が出力される。
【0073】
このように情報処理装置1を用いて得られる画像に写っている文字列を学習済みの学習
モデル1Mを用いて認識できることにより、以下に示すように、ガソリンの値段を地図上に示すサービスが実現される。
【0074】
図12は、情報提供装置5及び情報端末装置6の構成を示すブロック図である。情報提供装置5は、サーバコンピュータであって、制御部50、記憶部51、及び通信部52を備える。
【0075】
制御部50は、CPU又はGPU等であるプロセッサ及びメモリ等を用い、装置の構成部を制御して各種機能を実現する。記憶部51には、情報提供プログラム5P、情報端末装置6からのリクエストを受け付けるためのWebサーバプログラム、及び地図データが記憶されている。記憶部51にはその他、制御部50が参照するデータが記憶されている。
【0076】
通信部52は、ネットワークNを介した情報端末装置6との通信接続を実現するためのネットワークカード又は無線通信モジュールである。通信部52は、記憶装置4からデータを読み出すためにネットワークNを介した通信接続を実現するためのネットワークカード又は無線通信モジュールを含む。
【0077】
制御部50は、情報提供プログラム5Pに基づき、情報端末装置6からのリクエストに基づいて、リクエストで指示される位置データを含む所定範囲におけるガソリンの値段を、地図上に示すWebページのデータを情報端末装置6へ送信する。
【0078】
情報端末装置6は、パーソナルコンピュータ、スマートフォン、タブレット端末等のコンピュータである。情報端末装置6は、制御部60、記憶部61、表示部62、操作部63、及び通信部64を備える。
【0079】
制御部60は、CPUまたはGPUを用いたプロセッサである。制御部60は、CPU、又はGPU等のプロセッサと、メモリ等を含む。制御部60は、記憶部61に記憶されている汎用のWebブラウザベースの表示プログラム6Pに基づき、情報提供装置5と通信接続し、汎用コンピュータを、情報提供サービスを受ける端末装置として動作させる。
【0080】
記憶部61は、例えばフラッシュメモリ等の不揮発性メモリを含む。記憶部61には、上述の表示プログラム6Pが記憶されている。
【0081】
表示部62は、液晶パネル又は有機ELディスプレイ等のディスプレイ装置を含む。操作部63は、ユーザの操作を受け付けるインタフェースであり、物理ボタン、ディスプレイ内蔵のタッチパネルデバイスを含む。操作部63は、物理ボタンまたはタッチパネルにて表示部62で表示している画面上における操作を受け付けることが可能である。操作部63は、マイクロフォン等を含み、マイクロフォンにて入力音声から操作内容を認識して操作を受け付けてもよい。
【0082】
通信部64は、ネットワークNを介した情報端末装置6との通信接続を実現するためのネットワークカード又は無線通信モジュールである。
【0083】
制御部60は、表示プログラム6Pに基づいて、操作部63で受け付けた位置データをリクエストとして情報提供装置5へ送信し、位置データが示す位置周辺におけるガソリンの値段を表示部62に表示させることができる。
【0084】
図13は、情報提供装置5によって提供される情報の表示例を示す。
図13には、地図画像上に、各位置で撮像された画像の画像データから認識されたガソリンの値段のテキス
ト又は画像が重畳して表示されている。これにより、情報端末装置6を操作する操作者は、ガソリンの値段を把握することができる。ガソリンの値段は、車両Vで撮像された画像データが送信される都度、最新のデータに更新される。履歴として記憶装置4に蓄積されるので、制御部60は、操作に応じて、ガソリンの値段の推移を表示部62に表示させてもよい。
【0085】
このようにして、ドライブレコーダで撮像されるガソリンスタンドにおけるガソリンの値段といった比較的小さな範囲の低解像となる画像内の文字列であっても、学習モデル1Mを用いた認識であれば、高精度に値段を認識できる。
【0086】
実施の形態2においては、収集装置3が収集する画像データは、車両Vのドライブレコーダにて撮影された画像の画像データであった。車両Vはタクシーに限られないし、運搬車輌であってもよい。自動運転機能を有する車両であってもよい。更に、文字列(数字列)の認識対象となる画像データは、車両Vに限らず、所謂ドローンと呼ばれるような無人機に搭載されている撮影装置によって撮影されたデータであってもよい。
【0087】
上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。
【符号の説明】
【0088】
1 情報処理装置
10 制御部
11 画像処理部
12 記憶部
13 通信部
1M 学習モデル(第2モデル)
121 CNN
122 RNN
123 CRF層
124 第1出力層
125 第2出力層
1P 学習プログラム
3 収集装置
30 制御部
32 記憶部
30P 処理プログラム
31P 画像処理プログラム
3M 検出モデル(第1モデル)
4 記憶装置
41 記憶部
6 情報端末装置
62 表示部