説明

画像処理装置、画像処理方法及びプログラム

【課題】重畳表示データをユーザの視野内に重畳して得られる重畳画像を閲覧しやすくする。
【解決手段】画像処理装置100は、環境マップに基づいて、入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定する重畳表示位置決定部と、重畳表示位置決定部により決定された物体の位置に重畳表示データを設定することで重畳表示画像を生成する重畳表示画像生成部と、ユーザの視野内に重畳表示画像を重畳して表示部に表示させる画像重畳部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、実空間を撮影して得られる画像を加工した上でユーザに呈示する拡張現実(AR:Augmented Reality)と呼ばれる技術が注目されている。AR技術では、例えば、入力画像に映った実空間内の物体に関連する有用な情報が画像内に挿入され、出力画像として出力される。即ち、AR技術では、典型的には、ユーザに呈示される画像の多くの部分は実空間を映したものであり、画像の一部分が目的に応じて加工され得る。このような特徴は、出力画像の全体(又は大部分)がCG(Computer Graphics)により構成される仮想現実(Virtual Reality)とは対照的である。AR技術を用いることで、例えば、出力画像を基にしたユーザによる実空間の状況把握の容易化や作業支援などの利点が提供され得る。
【0003】
また、AR技術には、実空間を撮影して得られる画像に実空間の物体に関連する有用な情報を挿入する手法の他に、実空間を見ているユーザの視野に実空間の物体に関連する有用な情報を重ねてユーザに呈示する手法も存在する。この手法では、実空間の物体に関連する有用な情報が、実空間を見ているユーザの視野にハーフミラーなどを用いて光学的に合成されて呈示されることになる。このようなAR技術を用いた場合にも、例えば、ユーザによる実空間の状況把握の容易化や作業支援などの利点が提供され得る。
【0004】
AR技術において、真に有用な情報をユーザに呈示するためには、コンピュータが実空間の状況を的確に把握することが重要である。そのため、AR技術の基盤となる実空間の状況の把握を目的とした技術の開発も進められている。例えば、下記特許文献1には、カメラの位置や姿勢とカメラの画像に映る特徴点の位置とを同時に推定可能なSLAM(Simultaneous Localization And Mapping)とよばれる技術を応用して、実空間内に存在する物体の3次元位置を表現する環境マップを動的に生成する手法が記載されている。なお、単眼カメラを用いたSLAM技術の基本的な原理は、下記非特許文献1において説明されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−304268号公報
【非特許文献】
【0006】
【非特許文献1】Andrew J.Davison, “Real-Time Simultaneous Localization and Mapping with a Single Camera”, Proceedings of the 9th IEEE International Conference on Computer Vision Volume 2, 2003, pp.1403-1410
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、従来、頭部に装着する小型のディスプレイ装置として、HMD(Head Mounted Display)が普及してきている。カメラ付きのHMDを用いた技術としては、例えば、カメラによって撮影された画像に対して画像処理装置によってAR技術を用いた加工を施し、HMDによって加工後の画像を表示してユーザに閲覧させるものがある。このようなHMDが有する機能は、例えば、ビデオ透過型のHMDによって実現される。また、例えば、カメラによって撮影された画像を元に画像処理装置によってAR技術を用いた付加情報画像の生成を行い、生成された付加情報画像をハーフミラーなどにより視野内に光学的に合成してユーザに閲覧させるものもある。このようなHMDが有する機能は、例えば、光学透過型のHMDによって実現される。ユーザは、このような技術を使用すれば、実空間の状況を容易に把握しつつ、作業支援などを享受することができる。撮影画像に対して施される加工技術としては、例えば、撮影画像に写っている建物にその建物に関する情報を重畳する技術などが挙げられる。
【0008】
ここで、撮影画像の正面付近には建物などの物体が写っているのが一般的であり、これに伴って、HMDに表示される出力画像の正面付近には建物に関連する情報などといった物体に関連する情報が重畳されることが一般的である。したがって、撮影画像の正面付近に、メニューや広告、スケジュール、メモなどといった、撮影画像に写っている物体に直接的に依存しないデータ(以下、「重畳表示データ」と言う。)を重畳してしまうと、重畳表示データと撮像画像に写っている物体に関連する情報とが重なり合ってしまったり接近してしまったりすることが起こり得る。このようなことが起こると、ユーザは、撮影画像に重畳表示データを重畳して得られる重畳画像を閲覧しづらくなるという問題があった。
【0009】
そこで、本発明は、重畳表示データをユーザの視野内に重畳して得られる重畳画像を閲覧しやすくすることが可能な、新規かつ改良された画像処理装置、画像処理方法及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【0010】
本発明のある実施形態によれば、物体の外観の特徴を表す特徴データを記憶している特徴データ記憶部と、ユーザの視野内に重畳される画像のもとになる重畳表示データを記憶している重畳表示データ記憶部と、撮像装置を用いて実空間を撮影することにより得られる入力画像、及び上記特徴データ記憶部により記憶されている上記特徴データに基づいて、上記実空間内に存在する1つ以上の物体の位置を表現する環境マップを生成する環境マップ生成部と、上記環境マップに基づいて、上記入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定する重畳表示位置決定部と、上記重畳表示位置決定部により決定された物体の位置に上記重畳表示データを設定することで重畳表示画像を生成する重畳表示画像生成部と、上記ユーザの視野内に上記重畳表示画像を重畳して表示部に表示させる画像重畳部と、を備える、画像処理装置が提供される。
【0011】
上記画像重畳部は、上記撮像装置を頭部に装着したユーザが所定値を超える傾きで下方向に上記頭部を傾けたことを、上記撮像装置の傾きを検出するセンサにより検出した場合には、上記表示部に上記重畳表示画像を表示させ、上記撮像装置の傾きを検出するセンサにより検出していない場合には、上記表示部による上記重畳表示画像の表示を制限することとしてもよい。
【0012】
上記画像処理装置は、上記入力画像及び上記特徴データに基づいて自装置の位置を動的に検出する自己位置検出部、をさらに備え、上記画像重畳部は、上記自己位置検出部により検出された自装置の位置と上記重畳表示位置決定部により決定された物体の位置との距離が所定値を超えている場合には、上記表示部による上記重畳表示画像の表示を制限することとしてもよい。
【0013】
上記重畳表示位置決定部は、上記所定の平面または曲面を有する物体の位置として、略水平方向に広がる平面を有する物体の位置を決定することとしてもよい。
【0014】
上記重畳表示位置決定部は、略水平方向に広がる平面を有する物体の位置として、床面、テーブル面、及び階段のうち少なくともいずれか1つの位置を決定することとしてもよい。
【0015】
上記重畳表示画像生成部は、上記撮像装置を頭部に装着したユーザが略水平方向に上記頭部を回転させたことを、上記撮像装置の回転を検出するセンサにより検出した場合には、当該回転の度合いに応じて上記重畳表示データの設定位置を変更することで上記重畳表示画像に設定される上記重畳表示データを移動させることとしてもよい。
【0016】
上記画像処理装置は、上記環境マップにより表現される物体の表面上の点の位置に基づいて、上記実空間の床面又は壁面の位置を推定する位置推定部、をさらに備え、上記重畳表示位置決定部は、上記位置推定部により推定される上記実空間の床面又は壁面の位置にさらに基づいて、床面の位置を上記物体の位置として決定することとしてもよい。
【0017】
上記特徴データは、各物体の表面上の1つ以上の点について当該点が上記実空間の床面又は壁面と接する可能性が高いか否かを表すデータを含み、上記位置推定部は、上記特徴データにさらに基づいて、上記実空間の床面又は壁面の位置を推定することとしてもよい。
【0018】
また、本発明の別の実施形態によれば、物体の外観の特徴を表す特徴データを記憶している特徴データ記憶部と、ユーザの視野内に重畳される画像のもとになる重畳表示データを記憶している重畳表示データ記憶部と、環境マップ生成部と、重畳表示位置決定部と、重畳表示画像生成部と、画像重畳部と、を備える、画像処理装置の上記環境マップ生成部により、撮像装置を用いて実空間を撮影することにより得られる入力画像、及び上記特徴データ記憶部により記憶されている上記特徴データに基づいて、上記実空間内に存在する1つ以上の物体の位置を表現する環境マップを生成するステップと、上記重畳表示位置決定部により、上記環境マップに基づいて、上記入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定するステップと、上記重畳表示画像生成部により、上記重畳表示位置決定部により決定された物体の位置に上記重畳表示データを設定することで重畳表示画像を生成するステップと、上記画像重畳部により、上記ユーザの視野内に上記重畳表示画像を重畳して表示部に表示させるステップと、を含む、画像処理方法が提供される。
【0019】
また、本発明の別の実施形態によれば、コンピュータを、物体の外観の特徴を表す特徴データを記憶している特徴データ記憶部と、ユーザの視野内に重畳される画像のもとになる重畳表示データを記憶している重畳表示データ記憶部と、撮像装置を用いて実空間を撮影することにより得られる入力画像、及び上記特徴データ記憶部により記憶されている上記特徴データに基づいて、上記実空間内に存在する1つ以上の物体の位置を表現する環境マップを生成する環境マップ生成部と、上記環境マップに基づいて、上記入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定する重畳表示位置決定部と、上記重畳表示位置決定部により決定された物体の位置に上記重畳表示データを設定することで重畳表示画像を生成する重畳表示画像生成部と、上記ユーザの視野内に上記重畳表示画像を重畳して表示部に表示させる画像重畳部と、を備える、画像処理装置として機能させるためのプログラムが提供される。
【発明の効果】
【0020】
以上説明したように、本発明に係る画像処理装置、画像処理方法及びプログラムによれば、重畳表示データをユーザの視野内に重畳して得られる重畳画像を閲覧しやすくすることができる。
【図面の簡単な説明】
【0021】
【図1】一実施形態に係る画像処理装置について説明するための模式図である。
【図2】一実施形態に係る画像処理のための入力画像の一例を示す説明図である。
【図3】第1の実施形態に係る画像処理装置の構成の一例を示すブロック図である。
【図4】第1の実施形態に係る自己位置検出処理の流れの一例を示すフローチャートである。
【図5】オブジェクト上に設定される特徴点について説明するための説明図である。
【図6】特徴点の追加について説明するための説明図である。
【図7】予測モデルの一例について説明するための説明図である。
【図8】特徴データの構成の一例について説明するための説明図である。
【図9】第1の実施形態に係るオブジェクト認識処理の流れの一例を示すフローチャートである。
【図10A】撮像装置を装着したユーザが正面を向いているときに画像処理装置によって生成される出力画像の一例を示す図である。
【図10B】ユーザが下を向いたときに生成される出力画像の一例を示す図である。
【図10C】1階層目の項目選択によって生成される出力画像の一例を示す図である。
【図10D】2階層目の項目が選択される直前の出力画像の一例を示す図である。
【図10E】2階層目の項目選択によって生成される出力画像の一例を示す図である。
【図11】第1の実施形態に係る重畳表示データ記憶部により記憶されているデータの一例を示す図である。
【図12】第1の実施形態に係る出力画像生成処理の流れの一例を示すフローチャートである。
【図13】第1の実施形態に係る項目選択処理の流れの一例を示すフローチャートである。
【図14】第2の実施形態に係る画像処理装置の構成の一例を示すブロック図である。
【図15】特徴データの構成の他の例について説明するための説明図である。
【図16】図15に示した特徴データに関連するポリゴンの例について説明するための説明図である。
【図17】汎用コンピュータのハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0022】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【0023】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
1.一実施形態に係る画像処理装置の概要
2.第1の実施形態
2−1.撮像部
2−2.環境マップ生成部
2−3.出力画像生成部
2−4.第1の実施形態のまとめ
3.第2の実施形態
3−1.環境マップ生成部
3−2.出力画像生成部
3−3.第2の実施形態のまとめ
4.ハードウェア構成
【0024】
<1.一実施形態に係る画像処理装置の概要>
図1は、本発明の一実施形態に係る画像処理装置について説明するための模式図である。図1には、本発明の一実施形態に係る画像処理装置100を頭部に装着するユーザが存在する環境1が示されている。
【0025】
図1を参照すると、環境1の内部には、3つの物体Obj01、Obj02及びObj03、壁面W01及びW02、並びに床面F0が存在する。物体Obj01は、壁面W01とW02との角に配置されている。さらに、壁面W01に沿って、物体Obj01の隣りに物体Obj02、物体Obj02の隣りに物体Obj03がそれぞれ配置されている。環境1が住居の一室である場合には、物体Obj01、Obj02及びObj03は、例えばタンスなどの家具に相当する。
【0026】
画像処理装置100は、実空間である環境1の内部を撮影し、後に説明する本実施形態に係る画像処理を実行する。図1では、画像処理装置100の一例として、ユーザの頭部に装着されたカメラを備え、カメラによって撮影された画像を加工してHMD(Head Mounted Display)などといったディスプレイ装置Dに出力する装置を示しているが、画像処理装置100はかかる例に限定されない。例えば、画像処理装置100は、ビデオカメラなどの撮像装置から映像を取得することのできる、PC(Personal Computer)、携帯端末又はデジタル家電機器などの情報処理装置であってもよい。また、画像処理装置100は、ユーザの頭部に装着されたカメラを内蔵していなくてもよい。すなわち、カメラはユーザに保持されている必要があるが、画像処理装置100が備えるカメラ以外の構成については、必ずしも図1に示したようにユーザに保持されていなくてもよい。さらに、環境1は、図1の例に限定されず、屋内の環境であっても屋外の環境であってもよい。
【0027】
図2は、図1の環境1において画像処理装置100により撮影される一例としての入力画像Im01を示している。入力画像Im01には、図1に示した3つの物体Obj01、Obj02及びObj03、壁面W01及びW02、並びに床面F0が映っている。画像処理装置100は、例えばこのような入力画像を取得し、入力画像に写っている物体に直接的に依存しないデータ(以下、「重畳表示データ」と言う。)を入力画像に重畳して出力画像を生成する。重畳表示データの例としては、メニューや、広告、スケジュール、メモなどといったデータが想定される。
【0028】
入力画像の正面付近には建物などの物体が写っているのが一般的であり、これに伴って、ディスプレイ装置Dに表示される出力画像の正面付近には建物に関連する情報などといった物体に関連する情報が重畳されることが一般的である。したがって、撮影画像の正面付近に、重畳表示データを重畳してしまうと、重畳表示データと撮像画像に写っている物体に関連する情報とが重なり合ってしまったり接近してしまったりすることが起こり得る。このようなことが起こると、ユーザは、入力画像に重畳表示データを重畳して得られる出力画像を閲覧しづらくなる。本明細書では、入力画像に重畳表示データを重畳して得られる出力画像を閲覧しやすくするために、例えば、入力画像から床面の位置を認識し、入力画像における床面の位置に重畳表示データを重畳する技術について詳細に説明する。床面は、至る場所に存在する上に、物体に関連する情報が重畳される可能性が低いため、出力画像を閲覧しづらくなるという状況を改善することができる。
【0029】
また、ユーザによる操作入力の手間を省略することがHMDを使用する利点として挙げられるが、操作を入力するための装置として、例えば、キーボードやマウスなどの入力装置を使用すると、ユーザに操作を入力するための手間を掛けさせてしまう。これにより、HMDを使用する利点が薄れてしまうこととなる。本明細書では、ユーザが画像処理装置100に実行させたい処理を容易に選択することを可能とするために、例えば、ユーザが重畳表示データを閲覧しながら所望の項目の位置に足部を合わせると、画像処理装置100が、入力画像に基づいて足部が合わせられた項目に対応する処理を実行する技術について詳細に説明する。このような技術によりユーザに掛かる操作を入力するための手間を軽減させることができる。
【0030】
また、重畳表示データをユーザの視野内に光学的に合成することによって現実空間に重畳表示データを重畳して表示する画像処理装置100に対してこのような技術を適用することも可能である。このような場合にも、ユーザが合成画像を閲覧しやすくなるという効果、及びユーザに掛かる操作を入力するための手間を軽減させることができるという効果を奏することは言うまでもない。以下では、入力画像に重畳表示データを重畳して得られる出力画像を表示する画像処理装置を例として説明する。
【0031】
<2.第1の実施形態>
図3は、第1の実施形態に係る画像処理装置100の構成の一例を示すブロック図である。図3を参照すると、画像処理装置100は、撮像部102、環境マップ生成部110、及び出力画像生成部180を備える。
【0032】
[2−1.撮像部]
撮像部102は、例えば、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を有する撮像装置として実現され得る。撮像部102は、本実施形態では画像処理装置100の一部として構成されるが、撮像部102は画像処理装置100の外部に設けられてもよい。撮像部102は、図1に例示した環境1などの実空間を撮影することにより生成した画像を、入力画像として環境マップ生成部110及び出力画像生成部180へ出力する。
【0033】
[2−2.環境マップ生成部]
環境マップ生成部110は、撮像部102から入力される入力画像、及び特徴データ記憶部130により記憶されている後述するオブジェクトの特徴データに基づいて、実空間内に存在する1つ以上の物体の位置等を表現する環境マップを生成する。図3に示しているように、本実施形態において、環境マップ生成部110は、自己位置検出部120、特徴データ記憶部130、画像認識部140、環境マップ構築部150、及び環境マップ記憶部152を含む。
【0034】
(1)自己位置検出部
自己位置検出部120は、撮像部102から入力される入力画像、及び特徴データ記憶部130により記憶されている特徴データに基づいて、入力画像を映した撮像装置の位置を動的に検出する。例えば、自己位置検出部120は、上記非特許文献1に記載されているSLAM技術を応用することにより、撮像装置が単眼カメラを有する場合にも、当該カメラの位置及び姿勢、並びにカメラの撮像面における特徴点の位置を、フレームごとに動的に決定することができる。
【0035】
まず、図4を用いて、自己位置検出部120によるSLAM技術を応用した自己位置検出処理の全体的な流れについて説明する。次に、図5〜図7を用いて、自己位置検出処理の詳細を説明する。
【0036】
図4は、自己位置検出部120によるSLAM技術を応用した自己位置検出処理の流れの一例を示すフローチャートである。図4において、自己位置検出処理が開始すると、自己位置検出部120は、まず、状態変数を初期化する(ステップS102)。本実施形態において、状態変数とは、カメラの位置及び姿勢(回転角)、当該カメラの移動速度及び角速度、並びに1つ以上の特徴点の位置を要素として含むベクトルである。そして、自己位置検出部120は、撮像部102から入力画像を順次取得する(ステップS112)。ステップ112からステップS118までの処理は、各入力画像について(即ち毎フレーム)繰り返され得る。
【0037】
ステップS114では、自己位置検出部120は、入力画像に映る特徴点を追跡する。例えば、自己位置検出部120は、特徴データ記憶部130により予め記憶されている特徴点ごとのパッチ(例えば特徴点を中心とする3×3=9画素の小画像)を入力画像から検出する。ここで検出されたパッチの位置、即ち特徴点の位置は、後の状態変数の更新の際に用いられる。
【0038】
ステップS116では、自己位置検出部120は、所定の予測モデルに基づいて、例えば1フレーム後の状態変数の予測値を生成する。また、ステップS118では、自己位置検出部120は、ステップS116において生成した状態変数の予測値と、ステップS114において検出した特徴点の位置に応じた観測値とを用いて、状態変数を更新する。自己位置検出部120は、ステップS116及びS118における処理を、拡張カルマンフィルタの原理に基づいて実行する。
【0039】
このような処理の結果として、毎フレーム更新される状態変数の値が出力される。以下、特徴点の追跡(ステップS114)、状態変数の予測(ステップS116)、状態変数の更新(ステップS118)の各処理の内容について、より具体的に説明する。
【0040】
(1−1)特徴点の追跡
本実施形態において、特徴データ記憶部130は、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶している。特徴データには、例えば、各オブジェクトの外観の特徴を表す1つ以上の特徴点についての小画像、即ちパッチ(Patch)が含まれる。パッチとは、例えば、特徴点を中心とする3×3=9画素よりなる小画像であってよい。
【0041】
図5は、オブジェクトの2つの例、並びに各オブジェクト上に設定される特徴点(FP:Feature Point)及びパッチの例を示している。図5の左のオブジェクトは、タンスを表すオブジェクトである(6a参照)。当該オブジェクト上には、特徴点FP1を含む複数の特徴点が設定されている。さらに、特徴点FP1と関連付けて、パッチPth1が定義されている。一方、図5の右のオブジェクトは、カレンダーを表すオブジェクトである(6b参照)。当該オブジェクト上には、特徴点FP2を含む複数の特徴点が設定されている。さらに、特徴点FP2と関連付けて、パッチPth2が定義されている。
【0042】
自己位置検出部120は、撮像部102から入力画像を取得すると、入力画像に含まれる部分画像と、特徴データ記憶部130に予め記憶されている図6に例示した特徴点ごとのパッチとを照合する。そして、自己位置検出部120は、照合の結果として、入力画像に含まれる特徴点の位置(例えば検出されたパッチの中心画素の位置)を特定する。
【0043】
なお、特徴点の追跡(図4のステップS114)において、追跡される全ての特徴点に関するデータが予め特徴データ記憶部130に記憶されていなくてもよい。例えば、図6の例では、時刻T=t−1において、6つの特徴点が入力画像内で検出されている(7a参照)。次に、時刻T=tにおいてカメラの位置又は姿勢が変化すると、時刻T=t−1において入力画像に映っていた6つの特徴点のうち2つのみが入力画像内に映っている。この場合に、自己位置検出部120は、入力画像内で特徴的な画素のパターンを有する位置に新たに特徴点を設定し、その新たな特徴点を後のフレームにおける自己位置検出処理に用いてもよい。例えば、図6の例では、時刻T=tにおいて、4つの新たな特徴点がオブジェクト上に設定されている(7a参照)。かかる点は、SLAM技術の1つの特長であり、それにより、予め全ての特徴点を設定しておくコストを削減できると共に、追加される多数の特徴点を用いて処理の精度を高めることができる。
【0044】
(1−2)状態変数の予測
本実施形態において、自己位置検出部120は、拡張カルマンフィルタを適用すべき状態変数として、次式に示す状態変数Xを用いる。
【0045】
【数1】

