(58)【調査した分野】(Int.Cl.,DB名)
前記第1領域と前記二次元コードとが正方形状であり、前記第2領域と前記一次元コードとが長方形である、請求項1から請求項3までの何れか1項に記載の情報読取装置。
前記撮像素子が、n×(n+m)個の受光素子がマトリクス状に配列された撮像面を有し(nは2以上の整数であり、mは1以上の整数であり、n>mという関係を有する。)、
前記第1領域が、(n×n)個の受光素子がマトリクス状に配列された正方形状の領域であり、
前記第2領域が、(n×m)個の受光素子がマトリクス状に配列された長方形状の領域である、
請求項1から請求項4までの何れか1項に記載の情報読取装置。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
【0012】
<情報読取装置>
まず、情報読取装置について説明する。
図1は本実施の形態に係る情報読取装置の電気的構成の一例を示すブロック図である。本実施の形態に係る情報読取装置は、一次元コード及び二次元コードの両方を読み取ることができるコードリーダである。
図1に示すように、情報読取装置10は、撮像部12、A/D変換部14、画像メモリ部16、ガイド光照射部18、制御装置20、操作部22、表示部24、及び通信部26を備えている。撮像部12、画像メモリ部16、ガイド光照射部18、操作部22、表示部24、及び通信部26の各々は、制御装置20に接続されて制御装置20により制御されている。
【0013】
撮像部12は、被写体の画像(撮像面に結像された光像)を撮像し、画像信号(アナログ信号)をA/D変換部14に出力する。A/D変換部14は、撮像部12から出力されたアナログ信号をディジタル信号に変換する。画像メモリ部16は、ディジタル化された画像信号を画像情報として記憶する。ガイド光照射部18は、コードの読み取り範囲を示すガイド光MA(又はMB)を照射する。
【0014】
制御装置20は、装置全体の制御及び各種演算を行うコンピュータとして構成されている。具体的には、制御装置20は、CPU(中央処理装置; Central Processing Unit)、各種プログラムを記憶したROM(Read Only Memory)、RAM(Random Access Memory)、各種情報を記憶する不揮発性メモリ、及び入出力インターフェース(I/O)を備えている。CPU、ROM、RAM、不揮発性メモリ、及びI/Oの各々は、バスを介して接続されている。
【0015】
本実施の形態では、後述する「コード読取処理」の制御プログラムが予めROMに記憶されている。CPUはROMに記憶された制御プログラムを読み出し、RAMをワークエリアとして使用して、読み出したプログラムを実行する。「コード読取処理」では、画像メモリ部16に記憶された画像情報を取り込み、コードの読み取りを開始し、読取結果を出力する。具体的な処理ルーチンについては後述する。
【0016】
操作部22は、コードの撮像の開始を指示するスイッチ等、ユーザの操作による各種の指示を受け付ける。表示部24は、撮像部12で撮像する前の被写体の画像、撮像部12で撮像された被写体の画像、読取結果等をユーザに表示する。通信部26は、有線又は無線により外部装置(図示せず)と通信を行うためのインターフェイスである。通信部26は、例えば、制御装置20から出力された読取結果を外部装置(図示せず)に送信する。
【0017】
<結像光学系>
次に、撮像部12の結像光学系について説明する。
図2(A)は本実施の形態の撮像部の構成の一例を示す模式図である。
図2(B)は
図2(A)に示す光学系の視野を示す模式図である。
図2(A)に示すように、撮像部12は、ガイド光照射部18、第1光学系30、第2光学系32、及び撮像素子34を備えている。ガイド光照射部18、第1光学系30、第2光学系32、及び撮像素子34の各々は、筐体28内に収納されている。ここでは、被写体を物品に付された二次元コードQとする。図示した例では、二次元コードQは正方形のQRコード(登録商標)である。
【0018】
本実施の形態では、撮像部12及びガイド光照射部18以外の情報読取装置10の各部(A/D変換部14、画像メモリ部16、制御装置20、操作部22、表示部24、及び通信部26)も、筐体28内に収納又は筐体28に設置されている。なお、本実施の形態では、制御装置20で「コード読取処理」を実行するが、撮像された画像の画像情報を外部装置に送信して、外部装置で「コード読取処理」を実行するようにしてもよい。
【0019】
撮像素子34は、長方形の撮像面34Aを備えている。撮像面34Aには、複数の受光素子が配列されている。例えば、幅方向にn個の受光素子が並べられ、長さ方向に(n+m)個の受光素子が並べられて、合計でn×(n+m)個の受光素子がマトリクス状に配列されている。1つの受光素子が撮像された画像の1画素に相当する。ここで、nは2以上の整数であり、mは1以上の整数であり、n>mという関係を有する。また、本実施の形態では、個々の受光素子は、縦横比が等しい正方形の受光面を有する正方画素である。
【0020】
上記の撮像素子34としては、光電変換により光学像を撮像するイメージセンサが用いられる。イメージセンサとしては、CCD(Charge Coupled Device)イメージセンサ、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等が挙げられる。また、上記のガイド光照射部18には、LED等の発光素子が用いられる。
【0021】
第1光学系30と第2光学系32とは、長方形の撮像素子34の長さ方向(図面では上下方向)に並べて配置される。
図2(B)に示すように、第1光学系30は視野(粗い点線で囲んだ略正方形の領域)を有し、第2光学系32は視野(細かい点線で囲んだ長方形の領域)を有する。第1光学系30の視野と第2光学系32の視野とは、代表的な読取距離で中心が一致することが好ましい。なお、図示した例では、第1光学系30の視野と第2光学系32の視野とが上下にずれているが、2種類のコードの読取に支障が無ければ、中心が一致していなくてもよい。
【0022】
第1光学系30は、長方形の撮像面34Aの予め定めた第1領域36に第1被写体像36Qを結像する。第2光学系は、撮像面34Aの長さ方向において第1領域36に隣接する第2領域38に第2被写体像38Qを結像する。例えば、第1領域36は、(n×n)個の受光素子がマトリクス状に配列された正方形状の領域とすることができる。また、第2領域38は、(n×m)個の受光素子がマトリクス状に配列された長方形状の領域とすることができる。即ち、第1領域36と二次元コードQとは相似形であり、第2領域38と一次元コードBとは相似形とすることができる。なお、第2領域38は、(n×1)個の受光素子がライン状に配列された長方形状の領域としてもよい。
【0023】
また、第1光学系30は、第1領域36に第1被写体像36Qを第1倍率で結像する。第2光学系は、第2領域38に第2被写体像38Qを第1倍率より低い第2倍率で結像する。即ち、被写体が同じでも、第1光学系30により形成される第1被写体像36Qは結像倍率が高く、第2光学系32により形成される第2被写体像38Qは結像倍率が低い。
【0024】
ガイド光照射部18は、被写体を含む物品にガイド光を照射する。ガイド光により、コードの読み取り範囲がユーザにより認識される。第1光学系30と第2光学系32とでは視野が異なるので、ガイド光照射部18は、第1光学系30用のガイド光照射部18Aと第2光学系32用のガイド光照射部18Bとで構成されていてもよい。ガイド光照射部18Aは、第1光学系30の視野を示す正方形のガイド光MAを照射し、ガイド光照射部18Bは、第2光学系32の視野を示す長方形のガイド光MBを照射する。ユーザは、読み取りたいコードの形状に応じた何れかのガイド光を用いて照準を合わせばよい。例えば、ユーザは、表示部24に撮像前の被写体の画像を表示し、照準の合った時点で操作部22を操作してコードの撮像の開始を指示する。
【0025】
なお、図示はしていないが、撮像素子34で撮像する際に被写体を含む物品に照明光を照射する照明部を備えていてもよい。照明光により、コードの読み取り範囲が照明される。第1光学系30と第2光学系32とでは視野が異なるので、照明部は、第1照明部と第2照明部とで構成されていてもよい。第1照明部は、第1光学系30の視野を示す正方形の領域を照明し、第2照明部は、第2光学系32の視野を示す長方形の領域を照明する。
【0026】
図3は本実施の形態の撮像部12の光学系の設計例を示す光軸に沿った断面図である。第1光学系30及び第2光学系32の各々は、複数のレンズを組み合わせて構成することができる。本実施に形態では、波面符号化法を用いた画像復元処理を行うために、第1光学系30には位相変調素子40が含まれている。位相変調素子40は、第1光学系30の撮像素子34側に配置されている。なお、波面符号化法を用いた画像復元処理を行わない場合は、位相変調素子40を省略してもよい。
【0027】
位相変調素子40は、入射光の波面を変換する機能(位相変調機能)を有する光学素子である。位相変調素子40としては、光軸方向での厚みが変化する光学素子(例えば、3次の位相板)の他、屈折率が変化する光学素子(例えば、屈折率分布型の位相変調素子)、位相変調が可能な液晶素子(例えば、液晶空間位相変調素子)等を用いてもよい。また、レンズ表面へのコーティングにより厚みや屈折率が変化する光学素子(例えば、位相変調ハイブリッドレンズ)等を用いてもよい。
【0028】
位相変調素子40により第1光学系30に入射した光の波面が変換されて、被写体までの距離が変化しても同じボケ方の画像が撮像される。また、後述する「画像復元処理」により、撮像画像に対して逆変換を施すような画像処理を行うことで合焦画像(ボケが除去された画像)が復元される。予め定めた距離範囲(読取り距離範囲)では、上記の距離に依存しない撮像と復元とが可能となり読取距離範囲が拡大する。画像復元の原理については後述する。
【0029】
第1光学系30は、第2光学系32より結像倍率が高い。従って、第1光学系30は、第2光学系32より焦点距離fが長く、画角が狭くなる。例えば、第1光学系30は、焦点距離f=22.8、画角=10°×10°とし、第2光学系32は、焦点距離f=4.6、画角=7°×30°とする。ここでの画角は、被写体が付加された物品に対し、垂直方向の画角と水平方向の画角との積で表される。なお、画角が大きいほど、光学系の視野が広い。
【0030】
図4(A)及び(B)は本実施の形態の撮像部12による撮像例を示す図である。被写体を物品に付加された二次元コードQとすると、
図4(A)に示すように、撮像面34Aの第1領域36に第1被写体像36Qが第1倍率で結像される。また、撮像面34Aの第2領域38には第2被写体像38Qが第1倍率より低い第2倍率で結像される。結像倍率の高い第1被写体像36Qの方が、第2被写体像38Qより二次元コードQの最小単位セルに割り当てられる画素数が多く(即ち、画素分解能が高く)、二次元コードQの読み取りが容易になる。
【0031】
一方、被写体を物品に付加された一次元コードBとすると、
図4(B)に示すように、撮像面34Aの第1領域36に第1被写体像36Bが第1倍率で結像される。また、撮像面34Aの第2領域38には第2被写体像38Bが第1倍率より低い第2倍率で結像される。図示した例では、一次元コードBは長方形のバーコードである。結像倍率の低い第2被写体像38Bでは一次元コードB全体が第2領域38内に収まるので、一次元コードBを読み取ることができる。これに対して、結像倍率の高い第1被写体像36Bでは一次元コードB全体が第1領域36内には収まらないこともある。
【0032】
上記の通り、二次元コードQの場合は、正方形の第1領域36に高い倍率で結像された第1被写体像36Qの方が読み取りが容易であり、一次元コードBの場合は、長方形の第2領域38に低い倍率で結像された第2被写体像38Bの方が読み取りが容易である。従って、情報読取装置10の読取距離範囲に応じて、第1倍率及び第2倍率を設定することにより、1つの撮像部で一次元コード及び二次元コードの両方を読取ることができる。換言すれば、1つの撮像部に対する第1倍率及び第2倍率の設定により、一次元コード及び二次元コードの両方を読取ることができる読取距離範囲が拡大する。
【0033】
<コード読取処理>
次に、コード読取処理について説明する。
図5は「コード読取処理」のルーチンの一例を示すフローチャートである。ユーザの操作によりコードの撮像開始の指示を受け付けると、制御装置20のCPUが「コード読取処理」の実行を開始する。制御装置20は、コード読取処理部として機能する。
【0034】
まず、ステップ100で、画像メモリ部16から撮像された画像の画像情報(以下、「撮像画像」という。)を取得する。次に、ステップ102で、取得された撮像画像から一次元コードを読み取る「一次元コード読取処理」を実行する。即ち、一次元コードを抽出し、抽出された一次元コードを復号して復号情報を取得する。次に、ステップ104で、一次元コードが読み取られたか否かを判定する。一次元コードが読み取られた場合は、ステップ114に進む。そしてステップ114で、一次元コードの読取結果(復号情報)を出力して、ルーチンを終了する。
【0035】
一方、ステップ104で一次元コードが読み取られていない場合は、ステップ106に進む。そしてステップ106で、撮像画像に対して波面符号化法を用いた「画像復元処理」を実行する。続いて、ステップ108で、「画像復元処理」で得られた復元画像から二次元コードを読み取る「二次元コード読取処理」を実行する。即ち、二次元コードを抽出し、抽出された二次元コードを復号して復号情報を取得する。波面符号化法を用いた「画像復元処理」については後述する。
【0036】
次に、ステップ110で、二次元コードが読み取られたか否かを判定する。二次元コードが読み取られた場合は、ステップ116に進む。そしてステップ116で、二次元コードの読取結果(復号情報)を出力して、ルーチンを終了する。一方、ステップ110で二次元コードが読み取られていない場合は、ステップ116に進む。そしてステップ116で、コード未検出である旨を報知して、ルーチンを終了する。
【0037】
上記の通り、撮像画像には、正方形の第1領域に高い倍率で結像された第1被写体像と、長方形の第2領域に低い倍率で結像された第2被写体像とが含まれている。まず撮像画像から一次元コード及び二次元コードの何れか一方を読み取り、一方のコードが読み取れない場合に、撮像画像から他方のコードの読み取りを行うことで、被写体が一次元コード及び二次元コードの何れであっても、コードを読み取ることができる。
【0038】
上記の通り、二次元コードの読み取りを行う前に撮像画像の復元処理を行う場合には、二次元コードの読み取りに要する時間は、一次元コードの読み取りに要する時間よりも長くなる。この場合は、まず撮像画像から一次元コードを読み取り、一次元コードが読み取れない場合に、撮像画像から二次元コードの読み取りを行うことで、コード読取処理に要する時間を短縮することができる。
【0039】
<波面符号化法による画像復元処理>
ここで、波面符号化法を用いた画像復元処理について説明する。
図6は波面符号化法による画像復元の原理を説明する説明図である。
図6に示すように、被写体画像Fが位相変調素子40を含む第1光学系30により撮像画像Gに光学変換され、画像処理により復元画像F
Rが復元される場合について説明する(
図2及び
図3を参照)。
【0040】
第1光学系30は固有の点拡がり関数(PSF:Point Spread Function)を有する。波面符号化法では、光学系の変換特性を表現するのにPSFを用いる。PSFは、光学系の点光源に対する拡散度合いを表す関数である。即ち、点光源のボケ方を表現する関数である。
【0041】
本実施の形態では、PSFは距離に依存しない関数として取り扱う。なお、厳密にはPSFは点光源までの距離に応じて変化するが、読取り距離範囲内では距離に依存しない関数として取り扱うことができる。第1光学系30の固有のPSFは、予め取得されて制御装置20の記憶装置に予め記憶されている。
【0042】
被写体画像Fから撮像画像Gへの光学変換は、下記式で表すように、PSFによる畳み込み(コンボリューション)で近似される。
G=PSF*F (*は畳み込みを表す)
【0043】
また、撮像画像Gから復元画像F
Rを復元する画像処理は、下記式で表すように、PSFの逆関数(PSF)
−1による畳み込み(デコンボリューション)で近似される。換言すれば、第1光学系30により行われた光伝達関数(OTF)の変更の逆変換に相当するフィルタ処理が実行される。
FR=(PSF)
−1*G (*は畳み込みを表す)
【0044】
コードCが付加された対象物を撮像する場合、対象物が遠くに在るとき(遠場)には撮像領域Rの一部をコードCが占有し、対象物が近くに在るとき(近場)には撮像領域Rの略全面をコードCが占有する。以下では、撮像領域Rを画面と称する。波面符号化法を用いない場合には、遠場でも近場でも、対象物が合焦位置から離れるとボケた画像が撮像される。そのボケ方は合焦位置から対象物までの距離(ずれ量)に応じて変化する。
【0045】
しかしながら、波面符号化法を用いた場合には、予め定めた読取り距離範囲内では、上記の光学変換により対象物までの距離によらず同じボケ方の撮像画像Gが撮像される。また、本実施の形態では、第1光学系30のPSFは距離に依存しない関数である。従って、予め定めた読取り距離範囲内では、上記の画像処理により対象物までの距離によらず撮像画像Gから合焦した復元画像F
Rが復元される。
【0046】
なお、上記実施の形態で説明した情報読取装置の構成は一例であり、本発明の主旨を逸脱しない範囲内においてその構成を変更してもよいことは言うまでもない。例えば、コード読取処理において、まず撮像画像から二次元コードを読み取り、二次元コードが読み取れない場合に、撮像画像から一次元コードの読み取りを行ってもよい。また、一次元コードを読み取る一次元コードモードと二次元コードを読み取る二次元コードモードの2種類のモードを設け、ユーザが何れかのモードを選択できるようにしてもよい。