(57)【要約】【課題】３次元空間内で仮想オブジェクトを自在に操作することのできる仕組みを提供すること。【解決手段】画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、を備える画像処理装置を提供する。【選択図】図１０
2013118373.tif 000002
【特許請求の範囲】
【請求項１】
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
を備える画像処理装置。
【請求項２】
前記操作量は、前記第１の位置と前記第２の位置との間の差分に応じた並行移動量である、請求項１に記載の画像処理装置。
【請求項３】
前記操作量は、前記第１の姿勢と前記第２の姿勢との間の差分に応じた回転量である、請求項１に記載の画像処理装置。
【請求項４】
前記第１の時点は、前記端末において第１のユーザ入力が検出された時点であり、
前記第２の時点は、前記端末において第２のユーザ入力が検出された時点である、
請求項１に記載の画像処理装置。
【請求項５】
前記第１のユーザ入力及び前記第２のユーザ入力は、一連の操作の開始及び終了にそれぞれ対応する、請求項４に記載の画像処理装置。
【請求項６】
前記第１の位置又は前記第２の位置は、前記端末の画面上でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされる位置である、請求項４に記載の画像処理装置。
【請求項７】
前記操作制御部は、前記第１のユーザ入力に基づいて、操作すべき前記仮想オブジェクトを特定する、請求項４に記載の画像処理装置。
【請求項８】
前記操作制御部は、前記第１のユーザ入力によって指定される前記環境内の物体と関連付けられる仮想オブジェクトを、操作すべき前記仮想オブジェクトとして特定する、請求項７に記載の画像処理装置。
【請求項９】
前記認識部、前記計算部及び前記操作制御部のうち少なくとも１つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、請求項１に記載の画像処理装置。
【請求項１０】
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、
前記環境認識行列の逆行列を計算することと、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御することと、
を含む画像処理方法。
【請求項１１】
コンピュータを、
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、実世界に付加的な情報を重畳してユーザに呈示する拡張現実（ＡＲ：Augmented  Reality）と呼ばれる技術が注目されている。ＡＲ技術においてユーザに呈示される情報は、アノテーションとも呼ばれ、テキスト、アイコン又はアニメーションなどの様々な形態の仮想的なオブジェクトを用いて可視化され得る。【０００３】
下記非特許文献１は、仮想オブジェクトを配置する前の段階で実空間をモデリングするための技術の一例を示している。下記非特許文献２は、仮想オブジェクトを撮像画像に重畳する際に必要とされる撮像装置の位置及び姿勢を算出することを目的とした、自然マーカを利用した技術の一例を示している。【０００４】
ＡＲ技術は、ユーザとのインタラクションを伴うアプリケーションにおいても活用され得る。例えば、下記特許文献１は、ユーザにより操作され得るアイコンを仮想オブジェクトとして表示する技術を開示している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】A.  van  den  Hengel,  R.Hill,  B.Ward  and  A.Dick,  “In  Situ  Image-based  Modeling”（In  Proc.  8th  IEEE  International  Symposium  on  Mixed  and  Augmented  Reality，  2009）
【非特許文献２】W.Daniel,  G.Reitmayr,  A.Mulloni,  T.Drummond,  and  D.Schmalstieg,  “Pose  Tracking  from  Natural  Features  on  Mobile  Phones”（In  Proc.  7th  IEEE  International  Symposium  on  Mixed  and  Augmented  Reality，2008）
【特許文献】
【０００６】
【特許文献１】特開２０１０−２３８０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載された技術では、仮想オブジェクトは、２次元の画面上でユーザによる操作に応じて動くのみである。そのため、ＡＲ技術の利点の１つである現実感が十分に実現されているとはいい難い。ユーザとのインタラクションにおいて現実感を得るためには、３次元空間内で仮想オブジェクトを自在に操作することのできる仕組みが提供されることが望ましい。
【課題を解決するための手段】
【０００８】
本開示によれば、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、を備える画像処理装置が提供される。【０００９】
また、本開示によれば、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、前記環境認識行列の逆行列を計算することと、第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御することと、を含む画像処理方法が提供される。【００１０】
また、本開示によれば、コンピュータを、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、として機能させるためのプログラムが提供される。
【発明の効果】
【００１１】
本開示に係る技術によれば、３次元空間内で仮想オブジェクトを自在に操作することのできる仕組みが提供される。
【図面の簡単な説明】
【００１２】
【図１】本開示に係る技術が適用され得る環境の一例を示す説明図である。
【図２】本開示に係る技術の基本的な原理について説明するための第１の説明図である。
【図３】本開示に係る技術の基本的な原理について説明するための第２の説明図である。
【図４】本開示に係る技術の基本的な原理について説明するための第３の説明図である。
【図５】本開示に係る技術の基本的な原理について説明するための第４の説明図である。
【図６】本開示に係る技術に従って決定される３次元的な操作量の第１の例について説明するための説明図である。
【図７】本開示に係る技術に従って決定される３次元的な操作量の第２の例について説明するための説明図である。
【図８】本開示に係る技術に従って実行される仮想オブジェクトの操作の一例について説明するための説明図である。
【図９】一実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図１０】一実施形態に係る画像処理装置の論理的機能の構成の一例を示すブロック図である。
【図１１】第１の操作シナリオに沿って仮想オブジェクトが操作される様子を示す説明図である。
【図１２】第２の操作シナリオに沿って仮想オブジェクトが操作される様子を示す説明図である。
【図１３】一実施形態に係る画像処理の流れの一例を示すフローチャートである。
【図１４】図１３に例示した操作配置計算処理の詳細な流れの一例を示すフローチャートである。
【図１５】仮想オブジェクトの基準面の判定について説明するための説明図である。
【図１６】仮想オブジェクトの距離に応じた表示について説明するための説明図である。
【図１７】仮想オブジェクトの整列表示について説明するための説明図である。
【図１８】仮想オブジェクトの共有について説明するための第１の説明図である。
【図１９Ａ】仮想オブジェクトの共有について説明するための第２の説明図である。
【図１９Ｂ】仮想オブジェクトの共有について説明するための第３の説明図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
また、以下の順序で説明を行う。
１．基本的な原理
１−１．概要
１−２．基本的なパラメータ
１−３．３次元的な操作量の例
２．画像処理装置の構成例
２−１．ハードウェア構成
２−２．機能構成
２−３．操作シナリオ
２−４．処理の流れ
２−５．表示のバリエーション
２−６．仮想オブジェクトの共有
３．まとめ
【００１５】
＜１．基本的な原理＞
まず、図１〜図８を用いて、本開示に係る技術の基本的な原理について説明する。
【００１６】
［１−１．概要］
図１は、本開示に係る技術が適用され得る環境の一例を示す説明図である。図１を参照すると、環境１、及び環境１を映す画像を撮像する画像処理装置１００が示されている。図１の例において、環境１には、物体１１が存在している。画像処理装置１００は、典型的には、撮像部（図示せず）及び表示部１１０を備える。画像処理装置１００の撮像部は、環境１を映す映像を構成する一連の画像を撮像する。そして、画像処理装置１００は、撮像画像を入力画像として画像処理を行い、３次元空間に仮想オブジェクトを配置する。仮想オブジェクトは、後に説明するように、画像処理装置１００を動かすことによりユーザにより操作される。画像処理装置１００の表示部１１０は、仮想オブジェクトが重畳された出力画像を表示する。
【００１７】
画像処理装置１００は、仮想オブジェクトを何らかの基準環境内に配置する。即ち、仮想オブジェクトの位置及び姿勢は、基準環境と関連付けられる座標系（以下、基準座標系という）において定義される。以下の説明では、物体１１を含む環境１が、基準環境であるものとする。実際には、基準環境は、屋内であるか屋外であるかを問わず、任意の環境であってよい。他の実施形態として、物体固有の座標系を有する１つの物体が基準環境として扱われてもよい。その場合、物体固有の座標系が基準座標系となる。
【００１８】
図１では、画像処理装置１００の一例としてタブレットＰＣを示している。しかしながら、画像処理装置１００は、かかる例に限定されない。画像処理装置１００は、例えば、ノートブックＰＣ、ポケットＰＣ、スマートフォン、ゲーム端末、ＰＮＤ（Portable  Navigation  Device）、コンテンツプレーヤ又はデジタル家電機器などであってもよい。
【００１９】
［１−２．基本的なパラメータ］
本開示に係る技術において、基準環境内に配置される仮想オブジェクトの位置及び姿勢は、いくつかのパラメータを用いた計算を通じて決定される。最も基本的なパラメータは、環境認識行列である。
【００２０】
（１）環境認識行列
環境認識行列は、入力画像を撮像した端末の基準環境内の位置及び姿勢を基準として、基準環境の位置及び姿勢を表現する行列である。環境認識行列は、典型的には、３次元空間内の並行移動、回転及びスケーリング（拡大／縮小）を表す座標変換行列（例えば、４行４列の同次変換行列）であってよい。
【００２１】
図２を参照すると、基準環境１と関連付けられる基準座標系ＣＳ１、及び画像処理装置１００の装置固有の座標系ＣＳ０が示されている。装置固有の座標系ＣＳ０は、例えば、表示部１１０の画面の２次元座標軸と奥行き軸とにより構成され得る。画像処理装置１００の装置固有の座標系ＣＳ０を基準とする基準座標系ＣＳ１の相対的な位置及び姿勢は、公知の画像認識技術を活用することにより、入力画像を用いて認識され得る。ここで活用される画像認識技術とは、例えば、ＳｆＭ（Structure  from  Motion）法、ＳＬＡＭ（Simultaneous  Localization  And  Mapping）法、又は上記非特許文献１若しくは２に記載されている手法などであってよい。その代わりに、赤外線センサを用いたより簡易な環境認識技術が活用されてもよい。
【００２２】
ここで、画像処理装置１００の装置固有の座標系ＣＳ０の位置及び姿勢が、単位行列Ｍ０により表現されるものと仮定する。すると、基準環境１内の任意の位置及び姿勢を行列Ｍ０からの座標変換（並行移動、回転及びスケーリング）として認識することが可能となる。従って、位置及び姿勢のセットが１つの座標変換行列によって表現される。上述した環境認識行列は、そうした座標変換行列の１つである。環境認識行列Ｍｒｅｃｏｇは、画像処理装置１００の位置及び姿勢（即ち単位行列Ｍ０）を基準として、基準座標系ＣＳ１の位置及び姿勢を表現する。
【００２３】
（２）操作配置行列
上述した前提の下で、環境認識行列Ｍｒｅｃｏｇの逆行列Ｍｒｅｃｏｇ−１は、基準座標系ＣＳ１の位置及び姿勢を基準とした画像処理装置１００の位置及び姿勢を表現する行列となる。図３は、環境認識行列の逆行列Ｍｒｅｃｏｇ−１が表現する座標変換を概念的に示している。
【００２４】
操作配置行列Ｍｍｏｂｉｌｅは、仮想オブジェクトを操作するためにユーザにより移動される画像処理装置１００の位置及び姿勢を表現する行列である。なお、本明細書において、特に「並行」移動と明示されない場合には、「移動」との用語は並行移動及び回転の双方を含み得るものとする。操作配置行列Ｍｍｏｂｉｌｅは、例えば、次式のように、環境認識行列の逆行列Ｍｒｅｃｏｇ−１と等しくてもよい。
【００２５】
【数１】
2013118373.tif 000003
【００２６】
図４は、式（１）が採用される場合の操作配置行列Ｍｍｏｂｉｌｅが表現する座標変換を概念的に示している。但し、操作位置の調整を容易とするために、次に説明するようなオフセット行列が用いられてもよい。
【００２７】
（３）オフセット行列
図５は、オフセット行列Ｔｔｏｕｃｈを算入して決定される操作配置行列Ｍｍｏｂｉｌｅを概念的に示している。オフセット行列Ｔｔｏｕｃｈは、画像処理装置１００の画面上でのユーザ入力位置に応じて決定される、当該画面に沿った方向への並行移動を表現する座標変換行列である。オフセット行列Ｔｔｏｕｃｈが算入される場合、操作配置行列Ｍｍｏｂｉｌｅは、次式のように計算され得る。
【００２８】
【数２】
2013118373.tif 000004
【００２９】
このようにオフセット行列Ｔｔｏｕｃｈが算入される場合、ユーザにとって、画像処理装置１００を動かす代わりに画面上の所望の位置で操作（例えば、タッチ又はクリックなど）を行うことで、操作位置を細かく調整することが容易となる。
【００３０】
［１−３．３次元的な操作量の例］
ここで、ユーザが、時刻ｔ１から時刻ｔ２にかけて画像処理装置１００を移動させたものとする。その場合、上述した原理に従って、時刻ｔ１における操作配置行列Ｍｍｏｂｉｌｅ（ｔ１）と時刻ｔ２における操作配置行列Ｍｍｏｂｉｌｅ（ｔ２）とを計算することができる。操作配置行列Ｍｍｏｂｉｌｅ（ｔ１）が表現する位置と操作配置行列Ｍｍｏｂｉｌｅ（ｔ２）が表現する位置との差分は、時刻ｔ１から時刻ｔ２にかけての画像処理装置１００の並行移動（及び画面上でのユーザ入力位置の変化）に対応する並行移動量を示す。操作配置行列Ｍｍｏｂｉｌｅ（ｔ１）が表現する姿勢と操作配置行列Ｍｍｏｂｉｌｅ（ｔ２）が表現する姿勢との差分は、時刻ｔ１から時刻ｔ２にかけての画像処理装置１００の回転に対応する回転量を示す。本開示に係る技術では、これら並行移動量及び回転量に従って、基準環境内に配置される仮想オブジェクトが３次元的に操作される。
【００３１】
図６の例では、まず、時刻ｔ１において、操作配置行列Ｍｍｏｂｉｌｅ（ｔ１）が決定されている。また、後続する時刻ｔ２において、操作配置行列Ｍｍｏｂｉｌｅ（ｔ２）が決定されている。これら操作配置行列から、次式のように並行移動操作量Ｄｍｏｖが計算される。
【００３２】
【数３】
2013118373.tif 000005
【００３３】
式（３）において、Ｖｍｏｂｉｌｅ（ｔ）は、操作配置行列Ｍｍｏｂｉｌｅ（ｔ）の並行移動成分を表すものとする。図７の例では、２つの操作配置行列Ｍｍｏｂｉｌｅ（ｔ１）及びＭｍｏｂｉｌｅ（ｔ２）から、次式のように回転操作量Ｄｒｏｔが計算される。
【００３４】
【数４】
2013118373.tif 000006
【００３５】
式（４）において、Ｒｍｏｂｉｌｅ（ｔ）は、操作配置行列Ｍｍｏｂｉｌｅ（ｔ）の回転成分を表すものとする。なお、式（３）及び式（４）は一例に過ぎない。例えば、式（３）又は式（４）の右辺に、操作量を増幅し又は縮小するための係数が乗算されてもよい。
【００３６】
図８は、本開示に係る技術に従って実行される仮想オブジェクトの操作の一例について説明するための説明図である。ここでは、一例として、物体１１から仮想オブジェクトを引き出すようなＡＲアプリケーションが想定される。図８に示した操作前行列Ｍｐｒｅは、画像処理装置１００により認識される物体１１の位置及び姿勢を表現する行列に等しい。仮想オブジェクト２１は、物体１１と関連付けられる仮想オブジェクトである。例えば、画像処理装置１００が物体１１の位置及び姿勢を認識した後、時刻ｔ１から時刻ｔ２にかけてユーザが画像処理装置１００を図示された通りに移動させたものとする。すると、画像処理装置１００は、操作配置行列Ｍｍｏｂｉｌｅ（ｔ１）と操作配置行列Ｍｍｏｂｉｌｅ（ｔ２）との間の差分に応じた３次元的な操作量を決定する。図８の例では、並行移動操作量Ｄｍｏｖが決定されている。そして、画像処理装置１００は、並行移動操作量Ｄｍｏｖに従って、仮想オブジェクト２１を移動させる。図８の例のように、操作の起点となる位置及び姿勢が操作前行列Ｍｐｒｅにより表現される場合、操作後の仮想オブジェクト２１の位置及び姿勢を表現する操作後行列Ｍｐｏｓｔは、次のように計算される。
【００３７】
【数５】
2013118373.tif 000007
【００３８】
なお、並行移動の代わりに回転が行われる場合には、操作後行列Ｍｐｏｓｔは、式（６）のように計算される。並行移動及び回転の双方が行われる場合には、操作後行列Ｍｐｏｓｔは、式（７）のように計算される。
【００３９】
【数６】
2013118373.tif 000008
【００４０】
図８の例において、時刻ｔ２における画像処理装置１００からの仮想オブジェクト２１の見え方は、操作後行列Ｍｐｏｓｔと時刻ｔ２における環境認識行列Ｍｒｅｃｏｇ（ｔ２）との積に相当する次のような座標変換として表現され得る。
【００４１】
【数７】
2013118373.tif 000009
【００４２】
本節で説明した原理に従って、ユーザは、画像処理装置１００のような端末を動かしながらこれを操作することにより、３次元的な操作量を自在に指定することができる。以下、上述した原理に基づく画像処理装置１００の構成の一例について詳細に説明する。
【００４３】
＜２．画像処理装置の構成例＞
［２−１．ハードウェア構成］
図９は、一実施形態に係る画像処理装置１００のハードウェア構成の一例を示すブロック図である。図９を参照すると、画像処理装置１００は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、通信部１１２、バス１１６及び制御部１１８を備える。
【００４４】
（１）撮像部
撮像部１０２は、画像を撮像するカメラモジュールである。撮像部１０２は、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を用いて実空間を撮像し、撮像画像を生成する。撮像部１０２により生成される一連の撮像画像は、映像を構成する。なお、撮像部１０２は、必ずしも画像処理装置１００の一部でなくてもよい。例えば、画像処理装置１００と有線又は無線で接続される撮像装置が撮像部１０２として扱われてもよい。また、撮像部１０２は、撮像部１０２と被写体との間の距離を画素ごとに測定する深度（depth）センサを含んでいてもよい。深度センサから出力される深度データは、環境の認識のために利用され得る。
【００４５】
（２）センサ部
センサ部１０４は、測位センサ、加速度センサ及びジャイロセンサなどの様々なセンサを含み得る。センサ部１０４において得られる測定結果は、環境の認識の支援、地理的な位置に特化したデータの取得、又はユーザ入力の検出などの様々な用途のために利用されてよい。なお、センサ部１０４は、画像処理装置１００の構成から省略されてもよい。
【００４６】
（３）入力部
入力部１０６は、ユーザが画像処理装置１００を操作し又は画像処理装置１００へ情報を入力するために使用される入力デバイスである。入力部１０６は、例えば、表示部１１０の画面上へのユーザによるタッチを検出するタッチセンサを含んでもよい。その代わりに（又はそれに加えて）、入力部１０６は、マウス若しくはタッチパッドなどのポインティングデバイスを含んでもよい。さらに、入力部１０６は、キーボード、キーパッド、ボタン又はスイッチなどのその他の種類の入力デバイスを含んでもよい。
【００４７】
（４）記憶部
記憶部１０８は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、画像処理装置１００による処理のためのプログラム及びデータを記憶する。記憶部１０８により記憶されるデータは、例えば、撮像画像データ、センサデータ及び後に説明するデータベース（ＤＢ）内のデータを含み得る。なお、本明細書で説明するプログラム及びデータの一部は、記憶部１０８により記憶されることなく、外部のデータソース（例えば、データサーバ、ネットワークストレージ又は外付けメモリなど）から取得されてもよい。
【００４８】
（５）表示部
表示部１１０は、ＬＣＤ（Liquid  Crystal  Display）、ＯＬＥＤ（Organic  light-Emitting  Diode）又はＣＲＴ（Cathode  Ray  Tube）などのディスプレイを含む表示モジュールである。表示部１１０は、例えば、画像処理装置１００により生成される出力画像を表示するために使用される。なお、表示部１１０もまた、必ずしも画像処理装置１００の一部でなくてもよい。例えば、画像処理装置１００と有線又は無線で接続される表示装置が表示部１１０として扱われてもよい。
【００４９】
（６）通信部
通信部１１２は、画像処理装置１００による他の装置との間の通信を仲介する通信インタフェースである。通信部１１２は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、他の装置との間の通信接続を確立する。
【００５０】
（７）バス
バス１１６は、撮像部１０２、センサ部１０４、入力部１０６、記憶部１０８、表示部１１０、通信部１１２及び制御部１１８を相互に接続する。
【００５１】
（８）制御部
制御部１１８は、ＣＰＵ（Central  Processing  Unit）又はＤＳＰ（Digital  Signal  Processor）などのプロセッサに相当する。制御部１１８は、記憶部１０８又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する画像処理装置１００の様々な機能を動作させる。
【００５２】
［２−２．機能構成］
図１０は、図９に示した画像処理装置１００の記憶部１０８及び制御部１１８により実現される論理的機能の構成の一例を示すブロック図である。図１０を参照すると、画像処理装置１００は、画像取得部１２０、認識部１３０、計算部１４０、物体ＤＢ１５０、コンテンツＤＢ１６０、操作制御部１７０及び表示制御部１８０を備える。
【００５３】
（１）画像取得部
画像取得部１２０は、撮像部１０２により生成される撮像画像を入力画像として取得する。画像取得部１２０により取得される入力画像は、実空間を映す映像を構成する個々のフレームであってよい。画像取得部１２０は、取得した入力画像を、認識部１３０及び表示制御部１８０へ出力する。
【００５４】
（２）認識部
認識部１３０は、画像取得部１２０から入力される入力画像を用いて、基準環境の位置及び姿勢を表現する上述した環境認識行列を認識する。認識部１３０は、環境認識行列を認識するために、ＳｆＭ法又はＳＬＡＭ法などの公知の画像認識技術を活用し得る。その代わりに又はそれに加えて、認識部１３０は、撮像部１０２に設けられ得る深度センサからの深度データに基づいて、環境認識行列を認識してもよい。また、認識部１３０は、赤外線測距システム又はモーションキャプチャシステムなどの環境認識システムからの出力データに基づいて、環境認識行列を認識してもよい。
【００５５】
例えば、ＳＬＡＭ法が活用される場合には、認識部１３０は、端末の位置、姿勢、速度及び角速度、並びに入力画像に映る１つ以上の特徴点の位置を含む状態変数を、拡張カルマンフィルタの原理に基づいてフレームごとに更新する。それにより、端末の位置及び姿勢を基準とする基準環境の位置及び姿勢を、単眼カメラからの入力画像を用いて認識することができる。認識部１３０は、認識した基準環境の位置及び姿勢を、端末の位置及び姿勢からの座標変換に相当する環境認識行列Ｍｒｅｃｏｇによって表現する。なお、ＳＬＡＭ法の詳しい説明は、“Real-Time  Simultaneous  Localization  and  Mapping  with  a  Single  Camera”（Andrew  J.Davison，Proceedings  of  the  9th  IEEE  International  Conference  on  Computer  Vision  Volume  2,  2003,  pp.1403-1410）に記載されている。
【００５６】
認識部１３０は、このように認識される環境認識行列Ｍｒｅｃｏｇを、計算部１４０及び操作制御部１７０へ出力する。
【００５７】
また、認識部１３０は、図８の例のように仮想オブジェクトの位置及び姿勢が基準環境内の物体の位置及び姿勢に関連付けられる場合には、入力画像に映る物体の位置及び姿勢をも認識する。例えば、物体ＤＢ１５０は、１つ以上の物体の各々の既知の特徴量データと当該物体の識別子とを予め記憶する。そして、認識部１３０は、入力画像から抽出される特徴量データを物体ＤＢ１５０により記憶されている特徴量データと照合することにより、入力画像に映る物体を識別し得る。認識部１３０は、このように識別される物体の基準座標系での位置及び姿勢を表現する座標変換行列を、環境認識行列Ｍｒｅｃｏｇと同様に認識する。
【００５８】
（３）計算部
計算部１４０は、認識部１３０から入力される環境認識行列の逆行列Ｍｒｅｃｏｇ−１を計算する。例えば、環境認識行列Ｍｒｅｃｏｇは、４行４列の同次変換行列である。従って、環境認識行列の逆行列Ｍｒｅｃｏｇ−１もまた４行４列の同次変換行列であり、Ｍｒｅｃｏｇ・Ｍｒｅｃｏｇ−１＝Ｍ０（単位行列）を満たす。環境認識行列の逆行列Ｍｒｅｃｏｇ−１は、基準座標系の位置及び姿勢から端末の位置及び姿勢への座標変換を表現する。計算部１４０は、計算した環境認識行列の逆行列Ｍｒｅｃｏｇ−１を操作制御部１７０へ出力する。
【００５９】
（４）物体ＤＢ
物体ＤＢ１５０は、上述したように、ＡＲアプリケーションの目的に応じて認識されるべき物体の既知の特徴量データと識別子とを予め記憶する。
【００６０】
（５）コンテンツＤＢ
コンテンツＤＢ１６０は、ユーザにより操作可能な仮想オブジェクトの識別子、属性データ及び関連付けられる物体の識別子を予め記憶する。仮想オブジェクトの属性データは、仮想オブジェクトの表示属性（例えば、位置及び姿勢の初期値、形状並びに色など）と、仮想オブジェクトの操作属性（例えば、並行移動及び回転がそれぞれ可能か、など）とを含み得る。
【００６１】
（６）操作制御部１７０
操作制御部１７０は、上述した様々なパラメータを用いて、入力画像に映る環境内に配置される仮想オブジェクトの操作を制御する。
【００６２】
例えば、操作制御部１７０は、操作の開始に対応する第１の時点において、環境認識行列の逆行列Ｍｒｅｃｏｇ−１に基づいて、３次元の基準環境内の操作位置及び姿勢を表現する操作配置行列Ｍｍｏｂｉｌｅを決定する。操作制御部１７０は、例えば、上記式（１）に従って、環境認識行列の逆行列Ｍｒｅｃｏｇ−１に等しい操作配置行列Ｍｍｏｂｉｌｅを決定してよい。また、操作制御部１７０は、上記式（２）に従い、端末の画面上でのユーザ入力位置に応じたオフセット行列を算入して操作配置行列Ｍｍｏｂｉｌｅを決定してもよい。
【００６３】
また、操作制御部１７０は、操作対象の仮想オブジェクトを特定する。操作対象の仮想オブジェクトは、入力画像に映る物体の中から何らかの基準で選択される物体に関連付けられるオブジェクトであってもよい。また、操作対象の仮想オブジェクトは、画面上でユーザにより（例えばタッチ又はクリックなどで）指定されるオブジェクトであってもよい。
【００６４】
さらに、操作制御部１７０は、操作の終了（操作の途中であってもよい）に対応する第２の時点において、環境認識行列の逆行列Ｍｒｅｃｏｇ−１に基づいて、上記式（１）又は式（２）に従い、３次元の基準環境内の操作位置及び姿勢を表現する操作配置行列Ｍｍｏｂｉｌｅを再び決定する。
【００６５】
そして、操作制御部１７０は、操作開始時及び操作終了時の２つの操作配置行列Ｍｍｏｂｉｌｅの差分に応じて、仮想オブジェクトの操作量を決定する。例えば、コンテンツＤＢ１６０により記憶されているデータが、操作対象の仮想オブジェクトが並行移動可能であることを示しているものとする。すると、操作制御部１７０は、２つの操作配置行列Ｍｍｏｂｉｌｅの並行移動成分の間の差分に応じて、並行移動操作量Ｄｍｏｖを計算する。また、コンテンツＤＢ１６０により記憶されているデータが、操作対象の仮想オブジェクトが回転可能であることを示しているものとする。すると、操作制御部１７０は、２つの操作配置行列Ｍｍｏｂｉｌｅの回転成分の間の差分に応じて、回転操作量Ｄｒｏｔを計算する。
【００６６】
操作制御部１７０は、これら操作量を計算すると、算出された操作量に従って、操作対象の仮想オブジェクトの配置を変更する。操作前後の仮想オブジェクトの配置の間の関係は、上記式（６）〜式（８）のいずれかであってよい。
【００６７】
操作制御部１７０は、このようにユーザによる操作に応じて更新される仮想オブジェクトの配置を表現する座標変換行列（操作後行列Ｍｐｏｓｔ）を、表示制御部１８０へ出力する。
【００６８】
操作の開始に対応する上述した第１の時点は、端末において第１のユーザ入力が検出された時点であってもよく、操作の終了に対応する上述した第２の時点は、端末において第２のユーザ入力が検出された時点であってもよい。このように明示的にユーザに操作のタイミングを指示させることで、操作制御部１７０は、仮想オブジェクトの操作を意図するユーザの動作とその他の動作とを区別することができる。これら第１及び第２のユーザ入力は、それぞれ一連の操作の開始及び終了に対応するように定義されてもよい。一連の操作とは、例えば、タッチ又はドラッグに相当し得る。典型的には、タッチ又はドラッグの開始はプレス（Press）イベントとして検出され、タッチ又はドラッグの終了はリリース（Release）イベントとして検出される。このようなユーザインタフェースによれば、ユーザは、画面にタッチ（又はドラッグ）しつつ端末を動かすという簡単な操作のみで、仮想オブジェクトを意図した通りに３次元的に並行移動させ及び回転させることができる。
【００６９】
また、操作の開始に対応する上述した第１のユーザ入力に基づいて、操作対象の仮想オブジェクトが特定されてもよい。例えば、操作開始時の画面上のプレス位置に基づいて操作対象の仮想オブジェクトが特定される場合には、仮想オブジェクトを３次元空間内でドラッグして動かすような直感的なユーザインタフェースが実現される。
【００７０】
なお、ユーザ入力の種類は、上述した例に限定されない。例えば、所定のキー若しくはボタンの押下、タッチジェスチャの認識、表情の認識、音声コマンドの認識、又はヘッドマウントディスプレイにおける視線の認識などが、ユーザ入力として定義されてもよい。
【００７１】
（７）表示制御部
表示制御部１８０は、操作制御部１７０による配置に従って、仮想オブジェクトを入力画像に重畳することにより、出力画像を生成する。そして、表示制御部１８０は、生成した出力画像を表示部１１０の画面に表示させる。仮想オブジェクトの表示のトリガは、例えば、何らかのユーザ入力の検出、他の装置からの仮想オブジェクトのデータの受信、又は入力画像内の何らかのパターンの認識などであってよい。
【００７２】
［２−３．操作シナリオ］
次に、図１１及び図１２を用いて、仮想オブジェクトの操作に関する２つの操作シナリオを説明する。第１の操作シナリオでは、仮想オブジェクトが、画像内で認識される物体から引き出されるように新たに配置される。第２の操作シナリオでは、配置済みの仮想オブジェクトがユーザによる操作を通じて移動される。
【００７３】
（１）第１の操作シナリオ
図１１は、第１の操作シナリオに沿って、新たな仮想オブジェクトが基準環境内に配置される様子を示している。
【００７４】
図１１の例において、基準環境１内の物体１１は、デジタルテレビジョン装置である。デジタルテレビジョン装置１１の画面には、ライオン１２を映したコンテンツ画像が表示されている。物体ＤＢ１５０には、ライオン１２の特徴量データが予め記憶されている。
【００７５】
時刻ｔ１において、ユーザが画像処理装置１００をデジタルテレビジョン装置１１にかざすと、入力画像にライオン１２が映る。認識部１３０は、物体ＤＢ１５０により記憶されている特徴量データを用いて、入力画像に映るライオン１２を識別する。すると、操作制御部１７０は、コンテンツＤＢ１６０においてライオン１２と関連付けられている仮想オブジェクト２２を、操作対象の仮想オブジェクトとして特定する。仮想オブジェクト２２は、例えば、並行移動可能であるものとする。
【００７６】
その後、時刻ｔ１から時刻ｔ２にかけて、ユーザは、画像処理装置１００の画面にタッチしながら、画像処理装置１００を移動させる。すると、操作制御部１７０は、移動の前後の２つの操作配置行列Ｍｍｏｂｉｌｅ（ｔ１）及びＭｍｏｂｉｌｅ（ｔ２）の間の並行移動成分の差分である並行移動操作量Ｄｍｏｖを計算する。そして、操作制御部１７０は、ライオン１２の位置及び姿勢及び並行移動操作量Ｄｍｏｖから、操作後の仮想オブジェクト２２の位置及び姿勢を表現する操作後行列Ｍｐｏｓｔを計算する。表示制御部１８０は、操作後行列Ｍｐｏｓｔにより表現される３次元的な位置及び姿勢を有する仮想オブジェクト２２を２次元の画面に投影し、仮想オブジェクト２２の重畳された出力画像を表示させる。
【００７７】
（２）第２の操作シナリオ
図１２は、第２の操作シナリオに沿って、配置済みの仮想オブジェクトがユーザにより操作される様子を示している。
【００７８】
図１２の例において、基準環境１内の物体１１は、デジタルテレビジョン装置である。物体ＤＢ１５０には、デジタルテレビジョン装置１１の特徴量データが予め記憶されている。また、コンテンツＤＢ１６０には、デジタルテレビジョン装置１１と関連付けられている仮想オブジェクト２３のデータが予め記憶されている。仮想オブジェクト２３は、例えば、デジタルテレビジョン装置１１についての情報を表示する仮想的なパネルである。
【００７９】
時刻ｔ３において、仮想オブジェクト２３は、操作前行列Ｍｐｒｅにより表現される位置及び姿勢でＡＲ空間内に配置されている。ユーザが画像処理装置１００をデジタルテレビジョン装置１１にかざすと、入力画像に仮想オブジェクト２３が映る。そして、ユーザが画面上で仮想オブジェクト２３にタッチすると、操作制御部１７０は、仮想オブジェクト２３を操作対象の仮想オブジェクトとして特定する。仮想オブジェクト２３は、例えば、回転可能であるものとする。
【００８０】
その後、時刻ｔ３から時刻ｔ４にかけて、ユーザは、画像処理装置１００を回転させる。すると、操作制御部１７０は、移動の前後の２つの操作配置行列Ｍｍｏｂｉｌｅ（ｔ３）及びＭｍｏｂｉｌｅ（ｔ４）の間の回転成分の差分である回転操作量Ｄｒｏｔを計算する。そして、操作制御部１７０は、操作前行列Ｍｐｒｅ及び回転操作量Ｄｒｏｔから計算される操作後行列Ｍｐｏｓｔにより表現される位置及び姿勢を仮想オブジェクト２３が有するように、仮想オブジェクト２３を再配置する。
【００８１】
［２−４．処理の流れ］
図１３は、画像処理装置１００による画像処理の流れの一例を示すフローチャートである。
【００８２】
図１３を参照すると、まず、画像取得部１２０は、撮像部１０２により生成される撮像画像を入力画像として取得する（ステップＳ１１０）。そして、画像取得部１２０は、取得した入力画像を、認識部１３０及び表示制御部１８０へ出力する。
【００８３】
次に、認識部１３０は、画像取得部１２０から入力される入力画像を用いて、基準環境の位置及び姿勢を表現する環境認識行列Ｍｒｅｃｏｇを認識する（ステップＳ１１５）。そして、認識部１３０は、認識した環境認識行列Ｍｒｅｃｏｇを、計算部１４０、操作制御部１７０及び表示制御部１８０へ出力する。
【００８４】
次に、図１３の画像処理は、操作状態に応じて分岐する。まず、ユーザにより所定の操作が開始されたことが検出された場合には、処理はステップＳ１３０へ進む（ステップＳ１２０）。また、ユーザにより開始された当該操作が終了したことが検出された場合には、処理はステップＳ１６０へ進む（ステップＳ１２５）。それ以外の場合には、処理はステップＳ１９０へ進む。
【００８５】
ステップＳ１３０では、操作制御部１７０は、操作対象の仮想オブジェクトを特定する（ステップＳ１３０）。ここで特定される仮想オブジェクトの数は、１つであってもよく、又は複数であってもよい。次に、図１４を用いて説明される操作配置計算処理が実行され、第１の操作配置行列が計算される（ステップＳ１４０）。そして、計算された第１の操作配置行列が記憶される（ステップＳ１５０）。
【００８６】
ステップＳ１６０では、図１４を用いて説明される操作配置計算処理が実行され、第２の操作配置行列が計算される（ステップＳ１６０）。次に、操作制御部１７０は、第１及び第２の操作配置行列を用いて、操作対象の仮想オブジェクトの操作量を決定する（ステップＳ１７０）。そして、操作制御部１７０は、決定した操作量に従って、操作対象の仮想オブジェクトを再配置する（ステップＳ１８０）。
【００８７】
そして、表示制御部１８０は、操作対象の仮想オブジェクト及びその他の表示すべき仮想オブジェクトが重畳された出力画像を生成し、生成した出力画像を表示部１１０の画面に表示させる（ステップＳ１９０）。
【００８８】
図１４は、図１３のステップＳ１４０及びＳ１６０に相当する操作配置計算処理の詳細な流れの一例を示すフローチャートである。
【００８９】
図１４を参照すると、まず、計算部１４０は、認識部１３０から入力される環境認識行列の逆行列Ｍｒｅｃｏｇ−１を計算する（ステップＳ１４２）。また、操作制御部１７０は、端末の画面上でのユーザ入力位置に応じて、オフセット行列Ｔｔｏｕｃｈを決定する（ステップＳ１４４）。なお、オフセット行列が使用されない場合には、ステップＳ１４４の処理は省略されてもよい。そして、操作制御部１７０は、環境認識行列の逆行列Ｍｒｅｃｏｇ−１及びオフセット行列Ｔｔｏｕｃｈに基づいて、操作配置行列Ｍｍｏｂｉｌｅを決定する（ステップＳ１４６）。
【００９０】
［２−５．表示のバリエーション］
本開示に係る技術において、仮想オブジェクトは、様々な形態で表示され得る。本項では、仮想オブジェクトの様々な表示のバリエーションについて説明する。
【００９１】
例えば、仮想オブジェクトは、予め定義される基準面を有してもよい。仮想オブジェクトがカード状の平面的な形状を有する場合には、一方の面が基準面、他方の面が非基準面として定義され得る。仮想オブジェクトが立体的な形状を有する場合には、当該仮想オブジェクトの基準面は、基準面から外へ向かう法線ベクトルによって識別され得る。このように仮想オブジェクトが基準面を有する場合、表示制御部１８０は、画像処理装置１００の画面に当該仮想オブジェクトの基準面が映るか否かに応じて、当該仮想オブジェクトの表示を変化させてよい。
【００９２】
例えば、図１５の例を参照すると、画像処理装置１００の画面に表示される出力画像Ｉｍ１に、２つの仮想オブジェクト３１及び３２が映っている。出力画像Ｉｍ１に映っている仮想オブジェクト３１の面は、非基準面である。出力画像Ｉｍ１に映っている仮想オブジェクト３２の面は、基準面である。従って、表示制御部１８０は、例えば、仮想オブジェクト３２の形状、スケール、透明度、色、解像度又はエッジの太さなどの表示属性を、仮想オブジェクト３１とは異なる値に設定し得る。また、表示制御部１８０は、仮想オブジェクト３１及び３２により示される情報の内容を、基準面が映っているか否かに応じて変化させてもよい。
【００９３】
このような表示の制御によって、表示される仮想オブジェクトがどの方向を向いているかをユーザが容易に把握することができる。このようなケースで、ユーザが仮想オブジェクト３１の基準面に表示される情報の内容を閲覧したいと望んでいるものとする。本開示に係る技術がなければ、ユーザは、仮想オブジェクト３１の基準面が見える位置に回りこんで端末をかざしてみることになる。しかし、本開示に係る技術によれば、ユーザは、画面上で仮想オブジェクト３１を指定して端末をその場で回転させるだけで、仮想オブジェクト３１の姿勢を３次元的に回転させ、仮想オブジェクト３１の基準面に表示される情報の内容を容易に閲覧することができる。
【００９４】
また、表示制御部１８０は、画像処理装置１００と仮想オブジェクトとの間の距離に応じて、当該仮想オブジェクトの表示を変化させてもよい。
【００９５】
例えば、図１６の例を参照すると、画像処理装置１００の画面に表示される出力画像Ｉｍ２に３つの仮想オブジェクト４１、４２及び４３が映っている。このうち、仮想オブジェクト４３は、仮想オブジェクト４１及び４２と比較して、画像処理装置１００からより遠くに位置する。この場合、表示制御部１８０は、例えば、仮想オブジェクト４１及び４２がより明瞭にユーザに視認されるように、仮想オブジェクト４１及び４２の表示属性を強調し得る。また、表示制御部１８０は、仮想オブジェクト４１及び４２について、より詳細な情報の内容を表示させてもよい。
【００９６】
このような表示の制御によって、多数の仮想オブジェクトが画面に表示されるような状況下で、ユーザがより関心を持っている（即ち、端末を近付けている）仮想オブジェクトの（又はその表示内容の）視認性を高めることができる。このようなケースで、ユーザが仮想オブジェクト４３により表示される情報の内容をも詳しく閲覧したいと望んでいるものとする。本開示に係る技術がなければ、ユーザは、より仮想オブジェクト４３に近付いた上で端末をかざしてみることになる。しかし、本開示に係る技術によれば、ユーザは、画面上で仮想オブジェクト４３を指定して端末を引き寄せる動きをするだけで、仮想オブジェクト４３の位置を手前に移動させ、仮想オブジェクト４３により表示される情報の内容をより詳しく閲覧することができる。
【００９７】
表示制御部１８０は、所定の条件が満たされる場合に、表示すべき複数の仮想オブジェクトが所定の間隔を空けて整列するように、当該複数の仮想オブジェクトを再配置してもよい。
【００９８】
例えば、図１７の例を参照すると、画像処理装置１００の画面に６つの仮想オブジェクト５１〜５６が映っている。しかし、これら仮想オブジェクトがその配置の通りに表示されると、画面内で仮想オブジェクトが密集してしまい、仮想オブジェクトの視認性が低下する。そこで、例えば、表示制御部１８０は、所定のユーザ入力が検出された場合に、これら仮想オブジェクトを整列させる。図１７の例では、画像処理装置１００のより近くに位置する４つの仮想オブジェクト５１、５２、５３及び５４が、所定の間隔を空けて整列するように再配置されている。仮想オブジェクトを再配置させるための上記所定の条件は、ユーザ入力の代わりに、例えば画面内の仮想オブジェクトの個数が所定の閾値を上回ることなどであってもよい。
【００９９】
このような表示の制御によって、多数の仮想オブジェクトが画面に表示されるような状況下で、仮想オブジェクトの各々が示す情報の内容の視認性を高めることができる。操作制御部１７０は、このように整列された仮想オブジェクトの操作を、上述した仕組みに従って制御してもよい。
【０１００】
［２−６．仮想オブジェクトの共有］
ここまでの説明では、仮想オブジェクトの操作に用いられる端末と操作される仮想オブジェクトを表示する端末とが同一であった。しかしながら、本開示に係る技術は、かかる例に限定されない。例えば、ある端末を用いて操作される仮想オブジェクトが、他の端末の画面に表示されてもよい。本項では、そのような仮想オブジェクトの共有について説明する。
【０１０１】
図１８を参照すると、仮想オブジェクトをユーザ間で共有するための、画像処理装置１００ａ及び画像処理装置１００ｂを含む画像処理システムが示されている。
【０１０２】
例えば、画像処理装置１００ａは、上述した仕組みに従って、基準座標系ＣＳ２を有する基準環境２内で、ユーザによる操作に応じて仮想オブジェクトの配置を決定する。図１８の例では、車を模した仮想オブジェクト６１が実物体であるテーブル６２の上に配置されている。仮想オブジェクト６１は、例えば、画像処理装置１００ａにおいて決定される操作量（例えば、並行移動操作量Ｄｍｏｖ）に従って移動可能である。画像処理装置１００ａは、仮想オブジェクト６１の配置を表現するデータ（例えば、上述した操作後行列Ｍｐｏｓｔ）を画像処理装置１００ｂへ送信する。画像処理装置１００ｂは、入力画像に映る基準環境２の位置及び姿勢を表現する環境認識行列を認識し、認識した環境認識行列と画像処理装置１００ａから受信される操作後行列Ｍｐｏｓｔとを用いて、仮想オブジェクト６１を入力画像に重畳する。
【０１０３】
図１８の例では、基準環境として、テーブル６２を含む１つの空間に相当する環境２が示されている。しかしながら、本開示に係る技術が適用される基準環境は、このような環境に限定されない。例えば、画像処理装置１００ａが存在する空間と画像処理装置１００ｂが存在する空間とが異なる場合であっても、それら空間の間で共通する特徴点群若しくは物体が存在し、又は同視し得る校正された座標系が存在する場合には、それら空間に相当する複数の環境が１つの共通的な基準環境として扱われてよい。また、１つの空間において互いに異なる時刻に認識される環境が、１つの共通的な基準環境として扱われてもよい。
【０１０４】
例えば、図１９Ａを参照すると、環境３ａ内に、画像処理装置１００ａと本６３ａとが存在する。図１９Ｂを参照すると、環境３ｂ内に、画像処理装置１００ｂと本６３ｂとが存在する。本６３ａ及び本６３ｂは、共通的な特徴点群を有する。従って、画像処理装置１００ａ及び１００ｂは、それら特徴点群を用いて１つの共通的な基準座標系ＣＳ３を認識し、基準座標系ＣＳ３と関連付けられる仮想オブジェクトを共有することができる。図１９Ａの例では、ゾウを模した仮想オブジェクト７３が本６３ａの近傍に配置されている。仮想オブジェクト７３は、例えば、画像処理装置１００ａにおいて決定される操作量（例えば、回転操作量Ｄｒｏｔ）に従って回転可能である。画像処理装置１００ｂは、仮想オブジェクト７３の配置を表現するデータ（例えば、上述した操作後行列Ｍｐｏｓｔ）を画像処理装置１００ｂへ送信する。画像処理装置１００ｂは、入力画像に映る基準環境３ｂの位置及び姿勢を表現する環境認識行列を認識し、認識した環境認識行列と画像処理装置１００ａから受信される操作後行列Ｍｐｏｓｔとを用いて、仮想オブジェクト７３の重畳された出力画像を表示する。
【０１０５】
＜３．まとめ＞
ここまで、図１〜図１９Ｂを用いて、本開示に係る技術の一実施形態について詳細に説明した。上述した実施形態によれば、基準環境内の端末の位置及び姿勢を基準として環境の位置及び姿勢を表現する環境認識行列が認識され、認識された環境認識行列の逆行列に基づいて端末の位置及び姿勢が表現される。そして、２つの時点の端末の位置及び姿勢の一方又は双方の差分に応じた３次元的な操作量で、基準環境内に配置される仮想オブジェクトが操作される。従って、ユーザは、端末を３次元空間内で動かすことにより、ＡＲ空間内で仮想オブジェクトを３次元的に自在に操作することができる。例えば、携帯端末が使用される場合には、ユーザは、当該携帯端末を持って動かすことにより、仮想オブジェクトを３次元的に移動させ、及び仮想オブジェクトを３次元的に回転させることができる。
【０１０６】
また、上述した実施形態によれば、一連の操作の開始時の画面上のユーザ入力位置に基づいて、操作対象の仮想オブジェクトが特定される。それにより、仮想オブジェクトを３次元空間内でドラッグして動かすような直感的なユーザインタフェースを実現することができる。
【０１０７】
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵなどのプロセッサにより実行される。
【０１０８】
また、各装置の論理的機能の一部は、当該装置上に実装される代わりに、クラウドコンピューティング環境内に存在する装置上に実装されてもよい。その場合には、論理的機能の間でやり取りされる情報が、図９に例示した通信部１１２を介して装置間で送信され又は受信され得る。
【０１０９】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１１０】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
を備える画像処理装置。
（２）
前記操作量は、前記第１の位置と前記第２の位置との間の差分に応じた並行移動量である、前記（１）に記載の画像処理装置。
（３）
前記操作量は、前記第１の姿勢と前記第２の姿勢との間の差分に応じた回転量である、前記（１）に記載の画像処理装置。
（４）
前記第１の時点は、前記端末において第１のユーザ入力が検出された時点であり、
前記第２の時点は、前記端末において第２のユーザ入力が検出された時点である、
前記（１）〜（３）のいずれか１項に記載の画像処理装置。
（５）
前記第１のユーザ入力及び前記第２のユーザ入力は、一連の操作の開始及び終了にそれぞれ対応する、前記（４）に記載の画像処理装置。
（６）
前記第１の位置又は前記第２の位置は、前記端末の画面上でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされる位置である、前記（４）又は前記（５）に記載の画像処理装置。
（７）
前記操作制御部は、前記第１のユーザ入力に基づいて、操作すべき前記仮想オブジェクトを特定する、前記（４）〜（６）のいずれか１項に記載の画像処理装置。
（８）
前記操作制御部は、前記第１のユーザ入力によって指定される前記環境内の物体と関連付けられる仮想オブジェクトを、操作すべき前記仮想オブジェクトとして特定する、前記（７）に記載の画像処理装置。
（９）
前記認識部、前記計算部及び前記操作制御部のうち少なくとも１つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、前記（１）〜（８）のいずれか１項に記載の画像処理装置。
（１０）
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、
前記環境認識行列の逆行列を計算することと、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御することと、
を含む画像処理方法。
（１１）
コンピュータを、
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
として機能させるためのプログラム。
【符号の説明】
【０１１１】
１００    画像処理装置（端末）
１２０    画像取得部
１３０    認識部
１４０    計算部
１７０    操作制御部
１８０    表示制御部
【図１】
2013118373.tif 000010
【図２】
2013118373.tif 000011
【図３】
2013118373.tif 000012
【図４】
2013118373.tif 000013
【図５】
2013118373.tif 000014
【図６】
2013118373.tif 000015
【図７】
2013118373.tif 000016
【図８】
2013118373.tif 000017
【図９】
2013118373.tif 000018
【図１０】
2013118373.tif 000019
【図１１】
2013118373.tif 000020
【図１２】
2013118373.tif 000021
【図１３】
2013118373.tif 000022
【図１４】
2013118373.tif 000023
【図１５】
2013118373.tif 000024
【図１６】
2013118373.tif 000025
【図１７】
2013118373.tif 000026
【図１８】
2013118373.tif 000027
【図１９Ａ】
2013118373.tif 000028
【図１９Ｂ】
2013118373.tif 000029
【手続補正書】
【提出日】平成27年1月30日(2015.1.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
を備える画像処理装置。
【請求項２】
前記操作量は、前記第１の位置と前記第２の位置との間の差分に応じた並行移動量である、請求項１に記載の画像処理装置。
【請求項３】
前記操作量は、前記第１の姿勢と前記第２の姿勢との間の差分に応じた回転量である、請求項１に記載の画像処理装置。
【請求項４】
前記第１の時点は、前記端末において第１のユーザ入力が検出された時点であり、
前記第２の時点は、前記端末において第２のユーザ入力が検出された時点である、
請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第１のユーザ入力及び前記第２のユーザ入力は、一連の操作の開始及び終了にそれぞれ対応する、請求項４に記載の画像処理装置。
【請求項６】
前記第１の位置又は前記第２の位置は、前記端末の画面上でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされる位置である、請求項４又は５に記載の画像処理装置。
【請求項７】
前記操作制御部は、前記第１のユーザ入力に基づいて、操作すべき前記仮想オブジェクトを特定する、請求項４〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記操作制御部は、前記第１のユーザ入力によって指定される前記環境内の物体と関連付けられる仮想オブジェクトを、操作すべき前記仮想オブジェクトとして特定する、請求項７に記載の画像処理装置。
【請求項９】
前記認識部、前記計算部及び前記操作制御部のうち少なくとも１つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、請求項１〜８のいずれか１項に記載の画像処理装置。
【請求項１０】
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、
前記環境認識行列の逆行列を計算することと、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御することと、
を含む画像処理方法。
【請求項１１】
コンピュータを、
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第１の時点で認識される前記環境認識行列の前記逆行列に基づく第１の位置又は第１の姿勢と、後続する第２の時点で認識される前記環境認識行列の前記逆行列に基づく第２の位置又は第２の姿勢との間の差分に応じた３次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
として機能させるためのプログラム。
【国際調査報告】
2013118373.tif 000030
2013118373.tif 000031
2013118373.tif 000032
2013118373.tif 000033