二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボット
【課題】 物体に記された二次元コードを検出し、三次元空間上の物体の位置、姿勢を認識するとともに、その物体に対応する制御情報を生成することが可能な二次元コード検出装置を提供することを目的とする。
【解決手段】 二次元コード検出装置1は、カメラCが撮像した撮像画像を入力する画像入力手段2と、撮像画像を解析し、撮像画像内に写った二次元コードMの固有のパターンに基づいて、二次元コードMの位置及び姿勢を示す位置・姿勢情報を算出するとともに、二次元コードMに符号化された情報を復号する画像解析手段4と、位置・姿勢情報と復号情報とに基づいて、二次元コードMが記された物体に対応した制御情報を生成する制御情報生成手段5と、を備えていることを特徴とする。
【解決手段】 二次元コード検出装置1は、カメラCが撮像した撮像画像を入力する画像入力手段2と、撮像画像を解析し、撮像画像内に写った二次元コードMの固有のパターンに基づいて、二次元コードMの位置及び姿勢を示す位置・姿勢情報を算出するとともに、二次元コードMに符号化された情報を復号する画像解析手段4と、位置・姿勢情報と復号情報とに基づいて、二次元コードMが記された物体に対応した制御情報を生成する制御情報生成手段5と、を備えていることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体に貼付された二次元コードの位置、姿勢及び当該二次元コードに符号化された情報を検出する二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボットに関する。
【背景技術】
【0002】
従来、ロボット等が物体の位置や姿勢を認識するには、ステレオ視、レンジファインダ等により三次元空間における物体の距離情報を取得し、その距離情報で形成される物体の立体情報に既知のモデルを当てはめることにより行っていた。しかし、これらの位置、姿勢の推定は、既知形状の物体である等、限定された環境において実現されており、複雑なシーンにおいては、対象となる物体を精度よく高速に認識することは現在のコンピュータの能力では困難であり、実現されていない。
【0003】
そこで、バーコードや二次元コードを物体に貼付することで、物体の位置や姿勢を認識するための補助とする技術が種々提案されている。例えば、物体に二次元コードを貼付し、その二次元コードの各頂点を検出することで、物体の載置状態を認識するシステムが開示されている(特許文献1参照)。
このシステムによれば、テーブルに載置された、二次元コードが貼付された物体を撮像素子により撮像し、その撮像された画像を解析することで、二次元コードの各頂点を検出し、その頂点位置に基づいて、物体の向き(回転)等を検出している。そして、このシステムは、物体の向きにあわせてロボットの姿勢を制御させることで、ロボットにより物体を把持し移動させることを可能としている。
また、このシステムは、二次元コードに符号化されたデータを復号することで、ロボットが物体を把持する際の物体の種類、形状、大きさ等の物体の特性を認識可能としている。
【特許文献1】特開2004−1153号公報(段落番号0043〜0053、第1〜3図)
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、前記した特許文献1に開示されている技術では、物体の姿勢として、予め定めた場所に載置された二次元平面(テーブル)上における物体の向き(回転)しか検出することができない。すなわち、この技術では、三次元空間に設置された物体については、その姿勢を検出することができないという問題がある。
また、前記した技術では、二次元コードに物体そのものの特性を符号化しておくことで、ロボットが物体を把持する際の情報として利用しているが、その物体に対して予め定めた位置に二次元コードを貼付しておかなければ、正確に物体の位置を認識することができない。そこで、従来のシステムは、物体毎に、その物体に対する二次元コードの位置を記憶しておかなければならず、異なる物体を処理する場合等、その位置を記憶し直さなければならず、汎用性に欠けるといった問題がある。
【0005】
本発明は、以上のような問題点に鑑みてなされたものであり、物体に貼付された二次元コードを検出し、三次元空間上の物体の位置、姿勢を認識するとともに、その物体に対して把持等の処理を行う際に必要となる制御情報を生成することが可能な二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボット制御情報生成装置を組み込んだロボットを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、前記目的を達成するために創案されたものであり、請求項1に記載の二次元コード検出装置は、コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成する二次元コード検出装置であって、前記物体を撮像した撮像画像を入力する画像入力手段と、この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、前記情報パターンを復号する復号手段と、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、を備えていることを特徴とする。
【0007】
かかる構成によれば、二次元コード検出装置は、画像入力手段によって、物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。この二次元コードは、予め定めた複数のパターン(位置特定パターン)によって、二次元コードそのものの認識と、二次元コードの向きを特定することが可能なコードである。
【0008】
そして、二次元コード検出装置は、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出する。なお、撮像画像内における二次元コードは、既知の大きさ、位置にあると仮定した二次元コードが、実空間(三次元空間)に回転・平行移動し、その移動後の二次元コードが撮像画像内に射影変換されたものとみなすことができる。すなわち、位置・姿勢算出手段は、複数の位置特定パターンから、回転・平行移動を表す変換行列を求めることで、三次元空間における二次元コードの位置・姿勢情報を算出することができる。
また、二次元コード検出装置は、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
【0009】
そして、二次元コード検出装置は、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、二次元コードが記された物体に対応した制御内容を示す制御情報を生成する。
これによって、二次元コード検出装置は、二次元コードの位置及び姿勢のみならず、復号された情報に基づいて、その二次元コードが記された物体の大きさ、重さ等の情報や、その物体に対する操作指示内容等を制御情報として生成することができる。なお、二次元コードは、印刷等により直接物体に描画されたものであってもよいし、シール等により物体に貼付されたものであってもよい。
【0010】
また、請求項2に記載の二次元コード検出装置は、請求項1に記載の二次元コード検出装置において、前記二次元コードに4つの前記位置特定パターンを含み、前記位置・姿勢算出手段が、前記撮像画像における前記4つの前記位置特定パターンの二次元位置に基づいて、前記位置・姿勢情報を算出することを特徴とする。
【0011】
かかる構成によれば、二次元コード検出装置は、位置特定パターンが4つのパターンで構成されていることで、位置・姿勢算出手段が、任意の三次元空間における二次元パターンの位置及び姿勢を算出することが可能になる。
【0012】
さらに、請求項3に記載の二次元コード検出装置は、請求項1に記載の二次元コード検出装置において、前記二次元コードが、QRコード(登録商標)であることを特徴とする。
【0013】
かかる構成によれば、二次元コード検出装置は、二次元コードの位置特定パターンを、QRコードにおける位置検出パターンや位置合わせパターンとすることで、QRコードの位置や姿勢を認識することができる。また、QRコード内に情報パターンを符号化して書き込むことで、二次元コード検出装置は、その情報を読み出すことができる。
【0014】
また、請求項4に記載の二次元コード検出装置は、請求項1に記載の二次元コード検出装置において、前記情報パターンには、前記二次元コードの位置特定パターンから前記物体の特定位置までの相対位置が符号化されており、前記制御情報生成手段が、前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記特定位置を算出する特定位置算出手段を備えていることを特徴とする。
【0015】
かかる構成によれば、二次元コード検出装置は、特定位置算出手段によって、位置・姿勢情報と相対位置とから、指定された任意の物体の位置を算出することができる。
【0016】
さらに、請求項5に記載の二次元コード検出プログラムは、コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成するために、コンピュータを、前記物体を撮像した撮像画像において前記位置特定パターンを検出するパターン検出手段、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段、前記情報パターンを復号する復号手段、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段、
として機能させることを特徴とする。
【0017】
かかる構成によれば、二次元コード検出プログラムは、画像入力手段によって、前記物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。
そして、二次元コード検出プログラムは、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出し、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
そして、二次元コード検出プログラムは、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、二次元コードが貼付された物体に対応した制御内容を示す制御情報を生成する。
【0018】
また、請求項6に記載のロボット制御情報生成装置は、カメラと物体を把持するハンド部とを備えたロボットにおいて、コード内の位置が予め特定された位置特定パターンと、前記物体に関連する情報が符号化された情報パターンとを含んだ、前記物体に記された二次元コードに基づいて、前記ロボットに対する制御情報を生成するロボット制御情報生成装置であって、前記カメラが前記物体を撮像した撮像画像を入力する画像入力手段と、この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、前記情報パターンを復号する復号手段と、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置及び姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、を備えていることを特徴とする。
【0019】
かかる構成によれば、ロボット制御情報生成装置は、画像入力手段によって、カメラが物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。
そして、ロボット制御情報生成装置は、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出し、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
そして、ロボット制御情報生成装置は、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、ロボットに対する制御内容を示す制御情報を生成する。この制御情報は、例えば、物体を把持する旨の指示、物体を移動させる旨の指示等である。
【0020】
さらに、請求項7に記載のロボット制御情報生成装置は、請求項6に記載のロボット制御情報生成装置において、前記情報パターンには、前記二次元コードの位置特定パターンから、前記ロボットが前記物体を把持する把持位置までの相対位置が符号化されており、前記制御情報生成手段が、前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記把持位置を算出する把持位置算出手段を備えていることを特徴とする。
【0021】
かかる構成によれば、ロボット制御情報生成装置は、把持位置算出手段によって、位置・姿勢情報と相対位置とから、指定された任意の位置となる把持位置を算出することができる。
【0022】
また、請求項8に記載のロボットは、カメラと物体を把持するハンド部とを備えたロボットにおいて、請求項6に記載のロボット制御情報生成装置を備え、前記ロボット制御情報生成装置によって生成される制御情報に基づいて、前記物体を前記ハンド部により把持することを特徴とする。
【0023】
かかる構成によれば、ロボットは、ロボット制御情報生成装置が生成する制御情報に基づいて、物体の位置及び姿勢を把握することで、その物体をハンド部により把持する際の位置を特定することができる。なお、物体を把持する際の把持位置は、二次元コードの位置から予め定めた相対位置だけ離れた位置とする。また、この相対位置は、二次元コードに符号化しておくこととしてもよい。
【発明の効果】
【0024】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、二次元コードの三次元空間における位置と姿勢を検出することができるとともに、二次元コード内に符号化された情報を読み出すことができる。これによって、物体の位置・姿勢に加え、当該物体の種々の情報、例えば、大きさ、重さ等を把握することが可能になる。例えば、当該物体を検出したロボットが、その制御動作として、物体を把持することができる。このとき、物体の種々の情報(特性)を取得することができるため、ロボットは、その物体を把持することができるか否かを事前に判断することができ、効率的なロボットの制御動作を行うことが可能になる。
【0025】
また、本発明によれば、4つの位置特定パターンによって、二次元コードの位置及び姿勢を特定するため、三次元空間における任意の位置、姿勢であっても、検出することができる。
また、本発明によれば、二次元コードにQRコードを使用することで、二次元のパターン認識が容易になり、位置及び姿勢の検出の時間を早めることができる。
さらに、本発明によれば、二次元コードにおける位置特定パターンの位置からの相対位置によって、物体の任意の位置を特定することができるため、ロボットが大きさ、形状等の異なる物体を把持する場合であっても、ロボットは物体毎に異なる把持位置を記憶しておく必要がなく、汎用性を高めることができる。
【発明を実施するための最良の形態】
【0026】
以下、本発明の実施の形態について図面を参照して説明する。
[二次元コードの例:QRコードの構造について]
まず、図3を参照して、本発明に係る二次元コード検出装置で検出する二次元コードの構造について説明する。なお、ここでは、例えば、二次元コードとして、QRコードを用いることとする。図3は、二次元コード(QRコード)の構造の一例を示すパターン図である。
図3に示すように、二次元コード(QRコード)Mは、二次元マトリックス内に、中央をあらゆる角度で横切る走査線において周波数成分比が、“1:1:3:1:1”の特定の明暗パターンとなる3つの位置検出パターンMP1,MP2,MP3と、情報を符号化した情報パターンIPと、認識時における情報パターンIPの各セルのずれを調整するための位置合わせパターンMP4とで構成されている。
【0027】
本発明においては、位置検出パターンMP1,MP2,MP3と位置合わせパターンMP4の4点を、二次元コードの位置及び姿勢を特定するためのパターン(位置特定パターン)として使用し、情報パターンIPを、二次元コードが貼付された物体を操作対象としたときの、操作指示等の制御情報の書き込み領域として使用することとしている。
なお、ここでは、二次元コードの例として、QRコードを示したが、4点の位置特定パターンが特定でき、情報が書き込まれたものであれば、そのパターンの形状等は限定されるものではない。例えば、形状の異なるパターン、異なる色を有するパターン等によって、位置特定パターンを構成することとしてもよい。
【0028】
[二次元コード検出装置の構成]
次に、図1を参照して、本発明に係る二次元コード検出装置の構成について説明する。図1は、本発明に係る二次元コード検出装置の全体構成を示したブロック図である。図1に示した二次元コード検出装置1は、カメラCで撮像された撮像画像から、物体Dに貼付された二次元コードMの位置及び姿勢を算出するとともに、当該二次元コードMに符号化されている符号化データを復号することで、二次元コードMの位置及び姿勢を示す位置・姿勢情報と復号情報とを制御情報として出力するものである。
ここでは、二次元コード検出装置1は、画像入力手段2と、記憶手段3と、画像解析手段4と、制御情報生成手段5とを備えている。
【0029】
画像入力手段2は、カメラCが撮像した撮像画像(白黒画像)を1フレーム単位で入力するものである。この画像入力手段2は、入力した撮像画像を記憶手段3に書き込むとともに、画像解析手段4に撮像画像が入力された旨を通知する。
【0030】
記憶手段3は、画像入力手段2が入力した撮像画像を記憶するものであって、半導体メモリ等の一般的な記憶手段である。なお、記憶手段3は、後記する画像解析手段4によって、画像を解析する際に種々生成される画像についても記憶するものとする。
【0031】
画像解析手段4は、画像入力手段2が入力した撮像画像を解析することで、撮像画像内において二次元コードMを検出し、その位置及び姿勢を算出するとともに、二次元コードMに符号化されている情報パターン(符号化パターン)を復号情報として復号するものである。この画像解析手段4で解析された位置及び姿勢、並びに、復号情報は制御情報生成手段5に出力される。
【0032】
ここで、図2を参照(適宜図1参照)して、画像解析手段4の構成について説明する。図2は、本発明に係る二次元コード検出装置の画像解析手段の構成を示したブロック図である。図2に示すように、画像解析手段4は、領域抽出手段41と、パターン検出手段42と情報パターン復号手段43と、位置・姿勢算出手段44とを備えている。
【0033】
領域抽出手段41は、画像入力手段2で入力され、記憶手段3に記憶された撮像画像から、二次元コードMの4つの位置特定パターンの候補となる領域を抽出するものである。ここでは、領域抽出手段41は、輝度正規化部41aと、二値化部41bと、ラベリング部41cとを備えている。
【0034】
輝度正規化部41aは、撮像画像の画素の輝度を補正することで、撮像画像の輝度を正規化するものである。一般に、撮像画像は、照明等の影響によって、画像内の輝度にバラツキが生じている。そこで、ここでは、後記する二値化部41bにおいて撮像画像を二値化するため、撮像画像において適正に二値化処理が可能なように、撮像画像の輝度を正規化した画像(輝度正規化画像)を生成する。すなわち、輝度正規化部41aは、撮像画像における各画素の光の強度を、その画素の周辺画素の平均強度により除算することで、撮像画像の光の強度を正規化する。より具体的には、画素の光の強度をI、注目する画素の画素位置を(u,v)、その画素を中心とした周辺領域の大きさを横(2n+1)画素、縦(2m+1)画素としたとき、輝度正規化部41aは、画素位置(u,v)の正規化した光の強度Ou,vを、以下の(1)式により算出する。
【0035】
【数1】
【0036】
ここで、図4及び図5を参照して、輝度正規化部41aに入力される撮像画像、及び、輝度正規化部41aで正規化された輝度正規化画像について、具体的に説明する。図4は、二次元コードを貼付した物体を正面から撮像した画像(撮像画像)を示し、図5は、図4の撮像画像を輝度において正規化した輝度正規化画像を示している。
【0037】
なお、図4及び図5では、二次元コードM内に含まれる位置特定パターンと情報パターンのうち、説明を簡略化するため、情報パターンの図示を省略している。この情報パターンについても、以下で説明する位置特定パターンと同様な処理が行われる。また、ここでは、二次元コードを貼付した物体を正面から撮像した画像を用いて説明を行うが、以下に示す処理によって位置特定パターンと情報パターンとが認識できれば、二次元コードが傾いて撮像されている画像であってもよい。
【0038】
図4では、位置特定パターンである3つの位置検出パターンMP1,MP2,MP3、及び、1つの位置合わせパターンMP4を含んだ二次元コード(QRコード)Mを貼付された物体Dを撮像した画像で、周辺部分ほど暗い状態を示している。すなわち、物体Dは、中央部より周辺部の方が、輝度が低くなっている。そのため、周辺部の位置合わせパターンMP4は、中央部の位置検出パターンMP1等より輝度が低くなっている。この撮像画像で二値化を行うと、閾値によっては、位置合わせパターンMP4のみを抽出したり、物体Dの一部まで抽出したり等、位置特定パターン(位置検出パターンMP1,MP2,MP3、位置合わせパターンMP4)を適正に分離することができない。
【0039】
そこで、輝度正規化部41a(図2)が、図4に示した撮像画像の輝度を正規化し、図5に示した輝度正規化画像を生成する。図5では、周辺部の位置合わせパターンMP4の輝度が高くなり、中央部の位置検出パターンMP1等と同等の輝度となっていることを示している。このように、撮像画像を輝度で正規化することで、位置特定パターンの輝度のレベルを均一にすることができる。
図2に戻って説明を続ける。
【0040】
二値化部41bは、輝度正規化部41aで生成された輝度正規化画像を予め定めた閾値を基準として、画素毎に二値化した二値化画像を生成するものである。例えば、閾値よりも高い輝度の画素の値を「1」、それ以外の画素の値を「0」とする。なお、閾値は、輝度正規化部41aで生成される輝度正規化画像において、位置特定パターンの輝度のレベルが均一になっているため、その輝度のレベルに基づいて、予め定めておくことができる。
【0041】
この二値化部41bで生成された二値化画像は、例えば、図6に示すように、図5の輝度正規化画像から、位置特定パターン(位置検出パターンMP1,MP2,MP3、位置合わせパターンMP4)を抽出したものとなる。ただし、二値化部41bでは、位置特定パターンの輝度と同じ又はそれ以上の輝度を持つ領域が抽出される可能性がある。すなわち、ここで抽出された領域は、位置特定パターンの候補となる領域といえる。この二値化部41bで生成された二値化画像は、記憶手段3に記憶され、後記するラベリング部41cによって参照される。
【0042】
ラベリング部41cは、二値化部41bで生成され、二値化画像として抽出された領域を、その領域毎にラベルを付して分類するものである。ラベル付けを行うことで領域を分類(クラスタリング)する手法は種々存在するが、ここでは、ラベリング部41cが、各領域の画素値を、領域固有の値に設定したラベリング画像を生成することで分類を行うこととする。なお、このラベリング部41cで生成されたラベリング画像は、記憶手段3に記憶され、パターン検出手段42及び情報パターン復号手段43によって参照される。
【0043】
ここで、図7を参照して、ラベリング部41cにおけるラベリング画像を生成する手法について説明する。図7は、ラベリングを行う対象となる注目画素の位置を基準位置(0,0)とし、その基準位置に対して、左上の画素位置(−1,−1)、真上の画素位置(0,−1)、右上の画素位置(1,−1)、左の画素位置(−1,0)の各画素値を判定することで、注目画素の画素値を決定する規則(規則〈1〉〜〈5〉)を説明するための図である。
【0044】
ラベリング部41c(図2)は、以下の規則〈1〉〜〈5〉を、画像(二値化画像)の左上から順番にスキャンし、注目画素のラベルを決定する。なお、ここでは、二値化部41b(図2)で生成された二値化画像は、位置特定パターンや情報パターンの候補となる領域の画素値が「1」、それ以外の画素値が「0」となっているものとし、領域毎に固有の「ID」値(ラベル)を付与するものとする。また、以下の規則は、すべて注目画素の画素値が「1」の場合の動作を規定している。
【0045】
規則〈1〉 画素位置(−1,−1)、(0,−1)、(1,−1)、(−1,0)の画素値がすべて「0」の場合は、注目画素(0,0)に固有の「ID」を付与する。(例えば、「100」から順に番号を付ける。)
規則〈2〉 画素位置(−1,−1)、(0,−1)、(1,−1)のいずれかにすでに「ID」が付与されており、左の画素位置(−1,0)の画素値が「0」の場合は、注目画素(0,0)に、上の画素位置に付与されている「ID」を付与する。
規則〈3〉 画素位置(−1,−1)、(0,−1)、(1,−1)の画素値がすべて「0」で、左の画素位置(−1,0)に「ID」が付与されている場合は、注目画素(0,0)に、左の画素位置(−1,0)の「ID」を付与する。
規則〈4〉 画素位置(−1,−1)、(0,−1)、(1,−1)のいずれかに「ID」が付与されており、左の画素位置(−1,0)に付与されている「ID」と同じである場合は、注目画素(0,0)に、左の画素位置(−1,0)の「ID」を付与する。
規則〈5〉 画素位置(1,−1)と画素位置(−1,0)とに異なる「ID」が付与されている場合は、左の画素位置(−1,0)に付与されている「ID」を注目画素(0,0)に付与するとともに、画素位置(1,−1)と同じ「ID」を付与されている画素のラベルを、すべて、画素位置(−1,0)に付与されている「ID」に付け直す。
【0046】
以上の規則に基づいて、図6で示した二値化画像に対してラベル付けを行うと、図8に示したように、個々の領域に固有のラベル(100、101等)が付与(設定)された、ラベリング画像が生成されることになる。なお、この図8に示したラベリング画像においては省略しているが、情報パターンも同様に領域毎に固有のラベルが付与されている。このように、ラベリング部41cにおいて、二値化画像をラベル付けすることで、撮像画像を複数の領域(クラスタ)として管理することができる。
図2に戻って説明を続ける。
【0047】
パターン検出手段42は、撮像画像から位置特定パターンを検出するものである。ここでは、パターン検出手段42は、位置検出パターン検出部42aと、位置合わせパターン検出部42bとを備えている。
【0048】
位置検出パターン検出部42aは、撮像画像から、位置特定パターンの一つである位置検出パターンを検出するものである。ここでは、二次元コードをQRコードとしているため、位置検出パターン検出部42aは、二値化部41bで生成された二値画像において、図9に示すように、“黒−白−黒−白−黒”の明暗パターンが、“1:1:3:1:1”の比を持つパターンを探索することで、位置検出パターンMP(MP1,MP2,MP3)を検出する。
ここでは、位置検出パターン検出部42aは、あるパターンが以下の3つの条件(条件(1)〜(3))を満たしているときに、そのパターンが位置検出パターンであると推定する。
【0049】
条件(1) パターンが、二値画像の左上から順番に水平方向にスキャンしたときに、長さの比が“1:1:3:1:1”となる“黒−白−黒−白−黒”となる画素列である。
条件(2) パターンが、二値化画像の左上から順番に垂直方向にスキャンしたときに、長さの比が“1:1:3:1:1”となる“黒−白−黒−白−黒”となる画素列である。
条件(3) ラベリング画像において、条件(1)及び条件(2)を満たす真中の黒領域を囲む領域に同じラベルが付与されている(真中の黒領域の周囲が白である)。
【0050】
そして、位置検出パターン検出部42aは、以上の条件(1)〜(3)を満たす3つのパターンを位置検出パターンとして推定し、位置検出パターンの真中の黒領域のラベルを、後記する位置合わせパターン検出部42b、情報パターン復号手段43及び位置・姿勢算出手段44に出力する。
【0051】
位置合わせパターン検出部42bは、撮像画像から、位置特定パターンの一つである位置合わせパターンを検出するものである。なお、図10に示したように、位置合わせパターンMP4は、中心の黒領域であるクラスタCBと、そのクラスタCBを囲む周囲の白領域であるクラスタCWは、矩形形状となっているが、さらにその周囲のクラスタCXは、他の黒点と連結している。このため、位置検出パターンのような明暗パターンの比によって検出することはできない。そこで、ここでは、クラスタCBと、その周囲のクラスタCWの重心位置が同一であることを利用して、位置合わせパターンを検出することとする。
【0052】
すなわち、位置合わせパターン検出部42bは、位置検出パターン検出部42aで検出された3つの位置検出パターンMP1,MP2,MP3(図3参照)から、矩形を構成する4つ目の頂点位置の近傍領域において、2つの領域(クラスタ)の重心位置を算出し、その重心位置が最も近いものを位置合わせパターンMP4(図3参照)として推定する。そして、位置合わせパターン検出部42bは、推定した位置合わせパターンのラベルを、後記する情報パターン復号手段43及び位置・姿勢算出手段44に出力する。
【0053】
情報パターン復号手段(復号手段)43は、二次元コードMに記述されている情報パターン(符号化パターン)を復号情報として復号するものである。ここでは、情報パターン復号手段43は、パターン検出手段42で検出された位置特定パターン(3つの位置検出パターンと1つの位置合わせパターン)の位置に基づいて、情報パターンが記述されている領域を認識し、情報パターンを復号する。なお、この情報パターンの符号化方式は、本発明においては、特に限定されるものではなく、例えば、QRコードに準拠した方式を用いることとしてもよい。そして、情報パターン復号手段43は、復号した復号情報を後記する位置・姿勢算出手段44と制御情報生成手段5とに出力する。
【0054】
なお、情報パターン復号手段43において、情報パターンが予め定めた符号化方式に沿っていない等の原因によって復号できない場合は、位置特定パターンと同一のパターンが撮像画像内に存在していたものと判定し、後記する位置・姿勢算出手段44における当該パターンによる位置・姿勢の算出を行わないこととする。
【0055】
位置・姿勢算出手段44は、二次元コードMの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出するものである。ここでは、位置・姿勢算出手段44は、パターン位置推定部44aと、三次元位置・姿勢算出部44bとを備えている。
【0056】
パターン位置推定部44aは、位置特定パターン(3つの位置検出パターンと1つの位置合わせパターン)の各領域(二次元平面)において、1画素単位以下の詳細な位置を推定するものである。ここでは、パターン位置推定部44aは、位置特定パターンの各領域の中心位置を推定するものとする。
【0057】
ここで、図11を参照(適宜図2参照)して、パターン位置推定部44aが、二次元コードの4隅に位置する位置特定パターンのそれぞれの中心位置を推定する手法について説明する。図11は、位置特定パターンの中心位置を推定する手法を説明するための説明図である。
【0058】
パターン位置推定部44aは、二値化部41bで生成された二値化画像(図6)の各位置特定パターンの中央のクラスタ(黒の矩形領域)の重心Gから、横及び縦に伸ばした直線上でクラスタの中心位置を決定する。なお、ここでは、説明を簡略化するため、横方向の直線Lによって、クラスタの横方向の中心位置を決定する場合について説明する。
【0059】
図11(a)に示すように、二値化画像は輝度値が二値の値をとり、その領域の境界の精度は画素単位である。そこで、パターン位置推定部44aは、図11(b)に示すように、画像入力手段2で入力された撮像画像(グレー画像)から、直線L上のエッジを検出し、そのエッジの輝度値がピークとなる位置(ピーク位置Pk)を、クラスタの境界とする。
なお、縦方向においても同様にクラスタの境界を決定し、横方向における境界の中心と、縦方向における境界の中心とを、クラスタの中心位置とする。これによって、パターン位置推定部44aは、1画素以下の精度でクラスタ、すなわち、位置特定パターンの中心位置を決定することができる。
図2に戻って説明を続ける。
【0060】
三次元位置・姿勢算出部44bは、パターン検出手段42で検出された位置特定パターン(3つの位置検出パターンと1つの位置合わせパターン)の中心位置に基づいて、三次元空間における位置及び姿勢を示す位置・姿勢情報を算出するものである。この三次元位置・姿勢算出部44bで算出された位置・姿勢情報は、制御情報生成手段5に出力される。
なお、一般に、ある物体の三次元空間の既知の座標Qが、三次元空間の未知の座標Tに回転・平行移動し、その座標Tが、二次元平面の既知の座標Sに射影変換されている場合、三次元空間の座標Qが4点定まれば、その物体の位置・姿勢を推定することは可能である。
【0061】
ここで、図12及び図13を参照(適宜図2参照)し、数式を用いて、物体貼付した二次元コードの4点から二次元コードの三次元の位置及び姿勢を算出する手法について説明する。図12は、三次元の位置を算出する手法を説明するための説明図である。図13は、三次元の姿勢を算出する手法を説明するための説明図である。
【0062】
図12では、三次元空間の座標系(xyz座標系)において、二次元平面(xy座標系)の中心が三次元座標(0,0,1)に位置し、その二次元平面がxy平面に平行である状態を示している。また、予め既知の三次元空間の座標Q(X,Y,Z)が、ある回転・平行移動となる変換行列Pによって、座標T(Tx,Ty,Tz)に変換され、その座標Tが二次元平面上の座標S(u,v)(三次元座標で(u,v,1))に射影変換されているとする。
【0063】
このとき、三次元空間の座標系は位置・姿勢算出手段44が使用する座標系となる。また、座標Qは予め定めた三次元空間における位置特定パターンの位置を示し、例えば、図14に示すように、z軸の値を“0”(Z=0)とした、三次元空間に位置しているものとする。また、座標Tは実際に物体に貼付された二次元コードの三次元空間における位置特定パターンの位置、座標Sは撮像画像上の二次元座標にそれぞれ対応している。
ここで、回転・平行移動を示す変換行列Pを、以下の(2)式とする。なお、P11〜P13、P21〜P23及びP31〜P33は回転成分、P14、P24及びP34は移動成分を示しているものとする。
【0064】
【数2】
【0065】
すると、座標T(Tx,Ty,Tz)は、以下の(3)式に示すように、既知の座標Q(X,Y,Z)を変換行列Pで変換することで算出することができる。
【0066】
【数3】
【0067】
すなわち、二次元コードの三次元空間上の位置特定パターンの位置である座標Tは、変換行列Pが決定されれば求めることができる。
以下、変換行列Pの各成分を求めることとする。
ここで、座標T(Tx,Ty,Tz)は、二次元平面の座標S(u,v)〔三次元座標で(u,v,1)〕に射影変換されているため、定数wを用いて、座標Tと座標Sとは、以下の(4)式の関係となる。
【0068】
【数4】
【0069】
そして、前記(3)式と、前記(4)式とにより、以下の(5)式の関係が成り立つ。
【0070】
【数5】
【0071】
ここで、前記(2)式で示した変換行列Pを以下の(6)式に示すように変形する。また、ここでは、P11/P34等をa11等の新しい変数に置き換えている。
【0072】
【数6】
【0073】
なお、P11〜P13、P21〜P23及びP31〜P33は回転行列の成分を表すことから、その正規直交性により、以下の(7)式及び(8)式の関係が成り立つ。
【0074】
【数7】
【0075】
【数8】
【0076】
また、w/P34=Wとすると、前記(5)式及び(6)式により、以下の(9)式の関係が成り立つ。
【0077】
【数9】
【0078】
この(9)式を展開し変形すると、以下の(10)式を得る。
【0079】
【数10】
【0080】
この(10)式における第3式のWを、第1式及び第2式に代入し、a(a11,a12,…,a33)について線形式に変換すると、以下の(11)式となる。
【0081】
【数11】
【0082】
ここで、X,Y,Z,u,vは既知の値であり、(a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33)の計11個が未知数である。すなわち、この段階においては、6点の位置を測定しなければ前記(11)式を解くことができない。
しかし、二次元コードは平面であるため、三次元空間において、Z=0となるXY平面にあると設定することができる(図14参照)。そこで、Z=0とすると、前記(11)式は以下の(12)式となる。
【0083】
【数12】
【0084】
この(12)式においては、未知数が、(a11,a12,a14,a21,a22,a24,a31,a32)の計8個となり、4点の位置を測定することで、これらの未知数を特定することができる。
ここで、以下の(13)式に示すように、三次元空間の4点Q1(X1,Y1,0)、Q2(X2,Y2,0)、Q3(X3,Y3,0)、Q4(X4,Y4,0)が、二次元平面の4点(u1,v1)、(u2,v2)、(u3,v3)、(u4,v4)に、射影されているとする。
【0085】
【数13】
【0086】
なお、この三次元空間の4点Q1、Q2、Q3及びQ4は、二次元コードの大きさを示し、予め各座標を記憶手段3に記憶しておき、位置・姿勢算出手段44において読み出すこととしてもよいし、二次元コード内の情報パターンに符号化しておき、情報パターン復号手段43で復号した後に、位置・姿勢算出手段44が参照することとしてもよい。
そして、前記(12)式と前記(13)式とにより、以下の(14)式を解くことで、未知数(a11,a12,a14,a21,a22,a24,a31,a32)を特定することができる。
【0087】
【数14】
【0088】
なお、残りの未知数(a13,a23,a33)は、この(14)式で特定された(a11,a12,a14,a21,a22,a24,a31,a32)を用いて、前記(7)式を解くことで得ることができる。
また、前記(8)式により、P34は、以下の(15)式により求めることができる。
【0089】
【数15】
【0090】
このようにして求められた変数(a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33)及びP34により、前記(6)式から変換行列Pを決定することができる。
そして、前記(3)式を用いることで、二次元コード(QRコード)の各4点(3つの位置検出パターンと1つの位置合わせパターンの各中心位置)の少なくとも1つ、例えば、位置検出パターンMP1(図3参照)の中心位置により、二次元コードの位置を特定することができる。ここでは、位置検出パターンMP1(図3参照)の中心位置の三次元座標を、二次元コードの位置・姿勢情報のうちの位置情報とする。
【0091】
次に、図13を参照して、二次元コードの三次元の姿勢を算出する手法について説明する。図13は、三次元空間の座標系(xyz座標系)において、二次元コードMが、位置検出パターンMP1(図3参照)の中心T1(XT1,YT1,ZT1)を基準として、x軸、y軸及びz軸において、それぞれ回転した状態を示している。
ここで、二次元コードMが、x軸、y軸及びz軸において、それぞれθx、θy及びθzだけ回転しており、基準位置(T1)以外の2点の座標がそれぞれT2(XT2,YT2,ZT2)、T3(XT3,YT3,ZT3)であったとする。
このとき、二次元コードMの姿勢は、それぞれの角度θx、θy及びθzで表すことができ、以下の(16)式で算出することができる。
【0092】
【数16】
【0093】
このように、二次元コード(QRコード)Mの各4点(3つの位置検出パターンと1つの位置合わせパターンの各中心位置)のうちの3点から、二次元コードの姿勢を特定することができる。ここでは、位置検出パターンMP1(図3参照)の中心位置における3軸の回転角度を、二次元コードの位置・姿勢情報のうちの姿勢情報とする。
なお、ここでは、1つの三次元座標と3つの軸の回転角度とにより二次元コードの位置・姿勢情報を表したが、位置及び姿勢を表す情報量であれば、これに限定されるものではない。例えば、3つの三次元座標(例えば、位置検出パターンの中心位置座標(T1,T2,T3))、2つの三次元座標と1つの軸の回転角度(例えば、位置検出パターンの中心位置座標(T1,T2))と角度θZ等であってもよい。
【0094】
また、ここでは、4点の位置から二次元コードの位置・姿勢情報を算出することとしたが、前記(12)式において、さらにX又はYが固定した値である場合、未知数の数が6個となり、3点の位置を測定することで、未知数を特定することができる。すなわち、図3で示した二次元コードMにおいて、3点の位置を計測すればよいことになる。
【0095】
以上のように画像解析手段4を構成することで、画像解析手段4は、カメラC(図1参照)で撮像した撮像画像から、二次元コードの位置及び姿勢を検出し、二次元コード内に記述された符号化パターンを復号することができる。
図1に戻って、二次元コード検出装置1の構成について説明を続ける。
【0096】
制御情報生成手段5は、画像解析手段4で解析された位置及び姿勢、並びに、復号情報に基づいて、二次元コードMが貼付されている操作対象物(ここでは、箱等の物体D)を操作する制御装置(例えば、ロボット〔図示せず〕)に対して、その操作に関連する情報を制御情報として生成するものである。
例えば、復号情報に、物体Dをある地点に移動させる旨の指示情報が含まれている場合、制御情報生成手段5は、物体Dを把持し、その地点に移動後、物体Dを解放する旨の一連の手順を示す、ロボット用の制御情報を生成し、ロボットに出力する。
【0097】
このとき、制御情報生成手段5は、復号情報に、例えば、物体Dの大きさ、硬さ、重さ等の形状・材質情報が含まれている場合、その形状・材質情報を制御情報に付加することとする。これによって、この制御情報を入力したロボットは、その大きさ、重さ等によって、実際に物体Dを把持することができるか否かを判定することが可能になる。
【0098】
また、ここでは、制御情報生成手段5は、位置・姿勢算出手段44で算出された二次元コードの位置及び姿勢を示す位置・姿勢情報と、復号情報とに基づいて、物体Dの操作対象となる位置を算出する特定位置算出部51を備えている。
【0099】
特定位置算出部(特定位置算出手段、把持位置算出手段)51は、復号情報に、二次元コードの位置と、物体Dを操作するための特定の位置(操作対象位置)との相対位置が含まれている場合、画像解析手段4の位置・姿勢算出手段44(図2)で算出された位置・姿勢情報に基づいて、三次元空間における物体の操作対象位置を算出するものである。この操作対象位置は、例えば、物体Dを把持するロボットに対してその把持位置を示す情報となる。
【0100】
ここで、図15を参照して、操作対象位置を算出する手法について説明する。図15は、操作対象位置を算出する手法を説明するための説明図であって、(a)は操作対象物体が回転していない状態、(b)は操作対象物体が回転した状態を示している。
ここでは、操作対象物を、持ち手の付いた物体(箱)Dであるとし、箱Dの側面に二次元コードMを貼付している。そして、二次元コードMには、予め基準となる位置検出パターンから持ち手の把持位置Hまでの相対位置が符号化されているとする。ここでは、ある三次元空間の座標系(xyz座標系)において、相対座標が(−Dx,−Dy,−Dz)であるとする。
【0101】
すると、図15(a)に示すように、箱Dが回転していない状態においては、位置・姿勢算出手段44(図2)で算出された位置情報である二次元コードMの座標T(XT,YT,ZT)に対して、把持位置Hの座標は、(XT−Dx,YT−Dy,ZT−Dz)で表すことができる。
また、図15(b)に示すように、箱Dがx軸、y軸及びz軸に対して回転している状態においては、位置・姿勢算出手段44(図2)で算出された姿勢情報である角度θx、θy及びθzと、二次元コードMの座標T(XT,YT,ZT)と、相対座標(−Dx,−Dy,−Dz)とに基づいて、把持位置Hの回転後の座標HR(XH,YH,ZH)は、以下の(17)式で算出することができる。
【0102】
【数17】
【0103】
このように、位置・姿勢算出手段44(図2)で算出された位置・姿勢情報と、情報パターン復号手段43(図2)で復号された復号情報(ここでは、持ち手の相対位置)とに基づいて、操作対象位置を特定することができる。
以上、二次元コード検出装置1の構成について説明したが、本発明はこれに限定されるものではない。ここでは、任意の三次元空間で撮像した撮像画像から、位置特定パターンを精度よく検出するため、領域抽出手段41を備えたが、例えば、基板等のワークの位置特定に本発明を利用する場合、位置特定パターンの位置が大まかに特定されているため、領域抽出手段41を省略した構成としてもよい。
【0104】
また、二次元コード検出装置1は、一般的なコンピュータを前記した各手段として機能させることで実現することができる。このプログラム(二次元コード検出プログラム)は、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0105】
[二次元コード検出装置の動作]
次に、図16を参照(適宜図1及び図2参照)して、二次元コード検出装置1の動作について説明する。図16は、二次元コード検出装置の動作を示すフローチャートである。
まず、二次元コード検出装置1は、画像入力手段2によって、カメラCで撮像した撮像画像(白黒画像)を入力する(ステップS1)。なお、画像入力手段2は、カメラCで撮像した撮像画像を、フレーム画像単位で入力し、逐次、記憶手段3に記憶する。
そして、二次元コード検出装置1は、画像解析手段4における領域抽出手段41の輝度正規化部41aによって、撮像画像の画素の輝度を補正することで、撮像画像の光の強度(輝度)を正規化する。これによって、二次元コード検出装置1は、二次元コードMの輝度のレベルを均一にした輝度正規化画像(図5参照)を生成する(ステップS2)。
【0106】
また、二次元コード検出装置1は、領域抽出手段41の二値化部41bによって、ステップS2で正規化された輝度正規化画像を、予め定めた閾値を基準として、画素毎に二値化することで二値化画像を生成する(ステップS3)。これによって、二次元コードMの位置特定パターンの候補となる領域が抽出されたことになる。
【0107】
さらに、二次元コード検出装置1は、領域抽出手段41のラベリング部41cによって、ステップS3で生成され、二値化画像として抽出された領域を、その領域にラベルを付して分類する(ラベリング処理:ステップS4)。ここでは、ラベリング部41cは、各領域の画素値を領域固有の値(ラベル)に設定することで、ラベリング画像(図8参照)を生成する。
【0108】
そして、二次元コード検出装置1は、パターン検出手段42の位置検出パターン検出部42aによって、撮像画像から、“黒−白−黒−白−黒”の明暗パターンが、“1:1:3:1:1”の比を持つパターンを探索することで、位置特定パターンの要素である3つの位置検出パターンを検出する(ステップS5)。さらに、二次元コード検出装置1は、パターン検出手段42の位置合わせパターン検出部42bによって、ステップS5で検出された3つの位置検出パターンで特定される矩形を構成する4つ目の頂点位置の近傍領域において、2つの領域(クラスタ)の重心位置を算出し、その重心位置が最も近いものを位置合わせパターンとして検出する(ステップS6)。
【0109】
さらに、二次元コード検出装置1は、情報パターン復号手段43によって、二次元コードMに記述されている情報パターン(符号化パターン)を復号情報として復号する(ステップS7)。
ここで、二次元コード検出装置1は、情報パターン復号手段43によって、情報パターンが復号できたか否かを判定し(ステップS8)、復号できた場合(Yes)に、ステップS9以降に進み、復号できなかった場合(No)には、動作を終了する。
【0110】
そして、二次元コード検出装置1は、位置・姿勢算出手段44のパターン位置推定部44aによって、ステップS5及びステップS6で検出した位置特定パターン(位置検出パターン及び位置合わせパターン)の各領域において、1画素単位以下の詳細な中心位置を推定する(ステップS9)。
続けて、二次元コード検出装置1は、位置・姿勢算出手段44の三次元位置・姿勢算出部44bによって、位置特定パターン(位置検出パターン及び位置合わせパターン)の中心位置の4点に基づいて、三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する(ステップS10)。
【0111】
そして、二次元コード検出装置1は、制御情報生成手段5によって、ステップS10で算出された位置・姿勢情報と、ステップS7で復号された復号情報とに基づいて、操作対象物を操作する制御装置(例えば、ロボット)に対して、その操作に関連する情報を制御情報として生成し、ロボット等の制御装置に制御情報を出力し(ステップS11)、本動作を終了する。
一方、この制御情報を取得したロボット等の制御装置は、制御情報に基づいた動作を行う(ステップS12)。
【0112】
以上の動作によって、二次元コード検出装置1は、三次元空間において、二次元コードMを検出し、その二次元コードMの位置及び姿勢、すなわち、二次元コードMが貼付された物体の位置及び姿勢を算出することができる。このとき、二次元コード検出装置1は、二次元コードMに付加されている符号化データを復号することができるため、二次元コードMを貼付した物体を操作対象として、種々の操作を行わせる制御情報を生成することができる。
【0113】
[二次元コード検出装置の応用例]
次に、図17及び図18を参照して、本発明に係る二次元コード検出装置の応用例について説明する。図17は、ロボットが、二次元コードを貼付した箱を把持し、移動させる例を示した図である。図18は、ロボットが、CD(コンパクトディスク)等のケースを把持する例を示した図である。
【0114】
(応用例1)
まず、カメラとハンド部とを備えたロボット(例えば、二足歩行ロボット)が、箱を把持して移動させる例について説明する。
図17(a)は、ロボットRBの頭部に備えているカメラCの画角内に、二次元コードMが側面に貼付された箱Dが写った状態を示している。また、この二次元コードMには、基準となる位置(ある位置特定パターンの中心位置)から、箱Dの持ち手(把持位置H)までの相対位置と、ある地点(目的地点)まで移動させる旨を示す指示情報とが情報パターンに符号化されているものとする。
【0115】
このとき、ロボットRBは、三次元空間において、カメラCが撮像した撮像画像から、箱Dに貼付された二次元コードMの位置及び姿勢を認識することができる。
また、ここでは、二次元コードMには、基準位置から、箱Dの持ち手(把持位置H)までの相対位置が情報パターンとして符号化されているため、ロボットRBは、箱Dの把持位置Hを認識することができる。
そして、ロボットRBは、箱Dに近づき姿勢を変えた後に、図17(b)に示すように、ハンド部HDによって、箱Dの持ち手を把持する。
その後、ロボットRBは、図17(c)に示すように、目的地点まで二足歩行により移動し、図17(d)に示すように、目的地点に到達した段階で箱Dを解放する。
このように、ロボットRBは、二次元コードMを検出し解析することで、物体の位置や姿勢を認識するとともに、その物体に対して行う動作を実行することができる。
【0116】
(応用例2)
図18(a)は、CD(コンパクトディスク)のケースCSに二次元コードMを貼付した例を示している。また、図18(b)は、ロボットRBが、二次元コードMを貼付したケースCSを検出し、そのケースCSを把持する例を示している。
図18(a)に示すように、ケースCSに二次元コードMを貼付することで、ロボットRB(図18(b))は、ケースCSがどの位置に、どの姿勢で置かれているのかを認識することができる。
【0117】
なお、図18(b)に示したロボットRBは、図17で説明したロボットRBと同様の構成となっている。すなわち、ロボットRBは、カメラCで撮像した撮像画像内の二次元コードMの三次元位置を、二次元コード検出装置1によって検出する。
さらに、二次元コードMにケースCSを把持するための2点の位置が、二次元コードMからの相対位置として符号化されている場合、ロボットRBは、その相対位置によって、ケースCSを把持する位置を認識し、ハンド部HDでケースCSを把持することが可能になる。
【0118】
以上説明したように、二次元コード検出装置1は、ロボットに対して制御情報を生成し出力する場合、ロボット制御情報生成装置として機能することになる。
このように、ロボットのような移動体と、二次元コードの位置や姿勢が変化する環境においても、二次元コード検出装置(ロボット制御情報生成装置)は、その二次元コードの位置及び姿勢を特定することができ、さらに、二次元コードに符号化された情報によって、種々の制御情報を生成することができる。
【図面の簡単な説明】
【0119】
【図1】本発明に係る二次元コード検出装置の全体構成を示したブロック図である。
【図2】本発明に係る二次元コード検出装置の画像解析手段の構成を示したブロック図である。
【図3】二次元コード(QRコード)の構造の一例を示すパターン図である。
【図4】二次元コードを貼付した物体を正面から撮像した画像(撮像画像)を示す図である。
【図5】撮像画像を輝度において正規化した輝度正規化画像を示す図である。
【図6】輝度正規化画像を二値化した二値化画像を示す図である。
【図7】ラベリングを行う際の規則を説明するための説明図である。
【図8】二値化画像の領域毎にラベリングを行ったラベリング画像を示す図である。
【図9】位置検出パターンの構造を示す図である。
【図10】位置合わせパターンの構造を示す図である。
【図11】位置特定パターンの中心位置を推定する手法を説明するための説明図である。
【図12】三次元の位置を算出する手法を説明するための説明図である。
【図13】三次元の姿勢を算出する手法を説明するための説明図である。
【図14】二次元コードの座標系を示す図である。
【図15】操作対象位置を算出する手法を説明するための説明図であって、(a)は操作対象物体が回転していない状態、(b)は操作対象物体が回転した状態を示している。
【図16】二次元コード検出装置の動作を示すフローチャートである。
【図17】ロボットが、二次元コードを貼付した箱を把持し、移動させる例を示した図である。
【図18】ロボットが、CDのケースを把持する例を示した図である。
【符号の説明】
【0120】
1 二次元コード検出装置(ロボット制御情報生成装置)
2 画像入力手段
3 記憶手段
4 画像解析手段
41 領域抽出手段
41a 輝度正規化部
41b 二値化部
41c ラベリング部
42 パターン検出手段
42a 位置検出パターン検出部
42b 位置合わせパターン検出部
43 情報パターン復号手段(復号手段)
44 位置・姿勢算出手段
44a パターン位置推定部
44b 三次元位置・姿勢算出部
5 制御情報生成手段
51 特定位置算出部(特定位置算出手段、把持位置算出手段)
C カメラ
M 二次元コード
RB ロボット
HD ハンド部
【技術分野】
【0001】
本発明は、物体に貼付された二次元コードの位置、姿勢及び当該二次元コードに符号化された情報を検出する二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボットに関する。
【背景技術】
【0002】
従来、ロボット等が物体の位置や姿勢を認識するには、ステレオ視、レンジファインダ等により三次元空間における物体の距離情報を取得し、その距離情報で形成される物体の立体情報に既知のモデルを当てはめることにより行っていた。しかし、これらの位置、姿勢の推定は、既知形状の物体である等、限定された環境において実現されており、複雑なシーンにおいては、対象となる物体を精度よく高速に認識することは現在のコンピュータの能力では困難であり、実現されていない。
【0003】
そこで、バーコードや二次元コードを物体に貼付することで、物体の位置や姿勢を認識するための補助とする技術が種々提案されている。例えば、物体に二次元コードを貼付し、その二次元コードの各頂点を検出することで、物体の載置状態を認識するシステムが開示されている(特許文献1参照)。
このシステムによれば、テーブルに載置された、二次元コードが貼付された物体を撮像素子により撮像し、その撮像された画像を解析することで、二次元コードの各頂点を検出し、その頂点位置に基づいて、物体の向き(回転)等を検出している。そして、このシステムは、物体の向きにあわせてロボットの姿勢を制御させることで、ロボットにより物体を把持し移動させることを可能としている。
また、このシステムは、二次元コードに符号化されたデータを復号することで、ロボットが物体を把持する際の物体の種類、形状、大きさ等の物体の特性を認識可能としている。
【特許文献1】特開2004−1153号公報(段落番号0043〜0053、第1〜3図)
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、前記した特許文献1に開示されている技術では、物体の姿勢として、予め定めた場所に載置された二次元平面(テーブル)上における物体の向き(回転)しか検出することができない。すなわち、この技術では、三次元空間に設置された物体については、その姿勢を検出することができないという問題がある。
また、前記した技術では、二次元コードに物体そのものの特性を符号化しておくことで、ロボットが物体を把持する際の情報として利用しているが、その物体に対して予め定めた位置に二次元コードを貼付しておかなければ、正確に物体の位置を認識することができない。そこで、従来のシステムは、物体毎に、その物体に対する二次元コードの位置を記憶しておかなければならず、異なる物体を処理する場合等、その位置を記憶し直さなければならず、汎用性に欠けるといった問題がある。
【0005】
本発明は、以上のような問題点に鑑みてなされたものであり、物体に貼付された二次元コードを検出し、三次元空間上の物体の位置、姿勢を認識するとともに、その物体に対して把持等の処理を行う際に必要となる制御情報を生成することが可能な二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボット制御情報生成装置を組み込んだロボットを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、前記目的を達成するために創案されたものであり、請求項1に記載の二次元コード検出装置は、コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成する二次元コード検出装置であって、前記物体を撮像した撮像画像を入力する画像入力手段と、この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、前記情報パターンを復号する復号手段と、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、を備えていることを特徴とする。
【0007】
かかる構成によれば、二次元コード検出装置は、画像入力手段によって、物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。この二次元コードは、予め定めた複数のパターン(位置特定パターン)によって、二次元コードそのものの認識と、二次元コードの向きを特定することが可能なコードである。
【0008】
そして、二次元コード検出装置は、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出する。なお、撮像画像内における二次元コードは、既知の大きさ、位置にあると仮定した二次元コードが、実空間(三次元空間)に回転・平行移動し、その移動後の二次元コードが撮像画像内に射影変換されたものとみなすことができる。すなわち、位置・姿勢算出手段は、複数の位置特定パターンから、回転・平行移動を表す変換行列を求めることで、三次元空間における二次元コードの位置・姿勢情報を算出することができる。
また、二次元コード検出装置は、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
【0009】
そして、二次元コード検出装置は、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、二次元コードが記された物体に対応した制御内容を示す制御情報を生成する。
これによって、二次元コード検出装置は、二次元コードの位置及び姿勢のみならず、復号された情報に基づいて、その二次元コードが記された物体の大きさ、重さ等の情報や、その物体に対する操作指示内容等を制御情報として生成することができる。なお、二次元コードは、印刷等により直接物体に描画されたものであってもよいし、シール等により物体に貼付されたものであってもよい。
【0010】
また、請求項2に記載の二次元コード検出装置は、請求項1に記載の二次元コード検出装置において、前記二次元コードに4つの前記位置特定パターンを含み、前記位置・姿勢算出手段が、前記撮像画像における前記4つの前記位置特定パターンの二次元位置に基づいて、前記位置・姿勢情報を算出することを特徴とする。
【0011】
かかる構成によれば、二次元コード検出装置は、位置特定パターンが4つのパターンで構成されていることで、位置・姿勢算出手段が、任意の三次元空間における二次元パターンの位置及び姿勢を算出することが可能になる。
【0012】
さらに、請求項3に記載の二次元コード検出装置は、請求項1に記載の二次元コード検出装置において、前記二次元コードが、QRコード(登録商標)であることを特徴とする。
【0013】
かかる構成によれば、二次元コード検出装置は、二次元コードの位置特定パターンを、QRコードにおける位置検出パターンや位置合わせパターンとすることで、QRコードの位置や姿勢を認識することができる。また、QRコード内に情報パターンを符号化して書き込むことで、二次元コード検出装置は、その情報を読み出すことができる。
【0014】
また、請求項4に記載の二次元コード検出装置は、請求項1に記載の二次元コード検出装置において、前記情報パターンには、前記二次元コードの位置特定パターンから前記物体の特定位置までの相対位置が符号化されており、前記制御情報生成手段が、前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記特定位置を算出する特定位置算出手段を備えていることを特徴とする。
【0015】
かかる構成によれば、二次元コード検出装置は、特定位置算出手段によって、位置・姿勢情報と相対位置とから、指定された任意の物体の位置を算出することができる。
【0016】
さらに、請求項5に記載の二次元コード検出プログラムは、コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成するために、コンピュータを、前記物体を撮像した撮像画像において前記位置特定パターンを検出するパターン検出手段、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段、前記情報パターンを復号する復号手段、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段、
として機能させることを特徴とする。
【0017】
かかる構成によれば、二次元コード検出プログラムは、画像入力手段によって、前記物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。
そして、二次元コード検出プログラムは、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出し、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
そして、二次元コード検出プログラムは、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、二次元コードが貼付された物体に対応した制御内容を示す制御情報を生成する。
【0018】
また、請求項6に記載のロボット制御情報生成装置は、カメラと物体を把持するハンド部とを備えたロボットにおいて、コード内の位置が予め特定された位置特定パターンと、前記物体に関連する情報が符号化された情報パターンとを含んだ、前記物体に記された二次元コードに基づいて、前記ロボットに対する制御情報を生成するロボット制御情報生成装置であって、前記カメラが前記物体を撮像した撮像画像を入力する画像入力手段と、この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、前記情報パターンを復号する復号手段と、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置及び姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、を備えていることを特徴とする。
【0019】
かかる構成によれば、ロボット制御情報生成装置は、画像入力手段によって、カメラが物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。
そして、ロボット制御情報生成装置は、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出し、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
そして、ロボット制御情報生成装置は、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、ロボットに対する制御内容を示す制御情報を生成する。この制御情報は、例えば、物体を把持する旨の指示、物体を移動させる旨の指示等である。
【0020】
さらに、請求項7に記載のロボット制御情報生成装置は、請求項6に記載のロボット制御情報生成装置において、前記情報パターンには、前記二次元コードの位置特定パターンから、前記ロボットが前記物体を把持する把持位置までの相対位置が符号化されており、前記制御情報生成手段が、前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記把持位置を算出する把持位置算出手段を備えていることを特徴とする。
【0021】
かかる構成によれば、ロボット制御情報生成装置は、把持位置算出手段によって、位置・姿勢情報と相対位置とから、指定された任意の位置となる把持位置を算出することができる。
【0022】
また、請求項8に記載のロボットは、カメラと物体を把持するハンド部とを備えたロボットにおいて、請求項6に記載のロボット制御情報生成装置を備え、前記ロボット制御情報生成装置によって生成される制御情報に基づいて、前記物体を前記ハンド部により把持することを特徴とする。
【0023】
かかる構成によれば、ロボットは、ロボット制御情報生成装置が生成する制御情報に基づいて、物体の位置及び姿勢を把握することで、その物体をハンド部により把持する際の位置を特定することができる。なお、物体を把持する際の把持位置は、二次元コードの位置から予め定めた相対位置だけ離れた位置とする。また、この相対位置は、二次元コードに符号化しておくこととしてもよい。
【発明の効果】
【0024】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、二次元コードの三次元空間における位置と姿勢を検出することができるとともに、二次元コード内に符号化された情報を読み出すことができる。これによって、物体の位置・姿勢に加え、当該物体の種々の情報、例えば、大きさ、重さ等を把握することが可能になる。例えば、当該物体を検出したロボットが、その制御動作として、物体を把持することができる。このとき、物体の種々の情報(特性)を取得することができるため、ロボットは、その物体を把持することができるか否かを事前に判断することができ、効率的なロボットの制御動作を行うことが可能になる。
【0025】
また、本発明によれば、4つの位置特定パターンによって、二次元コードの位置及び姿勢を特定するため、三次元空間における任意の位置、姿勢であっても、検出することができる。
また、本発明によれば、二次元コードにQRコードを使用することで、二次元のパターン認識が容易になり、位置及び姿勢の検出の時間を早めることができる。
さらに、本発明によれば、二次元コードにおける位置特定パターンの位置からの相対位置によって、物体の任意の位置を特定することができるため、ロボットが大きさ、形状等の異なる物体を把持する場合であっても、ロボットは物体毎に異なる把持位置を記憶しておく必要がなく、汎用性を高めることができる。
【発明を実施するための最良の形態】
【0026】
以下、本発明の実施の形態について図面を参照して説明する。
[二次元コードの例:QRコードの構造について]
まず、図3を参照して、本発明に係る二次元コード検出装置で検出する二次元コードの構造について説明する。なお、ここでは、例えば、二次元コードとして、QRコードを用いることとする。図3は、二次元コード(QRコード)の構造の一例を示すパターン図である。
図3に示すように、二次元コード(QRコード)Mは、二次元マトリックス内に、中央をあらゆる角度で横切る走査線において周波数成分比が、“1:1:3:1:1”の特定の明暗パターンとなる3つの位置検出パターンMP1,MP2,MP3と、情報を符号化した情報パターンIPと、認識時における情報パターンIPの各セルのずれを調整するための位置合わせパターンMP4とで構成されている。
【0027】
本発明においては、位置検出パターンMP1,MP2,MP3と位置合わせパターンMP4の4点を、二次元コードの位置及び姿勢を特定するためのパターン(位置特定パターン)として使用し、情報パターンIPを、二次元コードが貼付された物体を操作対象としたときの、操作指示等の制御情報の書き込み領域として使用することとしている。
なお、ここでは、二次元コードの例として、QRコードを示したが、4点の位置特定パターンが特定でき、情報が書き込まれたものであれば、そのパターンの形状等は限定されるものではない。例えば、形状の異なるパターン、異なる色を有するパターン等によって、位置特定パターンを構成することとしてもよい。
【0028】
[二次元コード検出装置の構成]
次に、図1を参照して、本発明に係る二次元コード検出装置の構成について説明する。図1は、本発明に係る二次元コード検出装置の全体構成を示したブロック図である。図1に示した二次元コード検出装置1は、カメラCで撮像された撮像画像から、物体Dに貼付された二次元コードMの位置及び姿勢を算出するとともに、当該二次元コードMに符号化されている符号化データを復号することで、二次元コードMの位置及び姿勢を示す位置・姿勢情報と復号情報とを制御情報として出力するものである。
ここでは、二次元コード検出装置1は、画像入力手段2と、記憶手段3と、画像解析手段4と、制御情報生成手段5とを備えている。
【0029】
画像入力手段2は、カメラCが撮像した撮像画像(白黒画像)を1フレーム単位で入力するものである。この画像入力手段2は、入力した撮像画像を記憶手段3に書き込むとともに、画像解析手段4に撮像画像が入力された旨を通知する。
【0030】
記憶手段3は、画像入力手段2が入力した撮像画像を記憶するものであって、半導体メモリ等の一般的な記憶手段である。なお、記憶手段3は、後記する画像解析手段4によって、画像を解析する際に種々生成される画像についても記憶するものとする。
【0031】
画像解析手段4は、画像入力手段2が入力した撮像画像を解析することで、撮像画像内において二次元コードMを検出し、その位置及び姿勢を算出するとともに、二次元コードMに符号化されている情報パターン(符号化パターン)を復号情報として復号するものである。この画像解析手段4で解析された位置及び姿勢、並びに、復号情報は制御情報生成手段5に出力される。
【0032】
ここで、図2を参照(適宜図1参照)して、画像解析手段4の構成について説明する。図2は、本発明に係る二次元コード検出装置の画像解析手段の構成を示したブロック図である。図2に示すように、画像解析手段4は、領域抽出手段41と、パターン検出手段42と情報パターン復号手段43と、位置・姿勢算出手段44とを備えている。
【0033】
領域抽出手段41は、画像入力手段2で入力され、記憶手段3に記憶された撮像画像から、二次元コードMの4つの位置特定パターンの候補となる領域を抽出するものである。ここでは、領域抽出手段41は、輝度正規化部41aと、二値化部41bと、ラベリング部41cとを備えている。
【0034】
輝度正規化部41aは、撮像画像の画素の輝度を補正することで、撮像画像の輝度を正規化するものである。一般に、撮像画像は、照明等の影響によって、画像内の輝度にバラツキが生じている。そこで、ここでは、後記する二値化部41bにおいて撮像画像を二値化するため、撮像画像において適正に二値化処理が可能なように、撮像画像の輝度を正規化した画像(輝度正規化画像)を生成する。すなわち、輝度正規化部41aは、撮像画像における各画素の光の強度を、その画素の周辺画素の平均強度により除算することで、撮像画像の光の強度を正規化する。より具体的には、画素の光の強度をI、注目する画素の画素位置を(u,v)、その画素を中心とした周辺領域の大きさを横(2n+1)画素、縦(2m+1)画素としたとき、輝度正規化部41aは、画素位置(u,v)の正規化した光の強度Ou,vを、以下の(1)式により算出する。
【0035】
【数1】
【0036】
ここで、図4及び図5を参照して、輝度正規化部41aに入力される撮像画像、及び、輝度正規化部41aで正規化された輝度正規化画像について、具体的に説明する。図4は、二次元コードを貼付した物体を正面から撮像した画像(撮像画像)を示し、図5は、図4の撮像画像を輝度において正規化した輝度正規化画像を示している。
【0037】
なお、図4及び図5では、二次元コードM内に含まれる位置特定パターンと情報パターンのうち、説明を簡略化するため、情報パターンの図示を省略している。この情報パターンについても、以下で説明する位置特定パターンと同様な処理が行われる。また、ここでは、二次元コードを貼付した物体を正面から撮像した画像を用いて説明を行うが、以下に示す処理によって位置特定パターンと情報パターンとが認識できれば、二次元コードが傾いて撮像されている画像であってもよい。
【0038】
図4では、位置特定パターンである3つの位置検出パターンMP1,MP2,MP3、及び、1つの位置合わせパターンMP4を含んだ二次元コード(QRコード)Mを貼付された物体Dを撮像した画像で、周辺部分ほど暗い状態を示している。すなわち、物体Dは、中央部より周辺部の方が、輝度が低くなっている。そのため、周辺部の位置合わせパターンMP4は、中央部の位置検出パターンMP1等より輝度が低くなっている。この撮像画像で二値化を行うと、閾値によっては、位置合わせパターンMP4のみを抽出したり、物体Dの一部まで抽出したり等、位置特定パターン(位置検出パターンMP1,MP2,MP3、位置合わせパターンMP4)を適正に分離することができない。
【0039】
そこで、輝度正規化部41a(図2)が、図4に示した撮像画像の輝度を正規化し、図5に示した輝度正規化画像を生成する。図5では、周辺部の位置合わせパターンMP4の輝度が高くなり、中央部の位置検出パターンMP1等と同等の輝度となっていることを示している。このように、撮像画像を輝度で正規化することで、位置特定パターンの輝度のレベルを均一にすることができる。
図2に戻って説明を続ける。
【0040】
二値化部41bは、輝度正規化部41aで生成された輝度正規化画像を予め定めた閾値を基準として、画素毎に二値化した二値化画像を生成するものである。例えば、閾値よりも高い輝度の画素の値を「1」、それ以外の画素の値を「0」とする。なお、閾値は、輝度正規化部41aで生成される輝度正規化画像において、位置特定パターンの輝度のレベルが均一になっているため、その輝度のレベルに基づいて、予め定めておくことができる。
【0041】
この二値化部41bで生成された二値化画像は、例えば、図6に示すように、図5の輝度正規化画像から、位置特定パターン(位置検出パターンMP1,MP2,MP3、位置合わせパターンMP4)を抽出したものとなる。ただし、二値化部41bでは、位置特定パターンの輝度と同じ又はそれ以上の輝度を持つ領域が抽出される可能性がある。すなわち、ここで抽出された領域は、位置特定パターンの候補となる領域といえる。この二値化部41bで生成された二値化画像は、記憶手段3に記憶され、後記するラベリング部41cによって参照される。
【0042】
ラベリング部41cは、二値化部41bで生成され、二値化画像として抽出された領域を、その領域毎にラベルを付して分類するものである。ラベル付けを行うことで領域を分類(クラスタリング)する手法は種々存在するが、ここでは、ラベリング部41cが、各領域の画素値を、領域固有の値に設定したラベリング画像を生成することで分類を行うこととする。なお、このラベリング部41cで生成されたラベリング画像は、記憶手段3に記憶され、パターン検出手段42及び情報パターン復号手段43によって参照される。
【0043】
ここで、図7を参照して、ラベリング部41cにおけるラベリング画像を生成する手法について説明する。図7は、ラベリングを行う対象となる注目画素の位置を基準位置(0,0)とし、その基準位置に対して、左上の画素位置(−1,−1)、真上の画素位置(0,−1)、右上の画素位置(1,−1)、左の画素位置(−1,0)の各画素値を判定することで、注目画素の画素値を決定する規則(規則〈1〉〜〈5〉)を説明するための図である。
【0044】
ラベリング部41c(図2)は、以下の規則〈1〉〜〈5〉を、画像(二値化画像)の左上から順番にスキャンし、注目画素のラベルを決定する。なお、ここでは、二値化部41b(図2)で生成された二値化画像は、位置特定パターンや情報パターンの候補となる領域の画素値が「1」、それ以外の画素値が「0」となっているものとし、領域毎に固有の「ID」値(ラベル)を付与するものとする。また、以下の規則は、すべて注目画素の画素値が「1」の場合の動作を規定している。
【0045】
規則〈1〉 画素位置(−1,−1)、(0,−1)、(1,−1)、(−1,0)の画素値がすべて「0」の場合は、注目画素(0,0)に固有の「ID」を付与する。(例えば、「100」から順に番号を付ける。)
規則〈2〉 画素位置(−1,−1)、(0,−1)、(1,−1)のいずれかにすでに「ID」が付与されており、左の画素位置(−1,0)の画素値が「0」の場合は、注目画素(0,0)に、上の画素位置に付与されている「ID」を付与する。
規則〈3〉 画素位置(−1,−1)、(0,−1)、(1,−1)の画素値がすべて「0」で、左の画素位置(−1,0)に「ID」が付与されている場合は、注目画素(0,0)に、左の画素位置(−1,0)の「ID」を付与する。
規則〈4〉 画素位置(−1,−1)、(0,−1)、(1,−1)のいずれかに「ID」が付与されており、左の画素位置(−1,0)に付与されている「ID」と同じである場合は、注目画素(0,0)に、左の画素位置(−1,0)の「ID」を付与する。
規則〈5〉 画素位置(1,−1)と画素位置(−1,0)とに異なる「ID」が付与されている場合は、左の画素位置(−1,0)に付与されている「ID」を注目画素(0,0)に付与するとともに、画素位置(1,−1)と同じ「ID」を付与されている画素のラベルを、すべて、画素位置(−1,0)に付与されている「ID」に付け直す。
【0046】
以上の規則に基づいて、図6で示した二値化画像に対してラベル付けを行うと、図8に示したように、個々の領域に固有のラベル(100、101等)が付与(設定)された、ラベリング画像が生成されることになる。なお、この図8に示したラベリング画像においては省略しているが、情報パターンも同様に領域毎に固有のラベルが付与されている。このように、ラベリング部41cにおいて、二値化画像をラベル付けすることで、撮像画像を複数の領域(クラスタ)として管理することができる。
図2に戻って説明を続ける。
【0047】
パターン検出手段42は、撮像画像から位置特定パターンを検出するものである。ここでは、パターン検出手段42は、位置検出パターン検出部42aと、位置合わせパターン検出部42bとを備えている。
【0048】
位置検出パターン検出部42aは、撮像画像から、位置特定パターンの一つである位置検出パターンを検出するものである。ここでは、二次元コードをQRコードとしているため、位置検出パターン検出部42aは、二値化部41bで生成された二値画像において、図9に示すように、“黒−白−黒−白−黒”の明暗パターンが、“1:1:3:1:1”の比を持つパターンを探索することで、位置検出パターンMP(MP1,MP2,MP3)を検出する。
ここでは、位置検出パターン検出部42aは、あるパターンが以下の3つの条件(条件(1)〜(3))を満たしているときに、そのパターンが位置検出パターンであると推定する。
【0049】
条件(1) パターンが、二値画像の左上から順番に水平方向にスキャンしたときに、長さの比が“1:1:3:1:1”となる“黒−白−黒−白−黒”となる画素列である。
条件(2) パターンが、二値化画像の左上から順番に垂直方向にスキャンしたときに、長さの比が“1:1:3:1:1”となる“黒−白−黒−白−黒”となる画素列である。
条件(3) ラベリング画像において、条件(1)及び条件(2)を満たす真中の黒領域を囲む領域に同じラベルが付与されている(真中の黒領域の周囲が白である)。
【0050】
そして、位置検出パターン検出部42aは、以上の条件(1)〜(3)を満たす3つのパターンを位置検出パターンとして推定し、位置検出パターンの真中の黒領域のラベルを、後記する位置合わせパターン検出部42b、情報パターン復号手段43及び位置・姿勢算出手段44に出力する。
【0051】
位置合わせパターン検出部42bは、撮像画像から、位置特定パターンの一つである位置合わせパターンを検出するものである。なお、図10に示したように、位置合わせパターンMP4は、中心の黒領域であるクラスタCBと、そのクラスタCBを囲む周囲の白領域であるクラスタCWは、矩形形状となっているが、さらにその周囲のクラスタCXは、他の黒点と連結している。このため、位置検出パターンのような明暗パターンの比によって検出することはできない。そこで、ここでは、クラスタCBと、その周囲のクラスタCWの重心位置が同一であることを利用して、位置合わせパターンを検出することとする。
【0052】
すなわち、位置合わせパターン検出部42bは、位置検出パターン検出部42aで検出された3つの位置検出パターンMP1,MP2,MP3(図3参照)から、矩形を構成する4つ目の頂点位置の近傍領域において、2つの領域(クラスタ)の重心位置を算出し、その重心位置が最も近いものを位置合わせパターンMP4(図3参照)として推定する。そして、位置合わせパターン検出部42bは、推定した位置合わせパターンのラベルを、後記する情報パターン復号手段43及び位置・姿勢算出手段44に出力する。
【0053】
情報パターン復号手段(復号手段)43は、二次元コードMに記述されている情報パターン(符号化パターン)を復号情報として復号するものである。ここでは、情報パターン復号手段43は、パターン検出手段42で検出された位置特定パターン(3つの位置検出パターンと1つの位置合わせパターン)の位置に基づいて、情報パターンが記述されている領域を認識し、情報パターンを復号する。なお、この情報パターンの符号化方式は、本発明においては、特に限定されるものではなく、例えば、QRコードに準拠した方式を用いることとしてもよい。そして、情報パターン復号手段43は、復号した復号情報を後記する位置・姿勢算出手段44と制御情報生成手段5とに出力する。
【0054】
なお、情報パターン復号手段43において、情報パターンが予め定めた符号化方式に沿っていない等の原因によって復号できない場合は、位置特定パターンと同一のパターンが撮像画像内に存在していたものと判定し、後記する位置・姿勢算出手段44における当該パターンによる位置・姿勢の算出を行わないこととする。
【0055】
位置・姿勢算出手段44は、二次元コードMの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出するものである。ここでは、位置・姿勢算出手段44は、パターン位置推定部44aと、三次元位置・姿勢算出部44bとを備えている。
【0056】
パターン位置推定部44aは、位置特定パターン(3つの位置検出パターンと1つの位置合わせパターン)の各領域(二次元平面)において、1画素単位以下の詳細な位置を推定するものである。ここでは、パターン位置推定部44aは、位置特定パターンの各領域の中心位置を推定するものとする。
【0057】
ここで、図11を参照(適宜図2参照)して、パターン位置推定部44aが、二次元コードの4隅に位置する位置特定パターンのそれぞれの中心位置を推定する手法について説明する。図11は、位置特定パターンの中心位置を推定する手法を説明するための説明図である。
【0058】
パターン位置推定部44aは、二値化部41bで生成された二値化画像(図6)の各位置特定パターンの中央のクラスタ(黒の矩形領域)の重心Gから、横及び縦に伸ばした直線上でクラスタの中心位置を決定する。なお、ここでは、説明を簡略化するため、横方向の直線Lによって、クラスタの横方向の中心位置を決定する場合について説明する。
【0059】
図11(a)に示すように、二値化画像は輝度値が二値の値をとり、その領域の境界の精度は画素単位である。そこで、パターン位置推定部44aは、図11(b)に示すように、画像入力手段2で入力された撮像画像(グレー画像)から、直線L上のエッジを検出し、そのエッジの輝度値がピークとなる位置(ピーク位置Pk)を、クラスタの境界とする。
なお、縦方向においても同様にクラスタの境界を決定し、横方向における境界の中心と、縦方向における境界の中心とを、クラスタの中心位置とする。これによって、パターン位置推定部44aは、1画素以下の精度でクラスタ、すなわち、位置特定パターンの中心位置を決定することができる。
図2に戻って説明を続ける。
【0060】
三次元位置・姿勢算出部44bは、パターン検出手段42で検出された位置特定パターン(3つの位置検出パターンと1つの位置合わせパターン)の中心位置に基づいて、三次元空間における位置及び姿勢を示す位置・姿勢情報を算出するものである。この三次元位置・姿勢算出部44bで算出された位置・姿勢情報は、制御情報生成手段5に出力される。
なお、一般に、ある物体の三次元空間の既知の座標Qが、三次元空間の未知の座標Tに回転・平行移動し、その座標Tが、二次元平面の既知の座標Sに射影変換されている場合、三次元空間の座標Qが4点定まれば、その物体の位置・姿勢を推定することは可能である。
【0061】
ここで、図12及び図13を参照(適宜図2参照)し、数式を用いて、物体貼付した二次元コードの4点から二次元コードの三次元の位置及び姿勢を算出する手法について説明する。図12は、三次元の位置を算出する手法を説明するための説明図である。図13は、三次元の姿勢を算出する手法を説明するための説明図である。
【0062】
図12では、三次元空間の座標系(xyz座標系)において、二次元平面(xy座標系)の中心が三次元座標(0,0,1)に位置し、その二次元平面がxy平面に平行である状態を示している。また、予め既知の三次元空間の座標Q(X,Y,Z)が、ある回転・平行移動となる変換行列Pによって、座標T(Tx,Ty,Tz)に変換され、その座標Tが二次元平面上の座標S(u,v)(三次元座標で(u,v,1))に射影変換されているとする。
【0063】
このとき、三次元空間の座標系は位置・姿勢算出手段44が使用する座標系となる。また、座標Qは予め定めた三次元空間における位置特定パターンの位置を示し、例えば、図14に示すように、z軸の値を“0”(Z=0)とした、三次元空間に位置しているものとする。また、座標Tは実際に物体に貼付された二次元コードの三次元空間における位置特定パターンの位置、座標Sは撮像画像上の二次元座標にそれぞれ対応している。
ここで、回転・平行移動を示す変換行列Pを、以下の(2)式とする。なお、P11〜P13、P21〜P23及びP31〜P33は回転成分、P14、P24及びP34は移動成分を示しているものとする。
【0064】
【数2】
【0065】
すると、座標T(Tx,Ty,Tz)は、以下の(3)式に示すように、既知の座標Q(X,Y,Z)を変換行列Pで変換することで算出することができる。
【0066】
【数3】
【0067】
すなわち、二次元コードの三次元空間上の位置特定パターンの位置である座標Tは、変換行列Pが決定されれば求めることができる。
以下、変換行列Pの各成分を求めることとする。
ここで、座標T(Tx,Ty,Tz)は、二次元平面の座標S(u,v)〔三次元座標で(u,v,1)〕に射影変換されているため、定数wを用いて、座標Tと座標Sとは、以下の(4)式の関係となる。
【0068】
【数4】
【0069】
そして、前記(3)式と、前記(4)式とにより、以下の(5)式の関係が成り立つ。
【0070】
【数5】
【0071】
ここで、前記(2)式で示した変換行列Pを以下の(6)式に示すように変形する。また、ここでは、P11/P34等をa11等の新しい変数に置き換えている。
【0072】
【数6】
【0073】
なお、P11〜P13、P21〜P23及びP31〜P33は回転行列の成分を表すことから、その正規直交性により、以下の(7)式及び(8)式の関係が成り立つ。
【0074】
【数7】
【0075】
【数8】
【0076】
また、w/P34=Wとすると、前記(5)式及び(6)式により、以下の(9)式の関係が成り立つ。
【0077】
【数9】
【0078】
この(9)式を展開し変形すると、以下の(10)式を得る。
【0079】
【数10】
【0080】
この(10)式における第3式のWを、第1式及び第2式に代入し、a(a11,a12,…,a33)について線形式に変換すると、以下の(11)式となる。
【0081】
【数11】
【0082】
ここで、X,Y,Z,u,vは既知の値であり、(a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33)の計11個が未知数である。すなわち、この段階においては、6点の位置を測定しなければ前記(11)式を解くことができない。
しかし、二次元コードは平面であるため、三次元空間において、Z=0となるXY平面にあると設定することができる(図14参照)。そこで、Z=0とすると、前記(11)式は以下の(12)式となる。
【0083】
【数12】
【0084】
この(12)式においては、未知数が、(a11,a12,a14,a21,a22,a24,a31,a32)の計8個となり、4点の位置を測定することで、これらの未知数を特定することができる。
ここで、以下の(13)式に示すように、三次元空間の4点Q1(X1,Y1,0)、Q2(X2,Y2,0)、Q3(X3,Y3,0)、Q4(X4,Y4,0)が、二次元平面の4点(u1,v1)、(u2,v2)、(u3,v3)、(u4,v4)に、射影されているとする。
【0085】
【数13】
【0086】
なお、この三次元空間の4点Q1、Q2、Q3及びQ4は、二次元コードの大きさを示し、予め各座標を記憶手段3に記憶しておき、位置・姿勢算出手段44において読み出すこととしてもよいし、二次元コード内の情報パターンに符号化しておき、情報パターン復号手段43で復号した後に、位置・姿勢算出手段44が参照することとしてもよい。
そして、前記(12)式と前記(13)式とにより、以下の(14)式を解くことで、未知数(a11,a12,a14,a21,a22,a24,a31,a32)を特定することができる。
【0087】
【数14】
【0088】
なお、残りの未知数(a13,a23,a33)は、この(14)式で特定された(a11,a12,a14,a21,a22,a24,a31,a32)を用いて、前記(7)式を解くことで得ることができる。
また、前記(8)式により、P34は、以下の(15)式により求めることができる。
【0089】
【数15】
【0090】
このようにして求められた変数(a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33)及びP34により、前記(6)式から変換行列Pを決定することができる。
そして、前記(3)式を用いることで、二次元コード(QRコード)の各4点(3つの位置検出パターンと1つの位置合わせパターンの各中心位置)の少なくとも1つ、例えば、位置検出パターンMP1(図3参照)の中心位置により、二次元コードの位置を特定することができる。ここでは、位置検出パターンMP1(図3参照)の中心位置の三次元座標を、二次元コードの位置・姿勢情報のうちの位置情報とする。
【0091】
次に、図13を参照して、二次元コードの三次元の姿勢を算出する手法について説明する。図13は、三次元空間の座標系(xyz座標系)において、二次元コードMが、位置検出パターンMP1(図3参照)の中心T1(XT1,YT1,ZT1)を基準として、x軸、y軸及びz軸において、それぞれ回転した状態を示している。
ここで、二次元コードMが、x軸、y軸及びz軸において、それぞれθx、θy及びθzだけ回転しており、基準位置(T1)以外の2点の座標がそれぞれT2(XT2,YT2,ZT2)、T3(XT3,YT3,ZT3)であったとする。
このとき、二次元コードMの姿勢は、それぞれの角度θx、θy及びθzで表すことができ、以下の(16)式で算出することができる。
【0092】
【数16】
【0093】
このように、二次元コード(QRコード)Mの各4点(3つの位置検出パターンと1つの位置合わせパターンの各中心位置)のうちの3点から、二次元コードの姿勢を特定することができる。ここでは、位置検出パターンMP1(図3参照)の中心位置における3軸の回転角度を、二次元コードの位置・姿勢情報のうちの姿勢情報とする。
なお、ここでは、1つの三次元座標と3つの軸の回転角度とにより二次元コードの位置・姿勢情報を表したが、位置及び姿勢を表す情報量であれば、これに限定されるものではない。例えば、3つの三次元座標(例えば、位置検出パターンの中心位置座標(T1,T2,T3))、2つの三次元座標と1つの軸の回転角度(例えば、位置検出パターンの中心位置座標(T1,T2))と角度θZ等であってもよい。
【0094】
また、ここでは、4点の位置から二次元コードの位置・姿勢情報を算出することとしたが、前記(12)式において、さらにX又はYが固定した値である場合、未知数の数が6個となり、3点の位置を測定することで、未知数を特定することができる。すなわち、図3で示した二次元コードMにおいて、3点の位置を計測すればよいことになる。
【0095】
以上のように画像解析手段4を構成することで、画像解析手段4は、カメラC(図1参照)で撮像した撮像画像から、二次元コードの位置及び姿勢を検出し、二次元コード内に記述された符号化パターンを復号することができる。
図1に戻って、二次元コード検出装置1の構成について説明を続ける。
【0096】
制御情報生成手段5は、画像解析手段4で解析された位置及び姿勢、並びに、復号情報に基づいて、二次元コードMが貼付されている操作対象物(ここでは、箱等の物体D)を操作する制御装置(例えば、ロボット〔図示せず〕)に対して、その操作に関連する情報を制御情報として生成するものである。
例えば、復号情報に、物体Dをある地点に移動させる旨の指示情報が含まれている場合、制御情報生成手段5は、物体Dを把持し、その地点に移動後、物体Dを解放する旨の一連の手順を示す、ロボット用の制御情報を生成し、ロボットに出力する。
【0097】
このとき、制御情報生成手段5は、復号情報に、例えば、物体Dの大きさ、硬さ、重さ等の形状・材質情報が含まれている場合、その形状・材質情報を制御情報に付加することとする。これによって、この制御情報を入力したロボットは、その大きさ、重さ等によって、実際に物体Dを把持することができるか否かを判定することが可能になる。
【0098】
また、ここでは、制御情報生成手段5は、位置・姿勢算出手段44で算出された二次元コードの位置及び姿勢を示す位置・姿勢情報と、復号情報とに基づいて、物体Dの操作対象となる位置を算出する特定位置算出部51を備えている。
【0099】
特定位置算出部(特定位置算出手段、把持位置算出手段)51は、復号情報に、二次元コードの位置と、物体Dを操作するための特定の位置(操作対象位置)との相対位置が含まれている場合、画像解析手段4の位置・姿勢算出手段44(図2)で算出された位置・姿勢情報に基づいて、三次元空間における物体の操作対象位置を算出するものである。この操作対象位置は、例えば、物体Dを把持するロボットに対してその把持位置を示す情報となる。
【0100】
ここで、図15を参照して、操作対象位置を算出する手法について説明する。図15は、操作対象位置を算出する手法を説明するための説明図であって、(a)は操作対象物体が回転していない状態、(b)は操作対象物体が回転した状態を示している。
ここでは、操作対象物を、持ち手の付いた物体(箱)Dであるとし、箱Dの側面に二次元コードMを貼付している。そして、二次元コードMには、予め基準となる位置検出パターンから持ち手の把持位置Hまでの相対位置が符号化されているとする。ここでは、ある三次元空間の座標系(xyz座標系)において、相対座標が(−Dx,−Dy,−Dz)であるとする。
【0101】
すると、図15(a)に示すように、箱Dが回転していない状態においては、位置・姿勢算出手段44(図2)で算出された位置情報である二次元コードMの座標T(XT,YT,ZT)に対して、把持位置Hの座標は、(XT−Dx,YT−Dy,ZT−Dz)で表すことができる。
また、図15(b)に示すように、箱Dがx軸、y軸及びz軸に対して回転している状態においては、位置・姿勢算出手段44(図2)で算出された姿勢情報である角度θx、θy及びθzと、二次元コードMの座標T(XT,YT,ZT)と、相対座標(−Dx,−Dy,−Dz)とに基づいて、把持位置Hの回転後の座標HR(XH,YH,ZH)は、以下の(17)式で算出することができる。
【0102】
【数17】
【0103】
このように、位置・姿勢算出手段44(図2)で算出された位置・姿勢情報と、情報パターン復号手段43(図2)で復号された復号情報(ここでは、持ち手の相対位置)とに基づいて、操作対象位置を特定することができる。
以上、二次元コード検出装置1の構成について説明したが、本発明はこれに限定されるものではない。ここでは、任意の三次元空間で撮像した撮像画像から、位置特定パターンを精度よく検出するため、領域抽出手段41を備えたが、例えば、基板等のワークの位置特定に本発明を利用する場合、位置特定パターンの位置が大まかに特定されているため、領域抽出手段41を省略した構成としてもよい。
【0104】
また、二次元コード検出装置1は、一般的なコンピュータを前記した各手段として機能させることで実現することができる。このプログラム(二次元コード検出プログラム)は、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0105】
[二次元コード検出装置の動作]
次に、図16を参照(適宜図1及び図2参照)して、二次元コード検出装置1の動作について説明する。図16は、二次元コード検出装置の動作を示すフローチャートである。
まず、二次元コード検出装置1は、画像入力手段2によって、カメラCで撮像した撮像画像(白黒画像)を入力する(ステップS1)。なお、画像入力手段2は、カメラCで撮像した撮像画像を、フレーム画像単位で入力し、逐次、記憶手段3に記憶する。
そして、二次元コード検出装置1は、画像解析手段4における領域抽出手段41の輝度正規化部41aによって、撮像画像の画素の輝度を補正することで、撮像画像の光の強度(輝度)を正規化する。これによって、二次元コード検出装置1は、二次元コードMの輝度のレベルを均一にした輝度正規化画像(図5参照)を生成する(ステップS2)。
【0106】
また、二次元コード検出装置1は、領域抽出手段41の二値化部41bによって、ステップS2で正規化された輝度正規化画像を、予め定めた閾値を基準として、画素毎に二値化することで二値化画像を生成する(ステップS3)。これによって、二次元コードMの位置特定パターンの候補となる領域が抽出されたことになる。
【0107】
さらに、二次元コード検出装置1は、領域抽出手段41のラベリング部41cによって、ステップS3で生成され、二値化画像として抽出された領域を、その領域にラベルを付して分類する(ラベリング処理:ステップS4)。ここでは、ラベリング部41cは、各領域の画素値を領域固有の値(ラベル)に設定することで、ラベリング画像(図8参照)を生成する。
【0108】
そして、二次元コード検出装置1は、パターン検出手段42の位置検出パターン検出部42aによって、撮像画像から、“黒−白−黒−白−黒”の明暗パターンが、“1:1:3:1:1”の比を持つパターンを探索することで、位置特定パターンの要素である3つの位置検出パターンを検出する(ステップS5)。さらに、二次元コード検出装置1は、パターン検出手段42の位置合わせパターン検出部42bによって、ステップS5で検出された3つの位置検出パターンで特定される矩形を構成する4つ目の頂点位置の近傍領域において、2つの領域(クラスタ)の重心位置を算出し、その重心位置が最も近いものを位置合わせパターンとして検出する(ステップS6)。
【0109】
さらに、二次元コード検出装置1は、情報パターン復号手段43によって、二次元コードMに記述されている情報パターン(符号化パターン)を復号情報として復号する(ステップS7)。
ここで、二次元コード検出装置1は、情報パターン復号手段43によって、情報パターンが復号できたか否かを判定し(ステップS8)、復号できた場合(Yes)に、ステップS9以降に進み、復号できなかった場合(No)には、動作を終了する。
【0110】
そして、二次元コード検出装置1は、位置・姿勢算出手段44のパターン位置推定部44aによって、ステップS5及びステップS6で検出した位置特定パターン(位置検出パターン及び位置合わせパターン)の各領域において、1画素単位以下の詳細な中心位置を推定する(ステップS9)。
続けて、二次元コード検出装置1は、位置・姿勢算出手段44の三次元位置・姿勢算出部44bによって、位置特定パターン(位置検出パターン及び位置合わせパターン)の中心位置の4点に基づいて、三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する(ステップS10)。
【0111】
そして、二次元コード検出装置1は、制御情報生成手段5によって、ステップS10で算出された位置・姿勢情報と、ステップS7で復号された復号情報とに基づいて、操作対象物を操作する制御装置(例えば、ロボット)に対して、その操作に関連する情報を制御情報として生成し、ロボット等の制御装置に制御情報を出力し(ステップS11)、本動作を終了する。
一方、この制御情報を取得したロボット等の制御装置は、制御情報に基づいた動作を行う(ステップS12)。
【0112】
以上の動作によって、二次元コード検出装置1は、三次元空間において、二次元コードMを検出し、その二次元コードMの位置及び姿勢、すなわち、二次元コードMが貼付された物体の位置及び姿勢を算出することができる。このとき、二次元コード検出装置1は、二次元コードMに付加されている符号化データを復号することができるため、二次元コードMを貼付した物体を操作対象として、種々の操作を行わせる制御情報を生成することができる。
【0113】
[二次元コード検出装置の応用例]
次に、図17及び図18を参照して、本発明に係る二次元コード検出装置の応用例について説明する。図17は、ロボットが、二次元コードを貼付した箱を把持し、移動させる例を示した図である。図18は、ロボットが、CD(コンパクトディスク)等のケースを把持する例を示した図である。
【0114】
(応用例1)
まず、カメラとハンド部とを備えたロボット(例えば、二足歩行ロボット)が、箱を把持して移動させる例について説明する。
図17(a)は、ロボットRBの頭部に備えているカメラCの画角内に、二次元コードMが側面に貼付された箱Dが写った状態を示している。また、この二次元コードMには、基準となる位置(ある位置特定パターンの中心位置)から、箱Dの持ち手(把持位置H)までの相対位置と、ある地点(目的地点)まで移動させる旨を示す指示情報とが情報パターンに符号化されているものとする。
【0115】
このとき、ロボットRBは、三次元空間において、カメラCが撮像した撮像画像から、箱Dに貼付された二次元コードMの位置及び姿勢を認識することができる。
また、ここでは、二次元コードMには、基準位置から、箱Dの持ち手(把持位置H)までの相対位置が情報パターンとして符号化されているため、ロボットRBは、箱Dの把持位置Hを認識することができる。
そして、ロボットRBは、箱Dに近づき姿勢を変えた後に、図17(b)に示すように、ハンド部HDによって、箱Dの持ち手を把持する。
その後、ロボットRBは、図17(c)に示すように、目的地点まで二足歩行により移動し、図17(d)に示すように、目的地点に到達した段階で箱Dを解放する。
このように、ロボットRBは、二次元コードMを検出し解析することで、物体の位置や姿勢を認識するとともに、その物体に対して行う動作を実行することができる。
【0116】
(応用例2)
図18(a)は、CD(コンパクトディスク)のケースCSに二次元コードMを貼付した例を示している。また、図18(b)は、ロボットRBが、二次元コードMを貼付したケースCSを検出し、そのケースCSを把持する例を示している。
図18(a)に示すように、ケースCSに二次元コードMを貼付することで、ロボットRB(図18(b))は、ケースCSがどの位置に、どの姿勢で置かれているのかを認識することができる。
【0117】
なお、図18(b)に示したロボットRBは、図17で説明したロボットRBと同様の構成となっている。すなわち、ロボットRBは、カメラCで撮像した撮像画像内の二次元コードMの三次元位置を、二次元コード検出装置1によって検出する。
さらに、二次元コードMにケースCSを把持するための2点の位置が、二次元コードMからの相対位置として符号化されている場合、ロボットRBは、その相対位置によって、ケースCSを把持する位置を認識し、ハンド部HDでケースCSを把持することが可能になる。
【0118】
以上説明したように、二次元コード検出装置1は、ロボットに対して制御情報を生成し出力する場合、ロボット制御情報生成装置として機能することになる。
このように、ロボットのような移動体と、二次元コードの位置や姿勢が変化する環境においても、二次元コード検出装置(ロボット制御情報生成装置)は、その二次元コードの位置及び姿勢を特定することができ、さらに、二次元コードに符号化された情報によって、種々の制御情報を生成することができる。
【図面の簡単な説明】
【0119】
【図1】本発明に係る二次元コード検出装置の全体構成を示したブロック図である。
【図2】本発明に係る二次元コード検出装置の画像解析手段の構成を示したブロック図である。
【図3】二次元コード(QRコード)の構造の一例を示すパターン図である。
【図4】二次元コードを貼付した物体を正面から撮像した画像(撮像画像)を示す図である。
【図5】撮像画像を輝度において正規化した輝度正規化画像を示す図である。
【図6】輝度正規化画像を二値化した二値化画像を示す図である。
【図7】ラベリングを行う際の規則を説明するための説明図である。
【図8】二値化画像の領域毎にラベリングを行ったラベリング画像を示す図である。
【図9】位置検出パターンの構造を示す図である。
【図10】位置合わせパターンの構造を示す図である。
【図11】位置特定パターンの中心位置を推定する手法を説明するための説明図である。
【図12】三次元の位置を算出する手法を説明するための説明図である。
【図13】三次元の姿勢を算出する手法を説明するための説明図である。
【図14】二次元コードの座標系を示す図である。
【図15】操作対象位置を算出する手法を説明するための説明図であって、(a)は操作対象物体が回転していない状態、(b)は操作対象物体が回転した状態を示している。
【図16】二次元コード検出装置の動作を示すフローチャートである。
【図17】ロボットが、二次元コードを貼付した箱を把持し、移動させる例を示した図である。
【図18】ロボットが、CDのケースを把持する例を示した図である。
【符号の説明】
【0120】
1 二次元コード検出装置(ロボット制御情報生成装置)
2 画像入力手段
3 記憶手段
4 画像解析手段
41 領域抽出手段
41a 輝度正規化部
41b 二値化部
41c ラベリング部
42 パターン検出手段
42a 位置検出パターン検出部
42b 位置合わせパターン検出部
43 情報パターン復号手段(復号手段)
44 位置・姿勢算出手段
44a パターン位置推定部
44b 三次元位置・姿勢算出部
5 制御情報生成手段
51 特定位置算出部(特定位置算出手段、把持位置算出手段)
C カメラ
M 二次元コード
RB ロボット
HD ハンド部
【特許請求の範囲】
【請求項1】
コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成する二次元コード検出装置であって、
前記物体を撮像した撮像画像を入力する画像入力手段と、
この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、
前記情報パターンを復号する復号手段と、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、
を備えていることを特徴とする二次元コード検出装置。
【請求項2】
前記二次元コードに4つの前記位置特定パターンを含み、
前記位置・姿勢算出手段が、前記撮像画像における前記4つの前記位置特定パターンの二次元位置に基づいて、前記位置・姿勢情報を算出することを特徴とする請求項1に記載の二次元コード検出装置。
【請求項3】
前記二次元コードは、QRコード(登録商標)であることを特徴とする請求項1に記載の二次元コード検出装置。
【請求項4】
前記情報パターンには、前記二次元コードの位置特定パターンから前記物体の特定位置までの相対位置が符号化されており、
前記制御情報生成手段が、
前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記特定位置を算出する特定位置算出手段を備えていることを特徴とする請求項1に記載の二次元コード検出装置。
【請求項5】
コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成するために、コンピュータを、
前記物体を撮像した撮像画像において前記位置特定パターンを検出するパターン検出手段、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段、
前記情報パターンを復号する復号手段、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段、
として機能させることを特徴とする二次元コード検出プログラム。
【請求項6】
カメラと物体を把持するハンド部とを備えたロボットにおいて、コード内の位置が予め特定された位置特定パターンと、前記物体に関連する情報が符号化された情報パターンとを含んだ、前記物体に記された二次元コードに基づいて、前記ロボットに対する制御情報を生成するロボット制御情報生成装置であって、
前記カメラが前記物体を撮像した撮像画像を入力する画像入力手段と、
この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、
前記情報パターンを復号する復号手段と、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置及び姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、
を備えていることを特徴とするロボット制御情報生成装置。
【請求項7】
前記情報パターンには、前記二次元コードの位置特定パターンから、前記ロボットが前記物体を把持する把持位置までの相対位置が符号化されており、
前記制御情報生成手段が、
前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記把持位置を算出する把持位置算出手段を備えていることを特徴とする請求項6に記載のロボット制御情報生成装置。
【請求項8】
カメラと物体を把持するハンド部とを備えたロボットにおいて、
請求項6に記載のロボット制御情報生成装置を備え、
前記ロボット制御情報生成装置によって生成される制御情報に基づいて、前記物体を前記ハンド部により把持することを特徴とするロボット。
【請求項1】
コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成する二次元コード検出装置であって、
前記物体を撮像した撮像画像を入力する画像入力手段と、
この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、
前記情報パターンを復号する復号手段と、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、
を備えていることを特徴とする二次元コード検出装置。
【請求項2】
前記二次元コードに4つの前記位置特定パターンを含み、
前記位置・姿勢算出手段が、前記撮像画像における前記4つの前記位置特定パターンの二次元位置に基づいて、前記位置・姿勢情報を算出することを特徴とする請求項1に記載の二次元コード検出装置。
【請求項3】
前記二次元コードは、QRコード(登録商標)であることを特徴とする請求項1に記載の二次元コード検出装置。
【請求項4】
前記情報パターンには、前記二次元コードの位置特定パターンから前記物体の特定位置までの相対位置が符号化されており、
前記制御情報生成手段が、
前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記特定位置を算出する特定位置算出手段を備えていることを特徴とする請求項1に記載の二次元コード検出装置。
【請求項5】
コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成するために、コンピュータを、
前記物体を撮像した撮像画像において前記位置特定パターンを検出するパターン検出手段、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段、
前記情報パターンを復号する復号手段、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段、
として機能させることを特徴とする二次元コード検出プログラム。
【請求項6】
カメラと物体を把持するハンド部とを備えたロボットにおいて、コード内の位置が予め特定された位置特定パターンと、前記物体に関連する情報が符号化された情報パターンとを含んだ、前記物体に記された二次元コードに基づいて、前記ロボットに対する制御情報を生成するロボット制御情報生成装置であって、
前記カメラが前記物体を撮像した撮像画像を入力する画像入力手段と、
この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、
前記情報パターンを復号する復号手段と、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置及び姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、
を備えていることを特徴とするロボット制御情報生成装置。
【請求項7】
前記情報パターンには、前記二次元コードの位置特定パターンから、前記ロボットが前記物体を把持する把持位置までの相対位置が符号化されており、
前記制御情報生成手段が、
前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記把持位置を算出する把持位置算出手段を備えていることを特徴とする請求項6に記載のロボット制御情報生成装置。
【請求項8】
カメラと物体を把持するハンド部とを備えたロボットにおいて、
請求項6に記載のロボット制御情報生成装置を備え、
前記ロボット制御情報生成装置によって生成される制御情報に基づいて、前記物体を前記ハンド部により把持することを特徴とするロボット。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2007−90448(P2007−90448A)
【公開日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願番号】特願2005−279179(P2005−279179)
【出願日】平成17年9月27日(2005.9.27)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】
【公開日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願日】平成17年9月27日(2005.9.27)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】
[ Back to top ]