(1)

【0046】
式(1)における状態変数Xの第1の要素は、次式の通り、実空間に設定される座標系である世界座標系(x,y,z)でのカメラの3次元位置を表す。
【0047】
【数2】

(2)

【0048】
また、状態変数の第2の要素は、カメラの姿勢を表す回転行列に対応する四元数(クォータニオン)を要素として有する4次元ベクトルωである。なお、四元数の変わりにオイラー角を用いてカメラの姿勢が表されてもよい。また、状態変数の第3及び第4の要素は、カメラの移動速度及び角速度をそれぞれ表す。
【0049】
さらに、状態変数の第5及びそれ以降の要素は、次式の通り、世界座標系での特徴点FP(i=1…N)の3次元位置pをそれぞれ表す。なお、上述したように、特徴点の数Nは、処理の間変化し得る。
【0050】
【数3】

(3)
【0051】
自己位置検出部120は、ステップS102において初期化された状態変数Xの値、又は前フレームにおいて更新された状態変数Xの値に基づいて、最新のフレームについての状態変数の予測値を生成する。状態変数の予測値は、次式に示す多次元正規分布に従った拡張カルマンフィルタの状態方程式に従って生成される。
【0052】
【数4】

【0053】
ここで、Fはシステムの状態遷移に関する予測モデル、aは予測条件である。また、wはガウシアンノイズであり、例えばモデル近似誤差や観測誤差等を含み得る。一般的に、ガウシアンノイズwの平均はゼロとなる。
【0054】
図6は、本実施形態に係る予測モデルの一例について説明するための説明図である。図6を参照すると、本実施形態に係る予測モデルにおける2つの予測条件が示されている。まず、第1の条件として、特徴点の世界座標系における3次元位置は変化しないものとする。即ち、時刻Tにおける特徴点FP1の3次元位置をpとすると、次式の関係が成立する。
【0055】
【数5】

