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

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

▶ コグネックス・コーポレイションの特許一覧

特許72452702次元マトリックスシンボルを復号するためのシステムおよび方法
<>
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図1
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図2
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図3
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図4
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図5
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図6
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図7
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図8
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図9
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図10
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図11
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図12
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図13
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図14
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図15
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図16
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図17
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図18
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図19
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図20
  • 特許-2次元マトリックスシンボルを復号するためのシステムおよび方法 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-14
(45)【発行日】2023-03-23
(54)【発明の名称】2次元マトリックスシンボルを復号するためのシステムおよび方法
(51)【国際特許分類】
   G06K 7/14 20060101AFI20230315BHJP
   G06K 7/10 20060101ALI20230315BHJP
【FI】
G06K7/14 043
G06K7/10 372
G06K7/14 017
G06K7/14 073
【請求項の数】 20
(21)【出願番号】P 2021002347
(22)【出願日】2021-01-08
(62)【分割の表示】P 2015225405の分割
【原出願日】2015-11-18
(65)【公開番号】P2021051815
(43)【公開日】2021-04-01
【審査請求日】2021-01-22
(31)【優先権主張番号】62/081327
(32)【優先日】2014-11-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504382671
【氏名又は名称】コグネックス・コーポレイション
(74)【代理人】
【識別番号】100134832
【弁理士】
【氏名又は名称】瀧野 文雄
(74)【代理人】
【識別番号】100165308
【弁理士】
【氏名又は名称】津田 俊明
(72)【発明者】
【氏名】キアンユン イェ
(72)【発明者】
【氏名】キアンユ ワン
(72)【発明者】
【氏名】ジェイムズ エイ ネグロ
【審査官】小林 紀和
(56)【参考文献】
【文献】特開2012-33035(JP,A)
【文献】特開2012-185725(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 7/14
G06K 7/10
(57)【特許請求の範囲】
【請求項1】
各々がモジュール値およびモジュール位置を有するデータモジュールを含み、且つデータセットを符号化する2次元マトリックスシンボル、を読み取るシステムであって、
前記2次元マトリックスシンボルの少なくとも一部分を含む画像を取得するように構成されたイメージングデバイスと、
前記イメージングデバイスに結合されデータ読み取りアルゴリズムを実行するプロセッサであって、前記データ読み取りアルゴリズムが、前記画像を受信し、前記画像に1つ又は複数の候補領域の位置を特定し、固定パターンを使用することなく前記画像内の前記1つ又は複数の候補領域内に前記データモジュールの少なくとも一部分の位置を特定し、前記画像から前記データモジュールの位置のモデルを当てはめ、前記モデルを推定して予測モジュール位置をもたらし、該予測モジュール位置にある前記画像からモジュール値を決定し、前記モジュール値からバイナリマトリックスを抽出する、プロセッサと、
前記プロセッサに結合され前記バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されているバイナリマトリックス復号器と、
を備えるシステム。
【請求項2】
前記データ読み取りアルゴリズムは、エラー訂正ルーチンを使用して前記バイナリマトリックス内のエラーを訂正する
請求項1に記載のシステム。
【請求項3】
前記システムは、1つまたは複数の照明特徴を用いて前記画像の目標を照明する照明器を含む
請求項1に記載のシステム。
【請求項4】
前記データ読み取りアルゴリズムは、前記照明特徴を使用して前記画像内の前記データモジュールの少なくとも一部分を位置特定する
請求項3に記載のシステム。
【請求項5】
前記データモジュールの少なくとも一部分を位置特定することは、前記データモジュールの1つまたは複数の顕著な特徴を識別することを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される
請求項1に記載のシステム。
【請求項6】
前記プロセッサまたは前記バイナリマトリックス復号器は複数のシンボルタイプを推定または復号するように構成されている
請求項1に記載のシステム。
【請求項7】
前記複数のシンボルタイプは、データマトリックス、QRコード(登録商標)、Aztecコード、MaxiCode、およびそれらの組み合わせから成る群から選択される
請求項6に記載のシステム。
【請求項8】
前記データ読み取りアルゴリズムは前記2次元マトリックスシンボルの属性を含む
請求項1に記載のシステム。
【請求項9】
前記データ読み取りアルゴリズムは前記プロセッサに対する単一のコマンドによって実行することができる
請求項1に記載のシステム。
【請求項10】
各々がモジュール値およびモジュール位置を有するデータモジュールを含み、且つデー
タセットを符号化する2次元マトリックスシンボル、を読み取る方法であって、
前記2次元マトリックスシンボルの少なくとも一部分を含む画像を、プロセッサを使用して受信するステップと、
前記プロセッサを使用して前記画像に1つ又は複数の候補領域の位置を特定するステップと、
前記プロセッサを使用して、固定パターンを使用することなく前記画像内の前記1つ又は複数の候補領域に前記データモジュールの少なくとも一部分を位置特定するステップと、
前記プロセッサを使用して、前記画像から前記モジュール位置の少なくとも一部分にモデルを当てはめるステップと、
前記プロセッサを使用して、前記モデルを推定し予測モジュール位置を画定するステップと、
前記プロセッサを使用して、前記予測モジュール位置にある前記画像から前記モジュール値を判定するステップと、
前記プロセッサを使用して、前記モジュール値からバイナリマトリックスを抽出するステップと、
前記バイナリマトリックスを復号するステップと、
を含む方法。
【請求項11】
前記プロセッサを使用し、エラー訂正ルーチンを使用して前記バイナリマトリックス内のエラーを訂正するステップをさらに含む
請求項10に記載の方法。
【請求項12】
前記2次元マトリックスシンボルまたは前記2次元マトリックスシンボルに近い箇所を照明するステップをさらに含む
請求項10に記載の方法。
【請求項13】
前記データモジュールの少なくとも一部分を位置特定するステップは、前記データモジュールの1つまたは複数の顕著な特徴を識別するステップを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される
請求項10に記載の方法。
【請求項14】
複数のシンボルタイプを推定または復号するよう試行するステップを含む
請求項10に記載の方法。
【請求項15】
前記複数のシンボルタイプは、データマトリックス、QRコード(登録商標)、Aztecコード、MaxiCode、およびそれらの組み合わせから成る群から選択される
請求項14に記載の方法。
【請求項16】
前記画像を受信する前に前記2次元マトリックスシンボルの1つまたは複数の属性を含むように前記プロセッサを訓練するステップをさらに含む
請求項10に記載の方法。
【請求項17】
前記方法は、前記プロセッサに対する単一のコマンドによって実行することができる
請求項10に記載の方法。
【請求項18】
各々がモジュール値およびモジュール位置を有するデータモジュールを含んでいる2次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムであって、
前記2次元マトリックスシンボルを含む画像を取得するように構成されるイメージングデバイスと、
前記イメージングデバイスに結合されデータ読み取りアルゴリズムを実行するプロセッサであって、前記データ読み取りアルゴリズムが、前記画像を受信し、1つ又は複数の候補領域の位置を特定し、固定パターンを使用することなく前記画像内の前記1つ又は複数の候補領域に前記データモジュールの少なくとも一部分を位置特定し、前記画像から前記モジュール位置のモデルを当てはめて前記モデルを推定して予測モジュール位置をもたらし、前記予測モジュール位置にある前記画像からモジュール値を決定し、前記モジュール値からバイナリマトリックスを抽出する、プロセッサと、を備え、
前記データ読み取りアルゴリズムは周波数ドメイン解析を含むシステム。
【請求項19】
前記データ読み取りアルゴリズムは周波数ドメイン解析を使用して前記モデルを当てはめる
請求項18に記載のシステム。
【請求項20】
前記プロセッサに結合されているバイナリマトリックス復号器をさらに備え、前記バイナリマトリックス復号器は前記バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されている
請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の技術は、イメージングシステムおよびシンボルを復号するための方法に関し、より詳細には、固定パターンが不完全であるかまたは欠如している2次元マトリックスシンボルを読み取るためのイメージングシステムおよび方法に関する。
【背景技術】
【0002】
イメージングシステムは、観察される対象物に関する情報を送達するために画像センサを含む画像取得デバイスを使用する。システムはその後、様々なアルゴリズムに従ってこの情報を解釈して、プラグラムされた意思決定および/または識別機能を実施する。画像が、可視光および近可視光範囲内でセンサによって最も効率的に取得されるために、対象物は一般的に照明される。
【0003】
画像センサを使用したシンボル読み取り(一般的に「バーコード」スキャンとも称される)は、光学素子(レンズ)およびセンサ(CMOSカメラ、CCDなど)を、シンボル(たとえば「バーコード」)を含む物体上の位置に向けること、および、そのシンボルの画像を取得することを含む。シンボルは、付属のデータプロセッサ(たとえば、マイクロコンピュータ)がそこから物体に関する有用な情報(たとえば、そのシリアルナンバー、型、モデル、価格など)を導出することができる文字または形状の順序付けされたグループを表す所定パターンのセットを含む。シンボル/バーコードは様々な形状およびサイズで利用可能である。物体をマーキングおよび識別するのに使用される、最も一般的に利用されているシンボルタイプの2つが、幅が変動する一連の棒および空間から構成されている、いわゆる1次元バーコード、ならびに、点または長方形の2次元アレイから構成されている、いわゆる2次元バーコードである。
【0004】
一般的にシンボル読み取りにおいて、シンボル/バーコードは、最初に固定パターン、たとえば、ファインダーパターンを位置特定することによって識別される。固定パターンが損傷しているかまたは欠如している場合、読み取り機はシンボルを読み取ることができない。損傷した固定パターンに対処するための近年の試行において、長方形シンボルの隅の位置を判定することを含む試みが為されている。しかしながら、これらの試行には、シンボル/バーコード内の固定点を識別する必要があり、シンボルが損傷していることに起因して固定点を位置特定することができない場合は役に立たない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
特に、固定パターンが損傷しているかまたは欠如しているシンボル/バーコードに関係する欠点を克服するために、シンボルを復号するための改善されたシステムおよび方法が必要とされている。
【課題を解決するための手段】
【0006】
一態様において、本開示は、2次元マトリックスシンボルを読み取り、または、2次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムを提供する。2次元マトリックスシンボルは、不完全な固定パターンを含むか、または固定パターンを含まない可能性がある。2次元マトリックスシンボルは、データセットを符号化することができる。システムは、イメージングデバイスおよびプロセッサを含むことができる。システムは任意選択的に、バイナリマトリックス復号器を含んでもよい。イメージングデバイスは、2次元マトリックスシンボルの少なくとも一部分を含む画像を取得するように構成することができる。プロセッサは、イメージングデバイスに動作可能に結合することがで
きる。プロセッサは、データ読み取りアルゴリズムを実行するように構成することができる。データ読み取りアルゴリズムは、画像を受信し、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定し、画像からモジュール部分のモデルを当てはめ、モデルを推定して予測モジュール位置をもたらし、予測モジュール位置にある画像からモジュール値を判定し、モジュール値からバイナリマトリックスを抽出することができる。バイナリマトリックス復号器は、プロセッサに動作可能に結合することができる。バイナリマトリックス復号器は、バイナリマトリックスを復号する復号アルゴリズムを実行するように構成することができる。データ読み取りアルゴリズムは、周波数ドメイン解析を含むことができる。
【0007】
別の態様において、本開示は、2次元マトリックスシンボルを読み取る方法を提供する。2次元マトリックスシンボルは、各々がモジュール値およびモジュール位置を有するデータモジュールを含むことができる。2次元マトリックスシンボルは、不完全な固定パターンを含むか、または固定パターンを含まない可能性がある。2次元マトリックスシンボルは、データセットを符号化することができる。方法は、プロセッサにおいて画像を受信するステップであって、画像は、2次元マトリックスシンボルの少なくとも一部分を含む、受信するステップと、プロセッサを使用して、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定するステップと、プロセッサを使用して、画像からモジュール位置の少なくとも一部分にモデルを当てはめるステップと、プロセッサを使用して、予測モジュール位置を規定するためにモデルを推定するステップと、プロセッサを使用して、予測モジュール位置にある画像からモジュール値を判定するステップと、プロセッサを使用して、モジュール値からバイナリマトリックスを抽出するステップと、バイナリマトリックスを復号するステップとのうちの1つまたは複数を含むことができる。
【0008】
本発明は、以下の番号を付された項目をさらに含む:
1.各々がモジュール値およびモジュール位置を有するデータモジュールを含む2次元マトリックスシンボルを読み取るためのシステムであって、2次元マトリックスシンボルはデータセットを符号化し、イメージングデバイスであって2次元マトリックスシンボルの少なくとも一部分を含む画像を取得するように構成されているイメージングデバイスと、イメージングデバイスに動作可能に結合され、データ読み取りアルゴリズムを実行するプロセッサであって、データ読み取りアルゴリズムは画像を受信し、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定し、画像からモジュール位置のモデルを当てはめ、モデルを推定して予測モジュール位置をもたらし、予測モジュール位置にある画像からモジュール値を判定し、および、モジュール値からバイナリマトリックスを抽出することを行うように構成されている、プロセッサと、プロセッサに動作可能に結合されているバイナリマトリックス復号器であって、バイナリマトリックス復号器は、バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されている、バイナリマトリックス復号器とを備える、システム;
2.データ読み取りアルゴリズムは、エラー訂正ルーチンを使用してバイナリマトリックス内のエラーを訂正する、項目1のシステム;
3.システムは、1つまたは複数の照明特徴を用いて画像の目標を照明する照明器を含む、項目1のシステム;
4.データ読み取りアルゴリズムは、照明特徴を使用して、画像内のデータモジュールの少なくとも一部分を位置特定する、項目3のシステム;
5.データモジュールの少なくとも一部分を位置特定することは、データモジュールの1つまたは複数の顕著な特徴を識別することを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される、項目1のシステム;
6.プロセッサまたはバイナリマトリックス復号器は、複数のシンボルタイプを推定ま
たは復号するように構成されている、項目1のシステム;
7.複数のシンボルタイプは、データマトリックス、QRコード(登録商標)、Aztecコード、MaxiCode、およびそれらの組み合わせから成る群から選択される、項目6のシステム;
8.データ読み取りアルゴリズムは、2次元マトリックスシンボルの属性を含む、項目1のシステム;
9.データ読み取りアルゴリズムは、プロセッサに対する単一のコマンドによって実行することができる、項目1のシステム;
10.各々がモジュール値およびモジュール位置を有するデータモジュールを含む2次元マトリックスシンボルを読み取り、2次元マトリックスシンボルはデータセットを符号化する方法であって、プロセッサにおいて2次元マトリックスシンボルの少なくとも一部分を含む画像を受信するステップと、プロセッサを使用して、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定するステップと、プロセッサを使用して、画像からモジュール位置の少なくとも一部分にモデルを当てはめるステップと、プロセッサを使用して、予測モジュール位置を規定するためにモデルを推定するステップと、プロセッサを使用して、予測モジュール位置にある画像からモジュール値を判定するステップと、プロセッサを使用して、モジュール値からバイナリマトリックスを抽出するステップと、バイナリマトリックスを復号するステップとを含む、方法;
11.方法は、プロセッサを使用して、エラー訂正ルーチンを使用してバイナリマトリックス内のエラーを訂正するステップをさらに含む、項目10の方法;
12.方法は、2次元マトリックスシンボルまたは2次元マトリックスシンボルに近い箇所を照明するステップをさらに含む、項目10の方法;
13.データモジュールの少なくとも一部分を位置特定するステップは、データモジュールの1つまたは複数の顕著な特徴を識別するステップを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される、項目10の方法;
14.方法は、複数のシンボルタイプを推定または復号するよう試行するステップを含む、項目10の方法;
15.複数のシンボルタイプは、データマトリックス、QRコード(登録商標)、Aztecコード、MaxiCode、およびそれらの組み合わせから成る群から選択される、項目14の方法;
16.方法は、画像を受信する前に2次元マトリックスシンボルの1つまたは複数の属性を含むようにプロセッサを訓練するステップをさらに含む、項目10の方法;
17.方法は、プロセッサに対する単一のコマンドによって実行することができる、項目10の方法;
18.2次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムであって、2次元マトリックスシンボルは、各々がモジュール値およびモジュール位置を有するデータモジュールを含み、2次元マトリックスシンボルを含む画像を取得するように構成されているイメージングデバイスと、イメージングデバイスに動作可能に結合され、データ読み取りアルゴリズムを実行し、データ読み取りアルゴリズムは画像を受信し、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定し、画像からモジュール位置のモデルを当てはめ、モデルを推定して予測モジュール位置をもたらし、予測モジュール位置にある画像からモジュール値を判定し、および、モジュール値からバイナリマトリックスを抽出することを行うように構成され、データ読み取りアルゴリズムは周波数ドメイン解析を含む、プロセッサとを備える、システム;
19.データ読み取りアルゴリズムは、周波数ドメイン解析を使用してモデルを当てはめる、項目18のシステム;
20.システムは、プロセッサに動作可能に結合されているバイナリマトリックス復号器をさらに備え、バイナリマトリックス復号器は、バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されている、項目18のシステム。
【0009】
本発明の上記のおよび他の態様および利点は、以下の説明から明らかになる。その説明において、本明細書の一部を形成し、本発明の好ましい実施形態が例として示されている添付の図面を参照する。しかしながら、そのような実施形態は必ずしも本発明の全範囲を表すものではなく、それゆえ、本発明の範囲を解釈するためには特許請求の範囲および本明細書が参照される。
【0010】
以下の本発明の詳細な説明に考察が与えられると、本発明は、より良好に理解されることになり、上記に記載されている以外の特徴、態様および利点が明らかになる。そのような詳細な説明は、添付の図面を参照する。
【図面の簡単な説明】
【0011】
図1】本発明の実施形態による、物体の複数の画像を取得するための固定スキャナを含む一般的な資格システム構成の概略図である。
図2】特定の2次元マトリックスシンボルの特徴およびスタイルの図である。
図3】特定の2次元マトリックスシンボルの特徴およびスタイルの図である。
図4】特定の2次元マトリックスシンボルの特徴およびスタイルの図である。
図5】特定の2次元マトリックスシンボルの特徴およびスタイルの図である。
図6】特定の2次元マトリックスシンボルの特徴およびスタイルの図である。
図7】特定の2次元マトリックスシンボルの特徴およびスタイルの図である。
図8】画像内の2次元マトリックスシンボルおよび背景クラッタの図である。
図9】本開示による、2次元マトリックスシンボル読み取り方法の一態様を示す流れ図である。
図10】QRコード(登録商標)マトリックスシンボルの一例の図である。
図11】Aztecコードマトリックスシンボルの一例の図である。
図12】MaxiCodeマトリックスシンボルの一例の図である。
図13】QRコード(登録商標)マトリックスシンボルの一例の図である。
図14】Aztecコードマトリックスシンボルの概略図である。
図15】Aztecコードマトリックスシンボルの特定の部分の概略図である。
図16】MaxiCodeマトリックスシンボルの固定パターン部分の概略図である。
図17】MaxiCodeマトリックスシンボル内のデータ領域の概略図である。
図18】本開示による、任意選択のサブルーチンを示す流れ図である。
図19】本開示による、当てはめサブルーチンを示す流れ図である。
図20】本開示による、任意選択のロバスト性サブルーチンを示す流れ図である。
図21】本開示による、抽出サブルーチンを示す流れ図である。
【0012】
本発明の技術は様々な修正および代替形態を許容するが、その特定の実施形態が例として図面に示されており、本明細書において詳細に説明される。しかしながら、特定の実施形態の本明細書における説明は、本発明の技術を開示されている特定の形態に限定するようには意図されておらず、逆に、その意図するところは、添付の特許請求の範囲によって規定されるものとしての本発明の技術の精神および範囲内に入るすべての修正、均等物、および代替物を包含することである。
【発明を実施するための形態】
【0013】
本発明の主題の技術の様々な態様を、これより添付の図面を参照して説明する。図面において、同様の参照符号は、いくつかの図全体を通じて同様の要素に対応する。しかしながら、図面および以降のそれに関係する詳細な説明は、特許請求されている主題を開示されている特定の形態に限定するようには意図されていない。むしろ、その意図するところは、特許請求されている主題の精神および範囲内に入るすべての修正、均等物、および代
替物を包含することである。
【0014】
本明細書において使用されるものとしては、「構成要素」、「システム」、「デバイス」などという用語は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかを指すように意図される。「例示的な」という単語は、本明細書においては、例、事例、または例示としての役割を果たすことを意味するものとして使用される。「例示的」として本明細書に記載されている任意に態様または設計は、必ずしも他の態様または設計よりも好ましいかまたは有利であるものとして解釈されるべきではない。
【0015】
さらに、開示されている主題は、本明細書に詳述されている態様を実装するための電子機器ベースのデバイスを制御するために、標準的なプログラミングおよび/もしくはエンジニアリング技術、ならびに/または、ハードウェア、ファームウェア、ソフトウェア、もしくはそれらの任意の組み合わせを製造するためのプログラミングを使用したシステム、方法、装置、または製造品として実装されてもよい。
【0016】
別途指定または限定しない限り、「接続されている」および「結合されている」ならびにそれらの変化形は、広範に使用され、直接的および間接的の両方の取り付け、接続、支持、および結合を包含する。さらに、「接続されている」および「結合されている」は、物理的または機械的接続または結合には制限されない。本明細書において使用されるものとしては、別途明確に記述しない限り、「接続されている」とは、1つの要素/機構が別の要素/機構に直接的または間接的に接続されていることを意味し、必ずしも電気的にまたは機械的にではない。同様に、別途明確に記述しない限り、「結合されている」とは、1つの要素/機構が別の要素/機構に直接的または間接的に結合されていることを意味し、必ずしも電気的にまたは機械的にではない。
【0017】
本明細書において使用されるものとしては、「プロセッサ」という用語は、1つもしくは複数のプロセッサおよびメモリならびに/または1つもしくは複数のプログラム可能ハードウェア要素を含んでもよい。本明細書において使用されるものとしては、「プロセッサ」という用語は、任意のタイプのプロセッサ、CPU、マイクロコントローラ、デジタル信号プロセッサ、または、ソフトウェア命令を実行することが可能な他のデバイスを含むように意図される。
【0018】
本明細書において使用されるものとしては、「メモリ」という用語は、磁気媒体、ハードディスク、光学式記憶装置、またはフラッシュメモリ等の不揮発性媒体や、DRAM,SRAM,EDO RAM,RAMBUS RAM,DR DRAMなどのランダムアクセスメモリ(RAM)のようなシステムメモリ等の揮発性媒体、CD-ROM、またはフレキシブルディスクなどのソフトウェア媒体等のインストール媒体、を含み、プログラムをそれらに記憶することができ、かつ/または、データ通信をバッファリングすることができる。「メモリ」という用語はまた、他のタイプのメモリまたはそれらの組み合わせも含んでもよい。
【0019】
本明細書において使用されるものとしては、「固定パターン」という用語は、すべてのシンボルにおいて繰り返されているパターンを含み、このパターンは、シンボルを位置特定するのに使用することができ、ファインダーパターン、タイミングパターン、位置合わせパターン、クワイエットゾーンなどを含む。
【0020】
本明細書において使用されるものとしては、「モジュール値」という用語は、量子化することができる2つのモジュール間の任意の差、たとえば、照明を用いたもしくは用いないときのモジュールの明度の差、または、距離検知デバイスもしくは特定の値を視覚的に
表す任意の他の手段によって測定されるモジュールの深さの差を含む。特定の態様において、モジュール値は、前景モジュールと背景モジュールとの間のバイナリである。
【0021】
本明細書において使用されるものとしては、「モジュール位置」という用語は、別のモジュールまたは照明特徴のような、画像内の何らかの固定点に対するモジュールの位置を含む。
【0022】
本明細書において使用される場合、「バイナリ」という用語は、文脈が別途一義的に指示しない限り、他の非バイナリ形態を含むものとする。たとえば、非バイナリ2次元マトリックスシンボルが利用されている場合、そのシンボルから判定および抽出される値は非バイナリであり得る。別の例として、非バイナリ2次元マトリックスシンボルが使用されている場合、バイナリマトリックスの復号は、非バイナリマトリックスの復号を含む可能性がある。
【0023】
本発明の技術の実施形態を実装するのに使用される実施形態の構造または処理のいずれかを示すための図面を使用することによって、本発明の技術の実施形態を下記に説明する。このように図面を本発明の技術の実施形態を提示するために使用することは、その範囲を限定するものとして解釈されるべきではない。本発明の技術は、損傷した固定パターンを有するかまたは固定パターン全体を欠く2次元マトリックスシンボルを読み取るためのシステムおよび方法を企図する。
【0024】
2次元マトリックスシンボルを読み取るための方法の様々な態様は、システムと関連して説明される場合があり、システムは、2次元マトリックスシンボルを読み取るように適合されている。これは、本発明の技術の特徴および利点が、この目的によく適しているためである。また、本発明の技術の様々な態様は、本明細書に記載されている特徴を有する読み取りプロセスから受益することができる、手持式スキャナ、固定マウントスキャナ、または内蔵スマートカメラのような、他の形態のイメージングシステムに適用することができることが理解されるべきである。加えて、2次元マトリックスシンボルを読み取るためのシステムの様々な態様は、2次元マトリックスシンボルを読み取るための方法と関連して説明される場合がある。
【0025】
図1は、機械可読シンボル36を含む物体34の1つまたは複数の画像32を取得するように適合されている例示的な機械視覚システム30を示す。コンベヤ38が、物体34を搬送し、物体34とイメージングデバイス42の視野40との間の相対運動を引き起こす。例示的な機械視覚システムは、非限定例として、中でも、製造アセンブリ、試験、測定、自動化、および/または制御アプリケーションに使用されてもよい。機械視覚システム30は、様々なタイプの画像取得のいずれかを実施するように動作可能な画像取得ソフトウェア44を使用することができる。
【0026】
イメージングデバイス42は、たとえば、画像処理および復号に使用されるプロセッサ46を含むことができる。プロセッサ46は、視覚センサ48に結合することができ、視覚センサ48の一部であってもよく、または、視覚センサ48にローカルにリンクされてもよい。プロセッサ46には、画像取得ソフトウェア44を符号化することができ、または、いくつかの態様においては、画像取得ソフトウェア44は、別個のコンピューティングデバイス50もしくはプロセッサ46上で作動されてもよい。画像取得ソフトウェア44は、中でも、単一の読み取り動作の中で複数の画像を取得し、照明を制御し、画像データを取得し、取得された画像データを処理/復号して使用可能な情報にするように構成することができる。特定の態様において、イメージングデバイス42は、距離検知デバイスであってもよい。
【0027】
イメージングデバイス42はまた、視覚センサ48および/またはプロセッサ46に結合されているメモリ媒体52をも含むことができる。メモリ媒体52は、スキャンまたは処理された画像32を記憶し、データおよび通信をバッファリングするなどのために使用することができる。画像、画像ピクセルアレイなどを送信することが可能な有線または無線接続のような通信ライン54も、イメージングデバイス42に結合することができ、任意選択のコンピューティングデバイス50への接続点を提供することができる。コンピューティングデバイス50は、たとえば、スキャンまたは処理された画像32をアップロードおよびダウンロードするのに使用することができる。イメージングデバイス42またはコンピューティングデバイス50は、復号データの転送を可能にするためにデータを送信することが可能な有線または無線接続のようなさらなる通信ライン54を含むことができる。視覚システム30は、バイナリデジタル信号を送信することが可能な有線または無線接続のような通信ライン54によって、イメージングデバイス42またはコンピューティングデバイス50に結合されている任意選択のトリガ入力104を含むことができる。無線通信も企図されていることが理解されるべきである。この例において、イメージングデバイス42は、高角度および/もしくは低角度照明、または高角度照明と低角度照明との組み合わせをもたらすことが可能な従来の固定マウントスキャナ、手持式スキャナ、または内蔵スマートカメラであってもよい。
【0028】
イメージングデバイス42はまた、照準器(図示せず)も含むことができる。照準器は、イメージングデバイス42の有効領域のような、イメージングデバイス42の特性を示すことができる、レーザまたはLEDのような補助照明システムであり得る。たとえば、照準器は、イメージングデバイス42のFOVの中心または境界を示すことができる。
【0029】
本明細書に記載されている様々な態様は、不完全な固定パターンを含むか、または、固定パターンを含まない2次元マトリックスシンボルの読み取りを可能にする。特に、2次元マトリックスシンボルのイメージングおよび復号の文脈で様々な実施形態を説明する。この例において、シンボル36は、物体34の表面に付着されている。物体34は、時として部分的に被覆される場合があり、ラベルの縁に印刷される場合があり、適切に照明されない場合があり、または何らかの他の理由で、シンボル36のいくつかの部分が読み取り不能にレンダリングされる可能性がある。様々な態様は、不完全な固定パターンを有するかまたは固定パターンを有しないシンボルを読み取るのに有用であり得るが、様々な態様はまた、完全な固定パターンを有するシンボルを読み取るのにも適していることが理解されるべきである。
【0030】
図2図7を参照すると、データマトリックスの形態の2次元マトリックスシンボル56は、矩形アレイに配置されている、通常は正方形のシンボルモジュール60を含む1つまたは複数のデータ領域58から構成することができる。代替的に、シンボルモジュール60は、レーザもしくはドットピーニングによって作成されるシンボルモジュールのように円形であってもよく、またはデータ記憶に適切な他の形状であってもよい。データ領域58は、概して「L」字形状であるファインダーパターン62によって部分的に包囲されており、データ領域58は、四隅すべてをクワイエットゾーン64によって包囲することができる。タイミングパターン66が、シンボル36内の行および列の数のカウントを可能にする。図5は、白地に黒の2次元マトリックスシンボル56の一例を示し、図6は、黒字に白の2次元マトリックスシンボル70の一例を示す。特定の態様において、2次元マトリックスシンボルは、カラーベースのコードである。カラーベースのコードの例としては、限定ではないが、大容量カラーバーコード(HCCB)およびUltraCodeが挙げられる。位置合わせパターン72も含むことができ、一般的により大きい格子サイズのシンボルとともに使用される(図7参照)。本開示によって読み出される、2次元マトリックスシンボル内で損傷するかまたは失われるのは、これらのファインダーパターン62、タイミングパターン66、位置合わせパターン72などである。図4は、ファイン
ダーパターン62またはタイミングパターン66を有しないデータマトリックスの形態の2次元マトリックスシンボル56を示す。
【0031】
図10を参照すると、複数のファインダーパターン62を有するQRコード(登録商標)の形態の2次元マトリックスシンボル56が示されている。図13を参照すると、複数のバージョン情報領域82、複数のフォーマット情報領域84、複数のファインダーパターン62、複数の位置合わせパターン72、複数のタイミングパターン66、およびクワイエットゾーン64を有するQRコード(登録商標)の形態の2次元マトリックスシンボル56が示されている。
【0032】
図11を参照すると、ファインダーパターン62を有する(ファインダーパターン62は、2次元マトリックスシンボル56の残りの部分を灰色に抜くことによって強調されている)Aztecコードの形態の2次元マトリックスシンボル56が示されている。図14を参照するとファインダーパターン62、タイミングパターン66または基準格子、および方向パターン86を含む固定パターン、ならびにモードメッセージ88およびデータ層90を含む可変構造を有するAztecコードの形態の2次元マトリックスシンボル56が示されている。図15を参照すると、ファインダーパターン62、方向パターン86、タイミングパターン66、およびモードメッセージ88を有するAztecコードの形態の2次元マトリックスシンボルの一部分が示されている。
【0033】
図12を参照すると、ファインダーパターン62を有するMaxiCodeの形態の2次元マトリックスシンボル56が示されている。図16を参照すると、シンボル「B」および「W」によって示されているモジュールによって形成されている方向パターン86を有するMaxiCodeの形態の2次元マトリックスシンボル56の一部分が示されている。図17を参照すると、ファインダーパターンを有せず、モジュール内に位置するシンボル「B」および「W」ならびに1~144の通し番号によって示されている文字列によって示されているモジュールによって形成されている方向パターン86を有するMaxiCodeの形態の2次元マトリックスシンボル56が示されている。
【0034】
図9を参照すると、本開示による方法200のステップを詳述する流れ図が与えられている。方法200の詳細は、以下の段落において説明する。システム30は、本明細書に記載されている方法を実行するように構成されている。システム30は、シンボル位置特定アルゴリズム74、モジュール測定アルゴリズム100、マトリックス復号アルゴリズム102、またはそれらの組み合わせによって、方法を実行することができる。
【0035】
プロセスブロック202において、方法200は、プロセッサにおいて画像ピクセルアレイを受信することによって開始することができ、画像ピクセルアレイは、センサによってキャプチャされる2次元マトリックスシンボルの画像の少なくとも一部分を含む。画像ピクセルアレイは、カメラを使用して、その後プロセッサに送信される画像ピクセルアレイを取得することによって、または、単純にプロセッサにおいて画像ピクセルアレイファイルを受信することによって、プロセッサにおいて受信することができる。画像ピクセルアレイを取得する特定の手段が、本開示に対する限定であるとは意図されない。
【0036】
2次元マトリックスシンボルは、各々がモジュール値およびモジュール位置を有するデータモジュールを含むことができる。2次元マトリックスシンボルは、不完全な固定パターンを含むか、または固定パターンを含まない可能性がある。2次元マトリックスシンボルは、データセットを符号化することができる。
【0037】
プロセスブロック204において、方法200は、図18に示すような、1つまたは複数の候補領域を位置特定するステップと、候補領域を検証するステップと、候補領域を優
先順位付けするステップと、画像ピクセルアレイ内の2次元シンボルの範囲を推定するステップとのうちの1つまたは複数を含む任意選択のサブルーチン204を実行することによって継続することができる。任意選択のサブルーチン204の任意のステップまたはすべてのステップは任意選択とすることができる。
【0038】
図18を参照すると、プロセスブロック402において、任意選択のサブルーチン204は、画像ピクセルアレイ内の1つまたは複数の候補領域を位置特定することによって開始することができる。1つまたは複数の候補領域を位置特定することは、参照によりその全体が本明細書に組み込まれている米国特許第7,181,066号明細書に開示されている方法のような、当業者に既知の方法によって実施することができる。
【0039】
プロセスブロック404において、任意選択のサブルーチン204は、1つまたは複数の候補領域を検証することによって継続することができる。検証された候補領域は、2次元シンボルを含む可能性がより高い。1つまたは複数の候補領域を検証することは、参照によりその全体が本明細書に組み込まれている米国特許第7,181,066号明細書に開示されている方法のような、当業者に既知の方法によって実施することができる。
【0040】
プロセスブロック405において、任意選択のサブルーチン204は、1つまたは複数の候補領域を優先順位付けすることによって継続することができる。優先順位付けは、限定ではないが、サイズ、コントラスト、エッジ密度、勾配ヒストグラム、シーン内の存在する他のシンボル(1次元または2次元)など、またはそれらの組み合わせを含む候補領域の属性に基づくことができる。
【0041】
プロセスブロック406において、任意選択のサブルーチン204は、画像ピクセルアレイ内の2次元シンボルの範囲を推定することによって継続することができる。
【0042】
手持式スキャナをイメージングデバイスとして利用する態様において、または、ユーザがイメージングデバイスを2次元マトリックスシンボルに対して方向付けているか、もしくは2次元マトリックスシンボルをイメージングデバイスに対して方向付けている他の態様において、2次元マトリックスシンボルを位置特定することは、推定されるようにユーザがイメージングデバイスを2次元マトリックスシンボルに向けているか、または、2次元マトリックスシンボルをイメージングデバイスと位置合わせしているため、計算上の要求を著しく少なくすることができることが理解されるべきである。
【0043】
図8を参照すると、シンボル位置特定アルゴリズム74を使用して2次元マトリックスシンボル56を発見することができる。画像ピクセルアレイ80内の残りのシンボル78、たとえば、テキストおよび数字は、2次元マトリックスシンボルであるために必要とされる十分な数の特徴を含まない場合、背景クラッタと考えられ、シンボル位置特定アルゴリズム74によって無視することができる。2次元マトリックスシンボルを位置特定することは、一般的な画像分割アルゴリズムの一部分として実施することができる。
【0044】
プロセスブロック206において、方法200は、画像ピクセルアレイ内のデータモジュールの少なくとも一部分を位置特定することによって継続することができる。一般的に従来技術において、2次元マトリックスシンボルを位置特定することは、固定パターンを位置特定することによって達成されるが、この事例においては、固定パターンが損傷しているか、または欠如している。データモジュールの少なくとも一部分を位置特定することは、プロセッサまたは補助構成要素を用いて達成することができる。データモジュールの少なくとも一部分を位置特定することは、限定ではないが、形状、サドルの存否、隅の存否、点の存否、エッジ、勾配、ヒストグラム、ウェーブレット、またはそれらの組み合わせを含むデータモジュールの1つまたは複数の顕著な特徴を識別することを含む。画像ピ
クセルアレイ内のデータモジュールの少なくとも一部分を位置特定することは、参照によりその全体が本明細書に組み込まれる、米国特許第7,181,066号明細書および米国特許出願第13/797,910号明細書に開示されている方法のような、当業者に既知の方法によって達成することができる。
【0045】
図19を参照すると、モジュール位置特定サブルーチン206は、以下のステップのうちの1つまたは複数を含むことができる。プロセスブロック502において、モジュール位置特定サブルーチン206は、任意選択的に、小さい領域をアップサンプリングし、大きい領域をダウンサンプリングすることを含むことができる。プロセスブロック504において、モジュール位置特定サブルーチン206は、候補領域または2次元マトリックスシンボルからエッジ強度画像を抽出することを含むことができる。プロセスブロック506において、モジュール位置特定サブルーチン206は、2次元パワースペクトルを作成するためにエッジ強度画像を高速フーリエ変換することを含むことができる。プロセスブロック508において、モジュール位置特定サブルーチン206は、2次元パワースペクトルから1つまたは複数のピークを抽出することを含むことができ、1つまたは複数のピークは、2次元マトリックスシンボルの主軸を規定するピーク、2次元マトリックスシンボルのピッチを規定するピーク、またはそれらの組み合わせを含む。パワースペクトルにおける対称性に起因して、2次元マトリックスシンボル内のデータモジュールが等間隔に離間されたアレイに配列されており、2次元マトリックスシンボルに対して垂直な角度からスキャンされるとき、単一のピークしか抽出される必要がないことが留意されるべきである。プロセスブロック510において、モジュール位置特定サブルーチン206は、任意選択的に、ロバスト性サブルーチンを実行することを含むことができる。プロセスブロック512において、モジュール位置特定サブルーチン206は、画像ピクセルアレイ内で、1つまたは複数のモジュールの位置を特定することを含むことができる。ロバスト性サブルーチン510を利用する態様において、このステップは、画像ピクセルアレイ内の予測されるモジュール中心のオフセットを判定する。
【0046】
図20を参照すると、ロバスト性サブルーチン510は、以下のステップのうちの1つまたは複数を含むことができる。プロセスブロック602において、ロバスト性サブルーチン510は、プロセスブロック508において作成されているパワースペクトルからの1つまたは複数のピークを使用して、2次元パワースペクトルのマスクを作成することを含むことができる。プロセスブロック604において、ロバスト性サブルーチン510は、予測モジュール中心のグレースケール画像を作成するためにマスクされた2次元パワースペクトルを逆高速フーリエ変換することを含むことができる。プロセスブロック606において、ロバスト性サブルーチン510は、予測グレースケールモジュール中心を、候補領域に対して配置することと、サブピクセル補間を使用して配置を精緻化することとを含むことができる。
【0047】
代替的な態様において、モジュール位置特定サブルーチンは、ヘシアン行列式またはガウス差のような、当業者に既知の点検出器を使用することと、2次元マトリックスの行および列が画像ピクセルアレイ内で垂直であるときは少なくとも2つの点を使用して、または、2次元マトリックスの行および列モジュールが垂直でないときは少なくとも3つの点を使用して、向き、ピッチ、およびオフセットを推定することと、ランダムサンプルコンセンサス(RANSAC)、幾何学的ハッシングなどのような方法を使用することと、プロセスブロック606または512を用いて継続することとを含んでもよい。向き、ピッチおよびオフセットを推定するためにより少ないモジュールが使用されるとき、配置されたモジュールの相対的な向きが向きおよびピッチの推定精度に相当の影響を及ぼすことになる。向きの精度は、モジュールの固有の測定される位置精度に起因して、モジュールが分離されているときに増大する(また、モジュールがより近いとき精度は低減する)ことを、当業者であれば認識しよう。同様に、ピッチ推定は、より大きく離れており、マトリ
ックスの行および列におけるオフセットが分かっているモジュールからより正確に導出される。
【0048】
特定の態様において、限定ではないが、前景モジュールと背景モジュールとの間のエッジを含む、モジュールの他の特徴が、上述した方法に使用されてもよい。
【0049】
プロセスブロック208において、方法は、モジュール位置の少なくとも一部分にモデルを当てはめることを含むことができる当てはめサブルーチン208をさらに含むことができる。モジュール位置の少なくとも一部分にモデルを当てはめることは、当業者に既知の技法によって達成することができる。モジュール位置の少なくとも一部分にモデルを当てはめることは、プロセッサまたは補助構成要素を用いて行うことができる。モデル自体は、読み取られている2次元マトリックスシンボルのタイプに基づいて変化する可能性がある(すなわち、モジュールが矩形アレイに配列されている2次元マトリックスシンボルのモデルは、モジュールが六角形アレイに配列されている2次元マトリックスシンボルのモデルとは異なることになる)。特定の態様において、モデルは、厳密な等間隔、区分線形、透視投影、アフィンとすることができる。特定の態様において、モデルは、多項式もしくは薄板スプライン、または、マーク基板の歪曲またはマーキング不良のような他の影響を計上することができる変形可能テンプレートとすることができる。特定の態様において、モデルは、非標準的な形状(たとえば、円筒形)に対するマーキングのような影響を計上することができる幾何学的当てはめとすることができる。特定の態様において、モデルは、ラスタ内にインクの点を印刷し、結果として相関の高い行および相関の低い列、またはその逆をもたらす、連続式インクジェットプリンタのようなマーク印刷における予測される変動を計上することができる。
【0050】
当てはめサブルーチン208の非限定的な一例において2次元画像を分割することができ、特徴(すなわち、白色表面上の黒色マークまたはその逆のような前景モジュール)を抽出することができる。当てはめサブルーチン208の実行を成功させるために、すべての特徴を抽出する必要はないことが理解されるべきである。次に、抽出された特徴のグループの中心付近の特徴が選択される。小さい領域において局所的に、モジュール(前景および背景モジュール)は、アフィンモデルと位置合わせされると仮定される。中心付近の特徴から開始して、中心から外側へと移動して特徴が選択され、これらの特徴が選択されるときにモデルが構築される。中心特徴から、近傍の特徴点が識別され、ローカルアフィンモデル(たとえば、5×5モジュールパッチ)が推定される。ローカルアフィンモデルが近傍の特徴点に当てはめられた後、すべての特徴モジュールが抽出される(前景および背景モジュール)。次のステップは、このアフィンモデルを様々な方向に移転させることを含む。理想的なモデルでは、中心特徴を[0,0]として定義することができる。上述したローカルアフィンモデルから開始して、アフィンモデルは様々な方向(たとえば、8つの異なる方向、ローカルアフィンモデルに関して東、南東、南、南西、西、北西、北、および北東)にある1つのモジュールに移転される。アフィンモデルがある方向にある1つのモジュールに移転されると、新たなアフィンモデルの初期推定値が作成される。新たなローカルアフィンモデル付近に位置する特徴点が、新たなローカルアフィンモジュールを精緻化するのに使用される。この移転は、それぞれの新たなローカルアフィンモデルにおいて新たな特徴点が識別されなくなるまで、各方向において継続される。すべての方向が完了し、それぞれの対応のすべてが識別されると、多項式モデルを使用して対応を当てはめることができる。コードに対して発生している場合がある損傷を計上するために、様々な行および/または列を推定することができることが理解されるべきである。
【0051】
プロセスブロック210において、方法200は、予測モジュール位置をもたらすモデルを推定することをさらに含むことができる。モデルを推定することは、プロセッサまたは補助構成要素を用いて行うことができる。モデルを推定することは、マトリックスコー
ド(2次元xピッチ、x位相、yピッチ、y位相)アレイの無次元行/列を画像ピクセルアレイにマッピングすることを含むことができる。本開示は、デカルトまたは2次元座標には限定されず、六角座標系、極座標系、および他の座標系が企図されることが理解されるべきである。
【0052】
予測モジュール位置は、完全な2次元マトリックスシンボルを形成するためにモジュールが位置し得る、画像ピクセルアレイに対する位置である。予測モジュール位置は整数ピクセル座標である必要はなく、そのためサブピクセル位置が明示的に企図されていることが理解されるべきである。加えて、画像ピクセルアレイに対する既知の関係を有する較正された実世界座標系のような、画像ピクセル格子への既知のマッピングを有する他の座標系が企図されている。予測モジュール位置が画像ピクセルアレイの外側に位置するとき、これらの位置に対するモジュール値は未知である可能性がある。バイナリマトリックスを復号するステップは、画像ピクセルアレイを超えて延伸するシンボルに起因する損傷に対する耐性を最大限にするために、消失訂正を使用することができる。
【0053】
プロセスブロック212において、方法200は、予測モジュール位置にある画像ピクセルアレイからモジュール値を判定することをさらに含むことができる。モジュール値を判定することは、プロセッサまたは補助構成要素を用いて行うことができる。モジュール値を判定することは、当業者に既知の技法によって達成することができる。たとえば、モジュール値は、ISO/IEC16022:2006,Section9に示されているような、データマトリックス基準復号アルゴリズムによって判定することができる。サンプリング、またはモジュール値の測定は、2値化画像またはグレースケール画像のいずれかに対して実施されてもよい(任意選択的に画像を前置フィルタリングする)。特定の態様において、サンプリングは、予測中心に最も近い位置を有するピクセルを選択することを含むことができる。特定の態様において、サンプリングは、予測中心を包囲するピクセルから補間されたグレースケールであってもよい。モジュール値を判定することは、モジュールが前景であるかまたは背景であるか(すなわち、モジュールが暗いかまたは明るいか)を判定することを含むことができる。特定の態様において、モジュール値を判定することは、モジュール位置からの反射光の強度を測定することを含むことができ、明るいモジュールは暗いモジュールよりも多くの光を反射することになる。特定の態様において、モジュール値を判定することは、距離検知デバイスからモジュールの深さを測定することを含むことができる。
【0054】
特定の態様において、モジュール値を判定することは、任意選択的に、当該技術分野において既知の方法を使用して2値化することを含んでもよい。たとえば、ピクセルのグレー値に対する単一の閾値を使用した2値化が使用されてもよい。別の例として、シンボルにわたる照明変動に対応するように設計された局所閾値化が使用されてもよい。特定の態様において、モジュール値は、予測モジュール位置に最も近いピクセルのバイナリ値とすることができる。
【0055】
他の態様にいて、モジュール値を判定することは、画像ピクセルアレイおよび予測モジュール位置に基づいて値をサンプリングすることを含むことができる。たとえば、雑音を低減するために平滑化フィルタを使用するなどして、元の取得画像を処理することができる。その後、予測モジュール位置に最も近いピクセルの値をモジュール値とすることができる。代替的に、モジュール位置は、予測モジュール位置付近のピクセルの値から補間することができる。
【0056】
モジュール値を判定した後、モジュール値(未処理の測定値またはバイナリ)をアレイ内に格納することができる。2次元マトリックスシンボルの範囲の推定406または推定ステップ210が不正確であるとき、アレイは、2次元マトリックスシンボルにおいてデ
ータモジュール行および/または列の数よりも大きくまたは小さくなり得る。モジュール値アレイは、2次元マトリックスシンボルの少なくとも一部分、および、場合によっては、クワイエットゾーンおよび/またはシンボルの周囲の背景クラッタの一部分を含む。アレイはシンボルの主軸に沿って編成されるが、このアレイ内の実際のシンボルのオフセットおよび向きは未確定である。アレイの格納は、当業者には明白なはずであるように、1次元もしくは2次元または多次元であってもよい。
【0057】
予測モジュール位置からモジュール値を判定するときにシンボルの範囲が未知であるとき、シンボルの正確な境界は、モジュール値を判定するときに無視される。モジュール値が決定された後、2次元マトリックスシンボルの少なくとも一部分、ならびに、場合によってクワイエットゾーンおよび/またはシンボルの周囲の背景クラッタの一部分を含む1次元または多次元アレイ内に格納することができる。アレイはシンボルの主軸に沿って編成されるが、このアレイ内の実際のシンボルのオフセットおよび向きは未確定である。アレイのサイズは約10×10モジュール~約200×200モジュールに及ぶ可能性があり、シンボルの正確な境界が道である実施形態では行および列が追加される。これらのアレイのサイズは、640×480~2500×1200ピクセルまたはそれ以上のサイズを有する場合がある画像ピクセルアレイの一般的なサイズよりもはるかに小さい。特定の態様において、部分固定パターンは、画像ピクセルアレイ内よりもモジュール値アレイ内でより容易に識別することができる。シンボルが未知である場合、モジュール値アレイ内での固定パターンの少なくとも一部分の位置特定を、シンボル間で区別するために使用することができる。
【0058】
プロセスブロック214において、方法200は、モジュール値アレイからバイナリマトリックスを抽出することをさらに含むことができる。バイナリマトリックスを抽出することは、判定されたモジュール値アレイ内で固定パターン断片を求めて探索することと、判定されたモジュール値アレイ内のシンボル位置の仮定を作成することと、任意選択的に、モジュール値を2値化することと、仮定されたまたは既知の行および列内の2次元マトリックスシンボルサイズに対応するサイズのアレイ内の仮定位置に2値化モジュール値を割り当てることによって、バイナリシンボルマトリックスを組み立てることとを含むことができる。同様に、アレイは、当業者には明白なはずであるように、1次元または多次元様式で格納されてもよい。
【0059】
図21に示すように、バイナリマトリックスの抽出214は、複数のプロセスおよび決定を含み得る。プロセスブロック702において、バイナリマトリックスの抽出214は、モジュール値アレイまたはバイナリマトリックス内で、任意選択的にクワイエットゾーンを含む固定パターン断片を求めて探索することを含むことができる。固定パターンを求めて探索すること(成功した場合、固定パターンを位置特定すること)は、当業者に既知の方法を通じて行うことができる。例としては、限定ではないが、相関、正規化相関、ブロブ解析などが挙げられる。判断ブロック704において、バイナリマトリックスの抽出214は、固定パターン断片が発見された場合はプロセスブロック706によって、または、固定パターン断片が見つからなかった場合はプロセスブロック714によって進行する。
【0060】
固定パターン断片が見つかったとき、プロセスブロック706において、バイナリマトリックスの抽出214は、固定パターン断片を使用して1つまたは複数の仮定を作成することを含むことができる。プロセスブロック710において、バイナリマトリックスの抽出214は、仮定されたまたは既知の行および列内の2次元マトリックスシンボルサイズに対応するサイズのアレイ内の仮定位置に2値化モジュール値を割り当てることによって、バイナリシンボルマトリックスを組み立てることを含むことができる。いくつかの態様では、プロセスブロック712において、バイナリマトリックスの抽出214は、任意選
択的に、組み立てられたバイナリシンボルマトリックスを優先順位付けすることを含んでもよい。優先順位付けすることは、見つかった固定パターン断片の範囲、または、206からの特定されたモジュール位置の範囲を、210からの推定モジュール位置に対して評価することを含むことができる。
【0061】
2値化がモジュール値判定の一部分ではないいくつかの態様では、プロセスブロック708においては、バイナリマトリックスの抽出214は、任意選択的に、当該技術分野において既知の方法を使用して仮定位置からモジュール値を2値化することを含んでもよい。たとえば、ピクセルのグレー値に対する単一の閾値を使用した2値化が使用されてもよい。別の例として、シンボルにわたる照明変動に対応するように設計された局所閾値化が使用されてもよい。特定の態様において、モジュール値は、予測モジュール位置に最も近いピクセルのバイナリ値とすることができる。
【0062】
いくつかの態様において、仮定は、モジュール値アレイ内のバイナリシンボルマトリックスの位置またはオフセット、モジュール値アレイ内のバイナリシンボルマトリックスの向き、シンボル列および行に関するバイナリシンボルマトリックスのサイズ、シンボルタイプ、鏡に映った状態、シンボルの極性、またはそれらの組み合わせを含む。いくつかの態様において、バイナリシンボルマトリックスのサイズ、鏡に映った状態、およびシンボルの極性の1つまたは複数の属性は、ユーザ入力からの予備知識または訓練に由来してもよい。
【0063】
固定パターンの少なくとも一部分がモジュール値マトリックスまたはバイナリマトリックスにおいて検出される態様において、このとき、固定パターンの部分を使用して、思考されている復号のための1つまたは複数の仮定を作成することができる。モジュール値マトリックス内での固定パターンの検出は、各値がモジュール強度もしくは高さの測定値を表す未処理値マトリックス、または、各バイナリビットが前景もしくは背景モジュールを表すバイナリマトリックスにおいて行うことができる。検出方法は、正規化相関、バイナリビットカウント、またはそれらの組み合わせのうちの1つであってもよい。一例として、16×16データ領域を有する18×18データマトリックスシンボルがファインダーパターンの少なくとも一部分の存在によって識別されるが、クロッキングパターンは観測されない場合、以下の仮定、すなわち、シンボルがクロッキングパターンを欠く18×18データマトリックスであると予測し得る仮定1、シンボルが、クロッキングパターンを欠く18×18データマトリックスであり、仮定1から90度回転していると予測し得る仮定2、および、シンボルが、クロッキングパターンに隣接する複数の行および列を欠く、20×20またはそれ以上のサイズのデータマトリックスであると予測し得る仮定3が使用され得る。特定の態様において、この例からの仮定3は、データ損失が甚大であることに起因して復号可能でない場合がある。特定の態様において、これらの仮定は優先順位付けされ、これらの仮定に対する一連の復号試行は最高優先度(最も可能性が高い)から最低優先度(最も可能性が低い)までである。特定の態様において、仮定のサブセットが試行される。特定の態様において、優先順位付けは、観測される固定パターンの範囲、観測されるデータ領域ヒストグラム、またはそれらの組み合わせに基づくことができる。
【0064】
固定パターン断片が検出されないとき、プロセスブロック714において、バイナリマトリックスの抽出214は、固定パターン断片を使用することなく1つまたは複数の仮定を作成することを含むことができる。いくつかの態様では、プロセスブロック712において、バイナリマトリックスの抽出214は、任意選択的に、組み立てられたバイナリシンボルマトリックスを優先順位付けすることを含んでもよい。優先順位付けすることは、206からの特定されたモジュール位置の範囲を、210からの推定モジュール位置に対して評価することを含むことができる。
【0065】
固定パターンが観測されない実施形態において、複数の仮定を作成することができる。仮定の数は、予備知識がある場合またはない場合の仮定の計算上の要求および仮定の試験の実用性に応じて変化し得る。一例として、未知のシンボルの20×20データ領域が観測される場合、以下の仮定、すなわち、シンボルが、特定の向きにおいてファインダーおよびクロッキングパターンを欠く22×22データマトリックスであると予測し得る仮定1、ならびに、シンボルが、特定の向きにおいてファインダーが損傷した21×21QRコード(登録商標)であると予測し得る仮定2、ならびに、シンボルが、ファインダーおよびクロッキングパターンならびにいくらかの数の隣接する行および列を欠く24×24データマトリックスであると予測し得る仮定3が使用され得る。この例からの仮定1について、固定パターンの欠如は向きが未知であることを意味するため、データ領域の4つの個別の向きが試験されなければならない。この例からの仮定3について、なくなっている行/列は、ファインダーに最も近くに位置する2つの行/列、クロッキングパターンの最も近くに位置する2つの行/列、またはファインダーの最も近くに位置する1つの行/列およびクロッキングパターンの最も近くに位置する1つの行/列であり得る。したがって、組み合わせの最大数は、複数のシンボル、複数の向き、および複数の損傷レベルを含む仮定の範囲とともに増大する。特定の態様において、家庭に対する組み合わせの総数が、10、20、30、40、50、100などのような特定の数を超えた場合、仮定を用いた進行には時間がかかり過ぎて効率的に復号することができなくなり、仮定は、シンボル(すなわち、訓練)についてより多くの情報が分かっている場合にしか追求されなくなり得る。特定の態様において、これらの仮定は優先順位付けされ、これらの仮定に対する一連の復号試行は最高優先度(最も可能性が高い)から最低優先度(最も可能性が低い)までである。代替の態様においては、可能性のある仮定のサブセットしか試行されなくてもよい。特定の態様において、優先順位付けは、観測される固定パターンの範囲、観測されるデータ領域ヒストグラム、またはそれらの組み合わせに基づくことができる。
【0066】
プロセスブロック216において、方法200は、抽出されたバイナリマトリックスを復号することをさらに含むことができる。バイナリマトリックスを復号することは、プロセッサ、または、復号アルゴリズムを実行するように構成されている、バイナリマトリックス復号器のような補助構成要素を用いて行うことができる。モジュール値アレイ内の仮定モジュール位置が、モジュール値アレイ内の2次元マトリックスシンボルの位置または向きの正確な表現ではない場合、それらの仮定モジュール位置から抽出されたバイナリマトリックスを復号すると、無意味な結果がもたらされることになる。仮定モジュール位置がモジュール値アレイ内のモジュール位置の正確な表現である場合、それらの仮定モジュール位置から判定されたバイナリマトリックスを復号すると、データモジュールの十分な部分が復号に含まれている限り、そのデータセットがもたらされることになる。
【0067】
復号ステップは、ステップ214からの1つまたは複数の仮定に基づいて、抽出された1つまたは複数のバイナリマトリックスに対して反復することができる。このシーケンスは、214における任意選択の優先順位付けステップに基づいてもよい。
【0068】
特定の態様において、バイナリマトリックスを復号する結果として、データセットをもたらすことができる。
【0069】
特定の態様において、バイナリマトリックスの復号によって、バイナリマトリックスが復号可能であるか否かを判定することができる。特定の態様において、復号アルゴリズムは、バイナリマトリックスがデータセットをもたらすほど十分に復号されるのではなく、むしろ、バイナリマトリックスが復号可能であるか否かが判定されるレベルまでバイナリマトリックスが復号される低レベル復号アルゴリズムとすることができる。特定の態様において、バイナリマトリックスを復号することは、2次元マトリックスシンボルを位置特定するために、バイナリマトリックス内の固定パターンが使用されなかったときに、バイ
ナリマトリックス内の固定パターンまたは固定パターンの一部分を位置特定することと、バイナリマトリックスが復号可能であるか否かを判定するために固定パターンを利用することとを含むことができる。特定の態様において、バイナリマトリックスを復号することは、MaxiCodeのプライマリメッセージ、QRバージョン情報、または、エラー検出を利用してコードサイズおよび事実上の向きを判定するフォーマット情報ブロック、Aztec符号化情報(シンボルおよびファインダーパターン付近のデータ領域内のメッセージサイズに関する情報)などのような、可変コードデータのサブセットを位置特定することと、バイナリマトリックスが復号可能であるか否かを判定するために可変コードデータのサブセットを利用することとを含むことができる。特定の態様において、バイナリマトリックスを復号することによって、マトリックスが復号可能であるときのシンボルの位置、または、マトリックスが復号可能でないときの仮定シンボル位置のような、符号化データセット以外の情報をもたらすことができる。位置を使用して、シンボルの品質評価などを実行することができる。
【0070】
位置特定ステップ、推定ステップ、判定ステップ、抽出ステップ、および復号ステップは、位置特定ステップ204において生成されるいくつかの候補領域について反復することができる。これらのステップは、一度に1つの候補領域、または、同時に複数の候補領域に対して実施することができる。
【0071】
復号ステップは、抽出ステップ214において抽出されるいくつかのバイナリマトリックスについて反復することができる。反復の順序は、仮定の優先順位付けに基づくことができる。
【0072】
特定の態様において、抽出ステップおよび復号ステップは、複数のシンボルタイプを抽出および復号することができる。たとえば、抽出ステップおよび復号ステップは、限定ではないが、データマトリックス、QRコード(登録商標)、Aztecコード、MaxiCode、およびそれらの組み合わせを含むシンボルタイプを抽出および復号することができる。
【0073】
特定の態様において、抽出ステップおよび復号ステップは、ユーザ定義の基準セットに従って仮定を優先順位付けまたはランク付けすることができ、優先順位付けされたまたはランク付けの高い仮定を最初に復号することができる。たとえば、ユーザはマトリックスの好ましいサイズを定義することができ、好ましいサイズを有する仮定をより高く優先順位付けまたはランク付けすることができる。
【0074】
特定の態様において、2次元シンボルの範囲を推定することは、バイナリマトリックスが抽出された後に実施することができる。
【0075】
特定の態様において、2次元シンボルの範囲を推定するときに、固定パターンの断片を検出することができる。
【0076】
特定の態様において、2次元シンボルの範囲を推定することは、クワイエットゾーンを観測することを含むことができる。クワイエットゾーンは当該技術分野において、一貫した値を有するモジュールを含む領域として既知である。この一貫性は、照明変動などを計上するための変動を含むことができる。特定の態様において、観測されるクワイエットゾーンは、特定のシンボルの仕様に一致しない変動を含む場合がある(たとえば、特定のシンボルにおける3つよりも多いまたは少ないモジュールを有するクワイエットゾーン)。特定の態様において、観測されるクワイエットゾーンは、偶発的である変動を含む場合がある(たとえば、シンボルがラベルの縁に印刷される)。特定の態様において、観測されるクワイエットゾーンは、ファインダーパターンまたはデータ領域のようなシンボルの部
分をなくす損傷または照明不足に起因する変動を含む場合がある。
【0077】
特定の態様において、モジュールは損傷している可能性があり、バイナリマトリックスの復号216は、エラー訂正機能を改善するために、リード-ソロモンエラー訂正のように、エラー訂正に消失を使用することを含むことができる。
【0078】
システムおよび方法は、訓練によって、観測されるシンボルの知識を利用することができる。「訓練」は、ロバスト性および/または実行速度を改善するために、観測されるシンボルの属性に関する予備知識を用いて読み取りアルゴリズムを構成する方法である。属性は、限定ではないが、シンボル種類、極性、エラー訂正タイプ、行/列の数、ピクセル単位のモジュールサイズ、鏡に映った状態、シンボルの向きなどを含み得る。
【0079】
アルゴリズムは、訓練された属性を利用するように構築することができる。たとえば、マトリックス内の行および列の数を知ることによって、(たとえば、データマトリックス内のクロッキングパターンを使用することによって)行および列の数を判定するのが困難になり得るダイレクトパーツマーク(DPM)における復号歩留まりを改善することができる。行および列の数の判定においてエラーを回避することによって、復号ロバスト性が改善され、復号に成功するまでの全体的な実行時間が低減されることが多い。
【0080】
同様に、他の先験的属性が、復号アルゴリズムの他の要素に影響を及ぼし得る。たとえば、予測モジュールサイズは、いずれのスケールでシンボルを求めて探索すべきかに影響を及ぼし得、画像品質を改善する(サイズを低減する、コントラストを改善する、テクスチャまたは雑音を除去するなど)ために使用される画像フィルタリングカーネルサイズを判定することができる。
【0081】
プロセッサまたはアルゴリズムが、シンボルがとると予測されるサイズおよび形状のようなシンボルの知識を有する場合、位置特定および推定をより効率的に達成することができる。たとえば、システムまたは方法が8×8格子を求めて探索するように訓練されている場合、位置特定は、8×8モジュール以下をカバーすることができる領域をより特定的に探すことができる。同様に、推定は、8×8モジュールよりも大幅に大きくない空間のみをサンプリングし得る。
【0082】
特定の態様において、2次元シンボルの範囲を推定することは、訓練またはユーザによる入力によって測定されるもののような、先験的情報を使用することを含むことができる。
【0083】
方法は、エラー訂正ルーチンを使用してバイナリマトリックス内のエラーを訂正することをさらに含むことができる。エラー訂正ルーチンは、当業者に既知の方法によって実施することができる。たとえば、エラー訂正ルーチンは、リード-ソロモン、従来のコードなどを含む線形ブロックコードのようなブロックコードを含むことができる。
【0084】
方法は、2次元マトリックスシンボルまたは2次元マトリックスシンボルに近い箇所を照明することをさらに含むことができる。照明することは、照明器によって実施することができる。照明することによって、画像ピクセルアレイ内に照明特徴をもたらすことができる。照明されると、位置特定ステップは、照明または画像ピクセルアレイ内の照明特徴に少なくとも部分的に基づき得る。
【0085】
特定の態様において、方法は、1つの画像ピクセルアレイ内の1つまたは複数の照明特徴を位置特定することと、たとえば、両方の画像ピクセルアレイ内で識別することができるランドマークに対する1つまたは複数の照明特徴の位置を判定することによって、別個
の画像ピクセルアレイ内の1つまたは複数の照明特徴の位置を推測することとを含むことができる。これによって、復号されるべき画像が露出される露出の間に照明が機能停止されることが可能になる。代替的に、1つまたは複数の照明特徴の位置は、たとえば、照明特徴が画像ピクセルアレイ内で再現性良く現れる場所(たとえば、画像の中心、製造時のメモリ内に格納されているときに測定される位置など)を判定することによって、画像を取得する前に知ることができる。
【0086】
特定の態様において、方法は、プロセッサに対する単一のコマンドまたは複数のコマンドによって実行することができる。単一のコマンドまたは複数のコマンドは、ユーザによって提供することができ、または、プロセッサもしくは補助構成要素によって提供されるよう自動的にトリガすることができる。
【0087】
特定の態様において、ファインダーパターンの一部分が紙の右辺に沿っており、暗い背景から区別することができないため、固定パターンは不完全であり得る。特定の態様において、ファインダーパターンの一部分が、特にシンボルの左上部分において単純に欠如しているため、固定パターンは不完全であり得る。
【0088】
本発明が特定の実施形態および実施例に関連して上記で説明されてきたが、本発明は必ずしもそのようには限定されないこと、ならびに、多数の他の実施形態、実施例、使途、修正、ならびに、当該実施形態、実施例および使途からの展開が本明細書に添付の特許値請求の範囲によって包含されることが意図されることが、当業者には理解されよう。本明細書に記載されている各特許文献および刊行物の開示全体が、そのような各特許文献および刊行物が本明細書に参照により個々に組み込まれているように、参照により組み込まれる。
【符号の説明】
【0089】
30 機械視覚システム
32 画像
34 物体
36 機械可読シンボル
38 コンベヤ
40 視野
42 イメージングデバイス
44 画像取得ソフトウェア
46 プロセッサ
48 視覚センサ
50 コンピューティングデバイス
52 メモリ媒体
54 通信ライン
56、70 2次元マトリックスシンボル
58 データ領域
60 シンボルモジュール
62 ファインダーパターン
64 クワイエットゾーン
66 タイミングパターン
72 位置合わせパターン
74 シンボル位置特定アルゴリズム
78 シンボル
80 画像ピクセルアレイ
82 バージョン情報領域
84 フォーマット情報領域
86 方向パターン
88 モードメッセージ
90 データ層
100 モジュール測定アルゴリズム
102 マトリックス復号アルゴリズム
104 トリガ入力
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21