(57)【要約】【課題】  前フレームにおける物体の位置姿勢が利用可能ではない場合であっても、現フレームにおける物体の位置姿勢の推定を速やかに再開させるための技術を提供すること。【解決手段】  物体を撮像したフレームごとの撮像画像を取得し、該取得した撮像画像を表示させる。取得した撮像画像中の物体の位置姿勢を、該撮像画像より過去のフレームの物体の位置姿勢を用いて推定し、過去のフレームの物体の位置姿勢が利用できない場合には、規定の位置姿勢を有する物体を表す画像を参照画像として表示させる。【選択図】  図１
2020003870.tif 000002
【特許請求の範囲】
【請求項１】
物体を撮像したフレームごとの撮像画像を取得し、該取得した撮像画像を表示させる取得手段と、
前記取得手段が取得した撮像画像中の前記物体の位置姿勢を、該撮像画像より過去のフレームの前記物体の位置姿勢を用いて推定する推定手段と、
前記過去のフレームの前記物体の位置姿勢が利用できない場合には、規定の位置姿勢を有する前記物体を表す画像を参照画像として表示させる表示制御手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記表示制御手段は、
前記過去のフレームの前記物体の位置姿勢の推定が失敗した場合には、前記参照画像を表示させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記表示制御手段は、
前記過去のフレームにおける前記物体の位置姿勢が存在しない場合には、前記参照画像を表示させることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記表示制御手段は、
それぞれ異なる位置姿勢を有する前記物体を表す複数の画像のうち、前記取得手段が取得した撮像画像との類似度が最も高い画像を前記参照画像として表示させることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記推定手段は、
前記参照画像の表示後に前記取得手段が取得した撮像画像と前記参照画像との類似度が規定値以上である場合には、該撮像画像の次のフレームの撮像画像中の前記物体の位置姿勢を、前記規定の位置姿勢を用いて推定することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記表示制御手段は、
前記参照画像の表示後に前記取得手段が取得した撮像画像と前記参照画像とが類似している場合に、該撮像画像の次のフレームの撮像画像中の前記物体の位置姿勢を推定するために使用する位置姿勢として前記規定の位置姿勢が設定されると、前記参照画像の表示を停止させることを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記表示制御手段は、
それぞれ異なる位置姿勢を有する前記物体を表す複数の参照画像を表示させることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項８】
前記推定手段は、
前記複数の参照画像の表示後に前記取得手段が取得した撮像画像と、前記複数の参照画像と、の類似度を求め、類似度が規定値以上且つ最も高い参照画像に対応する位置姿勢を用いて、該撮像画像の次のフレームの撮像画像中の前記物体の位置姿勢を推定することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記表示制御手段は、
前記参照画像を加工してから表示させることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記表示制御手段は、
前記参照画像を点滅させることを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記画像処理装置は更に、
前記参照画像を登録する登録手段を備えることを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記登録手段は、前記取得手段が取得した撮像画像を前記参照画像として登録することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記登録手段は、前記取得手段が取得した撮像画像と、登録済みの参照画像と、の類似度が規定値未満であれば、該撮像画像を前記参照画像として登録することを特徴とする請求項１１に記載の画像処理装置。
【請求項１４】
前記登録手段は、前記取得手段が取得した撮像画像中の前記物体の推定された位置姿勢と、登録済みの参照画像中の前記物体の推定された位置姿勢と、の類似度が規定値未満であれば、該撮像画像を前記参照画像として登録することを特徴とする請求項１１に記載の画像処理装置。
【請求項１５】
前記参照画像は、前記規定の位置姿勢を有する前記物体を撮像した画像であることを特徴とする請求項１乃至１４の何れか１項に記載の画像処理装置。
【請求項１６】
前記参照画像は、前記規定の位置姿勢を有する前記物体の３次元モデルの画像であることを特徴とする請求項１乃至１４の何れか１項に記載の画像処理装置。
【請求項１７】
前記参照画像は、前記規定の位置姿勢を有する前記物体の画像としてユーザが作成した画像であることを特徴とする請求項１乃至１４の何れか１項に記載の画像処理装置。
【請求項１８】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の取得手段が、物体を撮像したフレームごとの撮像画像を取得し、該取得した撮像画像を表示させる取得工程と、
前記画像処理装置の推定手段が、前記取得工程で取得した撮像画像中の前記物体の位置姿勢を、該撮像画像より過去のフレームの前記物体の位置姿勢を用いて推定する推定工程と、
前記画像処理装置の表示制御手段が、前記過去のフレームの前記物体の位置姿勢が利用できない場合には、規定の位置姿勢を有する前記物体を表す画像を参照画像として表示させる表示制御工程と
を備えることを特徴とする画像処理方法。
【請求項１９】
コンピュータを、請求項１乃至１７の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の位置姿勢の推定技術に関するものである。
【背景技術】
【０００２】
時系列的に連続して撮影した画像から、画像上の物体をトラッキングする技術がある。一般に、物体のトラッキングでは、過去の時刻に推定した物体の位置姿勢を手掛かりに、注目する現在の時刻の物体の位置姿勢を推定する。
【０００３】
ただし、トラッキングの開始時（第１回目の推定処理）や、過去の時刻でトラッキングが失敗した場合には、過去の推定結果は利用できない。この条件で、トラッキングを行うには、物体の位置姿勢の初期値を与える必要がある。
【０００４】
非特許文献１には、予め初期値として指定した位置姿勢に物体が配置されるようにユーザを誘導する方法が記載されている。具体的には、撮影中の画像上に、指定した位置姿勢に基づいて、物体の３次元モデルのワイヤーフレームを重畳表示する。これにより、指定した位置姿勢における物体の見え方をユーザに知らせることができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Gabriele Bleser, Harald Wuest, and Didier Stricker, " Online camera pose estimation in partially known and dynamic scenes", International Symposium on Mixed and Augmented Reality(ISMAR), 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１に記載されているワイヤーフレームの重畳表示では、物体の配置が視覚的に分かりにくいため、ユーザを正確に誘導できず、これにより、速やかにトラッキングを開始できない、という課題がある。
【０００７】
本発明では、前フレームにおける物体の位置姿勢が利用可能ではない場合であっても、現フレームにおける物体の位置姿勢の推定を速やかに再開させるための技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の一様態は、物体を撮像したフレームごとの撮像画像を取得し、該取得した撮像画像を表示させる取得手段と、前記取得手段が取得した撮像画像中の前記物体の位置姿勢を、該撮像画像より過去のフレームの前記物体の位置姿勢を用いて推定する推定手段と、前記過去のフレームの前記物体の位置姿勢が利用できない場合には、規定の位置姿勢を有する前記物体を表す画像を参照画像として表示させる表示制御手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明の構成によれば、前フレームにおける物体の位置姿勢が利用可能ではない場合であっても、現フレームにおける物体の位置姿勢の推定を速やかに再開させることができる。
【図面の簡単な説明】
【００１０】
【図１】表示装置５００の表示画面の表示例を示す図。
【図２】システムの構成例を示す図。
【図３】参照情報を保持部３０１に登録するために行う処理のフローチャート。
【図４】トラッキングの処理のフローチャート。
【図５】コンピュータ装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の１つである。
【００１２】
［第１の実施形態］
本実施形態では、各フレームの撮像画像中の物体の位置姿勢をトラッキングする（過去の物体の位置姿勢を手掛かりに現在の物体の位置姿勢を推定する）。そして本実施形態では、トラッキングの開始時や過去のトラッキングが失敗した場合には、物体の位置姿勢を規定の位置姿勢に配置させるためのガイドをユーザに提示する。そして、物体が規定の位置姿勢に配置されたことを確認すると、該規定の位置姿勢を初期値として以降のトラッキングを再開する。
【００１３】
先ず、本実施形態に係るシステムの構成例について、図２のブロック図を用いて説明する。図２に示す如く、本実施形態に係るシステムは、撮像装置４００、画像処理装置３００、表示装置５００、を有する。
【００１４】
先ず、撮像装置４００について説明する。撮像装置４００は、撮像対象となる物体（被写体）の動画像を撮像するものであり、撮像装置４００からは該動画像を構成する各フレームの撮像画像が画像処理装置３００に対して出力される。本実施形態では撮像画像は濃淡画像であるものとするが、後述するように、撮像画像は濃淡画像に限らない。なお、図２では撮像装置４００は画像処理装置３００とは別個の装置として図示されているが、撮像装置４００は画像処理装置３００と一体化させても良い。
【００１５】
次に、表示装置５００について説明する。表示装置５００は、液晶画面やタッチパネル画面などにより構成されており、画像処理装置３００による処理結果を画像や文字などでもって表示する。図２では、表示装置５００は画像処理装置３００とは別個の装置として図示されているが、表示装置５００は画像処理装置３００と一体化させても良い。
【００１６】
次に、画像処理装置３００について説明する。取得部３０２は、撮像装置４００から順次送出される各フレームの撮像画像を取得する。推定部３０３は、取得部３０２が取得した撮像画像中の物体の位置姿勢を推定する。物体の位置姿勢は、撮像装置４００の位置を原点とし、該原点で直交する３軸（そのうちの１軸は撮像装置４００の視軸）をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系における位置姿勢である。本実施形態では、推定部３０３は、現フレームの撮像画像中の物体の位置姿勢を推定する場合には、該現フレームよりも過去のフレーム（例えば現フレームの直前のフレーム）の撮像画像中の物体の位置姿勢（使用位置姿勢）を使用する。判定部３０４は、推定部３０３が現フレームの撮像画像中の物体の位置姿勢を推定する為に使用する使用位置姿勢が存在しないケース、該使用位置姿勢の推定に失敗しているケース、の何れかのケースが発生しているか否かを判断する。表示制御部３０５は、表示装置５００における表示を制御する。
【００１７】
登録部３０６は、規定の位置姿勢に配置された物体の撮像画像（参照画像）と、該参照画像から推定した該物体の位置姿勢（該規定の位置姿勢）と、を含む参照情報を保持部３０１に登録する。
【００１８】
本実施形態では、画像処理装置３００にて上記のトラッキングを開始する前に、撮像装置４００は、規定の位置姿勢に配置された物体を撮像し、該撮像により得られる撮像画像（参照画像）を画像処理装置３００に対して送出する。取得部３０２は、撮像装置４００が撮像した撮像画像（参照画像）を取得し、登録部３０６は、取得部３０２が取得した参照画像中の物体の位置姿勢を推定し、該推定した位置姿勢と、該参照画像と、を含む参照情報を保持部３０１に登録する。
【００１９】
照合部３０７は、取得部３０２が取得した撮像画像と、保持部３０１が保持する参照画像と、を照合し、該撮像画像と該参照画像とが一致しているか否かを判断する。設定部３０８は、照合部３０７が一致していると判断した場合には、参照情報に含まれている位置姿勢を、次のフレームの撮像画像中の物体の位置姿勢を推定するために使用する位置姿勢（使用位置姿勢）として設定する。
【００２０】
先ず、画像処理装置３００が参照情報を保持部３０１に登録するために行う処理について、同処理のフローチャートを示す図３を用いて説明する。図３のフローチャートに従った処理の開始前にユーザは、物体を規定の位置姿勢でもって撮像装置４００の画角範囲内に配置する。そして撮像装置４００は、画角範囲内の静止画像（１フレーム分の撮像画像）、つまり、規定の位置姿勢でもって配置された物体の撮像画像を撮像する。
【００２１】
ステップＳ６０１では、取得部３０２は、撮像装置４００が撮像した「規定の位置姿勢でもって配置された物体の撮像画像」を参照画像として取得する。ステップＳ６０２では、登録部３０６は、ステップＳ６０１で取得部３０２が取得した参照画像中の物体の位置姿勢を推定する。登録部３０６は、物体の形状を模した３次元モデル（予め作成して保持部３０１に登録されているものとする）と、参照画像上の各画像領域と、のテンプレートマッチングを行うことで物体の位置姿勢を推定する。テンプレートマッチングを利用した画像中の物体の位置姿勢の推定方法は公知であり、例えば以下の文献Ａに開示されている方法を利用することができる。
【００２２】
文献Ａ  …  Stefan Hinterstoisser, Cedric Cagniart, Slobodan Ilic, Peter Sturm, Nassir Navab, Pascal Fua, and Vincent Lepetit, "Gradient Response Maps for Real-Time Detection of Texture-Less Objects", IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 2012.
そして登録部３０６は、ステップＳ６０１で取得部３０２が取得した参照画像と、該参照画像中の物体の推定した位置姿勢（規定の位置姿勢）と、を含む参照情報を保持部３０１に登録する。
【００２３】
次に、図３のフローチャートに従った処理の後に画像処理装置３００が行うトラッキングについて、同処理のフローチャートを示す図４を用いて説明する。なお、図４のフローチャートに従った処理は、ユーザからの開始指示が入力されると開始し、終了条件が満たされるまで（例えばユーザから終了指示が入力されるまで）、繰り返し行われる。
【００２４】
ステップＳ７００では、表示制御部３０５は、取得部３０２が取得した撮像画像を表示装置５００の表示画面に表示させる。ステップＳ７０１では、判定部３０４は、可否条件が満たされたか否かを判断する。判定部３０４は、ステップＳ７００で取得部３０２が取得した撮像画像が１フレーム目の撮像画像である場合、つまり、使用位置姿勢が存在しない場合には、可否条件が満たされたと判断する。また判定部３０４は、ステップＳ７００で取得部３０２が取得した撮像画像中の物体の位置姿勢を推定する為に使用される使用位置姿勢の推定が失敗している場合は、可否条件が満たされたと判断する。
【００２５】
つまり判定部３０４は、推定部３０３が現フレームの撮像画像中の物体の位置姿勢を推定する為に使用する使用位置姿勢が存在しない場合や該使用位置姿勢の推定に失敗している場合は、可否条件が満たされたと判断する。
【００２６】
判定部３０４が可否条件が満たされたと判断した場合には、処理はステップＳ７０２に進む。一方、判定部３０４が可否条件が満たされていないと判断した場合（現フレームの撮像画像中の物体の位置姿勢を推定する為に使用する使用位置姿勢が存在し且つ該使用位置姿勢の推定に成功している場合）には、処理はステップＳ７０８に進む。
【００２７】
使用位置姿勢の推定に成功したのか失敗したのかを判断するための処理には様々な処理が考えられ、特定の処理に限らない。例えば、使用位置姿勢を求めた撮像画像上に、該使用位置姿勢で配置した３次元モデルを投影し、該撮像画像中の物体と該投影した３次元モデルとの一致の度合い（一致度）を求める。そして、該一致度が規定値以上であれば使用位置姿勢の推定は成功、該一致度が規定値未満であれば、使用位置姿勢の推定は失敗と判断する。一致度の評価には、例えば上記の文献Ａに記載されている方法を適用することができる。
【００２８】
ステップＳ７０２では、表示制御部３０５は、保持部３０１に登録されている参照画像を表示装置５００の表示画面に表示させる。ステップＳ７０２における表示装置５００の表示画面の表示例を図１（ａ）に示す。
【００２９】
図１（ａ）では、位置姿勢の推定対象となる物体２００を含む撮像画像１００に参照画像１１０が重ねて表示されている。なお、参照画像は撮像画像に重ねて表示させても良いし、撮像画像と参照画像とを別個の表示画面に表示させても良い。
【００３０】
ステップＳ７０３では、取得部３０２は、撮像装置４００から送出される撮像画像を取得する。そしてステップＳ７０４では、照合部３０７は、ステップＳ７０３にて取得部３０２が取得した撮像画像と、保持部３０１に登録されている参照画像と、を照合する。
【００３１】
ステップＳ７０５では、照合部３０７は、ステップＳ７０４における照合の結果、ステップＳ７０３にて取得部３０２が取得した撮像画像と、保持部３０１に登録されている参照画像と、が一致している（類似している）か否かを判断する。例えば照合部３０７は、撮像画像と参照画像とで対応する画素位置の画素の画素値の差分（絶対値）の総和SAD(Sum of Absolute Differen)が小さいほど一致度（類似度）を高くする。総和SADが小さいほど、それぞれの画像中の物体の見え方が高い度合いで一致している。そして照合部３０７は、一致度が規定値以上であれば、撮像画像と参照画像とは一致している（類似している）と判断し、一致度が規定値未満であれば、撮像画像と参照画像とは一致していない（類似していない）と判断する。なお、撮像画像と参照画像とが一致しているか否か（類似しているか否か）を判断するための方法には様々な方法が考えられ、特定の方法に限らない。
【００３２】
そして撮像画像と参照画像とが一致していると判断された場合（照合に成功した場合）には、処理はステップＳ７０６に進む。一方、撮像画像と参照画像とが一致してないと判断された場合（照合に失敗した場合）には、処理はステップＳ７０３に戻り、次のフレームの撮像画像についてステップＳ７０３以降の処理が行われる。
【００３３】
ステップＳ７０６では設定部３０８は、保持部３０１に登録されている参照情報に含まれている位置姿勢を、ステップＳ７０５で参照画像との照合に成功した撮像画像の次のフレームの撮像画像内の物体の位置姿勢の推定に使用する使用位置姿勢として設定する。
【００３４】
例えば図１（ｂ）に示す如く、図１（ａ）に例示した参照画像１１０の表示後、ユーザは、手に持っている物体の位置姿勢を、参照画像１１０が示す物体の位置姿勢に合わせるように動かす。そしてユーザが手に持っている物体の位置姿勢と参照画像１１０中の物体の位置姿勢との差分が規定量より小さくなると、ステップＳ７０５にて撮像画像と参照画像とは一致している（類似している）と判断される。そして、参照画像１１０中の物体の位置姿勢が、次のフレームの撮像画像中の物体の位置姿勢を推定するために使用される使用位置姿勢として設定される。
【００３５】
ステップＳ７０７では、取得部３０２は、撮像装置４００から出力された撮像画像を取得する。ステップＳ７００からステップＳ７０８に処理が進んだ場合、ステップＳ７０８で推定部３０３は、ステップＳ７００で取得した撮像画像中の物体の位置姿勢を、該撮像画像よりも過去の撮像画像中の物体の推定した位置姿勢（使用位置姿勢）を用いて推定する。一方、ステップＳ７０７からステップＳ７０８に処理が進んだ場合、ステップＳ７０８で推定部３０３は、ステップＳ７０７で取得した撮像画像中の物体の位置姿勢を、ステップＳ７０６において設定部３０８が設定した使用位置姿勢を用いて推定する。
【００３６】
ステップＳ７０８では推定部３０３は、例えば、使用位置姿勢で配置した３次元モデルを撮像画像上に投影モデル画像として投影する。そして推定部３０３は、撮像画像中の物体の特徴点と、投影モデル画像の特徴点と、で対応する特徴点間の距離を最小化するように使用位置姿勢を変更することで、現フレームの撮像画像中の物体の位置姿勢を求める。３次元モデルの投影位置の周囲の特徴を優先的に利用することで、外れ値の混入を抑えることができる。このような推定方法は例えば以下の文献Ｂに記載されているように周知であるため、これ以上の詳細な説明は省略する。
【００３７】
文献Ｂ  …  T. Drummond and R. Cipolla, “Real-time visual tracking of complex structures,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.24, no.7, pp.932-946, 2002.
このように、本実施形態によれば、トラッキングの開始時や、過去のトラッキングが失敗した場合には、物体の位置姿勢の状態を示す参照画像を表示する。この表示によりユーザを誘導して画像上の物体の位置姿勢を正確に設定させることができるため、速やかにトラッキングを開始することができる。
【００３８】
［第２の実施形態］
本実施形態を含む以下の各実施形態では、第１の実施形態との差分について説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。本実施形態では、複数の参照情報を保持部３０１に登録しておく。そしてステップＳ７０２では、保持部３０１に登録されている複数の参照画像のうち「ユーザが手に持っている物体の位置姿勢を参照画像が示す物体の位置姿勢に合わせるように動かす場合に動かす量が最も小さくなるような参照画像」が選択される。該選択された参照画像は表示装置５００の表示画面に表示される。これにより、ユーザは物体の移動をより少ない操作量で実現させることができるため、物体の位置姿勢を正確にかつ高速に設定することができる。
【００３９】
本実施形態では、図３のフローチャートに従った処理を複数回行うことで、複数の参照情報を保持部３０１に登録する。つまり、物体を様々な位置姿勢（位置及び／または姿勢）で配置する度に該物体を撮像装置４００で撮像することで複数の撮像画像（参照画像）を取得し、該参照画像と、該参照画像から推定した物体の位置姿勢と、を含む参照情報を保持部３０１に登録する。これにより、様々な位置姿勢に対応する参照情報を保持部３０１に登録することができる。
【００４０】
また本実施形態では、図４のフローチャートに従った処理において、ステップＳ７０２では、表示制御部３０５は、以下の処理を行う。つまり表示制御部３０５は、保持部３０１に登録されている複数の参照画像のうち「物体の位置姿勢を参照画像が示す物体の位置姿勢に合わせるように動かす場合に動かす量が最も小さくなるような参照画像」を選択参照画像として選択する。そして表示制御部３０５は、該選択参照画像を表示装置５００の表示画面に表示させる。
【００４１】
表示制御部３０５による選択参照画像の選択方法としては、例えば、複数の参照画像のうち、取得部３０２が取得した撮像画像との類似度が最も高い参照画像を選択参照画像として選択する。ここでは、類似度の高い参照画像ほど、画像上の物体の位置姿勢の差が少ないと仮定している。撮像画像中の物体の位置姿勢との差が小さい参照画像を選択することで、ユーザは、撮像画像中の物体の位置姿勢との差が小さい参照画像を見ながら物体を動かすので、ユーザの操作量を低減することができる。類似度の計算方法には様々な方法があり、例えば、上記のＳＡＤを求め、ＳＡＤの値が小さいほど類似度が高いと判断するようにしても良い。そしてステップＳ７０３以降で使用する参照画像には選択参照画像を使用する。
【００４２】
このように、本実施形態によれば、ユーザはより少ない操作量で物体を動かすことができるため、物体の位置姿勢を正確にかつ高速に設定し、速やかにトラッキングを開始することができる。
【００４３】
［第３の実施形態］
第１，２の実施形態では、撮像画像は濃淡画像であるものとした。しかし上記の通り、撮像画像は濃淡画像に限らず、カラー画像であっても良いし、距離画像であっても良い。距離画像を用いて物体の位置姿勢を推定する推定方法は公知であり、例えば、上記の文献Ａに示されるテンプレートマッチングや、ICP(Iterative Closest Point)を利用して実施可能である。或いは、距離画像を濃淡画像に変換して処理しても良い。この場合、距離画像が各画素で保持する距離値を、所定の比率に基づいて濃淡画像における輝度値に変換する。
【００４４】
撮像画像として距離画像を用いる場合には、撮像装置４００には距離画像を撮像可能な装置（距離センサなど）を適用する。このように、撮像装置４００は、撮像画像として利用する画像を撮像可能な装置であればよい。
【００４５】
また、第１，２の実施形態では、取得部３０２は撮像画像を撮像装置４００から取得するものとして説明したが、撮像画像の取得元は撮像装置４００に限らない。例えば、撮像装置４００にて撮像した各フレームの撮像画像をサーバ装置等の装置に保持しておき、取得部３０２は、このような装置から各フレームの撮像画像を取得するようにしても良い。
【００４６】
［第４の実施形態］
第１，２の実施形態では、参照画像は、規定の位置姿勢に配置された物体を撮像することで得られる撮像画像であったが、規定の位置姿勢に配置された物体を表す画像であれば、如何なる画像であっても良い。例えば、規定の位置姿勢に配置された物体の撮像画像から推定した位置姿勢を有する３次元モデル（物体の形状を模した３次元モデル）の画像を参照画像としても良い。３次元モデルの表面の色や輝度を物体の色や輝度に似せることで、ユーザは物体の位置姿勢の状態を確認しやすくする。また、参照画像は、規定の位置姿勢に配置された物体の画像としてユーザがコンピュータ（画像処理装置３００であっても良いし、画像処理装置３００とは異なる装置であっても良い）上で作成した画像であっても良い。
【００４７】
［第５の実施形態］
表示制御部３０５による参照画像の表示方法は、物体の位置姿勢の状態を示す参照画像の少なくとも一部を表示するものであれば、どのような表示方法であっても良い。また、参照画像の表示位置は特定の表示位置に限らない。つまり、参照画像は図１に示す如く撮像画像の隅（図１では左上隅）に表示しても良いし、表示装置５００の表示画面における隅に表示しても良いし、表示装置５００の表示画面全体に表示しても良い。表示装置５００の表示画面全体に参照画像を表示すると、同表示画面上で撮像画像が視認できなくなるため、例えば、参照画像若しくは撮像画像の一方を半透明表示（一方の画素のα値を制御して表示する）するようにしても良い。これにより、表示装置５００の表示画面上で撮像画像と参照画像の両方を視認することができる。
【００４８】
また、参照画像は加工して表示しても良い。例えば、参照画像をコントラストを強調して表示しても良いし、参照画像をエッジ画像に変換して物体の輪郭を分かりやすく強調してから表示しても良い。また、参照画像における物体の領域を強調するため、参照画像から物体以外の領域を切り抜いたものを表示しても良いし、逆に物体の領域を切り抜いて表示しても良い。また、参照画像を点滅させることで、緊急性や重要性を強調して表示しても良い。また、参照画像の表示は、所望の位置姿勢の状態への誘導を目的としたものであるため、ステップＳ７０６にて使用位置姿勢を設定した段階で、参照画像の表示を停止しても良い。
【００４９】
また、保持部３０１に複数の参照画像が登録されている場合には、該複数の参照画像を表示装置５００の表示画面に一覧表示させても良い。この場合、ユーザは表示装置５００の表示画面に表示されている何れかの参照画像に合わせて物体を操作する。この場合、照合部３０７は、複数の参照画像のそれぞれについて撮像画像との一致度を判定することになる。そして設定部３０８は、撮像画像との一致度が規定値以上且つ最も高い参照画像を含む参照情報に含まれている位置姿勢を、次のフレームの撮像画像内の物体の位置姿勢の推定に使用する使用位置姿勢として設定する。
【００５０】
また、画像処理装置３００は、参照画像の表示と共に、参照画像が表す物体の位置姿勢に物体を動かすことをユーザに通知する（誘導する）ためのガイダンスを音声情報や文字情報などでもって報知するようにしても良い。例えば、表示制御部３０５は、参照画像と共に、「表示した画像に合わせて物体を操作してください」等の文字情報を表示装置５００の表示画面に表示するようにしても良いし、この文字情報を音声として出力しても良い。
【００５１】
また、表示装置５００は、画像情報や文字情報をユーザに通知することができれば良く、例えば、プロジェクタ装置であっても良い。この場合、表示装置５００は、表示制御部３０５から表示対象として受け取った画像や文字を投影する。
【００５２】
［第６の実施形態］
第１，２の実施形態では、参照情報は、トラッキングの開始前に作成して保持部３０１に登録するものとしたが、必要時に取得できれば、参照情報の登録形態は特定の登録形態に限らない。
【００５３】
例えば、参照情報として参照画像のみを保持部３０１に登録しておき、該参照画像中の物体の位置姿勢については必要なときに該参照画像から（例えば上記の文献Ａに記載の推定方法によって）推定するようにしても良い。
【００５４】
また、参照情報は、トラッキングの実行中に任意のタイミングで登録するようにしても良い。例えば、トラッキングの実行中に撮像装置４００から出力された撮像画像のうち任意の撮像画像を参照画像とし、該参照画像と、該参照画像中の物体の推定された位置姿勢と、を含む参照情報を登録するようにしても良い。「トラッキングの実行中に撮像装置４００から出力された撮像画像のうち任意の撮像画像」は、例えばユーザが指定した撮像画像であっても良いし、規定の位置姿勢を有する物体が認識された撮像画像であっても良い。また、「トラッキングの実行中に撮像装置４００から出力された撮像画像のうち任意の撮像画像」は、撮像装置４００から得られた最新の撮像画像であっても良い。
【００５５】
また、取得部３０２から得られた撮像画像から推定できる物体の位置姿勢の正確度合いを表わす評価値が高い場合に、該撮像画像を参照画像とし、該参照画像と、該参照画像中の物体の推定された位置姿勢と、を含む参照情報を登録するようにしても良い。この場合、位置姿勢の精度の高い参照情報を登録することができる。「物体の位置姿勢の正確度合いを表わす評価値」は例えば、撮像画像中の物体の推定された位置姿勢を有する３次元モデルを該撮像画像に投影モデルとして投影し、該投影モデルと該撮像画像内の物体との差分が小さいほど評価値が高いとする。このような評価値は、例えば、上記の文献Ｂに記載の方法でもって求めることができる。
【００５６】
なお、撮像画像中の物体の位置姿勢の評価値が低い場合に該撮像画像の登録を避けるようにしても良い。また、物体の位置姿勢の評価値の算出方法は上記の方法に限らない。例えば、撮像画像中の物体が該撮像画像中央に近いほど位置姿勢の精度が高いとして評価値を高く計算しても良いし、撮像画像上で物体の見切れが少ないほど位置姿勢の精度が高いとして評価値を高く計算しても良い。また、物体が静止している状態における撮像画像を参照画像としても良い。「物体が静止している状態」の判断については、例えば、規定フレーム数分の撮像画像内の物体の位置姿勢の変化量が規定量未満であれば、「物体は静止している」と判断する。物体が静止している状態では、ブラーによる画質劣化が少ないため、このような状態における参照画像からは精度の高い位置姿勢を推定できる。
【００５７】
また、参照情報のバリエーションを増やすように、参照情報を登録しても良い。例えば、取得部３０２から得られた撮像画像と、保持部３０１に登録されているそれぞれの参照画像（登録済みの参照画像）との類似度を求める。そして、何れの類似度も規定値未満であれば、該撮像画像と類似する参照画像が保持部３０１に登録されていないと判断し、該撮像画像を参照画像とし、該参照画像と、該参照画像中の物体の推定された位置姿勢と、を含む参照情報を保持部３０１に登録する。また例えば、取得部３０２から得られた撮像画像中の物体の推定された位置姿勢と、保持部３０１に登録されているそれぞれの参照情報中の位置姿勢と、の類似度（例えば位置姿勢の差分）を求める。そして、何れの類似度も規定値未満であれば、該撮像画像と類似する参照画像が保持部３０１に登録されていないと判断し、該撮像画像を参照画像とし、該参照画像と、該参照画像中の物体の推定された位置姿勢と、を含む参照情報を保持部３０１に登録する。
【００５８】
保持部３０１に登録される参照情報のバリエーションを増やすことで、表示制御部３０５で参照情報を選択するときに、適切な参照情報を選びやすくなる。例えば、第２の実施形態に示すように、物体の操作量を少なくする参照情報を選ぶ上で参照情報のバリエーションが多いと、撮像画像により近い参照画像が発生しやすくなる。これにより、ユーザが物体を操作する観点で、その操作量が最も少ない物体の位置姿勢の状態を示す参照情報を得やすくなる。
【００５９】
［第７の実施形態］
第２の実施形態では、保持部３０１に登録されてる複数の参照画像のうち「ユーザが手に持っている物体の位置姿勢を参照画像が示す物体の位置姿勢に合わせるように動かす場合に動かす量が最も小さくなるような参照画像」を選択していた。しかし、複数の参照画像から少なくとも１つの参照画像を選択するのであれば、その選択方法は特定の選択方法に限らない。
【００６０】
例えば、最近に保持部３０１に登録された参照画像を選択しても良いし、保持部３０１に登録されている複数の参照画像からランダムに選択しても良い。また、ユーザによる物体の操作量を少なくするために、例えば過去に推定が成功した位置姿勢に最も近い位置姿勢を含む参照情報に含まれている参照画像を選択するようにしても良い。また、同様の目的のために、物体自体またはユーザの手に取り付けられた慣性センサや位置センサ（GPSなど）から取得した「物体自体」または「手」の位置姿勢に最も近い位置姿勢を含む参照情報に含まれている参照画像を選択しても良い。この場合、ユーザの操作量を少なくすることができる。
【００６１】
最近に保持部３０１に登録された参照画像を選択する場合、該選択された参照画像中の物体の位置姿勢から、現在の物体の位置姿勢への変化は少ないと考えられるため、第２の実施形態と同じく物体の操作量を少なくすることができる。また、位置姿勢の正確度合いを表わす評価値（第６の実施形態にて説明した評価値）が高い参照画像を選択するようにしても良い。
【００６２】
［第８の実施形態］
画像中の物体の位置姿勢を推定するための方法は、特定の方法に限らない。つまり、上記の実施形態は、物体の位置及び姿勢の両方を推定するケースや物体の位置及び姿勢の何れか一方のみを推定するケースの何れにも適用可能であるが、何れのケースであっても、位置及び／または姿勢を推定する方法は特定の方法に限らない。
【００６３】
例えば、物体の３次元モデルと画像との間で特徴の対応付けを行い、対応する特徴間の誤差を最小化するように位置姿勢を求める方法であっても良い。また、物体の３次元モデルから生成した仮想画像をテンプレートとし、注目する画像上の各部とのテンプレートマッチングを行うことで、位置姿勢を推定しても良い。また、３次元モデルを利用しない位置姿勢推定方法として、物体を撮影した実写画像をテンプレートとして位置姿勢を推定しても良い。また、KLT(Kanade-Lucas-Tomasi Future Tracker)などの、画像特徴のトラッキングを利用して位置姿勢を推定しても良い。
【００６４】
また、取得部３０２が取得する撮像画像が距離画像である場合には、ICP(Iterative Closest Point)に基づいて、３次元モデルと画像との間の特徴の対応付けを行うことで、位置姿勢を推定しても良い。また、Visual SLAM(Simultaneous Localization and Mapping)に基づいて、物体の３次元モデルの構築とトラッキングとを同時に行っても良い。
【００６５】
また、第１の実施形態では、撮像装置４００を基準とした座標系における物体の位置姿勢を推定していたが、逆に、物体を基準とした座標系における撮像装置４００の位置姿勢を推定するようにしても良い。「撮像装置４００を基準とした座標系における物体の位置姿勢」、「物体を基準とした座標系における撮像装置４００の位置姿勢」の何れも本質的には同じであり、撮像装置４００と物体との間の位置姿勢の関係を推定している。
【００６６】
また、位置姿勢を推定する物体として、シーン中の一部を対象としても良いし、シーン全体を対象としても良い。また、上記の通り、物体の位置及び姿勢の一方のみを推定するようにしても良く、例えば、物体の位置の変化が少ない場合には姿勢のみを推定し、姿勢の変化が少ない場合には位置のみを推定するようにしても良い。
【００６７】
［第９の実施形態］
上記のように、照合部３０７による画像の照合方法は特定の照合方法に限らない。例えば、上記のSADの代わりにSSD(Sum of Squared Difference)やNCC(Normalized Cross-Correlation)を用いて一致度を規定しても良い。また、参照情報に含まれる位置姿勢に基づいて物体の３次元モデルを画像上に投影し、物体がある領域のみを比較することで一致度を計算しても良いし、撮像画像中の物体の推定された位置姿勢と参照情報に含まれる位置姿勢とを比較して一致度を計算しても良い。
【００６８】
［第１０の実施形態］
図２に示した画像処理装置３００の各機能部はハードウェアで実装しても良いし、一部をソフトウェア（コンピュータプログラム）で実装しても良い。後者の場合、例えば、保持部３０１に対応するメモリを有し、それ以外の機能部に対応するソフトウェアを実行可能なコンピュータ装置は画像処理装置３００に適用可能である。画像処理装置３００に適用可能なコンピュータ装置のハードウェア構成例について、図５のブロック図を用いて説明する。
【００６９】
ＣＰＵ５０１は、ＲＡＭ５０２やＲＯＭ５０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ５０１は、コンピュータ装置全体の動作制御を行うと共に、画像処理装置３００が行うものとして上述した各処理を実行若しくは制御する。
【００７０】
ＲＡＭ５０２は、外部記憶装置５０５やＲＯＭ５０３からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ５０６を介して外部から受信したデータ（撮像画像など）、を格納するためのエリアを有する。さらにＲＡＭ５０２は、ＣＰＵ５０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ５０２は、各種のエリアを適宜提供することができる。ＲＯＭ５０３には、コンピュータ装置の設定データや起動プログラムなど、書換不要のコンピュータプログラムやデータが格納されている。
【００７１】
操作部５０４は、キーボード、マウス、タッチパネルなどのユーザインターフェースであり、ユーザが操作することで各種の指示をＣＰＵ５０１に対して入力することができる。この「各種の指示」には、図４のフローチャートに従った処理の開始指示や終了指示、参照画像を作成するための操作入力、参照画像として登録する撮像画像の選択指示、等が含まれる。
【００７２】
外部記憶装置５０５は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置５０５には、ＯＳ（オペレーティングシステム）や、画像処理装置３００が行うものとして上述した各処理をＣＰＵ５０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置５０５に保存されているコンピュータプログラムには、取得部３０２、推定部３０３、判定部３０４、表示制御部３０５、登録部３０６、設定部３０８、照合部３０７の機能をＣＰＵ５０１に実現させる為のコンピュータプログラムが含まれている。また、外部記憶装置５０５に保存されているデータには、上記の説明において既知の情報として取り扱ったもの（規定値など）が含まれている。外部記憶装置５０５に保存されているコンピュータプログラムやデータは、ＣＰＵ５０１による制御に従って適宜ＲＡＭ５０２にロードされ、ＣＰＵ５０１による処理対象となる。なお、上記の保持部３０１は、外部記憶装置５０５やＲＡＭ５０２により実装可能である。
【００７３】
Ｉ／Ｆ５０６は、外部装置との間のデータ通信を行うためのインターフェースとして機能するものであり、例えばＩ／Ｆ５０６には、上記の撮像装置４００や表示装置５００が接続される。なお、Ｉ／Ｆ５０６は撮像装置４００及び表示装置５００のそれぞれについて設けても良い。ＣＰＵ５０１、ＲＡＭ５０２、ＲＯＭ５０３、操作部５０４、外部記憶装置５０５、Ｉ／Ｆ５０６はバス５０７に接続されている。
【００７４】
また、上記の各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わないし、上記の各実施形態の一部若しくは全部を選択的に使用しても構わない。また、上記の実施形態において説明した各処理は、説明した順序で実行されることに限らず、一部の処理を他の処理を並行して実行させても良いし、処理の順序を入れ替えても良い。
【００７５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７６】
３０１：保持部  ３０２：取得部  ３０３：推定部  ３０４：判定部  ３０５：表示制御部  ３０６：登録部  ３０７：照合部  ３０８：設定部
【図１】
2020003870.tif 000003
【図２】
2020003870.tif 000004
【図３】
2020003870.tif 000005
【図４】
2020003870.tif 000006
【図５】
2020003870.tif 000007