(実施形態1)
以下、図1〜図16を参照して本発明の第1実施形態を説明する。
図1は、情報読取装置の基本的な構成要素を示したブロック図である。
情報読取装置は、高精彩画像を撮影可能な撮像機能を備え、例えば、倉庫等で山積みされている複数の荷物(商品)全体を高解像度撮影してその撮影画像を全体画像として取得し、この全体画像内に存在している全ての読取対象(例えば、一次元バーコード、二次元バーコード、ロゴ、OCR文字等)としての特定パターン(バーコード等の画像部分)をパターン分析により抽出し、その特定パターン(読取対象)の個々を解析することにより全体画像内に存在している全ての読取対象を一括して読み取るようにしたものである。そして、この情報読取装置は、例えば、荷物(商品)の集積場所(倉庫等の保管場所)に対面して荷物を正面から撮影するために、倉庫等の所定箇所に固定的に設置された定置式の情報読取装置(荷物監視装置)である。
制御部1は、電源部(例えば、商用電源、二次電池など)2からの電力供給によって動作し、記憶部3内の各種のプログラムに応じてこの定置式情報読取装置の全体動作を制御するもので、この制御部1には図示しないCPU(中央演算処理装置)やメモリが設けられている。記憶部3は、例えば、ROM、フラッシュメモリなどを有する構成で、図6〜図9に示した動作手順に応じて本実施形態を実現するためのプログラムや各種のアプリケーションが格納されているプログラム記憶部M1、バーコード等の読み取り結果を記憶する管理テーブル記憶部M2、撮影画像を記憶する画像記憶部M3、情報認識用の辞書記憶部M4を有している。
RAM4は、フラグ情報、画面情報等、この定置式情報読取装置が動作するために必要となる各種の情報を一時的に記憶するワーク領域である。表示部5は、例えば、高精細液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、電気泳動型ディスプレイ(電子ペーパ)のいずれかを使用したもので、情報読取装置の本体から分離されてコード接続又は通信接続された外部モニタとしての表示装置であるが、情報読取装置の本体内に設けたものであってもよい。この表示部5は、読み取り結果などを高精細に表示するもので、この表示部5の表面に指の接触を検出する透明なタッチパネルを積層配設することにより、例えば、静電容量方式のタッチスクリーン(タッチ画面)を構成するようにしている。
操作部6は、情報読取装置の本体から分離されてコード接続又は通信接続された外部キーボードであるが、情報読取装置の本体内に設けたものであってもよい。この操作部6は、図示省略したが、例えば、押しボタン形式の各種のキーとして、電源キー、数字キー、文字キー、各種のファンクションキーを備えたもので、制御部1は、この操作部6からの入力操作信号に応じた処理として、例えば、棚卸管理、入出荷検品、入出庫管理等の各種の業務処理を行う。
通信部7は、無線LAN(ローカルエリアネットワーク)やインターネット等の広域通信網を介してデータを送受信するもので、広域通信網を介して接続されている外部の記憶装置(図示省略)との間においてデータをアップロードしたり、ダウンロードしたりする。撮像部8は、光学10倍の高倍率ズームを搭載した高解像度撮影が可能なデジタルカメラを構成するもので、各商品に付されているバーコード等を読み取る際に使用される。この撮像部8は、情報読取装置の本体側に設けられたもので、図示省略したが、C−MOS、CCD撮像素子等のエリアイメージセンサのほか、測距センサ、光量センサ、アナログ処理回路、信号処理回路、圧縮伸張回路等を備え、光学ズームを調整制御したり、オートフォーカス時の駆動制御、シャッター駆動制御、露出、ホワイトバランス等を制御したりする。また、撮像部8は、望遠/広角の切り替えができる2焦点式レンズやズームレンズを備え、望遠/広角撮影を行うようにしている。また、撮像部8には、その撮影方向(撮影の向き)を自動的及び手動的に上下左右に自由に変更可能な撮影方向変更機能が備えられている。
図2は、山積みされている複数の荷物全体を撮像部8により高解像度撮影した撮影画像を全体画像として表示させた状態を例示した図である。
この全体画像内には、各荷物(図中、矩形の領域)の表面に印刷又は添付されているバーコード等の読取対象の画像部分が含まれており、制御部1は、この全体画像をパターン分析することにより、この全体画像内に存在しているデータの集合部分を読取対象の領域として特定して、その特定パターン(バーコード、ロゴ、OCR文字などの画像部分)をそれぞれ抽出するパターン抽出処理を実行するようにしている。なお、データの集合部分は、データの集合密度・集合面積・集合形状等を総合的に判断して特定される領域であり、この領域を読取対象の画像部分を示す特定パターンとして抽出するようにしている。
図3は、図2の全体画像をパターン分析することにより読取対象として抽出した各特定パターンを例示した図である。
図中、“100”の番号は、バーコード等の読取対象が含まれている全体画像を識別するための識別番号である。また、“101”〜“116”の番号は、特定パターン識別情報である。すなわち、全体画像内に存在している読取対象毎にその特定パターンを抽出した場合に、抽出した特定パターンの個々を識別するために順次割り当てられた識別番号(一連No.)であり図示の例においては、合計16個の特定パターン“101”〜“116”が全体画像から抽出された状態を例示した場合である。
ここで、本実施形態での読み取り処理の概要について簡単に説明しておく。
先ず、本実施形態においては、バーコード等の読取対象が含まれている全体画像を撮像部8により撮影して取得した後、上述のようにして抽出した特定パターンの個々を順次解析することにより全体画像内に存在している全ての読取対象を一括して読み取って認識する認識処理(読み取り処理)を行うようにしている。この認識処理では、読取対象の種類を特定すると共に、認識用辞書記憶部M4の内容と照合することによりバーコード等の情報を読み取るようにしている。
この場合、上述した特定パターンを抽出する処理結果や情報を認識する処理結果に基づいて、読取対象毎に現時点までの処理状況を付加するようにしている。ここで、処理状況としては、例えば、全体画像から特定パターンを抽出して情報を正常に認識できた状態(読み取り完了状態:読み取り済み状態)であるか、全体画像から特定パターンを抽出することができなかった状態(非抽出状態)であるか、全体画像から特定パターンを抽出することはできたが情報を正常に認識できなかった状態(読み取りエラー状態)等であり、読取対象毎の処理状態である。
そして、本実施形態においては、上述の認識結果に基づいて、以下の手順(a)〜(f)で各種の処理を行う。先ず、(a)、特定パターンを抽出することはできたがそれを正常に認識することができなかった場合には、撮影方向を変更してその特定パターンに照準を合わせた後、当該不具合を生じた箇所(この場合には当該特定パターンに相当する読取対象)をn倍(例えば、2倍)ズームで撮影を行う。(b)、このようにn倍ズームで撮影した拡大画像に対して認識処理を行う。(c)、その結果、正常に認識できなかった場合には、この拡大画像をパターン分析することにより特定パターンを抽出する処理を行った後、この抽出した特定パターンに対してさらに認識処理を行う。
(d)、このように拡大画像を解析しても正常に認識できなかった場合には、さらにズーム倍率を高めて、当該不具合を生じた箇所をn×2倍のズームで撮影を行う。(e)、そして、このn×2倍ズームの拡大画像に対してパターン分析を行うことにより特定パターンを抽出する処理を行った後、抽出した特定パターンに対してさらに認識処理を行う。(f)、このようにn×2倍ズームで撮影を行っても正常に認識できなかった場合には、読み取り不能としてユーザの判断に委ねるために、読取対象に対応して、n倍ズームで撮影された拡大画像及びn×2倍ズームで撮影された拡大画像をそれぞれ保存する処理を行う。
なお、上述した処理手順(a)〜(f)は、特定パターンを抽出することはできたが、その特定パターンに対して認識処理を行った結果、正常に認識できなかった場合の手順を示したもので、これに限らず、例えば、バーコードなどの印刷が薄くて不鮮明な場合にも対応するために特定パターンを抽出することができなかった場合にも、上述の(b)を除いて他の(a)、(c)〜(f)の処理を同様に行うようにしている。このような処理手順での処理状況として、読取対象毎に対応付けて管理テーブル記憶部M2内に付加(記憶)され、また、表示されている全体画像上には、各読取対象に対する処理状況として、例えば、“済マーク等が付加表示(重ね表示)される(後述の図16を参照)。
図4は、図3に示した全体画像内に存在している読取対象(特定パターン)の個々に対して読み取り処理(認識処理)をそれぞれ実行した後の管理テーブル記憶部M2の内容を示した図である。
管理テーブル記憶部M2は、読取対象(特定パターン)毎にその読み取り情報を記憶管理するもので、「No.」、「ステータス」、「左上座標」、「右下座標」、「種別」、「読み取り認識内容」、「画像識別情報」の各項目を有している。「No.」は、図3に示したように、抽出した特定パターンの個々を識別する識別番号(例えば、“101”〜“116”)である。「ステータス」は、読取対象(特定パターン)の現時点までの処理状況を示し、図4に示した“済”は、全体画像から特定パターンを抽出して情報を正常に認識できた状態(読み取り完了状態:読み取り済み状態)を示し、“エラー”は、全体画像から特定パターンを抽出することはできたが情報を正常に認識できなかった状態(読み取りエラー状態)を示している。
「左上座標」、「右下座標」は、全体画像から抽出した特定パターン(矩形領域)の位置及び大きさを特定するための矩形領域指定情報であり、2点座標(矩形領域の左上座標と右下座標)によってその領域の位置及び大きさを表している。この場合、図5に示した平面座標系において全体画像の横方向をX軸方向、縦方向をY軸方向とすると、例えば、識別番号“101”で示されるパターン領域は、「左上座標」が(27、1)として表され、「右下座標」が(31、2)として表される。また、識別番号“102”で示されるパターン領域は、「左上座標」が(31、4)、「右下座標」が(34、7)として表される。なお、実際の座標値は、ピクセル単位なので、例えば、10n倍の値となる。ここで、10nは、図5に示した1枡目(平面座標系の1座標)当たりのピクセル数である。
「種別」は、読取対象(特定パターン)の種類を示し、図示の例では、“ロゴ等特定パターン”、“2次元バーコード”、“1次元コード”が記憶された場合である。「読み取り認識内容」は、読取対象毎にその認識処理により読み取った情報である。このように管理テーブル記憶部M2は、全体画像内に存在している読取対象毎にその認識結果(読み取り結果)と現時点までの処理状況とを対応付けて記憶する構成となっている。「画像識別情報」は、画像記憶部M3に記憶された画像を識別するための情報、すなわち、全体画像、上述のn倍拡大画像、n×2倍拡大画像を識別するための情報で、例えば、撮影日時、撮影場所、画像No.等から構成されたもので、この「画像識別情報」により管理テーブル記憶部M2の内容と画像記憶部M3の内容とを対応付けする(紐付けする)ようにしている。
次に、第1実施形態における定置式情報読取装置の動作概念を図6〜図9に示すフローチャートを参照して説明する。ここで、これらのフローチャートに記述されている各機能は、読み取り可能なプログラムコードの形態で格納されており、このプログラムコードに従った動作が逐次実行される。また、ネットワーク等の伝送媒体を介して伝送されてきた上述のプログラムコードに従った動作を逐次実行することもできる。このことは、後述する他の実施形態においても同様であり、記録媒体のほかに、伝送媒体を介して外部供給されたプログラム/データを利用して本実施形態特有の動作を実行することもできる。
図6〜図9は、全体画像内に存在している全ての読取対象を一括して読み取って認識する認識処理(読み取り処理)を示したフローチャートである。
先ず、制御部1は、撮像部8を起動させ、倉庫等に山積みされている複数の荷物全体が高解像度撮影されると(図6のステップA1)、その撮像部8からその撮影画像を全体画像として取得し、その「画像識別情報」を生成して全体画像と共に画像記憶部M3に記憶させるほか(ステップA2)、図2に示すように全体画像を表示部5の全域にモニタ表示させる(ステップA3)。
この状態において、制御部1は、この全体画像をパターン分析することにより、この全体画像内に存在している全ての読取対象を特定して、その特定パターンをそれぞれ抽出するパターン抽出処理を行う(ステップA4)。そして、抽出した特定パターン毎にその「No.」、「左上座標」、「右下座標」を生成して、上述した全体画像の「画像識別情報」と共に管理テーブル記憶部M2に記憶させる(ステップA5)。この場合、図3に示したように、No.“101”〜“116”の特定パターンがそれぞれ抽出されて、そのパターンに関する情報として「No.」、「左上座標」、「右下座標」が管理テーブル記憶部M2に記憶されるほか、全体画像を識別する「画像識別情報」が記憶される。
そして、管理テーブル記憶部M2を参照し、その「No.」の若い順に指定して(ステップA6)、その指定No.に対応する「左上座標」及び「右下座標」を読み出し、この2点座標によって特定された画像部分(特定パターン)を解析することによりその種類(1次元バーコード、2次元バーコード、ロゴなどの種類)を特定するほか、認識用辞書記憶部M4の内容と照合することにより情報を読み取って認識する認識処理を行う(ステップA7)。その結果、情報を正常に認識できたかを調べ(ステップA8)、正常に認識できたときには(ステップA8でYES)、読取対象の種類とその認識結果を指定No.に対応する管理テーブル記憶部M2の「種別」、「読み取り認識内容」に記憶させる(ステップA9)。次に、その指定No.に対応する全体画像上の画像部分(特定パターン部分)に“済”マークをオーバレイ表示(重ね表示)させると共に(ステップA10)、指定No.に対応する管理テーブル記憶部M2内の「ステータス」に“済”を記憶させることにより(ステップA11)、正常に認識できた状態(読み取り完了状態:読み取り済み状態)であることを明示する。
また、指定No.対応の特定パターンに対して認識処理を実行した結果、正常に認識できなかったときには(ステップA8でNO)、指定No.に対応する全体画像上の画像部分(特定パターン部分)に“エラー”マークをオーバレイ表示(重ね表示)させると共に(ステップA12)、指定No.に対応する管理テーブル記憶部M2内の「ステータス」に“エラー”を記憶させることにより(ステップA13)、正常に認識できなかった状態(読み取りエラー状態)であることを明示する。なお、情報を正常に認識することができなくても、読取対象の種類を判別することができた場合には、この読取対象の種類を指定No.に対応する管理テーブル記憶部M2の「種別」に記憶させるようにしてもよい。
これによって一つの特定パターン分の処理が終わると、全ての特定パターン(「No.」)を指定し終わったかを調べ(ステップA14)、全ての「No.」を指定し終わるまでステップA6に戻り、次の「No.」を指定した後、以下、上述の動作を繰り返す。これによって管理テーブル記憶部M2の内容は、全ての「No.」を指定し終わった段階で図4に示すようになる。ここで、全ての「No.」を指定し終わったときには(ステップA14でYES)、図7のステップA15に移り、全体画像のうち、特定パターンとして抽出されなかった領域(非抽出領域)を所定単位のサイズで複数のブロックに分割した後、この分割ブロック毎にその「No.」、「左上座標」、「右下座標」を生成し、さらにその「ステータス」を“非抽出”として管理テーブル記憶部M2に記憶管理させる。この場合、非抽出領域を所定単位のサイズで複数のブロックに分割する場合に、非抽出領域を他の抽出領域相当単位で分割、つまり、既に特定パターンとして抽出した各領域(ブロック)と同様のサイズとなるように非抽出領域を複数のブロックに分割するようにしている。
図10は、非抽出領域を複数のブロックに分割した状態を示している。この場合、上述したように、全体画像のパターン分析で抽出した各特定パターンの大きさや配列状態が同一となるように、その大きさや配列状態に従って非抽出領域を複数のブロックに分割する。図中、識別番号“120”〜“151”は、非抽出領域の分割により新たに割り当てられた個々のブロックを識別するための識別番号である。
図11は、全体画像内の非抽出領域を複数のブロックに分割した後の管理テーブル記憶部M2の内容を示し、今回新たに割り当てられた各ブロックには、その「No.」に識別番号として“120”〜“151”が記憶され、その「ステータス」として“非抽出”が記憶され、その「左上座標」及び「右下座標」としてその位置及び大きさを示す座標データが記憶される。
そして、管理テーブル記憶部M2を参照し、若い順に「No.」を指定して(ステップA16)、その「ステータス」を読み出し、“済”、“非抽出”、“エラー”のいずれかを判別する(ステップA17)。いま、最初にNo.“101”が指定されるが、この指定No.の「ステータス」は“済”であるから、この指定No.に対応する「種別」、「読み取り認識内容」を管理テーブル記憶部M2から読み取り情報として読み出して、業務アプリケーション(例えば、棚卸管理用のアプリケーション)に引き渡す(ステップA18)。そして、全ての「No.」を指定し終わったかを調べ(ステップA19)、全ての「No.」を指定し終わるまで上述のステップA16に戻り、次の「No.」を指定した後、その「ステータス」の内容を判別し、“済”であれば、以下、上述の動作を繰り返す。
また、指定No.の「ステータス」が“エラー”であれば(ステップA16)、撮像部8を起動させると共に、撮像部8の向きを変更させてその指定No.に対応する実際の読取対象の位置に照準を合わせた後、n倍(例えば、光学2倍)ズームの撮影を行わせる(ステップA20)。なお、この場合、その指定No.に対応する「左上座標」及び「右下座標」を全体画像上での特定パターンの位置とし、全体画像を撮影したときの荷物(被写体)までの距離と上述の特定パターンの位置に基づいて、撮影方向の変更量を求めてその撮影方向に向きを調整するようにしている。そして、このn倍ズームで撮影した画像(拡大画像)を解析することにより読取対象の種類を特定すると共に、情報を読み取って認識する認識処理を行う(ステップA21)。
その結果、正常に認識できたときには(ステップA22でYES)、その認識結果を対応する管理テーブル記憶部M2内の「種別」、「読み取り認識内容」に記憶させる(ステップA23)。そして、指定No.に対応する全体画像上の画像部分(特定パターン部分)に“済”マークをオーバレイ表示させると共に、指定No.に対応する管理テーブル記憶部M2内の「ステータス」を“エラー”から“済”に書き換え記憶させる(ステップA24)。その後、上述のステップA18に移り、指定No.に対応する「種別」、「読み取り認識内容」を管理テーブル記憶部M2から読み取り情報として読み出し、業務アプリケーションに引き渡す。
いま、「ステータス」が“エラー”のNo.“110”が指定されたものとすると(ステップA17)、それに対応する実際の読取対象に照準を合わせてn倍ズームで再度撮影を行った後(ステップA20)、その撮影画像に対する認識処理を行うが(ステップA21)この場合、指定No.対応のパターン内には二つのバーコードが含まれているためにその認識処理では、正常に認識することができないと判別される(ステップA22でNO)。その結果、図8のステップA27に移り、n倍ズームの撮影画像(拡大画像)に対してパターン分析を行い、この拡大画像内に存在している全ての読取対象を特定パターンとしてそれぞれ抽出するパターン抽出処理を行う。
図12は、n倍拡大撮影画像をパターン分析することにより抽出した特定パターンを例示した図である。図13は、n倍拡大撮影画像から特定パターンを抽出した後の管理テーブル記憶部M2の内容を示した図である。いま、n倍拡大撮影画像をパターン分析した結果、特定パターンを抽出することができなければ(図8のステップA28でNO)、後述する図9のフローに移るが、特定パターンを抽出することができたときには(ステップA28でYES)、この抽出した特定パターン毎にその「No.」、「左上座標」、「右下座標」を生成して管理テーブル記憶部M2に記憶管理させる(ステップA29)。
ここで、図12の例では、指定No.“110”で示される特定パターンに対してパターン分析を行った結果、一次元バーコードが2個含まれていることが判明された場合であり、この2個のバーコードに対応して特定パターンがそれぞれ抽出される。そして、図13に示すように、管理テーブル記憶部M2には、この2個の特定パターンに対応して識別番号“163”、“164”を新たに割り当てて「No.」に記憶させるほか、それらの「左上座標」及び「右下座標」を記憶させる。そして、今回抽出した特定パターンの中からその一つのパターンを指定するために、No.“163”を指定した後、その特定バターンに対する認識処理を行う(ステップA30)。
その結果、正常に認識できたときには(ステップA31でYES)、上述した図7のステップA23、A24と同様に、その認識結果を管理テーブル記憶部M2に記憶させたり(ステップA32)、n倍ズーム撮影で認識できたことを示す“n倍:済”マークをオーバレイ表示させたり、「ステータス」を“エラー”から“済”に書き換え記憶させたりする(ステップA33)。次に、今回抽出した特定パターンの中に未指定のパターンが存在しているかを調べるが(ステップA34)、いま、No.“164”のバターンが未指定であるから(ステップA34でYES)、上述のステップA30に戻り、この未指定No.のパターンを一つ指定してその認識を行った後、以下、上述の動作を行う。
また、認識処理の結果、正常に認識できなかったときには(ステップA31でNO)、指定No.に対応する全体画像上の画像部分(特定パターン部分)に“エラー”マークをオーバレイ表示させると共に、指定No.に対応する管理テーブル記憶部M2内の「ステータス」に“エラー”を記憶させる(ステップA35)。そして、未指定No.の有無を調べるステップA34に移るが、いま、全てを指定し終わったときには(ステップA34でNO)、今回の処理(ステップA29〜A35)を実行した結果、「ステータス」のエラー”の有無を調べる(ステップA36)。ここで、一つでもエラー”が有れば(ステップA36でYES)、後述する図9のフローに移るが、一つも“エラー”が無ければ(ステップA36でNO)、図7のステップA18に移り、今回の読み取り情報を業務アプリケーションに引き渡す。
このように指定No.“110”の「ステータス」が“エラー”の場合には、上述と同様な動作が行われる。また、「ステータス」が“エラー”のNo.“114”が指定され場合にも(図7のステップA17)、上述の場合と同様の動作が行われる。すなわち、当該読取対象に照準を合わせてn倍ズームで再度撮影を行った後(ステップA20)、認識処理を行うが(ステップA21)、ここでも正常に認識することができないと判別されるため(ステップA22でNO)、図8のステップA27に移り、n倍ズームの撮影画像(拡大画像)をパターン分析して特定パターンをそれぞれ抽出する。これによって特定パターンを抽出することができたときには(ステップA28でYES)、この抽出したパターン毎にその「No.」、「左上座標」、「右下座標」を生成して管理テーブル記憶部M2に記憶管理させる(ステップA29)。
ここで、図12の例では、指定No.“114”の特定パターンに対してパターン分析を行った結果、一次元バーコードが3個含まれていることが判明された場合であり、この3個のバーコードに対応して特定パターンがそれぞれ抽出される。そして、図13に示すように、この3個の特定パターンに対応して識別番号“165”、“166”、“167”を新たに割り当てて「No.」に記憶させるほか、それらの「左上座標」及び「右下座標」を記憶させる。そして、認識処理の結果(ステップA30)、特定パターンを正常に認識できたときには(ステップA31でYES)、“n倍:済”マークをオーバレイ表示させたり、その「ステータス」を“エラー”から“済”に書き換えると共に、その読み取り情報を記憶させたりする(ステップA32、A33)。図13は、No.“165”、“166”、“167”の全てを正常に認識できた場合である。
なお、上述したように図12、図13の例では、指定No.“110”の特定パターンからさらに2個の特定パターンを抽出した場合、また、指定No.“114”の特定パターンからさらに3個の特定パターンを抽出した場合において、抽出した全てのパターンに対する認識が正常に行われたときの状態を示したが、その中の一つ(例えば、No.“164”、No.“165”)でも、正常に認識できなかった場合には、図9のフローに移る。この図9のフローは、上述したように指定No.の「ステータス」が“エラー”の場合に拡大画像から特定パターンを抽出することができなかったときに実行され(ステップA28でNO)、また、特定パターンを抽出することができたとしてもその認識結果が“エラー”のときに実行される(ステップA36でYES)。
先ず、図9のフローにおいて、指定No.対応の読取対象に照準を合わせて、さらにn×2倍のズームで撮影を行った後(ステップA37)、以下、基本的には上述した図8のステップA27〜A36と同様の動作を行う(ステップA38〜A47)。ここで、図8のステップA27〜A36と相違するところは、認識処理を行った結果、正常に認識できたときには(ステップA42でYES)、n×2倍ズーム撮影で認識できたことを示す“n×2倍:済”マークをオーバレイ表示させること(ステップA44)、また、正常に認識できなかったときには(ステップA42でNO)、処理不能を示す“NG”マークをオーバレイ表示させると共に、その「ステータス」を“エラー”から処理不能を示す“NG”に書き換えること(ステップA46)、“エラー”の有無を判断する代わりに“NG”の有無を判断することである(ステップA47)。
また、このようにしてn×2倍ズームで撮影した拡大画像をパターン分析しても、特定パターンを抽出することができなかったときには(ステップA39でNO)、図7のステップA19に移り、全ての「No.」を指定し終わったかを判別する。また、“NG”が無ければ(ステップA47でNO)、図7のステップA18に移り、その読み取り情報を業務アプリケーションに引き渡す。また、“NG”が有れば(ステップA47でYES)、次のステップA48に移り、上述のn倍拡大画像とn×2倍拡大画像に対応してその「画像識別情報」を生成し、各拡大画像をその「画像識別情報」と共に画像記憶部M3に保存させると共に、“NG”となった読取対象の「No.」に対応付けて、生成した各「画像識別情報」を管理テーブル記憶部M2に記憶させることにより“NG”となった読取対象と各拡大画像とを対応付けする(紐付けする)ようにしている。その後、図7のステップA18に移り、NGを除いて、正常に読み取った分の読み取り情報を業務アプリケーションに引き渡す。
他方、指定No.の「ステータス」が“非抽出”であれば(図7のステップA16)、撮像部8を起動させると共に、撮像部8の向きを変更させてその指定No.に対応する実際の読取対象の位置に照準を合わせた後、n倍(例えば、光学2倍)ズームの撮影を行わせる(ステップA25)。その後、図8のフローに移り、以下、上述の動作を繰り返す。この場合、図10に示す非抽出ブロックNo.“120”、“121”、“123”は、印刷が薄くて最初のパターン分析ではそのパターンを抽出することができなかった場合であるが、今回のn倍ズームでの撮影画像をパターン分析することにより、図12に示すように、非抽出ブロックNo.“120”から特定パターン(No.“160”)、また、非抽出ブロックNo.“121”から特定パターン(No.“161”)、また、非抽出ブロックNo.“123”から特定パターン(No.“162”)を抽出することができた場合を示している。
この場合、このNo.“160”、No.“162”の特定パターンを解析した結果、その特定パターンから情報を正常に認識できた場合である。すなわち、No.“160”の特定パターンから“ロゴ”を認識することができた場合であり、No.“162”の特定パターンから“OCR文字”を認識することができた場合であるが、No.“161”の特定パターンには、3個の一次元バーコードが含まれているために、その特定パターンを解析しても、その特定パターンから情報を正常に認識することができなかった場合である。
このようにn倍ズームで撮影しても正常に認識することができなければ(図8のステップA31でNO)、その「ステータス」が“エラー”となるため(ステップA35)、ステップA36から図9のフローに移り、さらにn×2倍ズームで撮影した拡大画像に対して、パターン分析を行った結果(ステップA39)、図12に示すように、一次元バーコードが3個含まれていることが判明された場合には、この3個のバーコードに対応して特定パターンがそれぞれ抽出される。図14は、n×2倍拡大撮影画像をパターン分析することにより特定パターンを抽出した後の管理テーブル記憶部M2の内容を示した図で、この図示の例においては、この3個の特定パターンに対応して識別番号“168”、“169”、“170”を新たに割り当てて「No.」に記憶させるほか、それらの「左上座標」及び「右下座標」を記憶させている(ステップA30)。そして、No.“168”、“169”、“170”に対応してその認識処理を実行する。また、図14の例では、No.“168”、“170”については正常に認識できたが、No.“169”については正常に認識できなかった場合を示している。
以下、上述の動作を繰り返すことにより全ての「No.」を指定し終わると、管理テーブル記憶部M2の最終処理内容は、図15に示すようになり、No.“169”の「ステータス」のみが“NG”となり、他は”済”となる。図16は、最終的な読み取り結果がオーバレイ表示された全体画像の表示内容を示している。このように、全ての「No.」を指定し終わると、図7のステップA19でそのことが検出されてステップA26に移り、済マークやNGマークがオーバレイ表示されたままの状態の全体画像を、最終状態の全体画像として画像記憶部M3に保存させた後、図6〜図9のフローの終了となる。
以上のように上述した実施形態において制御部1は、読取対象(例えば、バーコード)を含む全体画像をバターン分析して読取対象毎にその特定パターンをそれぞれ抽出する処理を行うほか、抽出した各特定パターンを解析することにより読取対象毎に情報(例えば、バーコード情報)をそれぞれ認識する処理を行い、そのいずれかの処理結果に基づいて、全体画像に含まれている読取対象毎に現時点までの処理状況をそれぞれ付加するようにしたので、複数の読取対象を一括して読み取り処理したとしても、2重読み取りや読み取り漏れを防ぎ、適切な読み取りを実現することができ、実用性に富んだものとなる。
全体画像上の各読取対象に対応する画像部分に現時点までの処理状況を識別表示するようにしたので、ユーザにあっては、現在の処理状況を把握することが可能となる。この場合、全体画像は読み取り作業中においても表示されているので、現在の処理状況をリアルタイムに把握することが可能となる。
処理状況が識別表示されているままの状態の全体画像を保存するようにしたので、ユーザにあっては、いつでも自由に処理状況を把握することが可能となる。
管理テーブル記憶部M2に現在の処理状況を示す「ステータス」を記憶するようにしたので、例えば、処理状況別に読み取り処理の結果を集計したり、レポートとして出力させたりすることができる。
複数の読取対象を含む全体画像を撮影して取得するようにしたので、その場で全体画像を容易に入手することができる。
特定パターンを抽出することができなかった場合又は情報を正常に認識できなかった場合には、その部分を所定の倍率(n倍)で拡大撮影した後、この拡大撮影された拡大画像に対して特定パターンの抽出処理や認識処理を行うようにしたので、例えば、バーコート等の印刷が薄く不鮮明な場合や複数の読取対象が含まれているような場合でも、拡大撮影後の再処理により正常に認識することができる可能性を高めることが可能となる。
特定パターンを抽出することができなかった場合又は情報を正常に認識できなかった場合には、その部分を所定の倍率(n倍)で拡大撮影した後、この拡大撮影に対して認識処理を行うようにしたので、例えば、バーコート等の印刷が小さすぎる場合にも拡大撮影後の再処理により正常に認識することができる可能性を高めることが可能となる。
特定パターンを抽出することができなかった非抽出領域を特定サイズのブロック毎に分割すると共に、このブロック毎に当該ブロックに相当する箇所を所定の倍率で拡大撮影した後、この拡大撮影された拡大画像に対して特定パターンの抽出処理や認識処理を行うようにしたので、例えば、バーコート等の印刷が薄く不鮮明なために特定パターンを抽出することができなかった領域に対しても拡大撮影後の再処理により正常に認識することができる可能性を高めることが可能となる。
全体画像から特定パターンを抽出することができなかった非抽出領域を所定のサイズのブロック毎に分割する場合に、抽出済みの特定パターンのサイズに基づいて分割するようにしたので、例えば、抽出済みの特定パターンと同様の形態の特定パターンが非抽出領域内にも存在している可能性があるため、抽出済みの特定パターンのサイズに基づいてブロック分割することによりその抽出の可能性を高めることができる。
所定の倍率(n倍)による拡大撮影後の再処理でも正常に認識できなかった場合には、その部分を所定の倍率(n倍)よりも高い倍率(n×2倍)で再度拡大撮影した後、特定パターンの抽出処理や認識処理を行うようにしたので、さらに正常認識の可能性を高めることが可能となる。
所定の倍率(n倍)で拡大撮影された拡大画像、所定の倍率よりも高い倍率(n×2倍)で拡大撮影された拡大画像を保存するようにしたので、ユーザにあっては拡大画像を参照して、正常に認識できなかった原因などを探ることができる。
なお、上述した実施形態においては、認識処理の結果、正常に認識することができた場合に、済マークをオーバレイ表示するようにしたが、読み取り処理を開始する前に、全体が未処理領域であることを示すために、例えば、全体画像の全域に薄いグレーの網掛けをオーバレイ表示しておき、正常に認識することができた場合には、その認識位置に表示されているオーバレイ表示を消去することにより、正常認識が完了したことを全体画像上で識別表示するようにしてもよい。この場合でも上述した実施形態と同様の効果を有するほか、処理状況の明確化が可能となる。さらに処理状況を示す表示は、済マークに代えて“×”を入れた図形を重ね表示させたりするなど、任意である。
上述した実施形態においては、読取対象として、一次元バーコード、二次元バーコード、ロゴ、OCR文字を例示したが、読取対象としては、印刷文字や手書き文字、マークシート、画像(例えば、梱包箱、本、顔など)であってもよい。
上述した実施形態の情報読取装置は、高精彩画像を撮影可能な撮像機能を備え、倉庫等で山積みされている複数の荷物全体を高解像度撮影してその撮影画像を全体画像として取得するようにしたが、通信手段や外部記録メディアなどを介して全体画像を外部から事前に取得するようにしてもよい。
上述した実施形態の情報読取装置は、例えば、荷物の集積場所に対面して荷物を正面から撮影するために所定箇所に固定的に設置された定置式の情報読取装置を示したが、携帯式のハンディターミナル、OCR(光学式文字読取装置)などであってもよい。
(第2実施形態)
以下、この発明の第2実施形態について図17〜図19を参照して説明する。
なお、上述した第1実施形態においては、倉庫等で山積みされている複数の荷物全体を撮影した撮影画像(全体画像)内に含まれている読取対象としてのバーコード、ロゴなどを一括して読み取るようにしたが、この第2実施形態においては、高速道路を走行する自動車を監視するようにしたもので、走行中の自動車全体を所定のタイミング毎に順次撮影した撮影画像を全体画像として取得し、この所定のタイミング毎の各全体画像に含まれている読取対象としての自動車のナンバープレートから登録番号を一括して読み取るようにしたものである。ここで、両実施形態において基本的あるいは名称的に同一のものは、同一符号を付して示し、その説明を省略すると共に、以下、第2実施形態の特徴部分を中心に説明するものとする。
第2実施形態の情報読取装置は、高速道路の片側全車線上方から向かってくる自動車全体を撮影可能となるように固定的に設置された定置式の情報読取装置である。そして、この情報読取装置は、片側全車線を高解像度撮影して、この撮影画像を全体画像として取得すると共に、この全体画像内に存在している全ての読取対象(自動車のナンバープレート)としての特定パターンをパターン分析により抽出し、その特定パターン(読取対象)の個々を解析することにより全体画像内に存在している全ての読取対象から登録番号を一括して読み取るようにしたものである。
図17は、高速道路を走行中の自動車全体を所定のタイミング毎に順次撮影した各全体画像を示した図である。
図17(1)は、09時37分46秒85に撮影された全体画像を示し、図17(2)は、その0.5秒後に撮影された全体画像を示し、図17(3)は、さらに0.5秒後に撮影された全体画像を示している。この場合、図17(1)は、3台の自動車のナンバープレートから登録番号を読み取った状態で、撮影された全体画像は画像記憶部M3に記憶され、読み取った登録番号は管理テーブル記憶部M2に記憶される。
図17(2)は、新たに出現した2台の自動車から登録番号を読み出し、前回読み取り済みの1台の自動車からその登録番号を重複して読み取った状態で、その全体画像は画像記憶部M3に記憶され、新たに出現した2台の登録番号は、管理テーブル記憶部M2に記憶されるが、前回と今回の読み取り時に重複して読み取られた登録番号についてはその重複記憶を避けるために、今回、管理テーブル記憶部M2に記憶させたその登録番号を削除するようにしている。図17(3)は、さらに新たに出現した2台の自動車から登録番号を読み出し、前回読み取り済みの1台の自動車からその登録番号を重複して読み取った状態で、この場合においても同様に、その全体画像は画像記憶部M3に記憶され、新たに出現した2台の登録番号は、管理テーブル記憶部M2に記憶される。この場合、前回と今回の読み取り時に重複して読み取られた登録番号の重複記憶を避けるために、今回、管理テーブル記憶部M2に記憶させたその登録番号を削除するようにしている。
図18は、第2実施形態における読み取り処理として、高速道路を走行する自動車を監視するためにナンバープレートから登録番号を読み取る場合の読み取り処理(高速道路監視処理)を示したフローチャートで、電源投入に応じて実行開始される。
先ず、制御部1は、電源投入に応答して、この読み取り処理(高速道路監視処理)を開始させ、撮像部8により高速道路の片側全車線を上方から高解像度撮影させた撮影画像(スルー画像)をモニタリング用として取得する(ステップB1)。そして、一定時間(例えば、0.5秒)が経過するまで待機状態となり(ステップB2)、一定時間が経過すると(ステップB2でYES)、その撮影画像を解析して、撮影画像内に何か動いているものが存在しているか(写っているか)を調べ(ステップB3)、撮影画像内に動いているものが写っているときには(ステップB3でYES)、撮影&読み取り処理を行う(ステップB4)。
図19は、撮影&読み取り処理(図18のステップB4)を詳述したフローチャートである。
先ず、制御部1は、撮像部8により高速道路の片側全車線を上方から高解像度撮影させた撮影画像を全体画像として取得し(ステップC1)、その「画像識別情報」を生成して全体画像と共に画像記憶部M3に記憶させるほか、全体画像を表示部5にモニタ表示させる(ステップC2)、この全体画像内に存在している全ての読取対象(ナンバープレート)としての特定パターンをパターン分析により抽出する(ステップC3)。そして、抽出した読取対象(ナンバープレート)の個々に順次照準を合わせて、ナンバープレート毎にn倍(例えば、10倍)ズームで拡大撮影をそれぞれ行う(ステップC4)。例えば、図17(1)の場合には、登録番号「あ12−34」、「い56−78」、「う90−12」をそれぞれ拡大撮影する。
次に、全体画像から抽出した特定パターン(ナンバープレート)の個々を順次指定してそれを解析することにより特定パターンから登録番号を読み取って認識する認識処理(読み取り処理)を行う(ステップC5)。いま、登録番号「あ12−34」のナンバープレートを指定してその読み取り処理を行った結果、正常に認識できたきには(ステップC6でYES)、その指定プレートに対応する全体画像上の当該ナンバーの画像部分に“済”マークをオーバレイ表示させると共に(ステップC7)、その指定プレートに対する読み取り情報として、「No.」、「ステータス」、「種別」、「読み取り認識内容」、「画像識別情報」を生成して管理テーブル記憶部M2に記憶させる(ステップC8)。
ここで、「画像識別番号」には、上述した全体画像の「画像識別情報」が記憶され、これによって画像記憶部M3内の全体画像と管理テーブル記憶部M2内の読み取り情報とを対応付けする(紐付けする)ようにしている。また、「ステータス」には、正常に認識できた状態(読み取り完了状態:読み取り済み状態)であることを示す“済”が記憶され、「種別」には、地名、車種など、「読み取り認識内容」には、登録番号が記憶される。
このようにして一つの読取対象(ナンバープレート)に対する認識処理が終わると、全ての読取対象に対する認識処理が終わったかを調べ(ステップC9)、全ての処理が終わるまで上述のステップC5に移り、次のナンバープレート、例えば、「い56−78」を指定してそれに対する認識処理を行う。いま、この指定ナンバー「い56−78」に対してその読み取り処理を行った結果、正常に認識できなかったときには(ステップC6でYES)、上述のようにナンバープレート毎にn倍ズームで拡大撮影を行った拡大画像を取得して(ステップC10)、その拡大画像を解析することにより登録番号を読み取って認識する認識処理を行い(ステップC11)、正常に認識できたかを調べる(ステップC12)。
ここで、拡大撮影を解析した結果、正常に認識できたときには(ステップC12でYES)、上述のステップC7に移り、全体画像上の当該ナンバーの画像部分に“済”マークをオーバレイ表示させると共に、その指定プレートに対する読み取り情報を管理テーブル記憶部M2に記憶させる(ステップC8)。また、n倍ズームで拡大撮影を行って正常に認識できなかったときには(ステップC12でNO)、n倍ズームで拡大撮影を行った拡大画像をその「画像識別情報」と共に画像記憶部M3に記憶させ(ステップC13)、また、全体画像上の当該ナンバーの画像部分に読み取り不能を示す“NG”マークをオーバレイ表示させる(ステップC14)。
そして、指定プレートに対して、「No.」、「ステータス」、「画像識別番号」を生成して管理テーブル記憶部M2に記憶させるが、この場合、「ステータス」には、読み取り不能を示す“NG”が記憶される(ステップC15)。その後、上述のステップC9に移り、全てのナンバープレートに対する認識処理が終わったかを調べ、全ての処理が終わるまで上述のステップC5に移り、以下、上述の動作を繰り返す。これによって図17(1)で示した全体画像の場合には、3台の自動車の登録番号が正常に読み取られて管理テーブル記憶部M2に記憶される。
このようにして一つの全体画像に対する読み取り処理が終わると(図18のステップB4)、今回読み取った管理テーブル記憶部M2の内容と過去所定の時間以内(例えば過去1分以内)に読み取った管理テーブル記憶部M2の内容とを比較し、同一の登録番号が記憶されているかを調べる(ステップB5)。いま、図17(1)の例では、電源投入後の最初の読み取り開始時であり、同一番号が記憶されていなと判断されるため(ステップB5でNO)、監視の終了が指示されていないことを条件に(ステップB7でNO)、上述のステップB2に移り、以下、上述の動作を繰り返す。なお、監視の終了は、ユーザ操作又は一定時間経過後に指示される。
ここで、図17(2)に示す全体画像が撮影されてその読み取りが行われた場合には、新たに出現した2台の登録番号「え34−56」、「お79−90」は、管理テーブル記憶部M2に記憶されるが、1台の登録番号「う90−12」は、前回記憶の登録番号と同様であるため、今回記憶した当該登録番号を削除することにより重複記憶を除外している(ステップB5、B6)。同様に、次のタイミングにおいて図17(3)に示す全体画像が撮影されてその読み取りが行われた場合には、新たに出現した2台の登録番号「か9−87」、「き65−43」は、管理テーブル記憶部M2に記憶されるが、前回の図17(2)のタイミングで記憶された登録番号と同一番号「え34−56」の重複記憶を除外している(ステップB5、B6)。
以上のように第2実施形態においては、所定のタイミング毎に撮影された全体画像を逐次取得し、全体画像毎に読取対象をそれぞれ認識した情報の中に同一の情報が含まれている場合に、同一情報の重複記憶を抑制するようにしたので、所定のタイミング毎に撮影された各全体画像から全ての読取対象を一括して読み取る場合でも、同じ読取対象の重複記憶を効果的に防ぐことができ、適切な読み取りが可能となる。
なお、上述した第2実施形態においては、高速道路を走行する自動車を監視するためにナンバープレートから登録番号を読み取る場合の読み取り処理を示したが、流れ作業で製品が完成する作業工程を監視するために製品番号、ロゴの印刷状態などを読み取る処理などであってもよい。また、上述した第2実施形態において、所定のタイミングとして、0.5秒を示したが、この値は任意であり、0.5秒、1秒、0.5秒、1秒、…などであってもよい。
また、上述した第2実施形態においても、固定的に設置された定置式の情報読取装置を示したが、携帯式の情報読取装置などであってもよい。この場合、作業者は荷物置き場などを移動しながら所定のタイミング毎に撮影し、同じ箇所を重ねて撮影したとしても、同じ読取対象の重複記憶を防ぐことができる。このため、作業者は、荷物置き場などを移動しながら順次撮影する場合、撮影箇所を厳密に決めなくてもよくなり、作業全体を効率よく行うことが可能となる。
また、上述した実施形態において示した情報読取装置は、機能別に複数の筐体に分離されていてもよく、単一の筐体に限らない。また、上述したフローチャートに記述した各ステップは、時系列的な処理に限らず、複数のステップを並列的に処理したり、別個独立して処理したりするようにしてもよい。