JP6520659B2 - シンボル検出装置、画像処理装置、及び、シンボル検出方法 - Google Patents

シンボル検出装置、画像処理装置、及び、シンボル検出方法 Download PDF

Info

Publication number
JP6520659B2
JP6520659B2 JP2015225174A JP2015225174A JP6520659B2 JP 6520659 B2 JP6520659 B2 JP 6520659B2 JP 2015225174 A JP2015225174 A JP 2015225174A JP 2015225174 A JP2015225174 A JP 2015225174A JP 6520659 B2 JP6520659 B2 JP 6520659B2
Authority
JP
Japan
Prior art keywords
unit
value
image
pixel value
ratio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015225174A
Other languages
English (en)
Other versions
JP2017091484A (ja
Inventor
聡 田辺
聡 田辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015225174A priority Critical patent/JP6520659B2/ja
Priority to US15/350,554 priority patent/US10157302B2/en
Publication of JP2017091484A publication Critical patent/JP2017091484A/ja
Application granted granted Critical
Publication of JP6520659B2 publication Critical patent/JP6520659B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10712Fixed beam scanning
    • G06K7/10762Relative movement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10851Circuits for pulse shaping, amplifying, eliminating noise signals, checking the function of the sensing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10881Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices constructional details of hand-held scanners
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K2019/06215Aspects not covered by other subgroups
    • G06K2019/06225Aspects not covered by other subgroups using wavelength selection, e.g. colour code

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Studio Devices (AREA)

Description

本発明は、シンボル検出装置、画像処理装置、及び、シンボル検出方法に関する。
従来より、二次元の撮像視野を有し情報コードが記された読取対象の画像を取込む撮像手段を備えると共に、前記読取対象に対し読取位置を示すためのマーカ光を照射するマーカ光照射手段を備える光学情報読取装置(二次元コード読取装置)がある。
光学情報読取装置(二次元コード読取装置)は、前記情報コードが前記撮像手段の撮像視野に相対的に進入したことを検出する進入検出手段と、この進入検出手段の検出に基づいて前記撮像手段による情報コードの読取動作を自動的に実行させる読取動作実行手段とを具備する。
前記進入検出手段は、前記マーカ光照射手段によりマーカ光を照射した状態で、前記撮像手段により読取対象の画像を取込むマーカ光画像取得手段と、このマーカ光画像取得手段により取込まれたマーカ光画像からマーカ光照射部位における明暗パターンを検出する明暗パターン検出手段とを有する。前記進入検出手段は、さらに、異なるタイミングで取得されたマーカ光画像における明暗パターンの変化に基づいて前記情報コードの撮像視野への進入を判断する判断手段を有する。
光学情報読取装置(二次元コード読取装置)は、読取制御プログラムを実行することにより、電源オン時に、マーカ光照射部によるマーカ光の照射(点灯)を連続的に行う(あるいは点滅を繰返す)制御回路を有する。
制御回路は、読取対象に記された二次元コードが受光センサの撮像視野内(マーカ光で示される読取位置)に相対的に進入したかどうかを常に監視し、進入を検出したときに、二次元コードの読取動作(照明部をオンし、受光センサ13により画像を取込む動作)を自動的に実行するようになっている(例えば、特許文献1の請求項1及び明細書の段落0032参照)。
特開2006−134303号公報
従来の光学情報読取装置(二次元コード読取装置)は、読取制御プログラムを実行する制御回路が、マーカ光の照射、二次元コードの監視、二次元コードの読取動作を自動的に実行する。
ところで、従来の光学情報読取装置(二次元コード読取装置)は、常に二次元コードの読取が成功するわけではなく、二次元コードの読取が成功しない場合もある。しかしながら、制御回路は、電源オン時には、上述のような制御を自動的に実行している。
読取制御プログラムを実行する制御回路は、コンピュータによって実現されるため、消費電力が大きく、二次元コードの読取が成功しない場合においても、例えば、メモリにアクセスする等の処理を行うことにより、消費電力が大きい。
以上のように、従来の光学情報読取装置(二次元コード読取装置)は、消費電力が大きいという課題がある。
そこで、消費電力を低減したシンボル検出装置、画像処理装置、及び、シンボル検出方法を提供することを目的とする。
本発明の実施の形態のシンボル検出装置は、所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置であって、前記画像を一軸方向に読み取り、前記画像の各画素の画素値を2値化した第1画素値又は第2画素値を出力する2値化処理部と、前記第1画素値が連続する数を表す第1連続値と、前記第2画素値が連続する数を表す第2連続値とが前記第2連続値又は前記第1連続値に切り替わると、当該切り替わり前の前記第1連続値又は前記第2連続値と、当該切り替わり後の前記第2連続値又は前記第1連続値との比を算出する算出部と、前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、転送部と、前記第1連続値と、前記第2連続値とを時系列的に交互に保持する第1保持部と、前記切り替わり前に前記第1保持部が保持した前記第1連続値又は前記第2連続値を前記第1保持部から入手して保持する第2保持部と、前記所定の幅の比の値を保持する第3保持部とを含前記算出部は、前記第1保持部に保持される前記第1連続値又は前記第2連続値と、前記第2保持部に保持される前記第2連続値又は前記第1連続値との比を算出し、前記転送部は、前記算出部によって算出される前記比と、前記第3保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、前記第3保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、転送部は、前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、前記転送部は、前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない出力部とを有し、前記転送部は、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない
消費電力を低減したシンボル検出装置、画像処理装置、及び、シンボル検出方法を提供することができる。
シンボル検出装置及び画像処理装置を含むバーコードリーダ10を示す図である。 実施の形態のバーコードリーダ10の内部構成を示す図である。 MCU30A、MCU30B、カメラモジュール50、及びシンボル検出装置100の詳細を示す図である。 実施の形態のバーコードリーダ10が読み取る二次元バーコードを示す図である。 ファインダパターン2を示す図である。 ファインダパターン2を読み取ったときの読み取りパターンを示す図である。 実施の形態のバーコードリーダ10のシンボル検出装置100の構成を示す図である。 2値化処理部110の動作を表すタイミングチャートを示す図である。 2値化処理部110の動作を表すタイミングチャートを示す図である。 パターン演算部120を示す図である。 パターン演算部120の動作を表すタイミングチャートを示す図である。 パターン判定部130を示す図である。 パターン判定部130が比較結果CMPOUTを出力するまでの動作を表すタイミングチャートを示す図である。 論理部135の動作を表すタイミングチャートを示す図である。 出力部140を示す図である。 出力部140の動作を表す真理値表である。 シンボル検出装置100の動作例を示すシーケンス図である。 シンボル検出装置100の動作例を示すシーケンス図である。 シンボル検出装置100の動作例を示すシーケンス図である。 シンボル検出装置100の動作例を示すシーケンス図である。 シンボル検出装置100が実行する処理を示すフローチャートである。 比較例のバーコードリーダ10Aの内部構成を示す図である。 比較例のバーコードリーダ10Aの動作例を示すシーケンス図である。 比較例のバーコードリーダ10Aの動作例を示すシーケンス図である。
以下、本発明のシンボル検出装置、画像処理装置、及び、シンボル検出方法を適用した実施の形態について説明する。
<実施の形態>
図1は、実施の形態のシンボル検出装置及び画像処理装置を含むバーコードリーダ10を示す図である。
バーコードリーダ10は、筐体11、スイッチ12、読み取り部13、及びLED(Light Emitting Diode)14を有する。筐体11は、ヘッド11Aとグリップ11Bとを有し、ヘッド11Aの先端には読み取り部13が設けられ、グリップ11Bにはスイッチ12が設けられている。LED14は、ヘッド11Aに設けられている。
バーコードリーダ10は、利用者がグリップ11Bを握り、読み取り部13を二次元バーコードに向けてスイッチ12を押すと、読み取り部13が二次元バーコードの画像を撮像し、画像処理を行って二次元バーコードに書き込まれたデータを読み取る。スイッチ12は、データを読み取る際のトリガーを発生させるために用いるスイッチである。読み取り部13はカメラモジュールである。LED14は、焦点が合っていない場合に点灯する。焦点が合っていない場合には、二次元バーコードの画像が正しく読み取られていない場合も含まれる。
なお、LED14は、焦点が合っている場合にも点灯してもよい。この場合には、LED14は、焦点が合っていない場合と焦点が合っていない場合とで点灯色を変えればよい。また、LED14は、焦点が合っていない場合に点灯する代わりに、焦点が合っている場合に点灯するようにしてもよい。
また、LED14の代わりに、又は、LED14に加えて、焦点が合っていない場合に所定の音声を発報する音声出力部を設けてもよい。このようなLED14又は音声出力部は、報知部の一例である。
図2は、実施の形態のバーコードリーダ10の内部構成を示す図である。
バーコードリーダ10は、基板20、MCU(Micro Controller Unit)30A、MCU30B、スイッチ12、LED14、無線モジュール40、アンテナ41、カメラモジュール50、バッテリパック60、及びシンボル検出装置100を含む。
これらのうち、スイッチ12、LED14、及びアンテナ41以外の構成要素(基板20、MCU30A、MCU30B、無線モジュール40、カメラモジュール50、バッテリパック60、シンボル検出装置100)は、図1に示す筐体11の内部に配置されている。また、LED14は、基板20には実装されておらず、筐体11に取り付けられている。
また、MCU30A、MCU30B、無線モジュール40、カメラモジュール50、及びシンボル検出装置100は、バスで接続されている。
基板20は、例えば、FR−4(Flame Retardant type 4)規格のプリント基板である。基板20には、MCU30A、MCU30B、無線モジュール40、カメラモジュール50、及びシンボル検出装置100が実装される。MCU30A、MCU30B、無線モジュール40、カメラモジュール50、及びシンボル検出装置100には、基板20に形成される配線を介して電力が供給される。
また、MCU30B、カメラモジュール50、及びシンボル検出装置100は、画像処理装置500を構築する。
MCU30Aは、MCU30Bと無線モジュール40の間に設けられている。また、MCU30Aには、スイッチ12が接続されている。MCU30Aは、スイッチ12の操作に応じて二次元バーコードの読み取りを開始する制御、及び、MCU30Bと無線モジュール40を統括する制御等を行う。
MCU30Aがスイッチ12の操作に応じて二次元バーコードの読み取りを開始する制御とは、スイッチ12が押されてトリガーが発生したときに、MCU30AがMCU30BにActiveの割り込み要求信号(Interrupt)を出力する制御である。
MCU30AがMCU30Bを統括する制御としては、MCU30AがMCU30Bに割り込み要求信号(Interrupt)を送信し、MCU30Bの起動状態を切り替える制御がある。割り込み要求信号(Interrupt)がSleepの場合は、MCU30Bはスリープモードに設定され、割り込み要求信号(Interrupt)がActiveの場合は、MCU30Bは起動状態に設定される。
MCU30Aが無線モジュール40を統括する制御としては、MCU30Bが二次元バーコードのデータを読み取り、MCU30Aに伝送された場合に、伝送されたデータを無線モジュール40に伝送し、無線モジュール40にアンテナ41から送信させる処理がある。
MCU30Aは、バーコードリーダ10の動作を統括する制御部であるため、二次元バーコードの読み取り処理を行うMCU30Bに比べると消費電力は少なく、回路の規模も小さい。
MCU30Bは、MCU30Aとシンボル検出装置100の間に設けられている。MCU30Bは、シンボル検出装置100によって二次元バーコードが検出されると、シンボル検出装置100によって2値化された二次元バーコードの画像からデータを読み取る処理を行う。MCU30Bは、データ読取部の一例である。
バーコードリーダ10は、MCU30Bが二次元バーコードを検出するのではなく、シンボル検出装置100が二次元バーコードを検出した場合にMCU30Bが二次元バーコードの画像からデータを読み取る処理を行うことにより、消費電力の低下を図る。消費電力の低下の詳細については後述する。
無線モジュール40は、バーコードリーダ10とコンピュータ端末機を無線通信で接続する装置である。コンピュータ端末機は、例えば、小売店の会計用の端末機である。例えば、Bluetooth(登録商標)のような近距離無線通信を利用する場合は、無線モジュール40は、Bluetoothのモデムである。
無線モジュール40には、アンテナ41が接続される。アンテナ41から送信されるデータは、バーコードリーダ10と無線通信で接続されるコンピュータ端末機に送信される。
カメラモジュール50は、バーコードリーダ10の電源がオンのときに、スイッチ12が押されると、画像を連続的に撮像する。カメラモジュール50は、撮像部の一例である。カメラモジュール50は、例えば、カラー画像を撮像するカメラであり、例えば、1秒間に60フレームを連続的に撮像することができるカメラである。
スイッチ12は、バーコードリーダ10による二次元バーコードの読み取りを開始する際に押すと、トリガーを発生させるスイッチである。トリガーはMCU30Aに入力される。
バッテリパック60は、MCU30A、MCU30B、無線モジュール40、カメラモジュール50、及びシンボル検出装置100に電力を供給するための直流電源である。バーコードリーダ10は、一例として、ワイヤレス型であるため、バッテリパック60から供給される電力で作動する。
バッテリパック60としては、例えば、リチウムイオン電池のような繰り返し充電可能な二次電池を用いればよい。バーコードリーダ10がワイヤレス型であるため、バーコードリーダ10の消費電力を低減することが望ましい。
シンボル検出装置100は、MCU30Bとカメラモジュール50の間に設けられている。シンボル検出装置100としては、演算処理部を用いる。演算処理部は、例えば、FPGA(Field Programmable Gate Array)のようなプログラマブル論理回路である。
シンボル検出装置100は、カメラモジュール50から入力される画像を2値化し、さらに所定の処理を行うことにより、画像に含まれる二次元バーコードを検出する。シンボル検出装置100は、二次元バーコードを検出した場合には、二次元バーコードの検出に用いた画像の次のフレームの画像を2値化してMCU30Bに出力する。なお、シンボル検出装置100は、2値化した画像をMCU30Bに出力しない場合には、LED14を点灯する。
ここで、二次元バーコードの検出に用いた画像の次のフレームの画像とは、シンボル検出装置100が二次元バーコードの検出のために用いる画像とは別の画像であり、カメラモジュール50が、二次元バーコードの検出のために用いる画像の次のフレームの画像として撮像する画像である。
すなわち、シンボル検出装置100が二次元バーコードの検出のために用いる画像と、MCU30Bがデータを読み取るために用いる画像とは異なる。これは、次のような理由によるものである。
シンボル検出装置100としては、FPGAのようなプログラマブル論理回路を用いる。シンボル検出装置100として用いるプログラマブル論理回路は、カメラモジュール50によって撮像される画像の1フレーム分のデータを保持できるほどの容量を有していない。
このため、シンボル検出装置100が二次元バーコードの検出を終えたときには、二次元バーコードの検出に用いた画像の1フレーム分のデータは、シンボル検出装置100には残っていない。
このような理由から、シンボル検出装置100によって二次元バーコードが検出されると、シンボル検出装置100は、カメラモジュール50によって撮像される次のフレームの画像を2値化して、MCU30Bに出力する。
なお、カメラモジュール50は連続的に撮像を行っており、シンボル検出装置100によって二次元バーコードが検出された直後に次のフレームの画像としてカメラモジュール50で撮像された画像には、1つ前のフレームの画像と同様に、二次元バーコードが含まれる可能性が非常に高い。
このため、シンボル検出装置100によって二次元バーコードが検出された場合に、カメラモジュール50によって撮像される次のフレームの画像を2値化してMCU30Bに出力しても、MCU30Bによる二次元バーコードのデータの読み取りに生じないと考えてよい。
図3は、MCU30A、MCU30B、カメラモジュール50、及びシンボル検出装置100の詳細を示す図である。まず、MCU30Bの内部構成について説明する。
MCU30Bは、コア31B、メモリ32B、IC(Inter-Integrated Circuit:アイ・スクエア・シー)(登録商標)33B、DCMI(Data Center Manageability Interface)34B、DMA(Direct Memory Access)35B、IC36B、GPIO(General Purpose Input/Output)37B、及びバス38Bを有する。
コア31B、メモリ32B、IC33B、DCMI34B、DMA35B、IC36B、及びGPIO37Bは、バス38Bによって通信可能に接続されている。なお、DMA35Bは、カメラモジュール50がシンボル検出装置100経由でメモリ32Bに直接アクセスする際に経由するデバイスである。
MCU30Aは、IC36BとGPIO37Bを介してMCU30Bに接続されている。MCU30Aには、シリアルデータSDA及びシリアルクロックSCKがIC36Bから入力される。また、MCU30Aは、割り込み要求信号(Interrupt)をGPIO37Bに出力する。
MCU30Aに入力されるシリアルデータSDAは、MCU30BがQRコード1(図4参照)を読み取ったときに、MCU30Aに送信する読み取り結果を表すデータである。
シンボル検出装置100は、IC33BとDCMI34Bを介してMCU30Bに接続されている。シンボル検出装置100は、IC33Bを介してMCU30BにシリアルデータSDA及びシリアルクロックSCKを出力する。シンボル検出装置100がMCU30Bに出力するシリアルデータSDAは、例えば、カメラモジュール50が撮像を行っているときに、シンボル検出装置100がMCU30Bに出力するWait信号である。
また、シンボル検出装置100は、水平同期信号HREF3、垂直同期信号VSYNC3、データDATA3[7:0]、基準クロックPCLK3をDCMI34Bに出力する。
シンボル検出装置100とカメラモジュール50は、バスを介して接続されている。シンボル検出装置100は、カメラモジュール50にシリアルデータSDAとシリアルクロックSCKを出力し、カメラモジュール50から水平同期信号HREF1、垂直同期信号VSYNC1、基準クロックPCLK1、データDATA1[7:0]を受け取る。
なお、シンボル検出装置100がカメラモジュール50から受け取る水平同期信号HREF1及び垂直同期信号VSYNC1は、カメラモジュール50がカラーの画像を取得する際に用いる水平同期信号及び垂直同期信号である。
また、基準クロックPCLK1は、カメラモジュール50がカラーの画像を取得する際に用いる基準クロックである。また、データDATA1[7:0]は、カメラモジュール50が取得したカラーの画像のデータである。データDATA1[7:0]は、8ビットのデータである。
また、シンボル検出装置100が出力する水平同期信号HREF3及び垂直同期信号VSYNC3は、シンボル検出装置100から出力される2値化された画像のデータDATA3[7:0]に同期した水平同期信号及び垂直同期信号である。基準クロックPCLK3は、データDATA3[7:0]の処理に用いられる基準クロックである。
図4は、実施の形態のバーコードリーダ10が読み取る二次元バーコードを示す図である。ここでは、一例として、QRコード(登録商標)を読み取る形態について説明する。
QRコード1は、一例として、ファインダパターン2、アライメントパターン3、タイミングパターン4、データ領域5、及びクワイエットゾーン6を有する。
ファインダパターン2は、QRコード1の位置、大きさ、傾きを検出するために用いられるシンボル(記号又は符号)の一例である。図4に示すQRコード1は、一例として、3つのファインダパターン2を有する。ファインダパターン2は、QRコード1の位置、大きさ、傾きを検出するために用いられるマーク(印、標識、目印)として捉えることもできる。
アライメントパターン3は、QRコード1の歪みを補正するために用いられるパターンである。図4に示すQRコード1は、一例として、4つのアライメントパターン3を有する。タイミングパターン4は、QRコード1の中心座標を求めるために用いられるパターンである。
データ領域5は、QRコード1にデータを符号化して格納する領域である。図4では、データ領域5をグレーで示す。クワイエットゾーン6は、QRコード1の読み取りに必要とされる余白スペースであり、図4では、ファインダパターン2、アライメントパターン3、タイミングパターン4、データ領域5の周囲に白く示す部分である。
図5は、ファインダパターン2を示す図である。図6は、ファインダパターン2を読み取ったときの読み取りパターンを示す図である。
ファインダパターン2は、平面視で矩形状であり、周囲の矩形環状の黒パターン2A、黒パターン2Aの内側の白パターン2B、及び白パターン2Bの内側の矩形状の黒パターン2Cの3つのパターンを有する。白パターン2Bは、第1パターンの一例であり、黒パターン2A及び2Cは、第2パターンの一例である。
ここで、QRコード1(図4参照)を撮像した画像をラスタースキャン方式で、1行ずつ、かつ、各行において1画素ずつ読み取る場合に、図5に示す矢印A、B、又はCの方向にスキャンしたとする。矢印A、B、Cは、すべて直線状であり、すべて黒パターン2Cの中心を通る。
QRコード1(図4参照)が読み取られるときの角度(カメラが取得する画像の中での回転角度)によって、ラスタースキャンで読み取る方向は、例えば、矢印A、B、又はCの方向になる。
また、矢印A、B、Cは、ファインダパターン2の画像を複数行にわたってラスタースキャンで読み取る際に、黒パターン2Cの中心を通る行のみを示すものである。
矢印A、B、Cで示すように、黒パターン2Cの中心を通ってファインダパターン2を読み取る場合には、黒パターン2A、白パターン2B、黒パターン2C、白パターン2B、黒パターン2Aを通ることになる。
このように黒パターン2Cの中心を通ってファインダパターン2を読み取ると、黒パターン2A、白パターン2B、黒パターン2C、白パターン2B、黒パターン2Aの幅は、1:1:3:1:1になるように設定されている。
従って、QRコード1(図4参照)を撮像した画像をラスタースキャンで読み取ったときに、1:1:3:1:1の読み取りパターンが得られれば、読み取り部13がQRコード1(図4参照)に正しく向けられており、かつ、焦点が合っており、ファインダパターン2を正しく読み取っていることになる。
図6の横軸は、ラスタースキャンの方向と黒パターン2A、白パターン2B、黒パターン2Cの分布とを示す。図6の縦軸は、ラスタースキャンで読み取った各画素の画素値を示す。画素が黒い場合の画素値は'0'であり、画素が白い場合の画素値は'1'である。
ファインダパターン2を正しく読み取った場合には、図6に示すように、1:1:3:1:1の読み取りパターンが得られる。
バーコードリーダ10では、ファインダパターン2の検出は、シンボル検出装置100が行う。シンボル検出装置100は、ファインダパターン2を検出することによって、QRコード1(図4参照)を検出する。
図7は、実施の形態のバーコードリーダ10のシンボル検出装置100の構成を示す図である。
シンボル検出装置100は、2値化処理部110、パターン演算部120、パターン判定部130、出力部140、及び指示部150を有する。シンボル検出装置100は、さらに、端子101、102、103、104、105を有する。
ここでは、2値化処理部110、パターン演算部120、パターン判定部130、出力部140、及び指示部150の機能について簡単に説明する。
端子101は、IC33B(図3参照)に接続されており、シリアルデータSDAとシリアルクロックSCKを出力する端子である。端子101は、シンボル検出装置100の内部では指示部150と端子102に接続されている。
端子102は、カメラモジュール50に接続されており、端子101から入力されるシリアルデータSDAとシリアルクロックSCKをカメラモジュール50に出力する端子である。端子102は、シンボル検出装置100の内部では指示部150と端子101に接続されている。
端子103は、カメラモジュール50に接続されており、カメラモジュール50から水平同期信号HREF1、垂直同期信号VSYNC1、基準クロックPCLK1、データDATA1[7:0]が入力される端子である。端子103は、シンボル検出装置100の内部では2値化処理部110に接続されている。
端子104は、DCMI34Bに接続されている。また、端子104は、シンボル検出装置100の内部では出力部140に接続されている。端子104は、出力部140が出力する水平同期信号HREF3、垂直同期信号VSYNC3、データDATA3[7:0]、基準クロックPCLK3をDCMI34Bに出力する端子である。
端子105は、LED14に接続されている。シンボル検出装置100が2値化した画像をMCU30Bに出力しない場合には、パターン判定部130の出力に基づいてLED14が点灯される。
2値化処理部110は、端子103を介して入力される水平同期信号HREF1、垂直同期信号VSYNC1、基準クロックPCLK1を用いて、データDATA1[7:0]を2値化する。
データDATA1[7:0]は、カメラモジュール50で撮像されるカラー画像のデータである。カメラモジュール50は、画像をラスタースキャン方式で読み取るため、データDATA1[7:0]は、ラスタースキャン方式で読み取られた画素毎の画像データである。2値化では、白い画素の画素値を'255'にし、黒い画素の画素値を'0'にする。
2値化処理部110は、データDATA1[7:0]の2値化を行う際に、'0'に限りなく近い値の閾値を用いて、データDATA1[7:0]に含まれる画素値を2値化すればよい。
2値化処理部110は、データDATA1[7:0]を2値化した画像を表すデータDATA2[7:0]と、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2とを、パターン演算部120、パターン判定部130、出力部140に出力する。
水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2は、2値化処理部110が2値化の処理に要する時間だけ水平同期信号HREF1、垂直同期信号VSYNC1、基準クロックPCLK1をそれぞれシフトしたものであり、2値化された画像のデータDATA2[7:0]の処理に用いられる。
パターン演算部120は、2値化処理部110の出力側に設けられており、2値化処理部110から入力される水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2を用いて、データDATA2[7:0]に含まれる画素値('255'又は'0')の連続数をカウントし、連続数の比を算出する。
パターン判定部130は、パターン演算部120によって算出される比に基づいて、1:1:3:1:1の読み取りパターンを検出する。パターン判定部130は、1:1:3:1:1の読み取りパターンを3回検出すると、出力部140がDATA3[7:0]をMCU30Bに出力可能な状態にする。
出力部140には、パターン判定部130からDATA2[7:0]が入力される。出力部140は、パターン判定部130によってDATA2[7:0]を出力可能な状態にされると、DATA2[7:0]をDATA3[7:0]としてMCU30Bに出力する。出力部140は、パターン判定部130によってDATA2[7:0]を出力可能な状態にされない場合は、DATA3[7:0]をMCU30Bに出力しない。
指示部150は、カメラモジュール50への撮像の指示、MCU30Bへの割り込み要求信号(Interrupt)、及び、シリアルデータSDA及びシリアルクロックSCKの送信等を行う。割り込み要求信号(Interrupt)は、MCU30BをActive状態又はSleep状態にするための指示信号である。指示部150は、例えば、ICによって実現される。
次に、2値化処理部110、パターン演算部120、パターン判定部130、出力部140、及び指示部150の構成、機能、及び動作の詳細について説明する。
図8及び図9は、2値化処理部110の動作を表すタイミングチャートを示す図である。
図8には、基準クロックPCLK1、水平同期信号HREF1、データDATA1[7:0]、基準クロックPCLK2、水平同期信号HREF2、データDATA2[7:0]を示す。縦軸は各信号の信号レベルを表し、横軸は時間を表す。
図8に示すように、基準クロックPCLK1は、1周期がtPCLK1である。基準クロックPCLK1の周波数は、例えば、60Hzである。
水平同期信号HREF1は、カメラモジュール50が取得(撮像)するカラー画像のデータの水平方向のデータが有効かどうかを表す信号である。水平同期信号HREF1は、画素にデータがあればH(High)レベルになり、データがなければL(Low)レベルになる。
カメラモジュール50は、画像をラスタースキャン方式で読み取るため、水平同期信号HREF1は、水平方向に1行読み取える度にLレベルになる。すなわち、水平同期信号HREF1がLレベルになるのは、画像のデータの行の切り替わりのときである。
時刻t1で水平同期信号HREF1がHレベルになると、データDATA1[7:0]の値が得られる。図8には、YUV422の場合のデータDATA1[7:0]を示す。YUV422の場合は、基準クロックPCLK1の1周期の間に、輝度を表すYiのデータと、色差を表すUi又はViのいずれか一方とが得られる。なお、iは0から始まる連続数(0以上の自然数)であり、輝度Yi、色差Ui、色差Viのそれぞれに割り当てられる。
基準クロックPCLK2の周期tPCLK2は、基準クロックPCLK1の周期tPCLK1の2倍に設定される。すなわち、tPCLK2=tPCLK1×2である。2値化処理部110は、基準クロックPCLK1を分周して基準クロックPCLK2を生成する。このため、2値化処理部110は、基準クロックPCLK1を分周する分周器を有する。
水平同期信号HREF2は、2値化処理部110で水平同期信号HREF1にオフセット時間tWFREF2が与えられて出力される。オフセット時間tWFREF2は、基準クロックPCLK1の周期tPCLK1の2倍以上であればよい。すなわち、tWFREF2≧tPCLK1である。このため、2値化処理部110は、水平同期信号HREF1の位相をオフセットする位相シフタ(Phase Shifter)を有する。
図8にはtWFREF2=tPCLK1×2の場合の水平同期信号HREF2を示す。水平同期信号HREF2にオフセット時間tWFREF2を与えるのは、2値化処理部110でデータDATA1[7:0]を2値化する処理に要する時間を考慮したものである。
このため、時刻t1よりもオフセット時間tWFREF2だけ遅れた時刻t2に、水平同期信号HREF2が立ち上がり、2値化された画像のデータDATA2[7:0]が読み取られ始める。
データDATA2[7:0]の値B0、B1、B2、B3、・・・、B9、B10は、それぞれ、データDATA1[7:0]の輝度Y0、Y1、Y2、Y3、・・・、Y9、Y10を2値化した画素値を表す。2値化された画素値は、白の場合'255'であり、黒の場合'0'である。2値化された画素値は、'255'(白)と'0'(黒)の2値で表される。
図9には、基準クロックPCLK1、垂直同期信号VSYNC1、及び垂直同期信号VSYNC2を示す。縦軸は各信号の信号レベルを表し、横軸は時間を表す。
垂直同期信号VSYNC1は、カメラモジュール50が1フレームの画像を取得(撮像)する度に、Lになる信号である。垂直同期信号VSYNC1は、カメラモジュール50が1フレームの画像を取得している間は、Hレベルになる。
垂直同期信号VSYNC2は、2値化処理部110で垂直同期信号VSYNC1に対してオフセット時間tWVSYNC21が与えられて出力される。オフセット時間tWVSYNC21は、オフセット時間tWFREF2以上であればよい。すなわち、tWVSYNC21≧tWFREF2である。2値化処理部110は、内部の位相シフタ(Phase Shifter)で、垂直同期信号VSYNC1に対してオフセット時間tWVSYNC21を与える。
図9にはtWFREF2=tPCLK1×2の場合の垂直同期信号VSYNC2を示す。垂直同期信号VSYNC2にオフセット時間tWVSYNC21を与えるのは、2値化処理部110でデータDATA1[7:0]を2値化する処理に要する時間を考慮したものである。
以上のようにして、2値化処理部110は、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]を生成し、パターン演算部120、パターン判定部130、出力部140に出力する。2値化処理部110は、分周器と位相シフタ(Phase Shifter)を有する。
図10は、パターン演算部120を示す図である。
パターン演算部120は、端子121A、121B、121C、121D、121E、パルス生成器122、カウンタ123、シフトレジスタ124、及び除算器125を有する。端子121A、121B、121C、121D、121Eのうち、端子121A及び121Eは(M+1)個ある。(M+1)個は、後述する除算結果DIV[M:0]のビット数と同一の数である。なお、端子121A及び121E以外は、1つずつである。
端子121Aは、2値化処理部110に接続されており、データDATA2[7:0]が入力される端子である。端子121Aは、パターン演算部120の内部ではパルス生成器122に接続されている。データDATA2[7:0]は、端子121Aを経てパルス生成器122に入力される。
端子121Bは、2値化処理部110に接続されており、基準クロックPCLK2が入力される端子である。端子121Bは、パターン演算部120の内部ではパルス生成器122とカウンタ123の入力端子(CLK)に接続されている。基準クロックPCLK2は、端子121Bを経てパルス生成器122とカウンタ123の入力端子(CLK)に入力される。
端子121Cは、2値化処理部110に接続されており、水平同期信号HREF2が入力される端子である。端子121Cは、パターン演算部120の内部では、カウンタ123のリセット端子Rと、シフトレジスタ124のFF124A及び124Bのリセット端子Rとに、それぞれ、反転素子123Aと、反転素子124A1及び124B1とを介して接続されている。
水平同期信号HREF2は、端子121Cを経て、反転素子123A、124A1、及び124B1で反転されて、カウンタ123、FF124A、及び124Bのリセット端子Rに入力される。
端子121Dは、パターン判定部130に接続されており、パターン演算部120の内部ではパルス生成器122の出力端子に接続されている。パルス生成器122が発生するパルスPULSE1は、端子121Dを経てパターン判定部130に出力される。
端子121Eは、(M+1)個あり、それぞれがパターン判定部130に接続されている。端子121Eは、パターン演算部120の内部では除算器125の出力端子(OUT[M:0])に接続されている。除算器125が出力する除算結果DIV[M:0]は、端子121Eを介してパターン判定部130に出力される。
パルス生成器122は、端子121Aから入力されるデータDATA2[7:0]と、端子121Bから入力される基準クロックPCLK2とに基づき、パルスPULSE1を生成して出力する。
パルス生成器122は、データDATA2[7:0]の値('255'と'0')が切り替わる際に、基準クロックPCLK2の1周期分の期間にわたってHレベルになるパルスPULSE1を生成する。すなわち、パルス生成器122は、2値化されたデータDATA2[7:0]が黒から白、又は、白から黒に切り替わる際に、パルスPULSE1を生成する。このようにパルスPULSE1がHレベルになるとき以外は、パルスPULSE1はLレベルに保持される。
パルス生成器122が生成するパルスPULSE1は、カウンタ123のクロック入力端子と、シフトレジスタ124のFF(Flip Flop)124A及び124Bのクロック入力端子とに入力されるとともに、端子121Dを介してパターン判定部130に出力される。
なお、データDATA2[7:0]は、2値化された画像の画素値を表す。データDATA2[7:0]が示す画素値は、'255'(白)又は'0'(黒)である。すなわち、データDATA2[7:0]が'255'のときは、8つのビット値がすべて'1'であり、データDATA2[7:0]が'0'のときは、8つのビット値がすべて'0'である。このため、パルス生成器122には、データDATA2[7:0]の代わりに、8ビットのデータDATA2[7:0]のうちのいずれか1つのビット値が入力されるようにしてもよい。このような構成でも、パルス生成器122は、同様にパルスPULSE1を生成できる。
カウンタ123は、基準クロックPCLK2の周期数をカウントし、カウント値CNTOUT[N:0]を出力する。
カウンタ123のカウント値CNTOUT[N:0]は、パルス生成器122からクロック入力端子に入力されるパルスPULSE1がHレベルになると、又は、水平同期信号HREF2が反転素子123Aで反転されてリセット端子Rに入力される反転値がHレベルになると、リセットされる。
カウンタ123が出力するカウント値CNTOUT[N:0]は、シフトレジスタ124のFF124Aに出力される。
なお、カウント値CNTOUT[N:0]は、N+1ビットのデータであり、N+1の値は、QRコード1(図4参照)において、連続する黒の画素、又は、白の画素の最大値に所定の余裕値を加えた値に設定すればよい。
シフトレジスタ124は、FF124A及び124Bを(N+1)個ずつ有する。FF124Aは、第1保持部の一例であり、FF124Bは、第2保持部の一例である。
FF124A及び124Bの数(N+1)は、カウント値CNTOUT[N:0]のビット数に等しい。(N+1)個のFF124Aの接続関係は、互いにすべて等しい。これは、(N+1)個のFF124Bについても同様である。
FF124Aのデータ入力端子には、カウンタ123の出力端子が接続されており、カウンタ123からカウント値CNTOUT[N:0]が入力される。また、FF124Aのクロック入力端子には、パルス生成器122の出力端子が接続されており、パルスPULSE1が入力される。これは(N+1)個のFF124Aのすべてにおいて同様である。
FF124Aのリセット端子Rには、反転素子124A1を介して端子121Cが接続されている。これは(N+1)個のFF124Aのすべてにおいて同様である。また、(N+1)個のFF124Aのデータ出力端子は、それぞれ、(N+1)個のFF124Bのデータ入力端子と、除算器125の(N+1)個のデータ入力端子D1[N:0]とに接続されている。
(N+1)個のFF124Bのデータ入力端子には、それぞれ、(N+1)個のFF124Aのデータ出力端子が接続されている。また、FF124Bのクロック入力端子には、パルス生成器122の出力端子が接続されており、パルスPULSE1が入力される。これは(N+1)個のFF124Bのすべてにおいて同様である。
FF124Bのリセット端子Rには、反転素子124B1を介して端子121Cが接続されている。これは(N+1)個のFF124Bのすべてにおいて同様である。また、(N+1)個のFF124Bのデータ出力端子は、それぞれ、除算器125の(N+1)個のデータ入力端子D2[N:0]に接続されている。
シフトレジスタ124は、FF124A及び124Bのデータ入力端子の値を保持し、パルスPULSE1が入力される度に、FF124Aのデータ入力端子の値をFF124Bのデータ入力端子に反映(シフト)するとともに、除算器125のデータ入力端子D1[N:0]に出力する。
ここでは、FF124A及び124Bが出力するカウント値を区別するために、FF124Aが出力するカウント値をCNT1[N:0]と称し、FF124Bが出力するカウント値をCNT2[N:0]と称す。カウント値CNT1[N:0]とカウント値CNT2[N:0]は、データDATA2[7:0]に含まれる画素値('255'又は'0')の連続数を表す。カウント値CNT1[N:0]は、第1連続値又は第2連続値の一例であり、カウント値CNT2[N:0]は、第2連続値又は第1連続値の一例である。
また、FF124A及び124Bは、水平同期信号HREF2がLレベルになり、リセット端子RにHレベルの信号が入力されると、データ入力端子の値がリセットされる。
除算器125は、データ入力端子D1[N:0]及びD2[N:0]、リセット端子R、及びデータ出力端子OUT[M:0]を有する。除算器125は、算出部の一例である。
データ入力端子D1[N:0]及びD2[N:0]には、それぞれ、(N+1)個のFF124Aのデータ出力端子、及び、(N+1)個のFF124Bのデータ出力端子が接続されている。
また、リセット端子Rには反転素子125Aを介して2値化処理部110が接続されており、水平同期信号HREF2が反転されて入力される。データ出力端子OUT[M:0]は、パターン判定部130に接続されている。
除算器125は、水平同期信号HREF2の反転値がHレベルになるとリセットされる。すなわち、ラスタースキャンで水平方向の読み取りが終わると(各行の画素の読み取りが終わると)、除算器125は、Lレベルの水平同期信号HREF2の反転値によってリセットされる。
除算器125は、リセットされると、データ入力端子D1[N:0]に入力されるカウント値CNT1[N:0]を、データ入力端子D2[N:0]に入力されるカウント値CNT2[N:0]で除算し、除算結果DIV[M:0]をデータ出力端子OUT[M:0]から出力する。
除算器125は、データ入力端子D1[N:0]に入力されるカウント値CNT1[N:0]と、データ入力端子D2[N:0]に入力されるカウント値CNT2[N:0]とが切り替わる度に、除算結果DIV[M:0]をデータ出力端子OUT[M:0]からパターン判定部130に出力する。
なお、除算結果DIV[M:0]は、M+1ビットのデータであり、M+1の値は、データ入力端子D1[N:0]に入力される値(カウント値)を、データ入力端子D2[N:0]に入力される値(カウント値)で除算して得る除算結果の最大値に所定の余裕値を加えた値に設定すればよい。
図11は、パターン演算部120の動作を表すタイミングチャートを示す図である。図11には、基準クロックPCLK2、データDATA2[7:0]、パルスPULSE1、カウント値CNTOUT[N:0]、カウント値CNT1[N:0]、カウント値CNT2[N:0]、除算結果DIV[M:0]を示す。図11において、縦軸は各信号の信号レベルを示し、横軸は時間を示す。
時刻t10でデータDATA2[7:0]が不定(xxxx)の状態から'0'になると、パルスPULSE1がクロックPCLK2の1周期の期間にわたってHレベルになり、カウンタ123がカウントを開始する。
図11の動作例では、時刻t11でデータDATA2[7:0]が'0'(黒)から'255'(白)に切り替わるまでに、カウンタ123のカウント値CNT1[N:0]は10進数で'21'になる。
また、時刻t10の直前では、カウント値CNTOUT[N:0]はx、カウント値CNT1[N:0]はy、カウント値CNT2[N:0]はz、除算結果DIV[M:0]は不定(xxxx)である。時刻t10から時刻t11までの間に、カウント値CNT1[N:0]はx、カウント値CNT2[N:0]はy、除算結果DIV[M:0]はx/yに切り替わって行く。
時刻t11でデータDATA2[7:0]が'0'(黒)から'255'(白)に切り替わると、パルスPULSE1がクロックPCLK2の1周期の期間にわたってHレベルになり、カウンタ123がリセットされてからカウントを開始する。
時刻t11から時刻t12でデータDATA2[7:0]が'255'(白)から'0'(黒)に切り替わるまでに、カウンタ123のカウント値CNT1[N:0]は10進数で'7'になる。
また、時刻t11から時刻t12までの間に、カウント値CNT1[N:0]は21、カウント値CNT2[N:0]はx、除算結果DIV[M:0]は21/xに切り替わって行く。
時刻t12でデータDATA2[7:0]が'255'(白)から'0'(黒)に切り替わると、パルスPULSE1がクロックPCLK2の1周期の期間にわたってHレベルになり、カウンタ123がリセットされてからカウントを開始する。
時刻t12移行には、カウント値CNT1[N:0]は7、カウント値CNT2[N:0]は21、除算結果DIV[M:0]は7/21に切り替わって行く。
図12は、パターン判定部130を示す図である。
パターン判定部130は、端子131A、131B、131C、131D、131E、131F、パルス生成器132、シフトレジスタ133、コンパレータ134、及び論理部135を有する。端子131A、131B、131C、131D、131E、131Fのうち、端子131A及び131Dは、(M+1)個ある。端子131A及び131D以外は、1つずつである。
端子131Aは、(M+1)個あり、2値化処理部110に接続されている。端子131Aは、データDATA2[7:0]が入力される端子である。端子131Aは、パターン判定部130の内部ではパルス生成器132に接続されている。データDATA2[7:0]は、端子121Aを経てパルス生成器132に入力される。
端子131Bは、2値化処理部110に接続されており、基準クロックPCLK2が入力される端子である。端子131Bは、パターン判定部130の内部ではパルス生成器132の入力端子(CLK)に接続されている。基準クロックPCLK2は、端子131Bを経てパルス生成器132の入力端子(CLK)に入力される。
端子131Cは、パターン演算部120の端子121D(図10参照)に接続されている。端子131Cは、パターン判定部130の内部では、シフトレジスタ133のFF133A、133B、133C、133Dのクロック入力端子に接続されている。パターン演算部120から出力されるパルスPULSE1は、端子131Cを経てFF133A、133B、133C、133Dのクロック入力端子に入力される。
端子131Dは、パターン演算部120の端子121E(図10参照)に接続されており、パターン判定部130の内部では、シフトレジスタ133のFF133Aのデータ入力端子に接続されている。端子131Dは、(M+1)個あり、シフトレジスタ133のFF133Aも(M+1)個である。
パターン演算部120の(M+1)個の端子121Eから出力される除算結果DIV[M:0]は、ビット毎にFF133Aのデータ入力端子に入力される。
端子131Eは、2値化処理部110に接続されており、水平同期信号HREF2が入力される端子である。端子131Eは、パターン判定部130の内部では、シフトレジスタ133のFF133A、133B、133C、133Dのリセット端子Rに、それぞれ、反転素子133A1、133B1、133C1、133D1を介して接続されている。
端子131Fは、パターン判定部130の内部では、論理部135の出力端子に接続されており、論理部135の出力を出力部140及び端子105(図7参照)に出力する。
パルス生成器132は、端子131Aから入力されるデータDATA2[7:0]と、端子131Bから入力される基準クロックPCLK2とに基づき、パルスPULSE2を生成して出力する。
パルス生成器132は、データDATA2[7:0]の値('255'と'0')が切り替わる際に、基準クロックPCLK2の1周期分の期間にわたってHレベルになるパルスPULSE2を生成する。
パルス生成器132が生成するパルスPULSE2は、コンパレータ134のパルス入力端子PLSに入力される。パルスPULSE2は、コンパレータ134の出力をリセットするために用いられる。
なお、パルスPULSE2は、パターン演算部120のパルス生成器122が生成するパルスPULSE1と同様のパルスである。このため、パルス生成器132を設けずに、パルスPULSE1をコンパレータ134のパルス入力端子PLSに入力してもよい。
シフトレジスタ133は、FF133A、133B、133C、133Dを(M+1)個ずつ有する。FF133A、133B、133C、133Dのリセット端子Rには、それぞれ、反転素子133A1、133B1、133C1、133D1を介して端子131が接続されている。また、FF133A、133B、133C、133Dのクロック入力端子には端子131Cが接続されている。これは、(M+1)個のFF133A、133B、133C、133Dのすべてにおいて同様である。
(M+1)個のFF133Aのデータ入力端子には、(M+1)個の端子131Dから除算結果DIV[M:0]がビット毎に入力される。(M+1)個のFF133Aのデータ出力端子は、それぞれ、(M+1)個のFF133Bのデータ入力端子と、コンパレータ134の4種類の(M+1)個の入力端子のうちの1種類の(M+1)個の入力端子とに接続される。
また、(M+1)個のFF133Bのデータ入力端子には、(M+1)個のFF133Aのデータ出力端子が接続される。(M+1)個のFF133Bのデータ出力端子は、それぞれ、(M+1)個のFF133Cのデータ入力端子と、コンパレータ134の4種類の(M+1)個の入力端子のうちの1種類の(M+1)個の入力端子とに接続される。
同様に、(M+1)個のFF133Cのデータ入力端子には、(M+1)個のFF133Bのデータ出力端子が接続される。(M+1)個のFF133Cのデータ出力端子は、それぞれ、(M+1)個のFF133Dのデータ入力端子と、コンパレータ134の4種類の(M+1)個の入力端子のうちの1種類の(M+1)個の入力端子とに接続される。
(M+1)個のFF133Dのデータ出力端子は、コンパレータ134の4種類の(M+1)個の入力端子のうちの1種類の(M+1)個の入力端子に接続される。
シフトレジスタ133は、パルスPULSE1がFF133A、133B、133C、133Dのクロック入力端子に入力される度に、端子131DからFF133Aに入力される除算結果DIV[M:0]を次のFF133B、133C、133Dに反映(シフト)しながら保持する。
ここでは、FF133A、133B、133C、133Dがそれぞれデータ入力端子に保持する除算結果DIV[M:0]を、それぞれ、除算結果DIV1[M:0]、除算結果DIV2[M:0]、除算結果DIV3[M:0]、除算結果DIV4[M:0]と称す。
除算結果DIV1[M:0]は、4つのうちで最も新しい除算結果であり、除算結果DIV4[M:0]は、4つのうちで最も古い除算結果である。
コンパレータ134は、パルス入力端子PLSがパルス生成器132の出力端子に接続され、4種類の(M+1)個の入力端子は、1種類ずつ、(M+1)個のFF133A、133B、133C、133Dのデータ出力端子に接続されている。また、コンパレータ134の出力端子は、論理部135の入力端子に接続されている。コンパレータ134は、判定部の一例である。
4種類の(M+1)個の入力端子とは、4(M+1)個の入力端子であり、(M+1)個のFF133A、133B、133C、133Dのデータ出力端子(4(M+1)個のデータ出力端子)に接続するために、4つのグループに分けられている。
コンパレータ134は、比較用の許容範囲を表す値を保持する保持部134Aを有している。保持部134Aは、第3保持部の一例である。保持部134Aが有する許容範囲を表す値は、4つあり、それぞれ、除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]と比較される。
例えば、図6に示すように黒パターン2A、白パターン2B、黒パターン2Cの幅が1:1:3:1:1である場合に、図6に示す矢印A、B、Cのいずれかに沿ってファインダパターン2をスキャンした場合を考える。矢印A、B、Cのいずれかに沿ってファインダパターン2をスキャンすることは、理想的なスキャンが行われた場合に相当する。
このような場合には、除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]は、それぞれ、1、1/3、3、1の4つの値を取る。
除算結果DIV1[M:0]の1は、黒パターン2Aの幅を白パターン2Bの幅で除算して得られる。除算結果DIV2[M:0]の1/3は、白パターン2Bの幅を黒パターン2Cの幅で除算して得られる。
除算結果DIV3[M:0]の3は、黒パターン2Cの幅を白パターン2Dの幅で除算して得られる。除算結果DIV4[M:0]の1は、白パターン2Bの幅を黒パターン2Aの幅で除算して得られる。
従って、保持部134Aが保持する4つの許容範囲を表す値は、それぞれ、1、1/3、3、1に、所定の許容値を加えて得る範囲を表す値であればよい。許容値は、例えば、±10%である。±10%程度であれば、比の判定に支障が生じないからである。
なお、保持部134Aが保持する4つの許容範囲を表す値が±10%の許容値を有するようにするためには、次のようにすればよい。ここでは、除算結果DIV1[M:0]と、除算結果DIV1[M:0]に対応する1つの許容範囲を表す値との関係について説明する。
例えば(M+1)ビットが5ビットである場合に、除算結果DIV1[M:0]の上位の2ビットから3ビットの値と、許容範囲を表す値(5ビット)の上位の2ビットから3ビットの値とを比較し、一致すれば、許容範囲に入っていることとすればよい。すなわち、下位の1又は複数のビットを切り捨てて比較することにより、許容値を有する許容範囲を実現することができる。
コンパレータ134は、パルス生成器132からパルス入力端子PLSに入力されるパルスPULSE2がHレベルになると、比較結果CMPOUTを'0'にリセットする。
コンパレータ134は、FF133A、133B、133C、133Dのデータ出力端子から入力される4つの除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]が、すべてそれぞれの除算値の許容範囲に入っていれば、'1'を出力する。いずれか1つでも許容範囲に入っていない場合は、'0'を出力する。そして、コンパレータ134が出力する比較結果CMPOUTは、論理部135に入力される。
論理部135は、入力端子がコンパレータ134の出力端子に接続されており、コンパレータ134の比較結果CMPOUTが入力される。論理部135は、比較結果CMPOUTに応じて出力LOGOUTを出力する。
ここで、コンパレータ134、論理部135、及び出力部140は、転送部の一例である。
論理部135は、比較結果CMPOUTが3回'1'に達した場合に、Hレベルの出力LOGOUTを出力する。論理部135は、比較結果CMPOUTが3回'1'に達しない(3回未満の)場合は、Lレベルの出力LOGOUTを出力する。
出力LOGOUTがHレベルの場合には、出力部140は2値化した画像のデータをMCU30Bに転送する。この場合には、LED14は点灯されない。出力LOGOUTがLレベルの場合には、出力部140は2値化した画像のデータをMCU30Bに転送しない。この場合には、LED14は点灯される。すなわち、LED14は、出力LOGOUTがLレベルの場合に点灯される。これは、LED14が出力LOGOUTの信号レベルを反転した信号に基づいて点灯されるようにしておけば、出力LOGOUTがLレベルの場合に、LED14にHレベルの信号が入力され、LED14を点灯することができる。LED14に入力されるHレベルの信号の電圧値は、LED14がオンになる閾値以上の電圧値に設定しておけばよい。
例えば、QRコード1(図4参照)を撮像した画像をラスタースキャン方式で、1行ずつ、かつ、各行において1画素ずつ読み取る場合に、図5に示す矢印Aに平行な方向にスキャンを繰り返しているとする。そのような場合に、ファインダパターン2の黒パターン2Cの中心の近傍をスキャンすると、比較結果CMPOUTが'1'になる。
このように比較結果CMPOUTが'1'になることが3回起きると、論理部135は、Lレベルの出力LOGOUTを出力する。このような論理部135は、プログラマブル論理回路の論理を組むことによって実現可能である。
また、ここでは、比較結果CMPOUTが3回'1'に達した場合に、論理部135がHレベルの出力LOGOUTを出力する形態について説明するが、3回には限らず、1回以上であって、シンボル検出装置100によるファインダパターン2の検出に、ある程度の信頼性を担保できる所定の回数であればよい。
図13は、パターン判定部130が比較結果CMPOUTを出力するまでの動作を表すタイミングチャートを示す図である。図13には、基準クロックPCLK2、データDATA2[7:0]、パルスPULSE1、パルスPULSE2、除算結果DIV1[M:0]、除算結果DIV2[M:0]、除算結果DIV3[M:0]、除算結果DIV4[M:0]、比較結果CMPOUTを示す。図13において、縦軸は各信号の信号レベルを示し、横軸は時間を示す。
時刻t20でデータDATA2[7:0]が不定(xxxx)の状態から'0'になると、パルスPULSE1及びパルスPULSE2がクロックPCLK2の1周期の期間にわたってHレベルになる。
パルスPULSE1がHレベルになることにより、FF133A、133B、133C、133Dがデータ出力端子に保持する値をデータ出力端子にシフトし、除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]に値が反映される。
このため、時刻t20の直前の除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]の値A1、A2、A3が、時刻t20で除算結果DIV2[M:0]、DIV3[M:0]、DIV4[M:0]にシフトされる。また、時刻t20では除算結果DIV1[M:0]の値はW4になる。
また、時刻t20でパルスPULSE2がHレベルになることにより、コンパレータ134は、時刻t20の直前の除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]の値A1、A2、A3、A4を許容範囲の値を比較し、比較結果CMPOUTとして'0'を出力したとする。
時刻t21でデータDATA2[7:0]が'0'から'255'になると、パルスPULSE1及びパルスPULSE2がクロックPCLK2の1周期の期間にわたってHレベルになる。
パルスPULSE1がHレベルになることにより、時刻t21の直前の除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]の値W4、A1、A2が、時刻21で除算結果DIV2[M:0]、DIV3[M:0]、DIV4[M:0]にシフトされる。また、時刻t21では除算結果DIV1[M:0]の値はW3になる。
また、時刻t21でパルスPULSE2がHレベルになることにより、コンパレータ134は、時刻t21の直前の除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]の値W4、A1、A2、A3を許容範囲の値を比較し、比較結果CMPOUTとして'0'を出力したとする。
そして、さらに、時刻t22でデータDATA2[7:0]が'255'から'0'になると、パルスPULSE1及びパルスPULSE2がクロックPCLK2の1周期の期間にわたってHレベルになる。
パルスPULSE1がHレベルになることにより、時刻t22の直前の除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]の値W3、W4、A1が、時刻22で除算結果DIV2[M:0]、DIV3[M:0]、DIV4[M:0]にシフトされる。また、時刻t22では除算結果DIV1[M:0]の値はW2になる。
また、時刻t22でパルスPULSE2がHレベルになることにより、コンパレータ134は、時刻t22の直前の除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]の値W3、W4、A1、A2を許容範囲の値を比較し、比較結果CMPOUTとして'1'を出力したとする。
図14は、論理部135の動作を表すタイミングチャートを示す図である。図14には、基準クロックPCLK2、比較結果CMPOUT、出力LOGOUTを示す。図14において、縦軸は各信号の信号レベルを示し、横軸は時間を示す。
時刻t30において、比較結果CMPOUTが'0'から'1'に遷移したとする。また、時刻t31において、比較結果CMPOUTは'0'にリセットされる。比較結果CMPOUTのリセットは、コンパレータ134のパルス入力端子PLSにパルス生成器132から入力されるパルスPULSE2がHレベルになったときに行われる。
また、時刻t32においても、比較結果CMPOUTが'0'から'1'に遷移し、時刻t33で'0'にリセットされたとする。
さらに、時刻t34においても、比較結果CMPOUTが'0'から'1'に遷移し、時刻t35で'0'にリセットされたとする。
このように、比較結果CMPOUTが'1'になることが3回起きると、時刻t36において、論理部135は、出力LOGOUTをLレベルからHレベルに遷移する。
図15は、出力部140を示す図である。
出力部140は、2つの入力端子と出力端子を有する。出力部140の一方の入力端子は、論理部135(図12参照)の出力端子に接続されており、出力LOGOUTが入力される。出力部140の他方の入力端子は、2値化処理部110の出力端子に接続されており、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]が入力される。
また、出力部140の出力端子は、MCU30BのDCMI34B(図3及び図7参照)に接続されている。
出力部140は、出力LOGOUTの信号レベルがHレベル('1')のときには、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]を、それぞれ、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]としてMCU30Bに出力する。
一方、出力部140は、出力LOGOUTの信号レベルがLレベル('0')のときには、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]をMCU30Bに出力しない。出力LOGOUTの信号レベルがLレベル('0')のときは、QRコード1(図4参照)のファインダパターン2が検出されていないからである。
図16は、出力部140の動作を表す真理値表である。
図16に示す真理値表は、出力部140に入力される論理部135(図12参照)の出力LOGOUTの信号レベルと、出力部140が出力する水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]の内容との関係を示す。
図16に示すように、出力部140は、出力LOGOUTがHレベル('1')のときは、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]として、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]をMCU30Bに出力する。
一方、出力部140は、出力LOGOUTがLレベル('0')のときは、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]の値をすべて'0'に設定してMCU30Bに出力する。
これは、出力LOGOUTがLレベル('0')のときは、出力部140が、2値化処理部110から入力される水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]をMCU30Bに出力しないことと同義である。
次に、図17乃至図20のシーケンス図を用いて、シンボル検出装置100の動作例について説明する。
図17乃至図20は、シンボル検出装置100の動作例を示すシーケンス図である。
図17には、スイッチ12、MCU30A、MCU30B、シンボル検出装置100、カメラモジュール50の動作を示す。また、図17の右端には、MCU30A、MCU30B、シンボル検出装置100、カメラモジュール50のトータルの消費電流を示す。なお、図17において、時間軸は、図面の上方から下方に向かう方向である。
図17に示すように、スイッチ12が押されるとトリガーが生成され、MCU30Aに送られる。このとき、MCU30BはSleep状態であり、MCU30A、シンボル検出装置100、カメラモジュール50はオフである。
MCU30Aがスイッチ12のトリガーを検出すると、MCU30AによってMCU30BがActiveにされる。MCU30Bは、Activeにされるとシンボル検出装置100に撮像の指示を送る。
シンボル検出装置100は、撮像の指示を受けると、カメラモジュール50に撮像を行わせるとともに、MCU30BにWait信号を送信する。MCU30Bは、待機(Wait)状になる。
撮像の指示を受けたカメラモジュール50は、撮像した画像のデータをシンボル検出装置100に転送する。カメラモジュール50は、画像のデータをラスタースキャン方式で画素毎に転送するため、カメラモジュール50が画像の転送を開始してから終了するまでの期間は、シンボル検出装置100が画像を受け取り始めてから受け取り終わるまでの期間と一部で重複する。
シンボル検出装置100は、カメラモジュール50から画素毎に転送される画像を読み取り、ファインダパターン2の検出処理を行う。ここで、ファインダパターン2が検出されない(シンボル非検出)という結果になると、カメラモジュール50は、2フレーム目の撮像を行い、撮像した画像のデータをシンボル検出装置100に転送する。
シンボル検出装置100は、カメラモジュール50から画素毎に転送される画像を読み取り、ファインダパターン2の検出処理を行う。ここで、再度ファインダパターン2が検出されない(シンボル非検出)という結果になると、カメラモジュール50は、3フレーム目の撮像を行う。
このようにファインダパターン2の検出処理を行った結果、シンボル非検出となっても、MCU30BはSleep状態であり、ファインダパターン2の検出処理はシンボル検出装置100によって行われるため、消費電流は少なくて済む。
また、図18には、図17に示すシーケンスのうちのシンボル検出装置100の内部の処理をMCU30B及びカメラモジュール50の動作とともに示す。図18に示すシーケンスは、図17において、MCU30Bから撮像の指示を受けたシンボル検出装置100がカメラモジュール50に撮像の指示を送信する時点から始まる。なお、図18に示すシーケンスでは、MCU30BはWait状態に保持されている。
図18には、シンボル検出装置100の内部の構成要素である、2値化処理部110、パターン演算部120、パターン判定部130、出力部140、及び指示部150を示す。
まず、指示部150がカメラモジュール50に撮像の指示を行うと、カメラモジュール50は撮像を行い、撮像した画像のデータをシンボル検出装置100に転送する。
2値化処理部110は、カメラモジュール50から画素毎に転送される画像を2値化し、パターン演算部120に送る。パターン演算部120は、白い画素と黒い画素の連続数の比を計算し、計算結果をパターン判定部130に送る。
パターン判定部130は、ファインダパターン2の検出処理を行い、シンボル非検出になると、カメラモジュール50への撮像の指示を指示部150に行わせる。カメラモジュール50は撮像を行い、撮像した画像のデータを画素毎にシンボル検出装置100に転送する。
2値化処理部110は、カメラモジュール50から画素毎に転送される画像を2値化し、パターン演算部120に送る。パターン演算部120は、白い画素と黒い画素の連続数の比を計算し、計算結果をパターン判定部130に送る。
パターン判定部130は、ファインダパターン2の検出処理を行い、シンボル非検出になると、カメラモジュール50への撮像の指示を指示部150に行わせる。
このように、ファインダパターン2が検出されない(シンボル非検出の)ときは、出力部140は、画像のデータをMCU30Bに転送しない。
次に、図19及び図20を用いて、ファインダパターン2の検出が成功する場合のシーケンスについて説明する。
図19では、カメラモジュール50からシンボル検出装置100に画像のデータが転送された後の時点から説明を行う。スイッチ12が押されてから、シンボル検出装置100に画像のデータが転送されるまでの動作は、図17に示すものと同様である。
シンボル検出装置100は、カメラモジュール50から画素毎に転送される画像を読み取り、ファインダパターン2の検出処理を行う。ここで、ファインダパターン2が検出されない(シンボル非検出)という結果になると、カメラモジュール50は、2フレーム目の撮像を行い、撮像した画像のデータをシンボル検出装置100に転送する。
シンボル検出装置100は、カメラモジュール50から画素毎に転送される画像を読み取り、ファインダパターン2の検出処理を行う。ここで、ファインダパターン2が検出されると、シンボル検出装置100は、MCU30BをActiveにするとともに、カメラモジュール50に撮像を行わせる。
カメラモジュール50は、撮像した画像のデータをシンボル検出装置100に転送し、シンボル検出装置100は、画像の2値化を行いながら、2値化した画像をMCU30Bに送る。
この結果、MCU30Bは、2値化された画像に対して画像処理を行い、QRコード1(図4参照)のデータ領域5に書き込まれたデータを読み取る。MCU30Bは、データの読み取りに成功すると、読み取りに成功したことをMCU30Aに報告する。
このように、ファインダパターン2が検出された場合は、MCU30BがQRコード1(図4参照)のデータ領域5に対して画像処理を行うため、MCU30Bが画像処理を行っている間は、消費電流が増大する。
しかしながら、ファインダパターン2がシンボル検出装置100によって検出されずにMCU30Bが画像処理を行っていないときは、図17に示す消費電流と同等であり、電力消費を低減することができる。
また、図20には、図19に示すシーケンスのうちのシンボル検出装置100の内部の処理をMCU30B及びカメラモジュール50の動作とともに示す。図20に示すシーケンスは、図19において、MCU30Bから撮像の指示を受けたシンボル検出装置100がカメラモジュール50に撮像の指示を送信する時点から始まる。なお、図20に示すシーケンスでは、MCU30Bは最初はWait状態に保持されている。
図20には、シンボル検出装置100の内部の構成要素である、2値化処理部110、パターン演算部120、パターン判定部130、出力部140、及び指示部150を示す。
まず、指示部150がカメラモジュール50に撮像の指示を行うと、カメラモジュール50は撮像を行い、撮像した画像のデータをシンボル検出装置100に転送する。
2値化処理部110は、カメラモジュール50から画素毎に転送される画像を2値化し、パターン演算部120に送る。パターン演算部120は、白い画素と黒い画素の連続数の比を計算し、計算結果をパターン判定部130に送る。
パターン判定部130は、ファインダパターン2の検出処理を行い、ファインダパターン2を検出すると、カメラモジュール50への撮像の指示を指示部150に行わせる。カメラモジュール50は撮像を行い、撮像した画像のデータをシンボル検出装置100に転送する。
2値化処理部110は、カメラモジュール50から画素毎に転送される画像を2値化し、出力部140に送る。出力部140は、シンボル検出装置100は、ファインダパターン2の検出に用いた画像の次のフレームの画像をカメラモジュール50に撮像させ、2値化処理部110で2値化してから、出力部140を経てMCU30Bに転送する。
このように、ファインダパターン2が検出されると、出力部140は、画像のデータをMCU30Bに転送する。
図21は、シンボル検出装置100が実行する処理を示すフローチャートである。シンボル検出装置100は、画像を読み取るモードが開始されると、処理をスタートする(START)。
シンボル検出装置100は、各画素の画素値を2値化する(ステップS1)。ステップS1の処理は、2値化処理部110が実行する。
シンボル検出装置100は、白い画素又は黒い画素の連続数が切り替わったかどうかを判定する(ステップS2)。ステップS2の処理は、パターン演算部120が実行する。
シンボル検出装置100は、白い画素又は黒い画素の連続数が切り替わった(S2:YES)と判定すると、HレベルのパルスPULSE1を生成する(ステップS3)。ステップS3の処理は、パターン演算部120が実行する。より具体的には、シンボル検出装置100は、カウント値CNT1[N:0]と、カウント値CNT2[N:0]とが切り替わったかどうかを判定する。
シンボル検出装置100は、切り替わり前の連続数をFF124Bで保持する(ステップS4)。ステップS4の処理は、パターン演算部120が実行する。
シンボル検出装置100は、切り替わり前の連続数と、切り替わり後の連続数との比を算出する(ステップS5)。ステップS5の処理は、パターン演算部120が実行する。算出される比は、除算結果DIV[M:0]としてパターン演算部120から出力される。
シンボル検出装置100は、パルスPULSE1がHレベルになったかどうかを判定する(ステップS6)。ステップS6の処理は、パターン判定部130が実行する。
シンボル検出装置100は、パルスPULSE1がHレベルになった(S6:YES)と判定すると、FF133A、FF133B、133Cが保持する除算結果DIV[M:0]を次のFF133B、133C、133Dに反映する(ステップS7)。
ステップS7の処理は、パターン判定部130が実行する。より具体的には、シフトレジスタ133は、パルスPULSE1がFF133A、133B、133C、133Dのクロック入力端子に入力される度に、端子131Dからしながら保持する。なお、FF133Aには、最新の除算結果DIV[M:0]が入力される。
これにより、FF133A、FF133B、133C、133Dは、それぞれ、4つの除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]を保持する。また、4つの除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]は、ステップS7の処理によってコンパレータ134に入力される。
シンボル検出装置100は、4つの除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]が、すべてそれぞれの除算値の許容範囲に入っているかどうかを判定する(ステップS8)。ステップS8の処理は、パターン判定部130が実行する。より具体的には、コンパレータ134は、FF133A、133B、133C、133Dのデータ出力端子から入力される4つの除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]が、すべてそれぞれの除算値の許容範囲に入っているかどうかを判定する。
シンボル検出装置100は、4つの除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]が、すべてそれぞれの除算値の許容範囲に入っている(S8:YES)と判定すると、'1'を出力する(ステップS9)。ステップS9の処理は、パターン判定部130が実行する。
シンボル検出装置100は、4つの除算結果DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0]のいずれか1つでも許容範囲に入っていない(S8:NO)場合は、'0'を出力する(ステップS10)。ステップS10の処理は、パターン判定部130が実行する。
シンボル検出装置100は、比較結果CMPOUTが3回'1'に達したかどうかを判定する(ステップS11)。ステップS11の処理は、パターン判定部130が実行する。より具体的には、論理部135が比較結果CMPOUTが3回'1'に達したかどうかを判定する。
シンボル検出装置100は、比較結果CMPOUTが3回'1'に達した(S11:YES)と判定すると、Hレベルの出力LOGOUTを出力する(ステップS12)。ステップS12の処理は、パターン判定部130が実行する。より具体的には、論理部135がHレベルの出力LOGOUTを出力する。
次いで、シンボル検出装置100は、出力部140は、画像のデータをMCU30Bに転送する(ステップS13)。ステップS12の処理は、出力部140が実行する。より具体的には、出力部140は、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]を、それぞれ、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]としてMCU30Bに出力する。
一方、シンボル検出装置100は、比較結果CMPOUTが3回'1'に達していない(13:NO)と判定すると、Lレベルの出力LOGOUTを出力する(ステップS14)。ステップS11の処理は、パターン判定部130が実行する。より具体的には、論理部135がLレベルの出力LOGOUTを出力する。
次いで、シンボル検出装置100は、画像のデータをMCU30Bに転送しない(ステップS15)。ステップS12の処理は、出力部140が実行する。より具体的には、出力部140は、水平同期信号HREF2、垂直同期信号VSYNC2、基準クロックPCLK2、データDATA2[7:0]をMCU30Bに出力(転送)しない。また、この結果、シンボル検出装置100によってLED14が点灯され、データDATA2[7:0]がMCU30Bに転送されないことが利用者に報知される。
シンボル検出装置100は、ステップS13又はステップS15の処理を終えると、画像を読み取るモードが終了されたかどうかを判定する(ステップS16)。
シンボル検出装置100は、画像を読み取るモードが終了されていなければ(S16:NO)フローをステップS1にリターンする。
シンボル検出装置100は、画像を読み取るモードが終了されていれば(S16:YES)、一連の処理を終了する(END)。
ここで、図22乃至図24を用いて、比較例について説明する。
図22は、比較例のバーコードリーダ10Aの内部構成を示す図である。
バーコードリーダ10Aは、図2に示す実施の形態のバーコードリーダ10からシンボル検出装置100を取り除き、MCU30Bとカメラモジュール50を直接的に接続した構成を有する。比較例のバーコードリーダ10Aでは、ファインダパターン2の検出は、MCU30Bが画像処理を行うことによって実現される。その他の構成要素は、図2に示す実施の形態のバーコードリーダ10と同様である。
図23及び図24は、比較例のバーコードリーダ10Aの動作例を示すシーケンス図である。
図23には、スイッチ12、MCU30A、MCU30B、カメラモジュール50、無線モジュール40の動作を示す。また、図23の右端には、MCU30A、MCU30B、カメラモジュール50のトータルの消費電流を示す。なお、図23において、時間軸は、図面の上方から下方に向かう方向である。
図23に示すように、スイッチ12が押されるとトリガーが生成される。このとき、MCU30BはSleep状態であり、MCU30A、カメラモジュール50はオフである。
MCU30Aがスイッチ12のトリガーを検出すると、MCU30AによってMCU30BがActiveにされる。MCU30Bは、Activeにされると、カメラモジュール50に撮像を行わせる。
撮像の指示を受けたカメラモジュール50は、撮像した画像のデータをMCU30Bに転送する。
MCU30Bは、カメラモジュール50から画素毎に転送される画像に対して画像処理を行い、QRコード1(図4参照)のファインダパターン2の認識と、データ領域5のデータの読み取りを行う。そして、MCU30Bは、QRコード1のデータの読み取りに成功すると、読み取ったデータを成功結果としてMCU30Aに報告する。
MCU30Aは、MCU30Bから成功結果を受信すると、無線モジュール40に成功結果を転送する。これにより、無線モジュール40に、QRコード1のデータが転送される。
MCU30Bがファインダパターン2の認識と、データ領域5のデータの読み取りのための画像処理を行っている間は、MCU30Bが内部メモリを利用しながらファインダパターン2と認識とデータ領域5の読み取りを行うので、消費電流は増大する。消費電流は、図17及び図19と同じスケールで示してあるので、実施の形態のバーコードリーダ10と比較すると、消費電流は、かなり増大することになる。
次に、図24を用いて、QRコード1のデータの読み取りに失敗する場合のシーケンスについて説明する。
図24では、MCU30BがActiveにされた後の時点から説明を行う。スイッチ12が押されてから、MCU30BがActiveにされるまでの動作は、図23に示すものと同様である。
カメラモジュール50は、QRコード1の撮像を行い、撮像した画像のデータをMCU30Bに転送する。MCU30Bは、カメラモジュール50から画素毎に転送される画像を取得し、ファインダパターン2の認識と、データ領域5のデータの読み取りを行う。
ここで、MCU30Bがファインダパターン2の認識、又は、データ領域5のデータの読み取りに失敗したとする。MCU30Bは、再度カメラモジュール50に撮像を行わせ、カメラモジュール50から転送される画像を取得し、ファインダパターン2の認識と、データ領域5のデータの読み取りを行う。
そして、MCU30Bは、ファインダパターン2の認識、又は、データ領域5のデータの読み取りに再度失敗したとする。
MCU30Bがファインダパターン2の認識に失敗するのは、例えば、カメラモジュール50が撮像した画像の焦点が合っていない場合、カメラモジュール50が撮像した画像にファインダパターン2の全体がきちんと含まれていない場合等がある。
また、MCU30Bがデータ領域5のデータの読み取りに失敗するのは、例えば、カメラモジュール50が撮像した画像の焦点が合っていない場合、カメラモジュール50が撮像した画像にデータ領域5の全体がきちんと含まれていない場合等がある。
このように、比較例のバーコードリーダ10AにおいてQRコード1の読み取りに失敗すると、MCU30Bが画像処理を行う度に、消費電流が増大する。
このような消費電流の増大は、実施の形態のバーコードリーダ10のシーケンス図(図17及び図19)に示す消費電流と比べると、顕著である。
図23及び図24に示す消費電流を、図17及び図19に示す消費電流と比較すると、実施の形態のバーコードリーダ10は、シンボル検出装置100を用いることにより、比較例のバーコードリーダ10Aに比べて、消費電力を大幅に低減できることを確認できる。
以上のように、実施の形態のバーコードリーダ10では、シンボル検出装置100がファインダパターン2の検出を行い、コンパレータ134の比較結果CMPOUTが'1'に3回なったときに、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]を初めてMCU30Bに出力する。
コンパレータ134の比較結果CMPOUTが'1'に3回なったときは、QRコード1(図4参照)のファインダパターン2の中央に位置する黒パターン2Cの中心を通るスキャンが3回連続で行われたと考えられるときである。
ファインダパターン2の中央に位置する黒パターン2Cの中心を通るスキャンが3回連続で行われることは、シンボル検出装置100によってファインダパターン2が検出されたと考えられるときである。
シンボル検出装置100は、このようにファインダパターン2を検出したときに、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]を初めてMCU30Bに出力する。
換言すれば、シンボル検出装置100は、ファインダパターン2を検出していないときは、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]をMCU30Bに出力しない。
このようなシンボル検出装置100を用いることにより、バーコードリーダ10におけるQRコード1(図4参照)の読み取り時の消費電力を低減することができる。
シンボル検出装置100は、FPGAのようなプログラマブル論理回路又は演算処理部で実現される。このようなシンボル検出装置100は、画像のデータをFF124A、124Bに保持するだけであり、また、除算結果DIV1[M:0]〜DIV4[M:0]をFF133A〜133Dに保持するだけであり、画像のデータをメモリ等に保持するMCU30Bに比べると、消費電力が大幅に少ない。
このようなシンボル検出装置100にQRコード1(図4参照)のファインダパターン2を検出させて、ファインダパターン2が検出されない限りは、水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]をMCU30Bに伝送しない。
MCU30Bに水平同期信号HREF3、垂直同期信号VSYNC3、基準クロックPCLK3、データDATA3[7:0]が伝送されるのは、シンボル検出装置100によってQRコード1のファインダパターン2が検出されたときのみである。
従って、実施の形態によれば、消費電力を低減したシンボル検出装置100、及び、画像処理装置500を提供することができる。
なお、以上では、二次元バーコードの一例であるQRコード1を読み取る形態について説明したが、シンボル検出装置100が検出するシンボルは、二次元バーコードのものに限られず、一次元バーコードに含まれるシンボルであってもよい。また、バーコードに限られず、所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルであれば、シンボル検出装置100による検出が可能である。
また、以上では、QRコード1のファインダパターン2を黒パターン2Cの中心を通って読み取った場合に、黒パターン2A、白パターン2B、黒パターン2C、白パターン2B、黒パターン2Aの幅が1:1:3:1:1になる形態について説明した。このため、シフトレジスタ133が4つのFF133A〜133Dを有し、4つの比(DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0])をコンパレータ134の保持部134Aが保持する4つの許容範囲を表す値と比較する形態について説明した。
シンボル検出装置100が検出するシンボルの第1パターンと第2パターンが上記以外の比率を有する場合には、シフトレジスタ133とコンパレータ134の構成を適宜変更すればよい。また、この場合に、シフトレジスタ133とコンパレータ134以外の構成要素についても、検出対象とするシンボルに合わせて変更が必要な場合は、適宜変更すればよい。
また、以上では、コンパレータ134で4つの比(DIV1[M:0]、DIV2[M:0]、DIV3[M:0]、DIV4[M:0])をコンパレータ134の保持部134Aが保持する4つの許容範囲を表す値と比較する代わりに、次のようにしてもよい。保持部134Aが4つの許容範囲の代わりに、4つの比を表す値を保持し、FF133A〜133Dから出力される4つの比と、保持部134Aが保持する4つの比との差が所定値以下であるかどうかを判定してもよい。
また、以上では、バーコードリーダ10がワイヤレス型である形態について説明したが、バーコードリーダ10は、バッテリパック60を含まずに、電源コードを通じて電力が供給されるタイプであってもよい。電源コードで電力供給を受ける場合においても、バーコードリーダ10の消費電力を低減することは、好ましいことだからである。
以上、本発明の例示的な実施の形態のシンボル検出装置、画像処理装置、及び、シンボル検出方法について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置であって、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を2値化した第1画素値又は第2画素値を出力する2値化処理部と、
前記第1画素値が連続する数を表す第1連続値と、前記第2画素値が連続する数を表す第2連続値とが前記第2連続値又は前記第1連続値に切り替わると、当該切り替わり前の前記第1連続値又は前記第2連続値と、当該切り替わり後の前記第2連続値又は前記第1連続値との比を算出する算出部と、
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、転送部と
を含む、シンボル検出装置。
(付記2)
前記第1連続値と、前記第2連続値とを時系列的に交互に保持する第1保持部と、
前記切り替わり前に前記第1保持部が保持した前記第1連続値又は前記第2連続値を前記第1保持部から入手して保持する第2保持部と、
前記所定の幅の比の値を保持する第3保持部と
をさらに含み、
前記算出部は、前記第1保持部に保持される前記第1連続値又は前記第2連続値と、前記第2保持部に保持される前記第2連続値又は前記第1連続値との比を算出し、
前記転送部は、前記算出部によって算出される前記比と、前記第3保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、付記1記載のシンボル検出装置。
(付記3)
前記第1保持部及び前記第2保持部は、前記撮像部によって撮像される画像のうちの第1フレームの画像が前記2値化処理部によって2値化されることによって得られる前記第1画素値及び前記第2画素値についての前記第1連続値及び前記第2連続値を保持し、
前記算出部は、前記第1保持部及び前記第2保持部で保持される、前記第1フレームの画像についての前記第1連続値及び前記第2連続値の比を算出し、
前記転送部は、前記撮像部によって撮像される画像のうちの前記第1フレームの次の第2フレームの画像が前記2値化処理部によって2値化されることによって得られる前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送する、付記2記載のシンボル検出装置。
(付記4)
前記第3保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており
転送部は、前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、付記2又は3記載のシンボル検出装置。
(付記5)
前記転送部は、
前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、
前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない出力部と
を有する、付記4記載のシンボル検出装置。
(付記6)
前記転送部は、
前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、
前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、付記4記載のシンボル検出装置。
(付記7)
所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルを含む画像を撮像する撮像部と、
前記画像に含まれるデータを読み取るデータ読取部と、
前記撮像部と前記データ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置と
を含む画像処理装置であって、
前記シンボル検出装置は、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を2値化した第1画素値又は第2画素値を出力する2値化処理部と、
前記第1画素値が連続する数を表す第1連続値と、前記第2画素値が連続する数を表す第2連続値とが前記第2連続値又は前記第1連続値に切り替わると、当該切り替わり前の前記第1連続値又は前記第2連続値と、当該切り替わり後の前記第2連続値又は前記第1連続値との比を算出する算出部と、
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、転送部と
を有する、画像処理装置。
(付記8)
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下ではない場合に、前記画像が前記データ読取部に転送されないことを報知する報知部をさらに含む、付記7記載の画像処理装置。
(付記9)
所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現されるシンボル検出装置において、前記画像に含まれる前記シンボルを検出するシンボル検出方法であって、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を2値化した第1画素値又は第2画素値を出力し、
前記第1画素値が連続する数を表す第1連続値と、前記第2画素値が連続する数を表す第2連続値とが前記第2連続値又は前記第1連続値に切り替わると、当該切り替わり前の前記第1連続値又は前記第2連続値と、当該切り替わり後の前記第2連続値又は前記第1連続値との比を算出し、
前記算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、シンボル検出方法。
10 バーコードリーダ
11 筐体
12 スイッチ
13 読み取り部
100 シンボル検出装置
110 2値化処理部
120 パターン演算部
122 パルス生成器
123 カウンタ
124 シフトレジスタ
125 除算器
130 パターン判定部
132 パルス生成器
133 シフトレジスタ
134 コンパレータ
135 論理部
140 出力部
150 指示部

