IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ジック アーゲーの特許一覧

<>
  • 特開-光学コードの位置の特定 図1
  • 特開-光学コードの位置の特定 図2
  • 特開-光学コードの位置の特定 図3
  • 特開-光学コードの位置の特定 図4
  • 特開-光学コードの位置の特定 図5
  • 特開-光学コードの位置の特定 図6
  • 特開-光学コードの位置の特定 図7
  • 特開-光学コードの位置の特定 図8
  • 特開-光学コードの位置の特定 図9
  • 特開-光学コードの位置の特定 図10
  • 特開-光学コードの位置の特定 図11
  • 特開-光学コードの位置の特定 図12
  • 特開-光学コードの位置の特定 図13
  • 特開-光学コードの位置の特定 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024035801
(43)【公開日】2024-03-14
(54)【発明の名称】光学コードの位置の特定
(51)【国際特許分類】
   G06K 7/14 20060101AFI20240307BHJP
【FI】
G06K7/14 043
G06K7/14 017
【審査請求】有
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023122278
(22)【出願日】2023-07-27
(31)【優先権主張番号】22193715
(32)【優先日】2022-09-02
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】591005615
【氏名又は名称】ジック アーゲー
(74)【代理人】
【識別番号】110001069
【氏名又は名称】弁理士法人京都国際特許事務所
(72)【発明者】
【氏名】ヨナタン シュタインブーフ
(72)【発明者】
【氏名】ヴィッキー ハルマン
(57)【要約】      (修正有)
【課題】多数の画素を有する画像中で光学コードの位置を該光学コードの探索パターンに基づいて特定するための方法を提供する。
【解決手段】光学コードの位置を特定する方法は、画像を取り抜ける少なくとも1本の線(32)に沿ったエッジ移行部に基づいて探索パターン(30)の少なくとも1つの候補位置(36)を決定し、その後、該候補位置(36)の周囲において前記探索パターン(30)の場所を特定する。そして、見つかった場所において、探索パターンの既知の属性に基づいて、前記画像が該場所に探索パターン(30)を示しているということを検証する。
【選択図】図6
【特許請求の範囲】
【請求項1】
多数の画素を有する画像中で光学コード(20)、特にQRコード又はAztecコードの位置を該光学コード(20)の探索パターン(30)に基づいて特定するための方法であって、まず前記画像を通り抜ける少なくとも1本の線(32)に沿ったエッジ移行部に基づいて探索パターン(30)の少なくとも1つの候補位置(36)を決定し、その後、該候補位置(36)の周囲において前記探索パターン(30)の場所(48)を特定する方法において、
見つかった場所(48)において、探索パターンの既知の属性に基づいて、前記画像が該場所(48)に探索パターン(30)を示しているということを検証することを特徴とする方法。
【請求項2】
前記少なくとも1本の線(32)に沿ったエッジ移行部が許容差を考慮して互いに1:1:3:1:1の比で間隔を空けている場合に候補位置(36)を決定する、請求項1に記載の方法。
【請求項3】
前記候補位置(36)を、前記少なくとも1本の線(32)に沿ったエッジ移行部の重心として決定する、請求項1に記載の方法。
【請求項4】
互いに平行な複数の線(32)に沿ったエッジ移行部が探索パターン(30)を指し示している場合に前記候補位置(36)を該平行な線の間の真ん中に決定する、請求項1に記載の方法。
【請求項5】
前記候補位置(36)の周囲において前記探索パターン(30)の場所(48)を特定するために、前記候補位置(36)から放射状に延在する射線(38)に沿って、特に互いに同じ角度間隔を空けた8本又は16本の射線に沿って、それぞれ3つの最も近いエッジ移行部を特定する、請求項1に記載の方法。
【請求項6】
前記射線(38)の各々の第1のエッジ移行部を接続して第1のリング(40)を、前記射線(38)の各々の第2のエッジ移行部を接続して第2のリング(40)を、及び/又は、前記射線(38)の各々の第3のエッジ移行部を接続して第3のリング(40)を形成する、請求項5に記載の方法。
【請求項7】
前記リング(40)のリング断片(42)のうち、エッジに沿って延在する有効と認められるリング断片を、特にソーベルフィルタを用いて探し出す、請求項6に記載の方法。
【請求項8】
前記リング断片(42、44)を水平なリング断片と垂直なリング断片に分類し、それらから前記探索パターン(30)の向き(46a~b)を特定する、請求項6に記載の方法。
【請求項9】
前記向き(46a~b)に従った4つの主方向においてそれぞれ最も外側のリング断片(42、44)を選択し、該リング断片(42、44)に沿った直線が前記探索パターン(30)の場所(48)を囲むようにする、請求項8に記載の方法。
【請求項10】
ある主方向において最も外側のリング断片(42、44)を見つけることができなかった場合、探索パターンの既知の構造に基づいて、他のリング断片(42、44)からその欠落した最も外側のリング断片(48a)を再構成する、請求項9に記載の方法。
【請求項11】
前記探索パターン(30)を検証するために、互いに均等に間隔を空けた7本の互いに平行な半直線(50)を前記探索パターン(30)の主軸(46a~b)から外側に向かって該探索パターン(30)の半分を通り抜けるように引き、これらの半直線(50)上にそれぞれ1、2、3、3、3、2、1箇所のエッジ移行部がこの順序で存在することを前記探索パターン(30)の検証のために要求する、請求項1に記載の方法。
【請求項12】
少なくとも1本の半直線(50)上で各エッジ移行部までの距離を追加的に検査する、請求項11に記載の方法。
【請求項13】
前記画像内に直角三角形状に配置された3つの探索パターン(30)が見つかるかどうか検査する、請求項1に記載の方法。
【請求項14】
前記光学コード(20)を読み取るために、前記探索パターン(30)に基づいて位置が特定された画像の一部をデコーダ(26)に渡す、請求項1に記載の方法。
【請求項15】
光学コード(20)を含む画像を撮影するための受光素子(24)と、請求項1に記載の光学コード(20)の位置の特定方法が実装された制御及び評価ユニット(26)とを有する光電式コード読み取り装置(10)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は請求項1のプレアンブルに記載の光学コードの位置の特定方法に関する。
【背景技術】
【0002】
コードリーダは、スーパーマーケットのレジ、荷物の自動識別、郵便物の仕分け、空港での手荷物の発送等、物流での利用が知られている。コードスキャナの場合、読み取り光線が回転ミラー又はポリゴンミラーホイールでコードを横切るように案内される。カメラベースのコードリーダは画像センサを用いて物体の画像をその表面にあるコードとともに撮影し、画像解析ソフトウエアがその画像からコード情報を抽出する。
【0003】
ある重要な一群の利用形態では、コードを付した物体がコードリーダの近くを通って搬送される。そして、走査式コードリーダがその読み取り領域内に次々に入ってくるコードをそれぞれ検出する。他方、カメラベースのコードリーダでは、ライン走査カメラがコード情報を含む物体画像を相対運動に伴って次々に1ラインずつ読み取る。2次元画像センサを用いる場合は、撮像レートと搬送速度に応じて多少重なり合う複数の画像データが規則的に取得される。物体をコンベア上で任意の向きに配置できるようにするため、読み取りトンネルに複数のコードリーダを設け、物体を複数の側又は全ての側から撮影できるようにすることも多い。走査式コードリーダも拡散反射光を捕らえ、最終的には複数の画像ラインを捕らえてそれらを物体画像に合成することができるが、このためには実際には画像センサが好まれる。このような物体画像内でコード領域を識別してコードを読み取ることができる。
【0004】
デコードは比較的コストのかかるプロセスである。それ故、前処理によって光学コードが認識された画像断片のみに的を絞ってデコーダに渡すのが普通であり、好ましくはコードの正確な位置及び向き並びに形式及びサイズといった他の情報も先に一緒に渡す。いくつかの種類のコードは、容易に且つ頑強に認識できる探索パターン(ファインダパターン)によって位置の特定を支援する。例えばQRコード(登録商標)はそのために3つの角部に探索パターンを備えており、Aztecコードは中心部に1つ備えている。探索パターンそのものは7×7個のコードモジュールから成り、中心に3×3のフィールドがあり、それが2つの交互のリング又は矩形により囲まれている。
【0005】
理論的にはそのような探索パターンは既知の属性に基づいて容易に見つかるはずである。それには、当該探索パターンに特徴的なエッジ移行部を求めて画像をライン毎にくまなく探索し、そのエッジ移行部に基づいて推定枠を探索パターンの周囲に設定する。ただ、実際の画像には干渉や歪み、隠蔽、コントラスト不足及び不鮮明さがある。それ故、探索パターンのためのエッジ移行部に関する条件を厳しく捕らえすぎないことが必要である。そうすると、許容差によっては探索パターンの誤検出が増え、その結果、デコーダが、実際には全くコードのない画像領域をなおも処理することになる。逆に、部分的に隠蔽された探索パターンは従来撥ねられることが多く、そうなるとそこにあるコードは見落とされ、読み取られない。つまり、前述の第1の種類及び第2の種類のエラーの数をできるだけ少なくするために、コードの位置を特定する際には高い感度と特異性が望まれる。しかしこれは従来技術では満足できる程に達成されてはいない。
【0006】
探索パターンを見つけるために他のアプローチがある。それに含まれるものとしてテンプレートマッチング、Haar特徴量及び機械学習がある。ところがそれでも類似のエラーが生じる。とりわけ機械学習によればより良い結果を得ることが基本的には可能と思われるが、コードの読み取りに典型的に利用できるハードウェアを用いたり、リアルタイムのコード読み取りに要求される短い応答時間で行ったりする場合はそうではない。
【0007】
特許文献1はQRコードの認識及びデコードのためのシステムであって、探索パターンひいてはコードを見つけるためにパターンマッチング用のテンプレートを生成するものを開示している。
【0008】
特許文献2では走査線に沿った探索パターンが黒白移行部間の特定の間隔に基づいて認識される。該文献はその際に許容差とエラーをどう扱うべきかを論じていない。特許文献3は導入部分で特許文献2を引き合いに出しており、同様にライン毎に探索パターンの既知の構造を探し求める。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】US 9 355 293 B2
【特許文献2】US 2004/0020989 A1
【特許文献3】US 7 546 950 B2
【発明の概要】
【発明が解決しようとする課題】
【0010】
故に本発明の課題は光学コードの位置の特定を改善することである。
【課題を解決するための手段】
【0011】
この課題は請求項1及び15にそれぞれ記載の光学コードの位置の特定方法並びに該方法を内部に実装した光電式コード読み取り装置により解決される。念のため明確にしておくと、これは自動的に作動する方法、特にコンピュータ実装型の方法であり、例えばコードリーダ内又はそれに接続された計算装置(制御機器、コンピュータ、エッジデバイス、ネットワーク、クラウド等)内で作動する。少なくとも1つの光学コード、特にQRコード又はAztecコードが写っていると推定される画像が撮影される。冒頭で説明したようにこれは1回の撮影で又は相対運動の間に次々に行うことができ、その場合はコードスキャナの明度プロファイルも画像ラインと解釈することができる。画像は多数の画素、典型的にはm×n画素の画素ラスタを備えている。
【0012】
前記コードは少なくとも1つの探索パターン(ファインダパターン)を用いてその位置が特定される。最初に、少なくとも一見すると探索パターンの部分のように思われる候補位置が突き止められる。そのために、画像を横断する少なくとも1本の線に沿ったエッジ移行部が特定される。エッジとは、暗いコード要素と明るいコード要素の間の移行部、又は逆に明るいコード要素と暗いコード要素の間の移行部の呼称である。なお、コード要素は二値化画像においてのみ実際に黒と白であり、そうでない場合、ここでは簡単のため白と明るいグレー階調の区別並びに黒と暗いグレー階調の区別は行わない。前記の線は好ましくは行方向又は列方向に沿っている。他の方向も原理的には可能であるが、実装がより高コストになり、また離散化アーチファクトが生じる恐れがある。
【0013】
続いて候補位置の周囲において探索パターンの場所が特定される。候補位置はまだかなり粗く、例えばほぼ探索パターンの中心と推定される位置にある単一の点である。これに対して探索パターンの場所はどの画素が探索パターンに属するかを例えば探索パターンを囲む枠の形で示す。その際、角部として又は囲繞する四角形として等、具体的な表現形態は重要ではなく、限定されない。
【0014】
本発明の出発点となる基本思想は、既にその場所まで含めて見つかっている探索パターンを再度検証するということである。探索パターンの場所(例えば枠)を用いて該パターンの属性(モジュールサイズ等)を個々のコードモジュールまで検査することができる。コードモジュール又は略してモジュールはコードの最小要素である。それに対応して、モジュールの大きさの尺度であるモジュールサイズがモジュール当たり画素数(Pixel pro Module; ppm)で表される。探索パターンがどのように見えるはずであるかは完全に分かっているから、検証すべき探索パターンの属性のうち少なくともこの形ではその場所の特定にまだ用いられていない他の属性を検査すること、若しくは、その場所を見つけ出すために利用されていない検査ステップを実行することができる。
【0015】
本発明には、探索パターン及び最終的には光学コードの位置を特定する際の誤り率が低くなるという利点がある。部分的に隠蔽された探索パターンや、例えばコントラスト不足のためにエッジ認識が時折失敗するような探索パターンを含めて、やや寛大に探索パターンを認識することができる。従って探索パターンが見落とされることがほとんどなくなる。最初に間違って受け入れられた探索パターンがあったとしても、最後に検証によって確実に正しく撥ねられる。それ故、全体として第1及び第2の種類の誤りの率は低くなる。あるいは肯定的に表現すれば、探索パターンひいてはコードの認識の感度及び特異性がともに非常に高くなる。その際、画像の画素に僅かな回数だけアクセスする簡単な幾何学的操作で足りるため、本方法は効率的且つ高速に作動し、よってリアルタイムの対応が可能であるか、若しくは、読み取りトンネル内でデコードを行うために利用できる短い時間窓のごく一部しか必要としない。デコーダには非常に高速にほぼ全てのコードが渡されるが(感度)、実際に全くコードを含んでいない画像領域に対して計算時間を費やす羽目にはならない(特異性)。これにより読み取り率が上がり、従ってコード読み取りに使用した場合の最も重要な品質基準が向上する。
【0016】
好ましくは、前記少なくとも1本の線に沿ったエッジ移行部が許容差を考慮して互いに1:1:3:1:1の比で間隔を空けている場合に候補位置が決定される。これは内側の3×3の正方形とそれを囲む2つの矩形リングとを持つQRコード又はAztecコードの探索パターンの規約に対応している。この探索パターンの特徴は、この間隔比がどの方向にも存在しており、よってコードの向きに全く依存せず、予め決められたどの方向(特に画像の行方向)の線にも当てはまるということである。実際の画像内では前記間隔比は厳密には期待できないため、許容差を認めることが好ましい。
【0017】
前記候補位置は、前記少なくとも1本の線に沿ったエッジ移行部の重心として決定することが好ましい。候補位置はできるだけ探索パターン内の中心にあるべきであり、それはこの重心形成により先に一度、線方向に達成される。それに垂直な方向には、探索パターンの中心部はいずれにせよ遠く離れていることはあり得ない。なぜなら、そうでなければ線方向のエッジ移行部の条件が満たされないからである。特に1:1:3:1:1の間隔比は中心にある3×3のマス目を通過する線にしか現れない。重心の計算については、例えば両方の最も外側のエッジ移行部間の真ん中としたり、全てのエッジ移行部の平均としたりする等、様々な方法がある。
【0018】
互いに平行な複数の線に沿ったエッジ移行部が探索パターンを指し示している場合に前記候補位置を該平行な線の間の真ん中に決定することが好ましい。隣接した複数の互いに平行な線が示すエッジ移行部から、探索パターンの横断、特にエッジ移行部間の間隔比1:1:3:1:1が推論されることがあり得る。その場合、探索パターンの中心部は真ん中の線の上、若しくは該当の線が偶数本なら真ん中の2本の線の間にあると期待できる。この中心は2段階で見つけることができる。即ち、まず前段落のように線毎に重心を決定し、次に線方向に直交する方向におけるそれら重心の重心を決定するのである。もっともその計算は、該当する線のエッジ移行部の全ての重心としたり、それぞれ最も外側のエッジ移行部又は線のみとしたりする等、任意に行うことができる。
【0019】
候補位置の周囲において探索パターンの場所を特定するために、候補位置から放射状に延在する射線に沿って、特に互いに同じ角度間隔を空けた8本又は16本の射線に沿って、それぞれ3つの最も近いエッジ移行部を特定することが好ましい。候補位置は、最初は同じ方向(特に行方向)の線のみに基づいて見つけ出されたものである。放射状の射線により探索パターンの場所が今度は全ての方向においてより正確に特定される。その際、好ましくは互いに45度ずつ角度のずれた8方向又は互いに22.5度ずつ角度のずれた16方向が用いられる。角度ラスタを更に狭くするとコストがかかりすぎる一方で著しい改善がない。不均等な角度ラスタも考えられるが、いくつかの方向がより重要であるという暗黙の理不尽な仮定をすることになる。他の本数の射線(例えば7本)で均等に分割すると、射線の勾配がもはや1/2、1又は2といった簡単な値にならず、離散化誤差が生じるという欠点がある。最も近い3つのエッジ移行部は、候補位置が実際に探索パターン内のある程度中心にあれば、それを囲む2つの矩形リングを通り抜ける。任意選択のステップとして、エッジ移行部の間隔が全ての方向又は少なくともほとんどの方向で2つの矩形リングの横断と一致しているらしいどうか検査することができる。
【0020】
前記射線の各々の第1のエッジ移行部を接続して第1のリングを、前記射線の各々の第2のエッジ移行部を接続して第2のリングを、及び/又は、前記射線の各々の第3のエッジ移行部を接続して第3のリングを形成することが好ましい。これらのリングは、探索パターンの中心部と矩形リングとの間にあるエッジの、ここまでに見積もられた近似となる。
【0021】
好ましくは、前記リングのリング断片のうち、エッジに沿って延在する有効と認められるリング断片を、特にソーベルフィルタを用いて探し出す。前記射線に沿ったエッジ移行部は、様々な理由から実際には探索パターンの矩形リングとは一致しない可能性がある。それは、その候補位置に全く探索パターンがないという理由や、ある射線に沿ってエッジ移行部が隠蔽されている、コントラストが低い、又はエッジ移行部用に設定された基準で見落とされてしまったといった理由からである。それ故、リング断片が本当に探索パターンのエッジに沿って延在しているかという追加の検査が有意義である。それにより前記3つのリングは有効と認められるリング断片と認められないリング断片に分けられ、好ましくは有効と認められるリング断片のみを用いて更に処理が行われる。有効と認められるリング断片がない又は少なすぎる場合はこの候補位置のための処理を中断することができる。リング断片の有効性を確認する好ましい方法の1つはソーベルフィルタを用いることである。
【0022】
好ましくは、前記リング断片を水平なリング断片と垂直なリング断片に分類し、それらから探索パターンの向きを特定する。リング断片は候補位置から出る放射状の射線上にあるエッジ移行部間の接続線に由来する。それらの線が実際に探索パターンの中心部と矩形リングとの間のエッジに沿って延在していれば、それらは探索パターンの水平及び垂直な主方向に対応して2つの向きだけを示す。少なくとも近似的にはそれは見つかったリング断片にも同様に当てはまるから、それらを相応にクラスタ化することでこの2つの主方向を見つけ出す。それから各主方向が例えば各クラスタのリング断片の平均の向きとして確定される。全てのリング断片を用いてもよいが、好ましくは、有効と認められるリング断片のみ及び/又は例えば1つのリング(最も外側にある第3のリング等)のリング断片のみを用いてもよい。
【0023】
前記向きに従った4つの主方向においてそれぞれ最も外側のリング断片を選択し、該リング断片に沿った直線が探索パターンの場所を囲むようにすることが好ましい。探索パターンの向きがひとたび決まれば、その向きに結びついた座標系における「上」、「下」、「右」及び「左」という4つの主方向が定まる。これらの主方向の各々において、今度は最も外側のリング断片(好ましくは、第3のリングの有効と認められるリング断片)を探し出す。これらのリング断片を通る直線が今度は探索パターンを囲む枠を形成し、それにより該パターンの場所が特定される。
【0024】
ある主方向において最も外側のリング断片を見つけることができなかった場合、探索パターンの既知の構造に基づいて、他のリング断片からその欠落した最も外側のリング断片を再構成することが好ましい。ある主方向において、探索パターンが隠蔽されている若しくはコントラストが低すぎるため又は他の理由からその主方向における最も外側のリング断片(少なくとも、有効と認められる最も外側のリング断片)が見つからないことがあり得る。この場合、その主方向における枠の末端を他の情報から(特に、この主方向における第1及び/又は第2のリングのリング断片から、及び/又は、当該方向の両側の主方向における最も外側のリング断片から)再構成することができる。再構成の基礎はここでも探索パターンの1:1:3:1:1という既知の間隔比とすることができる。
【0025】
探索パターンを検証するために、互いに均等に間隔を空けた7本の互いに平行な半直線を探索パターンの主軸から外側に向かって該探索パターンの半分を通り抜けるように引き、これらの半直線上にそれぞれ1、2、3、3、3、2、1箇所のエッジ移行部がこの順序で存在することを探索パターンの検証のために要求することが好ましい。前記7本の半直線は均等なラスタ状に探索パターンの半分を覆う。探索パターンの場所が先に特定されているため、モジュールサイズ並びに期待されるコードモジュールは探索パターン内での位置も含めて分かっている。前記半直線は各半直線がそれぞれ別のコードモジュール列をカバーするように前述のラスタ内に引かれており、それら半直線が一緒になって探索パターンのその都度の半分において全てのコードモジュールをカバーする。各コードモジュールから出ない範囲で均等なラスタから外れることは些細なことであって許容される。実際に半直線の下に探索パターンが存在していれば、それらの半直線はそれぞれ1、2、3、3、3、2、1箇所のエッジとこの順序で交わるはずである。これは、3×3の中心部とそれを囲む2つの矩形リングとを持つ探索パターンの構造からの帰結である。その際、例えば少なくとも1本の半直線にあるエッジ移行部の数が合わないこと等を許容差とすることが考えられる。1本の主軸について半分を対象とした前述の検証は、他方の半分、及び、他方の主軸について2つの半分を対象として繰り返すことができ、結果的に全部で4回検証される。ここでも、4回の検証ステップのうち1回において半直線上のエッジ移行部の数が全て合ってはいない等といった許容差が考えられる。これらの許容差を用いて、本物の探索パターンを撥ねるような厳しすぎる検証と、誤検出された探索パターンを含めるような寛容すぎる検証との間で誤り率を調整することができる。
【0026】
好ましくは、少なくとも1本の半直線上で各エッジ移行部までの距離を追加的に検査する。外側の半直線上ではエッジ移行部が1つしかなく、それは探索パターンのサイズのほぼ半分の距離に生じるはずである。内側の半直線には規定に従って複数のエッジ移行部があるはずである。これらの半直線について、最後のエッジ移行部の他に、エッジ移行部同士が半分の探索パターンの構造と合った間隔を空けているかどうかも検査することができる。つまり、何箇所のエッジ移行部がなければならないかだけでなく、どのような間隔で又はどの位置にそれらエッジ移行部が存在するかということも予想するのである。これにより追加的な任意選択の検証ステップが可能になる。
【0027】
好ましくは、画像内に直角三角形状に配置された3つの探索パターンが見つかるかどうか検査する。単独のQRコードにとって、探索パターンが1つだけ、2つだけ又は4個以上であることは尤もらしくない。3つの探索パターンがある場合、それらは直角二等辺三角形になっているはずであり、そこから光学コードに対する枠を直ちに読み取ることができる。この検査は本方法内のどこかの時点で行うことができ、特に極めて早く又は極めて遅く行うことができる。「極めて早く」とは、画像断片をとりわけより正確に調べるために、最初から3つの適切な候補位置がなければならないことを意味する。「極めて後で」とは、個々の探索パターンの検証が済んでからようやく、その中に適切な三角形を成す3つの探索パターンがあるかどうか検査するということである。
【0028】
好ましくは、光学コードを読み取るために、探索パターンに基づいて位置が特定された画像の一部をデコーダに渡す。これは位置の特定に続いて直ちに又は時間を空けて、同一の又は別の機器内で行うことができる。高い信頼性で光学コードの位置が特定されるおかげで、デコーダは実際に光学コードを含んでいる画像断片を扱うだけでよい。これによりデコード時間が短縮され、最終的には読み取り率が改善される。
【0029】
好ましい発展形態においては、光学コードを含む画像を撮影するための受光素子と、本発明に係る光学コードの位置の特定方法の一実施形態が実装された制御及び評価ユニットとを有する光電式コード読み取り装置が提示される。この場合、光学コードが見つかったら続けてそれを読み取ることが好ましいが、これはたった今説明したように時間を空けて及び/又は別の装置で行うこともできる。画像センサは実施形態に応じてカメラベースのコードリーダのラインセンサ又はマトリクスセンサである。バーコードスキャナも考えられ、その受光素子がスキャンの進行中にその都度の強度プロファイルを取得し、それを画像ラインのように扱うことができる。複数のコードリーダ又はカメラヘッドの結合も同様に考えられる。制御及び評価ユニットはコード読み取り装置そのものの一部であること、特にそのケーシングに収納されていることが好ましい。ただし、少なくとも一部が外部にある制御及び評価ユニットも考えられる。コードは、搬送装置上で画像センサの検出領域内を通って搬送される物体に取り付けられていることが好ましい。これはコードリーダ又は少なくともその撮像部を搬送装置又はベルトコンベアの付近に固定的に取り付けてコードを読み取る典型的な応用である。
【0030】
以下、本発明について、更なる特徴及び利点をも考慮しつつ、模範的な実施形態に基づき、添付の図面を参照しながら詳しく説明する。
【図面の簡単な説明】
【0031】
図1】ベルトコンベアの上方にコード読み取り装置を取り付けた模範例の概略全体図。
図2】探索パターンの候補位置を見つけ出し、該探索パターンの場所を正確に特定し、該探索パターンを検証するための模範的なフローチャート。
図3】探索パターンの候補位置を見つけ出すための模範的なフローチャート。
図4】候補位置の周囲において探索パターンの位置を正確に特定するための模範的なフローチャート。
図5】探索パターンを検証するための模範的なフローチャート。
図6】探索パターンを、該探索パターンの候補位置を見つけ出すための走査線及びエッジ移行部とともに示す模範的な図。
図7】探索パターンを、放射状の射線及び該射線に沿ったエッジ移行部を互いに結ぶリングとともに示す模範的な図。
図8】複数のコード及び探索パターンを含む画像における図7のリングの例。
図9】探索パターンを、外側のリングの有効と認められるリング断片及び有効と認められないリング断片とともに示す模範的な図。
図10】探索パターンを、グループ化したリング断片に基づいて見つけ出された2つの主方向とともに示す模範的な図。
図11】ある主方向において再構成された、探索パターンを囲む枠を含む画像例。
図12】探索パターンを、該探索パターンの半分をカバーする7本の互いに均等に間隔を空けた半直線とともに示す模範的な図。
図13】本発明に係る方法で見つけ出されて検証された探索パターンを含む画像例。
図14図13の画像例を図12の7本の半直線に基づく検証の説明のなかで示した図。
【発明を実施するための形態】
【0032】
図1はベルトコンベア12の上方に取り付けられたコードリーダ10を示している。ベルトコンベア12は矢印16で示したようにコードリーダ10の検出領域18を通って物体14を搬送する。物体14はその外側表面にコード20を持っており、これがコードリーダ10により検出されて評価される。このコード20は上面に付されているか、少なくとも上から見えるように付されている場合にのみコードリーダ10により認識できる。そこで、図1の描画から逸脱して、例えば側面又は底面に付されたコード22を読み取るために複数のコードリーダ10を異なる方向から取り付けることで、いわゆる全方向からの多重読み取りを可能にしてもよい。このようにコードリーダをベルトコンベア12付近に固定して用いることは実際に非常によくある。しかし、本発明は何よりコード20の位置の特定と読み取り若しくはコードリーダ10そのものに関するものであるから、本例を限定的なものとして解釈してはならない。
【0033】
コードリーダ10は搬送されている物体14とコード20の画像データを画像センサ24で取得し、そのデータが制御及び評価ユニット26によって画像解析及びデコード法を用いて更に処理される。制御及び評価ユニット26はそのために、マイクロプロセッサ、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、ASIC(Application-Specific Integrated Circuit)、AIプロセッサ、NPU(Neural Processing Unit)、GPU(Graphics Processing Unit)等の一又は複数の計算部品を備えている。コードリーダ10はインターフェイス28を通じて、読み取られたコードや画像データ等の情報を可能であれば様々な処理段階で出力する。
【0034】
図2はコードリーダ10により撮影された画像データ内のコード22の位置を特定するための模範的なフローチャートを示している。この方法は制御及び評価ユニット26内で又は少なくとも部分的に外部で実行することができる。まずは3つのステップを概括的に説明し、その後で図3~5を参照してそれらをより詳しく説明する。ここで先に述べておくが、図3~5の全てのステップを続けて行うことは非常に有利ではあるものの、本発明は下位での組み合わせも含んでおり、従って各下位ステップはまずは任意選択のものと理解すべきである。
【0035】
ステップS10では、画像を貫通する互いに平行な走査線に沿った画素の並びを好ましくはライン毎に評価することにより、探索パターンの候補位置が見つけ出される。これらの走査線が探索パターンの上を通っていれば、該走査線上にはエッジ移行部が互いに該探索パターンに特徴的な間隔を空けて存在している。このようにして探索パターンと推定されるものの中心部の位置を大まかに特定することができる。この位置を候補位置と呼ぶ。それはここで探索パターンの候補が認識されているからである。
【0036】
ステップS20では、候補位置の周囲を更に調べて、探索パターンの場所を正確に特定し、それが探索パターンであることを確認する。その結果、探索パターンの正確な場所が、例えば該探索パターンに属する画素を囲む枠の形で分かる。
【0037】
ステップS30では探索パターンが検証される。ステップS20から正確な場所が分かった後は、見つかった探索パターンの属性を個々のコードモジュールのレベルまで探索パターンの既知の属性と比較することができる。その際、ステップS20での検出には寄与しなかった、特に非常に正確な検証ステップを実行することもできる。誤検出された探索パターンはそれにより非常に効率的に排除される。これにより、ステップS20ではやや寛容にしておき、例えば部分的に隠蔽されている探索パターンを当面許容する、ということも可能になる。ステップS20においてまずより寛大な選択を行い、その後にステップS30において非常に正確な検証を行うというこの共同作業により、大部分のコードが見つかり、しかもそれらが本当にコードであるということになる。
【0038】
図3は、図2のステップS10の下位ステップとして考えられる、候補位置を見つけ出すための模範的なフローチャートを示している。これは模範的な探索パターン30を示す図6に図解されている。ステップS11では、平行な走査線32が調査対象の画像領域を貫通して引かれる。これは好ましくは水平な走査線であり、図6では見やすくするためそのうち2本しか描いていない。走査線32に沿って明るいコード領域と暗いコード領域の間又は逆に暗いコード領域と明るいコード領域の間のエッジ移行部34が特定される。
【0039】
ステップS12では、走査線のエッジ移行部間の間隔が検査される。探索パターン30を貫通している走査線32の場合、連続する6箇所のエッジ移行部34が互いに1:1:3:1:1という比で間隔を空けていなければならない。これは、探索パターン30が、3×3個のコードモジュールを有する中心部を持ち、該中心部を各々コードモジュール1個分の幅を持つ2つの矩形リングが交互に囲んでいる、という構成になっているからである。それ故、走査線32が探索パターンをどの方向に貫通しても1:1:3:1:1という前記の比が生じる。即ち、ある走査線32に沿って6個のエッジ移行部34が許容差を考慮して1:1:3:1:1という間隔比で見つかれば、ここに探索パターン30があることが推定される。それに付属する候補位置は好ましくはエッジ移行部の中心点であり、例えば、全てのエッジ移行部の共通の重心、又は考慮される6個のうち最も外側のエッジ移行部だけの共通の重心として計算される。
【0040】
ステップS13では、連続する複数の走査線32の候補位置を1つの候補位置36にまとめる。なぜなら、ここで問題となっているのはそれぞれ新たな探索パターンではなく同一の探索パターン30であり、連続する走査線32が多重的に当たったものだからである。ここでも、例えば、関係する走査線32の全てのエッジ移行部、走査線32毎のそれぞれ最も外側のエッジ移行部のみ、及び/又は、最も外側の走査線32のみの重心を求めたり、走査線32毎の複数の候補位置から共通の中心点を求めたりする等、様々な計算方法がある。
【0041】
図4は、図2のステップS20の下位ステップとして考えられる、候補位置の周囲において探索パターンの場所を正確に特定するための模範的なフローチャートを示している。ステップS21では、図7に描かれた探索パターン30が示すように、候補位置36を出発点として放射状の射線38が形成される。ここでは模範的に16本の射線38が互いに22.5度の角度間隔を空けた均等な角度ラスタの形になっている。各射線38上で、候補位置36にある原点に最も近い3つのエッジ移行部が特定される。ステップS10~S13の具体的な結果によっては、候補位置36は図7と違って探索パターン30の3×3の中心部内で若干中心から外れていることもあり得る。
【0042】
ステップS22では、射線38毎に見つかった3つのエッジ移行部のうち最も内側、真ん中及び最も外側のものがそれぞれ互いに接続される。これにより3つのリング40ができる。ステップS21においていずれかの射線38上で3つのエッジ移行部が見つからなかった場合は、リング40内でそれに対応する点は省略される。候補位置36が図7のように探索パターン30内にある場合、これらのリング40は全体として見れば探索パターン30の明暗移行部と一致している。接続線によるリング40の作り方が単純であるため、いくつかのリング断片ではそれが当てはまらないが、これについてはすぐにステップS23で更に論じる。
【0043】
その前に、図8にステップS22を適用した複数の探索パターンを含む画像を模範例として示す。そこにある探索パターンはリングによって非常に良好に捕らえられている。右上に、数本の射線において3個のエッジ移行部が見つからなかったため点を省略しなければならなかった例がある。見つかった探索パターンの他に誤検出の候補位置がいくつかあるが、そこでは接続線がリングとはほとんど呼べず、むしろ混乱した状態になっている。これは、それらの候補位置には3個のエッジ移行部が何らかの構造によって形成されるものの、探索パターンではなく、一部が非常に離れたところにあるからである。これら誤検出の候補位置は後のステップによりいずれ排除される。原理的には、図8の多くの事例のように逸脱が明白になっている場合、該当する射線38に沿ったエッジ移行部の間隔比が全く尤もらしくない比になっていることからも既に誤検出と認識できるであろう。
【0044】
ステップS23ではリング40のリング断片の有効性を確認する。図9はこれを最も外側のリング40について示している。リング断片の有効性を確認するために、それに対応する線が明暗エッジに沿って延在しているかどうか検査する。図9では、検査により有効と認められるリング断片42にはそれが当てはまるのに対し、有効と認められないリング断片44は暗領域の内部を延在しており、従って明暗エッジに沿っていない。有効と認められるリング断片42を見つけ出す1つの方法は、ソーベルフィルタを用いて明暗移行部のその都度の方向を特定することである。有効と認められるリング断片42はソーベルフィルタにより浮き彫りになった点の上になければならない。その際、孤立した異常値は許容してもよい。
【0045】
ステップS24では、リング断片42、44がそれらの延在方向に従って2つの互いに直交するグループに分類される。それには有効と認められるリング断片42のみを用いることが好ましい。図9を見ると、有効と認められるリング断片42は探索パターン30に対して非常に明確に水平又は垂直に延在している一方、有効と認められないリング断片44の向きは逸れていることが分かる。2つのグループ内では、分配されたリング断片42、44の向きからそれぞれの主軸を、例えばグループ内の平均の向きとして決定することができる。図10はこれにより見つけ出された探索パターン30の2本の主軸46a~bを示している。
【0046】
ステップS25では、主軸46a~bの両側の4つの主方向、即ち今や既知である探索パターン30の向きに従って右側、左側、上側及び下側において、それぞれリング断片42a~dが好ましくは外側のリングから見つけ出される。ここでも、有効と認められるリング断片42だけを考慮の対象とすることが好ましい。見つかったリング断片42a~dに沿った4本の直線が探索パターン30を囲む枠を形成し、これにより今やその場所が認識されている。任意選択で、前記直線の周囲を、特に該直線と直交する追加の走査線によって評価することにより、前記枠を更に精緻化して探索パターン30とより良好に一致させることができる。
【0047】
ステップS26では、いずれかの主方向においてリング断片42a~dが見つからなかった場合、あるいは少なくとも外側のリングのリング断片42a~dが見つからなかった場合に、リング断片42a~dが再構成される。図11は上側において部分的な隠蔽又は他の画像エラーによりリング断片が欠落した画像例を示している。それ故、枠48が上側の縁部48aにおいて再構成されている。それには、十分に識別された枠48の他の縁部及び/又は内側のリングのリング断片を利用することができる。再構成乃至は外挿には更に探索パターンの既知のサイズ比も取り込まれる。図11の例については、簡単なやり方にするために、枠の全ての縁部は下側の縁部と同じ長さでなければならないと前提することができる。追加情報は、再構成すべき縁部48aとそれに対向する下側の縁部が候補位置36からほぼ同じ距離にあるはずだということである。その代わりに、又はそれに加えて、上側にリング断片、即ち内側及び/又は真ん中のリングのリング断片も識別されている。探索パターンの構造に基づき、内側のリングと再構成すべき外側のリングとの間隔がどのような比になるかということ、つまり1:1:3:1:1という間隔比に従うことは分かっている。ステップS26のおかげで探索パターン30の場所は決定的な場合でもなお識別される。これにより、誤検出される探索パターンが増える恐れが高まるが、これは今から説明する最後の検証により阻止される。
【0048】
図5は、図2のステップS30の下位ステップとして考えられる、探索パターンを検証するための模範的なフローチャートを示している。図12はその検証を探索パターン30の模写に基づいて示している。ステップS31では、主方向毎、即ち、主軸46a~bを持つ既知の向きに関して右方、左方、上方及び下方に、7本の互いに平行な半直線50が引かれる。半直線50は主軸46a~bの一方からそれに直交して探索パターン30の半分にわたって延在する。それぞれ7本の半直線50を含むそのようなグループが4つある場合、半直線は全部で28本であり、それらが4回、互いに90度回転してそれぞれ探索パターン30の半分を覆う。探索パターン30を囲む枠48が前に見つかっているため、探索パターン30の大きさもそのモジュールサイズも今では分かっている。それ故、各半直線50がそれぞれ別のモジュール列を通って延在するように半直線の間隔を空けることができる。これは例えば探索パターン30の幅又は高さを均等に分割することにより達成されるが、その際に逸脱があっても、各半直線50がそれぞれのモジュール列をまだ通っている限り支障はない。7本という半直線50の数はそのために探索パターン30の7×7のコードモジュールに対して適切に選ばれている。
【0049】
ステップS32では、半直線50毎にエッジ移行部を特定する。それには、枠48のサイズの半分に相当する半直線50の長さに沿って探索を行うだけでよく、場合によって一定のバッファを設ける。枠48より外側のエッジ移行部はもはや正当な探索パターン30に帰するものとはみなされない。
【0050】
ステップS33では、半直線50毎に見つかったエッジ移行部の数が探索パターン30において期待される数(即ち7本の半直線50に対して順に1、2、3、3、3、2、1箇所のエッジ移行部)と比較される。これらの必要数は図12において各半直線50の末端に付記されている。なぜこの数が期待されるのかは図からもすぐに分かる。例えば、外側の半直線50は完全に探索パターンの暗い外側の矩形の内部で延在しているから、探索パターンの縁にある1箇所のエッジ移行部しか見つからないはずである。基本的には、1本の半直線50上におけるエッジ移行部の数の食い違いを許容することが考えられるが、そうすると検証の証明力が著しく弱まる。むしろ、全ての半直線50に対してはエッジ移行部の算出された数と期待される数との間の一致を要求しないようにすることが考えられる。このような許容差は半直線50のグループ毎に又は全ての半直線50に対して設定しておくことができる。即ち、例えばグループ毎に7本の半直線50のうち6本が正しい数のエッジ移行部を通って延在していること、又は28本の半直線50のうち26本がそうなっていることを要求するのである。探索パターン30は、前記比較が実施形態によって許容差あり又はなしで十分な一致を示した場合に、ステップS33に従って正当性が証明されたものとみなされる。
【0051】
任意選択のステップS34では、更に追加の条件、即ち、各々の半直線50上のエッジ移行部の距離又は位置が尤もらしいかどうか検査する。外側の半直線50において期待される1箇所のエッジ移行部は探索パターン30又は枠48のサイズのほぼ半分の距離にある。この距離はモジュールサイズの3個半分と表現することもできる。同様の予想が他の各半直線50における最も遠いエッジ移行部に当てはまる。他の各半直線50にはより内側にもエッジ移行部があるが、これらはモジュールサイズの1個半分又は2個半分の距離にあると予想される。ステップS34には許容差を設けることが好ましく、しかもそれは期待される距離に関するもの、及び/又は、ステップS34の条件を満たさなければならない半直線50の割合に関するものであることが好ましい。
【0052】
図5に示したステップに加えて更に任意選択の拡張が可能である。既にあまりに多くの半直線50がエッジ移行部の数及び/又は距離に関する期待を満たしていない等の理由から、許容差の範囲内で一致を達成できないことが早めに確認された場合は、否定的な結論とともに検証を早めに打ち切ることができる。これは例えば探索パターンのあまりに多くのモジュールが隠蔽されている場合に生じる。別の考えられるテストでは、各半直線50について、明暗移行部に基づき、該半直線50と矛盾しないためには探索パターン30の中心部が明又は暗のいずれであるはずであるかを判定する。中心部の色についてはこのテストによって例えば半直線50の75%を超える十分な一致がなければならない。
【0053】
図13は本発明に係る方法で見つけ出されて検証された複数の探索パターンを含む画像例を示している。図14はたった今説明した半直線を用いたその検証を示している。暗い半直線は探索パターンが有効と認められるもの、明るい半直線は認められないものである。符号52を付した箇所では検証が複数の候補位置で正しく失敗しており、本物の探索パターンだけが検証により有効と認められている。
【0054】
QRコードについては特別に、最後のテストにおいて、探索パターンが3個ずつ直角二等辺三角形の形で見つかったかどうか検査することができる。実施形態によって、この条件を満たさない探索パターンを直ちに撥ねるか、あるいは、例えば探索パターンが1つ又は2つしかない画像領域若しくは探索パターンの配置がずれている画像領域に対してデコーダ内での優先順位を低くする又はそれに割くデコード時間を短くする。本発明による探索パターンの検出はAztecコードにも同様に応用できるが、その場合は当然ながら3つの探索パターンが三角形状になっていることは期待されない。なぜなら、Aztecコードには探索パターンが中心に1個あるのみだからである。本発明は他の探索パターンにも応用できるが、その場合はQRコードやAztecコードに固有の条件(1:1:3:1:1という比等)を適宜合わせることになる。
【0055】
図14の例でも分かるように、本発明によれば、最初により多くの候補位置を受け入れることでコードの位置特定の感度を高めることができる。従って、一部が隠蔽された探索パターンや低コントラストの探索パターン等、認識が困難な探索パターンでも捕らえられる。しかもその際、例えば枠48としてその都度見つけ出される探索パターンの場所は、境界ボックスや他の従来技術の方法に比べて改善されている。候補位置の数が増えても、最後に検証を行うため誤検出が増えることは全くなく、逆にそれどころか本方法で最終的に認識される探索パターンは従来技術の場合よりも信頼性が高い。つまり高い選択性も達成される。その際、検証の前に探索パターンの再構成又は外挿を行うことさえできる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
【外国語明細書】