説明

画像撮像装置及びプログラム

【課題】シンボルをより好適に読み取ることが可能なシンボル読取装置を提供する。
【解決手段】シンボル読取装置は、シンボルを撮像するカメラ14と、カメラ14による撮像画像を表示する表示装置16と、枠を表示装置16に表示し、撮像画像のうち枠内の範囲をデコード範囲として設定してデコード範囲からシンボルを読み取り、読み取ったシンボルの平均セルサイズが所定のセルサイズより大きい場合、枠内の範囲を小さくする処理を行うCPU11と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シンボル読取装置及びプログラムに関する。
【背景技術】
【0002】
二次元バーコード等のシンボルを撮像して当該シンボルに含まれる文字列等の情報を読み取るシンボル読取装置が知られている。シンボル読取装置は、カメラ等の撮像装置でシンボルを撮像し、撮像画像をデコードエンジン等の読取装置が解析することで、シンボルの内容を読み取る。
【0003】
シンボル読取装置の使用者は、シンボルを撮像するためカメラの撮像範囲内にシンボルを収められるようカメラ又はシンボル読取装置のカメラ部分の位置や角度を調節する必要がある。シンボルの撮像操作を助けるため、カメラによる撮像範囲をプレビュー表示する表示装置を備えるシンボル読取装置がある。さらに、デコードエンジンによるシンボルの解析範囲よりも広い範囲をプレビュー表示すると共に、当該プレビュー表示内においてデコードエンジンによるシンボルの解析範囲となる範囲を示す枠を表示して当該枠内にシンボルを収めて撮像するよう促すシンボル読取装置が知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−287808号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1のシンボル読取装置では、シンボルを好適に読み取れることができない場合がある。
プレビュー表示内に表示される枠及び枠内の範囲は、固定のサイズである。一方、シンボルの面積はシンボル毎に異なる。そして、シンボル読取装置の使用者は、枠いっぱいにシンボルを撮像しようとすることが多い。このため、例えば枠内の範囲の大きさに対して小さいシンボルを撮像した場合に、枠いっぱいにシンボルを拡大するためにカメラをシンボルに近づけすぎてしまい、その結果シンボルに対して焦点が合わない状態で撮像を行ってしまうことがある。焦点が合わないシンボルの撮像画像にはぼやけが生じ、デコードエンジンによる読取が行えない場合がある。
【0006】
一方、枠内の範囲の大きさに対してシンボルの面積が大きい場合、使用者は枠内にシンボルを収めようとする結果、シンボルから大きく離れた位置からの撮像を行うことが多い。その結果、撮像されたシンボルはシンボルの面積に対して非常に小さくなり、シンボルの撮像画像につぶれが生じてデコードエンジンによる読取が行えないことがある。この場合もシンボル読取装置によるシンボルの読取は好適に行うことができない。
【0007】
本発明の課題は、シンボルをより好適に読み取ることが可能なシンボル読取装置を提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するため、請求項1記載の発明によるシンボル読取装置は、被写体を撮像する撮像手段と、前記撮像手段による撮像画像を表示する表示手段と、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第1の表示制御手段と、を備えることを特徴とする。
【0009】
請求項2記載の発明によるシンボル読取装置は、被写体を撮像する撮像手段と、前記撮像手段による撮像画像を表示する表示手段と、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第2の表示制御手段と、を備えることを特徴とする。
【0010】
請求項3記載の発明は、請求項1又は2に記載のシンボル読取装置において、前記枠内に収まるよう撮像されたシンボルのセル幅が前記所定のセル幅以下となる前記枠を表示させる第3の表示制御手段を備えることを特徴とする。
【0011】
請求項4記載の発明は、請求項1から3のいずれか一項に記載のシンボル読取装置において、前記撮像画像にぶれが生じていることを検出するぶれ検出手段と、前記撮像画像にぶれが生じている場合、ぶれが生じていることを示す表示を通知するぶれ通知手段と、を備えることを特徴とする。
【0012】
請求項5記載の発明は、請求項1から4のいずれか一項に記載のシンボル読取装置において、前記シンボルの四辺の対向する二辺の長さの比率が所定の比率より大きい場合に、前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定する斜め撮像判定手段と、前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定された場合、斜め方向からの撮像が行われていることを通知する斜め撮像通知手段を備えることを特徴とする。
【0013】
請求項6記載のプログラムは、コンピュータを、撮像手段による被写体の撮像を制御する撮像制御手段、前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第1の表示制御手段、として機能させることを特徴とする。
【0014】
請求項7記載のプログラムは、コンピュータを、撮像手段による被写体の撮像を制御する撮像制御手段、前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第2の表示制御手段、として機能させることを特徴とする。
【発明の効果】
【0015】
本発明によれば、シンボルをより好適に読み取ることが可能なシンボル読取装置を提供できる。
【図面の簡単な説明】
【0016】
【図1】本発明の第1の実施形態によるシンボル読取装置の主要構成を示す。
【図2】プレビュー画面の一例を示す。
【図3】シンボル検出処理の概念図を示す。
【図4】撮像されたシンボルの一例を示す。図4(a)はぼけや滲みがない又はほとんど生じていないシンボル、図4(b)はぼけや滲みが生じているシンボルである。
【図5】輝度検出処理によって検出された輝度分布の一例を示す。図5(a)は図4(a)に示すシンボルの一部分の輝度分布、図5(b)は図4(b)に示すシンボルの一部分の輝度分布である。
【図6】枠の縮小前後のプレビュー画面の一例を示す。図6(a)は枠の縮小前、図6(b)は枠の縮小後である。
【図7】シンボル読取装置の動作を示すフローチャートである。
【図8】図7のステップS10に示す二値化処理の動作を示すフローチャートである。
【図9】図7のステップS16に示すデコード範囲枠決定処理の動作を示すフローチャートである。
【図10】本発明の第2の実施形態によるシンボル読取装置の主要構成を示す。
【図11】ぶれが生じていることを示す表示を含む画面の一例を示す。
【図12】斜め方向から撮像が行われていることを示す表示を含む画面の一例を示す。
【図13】枠の拡大前後のプレビュー画面の一例を示す。図13(a)は枠の拡大前、図13(b)は枠の拡大後である。
【図14】シンボル読取装置2の動作を示すフローチャートである。
【図15】図14のステップS16に示すデコード範囲枠決定処理の動作を示すフローチャートである。
【図16】図15のステップS54に示す斜めスキャン検出処理の動作を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図を参照して本発明の実施形態について詳細に説明するが、この発明は、この実施の形態に限定されない。また、この発明の実施の形態は発明の最も好ましい形態を示すものであり、発明の用途はこれに限定されない。
【0018】
図1に、本発明の第1の実施形態によるシンボル読取装置1の主要構成を示す。
シンボル読取装置1は、シンボル読取装置1の動作制御のための各種の処理を行うCPU11と、各種のプログラム及びデータ等を記憶するROM12と、一時的に生じるデータを格納するRAM13と、被写体を撮像する撮像装置として機能するカメラ14と、カメラ14による撮像操作入力その他の入力を可能とする入力装置15と、カメラ14による撮像画像の表示、シンボルSを収める範囲をガイダンスする枠21の表示及びその他の各種情報を表示する表示装置16と、シンボル読取装置1の各部に電力を供給する電源装置17と、を備える。
【0019】
CPU11は、ROM12から処理内容に応じたプログラム及びデータ等を読み込んで処理を行う所謂ソフトウェア処理によってシンボル読取装置1の各部の動作制御を行う。当該処理において一時的に生じるデータはRAM13に格納され、必要に応じて呼び出される。以下、CPU11が行う処理はソフトウェア処理による。
【0020】
ROM12は、少なくともシンボル解析プログラム12a、枠表示プログラム12b、デコード範囲枠決定プログラム12c及びデコード範囲データ12dを記憶する。これらのプログラム及びデータによるCPU11の動作制御については後述する。
【0021】
カメラ14は、少なくともセンサー14a、レンズ14b及び制御部14cを有する。センサー14bはイメージセンサであり、例えばCCDやCMOS等を用いたものが挙げられる。センサー14aはレンズ14bを介して被写体を撮像する。制御部14cはセンサー14aによる撮像に関る動作制御を行う。カメラ14による撮像画像は縦横に整列された複数の画素(ピクセル)を有し、RAM13にデータとして保存される。
【0022】
入力装置15は少なくともトリガキー15aを有する。トリガキー15aはシンボル読取装置1の使用者による手動でのON/OFFの切替を可能とするスイッチであり、例えば押圧操作によるボタン等である。トリガキー15aがONのとき、制御部14cはセンサー14aを動作させてカメラ14による被写体の撮像を行わせる。このとき、カメラ14はトリガキー15aがONとなっている間、所定の秒間フレームで撮像を継続する。
【0023】
表示装置16は、カメラ14による撮像画像を表示すると共に、表示装置16はシンボルSを収める範囲をガイダンスする枠21の表示を行う。以下、カメラ14による撮像画像の表示をプレビューと称する。
【0024】
図2にプレビュー画面の一例を示す。
図2に示すように、プレビュー画面には枠21が表示される。図2に示すプレビュー画面では、被写体に含まれるシンボルSが枠21で囲われた範囲内に収まっている。
【0025】
枠21の内側は、デコード範囲である。CPU11は、デコード範囲に収まるよう撮像されたシンボルSの解析(デコード)を行い、シンボルSの内容即ちシンボルSが含む文字列情報を読み取る。CPU11は、シンボル解析プログラム12aを読み込んで処理することにより、シンボルSの解析(デコード)を行う。即ち、デコード範囲はシンボル読取領域であり、シンボル解析プログラム12aはCPU11を読取手段として機能させる。
【0026】
枠21は、デコード範囲の外周四隅を示す枠として表示される。枠21の表示は、CPU11が枠表示プログラム12bを読み込んで処理することによって表示装置16に表示される。即ち、枠表示プログラム12bはCPU11を枠表示手段として機能させる。
【0027】
枠21の表示位置即ちデコード範囲の位置は、デコード範囲データ12dにより決定される。デコード範囲データ12dは、プレビュー画面の左上始点座標(X1,Y1)と、右下終点座標(X2,Y2)とを含むデータであり、CPU11は当該始点座標と終点座標に基づき、(X1,Y1)、(X1,Y2)、(X2,Y1)、(X2,Y2)内の範囲をデコード範囲として設定する。プレビュー画面は複数のピクセルを有する撮像画像を表示する画面であり、始点座標(X1,Y1)及び終点座標(X2,Y2)はプレビュー画面内のある画素の位置と対応する。なお、図2以下の各図で示す画面において、横方向の幅をX方向の幅、縦方向の幅をY方向の幅とする。
デコード範囲データ12dの読み込みは、カメラ14による撮像前に行われる。
【0028】
次に、CPU11によるシンボルSの解析について説明する。シンボルSの解析は、シンボル検出処理、二値化処理、デコード処理を含む。以下、順を追って説明する。
【0029】
まず、シンボル検出について説明する。
図3に、シンボル検出処理の概念図を示す。
シンボル検出処理では、CPU11はシンボル読取領域内でエッジ検出を行う。エッジ検出によって検出されたエッジが四つの角を有し、各角が直線(図3に示す方形状の直線L)で結ばれて四つの角の内側を閉じた領域としていた場合に、閉じた領域内をシンボルSとして検出する。
【0030】
シンボルSの検出に成功した場合、検出したシンボルSに対して二値化処理を行う。シンボルSの検出に失敗した場合、再度撮像画像を得てシンボル検出処理を行う。
【0031】
シンボル検出処理におけるエッジ検出は既存の技術によるエッジ検出方法であるので、詳細は省略する。エッジ検出は、厳密なエッジ検出を必要とせず、撮像されたシンボルSにある程度(例えば予め設定された閾値以下)のぼけや滲み等が生じていたとしてもエッジを検出できるよう設定されることが望ましい。また、エッジで囲われた範囲が閉じた領域となっているか否かの判別についても、完全に閉じている必要はなく、直線にある程度(例えば予め設定された閾値以下)の欠落があっても構わないよう設定されることが望ましい。
【0032】
次に、二値化処理について説明する。二値化処理は、輝度検出処理、セルサイズ検出処理、平均セルサイズ算出処理、二値化成否判定処理を含む。以下、順を追って説明する。
【0033】
輝度検出処理は、撮像されたシンボルSを所定の数の連続したピクセル(単位ピクセル)で区切り、単位ピクセル間の輝度の明暗の差(輝度差)に基づき輝度の明るい部分を白セル、輝度の暗い部分を黒セル、白セルとも黒セルとも判別できない部分をグレーゾーンとして判別し、白セル、黒セル及びグレーゾーンの配列パターンを得る処理である。白セル、黒セル及びグレーゾーンの判別は、輝度差が所定の閾値より大きいか否かに基づく。
【0034】
図4に、撮像されたシンボルSの一例を示す。図4(a)はぼけや滲みがない又はほとんど生じていないシンボルS、図4(b)はぼけや滲みが生じているシンボルSである。
図5に、輝度検出処理によって検出された輝度分布の一例を示す。図5(a)は図4(a)に示すシンボルSの一部分の輝度分布、図5(b)は図4(b)に示すシンボルSの一部分の輝度分布である。
【0035】
レンズ14bとシンボルSとの間の距離が好適な状態で撮像が行われると、図4(a)に示すように、ぼけや滲みがない又はほとんど生じていないシンボルSの撮像画像が得られる。この場合、輝度検出処理によって得られる輝度分布は、図5(a)に示すように、輝度差が大きく現れる部分が多くなり、その結果、白セル、黒セルの判定を行える部分が多くなる。即ち、グレーゾーンの割合が小さくなる。
【0036】
一方、レンズ14bとシンボルSとの間の距離が不適切な状態で撮像が行われると、図4(b)に示すように、ぼけや滲みが生じたシンボルSの撮像画像が得られる。この場合、輝度検出処理によって得られる輝度分布は、図5(b)に示すように、輝度差が明確に現れず、グレーゾーンの割合が大きくなる。
【0037】
セルサイズ検出処理は、白セル又は黒セルとして判定された部分の連続するピクセル数(セルサイズ)を検出する処理である。各セルサイズはRAM13に格納される。
平均セルサイズ算出処理は、セルサイズ検出処理で検出された白セル及び黒セルのセルサイズの平均を算出する。平均セルサイズはRAM13に格納される。
【0038】
二値化成否判定処理は、シンボルSとして検出された全範囲に対するグレーゾーンの割合が所定の割合以下であるか否かに基づき、二値化処理の成否を判定する処理である。本実施形態では、グレーゾーンの割合が20%以下の場合に二値化成功、20%を上回った場合に二値化失敗と判定する。
二値化成功した場合、デコード処理を行う。二値化失敗した場合、トリガー15aがONである限り再度撮像画像を得てシンボルSの解析を行う。
【0039】
次に、デコード処理について説明する。
デコード処理は、所定のルールに基づいてシンボルSに含まれる白セル及び黒セルの配列パターンを解析し、文字列を読み出す処理である。
【0040】
デコード処理に成功した場合、当該シンボルSの読取は終了する。デコード処理に失敗した場合、トリガー15aがONである限り再度撮像画像を得てシンボルSの解析を行う。
【0041】
二値化失敗時又はデコード失敗時、CPU11は再度撮像画像を得る前にデコード枠範囲決定処理を行う。デコード枠範囲決定処理は、枠21内の範囲を縮小するよう枠21の表示位置を変更する処理である。
【0042】
図6に、枠21の縮小前後のプレビュー画面の一例を示す。図6(a)は枠21の縮小前、図6(b)は枠21の縮小後である。
二値化失敗又はデコード失敗の場合、例えば図4(b)及び図6(a)に示すように、シンボルSの撮像画像にぼけや滲みが生じていることが多い。このため、二値化処理においてグレーゾーンの割合が大きくなり二値化失敗となる。あるいは二値化成功しても白セル、黒セルの間に含まれるグレーゾーン部分によりデコード処理が妨げられてデコード処理が失敗する。
【0043】
シンボルSの撮像画像におけるぼけや滲みは、レンズ14bとシンボルSとの間の距離が不適切であることが原因で生じることが多い。特に、レンズ14bとシンボルSとの間の距離が近すぎる場合にぼけや滲みが生じやすい。レンズ14bとシンボルSとの間の距離が近すぎると、好適な二値化処理及びデコード処理を行える場合のシンボルSの撮像画像に比して大きなシンボルSの撮像画像が得られる。言い換えれば、シンボルSの撮像画像にぼけや滲みが生じる場合、シンボルSの撮像画像は必要以上に大きく撮像されている。そこで、シンボルSの撮像画像が必要以上に大きく撮像されている場合、デコード枠範囲決定処理により枠21を縮小し、枠内にシンボルSを収めて撮像しようとする使用者にシンボルSを好適な大きさで撮像するよう促す。
【0044】
デコード枠範囲決定処理は、CPU11がデコード範囲枠決定プログラム12cを読み込んで処理することにより行われる。以下、デコード枠範囲決定処理の詳細について説明する。
まず、CPU11は平均セルサイズの呼び出しを行う。平均セルサイズは、二値化処理の平均セルサイズ算出処理において算出された平均セルサイズである。次に、CPU11は平均セルサイズが所定のセルサイズ(例えば3ピクセル)より大きいか否か判定する。このとき、平均セルサイズが3ピクセルより大きい場合、CPU11は枠21の幅(枠幅)のピクセルサイズを縮小する。枠幅の縮小は、X方向及びY方向の両方について行われる。
【0045】
具体的には以下の式(1)により縮小後の枠幅を算出し、枠幅を縮小して表示装置16に再表示させる。

(1)… 現在の枠幅×3/平均セルサイズ

【0046】
(1)の式における現在の枠幅は、デコード枠範囲決定処理による枠幅の縮小が一回も行われていない場合、デコード範囲データのX1−X2間のピクセルサイズ及びY1−Y2間のピクセルサイズに基づく。デコード枠範囲決定処理による枠幅の縮小が一回以上行われた後は、前回の枠幅の縮小による枠幅に基づく。(1)の式で算出された枠幅は、RAM13に保存される。
【0047】
(1)の式で算出した枠幅を、デコード範囲データ12dに反映してもよい。その場合、ROM12を書き換え可能な記憶装置とするか、別途書き換え可能な記憶装置をシンボル読取装置1に設け、デコード範囲データ12dを書き換え可能な記憶装置に記憶させる等の措置を要する。
【0048】
平均セルサイズが3ピクセル以下である場合、枠幅を縮小する処理は行わず、デコード枠範囲決定処理を終了する。
【0049】
なお、枠幅の縮小の際に、前述の式(1)における現在の枠幅を、シンボル検出処理においてシンボルSとして検出された範囲のX方向及びY方向の幅としてもよい。この場合、枠幅は、シンボルSを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠21に収まるよう撮像されたシンボルSのセルサイズは、所定のセルサイズ(3ピクセル)以下となる。
【0050】
次に、シンボル読取装置1によるシンボルSの撮像から結果出力までの処理について、図7及至図9のフローチャートを用いて説明する。
図7は、シンボル読取装置1の動作を示すフローチャートである。
【0051】
使用者の操作によってトリガキー15aがONの状態となると(ステップS1)、CPU11はデコード範囲データ12dを読み込む(ステップS2)。その後、CPU11はカメラ14に被写体の撮像を行わせ(ステップS3)、撮像画像のデータをRAM13に保存し(ステップS4)、撮像画像のデータを表示装置16にプレビューとして表示させる(ステップS5)。
【0052】
CPU11は、枠21の表示位置を決定する(ステップS6)。シンボル読取装置1の起動直後の枠21の表示位置は、ステップS2で読み込まれたデコード範囲データに基づく。
その後、CPU11は表示装置16に表示されたプレビュー画面に枠21を表示させ、(ステップS7)。枠内の範囲即ちデコード範囲に対してシンボル検出処理を行う(ステップS8)。シンボル検出処理に失敗した場合(ステップS9:NO)、ステップS3に戻る。シンボル検出処理に成功した場合(ステップS9:YES)、CPU11は二値化処理を行う(ステップS10)。
【0053】
図8は、図7のステップS10に示す二値化処理の動作を示すフローチャートである。
二値化処理において、CPU11はシンボルSとして検出された画像を走査し(ステップS21)、単位ピクセル間の輝度差をチェックする(ステップS22)。輝度差が所定の閾値より大きい場合(ステップS23:YES)、CPU11は輝度の変化が暗部から明部へと向けて明るくなっているか否かを判定する(ステップS24)。輝度の変化が暗部から明部へと向けて明るくなっている場合(ステップS24:YES)、CPU11は白セルを検出する(ステップS25)。ステップS24において輝度の変化が暗部から明部へと向けて明るくなっていない場合(ステップS24:NO)、即ち輝度の変化が明部から暗部へと向けて暗くなっている場合、CPU11は黒セルを検出する(ステップS26)。ステップS25及びステップS26の後、CPU11は検出された白セル又は黒セルのセルサイズを検出する(ステップS27)。ステップS23において、輝度差が所定の閾値以下である場合(ステップS23:NO)、その部分はグレーゾーンとして判定される(ステップS28)。ステップS21〜S28の処理は、シンボルSとして検出された画像の全範囲の走査が完了するまで行われる(ステップS29:NO)。
【0054】
シンボルSとして検出された画像の全範囲の走査が完了すると(ステップS29:YES)、CPU11は平均セル幅を算出する(ステップS30)。その後、CPU11は、シンボルSとして検出された画像の全範囲に対してグレーゾーンの割合が20%以下であるかどうか判定し(ステップS31)、20%以下である場合(ステップS31:YES)、二値化成功と判定する。20%より大きい場合(ステップS31:NO)、二値化失敗と判定する。以上で二値化処理は終了する。
【0055】
二値化処理後、二値化に成功していた場合(ステップS11:YES)、CPU11はデコード処理を行う(ステップS12)。デコード処理に成功した場合(ステップS13:YES)、CPU11は得られた文字列を表示装置16に表示する等の結果出力を行い(ステップS14)、動作を終了する。
【0056】
二値化失敗の場合(ステップS11:NO)又はデコード処理に失敗した場合(ステップS13:NO)、CPU11はトリガキー15aがON状態であるか否かをチェックする(ステップS15)。トリガキー15aがOFFである場合(ステップS15:NO)、CPU11は所定のエラー処理を行い、動作を終了する。
【0057】
ステップS15においてトリガキー15aがONである場合(ステップS15:YES)、CPU11はデコード範囲枠決定処理を行う(ステップS16)。
【0058】
図9は、図7のステップS16に示すデコード範囲枠決定処理の動作を示すフローチャートである。
デコード範囲枠決定処理において、CPU11は、平均セルサイズの呼び出しを行い(ステップS41)。平均セルサイズが3ピクセルより大きいかどうか判定する(ステップS42)。平均セルサイズが3ピクセルより大きい場合(ステップS42:YES)、CPU11は現在の枠幅を呼び出し(ステップS43)、前述の(1)の式の算出結果により枠幅を縮小し(ステップS44)、デコード範囲枠決定処理を終了する。
ステップS42において、平均セルサイズが3ピクセル以下の場合(ステップS42:NO)、CPU11はデコード範囲枠決定処理を終了する。
【0059】
ステップS16のデコード範囲枠決定処理後、ステップS3の処理に戻る。その後行われる処理は前述と同様であるが、ステップS16のデコード範囲枠決定処理で枠幅を縮小する処理を行っていた場合、ステップS6における枠21の表示位置決定処理は縮小された枠幅に基づく。
【0060】
第1の実施形態によれば、平均セルサイズが所定のセルサイズより大きい場合、枠幅が縮小されるので、シンボルSが必要以上に大きくなりすぎる近距離での撮像を防止できる。即ち、枠幅が小さな枠21にシンボルSを収めて撮像しようとした場合、シンボルSの撮像画像にぼけや滲みが生じるほどシンボルSとカメラ14との距離を近接させることが困難となるので、使用者は適切なシンボルSとカメラ14との距離に誘導される。適切な距離で撮像されたシンボルSの撮像画像は、二値化及びデコードを好適に行うことができるので、シンボルSをより好適に読み取ることが可能なシンボル読取装置を提供することができる。
【0061】
さらに、枠幅の縮小の際に、前述の式(1)における現在の枠幅を、シンボル検出処理においてシンボルSとして検出された範囲のX方向及びY方向の幅とすることで、枠幅はシンボルSを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠21に収まるよう撮像されたシンボルSのセルサイズは、所定のセルサイズ以下となるので、より確実に二値化及びデコードを好適に行うことができるシンボルSの撮像画像が得られる。
【0062】
次に、第1の実施形態とは異なる実施形態である、本発明の第2の実施形態によるシンボル読取装置2について説明する。なお、第1の実施形態と同様の構成については同じ符号を付して説明を省略する。
【0063】
図10に、本発明の第2の実施形態によるシンボル読取装置2の主要構成を示す。
【0064】
ROM12は、第1の実施形態のROM12が記憶する各プログラム及びデータに加え、少なくともぶれ検出プログラム12e、斜め撮像判定プログラム12fを記憶する。
【0065】
ぶれ検出プログラム12eは、シンボルSの撮像画像に生じたぶれを検出し、ぶれが生じていることを示す表示を表示装置16に出力する。
例えば、カメラ14による撮像時、使用者が手ぶれ等を生じさせた場合、撮像画像は当該手振れによりぶれを生じた撮像画像となる。具体的には、ぶれが生じた場合、白セル、黒セル及びグレーゾーンの並びパターン即ち輝度差の変化パターンが同じ又は酷似した部分が複数存在する撮像画像が得られる。ぶれ検出プログラム12eは、そのような輝度差の変化パターンに基づき、ぶれを検出する。
【0066】
図11に、ぶれが生じていることを示す表示を含む画面の一例を示す。
ぶれ検出プログラム12eは、ぶれを検出した場合、プレビュー画面に表示される枠21の右上にぶれが生じていることを示すマーク31を表示させる。
【0067】
斜め撮像判定プログラム12fは、シンボルSの四辺の対向する二辺の長さの比率が所定の比率より大きい場合に、カメラ14による撮像がシンボルSに対して斜め方向から行われていると判別する。
【0068】
例えば、被写体であるシンボルSを含む平面に対して、センサー15aの画像認識部が平行又はほぼ平行な状態ではなく斜めとなる状態で撮像された場合、シンボルSの四辺の対向する二辺について、一方の辺のカメラ14に対する焦点距離と、他方の辺のカメラ14に対する焦点距離とに差が生じることにより、一方の辺と他方の辺の長さは異なって撮像される。その結果、四方形のシンボルSは台形状に撮像される。
斜め撮像判別プログラム12fは、シンボルSの四辺の対向する二辺について、二辺の長さの比率が所定よりも大きい(例えば一方の辺の長さと他方の辺の長さの比率が2倍より大きい)場合、シンボルSに対して斜め方向から撮像が行われていると判定する。二辺の長さは、前述のシンボル検出処理におけるエッジ検出により、四つの角を結ぶ直線として認識された四辺のうち対向する二辺の長さを用いる。
【0069】
図12に、斜め方向から撮像が行われていることを示す表示を含む画面の一例を示す。
斜め撮像判別プログラム12fは、斜め方向から撮像が行われていると判別した場合、プレビュー画面に表示される枠21の形状を図12のように台形状にして表示させる。
【0070】
長さを比較する二辺は、撮像画像におけるシンボルSの上下の辺でもよいし、左右の辺でもよい。上下及び左右についてそれぞれ比較してもよい。
【0071】
第2の実施形態によるシンボル解析プログラム12aは、第1の実施形態に記載した機能に加え、デコード枠範囲決定処理において枠幅を拡大する機能をCPU11に提供する。
【0072】
図13に、枠21の拡大前後のプレビュー画面の一例を示す。図13(a)は枠21の拡大前、図13(b)は枠21の拡大後である。
レンズ14bとシンボルSとの間の距離が遠すぎると、図13(a)に示すように、好適な二値化処理及びデコード処理を行える場合のシンボルSの撮像画像に比して小さなシンボルSの撮像画像が得られる。小さく撮像されたシンボルSの撮像画像は、その一部又は全部につぶれ、ぼけ、滲み等を生じさせることがあり、二値化失敗やデコード失敗の原因となり得る。そこで、シンボルSの撮像画像が小さく撮像されている場合、デコード枠範囲決定処理により枠21を拡大し、使用者にシンボルSを好適な大きさで撮像するよう促す。
【0073】
具体的には、二値化処理における平均セルサイズの算出結果が枠幅拡大の基準となる所定のセルサイズ(例えば3ピクセル)より小さい場合、第1の実施形態における(1)の式と同様の式の算出結果に基づき、枠幅を拡大する。
第2の実施形態では、デコード枠範囲決定処理において、第1の実施形態と同様の枠幅の縮小も可能である。第2の実施形態では、枠幅拡大の基準となる所定のセルサイズ(例えば3ピクセル)と、枠幅縮小の基準となる所定のセルサイズ(例えば5ピクセル)は別個に設けられる。
【0074】
なお、枠幅の拡大の際に、前述の式(1)における現在の枠幅を、シンボル検出処理においてシンボルSとして検出された範囲のX方向及びY方向の幅としてもよい。この場合、枠幅は、シンボルSを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠21に収まるよう撮像されたシンボルSのセルサイズは、所定のセルサイズ(3ピクセル)以下となる。
【0075】
次に、シンボル読取装置2によるシンボルSの撮像から結果出力までの処理について、図14及至図16のフローチャートを用いて説明する。
図14は、シンボル読取装置2の動作を示すフローチャートである。図14に示すフローチャートは、図7に示すシンボル読取装置1のフローチャートのステップS6をステップS17に置き換えたフローチャートであり、他のステップについては図7及び前述の記載と同様である。
【0076】
シンボル読取装置2のCPU11は、ステップS5の処理後、枠の表示位置及び台形表示の有無、ぶれ表示の有無を決定する(ステップS17)。その後、CPU11はステップS51の決定内容に応じた枠を表示する(ステップS7)。
【0077】
図15は、図14のステップS16に示すデコード範囲枠決定処理の動作を示すフローチャートである。
シンボル読取装置2のCPU11は、デコード範囲枠決定処理において、ぶれの検出を行う(ステップS51)。ぶれが検出された場合(ステップS52:YES)、枠21の右上にぶれが生じていることを示すマーク31を追加表示する処理を行い(ステップS53)、デコード範囲枠決定処理を終了する。ぶれが検出されなかった場合(ステップS52:NO)、CPU11は斜めスキャン検出処理を行う(ステップS54)。
【0078】
図16は、図15のステップS54に示す斜めスキャン検出処理の動作を示すフローチャートである。
斜めスキャン検出処理において、CPU11は、シンボルSの四方の辺のうち対向する二辺の長さを求め(ステップS71)、一方の辺の長さと他方の辺の長さの比率が2倍より大きいか否かをする(ステップS72)。一方の辺の長さと他方の辺の長さの比率が2倍より大きい場合(ステップS72:YES)、CPU11は斜め方向から撮像が行われている(斜めスキャン)と判定する。一方の辺の長さと他方の辺の長さの比率が2倍以下の場合(ステップS72:NO)、CPU11は通常スキャンと判定する。
【0079】
ステップS54の斜めスキャン検出処理後、斜めスキャンであると判定されている場合(ステップS55:YES)、CPU11は枠21を台形状にし(ステップS56)、デコード範囲枠決定処理を終了する。通常スキャンであると判定されている場合(ステップS55:NO)、CPU11は平均セルサイズを呼び出し(ステップS57)、平均セルサイズが3ピクセルより小さいかどうか判定する(ステップS58)。平均セルサイズが3ピクセルより小さい場合(ステップS58:YES)、CPU11は現在の枠幅を呼び出し(ステップS59)、枠幅を前述の(1)の式の算出結果による枠幅とする(ステップS60)。平均セルサイズが3ピクセル以上の場合(ステップS58:NO)、CPU11は平均セルサイズが5ピクセルより大きいかどうか判定する(ステップS61)。平均セルサイズが5ピクセルより大きい場合(ステップS61:YES)、ステップS59以降の処理を行う。平均セルサイズが5ピクセル以下の場合(ステップS61:NO)、デコード範囲枠決定処理を終了する。
【0080】
第2の実施形態によれば、第1の実施形態の効果に加え、平均セルサイズが所定のセルサイズより小さい場合、枠幅が拡大されるので、シンボルSが小さくなりすぎる遠距離での撮像を防止できる。即ち、枠幅を拡大することで、より大きなシンボルSの撮像画像を得られる操作即ち近距離での撮像を行うよう使用者に促すことができるので、使用者は適切なシンボルSとカメラ14との距離に誘導される。適切な距離で撮像されたシンボルSの撮像画像は、二値化及びデコードを好適に行うことができるので、シンボルSをより好適に読み取ることが可能なシンボル読取装置を提供することができる。
【0081】
さらに、枠幅の拡大の際に現在の枠幅をシンボル検出処理においてシンボルSとして検出された範囲のX方向及びY方向の幅とすることで、枠幅はシンボルSを所定のセルサイズとなるよう撮像した場合の幅と等しくなる。その結果、枠21に収まるよう撮像されたシンボルSのセルサイズは、所定のセルサイズ以下となるので、より確実に二値化及びデコードを好適に行うことができるシンボルSの撮像画像が得られる。
【0082】
さらに、撮像画像にぶれを検出した場合、枠21の右上にぶれが生じていることを示すマーク31を表示させるので、ぶれにより好適なシンボルSの撮像及び読み込みができない場合の原因を使用者に明確に通知することができると共に、撮像時の手ぶれ等のぶれに対する注意を使用者に喚起することができる。
【0083】
さらに、斜め方向から撮像が行われていると判別した場合、枠21の形状を台形状にして表示させるので、斜め方向からの撮像により好適なシンボルSの撮像及び読み込みができない場合の原因を使用者に明確に通知することができると共に、斜め方向から撮像が行われていることに対する注意を使用者に喚起することができる。
【0084】
なお、本実施の形態における記述は、本発明の一例を示すものであり、これに限定しない。
例えば、第1及び第2の実施形態に示したピクセル数、所定のセルサイズ、図5に示す輝度、二辺の比率その他の各数値は一例であり、他の数値を設定してもよい。
【0085】
各実施形態で図示する被写体に含まれるシンボルSは二次元バーコードであるが、他のシンボルでもよい。例えば一次元のバーコード等でもよい。
【0086】
ぶれの表示や斜めスキャンの表示は他の方法によってもよい。例えば、シンボル読取装置に通知のためのLED等を儲け、ぶれの検出や斜めスキャン判定に基づきLEDを発光又は点滅させるようにしてもよいし、デコード範囲枠決定処理の内容に応じて異なる色で発光させるようにしてもよい。また、音声による通知でもよい。
【0087】
ぶれの検出は撮像画像に基づくソフトウェア処理によって行っているが、専用のハードウェアを用いてもよい。同様に、シンボル読取装置の機能のうち、ソフトウェア処理で行われている各構成は、各機能に専用の構成を設けてもよい。
【符号の説明】
【0088】
11 CPU
12 ROM
13 RAM
14 カメラ
15 入力装置
16 表示装置
21 枠
S シンボル