Claims (5)

  1. 所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置であって、
    前記画像を一軸方向に読み取り、前記画像の各画素の画素値を2値化した第1画素値又は第2画素値を出力する2値化処理部と、
    前記第1画素値が連続する数を表す第1連続値と、前記第2画素値が連続する数を表す第2連続値とが前記第2連続値又は前記第1連続値に切り替わると、当該切り替わり前の前記第1連続値又は前記第2連続値と、当該切り替わり後の前記第2連続値又は前記第1連続値との比を算出する算出部と、
    前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、転送部と
    前記第1連続値と、前記第2連続値とを時系列的に交互に保持する第1保持部と、
    前記切り替わり前に前記第1保持部が保持した前記第1連続値又は前記第2連続値を前記第1保持部から入手して保持する第2保持部と、
    前記所定の幅の比の値を保持する第3保持部と
    を含
    前記算出部は、前記第1保持部に保持される前記第1連続値又は前記第2連続値と、前記第2保持部に保持される前記第2連続値又は前記第1連続値との比を算出し、
    前記転送部は、前記算出部によって算出される前記比と、前記第3保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、
    前記第3保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、
    転送部は、前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、
    前記転送部は、
    前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、
    前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない出力部と
    を有し、
    前記転送部は、
    前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、
    前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、シンボル検出装置。
  2. 前記第1保持部及び前記第2保持部は、前記撮像部によって撮像される画像のうちの第1フレームの画像が前記2値化処理部によって2値化されることによって得られる前記第1画素値及び前記第2画素値についての前記第1連続値及び前記第2連続値を保持し、
    前記算出部は、前記第1保持部及び前記第2保持部で保持される、前記第1フレームの画像についての前記第1連続値及び前記第2連続値の比を算出し、
    前記転送部は、前記撮像部によって撮像される画像のうちの前記第1フレームの次の第2フレームの画像が前記2値化処理部によって2値化されることによって得られる前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送する、請求項記載のシンボル検出装置。
  3. 所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルを含む画像を撮像する撮像部と、
    前記画像に含まれるデータを読み取るデータ読取部と、
    前記撮像部と前記データ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置と
    を含む画像処理装置であって、
    前記シンボル検出装置は、
    前記画像を一軸方向に読み取り、前記画像の各画素の画素値を2値化した第1画素値又は第2画素値を出力する2値化処理部と、
    前記第1画素値が連続する数を表す第1連続値と、前記第2画素値が連続する数を表す第2連続値とが前記第2連続値又は前記第1連続値に切り替わると、当該切り替わり前の前記第1連続値又は前記第2連続値と、当該切り替わり後の前記第2連続値又は前記第1連続値との比を算出する算出部と、
    前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、転送部と
    前記第1連続値と、前記第2連続値とを時系列的に交互に保持する第1保持部と、
    前記切り替わり前に前記第1保持部が保持した前記第1連続値又は前記第2連続値を前記第1保持部から入手して保持する第2保持部と、
    前記所定の幅の比の値を保持する第3保持部と
    を含み、
    前記算出部は、前記第1保持部に保持される前記第1連続値又は前記第2連続値と、前記第2保持部に保持される前記第2連続値又は前記第1連続値との比を算出し、
    前記転送部は、前記算出部によって算出される前記比と、前記第3保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、
    前記第3保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、
    転送部は、前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、
    前記転送部は、
    前記算出部によって算出される前記比が、前記第3保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、
    前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない出力部と
    を有し、
    前記転送部は、
    前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、
    前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、画像処理装置。
  4. 前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下ではない場合に、前記画像が前記データ読取部に転送されないことを報知する報知部をさらに含む、請求項記載の画像処理装置。
  5. 所定の幅の比を持つ第1色の第1パターンと第2色の第2パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現されるシンボル検出装置において、前記画像に含まれる前記シンボルを検出するシンボル検出方法であって、
    前記画像を一軸方向に読み取り、前記画像の各画素の画素値を2値化した第1画素値又は第2画素値を出力する出力処理と
    前記第1画素値が連続する数を表す第1連続値と、前記第2画素値が連続する数を表す第2連続値とが前記第2連続値又は前記第1連続値に切り替わると、当該切り替わり前の前記第1連続値又は前記第2連続値と、当該切り替わり後の前記第2連続値又は前記第1連続値との比を算出する算出処理と
    前記算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない転送処理と
    前記第1連続値と、前記第2連続値とを時系列的に交互に保持する第1保持処理と、
    前記切り替わり前に前記第1保持処理によって保持された前記第1連続値又は前記第2連続値を入手して保持する第2保持処理と、
    前記所定の幅の比の値を保持する第3保持処理と
    を含み、
    前記算出処理では、前記第1保持処理によって保持される前記第1連続値又は前記第2連続値と、前記第2保持処理によって保持される前記第2連続値又は前記第1連続値との比を算出し、
    前記転送処理では、前記算出処理によって算出される前記比と、前記第3保持処理で保持される前記所定の幅の比との差が所定値以下である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、
    前記第3保持処理では、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、
    前記転送処理では、前記算出処理によって算出される前記比が、前記第3保持処理で保持される前記所定の許容範囲内である場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、
    前記転送処理は、
    前記算出処理で算出される前記比が、前記第3保持処理で保持する前記所定の許容範囲内であるかどうかを判定する判定処理と、
    前記判定処理で前記比が前記所定の許容範囲内であると判定する場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記判定処理で前記比が前記所定の許容範囲内ではないと判定する場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない出力処理と
    を有し、
    前記転送処理は、
    前記判定処理で前記比が前記所定の許容範囲内であると判定する回数が所定回数に達した場合に、前記出力処理による前記画像の前記データ読取部への転送を可能にし、前記判定処理によって前記比が前記所定の許容範囲内であると判定する回数が前記所定回数未満の場合に、前記出力処理による前記画像の前記データ読取部への転送を可能にしない論理処理をさらに有し、
    前記出力処理は、前記論理処理で前記データ読取部への転送が可能にされる場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送し、前記論理処理で前記データ読取部への転送が可能にされない場合に、前記第1画素値及び前記第2画素値で表される前記画像を前記データ読取部に転送しない、シンボル検出方法。