(5)
【0056】
次に、第2の条件として、カメラの運動は等速運動であるものとする。即ち、時刻T=t−1から時刻T=tにかけてのカメラの速度及び角速度について、次式の関係が成立する。
【0057】
【数6】

(6)

(7)

【0058】
このような予測モデル及び式(4)に示した状態方程式に基づいて、自己位置検出部120は、最新のフレームについての状態変数の予測値を生成する。
【0059】
(1−3)状態変数の更新
そして、自己位置検出部120は、観測方程式を用いて、例えば状態変数の予測値から予測される観測情報と、特徴点の追跡結果として得られる実際の観測情報との誤差を評価する。なお、式(8)におけるνがその誤差である。
【0060】
【数7】

【0061】
ここで、Hは観測モデルを表す。例えば、特徴点FPの撮像面(u−v平面)上の位置を、次式のように定義する。
【0062】
【数8】

【0063】
ここで、カメラの位置x、カメラの姿勢ω、及び特徴点FPの3次元位置pは、いずれも状態変数Xの要素として与えられる。そうすると、ピンホールモデルに従い、特徴点FPの撮像面上の位置は次式を用いて導かれる。
【0064】
【数9】

(11)

【0065】
ここで、λは正規化のためのパラメータ、Aはカメラ内部パラメータ、Rωは状態変数Xに含まれるカメラの姿勢を表す四元数ωに対応する回転行列である。カメラ内部パラメータAは、入力画像を撮影する撮像装置の特性に応じて、予め次式のように与えられる。
【0066】
【数10】

