3次元物体姿勢・位置検出装置、方法、およびプログラム
【課題】参照点等を与えることなく、3次元物体の位置(撮影したカメラから3次元物体の予め定められた点までの距離)を高精度に検出することを可能とした3次元物体姿勢・位置検出装置を提供することである。
【解決手段】提案する3次元物体姿勢・距離位置装置では、2次元画像の対象物中心点の位置を、その2次元画像と、その2次元画像の姿勢に加えた組み合わせとして作成した辞書データを記憶装置8内に有するために、事前に参照点や図形を辞書データの各2次元画像に入力することなく、また、ステレオカメラ16−1、16−2を用いることにより、認識対象の3次元姿勢および対象物中心点までの距離を容易に認識することができる。
【解決手段】提案する3次元物体姿勢・距離位置装置では、2次元画像の対象物中心点の位置を、その2次元画像と、その2次元画像の姿勢に加えた組み合わせとして作成した辞書データを記憶装置8内に有するために、事前に参照点や図形を辞書データの各2次元画像に入力することなく、また、ステレオカメラ16−1、16−2を用いることにより、認識対象の3次元姿勢および対象物中心点までの距離を容易に認識することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象物の画像をステレオビジョンによって撮影し、その対象物に対して、3次元姿勢およびその対象物の予め定められた点までの距離すなわち対象物の位置を検出する技術に関する。
【背景技術】
【0002】
対象物(3次元物体)の姿勢およびその対象物の位置を認識する技術の1つとして、対象物を中心とした一定距離の球面上でカメラを一定間隔で移動させながら撮影した2次元画像と、その姿勢を併せ持つ辞書データを用意し、認識対象を撮影した2次元画像と、その辞書データ中の各2次元画像との間で、2次元パターンマッチを行なう公知の手法がある。この手法では、パターンマッチの結果として、最も認識対象に類似していると判断された辞書データ中の2次元画像に対する姿勢を、認識対象の姿勢と判断している。なお、この手法は、2次元画像中の対象物の大きさに基づいて、その対象物の位置を判断しているために、対象物の位置を高精度に検出できないという問題がある。
【0003】
一方、第1および第2のカメラにより構成されたステレオカメラにより、対象物に対してそれぞれ撮影された2つの2次元画像を取得し、各2次元画像について対象物の対応付けを行い、対応付けされた対象物の点等から対象物の位置姿勢を求める手法も古くから知られている。
【0004】
例えば、特許文献1では、認識対象となる物品について、ある方向から撮影した2次元教示モデルを用意している。そして、この2次元教示モデル上(すなわち、そのモデルが表示されたディスプレイ上)に、マウス等の手段を用いてポイントすることにより、少なくとも3点の参照点あるいは同義の情報を与える図形を指定する。
【0005】
その後、認識対象に対し、ステレオカメラの第1および第2のカメラによりそれぞれ撮影された2つの2次元画像について、この参照点等が指定された2次元教示モデルに幾何学的変形を施したもの(変形は可変パラメータのセットにより指定される)との間でパターンマッチを行ない、可変パラメータの一部の値が最も近い対象物候補を選出する。さらに、その可変パラメータを用いて先に指定した参照点を撮影された2つの2次元画像の対応点として求め、この対応点を用いて、ステレオ方式により認識対象に対し正確な位置および姿勢の測定を行なうことができる。
【特許文献1】特開2004−90183号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1のように2次元教示モデルに幾何学的変形を行なう代わりに、上記の辞書データを使用してパターンマッチ等の処理を行なうこともある。この場合、辞書データ中に登録される各2次元画像に対し、少なくとも3点の参照点あるいは同義の情報を与える図形をマウス等を用いて指定することは、2次元画像の個数が膨大となることを考慮すると、煩雑かつ困難であるばかりか事実上、不可能に近い。
【0007】
また、特許文献1に提案される手法では、認識対象をステレオカメラにより撮影した2つの2次元画像に対して、それぞれ独立に2次元パターンマッチを行ない、それぞれ独立に姿勢を求めている。しかし、例えばキャリブレーションされたステレオカメラでは、それぞれのカメラで撮影された2つの2次元画像間の幾何学的な関係が3次元剛体変換(一方が他方に対しどれだけ回転しどれだけ平行移動した位置にいるか)により定義される。
このため、独立に求めた姿勢は必ずしも剛体変換の関係を満たしているとは限らない。
【0008】
剛体変換の関係が満たされていない場合には、2つの2次元画像のうちのいずれかに対して2次元パターンマッチ処理の結果が正しくないと考えられ、最終的に求められる姿勢も不正確となる。
【0009】
本発明は、以上の問題点を考慮してなされたものであり、参照点等を与えることなく、3次元物体の位置(撮影したカメラの位置から3次元物体の予め定められた点までの距離)を高精度に検出することを可能とした3次元物体姿勢・位置検出装置、方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
提案する3次元物体姿勢・位置検出装置は、3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせ、または、3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶する記憶部と、カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成され、前記対象物を撮影するステレオカメラと、前記ステレオカメラを構成する第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識するとともに、前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出する姿勢・距離認識部と、を有する。
【発明の効果】
【0011】
提案する3次元物体姿勢・位置検出装置によれば、対象物の2次元画像と、その画像における対象物の姿勢と、その画像における対象物中心点位置とを、組み合わせて作成した辞書データを有するために、改めてマウス等により参照点や図形を辞書データの各2次元画像に入力することなく、また、ステレオカメラを用いることにより、認識対象の3次元姿勢および対象物中心点までの距離を容易に認識することができる。
【発明を実施するための最良の形態】
【0012】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
始めに、本実施形態の概要について説明する。
本実施形態では、複数の視点からの対象物の2次元画像である辞書データを使用している。この辞書データは、対象物の予め定められた点がその辞書データにおける2次元画像の所定の点となるようにして撮影された画像の集まりである。辞書データの作成方法としては以下の2通りがある。
(1)カメラを固定し、撮影した2次元画像の所定の点を、3次元直交座標系(x軸、y軸、z軸)の原点と設定する。対象物の予め定められた点が、3次元直交座標系の原点と一致するように、その対象物を配置する。対象物の姿勢、すなわち対象物の3次元直交座標系の各軸に対する回転角度を、等間隔で変化させ、先の固定されたカメラにより対象物を撮影し、各姿勢情報(回転角度)と2次元画像を取得する。
(2)対象物の予め定められた点が、3次元直交座標系(x軸、y軸、z軸)の原点と一致する位置に、その対象物を固定する。撮影した2次元画像の所定の点が3次元座標系の原点となるように、原点を中心とした球面上を等間隔にカメラを移動させて、各カメラ位置情報と、2次元画像を取得する。
【0013】
いずれの方法でも、撮影した2次元画像の所定の点が原点に対応する。よって、取得したすべての2次元画像において、その画像の所定の点は対象物の予め定められた点に対応していることになる。
【0014】
そして、カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成されたステレオカメラにより撮影したそれぞれの2次元画像に対して、辞書データの2次元画像とパターンマッチを行なうことによりその対象物の姿勢が認識されるとともに、それぞれの2次元画像に対して、対象物の予め定められた点の位置を辞書データに基づき検出し、これらを対応点とみなしてステレオ法により例えば第1のカメラからその対象物の予め定められた点までの距離を算出する。
【0015】
結果として、その対象物の3次元姿勢およびその対象物の予め定められた点までの距離が検出できたことになる。なお、“対象物の予め定められた点”は、カメラを球面上で移動するときの球の中心であるとともに、対象物を回転させるときの回転中心であることから、これを“対象物中心点”ということもある。なお、この“対象物中心点”を対象物の重心に一致させることもできる。
【0016】
図1は、本発明の一実施形態に係る辞書データ作成装置の構成を示すブロック図である。
図1に示すように、この辞書データ作成装置は、パーソナルコンピュータ(以下、PCという)等のユーザの操作を通してあるいは自動でシステムの制御を行なうシステム制御機器1と、システム制御機器1からの指示に基づいて、対象物回転装置11またはカメラ移動装置12を駆動させる対象物回転制御部5またはカメラ移動制御部6と、を有する。
【0017】
また、システム制御機器1は、対象物回転制御部5による指示によって対象物回転装置11により対象物2が位置調整された後、または、カメラ移動制御部6による指示によってカメラ移動装置12によりカメラ3が球面上を移動した後に、カメラ3に対象物2を撮影する指示を、撮影制御部7を通して出す。
【0018】
対象物回転装置11は、対象物回転制御部5からの指示に基づいて、(カメラ3の位置は固定として)対象物2をx軸、y軸、z軸の回りにθx(i)、θy(i)、θz(i)だけ回転させる。また、カメラ移動装置12は、カメラ移動制御部6からの指示に基づいて、(対象物2の位置は固定として)カメラ3を3次元座標系の原点を中心としてx軸、y軸、z軸の回りに−θx(i)、−θy(i)、−θz(i)だけ回転させて球面上を移動させる。
【0019】
撮影された画像は、i番目の画像(画像(i))、i番目の姿勢(θx(i)、θy(i)、θz(i))の組み合わせ、すなわち、i番目の辞書データ(辞書D(i))として記憶装置8に記憶される。なお、図1の実際の構成としては、対象物回転装置11またはカメラ移動装置12(対象物回転制御部5またはカメラ移動制御部6)のいずれか一方を選択的に有する構成となる。
【0020】
図2は、辞書データ作成処理のフローチャートである。このフローチャートの処理は、辞書データ作成装置によって実行される。なお、このフローチャートは、図1で対象物回転装置11を使用した場合に対応している。
【0021】
図2のステップS1で、対象物2を原点に設置する前に、カメラ3により原点を撮影し、画像における原点位置を記憶する。そして、ステップS2で、上述の対象物中心点が原点に一致するように対象物2を設置する。
【0022】
ステップS2に続くステップS3では、対象物回転装置11により、対象物2を一定量回転させる。そして、その回転した状態の対象物2をステップS4でカメラ3により撮影する。
【0023】
続くステップS5では、ステップS4で撮影した画像と、回転角度とを記憶装置8に記憶する。そして、ステップS6ですべての角度での撮影を完了したかどうかを判定する。
ステップS6ですべての角度での撮影を完了したと判定された場合(ステップS6の判定結果がYesの場合)、一連の処理を終了する。
【0024】
ステップS6ですべての角度での撮影が完了していないと判定された場合(ステップS6の判定結果がNoの場合)、ステップS3に戻り、残りの角度位置での対象物2の撮影を続行する。
【0025】
図3は、本発明の一実施形態に係る3次元物体姿勢・距離検出装置の構成を示すブロック図である。
図3に示すように、この3次元物体姿勢・距離検出装置は、認識対象18を撮影する、カメラ間の回転関係が既知であるキャリブレーションされたカメラ16−1および16−2と、PC等のユーザの操作を通してあるいは自動でシステムの制御を行なうとともに、カメラ16−1および16−2に認識対象18を撮影する指示を、撮影制御部21を通して出すシステム制御機器1と、カメラ16−1および16−2で撮影したそれぞれの2次元画像に対して、記憶装置8に記憶される辞書データの2次元画像とパターンマッチを行なうことにより認識対象18の姿勢を認識する2次元マッチング処理部22と、それぞれの2次元画像に対して、対象物中心点の位置を辞書データに基づき検出し、これらを対応点とみなしてステレオ法により認識対象18の中心点(予め定められた点)までの距離を算出する距離算出部23と、を有する。
【0026】
なお、パターンマッチとは、2つの多次元データ(画像を含む)の類似度を定量的に評価する手法の1つである。画像データは縦方向m画素、横方向n画素で表されるm×n次元データと考えることができる。これを、Xpq(p=1〜m,q=1〜n)と表現する。このとき、画像1(X1pq)と画像2(X2pq)の類似度を定量的に表す尺度値として、SAD(Sum of Absolute Difference)、SSD(Sum of Squared intensity Difference)などがある。SADおよびSSDの尺度値は数式1および数式2により定義される。
[数1]
SAD=ΣpΣq|X1pq−X2pq|
[数2]
SSD=ΣpΣq(X1pq−X2pq)2
この他に、X1pqの平均値とX2pqの平均値が等しくなるように上記をそれぞれ正規化した正規化SAD、正規化SSDや、正規化相関と呼ばれるNCC(Normalized Cross Correlation)などが尺度値としてよく利用される。SADやSSDの値が小さいほど、両者(画像1と画像2)は類似しているといえる。
【0027】
図4は、姿勢・距離認識処理のフローチャートである。このフローチャートの処理は、3次元物体姿勢・距離検出装置によって実行される。このフローチャートの処理に先立って、ステレオカメラ(カメラ16−1および16−2)はカメラ間の回転関係が既知であるようにキャリブレーションされているものとする。
【0028】
図4のステップS11で、認識対象(対象物)18は、ステレオカメラを構成するカメラ16−1および16−2により2つの視点から撮影され、これにより、2つの2次元画像が得られる。
【0029】
続く、ステップS12では、2次元マッチング処理部22により、得られた2つの2次元画像に対して、記憶装置8の辞書データの各2次元画像との間で2次元パターンマッチを行なうことで、撮影されたそれぞれの2次元画像の姿勢が推定(認識)される。なお、本実施形態では、辞書データには、対象物中心点位置の情報が付加されているため、ステレオカメラにより撮影された2つの2次元画像それぞれにおける、対象物中心点位置を推定することができ、続く、ステップS13において、距離算出部23により、推定された2つの2次元画像の対象物中心点位置が、ステレオ法における対応点とみなされて、その2つの2次元画像のうちのいずれか一方の画像の対象物中心点までの距離(あるいは双方の画像の各対象物中心点までの距離)を推定することができる。そして、続く、ステップS14において、2次元パターンマッチ処理の結果として判明した認識対象18の3次元姿勢と、ステレオ法を適用することにより判明した認識対象18の対象物中心点位置までの、例えばカメラ16−1からの距離を出力して、一連の処理を終了する。
【0030】
以上、説明した内容につき、以下でさらに詳細に説明する。
以下では、対象物の例として、図5に示すような直方体状の物体が用いられる。
2次元画像と姿勢により構成される辞書データの作成方法としては、上述したように2通りある。第1の方法では、図6に示すように、まず、カメラを所定の位置に固定する。次に、対象物の予め定められた点(対象物中心点)と、3次元直交座標系の原点とを一致させる。さらに、上記した対象物回転装置11により、その3次元直交座標系の原点(対象物中心点)の回りに対象物を回転させることにより、その対象物の姿勢を全方位へ等間隔で変化させ、その各姿勢の対象物を固定カメラで撮影して、それぞれの姿勢情報と2次元画像とを取得し、辞書データを作成する。この第1の方法では、対象物をx、y、zの各軸方向に所定量ずつ回転させる上述の対象物回転装置11が必要となる。
【0031】
これに対し、第2の方法では、図7に示すように、対象物の予め定められた点(対象物中心点)と、3次元直交座標系の原点とを一致させ、その位置に対象物を固定する。そして、対象物中心点(原点)を中心とした球面上で、上記したカメラ移動装置により、等間隔にカメラを移動させて、それぞれのカメラ位置情報と2次元画像とを取得し、辞書データを作成する。この第2の方法では、直交座標系の原点(対象物中心点)を中心とした球面上で所定の位置へカメラ3を移動させる上述のカメラ移動装置12が必要となる。
【0032】
なお、上記第1の方法と第2の方法とは、対象物とカメラとのいずれを固定するかによる差異であり、得られる辞書データは等しい。
ここでは、上記第1の方法についてさらに詳細に説明する。
【0033】
まず、カメラ3の位置を固定する。そして、対象物がない状態で撮影を行ない、撮影した画像上で3次元直交座標系の原点に対応する位置を設定することで、辞書データを作成するための対象物を回転させる3次元直交座標系を設定する。ここでは、簡単のために、図8に示すように、撮影した画像25の画像中心点26に原点が対応するように3次元直交座標系を設定する。
【0034】
カメラ3は、任意の位置に固定可能であるが、固定する位置を決めた後は辞書データ作成のための撮影中はその位置を移動することはできない。
次に、対象物の予め定められた点(例えば重心)が3次元直交座標系の原点と一致するように、対象物を配置する。なお、この対象物の予め定められた点は、対象物を回転させるときの中心でもあるので、回転中心点とも呼ばれる。
【0035】
対象物の姿勢は、図9に示すように、x軸方向への回転角度θx、y軸方向への回転角度θy、z軸方向への回転角度θzを指定することにより規定できる。これら角度θx、
θy、θzを一定間隔で刻んで対象物の姿勢を変化させて、条件ごとに、固定カメラ3から対象物を撮影し、撮影した画像と各角度値とをその都度保存することにより、辞書データが作成される。
【0036】
i番目の辞書データ“辞書(i)”は数式3のように表すことができる。
[数3]
辞書(i) = (画像(i)、θx(i)、θy(i)、θz(i))
例えば角度を1度刻みとすると、辞書データの要素総数は、360×360×360となる。すなわち、上記インデックスiは、1≦i≦360×360×360、の範囲で変化する。
【0037】
図10に、辞書データに登録される画像の例を示す。各画像において、対象物中心点27の座標は3次元座標系の原点に対応している。なお、この例では、3次元座標系の原点は画像中心点に対応している。
【0038】
続いて、3次元物体(認識対象)の姿勢・距離検出処理について説明する。
認識対象をキャリブレーションされた2眼ステレオカメラで撮影して得た2次元画像の例を図11に示す。
【0039】
左の2次元画像31および右の2次元画像32のそれぞれに対して、辞書データの2次元画像との間でパターンマッチ処理を行なう。パターンマッチは、認識対象と辞書データ中の対象物とのサイズが異なる場合にも適用できるSIFT演算子(Scale Invariant Feature Transform)などの公知の技術を用いて行なう。なお、SIFT演算子については例えば、D. Loweによる”Distinctive image features from scale-invariant keypoints” ( International Journal of Computer Vision, 60, 2(2004), pp91-110)に記載がある。
【0040】
辞書データの各2次元画像は、画像の中心点に対象物の予め定められた点が対応しているが、撮影した図11に示す左右の2次元画像31、32においては、通常、画像の中心点に認識対象(対象物)の予め定められた点が対応していない。
【0041】
マッチング処理の結果として、図12に示すように、左画像(左の2次元画像)31に対し、対象物中心点33に相当する座標(xl、yl)および、最も類似する辞書データの番号D(l)、右画像(右の2次元画像)32に対し、対象物中心点34に相当する座標(xr、yr)および、最も類似する辞書データの番号D(r)、が求まる。
【0042】
このとき、左右画像の座標(xl、yl)および(xr、yr)は対象物の同一点に対応しており、ステレオ法における対応点となる。よって、ステレオビジョンにおける公知の手法を用いることにより、例えば左カメラを基準とした場合には、左カメラから中心点までの距離dlを算出することができる。
【0043】
結果として、左カメラを基準として、対象物の姿勢=(θx(i)、θy(i)、θz(i))、対象物中心点までの距離=dlとして、対象物(認識対象)の姿勢および距離を認識することができる。
【0044】
このように、本実施形態によれば、対象物の2次元画像と、その画像における対象物の姿勢と、その画像における対象物中心点位置とを組み合わせて作成した辞書データを有するために、事前に参照点や図形を辞書データの各2次元画像に入力することなく、また、ステレオカメラを用いることにより、認識対象の3次元姿勢および対象物中心点までの距離を容易に認識することができる。
【0045】
続いて、本実施形態の変形例について説明する。
この変形例においては、図3の2次元マッチング処理部22によるパターンマッチ処理に対し、両カメラの位置関係とパターンマッチ結果とが一致するように、また、パターンマッチの計算量が減るように改良を加えている。
【0046】
以下に、この変形例について説明する。
上述したように、ステレオカメラはキャリブレーションされているため、F行列が求められている。F行列を両カメラ間の剛体変換(一方が他方に対しどれだけ回転しどれだけ平行移動した位置にいるか)の関係に分解できることは例えば、Richard HartleyとAndrew Zissermanによる”Multiple View Geometry in Computer Vision, Cambridge University Press”(Second Edition(2003), pp239-261)に示されるように公知の技術である。
【0047】
そこで、ステレオカメラにより撮影された認識対象(対象物)の2つの2次元画像に対して、辞書データの各2次元画像とパターンマッチ処理を行なう場合において、一方の2次元画像に対して順次パターンマッチを行なうとともに、対応する(両カメラ間の)回転角に該当する近傍の辞書データ(すなわち、キャリブレーションにて定義された回転角度近傍の辞書データ)の2次元画像を用いて他方の2次元画像のパターンマッチを行ない、両画像がよりよく類似する辞書データを、パターンマッチ処理の結果として出力する。また、両画像がよりよく類似する辞書データを検索する方法としては、例えば、2つのパターンマッチ結果(すなわち、上記した尺度値)の加算値が最小である辞書データの各2次元画像をパターンマッチ処理の結果として採用する方法がある。
【0048】
すなわち、撮影したそれぞれの2次元画像に対して、辞書データの各2次元画像とパターンマッチ処理を行なう場合において、一方の2次元画像と辞書番号iの2次元画像との間でパターンマッチを行ない、第1のパターンマッチ結果を算出するとともに、他方の2次元画像と辞書番号jの近傍の2次元画像との間でパターンマッチを行ない、第2のパターンマッチ結果を算出し、第1および第2のパターンマッチ結果の加算値が最小となる辞書データの2次元画像の組み合わせを姿勢として推定する。
【0049】
なお、辞書番号jの2次元画像は、辞書番号iの2次元画像における対象物の姿勢をRだけ回転させた姿勢である対象物の2次元画像とする。Rは、ステレオキャリブレーションにより定義されるカメラ間の回転関係を示す。なお、カメラ間の関係は、F行列によって定義されるが、これは、回転と平行移動の関係である。
【0050】
図13は、カメラ間の回転関係を考慮して、第1の2次元画像と対応する第2の2次元画像とに対するそれぞれの辞書データをパターンマッチ結果として求める処理のフローチャートである。
【0051】
図13のステップS21において、辞書番号iおよび最小加算値を初期化する。なお、例えば辞書を各軸方向に1度刻みで作成した場合、辞書番号iは、1〜360×360×360の範囲をとることになる。別の表現をすると、辞書番号(ir1,ir2,ir3),ir1=0〜359,ir2=0〜359,ir3=0〜359と表すことができる。本フローチャートにおいて、辞書番号iと辞書番号(ir1,ir2,ir3)の対応関係は既知であるものとする。また、最小加算値の初期化においては、最小加算値として記憶できる最大の値を入力すればよい。
【0052】
ステップS21に続く、ステップS22では、カメラ間の回転関係を考慮して、辞書番号iに対する辞書番号jを求める。例えば、左画像(このフローチャート中では、“第1の2次元画像”として表記)XLpqと辞書X(kl1,kl2,kl3)pqが類似し
ていて、右画像(このフローチャート中では、“第2の2次元画像”として表記)XRpqと辞書X(kr1,kr2,kr3)pqが類似していて、辞書番号(kl1,kl2,kl3)と(kr1,kr2,kr3)が角度Rの回転関係にあり、角度Rが3次元座標系でX,Y,Zの各軸角度が(r1,r2,r3)と表されるとき、左画像XLpqを基準とすると、数式4を満たすような右画像とパターンマッチさせる辞書X(kl1,kl2,kl3)pqを、このステップS22で求めることになる。
[数4]
kr1=kl1+r1
kr2=kl2+r2
kr3=kl3+r3
ステップS22に続くステップS23では、第1の2次元画像(左画像)と辞書番号iの2次元画像のパターンマッチを行ない、第1のパターンマッチ結果(第1の尺度値)を求める。続く、ステップS24では、第2の2次元画像(右画像)と辞書番号jの2次元画像のパターンマッチを行ない、第2のパターンマッチ結果(第2の尺度値)を求める。
【0053】
ステップS24に続くステップS25では、第1のパターンマッチ結果(第1の尺度値)と、第2のパターンマッチ結果(第2の尺度値)とを加算し、加算値を求める。
続くステップS26では、ステップS25で求めた加算値が最小加算値より小さいか否かが判定される。
【0054】
ステップS26においてステップS25で求めた加算値が最小加算値以上であると判定された場合(ステップS26の判定結果がNoの場合)、ステップS29に進む。
ステップS26においてステップS25で求めた加算値が最小加算値より小さいと判定された場合(ステップS26の判定結果がYesの場合)、ステップS27において、ステップS25で求めた加算値を最小加算値に設定し、ステップS28において、パターンマッチ処理の結果として、左右の各画像のパターンマッチ結果(尺度値)および辞書番号を記憶し、ステップS29に進む。
【0055】
ステップS26またはステップS28から制御を渡されたステップS29では、辞書番号iが最大値であるかどうかを判定する。
ステップS29において辞書番号iが最大値であると判定された場合(ステップS29の判定結果がYesの場合)、一連の処理を終了する。
【0056】
ステップS29において辞書番号iが最大値ではないと判定された場合(ステップS29の判定結果がNoの場合)、ステップS30において辞書番号iをインクリメントし、ステップS22に戻り、辞書データを使用したパターンマッチ処理を続行する。
【0057】
このような一連の処理の結果として、例えば尺度値としてSSDを使用した場合、kr1=kl1+r1、kr2=kl2+r2、kr3=kl3+r3、という条件の下で、数式5を最小化するX(kr1,kr2,kr3)が検索されたことになる。
[数5]
ΣmΣn(XLmn−X(kl1,kl2,kl3)mn)2
+ΣmΣn(XRmn−X(kr1,kr2,kr3)mn)2
図13で説明した上記の場合においてさらに、一方の2次元画像に対するパターンマッチ処理により、画像上で対象物中心点の位置が求まると、他方の2次元画像の対象物中心点位置が対応するエピポーラ線上にあるものとして、そのエピポーラ線上に限定して他方の2次元画像に対するパターンマッチを行なうようにしてもよい。
【0058】
なお、他方の2次元画像上に一方の2次元画像を撮影したカメラの視線(光軸)を引くことで、他方の2次元画像上にエピポーラ線を引くことができる。
このように、本実施形態の変形例によれば、領域を限定されたパターンにおいてパターンマッチを行なうため、計算量が削減されるとともに、誤分類の確率も減少する。
【図面の簡単な説明】
【0059】
【図1】本発明の一実施形態に係る辞書データ作成装置の構成を示すブロック図である。
【図2】辞書データ作成処理のフローチャートである。
【図3】本発明の一実施形態に係る3次元物体姿勢・距離検出装置の構成を示すブロック図である。
【図4】姿勢・距離認識処理のフローチャートである。
【図5】対象物の例を示す図である。
【図6】辞書データ作成方法(その1)を示す図である。
【図7】辞書データ作成方法(その2)を示す図である。
【図8】辞書データの作成に先立って設定された座標系を示す図である。
【図9】辞書データの作成する際の撮影方法を示す図である。
【図10】辞書データに登録される画像の例を示した図である。
【図11】認識対象をキャリブレーションされた2眼ステレオカメラで撮影して得た2次元画像の例を示した図である。
【図12】図11の2次元画像の例に対象物中心点を追加した図である。
【図13】カメラ間の位置関係を考慮して、第1の2次元画像と対応する第2の2次元画像とに対するそれぞれの辞書データをパターンマッチ結果として求める処理のフローチャートである。
【符号の説明】
【0060】
1 システム制御機器
2 対象物
3、16−1、16−2 カメラ
5 対象物回転制御部
6 カメラ移動制御部
7、21 撮影制御部
8 記憶装置
11 対象物回転装置
12 カメラ移動装置
18 認識対象
22 2次元マッチング処理部
23 距離算出部
25 撮影した画像
26 画像中心点
27、33、34 対象物中心点
31 左の2次元画像
32 右の2次元画像
【技術分野】
【0001】
本発明は、対象物の画像をステレオビジョンによって撮影し、その対象物に対して、3次元姿勢およびその対象物の予め定められた点までの距離すなわち対象物の位置を検出する技術に関する。
【背景技術】
【0002】
対象物(3次元物体)の姿勢およびその対象物の位置を認識する技術の1つとして、対象物を中心とした一定距離の球面上でカメラを一定間隔で移動させながら撮影した2次元画像と、その姿勢を併せ持つ辞書データを用意し、認識対象を撮影した2次元画像と、その辞書データ中の各2次元画像との間で、2次元パターンマッチを行なう公知の手法がある。この手法では、パターンマッチの結果として、最も認識対象に類似していると判断された辞書データ中の2次元画像に対する姿勢を、認識対象の姿勢と判断している。なお、この手法は、2次元画像中の対象物の大きさに基づいて、その対象物の位置を判断しているために、対象物の位置を高精度に検出できないという問題がある。
【0003】
一方、第1および第2のカメラにより構成されたステレオカメラにより、対象物に対してそれぞれ撮影された2つの2次元画像を取得し、各2次元画像について対象物の対応付けを行い、対応付けされた対象物の点等から対象物の位置姿勢を求める手法も古くから知られている。
【0004】
例えば、特許文献1では、認識対象となる物品について、ある方向から撮影した2次元教示モデルを用意している。そして、この2次元教示モデル上(すなわち、そのモデルが表示されたディスプレイ上)に、マウス等の手段を用いてポイントすることにより、少なくとも3点の参照点あるいは同義の情報を与える図形を指定する。
【0005】
その後、認識対象に対し、ステレオカメラの第1および第2のカメラによりそれぞれ撮影された2つの2次元画像について、この参照点等が指定された2次元教示モデルに幾何学的変形を施したもの(変形は可変パラメータのセットにより指定される)との間でパターンマッチを行ない、可変パラメータの一部の値が最も近い対象物候補を選出する。さらに、その可変パラメータを用いて先に指定した参照点を撮影された2つの2次元画像の対応点として求め、この対応点を用いて、ステレオ方式により認識対象に対し正確な位置および姿勢の測定を行なうことができる。
【特許文献1】特開2004−90183号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1のように2次元教示モデルに幾何学的変形を行なう代わりに、上記の辞書データを使用してパターンマッチ等の処理を行なうこともある。この場合、辞書データ中に登録される各2次元画像に対し、少なくとも3点の参照点あるいは同義の情報を与える図形をマウス等を用いて指定することは、2次元画像の個数が膨大となることを考慮すると、煩雑かつ困難であるばかりか事実上、不可能に近い。
【0007】
また、特許文献1に提案される手法では、認識対象をステレオカメラにより撮影した2つの2次元画像に対して、それぞれ独立に2次元パターンマッチを行ない、それぞれ独立に姿勢を求めている。しかし、例えばキャリブレーションされたステレオカメラでは、それぞれのカメラで撮影された2つの2次元画像間の幾何学的な関係が3次元剛体変換(一方が他方に対しどれだけ回転しどれだけ平行移動した位置にいるか)により定義される。
このため、独立に求めた姿勢は必ずしも剛体変換の関係を満たしているとは限らない。
【0008】
剛体変換の関係が満たされていない場合には、2つの2次元画像のうちのいずれかに対して2次元パターンマッチ処理の結果が正しくないと考えられ、最終的に求められる姿勢も不正確となる。
【0009】
本発明は、以上の問題点を考慮してなされたものであり、参照点等を与えることなく、3次元物体の位置(撮影したカメラの位置から3次元物体の予め定められた点までの距離)を高精度に検出することを可能とした3次元物体姿勢・位置検出装置、方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
提案する3次元物体姿勢・位置検出装置は、3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせ、または、3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶する記憶部と、カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成され、前記対象物を撮影するステレオカメラと、前記ステレオカメラを構成する第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識するとともに、前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出する姿勢・距離認識部と、を有する。
【発明の効果】
【0011】
提案する3次元物体姿勢・位置検出装置によれば、対象物の2次元画像と、その画像における対象物の姿勢と、その画像における対象物中心点位置とを、組み合わせて作成した辞書データを有するために、改めてマウス等により参照点や図形を辞書データの各2次元画像に入力することなく、また、ステレオカメラを用いることにより、認識対象の3次元姿勢および対象物中心点までの距離を容易に認識することができる。
【発明を実施するための最良の形態】
【0012】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
始めに、本実施形態の概要について説明する。
本実施形態では、複数の視点からの対象物の2次元画像である辞書データを使用している。この辞書データは、対象物の予め定められた点がその辞書データにおける2次元画像の所定の点となるようにして撮影された画像の集まりである。辞書データの作成方法としては以下の2通りがある。
(1)カメラを固定し、撮影した2次元画像の所定の点を、3次元直交座標系(x軸、y軸、z軸)の原点と設定する。対象物の予め定められた点が、3次元直交座標系の原点と一致するように、その対象物を配置する。対象物の姿勢、すなわち対象物の3次元直交座標系の各軸に対する回転角度を、等間隔で変化させ、先の固定されたカメラにより対象物を撮影し、各姿勢情報(回転角度)と2次元画像を取得する。
(2)対象物の予め定められた点が、3次元直交座標系(x軸、y軸、z軸)の原点と一致する位置に、その対象物を固定する。撮影した2次元画像の所定の点が3次元座標系の原点となるように、原点を中心とした球面上を等間隔にカメラを移動させて、各カメラ位置情報と、2次元画像を取得する。
【0013】
いずれの方法でも、撮影した2次元画像の所定の点が原点に対応する。よって、取得したすべての2次元画像において、その画像の所定の点は対象物の予め定められた点に対応していることになる。
【0014】
そして、カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成されたステレオカメラにより撮影したそれぞれの2次元画像に対して、辞書データの2次元画像とパターンマッチを行なうことによりその対象物の姿勢が認識されるとともに、それぞれの2次元画像に対して、対象物の予め定められた点の位置を辞書データに基づき検出し、これらを対応点とみなしてステレオ法により例えば第1のカメラからその対象物の予め定められた点までの距離を算出する。
【0015】
結果として、その対象物の3次元姿勢およびその対象物の予め定められた点までの距離が検出できたことになる。なお、“対象物の予め定められた点”は、カメラを球面上で移動するときの球の中心であるとともに、対象物を回転させるときの回転中心であることから、これを“対象物中心点”ということもある。なお、この“対象物中心点”を対象物の重心に一致させることもできる。
【0016】
図1は、本発明の一実施形態に係る辞書データ作成装置の構成を示すブロック図である。
図1に示すように、この辞書データ作成装置は、パーソナルコンピュータ(以下、PCという)等のユーザの操作を通してあるいは自動でシステムの制御を行なうシステム制御機器1と、システム制御機器1からの指示に基づいて、対象物回転装置11またはカメラ移動装置12を駆動させる対象物回転制御部5またはカメラ移動制御部6と、を有する。
【0017】
また、システム制御機器1は、対象物回転制御部5による指示によって対象物回転装置11により対象物2が位置調整された後、または、カメラ移動制御部6による指示によってカメラ移動装置12によりカメラ3が球面上を移動した後に、カメラ3に対象物2を撮影する指示を、撮影制御部7を通して出す。
【0018】
対象物回転装置11は、対象物回転制御部5からの指示に基づいて、(カメラ3の位置は固定として)対象物2をx軸、y軸、z軸の回りにθx(i)、θy(i)、θz(i)だけ回転させる。また、カメラ移動装置12は、カメラ移動制御部6からの指示に基づいて、(対象物2の位置は固定として)カメラ3を3次元座標系の原点を中心としてx軸、y軸、z軸の回りに−θx(i)、−θy(i)、−θz(i)だけ回転させて球面上を移動させる。
【0019】
撮影された画像は、i番目の画像(画像(i))、i番目の姿勢(θx(i)、θy(i)、θz(i))の組み合わせ、すなわち、i番目の辞書データ(辞書D(i))として記憶装置8に記憶される。なお、図1の実際の構成としては、対象物回転装置11またはカメラ移動装置12(対象物回転制御部5またはカメラ移動制御部6)のいずれか一方を選択的に有する構成となる。
【0020】
図2は、辞書データ作成処理のフローチャートである。このフローチャートの処理は、辞書データ作成装置によって実行される。なお、このフローチャートは、図1で対象物回転装置11を使用した場合に対応している。
【0021】
図2のステップS1で、対象物2を原点に設置する前に、カメラ3により原点を撮影し、画像における原点位置を記憶する。そして、ステップS2で、上述の対象物中心点が原点に一致するように対象物2を設置する。
【0022】
ステップS2に続くステップS3では、対象物回転装置11により、対象物2を一定量回転させる。そして、その回転した状態の対象物2をステップS4でカメラ3により撮影する。
【0023】
続くステップS5では、ステップS4で撮影した画像と、回転角度とを記憶装置8に記憶する。そして、ステップS6ですべての角度での撮影を完了したかどうかを判定する。
ステップS6ですべての角度での撮影を完了したと判定された場合(ステップS6の判定結果がYesの場合)、一連の処理を終了する。
【0024】
ステップS6ですべての角度での撮影が完了していないと判定された場合(ステップS6の判定結果がNoの場合)、ステップS3に戻り、残りの角度位置での対象物2の撮影を続行する。
【0025】
図3は、本発明の一実施形態に係る3次元物体姿勢・距離検出装置の構成を示すブロック図である。
図3に示すように、この3次元物体姿勢・距離検出装置は、認識対象18を撮影する、カメラ間の回転関係が既知であるキャリブレーションされたカメラ16−1および16−2と、PC等のユーザの操作を通してあるいは自動でシステムの制御を行なうとともに、カメラ16−1および16−2に認識対象18を撮影する指示を、撮影制御部21を通して出すシステム制御機器1と、カメラ16−1および16−2で撮影したそれぞれの2次元画像に対して、記憶装置8に記憶される辞書データの2次元画像とパターンマッチを行なうことにより認識対象18の姿勢を認識する2次元マッチング処理部22と、それぞれの2次元画像に対して、対象物中心点の位置を辞書データに基づき検出し、これらを対応点とみなしてステレオ法により認識対象18の中心点(予め定められた点)までの距離を算出する距離算出部23と、を有する。
【0026】
なお、パターンマッチとは、2つの多次元データ(画像を含む)の類似度を定量的に評価する手法の1つである。画像データは縦方向m画素、横方向n画素で表されるm×n次元データと考えることができる。これを、Xpq(p=1〜m,q=1〜n)と表現する。このとき、画像1(X1pq)と画像2(X2pq)の類似度を定量的に表す尺度値として、SAD(Sum of Absolute Difference)、SSD(Sum of Squared intensity Difference)などがある。SADおよびSSDの尺度値は数式1および数式2により定義される。
[数1]
SAD=ΣpΣq|X1pq−X2pq|
[数2]
SSD=ΣpΣq(X1pq−X2pq)2
この他に、X1pqの平均値とX2pqの平均値が等しくなるように上記をそれぞれ正規化した正規化SAD、正規化SSDや、正規化相関と呼ばれるNCC(Normalized Cross Correlation)などが尺度値としてよく利用される。SADやSSDの値が小さいほど、両者(画像1と画像2)は類似しているといえる。
【0027】
図4は、姿勢・距離認識処理のフローチャートである。このフローチャートの処理は、3次元物体姿勢・距離検出装置によって実行される。このフローチャートの処理に先立って、ステレオカメラ(カメラ16−1および16−2)はカメラ間の回転関係が既知であるようにキャリブレーションされているものとする。
【0028】
図4のステップS11で、認識対象(対象物)18は、ステレオカメラを構成するカメラ16−1および16−2により2つの視点から撮影され、これにより、2つの2次元画像が得られる。
【0029】
続く、ステップS12では、2次元マッチング処理部22により、得られた2つの2次元画像に対して、記憶装置8の辞書データの各2次元画像との間で2次元パターンマッチを行なうことで、撮影されたそれぞれの2次元画像の姿勢が推定(認識)される。なお、本実施形態では、辞書データには、対象物中心点位置の情報が付加されているため、ステレオカメラにより撮影された2つの2次元画像それぞれにおける、対象物中心点位置を推定することができ、続く、ステップS13において、距離算出部23により、推定された2つの2次元画像の対象物中心点位置が、ステレオ法における対応点とみなされて、その2つの2次元画像のうちのいずれか一方の画像の対象物中心点までの距離(あるいは双方の画像の各対象物中心点までの距離)を推定することができる。そして、続く、ステップS14において、2次元パターンマッチ処理の結果として判明した認識対象18の3次元姿勢と、ステレオ法を適用することにより判明した認識対象18の対象物中心点位置までの、例えばカメラ16−1からの距離を出力して、一連の処理を終了する。
【0030】
以上、説明した内容につき、以下でさらに詳細に説明する。
以下では、対象物の例として、図5に示すような直方体状の物体が用いられる。
2次元画像と姿勢により構成される辞書データの作成方法としては、上述したように2通りある。第1の方法では、図6に示すように、まず、カメラを所定の位置に固定する。次に、対象物の予め定められた点(対象物中心点)と、3次元直交座標系の原点とを一致させる。さらに、上記した対象物回転装置11により、その3次元直交座標系の原点(対象物中心点)の回りに対象物を回転させることにより、その対象物の姿勢を全方位へ等間隔で変化させ、その各姿勢の対象物を固定カメラで撮影して、それぞれの姿勢情報と2次元画像とを取得し、辞書データを作成する。この第1の方法では、対象物をx、y、zの各軸方向に所定量ずつ回転させる上述の対象物回転装置11が必要となる。
【0031】
これに対し、第2の方法では、図7に示すように、対象物の予め定められた点(対象物中心点)と、3次元直交座標系の原点とを一致させ、その位置に対象物を固定する。そして、対象物中心点(原点)を中心とした球面上で、上記したカメラ移動装置により、等間隔にカメラを移動させて、それぞれのカメラ位置情報と2次元画像とを取得し、辞書データを作成する。この第2の方法では、直交座標系の原点(対象物中心点)を中心とした球面上で所定の位置へカメラ3を移動させる上述のカメラ移動装置12が必要となる。
【0032】
なお、上記第1の方法と第2の方法とは、対象物とカメラとのいずれを固定するかによる差異であり、得られる辞書データは等しい。
ここでは、上記第1の方法についてさらに詳細に説明する。
【0033】
まず、カメラ3の位置を固定する。そして、対象物がない状態で撮影を行ない、撮影した画像上で3次元直交座標系の原点に対応する位置を設定することで、辞書データを作成するための対象物を回転させる3次元直交座標系を設定する。ここでは、簡単のために、図8に示すように、撮影した画像25の画像中心点26に原点が対応するように3次元直交座標系を設定する。
【0034】
カメラ3は、任意の位置に固定可能であるが、固定する位置を決めた後は辞書データ作成のための撮影中はその位置を移動することはできない。
次に、対象物の予め定められた点(例えば重心)が3次元直交座標系の原点と一致するように、対象物を配置する。なお、この対象物の予め定められた点は、対象物を回転させるときの中心でもあるので、回転中心点とも呼ばれる。
【0035】
対象物の姿勢は、図9に示すように、x軸方向への回転角度θx、y軸方向への回転角度θy、z軸方向への回転角度θzを指定することにより規定できる。これら角度θx、
θy、θzを一定間隔で刻んで対象物の姿勢を変化させて、条件ごとに、固定カメラ3から対象物を撮影し、撮影した画像と各角度値とをその都度保存することにより、辞書データが作成される。
【0036】
i番目の辞書データ“辞書(i)”は数式3のように表すことができる。
[数3]
辞書(i) = (画像(i)、θx(i)、θy(i)、θz(i))
例えば角度を1度刻みとすると、辞書データの要素総数は、360×360×360となる。すなわち、上記インデックスiは、1≦i≦360×360×360、の範囲で変化する。
【0037】
図10に、辞書データに登録される画像の例を示す。各画像において、対象物中心点27の座標は3次元座標系の原点に対応している。なお、この例では、3次元座標系の原点は画像中心点に対応している。
【0038】
続いて、3次元物体(認識対象)の姿勢・距離検出処理について説明する。
認識対象をキャリブレーションされた2眼ステレオカメラで撮影して得た2次元画像の例を図11に示す。
【0039】
左の2次元画像31および右の2次元画像32のそれぞれに対して、辞書データの2次元画像との間でパターンマッチ処理を行なう。パターンマッチは、認識対象と辞書データ中の対象物とのサイズが異なる場合にも適用できるSIFT演算子(Scale Invariant Feature Transform)などの公知の技術を用いて行なう。なお、SIFT演算子については例えば、D. Loweによる”Distinctive image features from scale-invariant keypoints” ( International Journal of Computer Vision, 60, 2(2004), pp91-110)に記載がある。
【0040】
辞書データの各2次元画像は、画像の中心点に対象物の予め定められた点が対応しているが、撮影した図11に示す左右の2次元画像31、32においては、通常、画像の中心点に認識対象(対象物)の予め定められた点が対応していない。
【0041】
マッチング処理の結果として、図12に示すように、左画像(左の2次元画像)31に対し、対象物中心点33に相当する座標(xl、yl)および、最も類似する辞書データの番号D(l)、右画像(右の2次元画像)32に対し、対象物中心点34に相当する座標(xr、yr)および、最も類似する辞書データの番号D(r)、が求まる。
【0042】
このとき、左右画像の座標(xl、yl)および(xr、yr)は対象物の同一点に対応しており、ステレオ法における対応点となる。よって、ステレオビジョンにおける公知の手法を用いることにより、例えば左カメラを基準とした場合には、左カメラから中心点までの距離dlを算出することができる。
【0043】
結果として、左カメラを基準として、対象物の姿勢=(θx(i)、θy(i)、θz(i))、対象物中心点までの距離=dlとして、対象物(認識対象)の姿勢および距離を認識することができる。
【0044】
このように、本実施形態によれば、対象物の2次元画像と、その画像における対象物の姿勢と、その画像における対象物中心点位置とを組み合わせて作成した辞書データを有するために、事前に参照点や図形を辞書データの各2次元画像に入力することなく、また、ステレオカメラを用いることにより、認識対象の3次元姿勢および対象物中心点までの距離を容易に認識することができる。
【0045】
続いて、本実施形態の変形例について説明する。
この変形例においては、図3の2次元マッチング処理部22によるパターンマッチ処理に対し、両カメラの位置関係とパターンマッチ結果とが一致するように、また、パターンマッチの計算量が減るように改良を加えている。
【0046】
以下に、この変形例について説明する。
上述したように、ステレオカメラはキャリブレーションされているため、F行列が求められている。F行列を両カメラ間の剛体変換(一方が他方に対しどれだけ回転しどれだけ平行移動した位置にいるか)の関係に分解できることは例えば、Richard HartleyとAndrew Zissermanによる”Multiple View Geometry in Computer Vision, Cambridge University Press”(Second Edition(2003), pp239-261)に示されるように公知の技術である。
【0047】
そこで、ステレオカメラにより撮影された認識対象(対象物)の2つの2次元画像に対して、辞書データの各2次元画像とパターンマッチ処理を行なう場合において、一方の2次元画像に対して順次パターンマッチを行なうとともに、対応する(両カメラ間の)回転角に該当する近傍の辞書データ(すなわち、キャリブレーションにて定義された回転角度近傍の辞書データ)の2次元画像を用いて他方の2次元画像のパターンマッチを行ない、両画像がよりよく類似する辞書データを、パターンマッチ処理の結果として出力する。また、両画像がよりよく類似する辞書データを検索する方法としては、例えば、2つのパターンマッチ結果(すなわち、上記した尺度値)の加算値が最小である辞書データの各2次元画像をパターンマッチ処理の結果として採用する方法がある。
【0048】
すなわち、撮影したそれぞれの2次元画像に対して、辞書データの各2次元画像とパターンマッチ処理を行なう場合において、一方の2次元画像と辞書番号iの2次元画像との間でパターンマッチを行ない、第1のパターンマッチ結果を算出するとともに、他方の2次元画像と辞書番号jの近傍の2次元画像との間でパターンマッチを行ない、第2のパターンマッチ結果を算出し、第1および第2のパターンマッチ結果の加算値が最小となる辞書データの2次元画像の組み合わせを姿勢として推定する。
【0049】
なお、辞書番号jの2次元画像は、辞書番号iの2次元画像における対象物の姿勢をRだけ回転させた姿勢である対象物の2次元画像とする。Rは、ステレオキャリブレーションにより定義されるカメラ間の回転関係を示す。なお、カメラ間の関係は、F行列によって定義されるが、これは、回転と平行移動の関係である。
【0050】
図13は、カメラ間の回転関係を考慮して、第1の2次元画像と対応する第2の2次元画像とに対するそれぞれの辞書データをパターンマッチ結果として求める処理のフローチャートである。
【0051】
図13のステップS21において、辞書番号iおよび最小加算値を初期化する。なお、例えば辞書を各軸方向に1度刻みで作成した場合、辞書番号iは、1〜360×360×360の範囲をとることになる。別の表現をすると、辞書番号(ir1,ir2,ir3),ir1=0〜359,ir2=0〜359,ir3=0〜359と表すことができる。本フローチャートにおいて、辞書番号iと辞書番号(ir1,ir2,ir3)の対応関係は既知であるものとする。また、最小加算値の初期化においては、最小加算値として記憶できる最大の値を入力すればよい。
【0052】
ステップS21に続く、ステップS22では、カメラ間の回転関係を考慮して、辞書番号iに対する辞書番号jを求める。例えば、左画像(このフローチャート中では、“第1の2次元画像”として表記)XLpqと辞書X(kl1,kl2,kl3)pqが類似し
ていて、右画像(このフローチャート中では、“第2の2次元画像”として表記)XRpqと辞書X(kr1,kr2,kr3)pqが類似していて、辞書番号(kl1,kl2,kl3)と(kr1,kr2,kr3)が角度Rの回転関係にあり、角度Rが3次元座標系でX,Y,Zの各軸角度が(r1,r2,r3)と表されるとき、左画像XLpqを基準とすると、数式4を満たすような右画像とパターンマッチさせる辞書X(kl1,kl2,kl3)pqを、このステップS22で求めることになる。
[数4]
kr1=kl1+r1
kr2=kl2+r2
kr3=kl3+r3
ステップS22に続くステップS23では、第1の2次元画像(左画像)と辞書番号iの2次元画像のパターンマッチを行ない、第1のパターンマッチ結果(第1の尺度値)を求める。続く、ステップS24では、第2の2次元画像(右画像)と辞書番号jの2次元画像のパターンマッチを行ない、第2のパターンマッチ結果(第2の尺度値)を求める。
【0053】
ステップS24に続くステップS25では、第1のパターンマッチ結果(第1の尺度値)と、第2のパターンマッチ結果(第2の尺度値)とを加算し、加算値を求める。
続くステップS26では、ステップS25で求めた加算値が最小加算値より小さいか否かが判定される。
【0054】
ステップS26においてステップS25で求めた加算値が最小加算値以上であると判定された場合(ステップS26の判定結果がNoの場合)、ステップS29に進む。
ステップS26においてステップS25で求めた加算値が最小加算値より小さいと判定された場合(ステップS26の判定結果がYesの場合)、ステップS27において、ステップS25で求めた加算値を最小加算値に設定し、ステップS28において、パターンマッチ処理の結果として、左右の各画像のパターンマッチ結果(尺度値)および辞書番号を記憶し、ステップS29に進む。
【0055】
ステップS26またはステップS28から制御を渡されたステップS29では、辞書番号iが最大値であるかどうかを判定する。
ステップS29において辞書番号iが最大値であると判定された場合(ステップS29の判定結果がYesの場合)、一連の処理を終了する。
【0056】
ステップS29において辞書番号iが最大値ではないと判定された場合(ステップS29の判定結果がNoの場合)、ステップS30において辞書番号iをインクリメントし、ステップS22に戻り、辞書データを使用したパターンマッチ処理を続行する。
【0057】
このような一連の処理の結果として、例えば尺度値としてSSDを使用した場合、kr1=kl1+r1、kr2=kl2+r2、kr3=kl3+r3、という条件の下で、数式5を最小化するX(kr1,kr2,kr3)が検索されたことになる。
[数5]
ΣmΣn(XLmn−X(kl1,kl2,kl3)mn)2
+ΣmΣn(XRmn−X(kr1,kr2,kr3)mn)2
図13で説明した上記の場合においてさらに、一方の2次元画像に対するパターンマッチ処理により、画像上で対象物中心点の位置が求まると、他方の2次元画像の対象物中心点位置が対応するエピポーラ線上にあるものとして、そのエピポーラ線上に限定して他方の2次元画像に対するパターンマッチを行なうようにしてもよい。
【0058】
なお、他方の2次元画像上に一方の2次元画像を撮影したカメラの視線(光軸)を引くことで、他方の2次元画像上にエピポーラ線を引くことができる。
このように、本実施形態の変形例によれば、領域を限定されたパターンにおいてパターンマッチを行なうため、計算量が削減されるとともに、誤分類の確率も減少する。
【図面の簡単な説明】
【0059】
【図1】本発明の一実施形態に係る辞書データ作成装置の構成を示すブロック図である。
【図2】辞書データ作成処理のフローチャートである。
【図3】本発明の一実施形態に係る3次元物体姿勢・距離検出装置の構成を示すブロック図である。
【図4】姿勢・距離認識処理のフローチャートである。
【図5】対象物の例を示す図である。
【図6】辞書データ作成方法(その1)を示す図である。
【図7】辞書データ作成方法(その2)を示す図である。
【図8】辞書データの作成に先立って設定された座標系を示す図である。
【図9】辞書データの作成する際の撮影方法を示す図である。
【図10】辞書データに登録される画像の例を示した図である。
【図11】認識対象をキャリブレーションされた2眼ステレオカメラで撮影して得た2次元画像の例を示した図である。
【図12】図11の2次元画像の例に対象物中心点を追加した図である。
【図13】カメラ間の位置関係を考慮して、第1の2次元画像と対応する第2の2次元画像とに対するそれぞれの辞書データをパターンマッチ結果として求める処理のフローチャートである。
【符号の説明】
【0060】
1 システム制御機器
2 対象物
3、16−1、16−2 カメラ
5 対象物回転制御部
6 カメラ移動制御部
7、21 撮影制御部
8 記憶装置
11 対象物回転装置
12 カメラ移動装置
18 認識対象
22 2次元マッチング処理部
23 距離算出部
25 撮影した画像
26 画像中心点
27、33、34 対象物中心点
31 左の2次元画像
32 右の2次元画像
【特許請求の範囲】
【請求項1】
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせ、または、
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶する記憶部と、
カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成され、前記対象物を撮影するステレオカメラと、
前記ステレオカメラを構成する第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識するとともに、前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出する姿勢・距離認識部と、
を有することを特徴とする3次元物体姿勢・位置検出装置。
【請求項2】
前記姿勢・距離認識部は、ステレオカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なう場合において、一方の2次元画像に対して順次パターンマッチを行なうとともに、一方の2次元画像を撮影したカメラと他方の2次元画像を撮影したカメラとの間の回転に該当する近傍の辞書データを用いて他方の2次元画像のパターンマッチを行ない、撮影した双方の2次元画像が最も類似する前記辞書データの各2次元画像の組み合わせを検索することを特徴とする請求項1記載の3次元物体姿勢・位置検出装置。
【請求項3】
前記姿勢・距離認識部はパターンマッチを行なう場合にさらに、一方の2次元画像に対するパターンマッチ結果により、画像上でマッチした位置から対象物中心点を求め、その対象物中心点に対応するエピポーラ線上に限定して他方の2次元画像に対するパターンマッチを行ない、2つのパターンマッチによる尺度値の加算値が最も類似している値となる辞書データの各2次元画像の組み合わせを検索することを特徴とする請求項2記載の3次元物体姿勢・位置検出装置。
【請求項4】
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせ、または、
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶する記憶部と、
カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成され、前記対象物を撮影するステレオカメラと、を有する装置が実行する3次元物体の姿勢・位置検出方法において、
前記ステレオカメラを構成する第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識するステップと、
前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出するステップと、を有することを特徴とする3次元物体姿勢・位置検出方法。
【請求項5】
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物
中心点の位置との組み合わせ、または、
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶した記憶部を有するコンピュータを、
ステレオカメラを構成する、カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識する姿勢認識部、
前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出する距離算出部、として機能させる3次元物体姿勢・位置検出プログラム。
【請求項1】
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせ、または、
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶する記憶部と、
カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成され、前記対象物を撮影するステレオカメラと、
前記ステレオカメラを構成する第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識するとともに、前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出する姿勢・距離認識部と、
を有することを特徴とする3次元物体姿勢・位置検出装置。
【請求項2】
前記姿勢・距離認識部は、ステレオカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なう場合において、一方の2次元画像に対して順次パターンマッチを行なうとともに、一方の2次元画像を撮影したカメラと他方の2次元画像を撮影したカメラとの間の回転に該当する近傍の辞書データを用いて他方の2次元画像のパターンマッチを行ない、撮影した双方の2次元画像が最も類似する前記辞書データの各2次元画像の組み合わせを検索することを特徴とする請求項1記載の3次元物体姿勢・位置検出装置。
【請求項3】
前記姿勢・距離認識部はパターンマッチを行なう場合にさらに、一方の2次元画像に対するパターンマッチ結果により、画像上でマッチした位置から対象物中心点を求め、その対象物中心点に対応するエピポーラ線上に限定して他方の2次元画像に対するパターンマッチを行ない、2つのパターンマッチによる尺度値の加算値が最も類似している値となる辞書データの各2次元画像の組み合わせを検索することを特徴とする請求項2記載の3次元物体姿勢・位置検出装置。
【請求項4】
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせ、または、
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶する記憶部と、
カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラにより構成され、前記対象物を撮影するステレオカメラと、を有する装置が実行する3次元物体の姿勢・位置検出方法において、
前記ステレオカメラを構成する第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識するステップと、
前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出するステップと、を有することを特徴とする3次元物体姿勢・位置検出方法。
【請求項5】
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った視点から撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物
中心点の位置との組み合わせ、または、
3次元位置・姿勢を検出する対象物に対し、全方位を等間隔に区切った位置へ対象物を回転させて撮影した2次元画像と、その2次元画像に対応する対象物の姿勢と、その2次元画像内の対象物中心点の位置との組み合わせである辞書データを記憶した記憶部を有するコンピュータを、
ステレオカメラを構成する、カメラ間の回転関係が既知であるキャリブレーションされた第1および第2のカメラで撮影したそれぞれの2次元画像に対して、前記辞書データの2次元画像とパターンマッチを行なうことにより前記対象物の姿勢を認識する姿勢認識部、
前記それぞれの2次元画像に対して、対象物中心点の位置を前記辞書データに基づき検出し、これらを対応点とみなしてステレオ法により前記対象物中心点までの距離を算出する距離算出部、として機能させる3次元物体姿勢・位置検出プログラム。
【図2】
【図4】
【図8】
【図13】
【図1】
【図3】
【図5】
【図6】
【図7】
【図9】
【図10】
【図11】
【図12】
【図4】
【図8】
【図13】
【図1】
【図3】
【図5】
【図6】
【図7】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−146303(P2010−146303A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−322990(P2008−322990)
【出願日】平成20年12月18日(2008.12.18)
【出願人】(000005234)富士電機ホールディングス株式会社 (3,146)
【Fターム(参考)】
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願日】平成20年12月18日(2008.12.18)
【出願人】(000005234)富士電機ホールディングス株式会社 (3,146)
【Fターム(参考)】
[ Back to top ]