情報処理装置、3次元位置算出方法及びプログラム
【課題】被写体の3次元位置を高速、かつ、安定的に算出する。
【解決手段】少なくとも2つの異なる視点から被写体150を撮像する撮像装置100、110で撮像された被写体150の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割手段と、各画像上に設定された走査線と、領域分割手段で分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、交点の特徴量を算出する交点特徴量算出手段と、交点特徴量算出手段で算出された交点の特徴量に基づいて各画像の間の対応点を求める対応付け手段3000と、対応付け手段で求められた対応点の視点に対する3次元位置を算出する3次元位置算出手段4000と、を有する。
【解決手段】少なくとも2つの異なる視点から被写体150を撮像する撮像装置100、110で撮像された被写体150の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割手段と、各画像上に設定された走査線と、領域分割手段で分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、交点の特徴量を算出する交点特徴量算出手段と、交点特徴量算出手段で算出された交点の特徴量に基づいて各画像の間の対応点を求める対応付け手段3000と、対応付け手段で求められた対応点の視点に対する3次元位置を算出する3次元位置算出手段4000と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、3次元位置算出方法及びプログラムに関する。
【背景技術】
【0002】
近年、複合現実感(Mixed Reality;MR)技術の研究が盛んである。MR技術は、現実空間とコンピュータによって作られる仮想空間を繋ぎ目なく融合する技術である。MR技術は、組み立て作業時に作業手順や配線の様子を重畳表示する組み立て支援、患者の体表面に体内の様子を重畳表示する手術支援等、様々な分野への応用が期待されている。
仮想物体が現実空間に実在するように利用者が感じるためには、仮想物体と現実空間との間の幾何学的な整合性が重要である。複合現実感における幾何学的な整合性には、現実空間の座標系と仮想空間の座標系とを一致させるための整合性と、現実物体と仮想物体との前後関係を正しく表現するための整合性とがある。前者の整合性を扱う問題は、複合現実感における位置合わせ問題とも呼ばれ、種々の研究報告が行われている。また後者の整合性を扱う問題は「オクルージョン問題」とも呼ばれ、特にカメラで撮影した画像に仮想物体を重畳させるビデオシースルー型のMRシステムでも重要な課題となる。本明細書では、後者のオクルージョン問題を扱う。
【0003】
現実物体と仮想物体との前後関係、即ち遮蔽(オクルージョン)を正しく表現するためには、遮蔽される現実物体又は仮想物体の3次元位置情報を求める必要がある。即ち、情報処理装置は、現実物体の3次元位置情報と仮想物体の3次元位置情報とを比較し、現実物体が手前になる場合は、撮影した画像を手前に表示する。また、情報処理装置は、仮想物体が手前にある場合は、仮想物体を手前に表示するという処理をすればよい。この処理において、仮想物体は既知の3次元モデルがあるため、情報処理装置は、視点に対する3次元位置を算出可能である。しかし、現実物体を撮影しただけでは、現実物体の視点に対する3次元位置は未知であるため、情報処理装置は、現実物体の3次元位置を求めることが必要となる。
【0004】
以下では、現実物体の3次元位置を計測する技術について述べる。一般的な3次元位置計測技術では、ステレオカメラで撮影した画像の注目点に対して、エピポーラ拘束と画素パッチの輝度情報とに基づいてマッチングを行う。まず、情報処理装置は、ステレオカメラの一方の画像における注目点に対して、他方の画像におけるエピポーラ線上の点を対応点候補とする。次に、情報処理装置は、対応点候補として残った各点の周辺の画素パッチに対して、注目点周辺の画素パッチとのパターンマッチングを行うことにより、精度よく対応点を求めることができる(非特許文献1、非特許文献2)。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】田村,"コンピュータ画像処理",オーム社,2002.
【非特許文献2】佐藤,"コンピュータビジョン−視覚の幾何学−",コロナ社,1999.
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的な3次元位置計測技術であるステレオマッチングの従来技術では、画素値の相関に基づくパターンマッチングによる対応付けの計算量の多さから、リアルタイム処理ができない場面があった。
【0007】
本発明はこのような問題点に鑑みなされたもので、被写体の3次元位置を高速、かつ、安定的に算出することを目的とする。
【課題を解決するための手段】
【0008】
そこで、本発明は、少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割手段と、前記各画像上に設定された走査線と、前記領域分割手段で分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出手段と、前記交点特徴量算出手段で算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付け手段と、前記対応付け手段で求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出手段と、を有する。
【発明の効果】
【0009】
本発明によれば、被写体の3次元位置を高速、かつ、安定的に算出することができる。
【図面の簡単な説明】
【0010】
【図1】撮像装置の位置及び3次元位置計測装置のハードウェア構成の一例を示す図である。
【図2】3次元位置計測装置の機能構成等の一例を示す図である。
【図3】実施形態1の画像処理部の機能構成の一例を示す図である。
【図4】対応付け処理部の機能構成の一例を示す図である。
【図5】画像処理部の処理の一例を示すフローチャートである。
【図6】ノイズを含んだ領域分割結果の2値画像の一例を示す図である。
【図7】分割領域の2値画像に走査線を重ねて表示した一例を示す図である。
【図8】対応付け処理部の処理の一例を示すフローチャートである。
【図9】走査線上の交点の特徴量の求め方を説明する図である。
【図10】交点近傍の特徴量を求め、分割領域に表示した一例を示す図である。
【図11】分割領域の境界線と走査線との交点から、走査線Jを取り出した一例を示す図である。
【図12】走査線上で対応点を求める処理の一例を説明するための図である。
【図13】ステレオ計測の一例を図である。
【図14】実施形態3の画像処理部の機能構成の一例を示す図である。
【図15】前フレームで描画された仮想物体が存在する領域に応じて走査線の間隔を変える処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面に基づいて説明する。
【0012】
<実施形態1>
本実施形態では、光軸の方向を平行に揃え、また、視点の高さを揃えた2台の撮像装置で撮影した画像に基づいて、撮像装置に対する被写体の一例である現実物体の3次元位置を計測する3次元位置計測装置を例に3次元位置算出方法等を説明する。
図1は、撮像装置の位置及び3次元位置計測装置200のハードウェア構成の一例を示す図である。図1に示した3次元位置計測装置200のハードウェア構成はパーソナルコンピュータ(コンピュータ)の構成と同等である。なお、3次元位置計測装置200は、情報処理装置の一例である。3次元位置計測装置200には、画像取り込み器502、記憶媒体503が接続されている。画像取り込み器502は、撮像装置100及び110で撮影(撮像)された画像をコンピュータ内に取り込むものであり、画像取得部1000に対応する。画像取り込み器502は、例えばビデオキャプチャボード等である。画像取り込み器502は、カメラ(撮像装置)で撮影された画像をコンピュータ内に取り込むものであれば何でもよい。CPU501は、記憶媒体503又はROM504又はRAM505、不図示の外部記憶装置等に保存されているプログラムを実行する。CPU501がプログラムを実行することにより、画像処理部2000、対応付け処理部3000、3次元位置算出部4000の各機能が実現される。夫々の処理部は、記憶媒体503に情報を保存、若しくは情報の読み出しを行う。
【0013】
図2は、3次元位置計測装置200の機能構成等の一例を示す図である。
図2に示すように、3次元位置計測装置200は、画像取得部1000、画像処理部2000、対応付け処理部3000、3次元位置算出部4000を含む。3次元位置計測装置200は、撮像装置100及び撮像装置110によって撮影された画像に基づいて現実物体の3次元位置を計測(算出)し、3次元位置情報を出力する。
まず、撮像装置100及び撮像装置110は、例えばビデオカメラ等であり、現実物体150が存在するシーンを同時に撮影する。本実施形態では、撮像装置100の焦点距離やレンズ歪み係数等のカメラ内部パラメーターは予め公知の方法で求めておき、既知であるとする。また、撮像装置100及び撮像装置110は、光軸の方向を平行に揃えると共に視点の高さを揃え固定するため、撮像装置間の相対位置姿勢のカメラ外部パラメーターは既知であるとする。
画像取得部1000は、撮像装置100及び撮像装置110によって撮影された画像をコンピュータ内に取り込む。画像取得部1000は、例えば、PCに設置されたビデオキャプチャカード等である。また、本実施形態では、画像取得部1000が、取得した画像に対してレンズ歪み補正を行うことで、画像の歪みはないものとして扱う。
【0014】
次に、画像処理部2000について説明する。図3は、実施形態1の画像処理部2000の機能構成の一例を示す図である。図3に示すように、画像処理部2000は、領域分割部2010、領域区別設定部2020、走査線設定部2030、交点検出部2040、交点情報保持部2050を含む。
領域分割部2010は、画像取得部1000によって取得された画像から、色情報に基づいて領域分割を行う。より具体的に説明すると、領域分割部2010は、予め設定された現実物体150の色情報に含まれる領域とそれ以外の領域とに分割する。
領域区別設定部2020は、分割された領域にラベル付けを行うことで領域を区別する。より具体的に説明すると、領域区別設定部2020は、領域の面積の大きい順にラベルを付け、閾値以下の面積の領域はノイズとして除去する。領域区別設定部2020は、ノイズ除去を行い、残った領域の画像とラベル情報とを交点検出部2040へ出力する。
走査線設定部2030は、撮像装置100と撮像装置110とによって撮影された各画像に対応する走査線の走査線情報を設定し、走査線情報を交点検出部2040へ出力する。
交点検出部2040は、領域区別設定部2020でラベル付けされた分割領域と走査線設定部2030で設定された走査線情報とを入力として、分割領域の境界線と走査線との交点を検出する。ここで、交点の検出とは、2次元画像上での画像座標を求めることである。交点検出部2040は、検出した交点の画像座標と、前記交点の近傍の分割領域のラベルと、を交点情報保持部2050へ出力する。ここで、交点の近傍の分割領域とは、前記交点より所定の範囲内の分割領域である。
交点情報保持部2050は、交点検出部2040から入力された交点の画像座標と、分割領域のラベルと、を交点情報として保持する。そして、交点情報保持部2050は、交点情報(又は交点の画像座標)と、ラベル付けされた分割領域の画像とを、対応付け処理部3000に出力する。
【0015】
次に、対応付け処理部3000について説明する。図4は、対応付け処理部3000の機能構成の一例を示す図である。図4に示すように、対応付け処理部3000は、交点特徴量算出部3010、交点特徴量リスト作成部3020、一致度算出部3030、第一の対応点判定部3040、領域対応付け部3050、第二の対応点判定部3060を含む。また、対応付け処理部3000は、交点特徴量リスト分割部3070、第三の対応点判定部3080を含む。
交点特徴量算出部3010は、画像処理部2000から、交点の画像座標と、ラベル付けされた分割領域の画像と、を入力する。交点特徴量算出部3010は、分割領域の画像から、交点近傍における走査線上の特徴量をラベルに基づいて求め、交点特徴量リスト作成部3020へ出力する。
交点特徴量リスト作成部3020は、交点特徴量算出部3010から分割領域の特徴量を入力し、走査線上に交点の特徴量を並べた交点特徴量リストを作成する。交点特徴量リスト作成部3020は、作成した交点特徴量リストを一致度算出部3030へ出力する。
一致度算出部3030は、撮像装置100で撮影された画像における交点特徴量リストと、第二の撮像装置110で撮影した画像における交点特徴量リストと、の比較を行い、一致度Pを算出する。一致度算出部3030は、算出した一致度Pを第一の対応点判定部3040へ出力する。
第一の対応点判定部3040は、一致度算出部3030から交点特徴量リストの一致度Pを入力し、交点特徴量リストの一致度に基づいて対応点の判定を行う。第一の対応点判定部3040は、対応点の画像座標の組を対応点情報として領域対応付け部3050へ出力する。
【0016】
領域対応付け部3050は、第一の対応点判定部3040から対応点情報を入力する。領域対応付け部3050は、対応点が存在する分割領域の境界線を対応付け、分割領域のラベルを境界線の対応情報として第二の対応点判定部3060へ出力する。
第二の対応点判定部3060は、領域対応付け部3050から分割領域の境界線の対応情報を入力する。第二の対応点判定部3060は、領域対応付け部3050で更新された境界線と走査線との交点を、新たな対応点として判定し、対応点情報を交点特徴量リスト分割部3070へ出力する。
交点特徴量リスト分割部3070は、第二の対応点判定部3060から対応点情報を入力し、対応点に基づいて交点特徴量リストを分割する。交点特徴量リスト分割部3070は、分割した交点特徴量リストを第三の対応点判定部3080へ出力する。
第三の対応点判定部3080は、交点特徴量リスト分割部3070から分割した交点特徴量リストを入力する。第三の対応点判定部3080は、分割した交点特徴量リストの一致度に基づいて、対応点の判定を行い、対応点情報を3次元位置算出部4000に出力する。
3次元位置算出部4000は、対応付け処理部3000から対応点情報を入力し、分割領域の撮像装置に対する3次元位置を算出する。3次元位置算出部4000は、算出した3次元位置情報を出力する。
【0017】
ここで、画像処理部2000の処理の詳細について述べる。図5は、画像処理部2000の処理の一例を示すフローチャートである。
ステップS2011では、領域分割部2010は、予め登録された、被写体となる物体の色情報(物体色情報)を入力する。
ステップS2012では、領域分割部2010は、撮像装置100、及び撮像装置110によって撮影した画像の各画素の色情報と、物体色情報と、を比較する。
ステップS2013では、領域分割部2010は、各画素の色情報が物体色情報に含まれるならば1、それ以外なら0とする。
ステップS2014では、領域分割部2010は、色情報の比較結果に基づいて2値画像を生成する。ここでは、入力した物体色情報に含まれるならば白、それ以外の領域を黒とする。
ステップS2015では、領域区別設定部2020は、2値画像のラベリングを行う。
ステップS2016では、領域区別設定部2020は、ラベリング後の画像から、設定した閾値よりも面積の小さい領域をノイズとして除去する。
上記の方法では、物体領域を検出するために色情報によって領域分割している。そのため、影になる部分や、同系色の領域がある場合には、ステップS2016で行うノイズ処理では、誤検出やノイズを全て取り除くことができない。図6は、ノイズを含んだ領域分割結果の2値画像の一例を示す図である。
領域分割で用いられる色情報は、多次元色空間における座標値として記述することができる。例えば、RGB、YIQ、YCbCr、YUV、HSV、Luv、Lab等様々な種類がある。3次元位置計測装置200は、対象とする被写体の色彩特性に合わせて、領域分割で用いられる色情報を選択可能に構成してもよい。また、領域を分割する方法は上記に限るものではなく、領域分割部2010は、色情報を用いる何れの公知の方法で行ってもよい。
【0018】
ステップS2017では、走査線設定部2030は、走査線情報を設定する。図7は、分割領域の2値画像に走査線300を重ねて表示した一例を示す図である。走査線情報とは、傾きや切片等の走査線の式、及び走査線の間隔である。本実施形態では、撮像装置100と撮像装置110とは、光軸の方向を平行に揃えると共に視点の高さを揃えて固定されていることを前提としており、かつ、画像の歪みはないものとして扱う。そのため、走査線設定部2030は、画像面の縦軸をy軸、横軸をx軸とすると、x軸方向の線分をy軸方向に均等間隔で並べた走査線を設定する。なお、走査線設定部2030は、走査線情報を設定することで走査線を設定するが、以下では説明の簡略化のため、単に走査線を設定するという。撮像装置100で検出された現実物体の画像座標は、撮像装置110で撮影された画像の走査線上で検出されるという性質を持つ。一方で、撮像装置110で検出された現実物体の画像座標は、撮像装置100で撮影された画像の走査線上で検出される。
ステップS2018では、交点検出部2040は、分割領域の境界線と走査線との交点を検出し、画像座標を求める。
ステップS2019では、交点情報保持部2050は、交点の画像座標と、分割領域の2値画像のラベルと、をセットにして保持し、対応付け処理部3000へ出力する。
【0019】
次に、対応付け処理部3000の処理の詳細について述べる。図8は、対応付け処理部3000の処理の一例を示すフローチャートである。
ステップS3011では、交点特徴量算出部3010は、交点の画像座標と分割領域の2値画像とを入力する。
ステップS3012では、交点特徴量算出部3010は、分割領域の2値画像から、走査線上における交点近傍の特徴量を求める。交点特徴量算出部3010は、入力した色情報内の領域として検出されている部分が1、それ以外の未検出部分が0として、図9に示すように、走査線上を探索して、交点上で分割領域のラベルが0から1に変化する場合には正の符号を与える。図9は、走査線上の交点の特徴量の求め方を説明する図である。一方、交点特徴量算出部3010は、1から0に変化する場合には負の符号を与える。即ち、正の符号の場合、走査線上で分割領域の左側であることを意味し、負の符号の場合は、走査線上で分割領域の右側であることを意味する。本実施形態では、この符号を特徴量とする。図10は、交点近傍の特徴量を求め、分割領域に表示した一例を示す図である。ここで、図10において、○は正の符号を表し、△は負の符号を表す。
ステップS3013では、交点特徴量リスト作成部3020は、ステップS3012で求められた特徴量を走査線上で並べ、走査線ごとに特徴量リストを作成する。
ステップS3014では、一致度算出部3030は、撮像装置100及び撮像装置110で撮影した夫々の画像での特徴量リストの一致度Pを算出する。特徴量リストの特徴量を左側から順にスキャンし、特徴量の総数をそれぞれS100、S110とし、一致した特徴量の総数をCとすると、一致度算出部3030は、一致度Pを、次のように求める。
P=C/S110(S100<=S110のとき)
P=C/S100(S110<S100)
一致度の算出方法は、求めた特徴量に基づいて算出するものであれば、これに限るものではない。
【0020】
ステップS3015では、第一の対応点判定部3040は、一致度Pが、閾値T以上であれば、対応点であると判定する。
ステップS3016では、領域対応付け部3050は、対応点であると判定された交点が存在する分割領域を物体領域とし、その境界ラベルを、撮像装置100及び撮像装置110で撮影した夫々の画像で対応付ける。
ステップS3017では、第二の対応点判定部3060は、ステップS3016で対応付けられた物体領域の境界線と走査線との交点で、かつ、まだ対応点と判定されていない交点を対応点として判定する。
ステップS3018では、交点特徴量リスト分割部3070は、走査線上の交点近傍の特徴量をリスト化した交点特徴量リストを、ステップS3017で対応付けた対応点の位置で分割する。図11は、分割領域の境界線と走査線との交点から、走査線Jを取り出した一例を示す図である。ここで、図中のC1、C2、及びC1'、C2'はステップS3017で対応付けられた対応点である。交点特徴量リスト分割部3070は、走査線J上の交点近傍の特徴量をリスト化した交点特徴量リストを、対応点C1及びC2の位置で分割する。これにより撮像装置100で撮影した画像においてJ1、J2、J3、撮像装置100で撮影した画像においてJ1'、J2'、J3'のように夫々3つに分割することができる。
【0021】
ステップS3018では、交点特徴量リスト分割部3070は、分割した交点特徴量リストの夫々の一致度を算出する。例えば、交点特徴量リスト分割部3070は、図11におけるJ1とJ1'、J2とJ2'、J3とJ3'、の一致度を、一致度算出部3030と同様の処理を行うことで算出する。
ステップS3019では、第三の対応点判定部3080は、ステップS3018で算出された一致度に基づいて、まだ対応点であると判定されていない交点を新たな対応点として判定する。図12は、走査線上で対応点を求める処理の一例を説明するための図である。図12では、J1とJ1'の部分の交点が一致するため、例えば、第三の対応点判定部3080は、対応点として判定する。
ステップS3020では、第三の対応点判定部3080は、撮像装置100で撮影された画像における対応点Cn(n=1,2,,,N)と、撮像装置110で撮影された画像における対応点C'n(n=1,2,,,N)と、の画像座標の組を3次元位置算出部4000へ出力する。ここでNは、対応点の組の総数である。
【0022】
次に3次元位置算出部4000の処理の詳細について説明する。
対応付け処理部3000から得た対応点に基づいて3次元位置を計測する。図13は、ステレオ計測の一例を図である。本実施形態では、図13に示すように、2台の撮像装置は光軸の方向を平行に揃えると共に視点の高さを揃えて固定されている。そのため、3次元位置算出部4000は、平行ステレオ、又はベースラインステレオと呼ばれる公知技術を用いて3次元位置を算出する。
3次元位置算出部4000は、図13に示すように座標系をとり、現実物体の点P(X,Y,Z)がそれぞれ左右の画像上の(xl,yl)、(xr,yr)に像を結べば、次式によって3次元位置(X、Y、Z)を求めることができる。
X=b(xl+xr)/2d ・・・式1
Y=by/d ・・・式2
Z=bf/d ・・・式3
但し、fは、撮像装置の焦点距離である。bは、撮像装置間の距離(基線長)である。dは、視差と呼ばれd=xl−xrである。
3次元位置算出部4000は、算出した現実物体の3次元位置値を出力する。
【0023】
上記で説明したように、本実施形態に係る3次元位置計測装置200は、画像から検出した物体領域にノイズが含まれる場合や、物体領域が凹形状になるために対応点候補が複数となる場合であっても、現実物体の3次元位置を計測することができる。また、本実施形態に係る3次元位置計測装置200によれば、物体領域の境界線上の点の3次元位置を、画素パッチのパターンマッチングを行うことなく計測するため、高速に処理することができる。更に、本実施形態に係る3次元位置計測装置200によれば、例えば、3段階の対応点判定部と、領域対応付け部と、によって、対応点を精度よく、かつ、安定して検出することができる。したがって、3次元位置計測を高精度、かつ、高速に行うことができる。
本実施形態に係る3次元位置計測装置200をヘッドマンテッドディスプレイ又はハンドヘルドディスプレイに装着し、MR技術に応用する。すると、このMR技術では、現実物体の3次元位置情報と、仮想物体の3次元位置情報と、を比較して、画像又は仮想物体を手前に描画することができる。
ここで、ヘッドマウンテッドディスプレイとは、頭部に装着するディスプレイのことであり、ハンドヘルドディスプレイとは、手持ちのディスプレイである。これらは、複合現実感を体験する際に一般的によく利用される。ヘッドマウンテッドディスプレイやハンドヘルドディスプレイに撮像装置を装着する場合には、ディスプレイの光軸と、撮像装置の光軸と、を一致させることが望ましい。このようにして、手等の物体領域の奥行きを計測することで複合現実感における、現実物体と仮想物体の前後関係を正しく表現することができ、ユーザーは正しく知覚することができる。
以上のように、本実施形態に係る3次元位置計測装置200は、MR技術おける幾何的整合性を向上させ、違和感の少ないMR体験をユーザーに提供することができる。なお、本実施形態では、現実物体として人間の手の3次元位置を計測(算出)する例を用いて処理を説明したが、このことに限定されるものではない。
【0024】
<実施形態2>
実施形態1では、撮像装置100と撮像装置110とは、光軸の方向を平行に揃えると共に視点の高さを揃えて固定されていることを前提として説明した。しかしながら、撮像装置100と撮像装置110とが同じ物体を撮影できれば、撮像装置の配置はこれに限るものではない。
光軸の方向を平行に揃えると共に視点の高さを揃えて固定していない場合(水平に揃え固定していない場合)、走査線は、平行ステレオのように画像のx軸に平行となる線分にならない。そこで、本実施形態では、3次元位置計測装置200は、一般的にエピポーラ線と呼ばれる線を走査線として設定する。
【0025】
ここで簡単にエピポーラ線について説明する。例えば、2台の撮影装置の視点をそれぞれC,C'とし、3次元空間中のある点をPとする。すると、3次元位置計測装置200は、このC,C',Pの3点で空間中に1つの平面Σを定義することができる。この平面をエピポーラ平面と呼び、エピポーラ平面と画像面とが交差してできる線分をエピポーラ線と呼ぶ。エピポーラ線は、エピポーラ方程式より求めることができる。
エピポーラ方程式について説明する。撮像装置の位置を3×1ベクトルT=(Tx,Ty,Tz)、回転を3×3行列Rで表す。いま行列Eを次式のように置く。
【数1】
ここで、[T]xは、次式のように表す。
【数2】
2台の撮像装置で撮影された画像上の対応点を同次座標でそれぞれx=[x,y,1]T、x'=[x',y',1]Tと表すと、エピポーラ方程式は、次式のように表せる。
【数3】
したがって、2つの画像上で対応する点xと点x'との関係を表す式となり、エピポーラ線を求めることができる。
このようにエピポーラ線は、2台の撮像装置間の相対位置姿勢を求めることができれば簡単に求めることができる。また、2台の撮像装置間の相対位置姿勢は、カメラキャリブレーションの公知技術により求めることができる。カメラキャリブレーションについての詳細な説明は省略する。
【0026】
次に、光軸の方向と視点の高さを揃えていない2台の撮像装置を用いた3次元位置算出方法について述べる。
焦点距離や主点位置等の内部パラメーターは既知であり、また撮像装置の相対位置姿勢の外部パラメーターも既知であるとする。撮像装置の内部パラメーターと外部パラメーターとを合成した行列Pを次式のように表すことができる。
【数4】
撮像装置100で撮影された画像から検出された対応点の座標をCn=[un,vn]とする。求める3次元空間の点の位置をX=[Xn,Yn,Zn]と表すと、次式のように表せる。
【数5】
λは、式8の第3行目より決まる実数である。式6を展開してX、Y、Zに関してまとめると、次式のように表せる。
【数6】
【0027】
本実施形態では、撮像装置の内部パラメーターと外部パラメーターとは、既知であるのでPは既知のパラメーターである。1つの撮像装置で撮影された画像から2つの拘束式が得られる。撮像装置110の撮像装置のパラメーターをP'とし、撮影された画像から検出された対応点の座標をC'n=[un',vn']とすると、次のように4つの拘束式が得られる。
【数7】
式10は、未知数3に対して4つの拘束式が得られる。式10を次式のようにおくと、
【数8】
Xの最小二乗階は、次式のように求めることができる。
【数9】
【0028】
これを、全ての対応点に対して計算することで、3次元位置算出部4000は、物体領域の境界線上の点である対応点の3次元座標を計測することができる。したがって、撮像装置100を基準にして求めた物体領域の3次元座標のZ座標を、求めるべき3次元位置値として出力する。
このように、撮像装置100と撮像装置110の光軸との方向を揃えず、視点の高さも揃えて固定しなくとも、現実物体の3次元位置を計測することができる。
【0029】
<実施形態3>
実施形態1では、走査線設定部2030は、画像のy軸方向に均等に走査線を設定していた。しかし、走査線上に物体領域が存在すればこれに限らない。
走査線の位置の設定を制御する手段について図14を用いて説明する。図14は、実施形態3の画像処理部2000の機能構成の一例を示す図である。図14に示すように、走査線位置制御部2035は、領域区別設定部2020からラベル付けられた分割領域の2値画像を入力し、走査線設定部2030が設定する走査線の位置を変更する。
例えば、走査線位置制御部2035の制御に基づき走査線設定部2030が、前フレームで描画された仮想物体が存在する画像領域とその周辺領域とに対して走査線を設定すれば、処理コストを軽減することができる。また、走査線位置制御部2035の制御に基づき走査線設定部2030が、前フレームで描画された仮想物体が存在する領域だけに対して、走査線の間隔の密度を上げれば、より精度の高い3次元位置計測を行うことができる。
【0030】
図15は、前フレームで描画された仮想物体が存在する領域に応じて走査線の間隔を変える処理の一例を示すフローチャートである。
ステップS2021では、走査線設定部2030は、均等間隔で走査線を設定する。
ステップS2022では、走査線位置制御部2035は、走査線上に仮想物体領域が存在するか否かで判定フラグを設定する。走査線位置制御部2035は、走査線上に仮想物体領域が存在すれば、その走査線は利用しないため判定フラグを0にする。走査線位置制御部2035は、走査線上に仮想物体領域が存在していれば、その走査線の判定フラグを1にする。
ステップS2023では、走査線位置制御部2035は、走査線の判定フラグが1の走査線が2つ連続で存在すれば、その走査線間の間に指定した数だけ走査線を追加し、走査線の判定フラグを1にする。
ステップS2024では、走査線設定部2030は、判定フラグが1の線を走査線として設定する。
以上のようにして、物体が存在しない領域の走査線は利用せず、更に、物体が存在する領域だけ走査線の密度を上げるように走査線位置を制御することで、より密に、即ち精度よく3次元位置を計測することができる。
【0031】
<変形例>
実施形態1至乃3では、画像処理部2000によって、予め登録しておいた物体色情報に基づいて領域分割を行い、2値画像を生成した。しかしながら、登録する色情報は、複数であってもよい。
このとき、領域分割部2010では、登録された複数の色情報ごとに領域を分割し、多値画像を生成すればよい。
領域区別設定部2020では、色情報ごとに識別子Li(i=1、2、、、C)を設定し、分割した領域に割り当てる。ここで、Cは、登録した色情報の総数であり、即ち、識別子の総数である。
また、実施形態1至乃3では、対応付け処理部3000で、走査線上を探索して、交点上で分割領域の識別子が0から1に変化する場合には正の符号を与え、1から0に変化する場合には負の符号を与えていた。しかし、複数の色情報に基づいて領域分割を行った場合には、交点特徴量算出部3010は、走査線上の交点近傍における識別子変化する際の、識別子Liの組を特徴量として求める。
交点特徴量リスト作成部3020は、特徴量として求めた識別子Liの組を、走査線上で並べ、リストを作成する。
一致度算出部3030は、走査線上の特徴量である識別子の組を走査し、一致するか否かに基づいて、一致度Pを求める。
以上のように処理することで、複数の色情報を有する物体領域上の点を対応付けることができ、3次元位置を計測することができる。
【0032】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0033】
上述した各実施形態によれば、画像から検出した物体領域にノイズが含まれる場合や、物体領域が凹形状のために対応点候補が複数となる場合であっても、物体の3次元位置を計測することができる。また物体領域の境界線上の点の3次元位置を、輝度情報に基づく画素パッチのパターンマッチングを行うことなく計測するため、高速に処理できる。
また上述した各実施形態によれば、画像から色情報により領域分割を行い、分割した領域に基づいて求めた特徴量によって、走査線と領域の交点を各画像間で対応付ける。そのため、似たような輝度勾配を持つ複数の対応点候補が存在する場合であっても、直接的に輝度勾配を用いて対応付ける従来例と比べて、誤対応を低減することができる。
これにより、高速、かつ、安定的に、現実物体の3次元位置を計測(算出)することができる。
更に、計測した現実物体の3次元位置情報と仮想物体の3次元位置情報を比較して、画像又は仮想物体を手前に描画することができる。即ち、現実物体と仮想物体の前後関係を正しく表現することができ、MR技術おける幾何的整合性を向上させ、違和感の少ないMR体験をユーザーに提供することができる。
【0034】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0035】
200 3次元位置計測装置
【技術分野】
【0001】
本発明は、情報処理装置、3次元位置算出方法及びプログラムに関する。
【背景技術】
【0002】
近年、複合現実感(Mixed Reality;MR)技術の研究が盛んである。MR技術は、現実空間とコンピュータによって作られる仮想空間を繋ぎ目なく融合する技術である。MR技術は、組み立て作業時に作業手順や配線の様子を重畳表示する組み立て支援、患者の体表面に体内の様子を重畳表示する手術支援等、様々な分野への応用が期待されている。
仮想物体が現実空間に実在するように利用者が感じるためには、仮想物体と現実空間との間の幾何学的な整合性が重要である。複合現実感における幾何学的な整合性には、現実空間の座標系と仮想空間の座標系とを一致させるための整合性と、現実物体と仮想物体との前後関係を正しく表現するための整合性とがある。前者の整合性を扱う問題は、複合現実感における位置合わせ問題とも呼ばれ、種々の研究報告が行われている。また後者の整合性を扱う問題は「オクルージョン問題」とも呼ばれ、特にカメラで撮影した画像に仮想物体を重畳させるビデオシースルー型のMRシステムでも重要な課題となる。本明細書では、後者のオクルージョン問題を扱う。
【0003】
現実物体と仮想物体との前後関係、即ち遮蔽(オクルージョン)を正しく表現するためには、遮蔽される現実物体又は仮想物体の3次元位置情報を求める必要がある。即ち、情報処理装置は、現実物体の3次元位置情報と仮想物体の3次元位置情報とを比較し、現実物体が手前になる場合は、撮影した画像を手前に表示する。また、情報処理装置は、仮想物体が手前にある場合は、仮想物体を手前に表示するという処理をすればよい。この処理において、仮想物体は既知の3次元モデルがあるため、情報処理装置は、視点に対する3次元位置を算出可能である。しかし、現実物体を撮影しただけでは、現実物体の視点に対する3次元位置は未知であるため、情報処理装置は、現実物体の3次元位置を求めることが必要となる。
【0004】
以下では、現実物体の3次元位置を計測する技術について述べる。一般的な3次元位置計測技術では、ステレオカメラで撮影した画像の注目点に対して、エピポーラ拘束と画素パッチの輝度情報とに基づいてマッチングを行う。まず、情報処理装置は、ステレオカメラの一方の画像における注目点に対して、他方の画像におけるエピポーラ線上の点を対応点候補とする。次に、情報処理装置は、対応点候補として残った各点の周辺の画素パッチに対して、注目点周辺の画素パッチとのパターンマッチングを行うことにより、精度よく対応点を求めることができる(非特許文献1、非特許文献2)。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】田村,"コンピュータ画像処理",オーム社,2002.
【非特許文献2】佐藤,"コンピュータビジョン−視覚の幾何学−",コロナ社,1999.
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的な3次元位置計測技術であるステレオマッチングの従来技術では、画素値の相関に基づくパターンマッチングによる対応付けの計算量の多さから、リアルタイム処理ができない場面があった。
【0007】
本発明はこのような問題点に鑑みなされたもので、被写体の3次元位置を高速、かつ、安定的に算出することを目的とする。
【課題を解決するための手段】
【0008】
そこで、本発明は、少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割手段と、前記各画像上に設定された走査線と、前記領域分割手段で分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出手段と、前記交点特徴量算出手段で算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付け手段と、前記対応付け手段で求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出手段と、を有する。
【発明の効果】
【0009】
本発明によれば、被写体の3次元位置を高速、かつ、安定的に算出することができる。
【図面の簡単な説明】
【0010】
【図1】撮像装置の位置及び3次元位置計測装置のハードウェア構成の一例を示す図である。
【図2】3次元位置計測装置の機能構成等の一例を示す図である。
【図3】実施形態1の画像処理部の機能構成の一例を示す図である。
【図4】対応付け処理部の機能構成の一例を示す図である。
【図5】画像処理部の処理の一例を示すフローチャートである。
【図6】ノイズを含んだ領域分割結果の2値画像の一例を示す図である。
【図7】分割領域の2値画像に走査線を重ねて表示した一例を示す図である。
【図8】対応付け処理部の処理の一例を示すフローチャートである。
【図9】走査線上の交点の特徴量の求め方を説明する図である。
【図10】交点近傍の特徴量を求め、分割領域に表示した一例を示す図である。
【図11】分割領域の境界線と走査線との交点から、走査線Jを取り出した一例を示す図である。
【図12】走査線上で対応点を求める処理の一例を説明するための図である。
【図13】ステレオ計測の一例を図である。
【図14】実施形態3の画像処理部の機能構成の一例を示す図である。
【図15】前フレームで描画された仮想物体が存在する領域に応じて走査線の間隔を変える処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面に基づいて説明する。
【0012】
<実施形態1>
本実施形態では、光軸の方向を平行に揃え、また、視点の高さを揃えた2台の撮像装置で撮影した画像に基づいて、撮像装置に対する被写体の一例である現実物体の3次元位置を計測する3次元位置計測装置を例に3次元位置算出方法等を説明する。
図1は、撮像装置の位置及び3次元位置計測装置200のハードウェア構成の一例を示す図である。図1に示した3次元位置計測装置200のハードウェア構成はパーソナルコンピュータ(コンピュータ)の構成と同等である。なお、3次元位置計測装置200は、情報処理装置の一例である。3次元位置計測装置200には、画像取り込み器502、記憶媒体503が接続されている。画像取り込み器502は、撮像装置100及び110で撮影(撮像)された画像をコンピュータ内に取り込むものであり、画像取得部1000に対応する。画像取り込み器502は、例えばビデオキャプチャボード等である。画像取り込み器502は、カメラ(撮像装置)で撮影された画像をコンピュータ内に取り込むものであれば何でもよい。CPU501は、記憶媒体503又はROM504又はRAM505、不図示の外部記憶装置等に保存されているプログラムを実行する。CPU501がプログラムを実行することにより、画像処理部2000、対応付け処理部3000、3次元位置算出部4000の各機能が実現される。夫々の処理部は、記憶媒体503に情報を保存、若しくは情報の読み出しを行う。
【0013】
図2は、3次元位置計測装置200の機能構成等の一例を示す図である。
図2に示すように、3次元位置計測装置200は、画像取得部1000、画像処理部2000、対応付け処理部3000、3次元位置算出部4000を含む。3次元位置計測装置200は、撮像装置100及び撮像装置110によって撮影された画像に基づいて現実物体の3次元位置を計測(算出)し、3次元位置情報を出力する。
まず、撮像装置100及び撮像装置110は、例えばビデオカメラ等であり、現実物体150が存在するシーンを同時に撮影する。本実施形態では、撮像装置100の焦点距離やレンズ歪み係数等のカメラ内部パラメーターは予め公知の方法で求めておき、既知であるとする。また、撮像装置100及び撮像装置110は、光軸の方向を平行に揃えると共に視点の高さを揃え固定するため、撮像装置間の相対位置姿勢のカメラ外部パラメーターは既知であるとする。
画像取得部1000は、撮像装置100及び撮像装置110によって撮影された画像をコンピュータ内に取り込む。画像取得部1000は、例えば、PCに設置されたビデオキャプチャカード等である。また、本実施形態では、画像取得部1000が、取得した画像に対してレンズ歪み補正を行うことで、画像の歪みはないものとして扱う。
【0014】
次に、画像処理部2000について説明する。図3は、実施形態1の画像処理部2000の機能構成の一例を示す図である。図3に示すように、画像処理部2000は、領域分割部2010、領域区別設定部2020、走査線設定部2030、交点検出部2040、交点情報保持部2050を含む。
領域分割部2010は、画像取得部1000によって取得された画像から、色情報に基づいて領域分割を行う。より具体的に説明すると、領域分割部2010は、予め設定された現実物体150の色情報に含まれる領域とそれ以外の領域とに分割する。
領域区別設定部2020は、分割された領域にラベル付けを行うことで領域を区別する。より具体的に説明すると、領域区別設定部2020は、領域の面積の大きい順にラベルを付け、閾値以下の面積の領域はノイズとして除去する。領域区別設定部2020は、ノイズ除去を行い、残った領域の画像とラベル情報とを交点検出部2040へ出力する。
走査線設定部2030は、撮像装置100と撮像装置110とによって撮影された各画像に対応する走査線の走査線情報を設定し、走査線情報を交点検出部2040へ出力する。
交点検出部2040は、領域区別設定部2020でラベル付けされた分割領域と走査線設定部2030で設定された走査線情報とを入力として、分割領域の境界線と走査線との交点を検出する。ここで、交点の検出とは、2次元画像上での画像座標を求めることである。交点検出部2040は、検出した交点の画像座標と、前記交点の近傍の分割領域のラベルと、を交点情報保持部2050へ出力する。ここで、交点の近傍の分割領域とは、前記交点より所定の範囲内の分割領域である。
交点情報保持部2050は、交点検出部2040から入力された交点の画像座標と、分割領域のラベルと、を交点情報として保持する。そして、交点情報保持部2050は、交点情報(又は交点の画像座標)と、ラベル付けされた分割領域の画像とを、対応付け処理部3000に出力する。
【0015】
次に、対応付け処理部3000について説明する。図4は、対応付け処理部3000の機能構成の一例を示す図である。図4に示すように、対応付け処理部3000は、交点特徴量算出部3010、交点特徴量リスト作成部3020、一致度算出部3030、第一の対応点判定部3040、領域対応付け部3050、第二の対応点判定部3060を含む。また、対応付け処理部3000は、交点特徴量リスト分割部3070、第三の対応点判定部3080を含む。
交点特徴量算出部3010は、画像処理部2000から、交点の画像座標と、ラベル付けされた分割領域の画像と、を入力する。交点特徴量算出部3010は、分割領域の画像から、交点近傍における走査線上の特徴量をラベルに基づいて求め、交点特徴量リスト作成部3020へ出力する。
交点特徴量リスト作成部3020は、交点特徴量算出部3010から分割領域の特徴量を入力し、走査線上に交点の特徴量を並べた交点特徴量リストを作成する。交点特徴量リスト作成部3020は、作成した交点特徴量リストを一致度算出部3030へ出力する。
一致度算出部3030は、撮像装置100で撮影された画像における交点特徴量リストと、第二の撮像装置110で撮影した画像における交点特徴量リストと、の比較を行い、一致度Pを算出する。一致度算出部3030は、算出した一致度Pを第一の対応点判定部3040へ出力する。
第一の対応点判定部3040は、一致度算出部3030から交点特徴量リストの一致度Pを入力し、交点特徴量リストの一致度に基づいて対応点の判定を行う。第一の対応点判定部3040は、対応点の画像座標の組を対応点情報として領域対応付け部3050へ出力する。
【0016】
領域対応付け部3050は、第一の対応点判定部3040から対応点情報を入力する。領域対応付け部3050は、対応点が存在する分割領域の境界線を対応付け、分割領域のラベルを境界線の対応情報として第二の対応点判定部3060へ出力する。
第二の対応点判定部3060は、領域対応付け部3050から分割領域の境界線の対応情報を入力する。第二の対応点判定部3060は、領域対応付け部3050で更新された境界線と走査線との交点を、新たな対応点として判定し、対応点情報を交点特徴量リスト分割部3070へ出力する。
交点特徴量リスト分割部3070は、第二の対応点判定部3060から対応点情報を入力し、対応点に基づいて交点特徴量リストを分割する。交点特徴量リスト分割部3070は、分割した交点特徴量リストを第三の対応点判定部3080へ出力する。
第三の対応点判定部3080は、交点特徴量リスト分割部3070から分割した交点特徴量リストを入力する。第三の対応点判定部3080は、分割した交点特徴量リストの一致度に基づいて、対応点の判定を行い、対応点情報を3次元位置算出部4000に出力する。
3次元位置算出部4000は、対応付け処理部3000から対応点情報を入力し、分割領域の撮像装置に対する3次元位置を算出する。3次元位置算出部4000は、算出した3次元位置情報を出力する。
【0017】
ここで、画像処理部2000の処理の詳細について述べる。図5は、画像処理部2000の処理の一例を示すフローチャートである。
ステップS2011では、領域分割部2010は、予め登録された、被写体となる物体の色情報(物体色情報)を入力する。
ステップS2012では、領域分割部2010は、撮像装置100、及び撮像装置110によって撮影した画像の各画素の色情報と、物体色情報と、を比較する。
ステップS2013では、領域分割部2010は、各画素の色情報が物体色情報に含まれるならば1、それ以外なら0とする。
ステップS2014では、領域分割部2010は、色情報の比較結果に基づいて2値画像を生成する。ここでは、入力した物体色情報に含まれるならば白、それ以外の領域を黒とする。
ステップS2015では、領域区別設定部2020は、2値画像のラベリングを行う。
ステップS2016では、領域区別設定部2020は、ラベリング後の画像から、設定した閾値よりも面積の小さい領域をノイズとして除去する。
上記の方法では、物体領域を検出するために色情報によって領域分割している。そのため、影になる部分や、同系色の領域がある場合には、ステップS2016で行うノイズ処理では、誤検出やノイズを全て取り除くことができない。図6は、ノイズを含んだ領域分割結果の2値画像の一例を示す図である。
領域分割で用いられる色情報は、多次元色空間における座標値として記述することができる。例えば、RGB、YIQ、YCbCr、YUV、HSV、Luv、Lab等様々な種類がある。3次元位置計測装置200は、対象とする被写体の色彩特性に合わせて、領域分割で用いられる色情報を選択可能に構成してもよい。また、領域を分割する方法は上記に限るものではなく、領域分割部2010は、色情報を用いる何れの公知の方法で行ってもよい。
【0018】
ステップS2017では、走査線設定部2030は、走査線情報を設定する。図7は、分割領域の2値画像に走査線300を重ねて表示した一例を示す図である。走査線情報とは、傾きや切片等の走査線の式、及び走査線の間隔である。本実施形態では、撮像装置100と撮像装置110とは、光軸の方向を平行に揃えると共に視点の高さを揃えて固定されていることを前提としており、かつ、画像の歪みはないものとして扱う。そのため、走査線設定部2030は、画像面の縦軸をy軸、横軸をx軸とすると、x軸方向の線分をy軸方向に均等間隔で並べた走査線を設定する。なお、走査線設定部2030は、走査線情報を設定することで走査線を設定するが、以下では説明の簡略化のため、単に走査線を設定するという。撮像装置100で検出された現実物体の画像座標は、撮像装置110で撮影された画像の走査線上で検出されるという性質を持つ。一方で、撮像装置110で検出された現実物体の画像座標は、撮像装置100で撮影された画像の走査線上で検出される。
ステップS2018では、交点検出部2040は、分割領域の境界線と走査線との交点を検出し、画像座標を求める。
ステップS2019では、交点情報保持部2050は、交点の画像座標と、分割領域の2値画像のラベルと、をセットにして保持し、対応付け処理部3000へ出力する。
【0019】
次に、対応付け処理部3000の処理の詳細について述べる。図8は、対応付け処理部3000の処理の一例を示すフローチャートである。
ステップS3011では、交点特徴量算出部3010は、交点の画像座標と分割領域の2値画像とを入力する。
ステップS3012では、交点特徴量算出部3010は、分割領域の2値画像から、走査線上における交点近傍の特徴量を求める。交点特徴量算出部3010は、入力した色情報内の領域として検出されている部分が1、それ以外の未検出部分が0として、図9に示すように、走査線上を探索して、交点上で分割領域のラベルが0から1に変化する場合には正の符号を与える。図9は、走査線上の交点の特徴量の求め方を説明する図である。一方、交点特徴量算出部3010は、1から0に変化する場合には負の符号を与える。即ち、正の符号の場合、走査線上で分割領域の左側であることを意味し、負の符号の場合は、走査線上で分割領域の右側であることを意味する。本実施形態では、この符号を特徴量とする。図10は、交点近傍の特徴量を求め、分割領域に表示した一例を示す図である。ここで、図10において、○は正の符号を表し、△は負の符号を表す。
ステップS3013では、交点特徴量リスト作成部3020は、ステップS3012で求められた特徴量を走査線上で並べ、走査線ごとに特徴量リストを作成する。
ステップS3014では、一致度算出部3030は、撮像装置100及び撮像装置110で撮影した夫々の画像での特徴量リストの一致度Pを算出する。特徴量リストの特徴量を左側から順にスキャンし、特徴量の総数をそれぞれS100、S110とし、一致した特徴量の総数をCとすると、一致度算出部3030は、一致度Pを、次のように求める。
P=C/S110(S100<=S110のとき)
P=C/S100(S110<S100)
一致度の算出方法は、求めた特徴量に基づいて算出するものであれば、これに限るものではない。
【0020】
ステップS3015では、第一の対応点判定部3040は、一致度Pが、閾値T以上であれば、対応点であると判定する。
ステップS3016では、領域対応付け部3050は、対応点であると判定された交点が存在する分割領域を物体領域とし、その境界ラベルを、撮像装置100及び撮像装置110で撮影した夫々の画像で対応付ける。
ステップS3017では、第二の対応点判定部3060は、ステップS3016で対応付けられた物体領域の境界線と走査線との交点で、かつ、まだ対応点と判定されていない交点を対応点として判定する。
ステップS3018では、交点特徴量リスト分割部3070は、走査線上の交点近傍の特徴量をリスト化した交点特徴量リストを、ステップS3017で対応付けた対応点の位置で分割する。図11は、分割領域の境界線と走査線との交点から、走査線Jを取り出した一例を示す図である。ここで、図中のC1、C2、及びC1'、C2'はステップS3017で対応付けられた対応点である。交点特徴量リスト分割部3070は、走査線J上の交点近傍の特徴量をリスト化した交点特徴量リストを、対応点C1及びC2の位置で分割する。これにより撮像装置100で撮影した画像においてJ1、J2、J3、撮像装置100で撮影した画像においてJ1'、J2'、J3'のように夫々3つに分割することができる。
【0021】
ステップS3018では、交点特徴量リスト分割部3070は、分割した交点特徴量リストの夫々の一致度を算出する。例えば、交点特徴量リスト分割部3070は、図11におけるJ1とJ1'、J2とJ2'、J3とJ3'、の一致度を、一致度算出部3030と同様の処理を行うことで算出する。
ステップS3019では、第三の対応点判定部3080は、ステップS3018で算出された一致度に基づいて、まだ対応点であると判定されていない交点を新たな対応点として判定する。図12は、走査線上で対応点を求める処理の一例を説明するための図である。図12では、J1とJ1'の部分の交点が一致するため、例えば、第三の対応点判定部3080は、対応点として判定する。
ステップS3020では、第三の対応点判定部3080は、撮像装置100で撮影された画像における対応点Cn(n=1,2,,,N)と、撮像装置110で撮影された画像における対応点C'n(n=1,2,,,N)と、の画像座標の組を3次元位置算出部4000へ出力する。ここでNは、対応点の組の総数である。
【0022】
次に3次元位置算出部4000の処理の詳細について説明する。
対応付け処理部3000から得た対応点に基づいて3次元位置を計測する。図13は、ステレオ計測の一例を図である。本実施形態では、図13に示すように、2台の撮像装置は光軸の方向を平行に揃えると共に視点の高さを揃えて固定されている。そのため、3次元位置算出部4000は、平行ステレオ、又はベースラインステレオと呼ばれる公知技術を用いて3次元位置を算出する。
3次元位置算出部4000は、図13に示すように座標系をとり、現実物体の点P(X,Y,Z)がそれぞれ左右の画像上の(xl,yl)、(xr,yr)に像を結べば、次式によって3次元位置(X、Y、Z)を求めることができる。
X=b(xl+xr)/2d ・・・式1
Y=by/d ・・・式2
Z=bf/d ・・・式3
但し、fは、撮像装置の焦点距離である。bは、撮像装置間の距離(基線長)である。dは、視差と呼ばれd=xl−xrである。
3次元位置算出部4000は、算出した現実物体の3次元位置値を出力する。
【0023】
上記で説明したように、本実施形態に係る3次元位置計測装置200は、画像から検出した物体領域にノイズが含まれる場合や、物体領域が凹形状になるために対応点候補が複数となる場合であっても、現実物体の3次元位置を計測することができる。また、本実施形態に係る3次元位置計測装置200によれば、物体領域の境界線上の点の3次元位置を、画素パッチのパターンマッチングを行うことなく計測するため、高速に処理することができる。更に、本実施形態に係る3次元位置計測装置200によれば、例えば、3段階の対応点判定部と、領域対応付け部と、によって、対応点を精度よく、かつ、安定して検出することができる。したがって、3次元位置計測を高精度、かつ、高速に行うことができる。
本実施形態に係る3次元位置計測装置200をヘッドマンテッドディスプレイ又はハンドヘルドディスプレイに装着し、MR技術に応用する。すると、このMR技術では、現実物体の3次元位置情報と、仮想物体の3次元位置情報と、を比較して、画像又は仮想物体を手前に描画することができる。
ここで、ヘッドマウンテッドディスプレイとは、頭部に装着するディスプレイのことであり、ハンドヘルドディスプレイとは、手持ちのディスプレイである。これらは、複合現実感を体験する際に一般的によく利用される。ヘッドマウンテッドディスプレイやハンドヘルドディスプレイに撮像装置を装着する場合には、ディスプレイの光軸と、撮像装置の光軸と、を一致させることが望ましい。このようにして、手等の物体領域の奥行きを計測することで複合現実感における、現実物体と仮想物体の前後関係を正しく表現することができ、ユーザーは正しく知覚することができる。
以上のように、本実施形態に係る3次元位置計測装置200は、MR技術おける幾何的整合性を向上させ、違和感の少ないMR体験をユーザーに提供することができる。なお、本実施形態では、現実物体として人間の手の3次元位置を計測(算出)する例を用いて処理を説明したが、このことに限定されるものではない。
【0024】
<実施形態2>
実施形態1では、撮像装置100と撮像装置110とは、光軸の方向を平行に揃えると共に視点の高さを揃えて固定されていることを前提として説明した。しかしながら、撮像装置100と撮像装置110とが同じ物体を撮影できれば、撮像装置の配置はこれに限るものではない。
光軸の方向を平行に揃えると共に視点の高さを揃えて固定していない場合(水平に揃え固定していない場合)、走査線は、平行ステレオのように画像のx軸に平行となる線分にならない。そこで、本実施形態では、3次元位置計測装置200は、一般的にエピポーラ線と呼ばれる線を走査線として設定する。
【0025】
ここで簡単にエピポーラ線について説明する。例えば、2台の撮影装置の視点をそれぞれC,C'とし、3次元空間中のある点をPとする。すると、3次元位置計測装置200は、このC,C',Pの3点で空間中に1つの平面Σを定義することができる。この平面をエピポーラ平面と呼び、エピポーラ平面と画像面とが交差してできる線分をエピポーラ線と呼ぶ。エピポーラ線は、エピポーラ方程式より求めることができる。
エピポーラ方程式について説明する。撮像装置の位置を3×1ベクトルT=(Tx,Ty,Tz)、回転を3×3行列Rで表す。いま行列Eを次式のように置く。
【数1】
ここで、[T]xは、次式のように表す。
【数2】
2台の撮像装置で撮影された画像上の対応点を同次座標でそれぞれx=[x,y,1]T、x'=[x',y',1]Tと表すと、エピポーラ方程式は、次式のように表せる。
【数3】
したがって、2つの画像上で対応する点xと点x'との関係を表す式となり、エピポーラ線を求めることができる。
このようにエピポーラ線は、2台の撮像装置間の相対位置姿勢を求めることができれば簡単に求めることができる。また、2台の撮像装置間の相対位置姿勢は、カメラキャリブレーションの公知技術により求めることができる。カメラキャリブレーションについての詳細な説明は省略する。
【0026】
次に、光軸の方向と視点の高さを揃えていない2台の撮像装置を用いた3次元位置算出方法について述べる。
焦点距離や主点位置等の内部パラメーターは既知であり、また撮像装置の相対位置姿勢の外部パラメーターも既知であるとする。撮像装置の内部パラメーターと外部パラメーターとを合成した行列Pを次式のように表すことができる。
【数4】
撮像装置100で撮影された画像から検出された対応点の座標をCn=[un,vn]とする。求める3次元空間の点の位置をX=[Xn,Yn,Zn]と表すと、次式のように表せる。
【数5】
λは、式8の第3行目より決まる実数である。式6を展開してX、Y、Zに関してまとめると、次式のように表せる。
【数6】
【0027】
本実施形態では、撮像装置の内部パラメーターと外部パラメーターとは、既知であるのでPは既知のパラメーターである。1つの撮像装置で撮影された画像から2つの拘束式が得られる。撮像装置110の撮像装置のパラメーターをP'とし、撮影された画像から検出された対応点の座標をC'n=[un',vn']とすると、次のように4つの拘束式が得られる。
【数7】
式10は、未知数3に対して4つの拘束式が得られる。式10を次式のようにおくと、
【数8】
Xの最小二乗階は、次式のように求めることができる。
【数9】
【0028】
これを、全ての対応点に対して計算することで、3次元位置算出部4000は、物体領域の境界線上の点である対応点の3次元座標を計測することができる。したがって、撮像装置100を基準にして求めた物体領域の3次元座標のZ座標を、求めるべき3次元位置値として出力する。
このように、撮像装置100と撮像装置110の光軸との方向を揃えず、視点の高さも揃えて固定しなくとも、現実物体の3次元位置を計測することができる。
【0029】
<実施形態3>
実施形態1では、走査線設定部2030は、画像のy軸方向に均等に走査線を設定していた。しかし、走査線上に物体領域が存在すればこれに限らない。
走査線の位置の設定を制御する手段について図14を用いて説明する。図14は、実施形態3の画像処理部2000の機能構成の一例を示す図である。図14に示すように、走査線位置制御部2035は、領域区別設定部2020からラベル付けられた分割領域の2値画像を入力し、走査線設定部2030が設定する走査線の位置を変更する。
例えば、走査線位置制御部2035の制御に基づき走査線設定部2030が、前フレームで描画された仮想物体が存在する画像領域とその周辺領域とに対して走査線を設定すれば、処理コストを軽減することができる。また、走査線位置制御部2035の制御に基づき走査線設定部2030が、前フレームで描画された仮想物体が存在する領域だけに対して、走査線の間隔の密度を上げれば、より精度の高い3次元位置計測を行うことができる。
【0030】
図15は、前フレームで描画された仮想物体が存在する領域に応じて走査線の間隔を変える処理の一例を示すフローチャートである。
ステップS2021では、走査線設定部2030は、均等間隔で走査線を設定する。
ステップS2022では、走査線位置制御部2035は、走査線上に仮想物体領域が存在するか否かで判定フラグを設定する。走査線位置制御部2035は、走査線上に仮想物体領域が存在すれば、その走査線は利用しないため判定フラグを0にする。走査線位置制御部2035は、走査線上に仮想物体領域が存在していれば、その走査線の判定フラグを1にする。
ステップS2023では、走査線位置制御部2035は、走査線の判定フラグが1の走査線が2つ連続で存在すれば、その走査線間の間に指定した数だけ走査線を追加し、走査線の判定フラグを1にする。
ステップS2024では、走査線設定部2030は、判定フラグが1の線を走査線として設定する。
以上のようにして、物体が存在しない領域の走査線は利用せず、更に、物体が存在する領域だけ走査線の密度を上げるように走査線位置を制御することで、より密に、即ち精度よく3次元位置を計測することができる。
【0031】
<変形例>
実施形態1至乃3では、画像処理部2000によって、予め登録しておいた物体色情報に基づいて領域分割を行い、2値画像を生成した。しかしながら、登録する色情報は、複数であってもよい。
このとき、領域分割部2010では、登録された複数の色情報ごとに領域を分割し、多値画像を生成すればよい。
領域区別設定部2020では、色情報ごとに識別子Li(i=1、2、、、C)を設定し、分割した領域に割り当てる。ここで、Cは、登録した色情報の総数であり、即ち、識別子の総数である。
また、実施形態1至乃3では、対応付け処理部3000で、走査線上を探索して、交点上で分割領域の識別子が0から1に変化する場合には正の符号を与え、1から0に変化する場合には負の符号を与えていた。しかし、複数の色情報に基づいて領域分割を行った場合には、交点特徴量算出部3010は、走査線上の交点近傍における識別子変化する際の、識別子Liの組を特徴量として求める。
交点特徴量リスト作成部3020は、特徴量として求めた識別子Liの組を、走査線上で並べ、リストを作成する。
一致度算出部3030は、走査線上の特徴量である識別子の組を走査し、一致するか否かに基づいて、一致度Pを求める。
以上のように処理することで、複数の色情報を有する物体領域上の点を対応付けることができ、3次元位置を計測することができる。
【0032】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0033】
上述した各実施形態によれば、画像から検出した物体領域にノイズが含まれる場合や、物体領域が凹形状のために対応点候補が複数となる場合であっても、物体の3次元位置を計測することができる。また物体領域の境界線上の点の3次元位置を、輝度情報に基づく画素パッチのパターンマッチングを行うことなく計測するため、高速に処理できる。
また上述した各実施形態によれば、画像から色情報により領域分割を行い、分割した領域に基づいて求めた特徴量によって、走査線と領域の交点を各画像間で対応付ける。そのため、似たような輝度勾配を持つ複数の対応点候補が存在する場合であっても、直接的に輝度勾配を用いて対応付ける従来例と比べて、誤対応を低減することができる。
これにより、高速、かつ、安定的に、現実物体の3次元位置を計測(算出)することができる。
更に、計測した現実物体の3次元位置情報と仮想物体の3次元位置情報を比較して、画像又は仮想物体を手前に描画することができる。即ち、現実物体と仮想物体の前後関係を正しく表現することができ、MR技術おける幾何的整合性を向上させ、違和感の少ないMR体験をユーザーに提供することができる。
【0034】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0035】
200 3次元位置計測装置
【特許請求の範囲】
【請求項1】
少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割手段と、
前記各画像上に設定された走査線と、前記領域分割手段で分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出手段と、
前記交点特徴量算出手段で算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付け手段と、
前記対応付け手段で求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出手段と、
を有する情報処理装置。
【請求項2】
前記各画像上に走査線を設定する走査線設定手段を更に有する請求項1記載の情報処理装置。
【請求項3】
前記撮像装置は、ヘッドマンテッドディスプレイ又はハンドヘルドディスプレイに装着された2台の撮像装置である請求項1又は2記載の情報処理装置。
【請求項4】
前記撮像装置は、光軸の方向を平行に揃えると共に視点の高さを揃えた2台の撮像装置であって、
前記走査線設定手段は、前記2台の撮像装置で撮像された前記被写体の各画像に、前記2台の撮像装置を結ぶ線分に対して平行に配した複数の線分である走査線を設定する請求項2記載の情報処理装置。
【請求項5】
前記走査線は、エピポーラ線である請求項2記載の情報処理装置。
【請求項6】
前記領域分割手段で分割された各画像の領域に応じて、前記走査線設定手段で設定される走査線の位置を制御する走査線位置制御手段を更に有する請求項2記載の情報処理装置。
【請求項7】
前記対応付け手段は、前記交点特徴量算出手段で算出された前記交点の特徴量の一致度を算出し、算出した一致度に基づいて前記各画像の間の対応点を求める請求項1乃至6何れか1項記載の情報処理装置。
【請求項8】
前記対応付け手段は、前記領域分割手段で分割された領域に基づいて前記走査線を分割し、分割した走査線上で前記交点の特徴量に基づいて前記各画像の間の対応点を求める請求項1乃至7何れか1項記載の情報処理装置。
【請求項9】
情報処理装置が実行する3次元位置算出方法であって、
少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割ステップと、
前記各画像上に設定された走査線と、前記領域分割ステップで分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出ステップと、
前記交点特徴量算出ステップで算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付けステップと、
前記対応付けステップで求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出ステップと、
を含む3次元位置算出方法。
【請求項10】
コンピュータに、
少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割ステップと、
前記各画像上に設定された走査線と、前記領域分割ステップで分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出ステップと、
前記交点特徴量算出ステップで算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付けステップと、
前記対応付けステップで求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出ステップと、
を実行させるプログラム。
【請求項1】
少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割手段と、
前記各画像上に設定された走査線と、前記領域分割手段で分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出手段と、
前記交点特徴量算出手段で算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付け手段と、
前記対応付け手段で求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出手段と、
を有する情報処理装置。
【請求項2】
前記各画像上に走査線を設定する走査線設定手段を更に有する請求項1記載の情報処理装置。
【請求項3】
前記撮像装置は、ヘッドマンテッドディスプレイ又はハンドヘルドディスプレイに装着された2台の撮像装置である請求項1又は2記載の情報処理装置。
【請求項4】
前記撮像装置は、光軸の方向を平行に揃えると共に視点の高さを揃えた2台の撮像装置であって、
前記走査線設定手段は、前記2台の撮像装置で撮像された前記被写体の各画像に、前記2台の撮像装置を結ぶ線分に対して平行に配した複数の線分である走査線を設定する請求項2記載の情報処理装置。
【請求項5】
前記走査線は、エピポーラ線である請求項2記載の情報処理装置。
【請求項6】
前記領域分割手段で分割された各画像の領域に応じて、前記走査線設定手段で設定される走査線の位置を制御する走査線位置制御手段を更に有する請求項2記載の情報処理装置。
【請求項7】
前記対応付け手段は、前記交点特徴量算出手段で算出された前記交点の特徴量の一致度を算出し、算出した一致度に基づいて前記各画像の間の対応点を求める請求項1乃至6何れか1項記載の情報処理装置。
【請求項8】
前記対応付け手段は、前記領域分割手段で分割された領域に基づいて前記走査線を分割し、分割した走査線上で前記交点の特徴量に基づいて前記各画像の間の対応点を求める請求項1乃至7何れか1項記載の情報処理装置。
【請求項9】
情報処理装置が実行する3次元位置算出方法であって、
少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割ステップと、
前記各画像上に設定された走査線と、前記領域分割ステップで分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出ステップと、
前記交点特徴量算出ステップで算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付けステップと、
前記対応付けステップで求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出ステップと、
を含む3次元位置算出方法。
【請求項10】
コンピュータに、
少なくとも2つの異なる視点から被写体を撮像する撮像装置で撮像された前記被写体の各画像の色情報に基づいて各画像を複数の領域に分割する領域分割ステップと、
前記各画像上に設定された走査線と、前記領域分割ステップで分割された各画像の領域の境界線と、の交点の近傍の領域に基づいて、前記交点の特徴量を算出する交点特徴量算出ステップと、
前記交点特徴量算出ステップで算出された前記交点の特徴量に基づいて前記各画像の間の対応点を求める対応付けステップと、
前記対応付けステップで求められた前記対応点の視点に対する3次元位置を算出する3次元位置算出ステップと、
を実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−13514(P2012−13514A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−149713(P2010−149713)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願日】平成22年6月30日(2010.6.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]