JP7289927B2 - 二次元コードの認識方法、生成方法、装置、二次元コード及び小車 - Google Patents

二次元コードの認識方法、生成方法、装置、二次元コード及び小車 Download PDF

Info

Publication number
JP7289927B2
JP7289927B2 JP2021559117A JP2021559117A JP7289927B2 JP 7289927 B2 JP7289927 B2 JP 7289927B2 JP 2021559117 A JP2021559117 A JP 2021559117A JP 2021559117 A JP2021559117 A JP 2021559117A JP 7289927 B2 JP7289927 B2 JP 7289927B2
Authority
JP
Japan
Prior art keywords
dimensional code
rotation angle
centering
center position
center
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021559117A
Other languages
English (en)
Other versions
JP2022528895A (ja
Inventor
ヤン、シューセン
チョウ、タオユイ
スン、ユイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Quicktron Intelligent Technology Co Ltd
Original Assignee
Shanghai Quicktron Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Quicktron Intelligent Technology Co Ltd filed Critical Shanghai Quicktron Intelligent Technology Co Ltd
Publication of JP2022528895A publication Critical patent/JP2022528895A/ja
Application granted granted Critical
Publication of JP7289927B2 publication Critical patent/JP7289927B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1456Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Description

本発明は、2019年4月28日に中国特許庁に提出された、発明の名称が「二次元コードの認識方法、生成方法、装置、二次元コード及び小車」である中国特許出願第201910349876.X号の優先権を主張するものであり、その内容全体が参照により本出願に組み込まれる。
本発明は二次元コードの技術分野に関し、特に二次元コードの認識方法、生成方法、装置、二次元コード及び小車に関する。
従来の二次元コードの認識技術は、スキャン、撮影などの手法で二次元コードの画像を取得することで、二次元コードのコーディング領域に含まれるコーディング情報を読み取るものである。しかし、取得された二次元コード画像は、撮影またはスキャンした際の角度がずれている。例えば、撮影された二次元コード画像が上下逆になってしまい、コーディング領域も上下逆になってしまった場合がある。現在角度のコーディング領域に基づいて読み取るコーディング情報も間違っている。したがって、画像処理手法によって二次元コードの少なくとも3つの頂点にある位置決めブロックを決定し、次に、これらの位置決めブロックに基づいて回転角度を決定し、さらに画像処理によって二次元コードのエンコーディング領域の内容を決定する必要がある。従来の技術では、画像処理技術の認識によく依存しているため、計算量は非常に多い。
本発明の実施例は、従来技術における1つまたは複数の課題を解決するために、二次元コードの認識方法、生成方法、装置、二次元コード及び小車を提供する。
第1態様では、本発明の実施例は二次元コードの認識方法を提供し、前記二次元コードは中心位置決め図形と回転角度位置決め図形を含み、前記方法は、前記中心位置決め図形を決定することと、前記中心位置決め図形によって、前記二次元コードの中心位置を決定することと、前記二次元コードの中心位置によって、前記回転角度位置決め図形の位置を決定することと、前記回転角度位置決め図形の位置によって、前記二次元コードの回転角度を決定することと、を含む。
1つの実施形態において、前記中心位置決め図形は第1中心位置決め図形と第2中心位置決め図形を含み、前記第1中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置はいずれも前記二次元コードの中心位置と重ね合わせており、前記中心位置決め図形を決定することは、前記第1中心位置決め図形を認識することと、前記第1中心位置決め図形によって、前記第1中心位置決め図形の中心位置を決定することと、前記第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行って、前記第2中心位置決め図形を決定することと、を含み、前記中心位置決め図形によって、前記二次元コードの中心位置を決定することは、前記第2中心位置決め図形の中心位置を、前記二次元コードの中心位置として決定することを含む。
1つの実施形態において、前記第2中心位置決め図形は、円形であり、前記第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行って、前記第2中心位置決め図形を決定することは、第1中心位置決め図形の中心位置をシードポイントとして、それぞれ鉛直方向および水平方向に拡張を行い、鉛直方向の拡張経路および水平方向の拡張経路を決定することを含み、前記第2中心位置決め図形の中心位置を前記二次元コードの中心位置として決定することは、前記鉛直方向の拡張経路の中点と水平方向の拡張経路の中点によって、前記第2中心位置決め図形の中心位置を、前記二次元コードの中心位置として決定することを含む。
1つの実施形態において、前記第1中心位置決め図形は円形リングであり、前記第1中心位置決め図形を認識することは、二次元コードをスキャンし、隣接する画素のグレースケール値の差から前記第1中心位置決め図形のいくつかのエッジポイントを決定することを含み、前記第1中心位置決め図形によって、前記第1中心位置決め図形の中心位置を決定することは、前記第1中心位置決め図形のいくつかのエッジポイントによって、前記第1中心位置決め図形上に位置する2つのポイントを選択することと、選択された前記第1中心位置決め図形上に位置する2つのポイントと予め設定される前記第1中心位置決め図形の円形リングの半径によって、前記第1中心位置決め図形の中心位置を決定することを含む。
1つの実施形態において、前記二次元コードの中心位置によって、前記回転角度位置決め図形の位置を決定することは、前記二次元コードの中心位置を円心として、半径が予め設定される仮想円を決定することと、前記仮想円において、現在の前記回転角度位置決め図形の予め設定されるエッジポイントを決定することと、を含み、前記回転角度位置決め図形の位置によって、前記二次元コードの回転角度を決定することは、現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置と、前記回転角度位置決め図形の未回転時の予め設定されるエッジポイントの予測位置によって、前記二次元コードの回転角度を決定することを含む。
1つの実施形態において、現在の前記回転角度位置決め図形の予め設定されるエッジポイントを決定することは、前記仮想円上のいくつかの予め設定される位置での画素点に対してグレースケールのサンプリングを行い、サンプリングされた画素点の座標情報とグレースケール情報を取得することと、前記サンプリングされた画素点のグレースケール情報によって、隣接するサンプリングされた画素点のグレースケール勾配を取得することと、グレースケール勾配の最大値に対応する、サンプリングされた画素点の位置情報によって、現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置を決定することと、を含む。
1つの実施形態において、前記二次元コードは、コーディング情報を含むコーディング領域と、回転角度補助図形とを含み、前記二次元コードの認識方法は、前記回転角度と前記二次元コードの中心位置によって、前期回転角度補助図形の第1中心位置を決定することと、前記回転角度補助図形の中心位置をシードポイントとして領域拡張を行って、前記回転角度補助図形を決定することと、前記回転角度補助図形によって、前記回転角度補助図形の第2中心位置を決定することと、前記回転角度補助図形の第2中心位置と前記二次元コードの中心位置によって、精確な回転角度を決定することと、前記二次元コードの中心位置によって、前記コーディング領域を決定することと、前記コーディング領域と前記精確な回転角度によって、前記コーディング情報を認識することをさらに含む。
1つの実施形態において、前記二次元コードは、コーディング情報を含むコーディング領域を含み、極座標で前記コーディング情報をレイアウトし、前記二次元コードの認識方法は、前記二次元コードの中心位置によって、前記コーディング領域を決定することと、前記コーディング領域と前記回転角度によって、前記コーディング情報を認識することと、をさらに含み、前記二次元コードの中心位置によって、前記コーディング領域を決定することは、前記二次元コードの中心位置によって、前記コーディング領域内に位置し、予め設定される異半径を有するいくつかのコーディング情報収集円を決定することを含み、前記コーディング領域と前記回転角度によって、前記コーディング情報を認識することは、前記回転角度から、各前記コーディング情報収集円上の画素点の座標情報とグレースケール値情報を、予め設定される角度ごとに収集することと、収集された前記画素点の座標情報とグレースケール値情報によって、前記コーディング情報を認識することと、を含む。
第2態様では、本発明の実施例は二次元コードの生成方法を提供し、前記二次元コードは、中心位置決め図形と、回転角度位置決め図形と、コーディング情報を含むコーディング領域を含み、前記二次元コードの生成方法は、前記二次元コードの中心位置を決定することと、前記二次元コードの中心位置によって、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、コーディング領域とを決定することと、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、前記コーディング領域の位置によって、前記中心位置決め図形と、前記回転角度位置決め図形と、前記コーディング領域とを生成し、前記コーディング領域に前記コーディング情報を書き込むことによって、前記二次元コードを生成することと、を含み、ここで、前記中心位置決め図形の中心は、前記二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形上の複数の予め設定されるエッジポイントは、前記中心位置に対する所定の角度方位に設置されて、前記複数の予め設定されるエッジポイントは、前記二次元コードの中心位置を円心とする同一の仮想円上に位置し、前記コーディング領域は、中心位置決め図形と前記二次元コードの中心位置との間の位置にある。
1つの実施形態において、前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、前記第1中心位置決め図形は、円形リングであり、前記第2中心位置決め図形は、円形であり、前記コーディング領域は、リングであり、前記第1中心位置決め図形と前記第2中心位置決め図形との間の領域に位置し、前記回転角度位置決め図形は、少なくとも2つが含まれ、二次元コードの中心位置に対して中心対称ではない2つの前記回転角度位置決め図形は、少なくとも存在する。
1つの実施形態において、前記二次元コードは、いくつかの位置決め円を含む回転角度補助図形をさらに含み、前記二次元コードの生成方法は、前記二次元コードの中心位置によって、各前記位置決め円の円心位置を決定することと、前記回転角度補助図形の位置によって、前記回転角度補助図形を生成すること、をさらに含む。
第3態様では、本発明の実施例は、二次元コードの認識装置を提供し、前記二次元コードは、中心位置決め図形と回転角度位置決め図形を含み、前記二次元コードの認識装置は、中心位置決め図形を決定するための中心位置決め図形決定モジュールと、前記中心位置決め図形によって、前記二次元コードの中心位置を決定するための中心位置決定モジュールと、前記二次元コードの中心位置によって、前記回転角度位置決め図形の位置を決定するための回転角度図形決定モジュールと、前記回転角度位置決め図形の位置によって、前記二次元コードの回転角度を決定するための回転角度決定モジュールと、を備える。
1つの実施形態において、前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記第1中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、前記中心位置決め図形決定モジュールは、前記第1中心位置決め図形を認識するための第1中心位置決め図形ユニットと、前記第1中心位置決め図形によって、前記第1中心位置決め図形の中心位置を決定するための第1中心位置決め図形中心ユニットと、前記第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行って、前記第2中心位置決め図形を決定するための第2中心位置決め図形ユニットと、を有し、前記中心位置決定モジュールは、前記第2中心位置決め図形の中心位置を前記二次元コードの中心位置として決定することに用いられる。
1つの実施形態において、前記回転角度位置決め図形決定モジュールは、前記二次元コードの中心位置を円心として、半径が予め設定される仮想円を決定するための仮想円決定ユニットと、前記仮想円において、現在の前記回転角度位置決め図形の予め設定されるエッジポイントを決定するための予設定エッジポイント決定ユニットと、を有し、前記回転角度決定モジュールは、現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置と、予め記憶される最初の前記回転角度位置決め図形の予め設定されるエッジポイントの位置によって、前記二次元コードの回転角度を決定することに用いられる。
1つの実施形態において、前記予設定エッジポイント決定ユニットは、前記仮想円上のいくつかの予め設定される位置での画素点に対してグレースケールのサンプリングを行い、サンプリングされた画素点の座標情報とグレースケール情報を取得するためのグレースケールのサンプリングサブユニットと、前記サンプリングされた画素点のグレースケール情報によって、隣接するサンプリングされた画素点のグレースケール勾配を取得するためのグレースケール勾配サブユニットと、グレースケール勾配の最大値に対応する前記サンプリングされた画素点の位置情報によって、現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置を決定するための予設定エッジポイントサブユニットと、を有する。
1つの実施形態において、前記二次元コードは、コーディング情報を含むコーディング領域と、回転角度補助図形とを含み、前記二次元コードの認識装置は、前記回転角度と前記二次元コードの中心位置によって、前記回転角度補助図形の第1中心位置を決定するための第1中心位置モジュールと、前記回転角度補助図形の中心位置をシードポイントとして領域拡張を行って、前記回転角度補助図形を決定するための回転角度補助図形モジュールと、前記回転角度補助図形によって、前記回転角度補助図形の第2中心位置を決定するための第2中心位置モジュールと、前記二次元コードの中心位置によって、前記コーディング領域を決定するためのコーディング領域決定モジュールと、前記コーディング領域と前記回転角度によって、前記コーディング情報を認識するための認識モジュールをさらに備える。
第4態様では、本発明の実施例は二次元コードの生成装置を提供し、前記二次元コードは、中心位置決め図形と、回転角度位置決め図形と、コーディング情報を含むコーディング領域を含み、前記二次元コードの生成装置は、前記二次元コードの中心位置を決定するための二次元コード中心位置決定モジュールと、前記二次元コードの中心位置によって、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、コーディング領域を決定するための位置決定モジュールと、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、前記コーディング領域の位置と、によって、前記中心位置決め図形と、前記回転角度位置決め図形と、前記コーディング領域とを生成し、前記コーディング領域に前記コーディング情報を書き込むことによって、前記二次元コードを生成するための生成モジュールと、を備え、ここで、前記中心位置決め図形の中心は、前記二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形上の複数の予め設定されるエッジポイントは、前記中心位置に対する所定の角度方位に設置され、前記複数の予め設定されるエッジポイントは、前記二次元コードの中心位置を円心とする同一の仮想円上に位置し、前記コーディング領域は、中心位置決め図形と前記二次元コードの中心位置との間の位置にある。
1つの実施形態において、前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形は、少なくとも2つが含まれ、二次元コードの中心位置に対して中心対称ではない2つの前記回転角度位置決め図形は、少なくとも存在し、前記二次元コードは、回転角度補助図形をさらに含み、前記二次元コードの生成装置は、前記二次元コードの中心位置によって、前記回転角度補助図形の位置を決定するための回転角度補助図形決定モジュールをさらに備え、前記生成モジュールは、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、前記コーディング領域の位置と、前記回転角度補助図形の位置とによって、前記二次元コードを生成することに用いられる。
第5態様では、本発明の実施例は二次元コードの認識装置を提供する。前記装置の機能は、ハードウェアによって実現することも、対応するソフトウェアを実行するハードウェアによって実現することもできる。前記ハードウェアまたは前記ソフトウェアは、上記の機能に対応する1つまたは複数のモジュールを備える。
1つの可能な設計では、前記装置の構造はプロセッサとメモリを備え、前記メモリは、前記装置に上記二次元コードの認識方法を実行させることをサポートするプログラムを記憶することに用いられ、前記プロセッサは、前記メモリに記憶されたプログラムを実行するように構成される。前記装置は、他の装置や通信ネットワークと通信するための通信インターフェースをさらに備えていてもよい。
第6態様では、本発明の実施例は二次元コードの生成装置を提供する。前記装置の機能は、ハードウェアによって実現することも、対応するソフトウェアを実行するハードウェアによって実現することもできる。前記ハードウェアまたは前記ソフトウェアは、上記の機能に対応する1つまたは複数のモジュールを備える。
1つの可能な設計で、前記装置の構造はプロセッサとメモリを備え、前記メモリは、前記装置に上記二次元コードの生成方法を実行させることをサポートするプログラムを記憶することに用いられ、前記プロセッサは、前記メモリに記憶されたプログラムを実行するように構成される。前記装置は、他の装置や通信ネットワークと通信するための通信インターフェースをさらに備えていてもよい。
第7態様では、本発明の実施例は小車をさらに提供し、本発明のいずれか1つの実施例に提供された二次元コードの認識装置を備え、二次元コードの画像を撮影するためのカメラと、前記二次元コードの認識装置の認識結果によって、前記小車の運行を制御するためのコントローラと、をさらに備える。
第8態様では、本発明の実施例は、本発明のいずれか1つの実施例に提供された二次元コードの生成装置によって生成する二次元コードをさらに提供する。
第9態様では、本発明の実施例は、二次元コードが設置されている製品を提供する。
前記二次元コードは、中心位置決め図形と、回転角度位置決め図形と、コーディング領域を含み、前記中心位置決め図形は、前記二次元コードの中心位置を決定することに用いられ、前記回転角度位置決め図形は、前記二次元コードの回転角度を決定することに用いられ、コーディング領域は、コーディング情報を含み、中心位置決め図形の中心は、二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形上には、複数の予め設定されるエッジポイントがあり、前記複数の予め設定されるエッジポイントは、中心位置に対して所定の角度方位に設置され、前記複数の予め設定されるエッジポイントは、前記二次元コードの中心位置を円心とする同一の仮想円上に位置する。
1つの実施形態において、前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記第1中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、前記二次元コードは、回転角度補助図形をさらに含み、前記回転角度補助図形は、前記回転角度位置決め図形に従って決定された前記二次元コードの回転角度を置き換えるために、前記二次元コードの精確な回転角度を取得することに用いられ、予め設定される各角度方位の角度は、素数である。
第10態様では、本発明の実施例はコンピュータ可読記憶媒体を提供する。前記コンピュータ可読記憶媒体は、二次元コードの生成装置と二次元コードの認識装置に用いられるコンピューターソフトウェアのコメントを記憶することに用いられ、前記コメントが前記二次元コードの生成装置と二次元コードの認識装置に関わるプログラムを実行することを含む。
上記の技術案の1つの技術案には、次の利点または有益な効果がある。中心位置決め図形によって二次元コードの中心位置を認識した後、回転角度位置決め図形の位置を相応的に決定し、さらに、回転角度位置決め図形の位置に基づいて回転角度を取得し、回転角度と中心位置によってエンコード領域を決定することで、エンコード情報の認識を実現し、二次元コードの認識計算量を減少することができる。
上記の概要は、説明のみを目的としており、決して限定することを意図したものではない。上記の例示的な態様、実施形態および特徴に加えて、図面および以下の詳細な説明を参照することにより、本発明のさらなる態様、実施形態および特徴を容易に理解することができる。
添付図面では、特に明記しない限り、複数の添付図面に共通する同じ符号は、同一または類似の部品または要素を示している。 これらの添付図面は、必ずしも縮尺通りに描かれているわけではない。理解すべきは、これらの添付の図面は、本発明が開示するいくつかの実施形態のみを描いたものであり、本発明の範囲を限定するものではない。
図1は本発明の実施例による二次元コードの第1例示図を示している。 図2は本発明の実施例による二次元コードの第2例示図を示している。 図3は本発明の実施例による二次元コードの第3例示図を示している。 図4は本発明の実施例による二次元コードの認識方法のフローチャートを示している。 図5は本発明の実施例による二次元コードのスキャンおよび認識の例示図を示している。 図6は本発明の実施例の第1中心位置決め図形によってその中心位置を決定する例示図を示している。 図7は本発明の実施例による、第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行う例示図を示している。 図8は本発明の実施例による、仮想円を介して回転角度位置決め図形の予め設定されるエッジポイントを決定する例示図を示している。 図9は本発明の実施例による、回転角度補助図形の領域拡張の例示図を示している。 図10は本発明の実施例による、コーディング領域にグレースケールのサンプリングを実行する例示図を示している。 図11は本発明の実施例による二次元コードの生成方法のフローチャートを示している。 図12は本発明の実施例による二次元コードの認識装置の構造ブロック図を示している。 図13は本発明の実施例による二次元コードの生成装置の構造ブロック図を示している。 図14は本発明の実施例による二次元コードの認識装置及び生成装置のハードウェア図を示している。
以下、特定の例示的な実施例のみを簡単に説明する。当業者が理解できるように、本発明の精神や範囲から逸脱することなく、記載された実施形態を様々な異なる方法で変更することができる。従って、図面および説明は、本質的に例示的なものと見なされるべきであり、限定的なものではない。
図1は本発明の実施例による二次元コードの第1例示図を示している。この二次元コードは、ラベルとして形成されることも、二次元コードを使用する各種類の製品に貼り付けられ、または印刷されることもできる。図1を参照すると、本発明の一実施形態による二次元コードは、第1中心位置決め図形11、第2中心位置決め図形12、回転角度位置決め図形13およびエンコーディング領域14を含み、ここで、エンコーディング領域14はエンコーディング情報を含む。
第1中心位置決め図形11、第2中心位置決め図形12は、まとめて中心位置決め図形と呼ばれる。第1中心位置決め図形11の中心位置と、第2中心位置決め図形12の中心位置とは、重ね合わせており、二次元コードの中心位置である。
好ましい実施形態では、第1中心位置決め図形11と第2中心位置決め図形12は、円や正方形などの、中心が容易に決定できる対称図形である。もちろん、中心を計算できる他の非対称図形を第1中心位置決め図形として使用することもできる。たとえば、第1中心位置決め図形が平行四辺形の場合、平行四辺形の対角線の交点は、中心として決定することができる。
一例では、第1中心位置決め図形11の内部は空であってもよい。第1中心位置決め図形11は、図1に示すような円形リングまたは図2に示すような空内部を有する正方形であってもよく、もちろん、空内部を有する三角形や長方形などであってもよい。第2中央位置決め図形12は、円形、方形、三角形などを含むことができる。
好ましくは、第1中心位置決め図形11のサイズは、第2中心位置決め図形12のサイズよりも大きく、第2中心位置決め図形12は、第1中心位置決め図形の内部に位置する。
エンコーディング領域14は第2中心位置決め図形12と第1中心位置決め図形11との間に位置する。エンコーディング領域14は、コーディング情報を効果的に含むことができる限り、様々な形態をとることができる。
1つの実施形態において、回転角度位置決め図形13は、第2中心位置決め図形とエンコーディング領域14との間に位置する。1つの実施形態において、回転角度位置決め図形13は、少なくとも2つが含まれ、二次元コードの中心位置に対して中心対称ではない2つの回転角度位置決め図形13は、少なくとも存在する。二次元コードの中心位置に対して中心対称ではない2つの回転角度位置決め図形13が少なくとも存在すれば、二次元コードの回転角度の決定が有利になる。
一実施形態では、回転角度位置決め図形13は、同一の仮想円上に位置する複数の予め設定されるエッジポイントを有する。回転角度位置決め図形の予め設定されるエッジポイント(すなわち、回転角度位置決め図形が仮想円と交差するエッジポイント)は、二次元コードが回転しない場合、二次元コードの中心位置に対する角度(例えば、水平方向に対する二次元コードの中心位置を結ぶ線の角度)の角度値が素数であるため、予め設定されるエッジポイントの角度値の間に最大公約数がない。
1つの実施形態において、二次元コードは極座標で配置され、ここで、二次元コードの中心位置は極座標の原点である。
極座標が回転不変性を持っているため、二次元コードを認識、スキャンするプロセスでは、各方向から見ても同じである。これにより、スキャンがより簡潔になる。コーディング領域では、一般的に長方形のレイアウトであるが、長方形のレイアウトはコーナー領域のスペースが無駄になる。極座標のレイアウトを採用することにより、空間を十分に活用することができる。
上記極座標は好ましい実施形態であり、本発明の実施例は、非極座標の二次元コードレイアウトを採用することもできる。
1つの実施形態において、二次元コードはまた、回転角度補助図形111を含む。図3を参照すると、4つの位置決め円の例が示されており、4つの位置決め円が、第1中心位置決め図形11の外側に均等に分布している。これにより、いずれかの位置決め円が汚染されていても、二次元コードを正確に識別することができる。他の実施形態でも、位置決め円の数および分布位置を調整することができる。
1つの実施形態において、図3を参照すると、二次元コードは、ユーザが二次元コードを正確に貼り付けるための貼り付け位置合わせマーク112をさらに含む。
図4は本発明の実施例による二次元コードの認識方法のフローチャートを示している。図4を参照すると、この方法は以下のステップを含む。
S41において、中心位置決め図形を決定する。
S42において、中心位置決め図形によって、二次元コードの中心位置を決定する。
S43において、二次元コードの中心位置によって、回転角度位置決め図形13の位置を決定する。
S44において、回転角度位置決め図形13の位置によって、二次元コードの回転角度を決定する。
S45において、二次元コードの中心位置によって、エンコーディング領域14を決定する。
S46において、エンコーディング領域14と回転角度によって、エンコーディング情報を認識する。
各ステップについては、以下で詳しく説明する。
ステップS41は、中心位置決め図形を決定し、ステップA~ステップCを含み、ステップAにおいて、第1中心位置決め図形11を認識する。1つの実施形態では、認識された第1中心位置決め図形は、第1中心位置決め図形の画素点全体を含んでもよく、第1中心位置決め図形の境界または第1中心位置決め図形上に位置するキー画素点などを含んでもよい。具体的な選択としては、第1中心位置決め図形11の形状に従って決定する必要がある。例えば、第1中心位置決め図形11が円形リングである場合、円形リングが回転によって変化しないので、いくつかの境界のキー画素点を認識するだけで、第1中心位置決め図形を代表することができる。
従って、第1中心位置決め図形11が円形リングの場合、ステップS41において第1中心位置決め図形11を認識することは、第1中心位置決め図形11のいくつかの予め設定されるポイントを認識することを含むことができる。
1つの実施形態では、予め設定されるポイントは、次のように取得できる。
例示的に、図5を参照すると、二次元コードを水平方向にスキャンし、例えば1行のスキャン間隔を3列とし、5行ごとに1回のスキャンを行い、隣接する画素のグレースケール値の差から円形リングでの座標点を決定し、左から右にスキャンする過程に以下のステップを実行する。
(1)図5に示すポイントAのような、白色が黒色になるエッジポイントを決定する。
右側の隣接画素点のグレースケール値から左側の隣接画素点のグレースケール値を引いた差が第1グレースケール差よりも小さい場合、例えば第1グレースケール差が―30の値を取る場合、白色が黒色になるエッジポイントが解かれる。
(2)図5に示すポイントBのような、黒色が白色になるエッジポイントを決定する。
右側の隣接画素点のグレースケール値から左側の隣接画素点のグレースケール値を引いた差が第2グレースケール差よりも大きい場合、例えば第1グレースケール差が30の値を取る場合、黒色が白色になるエッジポイントが解かれる。
(3)同じ行において、隣接する2つのエッジポイント(白色が黒色になるエッジポイントと黒色が白色になるエッジポイント)の間の距離が予め設定されるしきい値よりも小さい場合、2つのポイントの間の中間点(例えば、ポイントAとポイントBの間の中心点C)が解かれる。
一実施形態では、ステップAで決定された第1中心位置決め図形11のいくつかの予め設定されるポイントは、上記のステップで決定された複数の中心点Cを含む。図6のように、C1、C2、C0という3つの点Cが示されている。いくつかのポイントを決定するだけで、計算量を減少し、認識時間を節約し、ユーザーエクスペリエンスを向上させることができる。
ステップBにおいて、第1中心位置決め図形11によって、第1中心位置決め図形11の中心位置(例えば図6のポイントG1)を決定する。第1中心位置決め図形11を例とし、円形リングの境界上のいくつかの画素点が決定された場合、円の特性に応じて3つの境界上の画素点を選択することで、円心を計算することができる。
一実施形態では、ステップBは、ステップAで得られた第1中心位置決め図形11のいくつかの予め設定されるポイントから3つの点を選択する(例えば、図6で、ステップ(3)の中心点における点C1、点C2及び点C0を好ましく選択する)。C1、C2、C0からこの3つの点で限定される円の円心を第1中心位置決め図形11の中心位置として決定することができる。
別の実施形態では、前の実施形態のステップBと同じくポイントC1、C2、C0が選択される。違うのは、本実施形態の点C0は「点C1と点C2との間に位置するすべての中心点の集合の中点である」ことを満たす。次に、2つの中心点の中点C12を求める。C12とC0を接続すると、円心はC12とC0が位置する直線を通過しなければならない。円心は、既知の円形リングの直径または半径によって決定されることができる。円形リングの半径または直径が事前にわかっているので、このアルゴリズムは、3つの点を使って円を限定して円心を計算するアルゴリズムよりも多くの計算リソースを節約する。
ステップCにおいて、第1中心位置決め図形11の中心位置をシードポイントとして領域拡張を行うことによって、第2中心位置決め図形12を決定する。ここで、領域拡張は組になる画素または領域をより大きな領域に発展させるプロセスを指す。シードポイントの集合から、これらのポイントからの領域拡張は、強度、グレースケールのレベル、テクスチャカラーなど、各シードポイントに類似した特性を持つ隣接の画素をこの領域にマージすることを指す。
一実施形態では、第2中心位置決め図形12は円形である場合、図7を参照すると、第1中心位置決め図形11の中心位置をシードポイントとして、それぞれ鉛直方向および水平方向に拡張を行い、鉛直方向の拡張経路および水平方向の拡張経路を決定する。鉛直方向の拡張経路および水平方向の拡張経路は、図7の交差拡張経路を構成する。交差拡張経路によって、第1中心位置決め図形11の境界を決定することができる。
上記の実施形態では、第2中心位置決め図形は円形である場合、円の特性により、鉛直方向と水平方向での2つの拡張経路を行って、経路の中点を解く限り、円心を決定することができ、計算量を大幅に節約することができる。
ステップS42において中心位置決め図形に基づいて二次元コードの中心位置を決定するのは、第2中心位置決め図形12の中心位置を二次元コードの中心位置として決定することである。
一実施形態では、第2中心位置決め図形12が円形である場合、ステップS42は、鉛直方向の拡張経路の中点と水平方向の拡張経路の中点に基づいて、交差拡張経路の行と列の平均値を計算することによって、第2中心位置決め図形の中心位置を二次元コードの中心位置として決定することを含む。
上記ステップA~ステップCでは、中心位置決め図形が第1中心位置決め図形と第2中心位置決め図形を含む方式を採用し、第1中心位置決め図形11としてそのサイズが大きくて認識しやすいという利点を利用して、第1中心位置決め図形を先に決定し、第1中心位置決め図形に基づいて第2中心位置決め図形を決定し、第2中心位置決め図形12のサイズが小さいため、第2中心位置決め図形の中心位置を二次元コードの中心位置として直接計算することによって、その精度率が高くなる。
図4に戻ると、二次元コードの中心位置が決定された後、ステップS43に入り、回転角度位置決め図形の位置が決定される。1つの実施形態において、ステップS43は、以下を含む。
ステップDにおいて、二次元コードの中心位置を円心として、半径が予め設定される仮想円を決定する。仮想円は閉じた曲線であり、仮想円上の点が、全て二次元コードの中心位置から予め設定される半径で離れている。
ステップEにおいて、図8を参照すると、仮想円において、現在の回転角度位置決め図形の予め設定されるエッジポイントを決定する。ここで、予め設定されるエッジポイントは、回転角度位置決め図形13のエッジポイントにおける仮想円を通過するエッジポイントである。
なお、回転角度位置決め図形13と二次元コードの中心位置との相対距離関係は既知であり、二次元コードの中心を円心とした仮想円を通過しなければならない。したがって、二次元コードの中心に基づいて仮想円を決定し、仮想円上で回転角度位置決め図形のエッジポイントを決定することにより、回転角度位置決め図形13の予め設定されるエッジポイントの位置を取得することができる。
1つの実施形態において、ステップEにおける、仮想円上で現在の回転角度位置決め図形の予め設定されるエッジポイントを決定することには、次のステップが含まれる。
E1において、仮想円上のいくつかの予め設定される位置での画素点に対してグレースケールのサンプリングを行い、サンプリングされた画素点の座標情報とグレースケール情報を取得する。
E2において、サンプリングされた画素点のグレースケール情報によって、隣接するサンプリングされた画素点のグレースケール勾配を取得する。
E3において、グレースケール勾配の最大値に対応するサンプリングされた画素点の位置情報によって、現在の回転角度位置決め図形の予め設定されるエッジポイントの位置を決定する。ここで、位置nのサンプリングされた画素点のグレースケール勾配は|Sn+1-S|であり、Snは位置nのサンプリングされた画素点のグレースケール情報を表し、Sn+1は、位置nのサンプリングされた画素点に隣接する1つ前のサンプリングされた画素点のグレースケール情報を表す。グレースケール勾配の最大値であるサンプリングされた画素点は|Sn+1-S|が最大のサンプリングされた画素点である。これらのグレースケール勾配の最大値であるサンプリングされた画素点は回転角度位置決め図形13の予め設定されるエンジンポイントである。これらの予め設定されるエンジンポイントが決定されると、回転角度位置決め図形の位置が決定される。
例として、図8では、4つの予め設定されるエンジンポイント(P1、P2、P3、P4)が示されている。予め設定されるエンジンポイントの数は、回転角度位置決め図形13の数、形状及び予め設定される仮想円の半径に関連し、実際のニーズに応じて増減することができる。二次元コードの中心位置を原点とし、極軸として所定の方向(例:上に鉛直/右に水平)を選択し、角度の正方向(例えば、時計回りを正の方向)を選択することにより、極座標を建てる。二次元コードが回転しない場合、これらの4つの予め設定されるエッジポイントの位置は、θ1、θ2、θ3、θ4の方位と仮定した予め設定される角度位置にある(すなわち、回転角なし)。すなわち、極座標位置は、P1(R、θ1)、P2(R、θ2)、P3(R、θ3)、P4(R、θ4)である。
1つの実施形態では、ステップS44において、所定の各予め設定されるエッジポイントの角度と、その対応する非回転角度(予め設定される角度位置)との差を決定することにより、二次元コードの回転角度を取得できる。これらの予め設定されるエッジポイントの角度に基づいて得られた差の平均値を、二次元コードの回転角度として計算することができる。
また、各予め設定されるエッジポイントが所定の角度になるように、各予め設定されるエッジポイントの非回転角度に基づいて、二次元コードを自身の中心位置の周りに回転させれば、毎回その所定の角度になる。例えば、図8の場合、4回で回転すると、回転角度は-(K+θ1)、-(K+θ2)、-(K+θ3)、-(K+θ4)であり、Kは選択可能な角度の定数であり、回転がない場合、各予め設定されるエッジポイントの角度として、Kが少なくとも1回出現するため、Kの値が出現する場合が最も多い。回転があり、回転角度がQの場合、角度K―Qが出現する回数が最も多い。従って、Kの値と、各回転において最も多く出現する角度との差、すなわちQを、二次元コードの回転角度として決定することができる。つまり、二次元コードの回転角度は、この二次元コードを複数回回転させ、各予め設定されるエッジポイントの非回転角度と予め設定される角度Kの合計をそれぞれ回転させ、毎回回転後の各予め設定されるエッジポイントの角度を取得し、これらの角度から最も頻繁に現れる角度K―Qを選択し、予め設定される角度Kとこの最も頻繁に現れる角度K―Qとの差を二次元コードの回転角度とするように決定されることができる。
前述の実施形態では、予め設定されるエッジポイントの数と位置が一定であるため、計算量が少ない。
以下の例により上記のステップの処理をよりよく理解することができる。K=0、θ1、θ2、θ3、θ4がそれぞれ10°、30°、170°、240°であると仮定する。
図8を参照すると、回転角度位置決め図形の予め設定されるエッジポイント(即ち、回転角度位置決め図形と仮想円とが交差するエッジポイント)は、それぞれ位置P1(R、10°)、P2(R、30°)、P3(R、170°)、P4(R、240°)にある。このとき、仮想円上にあるサンプリングされた画素点の中で、位置P1、P2、P3、およびP4にある画素点が最大のグレースケール勾配を取得する。
K=0°を選択し、回転がない場合に、二次元コードをそれぞれ反時計回りに10°、30°、170°、240°回転させ、4組のサンプリングされた画素点に対してグレースケールのサンプリングを行う。このように、グレースケール勾配の最大値(つまり、各予め設定されるエッジポイント)が次の位置にある(以下の位置ではRが省略される)。
回転10°:0°、20°、160°、230°、
回転30°:340°、0°、170°、210°、
回転170°:200°、220°、0°、70°、
回転240°:130°、150°、290°、0°。
このとき、0°の方位において、4組のデータから合計4つの勾配の最大値が取得され、取得されたグレースケール勾配の合計値も最大になる。つまり、予め記憶された最初のグレースケール勾配の合計値中の最大値に対応する座標情報は、(R、0°)である。
二次元コードの回転角度が反時計回りの20°である場合、回転角度位置決め図形の予め設定されるエッジポイント(すなわち、回転角度位置決め図形と仮想円とが交差するエッジポイント)は、位置P1´(R、350°)、P2´(R、10°)、P3´(R、150°)、P4´(R、220°)にある。この時、二次元コードを反時計回りに10°、30°、170°、240°回転させ、4組のサンプリングされた画素点のグレースケールサンプルを取得する。各組のデータにおけるグレースケール勾配の最大値は、以下の位置にある。
回転10°:340°、0°、140°、210°、
回転30°:320°、340°、120°、210°、
回転170°:180°、200°、340°、50°、
回転240°:150°、130°、270°、340°。
このとき、340°において4つの勾配の最大値が得られる。
このとき、上記の4組のデータから、340°の方位において合計4つの勾配の最大値が得られ、上記のステップで計算された4組のサンプリングされた画素点のグレースケール勾配から得られるグレースケール勾配の最大値に対応する座標情報は(R、340°)である。この340°と0°を比較すると、二次元コードの回転角度が反時計回りの20°であることがわかる。
上記の方法により、二次元コードの回転角度をより精確に決定することができる。
1つの実施形態において、回転角度位置決め図形の予め設定されるエッジポイント(すなわち、回転角度位置決め図形と仮想円とが交差するエッジポイント)は、その最初の位置が、通常、角度値が素数であることを満たしているため、予め設定されるエッジポイントの角度値の間に最大公約数がない。例えば、ステップS44に示す予め設定されるエッジポイントの最初の位置は、それぞれ二次元コードの中心位置の方位θ1、θ2、θ3、θ4に位置しており、θ1、θ2、θ3、θ4が通常に素数である。これにより、グレースケール勾配の合計値からの最大値を判断する際に、干渉ピークの数や強度を減少するのに有利である。他の実施形態では、2つの回転角度位置決め図形、及び回転角度位置決め図形の合計4つの予め設定されるエッジポイントを使用する上記例に加えて、回転角度位置決め図形の数と回転角度位置決め図形の予め設定されるエッジポイントの数を増やすことも可能である。信頼性を保証するために、通常、少なくとも2つの回転角度位置決め図形を含む必要がある。
上記の実施形態で、回転角度補助図形を追加して、回転角度の値をより精確にし、二次元コードの認識精度を向上させる。他方、領域拡張によって回転角度補助図形の境界を決定してから、その中心位置を精確に決定し、精確に決定された中心位置に基づいてより精確な回転角度を決定することによって、回転角度の精度を向上させる。
1つの実施形態において、二次元コードは、コーディング情報を極座標でレイアウトする。
相応的に、ステップS45における二次元コードの中心位置に基づいてコーディング領域を決定することは、二次元コードの中心位置によって、予め設定される異半径を有するいくつかのコーディング情報収集円を決定することを含んでもよい。ここで、コーディング領域は、予め設定される異半径を有するいくつかのコーディング情報収集円にカバーされる領域を含む。
ステップS46におけるコーディング領域と二次元コード回転角度Qに基づいて、コーディング情報を識別することは、回転角度Qから、コーディング情報収集円上の画素点の座標情報とグレースケール値情報を予め設定される角度ごとに収集するステップFと、収集された画素点の座標情報とグレースケール値情報に基づいて、コーディング情報を識別するステップGとを含む。
1つの実施形態において、コーディング情報にはデータ情報とエラー補正情報が含まれる。ステップGにおけるコーディング情報を認識することは、データ情報とエラー補正情報に基づいて、いくつかのシンドロームの値を計算し、シンドロームの値がすべて0に等しい場合、取得されたデータ情報とエラー補正情報にエラーがないことと、シンドロームの値がすべて0に等しくない場合、シンドロームの値によってエラー位置の多項式を決定し、ルート値、つまりエラー位置値を求め、このエラー位置値に基づいてエラー値を算出し、対応するエラー位置に、相応するエラー値を加算してエラー補正を完了することとを含む。
ステップF~ステップGの一例としては、以下の通りである。図10を参照すると、回転角度、二次元コードの中心位置及び第1中心位置決め図形の円形リングの半径が既知である場合、コーディング領域は、二次元コードの第2中心位置決め図形と第1中心位置決め図形との間の領域に位置する。コーディング領域において、円形リングの半径にそれぞれ1未満の係数(例えば、3.4/4.6、2.8/4.6、2.2/4.6)を乗算して、予め設定される個数の小半径(例えば、3個の小半径)を取得し、回転角度から所定の角度(例えば16.37度)ごとに、予め設定される個数の小半径の座標(例えば、3個の小半径に対する3つの座標)を取って、いくつかの座標情報(例えば、66個の座標)を得て、これらのいくつかの座標情報(例えば、66個の座標)に対応する画素点のグレースケール値を累積して平均値を求め、いくつかの画素点座標(例えば66個の座標)のグレースケール値がこの平均値よりも大きい場合に1になり、それ以外の場合に0になり、これにより、いくつかのバイナリ値が得られる。いくつかのバイナリ値には、データ情報とエラー補正情報を表す対応個数のバイトが含まれている(たとえば、66個のバイナリには8バイトが含まれている)。
コーディングすべき情報がM1、M2、M3、M4の4つの数値であり、\が所定の演算を表し、M1\M2=u、M1\M3=v、M1\M4=w、M2\M3=x、M2\M4=y、M3\M4=zとする場合、4つの多項式から4つの解を求めるとの多項式解法の原理により、u、v、w、x、y、zの6つの値のうちの任意の4つを知れば、M1、M2、M3、M4を解ける。通常、u、v、w、x、y、zがすべて二次元コードにコーディングされている場合、コードを読み取るときに、任意の2つを誤読又は遺漏しても、正常にデコーディングすることができる。このとき、二次元コードのエラー補正率は(6-4/6)=33.3%である。
本実施例の二次元コード認識方法は、以下のステップH、ステップI、ステップJ、ステップKをさらに含む。
ステップHにおいて、回転角度と二次元コードの中心位置によって、回転角度補助図形111の第1中心位置を決定する。
具体的に、最初の二次元コード(即ち、回転角度0°の二次元コード)において、回転角度補助図形111の中心と二次元コード中心との相対位置が固定されている。従って、回転角度位置決め図形に決定される回転角度と二次元コードの中心位置によって、回転角度補助図形111を決定することができる。例えば、二次元コードの中心位置が座標原点であり、最初の二次元コードでの回転角度補助図形の中心位置が(R7,θ7)である場合、回転角度がθ8であるとき、回転角度補助図形111の第1中心位置が(R7,θ7―θ8)であることが求められる。
ステップIにおいて、回転角度補助図形111の第1中心位置をシードポイントとして領域拡張を行うことによって、回転角度補助図形を決定する。ここで、領域拡張は、組になる画素点または領域をより大きな領域に発展させるプロセスを指す。シードポイントの集合から、これらのポイントからの領域拡張は、強度、グレースケールのレベル、テクスチャカラーなどの、各シードポイントに類似した特性を持つ隣接の画素点をこの領域にマージすることを指す。
回転角度補助図形111がいくつかの位置決め円を含むとき、ステップIは、回転角度補助図形の中心位置をシードポイントとして、水平方向と鉛直方向に沿って経路拡張を行い、交差拡張経路を得て、位置決め円を決定することを含む。
ステップJにおいて、回転角度補助図形111によって、回転角度補助図形111の第2中心位置を決定する。ステップJは、ステップIでの水平方向の拡張経路の中間点と鉛直方向の拡張経路の中間点を決定し、位置決め円の円心F、すなわち回転角度補助図形の第2中心位置を決定することを含む。図9は、そのうちの1つの位置決め円の拡張経路と中心Fを示している。他の位置決め円は、この方法を参照して円心を決定することができる。
ステップKにおいて、回転角度補助図形111の第2中心位置と二次元コードの中心位置によって、精確な回転角度を決定する。具体的に、二次元コードが回転していない場合、二次元コードの中心位置に対する回転角補助図形の中心位置が確定であり、ステップJでの回転角度補助図形111の第2中心位置と二次元コードの中心位置との位置関係を比較することで、現在の回転角度補助図形の中心位置が二次元コードに対して回転していないときに偏り回転した角度を求め、さらにステップS44で得られた回転角度に対して校正を行って、精確な回転角度を求めることができる。
図11は本発明の実施例による二次元コードの生成方法のフローチャートを示している。本実施例は以下のステップを含む。
S111において、二次元コードの中心位置を決定する。
S112において、二次元コードの中心位置によって、中心位置決め図形の位置と、回転角度位置決め図形の位置と、エンコーディング領域の位置とを決定する。
一実施形態では、第1中心位置決め図形は円形リングであり、第2中心位置決め図形は円形あるいは円形リングであり、中心位置と円形または円形リング(内円および外円)の半径によって第1中心位置決め図形と第2中心位置決め図形の位置を決定する。予め設定されるエッジポイントの非回転角度(例えば、θ1、θ2、θ3、θ4)によって回転角度位置決め図形の位置を決定する。例えば、コーディング情報収集円の半径によってコーディング情報領域を決定するなどがある。
S113において、中心位置決め図形の位置と、回転角度位置決め図形の位置と、コーディング領域の位置とによって、中心位置決め図形、回転角度位置決め図形とコーディング領域を生成し、コーディング領域にコーディング情報を書き込むことにより、二次元コードを生成する。ここで、中心位置決め図形の中心は、二次元コードの中心位置と重ね合わせており、回転角度位置決め図形上の複数の予め設定されるエッジポイントは、所定の角度方位に設定され、複数の予め設定されるエッジポイントは、二次元コードの中心位置を円心とする同一の仮想円上に位置し、コーディング領域は、中心位置決め図形と二次元コードの中心位置との間の位置にある。
中心位置決め図形、回転角度位置決め図形及びコーディング領域の位置情報が既知である場合、二次元コードの中心位置を原点とし、これらの図形の座標と形状によって中心位置決め図形、回転角度位置決め図形とコーディング領域を生成することができる。現在既知および将来知るあらゆる技術的手段を用いて、コーディング領域にコーディング情報を書き込むことができる。
一実施形態では、ステップS113における二次元コードを生成することは、情報コードを生成して情報コードを対応するキャリアに印刷することにより、紙製二次元コードラベルなどの二次元コード付きの製品を生成することを含む。
一実施形態では、図3を参照すると、二次元コードは、回転角度補助図形111をさらに含み、この生成方法は、二次元コードの中心位置によって回転角度補助図形111の位置を決定することをさらに含む。
このステップは、二次元コードの中心位置によって位置決め円の円心位置を決定することを含む。複数の位置決め円が存在する場合、各位置決め円の円心位置を決定する。決定された位置決め円の円心、及び予め設定される位置決め円の半径に基づいて、位置決め円の位置を決定することができる。
二次元コードの生成方法は、二次元コードの中心位置によって、貼り付け位置合わせマーク112の位置を決定することをさらに含む。具体的に、予め記憶されている貼り付け位置合わせマーク112と二次元コードの中心との相対的な位置関係を取得し、二次元コードの中心位置に基づいて貼り付け位置合わせマーク112の位置を決定する。例えば、図6を参照すると、二次元コードの中心位置を原点として極座標を作成する場合、0°、90°、180°、270°の方位で、二次元コードの中心位置から予め設定されるマーク距離を持っている4つの位置を、貼り付け位置合わせマークの位置として決定する。
相応的に、ステップS113は、中心位置決め図形の位置と、回転角度位置決め図形の位置と、コーディング領域の位置と、貼り付け位置合わせマークの位置とによって、二次元コードを生成することを含む。
本開示の実施例は、二次元コード認識装置をさらに提供する。図12を参照すると、当該二次元コード認識装置は、中心位置決め図形を決定するための中心位置決め図形決定モジュール121と、中心位置決め図形によって、二次元コードの中心位置を決定するための中心位置決定モジュール122と、二次元コードの中心位置によって、回転角度位置決め図形の位置を決定するための回転角度図形決定モジュール123と、回転角度位置決め図形の位置によって、二次元コードの回転角度を決定するための回転角度決定モジュール124と、二次元コードの中心位置によってコーディング領域を決定するためのコーディング領域決定モジュール125と、コーディング領域と回転角度によってコーディング情報を認識するための認識モジュール126と、を備える。
1つの実施形態において、中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、第1中心位置決め図形の中心位置と第2中心位置決め図形の中心位置は、いずれも二次元コードの中心位置と重ね合わせており、中心位置決め図形決定モジュール121は、第1中心位置決め図形を認識するための第1中心位置決め図形ユニットと、第1中心位置決め図形によって、第1中心位置決め図形の中心位置を決定するための第1中心位置決め図形中心ユニットと、第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行って、第2中心位置決め図形を決定するための第2中心位置決め図形ユニットと、を有し、中心位置決定モジュールは、前記第2中心位置決め図形の中心位置を二次元コードの中心位置として決定することに用いられる。
1つの実施形態において、回転角度図形決定モジュール123は、二次元コードの中心位置を円心として、半径が予め設定される仮想円を決定するための仮想円決定ユニットと、現在の回転角度位置決め図形の予め設定されるエッジポイントの位置を決定するための予設定エッジポイント決定ユニットと、を備え、ここで、仮想円は、回転角度位置決め図形を通過し、予め設定されるエッジポイントは、回転角度位置決め図形のエッジポイントにおける仮想円を通過するエッジポイントである。
回転角度位置決めモジュールは、現在の回転角度位置決め図形の予め設定されるエッジポイントの位置と予め記憶されている最初の回転角度位置決め図形の予め設定されるエッジポイントの位置によって、二次元コードの回転角度を決定することに用いられる。
1つの実施形態において、予設定エッジポイント決定ユニットは、仮想円上のいくつかの予め設定される位置での画素点に対してグレースケールのサンプリングを行い、サンプリングされた画素点の座標情報とグレースケール情報を取得するためのグレースケールのサンプリングサブユニットと、サンプリングされた画素点のグレースケール情報によって、隣接するサンプリングされた画素点のグレースケール勾配を取得するためのグレースケール勾配サブユニットと、グレースケール勾配の最大値に対応するサンプリングされた画素点の位置情報によって、現在の回転角度位置決め図形の予め設定されるエッジポイントの位置を決定するための予設定エッジポイントサブユニットと、を有する。
1つの実施形態において、二次元コードは、回転角度補助図形をさらに含む。
本実施例の装置は、回転角度と二次元コードの中心位置によって、回転角度補助図形の第1中心位置を決定するための第1中心位置モジュールと、回転角度補助図形の中心位置をシードポイントとして領域拡張を行うことによって、回転角度補助図形を決定するための回転角度補助図形モジュールと、回転角度補助図形によって、回転角度補助図形の第2中心位置を決定するための第2中心位置モジュールと、回転角度補助図形の第2中心位置と二次元コードの中心位置によって、精確な回転角度を決定するための精確回転角度モジュールと、をさらに備える。
識別モジュール126は、エンコーディング領域と精確な回転角度によって、エンコーディング情報を認識することに用いられる。
本開示の実施例の各装置における各モジュールの機能は、上述の二次元コード認識方法の対応する説明を参照可能になるため、ここでは繰り返さない。
図13を参照すると、本開示の実施例は二次元コード生成装置を提供し、二次元コードは中心位置決め図形、回転角度位置決め図形及びコーディング領域を含む。
この装置は、二次元コードの中心位置を決定するための二次元コード中心位置取得モジュール131と、二次元コードの中心位置によって、中心位置決め図形の位置と、回転角度位置決め図形の位置と、エンコーディング領域とを決定するための位置決定モジュール132と、中心位置決め図形の位置と、回転角度位置決め図形の位置と、コーディング領域の位置とによって、中心位置決め図形と、回転角度位置決め図形と、コーディング領域とを生成し、コーディング領域にコーディング情報を書き込むことによって、二次元コードを生成するための生成モジュール133と、を備え、ここで、中心位置決め図形の中心は、二次元コードの中心位置と重ね合わせており、回転角度位置決め図形上の複数の予め設定されるエッジポイントは、中心位置に対する所定の角度方位に設置され、複数の予め設定されるエッジポイントは、二次元コードの中心位置を円心とする同一の仮想円上に位置し、コーディング領域は、中心位置決め図形と二次元コードの中心位置との間の位置にある。
中心位置決め図形、回転角度位置決め図形及びコーディング領域の位置が既知である場合、二次元コードの中心位置を原点とし、これらの図形の座標と形状によって中心位置決め図形と、回転角度位置決め図形と、コーディング領域とを生成することができる。現在既知および将来知るあらゆる技術的手段を用いて、コーディング領域にコーディング情報を書き込むことができる。
1つの実施形態において、中心位置決め図形は第1中心位置決め図形と第2中心位置図形を含み、中心位置決め図形の中心位置と第2中心位置決め図形の中心位置は、いずれも二次元コードの中心位置と重ね合わせている。
1つの実施形態において、回転角度中心位置決め図形は少なくとも2個が含まれ、二次元コードの中心位置に対して中心対称ではない2つの回転角度位置決め図形は、少なくとも存在する。
1つの実施形態において、二次元コードは回転角度補助図形をさらに含み、この装置は、二次元コードの中心位置によって、回転角度補助図形の位置を決定するための回転角度補助図形決定モジュールをさらに備え、生成モジュールは、中心位置決め図形の位置と、回転角度位置決め図形の位置と、コーディング領域と、回転角度補助図形の位置とによって、二次元コードを生成することに用いられる。
本発明の実施形態の各装置における各モジュールの機能は、上記の二次元コード生成方法または識別方法における対応する説明を参照可能になるため、ここでは繰り返さない。
図14は、本発明の一実施形態による、二次元コード生成装置および二次元コード認識装置のハードウェア図を示す。図14に示すように、この装置は、メモリ910およびプロセッサ920を備え、メモリ910には、プロセッサ920により実行可能なコンピュータプログラムが記憶される。前記プロセッサ920は、コンピュータプログラムを実行すると、前述の実施形態における二次元コード生成方法および二次元コード認識方法を実現する。メモリ910およびプロセッサ920の数は、1つまたは複数であり得る。
この装置は、外部デバイスと通信し、データの交互伝送を行うための通信インターフェース930をさらに備える。
メモリ910は、高速RAMメモリを含んでいてもよく、また、少なくとも1つのディスクメモリなどの不揮発性メモリ(non-volatile memory)を含んでいてもよい。
メモリ910、プロセッサ920および通信インターフェース930が独立して実現される場合、メモリ910、プロセッサ920および通信インターフェース930は、バスを介して互いに接続されて、完全な相互通信を行うことができる。前記バスは、工業標準のアーキテクチャ(ISA,Industry Standard Architecture)バス、外部デバイス相互接続(PCI,Peripheral Component Interconnect)バス、または拡張工業標準のアーキテクチャ(EISA,Extended Industry Standard Architecture)バスであることができる。前記バスは、アドレスバス、データバス、制御バスなどに分けることができる。表現を容易にするために、図14では太い線が1本だけ用いられているが、バスが1つまたはバスのタイプが1つしかないことを意味するものではない。
選択的に、具体的な実現において、メモリ910、プロセッサ920および通信インターフェース930が1つのチップ上に集積されている場合、メモリ910、プロセッサ920および通信インターフェース930は内部インターフェースを介して互いに通信することができる。
本発明の実施例は、コンピュータプログラムを記憶するコンピュータ可読記憶媒体を提供し、プログラムは、プロセッサによって実行されると、前述の実施形態のいずれかに記載された方法を実現する。
本明細書の記載において、「一実施形態」、「いくつかの実施形態」、「示例」、「具体例」、または「いくつかの示例」などの参照用語の記載は、その実施例または示例に関連して記載された具体的な特徴、構造、材料または特性が、本発明の少なくとも1つの実施例または示例に結合して含まれることを意味する。また、記載された具体的な特徴、構造、材料または特性は、任意の1つまたは複数の実施例または示例において適切な方法で組み合わせることができる。さらに、当業者は、互いに矛盾することなく、本明細書に記載されている異なる実施形態または実施例および異なる実施形態または実施例の特徴を組み合わせることができる。
さらに、「第1」および「第2」という用語は説明目的でのみ用いられて、相対的な重要性を示したり暗示したり、示された技術的特徴の数を暗黙的に示したりするものとして理解することはできない。従って、「第1」および「第2」として限定される特徴は、明示的または暗示的に少なくとも1つのこの特徴を含むことができる。本発明の説明において、「複数」とは、特に明示的かつ具体的に限定されない限り、2つ以上を意味する。
フローチャートでまたはその他の方法で説明される任意のプロセスまたは方法の記載は、特定のロジック的機能またはプロセスのステップを実現するための1つまたは複数の実行可能な命令を含むコードのモジュール、セグメントまたは部分を表していると理解することができ、本発明の好ましい実施形態の範囲は、本発明の実施形態が属する技術分野の当業者によって理解されるように、関連する機能に応じて、基本的に同時の方法または逆の順序を含み、示されたまたは議論された順序ではなく機能が実行される可能性がある追加の実施形態が含まれている。
フローチャートに表されるまたはここでその他の方法で記述されるロジックおよび/またはステップは、例えば、ロジック機能を実現するための実行可能な命令の順序付けられたリストと考えることができ、命令実行システム、装置、またはデバイス(コンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、デバイス、または機器から命令をフェッチして実現できるその他のシステムなど)によって使用するために、またはこれらの命令実行システム、装置、またはデバイスと組み合わせて使用するために、任意のコンピュータ可読媒体で具体化することができる。本明細書では、「コンピュータ可読媒体」とは、命令実行システム、デバイス、またはデバイスによって、またはこれらの命令実行システム、デバイス、またはデバイスと組み合わせて使用するためのプログラムを含み、格納し、通信し、伝播し、または送信することができる任意のデバイスであり得る。コンピュータ可読媒体のより具体例(網羅的ではないリスト)には、次のものが含まれている。1つまたは複数の配線を備えた電気接続部品(電子デバイス)、ポータブルコンピュータディスクケース(磁気デバイス)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能および編集可能な読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバーデバイス、およびポータブル読み取り専用メモリ(CDROM)。また、コンピュータ読み取り可能な媒体は、前記プログラムが印刷された紙やその他の適切な媒体であってもよい。なぜなら、前記プログラムは、例えば、紙やその他の媒体を光学的にスキャンすることによって電子的に得られて、その後、編集、復号化、または必要に応じて他の適切な方法で処理されて、コンピュータのメモリに格納されるからである。
本発明の各部分は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせによって実現できることを理解すべきである。上記の実施形態で、複数のステップまたは方法はメモリに記憶されて、適切な命令実行システムによって実行されるソフトウェアまたはファームウェアによって実現することができる。例えば、ハードウェアで実現する場合、別の実施形態と同様に、データ信号のロジック機能を実現するためのロジックゲート回路を備えたディスクリートロジック回路、適切な組み合わせロジックゲート回路を備えた専用集積回路、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などの本領域で公知の技術のいずれか1つまたはその組み合わせによって実現することができる。
当業者は、上記の実施例の方法を実施する全部または一部のステップが、プログラムを通じて関連するハードウェアに指示することによって完了することができることを理解することができる。前記プログラムは、コンピュータ可読記憶媒体に記憶することができ、プログラムが実行されるとき、それは、方法実施例のステップのうちの1つまたはそれらの組み合わせを含む。
さらに、本発明の様々な実施形態における各機能ユニットは、1つの処理モジュールに統合され得るか、または各ユニットは、物理的に単独で存在し得るか、または2つ以上のユニットが1つのモジュールに統合され得る。上記の統合モジュールは、ハードウェアまたはソフトウェア機能モジュールのいずれかの形で実現することができる。前記の統合モジュールは、ソフトウェア機能モジュールの形で実現されて、独立した製品として販売または用いられる場合には、コンピュータで読み取り可能な記憶媒体に記憶されることができる。前記の記憶媒体は、リードオンリーメモリ、磁気ディスクまたは光ディスクなどであり得る。
本発明の実施例は、本発明のいずれかの実施例に提供される二次元認識装置を備える小車をさらに提供する。1つの実施形態では、この小車は、二次元コードの画像を撮影するためのカメラと、二次元コードの認識装置の認識結果によって、小車の運行を制御するためのコントローラと、をさらに備える。
二次元コード認識装置の認識結果は、二次元コードの回転角度認識結果とコーディング情報認識結果を含む。ここで、二次元コードの回転角度認識結果を用いて、小車が撮影された二次元コードに対して偏り回転した角度を知ることができる。これにより、小車は現在の位置を知ることができる。コーディング情報は、小車の任務指令などを含む。
本実施例の小車は、AGV(Automated Guided Vehicle、一般的にAGVとも呼ばれて、電磁式や光学式などの自動誘導装置を有し、所定の誘導経路に沿って走行可能になり、安全保護及び様々な伝達機能を備えた輸送車両を指す)であってもよい。AGV小車には、組み込みコンピューティングプラットフォームとカメラが搭載されており、引き続き画像を収集し、画像分析を行い、視野内の二次元コードの位置と回転角度に基づいて現在の姿勢を計算することができる。
具体的な利用シーンとしては、主にAVG小車を測位、ナビゲートするために、二次元コードを倉庫の床に貼ることである。二次元コードが貼り付けられる位置は固定されており、各二次元コードには、現在の位置を示すための固有の情報が含まれている。二次元コードのパターンは、特定な中心位置と主方向がある。AGV小車は、下向きカメラでの二次元コードの撮像に基づいて、AGV小車の現在の位置と回転方向を逆推測することができる。
AGV小車には、組み込みコンピューティングプラットフォームとカメラが搭載されており、引き続き画像を収集して画像分析を行い、視野内の二次元コードの位置と回転角度に基づいて現在の姿勢を計算することができる。
本発明の実施例は、本発明のいずれかの実施例に提供される二次元コード生成装置により生成された二次元コードをさらに提供する。生成された二次元コードの内容は、上記の実施例の説明を参照可能になるため、ここでは繰り返さない。
本発明の実施例は、二次元コードが設置されている製品をさらに提供し、二次元コードは、中心位置決め図形、回転角度位置決め図形およびコーディング領域を含み、ここで、中心位置決め図形は二次元コードの中心位置を決定することに用いられ、回転角度位置決め図形は二次元コードの回転角度を決定することに用いられ、コーディング領域は、コーディング情報を含み、中心位置決め図形の中心は、二次元コードの中心位置と重ね合わせており、回転角度位置決め図形には、複数の予め設定されるエッジポイントがあり、複数の予め設定されるエッジポイントは、中心位置に対して所定の角度方位に設置され、複数の予め設定されるエッジポイントは、二次元コードの中心位置を円心とする同一の仮想円上に位置する。
中心位置決め図形は第1中心位置決め図形と第2中心位置決め図形を含み、第1中心位置決め図形と第2中心位置決め図形はいずれも二次元コードの中心位置と重ね合わせている。
二次元コードは回転角度補助図形をさらに含み、回転角度補助図形は、回転角度位置決め図形に従って決定された二次元コードの回転角度を置き換えるために、二次元コードの精確な回転角度を取得することに用いられ、予め設定される各角度方位の角度は、素数である。
また、詳細に記載されていない二次元コードの内容については、上記実施例の説明を参照可能になるため、ここでは繰り返さない。
さらに、本実施例における二次元コードが設置されている製品は、本実施例の二次元コードを印刷またはコーティングした紙本、本板、金属板を含み得る。また、本実施形態の二次元コードを表示する携帯電話、コンピュータ、テレビ、LEDディスプレイなどの電子デバイスを含むことができる。
以上、本発明の具体的な実施形態に過ぎないが、本発明の保護範囲はこれに限定されるものではなく、当業者であれば、本発明に開示す技術的範囲内で、様々な変更または置換を容易に考えることができ、本発明の保護範囲に包含されるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に準拠するべきである。

Claims (25)

  1. 二次元コードの認識方法であって、
    前記二次元コードは、中心位置決め図形と回転角度位置決め図形を含み、
    前記二次元コードの認識方法は、
    前記中心位置決め図形を決定することと、
    前記中心位置決め図形によって、前記二次元コードの中心位置を決定することと、
    前記二次元コードの中心位置によって、前記回転角度位置決め図形の位置を決定することと、
    前記回転角度位置決め図形の位置によって、前記二次元コードの回転角度を決定することと、を含み、
    前記二次元コードの中心位置によって、前記回転角度位置決め図形の位置を決定することは、
    前記二次元コードの中心位置を円心として、半径が予め設定される仮想円を決定することと、
    前記仮想円において、現在の前記回転角度位置決め図形の予め設定されるエッジポイントを決定することと、を含む、
    ことを特徴とする二次元コードの認識方法。
  2. 前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記第1中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、
    前記中心位置決め図形を決定することは、
    前記第1中心位置決め図形を認識することと、
    前記第1中心位置決め図形によって、前記第1中心位置決め図形の中心位置を決定することと、
    前記第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行って、前記第2中心位置決め図形を決定することと、を含み、
    前記中心位置決め図形によって、前記二次元コードの中心位置を決定することは、
    前記第2中心位置決め図形の中心位置を、前記二次元コードの中心位置として決定することを含む
    ことを特徴とする請求項1に記載の二次元コードの認識方法。
  3. 前記第2中心位置決め図形は、円形であり、
    前記第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行って、前記第2中心位置決め図形を決定することは、
    第1中心位置決め図形の中心位置をシードポイントとして、それぞれ鉛直方向および水平方向に拡張を行い、鉛直方向の拡張経路および水平方向の拡張経路を決定することを含み、
    前記第2中心位置決め図形の中心位置を前記二次元コードの中心位置として決定することは、
    前記鉛直方向の拡張経路の中点と水平方向の拡張経路の中点によって、前記第2中心位置決め図形の中心位置を、前記二次元コードの中心位置として決定することを含む
    ことを特徴とする請求項2に記載の二次元コードの認識方法。
  4. 前記第1中心位置決め図形は円形リングであり、
    前記第1中心位置決め図形を認識することは、
    二次元コードをスキャンし、隣接する画素のグレースケール値の差から前記第1中心位置決め図形のいくつかのエッジポイントを決定することを含み、
    前記第1中心位置決め図形によって、前記第1中心位置決め図形の中心位置を決定することは、
    前記第1中心位置決め図形のいくつかのエッジポイントによって、前記第1中心位置決め図形上に位置する2つのポイントを選択することと、
    選択された前記第1中心位置決め図形上に位置する2つのポイントと予め設定される前記第1中心位置決め図形の円形リングの半径によって、前記第1中心位置決め図形の中心位置を決定することを含む
    ことを特徴とする請求項2に記載の二次元コードの認識方法。
  5. 前記回転角度位置決め図形の位置によって、前記二次元コードの回転角度を決定することは、
    現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置と、前記回転角度位置決め図形の未回転時の予め設定されるエッジポイントの予測位置によって、前記二次元コードの回転角度を決定することを含む
    ことを特徴とする請求項1に記載の二次元コードの認識方法。
  6. 現在の前記回転角度位置決め図形の予め設定されるエッジポイントを決定することは、
    前記仮想円上のいくつかの予め設定される位置での画素点に対してグレースケールのサンプリングを行い、サンプリングされた画素点の座標情報とグレースケール情報を取得することと、
    前記サンプリングされた画素点のグレースケール情報によって、隣接するサンプリングされた画素点のグレースケール勾配を取得することと、
    グレースケール勾配の最大値に対応する、サンプリングされた画素点の位置情報によって、現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置を決定することと、を含む
    ことを特徴とする請求項1に記載の二次元コードの認識方法。
  7. 前記二次元コードは、コーディング情報を含むコーディング領域と、回転角度補助図形とを含み、
    前記二次元コードの認識方法は、
    前記回転角度と前記二次元コードの中心位置によって、前記回転角度補助図形の第1中心位置を決定することと、
    前記回転角度補助図形の中心位置をシードポイントとして領域拡張を行って、前記回転角度補助図形を決定することと、
    前記回転角度補助図形によって、前記回転角度補助図形の第2中心位置を決定することと、
    前記回転角度補助図形の第2中心位置と前記二次元コードの中心位置によって、精確な回転角度を決定することと、
    前記二次元コードの中心位置によって、前記コーディング領域を決定することと、
    前記コーディング領域と前記精確な回転角度によって、前記コーディング情報を認識することをさらに含む
    ことを特徴とする請求項1に記載の二次元コードの認識方法。
  8. 前記二次元コードは、コーディング情報を含むコーディング領域を含み、極座標で前記コーディング情報をレイアウトし、
    前記二次元コードの認識方法は、
    前記二次元コードの中心位置によって、前記コーディング領域を決定することと、
    前記コーディング領域と前記回転角度によって、前記コーディング情報を認識することと、をさらに含み、
    前記二次元コードの中心位置によって、前記コーディング領域を決定することは、
    前記二次元コードの中心位置によって、前記コーディング領域内に位置し、予め設定される異半径を有するいくつかのコーディング情報収集円を決定することを含み、
    前記コーディング領域と前記回転角度によって、前記コーディング情報を認識することは、
    前記回転角度から、各前記コーディング情報収集円上の画素点の座標情報とグレースケール値情報を、予め設定される角度ごとに収集することと、
    収集された前記画素点の座標情報とグレースケール値情報によって、前記コーディング情報を認識することと、を含む
    ことを特徴とする請求項1に記載の二次元コードの認識方法。
  9. 二次元コードの生成方法であって、
    前記二次元コードは、中心位置決め図形と、回転角度位置決め図形と、コーディング情報を含むコーディング領域を含み、
    前記二次元コードの生成方法は、
    前記二次元コードの中心位置を決定することと、
    前記二次元コードの中心位置によって、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、コーディング領域とを決定することと、
    前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、前記コーディング領域の位置によって、前記中心位置決め図形と、前記回転角度位置決め図形と、前記コーディング領域とを生成し、前記コーディング領域に前記コーディング情報を書き込むことによって、前記二次元コードを生成することと、を含み、ここで、前記中心位置決め図形の中心は、前記二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形上の複数の予め設定されるエッジポイントは、前記中心位置に対する所定の角度方位に設置されて、前記複数の予め設定されるエッジポイントは、前記二次元コードの中心位置を円心とする同一の仮想円上に位置し、前記コーディング領域は、中心位置決め図形と前記二次元コードの中心位置との間の位置にある
    ことを特徴とする二次元コードの生成方法。
  10. 前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、前記第1中心位置決め図形は、円形リングであり、前記第2中心位置決め図形は、円形であり、
    前記コーディング領域は、リングであり、前記第1中心位置決め図形と前記第2中心位置決め図形との間の領域に位置し、
    前記回転角度位置決め図形は、少なくとも2つが含まれ、二次元コードの中心位置に対して中心対称ではない2つの前記回転角度位置決め図形は、少なくとも存在する
    ことを特徴とする請求項9に記載の二次元コードの生成方法。
  11. 前記二次元コードは、いくつかの位置決め円を含む回転角度補助図形をさらに含み、
    前記二次元コードの生成方法は、
    前記二次元コードの中心位置によって、各前記位置決め円の円心位置を決定することと、
    前記回転角度補助図形の位置によって、前記回転角度補助図形を生成すること、をさらに含む
    ことを特徴とする請求項10に記載の二次元コードの生成方法。
  12. 二次元コードの認識装置であって、
    前記二次元コードは、中心位置決め図形と回転角度位置決め図形を含み、
    前記二次元コードの認識装置は、
    中心位置決め図形を決定するための中心位置決め図形決定モジュールと、
    前記中心位置決め図形によって、前記二次元コードの中心位置を決定するための中心位置決定モジュールと、
    前記二次元コードの中心位置によって、前記回転角度位置決め図形の位置を決定するための回転角度図形決定モジュールと、
    前記回転角度位置決め図形の位置によって、前記二次元コードの回転角度を決定するための回転角度決定モジュールと、を備え、
    前記回転角度位置決め図形決定モジュールは、
    前記二次元コードの中心位置を円心として、半径が予め設定される仮想円を決定するための仮想円決定ユニットと、
    前記仮想円において、現在の前記回転角度位置決め図形の予め設定されるエッジポイントを決定するための予設定エッジポイント決定ユニットと、を有する
    ことを特徴とする二次元コードの認識装置。
  13. 前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記第1中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、
    前記中心位置決め図形決定モジュールは、
    前記第1中心位置決め図形を認識するための第1中心位置決め図形ユニットと、
    前記第1中心位置決め図形によって、前記第1中心位置決め図形の中心位置を決定するための第1中心位置決め図形中心ユニットと、
    前記第1中心位置決め図形の中心位置をシードポイントとして領域拡張を行って、前記第2中心位置決め図形を決定するための第2中心位置決め図形ユニットと、を有し、
    前記中心位置決定モジュールは、前記第2中心位置決め図形の中心位置を前記二次元コードの中心位置として決定することに用いられる
    ことを特徴とする請求項12に記載の二次元コードの認識装置。
  14. 前記回転角度決定モジュールは、
    現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置と、予め記憶される最初の前記回転角度位置決め図形の予め設定されるエッジポイントの位置によって、前記二次元コードの回転角度を決定することに用いられる
    ことを特徴とする請求項12に記載の二次元コードの認識装置。
  15. 前記予設定エッジポイント決定ユニットは、
    前記仮想円上のいくつかの予め設定される位置での画素点に対してグレースケールのサンプリングを行い、サンプリングされた画素点の座標情報とグレースケール情報を取得するためのグレースケールのサンプリングサブユニットと、
    前記サンプリングされた画素点のグレースケール情報によって、隣接するサンプリングされた画素点のグレースケール勾配を取得するためのグレースケール勾配サブユニットと、
    グレースケール勾配の最大値に対応する前記サンプリングされた画素点の位置情報によって、現在の前記回転角度位置決め図形の予め設定されるエッジポイントの位置を決定するための予設定エッジポイントサブユニットと、を有する
    ことを特徴とする請求項12に記載の二次元コードの認識装置。
  16. 前記二次元コードは、コーディング情報を含むコーディング領域と、回転角度補助図形とを含み、
    前記二次元コードの認識装置は、
    前記回転角度と前記二次元コードの中心位置によって、前記回転角度補助図形の第1中心位置を決定するための第1中心位置モジュールと、
    前記回転角度補助図形の中心位置をシードポイントとして領域拡張を行って、前記回転角度補助図形を決定するための回転角度補助図形モジュールと、
    前記回転角度補助図形によって、前記回転角度補助図形の第2中心位置を決定するための第2中心位置モジュールと、
    前記二次元コードの中心位置によって、前記コーディング領域を決定するためのコーディング領域決定モジュールと、
    前記コーディング領域と前記回転角度によって、前記コーディング情報を認識するための認識モジュールをさらに備える
    ことを特徴とする請求項12に記載の二次元コードの認識装置。
  17. 二次元コードの生成装置であって、
    前記二次元コードは、中心位置決め図形と、回転角度位置決め図形と、コーディング情報を含むコーディング領域を含み、
    前記二次元コードの生成装置は、
    前記二次元コードの中心位置を決定するための二次元コード中心位置決定モジュールと、
    前記二次元コードの中心位置によって、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、コーディング領域を決定するための位置決定モジュールと、
    前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、前記コーディング領域の位置とによって、前記中心位置決め図形と、前記回転角度位置決め図形と、前記コーディング領域とを生成し、前記コーディング領域に前記コーディング情報を書き込むことによって、前記二次元コードを生成するための生成モジュールと、を備え、
    ここで、前記中心位置決め図形の中心は、前記二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形上の複数の予め設定されるエッジポイントは、前記中心位置に対する所定の角度方位に設置され、前記複数の予め設定されるエッジポイントは、前記二次元コードの中心位置を円心とする同一の仮想円上に位置し、前記コーディング領域は、中心位置決め図形と前記二次元コードの中心位置との間の位置にある
    ことを特徴とする二次元コードの生成装置。
  18. 前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形は、少なくとも2つが含まれ、二次元コードの中心位置に対して中心対称ではない2つの前記回転角度位置決め図形は、少なくとも存在し、
    前記二次元コードは、回転角度補助図形をさらに含み、
    前記二次元コードの生成装置は、
    前記二次元コードの中心位置によって、前記回転角度補助図形の位置を決定するための回転角度補助図形決定モジュールをさらに備え、
    前記生成モジュールは、前記中心位置決め図形の位置と、前記回転角度位置決め図形の位置と、前記コーディング領域の位置と、前記回転角度補助図形の位置とによって、前記二次元コードを生成することに用いられる
    ことを特徴とする請求項17に記載の二次元コードの生成装置。
  19. 少なくとも1つのプロセッサと、
    1つまたは複数のプログラムを記憶するための記憶装置と、を備え、
    前記1つまたは複数のプログラムが前記少なくとも1つのプロセッサに実行されると、前記少なくとも1つのプロセッサに請求項1~8のいずれか1項に記載の二次元コードの認識方法を実現させる
    ことを特徴とする二次元コードの認識装置。
  20. 少なくとも1つのプロセッサと、
    1つまたは複数のプログラムを記憶するための記憶装置と、を備え、
    前記1つまたは複数のプログラムが前記少なくとも1つのプロセッサに実行されると、前記少なくとも1つのプロセッサに請求項9~11のいずれか1項に記載の二次元コードの生成方法を実現させる
    ことを特徴とする二次元コードの生成装置。
  21. 小車であって、
    請求項12~16及び請求項19のいずれか1項に記載の二次元コードの認識装置を備え、
    二次元コードの画像を撮影するためのカメラと、
    前記二次元コードの認識装置の認識結果によって、前記小車の運行を制御するためのコントローラと、をさらに備える
    ことを特徴とする小車。
  22. 中心位置決め図形と、回転角度位置決め図形と、コーディング領域とを含み、
    前記中心位置決め図形は、二次元コードの中心位置を決定することに用いられ、
    前記回転角度位置決め図形は、前記二次元コードの回転角度を決定することに用いられ、
    コーディング領域は、コーディング情報を含み、
    中心位置決め図形の中心は、二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形には、複数の予め設定されるエッジポイントがあり、前記複数の予め設定されるエッジポイントは、中心位置に対して所定の角度方位に設置され、前記複数の予め設定されるエッジポイントは、前記二次元コードの中心位置を円心とする同一の仮想円上に位置する
    ことを特徴とする二次元コード。
  23. 二次元コードが設置されている製品であって、
    前記二次元コードは、中心位置決め図形と、回転角度位置決め図形と、コーディング領域を含み、
    前記中心位置決め図形は、前記二次元コードの中心位置を決定することに用いられ、
    前記回転角度位置決め図形は、前記二次元コードの回転角度を決定することに用いられ、
    コーディング領域は、コーディング情報を含み、
    中心位置決め図形の中心は、二次元コードの中心位置と重ね合わせており、前記回転角度位置決め図形には、複数の予め設定されるエッジポイントがあり、前記複数の予め設定されるエッジポイントは、中心位置に対して所定の角度方位に設置され、前記複数の予め設定されるエッジポイントは、前記二次元コードの中心位置を円心とする同一の仮想円上に位置する
    ことを特徴とする製品。
  24. 前記中心位置決め図形は、第1中心位置決め図形と第2中心位置決め図形を含み、前記第1中心位置決め図形の中心位置と前記第2中心位置決め図形の中心位置は、いずれも前記二次元コードの中心位置と重ね合わせており、
    前記二次元コードは、回転角度補助図形をさらに含み、前記回転角度補助図形は、前記回転角度位置決め図形に従って決定された前記二次元コードの回転角度を置き換えるために、前記二次元コードの精確な回転角度を取得することに用いられ、予め設定される各角度方位の角度は、素数である
    ことを特徴とする請求項23に記載の製品。
  25. コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、
    当該コンピュータプログラムがプロセッサにより実行されると、請求項1~11のいずれか1項に記載の方法を実現する
    ことを特徴とするコンピュータ可読記憶媒体。
JP2021559117A 2019-04-28 2019-05-09 二次元コードの認識方法、生成方法、装置、二次元コード及び小車 Active JP7289927B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910349876.X 2019-04-28
CN201910349876.XA CN110084080B (zh) 2019-04-28 2019-04-28 二维码识别和生成的方法、装置、二维码和小车
PCT/CN2019/086158 WO2020220388A1 (zh) 2019-04-28 2019-05-09 二维码识别和生成的方法、装置、二维码和小车

Publications (2)

Publication Number Publication Date
JP2022528895A JP2022528895A (ja) 2022-06-16
JP7289927B2 true JP7289927B2 (ja) 2023-06-12

Family

ID=67417326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021559117A Active JP7289927B2 (ja) 2019-04-28 2019-05-09 二次元コードの認識方法、生成方法、装置、二次元コード及び小車

Country Status (3)

Country Link
JP (1) JP7289927B2 (ja)
CN (1) CN110084080B (ja)
WO (1) WO2020220388A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110610219B (zh) * 2019-08-12 2020-11-06 上海交通大学 一种彩色环形二维码及其生成和解码方法
CN113033743A (zh) * 2019-12-25 2021-06-25 北京极智嘉科技股份有限公司 定位标识、识别定位标识的机器人、定位方法
CN113050612B (zh) * 2019-12-26 2024-06-11 北京极智嘉科技股份有限公司 印刷有定位标识的介质、图像处理方法及自动导引车
CN111798532B (zh) 2020-08-03 2021-03-16 广州市宝绅科技应用有限公司 一种基于质心重合的网屏编码方法及系统
CN112070814B (zh) * 2020-08-31 2024-04-02 杭州迅蚁网络科技有限公司 一种靶标角度识别方法、装置
CN112414225A (zh) * 2020-11-13 2021-02-26 中国船舶重工集团公司第七0七研究所 一种二维码和圆形编码盘相结合的靶标及其识别方法
CN114912475A (zh) * 2021-02-07 2022-08-16 华为技术有限公司 二维码识别方法及相关装置
CN113361292B (zh) * 2021-05-25 2023-04-28 北京航宇荣康科技股份有限公司 基于人工智能和二维码导航的agv行驶优化方法及系统
CN114239631B (zh) * 2021-11-19 2024-03-26 支付宝(杭州)信息技术有限公司 二维码识别方法、装置、存储介质及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016110528A (ja) 2014-12-10 2016-06-20 ワム・システム・デザイン株式会社 カラーコード、カラーコード読取装置、カラーコード読取方法、及びプログラム。

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7621459B2 (en) * 2005-04-25 2009-11-24 Direct Measurements Inc. Concentric-ring circular bar code
US7878415B2 (en) * 2005-04-25 2011-02-01 Direct Measurements Inc. Segmented circular bar code
CN101086761A (zh) * 2006-06-08 2007-12-12 姜晓航 高效信息点阵图形及其生成和解码方法
CN102944236B (zh) * 2012-11-20 2015-03-18 无锡普智联科高新技术有限公司 基于多个二维码读码器的移动机器人定位系统及方法
CN104346597B (zh) * 2014-10-29 2018-04-27 中山大学 一种qr码检测与校正提取方法及ip核
CN104331689B (zh) * 2014-11-13 2016-03-30 清华大学 一种合作标识及多智能个体身份与位姿的识别方法
CN105989317B (zh) * 2015-02-11 2021-10-08 北京鼎九信息工程研究院有限公司 一种二维码的识别方法及装置
CN106447001A (zh) * 2016-09-19 2017-02-22 华南农业大学 一种圆形二维码及其编码方法和应用
CN106382934A (zh) * 2016-11-16 2017-02-08 深圳普智联科机器人技术有限公司 一种高精度移动机器人定位系统和方法
CN107748855B (zh) * 2017-08-29 2021-01-08 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种二维码寻像图形的检测方法
CN108763996B (zh) * 2018-03-23 2021-06-15 南京航空航天大学 一种基于二维码的平面定位坐标与方向角测量方法
CN109190437B (zh) * 2018-08-01 2021-03-16 飞天诚信科技股份有限公司 一种读取二维码的方法及读取装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016110528A (ja) 2014-12-10 2016-06-20 ワム・システム・デザイン株式会社 カラーコード、カラーコード読取装置、カラーコード読取方法、及びプログラム。

Also Published As

Publication number Publication date
CN110084080B (zh) 2021-07-09
JP2022528895A (ja) 2022-06-16
WO2020220388A1 (zh) 2020-11-05
CN110084080A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
JP7289927B2 (ja) 二次元コードの認識方法、生成方法、装置、二次元コード及び小車
US9892300B2 (en) Two-dimensional code
CN105912971B (zh) 一种用于agv导航的规则图形码码阵系统及其读码方法
CN110136182B (zh) 激光点云与2d影像的配准方法、装置、设备和介质
CN110108283B (zh) 一种基于多二维码视觉的高精度定位方法
EP3048555B1 (en) Image processing device, image processing method, and image processing program
CN108717709A (zh) 图像处理系统及图像处理方法
US9898637B2 (en) Two-dimensional code
US11029399B2 (en) System and method for calibrating light intensity
CN111433780A (zh) 车道线检测方法、设备、计算机可读存储介质
JP4694624B2 (ja) 画像補正装置及び方法、並びにコンピュータプログラム
CN115546313A (zh) 车载相机自校准方法、装置、电子设备及存储介质
CN114897669A (zh) 一种标注方法、装置及电子设备
CN115187769A (zh) 一种定位方法及装置
CN113240656B (zh) 视觉定位方法及相关装置、设备
CN109737962B (zh) 一种基于特殊圆环编码的机器视觉自主定位方法和系统
CN115014328A (zh) 一种栅格地图的动态加载方法、装置、设备和介质
CN110163914B (zh) 基于视觉的定位
CN111598911B (zh) 一种机器人平台的自主巡线方法、装置及存储介质
CN112446895B (zh) 棋盘格角点自动提取方法、系统、设备及介质
CN111598917A (zh) 数据嵌入方法、装置、设备及计算机可读存储介质
US20200110957A1 (en) A fiducial marker, method for forming the fiducial marker, and system for sensing thereof
CN115112098A (zh) 一种单目视觉的一维二维测量方法
CN112381939A (zh) 一种视觉slam方法、装置、机器人及存储介质
CN113147746A (zh) 坡道车位的探测方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230222

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230531

R150 Certificate of patent or registration of utility model

Ref document number: 7289927

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150