JP6237326B2 - 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム - Google Patents

姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム Download PDF

Info

Publication number
JP6237326B2
JP6237326B2 JP2014034439A JP2014034439A JP6237326B2 JP 6237326 B2 JP6237326 B2 JP 6237326B2 JP 2014034439 A JP2014034439 A JP 2014034439A JP 2014034439 A JP2014034439 A JP 2014034439A JP 6237326 B2 JP6237326 B2 JP 6237326B2
Authority
JP
Japan
Prior art keywords
marker
image
unit
imaging unit
posture
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.)
Active
Application number
JP2014034439A
Other languages
English (en)
Other versions
JP2015158461A (ja
Inventor
厚憲 茂木
厚憲 茂木
山口 伸康
伸康 山口
松田 高弘
高弘 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014034439A priority Critical patent/JP6237326B2/ja
Priority to US14/611,330 priority patent/US9542745B2/en
Publication of JP2015158461A publication Critical patent/JP2015158461A/ja
Application granted granted Critical
Publication of JP6237326B2 publication Critical patent/JP6237326B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning

Description

本発明は、例えば、カメラによって撮影した画像に基づいてカメラの位置及び姿勢を推定する姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラムに関する。
近年、ユーザの作業の支援を行うために、カメラによって撮影した画像に、様々な情報を重畳表示させる、いわゆる拡張現実感(Augmented Reality, AR)に関する研究が行われている(例えば、非特許文献1を参照)。
ARを実現するシステムにおいては、カメラで撮影された画像上の適切な位置に情報を重畳するために、仮想空間が実空間に正確に位置合わせされることが求められる。そのためには、実空間でのカメラの位置及び姿勢を正確に把握できることが求められる。そこで、予め設置された既知のマーカの画像上の位置及び形状から、カメラの位置及び姿勢を推定する技術が提案されている(例えば、非特許文献2を参照)。
しかしながら、撮影条件によっては、画像上でマーカを正確に検出することが困難なことがある。また、カメラの撮影範囲からマーカが外れ、その結果として画像上にマーカが写っていないこともある。このような場合、マーカに基づいてカメラの姿勢を推定することは困難である。そこで、撮影画像から抽出した複数の特徴点に基づいてカメラの位置及び姿勢を推定する技術が提案されている(例えば、特許文献1を参照)。
特開2005−326274号公報
石井他、「拡張現実感を利用した原子力発電プラントの解体支援手法の提案と評価」、日本バーチャルリアリティ学会論文誌、13(2)、pp.289-300、2008年6月 加藤他、「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」、日本バーチャルリアリティ学会論文誌、4(4)、pp.607-616、1999年12月
複数の特徴点に基づいてカメラの位置及び姿勢を推定するには、3次元空間上の点と2次元画像上の点との対応付けを行う演算を繰り返すことになるので、マーカに基づいてカメラの位置及び姿勢を推定するよりも多くの演算が必要となる。演算量が多いほど、その演算を実行するハードウエアの消費電力も増大する。一方、カメラ付きの携帯端末のように、電源の容量が限定される装置でARを実装する場合、演算量は少ないほど好ましい。
そこで本明細書は、撮像部で撮影した画像からマーカを検出できなくても撮像部の位置及び姿勢の推定精度の低下を抑制でき、かつ演算量を抑制できる姿勢推定装置を提供することを目的とする。
一つの実施形態によれば、姿勢推定装置が提供される。この姿勢推定装置は、所定の撮影周期にて、撮影した範囲の画像を生成する撮像部と、予め設置されたマーカの実空間での位置及びマーカの周囲の複数の特徴点の実空間での位置を記憶する記憶部と、画像から前記マーカを検出するマーカ検出部と、画像上でのマーカの位置及び実空間でのマーカの位置に基づいて撮像部の位置及び姿勢を推定するマーカベース姿勢推定部と、画像から複数の特徴点を検出する特徴点検出部と、画像上での複数の特徴点の位置と、実空間での複数の特徴点の位置と、撮像部の位置及び姿勢の初期値とに基づいて撮像部の位置及び姿勢を推定する特徴点ベース姿勢推定部と、画像からマーカが検出されなかった場合に、その画像及びその画像以降に取得される画像について、特徴点検出部に複数の特徴点を検出させ、かつ、特徴点ベース姿勢推定部に撮像部の位置及び姿勢を推定させる移行判定部と、マーカベース姿勢推定部により撮像部の位置及び姿勢が推定されている間に取得された第1の画像から、マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、その少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定する移行準備開始判定部と、少なくとも一つの失敗指標が移行準備開始基準を満たす場合、第1の画像よりも前の所定期間に取得された画像上でのマーカの位置に基づいて推定された撮像部の位置及び姿勢から、撮像部の位置及び姿勢の初期値を設定する初期姿勢設定部とを有する。
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
本明細書に開示された姿勢推定装置は、撮像部で撮影した画像からマーカを検出できなくても撮像部の位置及び姿勢の推定精度の低下を抑制でき、かつ演算量を抑制できる。
姿勢推定装置の一つの実施形態である携帯端末のハードウェア構成図である。 マーカの一例を示す図である。 マーカの三次元座標及び各自然特徴点の三次元座標及び特徴量とが格納された三次元マップの一例を示す図である。 制御部の機能ブロック図である。 画像取得時刻ごとの撮像部3の位置及び姿勢を表すリストの一例を示す図である。 (a)〜(d)は、それぞれ、画像からマーカが検出できなくなる可能性がある場合を示す図である。 自然特徴点ベースの姿勢推定処理の初期値予測の概念図である。 自然特徴点ベースの姿勢推定処理の概念図である。 姿勢推定処理の動作フローチャートである。
以下、図を参照しつつ、姿勢推定装置について説明する。この姿勢推定装置は、撮像部が所定の撮影周期でその周囲を撮影して画像を生成する度に、その画像に基づいて撮影時の撮像部の位置及び姿勢を推定する。その際、この姿勢推定装置は、予め設置された、形状及び設置位置が既知のマーカが画像に写っており、かつ、画像からマーカを検出できる場合には、画像上でのマーカの位置に基づいて撮像部の位置及び姿勢を推定することで演算量を抑制する。一方、姿勢推定装置は、画像からマーカを検出できない場合には、マーカの周囲にあり、かつ、画像に写っている複数の特徴的な点(以下、自然特徴点と呼ぶ)を画像から検出し、それらの特徴点に基づいて撮像部の位置及び姿勢を推定する。
また、この姿勢推定装置は、画像からマーカを検出できなくなる可能性が高くなったと判断すると、それ以前に取得された画像上のマーカに基づいて推定された撮像部の位置及び姿勢に対して予測フィルタを適用して、撮像部の位置及び姿勢の推定を開始する。そしてこの姿勢推定装置は、画像からマーカを検出できなくなり、自然特徴点に基づく姿勢推定に切り替える際、予測フィルタにより推定された撮像部の位置及び姿勢を初期値として、自然特徴点に基づく位置及び姿勢の推定を実行する。これにより、この姿勢推定装置は、自然特徴点に基づいて撮像部の位置及び姿勢を推定する際の推定精度の低下を抑制する。
図1は、姿勢推定装置の一つの実施形態である携帯端末のハードウェア構成図である。携帯端末1は、表示部2と、撮像部3と、記憶媒体アクセス装置4と、記憶部5と、制御部6とを有する。表示部2、撮像部3、記憶媒体アクセス装置4、記憶部5及び制御部6は、筐体7内に配置される。なお、携帯端末1は、例えば、携帯電話機、携帯情報端末またはタブレット型コンピュータである。さらに携帯端末1は、携帯端末1を他の機器に接続するための通信インターフェース回路(図示せず)を有していてもよい。なお図1は、携帯端末1が有する構成要素を説明するための図であり、携帯端末1の各構成要素の実際の配置を表した図ではないことに留意されたい。
携帯端末1は、撮像部3が所定の撮影周期ごとに周囲を撮影して得られた画像に写っているマーカまたは自然特徴点に基づいて、撮像部3の位置及び姿勢を推定する。そしてこの携帯端末1は、その位置及び姿勢の推定結果を利用して、画像上に様々な情報を重畳することで、ARをユーザに提供してもよい。
表示部2は、例えば、液晶ディスプレイ、あるいは有機エレクトロルミネッセンスディスプレイを有し、表示部2の表示画面が、筐体7の正面に対向するユーザを向くように配置される。そして表示部2は、撮像部3により生成された画像など、ユーザに対して様々な情報を表示する。また表示部2は、タッチパネルディスプレイを有してもよい。この場合、表示部2は、例えば、様々なアイコンまたは操作ボタンを、制御部6からの制御信号に応じて表示する。そして表示部2は、表示されたアイコンまたは操作ボタンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号を制御部6へ出力する。
撮像部3は、例えば、2次元アレイ状に配置された固体撮像素子を有するイメージセンサと、そのイメージセンサ上に被写体の像を結像する撮像光学系とを有する。
撮像部3は、所定の撮影周期ごとに携帯端末1の周囲を撮影することで、その撮影周期ごとに画像を生成する。なお、生成される画像は、RGB表色系により表されるカラー画像であってもよく、あるいは、グレー画像であってもよい。そして撮像部3は、画像を生成する度に、生成した画像を制御部6へ出力する。なお、撮影周期は、例えば、33msecである。
記憶媒体アクセス装置4は、例えば、半導体メモリカードといった記憶媒体8にアクセスする装置である。記憶媒体アクセス装置4は、例えば、記憶媒体8に記憶された、制御部6上で実行されるコンピュータプログラムを読み込み、制御部6に渡す。また、後述するように、制御部6が姿勢推定装置としての機能を実現するコンピュータプログラムを実行する場合には、記憶媒体アクセス装置4は、記憶媒体8から姿勢推定用コンピュータプログラムを読み込んで、制御部6に渡してもよい。
記憶部5は、例えば、読み書き可能な不揮発性の半導体メモリと、読み書き可能な揮発性の半導体メモリとを有する。そして記憶部5は、制御部6上で実行される各種のアプリケーションプログラム及び各種のデータを記憶する。また記憶部5は、姿勢推定処理に利用される各種のデータを記憶する。例えば、記憶部5は、直近の一定期間(例えば、数フレーム〜数十フレームに相当する期間)に取得された画像から推定された撮像部3の位置及び姿勢を表す情報を記憶する。
さらに記憶部5は、実空間に設定された三次元の世界座標系における、マーカの三次元座標と、複数の自然特徴点のそれぞれについての3次元座標とその自然特徴点を特定するための特徴量とが格納された三次元マップを記憶する。
図2は、マーカの一例を示す図である。マーカ200は、識別用パターン201と、識別用パターン201を囲む矩形パターン202とを有する。識別用パターン201は、例えば、マーカ200が設置された場所の周囲の模様との区別が付き易いパターンであればよい。本実施形態では、撮像部3の位置及び姿勢を推定するために、矩形パターン202の外周の四隅の位置が画像上で検出される。なお、マーカは、図2に示されたものに限られず、マーカが設置された場所の周囲の模様との区別が付き易いものであればよい。また、撮像部3の位置及び姿勢の推定に、マーカの他の位置が利用されてもよい。
なお、本実施形態では、実空間に設定される世界座標系は、簡単化のために、マーカの中心を原点とし、マーカが含まれる平面にX軸及びY軸を設定し、マーカが含まれる平面の法線をZ軸とする。
図3は、三次元マップの一例を示す図である。三次元マップ300の各行には、それぞれ、自然特徴点またはマーカの外周の四隅の何れかの三次元座標と、マーカか自然特徴点かを表す種別フラグ(自然特徴点:f、マーカ:m)と、自然特徴点の特徴量が記録される。この例では、1行目〜64行目には、例えば、各自然特徴点の三次元座標などが記録されている。また、65行目〜68行目には、マーカの四隅の三次元座標などが記録されている。
なお、自然特徴点の特徴量は、画像上で自然特徴点を特定するために利用できるものであればよく、例えば、自然特徴点が位置する画像上での画素の輝度値と、その周囲8近傍画素または24近傍画素の輝度値とすることができる。あるいは、自然特徴点の特徴量は、自然特徴点が位置する画像上での画素あるいはその周囲8近傍画素または24近傍画素の各色の値であってもよい。あるいはまた、自然特徴点の特徴量は、画像から自然特徴点を検出するための演算によって得られるスカラー量あるいはベクトル量であってよい。例えば、画像から自然特徴点を検出するために、Scale-Invariant Feature Transform(SIFT)が算出される場合には、自然特徴点の特徴量は、自然特徴点が位置する画像上での画素におけるSIFTの値であってもよい。なお、SIFT値の算出及びSIFTによる特徴点の検出に関しては、例えば、David G. Lowe、「Distinctive Image Features from Scale-Invariant Keypoints」、International Conference on Computer Vision, Vol. 60、No. 2、pp.91-110、2004年を参照されたい。
三次元マップを作成するために、撮像部3の位置及び姿勢を推定する処理を実行する以前に、予めマーカの四隅及び各自然特徴点の三次元座標が計測される。例えば、予め位置及び姿勢(光軸方向)が分かっている、互いに異なる2点のそれぞれにおいて、撮像部3がマーカ及びその周囲を撮影して得た2枚の画像から、それぞれ、マーカの四隅及び自然特徴点が検出される。その際、制御部6が、例えば、テンプレートマッチング、またはコーナー検出フィルタといった特徴点検出処理を行って、マーカの四隅及び自然特徴点を検出してもよい。あるいは、ユーザが、各画像上でマーカの四隅及び自然特徴点を指定してもよい。
次に、各画像から検出された自然特徴点のうち、同一の自然特徴点を示すものが対応付けられる。その際、制御部6は、例えば、SIFT演算値が最も一致する、あるいは、画像上の自然特徴点周囲の領域同士のパターンマッチングによって最も一致する二つの画像上の自然特徴点同士を、同一の自然特徴点に対応するとしてもよい。
画像上の各画素は、それぞれ、撮像部3の光軸に対する角度を表している。そのため、ある撮影地点で得られた画像から検出された自然特徴点については、その撮影地点からその自然特徴点への方向が求められる。したがって、同一の自然特徴点に対応する二つの画像上の画素の位置がそれぞれ分かれば、三角測量の原理に従って、その自然特徴点の三次元座標が求められる。同様に、マーカの四隅の三次元座標も求められる。
また、制御部6は、三次元座標が求められた各自然特徴点の特徴量を、自然特徴点が検出された何れかの画像から、その自然特徴点に対応する画素及びその周囲の画素に基づいて算出すればよい。
なお、マーカの四隅及び自然特徴点の三次元座標は、複数の画像からその画像に写っている物体の位置を求める様々な方法、例えば、山田他、「2画像からの3次元復元の最新アルゴリズム」、情報処理学会研究報告、vol.2009-CVIM-168-15、pp.1-8、2009年に開示された方法に従って求められてもよい。
制御部6は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部6は、携帯端末1の各部と信号線を介して接続されており、携帯端末1全体を制御する。
また制御部6は、撮像部3から画像を受け取る度に、その画像に写っているマーカまたは自然特徴点に基づいて撮像部3の位置及び姿勢を推定する。
なお、以下では、マーカに基づく撮像部3の位置及び姿勢の推定処理を、マーカベースの姿勢推定処理と呼ぶ。一方、自然特徴点に基づく撮像部3の位置及び姿勢の推定処理を、自然特徴点ベースの姿勢推定処理と呼ぶ。
図4は、制御部6の機能ブロック図である。制御部6は、マーカ検出部11と、マーカベース姿勢推定部12と、移行準備開始判定部13と、初期姿勢設定部14と、特徴点検出部15と、特徴点ベース姿勢推定部16と、マーカ再検出判定部17と、移行判定部18とを有する。制御部6が有するこれらの各部は、例えば、制御部6上で実行されるコンピュータプログラムにより実現される。なお、制御部6が有するこれらの各部は、制御部6が有するプロセッサとは別個に、これらの各部の機能を実現する集積回路として、携帯端末1に実装されてもよい。
マーカ検出部11は、制御部6がマーカベースの姿勢推定処理を実行している間、または、マーカベースの姿勢推定処理を再開できる可能性があると判定された場合に、撮像部3から画像が得られる度に、その画像からマーカを検出する。
そのために、マーカ検出部11は、例えば、様々な方向から見たマーカのパターンを表した複数のテンプレートを用いて画像に対するテンプレートマッチングを行うことにより、画像上のマーカを検出する。
その際、マーカ検出処理を高速化するために、マーカ検出部11は、画像の各画素について、輝度値が所定の閾値以上か否かによって2値化してもよい。例えば、図2に示されたマーカ200の矩形パターン202及び矩形パターン内部の識別用パターン201は、その周囲よりも黒いので、画像上でも、それらのパターンに対応する画素の輝度値は、その周囲の画素の輝度値よりも低くなる。したがって、2値化画像上では、マーカ200に含まれるパターンに対応する画素と、その他の画素とは、異なる画素値を持つ。例えば、マーカ検出部11は、所定の閾値以上の輝度値を持つ画素に対応する2値化画像上の画素の輝度値を相対的に高くし、その閾値未満の輝度値を持つ画素に対応する2値化画像上の画素の輝度値を相対的に低くする。したがって、マーカに含まれるパターンに対応する画素は相対的に低い輝度値となる。以下、2値化画像上で相対的に低い輝度値を持つ画素を、便宜上黒画素と呼ぶ。
マーカ検出部11は、黒画素の集合に対してラベリング処理を実行することで、黒画素同士が連結された領域である、1以上の黒画素領域を求める。そしてマーカ検出部11は、各黒画素領域に対して輪郭線追跡を行って、各黒画素領域の輪郭線を求める。さらに、マーカ検出部11は、各輪郭線に対して折れ線近似を行って、4本の線分で輪郭線を近似できた黒画素領域をマーカ候補領域とする。マーカ検出部11は、マーカ候補領域とテンプレートとの間でテンプレートマッチングを行って、例えば、マーカ候補領域とテンプレート間の正規化相互相関値を次式に従って算出する。
Figure 0006237326
ここでT(i,j)は、テンプレートの画素(i,j)の輝度値であり、I(i,j)は、マーカ候補領域中の画素(i,j)の輝度値である。そしてTavは、テンプレートの輝度平均値であり、Iavは、マーカ候補領域の輝度平均値である。
マーカ検出部11は、正規化相互相関値の最大値がマーカ検出用閾値(例えば、0.8)以上となる場合、その正規化相互相関値の最大値に対応するマーカ候補領域にマーカが写っていると判定する。そしてマーカ検出部11は、そのマーカ候補領域の四隅の座標を、画像上でのマーカの座標とする。
一方、正規化相互相関値の最大値がマーカ検出用閾値未満である場合、マーカ検出部11は、マーカ候補領域にマーカは写っていないと判定する。
なお、マーカ再検出判定部17により、マーカの探索領域が限定されている場合、マーカ検出部11は、その限定された探索領域内でマーカの検出処理を実行する。なお、マーカ再検出判定部17及びマーカの探索領域の詳細については後述する。また、マーカ検出部11は、直前に得られた画像上のマーカの四隅で囲まれた領域の外接矩形を、所定のオフセットだけ垂直方向及び水平方向に拡張した領域を、現画像に対するマーカ探索領域とし、そのマーカ探索領域内でマーカ検出処理を行ってもよい。
マーカ検出部11は、画像上でのマーカの四隅の座標を求める度に、各座標を、対応する画像の取得順序が分かるように、記憶部5に記憶する。
マーカベース姿勢推定部12は、撮像部3から得られた画像からマーカが検出される度に、そのマーカに基づいて撮像部3の位置及び姿勢を推定する。
マーカベース姿勢推定部12は、撮像部3の位置及び姿勢を推定するために、例えば、マーカを基準とする世界座標系から、撮像部3を基準とするカメラ座標系への変換行列を推定する。
この変換行列は次式で表される。
Figure 0006237326
ここで、(Xc,Yc,Zc)は、マーカを基準とする世界座標系における三次元座標(Xm,Ym,Zm)の点に対応するカメラ座標系の三次元座標を表す。また、行列Rは、回転移動成分を表し、行列Tは、平行移動成分を表す。なお、カメラ座標系におけるZ軸は、撮像部3の光軸と平行に設定される。
また、カメラ座標系と、撮像部3により生成される画像上の座標系との関係は、透視変換モデルに従って次式で表される。
Figure 0006237326
ここで、(xc,yc)は、カメラ座標系上の三次元座標(Xc,Yc,Zc)の点に対応する、画像上の座標を表す。
マーカベース姿勢推定部12は、回転移動成分を表す行列Rを推定するために、マーカの四隅のうち、2点を結ぶ線分を求めることで、互いに対向するマーカの2辺の単位方向ベクトルV1、V2を算出する。
互いに対向するマーカの2辺の式は次式で表される。
Figure 0006237326
そして(4)式に、(3)式の(xc,yc)を代入することで次式が得られる。
Figure 0006237326
(5)式は、カメラ座標系における、マーカの互いに対向する2辺が存在する平面を表す方程式である。マーカの互いに対向する2辺は平行なので、それら2辺の方向ベクトルは互いに一致し、(5)式で表される二つの平面の面内方向となる。したがって、(5)式の二つの平面のそれぞれの法線ベクトルの外積が、その2辺それぞれの単位方向ベクトルV1、V2となる。
さらに、マーカベース姿勢推定部12は、単位方向ベクトルV1及びV2の外積を計算することで、マーカ平面に垂直な方向の単位方向ベクトルV3を算出する。回転移動成分を表す行列Rは、[V1tV2tV3t]で表される。
また、マーカベース姿勢推定部12は、平行移動成分を表す行列Tを推定するために、(2)式と(3)式を結合する。そしてマーカベース姿勢推定部12は、その結合式に、マーカの四隅のそれぞれについての画像上の座標と、世界座標系での座標を入力することで、行列Tの3個の要素[T1,T2,T3]に対する8個の連立方程式が得られる。そこでマーカベース姿勢推定部12は、この連立方程式を最小二乗法で解くことにより、行列Tの各要素[T1,T2,T3]を算出する。
マーカベース姿勢推定部12は、回転移動成分の計算による誤差を軽減するために、行列Rの各成分を、Rodriguesの公式に従って、カメラ座標系における、世界座標系のZ軸の3個の回転角で表すように変換する。
マーカベース姿勢推定部12は、得られた変換行列において、カメラ座標系の原点の位置に対応する世界座標系の座標を求めることにより、撮像部3の位置を推定できる。また、マーカベース姿勢推定部12は、得られた変換行列において、カメラ座標系の軸Zc(すなわち、光軸)に対応する世界座標系の方向を求めることで、撮像部3の姿勢、すなわち、世界座標系における撮像部3の光軸方向を推定できる。
マーカベース姿勢推定部12は、推定した撮像部3の位置を表す世界座標系の座標、及び撮像部3の姿勢を表す世界座標系の単位方向ベクトルを記憶部5に記憶する。
図5は、記憶部5に記憶される、撮影時刻ごとの撮像部3の位置及び姿勢を表すリストの一例を示す図である。リスト500の各行には、世界座標系での撮像部3の位置及び姿勢を表す6次元のベクトル(x,y,z,rx,ry,rz)と、画像上でのマーカの四隅の座標が記録されている。なお、撮像部3の位置及び姿勢を表す6次元のベクトルの要素x,y,zは、それぞれ、マーカ平面における水平方向、垂直方向及びマーカ平面の法線方向の座標を表す。また要素rx,ry,rzは、それぞれ、撮像部3の光軸が、マーカ平面の法線方向に対して水平方向及び垂直方向になす角と、マーカ平面の法線方向周りの撮像部3の回転角を表す。
移行準備開始判定部13は、マーカベースの姿勢推定処理が行われている間、画像が得られる度に、画像からマーカを検出できなくなる可能性を表す失敗指標を算出する。
図6(a)〜図6(d)は、それぞれ、画像からマーカが検出できなくなる可能性がある場合を示す図である。図6(a)に示される例では、画像600上で、マーカ601が画像端へ向けて移動している場合であり、将来的にマーカ601が画像600から外れることが想定される。また、図6(b)に示される例では、撮像部3の光軸方向OAに対する、マーカ611の法線nの傾きが大きいため、画像上でのマーカの形状が歪になり、画像からのマーカの検出が困難になることが想定される。
さらに、図6(c)に示される例では、撮像部3がマーカから遠ざかることで、直前に取得された画像上でのマーカ621よりも、現画像でのマーカ622の方が小さくなっている。このことから、将来的に画像600上でのマーカのサイズが小さくなり過ぎてマーカの検出が困難になることが想定される。さらにまた、図6(d)に示される例では、マーカ検出の信頼度の時間変化を表しており、横軸は時間を表し、縦軸は信頼度を表している。この例では、時間と信頼度の関係を表す曲線631が、時間経過とともに低下しており、このような場合、マーカを正確に検出できなくなることが想定される。
そこで移行準備開始判定部13は、失敗指標として、例えば、マーカの四隅の座標の移動速度及び現在位置、撮像部3の光軸に対するマーカの法線の傾き、画像上でのマーカの面積、及び、マーカ検出の信頼度のうちの少なくとも一つを算出する。
移行準備開始判定部13は、上記の複数の失敗指標のうちの少なくとも一つが移行準備開始基準を満たす場合、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始すると判定する。あるいは、移行準備開始判定部13は、複数のフレームにわたって、上記の複数の失敗指標のうちの少なくとも一つが移行準備開始基準を満たす場合に、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始すると判定してもよい。あるいはまた、移行準備開始判定部13は、上記の複数の失敗指標のうちの二つ以上が移行準備開始基準を満たす場合、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始すると判定してもよい。
例えば、移行準備開始判定部13は、過去数フレームの画像上のマーカの四隅の座標の変化量と撮影周期に基づいて、線形補間あるいはスプライン補間することでマーカの四隅のそれぞれの移動速度及び移動方向を算出する。そして移行準備開始判定部13は、何れかの画像端からマーカの四隅の座標の重心(以下、単にマーカ重心と呼ぶ)までの画素数が所定画素数(例えば、50画素)以下である場合、移行準備開始基準を満たすと判定する。あるいは、移行準備開始判定部13は、マーカ重心の移動方向が画像中心から離れる方向であり、かつ、移動速度が所定速度(例えば、5ピクセル/フレーム)以上である場合、移行準備開始基準を満たすと判定してもよい。また、移行準備開始判定部13は、マーカ重心から、マーカ重心の移動方向の先にある画像端までの画素数が所定画素数以下であり、かつ、マーカ重心の移動速度が所定速度以上である場合、移行準備開始基準を満たすと判定してもよい。この場合、所定画素数と所定速度は、数フレームから10フレーム後にマーカの一部が画像から外れると想定される値に設定される。例えば、所定画素数がm画素(mは1以上の整数)のとき、所定速度は(m/10)ピクセル/フレームとすることができる。
また、撮像部3の光軸とマーカの法線とがなす角が大きくなり過ぎると、制御部6は、画像からマーカを検出できなくなる可能性がある。そこで移行準備開始判定部13は、撮像部3の光軸とマーカの法線とがなす角が所定角度(例えば、70°)以上となった場合、移行準備開始基準を満たすと判定する。
さらに、画像上でのマーカの面積が小さすぎると、制御部6は、画像からマーカを検出できなくなる。そこで移行準備開始判定部13は、画像上でのマーカの四隅で囲まれる四角形に含まれる画素数(すなわち、画像上でのマーカの面積)が所定面積値以下の場合、移行準備開始基準を満たすと判定する。なお、所定面積値は、例えば、画像上でマーカのパターンを識別可能なマーカの最小サイズに安全係数(例えば、1.1〜1.3)を乗じた値、例えば、400に設定される。
なお、移行準備開始判定部13は、過去数フレームの画像上でのマーカの面積の変化に基づいて、例えば、線形補間することにより、次フレームの画像において、マーカの面積が縮小するか否かを推定してもよい。そして移行準備開始判定部13は、現フレームの画像におけるマーカの面積が所定面積値以下であり、かつ、次フレームにおいてマーカの面積が縮小とすると推定した場合に、移行準備開始基準を満たすと判定してもよい。
さらに、画像からマーカを検出した際の、その検出に関する信頼度が低いと、制御部6は、画像からマーカを検出できなくなる可能性がある。また、検出に関する信頼度は、マーカ検出部11が算出した、画像とテンプレート間の正規化相互相関値の最大値とすることができる。そこで移行準備開始判定部13は、その正規化相互相関値の最大値が所定の信頼度閾値以下となった場合に、移行準備開始基準を満たすと判定する。なお、所定の信頼度閾値は、マーカ検出用閾値よりも高い値、例えば、0.9に設定される。
あるいは、移行準備開始判定部13は、上記の複数の指標に重み付けを行って、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始するか否かを判定してもよい。例えば、撮像部3の移動速度が速く、マーカが画像外に外れる可能性が高い場合、移行準備開始判定部13は、一つの画像に関してマーカ重心に関する移行準備開始基準が満たされる場合、自然特徴点ベースの姿勢推定処理への移行準備を直ちに開始すると判定する。一方、マーカ面積、光軸角度、及び検出に関する信頼度に関しては、これらのうちの二つ以上について、移行準備開始基準が満たされる場合、移行準備開始判定部13は、自然特徴点ベースの姿勢推定処理への移行準備を開始すると判定する。あるいは、マーカ面積、光軸角度、及び検出に関する信頼度に関して、連続する複数の画像について移行準備開始基準が満たされる場合、移行準備開始判定部13は、自然特徴点ベースの姿勢推定処理への移行準備を開始すると判定してもよい。
移行準備開始判定部13は、自然特徴点ベースの姿勢推定処理への移行準備を開始すると判定すると、初期姿勢設定部14へその旨を通知する。
また、自然特徴点ベースの姿勢推定処理への移行準備の開始後に取得された画像に関して、上記の何れの失敗指標についても移行準備開始基準が満たされなくなると、移行準備開始判定部13は、初期姿勢設定部14に、その移行準備を停止する旨通知してもよい。あるいは、連続する複数の画像に関して、上記の何れの失敗指標についても移行準備開始基準が満たされなくなったときに、移行準備開始判定部13は、初期姿勢設定部14に、その移行準備を停止する旨通知してもよい。
初期姿勢設定部14は、移行準備開始判定部13から、姿勢推定処理を自然特徴点ベースへ移行する準備を開始する旨を通知された以降に画像が取得される度に、自然特徴点ベースの姿勢推定処理を開始する際の初期値となる撮像部3の位置及び姿勢を決定する。
初期姿勢設定部14は、例えば、自然特徴点ベースへ移行する準備を開始すると判定された時点よりも過去数フレーム分の撮像部3の位置及び姿勢に対して予測フィルタを適用して、次画像取得時の撮像部3の位置及び姿勢の推定値を求める。この推定値は、次画像からマーカが検出されないときにおける、自然特徴点ベースの姿勢推定処理の開始時の初期値とすることができる。これにより、初期姿勢設定部14は、マーカの検出精度が高いときの画像上のマーカに基づいて推定された撮像部3の位置及び姿勢を、自然特徴点ベースの姿勢推定処理の開始時の初期値として利用できるので、その初期値の推定精度を向上できる。本実施形態では、初期姿勢設定部14は、予測フィルタとして、パーティクルフィルタを利用する。
初期姿勢設定部14は、古い方の画像から順に、画像ごとに、下記の処理を繰り返す。
(1)先ず、初期姿勢設定部14は、撮像部3の位置及び姿勢を表す6次元の状態量(x,y,z,rx,ry,rz)と、その状態量の尤度とを持つ粒子をランダムに複数生成する。なお、2順目以降では、初期姿勢設定部14は、残っている粒子の状態量はそのままとする。そして初期姿勢設定部14は、粒子数が所定数に達するまで、新規に粒子を生成する。また、各粒子の尤度は同一とする。
(2)次に、初期姿勢設定部14は、粒子ごとに、その粒子が持つ状態量で表された撮像部3の仮の位置及び姿勢に応じて、(2)式及び(3)式に従ってマーカの四隅を画像平面に投影する。そして初期姿勢設定部14は、マーカの四隅のそれぞれについて、画像平面上の投影点の座標を求める。
(3)初期姿勢設定部14は、粒子ごとに、マーカの四隅のそれぞれについて、投影点の座標と、画像から検出された対応するマーカの隅の座標間の距離を求め、その距離の平均値に基づいて、その粒子の尤度を算出する。例えば、初期姿勢設定部14は、距離の平均値に1加算した数の逆数を尤度とする。あるいは、初期姿勢設定部14は、マーカ四隅のそれぞれについて、画像上の投影点及び画像から検出された点のそれぞれについて、SIFTといった特徴点検出用の演算を行って特徴量を算出し、その特徴量間の誤差二乗和の逆数を尤度としてもよい。
(4)初期姿勢設定部14は、尤度が所定の閾値(例えば、0.1)以下の粒子を消去する。
(5)初期姿勢設定部14は、残りの粒子の状態量を、その粒子の尤度で重みづけ平均することで、撮像部3の位置及び姿勢の推定値を求める。
初期姿勢設定部14は、現画像の取得時まで上記の処理を繰り返して得られた撮像部3の位置及び姿勢の推定値を、次画像取得時の撮像部3の位置及び姿勢の初期値として記憶部5に記憶する。なお、初期姿勢設定部14は、現画像まで残った各粒子の状態量を記憶部5に記憶しておいてもよい。そして次画像からもマーカが検出された場合には、記憶しておいた各粒子の状態量を利用して、上記の(1)〜(5)の処理を1回だけ実行して、撮像部3の位置及び姿勢の初期値を更新してもよい。
なお、初期姿勢設定部14は、撮像部3の位置及び姿勢の初期値の設定に、パーティクルフィルタの代わりに、カルマンフィルタといった他の非線形予測フィルタ、あるいは、線形予測フィルタを利用してもよい。
また、初期姿勢設定部14は、移行準備開始判定部13から、姿勢推定処理を、マーカベースから自然特徴点ベースへ移行する準備を停止する旨を通知されると、初期値の設定を中止する。
図7は、自然特徴点ベースの姿勢推定処理の初期値予測の概念図である。図7において、横軸は時間を表す。この例では、時刻t1より前では、自然特徴点ベースの姿勢推定処理の初期値予測は行われず、時刻t1〜t2の間、自然特徴点ベースの姿勢推定処理の初期値予測が行われ、時刻t2以降、自然特徴点ベースの姿勢推定処理が行われるものとする。
また図7において、四角形701は、それぞれ、マーカに基づいて推定され、記憶部5に記憶された撮像部3の位置及び姿勢を表す。特に、黒い四角形701aは、現画像から検出されたマーカに基づいて推定された撮像部3の位置及び姿勢を表す。また矢印702は、予測フィルタを利用した撮像部3の位置及び姿勢の推定が実行されることを表す。そして丸印703は、予測フィルタを利用して推定された撮像部3の位置及び姿勢を表す。
時刻t1以前では、一番上のラインに示されるように、予測フィルタによる初期値予測は行われず、現時刻から直近の一定期間710の間にマーカに基づいて推定された撮像部3の位置及び姿勢が記憶される。そして2番目のラインに示されるように、時刻t1において初期値予測が開始されると、予測フィルタを適用した撮像部3の位置及び姿勢の推定が実行され、その推定値703が記憶部5に記憶される。
その後、時刻t2になるまでは、3番目のラインに示されるように、画像が取得される度に、予測フィルタの処理を1回行って、推定値703が更新される。また、画像から検出されたマーカに基づいて推定された撮像部3の位置及び姿勢も記憶される。そして一番下のラインに示されるように、時刻t2にて、現画像からマーカが検出できなくなると、その直前の画像取得時に計算された推定値703が、自然特徴点ベースの姿勢推定処理の初期値として利用される。
特徴点検出部15は、制御部6が自然特徴点ベースの姿勢推定処理を実行している間、撮像部3から画像が得られる度に、その画像から自然特徴点を検出する。そのために、特徴点検出部15は、画像の各画素に対して、例えば、コーナー検出フィルタ処理、あるいはSIFT演算処理を行って、画素ごとに自然特徴点を表す特徴量を算出する。そして特徴点検出部15は、3次元マップに記録されている何れかの自然特徴点の特徴量との差が所定値未満である画素を、その自然特徴点として検出する。
特徴点ベース姿勢推定部16は、自然特徴点に基づいて撮像部3の位置及び姿勢を推定する。そのために、特徴点ベース姿勢推定部16は、(2)式における回転移動成分及び平行成分を、直前の画像に基づいて推定された撮像部3の位置及び姿勢を初期値として、画像から検出された特徴点に基づいて推定する。なお、マーカベースによる姿勢推定処理から自然特徴点ベースによる姿勢推定処理に移行した直後については、特徴点ベース姿勢推定部16は、予測フィルタの適用により推定された撮像部の位置及び姿勢を初期値として、回転移動成分及び平行移動成分を推定する。
図8は、自然特徴点ベースの姿勢推定処理の概念図である。
特徴点ベース姿勢推定部16は、(2)式及び(3)式に従って、各自然特徴点801を画像平面800に投影して、各自然特徴点の世界座標系の座標に対応する画像平面800上の投影点802の座標を求める。そして特徴点ベース姿勢推定部16は、各自然特徴点について、投影点802と、画像から検出された、対応する自然特徴点803間の距離の二乗和を評価値として算出する。
特徴点ベース姿勢推定部16は、例えば、最急降下法に従って、回転移動成分及び平行移動成分の各要素を修正しつつ、評価値を求める。そして特徴点ベース姿勢推定部16は、評価値が最小となるときの回転移動成分及び平行移動成分にしたがって、撮像部3の位置及び姿勢の推定値を求める。
なお、特徴点ベース姿勢推定部16は、複数の特徴点に基づいてカメラの位置及び姿勢する他の方法に従って、撮像部3の位置及び姿勢を推定してもよい。例えば、特徴点ベース姿勢推定部16は、G. Klein他、「Parallel Tracking and Mapping for Small AR Workspaces」、in Proceedings of 6th IEEE and ACM International Symposium on Mixed and Augmented Reality, Nara, 2007年、に開示された方法に従って、撮像部3の位置及び姿勢を推定してもよい。
このように、本実施形態では、特徴点ベース姿勢推定部16は、マーカベースの姿勢推定処理から自然特徴点ベースの姿勢推定処理に移行する場合に、マーカ検出精度が高いときにマーカに基づいて推定された撮像部3の位置及び姿勢を利用して、初期値を決定する。そのため、その初期値が実際の撮像部3の位置及び姿勢に近い可能性が高いので、特徴点ベース姿勢推定部16は、本来の撮像部3の位置及び姿勢とは異なるときに得られる評価値のローカルミニマムに陥らずに、評価値の最小値を求めることができる可能性が高い。したがって、特徴点ベース姿勢推定部16は、マーカベースの姿勢推定処理から自然特徴点ベースの姿勢推定処理に移行した際における、撮像部3の位置及び姿勢の推定精度を向上できる。
特徴点ベース姿勢推定部16は、推定した撮像部3の位置を表す世界座標系の座標、及び撮像部3の姿勢を表す世界座標系の単位方向ベクトルを記憶部5に記憶する。
マーカ再検出判定部17は、自然特徴点ベースの姿勢推定処理が実行されている間において、画像が得られる度に、画像からマーカを検出できる可能性を表す成功指標を算出する。マーカ再検出判定部17は、成功指標として、例えば、マーカ重心、撮像部3の光軸に対するマーカの法線の傾き、及び、画像上でのマーカの面積のうちの少なくとも一つを算出する。
なお、現時点では、マーカは検出されていない。そのため、マーカ再検出判定部17は、特徴点ベース姿勢推定部16により推定された撮像部3の位置及び姿勢に基づいて、(2)式及び(3)式に従って、3次元マップに記録されているマーカの四隅の座標を画像平面に投影する。そしてマーカ再検出判定部17は、その画像平面上でのマーカの四隅の座標から、マーカ重心の座標及びマーカの面積を算出する。同様に、マーカ再検出判定部17は、特徴点ベース姿勢推定部16により推定された撮像部3の姿勢に基づいて、撮像部3の光軸に対するマーカの法線の傾きを算出する。
マーカ再検出判定部17は、上記の複数の成功指標のうちの少なくとも一つが再移行準備開始基準を満たす場合、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定する。あるいは、移行準備開始判定部13は、複数のフレームにわたって、上記の複数の成功指標のうちの少なくとも一つが再移行準備開始基準を満たす場合に、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定してもよい。あるいはまた、移行準備開始判定部13は、上記の複数の成功指標のうちの二つ以上が再移行準備開始基準を満たす場合、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定してもよい。
マーカ再検出判定部17は、マーカ重心から最も近い画像端までの画素数が所定画素数(例えば、50画素)以上である場合、再移行準備開始基準を満たすと判定する。あるいは、マーカ再検出判定部17は、撮像部3の光軸に対するマーカの法線の傾きが所定角度(例えば、80°)以下である場合、再移行準備開始基準を満たすと判定してもよい。あるいはまた、マーカ再検出判定部17は、マーカの面積が、所定の面積閾値(例えば、100画素)以上である場合、再移行準備開始基準を満たすと判定してもよい。
あるいは、マーカ再検出判定部17は、上記の複数の成功指標に重み付けを行って、姿勢推定処理を、マーカベースへ移行する準備を開始するか否かを判定してもよい。例えば、撮像部3の移動速度が速く、画像にマーカ全体が写るようになる可能性が高い場合、マーカ再検出判定部17は、一つの画像に関してマーカ重心に関する再移行準備開始基準が満たされる場合、直ちにマーカ検出部11にマーカ検出を実行させる。一方、マーカ面積及び光軸角度に関しては、両方について再移行準備開始基準が満たされると、マーカ再検出判定部17は、マーカ検出部11にマーカ検出を実行させる。あるいは、マーカ面積及び光軸角度に関して、連続する複数の画像について再移行準備開始基準が満たされる場合、マーカ再検出判定部17は、マーカ検出部11にマーカ検出を実行させてもよい。
マーカ再検出判定部17は、現画像について、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定した場合、マーカ検出部11に、現画像からマーカを検出させる。その際、マーカ再検出判定部17は、マーカの検出精度の向上及び演算量の抑制のために、マーカの探索範囲を制限してもよい。例えば、マーカ再検出判定部17は、画像平面に投影されたマーカを含み、かつ、画像よりも小さい領域を、マーカ探索領域とする。具体的には、マーカ再検出判定部17は、世界座標系のマーカの四隅の座標を画像平面に投影することで得られた画像平面上のマーカの4隅を繋ぐ線で囲まれた領域の外接矩形を求める。そしてその外接矩形の左上端画素を(u,v)、その外接矩形の右下端画素を(u+w,v+h)とした場合、マーカ再検出判定部17は、マーカの探索範囲の左上端画素を(u-m,v-m)とし、マーカの探索範囲の右下端画素を(u+w+m,v+h+m)とする。mはオフセット値であり、例えば、10画素に設定される。なお、マーカの探索範囲の左上端画素(u-m,v-m)が画像外となる場合、マーカ再検出判定部17は、探索範囲の左端または上端を、画像の左端または上端としてもよい。同様に、マーカの探索範囲の右下端画素(u+w+m,v+h+m)が画像外となる場合、マーカ再検出判定部17は、探索範囲の右端または下端を、画像の右端または下端としてもよい。
マーカ再検出判定部17は、マーカの探索範囲をマーカ検出部11に通知する。そしてマーカ再検出判定部17は、その探索範囲内で、マーカ検出部11にマーカ検出処理を実行させる。
移行判定部18は、マーカベースの姿勢推定処理が実行されている間において、画像からマーカが検出できなくなると、自然特徴点ベースの姿勢推定処理へ移行すると判定する。そして移行判定部18は、マーカ検出部11及びマーカベース姿勢推定部12を停止させ、特徴点検出部15及び特徴点ベース姿勢推定部16を起動させる。なお、移行判定部18は、マーカ検出部11が、画像からマーカの四隅の何れか一つでも検出できない場合、マーカが検出されなかったと判定する。
一方、移行判定部18は、自然特徴点ベースの姿勢推定処理が実行されている間において、画像からマーカが検出できると、マーカベースの姿勢推定処理へ移行すると判定する。そして移行判定部18は、特徴点検出部15及び特徴点ベース姿勢推定部16を停止させ、マーカ検出部11及びマーカベース姿勢推定部12を起動させる。なお、移行判定部18は、連続する数フレームにわたって画像からマーカが検出された場合に、マーカベースの姿勢推定処理へ移行すると判定してもよい。
図9は、姿勢推定処理の動作フローチャートである。制御部6は、撮像部3から画像を取得する度に、以下の動作フローチャートに従って姿勢推定処理を実行する。
制御部6は、現時点で適用される姿勢推定処理がマーカベースか否か判定する(ステップS101)。現時点で適用される姿勢推定処理がマーカベースである場合(ステップS101−Yes)、マーカ検出部11は、画像からマーカを検出する(ステップS102)。移行判定部18は、画像からマーカが検出されたか否か判定する(ステップS103)。画像からマーカが検出された場合(ステップS103−Yes)、マーカベース姿勢推定部12は、画像上のマーカの位置に基づいて、撮像部3の位置及び姿勢を推定する(ステップS104)。
また、移行準備開始判定部13は、少なくとも一つの失敗指標を算出し、その失敗指標が移行準備開始基準を満たすか否か判定する(ステップS105)。移行準備開始基準が満たされる場合(ステップS105−Yes)、初期姿勢設定部14は、過去の数フレームの撮像部3の位置及び姿勢の推定値に基づいて、次画像取得時の撮像部3の位置及び姿勢を推定する。そして初期姿勢設定部14は、推定された位置及び姿勢を、自然特徴点ベースの姿勢推定処理開始時の撮像部3の位置及び姿勢の初期値とする(ステップS106)。そして初期姿勢設定部14は、その初期値を記憶部5に記憶する。
ステップS106の後、あるいは、ステップS105にて移行準備開始基準が満たされない場合(ステップS105−No)、制御部6は、姿勢推定処理を終了する。
一方、ステップS103にて、画像からマーカが検出されなかった場合(ステップS103−No)、移行判定部18は、自然特徴点ベースの姿勢推定処理へ移行すると判定し、特徴点検出部15及び特徴点ベース姿勢推定部16を起動する(ステップS107)。
ステップS107の後、あるいは、ステップS101にて現時点で適用される姿勢推定処理が自然特徴点ベースである場合(ステップS101−No)、特徴点検出部15は、画像から自然特徴点を検出する(ステップS108)。そして特徴点ベース姿勢推定部16は、一つ前の画像取得時における、撮像部3の位置及び姿勢の推定値を初期値とし、検出された自然特徴点に基づいて、撮像部3の位置及び姿勢を推定する(ステップS109)。
マーカ再検出判定部17は、少なくとも一つの成功指標を算出し、その成功指標が再移行準備開始基準を満たすか否か判定する(ステップS110)。再移行準備開始基準が満たされない場合(ステップS110−No)、制御部6は、姿勢推定処理を終了する。
一方、再移行準備開始基準が満たされる場合(ステップS110−Yes)、マーカ再検出判定部17は、マーカ探索範囲を設定する(ステップS111)。そしてマーカ検出部11は、マーカ探索範囲内でマーカを検出する(ステップS112)。移行判定部18は、画像からマーカが検出されたか否か判定する(ステップS113)。画像からマーカが検出された場合(ステップS113−Yes)、移行判定部18は、マーカベースの姿勢推定処理へ移行すると判定し、マーカ検出部11及びマーカベース姿勢推定部12を起動する(ステップS114)。
ステップS114の後、あるいは、ステップS113にて、画像からマーカが検出されなかった場合(ステップS113−No)、制御部6は、姿勢推定処理を終了する。
以上に説明してきたように、この姿勢推定装置は、画像からマーカが検出できる間は、マーカベースの姿勢推定処理により撮像部の位置及び姿勢を推定することで、演算量を抑制する。一方、この姿勢推定装置は、画像からマーカが検出できなくなると、自然特徴点ベースの姿勢推定処理により撮像部の位置及び姿勢を推定することで、マーカを検出できない場合でも、撮像部の位置及び姿勢を推定できる。さらに、この姿勢推定装置は、マーカの検出に失敗する可能性が高くなると、マーカの検出精度が高いときのマーカベースの姿勢推定処理により得られた撮像部の位置及び姿勢を利用して、マーカ検出失敗時の撮像部の位置及び姿勢を推定する。そして姿勢推定装置は、その推定値を、自然特徴点ベースの姿勢推定処理開始時の撮像部の位置及び姿勢の初期値として利用する。そのため、この姿勢推定装置は、マーカベースの姿勢推定処理から自然特徴点ベースの姿勢推定処理閉校した際の撮像部の位置及び姿勢の推定精度の低下を抑制できる。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
1 携帯端末(姿勢推定装置)
2 表示部
3 撮像部
4 記憶媒体アクセス装置
5 記憶部
6 制御部
7 筐体
11 マーカ検出部
12 マーカベース姿勢推定部
13 移行準備開始判定部
14 初期姿勢設定部
15 特徴点検出部
16 特徴点ベース姿勢推定部
17 マーカ再検出判定部
18 移行判定部

Claims (8)

  1. 所定の撮影周期にて、撮影した範囲の画像を生成する撮像部と、
    予め設置されたマーカの実空間での位置及び前記マーカの周囲の複数の特徴点の実空間での位置を記憶する記憶部と、
    前記画像から前記マーカを検出するマーカ検出部と、
    前記画像上での前記マーカの位置及び実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢を推定するマーカベース姿勢推定部と、
    前記画像から前記複数の特徴点を検出する特徴点検出部と、
    前記画像上での前記複数の特徴点の位置と、実空間での前記複数の特徴点の位置と、前記撮像部の位置及び姿勢の初期値とに基づいて前記撮像部の位置及び姿勢を推定する特徴点ベース姿勢推定部と、
    前記画像から前記マーカが検出されなかった場合に、当該画像及び当該画像以降に取得される画像について、前記特徴点検出部に前記複数の特徴点を検出させ、かつ、前記特徴点ベース姿勢推定部に前記撮像部の位置及び姿勢を推定させる移行判定部と、
    前記マーカベース姿勢推定部により前記撮像部の位置及び姿勢が推定されている間に取得された第1の画像から、前記マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、当該少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定する移行準備開始判定部と、
    前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記第1の画像よりも前の所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢から、前記撮像部の位置及び姿勢の前記初期値を設定する初期姿勢設定部と、
    を有する姿勢推定装置。
  2. 前記移行準備開始判定部は、前記第1の画像上での前記マーカの位置または前記マーカの移動速度と、前記画像上での前記マーカの面積と、前記マーカの法線方向と前記撮像部の光軸方向とがなす角と、前記マーカの検出の信頼度のうちの少なくとも一つを前記失敗指標として算出する、請求項1に記載の姿勢推定装置。
  3. 前記初期姿勢設定部は、前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢に対して予測フィルタを適用することで推定された前記撮像部の位置及び姿勢を前記初期値とする、請求項1または2に記載の姿勢推定装置。
  4. 前記特徴点ベース姿勢推定部により前記撮像部の位置及び姿勢が推定されている間に取得された第2の画像から前記マーカの検出に成功する可能性を表す少なくとも一つの成功指標を算出し、当該少なくとも一つの成功指標が再移行準備開始基準を満たすか否か判定し、当該再移行準備開始基準が満たされる場合、前記マーカ検出部に前記第2の画像から前記マーカを検出させるマーカ再検出判定部をさらに有し、
    前記移行判定部は、前記マーカ検出部が前記第2の画像から前記マーカを検出できた場合、前記第2の画像以降に取得される画像について、前記マーカ検出部に前記マーカを検出させ、かつ、前記マーカベース姿勢推定部に前記撮像部の位置及び姿勢を推定させる、請求項1〜3の何れか一項に記載の姿勢推定装置。
  5. 前記マーカ再検出判定部は、前記マーカの実空間での位置を、推定された前記撮像部の位置及び姿勢に基づいて前記第2の画像に投影して得られる前記第2の画像上での前記マーカを含み、かつ、前記第2の画像よりも小さい探索範囲を設定し、当該探索範囲内で前記マーカ検出部にマーカを検出させる、請求項4に記載の姿勢推定装置。
  6. 前記マーカ再検出判定部は、前記マーカの実空間での位置を、推定された前記撮像部の位置及び姿勢に基づいて前記第2の画像に投影して得られる前記第2の画像上での前記マーカの位置と、前記第2の画像上での前記マーカの面積と、前記マーカの法線方向と前記撮像部の光軸方向とがなす角のうちの少なくとも一つを前記成功指標として算出する、請求項4または5に記載の姿勢推定装置。
  7. 所定の撮影周期にて撮影した範囲の画像を生成する撮像部から取得した前記画像から予め設置されたマーカを検出し、
    前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢を推定し、
    前記画像から前記マーカが検出されなかった場合に、当該画像及び当該画像以降に取得される画像から前記マーカの周囲の複数の特徴点を検出し、
    前記画像上での前記複数の特徴点の位置と、実空間での前記複数の特徴点の位置と、前記撮像部の位置及び姿勢の初期値とに基づいて前記撮像部の位置及び姿勢を推定し、
    前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢が推定されている間に取得された第1の画像から、前記マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、当該少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定し、
    前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記第1の画像よりも前の所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢から、前記撮像部の位置及び姿勢の前記初期値を設定する、
    ことを含む姿勢推定方法。
  8. 所定の撮影周期にて撮影した範囲の画像を生成する撮像部から取得した前記画像から予め設置されたマーカを検出し、
    前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢を推定し、
    前記画像から前記マーカが検出されなかった場合に、当該画像及び当該画像以降に取得される画像から前記マーカの周囲の複数の特徴点を検出し、
    前記画像上での前記複数の特徴点の位置と、実空間での前記複数の特徴点の位置と、前記撮像部の位置及び姿勢の初期値とに基づいて前記撮像部の位置及び姿勢を推定し、
    前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢が推定されている間に取得された第1の画像から、前記マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、当該少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定し、
    前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記第1の画像よりも前の所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢から、前記撮像部の位置及び姿勢の前記初期値を設定する、
    ことをコンピュータに実行させるための姿勢推定用コンピュータプログラム。
JP2014034439A 2014-02-25 2014-02-25 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム Active JP6237326B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014034439A JP6237326B2 (ja) 2014-02-25 2014-02-25 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム
US14/611,330 US9542745B2 (en) 2014-02-25 2015-02-02 Apparatus and method for estimating orientation of camera

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014034439A JP6237326B2 (ja) 2014-02-25 2014-02-25 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2015158461A JP2015158461A (ja) 2015-09-03
JP6237326B2 true JP6237326B2 (ja) 2017-11-29

Family

ID=53882696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014034439A Active JP6237326B2 (ja) 2014-02-25 2014-02-25 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム

Country Status (2)

Country Link
US (1) US9542745B2 (ja)
JP (1) JP6237326B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6237326B2 (ja) * 2014-02-25 2017-11-29 富士通株式会社 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム
JP6635037B2 (ja) * 2014-08-01 2020-01-22 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP6575325B2 (ja) * 2015-11-27 2019-09-18 富士通株式会社 カメラ位置姿勢推定装置、カメラ位置姿勢推定方法およびカメラ位置姿勢推定プログラム
JP2017129567A (ja) * 2016-01-20 2017-07-27 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
US10685490B2 (en) * 2016-03-10 2020-06-16 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
JP6744747B2 (ja) * 2016-04-01 2020-08-19 キヤノン株式会社 情報処理装置およびその制御方法
JP6681278B2 (ja) * 2016-06-01 2020-04-15 京セラ株式会社 位置検出システム及び位置検出方法
DE102016121281A1 (de) * 2016-11-08 2018-05-09 3Dqr Gmbh Verfahren und Vorrichtung zum Überlagern eines Abbilds einer realen Szenerie mit virtuellen Bild- und Audiodaten und ein mobiles Gerät
JP6917701B2 (ja) * 2016-11-30 2021-08-11 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2018110433A1 (ja) 2016-12-15 2018-06-21 株式会社ソニー・インタラクティブエンタテインメント 情報処理システム、振動制御方法、及びプログラム
WO2018110434A1 (ja) 2016-12-15 2018-06-21 株式会社ソニー・インタラクティブエンタテインメント 振動デバイス、及び制御システム
US10969867B2 (en) 2016-12-15 2021-04-06 Sony Interactive Entertainment Inc. Information processing system, controller device, controller device control method and program
US10957068B2 (en) * 2017-01-06 2021-03-23 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the same
JP6894707B2 (ja) * 2017-01-06 2021-06-30 キヤノン株式会社 情報処理装置およびその制御方法、プログラム
JP6822209B2 (ja) * 2017-02-24 2021-01-27 セイコーエプソン株式会社 プロジェクターおよびプロジェクターの制御方法
JP6922348B2 (ja) * 2017-03-31 2021-08-18 富士通株式会社 情報処理装置、方法、及びプログラム
EP3385912B1 (en) * 2017-04-06 2022-08-24 Hexagon Technology Center GmbH Near field manoeuvring for ar-devices using image tracking
WO2018193514A1 (ja) 2017-04-18 2018-10-25 株式会社ソニー・インタラクティブエンタテインメント 振動制御装置
US11145172B2 (en) 2017-04-18 2021-10-12 Sony Interactive Entertainment Inc. Vibration control apparatus
WO2018193557A1 (ja) 2017-04-19 2018-10-25 株式会社ソニー・インタラクティブエンタテインメント 振動制御装置
US11458389B2 (en) 2017-04-26 2022-10-04 Sony Interactive Entertainment Inc. Vibration control apparatus
JP6762913B2 (ja) * 2017-07-11 2020-09-30 キヤノン株式会社 情報処理装置、情報処理方法
JP6771435B2 (ja) * 2017-07-20 2020-10-21 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および位置情報取得方法
JP6721550B2 (ja) * 2017-08-04 2020-07-15 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および位置情報取得方法
US10235774B1 (en) 2017-11-14 2019-03-19 Caterpillar Inc. Method and system for calibration of an image capturing device mounted on a machine
CN108062776B (zh) * 2018-01-03 2019-05-24 百度在线网络技术(北京)有限公司 相机姿态跟踪方法和装置
US11364004B2 (en) * 2018-02-08 2022-06-21 Covidien Lp System and method for pose estimation of an imaging device and for determining the location of a medical device with respect to a target
JP7041262B2 (ja) * 2018-06-08 2022-03-23 マクセル株式会社 携帯端末、カメラ位置推定システム、カメラ位置推定方法および標識板
JP7225762B2 (ja) * 2018-12-17 2023-02-21 カシオ計算機株式会社 自己位置推定装置、自己位置推定方法及びプログラム
CN113330275B (zh) * 2019-01-23 2023-05-09 株式会社索思未来 相机信息计算装置、系统、相机信息计算方法及记录介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4095320B2 (ja) 2002-03-19 2008-06-04 キヤノン株式会社 センサ較正装置、センサ較正方法、プログラム、記憶媒体
JP2003281504A (ja) * 2002-03-22 2003-10-03 Canon Inc 撮像部位置姿勢推定装置及びその制御方法並びに複合現実感提示システム
EP1556805B1 (en) * 2002-10-22 2011-08-24 Artoolworks Tracking a surface in a 3-dimensional scene using natural visual features of the surface
CN100365654C (zh) * 2003-07-24 2008-01-30 奥林巴斯株式会社 图像处理装置
JP3991020B2 (ja) * 2003-09-30 2007-10-17 キヤノン株式会社 画像表示方法及び画像表示システム
JP4532982B2 (ja) 2004-05-14 2010-08-25 キヤノン株式会社 配置情報推定方法および情報処理装置
JP2013141049A (ja) * 2010-03-24 2013-07-18 Hitachi Ltd 世界座標系データベースを利用したサーバ及び端末
CN104584032A (zh) * 2012-04-13 2015-04-29 莱特克拉夫特科技有限责任公司 混合式精确跟踪
JP6237326B2 (ja) * 2014-02-25 2017-11-29 富士通株式会社 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム

Also Published As

Publication number Publication date
JP2015158461A (ja) 2015-09-03
US9542745B2 (en) 2017-01-10
US20150243016A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
JP6237326B2 (ja) 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム
CN110411441B (zh) 用于多模态映射和定位的系统和方法
JP6507730B2 (ja) 座標変換パラメータ決定装置、座標変換パラメータ決定方法及び座標変換パラメータ決定用コンピュータプログラム
US9208395B2 (en) Position and orientation measurement apparatus, position and orientation measurement method, and storage medium
US10410089B2 (en) Training assistance using synthetic images
JP6435750B2 (ja) 3次元座標算出装置、3次元座標算出方法および3次元座標算出プログラム
US9420265B2 (en) Tracking poses of 3D camera using points and planes
US7554575B2 (en) Fast imaging system calibration
JP5746477B2 (ja) モデル生成装置、3次元計測装置、それらの制御方法及びプログラム
Kurz et al. Gravity-aware handheld augmented reality
US11830216B2 (en) Information processing apparatus, information processing method, and storage medium
JP6503906B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2018522348A (ja) センサーの3次元姿勢を推定する方法及びシステム
WO2015017539A1 (en) Rolling sequential bundle adjustment
WO2016029939A1 (en) Method and system for determining at least one image feature in at least one image
JP6609640B2 (ja) 電子デバイス上における環境マッピング用のフィーチャ・データの管理
CN107852447A (zh) 基于设备运动和场景距离使电子设备处的曝光和增益平衡
Kurz et al. Handheld augmented reality involving gravity measurements
JP2017146938A (ja) 書籍検出装置、書籍検出方法及び書籍検出用コンピュータプログラム
JP2017011328A (ja) 画像処理装置、画像処理方法および画像処理プログラム
US20210374978A1 (en) Capturing environmental scans using anchor objects for registration
JP2018113021A (ja) 情報処理装置およびその制御方法、プログラム
JP2018112790A (ja) 情報処理装置およびその制御方法、プログラム
Fioraio et al. SlamDunk: affordable real-time RGB-D SLAM
US11758100B2 (en) Portable projection mapping device and projection mapping system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6237326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150