(57)【要約】【課題】  物体に記された二次元コードを検出し、三次元空間上の物体の位置、姿勢を認識するとともに、その物体に対応する制御情報を生成することが可能な二次元コード検出装置を提供することを目的とする。【解決手段】  二次元コード検出装置１は、カメラＣが撮像した撮像画像を入力する画像入力手段２と、撮像画像を解析し、撮像画像内に写った二次元コードＭの固有のパターンに基づいて、二次元コードＭの位置及び姿勢を示す位置・姿勢情報を算出するとともに、二次元コードＭに符号化された情報を復号する画像解析手段４と、位置・姿勢情報と復号情報とに基づいて、二次元コードＭが記された物体に対応した制御情報を生成する制御情報生成手段５と、を備えていることを特徴とする。【選択図】      図１
2007090448.tif 000002
【特許請求の範囲】
【請求項１】
コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成する二次元コード検出装置であって、
前記物体を撮像した撮像画像を入力する画像入力手段と、
この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、
前記情報パターンを復号する復号手段と、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、
を備えていることを特徴とする二次元コード検出装置。
【請求項２】
前記二次元コードに４つの前記位置特定パターンを含み、
前記位置・姿勢算出手段が、前記撮像画像における前記４つの前記位置特定パターンの二次元位置に基づいて、前記位置・姿勢情報を算出することを特徴とする請求項１に記載の二次元コード検出装置。
【請求項３】
前記二次元コードは、ＱＲコード（登録商標）であることを特徴とする請求項１に記載の二次元コード検出装置。
【請求項４】
前記情報パターンには、前記二次元コードの位置特定パターンから前記物体の特定位置までの相対位置が符号化されており、
前記制御情報生成手段が、
前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記特定位置を算出する特定位置算出手段を備えていることを特徴とする請求項１に記載の二次元コード検出装置。
【請求項５】
コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成するために、コンピュータを、
前記物体を撮像した撮像画像において前記位置特定パターンを検出するパターン検出手段、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段、
前記情報パターンを復号する復号手段、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段、
として機能させることを特徴とする二次元コード検出プログラム。
【請求項６】
カメラと物体を把持するハンド部とを備えたロボットにおいて、コード内の位置が予め特定された位置特定パターンと、前記物体に関連する情報が符号化された情報パターンとを含んだ、前記物体に記された二次元コードに基づいて、前記ロボットに対する制御情報を生成するロボット制御情報生成装置であって、
前記カメラが前記物体を撮像した撮像画像を入力する画像入力手段と、
この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、
このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、
前記情報パターンを復号する復号手段と、
この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置及び姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、
を備えていることを特徴とするロボット制御情報生成装置。
【請求項７】
前記情報パターンには、前記二次元コードの位置特定パターンから、前記ロボットが前記物体を把持する把持位置までの相対位置が符号化されており、
前記制御情報生成手段が、
前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記把持位置を算出する把持位置算出手段を備えていることを特徴とする請求項６に記載のロボット制御情報生成装置。
【請求項８】
カメラと物体を把持するハンド部とを備えたロボットにおいて、
請求項６に記載のロボット制御情報生成装置を備え、
前記ロボット制御情報生成装置によって生成される制御情報に基づいて、前記物体を前記ハンド部により把持することを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体に貼付された二次元コードの位置、姿勢及び当該二次元コードに符号化された情報を検出する二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボットに関する。
【背景技術】
【０００２】
従来、ロボット等が物体の位置や姿勢を認識するには、ステレオ視、レンジファインダ等により三次元空間における物体の距離情報を取得し、その距離情報で形成される物体の立体情報に既知のモデルを当てはめることにより行っていた。しかし、これらの位置、姿勢の推定は、既知形状の物体である等、限定された環境において実現されており、複雑なシーンにおいては、対象となる物体を精度よく高速に認識することは現在のコンピュータの能力では困難であり、実現されていない。
【０００３】
そこで、バーコードや二次元コードを物体に貼付することで、物体の位置や姿勢を認識するための補助とする技術が種々提案されている。例えば、物体に二次元コードを貼付し、その二次元コードの各頂点を検出することで、物体の載置状態を認識するシステムが開示されている（特許文献１参照）。
このシステムによれば、テーブルに載置された、二次元コードが貼付された物体を撮像素子により撮像し、その撮像された画像を解析することで、二次元コードの各頂点を検出し、その頂点位置に基づいて、物体の向き（回転）等を検出している。そして、このシステムは、物体の向きにあわせてロボットの姿勢を制御させることで、ロボットにより物体を把持し移動させることを可能としている。
また、このシステムは、二次元コードに符号化されたデータを復号することで、ロボットが物体を把持する際の物体の種類、形状、大きさ等の物体の特性を認識可能としている。
【特許文献１】特開２００４−１１５３号公報（段落番号００４３〜００５３、第１〜３図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、前記した特許文献１に開示されている技術では、物体の姿勢として、予め定めた場所に載置された二次元平面（テーブル）上における物体の向き（回転）しか検出することができない。すなわち、この技術では、三次元空間に設置された物体については、その姿勢を検出することができないという問題がある。
また、前記した技術では、二次元コードに物体そのものの特性を符号化しておくことで、ロボットが物体を把持する際の情報として利用しているが、その物体に対して予め定めた位置に二次元コードを貼付しておかなければ、正確に物体の位置を認識することができない。そこで、従来のシステムは、物体毎に、その物体に対する二次元コードの位置を記憶しておかなければならず、異なる物体を処理する場合等、その位置を記憶し直さなければならず、汎用性に欠けるといった問題がある。
【０００５】
本発明は、以上のような問題点に鑑みてなされたものであり、物体に貼付された二次元コードを検出し、三次元空間上の物体の位置、姿勢を認識するとともに、その物体に対して把持等の処理を行う際に必要となる制御情報を生成することが可能な二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボット制御情報生成装置を組み込んだロボットを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、前記目的を達成するために創案されたものであり、請求項１に記載の二次元コード検出装置は、コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成する二次元コード検出装置であって、前記物体を撮像した撮像画像を入力する画像入力手段と、この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、前記情報パターンを復号する復号手段と、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、を備えていることを特徴とする。
【０００７】
かかる構成によれば、二次元コード検出装置は、画像入力手段によって、物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。この二次元コードは、予め定めた複数のパターン（位置特定パターン）によって、二次元コードそのものの認識と、二次元コードの向きを特定することが可能なコードである。
【０００８】
そして、二次元コード検出装置は、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出する。なお、撮像画像内における二次元コードは、既知の大きさ、位置にあると仮定した二次元コードが、実空間（三次元空間）に回転・平行移動し、その移動後の二次元コードが撮像画像内に射影変換されたものとみなすことができる。すなわち、位置・姿勢算出手段は、複数の位置特定パターンから、回転・平行移動を表す変換行列を求めることで、三次元空間における二次元コードの位置・姿勢情報を算出することができる。
また、二次元コード検出装置は、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
【０００９】
そして、二次元コード検出装置は、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、二次元コードが記された物体に対応した制御内容を示す制御情報を生成する。
これによって、二次元コード検出装置は、二次元コードの位置及び姿勢のみならず、復号された情報に基づいて、その二次元コードが記された物体の大きさ、重さ等の情報や、その物体に対する操作指示内容等を制御情報として生成することができる。なお、二次元コードは、印刷等により直接物体に描画されたものであってもよいし、シール等により物体に貼付されたものであってもよい。
【００１０】
また、請求項２に記載の二次元コード検出装置は、請求項１に記載の二次元コード検出装置において、前記二次元コードに４つの前記位置特定パターンを含み、前記位置・姿勢算出手段が、前記撮像画像における前記４つの前記位置特定パターンの二次元位置に基づいて、前記位置・姿勢情報を算出することを特徴とする。
【００１１】
かかる構成によれば、二次元コード検出装置は、位置特定パターンが４つのパターンで構成されていることで、位置・姿勢算出手段が、任意の三次元空間における二次元パターンの位置及び姿勢を算出することが可能になる。
【００１２】
さらに、請求項３に記載の二次元コード検出装置は、請求項１に記載の二次元コード検出装置において、前記二次元コードが、ＱＲコード（登録商標）であることを特徴とする。
【００１３】
かかる構成によれば、二次元コード検出装置は、二次元コードの位置特定パターンを、ＱＲコードにおける位置検出パターンや位置合わせパターンとすることで、ＱＲコードの位置や姿勢を認識することができる。また、ＱＲコード内に情報パターンを符号化して書き込むことで、二次元コード検出装置は、その情報を読み出すことができる。
【００１４】
また、請求項４に記載の二次元コード検出装置は、請求項１に記載の二次元コード検出装置において、前記情報パターンには、前記二次元コードの位置特定パターンから前記物体の特定位置までの相対位置が符号化されており、前記制御情報生成手段が、前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記特定位置を算出する特定位置算出手段を備えていることを特徴とする。
【００１５】
かかる構成によれば、二次元コード検出装置は、特定位置算出手段によって、位置・姿勢情報と相対位置とから、指定された任意の物体の位置を算出することができる。
【００１６】
さらに、請求項５に記載の二次元コード検出プログラムは、コード内の位置が予め特定された複数の位置特定パターンと、所定情報が符号化された情報パターンとを含んだ二次元コードを検出し、当該二次元コードが記された物体に対応した制御情報を生成するために、コンピュータを、前記物体を撮像した撮像画像において前記位置特定パターンを検出するパターン検出手段、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段、前記情報パターンを復号する復号手段、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置・姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段、
として機能させることを特徴とする。
【００１７】
かかる構成によれば、二次元コード検出プログラムは、画像入力手段によって、前記物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。
そして、二次元コード検出プログラムは、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出し、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
そして、二次元コード検出プログラムは、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、二次元コードが貼付された物体に対応した制御内容を示す制御情報を生成する。
【００１８】
また、請求項６に記載のロボット制御情報生成装置は、カメラと物体を把持するハンド部とを備えたロボットにおいて、コード内の位置が予め特定された位置特定パターンと、前記物体に関連する情報が符号化された情報パターンとを含んだ、前記物体に記された二次元コードに基づいて、前記ロボットに対する制御情報を生成するロボット制御情報生成装置であって、前記カメラが前記物体を撮像した撮像画像を入力する画像入力手段と、この画像入力手段で入力された撮像画像において前記位置特定パターンを検出するパターン検出手段と、このパターン検出手段で検出された位置特定パターンの前記撮像画像における二次元位置に基づいて、前記二次元コードの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する位置・姿勢算出手段と、前記情報パターンを復号する復号手段と、この復号手段で復号された復号情報と、前記位置・姿勢算出手段で算出された位置及び姿勢情報とに基づいて、前記制御情報を生成する制御情報生成手段と、を備えていることを特徴とする。
【００１９】
かかる構成によれば、ロボット制御情報生成装置は、画像入力手段によって、カメラが物体を撮像した撮像画像を入力し、パターン検出手段によって、撮像画像内の二次元コードから位置特定パターンを検出する。
そして、ロボット制御情報生成装置は、位置・姿勢算出手段によって、撮像画像内における複数の位置特定パターンから、三次元空間の二次元コードの位置及び姿勢を示す位置・姿勢情報を算出し、復号手段によって、二次元コード内に符号化されている情報パターンを復号する。
そして、ロボット制御情報生成装置は、制御情報生成手段によって、二次元コードの位置及び姿勢や、復号情報に基づいて、ロボットに対する制御内容を示す制御情報を生成する。この制御情報は、例えば、物体を把持する旨の指示、物体を移動させる旨の指示等である。
【００２０】
さらに、請求項７に記載のロボット制御情報生成装置は、請求項６に記載のロボット制御情報生成装置において、前記情報パターンには、前記二次元コードの位置特定パターンから、前記ロボットが前記物体を把持する把持位置までの相対位置が符号化されており、前記制御情報生成手段が、前記位置・姿勢算出手段で算出された位置・姿勢情報と、前記復号手段で復号された相対位置とに基づいて、前記把持位置を算出する把持位置算出手段を備えていることを特徴とする。
【００２１】
かかる構成によれば、ロボット制御情報生成装置は、把持位置算出手段によって、位置・姿勢情報と相対位置とから、指定された任意の位置となる把持位置を算出することができる。
【００２２】
また、請求項８に記載のロボットは、カメラと物体を把持するハンド部とを備えたロボットにおいて、請求項６に記載のロボット制御情報生成装置を備え、前記ロボット制御情報生成装置によって生成される制御情報に基づいて、前記物体を前記ハンド部により把持することを特徴とする。
【００２３】
かかる構成によれば、ロボットは、ロボット制御情報生成装置が生成する制御情報に基づいて、物体の位置及び姿勢を把握することで、その物体をハンド部により把持する際の位置を特定することができる。なお、物体を把持する際の把持位置は、二次元コードの位置から予め定めた相対位置だけ離れた位置とする。また、この相対位置は、二次元コードに符号化しておくこととしてもよい。
【発明の効果】
【００２４】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、二次元コードの三次元空間における位置と姿勢を検出することができるとともに、二次元コード内に符号化された情報を読み出すことができる。これによって、物体の位置・姿勢に加え、当該物体の種々の情報、例えば、大きさ、重さ等を把握することが可能になる。例えば、当該物体を検出したロボットが、その制御動作として、物体を把持することができる。このとき、物体の種々の情報（特性）を取得することができるため、ロボットは、その物体を把持することができるか否かを事前に判断することができ、効率的なロボットの制御動作を行うことが可能になる。
【００２５】
また、本発明によれば、４つの位置特定パターンによって、二次元コードの位置及び姿勢を特定するため、三次元空間における任意の位置、姿勢であっても、検出することができる。
また、本発明によれば、二次元コードにＱＲコードを使用することで、二次元のパターン認識が容易になり、位置及び姿勢の検出の時間を早めることができる。
さらに、本発明によれば、二次元コードにおける位置特定パターンの位置からの相対位置によって、物体の任意の位置を特定することができるため、ロボットが大きさ、形状等の異なる物体を把持する場合であっても、ロボットは物体毎に異なる把持位置を記憶しておく必要がなく、汎用性を高めることができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について図面を参照して説明する。
［二次元コードの例：ＱＲコードの構造について］
まず、図３を参照して、本発明に係る二次元コード検出装置で検出する二次元コードの構造について説明する。なお、ここでは、例えば、二次元コードとして、ＱＲコードを用いることとする。図３は、二次元コード（ＱＲコード）の構造の一例を示すパターン図である。
図３に示すように、二次元コード（ＱＲコード）Ｍは、二次元マトリックス内に、中央をあらゆる角度で横切る走査線において周波数成分比が、“１：１：３：１：１”の特定の明暗パターンとなる３つの位置検出パターンＭＰ１，ＭＰ２，ＭＰ３と、情報を符号化した情報パターンＩＰと、認識時における情報パターンＩＰの各セルのずれを調整するための位置合わせパターンＭＰ４とで構成されている。
【００２７】
本発明においては、位置検出パターンＭＰ１，ＭＰ２，ＭＰ３と位置合わせパターンＭＰ４の４点を、二次元コードの位置及び姿勢を特定するためのパターン（位置特定パターン）として使用し、情報パターンＩＰを、二次元コードが貼付された物体を操作対象としたときの、操作指示等の制御情報の書き込み領域として使用することとしている。
なお、ここでは、二次元コードの例として、ＱＲコードを示したが、４点の位置特定パターンが特定でき、情報が書き込まれたものであれば、そのパターンの形状等は限定されるものではない。例えば、形状の異なるパターン、異なる色を有するパターン等によって、位置特定パターンを構成することとしてもよい。
【００２８】
［二次元コード検出装置の構成］
次に、図１を参照して、本発明に係る二次元コード検出装置の構成について説明する。図１は、本発明に係る二次元コード検出装置の全体構成を示したブロック図である。図１に示した二次元コード検出装置１は、カメラＣで撮像された撮像画像から、物体Ｄに貼付された二次元コードＭの位置及び姿勢を算出するとともに、当該二次元コードＭに符号化されている符号化データを復号することで、二次元コードＭの位置及び姿勢を示す位置・姿勢情報と復号情報とを制御情報として出力するものである。
ここでは、二次元コード検出装置１は、画像入力手段２と、記憶手段３と、画像解析手段４と、制御情報生成手段５とを備えている。
【００２９】
画像入力手段２は、カメラＣが撮像した撮像画像（白黒画像）を１フレーム単位で入力するものである。この画像入力手段２は、入力した撮像画像を記憶手段３に書き込むとともに、画像解析手段４に撮像画像が入力された旨を通知する。
【００３０】
記憶手段３は、画像入力手段２が入力した撮像画像を記憶するものであって、半導体メモリ等の一般的な記憶手段である。なお、記憶手段３は、後記する画像解析手段４によって、画像を解析する際に種々生成される画像についても記憶するものとする。
【００３１】
画像解析手段４は、画像入力手段２が入力した撮像画像を解析することで、撮像画像内において二次元コードＭを検出し、その位置及び姿勢を算出するとともに、二次元コードＭに符号化されている情報パターン（符号化パターン）を復号情報として復号するものである。この画像解析手段４で解析された位置及び姿勢、並びに、復号情報は制御情報生成手段５に出力される。
【００３２】
ここで、図２を参照（適宜図１参照）して、画像解析手段４の構成について説明する。図２は、本発明に係る二次元コード検出装置の画像解析手段の構成を示したブロック図である。図２に示すように、画像解析手段４は、領域抽出手段４１と、パターン検出手段４２と情報パターン復号手段４３と、位置・姿勢算出手段４４とを備えている。
【００３３】
領域抽出手段４１は、画像入力手段２で入力され、記憶手段３に記憶された撮像画像から、二次元コードＭの４つの位置特定パターンの候補となる領域を抽出するものである。ここでは、領域抽出手段４１は、輝度正規化部４１ａと、二値化部４１ｂと、ラベリング部４１ｃとを備えている。
【００３４】
輝度正規化部４１ａは、撮像画像の画素の輝度を補正することで、撮像画像の輝度を正規化するものである。一般に、撮像画像は、照明等の影響によって、画像内の輝度にバラツキが生じている。そこで、ここでは、後記する二値化部４１ｂにおいて撮像画像を二値化するため、撮像画像において適正に二値化処理が可能なように、撮像画像の輝度を正規化した画像（輝度正規化画像）を生成する。すなわち、輝度正規化部４１ａは、撮像画像における各画素の光の強度を、その画素の周辺画素の平均強度により除算することで、撮像画像の光の強度を正規化する。より具体的には、画素の光の強度をＩ、注目する画素の画素位置を（ｕ，ｖ）、その画素を中心とした周辺領域の大きさを横（２ｎ＋１）画素、縦（２ｍ＋１）画素としたとき、輝度正規化部４１ａは、画素位置（ｕ，ｖ）の正規化した光の強度Ｏｕ，ｖを、以下の（１）式により算出する。
【００３５】
【数１】
2007090448.tif 000003
【００３６】
ここで、図４及び図５を参照して、輝度正規化部４１ａに入力される撮像画像、及び、輝度正規化部４１ａで正規化された輝度正規化画像について、具体的に説明する。図４は、二次元コードを貼付した物体を正面から撮像した画像（撮像画像）を示し、図５は、図４の撮像画像を輝度において正規化した輝度正規化画像を示している。
【００３７】
なお、図４及び図５では、二次元コードＭ内に含まれる位置特定パターンと情報パターンのうち、説明を簡略化するため、情報パターンの図示を省略している。この情報パターンについても、以下で説明する位置特定パターンと同様な処理が行われる。また、ここでは、二次元コードを貼付した物体を正面から撮像した画像を用いて説明を行うが、以下に示す処理によって位置特定パターンと情報パターンとが認識できれば、二次元コードが傾いて撮像されている画像であってもよい。
【００３８】
図４では、位置特定パターンである３つの位置検出パターンＭＰ１，ＭＰ２，ＭＰ３、及び、１つの位置合わせパターンＭＰ４を含んだ二次元コード（ＱＲコード）Ｍを貼付された物体Ｄを撮像した画像で、周辺部分ほど暗い状態を示している。すなわち、物体Ｄは、中央部より周辺部の方が、輝度が低くなっている。そのため、周辺部の位置合わせパターンＭＰ４は、中央部の位置検出パターンＭＰ１等より輝度が低くなっている。この撮像画像で二値化を行うと、閾値によっては、位置合わせパターンＭＰ４のみを抽出したり、物体Ｄの一部まで抽出したり等、位置特定パターン（位置検出パターンＭＰ１，ＭＰ２，ＭＰ３、位置合わせパターンＭＰ４）を適正に分離することができない。
【００３９】
そこで、輝度正規化部４１ａ（図２）が、図４に示した撮像画像の輝度を正規化し、図５に示した輝度正規化画像を生成する。図５では、周辺部の位置合わせパターンＭＰ４の輝度が高くなり、中央部の位置検出パターンＭＰ１等と同等の輝度となっていることを示している。このように、撮像画像を輝度で正規化することで、位置特定パターンの輝度のレベルを均一にすることができる。
図２に戻って説明を続ける。
【００４０】
二値化部４１ｂは、輝度正規化部４１ａで生成された輝度正規化画像を予め定めた閾値を基準として、画素毎に二値化した二値化画像を生成するものである。例えば、閾値よりも高い輝度の画素の値を「１」、それ以外の画素の値を「０」とする。なお、閾値は、輝度正規化部４１ａで生成される輝度正規化画像において、位置特定パターンの輝度のレベルが均一になっているため、その輝度のレベルに基づいて、予め定めておくことができる。
【００４１】
この二値化部４１ｂで生成された二値化画像は、例えば、図６に示すように、図５の輝度正規化画像から、位置特定パターン（位置検出パターンＭＰ１，ＭＰ２，ＭＰ３、位置合わせパターンＭＰ４）を抽出したものとなる。ただし、二値化部４１ｂでは、位置特定パターンの輝度と同じ又はそれ以上の輝度を持つ領域が抽出される可能性がある。すなわち、ここで抽出された領域は、位置特定パターンの候補となる領域といえる。この二値化部４１ｂで生成された二値化画像は、記憶手段３に記憶され、後記するラベリング部４１ｃによって参照される。
【００４２】
ラベリング部４１ｃは、二値化部４１ｂで生成され、二値化画像として抽出された領域を、その領域毎にラベルを付して分類するものである。ラベル付けを行うことで領域を分類（クラスタリング）する手法は種々存在するが、ここでは、ラベリング部４１ｃが、各領域の画素値を、領域固有の値に設定したラベリング画像を生成することで分類を行うこととする。なお、このラベリング部４１ｃで生成されたラベリング画像は、記憶手段３に記憶され、パターン検出手段４２及び情報パターン復号手段４３によって参照される。
【００４３】
ここで、図７を参照して、ラベリング部４１ｃにおけるラベリング画像を生成する手法について説明する。図７は、ラベリングを行う対象となる注目画素の位置を基準位置（０，０）とし、その基準位置に対して、左上の画素位置（−１，−１）、真上の画素位置（０，−１）、右上の画素位置（１，−１）、左の画素位置（−１，０）の各画素値を判定することで、注目画素の画素値を決定する規則（規則〈１〉〜〈５〉）を説明するための図である。
【００４４】
ラベリング部４１ｃ（図２）は、以下の規則〈１〉〜〈５〉を、画像（二値化画像）の左上から順番にスキャンし、注目画素のラベルを決定する。なお、ここでは、二値化部４１ｂ（図２）で生成された二値化画像は、位置特定パターンや情報パターンの候補となる領域の画素値が「１」、それ以外の画素値が「０」となっているものとし、領域毎に固有の「ＩＤ」値（ラベル）を付与するものとする。また、以下の規則は、すべて注目画素の画素値が「１」の場合の動作を規定している。
【００４５】
規則〈１〉  画素位置（−１，−１）、（０，−１）、（１，−１）、（−１，０）の画素値がすべて「０」の場合は、注目画素（０，０）に固有の「ＩＤ」を付与する。（例えば、「１００」から順に番号を付ける。）
規則〈２〉  画素位置（−１，−１）、（０，−１）、（１，−１）のいずれかにすでに「ＩＤ」が付与されており、左の画素位置（−１，０）の画素値が「０」の場合は、注目画素（０，０）に、上の画素位置に付与されている「ＩＤ」を付与する。
規則〈３〉  画素位置（−１，−１）、（０，−１）、（１，−１）の画素値がすべて「０」で、左の画素位置（−１，０）に「ＩＤ」が付与されている場合は、注目画素（０，０）に、左の画素位置（−１，０）の「ＩＤ」を付与する。
規則〈４〉  画素位置（−１，−１）、（０，−１）、（１，−１）のいずれかに「ＩＤ」が付与されており、左の画素位置（−１，０）に付与されている「ＩＤ」と同じである場合は、注目画素（０，０）に、左の画素位置（−１，０）の「ＩＤ」を付与する。
規則〈５〉  画素位置（１，−１）と画素位置（−１，０）とに異なる「ＩＤ」が付与されている場合は、左の画素位置（−１，０）に付与されている「ＩＤ」を注目画素（０，０）に付与するとともに、画素位置（１，−１）と同じ「ＩＤ」を付与されている画素のラベルを、すべて、画素位置（−１，０）に付与されている「ＩＤ」に付け直す。
【００４６】
以上の規則に基づいて、図６で示した二値化画像に対してラベル付けを行うと、図８に示したように、個々の領域に固有のラベル（１００、１０１等）が付与（設定）された、ラベリング画像が生成されることになる。なお、この図８に示したラベリング画像においては省略しているが、情報パターンも同様に領域毎に固有のラベルが付与されている。このように、ラベリング部４１ｃにおいて、二値化画像をラベル付けすることで、撮像画像を複数の領域（クラスタ）として管理することができる。
図２に戻って説明を続ける。
【００４７】
パターン検出手段４２は、撮像画像から位置特定パターンを検出するものである。ここでは、パターン検出手段４２は、位置検出パターン検出部４２ａと、位置合わせパターン検出部４２ｂとを備えている。
【００４８】
位置検出パターン検出部４２ａは、撮像画像から、位置特定パターンの一つである位置検出パターンを検出するものである。ここでは、二次元コードをＱＲコードとしているため、位置検出パターン検出部４２ａは、二値化部４１ｂで生成された二値画像において、図９に示すように、“黒−白−黒−白−黒”の明暗パターンが、“１：１：３：１：１”の比を持つパターンを探索することで、位置検出パターンＭＰ（ＭＰ１，ＭＰ２，ＭＰ３）を検出する。
ここでは、位置検出パターン検出部４２ａは、あるパターンが以下の３つの条件（条件（１）〜（３））を満たしているときに、そのパターンが位置検出パターンであると推定する。
【００４９】
条件（１）  パターンが、二値画像の左上から順番に水平方向にスキャンしたときに、長さの比が“１：１：３：１：１”となる“黒−白−黒−白−黒”となる画素列である。
条件（２）  パターンが、二値化画像の左上から順番に垂直方向にスキャンしたときに、長さの比が“１：１：３：１：１”となる“黒−白−黒−白−黒”となる画素列である。
条件（３）  ラベリング画像において、条件（１）及び条件（２）を満たす真中の黒領域を囲む領域に同じラベルが付与されている（真中の黒領域の周囲が白である）。
【００５０】
そして、位置検出パターン検出部４２ａは、以上の条件（１）〜（３）を満たす３つのパターンを位置検出パターンとして推定し、位置検出パターンの真中の黒領域のラベルを、後記する位置合わせパターン検出部４２ｂ、情報パターン復号手段４３及び位置・姿勢算出手段４４に出力する。
【００５１】
位置合わせパターン検出部４２ｂは、撮像画像から、位置特定パターンの一つである位置合わせパターンを検出するものである。なお、図１０に示したように、位置合わせパターンＭＰ４は、中心の黒領域であるクラスタＣＢと、そのクラスタＣＢを囲む周囲の白領域であるクラスタＣＷは、矩形形状となっているが、さらにその周囲のクラスタＣＸは、他の黒点と連結している。このため、位置検出パターンのような明暗パターンの比によって検出することはできない。そこで、ここでは、クラスタＣＢと、その周囲のクラスタＣＷの重心位置が同一であることを利用して、位置合わせパターンを検出することとする。
【００５２】
すなわち、位置合わせパターン検出部４２ｂは、位置検出パターン検出部４２ａで検出された３つの位置検出パターンＭＰ１，ＭＰ２，ＭＰ３（図３参照）から、矩形を構成する４つ目の頂点位置の近傍領域において、２つの領域（クラスタ）の重心位置を算出し、その重心位置が最も近いものを位置合わせパターンＭＰ４（図３参照）として推定する。そして、位置合わせパターン検出部４２ｂは、推定した位置合わせパターンのラベルを、後記する情報パターン復号手段４３及び位置・姿勢算出手段４４に出力する。
【００５３】
情報パターン復号手段（復号手段）４３は、二次元コードＭに記述されている情報パターン（符号化パターン）を復号情報として復号するものである。ここでは、情報パターン復号手段４３は、パターン検出手段４２で検出された位置特定パターン（３つの位置検出パターンと１つの位置合わせパターン）の位置に基づいて、情報パターンが記述されている領域を認識し、情報パターンを復号する。なお、この情報パターンの符号化方式は、本発明においては、特に限定されるものではなく、例えば、ＱＲコードに準拠した方式を用いることとしてもよい。そして、情報パターン復号手段４３は、復号した復号情報を後記する位置・姿勢算出手段４４と制御情報生成手段５とに出力する。
【００５４】
なお、情報パターン復号手段４３において、情報パターンが予め定めた符号化方式に沿っていない等の原因によって復号できない場合は、位置特定パターンと同一のパターンが撮像画像内に存在していたものと判定し、後記する位置・姿勢算出手段４４における当該パターンによる位置・姿勢の算出を行わないこととする。
【００５５】
位置・姿勢算出手段４４は、二次元コードＭの三次元空間における位置及び姿勢を示す位置・姿勢情報を算出するものである。ここでは、位置・姿勢算出手段４４は、パターン位置推定部４４ａと、三次元位置・姿勢算出部４４ｂとを備えている。
【００５６】
パターン位置推定部４４ａは、位置特定パターン（３つの位置検出パターンと１つの位置合わせパターン）の各領域（二次元平面）において、１画素単位以下の詳細な位置を推定するものである。ここでは、パターン位置推定部４４ａは、位置特定パターンの各領域の中心位置を推定するものとする。
【００５７】
ここで、図１１を参照（適宜図２参照）して、パターン位置推定部４４ａが、二次元コードの４隅に位置する位置特定パターンのそれぞれの中心位置を推定する手法について説明する。図１１は、位置特定パターンの中心位置を推定する手法を説明するための説明図である。
【００５８】
パターン位置推定部４４ａは、二値化部４１ｂで生成された二値化画像（図６）の各位置特定パターンの中央のクラスタ（黒の矩形領域）の重心Ｇから、横及び縦に伸ばした直線上でクラスタの中心位置を決定する。なお、ここでは、説明を簡略化するため、横方向の直線Ｌによって、クラスタの横方向の中心位置を決定する場合について説明する。
【００５９】
図１１（ａ）に示すように、二値化画像は輝度値が二値の値をとり、その領域の境界の精度は画素単位である。そこで、パターン位置推定部４４ａは、図１１（ｂ）に示すように、画像入力手段２で入力された撮像画像（グレー画像）から、直線Ｌ上のエッジを検出し、そのエッジの輝度値がピークとなる位置（ピーク位置Ｐｋ）を、クラスタの境界とする。
なお、縦方向においても同様にクラスタの境界を決定し、横方向における境界の中心と、縦方向における境界の中心とを、クラスタの中心位置とする。これによって、パターン位置推定部４４ａは、１画素以下の精度でクラスタ、すなわち、位置特定パターンの中心位置を決定することができる。
図２に戻って説明を続ける。
【００６０】
三次元位置・姿勢算出部４４ｂは、パターン検出手段４２で検出された位置特定パターン（３つの位置検出パターンと１つの位置合わせパターン）の中心位置に基づいて、三次元空間における位置及び姿勢を示す位置・姿勢情報を算出するものである。この三次元位置・姿勢算出部４４ｂで算出された位置・姿勢情報は、制御情報生成手段５に出力される。
なお、一般に、ある物体の三次元空間の既知の座標Ｑが、三次元空間の未知の座標Ｔに回転・平行移動し、その座標Ｔが、二次元平面の既知の座標Ｓに射影変換されている場合、三次元空間の座標Ｑが４点定まれば、その物体の位置・姿勢を推定することは可能である。
【００６１】
ここで、図１２及び図１３を参照（適宜図２参照）し、数式を用いて、物体貼付した二次元コードの４点から二次元コードの三次元の位置及び姿勢を算出する手法について説明する。図１２は、三次元の位置を算出する手法を説明するための説明図である。図１３は、三次元の姿勢を算出する手法を説明するための説明図である。
【００６２】
図１２では、三次元空間の座標系（ｘｙｚ座標系）において、二次元平面（ｘｙ座標系）の中心が三次元座標（０，０，１）に位置し、その二次元平面がｘｙ平面に平行である状態を示している。また、予め既知の三次元空間の座標Ｑ（Ｘ，Ｙ，Ｚ）が、ある回転・平行移動となる変換行列Ｐによって、座標Ｔ（Ｔｘ，Ｔｙ，Ｔｚ）に変換され、その座標Ｔが二次元平面上の座標Ｓ（ｕ，ｖ）（三次元座標で（ｕ，ｖ，１））に射影変換されているとする。
【００６３】
このとき、三次元空間の座標系は位置・姿勢算出手段４４が使用する座標系となる。また、座標Ｑは予め定めた三次元空間における位置特定パターンの位置を示し、例えば、図１４に示すように、ｚ軸の値を“０”（Ｚ＝０）とした、三次元空間に位置しているものとする。また、座標Ｔは実際に物体に貼付された二次元コードの三次元空間における位置特定パターンの位置、座標Ｓは撮像画像上の二次元座標にそれぞれ対応している。
ここで、回転・平行移動を示す変換行列Ｐを、以下の（２）式とする。なお、Ｐ１１〜Ｐ１３、Ｐ２１〜Ｐ２３及びＰ３１〜Ｐ３３は回転成分、Ｐ１４、Ｐ２４及びＰ３４は移動成分を示しているものとする。
【００６４】
【数２】
2007090448.tif 000004
【００６５】
すると、座標Ｔ（Ｔｘ，Ｔｙ，Ｔｚ）は、以下の（３）式に示すように、既知の座標Ｑ（Ｘ，Ｙ，Ｚ）を変換行列Ｐで変換することで算出することができる。
【００６６】
【数３】
2007090448.tif 000005
【００６７】
すなわち、二次元コードの三次元空間上の位置特定パターンの位置である座標Ｔは、変換行列Ｐが決定されれば求めることができる。
以下、変換行列Ｐの各成分を求めることとする。
ここで、座標Ｔ（Ｔｘ，Ｔｙ，Ｔｚ）は、二次元平面の座標Ｓ（ｕ，ｖ）〔三次元座標で（ｕ，ｖ，１）〕に射影変換されているため、定数ｗを用いて、座標Ｔと座標Ｓとは、以下の（４）式の関係となる。
【００６８】
【数４】
2007090448.tif 000006
【００６９】
そして、前記（３）式と、前記（４）式とにより、以下の（５）式の関係が成り立つ。
【００７０】
【数５】
2007090448.tif 000007
【００７１】
ここで、前記（２）式で示した変換行列Ｐを以下の（６）式に示すように変形する。また、ここでは、Ｐ１１／Ｐ３４等をａ１１等の新しい変数に置き換えている。
【００７２】
【数６】
2007090448.tif 000008
【００７３】
なお、Ｐ１１〜Ｐ１３、Ｐ２１〜Ｐ２３及びＰ３１〜Ｐ３３は回転行列の成分を表すことから、その正規直交性により、以下の（７）式及び（８）式の関係が成り立つ。
【００７４】
【数７】
2007090448.tif 000009
【００７５】
【数８】
2007090448.tif 000010
【００７６】
また、ｗ／Ｐ３４＝Ｗとすると、前記（５）式及び（６）式により、以下の（９）式の関係が成り立つ。
【００７７】
【数９】
2007090448.tif 000011
【００７８】
この（９）式を展開し変形すると、以下の（１０）式を得る。
【００７９】
【数１０】
2007090448.tif 000012
【００８０】
この（１０）式における第３式のＷを、第１式及び第２式に代入し、ａ（ａ１１，ａ１２，…，ａ３３）について線形式に変換すると、以下の（１１）式となる。
【００８１】
【数１１】
2007090448.tif 000013
【００８２】
ここで、Ｘ，Ｙ，Ｚ，ｕ，ｖは既知の値であり、（ａ１１，ａ１２，ａ１３，ａ１４，ａ２１，ａ２２，ａ２３，ａ２４，ａ３１，ａ３２，ａ３３）の計１１個が未知数である。すなわち、この段階においては、６点の位置を測定しなければ前記（１１）式を解くことができない。
しかし、二次元コードは平面であるため、三次元空間において、Ｚ＝０となるＸＹ平面にあると設定することができる（図１４参照）。そこで、Ｚ＝０とすると、前記（１１）式は以下の（１２）式となる。
【００８３】
【数１２】
2007090448.tif 000014
【００８４】
この（１２）式においては、未知数が、（ａ１１，ａ１２，ａ１４，ａ２１，ａ２２，ａ２４，ａ３１，ａ３２）の計８個となり、４点の位置を測定することで、これらの未知数を特定することができる。
ここで、以下の（１３）式に示すように、三次元空間の４点Ｑ１（Ｘ１，Ｙ１，０）、Ｑ２（Ｘ２，Ｙ２，０）、Ｑ３（Ｘ３，Ｙ３，０）、Ｑ４（Ｘ４，Ｙ４，０）が、二次元平面の４点（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）、（ｕ４，ｖ４）に、射影されているとする。
【００８５】
【数１３】
2007090448.tif 000015
【００８６】
なお、この三次元空間の４点Ｑ１、Ｑ２、Ｑ３及びＱ４は、二次元コードの大きさを示し、予め各座標を記憶手段３に記憶しておき、位置・姿勢算出手段４４において読み出すこととしてもよいし、二次元コード内の情報パターンに符号化しておき、情報パターン復号手段４３で復号した後に、位置・姿勢算出手段４４が参照することとしてもよい。
そして、前記（１２）式と前記（１３）式とにより、以下の（１４）式を解くことで、未知数（ａ１１，ａ１２，ａ１４，ａ２１，ａ２２，ａ２４，ａ３１，ａ３２）を特定することができる。
【００８７】
【数１４】
2007090448.tif 000016
【００８８】
なお、残りの未知数（ａ１３，ａ２３，ａ３３）は、この（１４）式で特定された（ａ１１，ａ１２，ａ１４，ａ２１，ａ２２，ａ２４，ａ３１，ａ３２）を用いて、前記（７）式を解くことで得ることができる。
また、前記（８）式により、Ｐ３４は、以下の（１５）式により求めることができる。
【００８９】
【数１５】
2007090448.tif 000017
【００９０】
このようにして求められた変数（ａ１１，ａ１２，ａ１３，ａ１４，ａ２１，ａ２２，ａ２３，ａ２４，ａ３１，ａ３２，ａ３３）及びＰ３４により、前記（６）式から変換行列Ｐを決定することができる。
そして、前記（３）式を用いることで、二次元コード（ＱＲコード）の各４点（３つの位置検出パターンと１つの位置合わせパターンの各中心位置）の少なくとも１つ、例えば、位置検出パターンＭＰ１（図３参照）の中心位置により、二次元コードの位置を特定することができる。ここでは、位置検出パターンＭＰ１（図３参照）の中心位置の三次元座標を、二次元コードの位置・姿勢情報のうちの位置情報とする。
【００９１】
次に、図１３を参照して、二次元コードの三次元の姿勢を算出する手法について説明する。図１３は、三次元空間の座標系（ｘｙｚ座標系）において、二次元コードＭが、位置検出パターンＭＰ１（図３参照）の中心Ｔ１（ＸＴ１，ＹＴ１，ＺＴ１）を基準として、ｘ軸、ｙ軸及びｚ軸において、それぞれ回転した状態を示している。
ここで、二次元コードＭが、ｘ軸、ｙ軸及びｚ軸において、それぞれθｘ、θｙ及びθｚだけ回転しており、基準位置（Ｔ１）以外の２点の座標がそれぞれＴ２（ＸＴ２，ＹＴ２，ＺＴ２）、Ｔ３（ＸＴ３，ＹＴ３，ＺＴ３）であったとする。
このとき、二次元コードＭの姿勢は、それぞれの角度θｘ、θｙ及びθｚで表すことができ、以下の（１６）式で算出することができる。
【００９２】
【数１６】
2007090448.tif 000018
【００９３】
このように、二次元コード（ＱＲコード）Ｍの各４点（３つの位置検出パターンと１つの位置合わせパターンの各中心位置）のうちの３点から、二次元コードの姿勢を特定することができる。ここでは、位置検出パターンＭＰ１（図３参照）の中心位置における３軸の回転角度を、二次元コードの位置・姿勢情報のうちの姿勢情報とする。
なお、ここでは、１つの三次元座標と３つの軸の回転角度とにより二次元コードの位置・姿勢情報を表したが、位置及び姿勢を表す情報量であれば、これに限定されるものではない。例えば、３つの三次元座標（例えば、位置検出パターンの中心位置座標（Ｔ１，Ｔ２，Ｔ３））、２つの三次元座標と１つの軸の回転角度（例えば、位置検出パターンの中心位置座標（Ｔ１，Ｔ２））と角度θＺ等であってもよい。
【００９４】
また、ここでは、４点の位置から二次元コードの位置・姿勢情報を算出することとしたが、前記（１２）式において、さらにＸ又はＹが固定した値である場合、未知数の数が６個となり、３点の位置を測定することで、未知数を特定することができる。すなわち、図３で示した二次元コードＭにおいて、３点の位置を計測すればよいことになる。
【００９５】
以上のように画像解析手段４を構成することで、画像解析手段４は、カメラＣ（図１参照）で撮像した撮像画像から、二次元コードの位置及び姿勢を検出し、二次元コード内に記述された符号化パターンを復号することができる。
図１に戻って、二次元コード検出装置１の構成について説明を続ける。
【００９６】
制御情報生成手段５は、画像解析手段４で解析された位置及び姿勢、並びに、復号情報に基づいて、二次元コードＭが貼付されている操作対象物（ここでは、箱等の物体Ｄ）を操作する制御装置（例えば、ロボット〔図示せず〕）に対して、その操作に関連する情報を制御情報として生成するものである。
例えば、復号情報に、物体Ｄをある地点に移動させる旨の指示情報が含まれている場合、制御情報生成手段５は、物体Ｄを把持し、その地点に移動後、物体Ｄを解放する旨の一連の手順を示す、ロボット用の制御情報を生成し、ロボットに出力する。
【００９７】
このとき、制御情報生成手段５は、復号情報に、例えば、物体Ｄの大きさ、硬さ、重さ等の形状・材質情報が含まれている場合、その形状・材質情報を制御情報に付加することとする。これによって、この制御情報を入力したロボットは、その大きさ、重さ等によって、実際に物体Ｄを把持することができるか否かを判定することが可能になる。
【００９８】
また、ここでは、制御情報生成手段５は、位置・姿勢算出手段４４で算出された二次元コードの位置及び姿勢を示す位置・姿勢情報と、復号情報とに基づいて、物体Ｄの操作対象となる位置を算出する特定位置算出部５１を備えている。
【００９９】
特定位置算出部（特定位置算出手段、把持位置算出手段）５１は、復号情報に、二次元コードの位置と、物体Ｄを操作するための特定の位置（操作対象位置）との相対位置が含まれている場合、画像解析手段４の位置・姿勢算出手段４４（図２）で算出された位置・姿勢情報に基づいて、三次元空間における物体の操作対象位置を算出するものである。この操作対象位置は、例えば、物体Ｄを把持するロボットに対してその把持位置を示す情報となる。
【０１００】
ここで、図１５を参照して、操作対象位置を算出する手法について説明する。図１５は、操作対象位置を算出する手法を説明するための説明図であって、（ａ）は操作対象物体が回転していない状態、（ｂ）は操作対象物体が回転した状態を示している。
ここでは、操作対象物を、持ち手の付いた物体（箱）Ｄであるとし、箱Ｄの側面に二次元コードＭを貼付している。そして、二次元コードＭには、予め基準となる位置検出パターンから持ち手の把持位置Ｈまでの相対位置が符号化されているとする。ここでは、ある三次元空間の座標系（ｘｙｚ座標系）において、相対座標が（−Ｄｘ，−Ｄｙ，−Ｄｚ）であるとする。
【０１０１】
すると、図１５（ａ）に示すように、箱Ｄが回転していない状態においては、位置・姿勢算出手段４４（図２）で算出された位置情報である二次元コードＭの座標Ｔ（ＸＴ，ＹＴ，ＺＴ）に対して、把持位置Ｈの座標は、（ＸＴ−Ｄｘ，ＹＴ−Ｄｙ，ＺＴ−Ｄｚ）で表すことができる。
また、図１５（ｂ）に示すように、箱Ｄがｘ軸、ｙ軸及びｚ軸に対して回転している状態においては、位置・姿勢算出手段４４（図２）で算出された姿勢情報である角度θｘ、θｙ及びθｚと、二次元コードＭの座標Ｔ（ＸＴ，ＹＴ，ＺＴ）と、相対座標（−Ｄｘ，−Ｄｙ，−Ｄｚ）とに基づいて、把持位置Ｈの回転後の座標ＨＲ（ＸＨ，ＹＨ，ＺＨ）は、以下の（１７）式で算出することができる。
【０１０２】
【数１７】
2007090448.tif 000019
【０１０３】
このように、位置・姿勢算出手段４４（図２）で算出された位置・姿勢情報と、情報パターン復号手段４３（図２）で復号された復号情報（ここでは、持ち手の相対位置）とに基づいて、操作対象位置を特定することができる。
以上、二次元コード検出装置１の構成について説明したが、本発明はこれに限定されるものではない。ここでは、任意の三次元空間で撮像した撮像画像から、位置特定パターンを精度よく検出するため、領域抽出手段４１を備えたが、例えば、基板等のワークの位置特定に本発明を利用する場合、位置特定パターンの位置が大まかに特定されているため、領域抽出手段４１を省略した構成としてもよい。
【０１０４】
また、二次元コード検出装置１は、一般的なコンピュータを前記した各手段として機能させることで実現することができる。このプログラム（二次元コード検出プログラム）は、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭ等の記録媒体に書き込んで配布することも可能である。
【０１０５】
［二次元コード検出装置の動作］
次に、図１６を参照（適宜図１及び図２参照）して、二次元コード検出装置１の動作について説明する。図１６は、二次元コード検出装置の動作を示すフローチャートである。
まず、二次元コード検出装置１は、画像入力手段２によって、カメラＣで撮像した撮像画像（白黒画像）を入力する（ステップＳ１）。なお、画像入力手段２は、カメラＣで撮像した撮像画像を、フレーム画像単位で入力し、逐次、記憶手段３に記憶する。
そして、二次元コード検出装置１は、画像解析手段４における領域抽出手段４１の輝度正規化部４１ａによって、撮像画像の画素の輝度を補正することで、撮像画像の光の強度（輝度）を正規化する。これによって、二次元コード検出装置１は、二次元コードＭの輝度のレベルを均一にした輝度正規化画像（図５参照）を生成する（ステップＳ２）。
【０１０６】
また、二次元コード検出装置１は、領域抽出手段４１の二値化部４１ｂによって、ステップＳ２で正規化された輝度正規化画像を、予め定めた閾値を基準として、画素毎に二値化することで二値化画像を生成する（ステップＳ３）。これによって、二次元コードＭの位置特定パターンの候補となる領域が抽出されたことになる。
【０１０７】
さらに、二次元コード検出装置１は、領域抽出手段４１のラベリング部４１ｃによって、ステップＳ３で生成され、二値化画像として抽出された領域を、その領域にラベルを付して分類する（ラベリング処理：ステップＳ４）。ここでは、ラベリング部４１ｃは、各領域の画素値を領域固有の値（ラベル）に設定することで、ラベリング画像（図８参照）を生成する。
【０１０８】
そして、二次元コード検出装置１は、パターン検出手段４２の位置検出パターン検出部４２ａによって、撮像画像から、“黒−白−黒−白−黒”の明暗パターンが、“１：１：３：１：１”の比を持つパターンを探索することで、位置特定パターンの要素である３つの位置検出パターンを検出する（ステップＳ５）。さらに、二次元コード検出装置１は、パターン検出手段４２の位置合わせパターン検出部４２ｂによって、ステップＳ５で検出された３つの位置検出パターンで特定される矩形を構成する４つ目の頂点位置の近傍領域において、２つの領域（クラスタ）の重心位置を算出し、その重心位置が最も近いものを位置合わせパターンとして検出する（ステップＳ６）。
【０１０９】
さらに、二次元コード検出装置１は、情報パターン復号手段４３によって、二次元コードＭに記述されている情報パターン（符号化パターン）を復号情報として復号する（ステップＳ７）。
ここで、二次元コード検出装置１は、情報パターン復号手段４３によって、情報パターンが復号できたか否かを判定し（ステップＳ８）、復号できた場合（Ｙｅｓ）に、ステップＳ９以降に進み、復号できなかった場合（Ｎｏ）には、動作を終了する。
【０１１０】
そして、二次元コード検出装置１は、位置・姿勢算出手段４４のパターン位置推定部４４ａによって、ステップＳ５及びステップＳ６で検出した位置特定パターン（位置検出パターン及び位置合わせパターン）の各領域において、１画素単位以下の詳細な中心位置を推定する（ステップＳ９）。
続けて、二次元コード検出装置１は、位置・姿勢算出手段４４の三次元位置・姿勢算出部４４ｂによって、位置特定パターン（位置検出パターン及び位置合わせパターン）の中心位置の４点に基づいて、三次元空間における位置及び姿勢を示す位置・姿勢情報を算出する（ステップＳ１０）。
【０１１１】
そして、二次元コード検出装置１は、制御情報生成手段５によって、ステップＳ１０で算出された位置・姿勢情報と、ステップＳ７で復号された復号情報とに基づいて、操作対象物を操作する制御装置（例えば、ロボット）に対して、その操作に関連する情報を制御情報として生成し、ロボット等の制御装置に制御情報を出力し（ステップＳ１１）、本動作を終了する。
一方、この制御情報を取得したロボット等の制御装置は、制御情報に基づいた動作を行う（ステップＳ１２）。
【０１１２】
以上の動作によって、二次元コード検出装置１は、三次元空間において、二次元コードＭを検出し、その二次元コードＭの位置及び姿勢、すなわち、二次元コードＭが貼付された物体の位置及び姿勢を算出することができる。このとき、二次元コード検出装置１は、二次元コードＭに付加されている符号化データを復号することができるため、二次元コードＭを貼付した物体を操作対象として、種々の操作を行わせる制御情報を生成することができる。
【０１１３】
［二次元コード検出装置の応用例］
次に、図１７及び図１８を参照して、本発明に係る二次元コード検出装置の応用例について説明する。図１７は、ロボットが、二次元コードを貼付した箱を把持し、移動させる例を示した図である。図１８は、ロボットが、ＣＤ（コンパクトディスク）等のケースを把持する例を示した図である。
【０１１４】
（応用例１）
まず、カメラとハンド部とを備えたロボット（例えば、二足歩行ロボット）が、箱を把持して移動させる例について説明する。
図１７（ａ）は、ロボットＲＢの頭部に備えているカメラＣの画角内に、二次元コードＭが側面に貼付された箱Ｄが写った状態を示している。また、この二次元コードＭには、基準となる位置（ある位置特定パターンの中心位置）から、箱Ｄの持ち手（把持位置Ｈ）までの相対位置と、ある地点（目的地点）まで移動させる旨を示す指示情報とが情報パターンに符号化されているものとする。
【０１１５】
このとき、ロボットＲＢは、三次元空間において、カメラＣが撮像した撮像画像から、箱Ｄに貼付された二次元コードＭの位置及び姿勢を認識することができる。
また、ここでは、二次元コードＭには、基準位置から、箱Ｄの持ち手（把持位置Ｈ）までの相対位置が情報パターンとして符号化されているため、ロボットＲＢは、箱Ｄの把持位置Ｈを認識することができる。
そして、ロボットＲＢは、箱Ｄに近づき姿勢を変えた後に、図１７（ｂ）に示すように、ハンド部ＨＤによって、箱Ｄの持ち手を把持する。
その後、ロボットＲＢは、図１７（ｃ）に示すように、目的地点まで二足歩行により移動し、図１７（ｄ）に示すように、目的地点に到達した段階で箱Ｄを解放する。
このように、ロボットＲＢは、二次元コードＭを検出し解析することで、物体の位置や姿勢を認識するとともに、その物体に対して行う動作を実行することができる。
【０１１６】
（応用例２）
図１８（ａ）は、ＣＤ（コンパクトディスク）のケースＣＳに二次元コードＭを貼付した例を示している。また、図１８（ｂ）は、ロボットＲＢが、二次元コードＭを貼付したケースＣＳを検出し、そのケースＣＳを把持する例を示している。
図１８（ａ）に示すように、ケースＣＳに二次元コードＭを貼付することで、ロボットＲＢ（図１８（ｂ））は、ケースＣＳがどの位置に、どの姿勢で置かれているのかを認識することができる。
【０１１７】
なお、図１８（ｂ）に示したロボットＲＢは、図１７で説明したロボットＲＢと同様の構成となっている。すなわち、ロボットＲＢは、カメラＣで撮像した撮像画像内の二次元コードＭの三次元位置を、二次元コード検出装置１によって検出する。
さらに、二次元コードＭにケースＣＳを把持するための２点の位置が、二次元コードＭからの相対位置として符号化されている場合、ロボットＲＢは、その相対位置によって、ケースＣＳを把持する位置を認識し、ハンド部ＨＤでケースＣＳを把持することが可能になる。
【０１１８】
以上説明したように、二次元コード検出装置１は、ロボットに対して制御情報を生成し出力する場合、ロボット制御情報生成装置として機能することになる。
このように、ロボットのような移動体と、二次元コードの位置や姿勢が変化する環境においても、二次元コード検出装置（ロボット制御情報生成装置）は、その二次元コードの位置及び姿勢を特定することができ、さらに、二次元コードに符号化された情報によって、種々の制御情報を生成することができる。
【図面の簡単な説明】
【０１１９】
【図１】本発明に係る二次元コード検出装置の全体構成を示したブロック図である。
【図２】本発明に係る二次元コード検出装置の画像解析手段の構成を示したブロック図である。
【図３】二次元コード（ＱＲコード）の構造の一例を示すパターン図である。
【図４】二次元コードを貼付した物体を正面から撮像した画像（撮像画像）を示す図である。
【図５】撮像画像を輝度において正規化した輝度正規化画像を示す図である。
【図６】輝度正規化画像を二値化した二値化画像を示す図である。
【図７】ラベリングを行う際の規則を説明するための説明図である。
【図８】二値化画像の領域毎にラベリングを行ったラベリング画像を示す図である。
【図９】位置検出パターンの構造を示す図である。
【図１０】位置合わせパターンの構造を示す図である。
【図１１】位置特定パターンの中心位置を推定する手法を説明するための説明図である。
【図１２】三次元の位置を算出する手法を説明するための説明図である。
【図１３】三次元の姿勢を算出する手法を説明するための説明図である。
【図１４】二次元コードの座標系を示す図である。
【図１５】操作対象位置を算出する手法を説明するための説明図であって、（ａ）は操作対象物体が回転していない状態、（ｂ）は操作対象物体が回転した状態を示している。
【図１６】二次元コード検出装置の動作を示すフローチャートである。
【図１７】ロボットが、二次元コードを貼付した箱を把持し、移動させる例を示した図である。
【図１８】ロボットが、ＣＤのケースを把持する例を示した図である。
【符号の説明】
【０１２０】
１      二次元コード検出装置（ロボット制御情報生成装置）
２      画像入力手段
３      記憶手段
４      画像解析手段
４１    領域抽出手段
４１ａ  輝度正規化部
４１ｂ  二値化部
４１ｃ  ラベリング部
４２    パターン検出手段
４２ａ  位置検出パターン検出部
４２ｂ  位置合わせパターン検出部
４３    情報パターン復号手段（復号手段）
４４    位置・姿勢算出手段
４４ａ  パターン位置推定部
４４ｂ  三次元位置・姿勢算出部
５      制御情報生成手段
５１    特定位置算出部（特定位置算出手段、把持位置算出手段）
Ｃ      カメラ
Ｍ      二次元コード
ＲＢ    ロボット
ＨＤ    ハンド部
【図１】
2007090448.tif 000020
【図２】
2007090448.tif 000021
【図３】
2007090448.tif 000022
【図４】
2007090448.tif 000023
【図５】
2007090448.tif 000024
【図６】
2007090448.tif 000025
【図７】
2007090448.tif 000026
【図８】
2007090448.tif 000027
【図９】
2007090448.tif 000028
【図１０】
2007090448.tif 000029
【図１１】
2007090448.tif 000030
【図１２】
2007090448.tif 000031
【図１３】
2007090448.tif 000032
【図１４】
2007090448.tif 000033
【図１５】
2007090448.tif 000034
【図１６】
2007090448.tif 000035
【図１７】
2007090448.tif 000036
【図１８】
2007090448.tif 000037