(57)【特許請求の範囲】
【請求項１】
実空間を映した入力画像を用いて生成される環境マップであって前記実空間内に存在する１つ以上の物体の位置を表現する当該環境マップに含まれる物体のうち、ユーザにより操作可能な物体を識別するための物体識別データに基づいて操作可能であると認識される少なくとも１つの候補物体から、操作すべき物体を選択する選択部、
を備え、
前記選択部は、ユーザインタフェースを介してユーザ入力が検知された時点で前記入力画像の中央又は当該中央の近傍に位置している候補物体を前記操作すべき物体として選択する、
画像処理装置。
【請求項２】
前記選択部は、複数の前記候補物体が前記入力画像の中央に位置している場合には、画面上での大きさが最も小さい前記候補物体を前記操作すべき物体として選択する、請求項１に記載の画像処理装置。
【請求項３】
前記画像処理装置は、
前記候補物体を操作するための制御コマンドを表示する第１の表示オブジェクトを、表示装置の画面上の前記候補物体の位置に付すように、前記表示装置への画像の出力を制御する制御部、をさらに備える、
請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記物体識別データは、前記実空間内に存在する前記１つ以上の物体の各々がユーザにより操作可能であるかを示すフラグを含み、
前記選択部は、前記フラグに基づいて前記候補物体を選択する、
請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記入力画像は、前記実空間を撮影する撮像装置から取得され、
前記画像処理装置は、
前記候補物体の画面上での位置をユーザに認識させるための出力画像を前記入力画像から生成し、生成した当該出力画像を表示装置へ出力する画像出力部、
をさらに備える、請求項１に記載の画像処理装置。
【請求項６】
前記出力画像内の各候補物体の位置は、前記環境マップ及び前記撮像装置の位置を表す撮像位置データに基づいて計算される、
請求項５に記載の画像処理装置。
【請求項７】
前記画像出力部は、前記画面上で各候補物体を囲む枠を、各物体の３次元的な形状を表す形状データに基づいて生成し、生成した当該枠を前記入力画像に重畳することにより前記出力画像を生成する、
請求項５又は請求項６に記載の画像処理装置。
【請求項８】
前記画像処理装置は、
前記撮像装置及び前記表示装置をさらに備え、
前記撮像装置の撮像面と前記表示装置の画面とは、互いに反対方向に向けて配置される、
請求項５〜７のいずれか１項に記載の画像処理装置。
【請求項９】
画像処理装置により実行される画像処理方法において、
実空間を映した入力画像を用いて生成される環境マップであって前記実空間内に存在する１つ以上の物体の位置を表現する当該環境マップに含まれる物体のうち、ユーザにより操作可能な物体を識別するための物体識別データに基づいて操作可能であると認識される少なくとも１つの候補物体から、操作すべき物体を選択すること、
を含み、
前記画像処理装置は、ユーザインタフェースを介してユーザ入力が検知された時点で前記入力画像の中央又は当該中央の近傍に位置している候補物体を前記操作すべき物体として選択する、
画像処理方法。
【請求項１０】
画像処理装置を制御するコンピュータを、
実空間を映した入力画像を用いて生成される環境マップであって前記実空間内に存在する１つ以上の物体の位置を表現する当該環境マップに含まれる物体のうち、ユーザにより操作可能な物体を識別するための物体識別データに基づいて操作可能であると認識される少なくとも１つの候補物体から、操作すべき物体を選択する選択部、
として機能させ、
前記選択部は、ユーザインタフェースを介してユーザ入力が検知された時点で前記入力画像の中央又は当該中央の近傍に位置している候補物体を前記操作すべき物体として選択する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、物体選択方法及びプログラムに関する。
【背景技術】
【０００２】
家庭内又はオフィス内においてユーザが操作すべき電子機器は年々増加している。また、１つの電子機器が有する機能も多様化している。そのため、これら電子機器を操作するユーザの負担は大きくなっている。そこで、１つの遠隔制御装置を用いて複数の電子機器を操作することを可能にする技術の開発が進められている。しかし、遠隔制御機能を１つの装置に集約する場合には、遠隔操作が可能な被制御機器がユーザの位置する環境内に複数存在する際に、ユーザがいずれの機器を操作しようとしているのかを特定する手段が提供されることが求められる。
【０００３】
例えば、下記特許文献１は、音声認識技術を応用し、ユーザの発する音声から遠隔制御の対象機器及び制御内容を認識する遠隔制御装置を提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３４５０２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、音声から遠隔制御の対象機器及び制御内容を認識しようとすると、同じ種類の機器が複数存在する場合に、個々の機器を互いに区別することが煩雑となる。例えば、リビングとリビングに隣接する部屋とにそれぞれテレビが存在する場合、「リビングの」「小さい方の」「テレビ」などのように修飾語を付さなければ、意図するテレビを適切に指定することができない。また、対象機器を指定する語が認識されなかったときには、ユーザが１つのテレビのスイッチをオフにしようとしたにも関わらず他の機器（他のテレビ又は他の種類の機器）のスイッチまでオフになってしまう恐れがある。
【０００６】
また、例えば、ユーザのジェスチャから遠隔制御の対象機器等を認識することも考えられるが、ジェスチャのみでは、ユーザの視線上で重なる位置にある（又は互いに近傍に位置する）複数の機器を互いに区別することが難しい。
【０００７】
そこで、本発明は、複数の電子機器を互いに区別して遠隔制御の対象として容易に選択することのできる、新規かつ改良された画像処理装置、物体選択方法及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００８】
ある実施形態によれば、実空間を映した入力画像を用いて生成される環境マップであって前記実空間内に存在する１つ以上の物体の位置を表現する当該環境マップに含まれる物体のうち、操作可能な物体を識別するための物体識別データに基づいて操作可能であると認識される少なくとも１つの物体を、ユーザによる操作の対象の候補である候補物体として選択する選択部、を含む画像処理装置が提供される。
【０００９】
また、上記入力画像は、上記実空間を撮影する撮像装置から取得され、上記画像処理装置は、上記選択部により選択された上記候補物体の画面上での位置をユーザに認識させるための出力画像を上記入力画像から生成し、生成した当該出力画像を表示装置へ出力する画像出力部、をさらに備えてもよい。
【００１０】
また、上記出力画像内の各候補物体の位置は、上記環境マップ及び上記撮像装置の位置を表す撮像位置データに基づいて計算されてもよい。
【００１１】
また、上記画像処理装置は、上記候補物体のうち操作すべき物体をユーザに指定させるためのユーザインタフェース、をさらに備えてもよい。
【００１２】
また、上記ユーザインタフェースは、上記候補物体のうちユーザ入力が検知された時に上記出力画像の中央又は当該中央の近傍に位置している物体を上記操作すべき物体として決定してもよい。
【００１３】
また、上記ユーザインタフェースは、上記候補物体のうちユーザ入力が検知された時に複数の上記候補物体が上記出力画像の中央に位置している場合には、上記出力画像内での大きさが最も小さい上記候補物体を上記操作すべき物体として決定してもよい。
【００１４】
また、上記画像出力部は、上記画面上で各候補物体を囲む枠を、各物体の３次元的な形状を表す形状データに基づいて生成し、生成した当該枠を上記入力画像に重畳することにより上記出力画像を生成してもよい。
【００１５】
また、上記画像処理装置は、上記撮像装置及び上記表示装置をさらに備え、上記撮像装置の撮像面と上記表示装置の画面とは、互いに反対方向に向けて配置されてもよい。
【００１６】
また、別の実施形態によれば、画像処理装置により実行される画像処理方法において、
実空間を映した入力画像を用いて生成される環境マップであって前記実空間内に存在する１つ以上の物体の位置を表現する当該環境マップに含まれる物体のうち、操作可能な物体を識別するための物体識別データに基づいて操作可能であると認識される少なくとも１つの物体を、ユーザによる操作の対象の候補である候補物体として選択すること、を含む画像処理方法が提供される。
【００１７】
また、別の実施形態によれば、画像処理装置を制御するコンピュータを、実空間を映した入力画像を用いて生成される環境マップであって前記実空間内に存在する１つ以上の物体の位置を表現する当該環境マップに含まれる物体のうち、操作可能な物体を識別するための物体識別データに基づいて操作可能であると認識される少なくとも１つの物体を、ユーザによる操作の対象の候補である候補物体として選択する選択部、として機能させるための、プログラムが提供される。
【発明の効果】
【００１８】
以上説明したように、本発明に係る画像処理装置、物体選択方法及びプログラムによれば、複数の電子機器を互いに区別して遠隔制御の対象として容易に選択することができる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態に係る画像処理装置の概要を説明するための模式図である。
【図２】一実施形態に係る画像処理装置の構成の一例を示すブロック図である。
【図３】一実施形態に係る環境マップ生成部の詳細な構成の一例を示すブロック図である。
【図４】一実施形態に係る自己位置検出処理の流れの一例を示すフローチャートである。
【図５】オブジェクト上に設定される特徴点について説明するための説明図である。
【図６】特徴点の追加について説明するための説明図である。
【図７】予測モデルの一例について説明するための説明図である。
【図８】特徴データの構成の一例について説明するための説明図である。
【図９】一実施形態に係るオブジェクト認識処理の流れの一例を示すフローチャートである。
【図１０】物体識別データの構成の一例について説明するための説明図である。
【図１１】一実施形態に係る機器認識処理の流れの一例を示すフローチャートである。
【図１２】一実施形態に係る候補物体選択処理の流れの一例を示すフローチャートである。
【図１３】一実施形態に係る画像出力部により生成される出力画像の一例を示す説明図である。
【図１４】一実施形態に係る画像出力部により生成される出力画像の他の例を示す説明図である。
【図１５】一実施形態に係る画像出力部により生成される出力画像のまた別の例を示す説明図である。
【図１６】一実施形態に係る画像出力部により生成される出力画像のさらに別の例を示す説明図である。
【図１７】一実施形態に係る画像出力部により生成される出力画像のさらに別の例を示す説明図である。
【図１８】一実施形態に係る画像出力部により生成される出力画像のさらに別の例を示す説明図である。
【図１９】汎用コンピュータのハードウェア構成の一例を示すブロック図である。
【図２０】一変形例に係る画像処理装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２１】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．一実施形態に係る画像処理装置の概要
２．一実施形態に係る画像処理装置の構成例
２−１．撮像部
２−２．環境マップ生成部
２−３．環境マップ記憶部
２−４．データ記憶部
２−５．機器認識部
２−６．選択部
２−７．画像出力部
２−８．ユーザインタフェース
２−９．送信部
３．ハードウェア構成
４．まとめ
５．変形例
【００２２】
＜１．一実施形態に係る画像処理装置の概要＞
図１は、本発明の一実施形態に係る画像処理装置の概要を説明するための模式図である。図１には、本発明の一実施形態に係る画像処理装置１００を持つユーザが存在する環境１が示されている。
【００２３】
図１を参照すると、環境１の内部には、物体１０ａ、１０ｂ、１０ｃ、１０ｄ、１０ｅ及び１０ｆを含む複数の物体が存在している。このうち、物体１０ａはテレビ、物体１０ｂはスピーカ、物体１０ｃはＤＶＤプレーヤ、物体１０ｄはプリンタ、物体１０ｅは携帯情報端末、物体１０ｆはテーブルである。これら物体のうち、例えば、物体１０ａ、１０ｂ、１０ｃ及び１０ｄは、遠隔制御され得る被制御機器である。一方、例えば、物体１０ｅ及び１０ｆは、遠隔制御され得ない物体である。
【００２４】
画像処理装置１００は、このような環境１を撮像装置を用いて撮影し、一連の入力画像を取得する。そして、画像処理装置１００は、取得した入力画像に対して後に説明する一実施形態に係る画像処理を実行した後、当該画像処理の結果として出力される画像を画像処理装置１００の画面上に表示する。かかる出力画像は、ユーザにより操作される候補となる候補物体の画面上での位置をユーザに認識させることのできる画像である。
【００２５】
さらに、画像処理装置１００は、好適には、遠隔制御装置としての機能をも有する。画像処理装置１００が遠隔制御装置として機能する際には、ユーザは、画面上に表示される上述した出力画像に基づいて、操作すべき物体を指定することができる。
【００２６】
なお、図１では画像処理装置１００の一例として携帯電話端末を示しているが、画像処理装置１００はかかる例に限定されない。例えば、画像処理装置１００は、撮像装置を備えた携帯情報端末、ゲーム端末、デジタルビデオカメラ又はその他の種類の電子機器であってよい。また、画像処理装置１００は、例えば、視覚としてのカメラを有するロボットなどであってもよい。このような画像処理装置１００の構成の一例について、次節より具体的に説明する。
【００２７】
＜２．一実施形態に係る画像処理装置の構成例＞
図２は、本発明の一実施形態に係る画像処理装置１００の構成の一例を示すブロック図である。図２を参照すると、画像処理装置１００は、撮像部１０２、環境マップ生成部１１０、環境マップ記憶部１２０、データ記憶部１３０、機器認識部１４０、選択部１６０、画像出力部１７０、ユーザインタフェース１８０、及び送信部１９０を備える。
【００２８】
［２−１．撮像部］
撮像部１０２は、例えば、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を有する撮像装置として実現され得る。撮像部１０２は、図１に例示した環境１などの実空間を撮影することにより生成した画像を、入力画像として、環境マップ生成部１１０、機器認識部１４０、及び画像出力部１７０へ出力する。
【００２９】
［２−２．環境マップ生成部］
環境マップ生成部１１０は、撮像部１０２から入力される入力画像、及びデータ記憶部１３０により記憶されている後述するオブジェクトの特徴データに基づいて、実空間内に存在する１つ以上の物体の位置等を表現する環境マップを生成する。
【００３０】
図３は、本実施形態に係る環境マップ生成部の詳細な構成の一例を示すブロック図である。図３を参照すると、環境マップ生成部１１０は、自己位置検出部１１２、画像認識部１１４、及び構築部１１６を含む。
【００３１】
（１）自己位置検出部
自己位置検出部１１２は、撮像部１０２から入力される入力画像、及びデータ記憶部１３０により記憶されている特徴データに基づいて、入力画像を撮影した撮像装置の位置を動的に検出する。例えば、自己位置検出部１１２は、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）に記載されているＳＬＡＭ技術を応用することにより、撮像装置が単眼カメラを有する場合にも、当該カメラの位置及び姿勢、並びにカメラの撮像面における特徴点の位置を、フレームごとに動的に決定することができる。
【００３２】
まず、図４を用いて、自己位置検出部１１２によるＳＬＡＭ技術を応用した自己位置検出処理の全体的な流れについて説明する。次に、図５〜図７を用いて、自己位置検出処理の詳細を説明する。
【００３３】
図４は、自己位置検出部１１２によるＳＬＡＭ技術を応用した自己位置検出処理の流れの一例を示すフローチャートである。図４において、自己位置検出処理が開始すると、自己位置検出部１１２は、まず、状態変数を初期化する（ステップＳ１０２）。本実施形態において、状態変数とは、カメラの位置及び姿勢（回転角）、当該カメラの移動速度及び角速度、並びに１つ以上の特徴点の位置を要素として含むベクトルである。そして、自己位置検出部１１２は、撮像部１０２から入力画像を順次取得する（ステップＳ１１２）。ステップ１１２からステップＳ１１８までの処理は、各入力画像について（即ち毎フレーム）繰り返され得る。
【００３４】
ステップＳ１１４では、自己位置検出部１１２は、入力画像に映る特徴点を追跡する。例えば、自己位置検出部１１２は、データ記憶部１３０により予め記憶されている特徴点ごとのパッチ（例えば特徴点を中心とする３×３＝９画素の小画像）を入力画像から検出する。ここで検出されたパッチの位置、即ち特徴点の位置は、後の状態変数の更新の際に用いられる。
【００３５】
ステップＳ１１６では、自己位置検出部１１２は、所定の予測モデルに基づいて、例えば１フレーム後の状態変数の予測値を生成する。また、ステップＳ１１８では、自己位置検出部１１２は、ステップＳ１１６において生成した状態変数の予測値と、ステップＳ１１４において検出した特徴点の位置に応じた観測値とを用いて、状態変数を更新する。自己位置検出部１１２は、ステップＳ１１６及びＳ１１８における処理を、拡張カルマンフィルタの原理に基づいて実行する。
【００３６】
このような処理の結果として、毎フレーム更新される状態変数の値が出力される。以下、特徴点の追跡（ステップＳ１１４）、状態変数の予測（ステップＳ１１６）、状態変数の更新（ステップＳ１１８）の各処理の内容について、より具体的に説明する。
【００３７】
（１−１）特徴点の追跡
本実施形態において、データ記憶部１３０は、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶している。特徴データには、例えば、各オブジェクトの外観の特徴を表す１つ以上の特徴点についての小画像、即ちパッチ（Patch）が含まれる。パッチとは、例えば、特徴点を中心とする３×３＝９画素よりなる小画像であってよい。
【００３８】
図５は、オブジェクトの２つの例、並びに各オブジェクト上に設定される特徴点（ＦＰ：Feature  Point）及びパッチの例を示している。図５の左のオブジェクトは、テレビを表すオブジェクトである（５ａ参照）。当該オブジェクト上には、特徴点ＦＰ１を含む複数の特徴点が設定されている。さらに、特徴点ＦＰ１と関連付けて、パッチＰｔｈ１が定義されている。一方、図５の右のオブジェクトは、丸型テーブルを表すオブジェクトである（５ｂ参照）。当該オブジェクト上には、特徴点ＦＰ２を含む複数の特徴点が設定されている。さらに、特徴点ＦＰ２と関連付けて、パッチＰｔｈ２が定義されている。
【００３９】
自己位置検出部１１２は、撮像部１０２から入力画像を取得すると、入力画像に含まれる部分画像と、データ記憶部１３０に予め記憶されている図５に例示した特徴点ごとのパッチとを照合する。そして、自己位置検出部１１２は、照合の結果として、入力画像に含まれる特徴点の位置（例えば検出されたパッチの中心画素の位置）を特定する。
【００４０】
なお、特徴点の追跡（図４のステップＳ１１４）において、追跡される全ての特徴点に関するデータが予めデータ記憶部１３０に記憶されていなくてもよい。例えば、図６の例では、時刻Ｔ＝ｔ−１において、３つの特徴点が入力画像内で検出されている（６ａ参照）。次に、時刻Ｔ＝ｔにおいてカメラの位置又は姿勢が変化すると、時刻Ｔ＝ｔ−１において入力画像に映っていた３つの特徴点のうち１つのみが入力画像内に映っている。この場合に、自己位置検出部１１２は、入力画像内で特徴的な画素のパターンを有する位置に新たに特徴点を設定し、その新たな特徴点を後のフレームにおける自己位置検出処理に用いてもよい。例えば、図６の例では、時刻Ｔ＝ｔにおいて、５つの新たな特徴点がオブジェクト上に設定されている（６ｂ参照）。かかる点は、ＳＬＡＭ技術の１つの特長であり、それにより、予め全ての特徴点を設定しておくコストを削減できると共に、追加される多数の特徴点を用いて処理の精度を高めることができる。
【００４１】
（１−２）状態変数の予測
本実施形態において、自己位置検出部１１２は、拡張カルマンフィルタを適用すべき状態変数として、次式に示す状態変数Ｘを用いる。
【００４２】
【数１】
0005617246.tif 000002
【００４３】
式（１）における状態変数Ｘの第１の要素は、次式の通り、実空間に設定される座標系である世界座標系（ｘ，ｙ，ｚ）でのカメラの３次元位置を表す。
【００４４】
【数２】
0005617246.tif 000003
【００４５】
また、状態変数の第２の要素は、カメラの姿勢を表す回転行列に対応する四元数（クォータニオン）を要素として有する４次元ベクトルωである。なお、四元数の変わりにオイラー角を用いてカメラの姿勢が表されてもよい。また、状態変数の第３及び第４の要素は、カメラの移動速度及び角速度をそれぞれ表す。
【００４６】
さらに、状態変数の第５及びそれ以降の要素は、次式の通り、世界座標系での特徴点ＦＰｉ（ｉ＝１…Ｎ）の３次元位置ｐｉをそれぞれ表す。なお、上述したように、特徴点の数Ｎは、処理の間変化し得る。
【００４７】
【数３】
0005617246.tif 000004
【００４８】
自己位置検出部１１２は、ステップＳ１０２において初期化された状態変数Ｘの値、又は前フレームにおいて更新された状態変数Ｘの値に基づいて、最新のフレームについての状態変数の予測値を生成する。状態変数の予測値は、次式に示す多次元正規分布に従った拡張カルマンフィルタの状態方程式に従って生成される。
【００４９】
【数４】
0005617246.tif 000005
【００５０】
ここで、Ｆはシステムの状態遷移に関する予測モデル、ａは予測条件である。また、ｗはガウシアンノイズであり、例えばモデル近似誤差や観測誤差等を含み得る。一般的に、ガウシアンノイズｗの平均はゼロとなる。
【００５１】
図７は、本実施形態に係る予測モデルの一例について説明するための説明図である。図７を参照すると、本実施形態に係る予測モデルにおける２つの予測条件が示されている。まず、第１の条件として、特徴点の世界座標系における３次元位置は変化しないものとする。即ち、時刻Ｔにおける特徴点ＦＰｋの３次元位置をｐＴとすると、次式の関係が成立する。
【００５２】
【数５】
0005617246.tif 000006
【００５３】
次に、第２の条件として、カメラの運動は等速運動であるものとする。即ち、時刻Ｔ＝ｔ−１から時刻Ｔ＝ｔにかけてのカメラの速度及び角速度について、次式の関係が成立する。
【００５４】
【数６】
0005617246.tif 000007
【００５５】
このような予測モデル及び式（４）に示した状態方程式に基づいて、自己位置検出部１１２は、最新のフレームについての状態変数の予測値を生成する。
【００５６】
（１−３）状態変数の更新
そして、自己位置検出部１１２は、観測方程式を用いて、例えば状態変数の予測値から予測される観測情報と、特徴点の追跡結果として得られる実際の観測情報との誤差を評価する。なお、式（８）におけるνがその誤差である。
【００５７】
【数７】
0005617246.tif 000008
【００５８】
ここで、Ｈは観測モデルを表す。例えば、特徴点ＦＰｉの撮像面（ｕ−ｖ平面）上の位置を、次式のように定義する。
【００５９】
【数８】
0005617246.tif 000009
【００６０】
ここで、カメラの位置ｘ、カメラの姿勢ω、及び特徴点ＦＰｉの３次元位置ｐｉは、いずれも状態変数Ｘの要素として与えられる。そうすると、ピンホールモデルに従い、特徴点ＦＰｉの撮像面上の位置は次式を用いて導かれる。
【００６１】
【数９】
0005617246.tif 000010
【００６２】
ここで、λは正規化のためのパラメータ、Ａはカメラ内部パラメータ、Ｒωは状態変数Ｘに含まれるカメラの姿勢を表す四元数ωに対応する回転行列である。カメラ内部パラメータＡは、入力画像を撮影する撮像装置の特性に応じて、予め次式のように与えられる。
【００６３】
【数１０】
0005617246.tif 000011
【００６４】
ここで、ｆは焦点距離、θは画像軸の直交性（理想値は９０°）、ｋｕは撮像面の縦軸のスケール（世界座標系から撮像面の座標系へのスケール変化率）、ｋｖは撮像面の横軸のスケール、（ｕｏ，ｖｏ）は撮像面の中心位置である。
【００６５】
従って、式（１１）を用いて導かれる予測される観測情報、即ち各特徴点の撮像面上の位置と、図４のステップＳ１１４における特徴点の追跡結果との間の誤差を最小にする状態変数Ｘを探索することにより、尤もらしい最新の状態変数Ｘを得ることができる。
【００６６】
【数１１】
0005617246.tif 000012
【００６７】
自己位置検出部１１２は、このようにＳＬＡＭ技術を応用して動的に更新したカメラ（撮像装置）の位置ｘ及び姿勢ωを、構築部１１６及び機器認識部１４０へ出力する。
【００６８】
（２）画像認識部
画像認識部１１４は、データ記憶部１３０により記憶されている特徴データを用いて、入力画像に映っている物体がそれぞれどのオブジェクトに対応するかを特定する。そこで、まず、データ記憶部１３０により記憶されている特徴データについて説明する。
【００６９】
（２−１）特徴データ
図８は、特徴データの構成の一例について説明するための説明図である。図８を参照すると、オブジェクトの一例である物体１０ｇについての特徴データＦＤ１が示されている。特徴データＦＤ１は、オブジェクト識別子（ＩＤ：Identifier）ＦＤ１１、６方向から撮影した画像データＦＤ１２、パッチデータＤＦ１３、３次元形状データＦＤ１４、及びオントロジーデータＦＤ１５を含む。
【００７０】
オブジェクト識別子ＦＤ１１は、物体１０ｇを一意に特定するための文字列である。図８の例では、オブジェクト識別子ＦＤ１１は、“ＴＶ００”である。
【００７１】
画像データＦＤ１２は、例えば、対応するオブジェクトを前・後・左・右・上・下の６方向からそれぞれ撮影した６つの画像データを含む。パッチデータＦＤ１３は、各オブジェクト上に設定される１つ以上の特徴点ごとの、各特徴点を中心とする小画像の集合である。画像データＦＤ１２及びパッチデータＦＤ１３は、後述する画像認識部１１４によるオブジェクト認識処理のために使用され得る。また、パッチデータＦＤ１３は、前述した自己位置検出部１１２による自己位置検出処理のために使用され得る。
【００７２】
３次元形状データＦＤ１４は、対応するオブジェクトの形状を認識するためのポリゴン情報、及び特徴点の３次元的な位置情報を含む。３次元形状データＦＤ１４は、後述する構築部１１６による環境マップ構築処理、及び画像出力部１７０による出力画像生成処理のために使用され得る。
【００７３】
オントロジーデータＦＤ１５は、例えば、構築部１１６による環境マップ構築処理を支援するために使用され得るデータである。図８の例では、オントロジーデータＦＤ１５は、テレビである物体１０ｇが、テレビ台又は床に対応するオブジェクトに接する可能性が高いこと、及び本棚に対応するオブジェクトに接する可能性が低いことを表している。
【００７４】
（２−２）オブジェクト認識処理
図９は、画像認識部１１４によるオブジェクト認識処理の流れの一例を示すフローチャートである。図９を参照すると、まず、画像認識部１１４は、撮像部１０２から入力画像を取得する（ステップＳ２１２）。次に、画像認識部１１４は、入力画像に含まれる部分画像と、特徴データに含まれる各オブジェクトの１つ以上の特徴点のパッチとを照合し、入力画像に含まれる特徴点を抽出する（ステップＳ２１４）。なお、画像認識部１１４によるオブジェクト認識処理に用いられる特徴点と、自己位置検出部１１２による自己位置検出処理に用いられる特徴点とは、必ずしも同じでなくてもよい。但し、双方の処理で用いられる特徴点が共通している場合には、画像認識部１１４は、自己位置検出部１１２による特徴点の追跡結果を再利用してもよい。
【００７５】
次に、画像認識部１１４は、特徴点の抽出結果に基づいて、入力画像に映っているオブジェクトを特定する（ステップＳ２１６）。例えば、画像認識部１１４は、ある領域内で１つのオブジェクトに属す特徴点が高い密度で抽出された場合には、当該領域にそのオブジェクトが映っていると認識し得る。そして、画像認識部１１４は、特定したオブジェクトのオブジェクト識別子及びそのオブジェクトに属す特徴点の撮像面上の位置を、構築部１１６へ出力する（ステップＳ２１８）。
【００７６】
（３）環境マップ構築部
構築部１１６は、自己位置検出部１１２から入力されるカメラの位置及び姿勢、画像認識部１１４から入力される特徴点の撮像面上の位置、及びデータ記憶部１３０に記憶されている特徴データを用いて、環境マップを生成する。本明細書において、環境マップとは、実空間内に存在する１つ以上の物体の位置（及び姿勢）を表現するデータの集合である。環境マップには、例えば、物体に対応するオブジェクト識別子、当該物体に属す特徴点の３次元位置、及び当該物体の形状を構成するポリゴン情報などが含まれ得る。環境マップは、例えば、画像認識部１１４から入力される特徴点の撮像面上の位置から、上述したピンホールモデルに従って各特徴点の３次元位置を求めることにより構築され得る。
【００７７】
式（１１）に示したピンホールモデルの関係式を変形すると、特徴点ＦＰｉの世界座標系における３次元位置ｐｉは、次式により求められる。
【００７８】
【数１２】
0005617246.tif 000013
【００７９】
ここで、ｄはカメラと各特徴点との間の世界座標系における距離を表す。構築部１１６は、かかる距離ｄを、オブジェクトごとに少なくとも４つの特徴点の撮像面上の位置、及び当該特徴点間の距離に基づいて、算出することができる。特徴点間の距離は、図８を用いて説明した特徴データに含まれる３次元形状データＦＤ１４として、予めデータ記憶部１３０により記憶されている。なお、式（１４）における距離ｄの算出処理については、特開２００８−３０４２６８号公報において詳しく説明されている。
【００８０】
距離ｄが算出されると、式（１４）における右辺の残りの変数は、自己位置検出部１１２から入力されるカメラの位置及び姿勢、並びに画像認識部１１４から入力される特徴点の撮像面上の位置であり、いずれも既知となる。そこで、構築部１１６は、式（１４）に従って、画像認識部１１４から入力される各特徴点について、世界座標系における３次元位置を計算する。そして、構築部１１６は、算出した特徴点ごとの３次元位置に応じて最新の環境マップを構築し、構築した環境マップを環境マップ記憶部１２０へ出力する。なお、このとき、構築部１１６は、図８を用いて説明した特徴データに含まれるオントロジーデータＦＤ１５を用いて、環境マップのデータの正確性を向上させてもよい。
【００８１】
［２−３．環境マップ記憶部］
環境マップ記憶部１２０は、ハードディスク又は半導体メモリなどの記憶媒体を用いて、環境マップ生成部１１０の構築部１１６により構築される上述した環境マップを記憶する。さらに、環境マップ記憶部１２０は、環境マップ生成部１１０の自己位置検出部１１２により検出されるカメラの位置及び姿勢を含む撮像位置データを記憶する。なお、環境マップ記憶部１２０は、次に説明するデータ記憶部１３０と物理的に同一の記憶媒体を用いて実装されてもよい。
【００８２】
［２−４．データ記憶部］
データ記憶部１３０は、上述したように、ハードディスク又は半導体メモリなどの記憶媒体を用いて、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶する。また、データ記憶部１３０は、実空間内に存在し得る物体のうちユーザにより操作可能な物体を識別するための物体識別データを予め記憶する。物体識別データは、後に説明する機器認識部１４０による機器認識処理において使用される。
【００８３】
図１０は、物体識別データの構成の一例について説明するための説明図である。図１０を参照すると、物体識別データは、オブジェクト識別子（ＩＤ）、種別、型番、物体画像、操作可能フラグ、及びコマンドリストの６つのデータ項目を有する。
【００８４】
オブジェクト識別子は、実空間内の個々の物体に対応する各オブジェクトを一意に特定するための文字列である。かかるオブジェクト識別子を用いて、物体識別データと、図８を用いて説明した特徴データとを関連付けることができる。図１０では、それぞれオブジェクトＩＤ＝“ＴＶ０１”、“ＳＰ０１”、“ＤＶ０１”、“ＰＴ０１”、“ＰＤ０１”及び“ＴＢ０１”である６つの物体についての物体識別データが例示されている。
【００８５】
種別は、各オブジェクトの種類を表す。オブジェクト“ＴＶ０１”、“ＳＰ０１”、“ＤＶ０１”、“ＰＴ０１”、“ＰＤ０１”及び“ＴＢ０１”の種別は、それぞれ、テレビ、スピーカ、ＤＶＤプレーヤ、プリンタ、ＰＤＡ及びテーブルである。また、型番は、実空間内の個々の物体の型番を表す。
【００８６】
物体画像は、後述する機器認識部１４０による機器認識処理に用いられる画像である。物体画像は、実空間内の個々の物体を少なくとも１方向から撮影した画像であってよい。また、例えば、物体画像は、図８を用いて説明した特徴データに含まれる画像データの一部であってもよい。
【００８７】
操作可能フラグは、実空間内の個々の物体がユーザにより操作可能な物体であるか否かを識別するためのフラグである。操作可能フラグ＝“Ｙｅｓ”であれば、当該物体は操作可能である。また、操作可能フラグ＝“Ｎｏ”であれば、当該物体は操作可能でない。図１０の例では、オブジェクト“ＴＶ０１”、“ＳＰ０１”、“ＤＶ０１”及び“ＰＴ０１”の操作可能フラグは“Ｙｅｓ”である。即ち、これら物体は操作可能である。一方、オブジェクト“ＰＤ０１”及び“ＴＢ０１”の操作可能フラグは“Ｎｏ”である。即ち、これら物体は操作可能ではない。
【００８８】
コマンドリストは、操作可能な物体について各物体を操作するための制御コマンドのリストである。例えば、オブジェクト“ＴＶ０１”のコマンドリストには、“電源ＯＮ”、“電源ＯＦＦ”、“音量ＵＰ”、“音量ＤＯＷＮ”、“チャンネルＵＰ”及び“チャンネルＤＯＷＮ”の６種類の制御コマンドが含まれる。
【００８９】
［２−５．機器認識部］
機器認識部１４０は、上述した物体識別データに含まれる各物体画像を撮像部１０２から入力される入力画像と照合することにより、入力画像に映っている操作可能な物体を認識する。そして、機器認識部１４０は、操作可能な物体が存在する場合には、入力画像内の各操作可能な物体の位置、並びに自己位置検出部１１２から入力されるカメラの位置及び姿勢を用いて、式（１４）に従い、環境マップ１２０内での各操作可能な物体の３次元位置を計算する。さらに、機器認識部１４０は、計算した３次元位置に基づいて、新たに認識された操作可能な物体を環境マップに登録する。
【００９０】
図１１は、機器認識部１４０による機器認識処理の流れの一例を示す説明図である。図１１を参照すると、機器認識部１４０は、まず、撮像部１０２から入力画像を取得する（ステップＳ３０２）。次に、機器認識部１４０は、物体識別データに含まれる各物体画像を入力画像と照合することにより、入力画像に映っている操作可能な物体を認識する（ステップＳ３０４）。ここで照合に用いられる物体画像とは、物体識別データに含まれる物体画像のうち、操作可能フラグが“Ｙｅｓ”であるレコードの物体画像であってよい。次に、機器認識部１４０は、入力画像内で操作可能な物体が認識されたか否かを判定する（ステップＳ３０６）。ここで、入力画像内で操作可能な物体が認識されなかった場合には、処理は終了する。一方、入力画像内で操作可能な物体が認識された場合には、機器認識部１４０は、認識された各操作可能な物体の３次元位置を計算し、当該３次元位置に基づいて、新たに認識された操作可能な物体を環境マップに登録する（ステップＳ３０８）。
【００９１】
このように機器認識部１４０により操作可能であると認識された物体の環境マップ内の３次元位置は、環境マップ記憶部１２０により継続して保持される。即ち、一度操作可能であると認識された物体は、カメラが移動して当該物体が他の物体に隠された場合（即ち、オクルージョンを生じた場合）、又は撮像方向が変わることにより外観が変化した場合にも、環境マップ内で正確に識別され得る。
【００９２】
［２−６．選択部］
選択部１６０は、環境マップ記憶部１２０により記憶されている環境マップに含まれる物体のうち、物体識別データに基づいて操作可能であると認識された少なくとも１つの物体を、ユーザによる操作の対象の候補として選択する。選択部１６０により操作の対象の候補として選択された物体を、本明細書では、候補物体という。
【００９３】
選択部１６０は、例えば、環境マップに含まれる物体のうち、物体識別データにおいて操作可能フラグが“Ｙｅｓ”である全ての物体を候補物体として選択してもよい。その代わりに、選択部１６０は、例えば、入力画像内で複数の操作可能な物体が認識される場合には、予め設定される閾値を超えない数の一部の物体のみを候補物体として選択してもよい。一部の物体とは、例えば、画面の中央又は当該中央の近傍に位置している物体であってよい。操作可能な物体の画面内の位置は、環境マップ記憶部１２０により記憶されている環境マップ並びにカメラの位置及び姿勢に基づいて、式（１１）に従って計算され得る。なお、操作可能な物体は、画面内で通常ある程度の大きさ（例えば画素数により表される面積など）を有する。そのため、選択部１６０は、操作可能な物体の幾何学的な重心位置を当該操作可能な物体の位置とみなして、画面の中央からの距離を決定することができる。また、選択部１６０は、例えば、複数の操作可能な物体が画面の中央に位置している場合には、画面内での大きさが最も小さい物体を候補物体として選択してもよい。
【００９４】
図１２は、選択部１６０による選択処理の流れの一例を示す説明図である。図１２を参照すると、選択部１６０は、まず、環境マップに含まれる物体のうち、物体識別データにおいて操作可能フラグが“Ｙｅｓ”である物体の３次元座標を、式（１１）に従って撮像面上の２次元座標に変換する（ステップＳ４０２）。例えば、物体の形状を構成するポリゴンの頂点の３次元座標を撮像面上の２次元座標に変換することにより、各物体の撮像面上での大きさ及び重心を算出することが可能となる。次に、選択部１６０は、式（１１）により撮像面内に投影される操作可能な物体の数が予め設定される閾値よりも多いか否かを判定する（ステップＳ４０４）。予め設定される閾値とは、例えば、１であってもよく複数であってもよい。ここで、操作可能な物体の数が予め設定される閾値よりも多くない場合には、処理はステップＳ４１２へ進む。一方、操作可能な物体の数が予め設定される閾値よりも多い場合には、処理はステップＳ４０６へ進む。
【００９５】
ステップＳ４０６では、選択部１６０は、複数の操作可能な物体が撮像面の中央で重なっているか否かを判定する（ステップＳ４０６）。例えば、カメラの位置から１つの物体の位置へ伸びる直線上に他の物体が存在している場合には、複数の物体が撮像面上で重なり得る。ここで、複数の操作可能な物体が撮像面の中央で重なっている場合には、処理はステップＳ４０８へ進む。一方、複数の操作可能な物体が撮像面の中央で重なっていない場合には、処理はステップＳ４１０へ進む。
【００９６】
ステップＳ４０８では、選択部１６０は、撮像面の中央に位置する複数の操作可能な物体のうち撮像面上での大きさがより小さい物体（上記閾値が１である場合には最も小さい物体）を、候補物体として選択する（ステップＳ４０８）。また、ステップＳ４１０では、選択部１６０は、画面中央から各物体の重心までの距離が短い順に、上記閾値に相当する数の操作可能な物体を、候補物体として選択する（ステップＳ４１０）。また、ステップＳ４１２では、選択部１６０は、撮像面内に投影される操作可能な物体を、候補物体として選択する（ステップＳ４１２）。
【００９７】
その後、選択部１６０は、選択した候補物体の２次元形状を表す形状データ（ポリゴンの頂点の撮像面上での２次元座標など）をオブジェクトＩＤと関連付けて、画像出力部１７０へ出力する（ステップＳ４１４）。そして、選択部１６０による選択処理は終了する。
【００９８】
［２−７．画像出力部］
画像出力部１７０は、選択部１６０により選択された候補物体の画面上での位置をユーザに認識させるための出力画像を、撮像部１０２から入力される入力画像から生成する。そして、画像出力部１７０は、生成した当該出力画像を表示装置へ出力する。より具体的には、例えば、画像出力部１７０は、画面上で各候補物体を囲む枠を当該候補物体の２次元形状データに基づいて生成し、生成した枠を入力画像に重畳することにより、出力画像を生成する。その代わりに、画像出力部１７０は、例えば、出力画像において各候補物体に対応する画面上の領域と他の領域との間で明暗又は色の濃淡などを変化させることにより、候補物体の画面上での位置をユーザに認識させてもよい。また、画像出力部１７０は、例えば、各候補物体に当該物体の名称等を表す文字列を付すことにより、候補物体の画面上での位置をユーザに認識させてもよい。
【００９９】
図１３は、本実施形態に係る画像出力部１７０により生成される出力画像の一例を示す説明図である。図１３を参照すると、環境１を撮影した入力画像から生成された出力画像Ｉｍ１１が示されている。出力画像Ｉｍ１１において、４つの操作可能な物体１０ａ、１０ｂ、１０ｃ及び１０ｄに、各物体を囲む枠が付されている。なお、枠の形状は、円形又は矩形以外の多角形などであってもよい。図１３の例では、環境マップに含まれる物体のうち、物体識別データにおいて操作可能フラグが“Ｙｅｓ”である４つの物体が全て候補物体として選択されたことが理解され得る。このような出力画像を参照することで、ユーザは、環境１内に存在するいずれの物体を画像処理装置１００を用いて操作することができるかを知ることができる。
【０１００】
図１４は、本実施形態に係る画像出力部１７０により生成される出力画像の他の例を示す説明図である。図１４を参照すると、環境１を撮影した入力画像から生成された出力画像Ｉｍ１２が示されている。出力画像Ｉｍ１２において、画面の中央の最も近くに位置する操作可能な物体１０ａに当該物体を囲む枠が付されている。即ち、図１４の例では、環境マップに含まれる物体のうち１つの物体のみが候補物体として選択されたことが理解され得る。また、出力画像Ｉｍ１２には、画面の中央を指し示す照準１２も重畳されている。このような出力画像によれば、ユーザは、画像処理装置１００（又は撮像部１０２）を動かすことで操作対象としたい機器に照準１２を合わせて、容易に操作対象を指定することができる。
【０１０１】
図１５は、本実施形態に係る画像出力部１７０により生成される出力画像のまた別の例を示す説明図である。図１５を参照すると、環境１を撮影した入力画像から生成された出力画像Ｉｍ１３が示されている。出力画像Ｉｍ１３において、画面の中央の最も近くに位置する操作可能な物体１０ａに当該物体を囲む枠が付されている。また、出力画像Ｉｍ１３には、画面の中央を指し示す照準１２も重畳されている。さらに、出力画像Ｉｍ１３において、物体１０ａには、当該物体を操作するための制御コマンド（図１４の例では“電源ＯＮ”）を表示するコマンド欄１４が付されている。かかる制御コマンドは、例えば、図１０を用いて説明した物体識別データに含まれるコマンドリストから取得される。このような出力画像によれば、ユーザは、画像処理装置１００（又は撮像部１０２）を動かすことにより容易に操作対象を指定することができると共に、操作対象へ送信すべき制御コマンドを容易に選択することができる。
【０１０２】
図１６は、本実施形態に係る画像出力部１７０により生成される出力画像のさらに別の例を示す説明図である。図１６を参照すると、左にテンポラリ画像Ｉｍ２１、右に出力画像Ｉｍ２２が示されている。テンポラリ画像Ｉｍ２１には、操作可能な物体１０ｃ及び１０ｄが映っている。但し、テンポラリ画像Ｉｍ２１の中央において、物体１０ｃが部分的に物体１０ｄに隠されている。即ち、この場合、複数の操作可能な物体が撮像面の中央で重なっている。これに対し、出力画像Ｉｍ２２では、物体１０ｃ及び１０ｄのうち撮像面上での大きさがより小さい物体１０ｃに、候補物体であることを示す枠が付されている。このような出力画像によれば、操作可能な小さな物体が他の操作可能な物体と重なっていることにより当該小さな物体を選択し得なくなることが防がれる。
【０１０３】
図１７は、本実施形態に係る画像出力部１７０により生成される出力画像のさらに別の例を示す説明図である。図１７を参照すると、左に出力画像Ｉｍ３１、右に出力画像Ｉｍ３２が示されている。出力画像Ｉｍ３１には、操作可能な物体１０ｂが映っている。かかる物体１０ｂが操作可能であることは、機器認識部１４０による認識の結果として環境マップへ登録される。出力画像Ｉｍ３２は、その後、画像処理装置１００が環境１の内部で移動した後に生成される出力画像である。出力画像Ｉｍ３２においても、物体１０ｂが操作可能な物体として認識され、候補物体として選択されている。このように、実空間内に存在する物体の位置を表現する環境マップに基づいて候補物体を選択し表示することにより、物体の外観が撮像位置及び撮像方向に応じて変化する場合であっても、柔軟に操作対象を選択することができる。
【０１０４】
図１８は、本実施形態に係る画像出力部１７０により生成される出力画像のさらに別の例を示す説明図である。図１８を参照すると、左に出力画像Ｉｍ４１、右に出力画像Ｉｍ４２が示されている。出力画像Ｉｍ４１には、操作可能な物体１０ｄが映っている。かかる物体１０ｄが操作可能であることは、機器認識部１４０による認識の結果として環境マップへ登録される。出力画像Ｉｍ４２は、その後、画像処理装置１００が環境１の内部で移動した後に生成される出力画像である。出力画像Ｉｍ４２においては、物体１０ｂはテーブルの背後に隠れていて視認できない。しかしながら、出力画像Ｉｍ４２においても、テーブルの背後に隠れた物体１０ｄが候補物体として選択されている。このように、実空間内に存在する物体の位置を表現する環境マップに基づいて候補物体を選択し、当該物体を識別可能な枠を表示することにより、物体が他の物体の背後に隠れている場合であっても、柔軟にその隠れた物体を操作対象として選択することができる。
【０１０５】
なお、画像出力部１７０は、操作可能な物体が存在しない場合には、撮像部１０２から入力される入力画像をそのまま出力画像として表示装置へ出力してよい。また、画像出力部１７０により生成される出力画像が表示される表示装置の画面と、撮像部１０２に相当する撮像装置の撮像面とは、互いに反対方向に向けて（即ち、背面を合わせるように）配置されるのが好適である。それにより、シースルー方式のディスプレイが構成されるため、ユーザにとって、環境１内で画像処理装置１００をかざして出力画像を見ながら、操作すべき物体を指定することがさらに容易となる。
【０１０６】
［２−８．ユーザインタフェース］
ユーザインタフェース１８０は、候補物体のうち操作すべき物体をユーザに指定させるためのインタフェースを提供する。ユーザインタフェース１８０は、例えば、ボタン、タッチパネル、スイッチ又はキーパッドなどの、ユーザ入力を検出可能な任意の入力手段であってよい。例えば、図１４の出力画像Ｉｍ１２又は図１６の出力画像Ｉｍ２２などのように１つの候補物体のみが表示されている場合には、ユーザ入力（例えばボタンの押下など）が検知された時点で表示されている候補物体が、操作すべき物体であるものと決定され得る。また、図１３の出力画像Ｉｍ１１のように複数の候補物体が表示されている場合には、例えば、ユーザ入力が検知された時点で表示されている出力画像の中央又は当該中央の近傍に位置している物体が、操作すべき物体であるものとして決定され得る。また、ユーザ入力が検知された時に複数の候補物体が出力画像の中央に位置している場合には、例えば、ユーザインタフェース１８０は、出力画像内での大きさが最も小さい候補物体を操作すべき物体であるものとして決定してもよい。また、ユーザインタフェース１８０は、ＧＵＩ（graphical  User  Interface）を含んでもよい。例えば、図１５の出力画像Ｉｍ１３内のコマンド欄１４は、ＧＵＩの一種である。例えば、コマンド欄１４に表示された制御コマンドをユーザが画面上で選択した場合に、次に説明する送信部１９０は、当該制御コマンドを含む制御信号を、コマンド欄１４が付された操作対象の物体へ送信することができる。
【０１０７】
［２−９．送信部］
送信部１９０は、ユーザインタフェース１８０に対するユーザ入力に基づいて決定した操作対象の物体への制御コマンドを含む制御信号を生成し、生成した当該制御信号を送信する。制御信号は、例えば、ＩｒＤＡ（Infrared  Data  Association）に準拠した赤外線信号として送信されてもよい。その代わりに、制御信号は、例えば、無線ＬＡＮ（Local  Area  Network）などによる無線信号として送信されてもよい。かかる制御信号を操作対象の物体（被制御機器）が受信することにより、ユーザの望む操作が当該物体において行われる。
【０１０８】
＜３．ハードウェア構成＞
上述した画像処理装置１００による一連の処理をハードウェアで実現するかソフトウェアで実現するかは問わない。一連の処理又はその一部をソフトウェアで実行させる場合には、ソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれたコンピュータ、又は例えば図１９に示した汎用コンピュータなどを用いて実行される。
【０１０９】
図１９において、ＣＰＵ（Central  Processing  Unit）９０２は、汎用コンピュータの動作全般を制御する。ＲＯＭ（Read  Only  Memory）９０４には、一連の処理の一部又は全部を記述したプログラム又はデータが格納される。ＲＡＭ（Random  Access  Memory）９０６には、処理の実行時にＣＰＵ９０２により用いられるプログラムやデータなどが一時的に記憶される。
【０１１０】
ＣＰＵ９０２、ＲＯＭ９０４、及びＲＡＭ９０６は、バス９１０を介して相互に接続される。バス９１０にはさらに、入出力インタフェース９１２が接続される。
【０１１１】
入出力インタフェース９１２は、ＣＰＵ９０２、ＲＯＭ９０４、及びＲＡＭ９０６と、入力装置９２０、表示装置９２２、記憶装置９２４、撮像装置９２６、及び送信装置９３０とを接続するためのインタフェースである。
【０１１２】
入力装置９２０は、例えばボタン、タッチパネル、スイッチ又はキーパッドなどの入力手段を介して、ユーザ入力を受け付ける。表示装置９２２は、例えばＣＲＴ（Cathode  Ray  Tube）、液晶ディスプレイ、ＯＬＥＤ（Organic  Light  Emitting  Diode）などを用いて構成され、その画面上に出力画像を表示させる。
【０１１３】
記憶装置９２４は、例えばハードディスクドライブ又は半導体メモリなどにより構成され、プログラムやデータを記憶する。撮像装置９２６は、上述した撮像部１０２のハードウェアに相当し、ＣＣＤ又はＣＭＯＳなどの撮像素子を用いて、実空間を撮影する。送信装置９３０は、例えばＩｒＤＡに準拠した赤外線ポートなどにより構成され、電子機器を遠隔制御するための制御コマンドを含む制御信号を赤外線信号などに変調して送信する。
【０１１４】
＜４．まとめ＞
ここまで、図１〜図１９を用いて、本発明の一実施形態に係る画像処理装置１００について説明した。画像処理装置１００によれば、実空間内に存在する１つ以上の物体の位置を表現する環境マップに含まれる物体のうち、物体識別データに基づいて操作可能であると認識される少なくとも１つの物体が、ユーザによる操作の対象の候補である候補物体として選択される。従って、撮像装置が移動して入力画像内の物体の外観が変化した場合、又は操作すべき物体が他の物体に隠された場合などにおいても、これら物体を互いに区別して遠隔制御の対象として容易に選択することができる。また、シースルー方式のディスプレイを用いた直感的な操作対象の選択が可能となる。さらに、電子機器に個別に操作用のディスプレイを設けることなく、あるいは個別の専用の遠隔制御装置を用意することなく、１つの画像処理装置１００を用いて各電子機器を操作することが可能となる。
【０１１５】
また、出力画像を生成する際に利用される撮像装置の位置及び姿勢は、ＳＬＡＭ技術を用いて動的に検出される。それにより、撮像装置の位置及び姿勢がフレームごとに変化する場合であっても、出力画像に表示すべき候補物体を囲む枠などを、撮像装置の位置及び姿勢に応じて適切に生成することができる。
【０１１６】
＜５．変形例＞
なお、上述した画像処理装置１００の一変形例として、環境マップを構築することなく遠隔制御装置として動作可能な画像処理装置を構成することもできる。図２０は、そのような一変形例に係る画像処理装置２００の構成の一例を示すブロック図である。図２０を参照すると、画像処理装置２００は、撮像部１０２、データ記憶部１３０、機器認識部２４０、選択部２６０、画像出力部２７０、ユーザインタフェース１８０、及び送信部１９０を備える。
【０１１７】
機器認識部２４０は、データ記憶部１３０に記憶されている物体識別データに含まれる各物体画像を撮像部１０２から入力される入力画像と照合することにより、入力画像に映っている操作可能な物体を認識する。そして、機器認識部２４０は、操作可能な物体が存在する場合には、入力画像内の各操作可能な物体の位置（各物体に対応する画素群の位置など）をオブジェクトＩＤと関連付けて、選択部２６０及び画像出力部２７０へ出力する。
【０１１８】
選択部２６０は、機器認識部２４０により物体識別データに基づいて操作可能であると認識された少なくとも１つの物体を、候補物体として選択する。選択部２６０は、例えば、物体識別データにおいて操作可能フラグが“Ｙｅｓ”である全ての物体を候補物体として選択してもよい。その代わりに、選択部２６０は、例えば、入力画像内で複数の操作可能な物体が認識される場合には、予め設定される閾値を超えない数の一部の物体のみを候補物体として選択してもよい。一部の物体とは、例えば、画面の中央又は当該中央の近傍に位置している物体であってよい。また、選択部２６０は、例えば、複数の操作可能な物体が画面の中央に位置している場合には、画面内での大きさが最も小さい物体を候補物体として選択してもよい。選択部２６０は、選択した候補物体のオブジェクトＩＤを画像出力部２７０へ出力する。
【０１１９】
画像出力部２７０は、選択部２６０により選択された候補物体の画面上での位置をユーザに認識させるための出力画像を、撮像部１０２から入力される入力画像から生成する。そして、画像出力部２７０は、生成した当該出力画像を表示装置へ出力する。より具体的には、例えば、画像出力部２７０は、画面上で各候補物体を囲む枠を機器認識部２４０から入力される当該候補物体の位置に基づいて生成し、生成した枠を入力画像に重畳することにより、出力画像を生成する。ユーザは、かかる出力画像を見ながら、ユーザインタフェース１８０を介して操作対象を指定することができる。
【０１２０】
なお、画像出力部２７０は、上述した画像出力部１７０と同様、操作可能な物体が存在しない場合には、撮像部１０２から入力される入力画像をそのまま出力画像として表示装置へ出力してよい。画像出力部２７０により生成される出力画像が表示される表示装置の画面と、撮像部１０２に相当する撮像装置の撮像面とは、互いに反対方向に向けて配置されるのが好適である。
【０１２１】
かかる画像処理装置２００によれば、物体識別データに基づいて操作可能であると認識される入力画像内の少なくとも１つの物体が、ユーザによる操作の対象の候補である候補物体として選択され、出力画像内に表示される。従って、ユーザは、直感的に操作対象を選択することができる。この場合にも、電子機器に個別に操作用のディスプレイを設けることなく、あるいは個別の専用の遠隔制御装置を用意することなく、１つの画像処理装置２００を用いて各電子機器を操作することが可能となる。
【０１２２】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１２３】
１００    画像処理装置
１０２    撮像部
１１０    環境マップ生成部
１２０    環境マップ記憶部
１３０    データ記憶部
１４０    機器認識部
１６０    選択部
１７０    画像出力部
１８０    ユーザインタフェース
１９０    送信部
【図１】
0005617246.tif 000014
【図２】
0005617246.tif 000015
【図３】
0005617246.tif 000016
【図４】
0005617246.tif 000017
【図５】
0005617246.tif 000018
【図６】
0005617246.tif 000019
【図７】
0005617246.tif 000020
【図８】
0005617246.tif 000021
【図９】
0005617246.tif 000022
【図１０】
0005617246.tif 000023
【図１１】
0005617246.tif 000024
【図１２】
0005617246.tif 000025
【図１３】
0005617246.tif 000026
【図１４】
0005617246.tif 000027
【図１５】
0005617246.tif 000028
【図１６】
0005617246.tif 000029
【図１７】
0005617246.tif 000030
【図１８】
0005617246.tif 000031
【図１９】
0005617246.tif 000032
【図２０】
0005617246.tif 000033