以下、本発明の一側面に係る画像処理装置、制御方法及び制御プログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
図1は、実施形態に従った画像処理システム1の概略構成を示す図である。図1に示すように、画像処理システム1は、画像読取装置100と、情報処理装置200とを有する。
画像読取装置100は、例えば携帯電話、タブレットPC、多機能携帯電話(いわゆるスマートフォン)、ノートPC、ゲーム機又はスキャナ装置等である。画像読取装置100は、情報処理装置200に接続されている。情報処理装置200は、画像処理装置の一例であり、例えばパーソナルコンピュータ等である。
画像読取装置100は、第1通信装置101と、撮像装置102と、第1記憶装置110と、第1処理回路120とを有する。
第1通信装置101は、無線信号を送受信するアンテナと、所定の通信プロトコルに従って、無線通信回線を通じて信号の送受信を行うための無線通信インタフェース回路を有し、情報処理装置200と通信接続して画像データ及び各種の情報を送受信する。所定の通信プロトコルは、例えば無線LAN(Local Area Network)である。なお、第1通信装置101は、有線通信回線を通じて信号の送受信を行うための有線通信インタフェース回路を有し、有線通信により情報処理装置200と通信接続してもよい。
撮像装置102は、2次元に配列されたCCD(Charge Coupled Device)による撮像素子を備える縮小光学系タイプの撮像センサを有する。さらに、撮像装置102は、光を照射する光源と、撮像素子上に像を結ぶレンズと、撮像素子から出力された電気信号を増幅してアナログ/デジタル(A/D)変換するA/D変換器とを有する。撮像装置102において、撮像センサは、搬送される媒体を撮像してアナログの画像信号を生成して出力し、A/D変換器は、このアナログの画像信号をA/D変換してデジタルの入力画像を生成して出力する。入力画像は、各画素データが、例えばRGB各色毎に8bitで表される計24bitのR(赤色)値、G(緑色)値、B(青色)値からなるカラー多値画像である。なお、CCDの代わりにCMOS(Complementary Metal Oxide Semiconductor)による撮像素子を備える等倍光学系タイプのCIS(Contact Image Sensor)が用いられてもよい。
第1記憶装置110は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第1記憶装置110には、画像読取装置100の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて第1記憶装置110にインストールされてもよい。可搬型記録媒体は、例えばCD-ROM(compact disk read only memory)、DVD-ROM(digital versatile disk read only memory)等である。また、第1記憶装置110は、撮像装置102により生成された入力画像等を記憶する。
第1処理回路120は、予め第1記憶装置110に記憶されているプログラムに基づいて動作する。第1処理回路120は、例えばCPU(Control Processing Unit)である。なお、第1処理回路120として、DSP(digital signal processor)、LSI(large scale integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programming Gate Array)等が用いられてもよい。
第1処理回路120は、第1通信装置101、撮像装置102及び第1記憶装置110等と接続され、これらの各部を制御する。第1処理回路120は、撮像装置102の媒体読取制御、第1通信装置101を介した情報処理装置200とのデータ送受信制御等を行う。
情報処理装置200は、第2通信装置201と、入力装置202と、表示装置203と、第2記憶装置210と、第2処理回路220とを有する。以下、情報処理装置200の各部について詳細に説明する。
第2通信装置201は、画像読取装置100の第1通信装置101と同様の通信インタフェース回路を有し、情報処理装置200と画像読取装置100及び他のコンピュータとを接続する。
入力装置202は、キーボード、マウス等の入力装置及び入力装置から信号を取得するインタフェース回路を有し、利用者の操作に応じた信号を第2処理回路220に出力する。
表示装置203は、出力部の一例である。表示装置203は、液晶、有機EL(Electro-Luminescence)等から構成されるディスプレイ及びディスプレイに画像データを出力するインタフェース回路を有する。表示装置203は、第2処理回路220からの指示に従って、各種の情報をディスプレイに表示する。
第2記憶装置210は、記憶部の一例であり、画像読取装置100の第1記憶装置110と同様のメモリ装置、固定ディスク装置、可搬用の記憶装置等を有する。第2記憶装置210には、情報処理装置200の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばCD-ROM、DVD-ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて第2記憶装置210にインストールされてもよい。
また、第2記憶装置210には、データとして、教師テーブル及び位置テーブル等が予め記憶される。各テーブルの詳細については後述する。
第2処理回路220は、予め第2記憶装置210に記憶されているプログラムに基づいて動作する。第2処理回路220は、例えばCPUである。なお、第2処理回路220として、DSP、LSI、ASIC、FPGA等が用いられてもよい。
第2処理回路220は、第2通信装置201、入力装置202、表示装置203及び第2記憶装置210等と接続され、これらの各部を制御する。第2処理回路220は、第2通信装置201を介した画像読取装置100とのデータ送受信制御、入力装置202の入力制御、表示装置203の表示制御等を行う。
図2Aは、教師テーブルのデータ構造の一例を示す図である。
教師テーブルには、検出対象物毎に、各検出対象物が含まれる教師画像、各教師画像内で各検出対象物に含まれる複数の教師特徴点、及び、複数の教師特徴点毎の教師特徴量等が関連付けて記憶される。
検出対象物は、矩形の形状を有する帳票である。検出対象物は、例えば運転免許証、マイナンバーカード、在留カード等の本人確認書類、クレジットカード等のカード、又は、国、自治体、企業等で利用される予め定められたフォームを有する帳票等である。検出対象物には、その検出対象物の辺又は検出対象物内の文字、記号、罫線、写真等の内、端部、角部、中央部等の特徴的な部分(点)を示す複数の特徴点が含まれる。
教師画像は、検出対象物及びその検出対象物に含まれる複数の教師特徴点を含む画像である。
教師特徴点は、各教師画像が登録される際に、事前学習された学習器によって各教師画像から検出された特徴点である。教師特徴点として、教師画像を示す二次元座標空間内で特徴点に対応する座標が設定される。
教師特徴量は、学習器により各教師特徴点が検出された際に、学習器によって算出された各教師特徴点の特徴量(特徴ベクトル)である。情報処理装置200が使用する特徴量は、局所的な特徴量であり、例えば輝度勾配の極値に関する情報である。一般に、利用者によって携帯端末のカメラを用いて撮像された画像では、画像毎にサイズ、角度、歪みの大きさ等が異なる。輝度勾配の極値に関する情報は、サイズ、角度、歪みの大きさ等の変動に対してロバストであり、情報処理装置200は、輝度勾配の極値に関する情報を特徴量として用いることにより、検出対象物の位置を安定して高精度に検出することができる。輝度勾配の極値に関する特徴量として、例えばSIFT(Scale-Invariant Feature Transform)特徴量、A-KAZE特徴量、SURF(Speeded Up Robust Features)特徴量、ORB(Oriented FAST and Rotated Binary Robust Independent Elementary Features)特徴量等が使用される。なお、特徴量として、複数の種類の特徴量が設定されてもよい。
学習器は、例えばディープラーニング等により、矩形の検出対象物を含む複数のサンプル画像を用いて、サンプル画像が入力された場合に、その画像に含まれる検出対象物の複数の特徴点と、各特徴点の特徴量とを出力するように事前学習される。学習器は、学習装置により事前学習され、第2記憶装置210に記憶される。学習器は、情報処理装置200により事前学習されてもよい。
図2Bは、位置テーブルのデータ構造の一例を示す図である。
位置テーブルには、検出対象物毎に、位置情報、教師対応領域及び対応情報等が関連付けて記憶される。
位置情報は、各検出対象物が含まれる教師画像内で、各検出対象物の4つ角(左上角、右上角、左下角、右下角)のそれぞれの位置を示す情報である。位置情報として、教師画像を示す二次元空間内で4つ角に対応する座標が設定される。
教師対応領域は、4つ角毎に、各角の周辺(各角から所定距離内)であり且つ教師特徴点を含む領域である。教師対応領域として、教師画像を示す二次元空間内で、例えばその領域の左上角の座標と右下角の座標とが設定される。
対応情報は、各検出対象物の4つ角に対応する教師特徴点を示す情報である。対応情報として、4つ角毎に、各角に対応する教師対応領域に含まれる教師特徴点を示す情報が設定される。
位置情報、教師対応領域及び対応情報は、情報処理装置200の管理者によって、各教師画像に適合するように事前に設定される。
図3は、第2記憶装置210及び第2処理回路220の概略構成を示す図である。
図3に示すように第2記憶装置210には、辞書生成プログラム211、取得プログラム212、検出プログラム213、判定プログラム214、特定プログラム215、推定プログラム216及び出力制御プログラム217等の各プログラムが記憶される。これらの各プログラムは、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。第2処理回路220は、第2記憶装置210に記憶された各プログラムを読み取り、読み取った各プログラムに従って動作する。これにより、第2処理回路220は、辞書生成部221、取得部222、検出部223、判定部224、特定部225、推定部226及び出力制御部227として機能する。
図4は、情報処理装置200による辞書生成処理の動作の例を示すフローチャートである。以下、図4に示したフローチャートを参照しつつ、辞書生成処理の動作を説明する。なお、以下に説明する動作のフローは、予め第2記憶装置210に記憶されているプログラムに基づき主に第2処理回路220により情報処理装置200の各要素と協働して実行される。
最初に、辞書生成部221は、入力装置202を用いて管理者から、又は、第2通信装置201を介して他のコンピュータから教師画像を取得する(ステップS101)。
図5は、教師画像500の一例を示す模式図である。
図5に示す教師画像500は、検出対象物として運転免許証501を含んでいる。図5に示すように、教師画像500では、運転免許証501の内、所有者毎の個人情報が除去されて、全ての所有者に共通の文字、罫線等のみが含まれている。教師画像として全ての所有者に共通の文字、罫線等のみが含まれる画像が使用されることにより、情報処理装置200は、検出対象物の位置を精度良く特定することができる。なお、教師画像として、所有者毎の個人情報が除去されていない画像が使用されてもよい。
次に、辞書生成部221は、取得した教師画像を、第2記憶装置210に記憶された学習器に入力し、学習器から出力された複数の特徴点及び特徴量を、教師特徴点及び教師特徴量として検出する(ステップS102)。辞書生成部221は、取得した教師画像、教師特徴点及び教師特徴量を表示装置203に表示し又は第2通信装置201を介して他のコンピュータに送信して表示させる。
図5に示す例では、学習器により、教師画像500から複数の教師特徴点510~518が検出されており、各教師特徴点510~518の教師特徴量が算出されている。なお、説明を簡易にするために、図5に示す例では、特徴点が9つだけ示されているが、特徴点は多数(数百~数千個)検出される。
次に、辞書生成部221は、入力装置202を用いて管理者から、又は、第2通信装置201を介して他のコンピュータから、各教師画像に含まれる検出対象物の4つ角の位置、及び、4つ角に対応する教師対応領域の指定を受け付ける。辞書生成部221は、4つ角に対応する教師特徴点として、ステップS102で取得した教師特徴点の中から、指定された教師対応領域に含まれる教師特徴点を抽出する。これにより、辞書生成部221は、指定された4つ角の位置を示す位置情報、4つ角に対応する教師対応領域、及び、4つ角に対応する教師特徴点を示す対応情報を取得する(ステップS103)。なお、辞書生成部221は、入力装置202を用いて管理者から、又は、第2通信装置201を介して他のコンピュータから、4つ角に対応する教師特徴点の指定を受け付けてもよい。
図5に示す例では、管理者により、教師画像500に含まれる検出対象物である運転免許証の左上角521、右上角522、左下角523及び右下角524が指定される。なお、運転免許証は各角に丸みを有しており、運転免許証には運転免許証の辺が交差する点は存在しないが、図5に示すように、4つ角の位置として、教師画像500内の検出対象物の各辺を延長したラインが交差する位置が指定されることが望ましい。
また、図5に示す例では、左上角521、右上角522、左下角523及び右下角524に対して、検出対象物内部であり且つ各角の周辺に位置する教師対応領域525、526、527及び528が指定される。そして、左上角521に対応する教師特徴点として、教師対応領域525内に存在する教師特徴点511、512が抽出される。また、右上角522に対応する教師特徴点として、教師対応領域526内に存在する教師特徴点513、514が抽出される。また、左下角523に対応する教師特徴点として、教師対応領域527内に存在する教師特徴点515、516が抽出される。また、右下角524に対応する教師特徴点として、教師対応領域528内に存在する教師特徴点517、518が抽出される。
次に、辞書生成部221は、取得した教師画像、教師特徴点、教師特徴量、位置情報、教師対応領域及び対応情報を関連付けて教師テーブル及び位置テーブルに記憶し(ステップS104)、一連のステップを終了する。
図6は、画像読取装置100による画像読取処理の動作の例を示すフローチャートである。以下、図6に示したフローチャートを参照しつつ、画像読取処理の動作を説明する。なお、以下に説明する動作のフローは、予め第1記憶装置110に記憶されているプログラムに基づき主に第1処理回路120により画像読取装置100の各要素と協働して実行される。
最初に、撮像装置102は、検出対象物を撮像して入力画像を生成し、第1記憶装置110に記憶する(ステップS201)。
次に、第1処理回路120は、第1記憶装置110に記憶された入力画像を、第1通信装置101を介して情報処理装置200に送信し(ステップS202)、一連のステップを終了する。
図7は、情報処理装置200による認識処理の動作の例を示すフローチャートである。以下、図7に示したフローチャートを参照しつつ、認識処理の動作を説明する。なお、以下に説明する動作のフローは、予め第2記憶装置210に記憶されているプログラムに基づき主に第2処理回路220により情報処理装置200の各要素と協同して実行される。
最初に、取得部222は、入力画像を、第2通信装置201を介して画像読取装置100から取得し、第2記憶装置210に記憶する(ステップS301)。なお、情報処理装置200に検出対象物が複数設定されている場合、取得部222は、入力装置202を用いて管理者から、又は、第2通信装置201を介して他のコンピュータから、入力画像に含まれる検出対象物の指定を受け付ける。
図8は、入力画像800の一例を示す模式図である。
図8に示す入力画像800は、検出対象物として運転免許証801を含んでいる。但し、入力画像800は、利用者により、画像読取装置100の撮像装置102を用いて撮像されており、入力画像800において、運転免許証801は傾いた状態で写っている。また、入力画像800には、ピンボケにより不明瞭部分802が含まれている。
次に、検出部223は、取得した入力画像を、第2記憶装置210に記憶された学習器に入力し、学習器から出力された複数の特徴点及び特徴量を、検出対象物の複数の特徴点及びその複数の特徴点毎の特徴量として検出する(ステップS302)。
図8に示す例では、学習器により、入力画像800から複数の特徴点810~816、819が検出されており、各特徴点810~816、819の特徴量が算出されている。左上角821の近傍に検出された特徴点811、812は、教師特徴点511、512に対応している。右上角822の近傍に検出された特徴点813、814は、教師特徴点513、514に対応している。左下角823の近傍に検出された特徴点815、816は、教師特徴点515、516に対応している。但し、入力画像800において、教師特徴点517、518に対応する点817、818は、ピンボケによる不明瞭部分802に含まれており、特徴点として検出されていない。右下角824の最も近くに検出された特徴点は、右下角824から離れた位置に存在する特徴点819である。なお、説明を簡易にするために、図8に示す例では、特徴点が8つだけ示されているが、特徴点は多数(数百~数千個)検出される。
次に、判定部224は、検出部223により4つ以上の特徴点が検出されたか否かを判定する(ステップS303)。4つ以上の特徴点が検出されなかった場合、判定部224は、入力画像から検出対象物の位置を精度良く算出することが困難であると判定し、検出対象物の位置を特定することなく、一連のステップを終了する。
一方、4つ以上の特徴点が検出された場合、判定部224は、位置テーブルに記憶された対応情報に示される教師特徴点の教師特徴量に基づいて、検出対象物の4つ角に対応する特徴点が検出できたか否かを判定する(ステップS304)。
判定部224は、まず、教師テーブルを参照して、検出対象物に対応する全ての教師特徴点を特定し、特定した各教師特徴点の教師特徴量を特定する。判定部224は、入力画像から検出された各特徴点と、教師テーブルにおいて特定された各教師特徴点とのペア毎に、各特徴点の類似の度合いを示す類似度を算出する。判定部224は、類似度として、例えば入力画像から検出された各特徴点の特徴量(特徴ベクトル)と、各教師特徴点の教師特徴量(特徴ベクトル)のコサイン類似度を算出する。判定部224は、特徴点及び教師特徴点が重複して抽出されないように、類似度が高い順に、類似度が閾値以上であるペアを抽出し、抽出したペアに係る特徴点と教師特徴点を対応付ける。
なお、判定部224は、各特徴点又は各教師特徴点について、類似度が最も高いペアの類似度と、類似度が二番目に高いペアの類似度の差が所定差以下である場合、その各ペアについては特徴点と教師特徴点を対応付けないようにしてもよい。これにより、判定部224は、相互に対応しない特徴点と教師特徴点を誤って対応付けてしまうことを抑制できる。
次に、判定部224は、位置テーブルを参照して、検出対象物に対応する、四つの角のそれぞれの対応情報に示される教師特徴点を特定する。判定部224は、四つの角毎に、特定した教師特徴点に何れかの特徴点が対応付けられたか否かを判定する。判定部224は、各角について、何れかの教師特徴点に特徴点が対応付けられている場合、その角に対応する特徴点が検出できたと判定し、何れの教師特徴点にも特徴点が対応付けられていない場合、その角に対応する特徴点が検出できなかったと判定する。判定部224は、4つの角の全てについて対応する特徴点が検出できた場合、検出対象物の4つ角に対応する特徴点が検出できたと判定し、何れかの角について特徴点が検出できなかった場合、検出対象物の4つ角に対応する特徴点が検出できなかったと判定する。
図5及び図8に示す例では、左上角521に対応する教師特徴点511、512に、入力画像800から検出された特徴点811、812が対応付けられる。また、右上角522に対応する教師特徴点513、514に、入力画像800から検出された特徴点813、814が対応付けられる。また、左下角523に対応する教師特徴点515、516に、入力画像800から検出された特徴点815、816が対応付けられる。しかし、入力画像800において、右下角524に対応する教師特徴点517、518に対応する点817、818は特徴点として検出されていない。そのため、右下角524に対応する教師特徴点517、518には、入力画像800から検出された特徴点が対応付けられず、検出対象物の4つ角に対応する特徴点が検出できなかったと判定される。
検出対象物の4つ角に対応する特徴点が検出できたと判定された場合、特定部225は、検出部223により検出された特徴点とその特徴点に対応する教師特徴点とに基づいて、第1射影変換行列を算出する(ステップS305)。第1射影変換行列は、教師画像の座標空間を入力画像の座標空間に変換するための変換行列であり、検出部223により検出された特徴点とその特徴点に対応する教師特徴点の位置関係の一例である。
入力画像内の特徴点と、教師特徴点と、第1射影変換行列の関係は、以下の式(1)で表される。
ここで、x’及びy’は、入力画像を示す二次元座標空間における特徴点のx座標及びy座標であり、x及びyは、教師画像を示す二次元座標空間における教師特徴点のx座標及びy座標である。第1射影変換行列は、3行×3列の行列であり、a~iは、第1射影変換行列の各要素である。
特定部225は、判定部224により対応付けられた特徴点と教師特徴点のペアの中から、ペアを四つずつ組み合せたセットを抽出し、各セットに含まれるペアに係る特徴点の座標と教師特徴点の座標から、式(1)を満たす要素a~iを算出する。特定部225は、セット毎に算出した要素a~iの平均値をそれぞれ第1射影変換行列の要素a~iとして算出する。
次に、特定部225は、教師画像に含まれる検出対象物の四つ角の位置情報と、第1射影変換行列とに基づいて、入力画像における角の位置を特定する(ステップS306)。
特定部225は、位置テーブルを参照して、検出対象物に対応する位置情報に示される各角の座標、即ち教師画像に含まれる検出対象物の各角の座標を特定する。特定部225は、四つの角毎に、第1射影変換行列を用いて各角の座標を変換することにより、即ち式(1)の(x、y)に教師画像に含まれる検出対象物の各角の座標を代入することにより、入力画像における角の座標を算出し、角の位置を特定する。
特定部225は、四つの角に対応する特徴点と教師特徴点の位置関係から算出された第1射影変換行列を用いることにより、入力画像における角の位置を高精度に特定することができる。
一方、ステップS304において検出対象物の4つ角に対応する特徴点が検出できないと判定された場合、判定部224は、検出対象物の3つの角に対応する特徴点が検出できたか否かを判定する(ステップS307)。判定部224は、ステップS304の処理と同様に、対応情報に示される教師特徴点の教師特徴量に基づいて、検出対象物の3つの角に対応する特徴点が検出できたか否かを判定する。判定部224は、特徴点が検出できた角が3つ以上である場合、検出対象物の3つの角に対応する特徴点が検出できたと判定する。一方、判定部224は、特徴点が検出できた角が3つ未満である場合、検出対象物の3つの角に対応する特徴点が検出できなかったと判定する。検出対象物の3つの角に対応する特徴点が検出できなかった場合、判定部224は、入力画像から検出対象物の位置を精度良く算出することが困難であると判定し、検出対象物の位置を特定することなく、一連のステップを終了する。
一方、検出対象物の3つの角に対応する特徴点が検出できた場合、推定部226は、検出部223により検出された特徴点とその特徴点に対応する教師特徴点とに基づいて、第2射影変換行列を算出する(ステップS308)。第2射影変換行列は、第1射影変換行列と同様に、教師画像の座標空間を入力画像の座標空間に変換するための変換行列であり、検出部223により検出された特徴点とその特徴点に対応する教師特徴点の位置関係の一例である。
入力画像内の特徴点と、教師特徴点と、第2射影変換行列の関係は、上記した式(1)で表される。但し、この入力画像内の特徴点には、検出対象物の4つ角の内、1つの角に対応する特徴点が含まれていないため、第2射影変換行列が教師画像の座標空間を入力画像の座標空間に変換する変換精度は、第1射影変換行列の変換精度より低い。
次に、推定部226は、算出した第2射影変換行列に基づいて、補完領域を推定する(ステップS309)。補完領域は、ステップS302で所定の特徴点が検出できなかったことにより特定できなかった所定の角に対応する教師特徴点を含む教師画像内の領域に対応する入力画像内の領域である。
推定部226は、位置テーブルを参照して、検出対象物に対応する位置情報に示される教師画像内の各角の座標の内、対応する特徴点が検出できなかった角の座標を特定する。推定部226は、第2射影変換行列を用いて、特定した角の座標を変換することにより、即ち式(1)の(x、y)に、特定した角の座標の座標を代入することにより、入力画像における所定の角の座標を算出し、所定の角の仮の位置を設定する。
次に、推定部226は、算出した所定の角の座標から、検出できなかった特徴点の位置を推定する。推定部226は、設定した入力画像内の所定の角の仮の位置に対して、対応する教師画像内の角に対するその角に対応する各教師特徴点の位置関係と同じ位置関係を有する位置を算出する。推定部226は、算出した入力画像内の所定の角の座標の各成分(x成分、y成分)に、対応する教師画像内の角の座標の各成分を、その角に対応する各教師特徴点の座標の各成分から減算した減算値を加算した座標を算出する。推定部226は、算出した座標を、検出できなかった特徴点の座標として推定する。
推定部226は、検出できなかった特徴点の位置として推定された各位置を包含する領域を補完領域として設定する。推定部226は、例えば推定された各位置群の外接矩形領域を水平及び垂直方向に所定サイズ分だけ拡大した領域を補完領域として設定する。上記したように、第2射影変換行列の変換精度は第1射影変換行列の変換精度より低いため、推定部226が推定した各位置は誤差を含んでいる。推定部226は、補完領域を大きめに設定することにより、検出できなかった角の位置をより高精度に推定できる。
このように、特定部225は、三つの角に対応する特徴点の位置関係から算出された第2射影変換行列を用いることにより、検出できなかった角の位置を高精度に推定することが可能な補完領域を設定することができる。
なお、推定部226は、教師画像内の教師対応領域に対応する入力画像内の領域を補完領域として設定してもよい。その場合、推定部226は、設定した入力画像内の所定の角の仮の位置に対して、対応する教師画像内の角に対するその角に対応する教師対応領域の各端部(角)の位置関係と同じ位置関係を有する位置を算出する。推定部226は、算出した各位置を角とする領域を水平及び垂直方向に所定サイズ分だけ拡大した領域を補完領域として設定する。
図5及び図8に示す例では、入力画像800において、右下角524に対応する教師特徴点517、518に対応する点817、818が特徴点として検出されていない。右下角524の近傍の教師特徴点517、518と、対応する特徴点との位置関係が利用されていないため、第2射影変換行列の変換精度は、第1射影変換行列の変換精度より低い。そのため、第2射影変換行列を用いて算出された右下角の推定位置825は、実際の右下角824の位置に対してずれている。また、推定位置825に対して、教師画像500内の右下角524に対する教師特徴点517、518の位置関係と同じ位置関係を有する位置831、832は、点817、818からずれている。そのため、位置831、832の外接矩形領域833は、実際に教師特徴点517に対応する点817を包含していない。推定部226は、外接矩形領域833を所定サイズ分だけ拡大した領域834を補完領域として設定することにより、教師特徴点517、518に対応する点817、818が包含されるように補完領域834を設定できる。
次に、推定部226は、入力画像における位置を特定できなかった所定の角に対応する教師画像内の教師対応領域と、入力画像内の補完領域とのパターンマッチングを行う(ステップS310)。即ち、推定部226は、所定の特徴点が検出できなかったことにより、入力画像における所定の角の位置を特定できない場合、その所定の角に対応する教師特徴点を含む教師画像内の領域と、その領域に対応する入力画像内の領域とのパターンマッチングを行う。
推定部226は、位置テーブルを参照して、位置を特定できなかった所定の角に対応する教師対応領域を特定し、教師画像から、特定した教師対応領域を切り出した教師切り出し画像を生成する。推定部226は、教師切り出し画像内で階調値が二値化閾値以上である画素を無効画素とし、階調値が二値化閾値未満である画素を有効画素とした教師二値画像を生成する。階調値は、例えば輝度値又は色値等である。二値化閾値は、例えば階調範囲の最大値と最小値の中央値に設定される。推定部226は、相互に隣接する有効画素で囲まれる領域をラベリングにより一つのグループにまとめて有効領域として設定し、各有効領域の外接矩形領域内の画素を有効画素とし、他の画素を無効画素とした教師ラベル画像を生成する。
同様に、推定部226は、入力画像から補完領域を切り出した入力切り出し画像を生成する。推定部226は、入力切り出し画像内で階調値が二値化閾値以上である画素を無効画素とし、階調値が二値化閾値未満である画素を有効画素とした入力二値画像を生成する。推定部226は、入力二値画像内で相互に隣接する有効画素で囲まれる領域をラベリングにより一つのグループにまとめて有効領域として設定し、各有効領域の外接矩形領域内の画素を有効画素とし、他の画素を無効画素とした入力ラベル画像を生成する。
推定部226は、入力ラベル画像内で切り出し範囲を移動させながら、教師ラベル画像と同一サイズの画像を順次切り出し、教師ラベル画像との類似の程度が最大値閾値以上である画像に対応する入力画像内の領域を入力対応領域として検出する。類似の程度は、例えば正規化相互相関値である。
このように、推定部226は、所定の角に対応する教師特徴点を含む教師画像内の教師対応領域を二値化した教師二値画像内の有効画素の外接矩形と、入力画像において対応する領域を二値化した入力二値画像内の有効画素の外接矩形とを比較する。これにより、推定部226は、パターンマッチングを行う。推定部226は、二値化した画像の有効画素の外接矩形を比較してパターンマッチングを行うことにより、低負荷に且つ短時間で画像を比較できるので、認識処理における処理負荷を軽減し且つ処理時間を短縮することができる。
なお、推定部226は、教師ラベル画像と入力ラベル画像のパターンマッチングに代えて、教師切り出し画像と入力切り出し画像のパターンマッチング、又は、教師二値画像と入力二値画像のパターンマッチングを行ってもよい。
図9は、推定部226によるパターンマッチングについて説明するための模式図である。
図9の画像900は教師画像500から教師対応領域を切り出した教師切り出し画像であり、画像901は教師切り出し画像900から生成された教師二値画像であり、画像902は教師二値画像901から生成された教師ラベル画像である。一方、画像910は入力画像800から補完領域834を切り出した入力切り出し画像であり、画像911は入力切り出し画像910から生成された入力二値画像であり、画像912は入力二値画像911から生成された入力ラベル画像である。図9に示す例では、入力ラベル画像912において「公安委員会」と記載されていた領域913が、教師ラベル画像902と最も類似し、入力対応領域として検出されている。
次に、推定部226は、パターンマッチングにより検出した入力画像内の入力対応領域に基づいて、入力画像における位置を特定できなかった所定の角に対応する所定の特徴点を推定する(ステップS311)。
推定部226は、検出した入力対応領域内の所定位置(角又は重心位置等)に対して、教師対応領域内の対応する所定位置(角又は重心位置等)に対する各教師特徴点の位置関係と同じ位置関係を有する位置を算出する。推定部226は、入力対応領域内の所定位置の座標の各成分に、教師対応領域内の所定位置の座標の各成分を各教師特徴点の座標の各成分から減算した減算値を加算した座標を算出する。推定部226は、算出した座標を、各教師特徴点に対応する特徴点の座標として推定する。
なお、推定部226は、教師対応領域内の所定位置(角又は重心位置等)を新たな教師特徴点とし、検出した入力対応領域内の対応する所定位置(角又は重心位置等)を、その教師特徴点に対応する特徴点として推定してもよい。
次に、推定部226は、検出部223により検出された特徴点とその特徴点に対応する教師特徴点に加えて、推定部226が推定した特徴点とその特徴点に対応する教師特徴点に基づいて、第3射影変換行列を算出する(ステップS312)。第3射影変換行列は、第1射影変換行列と同様に、教師画像の座標空間を入力画像の座標空間に変換するための変換行列である。
入力画像内の特徴点と、教師特徴点と、第3射影変換行列の関係は、上記した式(1)で表される。この入力画像内の特徴点には、検出対象物の4つ角の全てに対応する特徴点が含まれているため、第3射影変換行列の変換精度は、第2射影変換行列の変換精度より高く、第1射影変換行列の変換精度と同程度である。
次に、推定部226は、教師画像に含まれる検出対象物の四つ角の位置情報と、第3射影変換行列とに基づいて、入力画像における角の位置、特に特定できなかった入力画像における角の位置を推定する(ステップS313)。推定部226は、第3射影変換行列を用いて、ステップS306の処理と同様に、式(1)の(x、y)に教師画像に含まれる検出対象物の各角の座標を代入することにより、入力画像における角の位置の座標を算出する。
推定部226は、第1射影変換行列の変換精度と同程度の変換精度を有する第3射影変換行列を用いることにより、入力画像における角の位置を高精度に推定できる。
次に、出力制御部227は、入力画像において検出又は推定された角の位置から検出対象物が含まれる領域を特定し、特定した領域から文字情報を認識する(ステップS314)。出力制御部227は、入力画像において検出又は推定された四つの角を四つ角とする四角形の領域を検出対象物が含まれる領域として特定する。出力制御部227は、公知のOCR技術を利用して、特定した領域から文字情報を認識する。
次に、出力制御部227は、認識した文字情報を表示装置203に表示し又は第2通信装置201を介して外部のコンピュータに送信することにより出力し(ステップS315)、一連のステップを終了する。認識した文字情報は、入力画像において検出又は推定された角の位置に基づく情報の一例である。なお、出力制御部227は、入力画像において検出又は推定された角の位置に基づく情報として、入力画像において検出又は推定された角の位置自体、検出対象物が含まれる領域の座標、又は、入力画像から検出対象物を切り出した画像等を出力してもよい。それらの場合、出力制御部227は、特定した領域から文字情報を認識しなくてもよい。
以上詳述したように、情報処理装置200は、教師画像内の教師特徴点と入力画像内の特徴点の関係に基づいて入力画像内の検出対象物の角の位置を特定し、角の位置を特定できなかった場合、パターンマッチングにより角の位置を推定する。これにより、情報処理装置200は、入力画像における検出対象物の位置をより精度良く検出することが可能となった。
また、利用者により携帯可能な画像読取装置100の撮像装置102を用いて検出対象物が撮像された画像には、検出対象物と重複するように利用者の指等が撮像される可能性、又は、検出対象物の一部にピンボケが発生する可能性がある。また、撮像装置102の特性によっても検出対象物の一部にピンボケが発生する可能性がある。情報処理装置200は、検出対象物の角の一つが検出できない場合にはパターンマッチングを用いて角の位置を推定するため、入力画像において検出対象物の角の一つが明瞭に撮像されていない場合でも、検出対象物の位置を精度良く検出することが可能となった。
また、利用者により携帯可能な画像読取装置100の撮像装置102を用いて検出対象物が撮像された画像には、背景に木目調のテーブルや、細かい文字が書かれた新聞紙等の複雑な模様が含まれる可能性がある。情報処理装置200は、検出対象物内の特徴点に基づいて検出対象物の角を検出するため、入力画像の背景に複雑な模様が含まれて、検出対象物の角と背景との差が不明瞭である場合でも、検出対象物の位置を精度良く検出することが可能となった。
また、一般に、パターンマッチング技術によって画像から検出対象物の位置を特定する場合、画像を様々な態様で変形(拡大縮小/回転/歪み補正)しながら、登録画像と照合させる必要がある。情報処理装置200は、入力画像内で検出した3つの角に基づいて補完領域を設定するので、パターンマッチングを行う対象領域を精度良く推定でき、対象物の位置を短時間に且つ精度良く推定できる。
また、画像処理システム1は、OCR及びRPA(Robotic Process Automation)技術を利用して帳票入力業務を自動化するシステムにおいても適用可能である。このような企業においても、画像処理システム1を適用することにより、帳票入力業務の効率化を図り、担当者の業務負担を軽減させることが可能となる。
図10は、他の実施形態に係る情報処理装置における第2処理回路230の概略構成を示すブロック図である。
第2処理回路230は、第2処理回路220の代わりに、辞書生成処理及び認識処理等を実行する。第2処理回路230は、辞書生成回路231、取得回路232、検出回路233、判定回路234、特定回路235、推定回路236及び出力制御回路237等を有する。
辞書生成回路231は、辞書生成部の一例であり、辞書生成部221と同様の機能を有する。辞書生成回路231は、入力装置202又は第2通信装置201から教師画像を取得し、教師画像から教師特徴点及び教師特徴量を算出する。また、辞書生成回路231は、入力装置202又は第2通信装置201から検出対象物の4つ角の位置情報及び教師対応領域を取得し、取得した各情報から対応情報を取得する。辞書生成回路231は、取得及び算出した各情報を第2記憶装置210に記憶する。
取得回路232は、取得部の一例であり、取得部222と同様の機能を有する。取得回路232は、入力画像を、第2通信装置201を介して画像読取装置100から取得し、第2記憶装置210に記憶する。
検出回路233は、検出部の一例であり、検出部223と同様の機能を有する。検出回路233は、第2記憶装置210から入力画像を読み出し、入力画像から特徴点及び特徴量を検出し、検出結果を第2記憶装置210に記憶する。
判定回路234は、判定部の一例であり、判定部224と同様の機能を有する。判定回路234は、第2記憶装置210から教師テーブル及び位置テーブルと、特徴点及び特徴量の検出結果とを読み出し、4つ角に対応する特徴点が検出できたか否かを判定し、判定結果を第2記憶装置210に記憶する。
特定回路235は、特定部の一例であり、特定部225と同様の機能を有する。特定回路235は、第2記憶装置210から教師テーブル及び位置テーブルと、特徴点及び特徴量の検出結果とを読み出して、入力画像における角の位置を特定し、特定結果を第2記憶装置210に記憶する。
推定回路236は、推定部の一例であり、推定部226と同様の機能を有する。推定回路236は、第2記憶装置210から教師テーブル及び位置テーブルと、特徴点及び特徴量の検出結果とを読み出して、入力画像における角の位置を推定し、推定結果を第2記憶装置210に記憶する。
出力制御回路237は、出力制御部の一例であり、出力制御部227と同様の機能を有する。出力制御回路237は、第2記憶装置210から入力画像における角の位置の特定結果及び推定結果を読み出し、角の位置に関する情報を表示装置203又は第2通信装置201に出力する。
以上詳述したように、情報処理装置は、第2処理回路230を用いる場合も、入力画像における検出対象物の位置をより精度良く検出することが可能となった。
以上、好適な実施形態について説明してきたが、実施形態はこれらに限定されない。例えば、画像読取装置100と情報処理装置200の機能分担は、図1に示す画像処理システム1の例に限られず、画像読取装置100及び情報処理装置200の各部を画像読取装置100と情報処理装置200の何れに配置するかは適宜変更可能である。または、画像読取装置100と情報処理装置200を一つの装置で構成してもよい。
例えば、画像読取装置100の第1記憶装置110が、情報処理装置200の第2記憶装置210に記憶された各プログラム及び各データを記憶してもよい。また、画像読取装置100の第1処理回路120が、情報処理装置200の第2処理回路220により実現される各部として動作してもよい。また、画像読取装置100が、情報処理装置200の第2処理回路230と同様の処理回路を有してもよい。
その場合、画像読取装置100は、入力装置202と同様の入力装置及び表示装置203と同様の表示装置を有する。認識処理は画像読取装置100で実行されるため、ステップS202、S301の入力画像の送受信処理は省略される。ステップS302~S315の各処理は、画像読取装置100の第1処理回路120によって実行される。これらの処理の動作は、情報処理装置200の第2処理回路220又は第2処理回路230によって実行される場合と同様である。この場合、画像読取装置100が画像処理装置として動作する。
また、画像処理システム1において、クラウドコンピューティングの形態で画像処理のサービスを提供できるように、ネットワーク上に複数の情報処理装置を分散して配置し、各情報処理装置が協働して、認識処理等を分担するようにしてもよい。これにより、画像処理システム1は、複数の画像読取装置が読み取った入力画像について、効率よく認識処理を実行できる。