JP2020042575A - 情報処理装置、位置合わせ方法、及びプログラム - Google Patents
情報処理装置、位置合わせ方法、及びプログラム Download PDFInfo
- Publication number
- JP2020042575A JP2020042575A JP2018169820A JP2018169820A JP2020042575A JP 2020042575 A JP2020042575 A JP 2020042575A JP 2018169820 A JP2018169820 A JP 2018169820A JP 2018169820 A JP2018169820 A JP 2018169820A JP 2020042575 A JP2020042575 A JP 2020042575A
- Authority
- JP
- Japan
- Prior art keywords
- model
- coordinate system
- orientation
- unit
- camera
- 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
Images
Landscapes
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】見た目の特徴が乏しい画像であっても、位置合わせを容易に行うことが可能な情報処理装置、位置合わせ方法、及びプログラムを提供すること。
【解決手段】情報処理装置の加速度データを出力する慣性センサと、前記加速度データから世界座標系における第1の重力方向を推定する重力方向推定部と、カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出するモデル位置推定部と、カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画するモデル描画部と、前記モデル描画部の描画結果に従って、前記入力画像と前記モデルとを表示する表示部とを備える情報処理装置。
【選択図】図1
【解決手段】情報処理装置の加速度データを出力する慣性センサと、前記加速度データから世界座標系における第1の重力方向を推定する重力方向推定部と、カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出するモデル位置推定部と、カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画するモデル描画部と、前記モデル描画部の描画結果に従って、前記入力画像と前記モデルとを表示する表示部とを備える情報処理装置。
【選択図】図1
Description
本発明は、情報処理装置、位置合わせ方法、及びプログラムに関する。
近年、AR(Augmented Reality)技術が注目されつつある。ARは、例えば、人が知覚する現実環境をコンピュータにより拡張する技術、およびコンピュータにより拡張された現実環境そのものを指す用語として用いられる。ARでは、例えば、現実世界をベースとして、仮想物体を現実世界に映し出して、現実世界の一部を拡張した映像を映し出すことができる。ARは、例えば、仮想空間がベースとなり、現実世界が入り込まないVR(Virtual Reality:仮想現実)と対比されて用いられる場合がある。
AR技術では、仮想物体を、カメラの動きに従って、現実世界に重畳して3次元的に変化させている。例えば、AR技術を適用する情報処理装置では、各画像フレームにおいて、現実世界に重畳させる仮想物体の位置を、カメラの位置(又は方向)と姿勢(又は回転)に応じて決定する。仮想物体の位置を、カメラの位置と姿勢に応じて画像座標系へと投影したときに、現実世界の座標系から画像座標系へ、座標系を変換する情報を求めることを、例えば、「位置合わせ」と称する場合がある。
位置合わせの手法として、例えば、マーカーベースの位置合わせ手法がある。マーカーベースの位置合わせ手法は、例えば、2値(例えば、白と黒)の矩形のマーカーを予め用意しておき、情報処理装置において、マーカーを撮像し、撮像したマーカーの画像からマーカーの直線を検出するなどして、位置合わせを行う手法である。マーカーベースの位置合わせ手法は、例えば、既知のマーカーが用いられるため、情報処理装置では、画像から直線などを容易に検出し、位置合わせも容易に行うことが可能である。
しかし、マーカーベースの位置合わせ手法は、マーカーを別途用意することになる。そのため、マーカーベースの位置合わせ手法は、マーカーを用いない他の手法と比較して、設置コストが高くなる場合がある。
そこで、位置合わせ手法に関しては、マーカーレスによる位置合わせ手法の技術がある。例えば、様々な姿勢による物体を観測して学習データを得て、メモリなどに保存し、カメラで撮影した単一視点のRGB(Red, Green, Blue)画像から、3次元6D(Degree of freedom)の被写体の位置と姿勢を学習ベースで推定する技術がある。
また、仮想座標系内に固定されている仮想カメラからの仮想画像を、実空間中のオブジェクトの実ビデオ画像と実質的に一致する位置までカメラを移動させて、仮想座標系の仮想モデルの位置を、実座標系のオブジェクトの位置にマッピングする技術がある。
この技術によれば、オブジェクトの仮想画像の、オブジェクトの実際の位置へのコレジストレーションのための改善されたシステムおよび方法を提供できる、とされる。
Wadim Kehl et al., "SSD-6D: Making RGB-Based 3D Detection and 6D Pose Estimation Great Again", ICCV(IEEE (The Institute of Electrical and Electronics Engineers, Inc.) International Conference on Computer Vision), 2017
しかし、単一視点のRGB画像から学習ベースで被写体の位置と姿勢と推定する技術は、見た目の特徴が乏しい画像が被写体の場合、その物体の位置と姿勢を推定することが困難な場合がある。「見た目の特徴が乏しい画像」とは、例えば、コントラストの強いコーナ点やエッジ点の数が閾値よりも少ない、或いは、コントラストの強い表面の模様の数が閾値よりも少ない画像などの場合である。このような物体の画像は、画像処理で抽出可能な特徴数が閾値よりも少ない傾向にある。かかる技術では、メモリに保存した学習データに基づいて、被写体の位置と姿勢を推定しており、特徴数が閾値よりも少ない場合、RGB画像に対応する学習データをメモリから読み出しても、読み出した学習データの精度が低くなる場合がある。従って、かかる技術では、「見た目の特徴が乏しい画像」に対して、推定した被写体の位置と姿勢の精度が低くなる場合がある。
また、固定された仮想カメラからの仮想画像を実ビデオ画像と実質的に一致させる技術は、例えば、仮想画像が固定されて表示されるため、実ビデオ画像と実質的に一致させるために、ユーザが、ある決められた1つの位置及び姿勢にカメラを移動させるようにしている。従って、かかる技術では、位置合わせの際に、カメラの移動が制限され、ユーザにとって、位置合わせが容易に行うことができない場合がある。
そこで、見た目の特徴が乏しい画像であっても、位置合わせを容易に行うことが可能な情報処理装置、位置合わせ方法、及びプログラムを提供することにある。
一開示は、情報処理装置の加速度データを出力する慣性センサと、前記加速度データから世界座標系における第1の重力方向を推定する重力方向推定部と、カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出するモデル位置推定部と、カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画するモデル描画部と、前記モデル描画部の描画結果に従って、前記入力画像と前記モデルとを表示する表示部とを備える情報処理装置。
一開示によれば、見た目の特徴が乏しい画像であっても、位置合わせを容易に行うことが可能である。
以下、本発明を実施するための形態について説明する。なお、以下の実施例は開示の技術を限定するものではない。そして、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[第1の実施の形態]
<情報処理装置の構成例>
図1は情報処理装置100の構成例を表す図である。
<情報処理装置の構成例>
図1は情報処理装置100の構成例を表す図である。
情報処理装置100は、例えば、スマートフォン、ゲーム装置、設備の点検及び管理装置、ナビゲーション装置などである。
第1の実施の形態における情報処理装置100は、AR技術を用いて、現実世界にモデル画像(又仮想モデル、或いは3D(3-Dimension)モデル。以下、「3Dモデル」と称する場合がある。)を表示させる。情報処理装置100は、3Dモデルを用いて位置合わせを行う。この際、情報処理装置100は、見た目の特徴が乏しい物体を対象物体とする場合でも、様々なカメラ視点から、3Dモデルを用いて対象物体に対する位置合わせが可能となる。
本第1の実施の形態において、「位置合わせ」とは、例えば、2つの座標系を結びつける情報を算出することである。本第1の実施の形態における「位置合わせ」は、例えば、モデル座標系を世界座標系へ変換する行列Twmを算出することである。「位置合わせ」を、例えば、レジストレーションと称する場合もある。座標系を含め、詳細は後述する。
位置合わせ後の3Dモデルは、例えば、図14(B)や図16(B)に示すように、対象物体に合致した状態で表示部109に表示される。そのため、ユーザは、表示部109に表示された3Dモデルと対象物体との位置関係により、対象物体が変化したことを確認するなどして、設備の点検や管理を行うことが可能となる。或いは、情報処理装置100では、位置合わせ後において、表示部109に3次元のナビゲーション画像を表示させたり、ゲームの3次元のキャラクタを表示させたりすることが可能となる。
図1に示すように、情報処理装置100は、撮像部101、慣性センサ102、記憶部103、自己位置推定部104、重力方向推定部105、初期化処理部106、モデル位置推定部107、モデル描画部108、表示部109、認識開始判定部110、及び物体位置認識部111を備える。
撮像部101は、対象物体を含む画像を撮像し、撮像した画像を入力画像とし、入力画像の画像データを出力する。撮像部101は、画像データを記憶部103に記憶する。画像データは、例えば、RGB(Red Green Blue)の各プレーンを持つRGB画像データである。
慣性センサ102は、情報処理装置100の加速度を測定し、測定した加速度を加速度データとして出力する。慣性センサ102は、加速度データを記憶部103に記憶する。慣性センサ102は、例えば、加速度センサやジャイロセンサなどであってもよい。
記憶部103は、例えば、メモリであって、RGB画像データ、加速度データ、さらに、3Dモデルデータと各種設定値を記憶する。3Dモデルデータは、例えば、世界座標系における3Dモデルの位置を表す位置情報とその位置におけるRGBデータとが含まれる。また、各種設定値は、例えば、仮想カメラ座標系における3Dモデルの任意の2点P1,m,P2,mなどが含まれる。なお、世界座標系や仮想カメラ座標系などの座標系については後述する。
自己位置推定部104は、記憶部103から読み出したRGB画像データに基づいて、世界座標系における実カメラ(例えば、撮像部101)の位置と姿勢を推定する。例えば、自己位置推定部104は、SLAM(Simultaneous Localization and Mapping)を用いて、複数画像フレームのRGB画像データから、実カメラの位置と姿勢を表すカメラパラメータを算出する。また、自己位置推定部104は、例えば、カメラパラメータを含む行列を算出する。カメラパラメータを含む行列は、例えば、世界座標系から実カメラ座標系への変換行列Tcwになり得る。詳細は動作例で説明する。自己位置推定部104は、変換行列Tcwなどをモデル描画部108とモデル位置推定部107へ出力する。
重力方向推定部105は、記憶部103から読み出した加速度データに基づいて、世界座標系における重力方向を推定する。例えば、重力方向推定部105は、内部メモリに記憶された式を利用して、加速度データから重力方向を推定する。詳細は動作例で説明する。重力方向推定部105は、推定した重力方向をモデル位置推定部107へ出力する。
初期化処理部106は、記憶部103から読み出した3Dモデルデータと各種設定値とを利用して、仮想カメラ座標系を設定する。各種設定値としては、例えば、3Dモデル上の任意の2点P1,m,P2,mと、2点P1,m,P2,m間のユークリッド距離L、2点P1,m,P2,mとを含む平面の法線ベクトルnc、及び鉛直下方向ベクトルgmがある。そして、初期化処理部106は、仮想カメラ座標系における単位視線ベクトルr1,r2を算出する。初期化処理部106は、算出した単位視線ベクトルr1,r2と仮想カメラ座標系における各種数値とをモデル位置推定部107へ出力する。詳細は動作例で説明する。
モデル位置推定部107は、記憶部103から読み出した3Dモデルデータ、重力方向、単位視線ベクトルr1,r2、世界座標系から実カメラ座標系への変換行列Tcwなどを用いて、モデル座標系における3Dモデルの位置と姿勢を推定する。具体的には、例えば、モデル位置推定部107は、モデル座標系における3Dモデルの位置と姿勢を世界座標系における3Dモデルの位置と姿勢へそれぞれ変換する変換行列Twmを算出する。また、モデル位置推定部107は、例えば、世界座標系の3Dモデルの位置及び姿勢をカメラ座標系の3Dモデルの位置及び姿勢へ変換したり、モデル座標系における3Dモデルの位置及び姿勢へ変換したりする処理を行う。詳細は動作例で説明する。モデル位置推定部107は、カメラ座標系の3Dモデルの位置及び姿勢などをモデル描画部108へ出力し、モデル座標系における3Dモデルの位置及び姿勢と変換行列Twmなどを、物体位置認識部111へ出力する。
なお、3Dモデルの位置及び姿勢の他の座標系への変換は、例えば、変換行列により行われる。他の座標系の位置及び姿勢へと変換するための数値が変換行列の各成分に含まれる。以下では、例えば、1つの変換行列により、ある座標系の3Dモデルの位置及び姿勢を、他の座標系の3Dモデルの位置及び姿勢へ変換することができるとして説明する。また、変換行列により、3Dモデルの位置及び姿勢がある座標系から他の座標系へ変換されるが、このことを、例えば、ある座標系における3Dモデルデータが、他の座標系における3Dモデルデータへ変換される、として説明する場合がある。3Dモデルの位置及び姿勢を、例えば、3Dモデルデータと称する場合がある。
モデル描画部108は、入力画像に3Dモデルを描画する。具体的には、モデル描画部108は、以下の処理を行う。すなわち、モデル描画部108は、カメラ座標系の3Dモデルデータを、投影行列Tpを用いて、画像座標系の3Dモデルデータへ変換する。モデル描画部108は、RGB画像データと3Dモデルデータとを、画像座標系に描画する。この際、モデル描画部108は、画像座標系の3Dモデルの位置におけるRGB画像データを、3Dモデルの画像データへ変更する。モデル描画部108は、画像座標系におけるRGB画像データと3Dモデルの画像データとを表示部109と認識開始判定部110へ出力する。
表示部109は、モデル描画部108から出力されたRGB画像データと3Dモデルの画像データとに基づいて、入力画像と3Dモデルを表示する。表示部109に表示される3Dモデルの位置は、カメラ座標系における重力方向に応じて変化する。ユーザは、表示部109においてこのように変化する3Dモデルを見ながら、情報処理装置100(又は撮像部101)を移動させ、入力画像に含まれる対象物体と3Dモデルとを一致させて、「位置合わせ」を行う。そのように一致したときにおいて、表示部109に表示される対象物体と3Dモデルの例が、例えば、図14(B)や図16(B)となる。
図1に戻り、認識開始判定部110は、例えば、ユーザが情報処理装置100の操作ボタンを押圧したか否かにより、対象物体の位置合わせの開始判定を行う。認識開始判定部110は、ユーザにより、位置合わせの開始判定が行われたと判定したときは、その旨を物体位置認識部111へ通知する。
物体位置認識部111は、例えば、位置合わせの開始判定の行われた旨の通知を受け取ったとき、その通知を受け取ったときのモデル座標系から世界座標系への変換行列Twmを、モデル位置推定部107から受け取る。そして、物体位置認識部111は、この変換行列Twmを利用して、モデル画像系における3Dモデルデータを世界座標系の3Dモデルデータへ変換したり、世界座標系の3Dモデルデータをカメラ座標系の3Dモデルデータへ変換したりする。物体位置認識部111は、カメラ座標系の3Dモデルデータをモデル描画108へ出力する。モデル描画部108では、この3Dモデルデータに対して、投影行列Tpを用いて画像座標系への3Dモデルデータへ変換し、画像座標系に3Dモデルデータを描画する。表示部109では、描画結果に従って、入力画像と3Dモデルとを表示する。
<各座標系について>
図2は各座標系の例を表す図である。本第1の実施の形態では、世界座標系(X,Y,Z)、仮想カメラ座標系(Xv,Yv,Zv)、実カメラ座標系(Xc,Yc,Zc)、モデル座標系(Xm,Ym,Zm)、及び画像座標系(x,y)の5つの座標系がある。
図2は各座標系の例を表す図である。本第1の実施の形態では、世界座標系(X,Y,Z)、仮想カメラ座標系(Xv,Yv,Zv)、実カメラ座標系(Xc,Yc,Zc)、モデル座標系(Xm,Ym,Zm)、及び画像座標系(x,y)の5つの座標系がある。
世界座標系(X,Y,Z)の任意の位置に世界座標系の原点Owが存在する。対象物体は、世界座標系(X,Y,Z)において、固定された位置に位置してもよい。また、3Dモデルも世界座標系(X,Y,Z)において、ある特定の位置に位置している。
また、世界座標系における任意の位置に仮想カメラ座標系(Xv,Yv,Zv)の原点Ovが存在し、原点Ovを基準にして仮想カメラ座標系(Xv,Yv,Zv)がある。原点Ovは、例えば、仮想カメラの視点位置となる。
実カメラ座標系(Xc,Yc,Zc)についても、世界座標系の任意の位置にその原点Ocが存在し、原点Ocを中心に実カメラ座標系(Xc,Yc,Zc)がある。原点Ocは、例えば、実カメラの視点位置となる。以下では、原点Ov,Ocを、仮想カメラと実カメラの視点位置とそれぞれ称する場合がある。
なお、仮想カメラ座標系(Xv,Yv,Zv)における3Dモデルの位置及び姿勢と、実カメラ座標系(Xc,Yc,Zc)における3Dモデルの位置及び姿勢は、視点位置がそれぞれ異なるため、異なるものとなる。また、実カメラ座標系(Xc,Yc,Zc)の視点位置Ocは、世界座標系(X,Y,Z)において移動可能である。
実カメラ座標系(Xc,Yc,Zc)の原点Ocと、3Dモデルの中心とを結ぶ線分上に、画像座標系(x,y)の原点oが存在する。画像座標系(x,y)は、世界座標系(X,Y,Z)において、実カメラ座標系(Xc,Yc,Zc)と3Dモデルとの間に位置する。実カメラの視点位置Ocと、画像座標系(x,y)の原点oとの間の距離は、例えば、焦点距離fと呼ばれ、世界座標系において一定の距離を維持する。
さらに、3Dモデル上のある特定の位置(図2の例では、図面上、右上の角)を原点Omとするモデル座標系(Xm,Ym,Zm)がある。
図2に示すように、対象物体には、世界座標系(X,Y,Z)における重力ベクトルgwが働く。図2では、Y軸方向の負方向に重力ベクトルgwが働くため、−gwとして表記している。重力ベクトルgwは、3Dモデルにも働く。
本第1の実施の形態では、実カメラ座標系(Xc,Yc,Zc)において、重力ベクトルgcが存在する。
図3は、実カメラの視点位置Ocと、実カメラ座標系(Xc,Yc,Zc)における重力ベクトルgcとの関係例を表す図である。図3に示すように、視点位置Ocを、3Dモデルを見上げる方向に移動させると、重力ベクトル(−gc)は、視点位置Ocの方向へ傾く。一方、図2において、視点位置Ocを、3Dモデルに近づく方向へ移動させても、重力ベクトル(−gc)の方向はほとんど変わらない。
すなわち、実カメラ座標系(Xc,Yc,Zc)における重力ベクトルgcは、例えば、重力ベクトルgwの方向(重力方向)に対して同じ向きを維持したまま、実カメラの視点位置Ocが世界座標系(X,Y,Z)を移動しても、その方向は変わらない。一方、重力ベクトルgwの方向(重力方向)に対して、実カメラの視点位置Ocがその向きを変える方向に移動すると、重力ベクトルgcの方向は変化する。このように、重力ベクトルgcの方向は、実カメラの視点位置Ocの移動により、変化する場合がある、という特徴を持つ。本第1の実施の形態では、このような視点位置Ocの移動により、重力ベクトルgcのその方向が変化する場合、その変化に応じて、3Dモデルの実カメラ座標系の位置及び姿勢を変化させるようにしている。詳細は動作例で説明する。
なお、以下では、実カメラ座標系のことを、例えば、カメラ座標系と称する場合がある。
<動作例>
図4は情報処理装置100の動作例を表すフローチャートである。
図4は情報処理装置100の動作例を表すフローチャートである。
情報処理装置100は、処理を開始すると(S10)、初期化処理を行う(S11)。
図5は初期化処理の動作例を表すフローチャートである。初期化処理は、例えば、初期化処理部106で処理が行われ、仮想カメラ座標系における単位視線ベクトルr1,r2が算出される。
初期化処理部106は、初期化処理を開始すると(S110)、仮想カメラ座標系における3Dモデルの任意の2点P1,v,P2,v(P1,v≠P2,v)を決定する(S111)。
図6は、世界座標系(X,Y,Z)と仮想カメラ座標系(Xv,Yv,Zv)との関係例を表す図である。図6に示すように、任意の2点P1,v,P2,vは、仮想カメラ座標系(Xv,Yv,Zv)における3Dモデル上の任意の2点を表している。例えば、初期化処理部106は、記憶部103に記憶された、2点P1,v,P2,vの位置座標を、記憶部103から読み出すことで、任意の2点P1,v,P2,vを決定してもよい。
図5に戻り、また、初期化処理部106は、2点P1,v,P2,v間のユークリッド距離Lを決定する(S111)。例えば、初期化処理部106は、2点P1,v,P2,vの位置座標に基づいて、その距離を計算することで、Lを計算してもよいし、記憶部103に記憶されたLを読み出すことで決定してもよい。
さらに、初期化処理部106は、2点P1,v,P2,vを含む適当な平面の法線ベクトルnvを決定する(S111)。図6に示すように、法線ベクトルnvは、3Dモデルのある面に対する法線ベクトルでもよい。例えば、初期化処理部106は、点P1,v,P2,vの位置座標に基づいて、法線ベクトルnvを計算してもよいし、記憶部103から法線ベクトルnvの情報を読み出すことで、法線ベクトルnvを決定してもよい。
図5に戻り、さらに、初期化処理部106は、仮想カメラ座標系(Xv,Yv,Zv)における鉛直下向きベクトルgvを決定する(S111)。鉛直下向きベクトルgvは、例えば、図6に示すように、仮想カメラ座標系(Xv,Yv,Zv)における重力ベクトルとなり得る。例えば、初期化処理部106は、記憶部103から鉛直下向きベクトルgvの情報を読み出すことで、決定してもよい。この仮想カメラ座標系(Xv,Yv,Zv)における鉛直下向きベクトルgvも、重力ベクトルgcと同様に、例えば、図3に示すように、仮想カメラの視点位置Ovに応じて、変化する場合がある。
図5に戻り、次に、初期化処理部106は、ある位置及び姿勢から2点P1,v,P2,vを観測する仮想カメラを定義する(S112)。例えば、初期化処理部106は、図6に示すように、世界座標系(X,Y,Z)の任意の位置Ovを、記憶部103から読み出して、仮想カメラの視点位置に設定することで、仮想カメラを定義する。
図5に戻り、次に、初期化処理部106は、仮想カメラ座標系(Xv,Yv,Zv)における単位視線ベクトルr1,r2(r1≠r2)を計算する(S113)。例えば、初期化処理部106は、仮想カメラの視点位置Ovの位置座標(0,0,0)と、仮想モデル座標系の2点P1,v,P2,vの位置座標とを結ぶ線分の長さが「1」となる2点の位置座標を計算し、その位置座標をそれぞれ単位視線ベクトルr1,r2の成分としてもよい。
そして、初期化処理部106は、初期化処理を終了する(S114)。初期化処理部106は、計算した単位視線ベクトルr1,r2と、決定した法線ベクトルnv、及び鉛直下向きベクトルgvをモデル位置推定部107へ出力する。
図4に戻り、次に、情報処理装置100は、RGB画像データと加速度データとを取得する(S12)。例えば、撮像部101は、撮像した入力画像のRGB画像データを記憶部103に記憶し、慣性センサ102は、入力画像を撮像したときに測定した加速度データを記憶部103に記憶する。
なお、情報処理装置100は、S12からS17までの処理を、撮像部101で撮像した画像の画像フレーム毎に行う。従って、情報処理装置100は、画像フレーム毎に、RGB画像データを取得したり、画像フレーム毎に、慣性センサ102から加速度データを取得したりする。
次に、情報処理装置100は、カメラの位置及び姿勢を推定する(S13)。例えば、自己位置推定部104は、SLAMを利用して、カメラパラメータを取得し、実カメラの位置及び姿勢を推定することで、取得したカメラパラメータを含む変換行列Tcwを計算する。
ここで、SLAMについて説明する。SLAMとは、例えば、同一のカメラで撮像された複数の画像(2次元)に基づいて、画像の特徴点を抽出して追跡することで、カメラ周囲の3次元構造の認識と、カメラの位置及び姿勢の算出とを同時に行う技術である。
SLAM処理として、自己位置推定部104では、例えば、以下の処理を行う。
すなわち、最初に、自己位置推定部104は、記憶部103からRGB画像データを読み出し、RGB画像データにより示された複数の画像(又は画像フレーム)から、特徴点を抽出する。例えば、自己位置推定部104は、SIFT(Scale Invariant Feature Transform)やSURF(Speeded Up Robust Feature)などの公知の手法を用いて、各画像について、特徴点を抽出する。
次に、自己位置推定部104は、各画像で抽出した特徴点の各画像におけるマッチングを行う。この際、自己位置推定部104は、特徴点抽出で用いた公知の手法で、マッチングを行ってもよい。
そして、自己位置推定部104は、マッチング結果に基づいて、特徴点の3次元座標を算出し、算出した3次元座標から各画像に対応したカメラパラメータを算出する。カメラパラメータとしては、例えば、カメラの位置座標と座標軸の回転角を含む。自己位置推定部104は、このカメラパラメータを含む変換行列Tcwを算出する。この変換行列Tcwは、例えば、カメラの位置座標(又は位置)と座標軸の回転角(又は姿勢)を含むため、世界座標系(X,Y,Z)における任意の位置及び姿勢を、カメラの視点位置を原点としたカメラ座標系(Xc,Yc,Zc)における位置及び姿勢に変換する変換行列となり得る。
図7(A)は、各座標系の関係例を表す図である。自己位置推定部104は、SLAMを用いて、カメラの位置及び姿勢を算出することで、世界座標系(X,Y,Z)から実カメラ座標系(Xc,Yc,Zc)への変換行列Tcwを算出している。
以上、SLAMの処理の例について説明した。SLAMには、例えば、EKF(Extended Kalman Filter)を用いたEKFベースのSLAMや、パーティクルフィルタを利用したSLAMなどがある。本第1の実施の形態では、例えば、どのような手法のSLAMを用いてもよい。
図4に戻り、次に、情報処理装置100は、重力方向を計算する(S14)。例えば、重力方向推定部105は、以下の処理を行う。
すなわち、重力方向推定部105は、記憶部103から読み出した、カメラ座標系(Xc,Yc,Zc)の各軸方向の加速度データ(Ax,Ay,Az)から、以下の式を用いて、各軸方向に対する傾き(θ,ψ,φ)を計算する。
そして、重力方向推定部105は、傾き(θ,ψ,φ)に基づいて、重力方向を推定する。例えば、重力方向推定部105は、傾きが、(0,−1,0)のときは、カメラ座標系(Xc,Yc,Zc)の−Yc軸方向に重力方向があると推定し、傾きが、(1,0,0)のときは、カメラ座標系(Xc,Yc,Zc)のXc軸方向に重力方向があると推定する。重力方向推定部105は、推定した重力方向が、世界座標系(X,Y,Z)の重力方向であるとして、世界座標系(X,Y,Z)における重力ベクトルgwの方向(又は重力方向)を得る。
例えば、重力方向推定部105は、内部メモリに式(1)から式(3)を記憶し、本処理の際に読み出して、記憶部103から読み出した加速度データを式(1)から式(3)に代入することで、傾きを算出する。そして、重力方向推定部105は、その傾きに基づいて、重力ベクトルgwの方向を推定する。
以上が重力方向の計算方法である。
次に、情報処理装置100は、3Dモデルの位置と姿勢の計算処理(以下、「3Dモデルの計算処理」と称する場合がある。)を行う(S15)。
図8は、3Dモデルの計算処理の動作例を表すフローチャートである。
モデル位置推定部107は、3Dモデルの計算処理を開始すると(S150)、カメラ座標系における重力ベクトルgcの方向と、仮想モデル座標系における鉛直下向きベクトルgvの方向とが一致するように法線nmを回転させる(S151)。
図9(A)と図9(B)は、S151の処理を説明するための図である。本処理では、仮想カメラ座標系(Xv,Yv,Zv)における法線ベクトルnvを回転させて、カメラ座標系(Xc,Yc,Zc)における法線ベクトルncを算出する。その際に、モデル位置推定部107は、カメラ座標系(Xc,Yc,Zc)の重力ベクトルgcと、仮想カメラ座標系の鉛直下向きベクトルgvとを用いて計算する。モデル位置推定部107は、例えば、以下の計算を行う。
次に、モデル位置推定部107は、回転軸vのまわりに角度θだけ回転させる回転行列Rを、以下の式を用いて算出する。
そして、モデル位置推定部107は、回転行列Rを用いて、以下の式を利用して、カメラ座標系(Xc,Yc,Zc)における法線ベクトルncを計算する。
なお、モデル位置推定部107は、例えば、カメラ位置推定処理(図4のS13)で得た変換行列Tcwと、重力方向計算処理(S14)で得た重力ベクトルgwを用いて、以下の式により、重力ベクトルgcを計算する。
例えば、モデル位置推定部107は、内部メモリに式(4)から式(8)を記憶し、本処理の際に内部メモリから式(4)から式(8)を読み出して、鉛直下向きベクトルgvや重力ベクトルgcなどを、式(4)から式(8)に代入するなどして、法線ベクトルncを計算する。
図8に戻り、次に、モデル位置推定部107は、固定視線のスケールt1,t2を計算する(S152)。
図10(A)は、スケールt1,t2の例を表す図である。スケールt1,t2は、例えば、カメラ座標系(Xc,Yc,Zc)の視点位置Ocから、初期化処理で得た単位視線ベクトルr1,r2を延長し、2点間の距離がLとなっている3Dモデル上の2点P1,c,P2,cへ延ばしたときの、単位視線ベクトルr1,r2に対するスケールを表す。
モデル位置推定部107は、例えば、以下の式を利用して、スケールt1,t2を計算する。
ただし、αは、以下の式となる。
例えば、モデル位置推定部107は、内部メモリに式(9)から式(11)を記憶し、処理の際に内部メモリから読み出して、S151で得た法線ベクトルncなどを式(9)から式(11)に代入することで、スケールt1,t2を得る。
図8に戻り、次に、モデル位置推定部107は、カメラ座標系における3Dモデルの2点P1,c,P2,cを、以下の式を用いて計算する(S153)。
P1,c=t1r1,P2,c=t2r2 ・・・(12)
例えば、モデル位置推定部107は、内部メモリに式(12)を記憶し、処理の際に内部メモリから読み出して、S152で計算したスケールt1,t2を式(12)に代入することで、2点P1,c,P2,cを得る。
例えば、モデル位置推定部107は、内部メモリに式(12)を記憶し、処理の際に内部メモリから読み出して、S152で計算したスケールt1,t2を式(12)に代入することで、2点P1,c,P2,cを得る。
ここで、カメラ座標系(Xc,Yc,Zc)における任意の2点P1,c,P2,cと、カメラ座標系(Xc,Yc,Zc)における視点位置Ocとの関係について説明する。
図10(B)は、その関係例を表す図である。上述したように、カメラ座標系(Xc,Yc,Zc)における重力ベクトルgcは、カメラの視点位置Ocが重力ベクトルgwの方向(重力方向)に対して向きを変える場合、その方向が変化する。
例えば、図10(B)に示すように、カメラの視点位置がOcからO’cへ移動した場合を考える。丁度、視点位置Ocが、3Dモデルに対して、世界座標系(X,Y,Z)のY軸方向へ(3Dモデルの上空方向へ)、移動した場合である。
この場合、図3の場合と同様に、カメラ座標系(Xc,Yc,Zc)における重力ベクトルgcは、重力ベクトルgwの方向に対して向きを変えているため、その方向が変化する。従って、カメラの視点位置がOcにあるときの重力ベクトルgcと、カメラの視点位置がO’cにあるときの重力ベクトルgcとは異なるものとなる。この相違により、式(4)と式(5)に示すように、カメラの視点位置がOcにあるときの回転軸vと回転角度θと、カメラの視点位置がO’cにあるときの回転軸vと回転角度θとが異なるものとなる。カメラの視点位置の相違により、回転軸vと回転角度θとが異なると、式(6)に示す回転行列Rも異なるものとなり、結果として、法線ベクトルncも異なるものとなる。スケールt1,t2は、式(9)から式(11)に示すように、法線ベクトルncが含まれるため、上述したカメラの視点位置の相違により、スケールt1,t2も異なるものとなる。このスケールt1,t2の相違により、図10(B)に示すように、カメラの視点位置がOcからO’cへ移動すると、カメラ座標系(Xc,Yc,Zc)における2点P1,c,P2,cは、2点P’1,c,P’2,cへそれぞれ移動する。従って、例えば、視点位置O’cからは、視点位置Ocの場合と比較して、3Dモデルの上面が大きく見える状態となる。
図11(A)と図11(B)は、カメラの視点位置をOcからO’cへ変えたときの、3Dモデルの表示例を表す図である。図11(B)は、図11(A)と比較して、3Dモデルの上面部分が大きく表示されているのがわかる。
このように、本第1の実施の形態では、カメラ座標系(Xc,Yc,Zc)における3Dモデルの位置と姿勢(例えば、例えば、2点P1,c,P2,c)を、カメラ座標系からの重力方向(例えば、重力ベクトルgc)に応じて変化させるようにしている。このような関係により、情報処理装置100は、図11(A)や図11(B)に示すように、3Dモデルの位置と姿勢がカメラの視点位置Ocの位置と姿勢に応じて変化する。
図8に戻り、次に、モデル位置推定部107は、カメラ座標系(Xc,Yc,Zc)の重力ベクトルgcと、法線ベクトルnc、及びモデル幅Wに基づいて、カメラ座標系(Xc,Yc,Zc)からモデル座標系(Xm,Ym,Zm)へ、座標系を変換する変換行列Tmcを計算する(S154)。変換行列Tmcの全体の座標系における位置付けは、例えば、図7(B)に示すものとなる。なお、モデル幅Wは、例えば、図12に示すように、カメラ座標系における点P1,cから、モデル座標系の原点Omまでの距離を表し、モデル座標系のXm軸方向における3Dモデルの長さを表す。
例えば、モデル位置推定部107は、変換行列Tmcの全成分に、重力ベクトルgcと、法線ベクトルnc、及びモデル幅Wの全部又は一部を含む行列を計算してもよい。或いは、モデル位置推定部107は、例えば、変換行列Tmcの一部の成分が数値とし、他の成分に、重力ベクトルgcと、法線ベクトルnc、及びモデル幅Wの全部又は一部を含む行列を計算してもよい。或いは、モデル位置推定部107は、例えば、内部メモリに、変換行列Tmcを記憶しておき、重力ベクトルgcと、法線ベクトルnc、及びモデル幅Wを、変換行列Tmcの各成分の全部又は一部に代入することで、変換行列Tmcを得るようにしてもよい。
なお、モデル幅Wは、例えば、記憶部103やモデル位置推定部107の内部メモリに記憶しておき、モデル位置推定部107から記憶部103や内部メモリから読み出して、変換行列Tmcを計算するようにしてもよい。
図8に戻り、次に、モデル位置推定部107は、世界座標系におけるカメラの位置と、3Dモデル上の2点P1,c,P2,cに基づいて、モデル座標系(Xm,Ym,Zm)から世界座標系(X,Y,Z)へ、座標系を変換する変換行列Twmを計算する(S155)。
図12は、カメラ座標系(Xc,Yc,Zc)とモデル座標系(Xm,Ym,Zm)の関係例を表す図である。本処理では、3Dモデル上の2点P1,c,P2,cを、カメラ座標系(Xc,Yc,Zc)の点から、モデル座標系(Xm,Ym,Zm)への点へ変換する変換行列Twmを計算する。丁度、カメラの視点位置Ocから、3Dモデルの視点位置Omへ、視点位置を変えたときに、3Dモデル上の2点を、モデル座標系の2点P1,m,P2,mへ変換する場合の変換行列Twmを計算している。
図7(B)に示すように、S154の処理により、カメラ座標系(Xc,Yc,Zc)からモデル座標系(Xm,Ym,Zm)への変換行列Twmを計算した。また、自己位置推定処理(図4のS13)により、世界座標系(X,Y,Z)からカメラ座標系(Xc,Yc,Zc)への変換行列Tcwを計算した。本処理においては、この関係を利用して、モデル座標系(Xm,Ym,Zm)から世界座標系(X,Y,Z)への変換行列Twmを計算する。
すなわち、モデル位置推定部107は、以下の式を利用して、変換行列Twmを計算する。
例えば、モデル位置推定部107は、内部メモリから式(13)を読み出して、S13で計算した変換行列Tcwと、S154で計算した変換行列Tmcとを、式(13)に代入することで、変換行列Twmを得る。
図8に戻り、モデル位置推定部107は、S155の処理を終了すると、3Dモデルの計算処理を終了する(S156)。
以上、3Dモデル計算処理(図4のS15)について説明した。
なお、モデル位置推定部107は、自己位置推定部104から受け取った変換行列Tcwを用いて、記憶部103から読み出した世界座標系(X,Y,Z)における3Dモデルデータを、カメラ座標系(Xc,Yc,Zc)における3Dモデルデータへ変換する。モデル位置推定部107は、カメラ座標系(Xc,Yc,Zc)における3Dモデルデータを、モデル描画部108へ出力する。
また、モデル位置推定部107は、S154において算出した変換行列Tmcを利用して、カメラ座標系(Xc,Yc,Zc)における3Dモデルデータを、モデル座標系(Xm,Ym,Zm)における3Dモデルデータへ変換する。モデル位置推定部107は、モデル座標系(Xm,Ym,Zm)における3Dモデルデータと、S155で算出した変換行列Twmとを、物体位置認識部111へ出力する。
図4に戻り、次に、情報処理装置100は、カメラ映像に3Dモデルを描画する(S16)。例えば、モデル描画部108は、以下の処理を行う。
すなわち、モデル描画部108は、モデル位置推定部107から受け取った、カメラ座標系(Xc,Yc,Zc)における3Dモデルデータに対して、図13(A)に示すように、投影行列Tpを用いて、画像座標系(x,y)の3Dモデルデータへ変換する。そして、モデル描画部108は、記憶部103から読み出したRGBデータ(又はカメラ映像)と、変換後の3Dモデルデータとを、画像座標系(x,y)に描画する。この際、モデル描画部108は、画像座標系(x,y)における3Dモデルの位置における入力画像のRGB画像データを、3Dモデルの画像データに変更することで、3Dモデルを描画する。モデル描画部108は、描画結果を表示部109と認識開始判定部110へ出力する。表示部109は、描画結果に従って、カメラ映像に3Dモデルが写っている画像を表示する。
例えば、図11(A)や図11(B)、及び図14(A)は、表示部109に表示されるカメラ映像と3Dモデルの例を表す。カメラ映像には対象物体(図11(A)の例は、ティッシュ箱)が含まれており、ユーザが、3Dモデルを対象物体に一致させるように、撮像部101(又は情報処理装置100)を移動させることで、「位置合わせ」が行われる。
図4に戻り、次に、情報処理装置100は、ユーザの決定操作が行われたか否かを判定する(S17)。決定操作とは、例えば、ユーザが表示部109に写っている映像において、対象物体と3Dモデルとが一致したと判断したときに、情報処理装置100の操作ボタンなどを押す操作のことである。例えば、図14(B)は、表示部109に表示された3Dモデルの例であるが、3Dモデルと対象物体とが一致したとユーザが判断すると、所定の操作ボタンをユーザが押圧する。認識開始判定部110は、操作ボタンを押圧したことを示す信号を操作ボタンから受信したとき、決定操作が行われたと判定し(S17でYes)、その信号を受け取らかったとき、決定操作がおこなわれていないと判定する(S17でNo)。決定操作が行われなったとき、図4に示すように、情報処理装置100は、S12へ移行して、S12からS17までの処理を繰り返す。操作ボタンに代えて、例えば、表示部109に表示されたタッチパネルの操作により決定操作が行われてもよい。
情報処理装置100は、決定操作が行われたと判定したとき(S17でYes)、対象物体の位置及び姿勢を計算する(S18)。具体的には、物体位置認識部111は、例えば、決定操作が行われたときにモデル位置推定部107から受け取った変換行列Twmを取得することで、「位置合わせ」を行うことになる。決定操作が行われたときの変換行列Twmは、例えば、世界座標系における対象物体の位置及び姿勢と、世界座標系における3Dモデルの位置及び姿勢とが、ある対応関係にあるとき(又はマッピングしたとき)である。対応関係としては、例えば、世界座標系において、対象物体と3Dモデルとが一致する関係がある。物体位置認識部111は、このような対応関係にあるときの、変換行列Twmを、モデル位置推定部107から取得している、といえる。
そして、物体位置認識部111は、図13(B)に示すように、「位置合わせ」により取得した変換行列Twmや、モデル位置推定部107から受け取った変換行列Tcw、及び投影行列Tpを用いて、座標変換を(1)から(3)の順で行う。
具体的には、情報処理装置100は、例えば、以下の処理を行う。すなわち、物体位置認識部111は、モデル位置推定部107から受け取った、モデル座標系(Xm,Ym,Zm)における3Dモデルデータを、決定操作のタイミングでモデル位置推定部107から受け取った変換行列Twmを用いて、世界座標系(X,Y,Z)の3Dモデルデータへ変換する(図13(B)の(1))。さらに、物体位置認識部111は、自己位置推定部104から受け取った変換行列Tcwを用いて、世界座標系(X,Y,Z)の3Dモデルデータを、カメラ座標系(Xc,Yc,Zc)の3Dモデルデータへ変換する(図13(B)の(2))。物体位置認識部111は、カメラ座標系(Xc,Yc,Zc)における3Dモデルデータをモデル描画部108へ出力する。モデル描画部108では、投影行列Tpを用いて、物体位置認識部111から受け取った、カメラ座標系(Xc,Yc,Zc)における3Dモデルデータを、画像座標系(x,y)の3Dモデルデータへ変換する(図13(B)の(3))。そして、モデル描画部108は、変換後の3Dモデルデータと、記憶部103から読み出したRGB画像データとを、画像座標系(x,y)に描画する。
なお、モデル描画部108は、投影行列Tpを用いることで、x=−fXc/Zc、y=−fYc/Zcにより、カメラ座標系の点(Xc,Yc,Zc)を、画像座標系の点(x,y)へ変換する。モデル描画部108は、例えば、内部メモリに投影行列Tpを記憶しておき、処理の際に読み出して、カメラ座標系(Xc,Yc,Zc)における3Dモデルデータに適用することで、画像座標系(x,y)における3Dモデルデータを得る。
図13(B)に示すように、座標変換が(1)から(3)の順で行われ、物体位置認識部111では、世界座標系(X,Y,Z)における3Dモデルデータを生成した。その後の座標変換により、情報処理装置100では、この3Dモデルデータを、世界座標系(X,Y,Z)からカメラ座標系(Xc,Yc,Zc)を介して、画像座標系(x,y)へと変換した。このように、「位置合わせ」後、3Dモデルデータは、世界座標系(X,Y,Z)を介して3Dモデルデータを画像座標系(x,y)へと変換されている。そのため、3Dモデルデータは、「位置合わせ」後、世界座標系(X,Y,Z)と対応して表示部109に表示される。例えば、図14(B)において「位置合わせ」が行われた後は、対象物体である「ティッシュ箱」と、3Dモデルデータとが一致した状態で、表示部109に表示される。カメラの位置及び姿勢を変化させても、3Dモデルは対象物体と一致した状態で表示される。
図15(A)から図16(B)は、異なる形状の3Dモデルの例を表す。また、対象物体も、「サーバ装置」の例を表している。図15(A)から図16(B)に示すように、3Dモデルは、重力ベクトルgcに応じて、その位置と姿勢が変化している。
このように、本第1の実施の形態における3Dモデルは、重力ベクトルgcに応じて、その位置と姿勢が変化する。そのため、3Dモデルが表示部109において固定となっている場合と比較して、ユーザがカメラを移動させる自由度が増し、カメラの位置と姿勢に応じて、「位置合わせ」を容易に行うことができる。
また、本情報処理装置100における「位置合わせ」に際して、3Dモデルの画像データの特徴点を検出したり、対象物体の特徴点を検出したりする処理は、S14からS18までの処理では行われない。従って、図11(A)などに示す「ティッシュ箱」や、図15(A)などに示す「サーバ装置」など、「見た目の特徴が乏しい」対象物体の画像であっても、重力ベクトルgcに応じて変化する3Dモデルを用いているため、精度の良い「位置合わせ」を行うことが可能となる。
[その他の実施の形態]
図17は、情報処理装置100のハードウェア構成例を表す図である。
図17は、情報処理装置100のハードウェア構成例を表す図である。
情報処理装置100は、さらに、カメラ120、メモリ121、CPU(Central Processing Unit)122、ROM(Read Only Memory)123、及びRAM(Random Access Memory)124を備える。
メモリ121は、例えば、第1の実施の形態における記憶部103に対応する。
また、CPU122は、ROM123に記憶されたプログラムを読み出してRAM124にロードし、ロードしたプログラムを実行する。これにより、CPU122は、自己位置推定部104、重力方向推定部105、初期化処理部106、モデル位置推定部107、モデル描画部108、表示部109、認識開始判定部110、及び物体位置認識部111の機能を実現する。CPU122は、例えば、自己位置推定部104、重力方向推定部105、初期化処理部106、モデル位置推定部107、モデル描画部108、表示部109、認識開始判定部110、及び物体位置認識部111に対応する。
なお、CPU122に代えて、MPU(Micro Processing Unit)やDSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)などのプロセッサやコントローラなどが用いられてもよい。
図18は、情報処理装置100の他の構成例を表す図である。図18に示す例は、情報処理装置100の外部に撮像装置130があり、撮像装置130において、対象物体を含む画像を撮像する例を示す。撮像装置130は、例えば、カメラなどであり、撮像部101と慣性センサ102を含む。撮像装置130は、移動可能であり、ユーザにより様々な場所に移動することができる。撮像装置130で撮像されたRGBデータや、計測された加速度データは、有線や無線で情報処理装置100へ送信することができる。図18に示すように、情報処理システム10には、情報処理装置100と撮像装置130が含まれる。
以上まとめると、付記のようになる。
(付記1)
情報処理装置の加速度データを出力する慣性センサと、
前記加速度データから世界座標系における第1の重力方向を推定する重力方向推定部と、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出するモデル位置推定部と、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画するモデル描画部と、
前記モデル描画部の描画結果に従って、前記入力画像と前記モデルとを表示する表示部と
を備えることを特徴とする情報処理装置。
情報処理装置の加速度データを出力する慣性センサと、
前記加速度データから世界座標系における第1の重力方向を推定する重力方向推定部と、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出するモデル位置推定部と、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画するモデル描画部と、
前記モデル描画部の描画結果に従って、前記入力画像と前記モデルとを表示する表示部と
を備えることを特徴とする情報処理装置。
(付記2)
更に、前記モデルと前記入力画像に含まれる対象物体とが世界座標系で対応関係にあるときの前記第1の変換行列を前記モデル位置推定部から取得する物体位置認識部を備えることを特徴とする付記1記載の情報処理装置。
更に、前記モデルと前記入力画像に含まれる対象物体とが世界座標系で対応関係にあるときの前記第1の変換行列を前記モデル位置推定部から取得する物体位置認識部を備えることを特徴とする付記1記載の情報処理装置。
(付記3)
前記物体位置認識部は、前記モデルと前記対象物体とが世界座標系で一致したときの前記第1の変換行列を前記モデル位置推定部から取得することを特徴とする付記2記載の情報処理装置。
前記物体位置認識部は、前記モデルと前記対象物体とが世界座標系で一致したときの前記第1の変換行列を前記モデル位置推定部から取得することを特徴とする付記2記載の情報処理装置。
(付記4)
前記物体位置認識部は、ユーザの決定操作を示す信号を受信したとき、前記第1の変換行列を前記モデル位置推定部から取得することを特徴とする付記2記載の情報処理装置。
前記物体位置認識部は、ユーザの決定操作を示す信号を受信したとき、前記第1の変換行列を前記モデル位置推定部から取得することを特徴とする付記2記載の情報処理装置。
(付記5)
前記物体位置認識部は、前記第1の変換行列を利用して、モデル座標系における前記モデルの位置と姿勢を、世界座標系を介してカメラ座標系における前記モデルの位置と姿勢へそれぞれ変換し、
前記モデル描画部は、前記物体位置認識部でカメラ座標系に変換された前記モデルの位置と姿勢に基づいて、前記モデルと入力画像を画像座標系に描画する
ことを特徴とする付記2記載の情報処理装置。
前記物体位置認識部は、前記第1の変換行列を利用して、モデル座標系における前記モデルの位置と姿勢を、世界座標系を介してカメラ座標系における前記モデルの位置と姿勢へそれぞれ変換し、
前記モデル描画部は、前記物体位置認識部でカメラ座標系に変換された前記モデルの位置と姿勢に基づいて、前記モデルと入力画像を画像座標系に描画する
ことを特徴とする付記2記載の情報処理装置。
(付記6)
前記モデル位置推定部は、前記第1の重力方向を、カメラ座標系における第2の重力方向に変換して、カメラ座標系に対する前記第1の重力方向とし、
カメラ座標系における視点位置が前記第1の重力方向が変化する方向へ移動するとき、前記第2の重力方向は変化し、カメラ座標系における視点位置が前記第1の重力方向が変化しない方向に移動するとき、前記第2の重力方向は変化しないことを特徴とする付記1記載の情報処理装置。
前記モデル位置推定部は、前記第1の重力方向を、カメラ座標系における第2の重力方向に変換して、カメラ座標系に対する前記第1の重力方向とし、
カメラ座標系における視点位置が前記第1の重力方向が変化する方向へ移動するとき、前記第2の重力方向は変化し、カメラ座標系における視点位置が前記第1の重力方向が変化しない方向に移動するとき、前記第2の重力方向は変化しないことを特徴とする付記1記載の情報処理装置。
(付記7)
更に、前記入力画像の画像データに基づいて、世界座標系における撮像部又は撮像装置の位置と姿勢を推定し、推定した位置と姿勢に基づいて、世界座標系からカメラ座標系へ変換する第2の変換行列を算出する自己位置推定部を備え、
前記モデル位置推定部は、前記第2の変換行列を用いて、前記第1の重力方向を前記第2の重力方向へ変換することを特徴とする付記6記載の情報処理装置。
更に、前記入力画像の画像データに基づいて、世界座標系における撮像部又は撮像装置の位置と姿勢を推定し、推定した位置と姿勢に基づいて、世界座標系からカメラ座標系へ変換する第2の変換行列を算出する自己位置推定部を備え、
前記モデル位置推定部は、前記第2の変換行列を用いて、前記第1の重力方向を前記第2の重力方向へ変換することを特徴とする付記6記載の情報処理装置。
(付記8)
更に、前記モデル上の任意の2点と、前記2点間のユークリッド距離、前記2点を含む平面における第1の法線ベクトル、及び鉛直下方向ベクトルに基づいて、仮想モデル座標系を設定し、仮想モデル座標系における仮想カメラの視点位置から前記2点への単位視線ベクトルを算出する初期化処理部を備えることを特徴とする付記1記載の情報処理装置。
更に、前記モデル上の任意の2点と、前記2点間のユークリッド距離、前記2点を含む平面における第1の法線ベクトル、及び鉛直下方向ベクトルに基づいて、仮想モデル座標系を設定し、仮想モデル座標系における仮想カメラの視点位置から前記2点への単位視線ベクトルを算出する初期化処理部を備えることを特徴とする付記1記載の情報処理装置。
(付記9)
更に、前記入力画像の画像データに基づいて、世界座標系における撮像部又は撮像装置の位置と姿勢を推定し、世界座標系からカメラ座標系へ変換する第2の変換行列を算出する自己位置推定部を備え、
前記モデル位置設定部は、前記第2の変換行列を用いて、前記第1の重力方向を前記第2の重力方向へ変換し、前記第2の重力方向と前記単位視線ベクトルとに基づいて、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換する第3の変換行列を算出し、前記第3の変換行列を用いて、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換することを特徴とする付記8記載の情報処理装置。
更に、前記入力画像の画像データに基づいて、世界座標系における撮像部又は撮像装置の位置と姿勢を推定し、世界座標系からカメラ座標系へ変換する第2の変換行列を算出する自己位置推定部を備え、
前記モデル位置設定部は、前記第2の変換行列を用いて、前記第1の重力方向を前記第2の重力方向へ変換し、前記第2の重力方向と前記単位視線ベクトルとに基づいて、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換する第3の変換行列を算出し、前記第3の変換行列を用いて、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換することを特徴とする付記8記載の情報処理装置。
(付記10)
前記モデル位置推定部は、前記第1の重力方向を有する重力ベクトルと前記鉛直下方向ベクトルとに基づいて、前記第1の法線ベクトルを、カメラ座標系における第2の法線ベクトルへ変換し、前記第2の法線ベクトルと前記単位視線ベクトルとに基づいて、カメラ座標系における前記モデルの2点を算出し、カメラ座標系における前記モデルの2点と、前記第2の法線ベクトル、及びモデル座標系のX軸方向における前記モデルの長さとに基づいて、前記第3の変換行列を算出することを特徴とする付記9記載の情報処理装置。
前記モデル位置推定部は、前記第1の重力方向を有する重力ベクトルと前記鉛直下方向ベクトルとに基づいて、前記第1の法線ベクトルを、カメラ座標系における第2の法線ベクトルへ変換し、前記第2の法線ベクトルと前記単位視線ベクトルとに基づいて、カメラ座標系における前記モデルの2点を算出し、カメラ座標系における前記モデルの2点と、前記第2の法線ベクトル、及びモデル座標系のX軸方向における前記モデルの長さとに基づいて、前記第3の変換行列を算出することを特徴とする付記9記載の情報処理装置。
(付記11)
前記モデル位置推定部は、前記第2の変換行列をTcw、前記第3の変換行列をTmcとすると、内部メモリから読み出した以下の式(14)を用いて、前記第1の変換行列Twmを算出することを特徴とする付記10記載の情報処理装置。
前記モデル位置推定部は、前記第2の変換行列をTcw、前記第3の変換行列をTmcとすると、内部メモリから読み出した以下の式(14)を用いて、前記第1の変換行列Twmを算出することを特徴とする付記10記載の情報処理装置。
(付記12)
情報処理装置の加速度データを出力し、
前記加速度データから世界座標系における第1の重力方向を推定し、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出し、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画し、
描画結果に従って、前記入力画像と前記モデルとを表示する
ことを特徴とする位置合わせ方法。
情報処理装置の加速度データを出力し、
前記加速度データから世界座標系における第1の重力方向を推定し、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出し、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画し、
描画結果に従って、前記入力画像と前記モデルとを表示する
ことを特徴とする位置合わせ方法。
(付記13)
情報処理装置のコンピュータに実行させるプログラムであって、
前記情報処理装置の加速度データを出力し、
前記加速度データから世界座標系における第1の重力方向を推定し、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出し、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画し、
描画結果に従って、前記入力画像と前記モデルとを表示する
処理を前記コンピュータに実行させるプログラム。
情報処理装置のコンピュータに実行させるプログラムであって、
前記情報処理装置の加速度データを出力し、
前記加速度データから世界座標系における第1の重力方向を推定し、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出し、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画し、
描画結果に従って、前記入力画像と前記モデルとを表示する
処理を前記コンピュータに実行させるプログラム。
10:情報処理システム 100:情報処理装置
101:撮像部 102:慣性センサ
103:記憶部 104:自己位置推定部
105:重力方向推定部 106:初期化処理部
107:モデル位置推定部 108:モデル描画部
109:表示部 110:認識開始判定部
111:物体位置認識部 120:カメラ
122:CPU 130:撮像装置
101:撮像部 102:慣性センサ
103:記憶部 104:自己位置推定部
105:重力方向推定部 106:初期化処理部
107:モデル位置推定部 108:モデル描画部
109:表示部 110:認識開始判定部
111:物体位置認識部 120:カメラ
122:CPU 130:撮像装置
Claims (6)
- 情報処理装置の加速度データを出力する慣性センサと、
前記加速度データから世界座標系における第1の重力方向を推定する重力方向推定部と、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出するモデル位置推定部と、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画するモデル描画部と、
前記モデル描画部の描画結果に従って、前記入力画像と前記モデルとを表示する表示部と
を備えることを特徴とする情報処理装置。 - 更に、前記モデルと前記入力画像に含まれる対象物体とが世界座標系で対応関係にあるときの前記第1の変換行列を前記モデル位置推定部から取得する物体位置認識部を備えることを特徴とする請求項1記載の情報処理装置。
- 前記物体位置認識部は、前記モデルと前記対象物体とが世界座標系で一致したときの前記第1の変換行列を前記モデル位置推定部から取得することを特徴とする請求項2記載の情報処理装置。
- 前記モデル位置推定部は、前記第1の重力方向を、カメラ座標系における第2の重力方向に変換して、カメラ座標系に対する前記第1の重力方向とし、
カメラ座標系における視点位置が前記第1の重力方向が変化する方向へ移動するとき、前記第2の重力方向は変化し、カメラ座標系における視点位置が前記第1の重力方向が変化しない方向に移動するとき、前記第2の重力方向は変化しないことを特徴とする請求項1記載の情報処理装置。 - 情報処理装置の加速度データを出力し、
前記加速度データから世界座標系における第1の重力方向を推定し、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出し、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画し、
描画結果に従って、前記入力画像と前記モデルとを表示する
ことを特徴とする位置合わせ方法。 - 情報処理装置のコンピュータに実行させるプログラムであって、
前記情報処理装置の加速度データを出力し、
前記加速度データから世界座標系における第1の重力方向を推定し、
カメラ座標系におけるモデルの位置と姿勢を、カメラ座標系に対する前記第1の重力方向に応じて変化させ、カメラ座標系における前記モデルの位置と姿勢をモデル座標系における前記モデルの位置と姿勢へそれぞれ変換し、モデル座標系における前記モデルの位置と姿勢を世界座標系における前記モデルの位置と姿勢へそれぞれ変換する第1の変換行列を算出し、
カメラ座標系における前記モデルの位置と姿勢を画像座標系における前記モデルの位置に変換し、入力画像と前記モデルとを画像座標系に描画し、
描画結果に従って、前記入力画像と前記モデルとを表示する
処理を前記コンピュータに実行させるプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018169820A JP2020042575A (ja) | 2018-09-11 | 2018-09-11 | 情報処理装置、位置合わせ方法、及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018169820A JP2020042575A (ja) | 2018-09-11 | 2018-09-11 | 情報処理装置、位置合わせ方法、及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2020042575A true JP2020042575A (ja) | 2020-03-19 |
Family
ID=69798364
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018169820A Pending JP2020042575A (ja) | 2018-09-11 | 2018-09-11 | 情報処理装置、位置合わせ方法、及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2020042575A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111024117A (zh) * | 2019-11-21 | 2020-04-17 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于视觉的惯导系统快速对准系统及对准方法 |
| CN112348889A (zh) * | 2020-10-23 | 2021-02-09 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
| CN115063480A (zh) * | 2022-06-24 | 2022-09-16 | 咪咕动漫有限公司 | 位姿确定方法、装置、电子设备和可读存储介质 |
| WO2023276252A1 (ja) | 2021-06-30 | 2023-01-05 | ソニーグループ株式会社 | 情報処理装置、情報処理方法及びプログラム |
-
2018
- 2018-09-11 JP JP2018169820A patent/JP2020042575A/ja active Pending
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111024117A (zh) * | 2019-11-21 | 2020-04-17 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于视觉的惯导系统快速对准系统及对准方法 |
| CN111024117B (zh) * | 2019-11-21 | 2023-03-14 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于视觉的惯导系统快速对准系统及对准方法 |
| CN112348889A (zh) * | 2020-10-23 | 2021-02-09 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
| JP2023502192A (ja) * | 2020-10-23 | 2023-01-23 | チョーチアン センスタイム テクノロジー デベロップメント カンパニー,リミテッド | 視覚的ポジショニング方法および関連装置、機器並びにコンピュータ可読記憶媒体 |
| JP7280385B2 (ja) | 2020-10-23 | 2023-05-23 | チョーチアン センスタイム テクノロジー デベロップメント カンパニー,リミテッド | 視覚的ポジショニング方法および関連装置、機器並びにコンピュータ可読記憶媒体 |
| CN112348889B (zh) * | 2020-10-23 | 2024-06-07 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
| WO2023276252A1 (ja) | 2021-06-30 | 2023-01-05 | ソニーグループ株式会社 | 情報処理装置、情報処理方法及びプログラム |
| US12579754B2 (en) | 2021-06-30 | 2026-03-17 | Sony Group Corporation | Information processing device and information processing method |
| CN115063480A (zh) * | 2022-06-24 | 2022-09-16 | 咪咕动漫有限公司 | 位姿确定方法、装置、电子设备和可读存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5812599B2 (ja) | 情報処理方法及びその装置 | |
| US9928656B2 (en) | Markerless multi-user, multi-object augmented reality on mobile devices | |
| US10762386B2 (en) | Method of determining a similarity transformation between first and second coordinates of 3D features | |
| Gee et al. | Real-time model-based SLAM using line segments | |
| JP4653606B2 (ja) | 画像認識装置、方法およびプログラム | |
| EP4073690B1 (en) | Target detection method, terminal device, and medium | |
| TWI496108B (zh) | AR image processing apparatus and method | |
| WO2018133130A1 (en) | 3d marker model construction and real-time tracking using monocular camera | |
| JP6609640B2 (ja) | 電子デバイス上における環境マッピング用のフィーチャ・データの管理 | |
| WO2016029939A1 (en) | Method and system for determining at least one image feature in at least one image | |
| JPWO2018189795A1 (ja) | 認識装置、認識方法および認識プログラム | |
| JP2020042575A (ja) | 情報処理装置、位置合わせ方法、及びプログラム | |
| US10607350B2 (en) | Method of detecting and describing features from an intensity image | |
| WO2020195875A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
| CN113228117B (zh) | 创作装置、创作方法和记录有创作程序的记录介质 | |
| JP2017036970A (ja) | 情報処理装置、情報処理方法、プログラム | |
| JP2018120283A (ja) | 情報処理装置、情報処理方法及びプログラム | |
| JP6606340B2 (ja) | 画像検出装置、画像検出方法およびプログラム | |
| JP2008309595A (ja) | オブジェクト認識装置及びそれに用いられるプログラム | |
| US11758100B2 (en) | Portable projection mapping device and projection mapping system | |
| JP2016170031A (ja) | 三次元モデル処理装置およびカメラ校正システム | |
| EP4261783A1 (en) | Using cloud computing to improve accuracy of pose tracking | |
| JP6835665B2 (ja) | 情報処理装置及びプログラム | |
| US20220230342A1 (en) | Information processing apparatus that estimates object depth, method therefor, and storage medium holding program therefor | |
| JP2001175860A (ja) | フィードバック処理のある3次元物体認識装置及び方法並びに記録媒体 |