(12)

【0067】
ここで、fは焦点距離、θは画像軸の直交性(理想値は90°)、kは撮像面の縦軸のスケール(世界座標系から撮像面の座標系へのスケール変化率)、kは撮像面の横軸のスケール、(u,v)は撮像面の中心位置である。
【0068】
従って、式(11)を用いて導かれる予測される観測情報、即ち各特徴点の撮像面上の位置と、図4のステップS114における特徴点の追跡結果との間の誤差を最小にする状態変数Xを探索することにより、尤もらしい最新の状態変数Xを得ることができる。
【0069】
【数11】

【0070】
自己位置検出部120は、このようにSLAM技術を応用して動的に更新したカメラ(撮像装置)の位置x及び姿勢ωを、環境マップ構築部150及び出力画像生成部180へ出力する。
【0071】
(2)特徴データ記憶部
特徴データ記憶部130は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶している。図3では、特徴データ記憶部130が環境マップ生成部110の一部である例を示しているが、かかる例に限定されず、特徴データ記憶部130は環境マップ生成部110の外部に設けられてもよい。図8は、特徴データの構成の一例について説明するための説明図である。
【0072】
図8を参照すると、オブジェクトObj1についての一例としての特徴データFD1が示されている。特徴データFD1は、オブジェクト名称FD11、6方向から撮影した画像データFD12、パッチデータDF13、3次元形状データFD14、及びオントロジーデータFD15を含む。
【0073】
オブジェクト名称FD11は、“コーヒーカップA”など、対応するオブジェクトを特定することのできる名称である。
【0074】
画像データFD12は、例えば、対応するオブジェクトを前・後・左・右・上・下の6方向からそれぞれ撮影した6つの画像データを含む。パッチデータFD13は、各オブジェクト上に設定される1つ以上の特徴点ごとの、各特徴点を中心とする小画像の集合である。画像データFD12及びパッチデータFD13は、後述する画像認識部140によるオブジェクト認識処理のために使用され得る。また、パッチデータFD13は、前述した自己位置検出部120による自己位置検出処理のために使用され得る。
【0075】
3次元形状データFD14は、対応するオブジェクトの形状を認識するためのポリゴン情報、及び特徴点の3次元的な位置情報を含む。3次元形状データFD14は、後述する環境マップ構築部150による環境マップ構築処理、及び各オブジェクトについてのCG画像生成処理のために使用され得る。
【0076】
オントロジーデータFD15は、例えば、環境マップ構築部150による環境マップ構築処理を支援するために使用され得るデータである。図8の例では、オントロジーデータFD15は、コーヒーカップであるオブジェクトObj1が、机又は食器洗い機に対応するオブジェクトに接する可能性が高いこと、及び本棚に対応するオブジェクトに接する可能性が低いことを表している。
【0077】
(3)画像認識部
画像認識部140は、特徴データ記憶部130により記憶されている上述した特徴データを用いて、入力画像に映っている物体がそれぞれどのオブジェクトに対応するかを特定する。
【0078】
図9は、画像認識部140によるオブジェクト認識処理の流れの一例を示すフローチャートである。図9を参照すると、まず、画像認識部140は、撮像部102から入力画像を取得する(ステップS212)。次に、画像認識部140は、入力画像に含まれる部分画像と、特徴データに含まれる各オブジェクトの1つ以上の特徴点のパッチとを照合し、入力画像に含まれる特徴点を抽出する(ステップS214)。なお、画像認識部140によるオブジェクト認識処理に用いられる特徴点と、自己位置検出部120による自己位置検出処理に用いられる特徴点とは、必ずしも同じでなくてもよい。但し、双方の処理で用いられる特徴点が共通している場合には、画像認識部140は、自己位置検出部120による特徴点の追跡結果を再利用してもよい。
【0079】
次に、画像認識部140は、特徴点の抽出結果に基づいて、入力画像に映っているオブジェクトを特定する(ステップS216)。例えば、画像認識部140は、ある領域内で1つのオブジェクトに属す特徴点が高い密度で抽出された場合には、当該領域にそのオブジェクトが映っていると認識し得る。そして、画像認識部140は、特定したオブジェクトのオブジェクト名称(又は識別子)及びそのオブジェクトに属す特徴点の撮像面上の位置を、環境マップ構築部150へ出力する(ステップS218)。
【0080】
(4)環境マップ構築部
環境マップ構築部150は、自己位置検出部120から入力されるカメラの位置及び姿勢、画像認識部140から入力される特徴点の撮像面上の位置、及び特徴データ記憶部130に記憶されている特徴データを用いて、環境マップを生成する。本明細書において、環境マップとは、実空間内に存在する1つ以上の物体の位置(及び姿勢)を表現するデータの集合である。環境マップには、例えば、物体に対応するオブジェクト名称、当該物体に属す特徴点の3次元位置、及び当該物体の形状を構成するポリゴン情報などが含まれ得る。環境マップは、例えば、画像認識部140から入力される特徴点の撮像面上の位置から、上述したピンホールモデルに従って各特徴点の3次元位置を求めることにより構築され得る。
【0081】
式(11)に示したピンホールモデルの関係式を変形すると、特徴点FPの世界座標系における3次元位置pは、次式により求められる。
【0082】
【数12】

(14)