JP2015225174A 2015-11-17 2015-11-17 シンボル検出装置、画像処理装置、及び、シンボル検出方法 Expired - Fee Related JP6520659B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015225174A JP6520659B2 (ja) 2015-11-17 2015-11-17 シンボル検出装置、画像処理装置、及び、シンボル検出方法
US15/350,554 US10157302B2 (en) 2015-11-17 2016-11-14 Symbol detector, image processing device, and symbol detecting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015225174A JP6520659B2 (ja) 2015-11-17 2015-11-17 シンボル検出装置、画像処理装置、及び、シンボル検出方法

Publications (2)

Publication Number Publication Date
JP2017091484A JP2017091484A (ja) 2017-05-25
JP6520659B2 true JP6520659B2 (ja) 2019-05-29

Family

ID=58691116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015225174A Expired - Fee Related JP6520659B2 (ja) 2015-11-17 2015-11-17 シンボル検出装置、画像処理装置、及び、シンボル検出方法

Country Status (2)

Country Link
US (1) US10157302B2 (ja)
JP (1) JP6520659B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD826234S1 (en) * 2016-04-11 2018-08-21 Hand Held Products, Inc. Indicia scanner
USD982585S1 (en) * 2013-12-05 2023-04-04 Hand Held Products, Inc. Indicia scanner
USD791137S1 (en) * 2015-07-22 2017-07-04 Hand Held Products, Inc. Scanner
CN105184208B (zh) * 2015-09-02 2017-10-31 福建联迪商用设备有限公司 一种二维码初步定位方法及***
CN112861560B (zh) * 2017-09-27 2023-12-22 创新先进技术有限公司 二维码定位方法及装置
CN108388825B (zh) * 2018-04-04 2021-06-08 厦门码灵半导体技术有限公司 快速反应码搜寻方法和装置
JP7283312B2 (ja) * 2019-03-22 2023-05-30 株式会社デンソーウェーブ 情報読取装置及びプログラム
JP7293790B2 (ja) * 2019-03-26 2023-06-20 コニカミノルタ株式会社 行動特定システム、行動特定方法、および行動特定装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3302057B2 (ja) 1991-11-11 2002-07-15 オリンパス光学工業株式会社 シンボル情報読取装置
JP3201928B2 (ja) 1995-05-15 2001-08-27 東芝テック株式会社 イメージ読取装置
US6298176B2 (en) * 1997-10-17 2001-10-02 Welch Allyn Data Collection, Inc. Symbol-controlled image data reading system
JP3607131B2 (ja) * 1999-05-26 2005-01-05 株式会社デンソー 情報コード画像取込装置、光学情報読取装置及び画像取込タイミング設定システム
JP2003248792A (ja) * 2002-02-22 2003-09-05 Seiko Epson Corp 2次元コードのデコード方法、2次元コードのデコード装置、コンピュータに2次元コードのデコード方法を実行させるためのプログラム、このプログラムを記録した記録媒体
US20030222144A1 (en) * 2002-06-04 2003-12-04 Hand Held Products, Inc. Manufacturing methods for a decoder board for an optical reader utilizing a plurality of imaging formats
JP4301775B2 (ja) * 2002-07-18 2009-07-22 シャープ株式会社 2次元コード読み取り装置,2次元コード読み取り方法,2次元コード読み取りプログラム及び該プログラムの記録媒体
JP4111216B2 (ja) 2004-10-04 2008-07-02 株式会社デンソーウェーブ 光学情報読取装置
KR100828539B1 (ko) * 2005-09-20 2008-05-13 후지제롯쿠스 가부시끼가이샤 이차원 코드의 검출 방법, 검출 장치, 및 검출 프로그램을기억한 기억 매체
JP4335229B2 (ja) * 2006-05-18 2009-09-30 シャープ株式会社 Qrコード認識装置、qrコード認識装置の制御方法、qrコード認識装置制御プログラムおよびそれを記録したコンピュータ読み取り可能な記録媒体
JP4442624B2 (ja) * 2006-06-22 2010-03-31 株式会社デンソーウェーブ 光学情報読取装置
JP4553014B2 (ja) * 2008-01-16 2010-09-29 株式会社デンソーウェーブ 情報コード読取装置及び情報コード読取り方法
US20110290882A1 (en) * 2010-05-28 2011-12-01 Microsoft Corporation Qr code detection
CN103279730B (zh) * 2013-06-05 2016-09-28 北京奇虎科技有限公司 移动终端处理可视化图形编码的方法和装置
CN105184208B (zh) * 2015-09-02 2017-10-31 福建联迪商用设备有限公司 一种二维码初步定位方法及***

