バーコードシンボル読取装置、バーコードシンボル読取方法及びコンピュータプログラム
【課題】読み取り対象となる一次元コード、二次元コード等のバーコードシンボルを特定することが困難である場合であっても確実にバーコードシンボルを読み取ることができるバーコードシンボル読取装置、バーコードシンボル読取方法、及びコンピュータプログラムを提供する。
【解決手段】少なくとも一のバーコードシンボルを含む画像を取得し、取得した画像を表示する。少なくとも一のバーコードシンボルを含む画像上で、バーコードシンボルの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一のバーコードシンボルを囲むように受け付ける。設定パラメータの入力を部分的に受け付け、指定を受け付けたチューニング領域内でバーコードシンボルを検出する。検出したバーコードシンボルを正常にデコードすることができるか否かを判断し、正常にデコードすることができると判断した場合、バーコードシンボルの設定パラメータを抽出する。
【解決手段】少なくとも一のバーコードシンボルを含む画像を取得し、取得した画像を表示する。少なくとも一のバーコードシンボルを含む画像上で、バーコードシンボルの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一のバーコードシンボルを囲むように受け付ける。設定パラメータの入力を部分的に受け付け、指定を受け付けたチューニング領域内でバーコードシンボルを検出する。検出したバーコードシンボルを正常にデコードすることができるか否かを判断し、正常にデコードすることができると判断した場合、バーコードシンボルの設定パラメータを抽出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコード、QRコードのような二次元コードを読み取るバーコードシンボル読取装置、バーコードシンボル読取方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、バーコード、QRコードのような二次元コードを読み取る各種のバーコードシンボル読取装置は、二次元コードそれぞれが有する固有の特徴を利用して二次元コードの位置決めを実行してから、デコードしている。読み取り対象となる二次元コードの存在する位置を検出するために、二次元コードの固有の特徴を示すパラメータの入力を直接受け付けても良いし、二次元コードの存在する位置を検出する領域(以下、サーチ領域)の指定を受け付けて、二次元コードが有する固有の特徴を示すパラメータを抽出しても良い。
【0003】
特許文献1では所定のファインダーパターンを検出するためのサーチ領域の領域指定機能を有する二次元コード読取装置が開示されている。特許文献1では、QRコードのバージョン、種類等に固有の白黒パターンの幅の比率に関する情報等の特徴を示すパラメータを手動で設定することにより、読み取り対象となる二次元コードを検出してデコードする(読み取る)ことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4013027号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
二次元コード読み取りの安定性向上、高速性向上のために、読み取り対象となる二次元コードの特徴を示すパラメータを限定することが多い。この場合、二次元コードの特徴を示すパラメータは、例えばバーコードシンボルの色種別、シンボルサイズ等の情報として、ユーザの直接入力を受け付ける、又は二次元コードを撮像して取得した画像から抽出する。
【0006】
最近では、鋳肌表面に印刷する、鏡面に印刷する等、二次元コードを読み取ることが困難である印刷面に二次元コードが付与されていることも多い。斯かる印刷面から二次元コードを読み取る場合、特許文献1に開示されている二次元コード読取装置では、鏡面、鋳肌表面等でも確実に読み取ることができるよう各種の設定を行うことが非常に困難になるおそれがあるという問題点があった。
【0007】
また、二次元コードを検出することができない場合、二次元コードの特徴を示すパラメータをユーザが直接入力する必要があり、作業が煩雑であった。さらに、鏡面反転等の見た目では判断できない特徴を示すパラメータは、ユーザが直接入力することが困難であるという問題点もあった。
【0008】
加えて、サーチ領域内に複数の二次元コードが存在する場合、チューニング処理の対象となる二次元コードを特定することが困難になる場合もあり、正しく二次元コードの特徴を示すパラメータを抽出することが困難であるという問題点もあった。
【0009】
本発明は上記事情に鑑みてなされたものであり、読み取り対象となる一次元コード、二次元コード等のバーコードシンボルを特定することが困難である場合であっても、確実にバーコードシンボルを読み取ることができるバーコードシンボル読取装置、バーコードシンボル読取方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために第1発明に係るバーコードシンボル読取装置は、読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置において、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、取得した画像を表示する表示手段と、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段と、前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段と、指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段と、検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段と、該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段とを備えることを特徴とする。
【0011】
また、第2発明に係るバーコードシンボル読取装置は、第1発明において、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの位置と姿勢とを検出するサーチ領域の指定を受け付けるサーチ領域指定受付手段を備え、前記領域指定受付手段は、前記サーチ領域とは別個に、前記チューニング領域の指定を受け付けることを特徴とする。
【0012】
また、第3発明に係るバーコードシンボル読取装置は、第1又は第2発明において、前記領域指定受付手段は、指定を受け付けたチューニング領域において、前記一次元コード又は前記二次元コードに固有のシンボルを検出することができるか否かを判断するシンボル判断手段を備え、該シンボル判断手段で前記シンボルを検出することができないと判断した場合、再度前記チューニング領域の指定を受け付けるようにしてあることを特徴とする。
【0013】
また、第4発明に係るバーコードシンボル読取装置は、第1乃至第3発明のいずれか1つにおいて、前記設定項目は、少なくとも前記二次元コードに固有のシンボルを構成するセルの大きさ、二次元コードのコード種別、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含むことを特徴とする。
【0014】
また、第5発明に係るバーコードシンボル読取装置は、第1乃至第4発明のいずれか1つにおいて、前記設定パラメータ入力受付手段は、各設定項目が前記抽出手段での設定パラメータの抽出対象であるか否かに関する情報の入力も受け付けるようにしてあることを特徴とする。
【0015】
また、第6発明に係るバーコードシンボル読取装置は、第5発明において、前記抽出手段は、前記設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータを使用し、前記設定項目が設定パラメータの抽出対象である場合、設定パラメータを抽出するようにしてあることを特徴とする。
【0016】
また、第7発明に係るバーコードシンボル読取装置は、第1乃至第6発明のいずれか1つにおいて、前記設定パラメータ入力受付手段は、前記設定パラメータとして、前記設定パラメータの指定がない旨を示す入力を受け付けることを特徴とする。
【0017】
また、第8発明に係るバーコードシンボル読取装置は、第1乃至第7発明のいずれか1つにおいて、前記チューニング領域の大きさに基づいて、前記一次元コード又は前記二次元コードを検出することが可能な最小の大きさまで前記チューニング領域内の画像を縮小する比率を算出し、算出した比率に応じて縮小した縮小画像を用いて前記一次元コード又は前記二次元コードを検出するようにしてあることを特徴とする。
【0018】
次に、上記目的を達成するために第9発明に係るバーコードシンボル読取方法は、読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なバーコードシンボル読取方法において、少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、取得した画像を表示するステップと、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付けるステップと、前記設定パラメータの入力を部分的に受け付けるステップと、指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出するステップと、検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断するステップと、正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出するステップとを含むことを特徴とする。
【0019】
次に、上記目的を達成するために第10発明に係るコンピュータプログラムは、読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なコンピュータプログラムにおいて、前記バーコードシンボル読取装置を、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、取得した画像を表示する表示手段、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段、前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段、指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段、検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段、及び該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段として機能させることを特徴とする。
【0020】
第1発明、第9発明及び第10発明では、少なくとも一の一次元コード又は二次元コードを含む画像を取得し、取得した画像を表示する。少なくとも一の一次元コード又は二次元コードを含む画像上で、一次元コード又は二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける。設定パラメータの入力を部分的に受け付け、指定を受け付けたチューニング領域内で一次元コード又は二次元コードを検出する。検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断し、正常にデコードすることができると判断した場合、一次元コード又は二次元コードの設定パラメータを抽出する。読み取り対象となる一の一次元コード又は二次元コードを囲むようにチューニング領域の指定を受け付けることにより、一次元コード又は二次元コードを検出するまでの時間を短縮することができ、チューニング処理の対象となる一次元コード又は二次元コードを確実に特定することが可能となる。
【0021】
第2発明では、少なくとも一の一次元コード又は二次元コードを含む画像上で、一次元コード又は二次元コードの位置と姿勢とを検出するサーチ領域の指定を受け付ける。サーチ領域とは別個に、チューニング領域の指定を受け付けることにより、チューニング処理の対象領域を一次元コード又は二次元コードの近傍に限定することができ、一次元コード又は二次元コードを検出するまでの時間を短縮することができる。
【0022】
第3発明では、指定を受け付けたチューニング領域において、一次元コード又は二次元コードに固有のシンボルを検出することができるか否かを判断し、シンボルを検出することができないと判断した場合、再度チューニング領域の指定を受け付ける。これにより、チューニング領域の指定に誤りがあった場合であっても、事前に確認してチューニング領域の指定を受け付け直すことができ、チューニング領域に一の一次元コード又は二次元コードを確実に含ませることが可能となる。
【0023】
第4発明では、設定項目は、少なくとも二次元コードに固有のシンボルを構成するセルの大きさ、二次元コードのコード種別、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含むことにより、データマトリクス(DM)コード、QRコード等の代表的な二次元コードをより効率よく検出することができる。
【0024】
第5発明では、各設定項目が設定パラメータの抽出対象であるか否かに関する情報の入力も受け付けることにより、抽出対象ではない特徴に関する設定項目の設定パラメータを抽出する処理を回避することができ、一次元コード又は二次元コード検出処理の演算処理負荷を軽減することができる。
【0025】
第6発明では、設定項目が設定パラメータの抽出対象である場合、設定パラメータを抽出する。設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータに限定し、チューニング処理を実行する。これにより、より安定したチューニング処理を実行することが可能になる。
【0026】
第7発明では、設定パラメータとして、設定パラメータの指定がない旨を示す入力を受け付けることにより、特定の一次元コード又は二次元コードに限定することなく、広く一次元コード又は二次元コードを検出することができる。
【0027】
第8発明では、チューニング領域の大きさに基づいて、一次元コード又は二次元コードを検出することが可能な最小の大きさまでチューニング領域内の画像を縮小する比率を算出し、算出した比率に応じて縮小した縮小画像を用いて一次元コード又は二次元コードを検出する。これにより、一次元コード又は二次元コードの検出時に必要な最低限の縮小画像での処理に限定できるので一次元コード又は二次元コード検出処理の演算処理負荷を大きく軽減することができる。
【発明の効果】
【0028】
本発明によれば、一の一次元コード又は二次元コードを囲むようにチューニング領域の指定を受け付けることにより、一次元コード又は二次元コードを検出するまでの時間を短縮することができ、チューニング処理の対象となる一次元コード又は二次元コードを確実に特定することが可能となる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施の形態1に係るバーコードシンボル読取装置の構成を模式的に示すブロック図である。
【図2】本発明の実施の形態1に係る画像処理装置の特徴パラメータ記憶部のデータ構成の例示図である。
【図3】本発明の実施の形態1に係るバーコードシンボル読取装置の一構成例を示す機能ブロック図である。
【図4】チューニング領域の概念を説明するための模式図である。
【図5】本発明の実施の形態1に係るバーコードシンボル読取装置の領域指定受付手段の機能ブロック図である。
【図6】本発明の実施の形態1に係るバーコードシンボル読取装置の設定パラメータ受付画面の例示図である。
【図7】設定項目「コード種別」の設定パラメータが「指定なし」の場合を示す画面例示図である。
【図8】チューニング処理により、二次元コードがDMコードである旨が抽出された場合を示す画面例示図である。
【図9】本発明の実施の形態1に係る画像処理装置の主制御部の二次元コード読み取り処理の手順を示すフローチャートである。
【図10】本発明の実施の形態2に係るバーコードシンボル読取装置の構成を模式的に示すブロック図である。
【図11】本発明の実施の形態2に係るバーコードシンボル読取装置の一構成例を示す機能ブロック図である。
【図12】本発明の実施の形態2に係るPCのCPUの二次元コード読み取り処理の手順を示すフローチャートである。
【図13】本発明の実施の形態2に係るバーコードシンボル読取装置の、チューニング処理を画像処理装置で実行する場合の、一構成例を示す機能ブロック図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施の形態に係るバーコードシンボル読取装置について、図面を参照しながら説明する。なお、参照する図面を通じて、同一又は同様の構成又は機能を有する要素については、同一又は同様の符号を付して、詳細な説明を省略する。
【0031】
(実施の形態1)
図1は、本発明の実施の形態1に係るバーコードシンボル読取装置の構成を模式的に示すブロック図である。図1に示すように本実施の形態1に係るバーコードシンボル読取装置1は、画像処理装置2、カメラ3、コンソール4、PLC6で構成されている。
【0032】
画像処理装置2は、少なくともCPU(中央演算装置)、LSI等で構成された主制御部21、メモリ22、記憶装置23、ビデオインタフェース24、入出力インタフェース25、可搬型ディスクドライブ26、通信インタフェース27及び上述したハードウェアを接続する内部バス28で構成されている。主制御部21は、内部バス28を介して画像処理装置2の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置23に記憶されているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ22は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
【0033】
記憶装置23は、内蔵される固定型記憶装置(ハードディスク、フラッシュメモリ)、ROM等で構成されている。記憶装置23に記憶されているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM、フラッシュメモリ等の可搬型記録媒体90から、可搬型ディスクドライブ26によりダウンロードされ、実行時には記憶装置23からメモリ22へ展開して実行される。もちろん、通信インタフェース27を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0034】
記憶装置23は、一次元コード又は二次元コードの特徴に関する設定項目、設定項目ごとの設定パラメータ、及び各設定項目がチューニング処理による設定パラメータの抽出対象であるか否かに関する情報を記憶する特徴パラメータ記憶部231を備えている。図2は、本発明の実施の形態1に係る画像処理装置2の特徴パラメータ記憶部231のデータ構成の例示図である。
【0035】
図2に示すように、一次元コード又は二次元コードの特徴に関する設定項目は、例えば二次元コードの場合には、少なくともシンボルを構成するセルの大きさ、二次元コードのコード種別、シンボルサイズ、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含む。
【0036】
「シンボルを構成するセルの大きさ」には、例えば二次元コードに固有のシンボルを構成するセルの縦の個数、横の個数及び1個当たりのセルの大きさを記憶する。すなわち、シンボルサイズを縦のセルの個数及び横のセルの個数で示し、1個当たりのセルの大きさを併せて記憶しておくことで、検出した二次元コードをより正確にデコードすることができる。本実施の形態1では、1個当たりのセルの大きさをPPC(Pixel Per Cell)として「ピクセル」単位で記憶しているが、実長に即して「インチ」単位で記憶しても良いし、「mm」単位で記憶しても良い。なお、バーコードのような一次元コードの場合、最も細いバー、スペース等の間隔に基づいて1モジュール当たりの大きさを同じように「ピクセル」単位で記憶しても良いし、実長に即して「インチ」単位で記憶しても良いし、「mm」単位で記憶しても良い。
【0037】
「コード種別」には、二次元コードのコード種別、例えばDM(データマトリクス)コード、QRコード等の種別を記憶する。「シンボルサイズ」には、例えば二次元コードのコード種別がDM(DataMatrix)コードである場合、10×10から144×144までのサイズを記憶する。なお、一次元コードのコード種別としては、JANコード、インターリーブド2オブ5、コード39等の種別を記憶する。
【0038】
「コントラスト」には、二次元コードの背景と前景との画素値の変動を、階調で表した数値を記憶する。「印字の色種別」には、黒シンボルからなる二次元コード又は白黒反転したシンボルからなる二次元コードの色種別を記憶する。「ミラー反転」には、二次元コードをガラス表面に印刷して反対側から撮像した二次元コードであるか否かを記憶する。
【0039】
「基準角度」には、正立した状態を0度とし、時計回りを正とした場合の、撮像された二次元コードの角度を記憶する。「撮像条件」としては、「露光時間」、「照明パターン」、「カメラゲイン」等を少なくとも含む撮像時の条件を記憶する。「ピッチ角度」には、二次元コードの印刷面に対するイメージセンサの面の相対角度を記憶する。「画像フィルタの種別」には、メディアンフィルタ等のフィルタリング処理を実行する場合に用いる画像フィルタの種別を記憶する。
【0040】
設定パラメータの入力を受け付けた場合には、設定項目ごとに特徴パラメータ記憶部231に記憶される。なお、図2の例のように、入力を受け付けていない場合には、設定パラメータは「指定なし」となる。
【0041】
すなわち、設定項目ごとに、チューニング処理による設定パラメータの抽出対象であるか否かに関する情報を記憶しておき、チューニング処理による設定パラメータの抽出対象である設定項目については、チューニング処理により抽出された設定パラメータが指定される。また、チューニング処理による設定パラメータの抽出対象ではない設定項目については、設定パラメータの入力を受け付ける必要がある。これにより、全ての設定項目についてチューニング処理により抽出する必要がなくなるので、チューニング処理の演算処理負荷を軽減することができる。また、チューニング処理を実行する時に、入力を受け付けた設定パラメータに限定してチューニング処理を実行するので、より安定したチューニング処理を実行することが可能となる。
【0042】
図1に戻って、通信インタフェース27は内部バス28に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置23は、画像処理装置2に内蔵される構成に限定されるものではなく、通信インタフェース27を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【0043】
ビデオインタフェース24は、内部バス28に接続されており、コンソール4の表示装置401に接続されることにより、所望の画像を表示する。入出力インタフェース25は、内部バス28に接続されており、コンソール4のキーボード402を介してデータの入力を受け付ける。なお、コンソール4は、表示装置401とキーボード402とが一体になっている構成に限定されるものではなく、別個に構成されていても良いし、液晶パネル等と一体になったタッチパネル等の入力情報を取得する装置全般を含む広い概念である。
【0044】
カメラ3は、CCD撮像素子を備えたCCDカメラ等であり、少なくとも一の二次元コード5を含む画像を撮像して取得する。画像処理装置2は、二次元コードの読み取り処理だけでなく、さまざまな画像処理を実行する。PLC6は、画像処理装置2を含む各種の装置からデータを受信し、受信した内容に応じて画像処理装置2及び/又は各種の装置へ指示を送信する装置である。
【0045】
図3は、本発明の実施の形態1に係るバーコードシンボル読取装置1の一構成例を示す機能ブロック図である。図3において、本実施の形態1に係るバーコードシンボル読取装置1は、カメラ3と、画像処理装置2と、コンソール4と記憶装置23とで構成される。以下、二次元コードのバーコードシンボルを読み取る場合について説明する。
【0046】
画像取得手段(取得手段)201は、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。取得した画像の画像データは記憶装置23に記憶される。
【0047】
画像表示手段(表示手段)202は、取得した画像をコンソール4の表示装置401に表示する。表示された画像全体を、二次元コードの位置と姿勢とを検出するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0048】
領域指定受付手段203は、少なくとも一の二次元コードを含む画像上で、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むような位置にて受け付ける。チューニング領域の指定を受け付けることにより、不要な領域を含めてチューニング処理を実行する必要がなく、チューニング処理の演算処理負荷を軽減することができる。
【0049】
また、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個に、チューニング領域の指定を受け付けることが好ましい。チューニング領域を二次元コードの近傍に限定することができ、二次元コードを検出するまでの時間を短縮することができるからである。
【0050】
図4は、チューニング領域の概念を説明するための模式図である。図4に示すように、カメラ3で撮像された画像を表示している画面上において、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域41の指定を受け付ける。図4の例では、サーチ領域41内に2つのDMコード42、43が存在するので、このままDMコードの検出処理を開始した場合、どちらのDMコードが検出されるか不明である。また、複数のDMコード42、43に対して検出処理が実行されることから、サーチ領域41が比較的広く、DMコードを検出するまでの時間を短縮することが困難となる。
【0051】
そこで、本実施の形態1では、シンボルサイズの小さいDMコード42を確実に検出することができるよう、DMコード42を囲むようにチューニング領域44の指定を受け付ける。これにより、読み取り対象をDMコード42に特定することができ、DMコード42の特徴に関する設定項目の設定パラメータを確実に抽出することができる。また、チューニング領域44がサーチ領域41よりも狭いことから、DMコード42を検出するまでの時間を短縮することもできる。
【0052】
さらに、例えばチューニング領域44として回転可能な矩形領域の指定を受け付けることができる場合、二次元コードに固有のシンボルの傾斜角度に合わせてチューニング領域44の指定を受け付けることができるので、シンボルの傾斜角度の検出処理において、検出角度は指定を受け付けた回転可能な矩形領域の回転角度に近いことが期待できるので検出角度の探索範囲を狭めることができ、全体としてDMコード42を検出するまでの時間を短縮することができる。
【0053】
なお、チューニング領域44が矩形領域である場合、例えば矩形領域の左上の座標値及び右下の座標値の指定を受け付ける。また、チューニング領域44が回転可能な矩形領域である場合、例えば矩形領域が正立している状態(基準角度が0度の状態)での幅、高さ、矩形領域の中心座標及び回転角度の指定を受け付ける。
【0054】
さらに、チューニング領域44として指定を受け付ける領域の形状は矩形に限定されるものではなく、円形、楕円形等、二次元コードに固有のシンボルを囲むことができる形状であれば特に限定されるものではない。また、複数の形状を用いることができ、チューニング領域44の指定を受け付ける場合に、どの形状を用いて指定を受け付けるかの選択を受け付けるようにしても良い。
【0055】
また、チューニング領域44が適切に指定されず、例えばチューニング領域44内に読み取り対象となる二次元コードに固有のシンボルが一部しか含まれない位置にてチューニング領域44の指定を受け付けた場合、二次元コードのコード種別を正しく抽出することができない。そこで、チューニング領域の指定を受け付けた時点で、二次元コードに固有のシンボルを検出することができるか否かを判断することが好ましい。
【0056】
図5は、本発明の実施の形態1に係るバーコードシンボル読取装置1の領域指定受付手段203の機能ブロック図である。図5において、シンボル判断手段501は、二次元コードに固有のシンボルを検出することができるか否かを判断する。
【0057】
例えば二次元コードがQRコードである場合、二次元コードの四隅のうち三か所にある矩形シンボルを検出することが必要となる。指定を受け付けたチューニング領域44が上下方向又は左右方向にシフトしている場合、矩形シンボルの一部を検出することができず、設定パラメータとして「コード種別」がQRコードであると抽出することができない。
【0058】
領域再指定受付手段502は、シンボル判断手段501にて二次元コードに固有のシンボルを検出することができないと判断した場合、再度チューニング領域44の指定を受け付ける。これにより、チューニング領域44に一の二次元コードを確実に含ませることができる、すなわちチューニング処理の対象となる一の二次元コードが確実にチューニング領域44内に存在することを担保することができる。
【0059】
図3に戻って、設定パラメータ入力受付手段204は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0060】
図6は、本発明の実施の形態1に係るバーコードシンボル読取装置1の設定パラメータ受付画面の例示図である。まず、チューニング処理の対象となる画像を、カメラ3で撮像した「入力画像」にするか、記憶装置23に記憶してある「登録画像」にするかの指定を、対象画像設定領域61にて受け付ける。図6の例では、「登録画像」の指定を受け付けている。
【0061】
次に、上述したようにチューニング領域44の指定を受け付ける。そして、設定パラメータ指定領域62にて、必要な設定項目について設定パラメータの入力を受け付ける。図6の例では、設定パラメータ指定領域62の設定項目ごとに、チューニング処理による設定パラメータの抽出対象であるか否かに関する情報の入力を受け付けるチェックボックスを設けている。
【0062】
チェックボックスにチェックが入力されている設定項目については、チューニング処理により自動的に設定パラメータが指定される。チェックが入力されていない設定項目については、設定パラメータの入力を受け付ける。図6の例では、設定項目「ミラー反転」のみチェックが入力されていない。したがって、設定パラメータとして「反転なし」を入力している。他の設定項目については、チューニング処理前は空欄であり「自動チューニング」ボタン63の選択を受け付けた場合、チューニング処理が実行され、抽出された設定項目ごとの設定パラメータが指定される。
【0063】
このように、設定項目が設定パラメータの抽出対象であるか否かに関する情報の入力を受け付けることにより、設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータに限定してチューニング処理を実行することができる。したがって、チューニング処理の演算処理負荷を軽減することができ、より安定したチューニング処理を実行することが可能になる。
【0064】
なお、設定パラメータ入力受付手段204は、設定パラメータとして、設定パラメータの指定がない旨を示す「指定なし」の入力を受け付けることが好ましい。例えば設定項目「コード種別」の設定パラメータとして「指定なし」の入力を受け付けることができる場合、さまざまな種別の二次元コードを検出することができ、二次元コードの種別が未知である場合に効果的である。
【0065】
図7は、設定項目「コード種別」の設定パラメータが「指定なし」の場合を示す画面例示図である。コード種別設定領域71にて、DMコード、QRコード等ではなく、「指定なし」の入力を受け付けている。この場合、チューニング領域44内の二次元コードのコード種別がチューニング処理により抽出されるまで、その他の設定項目の設定パラメータの入力を受け付ける設定パラメータ指定領域72には、その他の設定項目が表示されない。もちろん、設定項目「コード種別」には、チューニング処理による設定パラメータの抽出対象であるか否かに関する情報の入力を受け付けるチェックボックスを設けてあり、チェックボックスにチェックが入力されている。
【0066】
図7の状態で「自動チューニング」ボタン73の選択を受け付けた場合、チューニング処理が実行され、まず二次元コードのコード種別が抽出される。コード種別を抽出する方法は特に限定されるものではなく、各二次元コードに固有のシンボルについてパターンマッチングして抽出しても良い。図8は、チューニング処理により、二次元コードのコード種別がDMコードである旨が抽出された場合を示す画面例示図である。
【0067】
図8に示すように、コード種別設定領域71の設定項目「コード種別」には、抽出した設定パラメータ「DataMatrix」が指定されており、設定パラメータ指定領域72には、「コード種別」がDMコードである場合に設定パラメータの入力を受け付ける設定項目が表示されている。この時点で、各設定項目にはチューニング処理の結果が指定されている。この状態で、図6と同様にチェックボックスや設定項目の内容を変更して「自動チューニング」ボタン73の選択を受け付けた場合、変更した内容に従ってチューニング処理が実行され、変更した内容に従って抽出された設定項目ごとの設定パラメータが指定される。
【0068】
なお、チューニング領域44は、サーチ領域41とは表示が異なることが好ましい。例えばチューニング領域44を示す枠の色とサーチ領域41を示す枠の色とを異なる色にする、チューニング領域44を示す枠の線種とサーチ領域41を示す枠の線種とを異なる線種(実線と破線、太線と細線等)にする等、視覚的に容易に区別することができるようにすることで、読み取り対象となる二次元コードを確実に特定することができる。
【0069】
図3に戻って、二次元コード検出手段(検出手段)205は、領域指定受付手段203にて指定を受け付けたチューニング領域内で二次元コードを検出する。従来は、二次元コードを検出(サーチ)するためのサーチ領域内で二次元コードを検出していた。本実施の形態1では、サーチ領域とは別個に指定を受け付けたチューニング領域にて二次元コードに固有のシンボルを検出することにより、チューニング領域内の二次元コードを検出する。
【0070】
デコード判断手段(判断手段)206は、検出した二次元コードを正常にデコードすることができるか否かを判断する。正常にデコードすることができるか否かを判断する方法は、特に限定されるものではない。例えば二次元コード自体を検出することができない場合、明らかに正常にデコードすることができないと判断することができる。
【0071】
また、一の二次元コードに固有のシンボルが存在すると推定した領域を囲むようにチューニング領域の指定を受け付け、二次元コード自体は検出することができたものの、白黒パターンに誤りが含まれている場合も、正常にデコードすることができないと判断することができる。通常、二次元コードに固有のシンボルには誤り検出機能又は誤り検出訂正機能が付与されている。誤り検出機能しか付与されていない場合、誤りを検出したときに正常にデコードすることができないと判断することができる。一方、誤り検出訂正機能が付与されている場合、誤りを検出して、正常に誤り訂正をすることができなかったときに正常にデコードすることができないと判断することができる。
【0072】
正常にデコードすることができると判断した場合、設定パラメータ抽出手段(抽出手段)207は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する。抽出した設定パラメータは、記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0073】
正常にデコードすることができないと判断した場合、二次元コードの読み取りに失敗した旨を示す情報(メッセージ等)をコンソール4の表示装置401に表示することが好ましい。カメラ3との相対位置を変更して二次元コードを撮像しなおす、チューニング領域44の指定を改めて受け付ける等、再度試行することができるからである。
【0074】
図9は、本発明の実施の形態1に係る画像処理装置2の主制御部21の二次元コード読み取り処理の手順を示すフローチャートである。画像処理装置2の主制御部21は、カメラ3で撮像した、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する(ステップS901)。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。取得した画像の画像データは記憶装置23に記憶される。
【0075】
主制御部21は、取得した画像をコンソール4の表示装置401に表示する(ステップS902)。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0076】
主制御部21は、少なくとも一の二次元コードを含む画像上で、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個に、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むように受け付ける(ステップS903)。主制御部21は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける(ステップS904)。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0077】
主制御部21は、指定を受け付けたチューニング領域内で二次元コードを検出する(ステップS905)。主制御部21は、二次元コードを検出することができたか否かを判断する(ステップS906)。
【0078】
主制御部21が、二次元コードを検出することができたと判断した場合(ステップS906:YES)、主制御部21は、検出した二次元コードを正常にデコードすることができるか否かを判断する(ステップS907)。主制御部21が、正常にデコードすることができると判断した場合(ステップS907:YES)、主制御部21は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する(ステップS908)。抽出した設定パラメータは、記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0079】
主制御部21が、二次元コードを検出することができなかったと判断した場合(ステップS906:NO)、又は正常にデコードすることができないと判断した場合(ステップS907:NO)、主制御部21は、チューニング処理に失敗した旨を示すメッセージをコンソール4の表示装置401に表示する(ステップS909)。
【0080】
以上のように本実施の形態1によれば、一の二次元コードを囲むようにチューニング領域の指定を受け付けることにより、二次元コードを検出するまでの時間を短縮することができ、チューニング領域に一の二次元コードを含ませることにより、チューニング処理の対象となる二次元コードを確実に特定することが可能となる。また、サーチ領域とは別個にチューニング領域の指定を受け付けることにより、二次元コードを検出するまでの時間を短縮することができる。
【0081】
なお、二次元コードに固有のシンボルを検出する処理の処理速度を早めるために、カメラ3で撮像した画像を縮小した画像を用いてシンボルを検出しても良い。ただし、縮小した画像(縮小画像)の解像度は低くなるので、二次元コードに固有のファインダーパターンを検出するためには画像を縮小する比率に限界が生じる。
【0082】
通常、チューニング領域は、一の二次元コードを囲み、余白領域が可能な限り少なくなるように指定する。したがって、例えばDMコードの場合はシンボルサイズ、QRコードの場合はバージョンが既知の場合、指定を受け付けたチューニング領域の大きさとの比率から最大の縮小度を算出することができる。
【0083】
そこで、本実施の形態1では、チューニング領域の大きさに基づいて二次元コードに固有のファインダーパターンを検出することが可能な最小の大きさまでチューニング領域内の画像を縮小する比率(最大の縮小度)を算出し、算出した比率に応じて縮小した縮小画像を用いて二次元コードを検出する。二次元コードに固有のファインダーパターンを検出することが可能な最小の大きさは、二次元コードのセルの大きさ(あるいはPPC。一次元コードである場合には、最も細いバー又はスペース等の間隔)に依存する。
【0084】
例えばDMコードの場合はシンボルサイズ、QRコードの場合はバージョンが既知の場合、指定を受け付けたチューニング領域の大きさとの比率からセルの大きさを推定することができるので、チューニング領域をどこまで縮小することができるか、最大の縮小度を推定することができる。また、QRコードのバージョンが不明である場合等には、最小のバージョンであると仮定することにより、最大の縮小度を推定することができる。
【0085】
推定した最大の縮小度に基づいてチューニング領域内の画像、すなわち二次元コードの画像を縮小し、縮小した画像から二次元コードを検出する。これにより、二次元コードに固有のファインダーパターンの検出に縮小画像を用いることができるので、二次元コード検出処理の演算処理負荷を大きく軽減することができる。
【0086】
また、最大の縮小度で縮小した縮小画像から段階的な縮小画像を準備しておき、まず最大の縮小度で縮小した縮小画像を用いてシンボルの検出処理を実行する。正常に検出することができた場合は、引き続きデコード処理を実行する。デコード処理が正常に終了した場合は、縮小画像に対するシンボルの検出処理及びデコード処理の演算処理負荷は大きく軽減されているので、処理時間も大きく短縮することができる。
【0087】
また、デコード処理が異常終了した場合、順次縮小度が小さい縮小画像を用いてシンボルの検出処理及びデコード処理を同様に実行することで、場合によっては、縮小前の画像を用いたシンボルの検出処理及びデコード処理の処理時間よりも処理時間が短くなる場合も生じる。これは、縮小画像に対するシンボルの検出処理及びデコード処理の演算処理負荷が大きく軽減されるからである。
【0088】
(実施の形態2)
図10は、本発明の実施の形態2に係るバーコードシンボル読取装置1の構成を模式的に示すブロック図である。図10に示すように本実施の形態2に係るバーコードシンボル読取装置1は、画像処理装置2、カメラ3、PLC6、PC7で構成されている。
【0089】
画像処理装置2、カメラ3の構成は実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。
【0090】
PC7は、少なくともCPU(中央演算装置)71、メモリ72、記憶装置73、ビデオインタフェース74、入出力インタフェース75、可搬型ディスクドライブ76、通信インタフェース77及び上述したハードウェアを接続する内部バス78で構成されている。CPU71は、内部バス78を介してPC7の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置73に記憶されているコンピュータプログラム101に従って、種々のソフトウェア的機能を実行する。メモリ72は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム101の実行時にロードモジュールが展開され、コンピュータプログラム101の実行時に発生する一時的なデータ等を記憶する。
【0091】
記憶装置73は、内蔵される固定型記憶装置(ハードディスク、フラッシュメモリ)、ROM等で構成されている。記憶装置73に記憶されているコンピュータプログラム101は、プログラム及びデータ等の情報を記録したDVD、CD−ROM、フラッシュメモリ等の可搬型記録媒体91から、可搬型ディスクドライブ76によりダウンロードされ、実行時には記憶装置73からメモリ72へ展開して実行される。もちろん、通信インタフェース77を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0092】
通信インタフェース77は内部バス78に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、画像処理装置2等とデータ送受信を行うことが可能となっている。
【0093】
ビデオインタフェース74は、内部バス78に接続されており、表示装置81に接続されることにより、所望の画像を表示する。入出力インタフェース75は、内部バス78に接続されており、キーボード、マウス等の入力装置82を介してデータの入力を受け付ける。
【0094】
図11は、本発明の実施の形態2に係るバーコードシンボル読取装置1の一構成例を示す機能ブロック図である。図11において、本実施の形態2に係るバーコードシンボル読取装置1は、カメラ3と、画像処理装置2と、PC7とから構成される。
【0095】
画像取得手段(取得手段)701は、少なくとも一の二次元コードを含む画像を、画像処理装置2から取得する。画像表示手段(表示手段)702は、取得した画像を表示装置81に表示する。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0096】
領域指定受付手段703は、少なくとも一の二次元コードを含む画像上で、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むような位置にて受け付ける。チューニング領域の指定を受け付けることにより、不要な領域を含めてチューニング処理を実行する必要がなく、チューニング処理の演算処理負荷を軽減することができる。
【0097】
また、サーチ領域とは別個にチューニング領域の指定を受け付けることが好ましい。チューニング領域を二次元コードの近傍に限定することができ、二次元コードを検出するまでの時間を短縮することができるからである。
【0098】
設定パラメータ入力受付手段704は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0099】
二次元コード検出手段(検出手段)705は、領域指定受付手段703にて指定を受け付けたチューニング領域内で二次元コードを検出する。従来は、二次元コードを検出(サーチ)するためのサーチ領域内で二次元コードを検出していた。本実施の形態2では、指定を受け付けたチューニング領域にて二次元コードに固有のシンボルを検出することにより、チューニング領域内の二次元コードを検出する。
【0100】
デコード判断手段(判断手段)706は、検出した二次元コードを正常にデコードすることができるか否かを判断する。正常にデコードすることができるか否かを判断する方法は、特に限定されるものではない。
【0101】
正常にデコードすることができると判断した場合、設定パラメータ抽出手段(抽出手段)707は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する。抽出した設定パラメータは、画像処理装置2の設定パラメータ取得手段208にて受信され、画像処理装置2の記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0102】
正常にデコードすることができないと判断した場合、二次元コードの読み取りに失敗した旨を示す情報(メッセージ等)を表示装置81に表示することが好ましい。カメラ3との相対位置を変更して二次元コードを撮像しなおす、チューニング領域の指定を改めて受け付ける等、再度試行することができるからである。
【0103】
図12は、本発明の実施の形態2に係るPC7のCPU71の二次元コード読み取り処理の手順を示すフローチャートである。PC7のCPU71は、画像処理装置2から少なくとも一の二次元コードを含む画像を取得する(ステップS1201)。
【0104】
CPU71は、取得した画像を表示装置81に表示する(ステップS1202)。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0105】
CPU71は、少なくとも一の二次元コードを含む画像上で、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個に、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むように受け付ける(ステップS1203)。CPU71は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける(ステップS1204)。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0106】
CPU71は、指定を受け付けたチューニング領域内で二次元コードを検出する(ステップS1205)。CPU71は、二次元コードを検出することができたか否かを判断する(ステップS1206)。
【0107】
CPU71が、二次元コードを検出することができたと判断した場合(ステップS1206:YES)、CPU71は、検出した二次元コードを正常にデコードすることができるか否かを判断する(ステップS1207)。CPU71が、正常にデコードすることができると判断した場合(ステップS1207:YES)、CPU71は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する(ステップS1208)。CPU71は、抽出した設定パラメータを画像処理装置2へ送信し(ステップS1209)、送信された設定パラメータは、画像処理装置2の記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0108】
CPU71が、二次元コードを検出することができなかったと判断した場合(ステップS1206:NO)、又は正常にデコードすることができないと判断した場合(ステップS1207:NO)、CPU71は、チューニング処理に失敗した旨を示すメッセージを表示装置81に表示する(ステップS1210)。
【0109】
以上のように本実施の形態2によれば、一の二次元コードを囲むようにチューニング領域の指定を受け付けることにより、二次元コードを検出するまでの時間を短縮することができ、チューニング領域に一の二次元コードを含ませることにより、チューニング処理の対象となる二次元コードを確実に特定することが可能となる。また、PC7が二次元コードの読み取り処理機能を有することから、画像処理装置2と接続されていない場合であっても、独立してチューニング領域の指定を受け付けることができ、設定パラメータの入力を受け付けることができる。
【0110】
なお、チューニング処理機能は、画像処理装置2が有していても良い。図13は、本発明の実施の形態2に係るバーコードシンボル読取装置1の、チューニング処理を画像処理装置2で実行する場合の、一構成例を示す機能ブロック図である。
【0111】
画像取得手段(取得手段)701は、少なくとも一の二次元コードを含む画像を、画像処理装置2から取得する。画像表示手段(表示手段)702は、取得した画像を表示装置81に表示する。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0112】
領域指定受付手段703は、少なくとも一の二次元コードを含む画像上で、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むような位置にて受け付ける。チューニング領域の指定を受け付けることにより、不要な領域を含めてチューニング処理を実行する必要がなく、チューニング処理の演算処理負荷を軽減することができる。
【0113】
また、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個にチューニング領域の指定を受け付けることが好ましい。チューニング領域を二次元コードの近傍に限定することができ、二次元コードを検出するまでの時間を短縮することができるからである。
【0114】
設定パラメータ入力受付手段704は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0115】
設定情報送信手段708は、領域指定受付手段703で指定を受け付けたチューニング領域に関する情報、設定パラメータ入力受付手段704で入力を受け付けた情報を含む設定情報を、画像処理装置2へ送信する。
【0116】
設定情報を受信した画像処理装置2の二次元コード検出手段(検出手段)205、デコード判断手段(判断手段)206、及び設定パラメータ抽出手段(抽出手段)207は、実施の形態1の図9のステップS905乃至ステップS909の処理を実行する。
【0117】
このようにすることで、演算処理負荷が大きいチューニング処理をPC7にて実行する必要がないことから、PC7にて稼働するコンピュータプログラム101が簡易で済み、コンピュータプログラム101自体を安価に提供することができる。
【0118】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば「自動チューニング」ボタンの選択を受け付けた時点で二次元コードの検出処理、デコード処理を開始しているが、チューニング領域の指定を受け付けた時点で開始しても良いし、設定パラメータの入力を受け付ける都度、開始しても良い。
【符号の説明】
【0119】
1 バーコードシンボル読取装置
2 画像処理装置
3 カメラ(撮像手段)
4 コンソール
5 二次元コード
6 PLC
7 PC
21 主制御部
22、72 メモリ
23、73 記憶装置
24、74 ビデオインタフェース
25、75 入出力インタフェース
26、76 可搬型ディスクドライブ
27、77 通信インタフェース
28、78 内部バス
71 CPU
90、91 可搬型記録媒体
100、101 コンピュータプログラム
【技術分野】
【0001】
本発明は、バーコード、QRコードのような二次元コードを読み取るバーコードシンボル読取装置、バーコードシンボル読取方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、バーコード、QRコードのような二次元コードを読み取る各種のバーコードシンボル読取装置は、二次元コードそれぞれが有する固有の特徴を利用して二次元コードの位置決めを実行してから、デコードしている。読み取り対象となる二次元コードの存在する位置を検出するために、二次元コードの固有の特徴を示すパラメータの入力を直接受け付けても良いし、二次元コードの存在する位置を検出する領域(以下、サーチ領域)の指定を受け付けて、二次元コードが有する固有の特徴を示すパラメータを抽出しても良い。
【0003】
特許文献1では所定のファインダーパターンを検出するためのサーチ領域の領域指定機能を有する二次元コード読取装置が開示されている。特許文献1では、QRコードのバージョン、種類等に固有の白黒パターンの幅の比率に関する情報等の特徴を示すパラメータを手動で設定することにより、読み取り対象となる二次元コードを検出してデコードする(読み取る)ことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4013027号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
二次元コード読み取りの安定性向上、高速性向上のために、読み取り対象となる二次元コードの特徴を示すパラメータを限定することが多い。この場合、二次元コードの特徴を示すパラメータは、例えばバーコードシンボルの色種別、シンボルサイズ等の情報として、ユーザの直接入力を受け付ける、又は二次元コードを撮像して取得した画像から抽出する。
【0006】
最近では、鋳肌表面に印刷する、鏡面に印刷する等、二次元コードを読み取ることが困難である印刷面に二次元コードが付与されていることも多い。斯かる印刷面から二次元コードを読み取る場合、特許文献1に開示されている二次元コード読取装置では、鏡面、鋳肌表面等でも確実に読み取ることができるよう各種の設定を行うことが非常に困難になるおそれがあるという問題点があった。
【0007】
また、二次元コードを検出することができない場合、二次元コードの特徴を示すパラメータをユーザが直接入力する必要があり、作業が煩雑であった。さらに、鏡面反転等の見た目では判断できない特徴を示すパラメータは、ユーザが直接入力することが困難であるという問題点もあった。
【0008】
加えて、サーチ領域内に複数の二次元コードが存在する場合、チューニング処理の対象となる二次元コードを特定することが困難になる場合もあり、正しく二次元コードの特徴を示すパラメータを抽出することが困難であるという問題点もあった。
【0009】
本発明は上記事情に鑑みてなされたものであり、読み取り対象となる一次元コード、二次元コード等のバーコードシンボルを特定することが困難である場合であっても、確実にバーコードシンボルを読み取ることができるバーコードシンボル読取装置、バーコードシンボル読取方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために第1発明に係るバーコードシンボル読取装置は、読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置において、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、取得した画像を表示する表示手段と、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段と、前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段と、指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段と、検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段と、該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段とを備えることを特徴とする。
【0011】
また、第2発明に係るバーコードシンボル読取装置は、第1発明において、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの位置と姿勢とを検出するサーチ領域の指定を受け付けるサーチ領域指定受付手段を備え、前記領域指定受付手段は、前記サーチ領域とは別個に、前記チューニング領域の指定を受け付けることを特徴とする。
【0012】
また、第3発明に係るバーコードシンボル読取装置は、第1又は第2発明において、前記領域指定受付手段は、指定を受け付けたチューニング領域において、前記一次元コード又は前記二次元コードに固有のシンボルを検出することができるか否かを判断するシンボル判断手段を備え、該シンボル判断手段で前記シンボルを検出することができないと判断した場合、再度前記チューニング領域の指定を受け付けるようにしてあることを特徴とする。
【0013】
また、第4発明に係るバーコードシンボル読取装置は、第1乃至第3発明のいずれか1つにおいて、前記設定項目は、少なくとも前記二次元コードに固有のシンボルを構成するセルの大きさ、二次元コードのコード種別、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含むことを特徴とする。
【0014】
また、第5発明に係るバーコードシンボル読取装置は、第1乃至第4発明のいずれか1つにおいて、前記設定パラメータ入力受付手段は、各設定項目が前記抽出手段での設定パラメータの抽出対象であるか否かに関する情報の入力も受け付けるようにしてあることを特徴とする。
【0015】
また、第6発明に係るバーコードシンボル読取装置は、第5発明において、前記抽出手段は、前記設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータを使用し、前記設定項目が設定パラメータの抽出対象である場合、設定パラメータを抽出するようにしてあることを特徴とする。
【0016】
また、第7発明に係るバーコードシンボル読取装置は、第1乃至第6発明のいずれか1つにおいて、前記設定パラメータ入力受付手段は、前記設定パラメータとして、前記設定パラメータの指定がない旨を示す入力を受け付けることを特徴とする。
【0017】
また、第8発明に係るバーコードシンボル読取装置は、第1乃至第7発明のいずれか1つにおいて、前記チューニング領域の大きさに基づいて、前記一次元コード又は前記二次元コードを検出することが可能な最小の大きさまで前記チューニング領域内の画像を縮小する比率を算出し、算出した比率に応じて縮小した縮小画像を用いて前記一次元コード又は前記二次元コードを検出するようにしてあることを特徴とする。
【0018】
次に、上記目的を達成するために第9発明に係るバーコードシンボル読取方法は、読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なバーコードシンボル読取方法において、少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、取得した画像を表示するステップと、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付けるステップと、前記設定パラメータの入力を部分的に受け付けるステップと、指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出するステップと、検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断するステップと、正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出するステップとを含むことを特徴とする。
【0019】
次に、上記目的を達成するために第10発明に係るコンピュータプログラムは、読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なコンピュータプログラムにおいて、前記バーコードシンボル読取装置を、少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、取得した画像を表示する表示手段、少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段、前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段、指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段、検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段、及び該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段として機能させることを特徴とする。
【0020】
第1発明、第9発明及び第10発明では、少なくとも一の一次元コード又は二次元コードを含む画像を取得し、取得した画像を表示する。少なくとも一の一次元コード又は二次元コードを含む画像上で、一次元コード又は二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける。設定パラメータの入力を部分的に受け付け、指定を受け付けたチューニング領域内で一次元コード又は二次元コードを検出する。検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断し、正常にデコードすることができると判断した場合、一次元コード又は二次元コードの設定パラメータを抽出する。読み取り対象となる一の一次元コード又は二次元コードを囲むようにチューニング領域の指定を受け付けることにより、一次元コード又は二次元コードを検出するまでの時間を短縮することができ、チューニング処理の対象となる一次元コード又は二次元コードを確実に特定することが可能となる。
【0021】
第2発明では、少なくとも一の一次元コード又は二次元コードを含む画像上で、一次元コード又は二次元コードの位置と姿勢とを検出するサーチ領域の指定を受け付ける。サーチ領域とは別個に、チューニング領域の指定を受け付けることにより、チューニング処理の対象領域を一次元コード又は二次元コードの近傍に限定することができ、一次元コード又は二次元コードを検出するまでの時間を短縮することができる。
【0022】
第3発明では、指定を受け付けたチューニング領域において、一次元コード又は二次元コードに固有のシンボルを検出することができるか否かを判断し、シンボルを検出することができないと判断した場合、再度チューニング領域の指定を受け付ける。これにより、チューニング領域の指定に誤りがあった場合であっても、事前に確認してチューニング領域の指定を受け付け直すことができ、チューニング領域に一の一次元コード又は二次元コードを確実に含ませることが可能となる。
【0023】
第4発明では、設定項目は、少なくとも二次元コードに固有のシンボルを構成するセルの大きさ、二次元コードのコード種別、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含むことにより、データマトリクス(DM)コード、QRコード等の代表的な二次元コードをより効率よく検出することができる。
【0024】
第5発明では、各設定項目が設定パラメータの抽出対象であるか否かに関する情報の入力も受け付けることにより、抽出対象ではない特徴に関する設定項目の設定パラメータを抽出する処理を回避することができ、一次元コード又は二次元コード検出処理の演算処理負荷を軽減することができる。
【0025】
第6発明では、設定項目が設定パラメータの抽出対象である場合、設定パラメータを抽出する。設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータに限定し、チューニング処理を実行する。これにより、より安定したチューニング処理を実行することが可能になる。
【0026】
第7発明では、設定パラメータとして、設定パラメータの指定がない旨を示す入力を受け付けることにより、特定の一次元コード又は二次元コードに限定することなく、広く一次元コード又は二次元コードを検出することができる。
【0027】
第8発明では、チューニング領域の大きさに基づいて、一次元コード又は二次元コードを検出することが可能な最小の大きさまでチューニング領域内の画像を縮小する比率を算出し、算出した比率に応じて縮小した縮小画像を用いて一次元コード又は二次元コードを検出する。これにより、一次元コード又は二次元コードの検出時に必要な最低限の縮小画像での処理に限定できるので一次元コード又は二次元コード検出処理の演算処理負荷を大きく軽減することができる。
【発明の効果】
【0028】
本発明によれば、一の一次元コード又は二次元コードを囲むようにチューニング領域の指定を受け付けることにより、一次元コード又は二次元コードを検出するまでの時間を短縮することができ、チューニング処理の対象となる一次元コード又は二次元コードを確実に特定することが可能となる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施の形態1に係るバーコードシンボル読取装置の構成を模式的に示すブロック図である。
【図2】本発明の実施の形態1に係る画像処理装置の特徴パラメータ記憶部のデータ構成の例示図である。
【図3】本発明の実施の形態1に係るバーコードシンボル読取装置の一構成例を示す機能ブロック図である。
【図4】チューニング領域の概念を説明するための模式図である。
【図5】本発明の実施の形態1に係るバーコードシンボル読取装置の領域指定受付手段の機能ブロック図である。
【図6】本発明の実施の形態1に係るバーコードシンボル読取装置の設定パラメータ受付画面の例示図である。
【図7】設定項目「コード種別」の設定パラメータが「指定なし」の場合を示す画面例示図である。
【図8】チューニング処理により、二次元コードがDMコードである旨が抽出された場合を示す画面例示図である。
【図9】本発明の実施の形態1に係る画像処理装置の主制御部の二次元コード読み取り処理の手順を示すフローチャートである。
【図10】本発明の実施の形態2に係るバーコードシンボル読取装置の構成を模式的に示すブロック図である。
【図11】本発明の実施の形態2に係るバーコードシンボル読取装置の一構成例を示す機能ブロック図である。
【図12】本発明の実施の形態2に係るPCのCPUの二次元コード読み取り処理の手順を示すフローチャートである。
【図13】本発明の実施の形態2に係るバーコードシンボル読取装置の、チューニング処理を画像処理装置で実行する場合の、一構成例を示す機能ブロック図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施の形態に係るバーコードシンボル読取装置について、図面を参照しながら説明する。なお、参照する図面を通じて、同一又は同様の構成又は機能を有する要素については、同一又は同様の符号を付して、詳細な説明を省略する。
【0031】
(実施の形態1)
図1は、本発明の実施の形態1に係るバーコードシンボル読取装置の構成を模式的に示すブロック図である。図1に示すように本実施の形態1に係るバーコードシンボル読取装置1は、画像処理装置2、カメラ3、コンソール4、PLC6で構成されている。
【0032】
画像処理装置2は、少なくともCPU(中央演算装置)、LSI等で構成された主制御部21、メモリ22、記憶装置23、ビデオインタフェース24、入出力インタフェース25、可搬型ディスクドライブ26、通信インタフェース27及び上述したハードウェアを接続する内部バス28で構成されている。主制御部21は、内部バス28を介して画像処理装置2の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置23に記憶されているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ22は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
【0033】
記憶装置23は、内蔵される固定型記憶装置(ハードディスク、フラッシュメモリ)、ROM等で構成されている。記憶装置23に記憶されているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM、フラッシュメモリ等の可搬型記録媒体90から、可搬型ディスクドライブ26によりダウンロードされ、実行時には記憶装置23からメモリ22へ展開して実行される。もちろん、通信インタフェース27を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0034】
記憶装置23は、一次元コード又は二次元コードの特徴に関する設定項目、設定項目ごとの設定パラメータ、及び各設定項目がチューニング処理による設定パラメータの抽出対象であるか否かに関する情報を記憶する特徴パラメータ記憶部231を備えている。図2は、本発明の実施の形態1に係る画像処理装置2の特徴パラメータ記憶部231のデータ構成の例示図である。
【0035】
図2に示すように、一次元コード又は二次元コードの特徴に関する設定項目は、例えば二次元コードの場合には、少なくともシンボルを構成するセルの大きさ、二次元コードのコード種別、シンボルサイズ、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含む。
【0036】
「シンボルを構成するセルの大きさ」には、例えば二次元コードに固有のシンボルを構成するセルの縦の個数、横の個数及び1個当たりのセルの大きさを記憶する。すなわち、シンボルサイズを縦のセルの個数及び横のセルの個数で示し、1個当たりのセルの大きさを併せて記憶しておくことで、検出した二次元コードをより正確にデコードすることができる。本実施の形態1では、1個当たりのセルの大きさをPPC(Pixel Per Cell)として「ピクセル」単位で記憶しているが、実長に即して「インチ」単位で記憶しても良いし、「mm」単位で記憶しても良い。なお、バーコードのような一次元コードの場合、最も細いバー、スペース等の間隔に基づいて1モジュール当たりの大きさを同じように「ピクセル」単位で記憶しても良いし、実長に即して「インチ」単位で記憶しても良いし、「mm」単位で記憶しても良い。
【0037】
「コード種別」には、二次元コードのコード種別、例えばDM(データマトリクス)コード、QRコード等の種別を記憶する。「シンボルサイズ」には、例えば二次元コードのコード種別がDM(DataMatrix)コードである場合、10×10から144×144までのサイズを記憶する。なお、一次元コードのコード種別としては、JANコード、インターリーブド2オブ5、コード39等の種別を記憶する。
【0038】
「コントラスト」には、二次元コードの背景と前景との画素値の変動を、階調で表した数値を記憶する。「印字の色種別」には、黒シンボルからなる二次元コード又は白黒反転したシンボルからなる二次元コードの色種別を記憶する。「ミラー反転」には、二次元コードをガラス表面に印刷して反対側から撮像した二次元コードであるか否かを記憶する。
【0039】
「基準角度」には、正立した状態を0度とし、時計回りを正とした場合の、撮像された二次元コードの角度を記憶する。「撮像条件」としては、「露光時間」、「照明パターン」、「カメラゲイン」等を少なくとも含む撮像時の条件を記憶する。「ピッチ角度」には、二次元コードの印刷面に対するイメージセンサの面の相対角度を記憶する。「画像フィルタの種別」には、メディアンフィルタ等のフィルタリング処理を実行する場合に用いる画像フィルタの種別を記憶する。
【0040】
設定パラメータの入力を受け付けた場合には、設定項目ごとに特徴パラメータ記憶部231に記憶される。なお、図2の例のように、入力を受け付けていない場合には、設定パラメータは「指定なし」となる。
【0041】
すなわち、設定項目ごとに、チューニング処理による設定パラメータの抽出対象であるか否かに関する情報を記憶しておき、チューニング処理による設定パラメータの抽出対象である設定項目については、チューニング処理により抽出された設定パラメータが指定される。また、チューニング処理による設定パラメータの抽出対象ではない設定項目については、設定パラメータの入力を受け付ける必要がある。これにより、全ての設定項目についてチューニング処理により抽出する必要がなくなるので、チューニング処理の演算処理負荷を軽減することができる。また、チューニング処理を実行する時に、入力を受け付けた設定パラメータに限定してチューニング処理を実行するので、より安定したチューニング処理を実行することが可能となる。
【0042】
図1に戻って、通信インタフェース27は内部バス28に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置23は、画像処理装置2に内蔵される構成に限定されるものではなく、通信インタフェース27を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【0043】
ビデオインタフェース24は、内部バス28に接続されており、コンソール4の表示装置401に接続されることにより、所望の画像を表示する。入出力インタフェース25は、内部バス28に接続されており、コンソール4のキーボード402を介してデータの入力を受け付ける。なお、コンソール4は、表示装置401とキーボード402とが一体になっている構成に限定されるものではなく、別個に構成されていても良いし、液晶パネル等と一体になったタッチパネル等の入力情報を取得する装置全般を含む広い概念である。
【0044】
カメラ3は、CCD撮像素子を備えたCCDカメラ等であり、少なくとも一の二次元コード5を含む画像を撮像して取得する。画像処理装置2は、二次元コードの読み取り処理だけでなく、さまざまな画像処理を実行する。PLC6は、画像処理装置2を含む各種の装置からデータを受信し、受信した内容に応じて画像処理装置2及び/又は各種の装置へ指示を送信する装置である。
【0045】
図3は、本発明の実施の形態1に係るバーコードシンボル読取装置1の一構成例を示す機能ブロック図である。図3において、本実施の形態1に係るバーコードシンボル読取装置1は、カメラ3と、画像処理装置2と、コンソール4と記憶装置23とで構成される。以下、二次元コードのバーコードシンボルを読み取る場合について説明する。
【0046】
画像取得手段(取得手段)201は、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。取得した画像の画像データは記憶装置23に記憶される。
【0047】
画像表示手段(表示手段)202は、取得した画像をコンソール4の表示装置401に表示する。表示された画像全体を、二次元コードの位置と姿勢とを検出するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0048】
領域指定受付手段203は、少なくとも一の二次元コードを含む画像上で、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むような位置にて受け付ける。チューニング領域の指定を受け付けることにより、不要な領域を含めてチューニング処理を実行する必要がなく、チューニング処理の演算処理負荷を軽減することができる。
【0049】
また、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個に、チューニング領域の指定を受け付けることが好ましい。チューニング領域を二次元コードの近傍に限定することができ、二次元コードを検出するまでの時間を短縮することができるからである。
【0050】
図4は、チューニング領域の概念を説明するための模式図である。図4に示すように、カメラ3で撮像された画像を表示している画面上において、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域41の指定を受け付ける。図4の例では、サーチ領域41内に2つのDMコード42、43が存在するので、このままDMコードの検出処理を開始した場合、どちらのDMコードが検出されるか不明である。また、複数のDMコード42、43に対して検出処理が実行されることから、サーチ領域41が比較的広く、DMコードを検出するまでの時間を短縮することが困難となる。
【0051】
そこで、本実施の形態1では、シンボルサイズの小さいDMコード42を確実に検出することができるよう、DMコード42を囲むようにチューニング領域44の指定を受け付ける。これにより、読み取り対象をDMコード42に特定することができ、DMコード42の特徴に関する設定項目の設定パラメータを確実に抽出することができる。また、チューニング領域44がサーチ領域41よりも狭いことから、DMコード42を検出するまでの時間を短縮することもできる。
【0052】
さらに、例えばチューニング領域44として回転可能な矩形領域の指定を受け付けることができる場合、二次元コードに固有のシンボルの傾斜角度に合わせてチューニング領域44の指定を受け付けることができるので、シンボルの傾斜角度の検出処理において、検出角度は指定を受け付けた回転可能な矩形領域の回転角度に近いことが期待できるので検出角度の探索範囲を狭めることができ、全体としてDMコード42を検出するまでの時間を短縮することができる。
【0053】
なお、チューニング領域44が矩形領域である場合、例えば矩形領域の左上の座標値及び右下の座標値の指定を受け付ける。また、チューニング領域44が回転可能な矩形領域である場合、例えば矩形領域が正立している状態(基準角度が0度の状態)での幅、高さ、矩形領域の中心座標及び回転角度の指定を受け付ける。
【0054】
さらに、チューニング領域44として指定を受け付ける領域の形状は矩形に限定されるものではなく、円形、楕円形等、二次元コードに固有のシンボルを囲むことができる形状であれば特に限定されるものではない。また、複数の形状を用いることができ、チューニング領域44の指定を受け付ける場合に、どの形状を用いて指定を受け付けるかの選択を受け付けるようにしても良い。
【0055】
また、チューニング領域44が適切に指定されず、例えばチューニング領域44内に読み取り対象となる二次元コードに固有のシンボルが一部しか含まれない位置にてチューニング領域44の指定を受け付けた場合、二次元コードのコード種別を正しく抽出することができない。そこで、チューニング領域の指定を受け付けた時点で、二次元コードに固有のシンボルを検出することができるか否かを判断することが好ましい。
【0056】
図5は、本発明の実施の形態1に係るバーコードシンボル読取装置1の領域指定受付手段203の機能ブロック図である。図5において、シンボル判断手段501は、二次元コードに固有のシンボルを検出することができるか否かを判断する。
【0057】
例えば二次元コードがQRコードである場合、二次元コードの四隅のうち三か所にある矩形シンボルを検出することが必要となる。指定を受け付けたチューニング領域44が上下方向又は左右方向にシフトしている場合、矩形シンボルの一部を検出することができず、設定パラメータとして「コード種別」がQRコードであると抽出することができない。
【0058】
領域再指定受付手段502は、シンボル判断手段501にて二次元コードに固有のシンボルを検出することができないと判断した場合、再度チューニング領域44の指定を受け付ける。これにより、チューニング領域44に一の二次元コードを確実に含ませることができる、すなわちチューニング処理の対象となる一の二次元コードが確実にチューニング領域44内に存在することを担保することができる。
【0059】
図3に戻って、設定パラメータ入力受付手段204は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0060】
図6は、本発明の実施の形態1に係るバーコードシンボル読取装置1の設定パラメータ受付画面の例示図である。まず、チューニング処理の対象となる画像を、カメラ3で撮像した「入力画像」にするか、記憶装置23に記憶してある「登録画像」にするかの指定を、対象画像設定領域61にて受け付ける。図6の例では、「登録画像」の指定を受け付けている。
【0061】
次に、上述したようにチューニング領域44の指定を受け付ける。そして、設定パラメータ指定領域62にて、必要な設定項目について設定パラメータの入力を受け付ける。図6の例では、設定パラメータ指定領域62の設定項目ごとに、チューニング処理による設定パラメータの抽出対象であるか否かに関する情報の入力を受け付けるチェックボックスを設けている。
【0062】
チェックボックスにチェックが入力されている設定項目については、チューニング処理により自動的に設定パラメータが指定される。チェックが入力されていない設定項目については、設定パラメータの入力を受け付ける。図6の例では、設定項目「ミラー反転」のみチェックが入力されていない。したがって、設定パラメータとして「反転なし」を入力している。他の設定項目については、チューニング処理前は空欄であり「自動チューニング」ボタン63の選択を受け付けた場合、チューニング処理が実行され、抽出された設定項目ごとの設定パラメータが指定される。
【0063】
このように、設定項目が設定パラメータの抽出対象であるか否かに関する情報の入力を受け付けることにより、設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータに限定してチューニング処理を実行することができる。したがって、チューニング処理の演算処理負荷を軽減することができ、より安定したチューニング処理を実行することが可能になる。
【0064】
なお、設定パラメータ入力受付手段204は、設定パラメータとして、設定パラメータの指定がない旨を示す「指定なし」の入力を受け付けることが好ましい。例えば設定項目「コード種別」の設定パラメータとして「指定なし」の入力を受け付けることができる場合、さまざまな種別の二次元コードを検出することができ、二次元コードの種別が未知である場合に効果的である。
【0065】
図7は、設定項目「コード種別」の設定パラメータが「指定なし」の場合を示す画面例示図である。コード種別設定領域71にて、DMコード、QRコード等ではなく、「指定なし」の入力を受け付けている。この場合、チューニング領域44内の二次元コードのコード種別がチューニング処理により抽出されるまで、その他の設定項目の設定パラメータの入力を受け付ける設定パラメータ指定領域72には、その他の設定項目が表示されない。もちろん、設定項目「コード種別」には、チューニング処理による設定パラメータの抽出対象であるか否かに関する情報の入力を受け付けるチェックボックスを設けてあり、チェックボックスにチェックが入力されている。
【0066】
図7の状態で「自動チューニング」ボタン73の選択を受け付けた場合、チューニング処理が実行され、まず二次元コードのコード種別が抽出される。コード種別を抽出する方法は特に限定されるものではなく、各二次元コードに固有のシンボルについてパターンマッチングして抽出しても良い。図8は、チューニング処理により、二次元コードのコード種別がDMコードである旨が抽出された場合を示す画面例示図である。
【0067】
図8に示すように、コード種別設定領域71の設定項目「コード種別」には、抽出した設定パラメータ「DataMatrix」が指定されており、設定パラメータ指定領域72には、「コード種別」がDMコードである場合に設定パラメータの入力を受け付ける設定項目が表示されている。この時点で、各設定項目にはチューニング処理の結果が指定されている。この状態で、図6と同様にチェックボックスや設定項目の内容を変更して「自動チューニング」ボタン73の選択を受け付けた場合、変更した内容に従ってチューニング処理が実行され、変更した内容に従って抽出された設定項目ごとの設定パラメータが指定される。
【0068】
なお、チューニング領域44は、サーチ領域41とは表示が異なることが好ましい。例えばチューニング領域44を示す枠の色とサーチ領域41を示す枠の色とを異なる色にする、チューニング領域44を示す枠の線種とサーチ領域41を示す枠の線種とを異なる線種(実線と破線、太線と細線等)にする等、視覚的に容易に区別することができるようにすることで、読み取り対象となる二次元コードを確実に特定することができる。
【0069】
図3に戻って、二次元コード検出手段(検出手段)205は、領域指定受付手段203にて指定を受け付けたチューニング領域内で二次元コードを検出する。従来は、二次元コードを検出(サーチ)するためのサーチ領域内で二次元コードを検出していた。本実施の形態1では、サーチ領域とは別個に指定を受け付けたチューニング領域にて二次元コードに固有のシンボルを検出することにより、チューニング領域内の二次元コードを検出する。
【0070】
デコード判断手段(判断手段)206は、検出した二次元コードを正常にデコードすることができるか否かを判断する。正常にデコードすることができるか否かを判断する方法は、特に限定されるものではない。例えば二次元コード自体を検出することができない場合、明らかに正常にデコードすることができないと判断することができる。
【0071】
また、一の二次元コードに固有のシンボルが存在すると推定した領域を囲むようにチューニング領域の指定を受け付け、二次元コード自体は検出することができたものの、白黒パターンに誤りが含まれている場合も、正常にデコードすることができないと判断することができる。通常、二次元コードに固有のシンボルには誤り検出機能又は誤り検出訂正機能が付与されている。誤り検出機能しか付与されていない場合、誤りを検出したときに正常にデコードすることができないと判断することができる。一方、誤り検出訂正機能が付与されている場合、誤りを検出して、正常に誤り訂正をすることができなかったときに正常にデコードすることができないと判断することができる。
【0072】
正常にデコードすることができると判断した場合、設定パラメータ抽出手段(抽出手段)207は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する。抽出した設定パラメータは、記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0073】
正常にデコードすることができないと判断した場合、二次元コードの読み取りに失敗した旨を示す情報(メッセージ等)をコンソール4の表示装置401に表示することが好ましい。カメラ3との相対位置を変更して二次元コードを撮像しなおす、チューニング領域44の指定を改めて受け付ける等、再度試行することができるからである。
【0074】
図9は、本発明の実施の形態1に係る画像処理装置2の主制御部21の二次元コード読み取り処理の手順を示すフローチャートである。画像処理装置2の主制御部21は、カメラ3で撮像した、少なくとも一の二次元コードを含む画像を、カメラ3で撮像することにより取得する(ステップS901)。画像を取得する方法は、カメラ3による撮像に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置23に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース27を介して読み出すことで取得しても良い。取得した画像の画像データは記憶装置23に記憶される。
【0075】
主制御部21は、取得した画像をコンソール4の表示装置401に表示する(ステップS902)。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0076】
主制御部21は、少なくとも一の二次元コードを含む画像上で、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個に、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むように受け付ける(ステップS903)。主制御部21は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける(ステップS904)。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0077】
主制御部21は、指定を受け付けたチューニング領域内で二次元コードを検出する(ステップS905)。主制御部21は、二次元コードを検出することができたか否かを判断する(ステップS906)。
【0078】
主制御部21が、二次元コードを検出することができたと判断した場合(ステップS906:YES)、主制御部21は、検出した二次元コードを正常にデコードすることができるか否かを判断する(ステップS907)。主制御部21が、正常にデコードすることができると判断した場合(ステップS907:YES)、主制御部21は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する(ステップS908)。抽出した設定パラメータは、記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0079】
主制御部21が、二次元コードを検出することができなかったと判断した場合(ステップS906:NO)、又は正常にデコードすることができないと判断した場合(ステップS907:NO)、主制御部21は、チューニング処理に失敗した旨を示すメッセージをコンソール4の表示装置401に表示する(ステップS909)。
【0080】
以上のように本実施の形態1によれば、一の二次元コードを囲むようにチューニング領域の指定を受け付けることにより、二次元コードを検出するまでの時間を短縮することができ、チューニング領域に一の二次元コードを含ませることにより、チューニング処理の対象となる二次元コードを確実に特定することが可能となる。また、サーチ領域とは別個にチューニング領域の指定を受け付けることにより、二次元コードを検出するまでの時間を短縮することができる。
【0081】
なお、二次元コードに固有のシンボルを検出する処理の処理速度を早めるために、カメラ3で撮像した画像を縮小した画像を用いてシンボルを検出しても良い。ただし、縮小した画像(縮小画像)の解像度は低くなるので、二次元コードに固有のファインダーパターンを検出するためには画像を縮小する比率に限界が生じる。
【0082】
通常、チューニング領域は、一の二次元コードを囲み、余白領域が可能な限り少なくなるように指定する。したがって、例えばDMコードの場合はシンボルサイズ、QRコードの場合はバージョンが既知の場合、指定を受け付けたチューニング領域の大きさとの比率から最大の縮小度を算出することができる。
【0083】
そこで、本実施の形態1では、チューニング領域の大きさに基づいて二次元コードに固有のファインダーパターンを検出することが可能な最小の大きさまでチューニング領域内の画像を縮小する比率(最大の縮小度)を算出し、算出した比率に応じて縮小した縮小画像を用いて二次元コードを検出する。二次元コードに固有のファインダーパターンを検出することが可能な最小の大きさは、二次元コードのセルの大きさ(あるいはPPC。一次元コードである場合には、最も細いバー又はスペース等の間隔)に依存する。
【0084】
例えばDMコードの場合はシンボルサイズ、QRコードの場合はバージョンが既知の場合、指定を受け付けたチューニング領域の大きさとの比率からセルの大きさを推定することができるので、チューニング領域をどこまで縮小することができるか、最大の縮小度を推定することができる。また、QRコードのバージョンが不明である場合等には、最小のバージョンであると仮定することにより、最大の縮小度を推定することができる。
【0085】
推定した最大の縮小度に基づいてチューニング領域内の画像、すなわち二次元コードの画像を縮小し、縮小した画像から二次元コードを検出する。これにより、二次元コードに固有のファインダーパターンの検出に縮小画像を用いることができるので、二次元コード検出処理の演算処理負荷を大きく軽減することができる。
【0086】
また、最大の縮小度で縮小した縮小画像から段階的な縮小画像を準備しておき、まず最大の縮小度で縮小した縮小画像を用いてシンボルの検出処理を実行する。正常に検出することができた場合は、引き続きデコード処理を実行する。デコード処理が正常に終了した場合は、縮小画像に対するシンボルの検出処理及びデコード処理の演算処理負荷は大きく軽減されているので、処理時間も大きく短縮することができる。
【0087】
また、デコード処理が異常終了した場合、順次縮小度が小さい縮小画像を用いてシンボルの検出処理及びデコード処理を同様に実行することで、場合によっては、縮小前の画像を用いたシンボルの検出処理及びデコード処理の処理時間よりも処理時間が短くなる場合も生じる。これは、縮小画像に対するシンボルの検出処理及びデコード処理の演算処理負荷が大きく軽減されるからである。
【0088】
(実施の形態2)
図10は、本発明の実施の形態2に係るバーコードシンボル読取装置1の構成を模式的に示すブロック図である。図10に示すように本実施の形態2に係るバーコードシンボル読取装置1は、画像処理装置2、カメラ3、PLC6、PC7で構成されている。
【0089】
画像処理装置2、カメラ3の構成は実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。
【0090】
PC7は、少なくともCPU(中央演算装置)71、メモリ72、記憶装置73、ビデオインタフェース74、入出力インタフェース75、可搬型ディスクドライブ76、通信インタフェース77及び上述したハードウェアを接続する内部バス78で構成されている。CPU71は、内部バス78を介してPC7の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置73に記憶されているコンピュータプログラム101に従って、種々のソフトウェア的機能を実行する。メモリ72は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム101の実行時にロードモジュールが展開され、コンピュータプログラム101の実行時に発生する一時的なデータ等を記憶する。
【0091】
記憶装置73は、内蔵される固定型記憶装置(ハードディスク、フラッシュメモリ)、ROM等で構成されている。記憶装置73に記憶されているコンピュータプログラム101は、プログラム及びデータ等の情報を記録したDVD、CD−ROM、フラッシュメモリ等の可搬型記録媒体91から、可搬型ディスクドライブ76によりダウンロードされ、実行時には記憶装置73からメモリ72へ展開して実行される。もちろん、通信インタフェース77を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0092】
通信インタフェース77は内部バス78に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、画像処理装置2等とデータ送受信を行うことが可能となっている。
【0093】
ビデオインタフェース74は、内部バス78に接続されており、表示装置81に接続されることにより、所望の画像を表示する。入出力インタフェース75は、内部バス78に接続されており、キーボード、マウス等の入力装置82を介してデータの入力を受け付ける。
【0094】
図11は、本発明の実施の形態2に係るバーコードシンボル読取装置1の一構成例を示す機能ブロック図である。図11において、本実施の形態2に係るバーコードシンボル読取装置1は、カメラ3と、画像処理装置2と、PC7とから構成される。
【0095】
画像取得手段(取得手段)701は、少なくとも一の二次元コードを含む画像を、画像処理装置2から取得する。画像表示手段(表示手段)702は、取得した画像を表示装置81に表示する。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0096】
領域指定受付手段703は、少なくとも一の二次元コードを含む画像上で、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むような位置にて受け付ける。チューニング領域の指定を受け付けることにより、不要な領域を含めてチューニング処理を実行する必要がなく、チューニング処理の演算処理負荷を軽減することができる。
【0097】
また、サーチ領域とは別個にチューニング領域の指定を受け付けることが好ましい。チューニング領域を二次元コードの近傍に限定することができ、二次元コードを検出するまでの時間を短縮することができるからである。
【0098】
設定パラメータ入力受付手段704は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0099】
二次元コード検出手段(検出手段)705は、領域指定受付手段703にて指定を受け付けたチューニング領域内で二次元コードを検出する。従来は、二次元コードを検出(サーチ)するためのサーチ領域内で二次元コードを検出していた。本実施の形態2では、指定を受け付けたチューニング領域にて二次元コードに固有のシンボルを検出することにより、チューニング領域内の二次元コードを検出する。
【0100】
デコード判断手段(判断手段)706は、検出した二次元コードを正常にデコードすることができるか否かを判断する。正常にデコードすることができるか否かを判断する方法は、特に限定されるものではない。
【0101】
正常にデコードすることができると判断した場合、設定パラメータ抽出手段(抽出手段)707は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する。抽出した設定パラメータは、画像処理装置2の設定パラメータ取得手段208にて受信され、画像処理装置2の記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0102】
正常にデコードすることができないと判断した場合、二次元コードの読み取りに失敗した旨を示す情報(メッセージ等)を表示装置81に表示することが好ましい。カメラ3との相対位置を変更して二次元コードを撮像しなおす、チューニング領域の指定を改めて受け付ける等、再度試行することができるからである。
【0103】
図12は、本発明の実施の形態2に係るPC7のCPU71の二次元コード読み取り処理の手順を示すフローチャートである。PC7のCPU71は、画像処理装置2から少なくとも一の二次元コードを含む画像を取得する(ステップS1201)。
【0104】
CPU71は、取得した画像を表示装置81に表示する(ステップS1202)。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0105】
CPU71は、少なくとも一の二次元コードを含む画像上で、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個に、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むように受け付ける(ステップS1203)。CPU71は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける(ステップS1204)。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0106】
CPU71は、指定を受け付けたチューニング領域内で二次元コードを検出する(ステップS1205)。CPU71は、二次元コードを検出することができたか否かを判断する(ステップS1206)。
【0107】
CPU71が、二次元コードを検出することができたと判断した場合(ステップS1206:YES)、CPU71は、検出した二次元コードを正常にデコードすることができるか否かを判断する(ステップS1207)。CPU71が、正常にデコードすることができると判断した場合(ステップS1207:YES)、CPU71は、入力を受け付けた設定パラメータを使用して、検出した二次元コードの、抽出対象である設定項目の設定パラメータを抽出する(ステップS1208)。CPU71は、抽出した設定パラメータを画像処理装置2へ送信し(ステップS1209)、送信された設定パラメータは、画像処理装置2の記憶装置23の特徴パラメータ記憶部231に記憶される。これにより、二次元コードの内容を正しく読み取ることができる。
【0108】
CPU71が、二次元コードを検出することができなかったと判断した場合(ステップS1206:NO)、又は正常にデコードすることができないと判断した場合(ステップS1207:NO)、CPU71は、チューニング処理に失敗した旨を示すメッセージを表示装置81に表示する(ステップS1210)。
【0109】
以上のように本実施の形態2によれば、一の二次元コードを囲むようにチューニング領域の指定を受け付けることにより、二次元コードを検出するまでの時間を短縮することができ、チューニング領域に一の二次元コードを含ませることにより、チューニング処理の対象となる二次元コードを確実に特定することが可能となる。また、PC7が二次元コードの読み取り処理機能を有することから、画像処理装置2と接続されていない場合であっても、独立してチューニング領域の指定を受け付けることができ、設定パラメータの入力を受け付けることができる。
【0110】
なお、チューニング処理機能は、画像処理装置2が有していても良い。図13は、本発明の実施の形態2に係るバーコードシンボル読取装置1の、チューニング処理を画像処理装置2で実行する場合の、一構成例を示す機能ブロック図である。
【0111】
画像取得手段(取得手段)701は、少なくとも一の二次元コードを含む画像を、画像処理装置2から取得する。画像表示手段(表示手段)702は、取得した画像を表示装置81に表示する。表示された画像全体を、二次元コードの位置と姿勢とを検出(サーチ)するためのサーチ領域としても良いし、図示しないサーチ領域指定受付手段にてサーチ領域の指定を受け付けても良い。
【0112】
領域指定受付手段703は、少なくとも一の二次元コードを含む画像上で、二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の二次元コードを囲むような位置にて受け付ける。チューニング領域の指定を受け付けることにより、不要な領域を含めてチューニング処理を実行する必要がなく、チューニング処理の演算処理負荷を軽減することができる。
【0113】
また、二次元コードの位置と姿勢とを検出するためのサーチ領域とは別個にチューニング領域の指定を受け付けることが好ましい。チューニング領域を二次元コードの近傍に限定することができ、二次元コードを検出するまでの時間を短縮することができるからである。
【0114】
設定パラメータ入力受付手段704は、二次元コードの特徴に関する設定項目の設定パラメータの入力を部分的に受け付ける。二次元コードの特徴に関する設定項目の設定パラメータのうち、既知の設定パラメータのみの入力を受け付けることにより、入力を受け付けた設定パラメータによっては読み取り対象となる二次元コードのコード種別が何であるのか判断することができ、あるいは未知の設定パラメータの抽出を容易にすることができる。
【0115】
設定情報送信手段708は、領域指定受付手段703で指定を受け付けたチューニング領域に関する情報、設定パラメータ入力受付手段704で入力を受け付けた情報を含む設定情報を、画像処理装置2へ送信する。
【0116】
設定情報を受信した画像処理装置2の二次元コード検出手段(検出手段)205、デコード判断手段(判断手段)206、及び設定パラメータ抽出手段(抽出手段)207は、実施の形態1の図9のステップS905乃至ステップS909の処理を実行する。
【0117】
このようにすることで、演算処理負荷が大きいチューニング処理をPC7にて実行する必要がないことから、PC7にて稼働するコンピュータプログラム101が簡易で済み、コンピュータプログラム101自体を安価に提供することができる。
【0118】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば「自動チューニング」ボタンの選択を受け付けた時点で二次元コードの検出処理、デコード処理を開始しているが、チューニング領域の指定を受け付けた時点で開始しても良いし、設定パラメータの入力を受け付ける都度、開始しても良い。
【符号の説明】
【0119】
1 バーコードシンボル読取装置
2 画像処理装置
3 カメラ(撮像手段)
4 コンソール
5 二次元コード
6 PLC
7 PC
21 主制御部
22、72 メモリ
23、73 記憶装置
24、74 ビデオインタフェース
25、75 入出力インタフェース
26、76 可搬型ディスクドライブ
27、77 通信インタフェース
28、78 内部バス
71 CPU
90、91 可搬型記録媒体
100、101 コンピュータプログラム
【特許請求の範囲】
【請求項1】
読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、
取得した画像を表示する表示手段と、
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段と、
前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段と、
指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段と、
検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段と、
該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段と
を備えることを特徴とするバーコードシンボル読取装置。
【請求項2】
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの位置と姿勢とを検出するサーチ領域の指定を受け付けるサーチ領域指定受付手段を備え、
前記領域指定受付手段は、前記サーチ領域とは別個に、前記チューニング領域の指定を受け付けることを特徴とする請求項1記載のバーコードシンボル読取装置。
【請求項3】
前記領域指定受付手段は、
指定を受け付けたチューニング領域において、前記一次元コード又は前記二次元コードに固有のシンボルを検出することができるか否かを判断するシンボル判断手段を備え、
該シンボル判断手段で前記シンボルを検出することができないと判断した場合、再度前記チューニング領域の指定を受け付けるようにしてあることを特徴とする請求項1又は2記載のバーコードシンボル読取装置。
【請求項4】
前記設定項目は、少なくとも前記二次元コードに固有のシンボルを構成するセルの大きさ、二次元コードのコード種別、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含むことを特徴とする請求項1乃至3のいずれか一項に記載のバーコードシンボル読取装置。
【請求項5】
前記設定パラメータ入力受付手段は、各設定項目が前記抽出手段での設定パラメータの抽出対象であるか否かに関する情報の入力も受け付けるようにしてあることを特徴とする請求項1乃至4のいずれか一項に記載のバーコードシンボル読取装置。
【請求項6】
前記抽出手段は、前記設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータを使用し、前記設定項目が設定パラメータの抽出対象である場合、設定パラメータを抽出するようにしてあることを特徴とする請求項5記載のバーコードシンボル読取装置。
【請求項7】
前記設定パラメータ入力受付手段は、
前記設定パラメータとして、前記設定パラメータの指定がない旨を示す入力を受け付けることを特徴とする請求項1乃至6のいずれか一項に記載のバーコードシンボル読取装置。
【請求項8】
前記チューニング領域の大きさに基づいて、前記一次元コード又は前記二次元コードを検出することが可能な最小の大きさまで前記チューニング領域内の画像を縮小する比率を算出し、算出した比率に応じて縮小した縮小画像を用いて前記一次元コード又は前記二次元コードを検出するようにしてあることを特徴とする請求項1乃至7のいずれか一項に記載のバーコードシンボル読取装置。
【請求項9】
読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なバーコードシンボル読取方法において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、
取得した画像を表示するステップと、
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付けるステップと、
前記設定パラメータの入力を部分的に受け付けるステップと、
指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出するステップと、
検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断するステップと、
正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出するステップと
を含むことを特徴とするバーコードシンボル読取方法。
【請求項10】
読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なコンピュータプログラムにおいて、
前記バーコードシンボル読取装置を、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、
取得した画像を表示する表示手段、
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段、
前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段、
指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段、
検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段、及び
該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段
として機能させることを特徴とするコンピュータプログラム。
【請求項1】
読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段と、
取得した画像を表示する表示手段と、
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段と、
前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段と、
指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段と、
検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段と、
該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段と
を備えることを特徴とするバーコードシンボル読取装置。
【請求項2】
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの位置と姿勢とを検出するサーチ領域の指定を受け付けるサーチ領域指定受付手段を備え、
前記領域指定受付手段は、前記サーチ領域とは別個に、前記チューニング領域の指定を受け付けることを特徴とする請求項1記載のバーコードシンボル読取装置。
【請求項3】
前記領域指定受付手段は、
指定を受け付けたチューニング領域において、前記一次元コード又は前記二次元コードに固有のシンボルを検出することができるか否かを判断するシンボル判断手段を備え、
該シンボル判断手段で前記シンボルを検出することができないと判断した場合、再度前記チューニング領域の指定を受け付けるようにしてあることを特徴とする請求項1又は2記載のバーコードシンボル読取装置。
【請求項4】
前記設定項目は、少なくとも前記二次元コードに固有のシンボルを構成するセルの大きさ、二次元コードのコード種別、コントラスト、印字の色種別、ミラー反転、基準角度、撮像条件、ピッチ角度、画像フィルタの種別のいずれかを含むことを特徴とする請求項1乃至3のいずれか一項に記載のバーコードシンボル読取装置。
【請求項5】
前記設定パラメータ入力受付手段は、各設定項目が前記抽出手段での設定パラメータの抽出対象であるか否かに関する情報の入力も受け付けるようにしてあることを特徴とする請求項1乃至4のいずれか一項に記載のバーコードシンボル読取装置。
【請求項6】
前記抽出手段は、前記設定項目が設定パラメータの抽出対象ではない場合、設定パラメータを更新することなく、入力を受け付けた設定パラメータを使用し、前記設定項目が設定パラメータの抽出対象である場合、設定パラメータを抽出するようにしてあることを特徴とする請求項5記載のバーコードシンボル読取装置。
【請求項7】
前記設定パラメータ入力受付手段は、
前記設定パラメータとして、前記設定パラメータの指定がない旨を示す入力を受け付けることを特徴とする請求項1乃至6のいずれか一項に記載のバーコードシンボル読取装置。
【請求項8】
前記チューニング領域の大きさに基づいて、前記一次元コード又は前記二次元コードを検出することが可能な最小の大きさまで前記チューニング領域内の画像を縮小する比率を算出し、算出した比率に応じて縮小した縮小画像を用いて前記一次元コード又は前記二次元コードを検出するようにしてあることを特徴とする請求項1乃至7のいずれか一項に記載のバーコードシンボル読取装置。
【請求項9】
読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なバーコードシンボル読取方法において、
少なくとも一の一次元コード又は二次元コードを含む画像を取得するステップと、
取得した画像を表示するステップと、
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付けるステップと、
前記設定パラメータの入力を部分的に受け付けるステップと、
指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出するステップと、
検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断するステップと、
正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出するステップと
を含むことを特徴とするバーコードシンボル読取方法。
【請求項10】
読み取り対象となる一次元コード又は二次元コードの特徴に関する特徴パラメータを画像から読み取り、一次元コード又は二次元コードを検出してデコードするバーコードシンボル読取装置で実行することが可能なコンピュータプログラムにおいて、
前記バーコードシンボル読取装置を、
少なくとも一の一次元コード又は二次元コードを含む画像を取得する取得手段、
取得した画像を表示する表示手段、
少なくとも一の一次元コード又は二次元コードを含む画像上で、前記一次元コード又は前記二次元コードの特徴に関する設定項目の設定パラメータを抽出するチューニング領域の指定を、一の一次元コード又は二次元コードを囲むように受け付ける領域指定受付手段、
前記設定パラメータの入力を部分的に受け付ける設定パラメータ入力受付手段、
指定を受け付けたチューニング領域内で前記一次元コード又は前記二次元コードを検出する検出手段、
検出した一次元コード又は二次元コードを正常にデコードすることができるか否かを判断する判断手段、及び
該判断手段が正常にデコードすることができると判断した場合、前記一次元コード又は前記二次元コードの設定パラメータを抽出する抽出手段
として機能させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図5】
【図9】
【図10】
【図11】
【図12】
【図13】
【図4】
【図6】
【図7】
【図8】
【図2】
【図3】
【図5】
【図9】
【図10】
【図11】
【図12】
【図13】
【図4】
【図6】
【図7】
【図8】
【公開番号】特開2012−18494(P2012−18494A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−154407(P2010−154407)
【出願日】平成22年7月7日(2010.7.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願日】平成22年7月7日(2010.7.7)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】
[ Back to top ]