【0083】
ここで、dはカメラと各特徴点との間の世界座標系における距離を表す。環境マップ構築部150は、かかる距離dを、オブジェクトごとに少なくとも4つの特徴点の撮像面上の位置、及び当該特徴点間の距離に基づいて、算出することができる。特徴点間の距離は、図8を用いて説明した特徴データに含まれる3次元形状データFD14として、予め特徴データ記憶部130により記憶されている。なお、式(14)における距離dの算出処理については、上記特許文献1において詳しく説明されている。
【0084】
距離dが算出されると、式(14)における右辺の残りの変数は、自己位置検出部120から入力されるカメラの位置及び姿勢、並びに画像認識部140から入力される特徴点の撮像面上の位置であり、いずれも既知となる。そこで、環境マップ構築部150は、式(14)に従って、画像認識部140から入力される各特徴点について、世界座標系における3次元位置を計算する。そして、環境マップ構築部150は、算出した特徴点ごとの3次元位置に応じて最新の環境マップを構築し、構築した環境マップを環境マップ記憶部152に記憶させる。なお、このとき、環境マップ構築部150は、図8を用いて説明した特徴データに含まれるオントロジーデータFD15を用いて、環境マップのデータの正確性を向上させてもよい。
【0085】
環境マップ記憶部152は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、環境マップ構築部150により構築される環境マップを記憶する。
【0086】
[2−3.出力画像生成部]
出力画像生成部180は、環境マップに基づいて、入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置に重畳表示データを設定することで重畳表示画像を生成して、入力画像に重畳表示画像を重畳して出力画像を生成する。図3に示しているように、本実施形態において、出力画像生成部180は、重畳表示データ記憶部181、処理実行部182、操作体認識部183、重畳表示画像生成部184、重畳表示位置決定部186、及び画像重畳部188を含む。
【0087】
図10Aは、撮像装置を装着したユーザが正面を向いているときに画像処理装置100によって生成される出力画像の一例を示す図である。図10Bは、ユーザが下を向いたときに生成される出力画像の一例を示す図である。図10Cは、1階層目の項目選択によって生成される出力画像の一例を示す図である。図10Dは、2階層目の項目が選択される直前の出力画像の一例を示す図である。図10Eは、2階層目の項目選択によって生成される出力画像の一例を示す図である。図10A〜図10Eを用いて、出力画像生成部180を構成する各ブロックの機能について説明する。
【0088】
(1)重畳表示データ記憶部
重畳表示データ記憶部181は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、入力画像に重畳される画像のもとになる重畳表示データと重畳表示データを構成する項目の位置である項目位置とを記憶している。重畳表示データ記憶部181によって記憶されている各種データの構成例については、図11を参照して後述する。
【0089】
(2)重畳表示位置決定部
重畳表示位置決定部186は、環境マップ記憶部152により記憶されている環境マップに基づいて、入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定する。重畳表示位置決定部186は、所定の平面または曲面を有する物体の位置として、例えば、略水平方向に広がる平面を有する物体の位置を決定する。図10Aに示すように、本実施形態では、重畳表示位置決定部186が、略水平方向に広がる平面を有する物体の位置として、床面F0の位置を決定することとするが、略水平方向に広がる平面を有する物体はこれに限定されるものではなく、テーブル面や、階段などであってもよい。なお、図10Aに示した出力画像Imaには、略水平方向に広がる平面の一例としての床面F0が境界B0を境目として広がっている。重畳表示位置決定部186は、決定した位置を、重畳表示画像生成部184へ出力する。
【0090】
(3)重畳表示画像生成部
重畳表示画像生成部184は、重畳表示位置決定部186により決定された物体の位置に重畳表示データを設定することで重畳表示画像を生成する。重畳表示画像生成部184は、例えば、重畳表示位置決定部186によって決定された物体の位置が床面F0の位置である場合に、重畳表示画像生成部184がその床面F0の位置に重畳表示データを設定することで重畳表示画像を生成する。重畳表示画像生成部184によって生成された重畳表示画像は、出力画像の生成に使用されるため、重畳表示画像生成部184は、生成した重畳表示画像を画像重畳部188へ出力する。
【0091】
(4)画像重畳部
画像重畳部188は、入力画像に重畳表示画像を重畳して出力画像を生成する。図10Bに示した出力画像Imbは、「メール」「ナビ」「ゲーム」などの画像が含まれた重畳表示画像を床面F0の画像などが含まれる入力画像に重畳して得たものである。図10Bに示した出力画像Imbには、ユーザ自身の操作体OPの例として足部の画像が含まれている。画像重畳部188は、このように生成した出力画像を、画像処理装置100による処理の結果として、ディスプレイ装置D(又は必要に応じて他の機能部)へ出力する。ディスプレイ装置Dは、表示部の一例であり、出力画像を表示する。
【0092】
画像重畳部188は、ユーザが所定値を超える傾きで下を向いたことを検出した段階で出力画像を出力することとしてもよい。すなわち、画像重畳部188は、撮像装置を頭部に装着したユーザが所定値を超える傾きで下方向に頭部を傾けたことを、撮像装置の傾きを検出するセンサにより検出した場合に、生成した出力画像をディスプレイ装置Dに表示させればよい。また、画像重畳部188は、撮像装置を頭部に装着したユーザが所定値を超える傾きで下方向に頭部を傾けたことを、撮像装置の傾きを検出するセンサにより検出していない場合に、生成した出力画像のディスプレイ装置Dによる表示を制限すればよい。より具体的には、画像重畳部188は、撮像装置を頭部に装着したユーザが所定値を超える傾きで下方向に頭部を傾けたことを、撮像装置の傾きを検出するセンサにより検出していない場合には、生成した出力画像をディスプレイ装置Dに表示させずに入力画像をディスプレイ装置Dに表示させればよい。このようにすれば、例えば、ユーザが正面を向いており、重畳表示データを閲覧する意志がないときにまで、重畳表示データが重畳された出力画像を生成することがなくなる。
【0093】
重畳先の平面(床面F0など)がユーザの頭部から遠い場合には、重畳先の平面に重畳表示データを重畳しても重畳表示データが小さくなってしまうことが想定されるため、頂上先の平面に重畳表示データを重畳しなくてもよいことがある。したがって、例えば、画像重畳部188は、自己位置検出部120により検出された自装置の位置と重畳表示位置決定部186により決定された物体の位置との距離が所定値を超えている場合には、出力画像のディスプレイ装置Dによる表示を制限すればよい。より具体的には、画像重畳部188は、自己位置検出部120により検出された自装置の位置と重畳表示位置決定部186により決定された物体の位置との距離が所定値を超えている場合には、出力画像をディスプレイ装置Dに表示させずに入力画像をディスプレイ装置Dに表示させるなどといった制御を行えばよい。
【0094】
図11は、重畳表示データ記憶部181により記憶されているデータの一例を示す図である。図11に示すように、重畳表示データ記憶部181は、重畳表示データの他に、重畳表示データを構成する各項目の位置を示す項目位置情報と当該項目が選択された場合に実行される処理の内容を示す処理内容との組み合わせが1または複数組、重畳表示データに対応付けられる形式で記憶している。
【0095】
図12は、出力画像生成部180による出力画像生成処理の流れの一例を示すフローチャートである。図12において、出力画像生成処理が開始すると、重畳表示位置決定部186は、まず、環境マップ構築部150から環境マップを取得する(ステップS302)。そして、重畳表示位置決定部186は、表示モードへの移行操作を検出したか否かを判断する(ステップS304)。表示モードへの移行操作は、上述した例では、撮像装置を装着したユーザが下を向くことであったが、例えば、ユーザが入力装置などに対して入力を行うものであってもよい。ステップ302からステップS314までの処理は、各入力画像について(即ち毎フレーム)繰り返され得る。
【0096】
重畳表示位置決定部186は、表示モードへの移行操作を検出しない場合には(ステップS304で「No」)、ステップS314に進み、表示モードへの移行操作を検出した場合には(ステップS304で「Yes」)、取得した環境マップ内に重畳表示が可能な平面が存在するか否かを判断する(ステップS306)。取得した環境マップ内に重畳表示が可能な平面が存在するか否かを判断することとするが、上述したように、取得した環境マップ内に重畳表示が可能な曲面が存在するか否かを判断してもよい。
【0097】
重畳表示位置決定部186は、取得した環境マップ内に重畳表示が可能な平面が存在しないと判断した場合には(ステップS306で「No」)、ステップS314に進み、取得した環境マップ内に重畳表示が可能な平面が存在すると判断した場合には(ステップS306で「Yes」)、重畳表示が可能な平面の面積が閾値を超えたか否かを判断する(ステップS308)。重畳表示位置決定部186は、重畳表示が可能な平面の面積が閾値を超えたと判断した場合には(ステップS308で「No」)、ステップS314に進み、重畳表示が可能な平面の面積が閾値を超えたと判断していない場合には(ステップS308で「Yes」)、ステップS310に進む。
【0098】
ステップS310では、重畳表示画像生成部184は、重畳表示データ記憶部181から重畳表示データを取得し、画像重畳部188は、入力画像に重畳表示データを重畳することで出力画像を生成して(ステップS312)、出力画像生成処理を終了する。ステップS314では、入力画像を出力画像として(ステップS314)、出力画像生成処理を終了する。
【0099】
(5)操作体認識部
操作体認識部183は、入力画像内に写っているユーザ自身の操作体OPを認識する。本実施形態では、操作体認識部183は、ユーザ自身の操作体OPの一例として、入力画像内に写っている足部をユーザ自身の操作体OPとして認識することとするが、足部以外の部分をユーザ自身の操作体OPとして認識することとしてもよい。例えば、重畳表示位置決定部186が、略水平方向に広がる平面を有する物体の位置として、テーブル面の位置を決定する場合などには、操作体認識部183は、入力画像内に写っている手部をユーザ自身の操作体OPとして認識することとしてもよい。入力画像内にテーブル面が写っているのであれば、ユーザはそのテーブル面の上に手部を容易に乗せることができると想定されるからである。
【0100】
この他に、操作体認識部183が入力画像内に写っているユーザ自身の操作体OPを認識する手法としては様々なものが想定される。例えば、操作体認識部183は、あらかじめ登録されている靴の画像である靴登録画像と入力画像とのマッチングを行い、靴登録画像にマッチする靴が入力画像に写っていると判断した場合に、その靴をユーザ自身の操作体として認識することとしてもよい。
【0101】
また、操作体認識部183は、ユーザが撮像装置を頭部に装着している場合に、入力画像内に写っている足部が入力画像を構成する各辺のうちでユーザに最も近い辺から延びているか否かを判断してもよい。図10Bに示した出力画像Imbには、入力画像内に写っている足部(操作体OPの一例)が入力画像を構成する各辺のうちでユーザに最も近い辺(図10Bの下方向にある辺)から延びている状態が写されている。操作体認識部183は、足部がユーザに最も近い辺から延びていると判断した場合に、その足部をユーザ自身の操作体OPとして認識することとすればよい。
【0102】
また、操作体認識部183は、あらかじめ所定のマーキングを施してあるマーキング付きの靴が入力画像内に写っているか否かを判断することとしてもよい。操作体認識部183は、マーキング付きの靴が入力画像に写っていると判断した場合に、その靴をユーザ自身の操作体OPとして認識することとすればよい。
【0103】
操作体認識部183は、例えば、一般的な画像認識技術を用いてユーザ自身の操作体OPを認識すればよい。操作体認識部183は、ユーザ自身の操作体OPを認識するとユーザ自身の操作体OPの位置を把握することができる。すなわち、操作体認識部183は、ユーザ自身の操作体OPを認識した結果として、ユーザ自身の操作体OPの位置を処理実行部182へ出力する。
【0104】
(6)処理実行部
処理実行部182は、操作体認識部183により認識された操作体OPの位置に基づいて選択される項目に応じた処理を実行する。項目は、重畳表示データを構成するものであり、図10Bに示した出力画像Imbでは、「メール」「ナビ」「ゲーム」などのそれぞれが項目に相当する。項目の位置を示す項目位置情報は、図11に示すように、項目位置情報として重畳表示データ記憶部181によって記憶されており、出力画像内においては、重畳表示データの位置から項目位置情報が示す位置だけ変位させた位置に各項目が存在する。処理実行部182は、このように存在する項目の中から、操作体OPの位置と一致する項目を選択する。図10Cに示した出力画像Imcは、ユーザが自身の操作体OPを項目「ナビ」の位置に合わせると、項目「ナビ」に対応する処理として、処理実行部182によって、「最寄駅」「コンビニ」などの項目を選択するための重畳表示データを入力画像に重畳する処理が行われて得られるものである。
【0105】
処理実行部182が処理を実行するタイミングとしても、様々なものが想定される。処理実行部182は、ユーザが操作体OPとして足部を使用する場合に、足部に設けられた接触センサによって接触が検出されたか否かを判断することとしてもよい。その場合には、処理実行部182は、例えば、接触センサによって接触が検出された場合に、足部の位置に基づいて選択される項目に応じた処理を実行すればよい。
【0106】
また、処理実行部182は、操作体認識部183により認識された操作体OPが略同一の位置に所定時間止まったか否かを判断することとしてもよい。その場合には、処理実行部182は、例えば、操作体OPが略同一の位置に所定時間止まったと判断した場合に、操作体OPの位置に基づいて選択される項目に応じた処理を実行すればよい。また、処理実行部182は、操作体認識部183により認識された操作体OPが項目に対応して設けられた所定領域に存在するか否かを判断することとしてもよい。その場合には、処理実行部182は、例えば、操作体OPが所定領域に存在すると判断した場合に、その所定領域に対応する項目に応じた処理を実行すればよい。
【0107】
図10Bに示した出力画像Imbには、1階層目の重畳表示データ(「メール」「ナビ」「ゲーム」などの項目を含むもの)が重畳され、図10Cに示した出力画像Imcには、2階層目の重畳表示データ(「コンビニ」「最寄駅」などの項目を含むもの)が重畳されている。このように、重畳表示データは、階層的に入力画像に重畳されることとしてもよい。その場合には、重畳表示データ記憶部181は、重畳表示データに続いて表示される他の重畳表示データを記憶しており、重畳表示画像生成部184は、処理実行部182により項目が選択されると他の重畳表示データをさらに設定することで新たな重畳表示画像を生成する。そして、画像重畳部188は、処理実行部182により項目が選択されると新たな重畳表示画像に他の重畳表示データをさらに重畳して新たな出力画像を生成する。
【0108】
図10Dに示した出力画像Imdは、ユーザが自身の操作体OPを項目「最寄駅」の位置に合わせると、項目「最寄駅」に対応する処理として、処理実行部182によって「最寄駅」までのルートを検索するためのアプリケーションを実行する処理が行われて得られるものである。図10Eに示した出力画像Imeは、検索結果の例を示すものである。
【0109】
その他、重畳表示データを構成する項目がすべて出力画像に収まらない場合も想定される。そのような場合には、重畳表示データの一部を出力画像に重畳し、ユーザが略水平方向に頭部を回転させた場合に、重畳表示データの続きを出力画像に重畳するようにしてもよい。すなわち、例えば、重畳表示画像生成部184は、撮像装置を頭部に装着したユーザが略水平方向に頭部を回転させたことを、撮像装置の回転を検出するセンサにより検出した場合には、当該回転の度合いに応じて重畳表示データの設定位置を変更すればよい。これによって、重畳表示画像生成部184は、重畳表示画像に設定される重畳表示データを移動させることができる。
【0110】
図13は、出力画像生成部180による項目選択処理の流れの一例を示すフローチャートである。図13において、項目選択処理が開始すると、操作体認識部183は、まず、操作体OPを認識する(ステップS402)。そして、操作体認識部183は、その操作体OPがユーザ自身の操作体OPか否かを判断する(ステップS404)。ステップ402からステップS410までの処理は、各入力画像について(即ち毎フレーム)繰り返され得る。
【0111】
操作体認識部183は、認識した操作体OPがユーザ自身の操作体OPか否かを判断する(ステップS404)。操作体認識部183は、認識した操作体OPがユーザ自身の操作体OPではないと判断した場合には(ステップS404で「No」)、ステップS402に戻る。操作体認識部183は、認識した操作体OPがユーザ自身の操作体OPであると判断した場合には(ステップS404で「Yes」)、操作体OPの位置を特定する(ステップS406)。
【0112】
続いて、処理実行部182は、操作体OPによる項目の選択操作が行われたか否かを判断する(ステップS408)。処理実行部182は、操作体OPによる項目の選択操作が行われていないと判断した場合には(ステップS408で「No」)、ステップS406に戻る。処理実行部182は、操作体OPによる項目の選択操作が行われたと判断した場合には(ステップS408で「Yes」)、選択された項目に対応する処理を実行し(ステップS410)、項目選択処理を終了する。
【0113】
[2−4.第1の実施形態のまとめ]
本実施形態に係る画像処理装置100によれば、実空間内に存在する物体の3次元位置を表現する環境マップに基づいて入力画像の適切な位置に重畳表示データが重畳された出力画像が生成される。それにより、ユーザが閲覧しやすい出力画像を生成することが可能となる。
【0114】
また、本実施形態によれば、ユーザ自身の操作体OPの位置を認識して、認識した位置に基づいて、入力画像に重畳されている重畳表示データを構成する項目を選択することができる。それにより、撮影画像に対してAR技術を用いて加工を施してHMDによって表示する形態においてユーザによる操作の入力を簡便化することが可能となる。
【0115】
<3.第2の実施形態>
第1の実施形態では、実空間内の壁面及び床面もオブジェクトとして認識される例について説明した。これに対し、壁面又は床面に対応する特徴データが予め定義されていない場合には、壁面又は床面が環境マップに含まれないため、消去した物体の背後に表示すべき適切な画素値を構成できない可能性がある。その場合、追加的に壁面又は床面を認識し、その認識結果に応じて出力画像を生成するのが好適である。そこで、本節では、本発明の第2の実施形態として、壁面又は床面が環境マップに含まれない場合に追加的に壁面又は床面を認識することのできる画像処理装置の構成の一例について説明する。
【0116】
図14は、第2の実施形態に係る画像処理装置200の構成の一例を示すブロック図である。図14を参照すると、画像処理装置200は、撮像部102、環境マップ生成部210、及び出力画像生成部280を備える。
【0117】
[3−1.環境マップ生成部]
本実施形態において、環境マップ生成部210は、自己位置検出部120、特徴データ記憶部230、画像認識部140、環境マップ構築部150、及び環境マップ記憶部152を含む。
【0118】
(1)特徴データ記憶部
特徴データ記憶部230は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶している。本実施形態において、特徴データは、図8に例示したデータの他に、各オブジェクトのポリゴンを構成する頂点がそれぞれ床面又は壁面と接する可能性が高いか低いかを示す追加的なデータを含む。図15は、そのような特徴データの構成の一例について説明するための説明図である。
【0119】
図15を参照すると、一例としての特徴データFD2は、オブジェクト名称FD21、6方向から撮影した画像データFD22、パッチデータDF23、3次元形状データFD24、オントロジーデータFD25、及び追加データFD26を含む。
【0120】
追加データFD26は、3次元形状データFD24に含まれるポリゴン情報により定義される各オブジェクトのポリゴンの頂点ごとに、当該頂点が床面に接する可能性が高いか否か、及び当該頂点が壁面に接する可能性が高いか否か、を示す2つのフラグを有する。例えば、図15の例において、追加データFD26は、特徴データFD2に対応するオブジェクトのポリゴンの頂点Aが、床面に接する可能性は高く、壁面に接する可能性は低いことを示している。また、追加データFD26は、特徴データFD2に対応するオブジェクトのポリゴンの頂点Bが、床面に接する可能性は低く、壁面に接する可能性は高いことを示している。なお、これらポリゴンの頂点は、自己位置検出部120又は画像認識部140による上述した処理に使用される特徴点であってもよく、当該特徴点ではなくてもよい。
【0121】
図16は、図15に示した特徴データに関連するポリゴンの例について説明するための説明図である。図16を参照すると、3つの物体Obj21、Obj22及びObj23が示されている。このうち、物体Obj21はイスを表している。そして、物体Obj21に対応するポリゴンの頂点のうち、イスの脚の部分の6つの頂点は、床面に接する可能性が高い。また、物体Obj22はカレンダーを表している。そして、物体Obj22に対応するポリゴンの頂点のうち、8つの頂点は、壁面に接する可能性が高い。また、物体Obj23はタンスを表している。そして、物体Obj23に対応するポリゴンの頂点のうち、タンスの底面に位置する4つの頂点は、床面に接する可能性が高い。また、物体Obj23に対応するポリゴンの頂点のうち、タンスの背面に位置する4つの頂点は、壁面に接する可能性が高い。図15に例示した追加データFD26は、このような各頂点の属性を定義する。
【0122】
本実施形態において、環境マップ生成部210の特徴データ記憶部230は、上述した追加データを含む特徴データを記憶しており、当該追加データを位置推定部281からの要求に応じて出力する。
【0123】
[3−2.出力画像生成部]
図14に示しているように、本実施形態において、出力画像生成部280は、位置推定部281、重畳表示データ記憶部181、処理実行部182、操作体認識部183、重畳表示画像生成部184、重畳表示位置決定部186、及び画像重畳部188を含む。
【0124】
(1)位置推定部
位置推定部281は、環境マップにより表現される物体の表面上の点の位置及び上述した特徴データに基づいて、実空間の床面又は壁面の位置を推定する。本実施形態において、物体の表面上の点とは、上述した各物体に対応するポリゴンの頂点であってよい。
【0125】
より具体的には、位置推定部281は、例えば、環境マップ構築部150から入力される環境マップに含まれるオブジェクトのポリゴンの頂点群のうち、上述した特徴データにより床面と接する可能性が高いことが示されている頂点群を抽出する。そして、位置推定部281は、抽出した頂点群の世界座標系における3次元位置に基づいて、床面に相当する平面を推定する。位置推定部281は、例えば、公知のハフ変換の手法を用いて、頂点群の3次元位置からそれら頂点群を含み得る尤もらしい平面を推定することができる。
【0126】
同様に、位置推定部281は、例えば、環境マップ構築部150から入力される環境マップに含まれるオブジェクトのポリゴンの頂点群のうち、上述した特徴データにより壁面と接する可能性が高いことが示されている頂点群を抽出する。そして、位置推定部281は、抽出した頂点群の世界座標系における3次元位置に基づいて、壁面に相当する平面を推定する。なお、実空間内に2つ以上の壁面が存在する可能性がある場合には、位置推定部281は、頂点群をその3次元位置に応じて2つ以上の集合に分けた上で、各集合について壁面に相当する平面を推定してもよい。
【0127】
位置推定部281は、このように推定した床面及び/又は壁面の位置を、重畳表示位置決定部186へ出力する。
【0128】
[3−3.第2の実施形態のまとめ]
本実施形態に係る画像処理装置200によれば、実空間内に存在する物体の3次元位置を表現する環境マップに基づいて重畳表示データが重畳された出力画像が生成される。その際、環境マップに含まれる物体の表面上の点のうち、床面又は壁面に接する可能性の高い点の位置に基づいて、床面又は壁面の位置が推定される。また、消去すべき物体の背後の床面又は壁面のテクスチャは、入力画像のうち床面又は壁面が映っていると推定される領域の画像に応じて選択され得る。そのため、壁面又は床面が環境マップに含まれない場合であっても、消去した物体の背後に空白部分の無い適切な出力画像を生成することができる。
【0129】
<4.ハードウェア構成>
なお、上述した第1〜第2の実施形態に係る一連の処理をハードウェアで実現するかソフトウェアで実現するかは問わない。一連の処理又はその一部をソフトウェアで実行させる場合には、ソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれたコンピュータ、又は例えば図17に示した汎用コンピュータなどを用いて実行される。
【0130】
図17において、CPU(Central Processing Unit)902は、汎用コンピュータの動作全般を制御する。ROM(Read Only Memory)904には、一連の処理の一部又は全部を記述したプログラム又はデータが格納される。RAM(Random Access Memory)906には、処理の実行時にCPU902により用いられるプログラムやデータなどが一時的に記憶される。
【0131】
CPU902、ROM904、及びRAM906は、バス910を介して相互に接続される。バス910にはさらに、入出力インタフェース912が接続される。
【0132】
入出力インタフェース912は、CPU902、ROM904、及びRAM906と、入力装置920、表示装置922、記憶装置924、撮像装置926、及びドライブ930とを接続するためのインタフェースである。
【0133】
入力装置920は、例えばボタン、スイッチ、レバー、マウスやキーボードなどの入力インタフェースを介して、ユーザからの指示や情報入力を受け付ける。ただし、撮像装置926が存在すれば入力装置920は存在しなくてもよい。表示装置922は、例えばCRT(Cathode Ray Tube)、液晶ディスプレイ、OLED(Organic Light Emitting Diode)などを用いて構成され、その画面上に画像を表示させる。上記した実施形態においては、HMDが備える表示部が表示装置922に相当する。
【0134】
記憶装置924は、例えばハードディスクドライブ又は半導体メモリなどにより構成され、プログラムやデータを記憶する。撮像装置926は、上述した撮像部102のハードウェアに相当し、CCD又はCMOSなどの撮像素子を用いて、実空間を撮影する。ドライブ930は、必要に応じて汎用コンピュータに設けられ、例えばドライブ930にはリムーバブルメディア932が装着される。
【0135】
第1〜第2の実施形態に係る一連の処理をソフトウェアで実行する場合には、例えば図17に示したROM904、記憶装置924、又はリムーバブルメディア932に格納されたプログラムが、実行時にRAM906に読み込まれ、CPU902によって実行される。
【0136】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0137】
100,200 画像処理装置
102 撮像部
110,210 環境マップ生成部
120 自己位置検出部
130,230 特徴データ記憶部
140 画像認識部
150 環境マップ構築部
180,280 出力画像生成部
181 重畳表示データ記憶部
182 処理実行部
183 操作体認識部
184 重畳表示画像生成部
186 重畳表示位置決定部
188 画像重畳部
281 位置推定部


【特許請求の範囲】
【請求項1】
物体の外観の特徴を表す特徴データを記憶している特徴データ記憶部と、
ユーザの視野内に重畳される画像のもとになる重畳表示データを記憶している重畳表示データ記憶部と、
撮像装置を用いて実空間を撮影することにより得られる入力画像、及び前記特徴データ記憶部により記憶されている前記特徴データに基づいて、前記実空間内に存在する1つ以上の物体の位置を表現する環境マップを生成する環境マップ生成部と、
前記環境マップに基づいて、前記入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定する重畳表示位置決定部と、
前記重畳表示位置決定部により決定された物体の位置に前記重畳表示データを設定することで重畳表示画像を生成する重畳表示画像生成部と、
前記ユーザの視野内に前記重畳表示画像を重畳して表示部に表示させる画像重畳部と、を備える、画像処理装置。
【請求項2】
前記画像重畳部は、
前記撮像装置を頭部に装着したユーザが所定値を超える傾きで下方向に前記頭部を傾けたことを、前記撮像装置の傾きを検出するセンサにより検出した場合には、前記表示部に前記重畳表示画像を表示させ、前記撮像装置の傾きを検出するセンサにより検出していない場合には、前記表示部による前記重畳表示画像の表示を制限する、
請求項1に記載の画像処理装置。
【請求項3】
前記画像処理装置は、
前記入力画像及び前記特徴データに基づいて自装置の位置を動的に検出する自己位置検出部、をさらに備え、
前記画像重畳部は、
前記自己位置検出部により検出された自装置の位置と前記重畳表示位置決定部により決定された物体の位置との距離が所定値を超えている場合には、前記表示部による前記重畳表示画像の表示を制限する、
請求項2に記載の画像処理装置。
【請求項4】
前記重畳表示位置決定部は、
前記所定の平面または曲面を有する物体の位置として、略水平方向に広がる平面を有する物体の位置を決定する、
請求項1に記載の画像処理装置。
【請求項5】
前記重畳表示位置決定部は、
略水平方向に広がる平面を有する物体の位置として、床面、テーブル面、及び階段のうち少なくともいずれか1つの位置を決定する、
請求項4に記載の画像処理装置。
【請求項6】
前記重畳表示画像生成部は、
前記撮像装置を頭部に装着したユーザが略水平方向に前記頭部を回転させたことを、前記撮像装置の回転を検出するセンサにより検出した場合には、当該回転の度合いに応じて前記重畳表示データの設定位置を変更することで前記重畳表示画像に設定される前記重畳表示データを移動させる、
請求項1に記載の画像処理装置。
【請求項7】
前記画像処理装置は、
前記環境マップにより表現される物体の表面上の点の位置に基づいて、前記実空間の床面又は壁面の位置を推定する位置推定部、をさらに備え、
前記重畳表示位置決定部は、
前記位置推定部により推定される前記実空間の床面又は壁面の位置にさらに基づいて、床面の位置を前記物体の位置として決定する、
請求項1に記載の画像処理装置。
【請求項8】
前記特徴データは、
各物体の表面上の1つ以上の点について当該点が前記実空間の床面又は壁面と接する可能性が高いか否かを表すデータを含み、
前記位置推定部は、
前記特徴データにさらに基づいて、前記実空間の床面又は壁面の位置を推定する、
請求項7に記載の画像処理装置。
【請求項9】
物体の外観の特徴を表す特徴データを記憶している特徴データ記憶部と、ユーザの視野内に重畳される画像のもとになる重畳表示データを記憶している重畳表示データ記憶部と、環境マップ生成部と、重畳表示位置決定部と、重畳表示画像生成部と、画像重畳部と、を備える、画像処理装置の前記環境マップ生成部により、撮像装置を用いて実空間を撮影することにより得られる入力画像、及び前記特徴データ記憶部により記憶されている前記特徴データに基づいて、前記実空間内に存在する1つ以上の物体の位置を表現する環境マップを生成するステップと、
前記重畳表示位置決定部により、前記環境マップに基づいて、前記入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定するステップと、
前記重畳表示画像生成部により、前記重畳表示位置決定部により決定された物体の位置に前記重畳表示データを設定することで重畳表示画像を生成するステップと、
前記画像重畳部により、前記ユーザの視野内に前記重畳表示画像を重畳して表示部に表示させるステップと、
を含む、画像処理方法。
【請求項10】
コンピュータを、
物体の外観の特徴を表す特徴データを記憶している特徴データ記憶部と、
ユーザの視野内に重畳される画像のもとになる重畳表示データを記憶している重畳表示データ記憶部と、
撮像装置を用いて実空間を撮影することにより得られる入力画像、及び前記特徴データ記憶部により記憶されている前記特徴データに基づいて、前記実空間内に存在する1つ以上の物体の位置を表現する環境マップを生成する環境マップ生成部と、
前記環境マップに基づいて、前記入力画像内に写っている物体のうち所定の平面または曲面を有する物体の位置を決定する重畳表示位置決定部と、
前記重畳表示位置決定部により決定された物体の位置に前記重畳表示データを設定することで重畳表示画像を生成する重畳表示画像生成部と、
前記ユーザの視野内に前記重畳表示画像を重畳して表示部に表示させる画像重畳部と、
を備える、画像処理装置として機能させるためのプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図10C】
image rotate

【図10D】
image rotate

【図10E】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2011−203824(P2011−203824A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−68270(P2010−68270)
【出願日】平成22年3月24日(2010.3.24)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】