Also Published As

Publication number Publication date
US20170140191A1 (en) 2017-05-18
US10157302B2 (en) 2018-12-18
JP2017091484A (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
JP6520659B2 (ja) シンボル検出装置、画像処理装置、及び、シンボル検出方法
US10185859B2 (en) Cluster computing of bar code data
US7080786B2 (en) Optical reader comprising illumination assembly and solid state image sensor
EP2450825B1 (en) Using a user's application to configure user scanner
US8453934B2 (en) Light emitting device and method for tracking object
US20180120962A1 (en) Stylus and controller
US20090159684A1 (en) User configurable search methods for an area imaging indicia reader
EP3285198A2 (en) Method for reading indicia off a display of a mobile device
US20040206821A1 (en) Autodiscriminating bar code reading apparatus having solid state image sensor
JP5673257B2 (ja) コード読取装置、コード読取方法およびコード読取プログラム
US20020079370A1 (en) Illumination source for optical reading apparatus
US8355054B2 (en) Arrangement for and method of acquiring a monochrome image with a color image capture processor
US9477861B2 (en) Encoded information reading terminal including multiple encoded information reading devices
TWI599907B (zh) 資料傳遞裝置、資料讀取裝置、資料編解碼系統及其方法
JP2004110668A (ja) 光学的情報読取装置
US20090102671A1 (en) Low battery alert for an image reader
JP2003281483A (ja) バーコードおよびこれを用いたバーコードシステム、バーコード発生装置、バーコード読取装置
US20120048938A1 (en) Methods and apparatus for providing user feedback during image capture
JP2004133689A (ja) 二次元コード読取方法およびその装置
JP2007148889A (ja) 光学情報読取装置
JP2014107620A (ja) 画像処理装置および光学的情報読取装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190415

R150 Certificate of patent or registration of utility model

Ref document number: 6520659

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees