(57)【特許請求の範囲】
【請求項１】
文字列画像が表す文字列を認識する文字列認識装置であって、
前記文字列画像に対して部分画像を切り出すための窓を走査して、前記窓で切り出された部分画像の各々を、文字を認識するための予め学習されたＣＮＮ（Convolutional Neural Network）に入力して、前記部分画像の各々についての各文字の文字スコアを表すＣＮＮスコア行列を求める文字認識部と、
前記文字認識部によって求められた前記ＣＮＮスコア行列を、文字列候補を認識するための予め学習されたＲＮＮ（Recurrent Neural Network）に入力して、前記文字列画像が表す文字列候補を認識する文字列候補認識部と、
前記文字列候補認識部によって認識された文字列候補の各々について、前記ＣＮＮスコア行列を用いて再検証し、誤った文字列候補を取り除くことにより、前記文字列画像が表す文字列を認識する文字列認識部と、
を含み、
前記文字列認識部は、前記再検証する際に、前記文字列候補に含まれる各文字について、前記ＣＮＮスコア行列における、前記文字の順番に応じて定められる文字の中心位置に対応して得られる複数の文字スコアの最大値を、前記文字の最大文字スコアとして取得し、前記文字列候補に含まれる各文字について取得された最大文字スコアの和と、前記文字列候補の文字数とから、前記文字列候補に対する文字列スコア関数の値を計算し、前記文字列スコア関数の値が最大となる前記文字列候補を、前記文字列画像が表す文字列として認識する
文字列認識装置。
【請求項２】
前記文字列スコア関数は、以下の式で表される請求項１記載の文字列認識装置。
【数１】
0006611346.tif 000004
ただし、Ｗは、前記文字列候補を表し、Ｗ＝｛c1,c2,…,cN｝であり、Ｍは、前記ＣＮＮスコア行列であり、Ｍ（ｃ、ｐ）は、ｐ番目の前記部分画像での文字ｃの文字スコアを表す要素であり、piは、ｉ番目の文字ciについて予め定められた中心位置を示す番号であり、Ｂ＝［−δ，δ］は、−δからδまでの整数の集合であり、δは予め定められた整数であり、Ｎは、前記文字列候補の文字数である。
【請求項３】
文字列画像が表す文字列を認識する文字列認識装置における文字列認識方法であって、
文字認識部が、前記文字列画像に対して部分画像を切り出すための窓を走査して、前記窓で切り出された部分画像の各々を、文字を認識するための予め学習されたＣＮＮ（Convolutional Neural Network）に入力して、前記部分画像の各々についての各文字の文字スコアを表すＣＮＮスコア行列を求め、
文字列候補認識部が、前記文字認識部によって求められた前記ＣＮＮスコア行列を、文字列候補を認識するための予め学習されたＲＮＮ（Recurrent Neural Network）に入力して、前記文字列画像が表す文字列候補を認識し、
文字列認識部が、前記文字列候補認識部によって認識された文字列候補の各々について、前記ＣＮＮスコア行列を用いて再検証し、誤った文字列候補を取り除くことにより、前記文字列画像が表す文字列を認識する
ことを含み、
前記文字列認識部が、前記再検証する際に、前記文字列候補に含まれる各文字について、前記ＣＮＮスコア行列における、前記文字の順番に応じて定められる文字の中心位置に対応して得られる複数の文字スコアの最大値を、前記文字の最大文字スコアとして取得し、前記文字列候補に含まれる各文字について取得された最大文字スコアの和と、前記文字列候補の文字数とから、前記文字列候補に対する文字列スコア関数の値を計算し、前記文字列スコア関数の値が最大となる前記文字列候補を、前記文字列画像が表す文字列として認識する
文字列認識方法。
【請求項４】
コンピュータを、請求項１又は２記載の文字列認識装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列認識装置、方法、及びプログラムに係り、特に、文字列画像が表す文字列を認識するための文字列認識装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
文字検出と分類に関する従来技術として、伝統的にHOG特徴が使われている。また、文字特有の中間特徴を学習により作り出す技術や、属性を部分空間で表現した手法も提案されている。
【０００３】
また、最近ではDNNを用いた特徴も提案されており、例えば、教師無しCNN特徴が提案されている（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Coates et al., "Text Detection and Character Recognition in Scene Images with Unsupervised feature learning", ICCV 2011
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明では、文字列画像が表す文字列を精度よく認識する文字列認識装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係る文字列認識装置は、文字列画像が表す文字列を認識する文字列認識装置であって、前記文字列画像に対して部分画像を切り出すための窓を走査して、前記窓で切り出された部分画像の各々を、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造であって、かつ、文字を認識するための予め学習されたＣＮＮ（Convolutional Neural Network）に入力して、前記部分画像の各々についての各文字のスコアを表すＣＮＮスコア行列を求める文字認識部と、を含んで構成されている。
【０００７】
本発明に係る文字列認識方法は、文字列画像が表す文字列を認識する文字列認識装置における文字列認識方法であって、文字認識部が、前記文字列画像に対して部分画像を切り出すための窓を走査して、前記窓で切り出された部分画像の各々を、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造であって、かつ、文字を認識するための予め学習されたＣＮＮ（Convolutional Neural Network）に入力して、前記部分画像の各々についての各文字のスコアを表すＣＮＮスコア行列を求め、文字列候補認識部が、前記文字認識部によって求められた前記ＣＮＮスコア行列に基づいて、前記文字列画像が表す文字列候補を認識する。
【０００８】
また、本発明のプログラムは、コンピュータを、上記の文字列認識装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【０００９】
以上説明したように、本発明の文字列認識装置、方法、及びプログラムによれば、文字列画像に対して走査した窓で切り出された部分画像の各々を、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造のＣＮＮに入力し、求められたＣＮＮスコア行列に基づいて、文字列画像が表す文字列候補を認識することにより、文字列画像が表す文字列を精度よく認識することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施の形態及び第２の実施の形態に係る文字列認識装置の構成を示すブロック図である。
【図２】Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造のＣＮＮを示す図である。
【図３】ＲＮＮを示す図である。
【図４】スコアを再検証する方法を説明するための図である。
【図５】本発明の第１の実施の形態に係る文字列認識装置における文字列認識処理ルーチンの内容を示すフローチャートである。
【図６】第２の実施の形態に係る文字列認識装置の処理の流れを示す図である。
【図７】探索グラフを用いて文字列を認識する方法を説明するための図である。
【図８】本発明の第２の実施の形態に係る文字列認識装置における文字列認識処理ルーチンの内容を示すフローチャートである。
【図９】実験結果を示す図である。
【図１０】本発明の実施の形態の他の例に係る文字列認識装置の処理の流れを示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜本発明の実施の形態の概要＞
入力画像から、文字の領域を切り出すことを検出と言う。検出された文字の領域の画像から、どの単語に該当するか、判断する過程を認識とよぶ。このように画像内文字認識の過程として、以下の３つのタスクが考えられる。
【００１３】
１）文字領域の場所を検出する。
【００１４】
２）切り出された文字領域を入力として、そこに描かれている文字を認識する。
【００１５】
３）画像の入力から認識結果の出力までのトータルの技術を扱う。
【００１６】
本実施の形態では、上記の２）を扱う。また、本実施の形態では、以下の３つのポイントを特徴としている。
【００１７】
１）ＣＮＮを用いた高い性能の文字分類器を用いる。
【００１８】
２）辞書と言語モデルを組み合せたWFSTによる文字列のラベル付け技術を用いる。
【００１９】
３）RNN系列分類器による文字列認識技術を用いる。
【００２０】
＜第１の実施の形態＞
＜文字列認識装置のシステム構成＞
図１は、本発明の第１の実施の形態に係る文字列認識装置１００を示すブロック図である。この文字列認識装置１００は、ＣＰＵと、ＲＡＭと、後述する文字列認識処理ルーチンを実行するためのプログラムを記憶したＲＯＭと、を備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００２１】
本実施の形態に係る文字列認識装置１００は、図１に示すように、入力部１０と、演算部２０と、出力部４０とを備えている。
【００２２】
入力部１０は、文字列画像を入力として受け付ける。文字列画像は、画像から文字列の領域を切り出した画像であり、縦の画素数が所定数となるように大きさが正規化されているものとする。ここで、所定数とは、後述する窓と同じサイズである。
【００２３】
演算部２０は、文字認識部２２、文字列候補認識部２４、及び文字列認識部２６を備えている。
【００２４】
文字認識部２２は、入力された文字列画像に対して部分画像を切り出すための窓を走査して、窓で切り出された部分画像の各々を、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造であって、かつ、文字を認識するための予め学習されたＣＮＮ（Convolutional Neural Network）に入力して、部分画像の各々についての各文字のスコアを表すＣＮＮスコア行列を求める。
【００２５】
本実施の形態では、文字認識のタスクで、図２に示すような、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造を持つCNNを用いて、走査ステップ毎に窓で切り出された部分画像から、例えば、６２クラスへ分類するための各スコアを計算し、走査した窓毎に６２クラスの各スコアを並べたＣＮＮスコア行列が得られる。
【００２６】
ここで、６２クラスとは、数字１０個、アルファベット２６文字＊２（大文字，小文字）を合わせたものである。
【００２７】
また、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造を持つCNNの入力としては、３２×３２のグレースケール画像を用い、Ｍｉｃｒｏ  ｎｅｔｗｏｒｋ（非特許文献２（M. Lin et al. "Network in Network", ICLR 2014）を参照）に接続された３つの畳み込み層（convolutional layer）と、１２８個のニューロンを有する、１つの全接続層（fully connected layer）とを有するＣＮＮを用いる。
【００２８】
畳み込み層間は、小さな複層パーセプションネットワークで接続され、全接続層は、分類カテゴリと特徴マップとを直接リンクさせるグローバルアベレージプーリング層である。
【００２９】
なお、ＣＮＮは、訓練データに基づいて予め学習しておく。
【００３０】
文字列候補認識部２４は、文字認識部２２によって求められたＣＮＮスコア行列に対して、局所的な最大値以外を押さえる強調処理を行い、強調処理後のＣＮＮスコア行列から、文字列画像が表す文字列候補を認識する。具体的には、強調処理後のＣＮＮスコア行列を、文字列候補を認識するための予め学習されたＲＮＮ（Recurrent Neural Network）に入力して、文字列画像が表す文字列候補の各々を求める。
【００３１】
本実施の形態では、ＲＮＮとして、図３に示すLSTMを用いた双方向のRNN系列分類器を用いる。
【００３２】
なお、ＲＮＮは、訓練データに基づいて予め学習しておく。
【００３３】
文字列認識部２６は、文字列候補認識部２４によって認識された文字列候補から、誤った文字列候補を取り除くことにより、文字列画像が表す文字列を認識する。本実施の形態では、文字列候補認識部２４によって認識された文字列候補の各々について、ＣＮＮスコア行列から得られるスコアを再検証することにより、誤った文字列候補を取り除く。
【００３４】
具体的には、ＣＮＮスコア行列Ｍに基づいて、文字列候補Ｗの各々について、以下の式に従ってスコアＳ（Ｗ，Ｍ）を計算し、再検証を行う。
【００３５】
【数１】
0006611346.tif 000002
【００３６】
ただし、Ｗ＝｛c1,c2,…,cN｝であり、pi+Δは、文字ciの中心の位置である（図４参照）。また、Ｂ＝［−δ，δ］は、幅を示すパラメタである。実験ではδを5としている。
【００３７】
文字列候補Ｗの各々について計算されたスコアＳ（Ｗ，Ｍ）に基づいて、スコアＳ（Ｗ，Ｍ）が最大となる文字列候補Ｗを、文字列画像が表す文字列の認識結果とする。
【００３８】
出力部４０は、文字列画像が表す文字列の認識結果を出力する。
【００３９】
＜文字列認識装置の作用＞
次に、本実施の形態に係る文字列認識装置１００の作用について説明する。縦の画素数が所定数となるように大きさが正規化されている文字列画像が、文字列認識装置１００に入力されると、文字列認識装置１００によって、図５に示す文字列認識処理ルーチンが実行される。
【００４０】
まず、ステップＳ１００において、入力された文字列画像に対して窓を走査して、窓で切り出された部分画像の各々を、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造のＣＮＮ（Convolutional Neural Network）に入力して、部分画像の各々についての各文字のスコアを表すＣＮＮスコア行列を求める。
【００４１】
そして、ステップＳ１０２において、上記ステップＳ１００で求められたＣＮＮスコア行列に対して、強調処理を行う。
【００４２】
ステップＳ１０４では、強調処理後のスコア行列を、文字列候補を認識するための予め学習されたＲＮＮ（Recurrent Neural Network）に入力して、文字列画像が表す文字列候補の各々を取得する。
【００４３】
そして、ステップＳ１０６では、上記ステップＳ１００で得られたＣＮＮスコア行列Ｍに基づいて、上記ステップＳ１０４で得られた文字列候補Ｗの各々について、スコアＳ（Ｗ，Ｍ）を計算し、再検証し、スコアＳ（Ｗ，Ｍ）が最大となる文字列候補Ｗを、文字列画像が表す文字列の認識結果として、出力部４０により出力し、文字列認識処理ルーチンを終了する。
【００４４】
以上説明したように、本発明の第１の実施の形態に係る文字列認識装置によれば、文字列画像に対して走査した窓で切り出された部分画像の各々を、Ｎｅｔｗｏｒｋ  Ｉｎ  Ｎｅｔｗｏｒｋ構造のＣＮＮに入力し、求められたＣＮＮスコア行列に基づいて、文字列画像が表す文字列候補を認識することにより、文字列画像が表す文字列を精度よく認識することができる。
【００４５】
また、ＣＮＮ特徴がさまざまなノイズ・変形に強いことから、ＣＮＮスコア行列を用いて、文字列画像が表す文字列を精度よく認識することができる。
【００４６】
また、ＲＮＮを用いて、文字列候補を求めることにより、文脈の情報を十分に役立てることができ、また、原語モデルや語彙辞書を前提とせずに、文字列候補を得ることができる。
【００４７】
＜第２の実施の形態＞
＜文字列認識装置のシステム構成＞
次に、第２の実施の形態について説明する。なお、第２の実施の形態に係る文字列認識装置は、第１の実施の形態と同様の構成であるため、同一符号を付して説明を省略する。
【００４８】
第２の実施の形態では、図６に示すように、文字列候補に対して、ＷＦＳＴ（Weight Finite State Transducer）に基づく探索グラフを作成して、文字列画像が表す文字列の認識結果を求めている点が、第１の実施の形態と異なっている。
【００４９】
第２の実施の形態では、文字列認識部２６は、文字列候補認識部２４によって認識された文字列候補の各々から、言語モデル及び語彙辞書から得られる、文字列候補の各々に対応する文字列を表す探索グラフを生成し、生成した探索グラフに基づいて、文字列画像が表す文字列を認識する。
【００５０】
具体的には、文字列候補の各々を、語彙辞書の中の正しい文字列に対応付けることにより、語彙辞書から得られる文字列候補の各々に対応する文字列を表す、語彙辞書に基づくWFST  Lを生成し、文字列候補の各々を、言語モデルの中の正しい文字列に対応付けることにより、言語モデルから得られる文字列候補の各々に対応する文字列を表す、言語モデルに基づくWFST  Gを生成し、複数のWFSTを組み合わせて、効率のよい１つの探索グラフを作成する。
【００５１】
【数２】
0006611346.tif 000003
【００５２】
作成した探索グラフを用いて、文字列候補に対して編集距離が最も短い文字列を求め、文字列画像が表す文字列の認識結果とする。
【００５３】
例えば、図７に示すように、文字列候補「POCHIETL」に対して、編集距離が最も短い文字列を求めることで、文字列の認識結果「POCKET」を得ることができる。
【００５４】
＜文字列認識装置の作用＞
次に第２の実施の形態における文字列認識処理ルーチンについて、図８を用いて説明する。なお、第１の実施の形態と同様の処理については、同一符号を付して詳細な説明を省略する。
【００５５】
まず、ステップＳ１００において、入力された文字列画像に対して窓を走査して、窓で切り出された部分画像の各々を、Ｎｅｔｗｏｒｋ  ｉｎ  Ｎｅｔｗｏｒｋ構造のＣＮＮに入力して、ＣＮＮスコア行列を求める。
【００５６】
そして、ステップＳ１０２において、上記ステップＳ１００で求められたＣＮＮスコア行列に対して、強調処理を行う。
【００５７】
ステップＳ１０４では、強調処理後のスコア行列を、ＲＮＮに入力して、文字列画像が表す文字列候補の各々を取得する。
【００５８】
そして、ステップＳ２０６では、上記ステップＳ１０４で得られた文字列候補Ｗの各々から、語彙辞書に基づくWFST  L、及び言語モデルに基づくWFST  Gを組み合わせた探索グラフを作成する。ステップＳ２０８では、上記ステップＳ２０６で作成した探索グラフを用いて、文字列候補に対して編集距離が最も短い文字列を求め、文字列画像が表す文字列の認識結果として、出力部４０により出力し、文字列認識処理ルーチンを終了する。
【００５９】
以上説明したように、本発明の第２の実施の形態に係る文字列認識装置によれば、文字列候補に対して、複数のＷＦＳＴに基づく探索グラフを作成して、文字列画像が表す文字列の認識結果を求めることにより、効率的に、語彙辞書と言語モデルの双方を考慮した文字列を認識結果として得ることができる。
【００６０】
＜実施例＞
既存のICDAR 2003のデータセット、SVT-WORDのデータセット、IIIT5Kのデータセットを用いて上述した第２の実施の形態の手法による文字列認識の効果を検証する評価実験を行った。比較対象は従来のＩＣＣＶ２０１１（非特許文献３）、ＢＭＶＣ２０１２（非特許文献４）、ＩＣＰＲ２０１２（非特許文献５）、ＣＶＰＲ２０１４（非特許文献６）、ＩＣＬＲ２０１４（非特許文献７）、ＥＣＣＶ２０１４（非特許文献８）、ＰＡＭＩ２０１４（非特許文献９）に記載の各手法とした。
【００６１】
［非特許文献３］： Kai Wang, Boris Babenko, and Serge Belongie, “Endto-end scene text recognition,” in ICCV. IEEE, 2011,pp. 1457-1464.
［非特許文献４］：Anand Mishra, Karteek Alahari, and CV Jawahar,“Scene text recognition using higher order language priors,”in BMVC, 2012
［非特許文献５］：Tao Wang, David J Wu, Andrew Coates, and Andrew Y Ng, “End-to-end text recognition with convolutional neural networks,” in Pattern Recognition (ICPR), 2012 21st International Conference on. IEEE, 2012, pp. 3304-3308.
［非特許文献６］：Cong Yao, Xiang Bai, Baoguang Shi, and Wenyu Liu,“Strokelets: A learned multi-scale representation for scene text recognition,” in Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. IEEE, 2014, pp. 4042-4049.
［非特許文献７］：Ouais Alsharif and Joelle Pineau, “End-to-end text recognition with hybrid HMM maxout models,” in ICLR, 2014.
［非特許文献８］： Max Jaderberg, Andrea Vedaldi, and Andrew Zisserman, “Deep features for text spotting,” in Computer Vision-ECCV 2014, pp. 512-528. Springer, 2014.
［非特許文献９］： Jon Almazan, Albert Gordo, Alicia Forn´es, and Ernest Valveny, “Word spotting and recognition with embedded attributes,” Pattern Analysis and Machine Intelligence, IEEE Transactions on, vol. 36, no. 12, pp. 2552-2566, 2014.
【００６２】
文字列認識の結果を図９の表に示す。ノイズや変形の多いデータセットに対して、上述した第２の実施の形態の手法では、最高性能を示すことが分かった。
【００６３】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００６４】
例えば、図１０に示すように、ＲＮＮを用いずに、強調処理後のＣＮＮスコア行列から、順序の整合性を考慮した解釈により、文字列候補を取得するようにしてもよい。
【００６５】
上述の文字列認識装置１００は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００６６】
例えば、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００６７】
１０   入力部
２０   演算部
２２   文字認識部
２４   文字列候補認識部
２６   文字列認識部
４０   出力部
１００ 文字列認識装置
【図１】
0006611346.tif 000005
【図２】
0006611346.tif 000006
【図３】
0006611346.tif 000007
【図４】
0006611346.tif 000008
【図５】
0006611346.tif 000009
【図６】
0006611346.tif 000010
【図７】
0006611346.tif 000011
【図８】
0006611346.tif 000012
【図９】
0006611346.tif 000013
【図１０】
0006611346.tif 000014