(57)【要約】【課題】撮像部で撮影した画像からマーカを検出できなくても撮像部の位置及び姿勢の推定精度の低下を抑制でき、かつ演算量を抑制できる姿勢推定装置を提供する。【解決手段】姿勢推定装置１は、撮像部３で生成された画像からマーカを検出できる間、画像及び実空間でのマーカの位置に基づいて撮像部３の位置及び姿勢を推定し、画像からマーカを検出できない間、画像及び実空間での複数の特徴点の位置と、撮像部３の位置及び姿勢の初期値とに基づいて撮像部３の位置及び姿勢を推定する。そしてこの姿勢推定装置１は、マーカの位置に基づいて撮像部３の位置及び姿勢が推定されている間に取得された第１の画像から算出したマーカの検出に失敗する可能性を表す失敗指標が移行準備開始基準を満たす場合、第１の画像よりも前の所定期間に取得された画像上でのマーカの位置に基づいて推定された撮像部３の位置及び姿勢から初期値を設定する。【選択図】図４
2015158461.tif 000002
【特許請求の範囲】
【請求項１】
所定の撮影周期にて、撮影した範囲の画像を生成する撮像部と、
予め設置されたマーカの実空間での位置及び前記マーカの周囲の複数の特徴点の実空間での位置を記憶する記憶部と、
前記画像から前記マーカを検出するマーカ検出部と、
前記画像上での前記マーカの位置及び実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢を推定するマーカベース姿勢推定部と、
前記画像から前記複数の特徴点を検出する特徴点検出部と、
前記画像上での前記複数の特徴点の位置と、実空間での前記複数の特徴点の位置と、前記撮像部の位置及び姿勢の初期値とに基づいて前記撮像部の位置及び姿勢を推定する特徴点ベース姿勢推定部と、
前記画像から前記マーカが検出されなかった場合に、当該画像及び当該画像以降に取得される画像について、前記特徴点検出部に前記複数の特徴点を検出させ、かつ、前記特徴点ベース姿勢推定部に前記撮像部の位置及び姿勢を推定させる移行判定部と、
前記マーカベース姿勢推定部により前記撮像部の位置及び姿勢が推定されている間に取得された第１の画像から、前記マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、当該少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定する移行準備開始判定部と、
前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記第１の画像よりも前の所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢から、前記撮像部の位置及び姿勢の前記初期値を設定する初期姿勢設定部と、
を有する姿勢推定装置。
【請求項２】
前記移行準備開始判定部は、前記第１の画像上での前記マーカの位置または前記マーカの移動速度と、前記画像上での前記マーカの面積と、前記マーカの法線方向と前記撮像部の光軸方向とがなす角と、前記マーカの検出の信頼度のうちの少なくとも一つを前記失敗指標として算出する、請求項１に記載の姿勢推定装置。
【請求項３】
前記初期姿勢設定部は、前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢に対して予測フィルタを適用することで推定された前記撮像部の位置及び姿勢を前記初期値とする、請求項１または２に記載の姿勢推定装置。
【請求項４】
前記特徴点ベース姿勢推定部により前記撮像部の位置及び姿勢が推定されている間に取得された第２の画像から前記マーカの検出に成功する可能性を表す少なくとも一つの成功指標を算出し、当該少なくとも一つの成功指標が再移行準備開始基準を満たすか否か判定し、当該再移行準備開始基準が満たされる場合、前記マーカ検出部に前記第２の画像から前記マーカを検出させるマーカ再検出判定部をさらに有し、
前記移行判定部は、前記マーカ検出部が前記第２の画像から前記マーカを検出できた場合、前記第２の画像以降に取得される画像について、前記マーカ検出部に前記マーカを検出させ、かつ、前記マーカベース姿勢推定部に前記撮像部の位置及び姿勢を推定させる、請求項１〜３の何れか一項に記載の姿勢推定装置。
【請求項５】
前記マーカ再検出判定部は、前記マーカの実空間での位置を、推定された前記撮像部の位置及び姿勢に基づいて前記第２の画像に投影して得られる前記第２の画像上での前記マーカを含み、かつ、前記第２の画像よりも小さい探索範囲を設定し、当該探索範囲内で前記マーカ検出部にマーカを検出させる、請求項４に記載の姿勢推定装置。
【請求項６】
前記マーカ再検出判定部は、前記マーカの実空間での位置を、推定された前記撮像部の位置及び姿勢に基づいて前記第２の画像に投影して得られる前記第２の画像上での前記マーカの位置と、前記第２の画像上での前記マーカの面積と、前記マーカの法線方向と前記撮像部の光軸方向とがなす角のうちの少なくとも一つを前記成功指標として算出する、請求項４または５に記載の姿勢推定装置。
【請求項７】
所定の撮影周期にて撮影した範囲の画像を生成する撮像部から取得した前記画像から前記マーカを検出し、
前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢を推定し、
前記画像から前記マーカが検出されなかった場合に、当該画像及び当該画像以降に取得される画像から前記複数の特徴点を検出し、
前記画像上での前記複数の特徴点の位置と、実空間での前記複数の特徴点の位置と、前記撮像部の位置及び姿勢の初期値とに基づいて前記撮像部の位置及び姿勢を推定し、
前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢が推定されている間に取得された第１の画像から、前記マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、当該少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定し、
前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記第１の画像よりも前の所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢から、前記撮像部の位置及び姿勢の前記初期値を設定する、
ことを含む姿勢推定方法。
【請求項８】
所定の撮影周期にて撮影した範囲の画像を生成する撮像部から取得した前記画像から前記マーカを検出し、
前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢を推定し、
前記画像から前記マーカが検出されなかった場合に、当該画像及び当該画像以降に取得される画像から前記複数の特徴点を検出し、
前記画像上での前記複数の特徴点の位置と、実空間での前記複数の特徴点の位置と、前記撮像部の位置及び姿勢の初期値とに基づいて前記撮像部の位置及び姿勢を推定し、
前記画像上での前記マーカの位置と実空間での前記マーカの位置に基づいて前記撮像部の位置及び姿勢が推定されている間に取得された第１の画像から、前記マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、当該少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定し、
前記少なくとも一つの失敗指標が前記移行準備開始基準を満たす場合、前記第１の画像よりも前の所定期間に取得された前記画像上での前記マーカの位置に基づいて推定された前記撮像部の位置及び姿勢から、前記撮像部の位置及び姿勢の前記初期値を設定する、
ことをコンピュータに実行させるための姿勢推定用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、カメラによって撮影した画像に基づいてカメラの位置及び姿勢を推定する姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、ユーザの作業の支援を行うために、カメラによって撮影した画像に、様々な情報を重畳表示させる、いわゆる拡張現実感（Augmented Reality, AR）に関する研究が行われている（例えば、非特許文献１を参照）。
【０００３】
ARを実現するシステムにおいては、カメラで撮影された画像上の適切な位置に情報を重畳するために、仮想空間が実空間に正確に位置合わせされることが求められる。そのためには、実空間でのカメラの位置及び姿勢を正確に把握できることが求められる。そこで、予め設置された既知のマーカの画像上の位置及び形状から、カメラの位置及び姿勢を推定する技術が提案されている（例えば、非特許文献２を参照）。
【０００４】
しかしながら、撮影条件によっては、画像上でマーカを正確に検出することが困難なことがある。また、カメラの撮影範囲からマーカが外れ、その結果として画像上にマーカが写っていないこともある。このような場合、マーカに基づいてカメラの姿勢を推定することは困難である。そこで、撮影画像から抽出した複数の特徴点に基づいてカメラの位置及び姿勢を推定する技術が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３２６２７４号公報
【非特許文献】
【０００６】
【非特許文献１】石井他、「拡張現実感を利用した原子力発電プラントの解体支援手法の提案と評価」、日本バーチャルリアリティ学会論文誌、13(2)、pp.289-300、2008年6月
【非特許文献２】加藤他、「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」、日本バーチャルリアリティ学会論文誌、4(4)、pp.607-616、1999年12月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数の特徴点に基づいてカメラの位置及び姿勢を推定するには、３次元空間上の点と２次元画像上の点との対応付けを行う演算を繰り返すことになるので、マーカに基づいてカメラの位置及び姿勢を推定するよりも多くの演算が必要となる。演算量が多いほど、その演算を実行するハードウエアの消費電力も増大する。一方、カメラ付きの携帯端末のように、電源の容量が限定される装置でARを実装する場合、演算量は少ないほど好ましい。
【０００８】
そこで本明細書は、撮像部で撮影した画像からマーカを検出できなくても撮像部の位置及び姿勢の推定精度の低下を抑制でき、かつ演算量を抑制できる姿勢推定装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの実施形態によれば、姿勢推定装置が提供される。この姿勢推定装置は、所定の撮影周期にて、撮影した範囲の画像を生成する撮像部と、予め設置されたマーカの実空間での位置及びマーカの周囲の複数の特徴点の実空間での位置を記憶する記憶部と、画像から前記マーカを検出するマーカ検出部と、画像上でのマーカの位置及び実空間でのマーカの位置に基づいて撮像部の位置及び姿勢を推定するマーカベース姿勢推定部と、画像から複数の特徴点を検出する特徴点検出部と、画像上での複数の特徴点の位置と、実空間での複数の特徴点の位置と、撮像部の位置及び姿勢の初期値とに基づいて撮像部の位置及び姿勢を推定する特徴点ベース姿勢推定部と、画像からマーカが検出されなかった場合に、その画像及びその画像以降に取得される画像について、特徴点検出部に複数の特徴点を検出させ、かつ、特徴点ベース姿勢推定部に撮像部の位置及び姿勢を推定させる移行判定部と、マーカベース姿勢推定部により撮像部の位置及び姿勢が推定されている間に取得された第１の画像から、マーカの検出に失敗する可能性を表す少なくとも一つの失敗指標を算出し、その少なくとも一つの失敗指標が移行準備開始基準を満たすか否か判定する移行準備開始判定部と、少なくとも一つの失敗指標が移行準備開始基準を満たす場合、第１の画像よりも前の所定期間に取得された画像上でのマーカの位置に基づいて推定された撮像部の位置及び姿勢から、撮像部の位置及び姿勢の初期値を設定する初期姿勢設定部とを有する。
【００１０】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
【発明の効果】
【００１１】
本明細書に開示された姿勢推定装置は、撮像部で撮影した画像からマーカを検出できなくても撮像部の位置及び姿勢の推定精度の低下を抑制でき、かつ演算量を抑制できる。
【図面の簡単な説明】
【００１２】
【図１】姿勢推定装置の一つの実施形態である携帯端末のハードウェア構成図である。
【図２】マーカの一例を示す図である。
【図３】マーカの三次元座標及び各自然特徴点の三次元座標及び特徴量とが格納された三次元マップの一例を示す図である。
【図４】制御部の機能ブロック図である。
【図５】画像取得時刻ごとの撮像部３の位置及び姿勢を表すリストの一例を示す図である。
【図６】（ａ）〜（ｄ）は、それぞれ、画像からマーカが検出できなくなる可能性がある場合を示す図である。
【図７】自然特徴点ベースの姿勢推定処理の初期値予測の概念図である。
【図８】自然特徴点ベースの姿勢推定処理の概念図である。
【図９】姿勢推定処理の動作フローチャートである。
【発明を実施するための形態】
【００１３】
以下、図を参照しつつ、姿勢推定装置について説明する。この姿勢推定装置は、撮像部が所定の撮影周期でその周囲を撮影して画像を生成する度に、その画像に基づいて撮影時の撮像部の位置及び姿勢を推定する。その際、この姿勢推定装置は、予め設置された、形状及び設置位置が既知のマーカが画像に写っており、かつ、画像からマーカを検出できる場合には、画像上でのマーカの位置に基づいて撮像部の位置及び姿勢を推定することで演算量を抑制する。一方、姿勢推定装置は、画像からマーカを検出できない場合には、マーカの周囲にあり、かつ、画像に写っている複数の特徴的な点（以下、自然特徴点と呼ぶ）を画像から検出し、それらの特徴点に基づいて撮像部の位置及び姿勢を推定する。
【００１４】
また、この姿勢推定装置は、画像からマーカを検出できなくなる可能性が高くなったと判断すると、それ以前に取得された画像上のマーカに基づいて推定された撮像部の位置及び姿勢に対して予測フィルタを適用して、撮像部の位置及び姿勢の推定を開始する。そしてこの姿勢推定装置は、画像からマーカを検出できなくなり、自然特徴点に基づく姿勢推定に切り替える際、予測フィルタにより推定された撮像部の位置及び姿勢を初期値として、自然特徴点に基づく位置及び姿勢の推定を実行する。これにより、この姿勢推定装置は、自然特徴点に基づいて撮像部の位置及び姿勢を推定する際の推定精度の低下を抑制する。
【００１５】
図１は、姿勢推定装置の一つの実施形態である携帯端末のハードウェア構成図である。携帯端末１は、表示部２と、撮像部３と、記憶媒体アクセス装置４と、記憶部５と、制御部６とを有する。表示部２、撮像部３、記憶媒体アクセス装置４、記憶部５及び制御部６は、筐体７内に配置される。なお、携帯端末１は、例えば、携帯電話機、携帯情報端末またはタブレット型コンピュータである。さらに携帯端末１は、携帯端末１を他の機器に接続するための通信インターフェース回路（図示せず）を有していてもよい。なお図１は、携帯端末１が有する構成要素を説明するための図であり、携帯端末１の各構成要素の実際の配置を表した図ではないことに留意されたい。
【００１６】
携帯端末１は、撮像部３が所定の撮影周期ごとに周囲を撮影して得られた画像に写っているマーカまたは自然特徴点に基づいて、撮像部３の位置及び姿勢を推定する。そしてこの携帯端末１は、その位置及び姿勢の推定結果を利用して、画像上に様々な情報を重畳することで、ARをユーザに提供してもよい。
【００１７】
表示部２は、例えば、液晶ディスプレイ、あるいは有機エレクトロルミネッセンスディスプレイを有し、表示部２の表示画面が、筐体７の正面に対向するユーザを向くように配置される。そして表示部２は、撮像部３により生成された画像など、ユーザに対して様々な情報を表示する。また表示部２は、タッチパネルディスプレイを有してもよい。この場合、表示部２は、例えば、様々なアイコンまたは操作ボタンを、制御部６からの制御信号に応じて表示する。そして表示部２は、表示されたアイコンまたは操作ボタンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号を制御部６へ出力する。
【００１８】
撮像部３は、例えば、２次元アレイ状に配置された固体撮像素子を有するイメージセンサと、そのイメージセンサ上に被写体の像を結像する撮像光学系とを有する。
【００１９】
撮像部３は、所定の撮影周期ごとに携帯端末１の周囲を撮影することで、その撮影周期ごとに画像を生成する。なお、生成される画像は、RGB表色系により表されるカラー画像であってもよく、あるいは、グレー画像であってもよい。そして撮像部３は、画像を生成する度に、生成した画像を制御部６へ出力する。なお、撮影周期は、例えば、33msecである。
【００２０】
記憶媒体アクセス装置４は、例えば、半導体メモリカードといった記憶媒体８にアクセスする装置である。記憶媒体アクセス装置４は、例えば、記憶媒体８に記憶された、制御部６上で実行されるコンピュータプログラムを読み込み、制御部６に渡す。また、後述するように、制御部６が姿勢推定装置としての機能を実現するコンピュータプログラムを実行する場合には、記憶媒体アクセス装置４は、記憶媒体８から姿勢推定用コンピュータプログラムを読み込んで、制御部６に渡してもよい。
【００２１】
記憶部５は、例えば、読み書き可能な不揮発性の半導体メモリと、読み書き可能な揮発性の半導体メモリとを有する。そして記憶部５は、制御部６上で実行される各種のアプリケーションプログラム及び各種のデータを記憶する。また記憶部５は、姿勢推定処理に利用される各種のデータを記憶する。例えば、記憶部５は、直近の一定期間（例えば、数フレーム〜数十フレームに相当する期間）に取得された画像から推定された撮像部３の位置及び姿勢を表す情報を記憶する。
【００２２】
さらに記憶部５は、実空間に設定された三次元の世界座標系における、マーカの三次元座標と、複数の自然特徴点のそれぞれについての３次元座標とその自然特徴点を特定するための特徴量とが格納された三次元マップを記憶する。
【００２３】
図２は、マーカの一例を示す図である。マーカ２００は、識別用パターン２０１と、識別用パターン２０１を囲む矩形パターン２０２とを有する。識別用パターン２０１は、例えば、マーカ２００が設置された場所の周囲の模様との区別が付き易いパターンであればよい。本実施形態では、撮像部３の位置及び姿勢を推定するために、矩形パターン２０２の外周の四隅の位置が画像上で検出される。なお、マーカは、図２に示されたものに限られず、マーカが設置された場所の周囲の模様との区別が付き易いものであればよい。また、撮像部３の位置及び姿勢の推定に、マーカの他の位置が利用されてもよい。
【００２４】
なお、本実施形態では、実空間に設定される世界座標系は、簡単化のために、マーカの中心を原点とし、マーカが含まれる平面にX軸及びY軸を設定し、マーカが含まれる平面の法線をZ軸とする。
【００２５】
図３は、三次元マップの一例を示す図である。三次元マップ３００の各行には、それぞれ、自然特徴点またはマーカの外周の四隅の何れかの三次元座標と、マーカか自然特徴点かを表す種別フラグ（自然特徴点：f、マーカ：m）と、自然特徴点の特徴量が記録される。この例では、１行目〜６４行目には、例えば、各自然特徴点の三次元座標などが記録されている。また、６５行目〜６８行目には、マーカの四隅の三次元座標などが記録されている。
【００２６】
なお、自然特徴点の特徴量は、画像上で自然特徴点を特定するために利用できるものであればよく、例えば、自然特徴点が位置する画像上での画素の輝度値と、その周囲８近傍画素または２４近傍画素の輝度値とすることができる。あるいは、自然特徴点の特徴量は、自然特徴点が位置する画像上での画素あるいはその周囲８近傍画素または２４近傍画素の各色の値であってもよい。あるいはまた、自然特徴点の特徴量は、画像から自然特徴点を検出するための演算によって得られるスカラー量あるいはベクトル量であってよい。例えば、画像から自然特徴点を検出するために、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年を参照されたい。
【００２７】
三次元マップを作成するために、撮像部３の位置及び姿勢を推定する処理を実行する以前に、予めマーカの四隅及び各自然特徴点の三次元座標が計測される。例えば、予め位置及び姿勢（光軸方向）が分かっている、互いに異なる２点のそれぞれにおいて、撮像部３がマーカ及びその周囲を撮影して得た２枚の画像から、それぞれ、マーカの四隅及び自然特徴点が検出される。その際、制御部６が、例えば、テンプレートマッチング、またはコーナー検出フィルタといった特徴点検出処理を行って、マーカの四隅及び自然特徴点を検出してもよい。あるいは、ユーザが、各画像上でマーカの四隅及び自然特徴点を指定してもよい。
【００２８】
次に、各画像から検出された自然特徴点のうち、同一の自然特徴点を示すものが対応付けられる。その際、制御部６は、例えば、SIFT演算値が最も一致する、あるいは、画像上の自然特徴点周囲の領域同士のパターンマッチングによって最も一致する二つの画像上の自然特徴点同士を、同一の自然特徴点に対応するとしてもよい。
【００２９】
画像上の各画素は、それぞれ、撮像部３の光軸に対する角度を表している。そのため、ある撮影地点で得られた画像から検出された自然特徴点については、その撮影地点からその自然特徴点への方向が求められる。したがって、同一の自然特徴点に対応する二つの画像上の画素の位置がそれぞれ分かれば、三角測量の原理に従って、その自然特徴点の三次元座標が求められる。同様に、マーカの四隅の三次元座標も求められる。
【００３０】
また、制御部６は、三次元座標が求められた各自然特徴点の特徴量を、自然特徴点が検出された何れかの画像から、その自然特徴点に対応する画素及びその周囲の画素に基づいて算出すればよい。
なお、マーカの四隅及び自然特徴点の三次元座標は、複数の画像からその画像に写っている物体の位置を求める様々な方法、例えば、山田他、「２画像からの３次元復元の最新アルゴリズム」、情報処理学会研究報告、vol.2009-CVIM-168-15、pp.1-8、2009年に開示された方法に従って求められてもよい。
【００３１】
制御部６は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部６は、携帯端末１の各部と信号線を介して接続されており、携帯端末１全体を制御する。
また制御部６は、撮像部３から画像を受け取る度に、その画像に写っているマーカまたは自然特徴点に基づいて撮像部３の位置及び姿勢を推定する。
なお、以下では、マーカに基づく撮像部３の位置及び姿勢の推定処理を、マーカベースの姿勢推定処理と呼ぶ。一方、自然特徴点に基づく撮像部３の位置及び姿勢の推定処理を、自然特徴点ベースの姿勢推定処理と呼ぶ。
【００３２】
図４は、制御部６の機能ブロック図である。制御部６は、マーカ検出部１１と、マーカベース姿勢推定部１２と、移行準備開始判定部１３と、初期姿勢設定部１４と、特徴点検出部１５と、特徴点ベース姿勢推定部１６と、マーカ再検出判定部１７と、移行判定部１８とを有する。制御部６が有するこれらの各部は、例えば、制御部６上で実行されるコンピュータプログラムにより実現される。なお、制御部６が有するこれらの各部は、制御部６が有するプロセッサとは別個に、これらの各部の機能を実現する集積回路として、携帯端末１に実装されてもよい。
【００３３】
マーカ検出部１１は、制御部６がマーカベースの姿勢推定処理を実行している間、または、マーカベースの姿勢推定処理を再開できる可能性があると判定された場合に、撮像部３から画像が得られる度に、その画像からマーカを検出する。
【００３４】
そのために、マーカ検出部１１は、例えば、様々な方向から見たマーカのパターンを表した複数のテンプレートを用いて画像に対するテンプレートマッチングを行うことにより、画像上のマーカを検出する。
【００３５】
その際、マーカ検出処理を高速化するために、マーカ検出部１１は、画像の各画素について、輝度値が所定の閾値以上か否かによって２値化してもよい。例えば、図２に示されたマーカ２００の矩形パターン２０２及び矩形パターン内部の識別用パターン２０１は、その周囲よりも黒いので、画像上でも、それらのパターンに対応する画素の輝度値は、その周囲の画素の輝度値よりも低くなる。したがって、２値化画像上では、マーカ２００に含まれるパターンに対応する画素と、その他の画素とは、異なる画素値を持つ。例えば、マーカ検出部１１は、所定の閾値以上の輝度値を持つ画素に対応する２値化画像上の画素の輝度値を相対的に高くし、その閾値未満の輝度値を持つ画素に対応する２値化画像上の画素の輝度値を相対的に低くする。したがって、マーカに含まれるパターンに対応する画素は相対的に低い輝度値となる。以下、２値化画像上で相対的に低い輝度値を持つ画素を、便宜上黒画素と呼ぶ。
【００３６】
マーカ検出部１１は、黒画素の集合に対してラベリング処理を実行することで、黒画素同士が連結された領域である、１以上の黒画素領域を求める。そしてマーカ検出部１１は、各黒画素領域に対して輪郭線追跡を行って、各黒画素領域の輪郭線を求める。さらに、マーカ検出部１１は、各輪郭線に対して折れ線近似を行って、４本の線分で輪郭線を近似できた黒画素領域をマーカ候補領域とする。マーカ検出部１１は、マーカ候補領域とテンプレートとの間でテンプレートマッチングを行って、例えば、マーカ候補領域とテンプレート間の正規化相互相関値を次式に従って算出する。
【数１】
2015158461.tif 000003
ここでT(i,j)は、テンプレートの画素(i,j)の輝度値であり、I(i,j)は、マーカ候補領域中の画素(i,j)の輝度値である。そしてTavは、テンプレートの輝度平均値であり、Iavは、マーカ候補領域の輝度平均値である。
【００３７】
マーカ検出部１１は、正規化相互相関値の最大値がマーカ検出用閾値（例えば、0.8）以上となる場合、その正規化相互相関値の最大値に対応するマーカ候補領域にマーカが写っていると判定する。そしてマーカ検出部１１は、そのマーカ候補領域の四隅の座標を、画像上でのマーカの座標とする。
【００３８】
一方、正規化相互相関値の最大値がマーカ検出用閾値未満である場合、マーカ検出部１１は、マーカ候補領域にマーカは写っていないと判定する。
【００３９】
なお、マーカ再検出判定部１７により、マーカの探索領域が限定されている場合、マーカ検出部１１は、その限定された探索領域内でマーカの検出処理を実行する。なお、マーカ再検出判定部１７及びマーカの探索領域の詳細については後述する。また、マーカ検出部１１は、直前に得られた画像上のマーカの四隅で囲まれた領域の外接矩形を、所定のオフセットだけ垂直方向及び水平方向に拡張した領域を、現画像に対するマーカ探索領域とし、そのマーカ探索領域内でマーカ検出処理を行ってもよい。
【００４０】
マーカ検出部１１は、画像上でのマーカの四隅の座標を求める度に、各座標を、対応する画像の取得順序が分かるように、記憶部５に記憶する。
【００４１】
マーカベース姿勢推定部１２は、撮像部３から得られた画像からマーカが検出される度に、そのマーカに基づいて撮像部３の位置及び姿勢を推定する。
【００４２】
マーカベース姿勢推定部１２は、撮像部３の位置及び姿勢を推定するために、例えば、マーカを基準とする世界座標系から、撮像部３を基準とするカメラ座標系への変換行列を推定する。
この変換行列は次式で表される。
【数２】
2015158461.tif 000004
ここで、(Xc,Yc,Zc)は、マーカを基準とする世界座標系における三次元座標(Xm,Ym,Zm)の点に対応するカメラ座標系の三次元座標を表す。また、行列Rは、回転移動成分を表し、行列Tは、平行移動成分を表す。なお、カメラ座標系におけるZ軸は、撮像部３の光軸と平行に設定される。
また、カメラ座標系と、撮像部３により生成される画像上の座標系との関係は、透視変換モデルに従って次式で表される。
【数３】
2015158461.tif 000005
ここで、(xc,yc)は、カメラ座標系上の三次元座標(Xc,Yc,Zc)の点に対応する、画像上の座標を表す。
【００４３】
マーカベース姿勢推定部１２は、回転移動成分を表す行列Rを推定するために、マーカの四隅のうち、２点を結ぶ線分を求めることで、互いに対向するマーカの２辺の単位方向ベクトルV1、V2を算出する。
【００４４】
互いに対向するマーカの２辺の式は次式で表される。
【数４】
2015158461.tif 000006
そして（４）式に、（３）式の(xc,yc)を代入することで次式が得られる。
【数５】
2015158461.tif 000007
（５）式は、カメラ座標系における、マーカの互いに対向する２辺が存在する平面を表す方程式である。マーカの互いに対向する２辺は平行なので、それら２辺の方向ベクトルは互いに一致し、（５）式で表される二つの平面の面内方向となる。したがって、（５）式の二つの平面のそれぞれの法線ベクトルの外積が、その２辺それぞれの単位方向ベクトルV1、V2となる。
【００４５】
さらに、マーカベース姿勢推定部１２は、単位方向ベクトルV1及びV2の外積を計算することで、マーカ平面に垂直な方向の単位方向ベクトルV3を算出する。回転移動成分を表す行列Rは、[V1tV2tV3t]で表される。
【００４６】
また、マーカベース姿勢推定部１２は、平行移動成分を表す行列Tを推定するために、（２）式と（３）式を結合する。そしてマーカベース姿勢推定部１２は、その結合式に、マーカの四隅のそれぞれについての画像上の座標と、世界座標系での座標を入力することで、行列Tの３個の要素[T1,T2,T3]に対する８個の連立方程式が得られる。そこでマーカベース姿勢推定部１２は、この連立方程式を最小二乗法で解くことにより、行列Tの各要素[T1,T2,T3]を算出する。
【００４７】
マーカベース姿勢推定部１２は、回転移動成分の計算による誤差を軽減するために、行列Rの各成分を、Rodriguesの公式に従って、カメラ座標系における、世界座標系のZ軸の３個の回転角で表すように変換する。
【００４８】
マーカベース姿勢推定部１２は、得られた変換行列において、カメラ座標系の原点の位置に対応する世界座標系の座標を求めることにより、撮像部３の位置を推定できる。また、マーカベース姿勢推定部１２は、得られた変換行列において、カメラ座標系の軸Zc（すなわち、光軸）に対応する世界座標系の方向を求めることで、撮像部３の姿勢、すなわち、世界座標系における撮像部３の光軸方向を推定できる。
【００４９】
マーカベース姿勢推定部１２は、推定した撮像部３の位置を表す世界座標系の座標、及び撮像部３の姿勢を表す世界座標系の単位方向ベクトルを記憶部５に記憶する。
【００５０】
図５は、記憶部５に記憶される、撮影時刻ごとの撮像部３の位置及び姿勢を表すリストの一例を示す図である。リスト５００の各行には、世界座標系での撮像部３の位置及び姿勢を表す６次元のベクトル(x,y,z,rx,ry,rz)と、画像上でのマーカの四隅の座標が記録されている。なお、撮像部３の位置及び姿勢を表す６次元のベクトルの要素x,y,zは、それぞれ、マーカ平面における水平方向、垂直方向及びマーカ平面の法線方向の座標を表す。また要素rx,ry,rzは、それぞれ、撮像部３の光軸が、マーカ平面の法線方向に対して水平方向及び垂直方向になす角と、マーカ平面の法線方向周りの撮像部３の回転角を表す。
【００５１】
移行準備開始判定部１３は、マーカベースの姿勢推定処理が行われている間、画像が得られる度に、画像からマーカを検出できなくなる可能性を表す失敗指標を算出する。
【００５２】
図６（ａ）〜図６（ｄ）は、それぞれ、画像からマーカが検出できなくなる可能性がある場合を示す図である。図６（ａ）に示される例では、画像６００上で、マーカ６０１が画像端へ向けて移動している場合であり、将来的にマーカ６０１が画像６００から外れることが想定される。また、図６（ｂ）に示される例では、撮像部３の光軸方向ＯＡに対する、マーカ６１１の法線ｎの傾きが大きいため、画像上でのマーカの形状が歪になり、画像からのマーカの検出が困難になることが想定される。
【００５３】
さらに、図６（ｃ）に示される例では、撮像部３がマーカから遠ざかることで、直前に取得された画像上でのマーカ６２１よりも、現画像でのマーカ６２２の方が小さくなっている。このことから、将来的に画像６００上でのマーカのサイズが小さくなり過ぎてマーカの検出が困難になることが想定される。さらにまた、図６（ｄ）に示される例では、マーカ検出の信頼度の時間変化を表しており、横軸は時間を表し、縦軸は信頼度を表している。この例では、時間と信頼度の関係を表す曲線６３１が、時間経過とともに低下しており、このような場合、マーカを正確に検出できなくなることが想定される。
【００５４】
そこで移行準備開始判定部１３は、失敗指標として、例えば、マーカの四隅の座標の移動速度及び現在位置、撮像部３の光軸に対するマーカの法線の傾き、画像上でのマーカの面積、及び、マーカ検出の信頼度のうちの少なくとも一つを算出する。
【００５５】
移行準備開始判定部１３は、上記の複数の失敗指標のうちの少なくとも一つが移行準備開始基準を満たす場合、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始すると判定する。あるいは、移行準備開始判定部１３は、複数のフレームにわたって、上記の複数の失敗指標のうちの少なくとも一つが移行準備開始基準を満たす場合に、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始すると判定してもよい。あるいはまた、移行準備開始判定部１３は、上記の複数の失敗指標のうちの二つ以上が移行準備開始基準を満たす場合、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始すると判定してもよい。
【００５６】
例えば、移行準備開始判定部１３は、過去数フレームの画像上のマーカの四隅の座標の変化量と撮影周期に基づいて、線形補間あるいはスプライン補間することでマーカの四隅のそれぞれの移動速度及び移動方向を算出する。そして移行準備開始判定部１３は、何れかの画像端からマーカの四隅の座標の重心（以下、単にマーカ重心と呼ぶ）までの画素数が所定画素数（例えば、50画素）以下である場合、移行準備開始基準を満たすと判定する。あるいは、移行準備開始判定部１３は、マーカ重心の移動方向が画像中心から離れる方向であり、かつ、移動速度が所定速度（例えば、5ピクセル／フレーム）以上である場合、移行準備開始基準を満たすと判定してもよい。また、移行準備開始判定部１３は、マーカ重心から、マーカ重心の移動方向の先にある画像端までの画素数が所定画素数以下であり、かつ、マーカ重心の移動速度が所定速度以上である場合、移行準備開始基準を満たすと判定してもよい。この場合、所定画素数と所定速度は、数フレームから10フレーム後にマーカの一部が画像から外れると想定される値に設定される。例えば、所定画素数がm画素（mは1以上の整数）のとき、所定速度は(m/10)ピクセル／フレームとすることができる。
【００５７】
また、撮像部３の光軸とマーカの法線とがなす角が大きくなり過ぎると、制御部６は、画像からマーカを検出できなくなる可能性がある。そこで移行準備開始判定部１３は、撮像部３の光軸とマーカの法線とがなす角が所定角度（例えば、70°）以上となった場合、移行準備開始基準を満たすと判定する。
【００５８】
さらに、画像上でのマーカの面積が小さすぎると、制御部６は、画像からマーカを検出できなくなる。そこで移行準備開始判定部１３は、画像上でのマーカの四隅で囲まれる四角形に含まれる画素数（すなわち、画像上でのマーカの面積）が所定面積値以下の場合、移行準備開始基準を満たすと判定する。なお、所定面積値は、例えば、画像上でマーカのパターンを識別可能なマーカの最小サイズに安全係数（例えば、1.1〜1.3）を乗じた値、例えば、400に設定される。
【００５９】
なお、移行準備開始判定部１３は、過去数フレームの画像上でのマーカの面積の変化に基づいて、例えば、線形補間することにより、次フレームの画像において、マーカの面積が縮小するか否かを推定してもよい。そして移行準備開始判定部１３は、現フレームの画像におけるマーカの面積が所定面積値以下であり、かつ、次フレームにおいてマーカの面積が縮小とすると推定した場合に、移行準備開始基準を満たすと判定してもよい。
【００６０】
さらに、画像からマーカを検出した際の、その検出に関する信頼度が低いと、制御部６は、画像からマーカを検出できなくなる可能性がある。また、検出に関する信頼度は、マーカ検出部１１が算出した、画像とテンプレート間の正規化相互相関値の最大値とすることができる。そこで移行準備開始判定部１３は、その正規化相互相関値の最大値が所定の信頼度閾値以下となった場合に、移行準備開始基準を満たすと判定する。なお、所定の信頼度閾値は、マーカ検出用閾値よりも高い値、例えば、0.9に設定される。
【００６１】
あるいは、移行準備開始判定部１３は、上記の複数の指標に重み付けを行って、姿勢推定処理をマーカベースから自然特徴点ベースへ移行する準備を開始するか否かを判定してもよい。例えば、撮像部３の移動速度が速く、マーカが画像外に外れる可能性が高い場合、移行準備開始判定部１３は、一つの画像に関してマーカ重心に関する移行準備開始基準が満たされる場合、自然特徴点ベースの姿勢推定処理への移行準備を直ちに開始すると判定する。一方、マーカ面積、光軸角度、及び検出に関する信頼度に関しては、これらのうちの二つ以上について、移行準備開始基準が満たされる場合、移行準備開始判定部１３は、自然特徴点ベースの姿勢推定処理への移行準備を開始すると判定する。あるいは、マーカ面積、光軸角度、及び検出に関する信頼度に関して、連続する複数の画像について移行準備開始基準が満たされる場合、移行準備開始判定部１３は、自然特徴点ベースの姿勢推定処理への移行準備を開始すると判定してもよい。
【００６２】
移行準備開始判定部１３は、自然特徴点ベースの姿勢推定処理への移行準備を開始すると判定すると、初期姿勢設定部１４へその旨を通知する。
また、自然特徴点ベースの姿勢推定処理への移行準備の開始後に取得された画像に関して、上記の何れの失敗指標についても移行準備開始基準が満たされなくなると、移行準備開始判定部１３は、初期姿勢設定部１４に、その移行準備を停止する旨通知してもよい。あるいは、連続する複数の画像に関して、上記の何れの失敗指標についても移行準備開始基準が満たされなくなったときに、移行準備開始判定部１３は、初期姿勢設定部１４に、その移行準備を停止する旨通知してもよい。
【００６３】
初期姿勢設定部１４は、移行準備開始判定部１３から、姿勢推定処理を自然特徴点ベースへ移行する準備を開始する旨を通知された以降に画像が取得される度に、自然特徴点ベースの姿勢推定処理を開始する際の初期値となる撮像部３の位置及び姿勢を決定する。
【００６４】
初期姿勢設定部１４は、例えば、自然特徴点ベースへ移行する準備を開始すると判定された時点よりも過去数フレーム分の撮像部３の位置及び姿勢に対して予測フィルタを適用して、次画像取得時の撮像部３の位置及び姿勢の推定値を求める。この推定値は、次画像からマーカが検出されないときにおける、自然特徴点ベースの姿勢推定処理の開始時の初期値とすることができる。これにより、初期姿勢設定部１４は、マーカの検出精度が高いときの画像上のマーカに基づいて推定された撮像部３の位置及び姿勢を、自然特徴点ベースの姿勢推定処理の開始時の初期値として利用できるので、その初期値の推定精度を向上できる。本実施形態では、初期姿勢設定部１４は、予測フィルタとして、パーティクルフィルタを利用する。
【００６５】
初期姿勢設定部１４は、古い方の画像から順に、画像ごとに、下記の処理を繰り返す。
（１）先ず、初期姿勢設定部１４は、撮像部３の位置及び姿勢を表す６次元の状態量(x,y,z,rx,ry,rz)と、その状態量の尤度とを持つ粒子をランダムに複数生成する。なお、２順目以降では、初期姿勢設定部１４は、残っている粒子の状態量はそのままとする。そして初期姿勢設定部１４は、粒子数が所定数に達するまで、新規に粒子を生成する。また、各粒子の尤度は同一とする。
【００６６】
（２）次に、初期姿勢設定部１４は、粒子ごとに、その粒子が持つ状態量で表された撮像部３の仮の位置及び姿勢に応じて、（２）式及び（３）式に従ってマーカの四隅を画像平面に投影する。そして初期姿勢設定部１４は、マーカの四隅のそれぞれについて、画像平面上の投影点の座標を求める。
【００６７】
（３）初期姿勢設定部１４は、粒子ごとに、マーカの四隅のそれぞれについて、投影点の座標と、画像から検出された対応するマーカの隅の座標間の距離を求め、その距離の平均値に基づいて、その粒子の尤度を算出する。例えば、初期姿勢設定部１４は、距離の平均値に１加算した数の逆数を尤度とする。あるいは、初期姿勢設定部１４は、マーカ四隅のそれぞれについて、画像上の投影点及び画像から検出された点のそれぞれについて、SIFTといった特徴点検出用の演算を行って特徴量を算出し、その特徴量間の誤差二乗和の逆数を尤度としてもよい。
【００６８】
（４）初期姿勢設定部１４は、尤度が所定の閾値（例えば、0.1）以下の粒子を消去する。
（５）初期姿勢設定部１４は、残りの粒子の状態量を、その粒子の尤度で重みづけ平均することで、撮像部３の位置及び姿勢の推定値を求める。
【００６９】
初期姿勢設定部１４は、現画像の取得時まで上記の処理を繰り返して得られた撮像部３の位置及び姿勢の推定値を、次画像取得時の撮像部３の位置及び姿勢の初期値として記憶部５に記憶する。なお、初期姿勢設定部１４は、現画像まで残った各粒子の状態量を記憶部５に記憶しておいてもよい。そして次画像からもマーカが検出された場合には、記憶しておいた各粒子の状態量を利用して、上記の（１）〜（５）の処理を１回だけ実行して、撮像部３の位置及び姿勢の初期値を更新してもよい。
【００７０】
なお、初期姿勢設定部１４は、撮像部３の位置及び姿勢の初期値の設定に、パーティクルフィルタの代わりに、カルマンフィルタといった他の非線形予測フィルタ、あるいは、線形予測フィルタを利用してもよい。
【００７１】
また、初期姿勢設定部１４は、移行準備開始判定部１３から、姿勢推定処理を、マーカベースから自然特徴点ベースへ移行する準備を停止する旨を通知されると、初期値の設定を中止する。
【００７２】
図７は、自然特徴点ベースの姿勢推定処理の初期値予測の概念図である。図７において、横軸は時間を表す。この例では、時刻t1より前では、自然特徴点ベースの姿勢推定処理の初期値予測は行われず、時刻t1〜t2の間、自然特徴点ベースの姿勢推定処理の初期値予測が行われ、時刻t2以降、自然特徴点ベースの姿勢推定処理が行われるものとする。
【００７３】
また図７において、四角形７０１は、それぞれ、マーカに基づいて推定され、記憶部５に記憶された撮像部３の位置及び姿勢を表す。特に、黒い四角形７０１ａは、現画像から検出されたマーカに基づいて推定された撮像部３の位置及び姿勢を表す。また矢印７０２は、予測フィルタを利用した撮像部３の位置及び姿勢の推定が実行されることを表す。そして丸印７０３は、予測フィルタを利用して推定された撮像部３の位置及び姿勢を表す。
【００７４】
時刻t1以前では、一番上のラインに示されるように、予測フィルタによる初期値予測は行われず、現時刻から直近の一定期間７１０の間にマーカに基づいて推定された撮像部３の位置及び姿勢が記憶される。そして２番目のラインに示されるように、時刻t1において初期値予測が開始されると、予測フィルタを適用した撮像部３の位置及び姿勢の推定が実行され、その推定値７０３が記憶部５に記憶される。
【００７５】
その後、時刻t2になるまでは、３番目のラインに示されるように、画像が取得される度に、予測フィルタの処理を１回行って、推定値７０３が更新される。また、画像から検出されたマーカに基づいて推定された撮像部３の位置及び姿勢も記憶される。そして一番下のラインに示されるように、時刻t2にて、現画像からマーカが検出できなくなると、その直前の画像取得時に計算された推定値７０３が、自然特徴点ベースの姿勢推定処理の初期値として利用される。
【００７６】
特徴点検出部１５は、制御部６が自然特徴点ベースの姿勢推定処理を実行している間、撮像部３から画像が得られる度に、その画像から自然特徴点を検出する。そのために、特徴点検出部１５は、画像の各画素に対して、例えば、コーナー検出フィルタ処理、あるいはSIFT演算処理を行って、画素ごとに自然特徴点を表す特徴量を算出する。そして特徴点検出部１５は、３次元マップに記録されている何れかの自然特徴点の特徴量との差が所定値未満である画素を、その自然特徴点として検出する。
【００７７】
特徴点ベース姿勢推定部１６は、自然特徴点に基づいて撮像部３の位置及び姿勢を推定する。そのために、特徴点ベース姿勢推定部１６は、（２）式における回転移動成分及び平行成分を、直前の画像に基づいて推定された撮像部３の位置及び姿勢を初期値として、画像から検出された特徴点に基づいて推定する。なお、マーカベースによる姿勢推定処理から自然特徴点ベースによる姿勢推定処理に移行した直後については、特徴点ベース姿勢推定部１６は、予測フィルタの適用により推定された撮像部の位置及び姿勢を初期値として、回転移動成分及び平行移動成分を推定する。
【００７８】
図８は、自然特徴点ベースの姿勢推定処理の概念図である。
特徴点ベース姿勢推定部１６は、（２）式及び（３）式に従って、各自然特徴点８０１を画像平面８００に投影して、各自然特徴点の世界座標系の座標に対応する画像平面８００上の投影点８０２の座標を求める。そして特徴点ベース姿勢推定部１６は、各自然特徴点について、投影点８０２と、画像から検出された、対応する自然特徴点８０３間の距離の二乗和を評価値として算出する。
【００７９】
特徴点ベース姿勢推定部１６は、例えば、最急降下法に従って、回転移動成分及び平行移動成分の各要素を修正しつつ、評価値を求める。そして特徴点ベース姿勢推定部１６は、評価値が最小となるときの回転移動成分及び平行移動成分にしたがって、撮像部３の位置及び姿勢の推定値を求める。
【００８０】
なお、特徴点ベース姿勢推定部１６は、複数の特徴点に基づいてカメラの位置及び姿勢する他の方法に従って、撮像部３の位置及び姿勢を推定してもよい。例えば、特徴点ベース姿勢推定部１６は、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年、に開示された方法に従って、撮像部３の位置及び姿勢を推定してもよい。
【００８１】
このように、本実施形態では、特徴点ベース姿勢推定部１６は、マーカベースの姿勢推定処理から自然特徴点ベースの姿勢推定処理に移行する場合に、マーカ検出精度が高いときにマーカに基づいて推定された撮像部３の位置及び姿勢を利用して、初期値を決定する。そのため、その初期値が実際の撮像部３の位置及び姿勢に近い可能性が高いので、特徴点ベース姿勢推定部１６は、本来の撮像部３の位置及び姿勢とは異なるときに得られる評価値のローカルミニマムに陥らずに、評価値の最小値を求めることができる可能性が高い。したがって、特徴点ベース姿勢推定部１６は、マーカベースの姿勢推定処理から自然特徴点ベースの姿勢推定処理に移行した際における、撮像部３の位置及び姿勢の推定精度を向上できる。
【００８２】
特徴点ベース姿勢推定部１６は、推定した撮像部３の位置を表す世界座標系の座標、及び撮像部３の姿勢を表す世界座標系の単位方向ベクトルを記憶部５に記憶する。
【００８３】
マーカ再検出判定部１７は、自然特徴点ベースの姿勢推定処理が実行されている間において、画像が得られる度に、画像からマーカを検出できる可能性を表す成功指標を算出する。マーカ再検出判定部１７は、成功指標として、例えば、マーカ重心、撮像部３の光軸に対するマーカの法線の傾き、及び、画像上でのマーカの面積のうちの少なくとも一つを算出する。
【００８４】
なお、現時点では、マーカは検出されていない。そのため、マーカ再検出判定部１７は、特徴点ベース姿勢推定部１６により推定された撮像部３の位置及び姿勢に基づいて、（２）式及び（３）式に従って、３次元マップに記録されているマーカの四隅の座標を画像平面に投影する。そしてマーカ再検出判定部１７は、その画像平面上でのマーカの四隅の座標から、マーカ重心の座標及びマーカの面積を算出する。同様に、マーカ再検出判定部１７は、特徴点ベース姿勢推定部１６により推定された撮像部３の姿勢に基づいて、撮像部３の光軸に対するマーカの法線の傾きを算出する。
【００８５】
マーカ再検出判定部１７は、上記の複数の成功指標のうちの少なくとも一つが再移行準備開始基準を満たす場合、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定する。あるいは、移行準備開始判定部１３は、複数のフレームにわたって、上記の複数の成功指標のうちの少なくとも一つが再移行準備開始基準を満たす場合に、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定してもよい。あるいはまた、移行準備開始判定部１３は、上記の複数の成功指標のうちの二つ以上が再移行準備開始基準を満たす場合、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定してもよい。
【００８６】
マーカ再検出判定部１７は、マーカ重心から最も近い画像端までの画素数が所定画素数（例えば、50画素）以上である場合、再移行準備開始基準を満たすと判定する。あるいは、マーカ再検出判定部１７は、撮像部３の光軸に対するマーカの法線の傾きが所定角度（例えば、80°）以下である場合、再移行準備開始基準を満たすと判定してもよい。あるいはまた、マーカ再検出判定部１７は、マーカの面積が、所定の面積閾値（例えば、100画素）以上である場合、再移行準備開始基準を満たすと判定してもよい。
【００８７】
あるいは、マーカ再検出判定部１７は、上記の複数の成功指標に重み付けを行って、姿勢推定処理を、マーカベースへ移行する準備を開始するか否かを判定してもよい。例えば、撮像部３の移動速度が速く、画像にマーカ全体が写るようになる可能性が高い場合、マーカ再検出判定部１７は、一つの画像に関してマーカ重心に関する再移行準備開始基準が満たされる場合、直ちにマーカ検出部１１にマーカ検出を実行させる。一方、マーカ面積及び光軸角度に関しては、両方について再移行準備開始基準が満たされると、マーカ再検出判定部１７は、マーカ検出部１１にマーカ検出を実行させる。あるいは、マーカ面積及び光軸角度に関して、連続する複数の画像について再移行準備開始基準が満たされる場合、マーカ再検出判定部１７は、マーカ検出部１１にマーカ検出を実行させてもよい。
【００８８】
マーカ再検出判定部１７は、現画像について、姿勢推定処理を、自然特徴点ベースからマーカベースへ移行する準備を開始すると判定した場合、マーカ検出部１１に、現画像からマーカを検出させる。その際、マーカ再検出判定部１７は、マーカの検出精度の向上及び演算量の抑制のために、マーカの探索範囲を制限してもよい。例えば、マーカ再検出判定部１７は、画像平面に投影されたマーカを含み、かつ、画像よりも小さい領域を、マーカ探索領域とする。具体的には、マーカ再検出判定部１７は、世界座標系のマーカの四隅の座標を画像平面に投影することで得られた画像平面上のマーカの４隅を繋ぐ線で囲まれた領域の外接矩形を求める。そしてその外接矩形の左上端画素を(u,v)、その外接矩形の右下端画素を(u+w,v+h)とした場合、マーカ再検出判定部１７は、マーカの探索範囲の左上端画素を(u-m,v-m)とし、マーカの探索範囲の右下端画素を(u+w+m,v+h+m)とする。mはオフセット値であり、例えば、10画素に設定される。なお、マーカの探索範囲の左上端画素(u-m,v-m)が画像外となる場合、マーカ再検出判定部１７は、探索範囲の左端または上端を、画像の左端または上端としてもよい。同様に、マーカの探索範囲の右下端画素(u+w+m,v+h+m)が画像外となる場合、マーカ再検出判定部１７は、探索範囲の右端または下端を、画像の右端または下端としてもよい。
マーカ再検出判定部１７は、マーカの探索範囲をマーカ検出部１１に通知する。そしてマーカ再検出判定部１７は、その探索範囲内で、マーカ検出部１１にマーカ検出処理を実行させる。
【００８９】
移行判定部１８は、マーカベースの姿勢推定処理が実行されている間において、画像からマーカが検出できなくなると、自然特徴点ベースの姿勢推定処理へ移行すると判定する。そして移行判定部１８は、マーカ検出部１１及びマーカベース姿勢推定部１２を停止させ、特徴点検出部１５及び特徴点ベース姿勢推定部１６を起動させる。なお、移行判定部１８は、マーカ検出部１１が、画像からマーカの四隅の何れか一つでも検出できない場合、マーカが検出されなかったと判定する。
一方、移行判定部１８は、自然特徴点ベースの姿勢推定処理が実行されている間において、画像からマーカが検出できると、マーカベースの姿勢推定処理へ移行すると判定する。そして移行判定部１８は、特徴点検出部１５及び特徴点ベース姿勢推定部１６を停止させ、マーカ検出部１１及びマーカベース姿勢推定部１２を起動させる。なお、移行判定部１８は、連続する数フレームにわたって画像からマーカが検出された場合に、マーカベースの姿勢推定処理へ移行すると判定してもよい。
【００９０】
図９は、姿勢推定処理の動作フローチャートである。制御部６は、撮像部３から画像を取得する度に、以下の動作フローチャートに従って姿勢推定処理を実行する。
【００９１】
制御部６は、現時点で適用される姿勢推定処理がマーカベースか否か判定する（ステップＳ１０１）。現時点で適用される姿勢推定処理がマーカベースである場合（ステップＳ１０１−Ｙｅｓ）、マーカ検出部１１は、画像からマーカを検出する（ステップＳ１０２）。移行判定部１８は、画像からマーカが検出されたか否か判定する（ステップＳ１０３）。画像からマーカが検出された場合（ステップＳ１０３−Ｙｅｓ）、マーカベース姿勢推定部１２は、画像上のマーカの位置に基づいて、撮像部３の位置及び姿勢を推定する（ステップＳ１０４）。
【００９２】
また、移行準備開始判定部１３は、少なくとも一つの失敗指標を算出し、その失敗指標が移行準備開始基準を満たすか否か判定する（ステップＳ１０５）。移行準備開始基準が満たされる場合（ステップＳ１０５−Ｙｅｓ）、初期姿勢設定部１４は、過去の数フレームの撮像部３の位置及び姿勢の推定値に基づいて、次画像取得時の撮像部３の位置及び姿勢を推定する。そして初期姿勢設定部１４は、推定された位置及び姿勢を、自然特徴点ベースの姿勢推定処理開始時の撮像部３の位置及び姿勢の初期値とする（ステップＳ１０６）。そして初期姿勢設定部１４は、その初期値を記憶部５に記憶する。
【００９３】
ステップＳ１０６の後、あるいは、ステップＳ１０５にて移行準備開始基準が満たされない場合（ステップＳ１０５−Ｎｏ）、制御部６は、姿勢推定処理を終了する。
【００９４】
一方、ステップＳ１０３にて、画像からマーカが検出されなかった場合（ステップＳ１０３−Ｎｏ）、移行判定部１８は、自然特徴点ベースの姿勢推定処理へ移行すると判定し、特徴点検出部１５及び特徴点ベース姿勢推定部１６を起動する（ステップＳ１０７）。
【００９５】
ステップＳ１０７の後、あるいは、ステップＳ１０１にて現時点で適用される姿勢推定処理が自然特徴点ベースである場合（ステップＳ１０１−Ｎｏ）、特徴点検出部１５は、画像から自然特徴点を検出する（ステップＳ１０８）。そして特徴点ベース姿勢推定部１６は、一つ前の画像取得時における、撮像部３の位置及び姿勢の推定値を初期値とし、検出された自然特徴点に基づいて、撮像部３の位置及び姿勢を推定する（ステップＳ１０９）。
【００９６】
マーカ再検出判定部１７は、少なくとも一つの成功指標を算出し、その成功指標が再移行準備開始基準を満たすか否か判定する（ステップＳ１１０）。再移行準備開始基準が満たされない場合（ステップＳ１１０−Ｎｏ）、制御部６は、姿勢推定処理を終了する。
【００９７】
一方、再移行準備開始基準が満たされる場合（ステップＳ１１０−Ｙｅｓ）、マーカ再検出判定部１７は、マーカ探索範囲を設定する（ステップＳ１１１）。そしてマーカ検出部１１は、マーカ探索範囲内でマーカを検出する（ステップＳ１１２）。移行判定部１８は、画像からマーカが検出されたか否か判定する（ステップＳ１１３）。画像からマーカが検出された場合（ステップＳ１１３−Ｙｅｓ）、移行判定部１８は、マーカベースの姿勢推定処理へ移行すると判定し、マーカ検出部１１及びマーカベース姿勢推定部１２を起動する（ステップＳ１１４）。
【００９８】
ステップＳ１１４の後、あるいは、ステップＳ１１３にて、画像からマーカが検出されなかった場合（ステップＳ１１３−Ｎｏ）、制御部６は、姿勢推定処理を終了する。
【００９９】
以上に説明してきたように、この姿勢推定装置は、画像からマーカが検出できる間は、マーカベースの姿勢推定処理により撮像部の位置及び姿勢を推定することで、演算量を抑制する。一方、この姿勢推定装置は、画像からマーカが検出できなくなると、自然特徴点ベースの姿勢推定処理により撮像部の位置及び姿勢を推定することで、マーカを検出できない場合でも、撮像部の位置及び姿勢を推定できる。さらに、この姿勢推定装置は、マーカの検出に失敗する可能性が高くなると、マーカの検出精度が高いときのマーカベースの姿勢推定処理により得られた撮像部の位置及び姿勢を利用して、マーカ検出失敗時の撮像部の位置及び姿勢を推定する。そして姿勢推定装置は、その推定値を、自然特徴点ベースの姿勢推定処理開始時の撮像部の位置及び姿勢の初期値として利用する。そのため、この姿勢推定装置は、マーカベースの姿勢推定処理から自然特徴点ベースの姿勢推定処理閉校した際の撮像部の位置及び姿勢の推定精度の低下を抑制できる。
【０１００】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【０１０１】
１    携帯端末（姿勢推定装置）
２    表示部
３    撮像部
４    記憶媒体アクセス装置
５    記憶部
６    制御部
７    筐体
１１    マーカ検出部
１２    マーカベース姿勢推定部
１３    移行準備開始判定部
１４    初期姿勢設定部
１５    特徴点検出部
１６    特徴点ベース姿勢推定部
１７    マーカ再検出判定部
１８    移行判定部
【図１】
2015158461.tif 000008
【図２】
2015158461.tif 000009
【図３】
2015158461.tif 000010
【図４】
2015158461.tif 000011
【図５】
2015158461.tif 000012
【図６】
2015158461.tif 000013
【図７】
2015158461.tif 000014
【図８】
2015158461.tif 000015
【図９】
2015158461.tif 000016