(57)【要約】【課題】画像データに対して適切な前処理を実行することの可能な仕組みを提供すること【解決手段】前処理の処理ロジックと画像データに含まれる登録文字列７０２を記憶しておき、前記処理ロジックを用いて画像データに前処理を実行する。そして、前処理が実行された画像データに対して文字認識処理を行い、その文字認識処理結果と登録文字列７０２とが一致するか否か判定する。一致しない場合には、使用した処理ロジックとは異なる処理ロジックを使って前処理から再実行し直す。また、すべての文字に対して文字認識処理を行ってから判定を行うのではなく、所定文字数の文字認識処理が完了したら判定を行うことで更なる速度向上を図る。【選択図】図３
2014063390.tif 000002
【特許請求の範囲】
【請求項１】
画像データに対して文字認識を行う情報処理装置であって、
前記画像データに対して前処理を行うための処理ロジックと、前記画像データに含まれる登録情報とを記憶する記憶手段と、
前記記憶手段に記憶された処理ロジックを用いて、前記画像データに対して前処理を実行する前処理実行手段と、
前記前処理実行手段で前処理を実行された前記画像データに対して文字認識を実行する文字認識実行手段と、
前記文字認識実行手段で文字認識が実行された結果である文字認識結果と、前記記憶手段に記憶された登録情報とに基づいて、前記文字認識結果が適切であるか否かを判定する判定手段とを備え、
前記前処理実行手段は、前記判定手段で前記文字認識結果が適切でないと判定された場合には、前記前処理実行手段で用いた処理ロジックとは異なる処理ロジックを用いて、前記画像データに対して前処理を再実行することを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記文字認識実行手段で所定文字数に対して文字認識が実行された場合に、前記文字認識実行手段で文字認識が実行された結果である文字認識結果と、前記記憶手段に記憶された登録情報とに基づいて、前記文字認識結果が適切であるか否かを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶手段は、更に前記処理ロジックを用いる優先度を記憶し、
前記前処理実行手段は、前記判定手段で前記文字認識結果が適切でないと判定された場合には、前記前処理実行手段で用いた処理ロジックとは異なる処理ロジックであって、前記記憶手段に記憶された優先度に基づいて決定された処理ロジックを用いて、前記画像データに対して前処理を再実行することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記優先度は、前記前処理実行手段で前処理を実行される画像データに基づいて決定されることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記前処理実行手段は、前記記憶手段に記憶された処理ロジックを用いて、前記画像データから複製された複製画像データに対して前処理を実行し、
文字認識実行手段は、前記前処理実行手段で前処理を実行された前記複製画像データに対して文字認識を実行し、
前記前処理実行手段は、前記判定手段で前記文字認識結果が適切でないと判定された場合には、前記前処理実行手段で用いた処理ロジックとは異なる処理ロジックを用いて、前記画像データから新たに複製した複製画像データに対して前処理を再実行することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記判定手段は、前記文字認識実行手段で文字認識が実行された結果である文字認識結果が、前記記憶手段に記憶された登録情報に存在する場合に適切であると判定し、そうでない場合に適切でないと判定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
画像データに対して前処理を行うための処理ロジックと、前記画像データに含まれる登録情報とを記憶する記憶手段を備え、画像データに対して文字認識を行う情報処理装置の制御方法であって、
前記情報処理装置の前処理実行手段が、前記記憶手段に記憶された処理ロジックを用いて、前記画像データに対して前処理を実行する前処理実行ステップと、
前記情報処理装置の文字認識実行手段が、前記前処理実行ステップで前処理を実行された前記画像データに対して文字認識を実行する文字認識実行ステップと、
前記情報処理装置の判定手段が、前記文字認識実行ステップで文字認識が実行された結果である文字認識結果と、前記記憶手段に記憶された登録情報とに基づいて、前記文字認識結果が適切であるか否かを判定する判定ステップとを備え、
前記前処理実行ステップは、前記判定ステップで前記文字認識結果が適切でないと判定された場合には、前記前処理実行ステップで用いた処理ロジックとは異なる処理ロジックを用いて、前記画像データに対して前処理を再実行することを特徴とする情報処理装置の制御方法。
【請求項８】
画像データに対して前処理を行うための処理ロジックと、前記画像データに含まれる登録情報とを記憶する記憶手段を備え、画像データに対して文字認識を行う情報処理装置の制御方法をコンピュータに実行させるためのコンピュータに読み取り実行可能なプログラムであって、
前記情報処理装置を、
前記記憶手段に記憶された処理ロジックを用いて、前記画像データに対して前処理を実行する前処理実行手段と、
前記前処理実行手段で前処理を実行された前記画像データに対して文字認識を実行する文字認識実行手段と、
前記文字認識実行手段で文字認識が実行された結果である文字認識結果と、前記記憶手段に記憶された登録情報とに基づいて、前記文字認識結果が適切であるか否かを判定する判定手段として機能させ、
前記前処理実行手段は、前記判定手段で前記文字認識結果が適切でないと判定された場合には、前記前処理実行手段で用いた処理ロジックとは異なる処理ロジックを用いて、前記画像データに対して前処理を再実行することを特徴とするコンピュータに読み取り実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理のための前処理に関し、特に適切な前処理ロジックを選択することの可能な情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）処理のような文字認識処理によって画像データから文字列を認識することが行われている。文字認識処理は、紙文書に記載された内容を手軽にテキストデータ化したり、デジタルカメラで撮影された写真に写っている文字列を抽出したりするために利用される。
【０００３】
文字認識処理は、文字認識を行う画像データの状態によって正しく認識できるかどうかが大きく左右される。例えば、スキャナでスキャンした画像データを用いて文字認識処理を実行する場合には、スキャンの解像度が重要である。スキャン後の画像データの解像度が低すぎると、画像データが粗くなってしまうので、誤認識を起こしやすくなる。
【０００４】
そこで下記の特許文献１では、文字認識結果を早い段階でユーザに通知し、処理の中止を受け付けるために、スキャナで読み取った紙文書のうち最初のページの文字認識処理結果をスキャンデータと対比させて表示すると共に、キャンセル指示を受け付ける仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２６００８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
文字認識処理を使用する業務として、造船業で使用する部材の管理がある。あらかじめデータベースに登録された部材コードを部材ごとに割り振っておき、部材が製造されたら対応する部材コードを部材に印字しておく。作業者はその部材を保管場所や作業場所に運搬するのだが、運搬先を調べるために部材を撮影し、文字認識処理することで部材に印字された部材コードを特定し、特定された部材コードからデータベースに格納された運搬先を検索している。
【０００７】
この場合、文字認識処理によって正しい部材コードが得られないと、データベースから検索をすることができない。つまり、文字認識処理を正確に行う必要がある。前述したスキャナの場合は、適切なスキャン設定を選択すれば問題ないのだが、デジタルカメラ等で撮影された画像データに対する文字認識処理を正しく行うためには、前処理として、撮影された画像データに対して画像処理を施し、文字認識しやすい状態にすることが大切である。
【０００８】
例えば、製造した部材に印字された部材コードを撮影して文字認識処理を行う場合、部材の材質のせいで反射光が写り込んでしまったり、角度が傾いて撮影されてしまうことがある。そうすると、そのまま文字認識処理を行っても、誤って認識する可能性が高い。
【０００９】
そのため、正しい結果を得るために、文字認識処理を行う前に画像データに対して前処理を実行している。例えば、画像データを二値化した後、画像の傾きを補正したり、印字がかすれている部分に対して画像処理を実行して、文字認識をしやすくしたりする。こうすることで、誤認識を防止することができる。
【００１０】
しかしながら、船の部材のように少量多品種生産を前提とする場合には、ユーザがデジタルカメラを手で持って撮影せざるを得ない。そのため、光の具合や傾きなど、撮影条件が撮影ごとに変わってきてしまう。よって、その撮影条件ごとに必要な前処理も変わってきてしまうので、撮影条件が一定な製造ラインのように、１つの前処理を用意して実行するだけでは、文字認識しやすい画像データにならない問題がある。
【００１１】
本発明は上記の課題を解決するためになされたもので、画像データに対して適切な前処理を実行することの可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明の情報処理装置は、画像データに対して文字認識を行う情報処理装置であって、前記画像データに対して前処理を行うための処理ロジックと、前記画像データに含まれる登録情報とを記憶する記憶手段と、前記記憶手段に記憶された処理ロジックを用いて、前記画像データに対して前処理を実行する前処理実行手段と、前記前処理実行手段で前処理を実行された前記画像データに対して文字認識を実行する文字認識実行手段と、前記文字認識実行手段で文字認識が実行された結果である文字認識結果と、前記記憶手段に記憶された登録情報とに基づいて、前記文字認識結果が適切であるか否かを判定する判定手段とを備え、前記前処理実行手段は、前記判定手段で前記文字認識結果が適切でないと判定された場合には、前記前処理実行手段で用いた処理ロジックとは異なる処理ロジックを用いて、前記画像データに対して前処理を再実行することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、データベースに記憶された登録情報と文字認識結果を比較し、一致しなければ別の前処理を用いて文字認識処理を再実行することが可能となるので、画像データごとに実行したい前処理が異なる場合であっても、適切な前処理を選択することのできる効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態における情報処理装置１０１のハードウェア構成の一例を示す構成図である。
【図２】情報処理装置１０１のモジュール構成の一例を示す構成図である。
【図３】本発明の概要を示す模式図である。
【図４】本発明の概要を示す模式図である。
【図５】本発明の概要を示す模式図である。
【図６】本発明の実施形態における一連の処理の流れを示すフローチャートである。
【図７】情報処理装置１０１に記憶された登録文字列データベース７００、設定テーブル７１０、処理ロジックテーブル７２０の構成の一例を示す構成図である。
【図８】文字認識処理の詳細を示すフローチャートである。
【図９】処理ロジック順決定処理の詳細を示すフローチャートである。
【図１０】プロジェクションの概要を説明するための模式図である。
【図１１】処理ロジック順決定処理の詳細を示すフローチャートである。
【図１２】テンプレートマッチングの概要を示す模式図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の実施の形態の一例について説明する。
【００１６】
図１は、本発明の実施形態における情報処理装置１０１のハードウェア構成を示す図である。本発明における情報処理装置１０１は、画像データに対して文字認識処理を実行するための装置である。本発明の実施形態では、パーソナルコンピュータのような装置を想定して説明するが、サーバであってもよいし、画像処理に特化した専用装置でもよい。
【００１７】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００１８】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ(Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ)やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００１９】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２０】
また、入力コントローラ（入力Ｃ）２０５は、キーボード２０９や不図示のマウス等のポインティングデバイスからの入力を制御する。
【００２１】
ビデオコントローラ（ＶＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。
【００２２】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ２１１へのアクセスを制御する。
【００２３】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２４】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２５】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２６】
次に、情報処理装置１０１のモジュール構成を示す機能構成図について、図２を用いて説明する。尚、図２のモジュール構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００２７】
情報処理装置１０１は、記憶モジュール３０１、表示モジュール３０２、前処理実行モジュール３０３、文字認識モジュール３０４、処理結果判定モジュール３０５、処理ロジック順決定モジュール３０６、コントラスト取得モジュール３０７、プロジェクション取得モジュール３０８、画像加工モジュール３０９を備える。
【００２８】
記憶モジュール３０１（記憶手段）は、図７に示す登録文字列データベース７００や設定テーブル７１０、処理ロジックテーブル７２０といった各種テーブルや、前処理のための処理ロジック、テンプレートマッチングのためのテンプレートファイル等を記憶するモジュールである。また、この他にも各種情報をＲＡＭ２０３等に一時的に記憶させている。
【００２９】
表示モジュール３０２は、ＣＲＴ２１０に各種情報を表示するためのモジュールである。
【００３０】
前処理実行モジュール３０３は、画像データに対して文字認識前の準備として前処理を実行するモジュールである。前処理は、処理ロジックテーブル７２０に記憶された処理ロジックを用いて行う。また、所定の条件によって前処理の再実行が必要となった場合には、使用した処理ロジック以外の処理ロジックを用いて再実行する。
【００３１】
文字認識モジュール３０４は、前処理が行われた画像データに対してＯＣＲのような文字認識を行うモジュールである。文字認識処理では、例えばテンプレートマッチングを用いて、文字を認識する。
【００３２】
処理結果判定モジュール３０５は、文字認識モジュール３０４で認識された文字と、記憶モジュール３０１で記憶された登録文字列データベース７００とを比較して、適切に文字認識がなされたか否かを判定するモジュールである。
【００３３】
処理ロジック順決定モジュール３０６は、前処理実行モジュール３０３で使用する処理ロジックの使用順序（優先順序、優先度）を後述するコントラスト取得モジュール３０７やプロジェクション取得モジュール３０８で取得した情報を用いて決定するモジュールである。
【００３４】
コントラスト取得モジュール３０７は、画像データからコントラストの最大値と最小値を取得するモジュールである。また、プロジェクション取得モジュール３０８は、画像データからプロジェクションの最高値と最低値を取得するモジュールである。
【００３５】
画像加工モジュール３０９は、前処理実行モジュール３０３で前処理がなされた画像データの傾きや倍率を補正し、文字認識しやすい状態とするモジュールである。
【００３６】
次に、図３、図４、図５を用いて、本発明の概要について説明する。
【００３７】
本発明では、データベースに格納された部材コードが印字された部材を、ユーザがデジタルカメラを手で持って撮影し、撮影された画像データに対して文字認識処理を実行する形態を前提とする。このような文字認識は、すべての部材が製造されたのかどうか確認するためや、部材の搬出先や保管先を調べるために行われる。特に、管理が大変な大きな部材を想定している。
【００３８】
従来は、撮影された画像データに対して文字認識処理を行うために、所定の前処理を実行し、その後文字認識処理を実行していた。しかしながら、ユーザがデジタルカメラを持って撮影した場合には、撮影するごとに撮影条件が変わってきてしまうので、画像データごとに適切な前処理の処理ロジックが異なる。本発明では、これを解決するために図３に示すような以下の処理を実行する。
【００３９】
まず、あらかじめ部材コードが格納されたデータベースと、前処理のための複数種類の処理ロジックを用意しておく。前処理のための処理ロジックは、多ければ多いほど様々な撮影条件に対応できるので、複数用意しておくのがよい。
【００４０】
まず、複数の処理ロジックのうちどれか１つを使用して、撮影された画像データに前処理を実行する。そして、前処理が実行された画像データに対して文字認識処理を実行し、その結果を取得する。文字認識処理の結果と部材コードが格納されたデータベースとを比較し、データベース内に文字認識処理の結果が存在するかどうか確認する。存在する場合には、当該前処理の処理ロジックは適当であったと判断できるので、その文字認識結果を採用する。しかし、そうでない場合には、使用した前処理の処理ロジックが適当でなかった可能性が高いので、使用した前処理の処理ロジックとは異なる処理ロジックで前処理を再実行し、再び文字認識処理を行う。この文字認識結果についても同様にデータベース内の部材コードと突き合わせを行い、一致するものがあるかどうか確認する。そして、一致するものがあればその文字認識結果を採用し、そうでなければ別の前処理の処理ロジックを使って再び前処理を実行し、同様に処理を繰り返す。このように、データベースに登録された情報と一致する結果が出るまで、前処理の処理ロジックを切り替えて処理をやり直すことで、文字認識結果のヒット率を向上させることができる。
【００４１】
図３に示すように、撮影された画像データ３１１に対してまず処理ロジックＡを実行して前処理を行い、その後に文字認識処理を行う。すると、「ＡＢＣ  ＯＥＦ  ＧＨＩＩ  Ｋ」という文字列が前処理後画像データ３１２から取得できる。この認識文字列とデータベースに登録された登録文字列３１３とを比較して、一致する登録文字列を検索する。しかし、この認識文字列は存在しないので、前処理が適切でなかったことがわかる。よって、撮影された画像データ３１１に対して今度は処理ロジックＢを実行し、同様に認識文字列と登録文字列３１３とを比較する。しかし、この場合でも取得した「ＡＢＣ  ＤＥＨ  ＧＨＩＪ
Ｙ」は存在しないので、処理ロジックＣを用いて前処理を実行しなおす。そうすると、「ＡＢＣ  ＤＥＦ  ＧＨＩＪ  Ｋ」という認識文字列が取得できる。今回は、登録文字列３１３にこの「ＡＢＣ  ＤＥＦ  ＧＨＩＪ  Ｋ」が存在するため、適切な前処理であったことがわかる。よって、この認識文字列で確定する。
【００４２】
このように複数の前処理の処理ロジックを用意し、データベースに登録されていない認識文字列が取得できた場合には、他の前処理の処理ロジックを用いて再実行することで、データベースにおける検索のヒット率が向上する。
【００４３】
また、図４と図５に示すように、更にこの処理を高速化するための仕組みも考えられる。この仕組みでは、基本的には前述した図３の仕組みを前提とするが、所定文字数まで文字認識処理がなされたらデータベースの登録文字列と比較する。つまり、すべての文字に対して文字認識処理が実行し終わってから比較するのではなく、文字認識処理の途中で登録文字列との比較を開始することで、早めに処理を終了できるので、処理の高速化が図れる。図４では、前処理の処理ロジックＡで「ＡＢＣ  Ｏ」まで認識された段階でデータベースの登録文字列４０１と比較する。すると、先頭５文字が「ＡＢＣ  Ｏ」となっている登録文字列４０１は存在しないので、残りの文字に対する文字認識処理を中断し、次のロジックＢに処理を移す。次の前処理のロジックＢでは、「ＡＢＣ  ＤＥＨ」まで認識した段階で登録文字列４０１に存在しないことがわかるので、ここで文字認識処理を中断し、次のロジックＣに処理を移す。このようにすれば、処理を高速化できる。
【００４４】
本実施形態では、図５に示すように１文字認識するごとにデータベースと比較している。図５は図４の処理の流れを示す図である。登録文字列数が「０」となった場合には、前処理の処理ロジックを変更していることがわかる。また、登録文字列数が「１」となった場合には、検索した結果を１つに絞り込むことに成功したので、ここで処理を中断する。つまり、文字列を最後まで認識せずともこの登録文字列を認識文字列として採用する。本実施形態では１文字認識するごとにデータベースと比較しているが、１文字でなくてもよい。所定文字数認識するごとに比較するようにしてもよい。
【００４５】
以上、図３から図５に示すような仕組みを採用することで、適切な前処理の処理ロジックを適用することができ、データベースの検索ヒット率を高めることができる。
【００４６】
次に、本発明の実施形態における情報処理装置１０１によって行われる一連の処理について、図６に示すフローチャートを用いて説明する。尚、ステップＳ１０１乃至ステップＳ１０４の各ステップは情報処理装置１０１におけるＣＰＵ２０１の制御の下、処理が行われる。
【００４７】
また、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００４８】
まず、ステップＳ１０１では、情報処理装置１０１は、文字認識を行う撮影画像を取り込み、ＲＡＭ２０３に展開する。ユーザがデジタルカメラで撮影した画像データを外部メモリ２１１から読み出してもよいし、情報処理装置１０１とデジタルカメラとを接続し、撮影した画像データをそのままＲＡＭ２０３に取り込むような形態であってもよい。
【００４９】
ステップＳ１０２では、情報処理装置１０１は、外部メモリ２１１に記憶された設定テーブル７１０（図７参照）を取得する。設定テーブル７１０は、後述する文字認識処理で必要となるパラメータである。
【００５０】
設定テーブル７１０（図７参照）は、比較文字数７１１、明暗差異閾値７１２、高低差異閾値７１３から構成される。比較文字数７１１は、図４で前述した通り、文字認識処理を中断して登録文字列データベース７００（図７参照）と比較を開始する文字数、文字桁数を示す情報である。明暗差異閾値７１２と高低差異閾値７１３は、前処理の処理ロジックの適用順を決定するために使用される閾値である。明暗差異閾値７１２は、コントラストの最小値（暗）と最大値（明）の差を示し、高低差異閾値７１３は、プロジェクションの最低値と最高値の差を示す。プロジェクションについては、図９で後述する。
【００５１】
登録文字列データベース７００（図７参照）は、ＮＯ７０１、登録文字列７０２（登録情報）から構成される。ＮＯ７０１は、登録文字列７０２ごとに一意に割り振られた識別番号である。登録文字列７０２は、部材に印字された部材コードを示す文字列である。ステップＳ１０１で取得した認識用画像に写る部材には、この登録文字列７０２に登録された部材コードのうち、いずれかが印字されている。
【００５２】
ステップＳ１０３では、情報処理装置１０１は、ステップＳ１０１で取得した撮影画像に対して文字認識を行うための処理を実行する。文字認識処理の詳細は、後述する図８に示す。
【００５３】
ステップＳ１０４では、情報処理装置１０１は、ステップＳ１０３で認識された文字列を文字認識処理の処理結果として採用する。ステップＳ１０４で決定された文字列を用いて、その後の部材の運搬先を検索してもよいし、その他の検索に用いてもよい。
【００５４】
次に、本発明の実施形態における情報処理装置１０１によって行われる文字認識処理について図８を用いて説明する。尚、ステップＳ２０１乃至ステップＳ２１２の各ステップは情報処理装置１０１におけるＣＰＵ２０１の制御の下、処理が行われる。
【００５５】
また、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００５６】
まず、ステップＳ２０１では、情報処理装置１０１は、前処理の処理ロジックをどのような順番で適用していくかを決定するための処理を実行する。処理ロジック順決定処理の詳細は、後述する図９に示す。
【００５７】
ステップＳ２０２では、情報処理装置１０１は、前処理の処理ロジックのうち、ステップＳ２０１で決定された最も優先順位の高い未実行の処理ロジックを選択する。
【００５８】
ステップＳ２０３では、情報処理装置１０１は、前述したステップＳ１０１でＲＡＭ２０３に記憶した撮影画像を複製して、認識用画像を生成する。本発明では、複数の前処理の処理ロジックを実行するため、元となる撮影画像を画像処理してしまうと、他の前処理の処理ロジックを適正に実行できない。よって、ここで撮影画像を複製し、認識用画像（複製画像データ）として生成しておくことで、何の処理もなされていないデフォルトの画像データを用いることができる。
【００５９】
ステップＳ２０４では、情報処理装置１０１は、ステップＳ２０２で選択した前処理の処理ロジックで前処理を実行する（前処理実行手段）。前処理の内容は、処理ロジックごとに定義されている。処理ロジックによって、どの画像処理ロジックを実行するのか、どういうパラメータで実行するのか、どういう順番で実行するのかといった画像処理フローが決定されている。よって、処理ロジックごとに最終的な結果が異なってくる。よって、この結果を使用して後述するステップＳ２０５で認識用画像を加工し、文字認識処理を実行すると、処理ロジックごとに文字認識結果が異なってくる。つまり、前処理が上手くいくかどうかで、その後の文字認識処理の精度が変わってくる。ステップＳ２０４の算出結果としては、画像の傾きや文字認識しやすい倍率、認識すべき文字列の位置を算出する。
【００６０】
ステップＳ２０５では、情報処理装置１０１は、ステップＳ２０４で実行した算出結果を用いて、ステップＳ２０３で生成した認識用画像に対して画像の加工を行う。例えば、画像の傾きが検知された場合には、その傾き分だけ認識用画像を回転させる。または、画像が小さいので拡大すべき倍率が算出された場合には、その倍率で認識用画像を拡大させる。これらを実行すると共に、文字認識処理を実行しやすいように、グレー画像に変更する。グレー画像への変更は、傾き補正や倍率補正より前であってもよいし、後であってもよい。
【００６１】
ステップＳ２０６では、情報処理装置１０１は、ステップＳ２０４で算出された認識すべき文字列の位置の先頭位置から末尾位置までの間、後述するステップＳ２０７乃至ステップＳ２１１を繰り返す。つまり、部材に印字された部材コードを構成するすべての文字に対して、ステップＳ２０７乃至ステップＳ２１１が実行されるまで処理を繰り返す。
【００６２】
ステップＳ２０７では、情報処理装置１０１は、認識していない文字列を先頭位置から１つ選択し、文字認識のためのテンプレート画像と比較するための処理を実行する（文字認識実行手段）。テンプレートマッチング処理の詳細は、後述する図１１に示す。
【００６３】
ステップＳ２０８では、情報処理装置１０１は、設定テーブル７１０の比較文字数７１１に格納された文字数分、ステップＳ２０７のテンプレートマッチング処理が実行されたか否かを判定する。比較文字数７１１の文字数分テンプレートマッチング処理が実行されたと判定された場合には、ステップＳ２０９に処理を進め、そうでない場合には、ステップＳ２０７に処理を戻す。つまり、比較文字数７１１に示す文字数分認識するまで、テンプレートマッチング処理を繰り返す。
【００６４】
ステップＳ２０９では、情報処理装置１０１は、ステップＳ２０７で認識された認識文字列（文字認識結果）と、登録文字列データベース７００の登録文字列７０２（登録情報）とを比較する。具体的には、認識された文字列を、登録文字列７０２から検索することになる。認識された文字列は、認識されたところまでを用いて検索する。つまり、先頭５文字だけ認識されていれば、登録文字列７０２の先頭５文字と比較することで、一致するものがないか検索する。
【００６５】
ステップＳ２１０では、情報処理装置１０１は、ステップＳ２０９における比較の結果、登録文字列７０２に認識された文字列があるかどうか判定する（判定手段）。登録文字列７０２に認識された文字列があると判定された場合には、ステップＳ２１１に処理を進め、そうでない場合には、ステップＳ２０６乃至ステップＳ２１１のループを抜けて、ステップＳ２１２に処理を進める。つまり、すでに一致する登録文字列７０２がないのであれば、前処理の処理ロジックが適切でないことがわかるので、処理ロジックを変更すべく、ループを抜ける。
【００６６】
ステップＳ２１１では、情報処理装置１０１は、ステップＳ２０９で比較した結果、一致する登録文字列７０２が１件か否かを判定する。つまり、認識された文字列の所定文字数分だけ比較しているので、検索結果が複数ヒットしてしまう場合がある。前述した図５に示すように、処理ロジック「２」で認識文字数「５」だと、登録文字列数が６つもヒットしていることがわかる。つまり、検索結果が絞りきれていないのである。こういう場合には、１つに絞り込むために再びステップＳ２０７でテンプレートマッチング処理を実行し、１つに絞り込めるまで処理を繰り返す。一致する登録文字列７０２が１件であると判定された場合には、ステップＳ２０６乃至ステップＳ２１１のループを抜けて、文字認識処理を終了する。一致する登録文字列７０２が複数件であると判定された場合には、ステップＳ２０６に処理を戻す。すべての文字列について処理が終了していれば、ステップＳ２１２に処理を進める。
【００６７】
ステップＳ２１２では、情報処理装置１０１は、未実行の前処理の処理ロジックが残っているか否かを判定する。ステップＳ２１２に処理が移ったということは、認識した文字列が登録文字列７０２に存在しなかったということになる。つまり、適切な前処理の処理ロジックではなかったということである。よって、未実行の処理ロジックがあれば、処理ロジックを変えて前処理を実行し直して、再度テンプレートマッチング処理、つまり文字認識を行い直す必要がある。未実行の処理ロジックが存在すると判定された場合には、ステップＳ２０２に処理を戻し、そうでない場合には、文字認識処理を終了し、ユーザにエラーを通知する。
【００６８】
次に、本発明の実施形態における情報処理装置１０１によって行われる処理ロジック順決定処理について図９を用いて説明する。尚、ステップＳ３０１乃至ステップＳ３１４の各ステップは情報処理装置１０１におけるＣＰＵ２０１の制御の下、処理が行われる。
【００６９】
また、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００７０】
まず、ステップＳ３０１では、情報処理装置１０１は、あらかじめ用意された明暗フラグと高低フラグを初期化する。具体的には、明暗フラグと高低フラグのフラグを「ｆａｌｓｅ」にし、フラグが立っていない状態にする。フラグについては「０」と「１」でもよい。
【００７１】
ステップＳ３０２では、情報処理装置１０１は、前述したステップＳ１０１で取り込んだ撮影画像の明暗差異、つまりコントラストの最小値と最大値の差を取得する。明るい場所や暗い場所が混在すると明暗差異が大きくなる。こうなると、白飛びや黒潰れといった現象が起こるため、優先的に前処理で対応しなくてはならない。
【００７２】
ステップＳ３０３では、情報処理装置１０１は、ステップＳ３０２で取得した明暗差異が閾値以上か否かを判定する。明暗差異の閾値は、設定テーブル７１０の明暗差異閾値７１２を用いるものとする。明暗差異が閾値以上であると判定された場合には、ステップＳ３０４に処理を進め、そうでない場合には、ステップＳ３０５に処理を進める。
【００７３】
ステップＳ３０４では、情報処理装置１０１は、ステップＳ３０１で初期化した明暗フラグを立てる。つまり、「ｆａｌｓｅ」から「ｔｒｕｅ」に変更する。
【００７４】
ステップＳ３０５では、情報処理装置１０１は、前述したステップＳ１０１で取り込んだ撮影画像のプロジェクション差異、つまりプロジェクションの最低値と最高値の差を取得する。プロジェクションとは、画像から色のドットを抽出し、行ごとに積み上げたグラフである。図１０に示すように、１行ごとに所定の色を積み上げてグラフを生成する。このようにすることで画像が傾いているかどうかがわかる。つまり、画像が傾いていれば、文字列は斜めになるので、プロジェクション例１００１に示すように高低差が少なく、上下に広がったようなグラフとなる（プロジェクション例１００１は簡易的な例である。本来なら文字列も斜めになっているはずである。）。しかし、画像が傾いていなければ、文字列は水平になるので、プロジェクション例１００２に示すように高低差が激しく、上下には広がらない。このような違いから、認識したい画像が傾いているのかどうかを判定することができる。
【００７５】
ステップＳ３０６では、情報処理装置１０１は、ステップＳ３０５で取得したプロジェクション差異が閾値以上か否かを判定する。プロジェクション差異の閾値は、設定テーブル７１０の高低差異閾値７１３を用いるものとする。プロジェクション差異が閾値以上であると判定された場合には、ステップＳ３０７に処理を進め、そうでない場合には、ステップＳ３０８に処理を進める。
【００７６】
ステップＳ３０７では、情報処理装置１０１は、ステップＳ３０１で初期化した高低フラグを立てる。つまり、「ｆａｌｓｅ」から「ｔｒｕｅ」に変更する。
【００７７】
ステップＳ３０８では、情報処理装置１０１は、明暗フラグと高低フラグが両方とも「ｔｒｕｅ」であるか、つまり両方ともフラグが立っているか否かを判定する。両方ともフラグが立っていると判定された場合には、ステップＳ３０９に処理を進め、そうでない場合には、ステップＳ３１０に処理を進める。
【００７８】
ステップＳ３０９では、情報処理装置１０１は、明暗フラグも高低フラグも立っているので、明暗差異と高低差異が共に閾値以上で有効な前処理の処理ロジックを最優先とする順序に決定する。本実施形態では、処理ロジックテーブル７２０（図７参照）で定義された４つの処理ロジックのうち、ＮＯ７２１が「３」を最優先とし、追って「１」、「２」、「４」の順に決定する。前処理の処理ロジックを適用する順序はユーザや管理者が設定できるものであってもよいし、何らかのロジックにより自動的に順序が決定されてもよい。ここでは、明暗差異と高低差異が共に閾値以上なので、これに対して有効な順序とする。
【００７９】
処理ロジックテーブル７２０（図７参照）は、ＮＯ７２１と処理ロジック７２２から構成される。ＮＯ７２１は、処理ロジックごとに一意に割り振られた識別番号である。処理ロジック７２２は、前処理で使用する処理ロジックが格納されている。前処理の処理ロジックは多ければ多いほどよい。
【００８０】
ステップＳ３１０では、情報処理装置１０１は、明暗フラグのみが立っているか否かを判定する。つまり、明暗フラグのみが「ｔｒｕｅ」であるか否かを判定することになる。明暗フラグのみが立っていると判定された場合には、ステップＳ３１１に処理を進め、そうでない場合には、ステップＳ３１２に処理を進める。
【００８１】
ステップＳ３１１では、情報処理装置１０１は、明暗差異が閾値以上で有効な処理ロジックを最優先とする順序に決定する。本実施形態では、処理ロジックテーブル７２０で定義された４つの処理ロジックのうち、ＮＯ７２１が「１」を最優先とし、追って「２」、「３」、「４」の順に決定する。
【００８２】
ステップＳ３１２では、情報処理装置１０１は、高低フラグのみが立っているか否かを判定する。つまり、高低フラグのみが「ｔｒｕｅ」であるか否かを判定することになる。高低フラグのみが立っていると判定された場合には、ステップＳ３１３に処理を進め、そうでない場合にはステップＳ３１４に処理を進める。
【００８３】
ステップＳ３１３では、情報処理装置１０１は、高低差異が閾値以上で有効な処理ロジックを最優先とする順序に決定する。本実施形態では、処理ロジックテーブル７２０で定義された４つの処理ロジックのうち、ＮＯ７２１が「２」を最優先とし、追って「３」、「１」、「４」の順に決定する。
【００８４】
ステップＳ３１４では、情報処理装置１０１は、明暗フラグも高低フラグも立っていないので、明暗差異と高低差異が共に閾値未満で有効な処理ロジックを最優先とする順序に決定する。本実施形態では、処理ロジックテーブル７２０で定義された４つの処理ロジックのうち、ＮＯ７２１が「４」を最優先とし、追って「１」、「２」、「３」の順に決定する。
【００８５】
前処理の処理ロジックの使用順が決定したら、処理ロジック順決定処理を終了する。このようにして、あらかじめコントラストの明暗差異やプロジェクションの高低差異からある程度優先的に適用する処理ロジックを決定しておけば、更に本一連の処理の処理速度が向上する。
【００８６】
次に、本発明の実施形態における情報処理装置１０１によって行われるテンプレートマッチング処理について図１１を用いて説明する。尚、ステップＳ４０１乃至ステップＳ４１０の各ステップは情報処理装置１０１におけるＣＰＵ２０１の制御の下、処理が行われる。
【００８７】
また、この処理を情報処理装置１０１に実行させるためのプログラムは、情報処理装置１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００８８】
まずは、ステップＳ４０１では、情報処理装置１０１は、認識を行う文字の位置を設定する。最初の文字であれば、前述したステップＳ２０４で算出した認識すべき文字の位置を開始位置とする。すでに何文字か文字認識を行っているのであれば、認識を行った文字数分移動させた位置となる。
【００８９】
ステップＳ４０２では、情報処理装置１０１は、ステップＳ４０１で設定された認識位置が文字認識を行う文字列の１行分を超えてしまったか否かを判定する。具体的には、図３に示すように、部材によっては認識すべき文字列が２行になっていることがある。つまり、１行目が終了したら２行目に認識位置を移動させなければならない。そのために、ステップＳ４０２において１行目を超えたかどうかを判定している。１行目を超えたと判定された場合には、ステップＳ４０３に処理を進め、１行目を超えていないと判定された場合には、ステップＳ４０４に処理を進める。
【００９０】
ステップＳ４０３では、情報処理装置１０１は、認識すべき文字列のうち１行目は終了したので、次の行の先頭位置を認識位置として設定する。
【００９１】
ステップＳ４０４では、情報処理装置１０１は、認識文字と最大一致率の変数を初期化する。認識文字と最大一致率という変数は、後述するステップＳ４０５乃至Ｓ４１０で使用する。
【００９２】
ステップＳ４０５では、情報処理装置１０１は、記憶されたテンプレートファイルの数だけ、後述するステップＳ４０６乃至ステップＳ４１０の処理を繰り返す。つまり、すべてのテンプレートファイルについて、ステップＳ４０６の処理を行うためのものである。テンプレートファイルについては、ステップＳ４０６において後述する。
【００９３】
ステップＳ４０６では、情報処理装置１０１は、ステップＳ４０１またはステップＳ４０３で設定された認識位置と、あらかじめ記憶されたテンプレートファイルのうちの１つとを比較する。テンプレートファイルは、文字認識を行うための元となるファイルである。図１２に示すように、テンプレートファイルは認識する文字と比較するためのファイルであり、それらと認識する文字とを比較して、テンプレートファイルごとに一致率を算出することになる。ここでは認識する文字が英字のみと分かっているので、ＡからＺまでの２６文字に対応するテンプレートファイルが存在すればよいが、数字や記号、その他の種類の文字が含まれる場合には、別途必要に応じてテンプレートファイルを増やす必要がある。本実施形態では、文字認識にテンプレートマッチングを利用するが、文字が認識できるのであれば、これに限らない。
【００９４】
ステップＳ４０７では、情報処理装置１０１は、ステップＳ４０６で比較した結果、認識位置とテンプレートファイルとの一致率を算出する。テンプレートファイルと一致する箇所が多ければ多いほど、一致率が高くなる。一致率の算出方法は特に問わない。
【００９５】
ステップＳ４０８では、情報処理装置１０１は、ステップＳ４０７で算出された一致率が最大一致率を超えたか否かを判定する。最大一致率は、ステップＳ４０４で初期化した変数である。ここまでで算出した一致率の中で、最も高い一致率が格納されている。つまり、それよりも高い一致率であったかどうかを判定することになる。最大一致率を超えたと判定された場合には、ステップＳ４０９に処理を進める。そうでない場合には、すべてのテンプレートファイルと比較したかどうかを判定し、すべて終了したのであれば、ループを抜けてテンプレートマッチング処理を終了する。そうでなければ、新たなテンプレートファイルを取得し、ステップＳ４０６に処理を戻す。
【００９６】
ステップＳ４０９では、情報処理装置１０１は、ステップＳ４０６で使用したテンプレートファイルを示す文字を変数の認識文字に格納する。テンプレートファイルとそのテンプレートファイルを示す文字（テキスト）とは、あらかじめ対応づいているものとする（不図示）。
【００９７】
ステップＳ４１０では、情報処理装置１０１は、ステップＳ４０７で算出した一致率を変数の最大一致率に格納する。これを繰り返すことで、最も一致率の高いテンプレートファイルが判明し、そのテンプレートファイルに対応する認識文字を取得することができる。図１２に示すように、テンプレートファイルとの比較の結果、最も一致率の高いテンプレートファイルは「Ｇ」であるとわかった。つまり、この「Ｇ」を認識文字として決定する。こうすることにより、文字認識処理がなされる。
【００９８】
以上説明したように、本実施形態によれば、データベースに記憶された登録情報と文字認識結果を比較し、一致しなければ別の前処理を用いて文字認識処理を再実行することが可能となるので、画像データごとに実行したい前処理が異なる場合であっても、適切な前処理を選択することのできる効果を奏する。
【００９９】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１００】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１０１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１０２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１０３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１０４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１０５】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１０９】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１１０】
１０１  情報処理装置
１０３  ネットワーク
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆ（インターフェース）コントローラ
２０９  入力装置
２１０  ディスプレイ装置
２１１  外部メモリ
【図１】
2014063390.tif 000003
【図２】
2014063390.tif 000004
【図３】
2014063390.tif 000005
【図４】
2014063390.tif 000006
【図５】
2014063390.tif 000007
【図６】
2014063390.tif 000008
【図７】
2014063390.tif 000009
【図８】
2014063390.tif 000010
【図９】
2014063390.tif 000011
【図１０】
2014063390.tif 000012
【図１１】
2014063390.tif 000013
【図１２】
2014063390.tif 000014