【特許請求の範囲】
【請求項1】
被写体を撮像する撮像手段と、
前記撮像手段による撮像画像を表示する表示手段と、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、
読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第1の表示制御手段と、
を備えることを特徴とするシンボル読取装置。
【請求項2】
被写体を撮像する撮像手段と、
前記撮像手段による撮像画像を表示する表示手段と、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段と、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段と、
読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第2の表示制御手段と、
を備えることを特徴とするシンボル読取装置。
【請求項3】
前記枠内に収まるよう撮像されたシンボルのセル幅が前記所定のセル幅以下となる前記枠を表示させる第3の表示制御手段を備えることを特徴とする請求項1又は2に記載のシンボル読取装置。
【請求項4】
前記撮像画像にぶれが生じていることを検出するぶれ検出手段と、
前記撮像画像にぶれが生じている場合、ぶれが生じていることを示す表示を通知するぶれ通知手段と、
を備えることを特徴とする請求項1から3のいずれか一項に記載のシンボル読取装置。
【請求項5】
前記シンボルの四辺の対向する二辺の長さの比率が所定の比率より大きい場合に、前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定する斜め撮像判定手段と、
前記撮像手段による撮像が前記被写体に対して斜め方向から行われていると判定された場合、斜め方向からの撮像が行われていることを通知する斜め撮像通知手段を備えることを特徴とする請求項1から4のいずれか一項に記載のシンボル読取装置。
【請求項6】
コンピュータを、
撮像手段による被写体の撮像を制御する撮像制御手段、
前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、
読み取ったシンボルを構成するセル幅が所定のセル幅より大きい場合、前記枠内に含まれる範囲を小さくするよう前記枠を表示させる第1の表示制御手段、
として機能させるためのプログラム。
【請求項7】
コンピュータを、
撮像手段による被写体の撮像を制御する撮像制御手段、
前記撮像手段による撮像画像を表示手段へ表示する表示制御手段、
前記撮像画像のうち所定の範囲をシンボル読取領域として設定し、当該所定の範囲内からシンボルを読み取る読取手段、
前記所定の範囲を示す枠を前記表示手段に表示する枠表示手段、
読み取ったシンボルを構成するセル幅が所定のセル幅より小さい場合、前記枠内に含まれる範囲を大きくするよう前記枠を表示させる第2の表示制御手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図3】
image rotate

【図4】
image rotate

【図6】
image rotate

【図13】
image rotate


【公開番号】特開2013−101698(P2013−101698A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2013−34088(P2013−34088)
【出願日】平成25年2月25日(2013.2.25)
【分割の表示】特願2008−260660(P2008−260660)の分割
【原出願日】平成20年10月7日(2008.10.7)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】