(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-30
(45)【発行日】2024-09-09
(54)【発明の名称】幾何学的に歪んだQRコード(登録商標)を補正する方法
(51)【国際特許分類】
G06T 5/80 20240101AFI20240902BHJP
G06K 7/14 20060101ALI20240902BHJP
【FI】
G06T5/80
G06K7/14 017
G06K7/14 060
(21)【出願番号】P 2021573867
(86)(22)【出願日】2020-06-02
(86)【国際出願番号】 FI2020050378
(87)【国際公開番号】W WO2020249856
(87)【国際公開日】2020-12-17
【審査請求日】2023-05-23
(32)【優先日】2019-06-14
(33)【優先権主張国・地域又は機関】FI
(73)【特許権者】
【識別番号】524249105
【氏名又は名称】ピー2 ホールディング オーワイ
(74)【代理人】
【識別番号】100097456
【氏名又は名称】石川 徹
(72)【発明者】
【氏名】ケイジョ モットネン
【審査官】三沢 岳志
(56)【参考文献】
【文献】米国特許出願公開第2016/0104022(US,A1)
【文献】Gonzalo J. GARATEGUY et al.,“QR Images: Optimized Image Embedding in QR Codes”,IEEE Transactions on Image Processing,IEEE,2014年05月02日,Vol. 23, No. 7,pp.2842-2853,DOI: 10.1109/TIP.2014.2321501
【文献】齋藤 圭輔ほか,“QRコードの誤り訂正能力について--限界距離以上の誤り訂正、および消失同時誤り訂正によるデータ復元について”,電子情報通信学会技術研究報告 = IEICE technical report : 信学技報,2011年01月,第110巻, 第375号,pp.45-50
【文献】Zhao-lai LIAO et al.,“A method of image analysis for QR code recognition”,2010 International Conference on Intelligent Computing and Integrated Systems,2010年10月,pp.250-253,DOI: 10.1109/ICISS.2010.5657187
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/80
G06K 7/14
(57)【特許請求の範囲】
【請求項1】
コンピュータ手段により、モジュール構造を含む幾何学的に歪んだQRコード
(登録商標)(40)の画像を補正し、かつ解釈するための方法であって、前記方法が、
入力として、幾何学的に歪んだQRコード
(登録商標)(40)および前記QRコード
(登録商標)(40)の3つの外角の位置座標を提供すること、
オーバーサンプリング行列を形成するために各モジュール(41)を平均F×F個のサンプル要素(42)に分割することによって、前記QRコード
(登録商標)(40)のモジュールをオーバーサンプリングすることであって、Fが1より大きい整数である、前記オーバーサンプリングすること、
前記オーバーサンプリング行列内の各サンプル要素(42)の強度を決定することであって、前記オーバーサンプリングされた行列の前記サンプル要素
(42)が、オーバーサンプリングされた座標を有する、前記決定すること、を含み、
前記方法が、
前記オーバーサンプリング行列の平均強度を計算すること、
前記オーバーサンプリング行列内の各サンプル要素(42)の強度から前記平均強度を減算すること、
各サンプル要素(42)の平均値を決定するために強度値をフィルタリングすること、
各モジュール(41)の中心に対応するサンプル要素(42)の位置を決定し、以下のように再帰を使用することによって、各モジュール(41)の前記中心に対応するサンプル要素(42)の強度に基づいて各モジュール(41)の色を決定すること、
前記モジュール(41)のデータ構造を含む待ち行列Qを形成することであって、データ構造が、前記モジュール(41)の中心の位置、前記モジュール(41)の色、および前記QRコード
(登録商標)(40)内のモジュール(41)の位置に関する情報を含む、前記形成すること、
中心位置および色が未知である前記待ち行列Q内の第1のデータ構造である、モジュール(x,y)のデータ構造について、前記モジュール(x,y)(45)および8つの隣接モジュールの第1のリス
トを作成すること、
中心が既知である隣接モジュールに基づいて、前記モジュール(x,y)(45)の中心の推定オーバーサンプリング座標(Ex,Ey)(46)に対応するサンプル要素
(42)を計算すること、
所定数のオフセットサンプル要素候補OCを定義することであって、前記オフセットサンプル要素候補OCが、(dx,dy)であり、dxおよびdyが、集合{-1,0,+1}に属する、前記定義すること、および
その中心が未知のモジュールについて、色の組み合わせの仮定の集合を提供すること、並びに
各オフセットサンプル要素候補について、および各色の組み合わせの仮定について、
Eの周囲の前記オーバーサンプリング行列および隣接モジュールの対応する位置からの各前記オフセットサンプル要素候補の強度を読み取ることによって、前記オフセットサンプル要素候補OCの強度を含む第2のリストを提供するステップであって、Eが、前記モジュール(x,y)(45)の中心の前記推定オーバーサンプリング座標(Ex,Ey)(46)である、前記提供するステップ、
前記第2のリスト内のサンプル要素
(42)の前記強度に対応する9つの色仮説(CH)の第3のリストを提供し、前記第2のリストおよび第3のリストを相関させ、前記モジュール(x,y)(45)の前記中心の最高相関値を有する前記オフセットサンプル要素候補に対応するサンプル要素
(42)を決定するための前記相関結果を記憶するステップ、および
前記オーバーサンプリング行列から、最高相関値を有する前記オフセットサンプル要素候補の強度値を選ぶことによって、前記モジュール(x,y)(45)の前記色を決定するステップ、を実施すること、をさらに含むことを特徴とする、前記方法。
【請求項2】
前記方法が、
前記モジュール(x,y)(45)の前記決定された中心および色情報によって、前記モジュール(x,y)(45)の前記データ構造を更新すること、及び
前記第1のリスト内のモジュール(x,y)(45)座標を待ち行列Qに付加すること、をさらに含む、請求項1に記載の方法。
【請求項3】
前記方法が、前記QRコード
(登録商標)(40)の周囲のマージンMをオーバーサンプリングすることをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記マージンMのオーバーサンプリングが、前記オーバーサンプリング行列の一部について、前記マージンMの各モジュールをF×F個のサンプル要素
(42)に分割することによって実施される、請求項3に記載の方法。
【請求項5】
前記方法が、
前記QRコード
(登録商標)(40)の情報内容を定義するためのモジュール(41)のデータ構造から色情報を読み取ることをさらに含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
Fが、4以上の整数である、請求項2~5のいずれか一項に記載の方法。
【請求項7】
マージンMが、前記QRコード
(登録商標)(40)上の処理されるモジュールの数を決定する、請求項3~6のいずれか一項に記載の方法。
【請求項8】
前記第2のリストおよび前記第3のリストを相関させるときに、前記
第2のリストおよび前記第3のリスト内の前記
サンプル要素
(42)が乗算され、加算される、請求項1または2に記載の方法。
【請求項9】
非一時的コンピュータ可読媒体(14)に具体化されたコンピュータプログラ
ムであって、前記コンピュータプログラ
ムが、コンピュータ命令を含み、前記コンピュータ命令が、システムまたは装置の少なくとも1つのプロセッサ(12)で実行されたときに、請求項1~8のいずれか一項に記載の方法を実施するように構成されている、前記コンピュータプログラ
ム。
【請求項10】
請求項1~8のいずれか一項に記載の方法を実施するための手段を備える、幾何学的に歪んだQRコード
(登録商標)(40)を補正するためのデバイス(10)。
【請求項11】
前記デバイス(10)が、前記幾何学的に歪んだQRコード
(登録商標)(40)の画像を取り込むための画像センサ(11)、または前記幾何学的に歪んだQRコード
(登録商標)(40)の画像データを受信するための手段(16)を備える、請求項10に記載のデバイス(10)。
【請求項12】
前記デバイス(10)が、携帯電話、モバイルコンピュータ、タブレットコンピュータまたはQRコード
(登録商標)スキャナである、請求項10または11に記載のデバイス(10)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、幾何学的に歪んだ、コードを読み取って解釈するための画像のクイックレスポンスコード、QRコード(登録商標)を補正するための方法に関する。
【0002】
本発明はまた、装置に本方法を実行させるカメラシステムおよびコンピュータプログラム製品にも関する。
【背景技術】
【0003】
背景
多くの環境および場合において、クイックレスポンスコード、QRコード(登録商標)が意図せずに歪んでいる、すなわち、反っているまたはねじれている状況が存在する。それは、例えば、凹状または凸状表面上に配置され得るか、またはコードの下にハンプまたはピットが存在し得、これは、QRコード(登録商標)のパターンに歪みを生じさせる。歪んだQRコード(登録商標)は、読み取ることが困難な場合があるか、さらには不可能な場合がある。
【0004】
今日では、表面歪み角度が既知であるとき、または表面歪み角度がQRコード(登録商標)の取り込まれた画像から決定され得る場合、読み取りのために凸状または湾曲した表面または基板上に配置されている撮像されたQRコード(登録商標)を補正することができる方法が存在する。しかしながら、QRコード(登録商標)は、1つよりも多い歪み、および/または凸状もしくは湾曲した表面によって引き起こされる歪みとは異なるタイプの歪みを有し得る。
【0005】
したがって、撮像された、凸状または湾曲した基板によって引き起こされる歪みを有するQRコード(登録商標)、またはランダムまたは1つよりも多いタイプの歪みを有するQRコード(登録商標)を補正することができる方法の必要性が存在する。
【発明の概要】
【0006】
ここで、改善された方法および方法を実装する技術的設備が発明されている。本発明の様々な態様は、独立請求項に記載されていることによって特徴付けられる、方法、デバイス、および内部に記憶されたコンピュータプログラムを含むコンピュータ可読媒体を含む。本発明の様々な実施形態は、従属請求項に開示される。
【0007】
本発明の第1の態様によると、コンピュータ手段により、モジュール構造を含む、幾何学的に歪んだQRコード(登録商標)(40)を補正するための方法であって、本方法は、入力として、幾何学的に歪んだQRコード(登録商標)(40)及びQRコード(登録商標)(40)の3つの外角の位置座標を提供すること、オーバーサンプリング行列を形成するために各モジュール(41)を平均F×F個のサンプル要素(42)に分割することによってQRコード(登録商標)(40)のモジュールをオーバーサンプリングすることであって、Fが1より大きい整数である、前記オーバーサンプリングすること、オーバーサンプリング行列内の各サンプル要素(42)の強度を決定すること、オーバーサンプリング行列の平均強度を計算すること、オーバーサンプリング行列内の各サンプル要素(42)の強度から平均強度を減算すること、各サンプル要素(42)の平均値を決定するために強度値をフィルタリングすること、および各モジュール(41)の中心に対応するサンプル要素(42)の位置を決定すること、反復を使用することによって、各モジュール(41)の中心に対応するサンプル要素(42)の強度に基づいて、各モジュール(41)の色を決定すること、モジュール(41)のデータ構造を含む待ち行列Qを形成することであって、データ構造が、モジュール(41)の中心の位置、モジュール(41)の色、およびQRコード(登録商標)(40)内のモジュールの位置に関する情報を含む、前記形成すること、待ち行列Q内の第1のデータ構造であり、かつ中心位置および色が未知であるモジュール(x,y)のデータ構造について、モジュール(x,y)(45)およびその8つの隣接モジュールのx、y座標の第1のリストを作成すること、その中心が既知の隣接モジュールに基づいて、モジュール(x,y)(45)の推定中心座標(Ex,Ey)(46)に対応するサンプル要素を計算すること、所定数のオフセットサンプル要素候補OCを定義することであって、前記オフセットサンプル要素候補OCが、(dx,dy)であり、dx及びdyが、集合{-1,0,+1}に属する、前記定義すること、その中心が未知のモジュールについて、色の組み合わせの仮定の集合を提供すること、並びに各オフセットサンプル要素候補について、および各色の組み合わせの仮定について、座標(E+OC×F)におけるオーバーサンプリング行列からの前記各オフセットサンプル要素候補の強度を読み取ることによって、前記オフセットサンプル要素候補OCの強度を含む第2のリストを提供するステップであって、Eが推定中心座標(Ex,Ey)(46)である、前記提供するステップ、第2のリスト内のサンプル要素の強度に対応する9つの色仮説(CH)の第3のリストを提供し、第2のリストおよび第3のリストを相関させ、モジュール(x,y)(45)の中心の最高相関値を有するオフセットサンプル要素候補に対応するサンプル要素を決定するための相関結果を記憶するステップ、およびオーバーサンプリング行列から、最高相関値を有するオフセットサンプル要素候補の強度値を選ぶことによって、モジュール(x,y)(45)の色を決定するステップを実施することを含む。
【0009】
一例によると、本方法は、モジュール(x,y)の決定された中心および色情報によって、モジュール(x,y)のデータ構造を更新することと、LNXYリスト内のモジュール(x,y)座標を待ち行列Qに付加することと、をさらに含む。
【0010】
一例によると、オーバーサンプリングは、オーバーサンプリング行列を形成するために、QRコード(登録商標)の各モジュールをF×F個のサンプル要素に分割することによって実施される。
【0011】
一例によると、本方法は、QRコード(登録商標)の周囲のマージンをオーバーサンプリングすることをさらに含む。
【0012】
一例によると、マージンのオーバーサンプリングは、オーバーサンプリング行列の一部について、マージンの各モジュールをF×F個のサンプル要素に分割することによって実施される。
【0013】
一例によると、本方法は、QRコード(登録商標)の情報内容を定義するためのモジュールのデータ構造から色情報を読み取ることをさらに含む。
【0014】
一例によると、Fは、4以上の整数である。
【0015】
一例によると、マージンMは、QRコード(登録商標)上の処理されるモジュールの数を決定する。
【0016】
一例によると、色の組み合わせの仮定は、未知の中心を有するモジュールの全ての可能な色の組み合わせを含む。
【0017】
一例によると、LSCリストおよびLCHリストを相関させるときに、リスト内の要素が乗算され、加算される。
【0018】
本発明の第2の態様によると、非一時的コンピュータ可読媒体に具体化されたコンピュータプログラム製品が提供され、コンピュータプログラム製品が、コンピュータ命令を含み、コンピュータ命令が、システムまたは装置の少なくとも1つのプロセッサで実行されたときに、幾何学的に歪んだ、モジュール構造を含むQRコード(登録商標)の補正方法を実施するように構成されており、ここで補正方法は、本発明の第1の態様に対応する。
【0020】
一例によると、本方法は、モジュール(x,y)の決定された中心および色情報によって、モジュール(x,y)のデータ構造を更新することと、第1のリスト内のモジュール(x,y)座標を待ち行列Qに付加することと、をさらに含む。
一例によると、オーバーサンプリングは、オーバーサンプリング行列を形成するために、QRコード(登録商標)の各モジュールをF×F個のサンプル要素に分割することによって実施される。
一例によると、本方法は、QRコード(登録商標)の周囲のマージンをオーバーサンプリングすることをさらに含む。
一例によると、マージンのオーバーサンプリングは、オーバーサンプリング行列の一部について、マージンの各モジュールをF×F個のサンプル要素に分割することによって実施される。
一例によると、本方法は、QRコード(登録商標)の情報内容を定義するためのモジュールのデータ構造から色情報を読み取ることをさらに含む。
一例によると、Fは、4以上の整数である。
一例によると、マージンMは、QRコード(登録商標)上の処理されるモジュールの数を決定する。
一例によると、色の組み合わせの仮定は、未知の中心を有するモジュールの全ての可能な色の組み合わせを含む。
一例によると、第2のリストおよび第3のリストを相関させるときに、リスト内の要素が乗算され、加算される。
本発明の第3の態様によると、幾何学的に歪んだ、モジュール構造を含むQRコード(登録商標)の補正方法を実施するための手段を含むデバイスが提供され、ここで補正方法は、本発明の第1の態様に対応する。
一例によると、本方法は、モジュール(x,y)の決定された中心および色情報によって、モジュール(x,y)のデータ構造を更新することと、第1のリスト内のモジュール(x,y)座標を待ち行列Qに付加することと、をさらに含む。
【0021】
一例によると、オーバーサンプリングは、オーバーサンプリング行列を形成するために、QRコード(登録商標)の各モジュールをF×F個のサンプル要素に分割することによって実施される。
【0022】
一例によると、本方法は、QRコード(登録商標)の周囲のマージンをオーバーサンプリングすることをさらに含む。
【0023】
一例によると、マージンのオーバーサンプリングは、オーバーサンプリング行列の一部について、マージンの各モジュールをF×F個のサンプル要素に分割することによって実施される。
【0024】
一例によると、本方法は、QRコード(登録商標)の情報内容を定義するためのモジュールのデータ構造から色情報を読み取ることをさらに含む。
【0025】
一例によると、Fは、4以上の整数である。
【0026】
一例によると、マージンMは、QRコード(登録商標)上の処理されるモジュールの数を決定する。
【0038】
一例によると、色の組み合わせの仮定は、未知の中心を有するモジュールの全ての可能な色の組み合わせを含む。
【0039】
一例によると、第2のリストおよび第3のリストを相関させるときに、リスト内の要素が乗算され、加算される。
【0040】
一例によると、本デバイスは、幾何学的に歪んだQRコード(登録商標)の画像を取り込むための画像センサを備える。
【0041】
一例によると、本デバイスは、幾何学的に歪んだQRコード(登録商標)の画像データを受信するための手段を備える。
【0042】
一例によると、本デバイスは、携帯電話、モバイルコンピュータ、タブレットコンピュータ、またはQRコード(登録商標)スキャナである。
【図面の簡単な説明】
【0043】
以下では、添付の図面を参照して、様々な例示的な実施形態がより詳細に説明されることになる。
【0044】
【
図1】例として、歪んだQRコード
(登録商標)を補正するために使用されるのに適したデバイスを示す。
【
図2a】例として、幾何学的に歪んだQRコード
(登録商標)の画像を示す。
【
図2b】例として、
図2aの幾何学的に歪んだQRコード
(登録商標)のモジュールを示す。
【
図3a】幾何学的に歪んでいないQRコード
(登録商標)のモジュールを示す。
【
図3b-f】例として、幾何学的に歪んだQRコード
(登録商標)のモジュールを示す。
【
図4a】例として、QRコード
(登録商標)画像上に配置されたモジュールと共に示される、幾何学的に歪んだQRコード
(登録商標)の画像を示す。
【
図4b】例として、
図4aに示されるモジュールをオーバーサンプリングした後の、オーバーサンプリング行列の1つのモジュールおよびモジュールのサンプル要素を示す。
【
図4c】例として、平均強度の減算後の
図4bに示されるモジュールのサンプル要素の平均強度を示す。
【
図4d】例として、読み取りのために補正されるように配置されたQRコード
(登録商標)の各モジュール内で発生する極大値および極小値を決定するためのオーバーサンプリング行列上の2つのフィルタ位置を示す。
【
図4e】例として、データ構造が試験下にあるモジュール(x,y)、ならびに色および中心位置が既知であるか、すなわち、モジュールAであるか、または未知であるか、すなわち、モジュールBであるかに関する情報を含むその隣接モジュールを示す。
【
図4f】例として、推定された中心(Ex,Ey)および隣接モジュール内の対応する場所の周囲にオフセットサンプル要素候補を有する、モジュール(x,y)の推定された中心(Ex,Ey)を示す。
【
図5】例として、幾何学的に歪んだQRコード
(登録商標)を補正する方法のステップを示す。
【発明を実施するための形態】
【0045】
詳細な説明
本発明は、本発明の例示的な実施形態による方法に関し、本方法では、幾何学的に歪んだクイックレスポンス(QR)コードの画像データが、補正されるように配置される。画像データは、歪んだ、すなわち、変形したQRコード(登録商標)の画像を含む。したがって、デバイスは、QRコード(登録商標)を読み取り、解釈することができない場合があるが、画像内のQRコード(登録商標)は、QRコード(登録商標)の情報を読み取り可能にするために、補正、すなわち、歪み解消されるべきである。「クイックレスポンスコード、すなわち、QRコード(登録商標)」という用語は、行列バーコードまたは二次元バーのタイプの形態を有するコードである。QRコード(登録商標)は、黒色正方形、すなわち、正方形グリッド内に配置されたモジュール、すなわち、白色背景上のモジュールグリッドから構成され、QRコード(登録商標)は、撮像デバイスによって読み取られ、QRコード(登録商標)の情報が解釈され得るように、データ処理デバイスによって処理され得る。「撮像デバイス」という用語は、この文脈では、画像および/またはビデオ、すなわち、画像データを取り込むのに適した任意の画像センサ、例えば、白黒もしくはカラーカメラ、通常のもしくはスマートカメラ、または任意の好適なカメラを含む。加えて、「画像」という用語は、静止画像を含むのみならず、動的画像、例えば、ビデオのフレームも含む。
【0046】
本方法では、幾何学的に歪んだクイックレスポンス(QR)コードの画像データが提供される。画像データは、例えば、撮像デバイス、別のデバイス、デバイスのメモリ、インターネット、またはクラウドサービスから受信されてもよく、または画像データは、デバイス自体の撮像デバイスによって取り込まれ得る。次に、QRコード(登録商標)のモジュール、およびQRコード(登録商標)の周囲のマージンエリア、すなわち、QRコード(登録商標)の周囲のフレームエリアを含む、QRコード(登録商標)エリアが、オーバーサンプリング行列を作成するために、オーバーサンプリングされる。マージンの幅は、例えば、QRコード(登録商標)の2つのモジュールの幅に対応し得る。次いで、このオーバーサンプリング行列の平均、すなわち、平均強度が決定され、オーバーサンプリング行列のサンプル要素の強度から減算され、その結果、より暗いおよび黒色のサンプル要素が負の値を有し、白色またはより明るいサンプル要素に対応するサンプル要素が正の値を有する。これらの減算されたサンプル値は、次いで、各モジュールのサンプル要素位置内で発生する極大値および極小値を示す情報を決定するために、線形フィルタリングされる。この後、モジュールの位置およびそれらの中心点は、少なくとも線形フィルタリングされたサンプル値、モジュールの極大および極小のサンプル値の位置、ならびに/または隣接モジュールの既知のもしくは以前に決定された色および中心点位置情報を使用して追跡され、次いで、モジュールの中心点の色が、モジュールの色を決定するためにオーバーサンプリング行列から読み取られる。決定された、すなわち、追跡によって計算された情報、すなわち、モジュール位置情報およびモジュールの色情報は、歪んでいないQRコード(登録商標)から読み取られ得るように、補正されたQRコード(登録商標)から読み取られ得る。
【0047】
本方法は、例えば、幾何学的に歪んだQRコード(登録商標)を補正するための画像データを処理するのに適したデバイス、またはデバイスを備えるシステムによって実施され得る。「処理」という用語は、この文脈では、任意のタイプの処理、および/または分析、および/または計算、および/または決定動作を指し得る。処理は、例えば、1つ以上のデジタル信号処理アルゴリズムによる画像データの信号処理を指し得る。本デバイスは、画像データを処理するための手段を含み得、例えば、該デバイスは、画像データのデジタル信号処理のための処理回路および電子機器、メモリ内のコンピュータプログラムコード、およびコンピュータプログラムコードを実行すると、該デバイスに、解釈されるように構成されたQRコード(登録商標)の画像データの信号処理を実行させる、プロセッサを備え得る。データ処理デバイスは、該デバイスの統合された部分であってもよく、または別個のデバイスであってもよい。加えて、該デバイスは、撮像手段、例えば、少なくとも1つの撮像デバイス、または他のデバイス、データベースもしくはインターネット、クラウドなどから画像データを受信するための手段を含み得る。さらに、該デバイスは、補正されたQRコード(登録商標)によって決定された措置を実施し、例えば、訪問されるウェブサイトまたは実施されるアプリケーションに関連する手段を含み得る。
【0048】
本発明の例示的な実施形態による方法、すなわち、歪んだQRコード(登録商標)画像データの補正ステップを実施するデバイスは、例えば、任意の携帯型電子デバイス、例えば、スマートデバイス、携帯電話、スマートカメラ、モバイルコンピュータ、モバイルコラボレーションデバイス、モバイルインターネットデバイス、スマートフォン、タブレットコンピュータ、タブレットパーソナルコンピュータ(PC)、パーソナルデジタルアシスタント、ハンドヘルドゲームコンソール、QRコード(登録商標)スキャナ、ポータブルメディアプレーヤ、デジタルビデオカメラ(DVCもしくはデジタルカムコーダ)、ページャ、セルラ電子デバイス、非セルラ電子デバイス、またはパーソナルナビゲーションデバイス(PND)とすることができる。しかしながら、該デバイスはモバイルデバイスではない可能性もあり、例示的な実施形態による、歪んだQRコード(登録商標)の画像データを補正するための処理手段を備える任意の他のデバイスであってもよい。本方法は、例えば、クラウドサービスなどで実施され得ることも可能である。
【0049】
図1は、例示的な実施形態によるデバイス10を示す。この実施形態では、デバイス10は、プロセッサ12、メモリ14、通信インターフェース16、ユーザインターフェース18、およびカメラ11などの画像取り込みモジュールを備えるか、または別様にそれらと通信する。プロセッサ12は、いくつかの異なる方式で具体化され得る。プロセッサ12は、例えば、コプロセッサ、マイクロプロセッサ、コントローラ、デジタル信号プロセッサ(DSP)、付随するDSPを有するか、もしくは有していない処理要素などの、様々なハードウェア処理手段の1つ以上として具体化され得る。プロセッサ12は、独立して実施するように構成された1つ以上の処理コアを含み得る。プロセッサ12は、メモリ14に記憶されたか、またはプロセッサ12に別様にアクセス可能である命令を実行するように構成され得る。プロセッサ12は、本明細書に説明されるアルゴリズムおよび/または動作を実施するための命令によるプロセッサのさらなる構成によって、本発明の実施形態を用いるように構成された特定のデバイスのプロセッサであり得ることも可能である。
【0050】
画像取り込みモジュール11は、デバイス10の任意選択の部分である。画像取り込みモジュール11は、例えば、カメラ、ビデオカメラ、またはQRコード(登録商標)の画像データを取り込むのに適した任意の他の画像取り込み手段とすることができる。画像取り込みモジュール11は、プロセッサ12と通信している。このように、画像取り込みモジュール11は、全てのハードウェア、例えば、レンズもしくは他の光学構成要素、画像センサ、画像信号プロセッサ、およびデジタル画像ファイル、すなわち、取り込まれた画像から画像データを作成するために必要なソフトウェアを含み得る。一実施形態では、画像取り込みモジュール11は、画像データを処理するためのコプロセッサなどの処理手段をさらに備え得る。
【0051】
メモリ14は、例えば、1つ以上の揮発性および/または不揮発性メモリを含み得、すなわち、メモリ14は、電子記憶デバイス、例えば、プロセッサ12によって検索され得るデータを記憶するように構成されたゲートを含むコンピュータ可読記憶媒体であってもよい。メモリ14は、本発明の例示的な実施形態に従って、デバイス10が様々な機能を実行することを可能にするための情報、データ、画像データ、コンテンツ、アプリケーション、命令などを記憶するように構成され得る。追加的にまたは代替的に、メモリ14は、プロセッサ12による実行のための命令を記憶するように構成され得る。
【0052】
通信モジュール16は、ネットワーク、および/または装置10と通信する任意の他のデバイスもしくはモジュールもしくはカメラからデータを受信および/またはそれらに送信するように構成されている、ハードウェア、またはハードウェアおよびソフトウェアの組み合わせのいずれかに具体化されたデバイスまたは回路などの任意の手段であり得る。通信モジュール16は、例えば、無線通信ネットワークとの通信を可能にするための少なくとも1つのアンテナおよびサポートハードウェアおよび/もしくはソフトウェア、またはケーブル、デジタル加入者線(DSL)、ユニバーサルシリアルバス(USB)などを介した通信を可能にするためのハードウェア/ソフトウェアを含み得る。
【0053】
デバイス10のユーザインターフェース18はまた、デバイス10の任意選択の部分であり得、ユーザに出力を提供し、ユーザ入力を受信するためにプロセッサ12と通信し得る。ユーザインターフェース18は、例えば、ディスプレイ、キーボード、マウス、タッチスクリーン、タッチエリア、ソフトキー、マイク、スピーカ、または他の入力/出力機構(図示せず)を含み得る。プロセッサ12は、ユーザインターフェース18の少なくともいくつかの機能を制御するように構成されたユーザインターフェース回路を備え得る。
【0054】
図2aは、例として、幾何学的に歪んだQRコード
(登録商標)21の画像20を示す。本発明の方法は、QRコード
(登録商標)21の画像データを、少なくとも歪みが少なく、デバイスによって読み取り可能であるように、処理するために使用され得る。画像20は、静止画像である。この例のQRコード
(登録商標)21は、中央部は曲がっているが、その側部は直線状である。QRコード
(登録商標)21の周囲のマージンエリア22も示されている。
【0055】
図2bは、例として、
図2aの幾何学的に歪んだQRコード
(登録商標)21のモジュール23を示す。
図2bから、モジュール23が互いに対してどのように位置し、いくつかのモジュール23のサイズがどのように他のモジュールのサイズとは異なるかが分かる。この例では、マージンエリア22の幅24は、2つのモジュールと同じ幅であるが、より大きくてもよく、例えば、3~4つのモジュールと同じ幅であってもよい。いくつかの幾何学的に歪んだQRコード
(登録商標)では、少なくとも1つの側部が直線状ではないため、マージンエリアが必要とされ得、QRコード
(登録商標)が補正されるとマージンエリアも処理されるので、マージンエリアが歪んだQRコード
(登録商標)の全てのモジュールが処理されることを確保する。しかしながら、幾何学的に歪んだQRコード
(登録商標)が少なくとも1つの直線状ではない側部を含まない場合は、マージンは必要ではない。マージンエリア22は、この例では、斜線付きの正方形によって示される。
【0056】
図3aは、幾何学的に歪んでいないQRコード
(登録商標)30のモジュールを示す。
図3b~
図3fは、例として、異なる方式で歪んでおり、本発明の方法によって補正され得る、幾何学的に歪んだQRコード
(登録商標)のモジュールを示す。これらの
図3a~
図3fにはマージンエリアは示されていない。
図3bは、幾何学的に歪んだQRコード
(登録商標)31のモジュール32を示す。多くのサイズのモジュール32が存在し、垂直および水平の両方で異なるレベルのモジュール32が存在する。側部、すなわち、QRコード
(登録商標)31の縁が不均一であり、この不均一さが、幾何学的に歪んだQRコード
(登録商標)が補正されるときにマージンエリアが必要とされる理由である。
図3cは、幾何学的に歪んだQRコード
(登録商標)33のモジュール32を示す。このQRコード
(登録商標)のモジュール32は、ほぼ同じサイズであるが、水平に異なるレベルにある。QRコード
(登録商標)33の垂直側部は、やはり非常に不均一である。
図3d~
図3fは、幾何学的に歪んだQRコード
(登録商標)34、35、36のモジュール32を示す。多くのサイズのモジュール32が再び存在し、垂直および/または水平の両方で異なるレベルのモジュール32が存在する。
【0057】
ここで、以下では、例えば、幾何学的に歪んだQRコード
(登録商標)を、その情報が読み取り可能であるように、補正するために使用されるように配置された方法が説明される。
図4a~
図4fは、例として、本方法と関連して考察される特徴を示す。
図4aは、例として、QRコード
(登録商標)上に配置されたモジュールを有する幾何学的に歪んだQRコード
(登録商標)の画像を示し、
図4bは、例として、
図4aに示されるモジュールをオーバーサンプリングした後の、オーバーサンプリング行列の1つのモジュールおよびそのサンプル要素を示す。
図4cは、例として、平均強度の減算後の
図4bに示されるサンプルの平均強度を示す。
図4dは、例として、
図4cのモジュール上の2つのフィルタ位置を示し、フィルタは、元の画像のモジュール内で発生する極大値および極小値を決定するように配置される。
図4eは、例として、データ構造が試験下にある、すなわち、本方法によって決定されるように配置されている、モジュール(x,y)と、それらの色および中心位置が既知であるか否かに関する情報を含むその隣接モジュールと、を示し、モジュール(A)が既知の色および中心位置を有し、モジュール(B)が未知の色および中心位置を有する。
図4fは、例として、推定された中心(Ex,Ey)および隣接モジュール内の対応する場所の周囲にオフセットサンプル要素候補を有する、モジュール(x,y)の推定された中心(Ex,Ey)を示す。
【0058】
歪んだQRコード(登録商標)40の画像データ、およびファインダパターン44を含む、QRコード(登録商標)40のそれらの3つの外角の位置座標が、本方法のために入力される。
【0059】
QRコード(登録商標)40のモジュールカウントが既知であり、X方向およびY方向の両方にN個のモジュール41が存在し、そのため、合計でN×N個のモジュールが存在すると仮定される。モジュールの数は、例えば、1つのQRコード(登録商標)において21~177であり得る。しかしながら、モジュール41の数が知られていない場合、それは、いくつかの既知の方法、ならびにファインダパターンの幅および高さが常に8つのモジュールであるという情報を使用することによって計算され得る。
【0060】
本方法の第1のステップは、オーバーサンプリングステップであり、QRコード(登録商標)エリアのモジュール41およびQRコード(登録商標)の周囲のマージンエリアMは、オーバーサンプリングされる。オーバーサンプリングとは、QRコード(登録商標)エリアおよびマージンエリアMのモジュールがサンプル要素に分割され、それにより、F×F個のサンプル要素がQRコード(登録商標)エリアおよびマージンエリアMの各モジュール内に存在することを意味する。Fは、オーバーサンプリング係数であり、それが本方法に対して選択され得るか、または事前定義され得る。
【0061】
まず、中央ファインダパターン44の角が選択されるか、または原点Oとして事前設定され、
図4aに示されている。(ステップ1.1)
【0062】
座標系のXおよびY軸は、原点Oからファインダパターン44を含む他の2つの角の各々に向かう方向として選択される。これらのXおよびY軸もまた、
図4aに示されている。(ステップ1.2)
【0063】
オーバーサンプリング係数Fは、
図4a~
図4fの例のように、4以上、例えば、F=8の整数であるが、既に述べたように、Fは、少なくとも4であるか、または4よりも大きい。Fは、本方法のために事前定義される。この後、マージンMが選択されるか、または事前定義され得る。マージンMは、補正方法がXおよびY軸によって設定された予想される境界をオーバーランするモジュールの数、すなわち、幾何学的に歪んだQRコード
(登録商標)を補正するための方法の方法ステップが実施される、予想されるQRコード
(登録商標)40の周囲のモジュールの数を決定する。Mは、クワイエットゾーン、すなわち、QRコード
(登録商標)の周囲の白色エリアよりも小さい。マージンMは、
図4aに示される。(ステップ1.3)
【0064】
次いで、メモリが配分される、すなわち、サイズの行列((N+2×M)×F)×((N+2×M)×F)、すなわち、オーバーサンプリング行列に割り当てられる。(ステップ1.4)
【0065】
次いで、マージンMのエリアを含むQRコード
(登録商標)40のエリアがサンプリングされる。サンプリングとは、オーバーサンプリング行列の各サンプル要素について強度が決定されることを意味する。サンプリングは、モジュール座標(-M、-M)(画像4aに示される)に対応する画像座標から開始され、モジュール座標(N+M、N+M)(これも画像4aに示される)に対応する画像座標で終了する。各モジュール内に少なくとも平均F×F個のサンプル要素が存在するように、x方向およびy方向の両方でモジュール41毎に画像から取得されたF個のサンプル、すなわち、サンプル要素が存在する。サンプリングポイントが画像内で移動するときに沿う方向は、XおよびY軸の方向によって決定される。この手順は、サンプリング手順が全ての(N+2M)×(N+2M)モジュールを往来し、((N+2×M)×F)×((N+2×M)×F)サンプル要素を生成する際に、オーバーサンプリング行列のサンプル要素をそれらの強度値で満たす。オーバーサンプリング行列の1つのモジュール41が
図4bに示され、モジュール41では、サンプル要素42もまた示され、この例では、F=8であるため、各モジュール41内のサンプル要素42の数は、8×8=64であり、これは、モジュール41に示される。X軸に28個のモジュール、Y軸に28個のモジュールが存在し、マージンが、2つのモジュールであり、N=28およびM=2、したがって、オーバーサンプリング行列のサンプル要素の数は、((28+2×2)×8)×(28+2×2)×8)=256×256である。ここから、データ処理方法の残部は、例えば、QRコード
(登録商標)内のモジュールの位置などに関連する必要な情報を含むオーバーサンプリング行列に対して実施される(ステップ1.5)。Nとしての28は、QRコード
(登録商標)内のモジュールの数の単なる例であり、第2のステップのアイデアを明確にするために本明細書で使用されるだけであることに留意されたい。
【0066】
補正方法の第2のステップは、平均強度決定および強度の正規化を含む強度ステップである。まず、平均強度が決定され、すなわち、オーバーサンプリング行列全体について計算される。これは、いくつかの方式、例えば、QRコード(登録商標)40の3つの角におけるファインダパターン44を使用することによって、またはサンプリング行列の算術平均を使用することによって、行われ得る。(ステップ2.1)
【0067】
次いで、平均強度は、オーバーサンプリング行列内の各サンプル要素の強度から減算され、そのため、暗いおよび黒色のモジュールに対応するサンプル要素が負になり、白色および明るいモジュールに対応するサンプル要素が正になる。例えば、オーバーサンプリング行列のサンプル要素の強度決定は、まず、サンプル要素について0~255の強度値を与え得る。平均強度の減算後、範囲は、-128~127であり、そのため、例えば、黒色に対応する強度値0を最初に有するサンプル要素は、減算後に-128の強度値を有し、暗色に対応する強度値100を最初に有するサンプル要素は、減算後に-28の強度値を有する。強度範囲は、この例の0~255に限定されないが、自由に選択され得る。サンプル要素の減算された強度値を含むモジュール41の例が
図4cに示される。しかし、
図4cにおけるこれらの強度値は、繰り返しになるが、サンプル要素の可能性のある減算された強度値の単なる例であり、単にこの第2のステップのアイデアを示すように配置されていることに留意されたい。(ステップ2.2)
【0068】
本方法の第3のステップは、オーバーサンプリング行列内の強度値のフィルタリングに関する。最初に、線形2DフィルタのカーネルサイズKが選択され得るか、またはそれが事前定義され得る。好適なフィルタの一例は、各フィルタ係数が1/25であるように、均一な5×5ボックスフィルタ43である。フィルタは、異なるサイズまたは形状を有してもよい。また、例えば、ボックスフィルタの代わりにガウスフィルタ、または強度値のこのフィルタリングに使用されるのに適した任意の他のフィルタを使用することも可能である。(ステップ3.1)
【0069】
次いで、オーバーサンプリング行列およびその強度値は、このフィルタ42でフィルタリングされる。結果として、フィルタは、ボックスフィルタが使用されるときの各サンプル要素の平均値と、フィルタ43内の中間のサンプル要素である、いくつかの他のフィルタが使用されるときの各サンプル要素の加重平均値と、を計算する。平均は、オーバーサンプリング行列の各サンプル値42について計算される。フィルタリングするように配置されたサンプル要素の周囲に十分なサンプル要素が存在しない場合、フィルタ43内に残るこれらの値は、平均値の算出に使用される。中央の1つのサンプル要素の2つの例は、
図4dのフィルタ43の内部のMa1およびMa2によって示される。(ステップ3.2)
【0070】
このフィルタリング演算の結果として、極大値または極小値、すなわち、各モジュール41内の最低または最高平均値が決定される。極大値もしくは極小値、または少なくとも極大値もしくは極小値の近くのエリアは、幾何学的に歪んでいなかった、元のQRコード(登録商標)内の、幾何学的に歪んでいなかったモジュールの、および本方法の出力でもあるモジュールの中心に対応する位置を含む可能性がある。(ステップ3.3)
【0071】
本方法の第4のステップは、歪んだQRコード(登録商標)40のモジュールの位置の追跡に関する。追跡は、例えば、再帰を使用することによって行われ得る。最初に、再帰がモジュールの中心位置を追跡するために使用されるとき、再帰は、既知の3つの角のモジュール座標をQによって表される待ち行列に挿入することによって開始される。既知の座標は、ファインダパターン44があり、かつ座標がこれらのパターン44の外角に対応する、角に関する。外角は、QRコード(登録商標)40の外角であるパターン44の角である。座標は、(0,0)、(0,N-1)、および(N-1,0)であり、Nは、第1のステップで説明されるように、方向毎のモジュールの数である。モジュール座標は、オーバーサンプリング行列のサンプル要素の座標とは異なる。モジュール座標に加えて、オーバーサンプリング行列座標およびモジュールの色の観点でモジュールの中心の位置に関する情報が添付され、すなわち、待ち行列Qに挿入されたデータ構造に記憶される。モジュールの中心の位置は、第3のステップで計算された強度の極大値もしくは極小値、または極大値もしくは極小値の隣のサンプル要素の可能性が最も高い。デフォルトでは、中心モジュールの位置および色の両方が「未知」として最初にマークされている。(ステップ4.1)
【0072】
待ち行列Qは、ここで、ステップ4.1でそれに挿入されたモジュールのデータ構造を含む。次いで、これらのモジュール、または第4のステップの後期段階でQに追加され、中心の位置および色がまだ決定されていない、すなわち、それらのモジュールの中心の位置および色が未知であるモジュールについて、以下のステップ4.3~4.16が、待ち行列Q内のそれらのモジュールに対して、一度に1つのモジュールに実施される。ステップ4.3~4.16は、再帰ループを形成する。(ステップ4.2)
【0073】
Qの第1のデータ構造(モジュール座標、中心の位置、および色を含む)は、処理のために待ち行列Qから取得される。(ステップ4.3)
【0074】
しかしながら、待ち行列Q内のデータ構造におけるモジュールの中心座標の位置および色が既に知られている場合、例えば、それは、ステップ4.3~4.16が実施された、先のラウンドで決定されたものであり、待ち行列Q内の次のデータ構造が処理のために取得され、すなわち、再帰は、ステップ4.3に戻って継続する。(ステップ4.4)
【0075】
データ構造内のモジュールの中心および色が知られていない、すなわち、未知である場合、再帰は、次に進む。モジュールのxおよびy(x,y)座標、ならびにその8つの隣接モジュールの座標から構成される座標のリストが作成される。そのため、リストは、次の座標ペア(x-1,y-1)、(x,y-1)、(x+1,y-1)、(x-1,y)、(x,y)(x+1,y)、(x-1,y+1)、(x,y+1)、および(x+1,y+1)を含む。このリストは、LNXYとして示され得、データ構造が現在試験下にあるモジュールは、例えば、モジュール(x,y)45(
図4eに示される)として呼ばれ得る。(ステップ4.5)
【0076】
リスト内の隣接座標は、分離され得、すなわち、2つの集合に分割され得、集合Aは、モジュールの既知の中心の位置および色を有する隣接モジュールを含み、集合Bは、モジュールの未知の中心の位置および色を有する隣接モジュールを含む。集合AおよびBの隣接数は、それぞれ、NAおよびNBによって示される。NA+NB=9。モジュール(x,y)45自体が集合Bに属している。AおよびB集合のモジュールが
図4eに示される(ステップ4.6)。
【0077】
次に、中心の初期推定値に対応するサンプル要素、すなわち、モジュール(x,y)45の中心推定値(Ex,Ey)46が、集合A内の隣接の中心の情報を使用して、すなわち、それに基づいて計算される。例えば、集合Aがモジュール(x-1,y)および(x+1,y)から構成されると想定され得る。モジュール(x-1,y)の中心が、オーバーサンプリングされた座標(Sx,Sy)におけるサンプル要素である場合、モジュール(x,y)45の中心が、オーバーサンプリングされた座標(Sx+F,Sy)におけるサンプル要素であると予測され得る。同様に、モジュール(x+1,y)の中心がオーバーサンプリングされた座標(Rx,Ry)におけるサンプル要素である場合、我々は、モジュール(x,y)45の中心がオーバーサンプリングされた座標(Rx-F,Ry)におけるサンプル要素であると予測する。最終的な推定値は、さらに、成分推定値の平均である。この例では、中心推定サンプル要素は、(Ex,Ey)=(Sx+F+Rx-F,Sy+Ry)/2=((Sx+Rx)/2,(Sy+Ry)/2)になる。(ステップ4.7)
【0078】
しかしながら、集合Aが空である場合、すなわち、そのモジュール中心座標および色が既知であるいかなる隣接も存在しない場合、モジュール(x,y)45の中心の推定値は、((M+x+1/2)×F,(M+y+1/2)×F)であるように設定され得る。しかし、座標(x,y)が待ち行列Qに押し込まれた3つの初期座標のうちの1つ、すなわち、QRコード(登録商標)40のファインダパターン44の外角のうちの1つである場合のみ、集合Aは、空であり得る。(ステップ4.8)
【0079】
ステップ4.8でモジュール(x,y)45の中心推定値(Ex,Ey)46に対応するサンプル要素を推定した後、9つのオフセットサンプル要素候補xのリストが形成され、すなわち、オフセットサンプル要素候補xが定義される。リストは、中心推定値(Ex,Ey)46と、(Ex,Ey)46の周囲の8つのオフセットサンプル要素候補xと、を含む。(Ex,Ey)46の周囲のオフセットサンプル要素候補は、モジュール(x,y)45内およびその隣接モジュール内にオフセットサンプル要素行列47を形成する。モジュール(x,y)45の実際の中心は、推定(ステップ4.7または4.8)で決定された(Ex,Ey)46にない場合がある。それゆえに、中心が実際に、中心推定値(Ex,Ey)46のサンプル要素にあるか、または中心推定値(Ex,Ey)46のサンプル要素の隣のオフセットサンプル要素にあるかを決定するために、(Ex,Ey)46の周囲の8つのサンプル要素もまた、中心推定値(Ex,Ey)46のサンプル要素に加えて試験される。オフセットサンプル要素候補は、(dx、dy)であり、dxおよびdyは、集合{-1,0,+1}に属する。このリスト内のオフセットサンプル要素のうちの1つは、モジュール(x,y)45の中心を調節するために使用されることになり、すなわち、実際の、すなわち、モジュール(x,y)45の決定された中心になる。モジュール(x,y)45の中心が実際にその位置にあるか否かを決定するために、モジュール(x,y)45のオフセットサンプル要素候補が試験されるとき、オフセットサンプル要素行列47内の対応する位置にある隣接モジュール内のオフセットサンプル要素は、モジュール(x,y)のオフセットサンプル要素候補に加えて使用される。例えば、モジュール(x,y)45の右上オフセットサンプル要素候補が試験下にある場合、隣接モジュールのオフセットサンプル要素行列47内の右上オフセットサンプル要素候補が使用される。右上オフセットサンプル要素候補は、
図4fにおいて丸で囲まれている。一般に、補正方法の他の例では、9つのオフセットサンプル要素候補の代わりに、例えば、5つのオフセットサンプル要素候補を使用することが可能であり、中心サンプル要素は、繰り返しになるが、中心推定値(Ex,Ey)46(ステップ4.7または4.8で推定される)のサンプル要素であり、他の4つのオフセットサンプル要素は、(Ex,Ey)46に加えて、モジュール(x,y)45の中心について可能な位置である。(ステップ4.9)
【0080】
この後、集合Bのモジュール、すなわち、中心が依然として未知であるモジュールについての全ての可能な色の組み合わせの集合が、提供されるように配置される。2^NBの可能な色の組み合わせが存在する。色の組み合わせの中で、-1は、黒色を意味し、+1は、白色を意味する。例えば、Bに4つのモジュールが存在する場合、色の組み合わせの数は、2^4=16である。可能な色の組み合わせ、すなわち、色の組み合わせの仮定(CH)は、例えば、(-1,-1,-1,+1,+1,+1,+1,+1,+1)または(-1,-1,-1,+1,+1,-1,+1,+1,+1)であり得る。これらの例示的な組み合わせから、この例では、最初の5つの色が同じであること、すなわち、それらがモジュールの色であることが分かり、色は、以前に決定されているか、または少なくとも既知である。他の最後の4つは、色の可能性であり、ここで、例示的な組み合わせの偏差は、第6のモジュールの色に関連する。第1のCHは、第6のモジュールが白色(+1)であることを示唆し、第2のCHが黒色(-1)であることを示唆する。(ステップ4.10)
【0081】
以下のステップ4.11~4.16は、モジュール(x,y)45の各9つのオフセットサンプル要素候補(OC)(推定されたサンプル要素(Ex,Ey)46およびその周囲の8つのオフセットサンプル要素)について、ならびに各色の組み合わせの仮定(CH)について実施され、すなわち、ステップ4.11~4.16は、9×2^NB回、この例では、9×16回実施される。
【0082】
オフセットサンプル要素候補のサンプル要素の9つの強度(集合Aおよび集合B内の各モジュールに1つ)から構成されるLSCによって示されるリストは、サンプル、すなわち、座標(E+OC×F)におけるオーバーサンプリング行列からの強度を読み取ることによって提供され、E=(Ex,Ey)46は、ステップ4.7で定義された初期推定値である。言い換えると、モジュール(x,y)45のオフセットサンプル要素候補は、モジュール(x,y)45の中心が実際にその位置にあるか否かを決定するために試験されるステップ4.9に説明されるように、オフセットサンプル要素行列47内の対応する位置にある隣接モジュール内のオフセットサンプル要素は、モジュール(x,y)のオフセットサンプル要素候補に加えて使用され、したがって、各オフセットサンプル要素候補のLSCリストでは、9つの強度、すなわち、オフセットサンプル要素候補自体の強度、およびオフセットサンプル要素行列47内の対応する位置にある隣接モジュール内のオフセットサンプル要素の強度が決定される。そして、これは、モジュール(x,y)45の各オフセットサンプル要素候補について行われる。(ステップ4.11)
【0083】
この後、LSCリスト内のサンプル要素の強度に対応する9つの色仮説(CH)のリストが提供される。このリストは、色の仮説のリスト(LCH)によって示され、集合A内の隣接モジュールについて、LCHへの既知の色は、集合Aのモジュールに対応するデータ構造からコピーされ、集合B内の隣接モジュールについて、ステップ4.10に例示されるように、LCHへの仮説CHが生成される。(ステップ4.12)
【0084】
次いで、LSCリストおよびLCHリストが相関され、相関結果が記憶される。相関とは、リスト内の要素が乗算され、加算されることを意味する。相関値が高いほど、色の組み合わせの仮説が正しく、オフセットサンプル要素候補がモジュールの中心に対応する可能性が高くなる。例えば、CHの組み合わせ(-1,-1,-1,+1,-1,+1,+1,+1,+1)(第5のサンプル要素候補の強度で乗算されたとき、および乗算結果の加算後)が、(Ex,Ey)46のサンプル要素に対応する第5のオフセットサンプル要素候補の最高相関値を提供する場合、モジュール(x,y)45の中心が(Ex,Ey)46にある可能性が高い。上記のフィルタリングステップ、第3のステップが、色の仮説が正しければ相関値がモジュールの中心に向かって増加することを確保し、この特徴がモジュール追跡手順の核心である。(ステップ4.13)
【0085】
それゆえに、最高相関値を有するオフセットサンプル要素候補に対応するサンプル要素は、ステップ4.13で考察されるように、モジュール(x,y)45の中心について選択され得る。(ステップ4.14)
【0086】
次いで、ステップ4.14で選択されたサンプル要素候補は、モジュール(x,y)45のデータ構造に、モジュール(x,y)45の中心として記憶され得る。このサンプル要素の色は、第3のステップで提供されたオーバーサンプリング行列から取得される。この色は、モジュール(x,y)45の色を表し、モジュール(x,y)45のデータ構造に記憶される。(ステップ4.15)
【0087】
LNXYリストのモジュール座標を待ち行列Qに付加する(ステップ4.5を参照)。これは、再帰がコード内の各モジュールを往来することになることを確保する。(ステップ4.16)
【0088】
この後、QRコード(登録商標)補正方法は、モジュールの情報を読み取ることに関する第5のステップに進む。再帰の結果は、QRコード(登録商標)の各モジュールについてのデータ構造に記憶される。データ構造は、各モジュールの色、およびQRコード(登録商標)40内のモジュールの位置を含む。色情報は、ここで、補正されたQRコード(登録商標)の情報内容を読み取るために使用され得、これは、幾何学的に歪む前の元のQRに実質的に対応する。補正されたQRコード(登録商標)の情報内容を読み取る必要がない場合があるが、後で使用するために記憶されてもよい。
【0089】
図5は、例として、モジュール構造を備える幾何学的に歪んだQRコード
(登録商標)を補正する方法50のステップを示す。ステップ51では、オーバーサンプリング行列を形成するために各モジュールをF×F個のサンプル要素に分割することによって、QRコード
(登録商標)のモジュールがオーバーサンプリングされる。ステップ52では、オーバーサンプリング行列内の各サンプル要素について、強度が決定される。ステップ53では、オーバーサンプリング行列の平均強度が計算される。ステップ54では、平均強度が、オーバーサンプリング行列内の各サンプル要素の強度から減算される。ステップ55では、強度値が、各サンプル要素の平均値を決定するためにフィルタリングされる。ステップ56では、各モジュールの中心に対応するサンプル要素が追跡され、再帰を使用することによって、各モジュールの中心に対応するサンプル要素の強度に基づいて、各モジュールの色が決定される。本方法のステップ56は、
図6に示される再帰のステップを含む。
【0090】
図6は、例として、再帰方法60のステップを示す。ステップ61では、モジュールのデータ構造を含む待ち行列Qが形成される。データ構造は、モジュールの中心の位置、モジュールの色、およびQRコード
(登録商標)内のモジュールの位置に関する情報を含む。ステップ62では、モジュール(x,y)およびその8つの隣接モジュールのx、y座標のLNXYリストが、待ち行列Q内の第1のデータ構造でありかつ中心位置および色が未知であるモジュール(x,y)のデータ構造について作成される。ステップ63では、モジュール(x,y)の中心推定値(Ex,Ey)に対応するサンプル要素が、中心が既知の隣接モジュールに基づいて計算される。ステップ64では、所定数のオフセットサンプル要素候補OCが定義される。このオフセットサンプル要素候補OCは、中心推定値(Ex,Ey)および中心推定値(Ex,Ey)の周囲のサンプル要素を含む。ステップ65では、中心が未知のモジュールについて、色の組み合わせの仮定の集合が提供される。ステップ65の後、各オフセットサンプル要素候補について、および各色の組み合わせの仮定について、以下のステップ66~69が実施される。ステップ66では、座標(E+OC×F)におけるオーバーサンプリング行列からの各オフセットサンプル要素候補の強度を読み取ることによって、オフセットサンプル要素候補OCの強度を含むLSCリストが提供され、Eは、中心推定値(Ex,Ey)である。ステップ67では、LSCリスト内のサンプル要素の強度に対応する9つの色仮説(CH)のLCHリストが提供される。ステップ68では、LSCリストおよびLCHリストが相関され、相関結果が、モジュール(x,y)の中心について最高相関値を有するオフセットサンプル要素候補に対応するサンプル要素を決定するために記憶される。ステップ69では、オーバーサンプリング行列から、最高相関値を有するオフセットサンプル要素候補の強度値を選ぶことによって、モジュール(x,y)の色が決定される。
【0091】
QRコード(登録商標)の情報内容を読み取るためにデータ構造の色情報を使用することに加えて、QRコード(登録商標)40内の各モジュールの色および各モジュールの位置情報の両方を使用し、表面が、もはや幾何学的に歪んでいないようにQRコード(登録商標)が印刷される表面を再形成、すなわち、再構築することが可能である。この再形成されたQRコード(登録商標)は、次いで、例えば、元のQRコード(登録商標)の複製を生成すること、または補正されたQRコード(登録商標)もしくは補正された表面が必要とされ得る任意の他の方式に使用され得る。
【0092】
いくつかの例示的な実施形態では、方法ステップの順序が変更されてもよく、同じ方法ステップが同時に実施されてもよく、および/または方法ステップのいくつかが実施される必要がないことに留意されたい。
【0093】
本発明の様々な例示的な実施形態は、メモリ内に存在し、関連するデバイスに本発明を実行させる、コンピュータプログラムコードの助けを借りて実装され得る。例えば、デバイスは、画像データを処理、受信および送信するための回路および電子機器と、メモリ内のコンピュータプログラムコードと、コンピュータプログラムコードを実行すると、デバイスに例示的な実施形態の特徴を実行させるプロセッサと、を備え得る。
【0094】
本発明は、上記の例のみに限定されるものではなく、添付の特許請求の範囲の範囲内で修正され得ることが明らかである。
本件出願は、以下の態様の発明を提供する。
(態様1)
コンピュータ手段により、モジュール構造を含む幾何学的に歪んだQRコード(登録商標)(40)を補正するための方法であって、前記方法が、
オーバーサンプリング行列を形成するために各モジュール(41)をF×F個のサンプル要素(42)に分割することによって、前記QRコード(登録商標)(40)のモジュールをオーバーサンプリングすること、
前記オーバーサンプリング行列内の各サンプル要素(42)の強度を決定すること、
前記オーバーサンプリング行列の平均強度を計算すること、
前記オーバーサンプリング行列内の各サンプル要素(42)の強度から前記平均強度を減算すること、
各サンプル要素(42)の平均値を決定するために強度値をフィルタリングすること、及び
各モジュール(41)の中心に対応するサンプル要素(42)を追跡し、再帰を使用することによって、各モジュール(41)の前記中心に対応するサンプル要素(42)の強度に基づいて各モジュール(41)の色を決定することを含むことを特徴とする、前記方法。
(態様2)
前記再帰は、
前記モジュール(41)のデータ構造を含む待ち行列Qを形成することであって、データ構造が、前記モジュール(41)の中心の位置、前記モジュール(41)の色、および前記QRコード(登録商標)(40)内のモジュール(40)の位置に関する情報を含む、前記形成すること、
前記待ち行列Q内の第1のデータ構造であり、かつ中心位置および色が未知であるモジュール(x,y)のデータ構造について、前記モジュール(x,y)(45)およびその8つの隣接モジュールのx、y座標のLNXYリストを作成すること、
中心が既知である隣接モジュールに基づいて、前記モジュール(x,y)(45)の中心推定値(Ex,Ey)(46)に対応するサンプル要素を計算すること、
所定数のオフセットサンプル要素候補OCを定義することであって、前記オフセットサンプル要素候補OCが、前記中心推定値(Ex,Ey)(46)および前記中心推定値(Ex,Ey)(46)の周囲のサンプル要素を含む、前記定義すること、
中心が未知のモジュールについて、色の組み合わせの仮定の集合を提供すること、並びに
各オフセットサンプル要素候補について、および各色の組み合わせの仮定について、
座標(E+OC×F)における前記オーバーサンプリング行列からの各前記オフセットサンプル要素候補の強度を読み取ることによって、前記オフセットサンプル要素候補OCの強度を含むLSCリストを提供するステップであって、Eが、前記中心推定値(Ex,Ey)(46)である、前記提供するステップ、
LSCリスト内のサンプル要素の前記強度に対応する9つの色仮説(CH)のLCHリストを提供し、LSCリストおよびLCHリストを相関させ、前記モジュール(x,y)(45)の前記中心の最高相関値を有する前記オフセットサンプル要素候補に対応するサンプル要素を決定するための前記相関結果を記憶するステップ、及び
前記オーバーサンプリング行列から、最高相関値を有する前記オフセットサンプル要素候補の強度値を選ぶことによって、前記モジュール(x,y)(45)の前記色を決定するステップを実施すること、を含む、態様1に記載の方法。
(態様3)
前記方法が、
前記モジュール(x,y)(45)の前記決定された中心および色情報によって、前記モジュール(x,y)(45)の前記データ構造を更新すること、及び
LNXYリスト内のモジュール(x,y)(45)座標を待ち行列Qに付加すること、をさらに含む、態様2に記載の方法。
(態様4)
前記方法が、前記QRコード(登録商標)(40)の周囲のマージンMをオーバーサンプリングすることをさらに含む、態様1~3のいずれか一項に記載の方法。
(態様5)
前記マージンMのオーバーサンプリングが、前記オーバーサンプリング行列の一部について、前記マージンMの各モジュールをF×F個のサンプル要素に分割することによって実施される、態様4に記載の方法。
(態様6)
前記方法が、
前記QRコード(登録商標)(40)の情報内容を定義するためのモジュール(41)のデータ構造から色情報を読み取ることをさらに含む、態様1~5のいずれか一項に記載の方法。
(態様7)
Fが、4以上の整数である、態様3~6のいずれか一項に記載の方法。
(態様8)
マージンMが、前記QRコード(登録商標)(40)上の処理されるモジュールの数を決定する、態様4~7のいずれか一項に記載の方法。
(態様9)
色の組み合わせの仮定が、未知の中心を有する前記モジュールの全ての可能な色の組み合わせを含む、態様2または3に記載の方法。
(態様10)
LSCリストおよびLCHリストを相関させるときに、前記リスト内の前記要素が乗算され、加算される、態様2または3に記載の方法。
(態様11)
非一時的コンピュータ可読媒体(14)に具体化されたコンピュータプログラム製品であって、前記コンピュータプログラム製品が、コンピュータ命令を含み、前記コンピュータ命令が、システムまたは装置の少なくとも1つのプロセッサ(12)で実行されたときに、態様1~10のいずれか一項に記載の方法を実施するように構成されている、コンピュータプログラム製品。
(態様12)
態様1~10のいずれか一項に記載の方法を実施するための手段を備える、幾何学的に歪んだQRコード(登録商標)(40)を補正するためのデバイス(10)。
(態様13)
前記デバイス(10)が、前記幾何学的に歪んだQRコード(登録商標)(40)の画像を取り込むための画像センサ(11)、または前記幾何学的に歪んだQRコード(登録商標)(40)の画像データを受信するための手段(16)を備える、態様12に記載のデバイス(10)。
(態様14)
前記デバイス(10)が、携帯電話、モバイルコンピュータ、タブレットコンピュータまたはQRコード(登録商標)スキャナである、態様12または13に記載のデバイス(10)。