JP2017097624A - 二次元コード、画像読取り装置、画像読取り方法及びプログラム - Google Patents
二次元コード、画像読取り装置、画像読取り方法及びプログラム Download PDFInfo
- Publication number
- JP2017097624A JP2017097624A JP2015229145A JP2015229145A JP2017097624A JP 2017097624 A JP2017097624 A JP 2017097624A JP 2015229145 A JP2015229145 A JP 2015229145A JP 2015229145 A JP2015229145 A JP 2015229145A JP 2017097624 A JP2017097624 A JP 2017097624A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- dimensional code
- data
- finder pattern
- image
- 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.)
- Granted
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
Abstract
【解決手段】本発明の二次元コード100は、対象データに対応するビット列をパターンとして表したデータ部150と、データ部150から分離して配置されるファインダパターン110と、を備えることを特徴とする。
【選択図】図2
Description
なお、特許文献2の自動計測解析方法は、ターゲットの三次元座標を計測するものであり、汚れが付きやすい環境等で二次元コードを使うことを想定したものではない。
本発明の画像読取り装置は、前記二次元コードを読取る画像読取り装置であって、前記二次元コードを含む画像データから前記ファインダパターンを検出する検出手段と、前記検出手段が検出した前記画像データの前記ファインダパターンと、設計上の二次元コードとから、前記画像データの前記データ部の位置を算出する算出手段と、前記算出手段が算出した前記画像データの前記データ部の位置に基づいて、前記画像データの前記データ部を読取る読取り手段と、を備えることを特徴とする。
<第1実施形態>
はじめに、図1を参照して、本実施形態の二次元コードシステム1について説明する。
二次元コードシステム1は、印刷装置10と、画像読み取り装置20とを備える。
印刷装置10は、二次元コード化の対象とする対象データから二次元コード100を生成し、耐熱ラベルや印刷用紙に二次元コード100を印刷して、二次元コードが印刷された印刷物を作成する。
画像読み取り装置20は、二次元コード100が印刷された印刷物から二次元コード100を読取り、二次元コード100に表された対象データを取得する。
ファインダパターン110は、データ部150を検出するための検出用パターンであり、円環部111と、方向特定部120とを備える。
円環部111は、複数の円環112を備える。本実施形態では、第1円環112a、第2円環112b及び第3円環112cの3つの円環を備え、それぞれの円環112は同心円となる。それぞれの円環112は、同じ太さであり、同間隔に離間する。なお、円環112の数は3つ限定されるものではなく、1つや2つなど、3つ以外の数としてもよい。
方向特定部120は、ファインダパターン110の基準方向W10を特定できるパターンであり、円環部111(円環112cの最外部)に沿って、円環部111の円周方向に伸びる複数の突起部121を備える。本実施形態では、第1突起部121a、第2突起部121b、第3突起部121c及び第4突起部121dの4つの突起部121を備える。それぞれの突起部121は、円環部111の円周方向の長さが異なる。なお、突起部121の数は4つ限定されるものではなく、1つや2つなど、4つ以外の数としてもよい。
データ部150は、データ領域部151と、枠部152とを備え、矩形状である。
データ領域部151は、二次元コード100の対象データに対応するビット列をパターンとして表す。データ領域部151は、複数のセル領域を備え、それぞれのセル領域が1ビットのデータを表す。例えば、セル領域が塗りつぶされているとき1であり、塗りつぶされていないとき0とする。データ領域部151には、マトリクス状に、同形状のセル領域が並ぶ。
枠部152は、データ領域部151の外周を囲む矩形状の枠である。
データ部150におけるファインダパターン110と対向する辺の長さは、ファインダパターン110の円環部111の直径の略2倍である。
なお、図2では、ファインダパターン110は、データ部150の長辺と対向する位置に配置されるが、データ部150の短辺と対向する位置に配置されてもよく、その他の位置に配置されてもよい。
画像データ取得部21は、二次元コード100が印刷された印刷物を撮影して画像データを取得する。画像データ取得部21は、レンズ等の光学系と、CCDやCMOS等の撮像素子とを備える。印刷物からの光が光学系を通り撮像素子に到達する。撮像素子は、撮像素子に到達した光を電気信号に変換する。画像データ取得部21は、この電気信号を元に、画像データを生成して取得する。なお、画像データ取得部21は、外部の装置からネットワーク経由で画像データを受信したり、画像読み取り装置20に接続された記録媒体から画像データを読取ったりして、画像データを取得してもよい。
検出部22は、画像データ取得部21が取得した画像データから、二次元コード100のファインダパターン110を検出する。
算出部23は、検出部22が検出した画像データのファインダパターン110と、予め記憶してある設計上の二次元コード100とから、画像データのデータ部150の位置を算出する。
読取り部24は、算出部23が算出した画像データのデータ部150の位置に基づいて、データ部150に表されるデータを読取る。
ステップS100において、印刷装置10は、外部の装置からデータを受信したり、ユーザが入力したデータを取得したりして、二次元コード100にする対象データを特定する。
ステップS101において、印刷装置10は、対象データから、データ部150に表すビット列であるコード化ビット列を生成する。この処理について、図4を参照して説明する。
印刷装置10は、ステップS100において、既に二次元コード100にする対象データD100を特定している。
次に、印刷装置10は、ビット列D110から、固定ビット長符号化により、符号化データD120を生成する。
次に、印刷装置10は、符号化データD120から誤り検出符号D131を生成し、符号化データD120に誤り検出符号D131を付加して、誤り検出可能な符号化データD130を生成する。誤り検出の方法には、例えばCRC(巡回冗長検査)が使われる。
次に、印刷装置10は、誤り検出可能な符号化データD130から、誤り訂正符号D141を生成し、誤り検出可能な符号化データD130に誤り訂正符号D141を付加して、誤り訂正可能な符号化データD140を生成する。誤り訂正符号D141には、例えば、リード・ソロモン符号が使われる。
次に、印刷装置10は、誤り訂正可能な符号化データD140をビット列にして、コード化ビット列D150を得る。
印刷装置10は、このようにしてコード化ビット列D150を得る。
ステップS103において、印刷装置10は、耐熱ラベルや印刷用紙に二次元コード100を印刷する。
ステップS200において、画像読取り装置20の画像データ取得部21は、二次元コード100が印刷された印刷物を撮影して画像データを取得する。
ステップS201において、画像読取り装置20の検出部22は、画像データ取得部21が取得した画像データから、二次元コード100のファインダパターン110を検出する。なお、以降では、画像データ取得部21が取得した画像データを、単に画像データともいう。
図6(a)に、画像データの例を示す。二次元コード100が印刷された印刷物を撮影するとき、常に正面から撮影できるとは限らず、斜め方向から印刷物を撮影することがある。図6(a)の例は、このように、斜め方向から印刷物を撮影したときの画像データの例である。
検出部22は、画像データを左側の端部から右方向に走査し、画素毎の輝度値を取得する。そして、検出部22は、輝度値が所定値よりも大きく上昇する場所を黒白変化点として検出する。また、検出部22は、黒白変化点の前後の輝度値の中間値を白黒判定閾値として記憶する。
検出部22は、黒白変化点を3つ検出し、1個目と2個目の黒白変化点の距離と2個目と3個目の黒白変化点の距離との差が所定値以下のとき、検出部22はこの3つの黒白変化点を、ファインダパターン110の第1縞候補(左縞候補)とする。
検出部22は、走査線L100に沿って左から右に画像データを走査するものとする。このときに検出部22が取得する輝度値を輝度値グラフG10に示す。輝度値グラフG10の横方向は走査線L100の位置を表し、輝度値グラフG10の縦方向は、輝度値グラフG10の横方向で表される走査線L100の位置での輝度値を表す。検出部22は、輝度値が大きいと白に近く、輝度値が小さいと黒に近いものとする。
輝度値グラフG10に示すとおり、点P100、P101及びP102で、輝度値が大きく上昇する。この輝度値の上昇量は、所定値よりも大きいとする。すると、点P100、P101及びP102が黒白変化点となる。
次に、検出部22は、点P100と点P101との距離と、点P101と点P102との距離と、の差の絶対値が所定値以下か否かを判断する。図6(b)の例では、所定値以下とする。このとき、検出部22は、点P100、P101及びP102を第1縞候補として検出する。
検出部22は、白黒変化点を3つ検出し、1個目と2個目の白黒変化点の距離と、2個目と3個目の白黒変化点の距離と、の差の絶対値が所定値以下のとき、この3つの白黒変化点を、ファインダパターン110の第2縞候補(右縞候補)とする。
図6(c)に示す例では、検出部22は、第2縞候補の検出のために、検出部22が走査線L110に沿って走査を検出する。走査線L110での走査に対応する輝度値グラフG11に示されるように、点P110、P111及びP112が右縞候補である。
検出部22は、同様に、第3縞候補の検出のために走査線L120に沿って走査し、第4縞候補の検出のために走査線L130に沿って走査する。それぞれの輝度値グラフG12、G13に示されるように、点P120、P121及びP122が第3縞候補であり、点P130、P131及びP132が第4縞候補である。
なお、検出部22は、第2〜第4縞候補のうち、1つ又は2つの縞候補を検出したときに、ファインダパターン110を検出したものとしてもよい。
また、第1縞候補は、右方向以外の方向の走査で得られる縞候補であってもよい。また、第1〜第4縞候補は、それぞれの縞候補の検出時の走査の方向が互いに異なれば、どの方向の走査で検出できる縞候補であってもよい。ただし、走査の方向は直線状であることが、走査の簡易化のために好ましい。
また、縞候補の数は、2個や3個などでもよく、4個に限定されるものではない。そして、検出部22は、2以上の所定の数の縞候補を検出したときに、ファインダパターン110を検出したものとしてもよい。
本実施形態では、第3円環112cの内側の境界線を楕円として算出する。
まず、図7を参照して、楕円候補点を抽出する処理について説明する。図7(a)に示すように、算出部23は、ステップS201で算出されたファインダパターン中心点P200から外方に向かう走査線L200に沿って、画像データを走査していき、3個目の白黒変化点を楕円候補点P201として検出する。走査線L200は、ファインダパターン中心点P200を中心として放射状となるように複数設けられ、それぞれの走査線L200に沿って走査することで、楕円候補点P201が複数検出される。互いに隣接する走査線L200の間の角度は、1度、5度、7度等とするが、これ以外の角度であってもよい。
図7(a)に示す輝度値グラフG20は、一つの走査線L200に沿って走査したときの輝度値を表す。輝度値グラフG20の横方向が走査線L200の位置を表し、右に行くほどファインダパターン中心点P200から離れる。輝度値グラフG20の縦方向は、輝度値グラフG20の横方向で表される走査線L200の位置での輝度値を表す。輝度値グラフG20から分かるように、3個目の白黒変化点である点が楕円候補点P201である。
楕円L210の楕円定数を算出するために、図8に示すような、原点をOとする画像データのXY座標系を考える。
楕円L210の任意の点を(x、y)、楕円L210の中心座標O’を(x0、y0)、長軸の長さをa、短軸の長さをb、長軸の傾きをθ、楕円の関数をfとすると、XY座標系での楕円L210は、一般的に次の式1のように表すことができる。なお、図8には、中心座標O’を原点とし、長軸の方向をX’軸、短軸の方法をY’軸とするX’Y’座標を示す。
f(x、y、x0、y0、a、b、θ)=0 ・・・ (式1)
このように、中心座標O’、長軸の長さをa、短軸の長さをb、及び、長軸の傾きθで、楕円の関数fを特定でき、中心座標O’、長軸の長さをa、短軸の長さをb、及び、長軸の傾きθを楕円定数と呼ぶ。
式1から分かるように、5つの楕円候補点P201を(x、y)に代入して、5つの式を得ることで、一組の楕円定数、すなわち、中心座標O’(x0、y0)、長軸の長さa、短軸の長さb、及び、長軸の傾きθが算出される。
次に、算出部23は、特定したそれぞれの楕円関数fから精度の高い楕円関数を1つ選択する。この選択の方法には例えば次のようなものがある。特定された楕円関数fで表される楕円と、楕円関数fを得るときに使用していない楕円候補点P201と、の距離を算出する。算出部23は、この距離が最も小さくなるような楕円関数fを、精度の高い楕円関数として選択する。
次に、算出部23は、選択された楕円関数fに使われる楕円定数を楕円L210の楕円定数とする。
なお、算出部23は、一組の楕円定数のみを算出して、この楕円定数を楕円L210の楕円定数としてもよい。
算出部23は、コード回転角の算出に、方向特定輝度分布を使う。方向特定輝度分布は、基準方向W10の特定が可能であり、2つの方向特定輝度分布を比べることで、2つの基準方向W10のずれであるコード回転角を算出できる輝度分布であり、次のように表現される輝度分布である。方向特定輝度分布の横軸は角度である。方向特定輝度分布の縦軸は、ファインダパターン110の中心から、横軸の角度で指定される角度における方向特定部120の有無を表す。
算出部23は、設計上のファインダパターン110の方向特定輝度分布(設計輝度分布G30)と、画像データ取得部21が取得した画像データのファインダパターン110の方向特定輝度分布(取得輝度分布G31)と、を比べる。
設計輝度分布G30は、設計上の二次元コード100における方向特定部120の突起部121を通り、各円環112a〜cと同心円となる走査線L301を走査して得られる輝度分布である。
設計上の二次元コード100のファインダパターン110は、図9(b)に示すように、円環部111(円環112a〜c)の中心点が図8のXY座標系の原点と一致するものとする。また、設計上のファインダパターン110の基準方向W10はX軸の正方向に等しく、第3円環112cの内側の境界線L300がXY座標系における単位円となるような縮尺であるものとする。このように考えると、ステップS202の楕円L210は、設計上の二次元コード100の第3円環112cに対応付けられるといえる。
このような設計上の二次元コード100において、走査線L301は半径rの円である。半径rは、走査線L301が突起部121における放射方向(原点から外側に向かう方向)の中央を通るように、定められる。
図9(a)に設計輝度分布G30の例を示す。設計輝度分布G30の横軸は、X軸からの角度αである。設計輝度分布G30の縦軸は、走査線L301における角度αの点の輝度値である。したがって、設計輝度分布G30の輝度が黒と表される部分が、方向特定部120の突起部121a〜121dに対応する。
このようなファインダパターン110の設計輝度分布G30は、予め画像読取り装置20の主記憶装置等に保存されている。
次に、図10を参照して、画像データのファインダパターン110の取得輝度分布G31の算出方法について説明する。
まず、設計上の円環部111の同心円に対応する画像データの二次元コード100の楕円の表し方について説明する。
図10(b)を参照して、画像データのファインダパターン110aにおける点の表し方について説明する。図10(b)では、画像データのファインダパターンを符号110aとし、設計上のファインダパターンを符号110bで表す。
ファインダパターン110aにおける楕円L210は、単位円をX軸方向にa倍、Y軸方向にb倍し、反時計回りにθ度回転して、中心を(x0、y0)としたものである。このため、楕円L210上の点P310(Ex、Ey)は、単位円上の点P300(Cx、Cy)から次式で算出できる。
Ex=Cx×a×cosθ−Cy×b×sinθ+x0 ・・・ (式2)
Ey=Cx×a×sinθ+Cy×b×cosθ+y0 ・・・ (式3)
Cx=cosβ ・・・ (式4)
Cy=sinβ ・・・ (式5)
したがって、楕円L210上の点P310(Ex、Ey)は、次式で算出できる。
Ex=cosβ×a×cosθ−sinβ×b×sinθ+x0 ・・・ (式6)
Ey=cosβ×a×sinθ+sinβ×b×cosθ+y0 ・・・ (式7)
同様の考え方で、原点Oを中心とした半径Lの円に対応する楕円の点(Fx、Fy)は、次式で算出できる。
Fx=L×cosβ×a×cosθ−L×sinβ×b×sinθ+x0 ・・・ (式8)
Fy=L×cosβ×a×sinθ+L×sinβ×b×cosθ+y0 ・・・ (式9)
このように、楕円定数により、設計上の円環部111の同心円に対応する画像データの二次元コード100の楕円を表すことができる。
そして、算出部23は、βを0度以上360度未満の範囲で変化させて、複数の点P311における輝度を取得し、図10(a)に示す取得輝度分布G31を算出する。βは1度単位で変化させるが、5度や10度など、変化の単位を異ならせてもよい。
こうして、取得輝度分布G31が算出される。
算出部23は、設計輝度分布G30と取得輝度分布G31とを比較して、両者が一致するか否かを判定する。例えば、0度以上360度未満の所定の複数の角度において、設計輝度分布G30の輝度値と取得輝度分布G31の輝度値との差を算出する。そして、算出した差の絶対値の合計が所定値未満のとき設計輝度分布G30と取得輝度分布G31とが一致すると判定し、この合計が所定値以上のとき設計輝度分布G30と取得輝度分布G31とが一致しないと判定する。
算出部23は、一致しないとき、設計輝度分布G30を所定量(所定の角度でありシフト量とも呼ぶ)、角度が正となる方向に設計輝度分布G30をシフトさせる。このとき、360度が0度に等しくなるように、循環的にシフトさせる。したがって、例えば、355度を10度シフトさせると5度になるようにシフトさせることになる。
そして、算出部23は、シフト後の設計輝度分布G30と取得輝度分布G31とが一致するか否かを判定する。一致しないときは、シフト量を変えての設計輝度分布G30のシフトと、一致の判定と再度行う。
算出部23は、設計輝度分布G30と取得輝度分布G31とが一致するときのシフト量をコード回転角γとする。
図11の例では、図から明らかなように、シフト量としてコード回転角γとしたときに、設計輝度分布G30と取得輝度分布G31とが一致する。
なお、算出部23は、シフトする量を変えて複数回設計輝度分布G30と取得輝度分布G31とを比較し、両者の差が最も小さくなるシフト量をコード回転角γとしてもよい。
まず、算出部23は、画像データのデータ部150の4角の位置を推定する。図12を参照して、この推定方法について説明する。図12は、図10に示す設計上の二次元コード100を拡大した図である。なお、上記の通り、境界線L300は単位円となる。
図12に示すように、設計上の二次元コード100のデータ部150の4角の点P400〜P403は、設計上の二次元コード100のファインダパターン110の中心点(図12の原点)と、基準方向W10との関係で予め定められている。
また、設計上の二次元コード100上の点を、この点に対応する画像データの二次元コード100上の点に変換には、式8、式9を使うことができる。このとき、コード回転角γを使い、設計上の基準方向W10を画像データの基準方向W10に合わせる。
具体的には、画像データの二次元コード100のデータ部150の4角の点は、次のように算出して推定できる。
点P400に対応する画像データの二次元コード100の点は、式8、式9においてLを4.0496、βを(γ−20度)とすることで、算出できる。同様に、点P401、402、403に対応する画像データの二次元コード100の点は、式8、式9において、それぞれ、Lを5.664、4.4272、1.9798、βを(γ−48度)、(γ−108度)、(γ−135度)とすることで、算出できる。
図13に示す点P500〜P503は、それぞれ、設計上のデータ部150の4角の点P400〜P403に対応する画像データのデータ部150の4角の点として推定された点である。
また、辺L400〜L403は、それぞれ、点P500と点P501とをつなぐ辺、点P501と点P502とをつなぐ辺、点P502と点P503とをつなぐ辺、点P503と点P500とをつなぐ辺である。
まず、算出部23は、辺L400における、データ部150の外方から、データ部150の内方に向けて走査し、画素毎の輝度値を取得する。そして、算出部23は、輝度値が所定値よりも大きく下降する場所を白黒変化点として検出する。算出部23は、辺L400における複数の異なる場所で同様の走査を行い、複数の白黒変化点として検出する。
この検出した複数の白黒変化点をつかい、検出した複数の白黒変化点に最もよく一致する直線方程式を算出する。この直線方程式の算出には、例えば最小二乗法が使われる。
算出部23は、こうして算出された辺L400〜L403のそれぞれに対応する4つの直線方程式から、画像データのデータ部150の4角の位置として、4つの交点を算出する。算出部23は、この4つの交点を画像データのデータ部150の位置として扱う。
データ部150は、上記の通り、マトリクス状に同形状のセル領域が並ぶ。したがって、読取り部24は、ステップS204で算出された画像データのデータ部150の4角の位置から、データ部150のそれぞれのセル領域の場所が特定できる。
読取り部24は、画像データにおける特定したそれぞれのセル領域の輝度値を取得して、セル領域の輝度に応じて、0又は1の1ビットのデータを取得する。こうして、読取り部24は、データ部150からビット列を読取る。
図14のコード化ビット列D200は、ステップS205で読取り部24が読取ったビット列であり、図4のコード化ビット列D150に対応する。
まず、読取り部24は、コード化ビット列D150を符号化して、誤り訂正可能な符号化データD210を生成する。誤り訂正可能な符号化データD210は、図4の誤り訂正可能な符号化データD140に対応する。誤り訂正可能な符号化データD210は、誤り訂正符号D211を含む。
次に、読取り部24は、誤り検出可能な符号化データD220から誤り検出符号D221を除去して、符号化データD230を生成する。符号化データD230は、図4の符号化データD120に対応する。
次に、読取り部24は、符号化データD230からビット列D240を生成する。この生成は、例えば、固定ビット長符号化とは反対の処理を行うことで実現できる。
次に、読取り部24は、ビット列D240を、予め定められた規則で対象データD250にする。
こうして、読取り部24は、対象データを生成する。
例えば、鋼片を製造する製鋼工場において、鋼片に二次元コードが印刷された耐熱ラベルを鋼片に貼り付けて、鋼片を管理することがある。このような鋼片は、移動させたりスラブヤードに保管したりする中で汚れが付くことが多い。しかし、二次元コード100では、ファインダパターンの大きさ及び配置の自由度を向上させることができるため、鋼片に付く汚れに影響されないようなファインダパターンを備える二次元コード100の準備が容易である。これにより、鋼片に貼り付けられた二次元コードの読取り精度を向上させることができる。
また、二次元コード100は方向特定部120を備える。よって、画像読み取り装置20は、突起部121に基づいて、二次元コード100の向きを特定して二次元コード100のデータ部150の位置を特定できる。
具体的には、設計上の二次元コードの走査線L301を走査して得られる輝度分布(設計輝度分布G30)と、走査線L301に対応する画像データの走査線L311を走査して得られる輝度分布(取得輝度分布G31)と、を比べる。走査線L301、L311はそれぞれ方向特定部120を含む。よって、この輝度分布の比較により、画像データの基準方向W10と設計上の基準方向W10との関係が得られる。
また、設計上の二次元コードの走査線L301は、設計上の円環部111の同心円である。よって、画像読み取り装置20は、楕円定数を使って、走査線L301に対応する画像データ上の走査線L311を導ける。
次に、上記以外の二次元コードの例について説明する。なお、上記の二次元コードと同様の点については説明を省略する。
まず、図15を参照して、ファインダパターンを大きくした二次元コード200について説明する。
図15の二次元コード200は、ファインダパターン210とデータ部150とを備える。ここで、ファインダパターン210とデータ部150とが並ぶ方向、すなわちファインダパターン210の中心部とデータ部150の中心部とをむすぶ方向を並び方向と呼び、並び方向に垂直な方向を幅方向と呼ぶ。図15の例では、ファインダパターン210の幅方向の長さの最大値は、データ部150の幅方向の長さに略等しい。
また、ファインダパターン110の円環部111の直径は、データ部150におけるファインダパターン110と対向する辺の長さに略等しい。
ファインダパターン210とデータ部150との位置及び大きさはこのような関係であり、ファインダパターン210は、図2に示す第1実施形態のファインダパターン110より大きい。したがって、ファインダパターン210の一部が、汚れや剥がれ等で画像データに表れていない場合でも、画像読取り装置20がファインダパターン210の検出に失敗するおそれが低減する。
なお、ファインダパターン110の円環部111の直径を、データ部150におけるファインダパターン110と対向する辺の長さより長くしてもよい。
図16の二次元コード300は、第1ファインダパターン310と、第2ファインダパターン330と、外形が略正方形状のデータ部350とを備える。
第1ファインダパターン310は、図2のファインダパターン110と同様の形状である。
第2ファインダパターン330は、第1ファインダパターン310と第2ファインダパターン330とでデータ部350を挟む位置であって、かつ、第1ファインダパターン310及びデータ部350と分離した位置に配置される。
第2ファインダパターン330は、第2ファインダパターン330の方向特定部120が補助突起部331を備える点で第1ファインダパターン310と相違する。
補助突起部331は、いずれかの突起部121、例えば第2突起部121bに設けられ、第2突起部121bから、第2ファインダパターン330の外方に伸びる。補助突起部331によって、第1ファインダパターン310と第2ファインダパターン330とを区別できる。
また、データ部150における第1ファインダパターン310と対向する辺の長さは、第1ファインダパターン310の円環部111の直径に略等しい。同様に、データ部150における第2ファインダパターン330と対向する辺の長さは、第2ファインダパターン330の円環部111の直径に略等しい。
まず、画像読み取り装置20の画像データ取得部21は、画像データを取得する。
次に、画像読み取り装置20の検出部22は、ファインダパターンを検出する。ここで検出するファインダパターンは、第1ファインダパターン310又は第2ファインダパターン330である。
次に、画像読み取り装置20の算出部23は、検出したファインダパターンについて、楕円形状の算出及びコード回転角の算出を行う。
ここで、第2ファインダパターン330の補助突起部331について、第2ファインダパターン330の中心点からの設計上の距離及び、この中心点を基準とした基準方向W10からの設計上の角度は予め定められている。したがって、式8及び式9を使うことで、画像データの補助突起部331の位置を特定できる。
そこで、算出部23は、特定した画像データの補助突起部331の位置の画素の輝度値を取得して、黒に相当する輝度値か否かを判断する。算出部23は、黒に相当する輝度値のとき、ファインダパターンに補助突起部331があると判断して、検出したファインダパターンは第2ファインダパターン330であると判断する。算出部23は、黒に相当する輝度値ではないとき、検出したファインダパターンに補助突起部331がないと判断して、検出したファインダパターンは第1ファインダパターン310であると判断する。
なお、算出部23は、特定した画像データの補助突起部331の位置の近傍の複数の画素の輝度値を取得して、ファインダパターンに補助突起部331があるか否かを判断してもよい。
次に、図17を参照して、本実施形態の二次元コードシステム2について説明する。
本実施形態の二次元コードシステム2は、パン、チルト及びズームが可能な画像読取り装置320を備える。また、二次元コードシステム2は、図15で説明した二次元コード200が使われる。その他の点は、上記実施形態と同様であるため説明を省略する。
本実施形態の画像読取り装置320の画像データ取得部21は、パン、チルト及びズームが可能なレンズ等の光学系を備える。
画像読取り装置320は、PTZ(パン、チルト及びズーム)制御部をさらに備える。PTZ制御部は、画像データ取得部21のパン、チルト及びズームを制御する。
第1に、画像読取り装置320のPTZ制御部は、予め設定された広角な画角である第1画角で画像データを取得できるように、画像データ取得部21の光学系を制御する。
第2に、画像読取り装置320の画像データ取得部21は、PTZ制御部で制御された光学系の設定で撮影して、第1画角の第1画像データを取得する。
第3に、画像読取り装置320の検出部22は、画像データ取得部21が取得した第1画像データから、二次元コード200のファインダパターン210を検出する。なお、この処理は、第1実施形態と同様である。
第4に、PTZ制御部は、検出部22がファインダパターン210を検出したとき、ファインダパターン210を含む二次元コード200がズームアップされる第2画像データが取得できるように、画像データ取得部21を制御する。第2画像データの画角である第2画角は、第1画角より狭い。
第5に、画像読取り装置320の画像データ取得部21は、PTZ制御部で制御された光学系の設定で撮影して画像データを取得する。
第6に、画像読取り装置320の検出部22は、第2画像データから、二次元コード200のファインダパターン210を検出する。そして、画像読取り装置320は、第2画像データを使い、図5のステップS202以降の処理を行って、対象データを読取る。
広角な画角の第1画像データに複数のファインダパターン210が検出されたとき、画像読取り装置320は、全てのファインダパターン210について、上記の第4〜第6の処理を行って、対象データを読取る。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (15)
- 対象データに対応するビット列をパターンとして表したデータ部と、
前記データ部から分離して配置されるファインダパターンと、を備えることを特徴とする二次元コード。 - 前記ファインダパターンは、円環部、及び、基準方向を特定できる方向特定部を備えることを特徴とする請求項1に記載の二次元コード。
- 前記方向特定部は、前記円環部に沿って、前記円環部の円周方向に伸びる突起部を備えることを特徴とする請求項2に記載の二次元コード。
- 前記方向特定部は、前記円環部の円周方向の長さが異なる複数の前記突起部を備えることを特徴とする請求項3に記載の二次元コード。
- 前記円環部は、同心円に配置された複数の円環を備えることを特徴とする請求項2乃至4のいずれか1項に記載の二次元コード。
- 一の前記データ部に対して前記ファインダパターンが複数配置され、前記複数のファインダパターンがそれぞれ特定できることを特徴とする請求項1乃至5のいずれか1項に記載の二次元コード。
- 請求項1乃至6のいずれか1項に記載の二次元コードを読取る画像読取り装置であって、
前記二次元コードを含む画像データから前記ファインダパターンを検出する検出手段と、
前記検出手段が検出した前記画像データの前記ファインダパターンと、設計上の二次元コードとから、前記画像データの前記データ部の位置を算出する算出手段と、
前記算出手段が算出した前記画像データの前記データ部の位置に基づいて、前記画像データの前記データ部を読取る読取り手段と、を備えることを特徴とする画像読取り装置。 - 前記ファインダパターンは、円環部、及び、基準方向を特定できる方向特定部を備え、
前記算出手段は、前記画像データの前記円環部を設計上の前記円環部に対応できる楕円の方程式の定数である楕円定数を算出して、前記楕円定数に基づいて前記画像データの前記データ部の位置を算出することを特徴とする請求項7に記載の画像読取り装置。 - 前記算出手段は、設計上の前記二次元コードにおける前記方向特定部を含んだ第1走査線の輝度分布と、前記画像データにおける前記第1走査線に対応する第2走査線を走査して得られる前記輝度分布とから、前記画像データの前記基準方向と設計上の前記基準方向との関係を得て、前記画像データの前記基準方向と設計上の前記基準方向との関係に基づいて、前記画像データの前記データ部の位置を算出することを特徴とする請求項8に記載の画像読取り装置。
- 前記第1走査線は前記円環部の同心円であり、前記第2走査線は楕円であり、
前記算出手段は、前記楕円定数に基づいて、前記第1走査線に対応する前記第2走査線を導くことを特徴とする請求項9に記載の画像読取り装置。 - 前記算出手段は、前記楕円定数、前記画像データの前記基準方向と設計上の前記基準方向との関係、及び、設計上の前記ファインダパターンを基準とした前記データ部の位置、に基づいて、前記画像データの前記データ部の位置を算出することを特徴とする請求項9又は10に記載の画像読取り装置。
- 第1画角の第1画像データ、及び、前記第1画角より狭い第2画角の第2画像データを取得する画像データ取得手段をさらに備え、
前記検出手段が前記第1画像データに前記ファインダパターンを検出したとき、前記画像データ取得手段は前記ファインダパターンを含む前記第2画像データを取得し、前記検出手段、前記算出手段及び前記読取り手段は、前記画像データとして前記第2画像データを使うことを特徴とする請求項7乃至11のいずれか1項に記載の画像読取り装置。 - 前記二次元コードは、一の前記データ部に対して前記ファインダパターンが複数配置され、前記複数のファインダパターンがそれぞれ特定でき、
前記算出手段は、前記検出手段が検出した前記ファインダパターンが、前記二次元コードが備える複数の前記ファインダパターンのいずれであるかを特定し、特定した設計上の前記ファインダパターンに基づいて、前記画像データの前記データ部の位置を算出することを特徴とする請求項7乃至12のいずれか1項に記載の画像読取り装置。 - 請求項1乃至6のいずれか1項に記載の二次元コードを読取る画像読取り方法であって、
前記二次元コードを含む画像データから前記ファインダパターンを検出する検出ステップと、
前記検出ステップで検出した前記画像データの前記ファインダパターンと、設計上の二次元コードとから、前記画像データの前記データ部の位置を算出する算出ステップと、
前記算出ステップで算出した前記画像データの前記データ部の位置に基づいて、前記画像データの前記データ部を読取る読取りステップと、を備えることを特徴とする画像読取り方法。 - 請求項1乃至6のいずれか1項に記載の二次元コードを読取る画像読取り装置を制御するプログラムであって、
前記二次元コードを含む画像データから前記ファインダパターンを検出する検出ステップと、
前記検出ステップで検出した前記画像データの前記ファインダパターンと、設計上の二次元コードとから、前記画像データの前記データ部の位置を算出する算出ステップと、
前記算出ステップで算出した前記画像データの前記データ部の位置に基づいて、前記画像データの前記データ部を読取る読取りステップと、をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015229145A JP6219911B2 (ja) | 2015-11-24 | 2015-11-24 | 二次元コード、画像読取り装置、画像読取り方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015229145A JP6219911B2 (ja) | 2015-11-24 | 2015-11-24 | 二次元コード、画像読取り装置、画像読取り方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017097624A true JP2017097624A (ja) | 2017-06-01 |
JP6219911B2 JP6219911B2 (ja) | 2017-10-25 |
Family
ID=58817851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015229145A Active JP6219911B2 (ja) | 2015-11-24 | 2015-11-24 | 二次元コード、画像読取り装置、画像読取り方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6219911B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7213734B2 (ja) * | 2019-03-29 | 2023-01-27 | 日鉄テックスエンジ株式会社 | 情報処理装置及びプログラム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4970533A (ja) * | 1972-08-07 | 1974-07-08 | ||
JP2002024752A (ja) * | 2000-07-03 | 2002-01-25 | Seiko Epson Corp | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
JP2002049889A (ja) * | 2000-08-04 | 2002-02-15 | Seiko Epson Corp | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
WO2004097717A1 (ja) * | 2003-05-02 | 2004-11-11 | Yutaka Kiuchi | 2次元コード読取方法、表示方法、および実行プログラム |
JP2007003233A (ja) * | 2005-06-21 | 2007-01-11 | Ritsumeikan | コードターゲット、コード検出システム、及び3次元情報取得システム |
WO2016166914A1 (ja) * | 2015-04-16 | 2016-10-20 | 健三 山梨 | 二次元コード,二次元コード記録担体,二次元コード読取り方法,二次元コード読取用プログラムおよび二次元コード読取り装置 |
JP2017076309A (ja) * | 2015-10-16 | 2017-04-20 | セイコーエプソン株式会社 | 画像処理装置、ロボット、ロボットシステム、及びマーカー |
-
2015
- 2015-11-24 JP JP2015229145A patent/JP6219911B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4970533A (ja) * | 1972-08-07 | 1974-07-08 | ||
JP2002024752A (ja) * | 2000-07-03 | 2002-01-25 | Seiko Epson Corp | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
JP2002049889A (ja) * | 2000-08-04 | 2002-02-15 | Seiko Epson Corp | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
WO2004097717A1 (ja) * | 2003-05-02 | 2004-11-11 | Yutaka Kiuchi | 2次元コード読取方法、表示方法、および実行プログラム |
JP2007003233A (ja) * | 2005-06-21 | 2007-01-11 | Ritsumeikan | コードターゲット、コード検出システム、及び3次元情報取得システム |
WO2016166914A1 (ja) * | 2015-04-16 | 2016-10-20 | 健三 山梨 | 二次元コード,二次元コード記録担体,二次元コード読取り方法,二次元コード読取用プログラムおよび二次元コード読取り装置 |
JP2017076309A (ja) * | 2015-10-16 | 2017-04-20 | セイコーエプソン株式会社 | 画像処理装置、ロボット、ロボットシステム、及びマーカー |
Also Published As
Publication number | Publication date |
---|---|
JP6219911B2 (ja) | 2017-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9117103B2 (en) | Image information processing apparatus and method for controlling the same | |
EP3081900B1 (en) | Measurement devices and methods for measuring the shape of an object to be measured, and method of manufacturing an article | |
JP6394005B2 (ja) | 投影画像補正装置、投影する原画像を補正する方法およびプログラム | |
JP5842248B2 (ja) | マーカ | |
JP6537237B2 (ja) | 情報処理装置および方法 | |
US10332275B2 (en) | Information processing apparatus, information processing method, and storage medium | |
JP2013061552A (ja) | プロジェクタ装置および操作検出方法 | |
JP2015173430A (ja) | 投影システム、半導体集積回路、および画像補正方法 | |
US8761440B2 (en) | Range image generation apparatus, position and orientation measurement apparatus, range image processing apparatus, method of controlling range image generation apparatus, and storage medium | |
JP6064211B2 (ja) | 手書き入力システム | |
US11710253B2 (en) | Position and attitude estimation device, position and attitude estimation method, and storage medium | |
WO2017025214A1 (en) | Method for calibration of a stereo camera | |
JP6219911B2 (ja) | 二次元コード、画像読取り装置、画像読取り方法及びプログラム | |
US9739604B2 (en) | Information processing apparatus, information processing method, and storage medium | |
KR100808536B1 (ko) | 패턴 영상을 이용한 캘리브레이션 방법 | |
JP2020008434A (ja) | 3次元測定装置及び方法 | |
US10614275B2 (en) | Position specifying apparatus and position specifying method | |
KR20120108277A (ko) | 자연랜드마크와 인공랜드마크를 인식하는 지능형 이동로봇의 위치인식 방법 | |
KR101305405B1 (ko) | 측면의 랜드마크를 인식하는 지능형 이동로봇의 위치인식 방법 | |
JP2006292453A (ja) | 画像認識方法 | |
JP2015056043A (ja) | 画像処理装置、その制御方法、および制御プログラム | |
KR20140032113A (ko) | 자연랜드마크 및 인공랜드마크와 엔코더를 이용한 지능형 이동로봇의 위치인식 방법 | |
JP6515946B2 (ja) | 画像処理装置、画像処理方法、プログラム | |
WO2019188194A1 (ja) | レンズマーカのパターン中心の決定方法、およびその装置、ならびに決定方法をコンピュータに実行させるプログラム、およびその記録媒体 | |
KR20140032116A (ko) | 자연랜드마크 및 인공랜드마크와 관성센서를 이용한 지능형 이동로봇의 위치인식 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170615 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170707 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170714 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170901 |
|
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: 20170912 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170928 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6219911 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |