(57)【要約】【課題】２次元マトリックスシンボルを読み取り、または、２次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムを提供する。【解決手段】２次元マトリックスシンボルを読み取り、または、２次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムおよび方法が開示される。システムおよび方法は、画像を受信し、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定し、画像からモジュール部分のモデルを当てはめ、モデルを推定して予測モジュール位置をもたらし、予測モジュール位置にある画像からモジュール値を判定し、モジュール値からバイナリマトリックスを抽出するデータ読み取りアルゴリズムを含むことができる。【選択図】図１
2016105276.tif 000002
【特許請求の範囲】
【請求項１】
各々がモジュール値およびモジュール位置を有するデータモジュールを含み、且つデータセットを符号化する２次元マトリックスシンボル、を読み取るシステムであって、
前記２次元マトリックスシンボルの少なくとも一部分を含む画像を取得するように構成されたイメージングデバイスと、
前記イメージングデバイスに結合されデータ読み取りアルゴリズムを実行するプロセッサであって、前記データ読み取りアルゴリズムが、前記画像を受信し、固定パターンを使用することなく前記画像内の前記データモジュールの少なくとも一部分の位置を特定し、前記画像から前記モジュール位置のモデルを当てはめ、前記モデルを推定して予測モジュール位置をもたらし、前記予測モジュール位置にある前記画像からモジュール値を決定し、前記モジュール値からバイナリマトリックスを抽出する、プロセッサと、
前記プロセッサに結合され前記バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されているバイナリマトリックス復号器と、
を備えるシステム。
【請求項２】
前記データ読み取りアルゴリズムは、エラー訂正ルーチンを使用して前記バイナリマトリックス内のエラーを訂正する
請求項１に記載のシステム。
【請求項３】
前記システムは、１つまたは複数の照明特徴を用いて前記画像の目標を照明する照明器を含む
請求項１に記載のシステム。
【請求項４】
前記データ読み取りアルゴリズムは、前記照明特徴を使用して前記画像内の前記データモジュールの少なくとも一部分を位置特定する
請求項３に記載のシステム。
【請求項５】
前記データモジュールの少なくとも一部分を位置特定することは、前記データモジュールの１つまたは複数の顕著な特徴を識別することを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される
請求項１に記載のシステム。
【請求項６】
前記プロセッサまたは前記バイナリマトリックス復号器は複数のシンボルタイプを推定または復号するように構成されている
請求項１に記載のシステム。
【請求項７】
前記複数のシンボルタイプは、データマトリックス、ＱＲコード（登録商標）、Ａｚｔｅｃコード、ＭａｘｉＣｏｄｅ、およびそれらの組み合わせから成る群から選択される
請求項６に記載のシステム。
【請求項８】
前記データ読み取りアルゴリズムは前記２次元マトリックスシンボルの属性を含む
請求項１に記載のシステム。
【請求項９】
前記データ読み取りアルゴリズムは前記プロセッサに対する単一のコマンドによって実行することができる
請求項１に記載のシステム。
【請求項１０】
各々がモジュール値およびモジュール位置を有するデータモジュールを含み、且つデータセットを符号化する２次元マトリックスシンボル、を読み取る方法であって、
プロセッサが、前記２次元マトリックスシンボルの少なくとも一部分を含む画像を受信するステップと、
前記プロセッサを使用し固定パターンを使用することなく、前記画像内の前記データモジュールの少なくとも一部分を位置特定するステップと、
前記プロセッサを使用して、前記画像から前記モジュール位置の少なくとも一部分にモデルを当てはめるステップと、
前記プロセッサを使用して、前記モデルを推定し予測モジュール位置を画定するステップと、
前記プロセッサを使用して、前記予測モジュール位置にある前記画像から前記モジュール値を判定するステップと、
前記プロセッサを使用して、前記モジュール値からバイナリマトリックスを抽出するステップと、
前記バイナリマトリックスを復号するステップと、
を含む方法。
【請求項１１】
前記プロセッサを使用し、エラー訂正ルーチンを使用して前記バイナリマトリックス内のエラーを訂正するステップをさらに含む
請求項１０に記載の方法。
【請求項１２】
前記２次元マトリックスシンボルまたは前記２次元マトリックスシンボルに近い箇所を照明するステップをさらに含む
請求項１０に記載の方法。
【請求項１３】
前記データモジュールの少なくとも一部分を位置特定するステップは、前記データモジュールの１つまたは複数の顕著な特徴を識別するステップを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される
請求項１０に記載の方法。
【請求項１４】
複数のシンボルタイプを推定または復号するよう試行するステップを含む
請求項１０に記載の方法。
【請求項１５】
前記複数のシンボルタイプは、データマトリックス、ＱＲコード（登録商標）、Ａｚｔｅｃコード、ＭａｘｉＣｏｄｅ、およびそれらの組み合わせから成る群から選択される
請求項１４に記載の方法。
【請求項１６】
前記画像を受信する前に前記２次元マトリックスシンボルの１つまたは複数の属性を含むように前記プロセッサを訓練するステップをさらに含む
請求項１０に記載の方法。
【請求項１７】
前記方法は、前記プロセッサに対する単一のコマンドによって実行することができる
請求項１０に記載の方法。
【請求項１８】
各々がモジュール値およびモジュール位置を有するデータモジュールを含んでいる２次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムであって、
前記２次元マトリックスシンボルを含む画像を取得するように構成されるイメージングデバイスと、
前記イメージングデバイスに結合されデータ読み取りアルゴリズムを実行するプロセッサであって、前記データ読み取りアルゴリズムが、前記画像を受信し、固定パターンを使用することなく前記画像内の前記データモジュールの少なくとも一部分を位置特定し、前記画像から前記モジュール位置のモデルを当てはめ、前記モデルを推定して予測モジュール位置をもたらし、前記予測モジュール位置にある前記画像からモジュール値を決定し、前記モジュール値からバイナリマトリックスを抽出する、プロセッサと、を備え、
前記データ読み取りアルゴリズムは周波数ドメイン解析を含むシステム。
【請求項１９】
前記データ読み取りアルゴリズムは周波数ドメイン解析を使用して前記モデルを当てはめる
請求項１８に記載のシステム。
【請求項２０】
前記プロセッサに結合されているバイナリマトリックス復号器をさらに備え、前記バイナリマトリックス復号器は前記バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されている
請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術は、イメージングシステムおよびシンボルを復号するための方法に関し、より詳細には、固定パターンが不完全であるかまたは欠如している２次元マトリックスシンボルを読み取るためのイメージングシステムおよび方法に関する。
【背景技術】
【０００２】
イメージングシステムは、観察される対象物に関する情報を送達するために画像センサを含む画像取得デバイスを使用する。システムはその後、様々なアルゴリズムに従ってこの情報を解釈して、プラグラムされた意思決定および／または識別機能を実施する。画像が、可視光および近可視光範囲内でセンサによって最も効率的に取得されるために、対象物は一般的に照明される。
【０００３】
画像センサを使用したシンボル読み取り（一般的に「バーコード」スキャンとも称される）は、光学素子（レンズ）およびセンサ（ＣＭＯＳカメラ、ＣＣＤなど）を、シンボル（たとえば「バーコード」）を含む物体上の位置に向けること、および、そのシンボルの画像を取得することを含む。シンボルは、付属のデータプロセッサ（たとえば、マイクロコンピュータ）がそこから物体に関する有用な情報（たとえば、そのシリアルナンバー、型、モデル、価格など）を導出することができる文字または形状の順序付けされたグループを表す所定パターンのセットを含む。シンボル／バーコードは様々な形状およびサイズで利用可能である。物体をマーキングおよび識別するのに使用される、最も一般的に利用されているシンボルタイプの２つが、幅が変動する一連の棒および空間から構成されている、いわゆる１次元バーコード、ならびに、点または長方形の２次元アレイから構成されている、いわゆる２次元バーコードである。
【０００４】
一般的にシンボル読み取りにおいて、シンボル／バーコードは、最初に固定パターン、たとえば、ファインダーパターンを位置特定することによって識別される。固定パターンが損傷しているかまたは欠如している場合、読み取り機はシンボルを読み取ることができない。損傷した固定パターンに対処するための近年の試行において、長方形シンボルの隅の位置を判定することを含む試みが為されている。しかしながら、これらの試行には、シンボル／バーコード内の固定点を識別する必要があり、シンボルが損傷していることに起因して固定点を位置特定することができない場合は役に立たない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特に、固定パターンが損傷しているかまたは欠如しているシンボル／バーコードに関係する欠点を克服するために、シンボルを復号するための改善されたシステムおよび方法が必要とされている。
【課題を解決するための手段】
【０００６】
一態様において、本開示は、２次元マトリックスシンボルを読み取り、または、２次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムを提供する。２次元マトリックスシンボルは、不完全な固定パターンを含むか、または固定パターンを含まない可能性がある。２次元マトリックスシンボルは、データセットを符号化することができる。システムは、イメージングデバイスおよびプロセッサを含むことができる。システムは任意選択的に、バイナリマトリックス復号器を含んでもよい。イメージングデバイスは、２次元マトリックスシンボルの少なくとも一部分を含む画像を取得するように構成することができる。プロセッサは、イメージングデバイスに動作可能に結合することができる。プロセッサは、データ読み取りアルゴリズムを実行するように構成することができる。データ読み取りアルゴリズムは、画像を受信し、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定し、画像からモジュール部分のモデルを当てはめ、モデルを推定して予測モジュール位置をもたらし、予測モジュール位置にある画像からモジュール値を判定し、モジュール値からバイナリマトリックスを抽出することができる。バイナリマトリックス復号器は、プロセッサに動作可能に結合することができる。バイナリマトリックス復号器は、バイナリマトリックスを復号する復号アルゴリズムを実行するように構成することができる。データ読み取りアルゴリズムは、周波数ドメイン解析を含むことができる。
【０００７】
別の態様において、本開示は、２次元マトリックスシンボルを読み取る方法を提供する。２次元マトリックスシンボルは、各々がモジュール値およびモジュール位置を有するデータモジュールを含むことができる。２次元マトリックスシンボルは、不完全な固定パターンを含むか、または固定パターンを含まない可能性がある。２次元マトリックスシンボルは、データセットを符号化することができる。方法は、プロセッサにおいて画像を受信するステップであって、画像は、２次元マトリックスシンボルの少なくとも一部分を含む、受信するステップと、プロセッサを使用して、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定するステップと、プロセッサを使用して、画像からモジュール位置の少なくとも一部分にモデルを当てはめるステップと、プロセッサを使用して、予測モジュール位置を規定するためにモデルを推定するステップと、プロセッサを使用して、予測モジュール位置にある画像からモジュール値を判定するステップと、プロセッサを使用して、モジュール値からバイナリマトリックスを抽出するステップと、バイナリマトリックスを復号するステップとのうちの１つまたは複数を含むことができる。
【０００８】
本発明は、以下の番号を付された項目をさらに含む：
１．各々がモジュール値およびモジュール位置を有するデータモジュールを含む２次元マトリックスシンボルを読み取るためのシステムであって、２次元マトリックスシンボルはデータセットを符号化し、イメージングデバイスであって２次元マトリックスシンボルの少なくとも一部分を含む画像を取得するように構成されているイメージングデバイスと、イメージングデバイスに動作可能に結合され、データ読み取りアルゴリズムを実行するプロセッサであって、データ読み取りアルゴリズムは画像を受信し、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定し、画像からモジュール位置のモデルを当てはめ、モデルを推定して予測モジュール位置をもたらし、予測モジュール位置にある画像からモジュール値を判定し、および、モジュール値からバイナリマトリックスを抽出することを行うように構成されている、プロセッサと、プロセッサに動作可能に結合されているバイナリマトリックス復号器であって、バイナリマトリックス復号器は、バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されている、バイナリマトリックス復号器とを備える、システム；
２．データ読み取りアルゴリズムは、エラー訂正ルーチンを使用してバイナリマトリックス内のエラーを訂正する、項目１のシステム；
３．システムは、１つまたは複数の照明特徴を用いて画像の目標を照明する照明器を含む、項目１のシステム；
４．データ読み取りアルゴリズムは、照明特徴を使用して、画像内のデータモジュールの少なくとも一部分を位置特定する、項目３のシステム；
５．データモジュールの少なくとも一部分を位置特定することは、データモジュールの１つまたは複数の顕著な特徴を識別することを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される、項目１のシステム；
６．プロセッサまたはバイナリマトリックス復号器は、複数のシンボルタイプを推定または復号するように構成されている、項目１のシステム；
７．複数のシンボルタイプは、データマトリックス、ＱＲコード（登録商標）、Ａｚｔｅｃコード、ＭａｘｉＣｏｄｅ、およびそれらの組み合わせから成る群から選択される、項目６のシステム；
８．データ読み取りアルゴリズムは、２次元マトリックスシンボルの属性を含む、項目１のシステム；
９．データ読み取りアルゴリズムは、プロセッサに対する単一のコマンドによって実行することができる、項目１のシステム；
１０．各々がモジュール値およびモジュール位置を有するデータモジュールを含む２次元マトリックスシンボルを読み取り、２次元マトリックスシンボルはデータセットを符号化する方法であって、プロセッサにおいて２次元マトリックスシンボルの少なくとも一部分を含む画像を受信するステップと、プロセッサを使用して、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定するステップと、プロセッサを使用して、画像からモジュール位置の少なくとも一部分にモデルを当てはめるステップと、プロセッサを使用して、予測モジュール位置を規定するためにモデルを推定するステップと、プロセッサを使用して、予測モジュール位置にある画像からモジュール値を判定するステップと、プロセッサを使用して、モジュール値からバイナリマトリックスを抽出するステップと、バイナリマトリックスを復号するステップとを含む、方法；
１１．方法は、プロセッサを使用して、エラー訂正ルーチンを使用してバイナリマトリックス内のエラーを訂正するステップをさらに含む、項目１０の方法；
１２．方法は、２次元マトリックスシンボルまたは２次元マトリックスシンボルに近い箇所を照明するステップをさらに含む、項目１０の方法；
１３．データモジュールの少なくとも一部分を位置特定するステップは、データモジュールの１つまたは複数の顕著な特徴を識別するステップを含み、該顕著な特徴が、形状、サドルの存否、隅の存否、点の存否、勾配、ヒストグラム、ウェーブレット、およびそれらの組み合わせから成る群から選択される、項目１０の方法；
１４．方法は、複数のシンボルタイプを推定または復号するよう試行するステップを含む、項目１０の方法；
１５．複数のシンボルタイプは、データマトリックス、ＱＲコード（登録商標）、Ａｚｔｅｃコード、ＭａｘｉＣｏｄｅ、およびそれらの組み合わせから成る群から選択される、項目１４の方法；
１６．方法は、画像を受信する前に２次元マトリックスシンボルの１つまたは複数の属性を含むようにプロセッサを訓練するステップをさらに含む、項目１０の方法；
１７．方法は、プロセッサに対する単一のコマンドによって実行することができる、項目１０の方法；
１８．２次元マトリックスシンボルが復号可能であるか否かを判定するためのシステムであって、２次元マトリックスシンボルは、各々がモジュール値およびモジュール位置を有するデータモジュールを含み、２次元マトリックスシンボルを含む画像を取得するように構成されているイメージングデバイスと、イメージングデバイスに動作可能に結合され、データ読み取りアルゴリズムを実行し、データ読み取りアルゴリズムは画像を受信し、固定パターンを使用することなく画像内のデータモジュールの少なくとも一部分を位置特定し、画像からモジュール位置のモデルを当てはめ、モデルを推定して予測モジュール位置をもたらし、予測モジュール位置にある画像からモジュール値を判定し、および、モジュール値からバイナリマトリックスを抽出することを行うように構成され、データ読み取りアルゴリズムは周波数ドメイン解析を含む、プロセッサとを備える、システム；
１９．データ読み取りアルゴリズムは、周波数ドメイン解析を使用してモデルを当てはめる、項目１８のシステム；
２０．システムは、プロセッサに動作可能に結合されているバイナリマトリックス復号器をさらに備え、バイナリマトリックス復号器は、バイナリマトリックスを復号する復号アルゴリズムを実行するように構成されている、項目１８のシステム。
【０００９】
本発明の上記のおよび他の態様および利点は、以下の説明から明らかになる。その説明において、本明細書の一部を形成し、本発明の好ましい実施形態が例として示されている添付の図面を参照する。しかしながら、そのような実施形態は必ずしも本発明の全範囲を表すものではなく、それゆえ、本発明の範囲を解釈するためには特許請求の範囲および本明細書が参照される。
【００１０】
以下の本発明の詳細な説明に考察が与えられると、本発明は、より良好に理解されることになり、上記に記載されている以外の特徴、態様および利点が明らかになる。そのような詳細な説明は、添付の図面を参照する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態による、物体の複数の画像を取得するための固定スキャナを含む一般的な資格システム構成の概略図である。
【図２】特定の２次元マトリックスシンボルの特徴およびスタイルの図である。
【図３】特定の２次元マトリックスシンボルの特徴およびスタイルの図である。
【図４】特定の２次元マトリックスシンボルの特徴およびスタイルの図である。
【図５】特定の２次元マトリックスシンボルの特徴およびスタイルの図である。
【図６】特定の２次元マトリックスシンボルの特徴およびスタイルの図である。
【図７】特定の２次元マトリックスシンボルの特徴およびスタイルの図である。
【図８】画像内の２次元マトリックスシンボルおよび背景クラッタの図である。
【図９】本開示による、２次元マトリックスシンボル読み取り方法の一態様を示す流れ図である。
【図１０】ＱＲコード（登録商標）マトリックスシンボルの一例の図である。
【図１１】Ａｚｔｅｃコードマトリックスシンボルの一例の図である。
【図１２】ＭａｘｉＣｏｄｅマトリックスシンボルの一例の図である。
【図１３】ＱＲコード（登録商標）マトリックスシンボルの一例の図である。
【図１４】Ａｚｔｅｃコードマトリックスシンボルの概略図である。
【図１５】Ａｚｔｅｃコードマトリックスシンボルの特定の部分の概略図である。
【図１６】ＭａｘｉＣｏｄｅマトリックスシンボルの固定パターン部分の概略図である。
【図１７】ＭａｘｉＣｏｄｅマトリックスシンボル内のデータ領域の概略図である。
【図１８】本開示による、任意選択のサブルーチンを示す流れ図である。
【図１９】本開示による、当てはめサブルーチンを示す流れ図である。
【図２０】本開示による、任意選択のロバスト性サブルーチンを示す流れ図である。
【図２１】本開示による、抽出サブルーチンを示す流れ図である。
【００１２】
本発明の技術は様々な修正および代替形態を許容するが、その特定の実施形態が例として図面に示されており、本明細書において詳細に説明される。しかしながら、特定の実施形態の本明細書における説明は、本発明の技術を開示されている特定の形態に限定するようには意図されておらず、逆に、その意図するところは、添付の特許請求の範囲によって規定されるものとしての本発明の技術の精神および範囲内に入るすべての修正、均等物、および代替物を包含することである。
【発明を実施するための形態】
【００１３】
本発明の主題の技術の様々な態様を、これより添付の図面を参照して説明する。図面において、同様の参照符号は、いくつかの図全体を通じて同様の要素に対応する。しかしながら、図面および以降のそれに関係する詳細な説明は、特許請求されている主題を開示されている特定の形態に限定するようには意図されていない。むしろ、その意図するところは、特許請求されている主題の精神および範囲内に入るすべての修正、均等物、および代替物を包含することである。
【００１４】
本明細書において使用されるものとしては、「構成要素」、「システム」、「デバイス」などという用語は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかを指すように意図される。「例示的な」という単語は、本明細書においては、例、事例、または例示としての役割を果たすことを意味するものとして使用される。「例示的」として本明細書に記載されている任意に態様または設計は、必ずしも他の態様または設計よりも好ましいかまたは有利であるものとして解釈されるべきではない。
【００１５】
さらに、開示されている主題は、本明細書に詳述されている態様を実装するための電子機器ベースのデバイスを制御するために、標準的なプログラミングおよび／もしくはエンジニアリング技術、ならびに／または、ハードウェア、ファームウェア、ソフトウェア、もしくはそれらの任意の組み合わせを製造するためのプログラミングを使用したシステム、方法、装置、または製造品として実装されてもよい。
【００１６】
別途指定または限定しない限り、「接続されている」および「結合されている」ならびにそれらの変化形は、広範に使用され、直接的および間接的の両方の取り付け、接続、支持、および結合を包含する。さらに、「接続されている」および「結合されている」は、物理的または機械的接続または結合には制限されない。本明細書において使用されるものとしては、別途明確に記述しない限り、「接続されている」とは、１つの要素／機構が別の要素／機構に直接的または間接的に接続されていることを意味し、必ずしも電気的にまたは機械的にではない。同様に、別途明確に記述しない限り、「結合されている」とは、１つの要素／機構が別の要素／機構に直接的または間接的に結合されていることを意味し、必ずしも電気的にまたは機械的にではない。
【００１７】
本明細書において使用されるものとしては、「プロセッサ」という用語は、１つもしくは複数のプロセッサおよびメモリならびに／または１つもしくは複数のプログラム可能ハードウェア要素を含んでもよい。本明細書において使用されるものとしては、「プロセッサ」という用語は、任意のタイプのプロセッサ、ＣＰＵ、マイクロコントローラ、デジタル信号プロセッサ、または、ソフトウェア命令を実行することが可能な他のデバイスを含むように意図される。
【００１８】
本明細書において使用されるものとしては、「メモリ」という用語は、磁気媒体、ハードディスク、光学式記憶装置、またはフラッシュメモリ等の不揮発性媒体や、ＤＲＡＭ，ＳＲＡＭ，ＥＤＯ  ＲＡＭ，ＲＡＭＢＵＳ  ＲＡＭ，ＤＲ  ＤＲＡＭなどのランダムアクセスメモリ（ＲＡＭ）のようなシステムメモリ等の揮発性媒体、ＣＤ−ＲＯＭ、またはフレキシブルディスクなどのソフトウェア媒体等のインストール媒体、を含み、プログラムをそれらに記憶することができ、かつ／または、データ通信をバッファリングすることができる。「メモリ」という用語はまた、他のタイプのメモリまたはそれらの組み合わせも含んでもよい。
【００１９】
本明細書において使用されるものとしては、「固定パターン」という用語は、すべてのシンボルにおいて繰り返されているパターンを含み、このパターンは、シンボルを位置特定するのに使用することができ、ファインダーパターン、タイミングパターン、位置合わせパターン、クワイエットゾーンなどを含む。
【００２０】
本明細書において使用されるものとしては、「モジュール値」という用語は、量子化することができる２つのモジュール間の任意の差、たとえば、照明を用いたもしくは用いないときのモジュールの明度の差、または、距離検知デバイスもしくは特定の値を視覚的に表す任意の他の手段によって測定されるモジュールの深さの差を含む。特定の態様において、モジュール値は、前景モジュールと背景モジュールとの間のバイナリである。
【００２１】
本明細書において使用されるものとしては、「モジュール位置」という用語は、別のモジュールまたは照明特徴のような、画像内の何らかの固定点に対するモジュールの位置を含む。
【００２２】
本明細書において使用される場合、「バイナリ」という用語は、文脈が別途一義的に指示しない限り、他の非バイナリ形態を含むものとする。たとえば、非バイナリ２次元マトリックスシンボルが利用されている場合、そのシンボルから判定および抽出される値は非バイナリであり得る。別の例として、非バイナリ２次元マトリックスシンボルが使用されている場合、バイナリマトリックスの復号は、非バイナリマトリックスの復号を含む可能性がある。
【００２３】
本発明の技術の実施形態を実装するのに使用される実施形態の構造または処理のいずれかを示すための図面を使用することによって、本発明の技術の実施形態を下記に説明する。このように図面を本発明の技術の実施形態を提示するために使用することは、その範囲を限定するものとして解釈されるべきではない。本発明の技術は、損傷した固定パターンを有するかまたは固定パターン全体を欠く２次元マトリックスシンボルを読み取るためのシステムおよび方法を企図する。
【００２４】
２次元マトリックスシンボルを読み取るための方法の様々な態様は、システムと関連して説明される場合があり、システムは、２次元マトリックスシンボルを読み取るように適合されている。これは、本発明の技術の特徴および利点が、この目的によく適しているためである。また、本発明の技術の様々な態様は、本明細書に記載されている特徴を有する読み取りプロセスから受益することができる、手持式スキャナ、固定マウントスキャナ、または内蔵スマートカメラのような、他の形態のイメージングシステムに適用することができることが理解されるべきである。加えて、２次元マトリックスシンボルを読み取るためのシステムの様々な態様は、２次元マトリックスシンボルを読み取るための方法と関連して説明される場合がある。
【００２５】
図１は、機械可読シンボル３６を含む物体３４の１つまたは複数の画像３２を取得するように適合されている例示的な機械視覚システム３０を示す。コンベヤ３８が、物体３４を搬送し、物体３４とイメージングデバイス４２の視野４０との間の相対運動を引き起こす。例示的な機械視覚システムは、非限定例として、中でも、製造アセンブリ、試験、測定、自動化、および／または制御アプリケーションに使用されてもよい。機械視覚システム３０は、様々なタイプの画像取得のいずれかを実施するように動作可能な画像取得ソフトウェア４４を使用することができる。
【００２６】
イメージングデバイス４２は、たとえば、画像処理および復号に使用されるプロセッサ４６を含むことができる。プロセッサ４６は、視覚センサ４８に結合することができ、視覚センサ４８の一部であってもよく、または、視覚センサ４８にローカルにリンクされてもよい。プロセッサ４６には、画像取得ソフトウェア４４を符号化することができ、または、いくつかの態様においては、画像取得ソフトウェア４４は、別個のコンピューティングデバイス５０もしくはプロセッサ４６上で作動されてもよい。画像取得ソフトウェア４４は、中でも、単一の読み取り動作の中で複数の画像を取得し、照明を制御し、画像データを取得し、取得された画像データを処理／復号して使用可能な情報にするように構成することができる。特定の態様において、イメージングデバイス４２は、距離検知デバイスであってもよい。
【００２７】
イメージングデバイス４２はまた、視覚センサ４８および／またはプロセッサ４６に結合されているメモリ媒体５２をも含むことができる。メモリ媒体５２は、スキャンまたは処理された画像３２を記憶し、データおよび通信をバッファリングするなどのために使用することができる。画像、画像ピクセルアレイなどを送信することが可能な有線または無線接続のような通信ライン５４も、イメージングデバイス４２に結合することができ、任意選択のコンピューティングデバイス５０への接続点を提供することができる。コンピューティングデバイス５０は、たとえば、スキャンまたは処理された画像３２をアップロードおよびダウンロードするのに使用することができる。イメージングデバイス４２またはコンピューティングデバイス５０は、復号データの転送を可能にするためにデータを送信することが可能な有線または無線接続のようなさらなる通信ライン５４を含むことができる。視覚システム３０は、バイナリデジタル信号を送信することが可能な有線または無線接続のような通信ライン５４によって、イメージングデバイス４２またはコンピューティングデバイス５０に結合されている任意選択のトリガ入力１０４を含むことができる。無線通信も企図されていることが理解されるべきである。この例において、イメージングデバイス４２は、高角度および／もしくは低角度照明、または高角度照明と低角度照明との組み合わせをもたらすことが可能な従来の固定マウントスキャナ、手持式スキャナ、または内蔵スマートカメラであってもよい。
【００２８】
イメージングデバイス４２はまた、照準器（図示せず）も含むことができる。照準器は、イメージングデバイス４２の有効領域のような、イメージングデバイス４２の特性を示すことができる、レーザまたはＬＥＤのような補助照明システムであり得る。たとえば、照準器は、イメージングデバイス４２のＦＯＶの中心または境界を示すことができる。
【００２９】
本明細書に記載されている様々な態様は、不完全な固定パターンを含むか、または、固定パターンを含まない２次元マトリックスシンボルの読み取りを可能にする。特に、２次元マトリックスシンボルのイメージングおよび復号の文脈で様々な実施形態を説明する。この例において、シンボル３６は、物体３４の表面に付着されている。物体３４は、時として部分的に被覆される場合があり、ラベルの縁に印刷される場合があり、適切に照明されない場合があり、または何らかの他の理由で、シンボル３６のいくつかの部分が読み取り不能にレンダリングされる可能性がある。様々な態様は、不完全な固定パターンを有するかまたは固定パターンを有しないシンボルを読み取るのに有用であり得るが、様々な態様はまた、完全な固定パターンを有するシンボルを読み取るのにも適していることが理解されるべきである。
【００３０】
図２〜図７を参照すると、データマトリックスの形態の２次元マトリックスシンボル５６は、矩形アレイに配置されている、通常は正方形のシンボルモジュール６０を含む１つまたは複数のデータ領域５８から構成することができる。代替的に、シンボルモジュール６０は、レーザもしくはドットピーニングによって作成されるシンボルモジュールのように円形であってもよく、またはデータ記憶に適切な他の形状であってもよい。データ領域５８は、概して「Ｌ」字形状であるファインダーパターン６２によって部分的に包囲されており、データ領域５８は、四隅すべてをクワイエットゾーン６４によって包囲することができる。タイミングパターン６６が、シンボル３６内の行および列の数のカウントを可能にする。図５は、白地に黒の２次元マトリックスシンボル５６の一例を示し、図６は、黒字に白の２次元マトリックスシンボル７０の一例を示す。特定の態様において、２次元マトリックスシンボルは、カラーベースのコードである。カラーベースのコードの例としては、限定ではないが、大容量カラーバーコード（ＨＣＣＢ）およびＵｌｔｒａＣｏｄｅが挙げられる。位置合わせパターン７２も含むことができ、一般的により大きい格子サイズのシンボルとともに使用される（図７参照）。本開示によって読み出される、２次元マトリックスシンボル内で損傷するかまたは失われるのは、これらのファインダーパターン６２、タイミングパターン６６、位置合わせパターン７２などである。図４は、ファインダーパターン６２またはタイミングパターン６６を有しないデータマトリックスの形態の２次元マトリックスシンボル５６を示す。
【００３１】
図１０を参照すると、複数のファインダーパターン６２を有するＱＲコード（登録商標）の形態の２次元マトリックスシンボル５６が示されている。図１３を参照すると、複数のバージョン情報領域８２、複数のフォーマット情報領域８４、複数のファインダーパターン６２、複数の位置合わせパターン７２、複数のタイミングパターン６６、およびクワイエットゾーン６４を有するＱＲコード（登録商標）の形態の２次元マトリックスシンボル５６が示されている。
【００３２】
図１１を参照すると、ファインダーパターン６２を有する（ファインダーパターン６２は、２次元マトリックスシンボル５６の残りの部分を灰色に抜くことによって強調されている）Ａｚｔｅｃコードの形態の２次元マトリックスシンボル５６が示されている。図１４を参照するとファインダーパターン６２、タイミングパターン６６または基準格子、および方向パターン８６を含む固定パターン、ならびにモードメッセージ８８およびデータ層９０を含む可変構造を有するＡｚｔｅｃコードの形態の２次元マトリックスシンボル５６が示されている。図１５を参照すると、ファインダーパターン６２、方向パターン８６、タイミングパターン６６、およびモードメッセージ８８を有するＡｚｔｅｃコードの形態の２次元マトリックスシンボルの一部分が示されている。
【００３３】
図１２を参照すると、ファインダーパターン６２を有するＭａｘｉＣｏｄｅの形態の２次元マトリックスシンボル５６が示されている。図１６を参照すると、シンボル「Ｂ」および「Ｗ」によって示されているモジュールによって形成されている方向パターン８６を有するＭａｘｉＣｏｄｅの形態の２次元マトリックスシンボル５６の一部分が示されている。図１７を参照すると、ファインダーパターンを有せず、モジュール内に位置するシンボル「Ｂ」および「Ｗ」ならびに１〜１４４の通し番号によって示されている文字列によって示されているモジュールによって形成されている方向パターン８６を有するＭａｘｉＣｏｄｅの形態の２次元マトリックスシンボル５６が示されている。
【００３４】
図９を参照すると、本開示による方法２００のステップを詳述する流れ図が与えられている。方法２００の詳細は、以下の段落において説明する。システム３０は、本明細書に記載されている方法を実行するように構成されている。システム３０は、シンボル位置特定アルゴリズム７４、モジュール測定アルゴリズム１００、マトリックス復号アルゴリズム１０２、またはそれらの組み合わせによって、方法を実行することができる。
【００３５】
プロセスブロック２０２において、方法２００は、プロセッサにおいて画像ピクセルアレイを受信することによって開始することができ、画像ピクセルアレイは、センサによってキャプチャされる２次元マトリックスシンボルの画像の少なくとも一部分を含む。画像ピクセルアレイは、カメラを使用して、その後プロセッサに送信される画像ピクセルアレイを取得することによって、または、単純にプロセッサにおいて画像ピクセルアレイファイルを受信することによって、プロセッサにおいて受信することができる。画像ピクセルアレイを取得する特定の手段が、本開示に対する限定であるとは意図されない。
【００３６】
２次元マトリックスシンボルは、各々がモジュール値およびモジュール位置を有するデータモジュールを含むことができる。２次元マトリックスシンボルは、不完全な固定パターンを含むか、または固定パターンを含まない可能性がある。２次元マトリックスシンボルは、データセットを符号化することができる。
【００３７】
プロセスブロック２０４において、方法２００は、図１８に示すような、１つまたは複数の候補領域を位置特定するステップと、候補領域を検証するステップと、候補領域を優先順位付けするステップと、画像ピクセルアレイ内の２次元シンボルの範囲を推定するステップとのうちの１つまたは複数を含む任意選択のサブルーチン２０４を実行することによって継続することができる。任意選択のサブルーチン２０４の任意のステップまたはすべてのステップは任意選択とすることができる。
【００３８】
図１８を参照すると、プロセスブロック４０２において、任意選択のサブルーチン２０４は、画像ピクセルアレイ内の１つまたは複数の候補領域を位置特定することによって開始することができる。１つまたは複数の候補領域を位置特定することは、参照によりその全体が本明細書に組み込まれている米国特許第７，１８１，０６６号明細書に開示されている方法のような、当業者に既知の方法によって実施することができる。
【００３９】
プロセスブロック４０４において、任意選択のサブルーチン２０４は、１つまたは複数の候補領域を検証することによって継続することができる。検証された候補領域は、２次元シンボルを含む可能性がより高い。１つまたは複数の候補領域を検証することは、参照によりその全体が本明細書に組み込まれている米国特許第７，１８１，０６６号明細書に開示されている方法のような、当業者に既知の方法によって実施することができる。
【００４０】
プロセスブロック４０５において、任意選択のサブルーチン２０４は、１つまたは複数の候補領域を優先順位付けすることによって継続することができる。優先順位付けは、限定ではないが、サイズ、コントラスト、エッジ密度、勾配ヒストグラム、シーン内の存在する他のシンボル（１次元または２次元）など、またはそれらの組み合わせを含む候補領域の属性に基づくことができる。
【００４１】
プロセスブロック４０６において、任意選択のサブルーチン２０４は、画像ピクセルアレイ内の２次元シンボルの範囲を推定することによって継続することができる。
【００４２】
手持式スキャナをイメージングデバイスとして利用する態様において、または、ユーザがイメージングデバイスを２次元マトリックスシンボルに対して方向付けているか、もしくは２次元マトリックスシンボルをイメージングデバイスに対して方向付けている他の態様において、２次元マトリックスシンボルを位置特定することは、推定されるようにユーザがイメージングデバイスを２次元マトリックスシンボルに向けているか、または、２次元マトリックスシンボルをイメージングデバイスと位置合わせしているため、計算上の要求を著しく少なくすることができることが理解されるべきである。
【００４３】
図８を参照すると、シンボル位置特定アルゴリズム７４を使用して２次元マトリックスシンボル５６を発見することができる。画像ピクセルアレイ８０内の残りのシンボル７８、たとえば、テキストおよび数字は、２次元マトリックスシンボルであるために必要とされる十分な数の特徴を含まない場合、背景クラッタと考えられ、シンボル位置特定アルゴリズム７４によって無視することができる。２次元マトリックスシンボルを位置特定することは、一般的な画像分割アルゴリズムの一部分として実施することができる。
【００４４】
プロセスブロック２０６において、方法２００は、画像ピクセルアレイ内のデータモジュールの少なくとも一部分を位置特定することによって継続することができる。一般的に従来技術において、２次元マトリックスシンボルを位置特定することは、固定パターンを位置特定することによって達成されるが、この事例においては、固定パターンが損傷しているか、または欠如している。データモジュールの少なくとも一部分を位置特定することは、プロセッサまたは補助構成要素を用いて達成することができる。データモジュールの少なくとも一部分を位置特定することは、限定ではないが、形状、サドルの存否、隅の存否、点の存否、エッジ、勾配、ヒストグラム、ウェーブレット、またはそれらの組み合わせを含むデータモジュールの１つまたは複数の顕著な特徴を識別することを含む。画像ピクセルアレイ内のデータモジュールの少なくとも一部分を位置特定することは、参照によりその全体が本明細書に組み込まれる、米国特許第７，１８１，０６６号明細書および米国特許出願第１３／７９７，９１０号明細書に開示されている方法のような、当業者に既知の方法によって達成することができる。
【００４５】
図１９を参照すると、モジュール位置特定サブルーチン２０６は、以下のステップのうちの１つまたは複数を含むことができる。プロセスブロック５０２において、モジュール位置特定サブルーチン２０６は、任意選択的に、小さい領域をアップサンプリングし、大きい領域をダウンサンプリングすることを含むことができる。プロセスブロック５０４において、モジュール位置特定サブルーチン２０６は、候補領域または２次元マトリックスシンボルからエッジ強度画像を抽出することを含むことができる。プロセスブロック５０６において、モジュール位置特定サブルーチン２０６は、２次元パワースペクトルを作成するためにエッジ強度画像を高速フーリエ変換することを含むことができる。プロセスブロック５０８において、モジュール位置特定サブルーチン２０６は、２次元パワースペクトルから１つまたは複数のピークを抽出することを含むことができ、１つまたは複数のピークは、２次元マトリックスシンボルの主軸を規定するピーク、２次元マトリックスシンボルのピッチを規定するピーク、またはそれらの組み合わせを含む。パワースペクトルにおける対称性に起因して、２次元マトリックスシンボル内のデータモジュールが等間隔に離間されたアレイに配列されており、２次元マトリックスシンボルに対して垂直な角度からスキャンされるとき、単一のピークしか抽出される必要がないことが留意されるべきである。プロセスブロック５１０において、モジュール位置特定サブルーチン２０６は、任意選択的に、ロバスト性サブルーチンを実行することを含むことができる。プロセスブロック５１２において、モジュール位置特定サブルーチン２０６は、画像ピクセルアレイ内で、１つまたは複数のモジュールの位置を特定することを含むことができる。ロバスト性サブルーチン５１０を利用する態様において、このステップは、画像ピクセルアレイ内の予測されるモジュール中心のオフセットを判定する。
【００４６】
図２０を参照すると、ロバスト性サブルーチン５１０は、以下のステップのうちの１つまたは複数を含むことができる。プロセスブロック６０２において、ロバスト性サブルーチン５１０は、プロセスブロック５０８において作成されているパワースペクトルからの１つまたは複数のピークを使用して、２次元パワースペクトルのマスクを作成することを含むことができる。プロセスブロック６０４において、ロバスト性サブルーチン５１０は、予測モジュール中心のグレースケール画像を作成するためにマスクされた２次元パワースペクトルを逆高速フーリエ変換することを含むことができる。プロセスブロック６０６において、ロバスト性サブルーチン５１０は、予測グレースケールモジュール中心を、候補領域に対して配置することと、サブピクセル補間を使用して配置を精緻化することとを含むことができる。
【００４７】
代替的な態様において、モジュール位置特定サブルーチンは、ヘシアン行列式またはガウス差のような、当業者に既知の点検出器を使用することと、２次元マトリックスの行および列が画像ピクセルアレイ内で垂直であるときは少なくとも２つの点を使用して、または、２次元マトリックスの行および列モジュールが垂直でないときは少なくとも３つの点を使用して、向き、ピッチ、およびオフセットを推定することと、ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）、幾何学的ハッシングなどのような方法を使用することと、プロセスブロック６０６または５１２を用いて継続することとを含んでもよい。向き、ピッチおよびオフセットを推定するためにより少ないモジュールが使用されるとき、配置されたモジュールの相対的な向きが向きおよびピッチの推定精度に相当の影響を及ぼすことになる。向きの精度は、モジュールの固有の測定される位置精度に起因して、モジュールが分離されているときに増大する（また、モジュールがより近いとき精度は低減する）ことを、当業者であれば認識しよう。同様に、ピッチ推定は、より大きく離れており、マトリックスの行および列におけるオフセットが分かっているモジュールからより正確に導出される。
【００４８】
特定の態様において、限定ではないが、前景モジュールと背景モジュールとの間のエッジを含む、モジュールの他の特徴が、上述した方法に使用されてもよい。
【００４９】
プロセスブロック２０８において、方法は、モジュール位置の少なくとも一部分にモデルを当てはめることを含むことができる当てはめサブルーチン２０８をさらに含むことができる。モジュール位置の少なくとも一部分にモデルを当てはめることは、当業者に既知の技法によって達成することができる。モジュール位置の少なくとも一部分にモデルを当てはめることは、プロセッサまたは補助構成要素を用いて行うことができる。モデル自体は、読み取られている２次元マトリックスシンボルのタイプに基づいて変化する可能性がある（すなわち、モジュールが矩形アレイに配列されている２次元マトリックスシンボルのモデルは、モジュールが六角形アレイに配列されている２次元マトリックスシンボルのモデルとは異なることになる）。特定の態様において、モデルは、厳密な等間隔、区分線形、透視投影、アフィンとすることができる。特定の態様において、モデルは、多項式もしくは薄板スプライン、または、マーク基板の歪曲またはマーキング不良のような他の影響を計上することができる変形可能テンプレートとすることができる。特定の態様において、モデルは、非標準的な形状（たとえば、円筒形）に対するマーキングのような影響を計上することができる幾何学的当てはめとすることができる。特定の態様において、モデルは、ラスタ内にインクの点を印刷し、結果として相関の高い行および相関の低い列、またはその逆をもたらす、連続式インクジェットプリンタのようなマーク印刷における予測される変動を計上することができる。
【００５０】
当てはめサブルーチン２０８の非限定的な一例において２次元画像を分割することができ、特徴（すなわち、白色表面上の黒色マークまたはその逆のような前景モジュール）を抽出することができる。当てはめサブルーチン２０８の実行を成功させるために、すべての特徴を抽出する必要はないことが理解されるべきである。次に、抽出された特徴のグループの中心付近の特徴が選択される。小さい領域において局所的に、モジュール（前景および背景モジュール）は、アフィンモデルと位置合わせされると仮定される。中心付近の特徴から開始して、中心から外側へと移動して特徴が選択され、これらの特徴が選択されるときにモデルが構築される。中心特徴から、近傍の特徴点が識別され、ローカルアフィンモデル（たとえば、５×５モジュールパッチ）が推定される。ローカルアフィンモデルが近傍の特徴点に当てはめられた後、すべての特徴モジュールが抽出される（前景および背景モジュール）。次のステップは、このアフィンモデルを様々な方向に移転させることを含む。理想的なモデルでは、中心特徴を［０，０］として定義することができる。上述したローカルアフィンモデルから開始して、アフィンモデルは様々な方向（たとえば、８つの異なる方向、ローカルアフィンモデルに関して東、南東、南、南西、西、北西、北、および北東）にある１つのモジュールに移転される。アフィンモデルがある方向にある１つのモジュールに移転されると、新たなアフィンモデルの初期推定値が作成される。新たなローカルアフィンモデル付近に位置する特徴点が、新たなローカルアフィンモジュールを精緻化するのに使用される。この移転は、それぞれの新たなローカルアフィンモデルにおいて新たな特徴点が識別されなくなるまで、各方向において継続される。すべての方向が完了し、それぞれの対応のすべてが識別されると、多項式モデルを使用して対応を当てはめることができる。コードに対して発生している場合がある損傷を計上するために、様々な行および／または列を推定することができることが理解されるべきである。
【００５１】
プロセスブロック２１０において、方法２００は、予測モジュール位置をもたらすモデルを推定することをさらに含むことができる。モデルを推定することは、プロセッサまたは補助構成要素を用いて行うことができる。モデルを推定することは、マトリックスコード（２次元ｘピッチ、ｘ位相、ｙピッチ、ｙ位相）アレイの無次元行／列を画像ピクセルアレイにマッピングすることを含むことができる。本開示は、デカルトまたは２次元座標には限定されず、六角座標系、極座標系、および他の座標系が企図されることが理解されるべきである。
【００５２】
予測モジュール位置は、完全な２次元マトリックスシンボルを形成するためにモジュールが位置し得る、画像ピクセルアレイに対する位置である。予測モジュール位置は整数ピクセル座標である必要はなく、そのためサブピクセル位置が明示的に企図されていることが理解されるべきである。加えて、画像ピクセルアレイに対する既知の関係を有する較正された実世界座標系のような、画像ピクセル格子への既知のマッピングを有する他の座標系が企図されている。予測モジュール位置が画像ピクセルアレイの外側に位置するとき、これらの位置に対するモジュール値は未知である可能性がある。バイナリマトリックスを復号するステップは、画像ピクセルアレイを超えて延伸するシンボルに起因する損傷に対する耐性を最大限にするために、消失訂正を使用することができる。
【００５３】
プロセスブロック２１２において、方法２００は、予測モジュール位置にある画像ピクセルアレイからモジュール値を判定することをさらに含むことができる。モジュール値を判定することは、プロセッサまたは補助構成要素を用いて行うことができる。モジュール値を判定することは、当業者に既知の技法によって達成することができる。たとえば、モジュール値は、ＩＳＯ／ＩＥＣ１６０２２：２００６，Ｓｅｃｔｉｏｎ９に示されているような、データマトリックス基準復号アルゴリズムによって判定することができる。サンプリング、またはモジュール値の測定は、２値化画像またはグレースケール画像のいずれかに対して実施されてもよい（任意選択的に画像を前置フィルタリングする）。特定の態様において、サンプリングは、予測中心に最も近い位置を有するピクセルを選択することを含むことができる。特定の態様において、サンプリングは、予測中心を包囲するピクセルから補間されたグレースケールであってもよい。モジュール値を判定することは、モジュールが前景であるかまたは背景であるか（すなわち、モジュールが暗いかまたは明るいか）を判定することを含むことができる。特定の態様において、モジュール値を判定することは、モジュール位置からの反射光の強度を測定することを含むことができ、明るいモジュールは暗いモジュールよりも多くの光を反射することになる。特定の態様において、モジュール値を判定することは、距離検知デバイスからモジュールの深さを測定することを含むことができる。
【００５４】
特定の態様において、モジュール値を判定することは、任意選択的に、当該技術分野において既知の方法を使用して２値化することを含んでもよい。たとえば、ピクセルのグレー値に対する単一の閾値を使用した２値化が使用されてもよい。別の例として、シンボルにわたる照明変動に対応するように設計された局所閾値化が使用されてもよい。特定の態様において、モジュール値は、予測モジュール位置に最も近いピクセルのバイナリ値とすることができる。
【００５５】
他の態様にいて、モジュール値を判定することは、画像ピクセルアレイおよび予測モジュール位置に基づいて値をサンプリングすることを含むことができる。たとえば、雑音を低減するために平滑化フィルタを使用するなどして、元の取得画像を処理することができる。その後、予測モジュール位置に最も近いピクセルの値をモジュール値とすることができる。代替的に、モジュール位置は、予測モジュール位置付近のピクセルの値から補間することができる。
【００５６】
モジュール値を判定した後、モジュール値（未処理の測定値またはバイナリ）をアレイ内に格納することができる。２次元マトリックスシンボルの範囲の推定４０６または推定ステップ２１０が不正確であるとき、アレイは、２次元マトリックスシンボルにおいてデータモジュール行および／または列の数よりも大きくまたは小さくなり得る。モジュール値アレイは、２次元マトリックスシンボルの少なくとも一部分、および、場合によっては、クワイエットゾーンおよび／またはシンボルの周囲の背景クラッタの一部分を含む。アレイはシンボルの主軸に沿って編成されるが、このアレイ内の実際のシンボルのオフセットおよび向きは未確定である。アレイの格納は、当業者には明白なはずであるように、１次元もしくは２次元または多次元であってもよい。
【００５７】
予測モジュール位置からモジュール値を判定するときにシンボルの範囲が未知であるとき、シンボルの正確な境界は、モジュール値を判定するときに無視される。モジュール値が決定された後、２次元マトリックスシンボルの少なくとも一部分、ならびに、場合によってクワイエットゾーンおよび／またはシンボルの周囲の背景クラッタの一部分を含む１次元または多次元アレイ内に格納することができる。アレイはシンボルの主軸に沿って編成されるが、このアレイ内の実際のシンボルのオフセットおよび向きは未確定である。アレイのサイズは約１０×１０モジュール〜約２００×２００モジュールに及ぶ可能性があり、シンボルの正確な境界が道である実施形態では行および列が追加される。これらのアレイのサイズは、６４０×４８０〜２５００×１２００ピクセルまたはそれ以上のサイズを有する場合がある画像ピクセルアレイの一般的なサイズよりもはるかに小さい。特定の態様において、部分固定パターンは、画像ピクセルアレイ内よりもモジュール値アレイ内でより容易に識別することができる。シンボルが未知である場合、モジュール値アレイ内での固定パターンの少なくとも一部分の位置特定を、シンボル間で区別するために使用することができる。
【００５８】
プロセスブロック２１４において、方法２００は、モジュール値アレイからバイナリマトリックスを抽出することをさらに含むことができる。バイナリマトリックスを抽出することは、判定されたモジュール値アレイ内で固定パターン断片を求めて探索することと、判定されたモジュール値アレイ内のシンボル位置の仮定を作成することと、任意選択的に、モジュール値を２値化することと、仮定されたまたは既知の行および列内の２次元マトリックスシンボルサイズに対応するサイズのアレイ内の仮定位置に２値化モジュール値を割り当てることによって、バイナリシンボルマトリックスを組み立てることとを含むことができる。同様に、アレイは、当業者には明白なはずであるように、１次元または多次元様式で格納されてもよい。
【００５９】
図２１に示すように、バイナリマトリックスの抽出２１４は、複数のプロセスおよび決定を含み得る。プロセスブロック７０２において、バイナリマトリックスの抽出２１４は、モジュール値アレイまたはバイナリマトリックス内で、任意選択的にクワイエットゾーンを含む固定パターン断片を求めて探索することを含むことができる。固定パターンを求めて探索すること（成功した場合、固定パターンを位置特定すること）は、当業者に既知の方法を通じて行うことができる。例としては、限定ではないが、相関、正規化相関、ブロブ解析などが挙げられる。判断ブロック７０４において、バイナリマトリックスの抽出２１４は、固定パターン断片が発見された場合はプロセスブロック７０６によって、または、固定パターン断片が見つからなかった場合はプロセスブロック７１４によって進行する。
【００６０】
固定パターン断片が見つかったとき、プロセスブロック７０６において、バイナリマトリックスの抽出２１４は、固定パターン断片を使用して１つまたは複数の仮定を作成することを含むことができる。プロセスブロック７１０において、バイナリマトリックスの抽出２１４は、仮定されたまたは既知の行および列内の２次元マトリックスシンボルサイズに対応するサイズのアレイ内の仮定位置に２値化モジュール値を割り当てることによって、バイナリシンボルマトリックスを組み立てることを含むことができる。いくつかの態様では、プロセスブロック７１２において、バイナリマトリックスの抽出２１４は、任意選択的に、組み立てられたバイナリシンボルマトリックスを優先順位付けすることを含んでもよい。優先順位付けすることは、見つかった固定パターン断片の範囲、または、２０６からの特定されたモジュール位置の範囲を、２１０からの推定モジュール位置に対して評価することを含むことができる。
【００６１】
２値化がモジュール値判定の一部分ではないいくつかの態様では、プロセスブロック７０８においては、バイナリマトリックスの抽出２１４は、任意選択的に、当該技術分野において既知の方法を使用して仮定位置からモジュール値を２値化することを含んでもよい。たとえば、ピクセルのグレー値に対する単一の閾値を使用した２値化が使用されてもよい。別の例として、シンボルにわたる照明変動に対応するように設計された局所閾値化が使用されてもよい。特定の態様において、モジュール値は、予測モジュール位置に最も近いピクセルのバイナリ値とすることができる。
【００６２】
いくつかの態様において、仮定は、モジュール値アレイ内のバイナリシンボルマトリックスの位置またはオフセット、モジュール値アレイ内のバイナリシンボルマトリックスの向き、シンボル列および行に関するバイナリシンボルマトリックスのサイズ、シンボルタイプ、鏡に映った状態、シンボルの極性、またはそれらの組み合わせを含む。いくつかの態様において、バイナリシンボルマトリックスのサイズ、鏡に映った状態、およびシンボルの極性の１つまたは複数の属性は、ユーザ入力からの予備知識または訓練に由来してもよい。
【００６３】
固定パターンの少なくとも一部分がモジュール値マトリックスまたはバイナリマトリックスにおいて検出される態様において、このとき、固定パターンの部分を使用して、思考されている復号のための１つまたは複数の仮定を作成することができる。モジュール値マトリックス内での固定パターンの検出は、各値がモジュール強度もしくは高さの測定値を表す未処理値マトリックス、または、各バイナリビットが前景もしくは背景モジュールを表すバイナリマトリックスにおいて行うことができる。検出方法は、正規化相関、バイナリビットカウント、またはそれらの組み合わせのうちの１つであってもよい。一例として、１６×１６データ領域を有する１８×１８データマトリックスシンボルがファインダーパターンの少なくとも一部分の存在によって識別されるが、クロッキングパターンは観測されない場合、以下の仮定、すなわち、シンボルがクロッキングパターンを欠く１８×１８データマトリックスであると予測し得る仮定１、シンボルが、クロッキングパターンを欠く１８×１８データマトリックスであり、仮定１から９０度回転していると予測し得る仮定２、および、シンボルが、クロッキングパターンに隣接する複数の行および列を欠く、２０×２０またはそれ以上のサイズのデータマトリックスであると予測し得る仮定３が使用され得る。特定の態様において、この例からの仮定３は、データ損失が甚大であることに起因して復号可能でない場合がある。特定の態様において、これらの仮定は優先順位付けされ、これらの仮定に対する一連の復号試行は最高優先度（最も可能性が高い）から最低優先度（最も可能性が低い）までである。特定の態様において、仮定のサブセットが試行される。特定の態様において、優先順位付けは、観測される固定パターンの範囲、観測されるデータ領域ヒストグラム、またはそれらの組み合わせに基づくことができる。
【００６４】
固定パターン断片が検出されないとき、プロセスブロック７１４において、バイナリマトリックスの抽出２１４は、固定パターン断片を使用することなく１つまたは複数の仮定を作成することを含むことができる。いくつかの態様では、プロセスブロック７１２において、バイナリマトリックスの抽出２１４は、任意選択的に、組み立てられたバイナリシンボルマトリックスを優先順位付けすることを含んでもよい。優先順位付けすることは、２０６からの特定されたモジュール位置の範囲を、２１０からの推定モジュール位置に対して評価することを含むことができる。
【００６５】
固定パターンが観測されない実施形態において、複数の仮定を作成することができる。仮定の数は、予備知識がある場合またはない場合の仮定の計算上の要求および仮定の試験の実用性に応じて変化し得る。一例として、未知のシンボルの２０×２０データ領域が観測される場合、以下の仮定、すなわち、シンボルが、特定の向きにおいてファインダーおよびクロッキングパターンを欠く２２×２２データマトリックスであると予測し得る仮定１、ならびに、シンボルが、特定の向きにおいてファインダーが損傷した２１×２１ＱＲコード（登録商標）であると予測し得る仮定２、ならびに、シンボルが、ファインダーおよびクロッキングパターンならびにいくらかの数の隣接する行および列を欠く２４×２４データマトリックスであると予測し得る仮定３が使用され得る。この例からの仮定１について、固定パターンの欠如は向きが未知であることを意味するため、データ領域の４つの個別の向きが試験されなければならない。この例からの仮定３について、なくなっている行／列は、ファインダーに最も近くに位置する２つの行／列、クロッキングパターンの最も近くに位置する２つの行／列、またはファインダーの最も近くに位置する１つの行／列およびクロッキングパターンの最も近くに位置する１つの行／列であり得る。したがって、組み合わせの最大数は、複数のシンボル、複数の向き、および複数の損傷レベルを含む仮定の範囲とともに増大する。特定の態様において、家庭に対する組み合わせの総数が、１０、２０、３０、４０、５０、１００などのような特定の数を超えた場合、仮定を用いた進行には時間がかかり過ぎて効率的に復号することができなくなり、仮定は、シンボル（すなわち、訓練）についてより多くの情報が分かっている場合にしか追求されなくなり得る。特定の態様において、これらの仮定は優先順位付けされ、これらの仮定に対する一連の復号試行は最高優先度（最も可能性が高い）から最低優先度（最も可能性が低い）までである。代替の態様においては、可能性のある仮定のサブセットしか試行されなくてもよい。特定の態様において、優先順位付けは、観測される固定パターンの範囲、観測されるデータ領域ヒストグラム、またはそれらの組み合わせに基づくことができる。
【００６６】
プロセスブロック２１６において、方法２００は、抽出されたバイナリマトリックスを復号することをさらに含むことができる。バイナリマトリックスを復号することは、プロセッサ、または、復号アルゴリズムを実行するように構成されている、バイナリマトリックス復号器のような補助構成要素を用いて行うことができる。モジュール値アレイ内の仮定モジュール位置が、モジュール値アレイ内の２次元マトリックスシンボルの位置または向きの正確な表現ではない場合、それらの仮定モジュール位置から抽出されたバイナリマトリックスを復号すると、無意味な結果がもたらされることになる。仮定モジュール位置がモジュール値アレイ内のモジュール位置の正確な表現である場合、それらの仮定モジュール位置から判定されたバイナリマトリックスを復号すると、データモジュールの十分な部分が復号に含まれている限り、そのデータセットがもたらされることになる。
【００６７】
復号ステップは、ステップ２１４からの１つまたは複数の仮定に基づいて、抽出された１つまたは複数のバイナリマトリックスに対して反復することができる。このシーケンスは、２１４における任意選択の優先順位付けステップに基づいてもよい。
【００６８】
特定の態様において、バイナリマトリックスを復号する結果として、データセットをもたらすことができる。
【００６９】
特定の態様において、バイナリマトリックスの復号によって、バイナリマトリックスが復号可能であるか否かを判定することができる。特定の態様において、復号アルゴリズムは、バイナリマトリックスがデータセットをもたらすほど十分に復号されるのではなく、むしろ、バイナリマトリックスが復号可能であるか否かが判定されるレベルまでバイナリマトリックスが復号される低レベル復号アルゴリズムとすることができる。特定の態様において、バイナリマトリックスを復号することは、２次元マトリックスシンボルを位置特定するために、バイナリマトリックス内の固定パターンが使用されなかったときに、バイナリマトリックス内の固定パターンまたは固定パターンの一部分を位置特定することと、バイナリマトリックスが復号可能であるか否かを判定するために固定パターンを利用することとを含むことができる。特定の態様において、バイナリマトリックスを復号することは、ＭａｘｉＣｏｄｅのプライマリメッセージ、ＱＲバージョン情報、または、エラー検出を利用してコードサイズおよび事実上の向きを判定するフォーマット情報ブロック、Ａｚｔｅｃ符号化情報（シンボルおよびファインダーパターン付近のデータ領域内のメッセージサイズに関する情報）などのような、可変コードデータのサブセットを位置特定することと、バイナリマトリックスが復号可能であるか否かを判定するために可変コードデータのサブセットを利用することとを含むことができる。特定の態様において、バイナリマトリックスを復号することによって、マトリックスが復号可能であるときのシンボルの位置、または、マトリックスが復号可能でないときの仮定シンボル位置のような、符号化データセット以外の情報をもたらすことができる。位置を使用して、シンボルの品質評価などを実行することができる。
【００７０】
位置特定ステップ、推定ステップ、判定ステップ、抽出ステップ、および復号ステップは、位置特定ステップ２０４において生成されるいくつかの候補領域について反復することができる。これらのステップは、一度に１つの候補領域、または、同時に複数の候補領域に対して実施することができる。
【００７１】
復号ステップは、抽出ステップ２１４において抽出されるいくつかのバイナリマトリックスについて反復することができる。反復の順序は、仮定の優先順位付けに基づくことができる。
【００７２】
特定の態様において、抽出ステップおよび復号ステップは、複数のシンボルタイプを抽出および復号することができる。たとえば、抽出ステップおよび復号ステップは、限定ではないが、データマトリックス、ＱＲコード（登録商標）、Ａｚｔｅｃコード、ＭａｘｉＣｏｄｅ、およびそれらの組み合わせを含むシンボルタイプを抽出および復号することができる。
【００７３】
特定の態様において、抽出ステップおよび復号ステップは、ユーザ定義の基準セットに従って仮定を優先順位付けまたはランク付けすることができ、優先順位付けされたまたはランク付けの高い仮定を最初に復号することができる。たとえば、ユーザはマトリックスの好ましいサイズを定義することができ、好ましいサイズを有する仮定をより高く優先順位付けまたはランク付けすることができる。
【００７４】
特定の態様において、２次元シンボルの範囲を推定することは、バイナリマトリックスが抽出された後に実施することができる。
【００７５】
特定の態様において、２次元シンボルの範囲を推定するときに、固定パターンの断片を検出することができる。
【００７６】
特定の態様において、２次元シンボルの範囲を推定することは、クワイエットゾーンを観測することを含むことができる。クワイエットゾーンは当該技術分野において、一貫した値を有するモジュールを含む領域として既知である。この一貫性は、照明変動などを計上するための変動を含むことができる。特定の態様において、観測されるクワイエットゾーンは、特定のシンボルの仕様に一致しない変動を含む場合がある（たとえば、特定のシンボルにおける３つよりも多いまたは少ないモジュールを有するクワイエットゾーン）。特定の態様において、観測されるクワイエットゾーンは、偶発的である変動を含む場合がある（たとえば、シンボルがラベルの縁に印刷される）。特定の態様において、観測されるクワイエットゾーンは、ファインダーパターンまたはデータ領域のようなシンボルの部分をなくす損傷または照明不足に起因する変動を含む場合がある。
【００７７】
特定の態様において、モジュールは損傷している可能性があり、バイナリマトリックスの復号２１６は、エラー訂正機能を改善するために、リード−ソロモンエラー訂正のように、エラー訂正に消失を使用することを含むことができる。
【００７８】
システムおよび方法は、訓練によって、観測されるシンボルの知識を利用することができる。「訓練」は、ロバスト性および／または実行速度を改善するために、観測されるシンボルの属性に関する予備知識を用いて読み取りアルゴリズムを構成する方法である。属性は、限定ではないが、シンボル種類、極性、エラー訂正タイプ、行／列の数、ピクセル単位のモジュールサイズ、鏡に映った状態、シンボルの向きなどを含み得る。
【００７９】
アルゴリズムは、訓練された属性を利用するように構築することができる。たとえば、マトリックス内の行および列の数を知ることによって、（たとえば、データマトリックス内のクロッキングパターンを使用することによって）行および列の数を判定するのが困難になり得るダイレクトパーツマーク（ＤＰＭ）における復号歩留まりを改善することができる。行および列の数の判定においてエラーを回避することによって、復号ロバスト性が改善され、復号に成功するまでの全体的な実行時間が低減されることが多い。
【００８０】
同様に、他の先験的属性が、復号アルゴリズムの他の要素に影響を及ぼし得る。たとえば、予測モジュールサイズは、いずれのスケールでシンボルを求めて探索すべきかに影響を及ぼし得、画像品質を改善する（サイズを低減する、コントラストを改善する、テクスチャまたは雑音を除去するなど）ために使用される画像フィルタリングカーネルサイズを判定することができる。
【００８１】
プロセッサまたはアルゴリズムが、シンボルがとると予測されるサイズおよび形状のようなシンボルの知識を有する場合、位置特定および推定をより効率的に達成することができる。たとえば、システムまたは方法が８×８格子を求めて探索するように訓練されている場合、位置特定は、８×８モジュール以下をカバーすることができる領域をより特定的に探すことができる。同様に、推定は、８×８モジュールよりも大幅に大きくない空間のみをサンプリングし得る。
【００８２】
特定の態様において、２次元シンボルの範囲を推定することは、訓練またはユーザによる入力によって測定されるもののような、先験的情報を使用することを含むことができる。
【００８３】
方法は、エラー訂正ルーチンを使用してバイナリマトリックス内のエラーを訂正することをさらに含むことができる。エラー訂正ルーチンは、当業者に既知の方法によって実施することができる。たとえば、エラー訂正ルーチンは、リード−ソロモン、従来のコードなどを含む線形ブロックコードのようなブロックコードを含むことができる。
【００８４】
方法は、２次元マトリックスシンボルまたは２次元マトリックスシンボルに近い箇所を照明することをさらに含むことができる。照明することは、照明器によって実施することができる。照明することによって、画像ピクセルアレイ内に照明特徴をもたらすことができる。照明されると、位置特定ステップは、照明または画像ピクセルアレイ内の照明特徴に少なくとも部分的に基づき得る。
【００８５】
特定の態様において、方法は、１つの画像ピクセルアレイ内の１つまたは複数の照明特徴を位置特定することと、たとえば、両方の画像ピクセルアレイ内で識別することができるランドマークに対する１つまたは複数の照明特徴の位置を判定することによって、別個の画像ピクセルアレイ内の１つまたは複数の照明特徴の位置を推測することとを含むことができる。これによって、復号されるべき画像が露出される露出の間に照明が機能停止されることが可能になる。代替的に、１つまたは複数の照明特徴の位置は、たとえば、照明特徴が画像ピクセルアレイ内で再現性良く現れる場所（たとえば、画像の中心、製造時のメモリ内に格納されているときに測定される位置など）を判定することによって、画像を取得する前に知ることができる。
【００８６】
特定の態様において、方法は、プロセッサに対する単一のコマンドまたは複数のコマンドによって実行することができる。単一のコマンドまたは複数のコマンドは、ユーザによって提供することができ、または、プロセッサもしくは補助構成要素によって提供されるよう自動的にトリガすることができる。
【００８７】
特定の態様において、ファインダーパターンの一部分が紙の右辺に沿っており、暗い背景から区別することができないため、固定パターンは不完全であり得る。特定の態様において、ファインダーパターンの一部分が、特にシンボルの左上部分において単純に欠如しているため、固定パターンは不完全であり得る。
【００８８】
本発明が特定の実施形態および実施例に関連して上記で説明されてきたが、本発明は必ずしもそのようには限定されないこと、ならびに、多数の他の実施形態、実施例、使途、修正、ならびに、当該実施形態、実施例および使途からの展開が本明細書に添付の特許値請求の範囲によって包含されることが意図されることが、当業者には理解されよう。本明細書に記載されている各特許文献および刊行物の開示全体が、そのような各特許文献および刊行物が本明細書に参照により個々に組み込まれているように、参照により組み込まれる。
【符号の説明】
【００８９】
３０  機械視覚システム
３２  画像
３４  物体
３６  機械可読シンボル
３８  コンベヤ
４０  視野
４２  イメージングデバイス
４４  画像取得ソフトウェア
４６  プロセッサ
４８  視覚センサ
５０  コンピューティングデバイス
５２  メモリ媒体
５４  通信ライン
５６、７０  ２次元マトリックスシンボル
５８  データ領域
６０  シンボルモジュール
６２  ファインダーパターン
６４  クワイエットゾーン
６６  タイミングパターン
７２  位置合わせパターン
７４  シンボル位置特定アルゴリズム
７８  シンボル
８０  画像ピクセルアレイ
８２  バージョン情報領域
８４  フォーマット情報領域
８６  方向パターン
８８  モードメッセージ
９０  データ層
１００  モジュール測定アルゴリズム
１０２  マトリックス復号アルゴリズム
１０４  トリガ入力
【図１】
2016105276.tif 000003
【図２】
2016105276.tif 000004
【図３】
2016105276.tif 000005
【図４】
2016105276.tif 000006
【図５】
2016105276.tif 000007
【図６】
2016105276.tif 000008
【図７】
2016105276.tif 000009
【図８】
2016105276.tif 000010
【図９】
2016105276.tif 000011
【図１０】
2016105276.tif 000012
【図１１】
2016105276.tif 000013
【図１２】
2016105276.tif 000014
【図１３】
2016105276.tif 000015
【図１４】
2016105276.tif 000016
【図１５】
2016105276.tif 000017
【図１６】
2016105276.tif 000018
【図１７】
2016105276.tif 000019
【図１８】
2016105276.tif 000020
【図１９】
2016105276.tif 000021
【図２０】
2016105276.tif 000022
【図２１】
2016105276.tif 000023
【外国語明細書】
2016105276.tif 000024
2016105276.tif 000025
2016105276.tif 000026
2016105276.tif 000027
2016105276.tif 000028
2016105276.tif 000029
2016105276.tif 000030
2016105276.tif 000031
2016105276.tif 000032
2016105276.tif 000033
2016105276.tif 000034
2016105276.tif 000035
2016105276.tif 000036
2016105276.tif 000037
2016105276.tif 000038
2016105276.tif 000039
2016105276.tif 000040
2016105276.tif 000041
2016105276.tif 000042
2016105276.tif 000043
2016105276.tif 000044
2016105276.tif 000045
2016105276.tif 000046
2016105276.tif 000047
2016105276.tif 000048
2016105276.tif 000049
2016105276.tif 000050
2016105276.tif 000051
2016105276.tif 000052
2016105276.tif 000053
2016105276.tif 000054
2016105276.tif 000055
2016105276.tif 000056
【選択図】図１
【図１】
2016105276.tif 000057
【図２】
2016105276.tif 000058
【図３】
2016105276.tif 000059
【図４】
2016105276.tif 000060
【図５】
2016105276.tif 000061
【図６】
2016105276.tif 000062
【図７】
2016105276.tif 000063
【図８】
2016105276.tif 000064
【図９】
2016105276.tif 000065
【図１０】
2016105276.tif 000066
【図１１】
2016105276.tif 000067
【図１２】
2016105276.tif 000068
【図１３】
2016105276.tif 000069
【図１４】
2016105276.tif 000070
【図１５】
2016105276.tif 000071
【図１６】
2016105276.tif 000072
【図１７】
2016105276.tif 000073
【図１８】
2016105276.tif 000074
【図１９】
2016105276.tif 000075
【図２０】
2016105276.tif 000076
【図２１】
2016105276.tif 000077