JP2018132319A - 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体 - Google Patents
情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体 Download PDFInfo
- Publication number
- JP2018132319A JP2018132319A JP2017024012A JP2017024012A JP2018132319A JP 2018132319 A JP2018132319 A JP 2018132319A JP 2017024012 A JP2017024012 A JP 2017024012A JP 2017024012 A JP2017024012 A JP 2017024012A JP 2018132319 A JP2018132319 A JP 2018132319A
- Authority
- JP
- Japan
- Prior art keywords
- point group
- information processing
- processing apparatus
- fitting
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
【課題】点群を削減したモデルフィッティングにおいてジッタの発生を軽減することができる情報処理装置を提供する。【解決手段】情報処理装置100は、3次元操作空間を時系列に従って撮像した複数の撮像結果に基づいて、この空間に存在する物体(例えば、ユーザの手)を検出する物体検出部(123)、物体の表面を示す複数の3次元点群を第1点群として取得する点群取得部(124)を有する。また、第1点群の少なくとも一部に基づいて生成された複数の3次元点群である第2点群に対して、所定の3次元形状モデルのモデルフィッティングを行うモデルフィッティング部(125)、先行する撮像結果に基づいて3次元形状モデルのフィッティングが既に行われている場合、このフィッティングに用いた第2点群の少なくとも一部と、撮像結果から取得された第1点群の少なくとも一部と、に基づいて第2点群を生成する点群取得部(124)を有する。【選択図】図1
Description
本発明は、3次元点群に3次元形状モデルを当てはめるモデルフィッティング技術に関する。
MR(Mixed Reality:仮想現実)システムにおいては、手指に特別なデバイスを装着することなく手指を用いて直観的に仮想物体を操作することが求められる場合がある。
その場合には、例えば非接触型のセンサ等を用いて手指の関節や骨格の位置及び姿勢(以下、位置姿勢と称す)、あるいは手指の表面情報などをリアルタイムで推定する手指スケルトン推定を行うことになる。
手指スケルトン推定では、位置及び姿勢を固定した距離画像センサ(デプスセンサとも称す)1台から観測可能(撮像可能)な範囲の手指の表面を観測する。そして、距離画像センサを介して取得した3次元点群(以下、点群とも称す)に対して、手の3次元形状モデルを当てはめるモデルフィッティング技術が用いられることが多い。
その場合には、例えば非接触型のセンサ等を用いて手指の関節や骨格の位置及び姿勢(以下、位置姿勢と称す)、あるいは手指の表面情報などをリアルタイムで推定する手指スケルトン推定を行うことになる。
手指スケルトン推定では、位置及び姿勢を固定した距離画像センサ(デプスセンサとも称す)1台から観測可能(撮像可能)な範囲の手指の表面を観測する。そして、距離画像センサを介して取得した3次元点群(以下、点群とも称す)に対して、手の3次元形状モデルを当てはめるモデルフィッティング技術が用いられることが多い。
ここで、リアルタイム性が求められる手指スケルトン推定では、距離画像センサが観測して取得した3次元点群を全て用いてモデルフィッティングを行う場合、計算量が多くなってしまいリアルタイム性が損なわれてしまう、という問題がある。
この問題に対して、例えば3次元点群に対してランダムサンプリングを行うことで計算量を減らしてモデルフィッティングを行う、つまり点群を削減したモデルフィッティング技術がある。また、特許文献1では、等間隔に3次元点群を間引くことで全体の計算量を減らすことができる技術が開示されている。
この問題に対して、例えば3次元点群に対してランダムサンプリングを行うことで計算量を減らしてモデルフィッティングを行う、つまり点群を削減したモデルフィッティング技術がある。また、特許文献1では、等間隔に3次元点群を間引くことで全体の計算量を減らすことができる技術が開示されている。
しかしながら、これらの先行技術を手指スケルトン推定に適用した場合、毎フレームごとに異なる3次元点群に対してモデルフィッティングを行うことになる。そのため、ジッタ(信号の時間的なズレや揺らぎなど)が多く発生してしまうという課題がある。
また、ジッタが多く発生する場合、仮想物体との接触判定の精度が低下してしまいユーザの直観的な操作が妨げられてしまう、という問題がある。
また、ジッタが多く発生する場合、仮想物体との接触判定の精度が低下してしまいユーザの直観的な操作が妨げられてしまう、という問題がある。
本発明は上記課題を鑑みたものであり、点群を削減したモデルフィッティングであってもジッタの発生を軽減することができる情報処理装置を提供することを、主たる目的とする。
本発明に係る情報処理装置は、所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する検出手段と、前記物体の表面を示す複数の3次元点群を第1点群として取得する取得手段と、前記第1点群の少なくとも一部に基づいて生成された複数の3次元点群である第2点群に対して、所定の3次元形状モデルの当てはめを行う当てはめ手段と、先行して前記3次元形状モデルの当てはめが行われている場合、この当てはめに用いた第2点群の少なくとも一部と、前記撮像結果から取得された第1点群の少なくとも一部と、に基づいて前記第2点群を生成する生成手段と、を有することを特徴とする。
本発明によれば、点群を削減したモデルフィッティングであってもジッタの発生を軽減することができる。
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。
[第1実施形態]
図1は、本実施形態に係る情報処理装置を含んで構成されるMR(Mixed Reality:仮想現実)システムSの概要を説明するための図である。MRシステムを例に説明するが、本件は、MRシステムへの適用に限らず、手指スケルトン推定をするシステムに適用可能である。
図1に示すMRシステムSでは、ユーザが装着する一人称視点のステレオRGBカメラ115と、情報処理装置100が有する、撮像手段の一種である距離画像センサ116を含んで構成される。また、MRシステムSでは、これらの撮像結果に基づいて空間に存在する物体であるユーザの手101の位置又は姿勢少なくとも一方の状態を推定する。また、ユーザは、この推定結果に基づいて仮想物体103を手101で直接操作しているように認識することが可能になる。
図1は、本実施形態に係る情報処理装置を含んで構成されるMR(Mixed Reality:仮想現実)システムSの概要を説明するための図である。MRシステムを例に説明するが、本件は、MRシステムへの適用に限らず、手指スケルトン推定をするシステムに適用可能である。
図1に示すMRシステムSでは、ユーザが装着する一人称視点のステレオRGBカメラ115と、情報処理装置100が有する、撮像手段の一種である距離画像センサ116を含んで構成される。また、MRシステムSでは、これらの撮像結果に基づいて空間に存在する物体であるユーザの手101の位置又は姿勢少なくとも一方の状態を推定する。また、ユーザは、この推定結果に基づいて仮想物体103を手101で直接操作しているように認識することが可能になる。
ユーザは、自身の頭部102にHMD(ヘッドマウントディスプレイ)119を装着する。HMD119は、ユーザの目線と同じ方向を撮像可能に配設されたステレオRGBカメラ115を有する。なお、HMD119は、情報処理装置100との間で有線あるいは無線により各種情報の授受が可能に構成される。
情報処理装置100は、ステレオRGBカメラ115を介して、ユーザの目線から見た一人称視点のステレオRGB画像を撮像結果として取得する。情報処理装置100は、取得したRGB画像に対してノイズ除去等の前処理を行った上で仮想物体103をレンダリング処理する。情報処理装置100は、レンダリング処理後のステレオRGB画像を、HMD119を介して、ユーザの目の前の表示画面にそれぞれ対応させて表示させる。このようにして、ユーザは、3次元操作空間上の仮想物体103を認識することが可能になる。
基準MRマーカ104及び補助MRマーカ105は、ステレオRGBカメラ115が取得したステレオRGB画像に基づいて、ステレオRGBカメラ及びユーザの位置姿勢に係る情報を取得するために用いる。
なお、基準MRマーカ104及び補助MRマーカ105は、所定の位置に固定して配置される。各MRマーカは、例えば板の表面に一意な白黒のパターンが印刷されたものである。このように構成されたMRマーカであれば、容易にステレオRGB画像から検出することが可能になる。また、複数のMRマーカを用いるのはロバスト性を高めるためである。
なお、基準MRマーカ104及び補助MRマーカ105は、所定の位置に固定して配置される。各MRマーカは、例えば板の表面に一意な白黒のパターンが印刷されたものである。このように構成されたMRマーカであれば、容易にステレオRGB画像から検出することが可能になる。また、複数のMRマーカを用いるのはロバスト性を高めるためである。
なお、情報処理装置100における空間全体を表す座標系(以下、世界座標系と称す)は、基準MRマーカ104の中心を原点とする。また、この基準MRマーカ104に対して所定の位置で固定された距離画像センサ116の撮像方向は、z軸の正の方向(図1参照)となるように右手座標系において予めキャリブレーションされているものとする。
また、距離画像センサ116が取得した距離画像の各ピクセルには、距離画像センサ116の正面位置に垂直に置かれた仮想的な平面から撮像対象までの距離を反映した値(以下、距離値と称す)が格納されるものとする。
また、距離画像センサ116のカメラパラメータは予め測定されており、距離画像センサ116から取得された距離画像の各ピクセルを世界座標系における3次元点群に変換する変換行列についても予めキャリブレーションされているものとする。さらに、ステレオRGBカメラ115のカメラパラメータと視差についても予め測定されているものとする。
また、距離画像センサ116のカメラパラメータは予め測定されており、距離画像センサ116から取得された距離画像の各ピクセルを世界座標系における3次元点群に変換する変換行列についても予めキャリブレーションされているものとする。さらに、ステレオRGBカメラ115のカメラパラメータと視差についても予め測定されているものとする。
また、情報処理装置100では、ステレオRGBカメラ115と距離画像センサ116の画角が交差する範囲が3次元操作空間であり、3次元操作空間内の手に対してのみ手指スケルトン推定が可能である。ユーザの頭部102の動きに合わせてステレオRGBカメラ115の位置姿勢は時間の経過とともに変化するため、3次元操作空間も毎フレーム変化することになる。
なお、本実施形態では、HMD119を装着した1人のユーザが右手を使って仮想物体を操作する場合を例に挙げて説明を進める。この他にも例えば、情報処理装置100にユーザ判定部や右手左手判定部などの機能構成を追加するなどして、複数のユーザに対応可能に構成したり、両手に対応可能に構成することもできる。
図2は、情報処理装置100の機能構成の一例を説明するための図である。
図2(a)は、情報処理装置100のハードウェア構成の一例を示すブロック図である。
CPU110は、バス113を介して接続する各デバイスを統括的に制御する。
RAM111は、高速にアクセス可能なCPU110の主メモリ、ワークエリア等の一時記憶領域として用いられる。
ROM112は、オペレーティングシステム(OS)、各処理プログラム、デバイスドライバ等の各種情報を記憶する。なお、OSおよび各処理プログラム等は外部の記憶装置117に記憶されていてもよく、その場合は電源投入時に必要な情報がRAM111に適宜読み込まれる。
図2(a)は、情報処理装置100のハードウェア構成の一例を示すブロック図である。
CPU110は、バス113を介して接続する各デバイスを統括的に制御する。
RAM111は、高速にアクセス可能なCPU110の主メモリ、ワークエリア等の一時記憶領域として用いられる。
ROM112は、オペレーティングシステム(OS)、各処理プログラム、デバイスドライバ等の各種情報を記憶する。なお、OSおよび各処理プログラム等は外部の記憶装置117に記憶されていてもよく、その場合は電源投入時に必要な情報がRAM111に適宜読み込まれる。
ディスプレイI/F118は、情報処理装置100内部で生成される画像をHMD119が処理可能な信号に変換する。
入出力I/F114は、距離画像センサ116から距離画像を、ステレオRGBカメラ115からステレオRGB画像を取得し、情報処理装置100が処理可能な情報に変換するとともに、記憶装置117と情報処理装置100間で相互にデータの変換を行う。
入出力I/F114は、距離画像センサ116から距離画像を、ステレオRGBカメラ115からステレオRGB画像を取得し、情報処理装置100が処理可能な情報に変換するとともに、記憶装置117と情報処理装置100間で相互にデータの変換を行う。
なお、本実施形態では、情報処理装置100で投影するデジタルデータは記憶装置117に格納されているものとする。記憶装置117としては、ディスクデバイスやフラッシュメモリ、ネットワークやUSBなどの各種の入出力I/F114を介して接続される各種記憶装置を使用することができる。
図2(b)は、情報処理装置100の機能構成の一例を示すブロック図である。情報処理装置100は、距離画像取得部120、ステレオRGB画像取得部121、ユーザ位置取得部122、物体検出部123、点群取得部124、モデルフィッティング部125、表示部126、保持部127を含んで構成される。
これらの各機能部は、CPU110が、ROM112に格納されたプログラムをRAM111に展開し、後述する各フローチャートに従った処理を実行することで実現されている。
これらの各機能部は、CPU110が、ROM112に格納されたプログラムをRAM111に展開し、後述する各フローチャートに従った処理を実行することで実現されている。
また例えば、CPU110を用いたソフトウェア処理の代替としてハードウェアを構成する場合、各機能部の処理に対応させた演算部や回路などを構成すればよい。また保持部127は、ROM112、記憶装置117のいずれかに対応する機能部であり、仮想物体103のポリゴン情報やモデルフィッティングに用いられる3次元形状モデル情報等を保持する。この他にも、例えば手ぶり等の空間ジェスチャ動作を認識するジェスチャ認識部など、情報処理装置100の使用目的やアプリケーションに応じた機能部を構成することができる。
[情報処理装置100が行う制御処理]
図3は、情報処理装置100が行う制御処理の手順の一例を示すフローチャートである。
以下、図3に示すフローチャートを用いて、情報処理装置100が行う手指スケルトン推定処理を詳細について説明する。なお、図3に示す各処理は、主としてCPU110により実行される。
図3は、情報処理装置100が行う制御処理の手順の一例を示すフローチャートである。
以下、図3に示すフローチャートを用いて、情報処理装置100が行う手指スケルトン推定処理を詳細について説明する。なお、図3に示す各処理は、主としてCPU110により実行される。
CPU110は、ステレオRGB画像取得部121を介して、ステレオRGBカメラ115が撮像するステレオRGB画像を一定時間毎に時系列に従って取得する(S100)。CPU110は、また、取得したステレオRGB画像に対してノイズ除去等の前処理を行い、処理後のステレオRGB画像をRAM111に保持する。
以下、時系列に従って取得された画像又は実行した処理それぞれには、番号あるいは時刻が情報として付与されるものとする。この番号あるいは時刻のことを、以後、フレームと称すことがある。
以下、時系列に従って取得された画像又は実行した処理それぞれには、番号あるいは時刻が情報として付与されるものとする。この番号あるいは時刻のことを、以後、フレームと称すことがある。
CPU110は、ユーザ位置取得部122を介して、RAM111に保持されたステレオRGB画像から基準MRマーカ104及び補助MRマーカ105を検出する。
CPU110は、また、ステレオRGB画像から検出した基準MRマーカ104及び補助MRマーカ105の形状に基づいて、世界座標系におけるHMD119の位置及び姿勢を表す情報(以下、位置姿勢情報と称す)を取得する(S101)。
CPU110は、また、ステレオRGB画像から検出した基準MRマーカ104及び補助MRマーカ105の形状に基づいて、世界座標系におけるHMD119の位置及び姿勢を表す情報(以下、位置姿勢情報と称す)を取得する(S101)。
なお、例えばステレオRGB画像からMRマーカが1つも検出されない場合、HMD119の位置姿勢は不定となる。そのため、CPU110は、ステップS101の処理以降の各処理を実施しない(スキップする)ように制御する。
また、本実施形態ではMRマーカが2種類である場合を例に挙げて説明をしているが、これに限らず1種類のみであっても、あるいは3種類以上用いるように構成してもよい。また、MRマーカを用いることなく、例えば光学センサを用いるなどしてHMD119の位置姿勢に係る情報を取得するように構成してもよい。
また、本実施形態ではMRマーカが2種類である場合を例に挙げて説明をしているが、これに限らず1種類のみであっても、あるいは3種類以上用いるように構成してもよい。また、MRマーカを用いることなく、例えば光学センサを用いるなどしてHMD119の位置姿勢に係る情報を取得するように構成してもよい。
CPU110は、物体検出部123を介して、RAM111に保持されたステレオRGB画像に基づいて、モデルフィッティングの対象である手(ユーザの手)が含まれる3次元領域(手領域)を検出する(S102)。具体的には、予め決定された色域のピクセルに対してこれらが隣接した集合である肌色領域を複数検出する。そして、ピクセル数最大の肌色領域をステレオRGB画像中の手領域として取得する。
CPU110は、また、ステレオRGB画像中の手領域の重心を導出する。CPU110は、HMD119の位置姿勢情報とステレオRGBカメラ115の視差情報に基づいて、手領域の重心の世界座標を取得する。CPU110は、手領域の重心の世界座標を中心とする、予め決められた長さの各辺を持つ直方体を世界座標における手領域として取得する。
なお、世界座標における手領域の形状は球や任意の多角形であってもよい。また、例えばステレオRGB画像中に肌色領域が1つも存在しない場合、CPU110は、ステップS102の処理以降の各処理をスキップするように制御する。
なお、世界座標における手領域の形状は球や任意の多角形であってもよい。また、例えばステレオRGB画像中に肌色領域が1つも存在しない場合、CPU110は、ステップS102の処理以降の各処理をスキップするように制御する。
CPU110は、距離画像取得部120を介して、距離画像センサ116が撮像する距離画像を一定時間毎に時系列に従って取得する(S103)。取得した距離画像は、入力距離画像としてRAM111に保持される。
なお、CPU110は、距離画像を取得する間隔を、ステップS100の処理におけるステレオRGB画像の取得間隔と同期するように制御する。
なお、CPU110は、距離画像を取得する間隔を、ステップS100の処理におけるステレオRGB画像の取得間隔と同期するように制御する。
CPU110は、点群取得部124を介して、距離画像センサ116のカメラパラメータと、予め測定された距離画像センサ116の座標系と、世界座標系の変換行列とに基づいて、距離画像の各ピクセルを世界座標系における点群(3次元点群)に変換する。なお、点群は手の表面上の点である。
CPU110は、ステップS102の処理において取得した世界座標における手領域の範囲内の点群を第1点群として取得する(S104)。
なお、第1点群は観測(検出)された手領域の点群全てを指すものとする。
また、例えば世界座標における手領域に含まれる点群の数が予め決められた閾値未満である場合、CPU110は、ユーザの手101が距離画像センサの撮像範囲外、即ち操作範囲外にあると判定する。この場合、CPU110は、ステップS104の処理以降の各処理をスキップするように制御する。
なお、第1点群は観測(検出)された手領域の点群全てを指すものとする。
また、例えば世界座標における手領域に含まれる点群の数が予め決められた閾値未満である場合、CPU110は、ユーザの手101が距離画像センサの撮像範囲外、即ち操作範囲外にあると判定する。この場合、CPU110は、ステップS104の処理以降の各処理をスキップするように制御する。
CPU110は、また、点群取得部124を介して、第1点群を投影した距離画像を手領域距離画像として取得する。手領域距離画像は、第1点群を距離画像座標系に投影した距離画像であり、第1点群が投影されないUV座標(2次元テクスチャ座標)は無効な値(例えば0(ゼロ))で埋められているものとする。
なお、世界座標における手領域を距離画像の2次元領域に投影し、その内部にある距離画像の各ピクセルを世界座標における点群に変換することで、第1点群を取得するように構成してもよい。また、ステレオRGB画像に基づいて取得された世界座標中の手領域を用いることなく、距離画像および点群のみから第1点群を取得するように構成してもよい。
例えば、距離画像センサ116によって撮像された距離画像中の距離画像センサ116までの距離が最も近いピクセル集合を距離画像中の手領域とし、それらを世界座標系に変換することで第1点群を取得するように構成してもよい。
なお、世界座標における手領域を距離画像の2次元領域に投影し、その内部にある距離画像の各ピクセルを世界座標における点群に変換することで、第1点群を取得するように構成してもよい。また、ステレオRGB画像に基づいて取得された世界座標中の手領域を用いることなく、距離画像および点群のみから第1点群を取得するように構成してもよい。
例えば、距離画像センサ116によって撮像された距離画像中の距離画像センサ116までの距離が最も近いピクセル集合を距離画像中の手領域とし、それらを世界座標系に変換することで第1点群を取得するように構成してもよい。
CPU110は、点群取得部124を介して、第1点群からモデルフィッティング処理に用いる第2点群を取得する(S105)。なお、この処理の詳細については後述する。
CPU110は、モデルフィッティング部125を介して、取得した第2点群に対して3次元形状モデルの当てはめ(モデルフィッティング)を実施する(S106)。具体的には、保持部127に保持されている、予め決められた手の3次元形状モデルを用いてモデルフィッティングを行う。
なお、本実施形態に係る情報処理装置100では、例えば後述する図4に示す球の集合からなる手の3次元形状モデル600を用いるものとする。また、手領域の点群と手の3次元形状モデルの誤差関数を最小化する最適化アルゴリズムとしてPSO(Particle Swarm Optimization:粒子群最適化)を用いるものとする。
以下、図4に示す手の3次元形状モデルについて説明する。
なお、本実施形態に係る情報処理装置100では、例えば後述する図4に示す球の集合からなる手の3次元形状モデル600を用いるものとする。また、手領域の点群と手の3次元形状モデルの誤差関数を最小化する最適化アルゴリズムとしてPSO(Particle Swarm Optimization:粒子群最適化)を用いるものとする。
以下、図4に示す手の3次元形状モデルについて説明する。
図4は、手の3次元形状モデルの一例を説明するための図である。
例えば、図4に示す手の3次元形状モデル600は48個の球の集合からなり、各球それぞれは中心位置、半径、一意なID、属するパーツ等の情報を有する。また、図4に示すように、球によっては互いに接触したり、あるいはめり込んだりしていることが見て取れる。
例えば、図4に示す手の3次元形状モデル600は48個の球の集合からなり、各球それぞれは中心位置、半径、一意なID、属するパーツ等の情報を有する。また、図4に示すように、球によっては互いに接触したり、あるいはめり込んだりしていることが見て取れる。
また、図4に示す手の3次元形状モデル600では、各指の第1関節及び第2関節位置に相当する位置に1次元(掌に対して垂直方向に回転する)の関節を有する。
また、各指の根元に相当する位置に2次元(掌に対して水平方向と垂直方向にそれぞれ回転する)の関節を有する。さらに手首に相当する位置に6次元(世界座標におけるxyz位置及びオイラー角)の関節を有する。このように、手の3次元形状モデル600全体の次元数は合計で26次元となる。
また、各指の根元に相当する位置に2次元(掌に対して水平方向と垂直方向にそれぞれ回転する)の関節を有する。さらに手首に相当する位置に6次元(世界座標におけるxyz位置及びオイラー角)の関節を有する。このように、手の3次元形状モデル600全体の次元数は合計で26次元となる。
また、手の3次元形状モデル600は、掌、指の根元と第2関節の間、第2関節と第1関節の間、指先の順に手首から手先の方向に順序付けされたパーツ(球の集合)を含んで構成される。
手の3次元形状モデル600の関節は、手首位置、指の根元関節、第2関節、第1関節の順に手首から手先の方向に向かって順序付けされている。各関節のパラメータ(位置又は角度)に従って各関節を移動・回転させた場合、各関節より手先に順序づけられているパーツが全て移動する。
例えば、手首位置を移動・回転すると全てのパーツが移動・回転し、指の根元関節を回転下とする。この場合、指の根元と第2関節の間、第2関節と第1関節の間、指先が回転する。つまり、全ての関節にパラメータを与えることで手の形状が一意に決定されることになる。
手の3次元形状モデル600の関節は、手首位置、指の根元関節、第2関節、第1関節の順に手首から手先の方向に向かって順序付けされている。各関節のパラメータ(位置又は角度)に従って各関節を移動・回転させた場合、各関節より手先に順序づけられているパーツが全て移動する。
例えば、手首位置を移動・回転すると全てのパーツが移動・回転し、指の根元関節を回転下とする。この場合、指の根元と第2関節の間、第2関節と第1関節の間、指先が回転する。つまり、全ての関節にパラメータを与えることで手の形状が一意に決定されることになる。
また、手の3次元形状モデル600は、剛体である各パーツを移動・回転可能な関節で繋ぎ合わせたモデルである。なお、各関節が取り得るパラメータの範囲は、実際の人間の手が取り得る範囲に制限されているものとする。また、全ての関節のパラメータをパラメータベクトルと称すことがある。また、パラメータベクトルの次元数は26次元である。
なお、図4に示す手の3次元形状モデル600では5指と掌をモデル化しているが、これに限ることなく手首、下腕、上腕を含むようなモデルを用いてもよい。
なお、図4に示す手の3次元形状モデル600では5指と掌をモデル化しているが、これに限ることなく手首、下腕、上腕を含むようなモデルを用いてもよい。
ここで、情報処理装置100における処理に用いられる誤差関数を下記式(1)、(2)に示す。誤差関数は、点群とモデルの誤差を表しており、その値が小さいほど良い。また、誤差関数は、第2点群の各点について、3次元形状モデル600の表面とのユークリッド距離を求め、その和をとったものである。
式(2)におけるdnは、ステップS105の処理において取得された第2点群に含まれる点である。式(2)に示すf(d)は、dから3次元形状モデル600の表面までの最短ユークリッド距離を全探索して求める関数である。sicenterは、球siの中心の三次元座標、sicenterは手の3次元形状モデル600の球siの半径である。
なお、誤差関数は、例えばモデルの「めりこみ」、あるいは人間の手が取り得えない姿勢などに対してペナルティを与える項等と、式(1)の和をとってこれを誤差関数としてもよいし、また別の誤差関数を用いてもよい。
なお、誤差関数は、例えばモデルの「めりこみ」、あるいは人間の手が取り得えない姿勢などに対してペナルティを与える項等と、式(1)の和をとってこれを誤差関数としてもよいし、また別の誤差関数を用いてもよい。
静止剛体へのオフラインモデルフィッティングでは、ICP(Iterated Closest Point)がよく用いられる。しかし、本実施形態の説明においては、最適化アルゴリズムとしてPSO(Particle Swarm Optimization:粒子群最適化)を用いている。これは、PSOはICPと比べて、関節を有し時間的に形状が変化する手のモデルフィッティングにおいては速度、精度、ロバスト性などの面で適しているためのである。
また、PSOでは、パラメータベクトルを、速度を有する粒子として扱うことで多数の粒子同士の相互作用を模した更新を繰り返し行い最適化を行う。更新数は「世代」あるいは「世代数」などとも称される。各粒子の更新式を下記式(3)、(4)に示す。
また、PSOでは、パラメータベクトルを、速度を有する粒子として扱うことで多数の粒子同士の相互作用を模した更新を繰り返し行い最適化を行う。更新数は「世代」あるいは「世代数」などとも称される。各粒子の更新式を下記式(3)、(4)に示す。
上記式のxkは、世代kのパラメータベクトル、vkは対応する速度を表す。また、w、c1、c2は所定の定数である。また、r1、r2は[0・・・1]の一様分布からサンプリングされる乱数である。また、Pkは粒子が世代kまでで経験した中で最も誤差関数の値が良かったパラメータベクトルであり、Gkは全ての粒子の中で世代kまでの中で最も誤差関数の値が小さかったパラメータベクトルである。
例えば、世代数0の初期値は、直近のフレーム(以後、前フレームとも称す)のモデルフィッティング処理の結果として得られたパラメータベクトルの各次元に対してガウスノイズを付与して生成する。また、先行するフレームにモデルフィッティング処理が行われていない初期フレームである場合、ユーザは手の各指を伸ばした所謂パーの姿勢で3次元操作空間に挿入することが多いというヒューリティックに基づいて初期値を生成する。
初期値の生成は、例えば図4に示す手の3次元形状モデル600の重心と手領域の重心の世界座標が一致する位置、及び、各指を伸ばしたいわゆる「パー」の姿勢となるパラメータベクトルの各次元にガウスノイズを付与して生成する。
なお、他のヒューリスティックや機械学習を用いて生成したパラメータベクトルを初期値としてもよい。例えば、本実施形態における粒子数は128であり、世代20を更新の終了条件とする。この場合、モデルフィッティングの結果、モデルフィッティングに用いられる第2点群にフィットするように手の3次元形状モデルの位置及び姿勢が調節されることになる。
なお、他のヒューリスティックや機械学習を用いて生成したパラメータベクトルを初期値としてもよい。例えば、本実施形態における粒子数は128であり、世代20を更新の終了条件とする。この場合、モデルフィッティングの結果、モデルフィッティングに用いられる第2点群にフィットするように手の3次元形状モデルの位置及び姿勢が調節されることになる。
また、手の3次元形状モデルとしては、球の数、球の位置、関節の定義等を変えてもよい。例えば、図4に示すような指を球と円柱で表わし、掌を楕円体で表わした近似モデル601、あるいはスキンメッシュモデル602などを用いてもよい。
また、手の3次元形状モデルにあわせて異なる誤差関数を用いてもよい。また、PSOの更新式やパラメータは本実施例と同一である必要はなく、PSO以外のアルゴリズムを最適化アルゴリズムとして用いてもよい。
また、手の3次元形状モデルにあわせて異なる誤差関数を用いてもよい。また、PSOの更新式やパラメータは本実施例と同一である必要はなく、PSO以外のアルゴリズムを最適化アルゴリズムとして用いてもよい。
図3の説明に戻り、CPU110は、表示部126を介して、モデルフィッティング部125を介して取得した、変形した手の3次元形状モデルの表面のポリゴンと仮想物体103の接触判定を行う。そして、CPU110は、接触判定の結果に基づいて仮想物体103の状態を変化させた上でステレオRGB画像と仮想物体103をHMD119に表示する(S107)。
なお、本実施形態においては、手の3次元形状モデルの表面のポリゴンはHMD119に表示しないように制御されるが、これに限らず表示するように制御してもよい。また、接触判定や表示に用いられる手の3次元形状モデルは、モデルフィッティングに用いられる手の3次元形状モデル600と異なるものであってもよい。
例えば、モデルフィッティング処理の結果として得られたパラメータベクトルに基づいて、近似モデル601、あるいはスキンメッシュモデル602を変形させる。変形後の近似モデル601やスキンメッシュモデル602の表面のポリゴンを仮想物体103との接触判定に用いたり、当該ポリゴンを表示したりしてもよい。
この場合、モデルフィッティングに使われる手の3次元形状モデルよりも精緻な手の3次元形状モデルを接触判定や表示に用いることで、リアルタイム性を維持しつつ、より適切な接触判定や表示を行うことが可能になる。
次に図5、図6を用いて、本実施例における第2点群取得処理を詳細に説明する。
この場合、モデルフィッティングに使われる手の3次元形状モデルよりも精緻な手の3次元形状モデルを接触判定や表示に用いることで、リアルタイム性を維持しつつ、より適切な接触判定や表示を行うことが可能になる。
次に図5、図6を用いて、本実施例における第2点群取得処理を詳細に説明する。
図5は、ステップS105の処理(第2点群取得処理)の詳細を説明するためのフローチャートである。
また、図6は、図5に示す第2点群取得処理により取得された第2点群に基づいて行われるモデルフィッティングの一例を説明するための図である。
なお、図5に示す各処理は、主としてCPU110により実行される。また、本実施形態の第2点群取得処理では、第1点群と前フレームにおいて取得された第2点群に基づいて、モデルフィッティング処理に用いる第2点群を取得するものとする。
また、図6は、図5に示す第2点群取得処理により取得された第2点群に基づいて行われるモデルフィッティングの一例を説明するための図である。
なお、図5に示す各処理は、主としてCPU110により実行される。また、本実施形態の第2点群取得処理では、第1点群と前フレームにおいて取得された第2点群に基づいて、モデルフィッティング処理に用いる第2点群を取得するものとする。
CPU110は、点群取得部124を介して、判定対象のフレームがモデルフィッティングの初期フレームであるか否かを判定する(S200)。前フレームにモデルフィッティング処理が行われていない場合、判定対象のフレームは初期フレームであると判定し(S200:Yes)、ステップS201の処理に移行する。また、そうでない場合(S200:No)、ステップS202の処理へ移行する。
CPU110は、点群取得部124を介して、手領域の第1点群からランダムにN個選択し、選択した第1点群を第2点群として取得する(S201)。なお、Nは予め決められた値であり、本実施形態ではN=256とする。また、初期フレームである場合には前フレームの第2点群が存在しないことになる。そのため、第1点群にのみ基づいて第2点群を取得することになる。
CPU110は、点群取得部124を介して、前フレームの第2点群と同じUV値を有する点群の一部をランダムにr0N個選択し、これらを第2点群として取得する(S202)。
具体的には、前フレームで取得された第2点群をランダムに選択し、これらに対応する前フレームの距離画像中のUV座標を取得する。そして、最新のフレーム(以後、現フレームとも称す)の距離画像において、UV座標とUV座標のピクセル値を世界座標に変換することにより前フレームと同じUV値を有する点群を特定して第2点群を取得する。
なお、r0は予め決められた前フレームと同じ点群をとる割合であり、本実施形態ではr0=0.8であるとする。この処理により前フレームと類似した点群に対するモデルフィッティングが行われるようになるため、ジッタの発生を軽減することができる。
具体的には、前フレームで取得された第2点群をランダムに選択し、これらに対応する前フレームの距離画像中のUV座標を取得する。そして、最新のフレーム(以後、現フレームとも称す)の距離画像において、UV座標とUV座標のピクセル値を世界座標に変換することにより前フレームと同じUV値を有する点群を特定して第2点群を取得する。
なお、r0は予め決められた前フレームと同じ点群をとる割合であり、本実施形態ではr0=0.8であるとする。この処理により前フレームと類似した点群に対するモデルフィッティングが行われるようになるため、ジッタの発生を軽減することができる。
また、このランダムな選択は、例えば前フレームの第2点群からランダムにr0N個選択するように構成してもよい。また、第2点群の生成は、例えば前フレームの第2点群と前記前フレームの第2点群と同じUV値を有する第1点群を平均したものを第2点群として生成するように構成してもよい。
なお、図6ではステップS202の処理において取得された点群の距離画像中のUV座標を、前フレーム手領域距離画像703及び現フレーム手領域距離画像704それぞれにおいて灰色で塗りつぶされた実線の円700として示している。
なお、図6ではステップS202の処理において取得された点群の距離画像中のUV座標を、前フレーム手領域距離画像703及び現フレーム手領域距離画像704それぞれにおいて灰色で塗りつぶされた実線の円700として示している。
CPU110は、点群取得部124を介して、現フレームの第1点群の一部をランダムに(1−r0)N個選択し、これらを第2点群として取得する(S203)。この一連の処理により、新たな点群に対してもモデルフィッティング処理が実施されることになる。これにより、移動及び変形する手に対するロバスト性を高めることができる。
なお、図6ではステップS203の処理において取得された点群の距離画像中のUV座標を、黒で塗りつぶされた円701として現フレーム手領域距離画像704に示している。また、灰色で塗りつぶされた破線の円702は、前フレームで選択されたが現フレームでは選択されなかった点群のUV座標である。
つまり、灰色で塗りつぶされた実線の円700は、前フレームで選択され、且つ、現フレームでも選択された点群のUV座標である。黒で塗りつぶされた円701は、前フレームと現フレームに共通する領域から新たにランダムに選択された点群のUV座標である。灰色で塗りつぶされた破線の円702は、前フレームで選択されたが現フレームで選択されなかった点群のUV座標である。
つまり、灰色で塗りつぶされた実線の円700は、前フレームで選択され、且つ、現フレームでも選択された点群のUV座標である。黒で塗りつぶされた円701は、前フレームと現フレームに共通する領域から新たにランダムに選択された点群のUV座標である。灰色で塗りつぶされた破線の円702は、前フレームで選択されたが現フレームで選択されなかった点群のUV座標である。
このように、本実施形態に係る情報処理装置100では、3次元点群に3次元形状モデルを当てはめるモデルフィッティングにおいて、3次元点群を削減したモデルフィッティングにおけるジッタの発生を軽減することができる。
[第2実施形態]
本実施形態では、第1点群、前フレームの第2点群に加えて、前フレームと現フレームの手領域距離画像の差分に基づいて第2点群を取得することができる情報処理装置について説明する。
なお、第1実施形態と同じ機能構成は、同一の符号を付すとともにその説明を省略する。
本実施形態では、第1点群、前フレームの第2点群に加えて、前フレームと現フレームの手領域距離画像の差分に基づいて第2点群を取得することができる情報処理装置について説明する。
なお、第1実施形態と同じ機能構成は、同一の符号を付すとともにその説明を省略する。
第1実施形態に係る情報処理装置100では、推定対象のユーザの手101の動きが微小であり、フレーム間の第1点群の変化が十分に小さいことを想定した構成である。
しかしながら、ステレオRGBカメラ115及び距離画像センサ116の画像取得間隔が大きい場合、ユーザの手の動きが速い場合などフレーム間の第1点群の変化が大きくなることがある。そこで、本実施形態では、フレーム間の第1点群の変化が大きい場合であってもジッタの発生を軽減することができる情報処理装置について説明する。
なお、第1実施形態に係る情報処理装置と本実施形態に係る情報処理装置とでは、点群取得部124を介した第2点群取得処理が異なる。詳細は後述する。
しかしながら、ステレオRGBカメラ115及び距離画像センサ116の画像取得間隔が大きい場合、ユーザの手の動きが速い場合などフレーム間の第1点群の変化が大きくなることがある。そこで、本実施形態では、フレーム間の第1点群の変化が大きい場合であってもジッタの発生を軽減することができる情報処理装置について説明する。
なお、第1実施形態に係る情報処理装置と本実施形態に係る情報処理装置とでは、点群取得部124を介した第2点群取得処理が異なる。詳細は後述する。
図7は、本実施形態に係る情報処理装置の第2点群取得処理の詳細を説明するためのフローチャートである。
また、図8は、図7に示す第2点群取得処理により取得された第2点群に基づいて行われるモデルフィッティングの一例を説明するための図である。
なお、図7に示す各処理は、主としてCPU110により実行される。また、第2点群取得処理では、第1点群、前フレームにおいて取得された第2点群、前フレームと現フレームの手領域距離画像の差分に基づいて、モデルフィッティング処理に用いる第2点群を取得するものとする。
また、図8は、図7に示す第2点群取得処理により取得された第2点群に基づいて行われるモデルフィッティングの一例を説明するための図である。
なお、図7に示す各処理は、主としてCPU110により実行される。また、第2点群取得処理では、第1点群、前フレームにおいて取得された第2点群、前フレームと現フレームの手領域距離画像の差分に基づいて、モデルフィッティング処理に用いる第2点群を取得するものとする。
CPU110は、点群取得部124を介して、判定対象のフレームがモデルフィッティングの初期フレームであるか否かを判定する(S300)。前フレームにモデルフィッティング処理が行われていない場合、判定対象のフレームは初期フレームであると判定し(S300:Yes)、ステップS301の処理に移行する。また、そうでない場合(S300:No)、ステップS302の処理へ移行する。
CPU110は、点群取得部124を介して、手領域の第1点群からランダムにN個選択し、選択した第1点群を第2点群として取得する(S301)。なお、Nは予め決められた値であり、本実施形態ではN=256とする。また、初期フレームである場合には、前フレームの第2点群が存在しないことになる。そのため、第1点群にのみ基づいて第2点群を取得することになる。
なお、第1点群からランダムに選択する場合の他にも、例えば等間隔にN個選択して、選択した第1点群を第2点群として取得するように構成してもよい。
なお、第1点群からランダムに選択する場合の他にも、例えば等間隔にN個選択して、選択した第1点群を第2点群として取得するように構成してもよい。
CPU110は、点群取得部124を介して、手領域距離画像における差分領域と共通領域を取得する(S302)。
具体的には、CPU110は、現フレームの手領域距離画像の各ピクセルから前フレームの手領域距離画像の各ピクセルを減算して手領域差分画像を取得する。
CPU110は、取得した手領域差分画像において、予め決められた差分閾値を上回る絶対値を有するピクセルが、予め決められた差分面積閾値の値以上隣接して存在している領域を差分領域として取得する。
CPU110は、また、手領域差分画像において、予め決められた共通閾値を下回る絶対値を持つピクセルが、予め決められた共通面積閾値の値以上隣接して存在する領域を共通領域として取得する。
具体的には、CPU110は、現フレームの手領域距離画像の各ピクセルから前フレームの手領域距離画像の各ピクセルを減算して手領域差分画像を取得する。
CPU110は、取得した手領域差分画像において、予め決められた差分閾値を上回る絶対値を有するピクセルが、予め決められた差分面積閾値の値以上隣接して存在している領域を差分領域として取得する。
CPU110は、また、手領域差分画像において、予め決められた共通閾値を下回る絶対値を持つピクセルが、予め決められた共通面積閾値の値以上隣接して存在する領域を共通領域として取得する。
このように閾値を設定することで、ノイズに対するロバスト性の向上を図ることができる。なお、差分領域は、UV方向、即ち手領域距離画像において過去に手が存在していなかった領域に新たに手領域が出現する場合と、Z方向、即ち手領域距離画像において過去に手が存在していた領域のピクセル値が変化する場合の2パターンがある。
なお、UV方向の差分領域とZ方向の差分領域は、片方出現する場合、両方が独立した領域として出現する場合、両方が連結した領域として出現する場合、あるいは両方とも出現しない場合がある。以下、この点について図8を用いて説明する。
なお、UV方向の差分領域とZ方向の差分領域は、片方出現する場合、両方が独立した領域として出現する場合、両方が連結した領域として出現する場合、あるいは両方とも出現しない場合がある。以下、この点について図8を用いて説明する。
図8(a)は、UV方向における差分領域の一例を示している。図8(a)に示す現フレーム手領域距離画像801は、前フレーム手領域距離画像703の状態から人差し指をUV方向に動かした状態を示している。
また、現フレーム手領域距離画像801において実線で囲まれている領域の中でグレー色に塗られている部分が差分領域であり、白色に塗られている部分が共通領域である。また、破線の楕円でかこまれている人指し指の根元の領域800のZ値は変化しているが、差分閾値以下であり、且つ、共通閾値以下であるため共通領域となる。
また、現フレーム手領域距離画像801において実線で囲まれている領域の中でグレー色に塗られている部分が差分領域であり、白色に塗られている部分が共通領域である。また、破線の楕円でかこまれている人指し指の根元の領域800のZ値は変化しているが、差分閾値以下であり、且つ、共通閾値以下であるため共通領域となる。
図8(b)は、Z方向における差分領域の一例を示している。図8(b)に示す現フレーム手領域距離画像803は、前フレーム手領域距離画像802の状態から人差し指をZ方向に動かした状態を示している。図中グレー色に塗られている部分が差分領域であり、白色に塗られている部分が共通領域である。
図7の説明に戻り、CPU110は、点群取得部124を介して、共通領域から前フレームの第2点群と同じUV値を有する点群の一部をランダムにr0N個選択し、これらを第2点群として取得する(S303)。なお、ステップS303の処理では、その対象を共通領域に限定した上でステップS202の処理(図5参照)と同様の処理を行う。
CPU110は、点群取得部124を介して、差分領域の大きさが予め決められた閾値以上であるか否かを判定する(S304)。閾値以上である場合(S304:Yes)、ステップS306の処理に移行する。また、そうでない場合(S304:No)、ステップS305の処理へ移行する。
CPU110は、点群取得部124を介して、現フレームの第1点群の一部をランダムに(1−r0)N個選択し、これらを第2点群として取得する(S305)。ステップS305の処理では、手領域が大きく変形していないためステップS203の処理(図5参照)と同様の処理を行う。
CPU110は、点群取得部124を介して、現フレームの差分領域からランダムにr1(1−r0)N個選択して第2点群として取得する(S306)。
具体的には、差分領域におけるUV値をランダムに選択し、選択したUV値とピクセル値を世界座標に変換することで新たな第2点群を取得する。
なお、r1は差分領域から新たに第2点群をランダムに取得する割合であり、本実施形態ではr1=0.5とする。また、ステップS306の処理により、手が変形した領域である差分領域から第2点群が取得されることが保証されることになる。
また、図8(a)に示す現フレーム手領域距離画像801、図8(b)に示す現フレーム手領域距離画像803において黒色に塗られた三角形は、ステップS306の処理において取得された点群を示している。
具体的には、差分領域におけるUV値をランダムに選択し、選択したUV値とピクセル値を世界座標に変換することで新たな第2点群を取得する。
なお、r1は差分領域から新たに第2点群をランダムに取得する割合であり、本実施形態ではr1=0.5とする。また、ステップS306の処理により、手が変形した領域である差分領域から第2点群が取得されることが保証されることになる。
また、図8(a)に示す現フレーム手領域距離画像801、図8(b)に示す現フレーム手領域距離画像803において黒色に塗られた三角形は、ステップS306の処理において取得された点群を示している。
CPU110は、点群取得部124を介して、現フレームの共通領域からランダムに(1−r1)(1−r0)N個選択し、これらを第2点群として取得する(S307)。
具体的には、共通領域におけるUV値をランダムに選択し、選択されたUV値とピクセル値を世界座標に変換することで新たな第2点群を取得する。
具体的には、共通領域におけるUV値をランダムに選択し、選択されたUV値とピクセル値を世界座標に変換することで新たな第2点群を取得する。
なお、本実施形態では、差分領域と共通領域をそれぞれ一体として扱い第2点群を取得する場合について説明した。例えば、手の形状や動きによっては差分領域又は共通領域がそれぞれ複数の分割された領域として出現する場合がある。そのような場合、各領域から1つ以上の点群が第2点群として取得されるようにしてもよい。また、各領域の大きさ(ピクセル数)に応じて取得される第2点群の割合が変化するように構成してもよい。
また、本実施形態では、第1点群、前フレームの第2点群、前フレームと現フレームの手領域距離画像の差分に基づいて第2点群を取得しているが、必ずしもそうでなくともよい。例えば、第1点群と、前フレームと現フレームの手領域距離画像の差分に基づいて第2点群を取得するように構成してもよい。
[第3実施形態]
本実施形態では、第1点群、前フレームの第2点群に加えて、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて第2点群を取得することができる情報処理装置について説明する。
なお、第1、第2実施形態と同じ機能構成は、同一の符号を付すとともにその説明を省略する。
本実施形態では、第1点群、前フレームの第2点群に加えて、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて第2点群を取得することができる情報処理装置について説明する。
なお、第1、第2実施形態と同じ機能構成は、同一の符号を付すとともにその説明を省略する。
第2実施形態に係る情報処理装置では、手の部位を区別していなかったためランダムにとった第2点群が1つ以上の手の部位から十分に取得されずにジッタが大きくなってしまうことがある。そこで、本実施形態に係る情報処理装置では、1つ以上の手の部位のジッタの発生を軽減することができる情報処理装置について説明する。
なお、第1、第2実施形態に係る情報処理装置と本実施形態に係る情報処理装置とでは、点群取得部124を介した第2点群取得処理が異なる。詳細は後述する。
なお、第1、第2実施形態に係る情報処理装置と本実施形態に係る情報処理装置とでは、点群取得部124を介した第2点群取得処理が異なる。詳細は後述する。
図9は、本実施形態に係る情報処理装置の第2点群取得処理の詳細を説明するためのフローチャートである。
また、図10は、図9に示す第2点群取得処理により取得された第2点群に基づいて行われるモデルフィッティングの一例を説明するための図である。なお、図9に示す各処理は、主としてCPU110により実行される。
また、第2点群取得処理では、第1点群、前フレームにおいて取得された第2点群、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて、モデルフィッティング処理に用いる第2点群を取得するものとする。
また、図10は、図9に示す第2点群取得処理により取得された第2点群に基づいて行われるモデルフィッティングの一例を説明するための図である。なお、図9に示す各処理は、主としてCPU110により実行される。
また、第2点群取得処理では、第1点群、前フレームにおいて取得された第2点群、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて、モデルフィッティング処理に用いる第2点群を取得するものとする。
CPU110は、点群取得部124を介して、判定対象のフレームがモデルフィッティングの初期フレームであるか否か判定する(S400)。前フレームにモデルフィッティング処理が行われていない場合、判定対象のフレームは初期フレームであると判定し(S400:Yes)、ステップS401の処理に移行する。またそうでない場合(S400:No)、ステップS402の処理へ移行する。
CPU110は、点群取得部124を介して、手領域の第1点群からランダムにN個選択し、選択した第1点群を第2点群として取得する(S401)。なお、Nは予め決められた値であり、本実施形態ではN=256とする。また、初期フレームである場合には、前フレームの第2点群が存在しないことになる。そのため、第1点群にのみ基づいて第2点群を取得することになる。
CPU110は、点群取得部124を介して、前フレームの推定結果に基づいて第1点群及び前フレームの第2点群を部位に分割する(S402)。
具体的には、CPU110は、前フレームにおいて推定したパラメータベクトルに基づいて近似モデル601(図4)を変形させる。なお、近似モデル601は投影用モデルとして用いられる。
具体的には、CPU110は、前フレームにおいて推定したパラメータベクトルに基づいて近似モデル601(図4)を変形させる。なお、近似モデル601は投影用モデルとして用いられる。
CPU110は、変形した近似モデル601を部位ごとに距離画像の座標に投影し、この部位ごとのマスク画像を取得する。なお、これらの部位は目的に応じて定義することができる。
例えば、図10(a)、(b)に示すモデル901は、各部位を5指(親指a、人差し指b、中指c、薬指d、小指e)と掌として定義して投影した場合の一例である。
また、図10(b)に示すモデル903は、5指のうち人差し指を人差し指上部b0と人差し指下部b1に分け射影した場合の一例である。
例えば、図10(a)、(b)に示すモデル901は、各部位を5指(親指a、人差し指b、中指c、薬指d、小指e)と掌として定義して投影した場合の一例である。
また、図10(b)に示すモデル903は、5指のうち人差し指を人差し指上部b0と人差し指下部b1に分け射影した場合の一例である。
CPU110は、距離画像座標中においてマスク処理を行い、第1点群と前フレームの第2点群を前記部位ごとに分割して部位ごとのマスク画像を取得する。
なお、点群を分割する際にモデルフィッティングに用いる手の3次元形状モデル600(図4)を用いることも可能ではあるが、近似モデル601を用いることにより、より滑らかなマスク画像を取得することができる。
また、CPU110は、点群取得部124を介して、ステップS403の処理からステップS408の処理を各部位iのそれぞれに対して一回ずつ行うものとする。
なお、点群を分割する際にモデルフィッティングに用いる手の3次元形状モデル600(図4)を用いることも可能ではあるが、近似モデル601を用いることにより、より滑らかなマスク画像を取得することができる。
また、CPU110は、点群取得部124を介して、ステップS403の処理からステップS408の処理を各部位iのそれぞれに対して一回ずつ行うものとする。
図9の説明に戻り、CPU110は、点群取得部124を介して、手領域距離画像における差分領域と共通領域を取得する(S403)。ステップS403の処理では、対象を部位iに限定した上でステップS302の処理(図7参照)と同様の処理を行う。
CPU110は、点群取得部124を介して、共通領域から前フレームの第2点群と同じUV値を有する点群をランダムにrir0N個選択し、これらを第2点群として取得する(S404)。
なお、riは部位iから第2点群を取得する予め決められた割合である。また、部位iのピクセル数に応じてriの値を変えてもよい。
なお、riは部位iから第2点群を取得する予め決められた割合である。また、部位iのピクセル数に応じてriの値を変えてもよい。
CPU110は、点群取得部124を介して、差分領域の大きさが予め決められた閾値以上であるか否かを判定する(S405)。閾値以上である場合(S405:Yes)、ステップS407の処理へ移行する。また、そうでない場合(S405:No)、ステップS406の処理に移行する。
CPU110は、点群取得部124を介して、部位iの第1点群からランダムに(1−rir0)N個選択し、これらを第2点群として取得する(S406)。
CPU110は、点群取得部124を介して、現フレームの差分領域からランダムにr1(1−rir0)N個選択し、これらを第2点群として取得する(S407)。ステップS407の処理は、対象を部位iに限定した上でステップS306の処理(図7参照)と同様の処理を行う。
CPU110は、点群取得部124を介して、現フレームの差分領域からランダムにr1(1−rir0)N個選択し、これらを第2点群として取得する(S407)。ステップS407の処理は、対象を部位iに限定した上でステップS306の処理(図7参照)と同様の処理を行う。
CPU110は、点群取得部124を介して、現フレームの共通領域からランダムに(1−r1)(1−rir0)N個選択し、これらを第2点群として取得する(S408)。ステップS408の処理は、対象を部位iに限定した上でステップS307の処理(図7参照)と同様の処理を行う。
CPU110は、部位iの中で処理すべき部位が残っているか否かを判定する(S409)。残っていると判定した場合(S409:No)、ステップS404の後はステップS403に移行する。また、そうでない場合(S409:Yes)、つまり全ての部位に対してステップS403〜ステップS408までの処理が終了している場合、第2点群取得処理を終了する。
例えば、図10(a)の示すモデル902は、全ての部位のriが等しい場合の一例である。この場合、全ての部位から等しく第2点群が取得されており、全体的にジッタが軽減されることが見て取れる。
また、図10(b)に示すモデル904は、人差し指上部のriが大きい場合の一例である。この場合、人差し指上部から多く第2点群が取得されており、特に人差し指上部のジッタが軽減され、例えば人差し指上部で仮想物体と接触判定を行うことが多い場合に特に有効であることが見て取れる。
また、図10(b)に示すモデル904は、人差し指上部のriが大きい場合の一例である。この場合、人差し指上部から多く第2点群が取得されており、特に人差し指上部のジッタが軽減され、例えば人差し指上部で仮想物体と接触判定を行うことが多い場合に特に有効であることが見て取れる。
また、本実施形態では、第1点群、前フレームの第2点群に加えて、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて第2点群を取得しているが、必ずしもそうである必要はない。例えば、第1点群と前フレームのモデルフィッティング結果に基づいて第2点群を取得するように構成してもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがコンピュータプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上記説明した実施形態は、本発明をより具体的に説明するためのものであり、本発明の範囲が、これらの例に限定されるものではない。
Claims (14)
- 所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する検出手段と、
前記物体の表面を示す複数の3次元点群を第1点群として取得する取得手段と、
前記第1点群の少なくとも一部に基づいて生成された複数の3次元点群である第2点群に対して、所定の3次元形状モデルの当てはめを行う当てはめ手段と、
先行して前記3次元形状モデルの当てはめが行われている場合、この当てはめに用いた第2点群の少なくとも一部と、前記撮像結果から取得された第1点群の少なくとも一部と、に基づいて前記第2点群を生成する生成手段と、を有することを特徴とする、
情報処理装置。 - 前記物体は位置又は姿勢の少なくとも一方が時間の経過とともに変化し、
前記当てはめ手段は、前記物体の変化に応じて前記所定の3次元形状モデルの位置又は姿勢の少なくとも一方を調節して当てはめを行うことを特徴とする、
請求項1に記載の情報処理装置。 - 前記生成手段は、前記先行して前記3次元形状モデルの当てはめが行われていない場合、前記第1点群に基づいて前記第2点群を生成することを特徴とする、
請求項1又は2に記載の情報処理装置。 - 前記複数の撮像結果には、ピクセル毎に撮像対象までの距離が反映された値が格納されている距離画像を含んでいることを特徴とする、
請求項1、2又は3に記載の情報処理装置。 - 前記取得手段は、前記距離画像に基づいて前記第1点群を取得することを特徴とする、
請求項4に記載の情報処理装置。 - 前記生成手段は、前記先行して前記3次元形状モデルの当てはめが行われていない場合、前記第1点群からランダムに選択した点群に基づいて前記第2点群を生成することを特徴とする、
請求項1又は2に記載の情報処理装置。 - 前記生成手段は、先行する撮像結果に基づいて前記3次元形状モデルの当てはめが行われている場合、当該先行する撮像結果に基づいて生成された第2点群の少なくとも一部、又は、前記撮像結果から取得された第1点群の少なくとも一部と、当該先行する撮像結果に前記第1点群を投影した距離画像と、前記撮像結果に前記第1点群を投影した距離画像の差分と、に基づいて前記第2点群を生成することを特徴とする、
請求項1に記載の情報処理装置。 - 前記生成手段は、前記先行する撮像結果と前記撮像結果に基づいて差分領域と共通領域を特定し、それぞれの領域から取得した第1点群に基づいて前記第2点群を生成することを特徴とする、
請求項7に記載の情報処理装置。 - 前記生成手段は、前記先行する撮像結果に基づいて前記3次元形状モデルの当てはめが既に行われている場合、当該先行する撮像結果に基づいて生成された第2点群の少なくとも一部と、前記撮像結果から取得された第1点群の少なくとも一部と、当該先行する撮像結果に前記第1点群を投影した距離画像と前記撮像結果に前記第1点群を投影した距離画像の差分と、当該先行する撮像結果に基づいて行われた前記3次元形状モデルの当てはめ結果と、に基づいて前記第2点群を生成することを特徴とする、
請求項1に記載の情報処理装置。 - 前記3次元形状モデルの当てはめ結果は、先行する前記3次元形状モデルの当てはめにより得られたパラメータベクトルに基づいて移動又は変形させた所定の投影用モデルの少なくとも1つ以上の部位を距離画像座標系に投影したマスク画像であり、
前記生成手段は、前記マスク画像に基づいて前記第2点群又は前記第1点群を前記部位ごとに分割し、当該部位ごとに前記先行する撮像結果に基づいて生成された前記第2点群の一部、又は、前記撮像結果から取得された前記第1点群の一部に基づいて前記第2点群を生成することを特徴とする、
請求項9に記載の情報処理装置。 - 前記物体は手であり、前記所定の3次元形状モデルは当該手の3次元形状モデルであることを特徴とする、
請求項1乃至10いずれか一項に記載の情報処理装置。 - 情報処理装置の制御方法であって、
所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する工程と、
前記物体の表面を示す複数の3次元点群を第1点群として取得する工程と、
前記第1点群の少なくとも一部に基づいて生成された複数の3次元点群である第2点群に対して、所定の3次元形状モデルの当てはめを行う工程と、
先行して前記3次元形状モデルの当てはめが行われている場合、この当てはめに用いた第2点群の少なくとも一部と、前記撮像結果から取得された第1点群の少なくとも一部と、に基づいて前記第2点群を生成する工程と、を有することを特徴とする、
情報処理装置の制御方法。 - コンピュータを情報処理装置として動作させるためのコンピュータプログラムであって、
前記コンピュータを、
所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する検出手段、
前記物体の表面を示す複数の3次元点群を第1点群として取得する取得手段、
前記第1点群の少なくとも一部に基づいて生成された複数の3次元点群である第2点群に対して、所定の3次元形状モデルの当てはめを行う当てはめ手段、
先行して前記3次元形状モデルの当てはめが行われている場合、この当てはめに用いた第2点群の少なくとも一部と、前記撮像結果から取得された第1点群の少なくとも一部と、に基づいて前記第2点群を生成する生成手段、として機能させることを特徴とする、
コンピュータプログラム。 - 請求項13に記載のコンピュータプログラムをコンピュータが読み取り可能に記憶した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017024012A JP2018132319A (ja) | 2017-02-13 | 2017-02-13 | 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017024012A JP2018132319A (ja) | 2017-02-13 | 2017-02-13 | 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018132319A true JP2018132319A (ja) | 2018-08-23 |
Family
ID=63248308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017024012A Pending JP2018132319A (ja) | 2017-02-13 | 2017-02-13 | 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018132319A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113124782A (zh) * | 2021-04-14 | 2021-07-16 | 重庆市勘测院 | 一种基于点云抗差自适应的建构筑物垂直度检测方法 |
JP2021184232A (ja) * | 2020-05-21 | 2021-12-02 | 株式会社トゥービーソフトTobesoft Co., Ltd. | ユーザのハンドジェスチャーを認識して制御命令を実行する電子端末装置およびその動作方法 |
CN113781572A (zh) * | 2020-06-10 | 2021-12-10 | 富士通株式会社 | 计算方法、计算程序和信息处理设备 |
-
2017
- 2017-02-13 JP JP2017024012A patent/JP2018132319A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021184232A (ja) * | 2020-05-21 | 2021-12-02 | 株式会社トゥービーソフトTobesoft Co., Ltd. | ユーザのハンドジェスチャーを認識して制御命令を実行する電子端末装置およびその動作方法 |
JP6994206B2 (ja) | 2020-05-21 | 2022-01-14 | 株式会社トゥービーソフト | ユーザのハンドジェスチャーを認識して制御命令を実行する電子端末装置およびその動作方法 |
CN113781572A (zh) * | 2020-06-10 | 2021-12-10 | 富士通株式会社 | 计算方法、计算程序和信息处理设备 |
CN113124782A (zh) * | 2021-04-14 | 2021-07-16 | 重庆市勘测院 | 一种基于点云抗差自适应的建构筑物垂直度检测方法 |
CN113124782B (zh) * | 2021-04-14 | 2022-09-20 | 重庆市勘测院 | 一种基于点云抗差自适应的建构筑物垂直度检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7273880B2 (ja) | 仮想オブジェクト駆動方法、装置、電子機器及び可読記憶媒体 | |
KR101687017B1 (ko) | 머리 착용형 컬러 깊이 카메라를 활용한 손 위치 추정 장치 및 방법, 이를 이용한 맨 손 상호작용 시스템 | |
CN108027979B (zh) | 用于角色动画的鲁棒的属性转移 | |
CN104380338B (zh) | 信息处理器以及信息处理方法 | |
CN110913751B (zh) | 具有滑动检测和校正功能的可穿戴眼睛跟踪系统 | |
JP6290922B2 (ja) | 現実環境における現実対象物上のデジタル情報を投影するための方法およびシステム | |
KR101556992B1 (ko) | 얼굴 성형 시뮬레이션을 이용한 3차원 스캔 시스템 | |
JP4608326B2 (ja) | 指示動作認識装置及び指示動作認識プログラム | |
JP2018119833A (ja) | 情報処理装置、システム、推定方法、コンピュータプログラム、及び記憶媒体 | |
CN109961523B (zh) | 虚拟目标的更新方法、装置、系统、设备及存储介质 | |
JP5873362B2 (ja) | 視線誤差補正装置、そのプログラム及びその方法 | |
WO2023093739A1 (zh) | 一种多视图三维重建的方法 | |
WO2020134925A1 (zh) | 人脸图像的光照检测方法、装置、设备和存储介质 | |
JP2020052979A (ja) | 情報処理装置およびプログラム | |
JP2018132319A (ja) | 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体 | |
JP6817742B2 (ja) | 情報処理装置およびその制御方法 | |
JP2019040229A (ja) | 画像処理装置、画像処理方法及びプログラム | |
CN115049744A (zh) | 机器人手眼坐标转换方法、装置、计算机设备和存储介质 | |
JP2018063693A (ja) | 画像処理装置、画像処理方法およびプログラム | |
EP3971683A1 (en) | Human body portion tracking method and human body portion tracking system | |
JP2005228110A (ja) | 情報処理方法および装置 | |
KR20210084348A (ko) | 이미지 처리 방법 및 장치, 이미지 처리 기기 및 저장 매체 | |
JP7029253B2 (ja) | 情報処理装置及びその方法 | |
JP2018128739A (ja) | 画像処理装置、画像処理方法、コンピュータプログラム、及び記憶媒体 | |
JP7451084B2 (ja) | 情報処理装置および情報処理方法 |