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

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

Info

Publication number
JP6304305B2
JP6304305B2 JP2016103857A JP2016103857A JP6304305B2 JP 6304305 B2 JP6304305 B2 JP 6304305B2 JP 2016103857 A JP2016103857 A JP 2016103857A JP 2016103857 A JP2016103857 A JP 2016103857A JP 6304305 B2 JP6304305 B2 JP 6304305B2
Authority
JP
Japan
Prior art keywords
virtual object
user
matrix
terminal
orientation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016103857A
Other languages
English (en)
Other versions
JP2016177834A (ja
Inventor
俊一 笠原
俊一 笠原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2016103857A priority Critical patent/JP6304305B2/ja
Publication of JP2016177834A publication Critical patent/JP2016177834A/ja
Application granted granted Critical
Publication of JP6304305B2 publication Critical patent/JP6304305B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Description

本開示は、画像処理装置、画像処理方法及びプログラムに関する。
近年、実世界に付加的な情報を重畳してユーザに呈示する拡張現実(AR:Augmented Reality)と呼ばれる技術が注目されている。AR技術においてユーザに呈示される情報は、アノテーションとも呼ばれ、テキスト、アイコン又はアニメーションなどの様々な形態の仮想的なオブジェクトを用いて可視化され得る。既存のAR技術において、仮想オブジェクトをAR空間に配置する役割は、主にARアプリケーションの開発者が担っている。開発者は、どの仮想オブジェクトをAR空間のどこにどういった姿勢で配置するかを決定する。決定された仮想オブジェクトの配置は、何らかの環境(例えば、実世界の特定の空間、場所、物体又は物体の集合など)と関連付けてデータとして記憶される。その結果、その環境をエンドユーザが撮像装置で撮像するとそこに関連付けられた仮想オブジェクトが撮像画像に重畳されるという、ARアプリケーションが実現される。
下記非特許文献1は、仮想オブジェクトを配置する前の段階で実空間をモデリングするための技術の一例を示している。下記非特許文献2は、仮想オブジェクトを撮像画像に重畳する際に必要とされる撮像装置の位置及び姿勢を算出することを目的とした、自然マーカを利用した技術の一例を示している。
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)
しかしながら、既存のAR技術では、ARアプリケーションの開発者のような専門知識を有する者でなければ、AR空間に仮想オブジェクトを適切に配置することが困難であった。これに対し、専門知識を有しない一般のユーザでもAR空間に仮想オブジェクトを簡易かつ自在に配置してこれを閲覧又は共有することが可能となれば、ARアプリケーションの用途が広がり、AR技術のメリットがより多くのユーザに享受されるものと期待される。
従って、本開示に係る技術は、AR空間に仮想オブジェクトを簡易かつ自在に配置することのできる仕組みを提供しようとするものである。
本開示によれば、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、前記環境認識行列の前記逆行列に基づく位置及び姿勢を有する仮想オブジェクトを前記環境内に配置するオブジェクト配置部と、を備える画像処理装置が提供される。
また、本開示によれば、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、前記環境認識行列の逆行列を計算することと、前記環境認識行列の前記逆行列に基づく位置及び姿勢を有する仮想オブジェクトを前記環境内に配置することと、を含む画像処理方法が提供される。
また、本開示によれば、コンピュータを、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、前記環境認識行列の前記逆行列に基づく位置及び姿勢を有する仮想オブジェクトを前記環境内に配置するオブジェクト配置部と、として機能させるためのプログラムが提供される。
本開示に係る技術によれば、AR空間に仮想オブジェクトを簡易かつ自在に配置することのできる仕組みが提供される。
本開示に係る技術が適用され得る環境の一例を示す説明図である。 本開示に係る技術の基本的な原理について説明するための第1の説明図である。 本開示に係る技術の基本的な原理について説明するための第2の説明図である。 本開示に係る技術の基本的な原理について説明するための第3の説明図である。 本開示に係る技術の基本的な原理について説明するための第4の説明図である。 例示的なシナリオに沿って仮想オブジェクトが配置される様子を示す第1の説明図である。 例示的なシナリオに沿って仮想オブジェクトが配置される様子を示す第2の説明図である。 オブジェクト配置データの基本的な構成例について説明するための説明図である。 本開示に係る技術の基本的な原理について説明するための第5の説明図である。 第1の実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。 第1の実施形態に係る画像処理装置の構成の一例を示すブロック図である。 第1の操作シナリオに沿って新たな仮想オブジェクトが基準環境内に配置される様子を示す説明図である。 第2の操作シナリオに沿って配置済みの仮想オブジェクトが移動される様子を示す説明図である。 基準環境の乗り換えについて説明するための説明図である。 第1の実施形態に係る画像処理の流れの一例を示すフローチャートである。 図14に例示したオブジェクト配置処理の詳細な流れの一例を示すフローチャートである。 仮想オブジェクトの基準面の判定について説明するための説明図である。 仮想オブジェクトの距離に応じた表示について説明するための説明図である。 仮想オブジェクトの整列表示について説明するための説明図である。 オブジェクト配置行列の連続的な記憶について説明するための説明図である。 第2の実施形態に係る画像処理システムについて説明するための第1の説明図である。 第2の実施形態に係る画像処理システムについて説明するための第2の説明図である。 第2の実施形態に係る画像処理システムについて説明するための第3の説明図である。 第2の実施形態に係る管理サーバの構成の一例を示すブロック図である。 オブジェクト配置データの一例について説明するための説明図である。 オブジェクトデータの一例について説明するための説明図である。 第2の実施形態に係る端末装置の構成の一例を示すブロック図である。 第2の実施形態における仮想オブジェクトの表示の第1の例を示す説明図である。 第2の実施形態における仮想オブジェクトの表示の第2の例を示す説明図である。 第2の実施形態における通信アプリケーションの起動について説明するための説明図である。 第2の実施形態に係る装置間の処理の流れの一例を示すシーケンス図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下の順序で説明を行う。
1.基本的な原理
1−1.概要
1−2.基本的なパラメータ
1−3.パラメータの記憶
1−4.仮想オブジェクトの表示
2.第1の実施形態
2−1.ハードウェア構成
2−2.機能構成
2−3.操作シナリオ
2−4.処理の流れ
2−5.表示のバリエーション
2−6.応用例
3.第2の実施形態
3−1.システムの概要
3−2.サーバの構成
3−3.端末の構成
3−4.処理の流れ
4.まとめ
<1.基本的な原理>
まず、図1〜図8を用いて、本開示に係る技術の基本的な原理について説明する。
[1−1.概要]
図1は、本開示に係る技術が適用され得る環境の一例を示す説明図である。図1を参照すると、環境1、及び環境1を映す画像を撮像する画像処理装置100が示されている。図1の例において、環境1には、テーブル11、本12及びコーヒーカップ13が存在している。画像処理装置100は、典型的には、撮像部(図示せず)及び表示部110を備える。画像処理装置100の撮像部は、環境1を映す映像を構成する一連の画像を撮像する。そして、画像処理装置100は、撮像画像を入力画像として画像処理を行い、3次元空間に仮想オブジェクトを配置する。画像処理装置100の表示部110は、仮想オブジェクトが重畳された出力画像を表示する。
画像処理装置100は、仮想オブジェクトを何らかの基準環境内に配置する。即ち、仮想オブジェクトの位置及び姿勢は、基準環境と関連付けられる座標系(以下、基準座標系という)において定義される。以下の説明では、テーブル11、本12及びコーヒーカップ13を含む環境1が、基準環境であるものとする。実際には、基準環境は、屋内であるか屋外であるかを問わず、任意の環境であってよい。他の実施形態として、物体固有の座標系を有する1つの物体が基準環境として扱われてもよい。その場合、物体固有の座標系が基準座標系となる。
図1では、画像処理装置100の一例としてタブレットPCを示している。しかしながら、画像処理装置100は、かかる例に限定されない。画像処理装置100は、例えば、ノートブックPC、ポケットPC、スマートフォン、ゲーム端末、PND(Portable Navigation Device)、コンテンツプレーヤ又はデジタル家電機器などであってもよい。
[1−2.基本的なパラメータ]
本開示に係る技術において、基準環境内に配置される仮想オブジェクトの位置及び姿勢は、いくつかのパラメータを用いた計算を通じて決定される。最も基本的なパラメータは、環境認識行列である。
(1)環境認識行列
環境認識行列は、入力画像を撮像した端末の基準環境内の位置及び姿勢を基準として、基準環境の位置及び姿勢を表現する行列である。環境認識行列は、典型的には、3次元空間内の並行移動、回転及びスケーリング(拡大/縮小)を表す座標変換行列(例えば、4行4列の同次変換行列)であってよい。
図2を参照すると、基準環境1と関連付けられる基準座標系CS、及び画像処理装置100の装置固有の座標系CSが示されている。装置固有の座標系CSは、例えば、表示部110の画面の2次元座標軸と奥行き軸とにより構成され得る。画像処理装置100の装置固有の座標系CSを基準とする基準座標系CSの相対的な位置及び姿勢は、公知の画像認識技術を活用することにより、入力画像を用いて認識され得る。ここで活用される画像認識技術とは、例えば、SfM(Structure from Motion)法、SLAM(Simultaneous Localization And Mapping)法、又は上記非特許文献1若しくは2に記載されている手法などであってよい。その代わりに、赤外線センサを用いたより簡易な環境認識技術が活用されてもよい。
ここで、画像処理装置100の装置固有の座標系CSの位置及び姿勢が、単位行列Mにより表現されるものと仮定する。すると、基準環境1内の任意の位置及び姿勢を行列Mからの座標変換(並行移動、回転及びスケーリング)として認識することが可能となる。従って、位置及び姿勢のセットが1つの座標変換行列によって表現される。上述した環境認識行列は、そうした座標変換行列の1つである。環境認識行列Mrecogは、画像処理装置100の位置及び姿勢(即ち単位行列M)を基準として、基準座標系CSの位置及び姿勢を表現する。
(2)オブジェクト配置行列
上述した前提の下で、環境認識行列Mrecogの逆行列Mrecog −1は、基準座標系CSの位置及び姿勢を基準とした画像処理装置100の位置及び姿勢を表現する行列となる。本開示に係る技術において、仮想オブジェクトは、このような環境認識行列の逆行列Mrecog −1に基づく位置及び姿勢で基準環境内に配置される。図3は、環境認識行列の逆行列Mrecog −1が表現する座標変換を概念的に示している。
オブジェクト配置行列Marrangeは、配置される仮想オブジェクトの位置及び姿勢を表現する行列である。オブジェクト配置行列Marrangeは、例えば、次式のように、環境認識行列の逆行列Mrecog −1と等しくてもよい。この場合、仮想オブジェクトは、当該仮想オブジェクトが配置される時点の画像処理装置100の位置及び姿勢と同じ位置及び姿勢で配置される。
Figure 0006304305
但し、仮想オブジェクトの位置及び姿勢を画像処理装置100の位置及び姿勢に完全には一致させない場合には、次に説明するようなオフセット行列が用いられてもよい。
(3)オフセット行列
図4は、オフセット行列の一例としての前方オフセット行列Toffsetを算入して決定されるオブジェクト配置行列Marrangeを概念的に示している。前方オフセット行列Toffsetは、画像処理装置100の位置から入力画像の撮像方向(奥行き方向)への所定の距離の並行移動を表現する座標変換行列である。前方オフセット行列Toffsetが算入される場合、オブジェクト配置行列Marrangeは、次式のように計算され得る。
Figure 0006304305
このように前方オフセット行列Toffsetを算入して仮想オブジェクトを画像処理装置100の前方に配置することにより、ユーザは、画像処理装置100を動かすことなく、配置された仮想オブジェクトを画面上で直ちに視認することができる。
図5は、オフセット行列の一例としての操作オフセット行列Ttouchを算入して決定されるオブジェクト配置行列Marrangeを概念的に示している。操作オフセット行列Ttouchは、画像処理装置100の画面上でのユーザ入力位置に応じて決定される、当該画面に沿った方向への並行移動を表現する座標変換行列である。操作オフセット行列Ttouchが算入される場合、オブジェクト配置行列Marrangeは、次式のように計算され得る。
Figure 0006304305
このように操作オフセット行列Ttouchが算入される場合、ユーザにとって、画像処理装置100を動かす代わりに画面上の所望の位置で操作(例えば、タッチ又はクリックなど)を行うことで、仮想オブジェクトの配置を細かく調整することが容易となる。
[1−3.パラメータの記憶]
上述した原理に従って仮想オブジェクトの配置が確定すると、オブジェクト配置行列Marrangeが基準環境と関連付けて記憶される。
例えば、図6A〜図6Bのシナリオを参照すると、まず、時刻t1において、仮想オブジェクトV01が基準環境1内に配置される。仮想オブジェクトV01の位置及び姿勢は、オブジェクト配置行列Marrange(t1)により表現される(図6A参照)。次に、時刻t2において、仮想オブジェクトV02が基準環境1内に配置される。仮想オブジェクトV02の位置及び姿勢は、オブジェクト配置行列Marrange(t2)により表現される(図6B参照)。
その結果、例えば、図7に例示したようなオブジェクト配置データが形成され得る。図7の例において、オブジェクト配置データは、「基準環境」、「オブジェクトID」、「配置」及び「時刻」という4つのデータ項目を有する。「基準環境」は、各仮想オブジェクトが配置された環境を識別する識別子である。「オブジェクトID」は、各仮想オブジェクトを一意に識別するための識別子である。「配置」は、各仮想オブジェクトのオブジェクト配置行列を格納するデータ項目である。「時刻」は、各仮想オブジェクトが配置された時刻を示す。このようなオブジェクト配置データを用いて、仮想オブジェクトの表示が行われ得る。
[1−4.仮想オブジェクトの表示]
仮想オブジェクトが配置された後、端末と基準環境との間の位置関係が変わった状況を想定する。端末が移動し若しくは基準環境が移動し、又はその双方のケースで、この状況は想定され得る。なお、本明細書において、特に「並行」移動と明示されない場合には、「移動」との用語は並行移動及び回転の双方を含み得るものとする。上述した状況において、画像処理装置100の画面上での仮想オブジェクトの表示は、記憶されているオブジェクト配置行列Marrangeと最新の時点で認識される環境認識行列Mrecogとにより表現される位置及び姿勢で行われる。例えば、図6Bに示した時刻t2における画像処理装置100からの仮想オブジェクトV01の見え方は、オブジェクト配置行列Marrange(t1)と時刻t2における環境認識行列Mrecog(t2)との積に相当する次のような座標変換として表現され得る。
Figure 0006304305
図8は、式(4)により表現される座標変換を概念的に示している。図8の出力画像Im1には、オブジェクト配置行列Marrange(t1)と環境認識行列Mrecog(t2)とにより表現される位置及び姿勢で、仮想オブジェクトV01が表示されている。
本節で説明した原理に従って、ユーザは、画像処理装置100のような端末を動かしながらこれを操作することにより、基準環境内に所望の位置及び姿勢で仮想オブジェクトを配置することができる。また、オブジェクト配置行列が基準座標系と関連付けて記憶されるため、端末と基準環境との間の位置関係が変化する場合にも、基準環境に対する相対的な仮想オブジェクトの位置及び姿勢が維持されるように、仮想オブジェクトを表示することができる。このような原理によれば、仮想オブジェクトの配置を目的とする、基準環境に付箋を貼るような直感的なユーザインタフェースが提供され得る。
以下、上述した原理に基づく、本開示に係る技術の2つの例示的な実施形態について詳細に説明する。
<2.第1の実施形態>
第1の実施形態では、図1に例示した画像処理装置100により仮想オブジェクトが配置される。配置された仮想オブジェクトは、画像処理装置100の画面に表示される。
[2−1.ハードウェア構成]
図9は、第1の実施形態に係る画像処理装置100のハードウェア構成の一例を示すブロック図である。図9を参照すると、画像処理装置100は、撮像部102、センサ部104、入力部106、記憶部108、表示部110、通信部112、バス116及び制御部118を備える。
(1)撮像部
撮像部102は、画像を撮像するカメラモジュールである。撮像部102は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を用いて実空間を撮像し、撮像画像を生成する。撮像部102により生成される一連の撮像画像は、映像を構成する。なお、撮像部102は、必ずしも画像処理装置100の一部でなくてもよい。例えば、画像処理装置100と有線又は無線で接続される撮像装置が撮像部102として扱われてもよい。また、撮像部102は、撮像部102と被写体との間の距離を画素ごとに測定する深度(depth)センサを含んでいてもよい。深度センサから出力される深度データは、環境の認識のために利用され得る。
(2)センサ部
センサ部104は、測位センサ、加速度センサ及びジャイロセンサなどの様々なセンサを含み得る。センサ部104において得られる測定結果は、環境の認識の支援、地理的な位置に特化したデータの取得、又はユーザ入力の検出などの様々な用途のために利用されてよい。なお、センサ部104は、画像処理装置100の構成から省略されてもよい。
(3)入力部
入力部106は、ユーザが画像処理装置100を操作し又は画像処理装置100へ情報を入力するために使用される入力デバイスである。入力部106は、例えば、表示部110の画面上へのユーザによるタッチを検出するタッチセンサを含んでもよい。その代わりに(又はそれに加えて)、入力部106は、マウス若しくはタッチパッドなどのポインティングデバイスを含んでもよい。さらに、入力部106は、キーボード、キーパッド、ボタン又はスイッチなどのその他の種類の入力デバイスを含んでもよい。
(4)記憶部
記憶部108は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、画像処理装置100による処理のためのプログラム及びデータを記憶する。記憶部108により記憶されるデータは、例えば、撮像画像データ、センサデータ及び後に説明するデータベース(DB)内のデータを含み得る。なお、本明細書で説明するプログラム及びデータの一部は、記憶部108により記憶されることなく、外部のデータソース(例えば、データサーバ、ネットワークストレージ又は外付けメモリなど)から取得されてもよい。
(5)表示部
表示部110は、LCD(Liquid Crystal Display)、OLED(Organic light-Emitting Diode)又はCRT(Cathode Ray Tube)などのディスプレイを含む表示モジュールである。表示部110は、例えば、画像処理装置100により生成される出力画像を表示するために使用される。なお、表示部110もまた、必ずしも画像処理装置100の一部でなくてもよい。例えば、画像処理装置100と有線又は無線で接続される表示装置が表示部110として扱われてもよい。
(6)通信部
通信部112は、画像処理装置100による他の装置との間の通信を仲介する通信インタフェースである。通信部112は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、他の装置との間の通信接続を確立する。
(7)バス
バス116は、撮像部102、センサ部104、入力部106、記憶部108、表示部110、通信部112及び制御部118を相互に接続する。
(8)制御部
制御部118は、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)などのプロセッサに相当する。制御部118は、記憶部108又は他の記憶媒体に記憶されるプログラムを実行することにより、後に説明する画像処理装置100の様々な機能を動作させる。
[2−2.機能構成]
図10は、図9に示した画像処理装置100の記憶部108及び制御部118により実現される論理的機能の構成の一例を示すブロック図である。図10を参照すると、画像処理装置100は、画像取得部120、認識部130、計算部140、オブジェクト配置部150、オブジェクトDB160、操作制御部180及び表示制御部190を備える。
(1)画像取得部
画像取得部120は、撮像部102により生成される撮像画像を入力画像として取得する。画像取得部120により取得される入力画像は、実空間を映す映像を構成する個々のフレームであってよい。画像取得部120は、取得した入力画像を、認識部130及び表示制御部190へ出力する。
(2)認識部
認識部130は、画像取得部120から入力される入力画像を用いて、基準環境の位置及び姿勢を表現する上述した環境認識行列を認識する。認識部130は、環境認識行列を認識するために、SfM法又はSLAM法などの公知の画像認識技術を活用し得る。その代わりに又はそれに加えて、認識部130は、撮像部102に設けられ得る深度センサからの深度データに基づいて、環境認識行列を認識してもよい。また、認識部130は、赤外線測距システム又はモーションキャプチャシステムなどの環境認識システムからの出力データに基づいて、環境認識行列を認識してもよい。
例えば、SLAM法が活用される場合には、認識部130は、端末の位置、姿勢、速度及び角速度、並びに入力画像に映る1つ以上の特徴点の位置を含む状態変数を、拡張カルマンフィルタの原理に基づいてフレームごとに更新する。それにより、端末の位置及び姿勢を基準とする基準環境の位置及び姿勢を、単眼カメラからの入力画像を用いて認識することができる。認識部130は、認識した基準環境の位置及び姿勢を、端末の位置及び姿勢からの座標変換に相当する環境認識行列Mrecogによって表現する。なお、SLAM法の詳しい説明は、“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)に記載されている。
認識部130は、このように認識される環境認識行列Mrecogを、計算部140及びオブジェクト配置部150へ出力する。
(3)計算部
計算部140は、認識部130から入力される環境認識行列の逆行列Mrecog −1を計算する。例えば、環境認識行列Mrecogは、4行4列の同次変換行列である。従って、環境認識行列の逆行列Mrecog −1もまた4行4列の同次変換行列であり、Mrecog・Mrecog −1=M(単位行列)を満たす。環境認識行列の逆行列Mrecog −1は、基準座標系の位置及び姿勢から端末の位置及び姿勢への座標変換を表現する。計算部140は、計算した環境認識行列の逆行列Mrecog −1をオブジェクト配置部150へ出力する。
(4)オブジェクト配置部
オブジェクト配置部150は、環境認識行列の逆行列Mrecog −1に基づく位置及び姿勢を有する仮想オブジェクトを、基準環境内に配置する。配置される仮想オブジェクトの位置及び姿勢は、上述したオブジェクト配置行列Marrangeにより表現される。添付図面では、仮想オブジェクトの位置及び姿勢を簡明に示すために、矩形の仮想オブジェクトが主に描かれる。しかしながら、オブジェクト配置部150により配置される仮想オブジェクトは、いかなる形状を有していてもよい。また、当該仮想オブジェクトは、いかなる種類の情報を呈示するオブジェクトであってもよい。
オブジェクト配置部150は、例えば、上記式(1)に従って、環境認識行列の逆行列Mrecog −1により表現される位置及び姿勢で、端末の位置及び姿勢に重ねるように仮想オブジェクトを配置してもよい。また、オブジェクト配置部150は、端末の位置及び姿勢から、上述した前方オフセット行列及び操作オフセット行列の一方又は双方を用いてオフセットされる位置に、仮想オブジェクトを配置してもよい。
前方オフセット行列Toffsetが用いられる場合には、オブジェクト配置部150は、上記式(2)に従って、環境認識行列の逆行列Mrecog −1により表現される位置から入力画像の撮像方向にオフセットされる位置に、仮想オブジェクトを配置し得る。また、操作オフセット行列Ttouchが用いられる場合には、オブジェクト配置部150は、上記式(3)に従って、画面上でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされた位置に、仮想オブジェクトを配置し得る。
オブジェクト配置部150は、基準環境内に配置した仮想オブジェクトのオブジェクト配置行列Marrange(及び他のパラメータ)を、表示制御部190へ出力する。また、オブジェクト配置部150は、操作制御部180により所定のユーザ入力が検出された場合に、オブジェクト配置行列Marrangeを基準環境と関連付けてオブジェクトDB160に記憶させる。仮想オブジェクトの配置に関するユーザインタフェースの様々な例について、後にさらに説明する。
(5)オブジェクトDB
オブジェクトDB160は、オブジェクト配置部150により配置される仮想オブジェクトのオブジェクト配置行列を記憶するデータベースである。オブジェクトDB160は、図7に例示したような構成を有するオブジェクト配置データを記憶し得る。オブジェクトDB160において、オブジェクト配置行列は、いずれかの基準環境と関連付けられる。そして、オブジェクト配置データは、表示制御部190により仮想オブジェクトの表示処理が実行される際に、オブジェクトDB160から読み出される。
(6)操作制御部
操作制御部180は、画像処理装置100において実行されるARアプリケーションをユーザに操作させるためのユーザインタフェースを提供する。例えば、操作制御部180は、表示制御部190を介して、ARアプリケーションの操作を促す標識を画面に表示させる。そして、操作制御部180は、入力部106を介する様々なユーザ入力を検出する。
第1のユーザ入力は、仮想オブジェクトの暫定的な配置及び表示のトリガであってよく、第2のユーザ入力は、仮想オブジェクトの配置の確定及びオブジェクト配置行列の記憶のトリガであってよい。これら第1及び第2のユーザ入力は、それぞれ一連の操作の開始及び終了に対応するように定義され得る。一連の操作とは、例えば、タッチ又はドラッグに相当し得る。典型的には、タッチ又はドラッグの開始はプレス(Press)イベントとして検出され、タッチ又はドラッグの終了はリリース(Release)イベントとして検出される。このようなユーザインタフェースによれば、ユーザは、画面にタッチ(又はドラッグ)しつつ当該画面を見ながら端末を動かすという簡単かつ直感的な操作のみで、仮想オブジェクトの配置を所望の位置及び姿勢に自在に調整することができる。
操作制御部180は、上述したユーザ入力を検出すると、検出したユーザ入力の種類及び入力位置を示す入力情報を、オブジェクト配置部150へ出力する。なお、ユーザ入力の種類は、上述した例に限定されない。例えば、所定のキー若しくはボタンの押下、タッチジェスチャの認識、表情の認識、音声コマンドの認識、又はヘッドマウントディスプレイにおける視線の認識などが、ユーザ入力として定義されてもよい。
(7)表示制御部
表示制御部190は、オブジェクト配置部150による配置に従って、仮想オブジェクトを入力画像に重畳することにより、出力画像を生成する。そして、表示制御部190は、生成した出力画像を表示部110の画面に表示させる。仮想オブジェクトは、図8を用いて説明したように、当該仮想オブジェクトのオブジェクト配置行列と表示の時点で認識される環境認識行列とにより表現される位置及び姿勢で、入力画像に重畳される。例えば、表示制御部190による仮想オブジェクトの表示のトリガは、上述した第1のユーザ入力の検出であってもよい。その代わりに、表示制御部190による仮想オブジェクトの表示のトリガは、他の装置からのオブジェクト配置データの受信又は入力画像内の何らかのパターンの認識などであってもよい。
[2−3.操作シナリオ]
次に、図11〜図13を用いて、仮想オブジェクトの操作に関する2つの操作シナリオを説明する。第1の操作シナリオでは、新たな仮想オブジェクトが、基準環境内に配置される。第2の操作シナリオでは、配置済みの仮想オブジェクトがユーザによる操作を通じて移動される。
(1)新たな仮想オブジェクトの配置
図11は、第1の操作シナリオに沿って、新たな仮想オブジェクトが基準環境内に配置される様子を示している。
まず、時刻t10において、画像処理装置100は、テーブル11の上方に位置し、やや傾いた姿勢を有する。この時点で、ユーザ入力は検出されない。
次に、時刻t11において、プレス(Press)イベントが第1のユーザ入力として検出される。すると、オブジェクト配置部150は、画像処理装置100の前方に仮想オブジェクトV11を配置する。表示制御部190は、配置された仮想オブジェクトV11を画面に表示させる。
時刻t12において、ユーザは、プレスを継続したまま、画像処理装置100を右に回転させている。オブジェクト配置部150は、仮想オブジェクトV11から回転された姿勢を有する仮想オブジェクトV12を画像処理装置100の前方に配置する。即ち、ユーザによる操作が継続されている間、仮想オブジェクトの配置は、端末の位置及び姿勢に追随する。
次に、時刻t13において、リリース(Release)イベントが第2のユーザ入力として検出される。オブジェクト配置部150は、画像処理装置100の前方に仮想オブジェクトV13を配置し、仮想オブジェクトV13のオブジェクト配置行列をオブジェクトDB160に記憶させる。表示制御部190は、配置の確定した仮想オブジェクトV113を画面に表示させる。このような時刻t11〜t13にかけての一連の操作によって、ユーザは、新たな仮想オブジェクトを基準環境内に自在に配置することができる。
その後、時刻t14では、画像処理装置100は、時刻t13と比較して左に移動している。認識部130は、時刻t14の入力画像を用いて、新たな環境認識行列を認識する。すると、表示制御部190は、時刻t13において確定した仮想オブジェクトV13のオブジェクト配置行列と新たに認識された環境認識行列とにより表現される位置及び姿勢で、仮想オブジェクトV13を画面に表示させる。
(2)仮想オブジェクトの移動
上述したように、第1の操作シナリオによれば、ユーザによる操作が継続されている間、仮想オブジェクトの配置は、端末の位置及び姿勢に追随する。こうした追随動作は、配置済みの仮想オブジェクトについては、次のような仕組みによって実現され得る。
図12は、第2の操作シナリオに沿って、配置済みの仮想オブジェクトが移動される様子を示している。
時刻t20において、プレス(Press)イベントが検出される。表示制御部190は、例えばプレス位置に従って操作対象の仮想オブジェクトVを特定し、仮想オブジェクトVのオブジェクト配置行列Marrange(V)を取得する。そして、表示制御部190は、時刻t20における環境認識行列Mrecog(t20)とオブジェクト配置行列Marrange(V)との積である相対配置行列Mrelを計算する。ここで計算される相対配置行列Mrelは、リリース(Release)イベントが検出されるまで維持され、操作継続中の仮想オブジェクトVの表示のために使用される。
時刻t21において、ユーザは、プレスを継続したまま、画像処理装置100を右に回転させている。表示制御部190は、時刻t20において計算された相対配置行列Mrelを用いて、画像処理装置100に対する仮想オブジェクトVの相対的な位置及び姿勢が維持されるように、仮想オブジェクトVを画面に表示させる。
その後、時刻t22において、リリース(Release)イベントが検出される。認識部130は、時刻t22の入力画像を用いて、新たな環境認識行列Mrecog(t22)を認識する。すると、オブジェクト配置部150は、新たな環境認識行列の逆行列Mrecog −1(t22)と相対配置行列Mrelとの積である新たなオブジェクト配置行列M´arrange(V)を計算する。そして、オブジェクト配置部150は、新たなオブジェクト配置行列M´arrange(V)をオブジェクトDB160に記憶させる。
このような時刻t20〜t22にかけての一連の操作によって、ユーザは、配置済みの仮想オブジェクトを3次元空間内でドラッグするように自在に動かすことができる。なお、ここで説明するユーザインタフェースによって操作される仮想オブジェクトの数は、1つでなくてもよい。即ち、複数の仮想オブジェクトが一連の操作によってまとめて移動されてもよい。
(3)基準環境の乗り換え
上述した相対配置行列Mrelを用いることにより、仮想オブジェクトが関連付けられている基準環境を、異なる環境へ乗り換えることも可能となる。
図13は、基準環境の乗り換えについて説明するための説明図である。
時刻t30において、プレス(Press)イベントが検出される。表示制御部190は、例えばプレス位置に従って操作対象の仮想オブジェクトVを特定し、仮想オブジェクトVのオブジェクト配置行列Marrange(V)を取得する。ここでは、オブジェクト配置行列Marrange(V)は、基準座標系CSを有する基準環境En2に関連付けられているものとする。そして、表示制御部190は、時刻t30における環境認識行列Mrecog(t30)とオブジェクト配置行列Marrange(V)との積である相対配置行列Mrelを計算する。
時刻t31において、ユーザは、プレスを継続したまま、画像処理装置100を移動させている。表示制御部190は、時刻t30において計算された相対配置行列Mrelを用いて、画像処理装置100に対する仮想オブジェクトVの相対的な位置及び姿勢が維持されるように、仮想オブジェクトVを画面に表示させる。
その後、時刻t32において、リリース(Release)イベントが検出される。認識部130は、時刻t32の入力画像に映る新たな環境En3の位置及び姿勢を表現する新たな環境認識行列Mrecog(t32)を認識する。環境En3は、固有の座標系CSを有する。すると、オブジェクト配置部150は、新たな環境認識行列の逆行列Mrecog −1(t32)と相対配置行列Mrelとの積である新たなオブジェクト配置行列M´arrange(V)を計算する。そして、オブジェクト配置部150は、新たなオブジェクト配置行列M´arrange(V)を、新たな基準環境En3と関連付けてオブジェクトDB160に記憶させる。
このような時刻t30〜t32にかけての一連の操作によって、ユーザは、配置済みの仮想オブジェクトをある環境から他の環境へドラッグアンドドロップするように、あるいは付箋を貼り替えるように自在に動かすことができる。
[2−4.処理の流れ]
図14は、第1の実施形態に係る画像処理装置100による画像処理の流れの一例を示すフローチャートである。
図14を参照すると、まず、画像取得部120は、撮像部102により生成される撮像画像を入力画像として取得する(ステップS110)。そして、画像取得部120は、取得した入力画像を、認識部130及び表示制御部190へ出力する。
次に、認識部130は、画像取得部120から入力される入力画像を用いて、基準環境の位置及び姿勢を表現する環境認識行列Mrecogを認識する(ステップS120)。そして、認識部130は、認識した環境認識行列Mrecogを、計算部140、オブジェクト配置部150及び表示制御部190へ出力する。
次に、表示制御部190は、基準環境内に配置済みの仮想オブジェクトが存在する場合には、当該配置済みの仮想オブジェクトのオブジェクト配置データを、オブジェクトDB160から取得する(ステップS125)。そして、表示制御部190は、表示すべき仮想オブジェクトの各々について、環境認識行列Mrecogとオブジェクト配置行列Marrangeとの積である相対配置行列Mrelを計算する(ステップS130)。
次に、図14の画像処理は、操作状態に応じて分岐する。まず、ユーザにより所定の操作が開始され又は当該所定の操作が継続中である場合には、処理はステップS150へ進む(ステップS135)。また、それまでに継続されていた操作の終了が検出された場合には、処理はステップS160へ進む(ステップS140)。それ以外の場合には、処理はステップS170へ進む。
ステップS150では、図15を用いて詳細に説明されるオブジェクト配置処理が実行される。
ステップS160においても、図15を用いて詳細に説明されるオブジェクト配置処理が実行される。その後、操作対象の仮想オブジェクトについて新たに決定され又は更新されるオブジェクト配置行列が、オブジェクトDB160により記憶される(ステップS165)。
そして、表示制御部190は、操作対象の仮想オブジェクト及びその他の表示すべき仮想オブジェクトが重畳された出力画像を生成し、生成した出力画像を表示部110の画面に表示させる(ステップS170)。
図15は、図14のステップS150及びS160に相当するオブジェクト配置処理の詳細な流れの一例を示すフローチャートである。
図15のオブジェクト配置処理は、まず、操作対象の仮想オブジェクトが既存の(配置済みの)オブジェクトであるか否かに応じて分岐する(ステップS151)。操作対象の仮想オブジェクトが既存のオブジェクトではない場合には、処理はステップS157へ進む。一方、操作対象の仮想オブジェクトが既存のオブジェクトである場合には、処理はステップS152へ進む。
ステップS152において、オブジェクト配置処理は、さらに操作対象の仮想オブジェクトについて相対配置行列Mrelが計算済みであるか否かに応じて分岐する。相対配置行列Mrelが計算済みでない場合には、処理はステップS153へ進む。一方、相対配置行列Mrelが計算済みである場合には、処理はステップS155へ進む。
操作対象の仮想オブジェクトが既存のオブジェクトであって、相対配置行列Mrelが計算済みでない場合には、表示制御部190は、まず、操作対象の仮想オブジェクトのオブジェクト配置行列Marrangeを取得する(ステップS153)。そして、表示制御部190は、この時点の環境認識行列Mrecogと取得したオブジェクト配置行列Marrangeとに基づいて、相対配置行列Mrelを計算する(ステップS154)。
操作対象の仮想オブジェクトが既存のオブジェクトであって、相対配置行列Mrelが計算済みである場合には、表示制御部190は、まず、操作終了が検出されたか否かを判定する(ステップS155)。そして、操作終了が検出された場合には、表示制御部190は、相対配置行列Mrelとこの時点の環境認識行列Mrecogとに基づいて、操作対象の仮想オブジェクトのオブジェクト配置行列Marrangeを再計算する(ステップS156)。
新たな仮想オブジェクトが配置されようとしている場合には、計算部140により、認識部130から入力される環境認識行列の逆行列Mrecog −1が計算される(ステップS157)。また、オブジェクト配置部150は、前方オフセット行列Toffset及び操作オフセット行列Ttouchを決定する(ステップS158)。なお、これらオフセット行列が使用されない場合には、ステップS158の処理は省略されてもよい。そして、オブジェクト配置部150は、環境認識行列の逆行列Mrecog −1、前方オフセット行列Toffset及び操作オフセット行列Ttouchに基づいて、新たに配置される仮想オブジェクトのオブジェクト配置行列Marrangeを決定する(ステップS159)。
[2−5.表示のバリエーション]
本開示に係る技術において、仮想オブジェクトは、様々な形態で表示され得る。本項では、仮想オブジェクトの様々な表示のバリエーションについて説明する。
(1)基準面の判定
例えば、仮想オブジェクトは、予め定義される基準面を有してもよい。仮想オブジェクトがカード状の平面的な形状を有する場合には、一方の面が基準面、他方の面が非基準面として定義され得る。仮想オブジェクトが立体的な形状を有する場合には、当該仮想オブジェクトの基準面は、基準面から外へ向かう法線ベクトルによって識別され得る。このように仮想オブジェクトが基準面を有する場合、表示制御部190は、画像処理装置100の画面に当該仮想オブジェクトの基準面が映るか否かに応じて、当該仮想オブジェクトの表示を変化させてよい。
例えば、図16の例を参照すると、画像処理装置100の画面に2つの仮想オブジェクトV11及びV12が映っている。画像処理装置100の画面に映っている仮想オブジェクトV11の面は、非基準面である。画像処理装置100の画面に映っている仮想オブジェクトV12の面は、基準面である。従って、表示制御部190は、例えば、仮想オブジェクトV12の形状、スケール、透明度、色、解像度又はエッジの太さなどの表示属性を、仮想オブジェクトV11とは異なる値に設定し得る。また、表示制御部190は、仮想オブジェクトV11及びV12により示される情報の内容を、基準面が映っているか否かに応じて変化させてもよい。
このような表示の制御によって、表示される仮想オブジェクトがどの方向を向いているかをユーザが容易に把握することができる。
(2)距離に応じた表示
表示制御部190は、画像処理装置100と仮想オブジェクトとの間の距離に応じて、当該仮想オブジェクトの表示を変化させてもよい。
例えば、図17の例を参照すると、画像処理装置100の画面に4つの仮想オブジェクトV21、V22、V23及びV24が映っている。このうち、仮想オブジェクトV21及びV24は、仮想オブジェクトV22及びV23と比較して、画像処理装置100からより遠くに位置する。この場合、表示制御部190は、例えば、仮想オブジェクトV22及びV23がより明瞭にユーザに視認されるように、仮想オブジェクトV22及びV23のいずれかの表示属性を強調し得る。また、表示制御部190は、仮想オブジェクトV22及びV23について、より詳細な情報の内容を表示させてもよい。
このような表示の制御によって、多数の仮想オブジェクトが画面に表示されるような状況下で、ユーザがより関心を持っている(即ち、端末を近付けている)仮想オブジェクトの(又はその表示内容の)視認性を高めることができる。
(3)整列表示
表示制御部190は、所定の条件が満たされる場合に、表示すべき複数の仮想オブジェクトが所定の間隔を空けて整列するように、当該複数の仮想オブジェクトを再配置してもよい。
例えば、図18の例を参照すると、画像処理装置100の画面に6つの仮想オブジェクトV31〜V36が映っている。しかし、これら仮想オブジェクトがその配置の通りに表示されると、画面内で仮想オブジェクトが密集してしまい、仮想オブジェクトの視認性が低下する。そこで、例えば、表示制御部190は、所定のユーザ入力が検出された場合に、これら仮想オブジェクトを整列させる。図18の例では、画像処理装置100のより近くに位置する4つの仮想オブジェクトV32、V33、V35及びV36が、所定の間隔を空けて整列するように再配置されている。仮想オブジェクトを再配置させるための上記所定の条件は、ユーザ入力の代わりに、例えば画面内の仮想オブジェクトの個数が所定の閾値を上回ることなどであってもよい。
このような表示の制御によって、多数の仮想オブジェクトが画面に表示されるような状況下で、仮想オブジェクトの各々が示す情報の内容の視認性を高めることができる。
[2−6.応用例]
本開示に係る技術は、ここまでに説明したようなARアプリケーションに限定されず、様々な用途に応用され得る。本項では、2つの応用例について説明する。
(1)軌跡/アニメーションの記憶
例えば、オブジェクト配置部150は、記憶開始を指示するユーザ入力が検出された場合に、複数の画像にわたって、仮想オブジェクトのオブジェクト配置行列を基準環境と関連付けて連続的にオブジェクトDB160に記憶させる。それにより、移動する画像処理装置100の軌跡に沿った仮想オブジェクトの軌跡又は移動する仮想オブジェクトのアニメーションを簡易に生成することが可能となる。
例えば、表示制御部190は、連続的に記憶された複数のオブジェクト配置行列に従って仮想オブジェクトの複数のインスタンスを1つの入力画像に重畳することにより、仮想オブジェクトの軌跡を当該入力画像に映る環境内に表示させてもよい。また、表示制御部190は、連続的に記憶された複数のオブジェクト配置行列の各々に従って一連の入力画像の各々に仮想オブジェクトのインスタンスを順次重畳することにより、仮想オブジェクトが動くアニメーションを表示させてもよい。
図19の例を参照すると、時刻t41から時刻t44にかけて画像処理装置100が移動した軌跡に沿って、仮想オブジェクトVの4つのインスタンスのオブジェクト配置行列Marrange(t41)〜Marrange(t44)が、基準環境En1と関連付けて記憶されている。仮想オブジェクトVのこれら4つのインスタンスを1つのフレームに重畳すれば、仮想オブジェクトVの軌跡が表示される。一方、仮想オブジェクトVのこれら4つのインスタンスをそれぞれ対応するタイミングで別々のフレームに重畳すれば、仮想オブジェクトVの動くアニメーションが表示される。
表示制御部190は、異なる時点で記憶されたオブジェクト配置行列から、当該異なる時点の間の仮想オブジェクトの位置及び姿勢を表現する追加的なオブジェクト配置行列を補間してもよい。それにより、より少ないオブジェクト配置データからより時間解像度の高い軌跡又はアニメーションを生成することができる。また、ここでの補間手法として、例えば3次元スプライン曲線又はベジエ曲線を用いた曲線補間法を採用すれば、滑らかな補間が可能である。
(2)撮像位置及び撮像姿勢の記録
本開示に係る技術が撮像装置に搭載される場合には、撮像の履歴を被写体の環境と関連付けて記録することが可能となる。例えば、画像処理装置100がデジタルカメラ又は撮像機能を有する何らかの端末であるものと仮定する。その場合、入力画像は、何らかの被写体を映す写真である。オブジェクト配置部150は、写真が撮像された際の撮像位置及び撮像姿勢を記録するために、上述したオブジェクト配置行列をデータベースに登録する。その後、同じ環境において、登録されたオブジェクト配置行列に従って仮想オブジェクトが端末の画面に表示されると、ユーザは、どのような撮像位置及び撮像姿勢で写真が撮像されたかを事後的に知ることができる。オブジェクト配置行列の登録のトリガは、例えば、撮像指示に対応するユーザ入力(例えば、シャッターボタンの押下)であってよい。かかる構成によれば、撮像指示が検出された場合に自動的にオブジェクト配置行列がデータベースに登録されるため、写真を撮像するユーザに追加的な負担を課すことなく、撮像位置及び撮像姿勢を記録することが可能となる。
<3.第2の実施形態>
第2の実施形態では、上述した画像処理装置100と同等の構成をそれぞれ含む複数の端末装置300が、AR空間に配置される仮想オブジェクトを共有する。
[3−1.システムの概要]
図20を参照すると、第2の実施形態に係る画像処理システムを構成する管理サーバ200、端末装置300a及び端末装置300bが示されている。なお、本明細書において、端末装置300a及び端末装置300bを互いに区別する必要がない場合には、これらを端末装置300と総称する。
端末装置300は、仮想オブジェクトを何らかの基準環境内に配置する。図20の例では、基準環境として、テーブル11を含む1つの空間に相当する環境4が示されている。しかしながら、本開示に係る技術が適用される基準環境は、このような環境に限定されない。例えば、端末装置300aが存在する空間と端末装置300bが存在する空間とが異なる場合であっても、それら空間の間で共通する特徴点群若しくは物体が存在し、又は同視し得る校正された座標系が存在する場合には、それら空間に相当する複数の環境が1つの共通的な基準環境として扱われてよい。また、1つの空間において互いに異なる時刻に認識される環境が、1つの共通的な基準環境として扱われてもよい。
例えば、図21Aを参照すると、環境5a内に、端末装置300aと本15aとが存在する。図21Bを参照すると、環境5b内に、端末装置300bと本15bとが存在する。本15a及び本15bは、共通的な特徴点群を有する。従って、端末装置300a及び300bは、それら特徴点群を用いて1つの共通的な基準座標系CSを認識し、基準座標系CSと関連付けられる仮想オブジェクトを共有することができる。
管理サーバ200は、共有される仮想オブジェクトのデータを管理する情報処理装置である。管理サーバ200は、端末装置300とは別体に構成される装置であってもよく、又は端末装置300の一部であってもよい。
[3−2.サーバの構成]
図22は、管理サーバ200の構成の一例を示すブロック図である。図22を参照すると、管理サーバ200は、通信部210、制御部220及び記憶部250を備える。
通信部210は、管理サーバ200による他の装置との間の通信を仲介する通信インタフェースである。通信部210は、任意の無線通信プロトコル又は有線通信プロトコルをサポートし、他の装置との間の通信接続を確立する。
制御部220は、CPU又はDSPなどのプロセッサに相当する。制御部220は、記憶部250又は他の記憶媒体に記憶されるプログラムを実行することにより、管理サーバ200の機能を動作させる。ユーザ管理部230及びオブジェクト管理部240は、管理サーバ200の機能モジュールの一例である。
ユーザ管理部230は、仮想オブジェクトの共有に参加するユーザを管理する機能モジュールである。ユーザ管理部230は、例えば、ユーザの認証、ユーザのグルーピング及び端末装置300へのユーザ情報の提供などを制御する。
オブジェクト管理部240は、共有される仮想オブジェクトのデータを管理する機能モジュールである。オブジェクト管理部240は、例えば、基準環境に仮想オブジェクトを配置した端末装置300から、通信部210を介してデータ登録要求を受信する。データ登録要求には、共有される仮想オブジェクトのオブジェクト配置データが含まれる。オブジェクト管理部240は、仮想オブジェクトの形状及び仮想オブジェクトにより示される情報の内容を示すオブジェクトデータを、端末装置300から受信してもよい。オブジェクト管理部240は、かかるデータ登録要求の受信に応じて、オブジェクト配置データ及びオブジェクトデータを記憶部250に記憶させる。また、オブジェクト管理部240は、端末装置300からのデータ配信要求に応じて、又は定期的に、通信部210を介して、登録されているオブジェクト配置データ(及びオブジェクトデータ)を端末装置300へ配信する。
記憶部250は、半導体メモリ又はハードディスクなどの記憶媒体により構成され、管理サーバ200による処理のためのプログラム及びデータを記憶する。記憶部250により記憶されるデータは、オブジェクト配置データ252及びオブジェクトデータ254を含む。
図23には、一例としてのオブジェクト配置データ252が示されている。図23の例において、オブジェクト配置データ252は、「基準環境」、「オブジェクトID」、「作成者ID」及び「配置」という4つのデータ項目を有する。「基準環境」は、各仮想オブジェクトが配置された環境を識別する識別子である。「オブジェクトID」は、各仮想オブジェクトを一意に識別するための識別子である。「作成者ID」は、各仮想オブジェクトを配置したデバイス又はユーザを識別するための識別子である。「配置」は、各仮想オブジェクトのオブジェクト配置行列を格納するデータ項目である。
図24には、一例としてのオブジェクトデータ254が示されている。図24の例において、オブジェクトデータ254は、「オブジェクトID」、「表示属性データ」、「ユーザデータ」、「ステータス」及び「デバイスデータ」という5つのデータ項目を有する。「オブジェクトID」は、各仮想オブジェクトを一意に識別するための識別子である。「表示属性データ」は、各仮想オブジェクトの表示属性を定義するデータであり、端末装置300における当該仮想オブジェクトの表示のために用いられる。「ユーザデータ」、「ステータス」及び「デバイスデータ」は、各仮想オブジェクトを配置した端末に関連する関連情報の一例である。例えば、「ユーザデータ」は、当該端末のユーザの識別情報、名称又は顔写真データなどを含み得る。「ステータス」は、当該端末のユーザのプレゼンス情報又は操作ステータス情報などを含み得る。「デバイスデータ」は、当該端末の識別情報、名称又は外観データなどを含み得る。
オブジェクト管理部240は、図24に例示したような関連情報の少なくとも一部を端末装置300に配信し、配信した関連情報を仮想オブジェクトと共に端末装置300に表示させてよい。
[3−3.端末の構成]
端末装置300のハードウェア構成は、図9に例示した画像処理装置100のハードウェア構成と同様であってよい。図25は、端末装置300の論理的機能の構成の一例を示すブロック図である。図25を参照すると、端末装置300は、画像取得部120、データ取得部325、認識部130、計算部140、オブジェクト配置部350、登録部355、オブジェクトDB360、操作制御部380及び表示制御部390を備える。
(1)データ取得部
データ取得部325は、定期的に又はユーザからの指示に応じて、データ配信要求を管理サーバ200へ送信する。そして、データ取得部325は、他の端末との間で共有される仮想オブジェクトのオブジェクト配置データ及びオブジェクトデータを取得する。
データ取得部325により取得されるオブジェクト配置データは、他の端末により配置される仮想オブジェクトのオブジェクト配置行列を含む。当該オブジェクト配置行列は、他の端末において認識される環境認識行列の逆行列に基づいて決定される行列であって、当該他の端末により配置される仮想オブジェクトの基準環境内での位置及び姿勢を表現する。また、データ取得部325により取得されるオブジェクトデータは、仮想オブジェクトを配置した端末に関連する、図24に例示したような関連情報を含む。データ取得部325は、これらオブジェクト配置データ及びオブジェクトデータを、オブジェクトDB360に記憶させる。
(2)オブジェクト配置部
オブジェクト配置部350は、画像処理装置100のオブジェクト配置部150と同様、認識部130により認識される環境認識行列の逆行列に基づく位置及び姿勢を有する仮想オブジェクトを、基準環境内に配置する。配置される仮想オブジェクトの位置及び姿勢は、オブジェクト配置行列により表現される。
オブジェクト配置部350は、例えば、環境認識行列の逆行列Mrecog −1により表現される位置及び姿勢で、端末の位置及び姿勢に重ねるように仮想オブジェクトを配置してもよい。また、オブジェクト配置部350は、端末の位置及び姿勢から、上述した前方オフセット行列及び操作オフセット行列の一方又は双方を用いてオフセットされる位置に、仮想オブジェクトを配置してもよい。
オブジェクト配置部350は、基準環境内に配置した仮想オブジェクトのオブジェクト配置行列を、表示制御部390へ出力する。また、オブジェクト配置部350は、操作制御部380により所定のユーザ入力が検出された場合に、オブジェクト配置行列を、基準環境と関連付けてオブジェクトDB360に記憶させると共に、登録部355へ出力する。
(3)登録部
登録部355は、オブジェクト配置部350からオブジェクト配置行列が入力されると、通信部112を介してデータ登録要求を管理サーバ200へ送信する。データ登録要求には、オブジェクト配置行列と共に、仮想オブジェクトの表示属性を定義する表示属性データ及び上述した様々な関連情報が含まれてよい。
(4)オブジェクトDB
オブジェクトDB360は、画像処理装置100のオブジェクトDB160と同様、オブジェクト配置部350により配置される仮想オブジェクトのオブジェクト配置行列を記憶するデータベースである。さらに、オブジェクトDB360は、データ取得部325により管理サーバ200から受信されるオブジェクト配置データ及びオブジェクトデータを記憶する。オブジェクトDB360により記憶されるこれらデータは、表示制御部390により仮想オブジェクトの表示処理が実行される際に読み出される。
(5)操作制御部
操作制御部380は、画像処理装置100の操作制御部180と同様、端末装置300において実行されるARアプリケーションをユーザに操作させるためのユーザインタフェースを提供する。例えば、操作制御部380は、タッチ又はドラッグの開始から終了までの一連の操作を通じて、ユーザに仮想オブジェクトの配置を所望の位置及び姿勢に自在に調整させる。操作制御部380は、ユーザ入力を検出すると、検出したユーザ入力の種類及び入力位置を示す入力情報を、オブジェクト配置部350へ出力する。
(6)表示制御部
表示制御部390は、オブジェクトDB360により記憶されるオブジェクト配置データに従って、仮想オブジェクトを入力画像に重畳することにより、出力画像を生成する。そして、表示制御部390は、生成した出力画像を表示部110の画面に表示させる。
本実施形態において表示される仮想オブジェクトは、他の端末において基準環境内に配置された仮想オブジェクトを含む。他の端末において基準環境内に配置された仮想オブジェクトは、当該他の端末の入力画像に映る基準環境の位置及び姿勢を表現する第1の環境認識行列の逆行列に基づいて決定されるオブジェクト配置行列を有する。一方、認識部130は、画像取得部120により取得される入力画像に映る基準環境の位置及び姿勢を表現する第2の環境認識行列を認識する。この場合、表示制御部390は、図8を用いて説明した手法に従って、第2の環境認識行列と他の端末において配置された仮想オブジェクトのオブジェクト配置行列とにより表現される位置及び姿勢で、当該仮想オブジェクトを入力画像に重畳する。
第1の実施形態に係る表示制御部190と同様、表示制御部390は、仮想オブジェクトが基準面を有する場合、画像処理装置100の画面に当該仮想オブジェクトの基準面が映るか否かに応じて、当該仮想オブジェクトの表示を変化させてもよい。また、表示制御部390は、端末装置300と仮想オブジェクトとの間の距離に応じて、当該仮想オブジェクトの表示を変化させてもよい。また、表示制御部390は、所定の条件が満たされる場合に、表示すべき複数の仮想オブジェクトが所定の間隔を空けて整列するように、当該複数の仮想オブジェクトを再配置してもよい。
また、本実施形態において、表示制御部390は、仮想オブジェクトに対応する位置に当該仮想オブジェクトを配置した端末が存在しているか否かに応じて、当該仮想オブジェクトの表示を変化させてもよい。
例えば、画像に映る端末を識別する標識としての役割を有する仮想オブジェクトが用いられるものと仮定する。配置された仮想オブジェクトの近傍に当該仮想オブジェクトを配置した端末が存在する場合、実空間において当該端末が視認され得るため、当該端末(又はそのユーザ)の詳細な情報(ユーザデータ、ステータス及びデバイスデータなど)は必ずしも表示されなくよい。これに対し、配置された仮想オブジェクトの近傍に当該仮想オブジェクトを配置した端末が存在しない場合、当該端末(又はそのユーザ)のより詳細な情報が表示されることが有益である。
図26を参照すると、端末装置300bの画面に、端末装置300aにより配置された仮想オブジェクトVA1が表示されている。仮想オブジェクトVA1の近傍には、端末装置300aが存在する。このような状況において、表示制御部390は、端末装置300aのユーザについての簡易な情報(図26の例ではユーザID“Ua”)のみを仮想オブジェクトVA1に付加する。
一方、図27を参照すると、端末装置300bの画面に、端末装置300aにより配置された仮想オブジェクトVA1が再び表示されている。仮想オブジェクトVA1の近傍には、端末装置300aは存在しない。端末装置300aは、端末装置300bとは異なる空間(但し、共通的な基準環境を有する空間)に存在していてもよく、又は端末装置300bと同じ空間において過去に存在したのであってもよい。このような状況において、表示制御部390は、端末装置300aのユーザについての詳細な情報(図27の例ではユーザID、ステータス及び顔写真)を仮想オブジェクトVA1に付加する。それにより、端末装置300bのユーザは、視認されない端末装置300aのユーザの詳細を知ることができる。
表示制御部390は、例えば、図26又は図27に例示したような仮想オブジェクトを指定するユーザ入力が検出された場合に、当該仮想オブジェクトを配置した端末との間の通信を用いるアプリケーションを起動してもよい。ここで起動されるアプリケーションは、メーラ、インスタントメッセンジャ、SNS(Social Networking Service)ツール又はコンテンツ共有アプリケーションなどの任意のアプリケーションであってよい。図28の例では、端末装置300bのユーザが仮想オブジェクトVA1をタップすることにより、端末装置300aとの通信を開始するためにインスタントメッセンジャが起動されている。このような構成により、ユーザ間で仮想オブジェクトを介して手軽に通信をすることが可能となる。
[3−4.処理の流れ]
図29は、第2の実施形態に係る装置間の処理の流れの一例を示すシーケンス図である。
図29を参照すると、まず、端末装置300aからデータ配信要求が管理サーバ200へ送信され、管理サーバ200から応答が返される(ステップS210)。この時点では、基準環境に仮想オブジェクトは配置されていないものとする。従って、端末装置300aは、オブジェクト配置データを受信しない。同様に、端末装置300bからデータ配信要求が管理サーバ200へ送信され、管理サーバ200から応答が返される(ステップS215)。
次に、図14及び図15を用いて説明した画像処理を通じて、端末装置300aにより基準環境に仮想オブジェクトが配置される(ステップS220)。すると、端末装置300aは、データ登録要求を管理サーバ200へ送信する(ステップS225)。データ登録要求には、配置された仮想オブジェクトのオブジェクト配置行列が含まれる。
管理サーバ200は、データ登録要求を受信すると、オブジェクト配置行列及びその他のデータをデータベースに登録する(ステップS230)。そして、管理サーバ200は、登録完了を端末装置300aに通知する(ステップS235)。
その後、端末装置300aからデータ配信要求が再び管理サーバ200へ送信され、管理サーバ200から応答が返される(ステップS240)。また、端末装置300bからもデータ配信要求が管理サーバ200へ送信され、管理サーバ200から応答が返される(ステップS245)。この時点で、端末装置300aにより配置された仮想オブジェクトが管理サーバ200のデータベースに登録されているため、管理サーバ200から端末装置300bへオブジェクト配置データが配信され得る。
端末装置300aにより配置された仮想オブジェクトは、端末装置300aにおいて表示される(ステップS250)。また、端末装置300bにおいても、管理サーバ200から受信されたオブジェクト配置データを用いて、仮想オブジェクトが表示される(ステップS255)。この時点では、表示される仮想オブジェクトの近傍に端末装置300aが存在するため、端末装置300bにおいて簡易な情報のみが当該仮想オブジェクトに付加され得る。
その後、端末装置300aが端末装置300bの画面に映らない場所へ移動したものとする。端末装置300bは、引き続き管理サーバ200とのやり取りを行い(ステップS260)、仮想オブジェクトを表示する(ステップS265)。この時点で、表示される仮想オブジェクトの近傍に端末装置300aが存在しないため、端末装置300bにおいて端末装置300aの詳細な情報が当該仮想オブジェクトに付加され得る。
<4.まとめ>
ここまで、図1〜図29を用いて、本開示に係る技術の2つの実施形態について詳細に説明した。これら実施形態によれば、基準環境内の端末の位置及び姿勢を基準として基準環境の位置及び姿勢を表現する環境認識行列が認識され、認識された環境認識行列の逆行列に基づく位置及び姿勢で、仮想オブジェクトが基準環境内に配置される。従って、ユーザは、端末を3次元空間内で動かすことにより、AR空間に仮想オブジェクトを簡易かつ自在に配置することができる。また、仮想オブジェクトの配置が基準環境と関連付けられるため、共通する環境を認識可能な端末の間で、AR空間に配置された仮想オブジェクトを容易に共有することができる。
また、仮想オブジェクトの配置が環境認識行列の逆行列により表現される位置から画像の撮像方向にオフセットされることで、ユーザは、配置された仮想オブジェクトを画面上で直ちに視認することができる。よって、ユーザにとって、仮想オブジェクトを見ながらその配置を調整することも容易となる。
また、仮想オブジェクトの配置が環境認識行列の逆行列により表現される位置から画面でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされることで、ユーザは、端末を動かすことなく仮想オブジェクトの配置を細かく調整することができる。
また、仮想オブジェクトの配置はオブジェクト配置行列により表現され、当該オブジェクト配置行列と最新の環境認識行列とにより表現される位置及び姿勢で仮想オブジェクトが画面に表示され得る。それにより、端末と基準環境との間の位置関係が変化する場合にも、基準環境に対する相対的な仮想オブジェクトの位置及び姿勢が維持されるように、仮想オブジェクトを表示することができる。従って、付箋のように仮想オブジェクトをAR空間に貼りつけるような仮想オブジェクトの配置が可能となる。
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にRAM(Random Access Memory)に読み込まれ、CPUなどのプロセッサにより実行される。
また、各装置の論理的機能の一部は、当該装置上に実装される代わりに、クラウドコンピューティング環境内に存在する装置上に実装されてもよい。その場合には、論理的機能の間でやり取りされる情報が、図9に例示した通信部112を介して装置間で送信され又は受信され得る。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
前記環境認識行列の前記逆行列に基づく位置及び姿勢を有する仮想オブジェクトを前記環境内に配置するオブジェクト配置部と、
を備える画像処理装置。
(2)
前記オブジェクト配置部は、配置される前記仮想オブジェクトの位置及び姿勢を表現するオブジェクト配置行列を前記環境と関連付けて記憶媒体に記憶させる、前記(1)に記載の画像処理装置。
(3)
前記オブジェクト配置部は、前記環境認識行列の前記逆行列により表現される位置から前記画像の撮像方向にオフセットされた位置に前記仮想オブジェクトを配置する、前記(2)に記載の画像処理装置。
(4)
前記画像処理装置は、
第1の時点で前記オブジェクト配置行列が記憶され、後続する第2の時点で新たに前記環境認識行列が認識された場合に、前記オブジェクト配置行列と新たに認識された前記環境認識行列とにより表現される位置及び姿勢で前記仮想オブジェクトを前記端末の画面に表示させる表示制御部、
をさらに備える、前記(2)又は前記(3)に記載の画像処理装置。
(5)
前記オブジェクト配置部は、前記端末の画面上でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされた位置に前記仮想オブジェクトを配置する、前記(2)〜(4)のいずれか1項に記載の画像処理装置。
(6)
前記表示制御部は、第1のユーザ入力が検出された場合に、前記仮想オブジェクトを前記端末の画面に表示させ、
前記オブジェクト配置部は、第1のユーザ入力に後続する第2のユーザ入力が検出された場合に、前記表示制御部により表示されている前記仮想オブジェクトの前記オブジェクト配置行列を前記環境と関連付けて記憶媒体に記憶させる、
前記(4)に記載の画像処理装置。
(7)
前記第1のユーザ入力及び前記第2のユーザ入力は、一連の操作の開始及び終了にそれぞれ対応する、前記(6)に記載の画像処理装置。
(8)
前記表示制御部は、前記第1のユーザ入力の検出から前記第2のユーザ入力の検出までの間、前記第1のユーザ入力の検出の時点の前記端末に対する前記仮想オブジェクトの相対的な位置及び姿勢が維持されるように、前記仮想オブジェクトの表示を制御する、前記(6)又は前記(7)に記載の画像処理装置。
(9)
前記オブジェクト配置部は、前記第2のユーザ入力が検出された時点の画像から新たな環境が認識された場合に、表示されている前記仮想オブジェクトの位置及び姿勢を表現する新たな前記オブジェクト配置行列を前記新たな環境と関連付けて記憶媒体に記憶させる、前記(8)に記載の画像処理装置。
(10)
前記オブジェクト配置部は、第3のユーザ入力が検出された場合に、複数の画像にわたって前記オブジェクト配置行列を前記環境と関連付けて連続的に記憶媒体に記憶させる、前記(4)に記載の画像処理装置。
(11)
前記表示制御部は、連続的に記憶された前記オブジェクト配置行列を用いて、前記仮想オブジェクトの軌跡を前記環境内に表示させる、前記(10)に記載の画像処理装置。
(12)
前記表示制御部は、連続的に記憶された前記オブジェクト配置行列を用いて、前記仮想オブジェクトが前記環境内で動くアニメーションを表示させる、前記(10)に記載の画像処理装置。
(13)
前記表示制御部は、異なる時点で記憶された前記オブジェクト配置行列から、当該異なる時点の間の前記仮想オブジェクトの位置及び姿勢を補間する、前記(11)又は前記(12)に記載の画像処理装置。
(14)
前記端末は、撮像装置であり、
前記仮想オブジェクトは、前記画像の撮像位置及び撮像姿勢を記録するために前記環境内に配置される、
前記(2)〜(4)のいずれか1項に記載の画像処理装置。
(15)
前記オブジェクト配置部は、撮像指示に対応する第4のユーザ入力が検出された場合に、前記オブジェクト配置行列を記憶媒体に記憶させる、前記(14)に記載の画像処理装置。
(16)
前記仮想オブジェクトは、予め定義される基準面を有し、
前記表示制御部は、前記端末の画面に前記仮想オブジェクトの前記基準面が映るか否かに応じて、前記仮想オブジェクトの表示を変化させる、
前記(4)に記載の画像処理装置。
(17)
前記表示制御部は、前記端末と前記仮想オブジェクトとの間の距離に応じて、前記仮想オブジェクトの表示を変化させる、前記(4)に記載の画像処理装置。
(18)
前記表示制御部は、それぞれ前記オブジェクト配置行列を有する複数の前記仮想オブジェクトが存在する場合において、所定の条件が満たされるときに、複数の前記仮想オブジェクトを所定の間隔を空けて整列するように再配置する、前記(4)に記載の画像処理装置。
(19)
前記認識部、前記計算部及び前記オブジェクト配置部のうち少なくとも1つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、前記(1)〜(18)のいずれか1項に記載の画像処理装置。
(20)
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、
前記環境認識行列の逆行列を計算することと、
前記環境認識行列の前記逆行列に基づく位置及び姿勢を有する仮想オブジェクトを前記環境内に配置することと、
を含む画像処理方法。
(21)
コンピュータを、
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
前記環境認識行列の前記逆行列に基づく位置及び姿勢を有する仮想オブジェクトを前記環境内に配置するオブジェクト配置部と、
として機能させるためのプログラム。
100,300 画像処理装置(端末装置)
120 画像取得部
325 データ取得部
130 認識部
140 計算部
150,350 オブジェクト配置部
355 登録部
180,380 操作制御部
190,390 表示制御部

Claims (10)

  1. 端末において撮像された画像に映る環境に配置された仮想オブジェクトを取得するデータ取得部と、
    前記データ取得部において取得された前記仮想オブジェクトを、前記画像を撮像した端末の位置及び姿勢を基準として、前記画像に映る環境に配置するオブジェクト配置部と、
    を備え、
    前記オブジェクト配置部は、
    前記端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する第1の環境認識行列を認識し、
    前記データ取得部において取得された前記仮想オブジェクトの位置及び姿勢を表現するオブジェクト配置行列と、認識された前記第1の環境認識行列とにより表現される位置及び姿勢で、前記仮想オブジェクトを前記端末の画面に表示し、
    前記仮想オブジェクトは、前記端末を有する第1のユーザとは異なる第2のユーザによって過去に配置され、且つ、前記第2のユーザに関する付加情報が付加されており、
    前記第2のユーザが前記仮想オブジェクトの近傍に存在していない際に、前記第2のユーザによって配置された前記仮想オブジェクトへの、前記第1のユーザの入力の検出されたことを通じて、前記付加情報が前記第1のユーザの有する前記端末に送信され、
    前記仮想オブジェクトは、予め定義される基準面を有し、
    前記仮想オブジェクトの表示は、前記端末の画面に前記仮想オブジェクトの前記基準面が映るか否かに応じて変化し、
    前記オブジェクト配置行列は、前記第2のユーザの端末の位置及び姿勢を基準として、前記第2のユーザの端末が撮像した画像に映る環境の位置及び姿勢を表現する第2の環境認識行列の逆行列に基づいて決定されている、
    画像処理装置。
  2. 前記仮想オブジェクトは、前記オブジェクト配置部によって、少なくとも共通の特徴点群を有する環境が映る撮像画像に配置される、請求項1に記載の画像処理装置。
  3. 前記付加情報は、少なくとも、ユーザID、ステータス及び顔写真の1つを含む、請求項1又は2に記載の画像処理装置。
  4. 前記第2のユーザによって配置された前記仮想オブジェクトへの、前記第1のユーザの入力の検出を通じて、前記第1のユーザと前記第2のユーザとの間の通信が開始される、請求項1〜3のいずれか1項に記載の画像処理装置。
  5. 前記通信は、当該通信を開始するアプリケーションを起動することで開始される、請求項4に記載の画像処理装置。
  6. 前記第1のユーザの入力は、所定のキーもしくはボタンの押下、タッチジェスチャ、表情、音声コマンド、視線のいずれかである、請求項1〜5のいずれか1項に記載の画像処理装置。
  7. 前記オブジェクト配置部は、配置される前記仮想オブジェクトの位置及び姿勢を表現するパラメータを記憶媒体に記憶させる、請求項1〜6のいずれか1項に記載の画像処理装置。
  8. 前記端末の位置及び姿勢の変化に応じて、前記仮想オブジェクトの配置を変化させる、請求項1〜7のいずれか1項に記載の画像処理装置。
  9. 端末において撮像された画像に映る環境に配置された仮想オブジェクトを取得することと、
    取得された前記仮想オブジェクトを、前記画像を撮像した端末の位置及び姿勢を基準として、前記画像に映る環境に配置することと、
    を含み、
    を備え、
    前記仮想オブジェクトを配置することは、
    前記端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する第1の環境認識行列を認識し、
    取得された前記仮想オブジェクトの位置及び姿勢を表現するオブジェクト配置行列と、認識された前記第1の環境認識行列とにより表現される位置及び姿勢で、前記仮想オブジェクトを前記端末の画面に表示することと、
    を含み、
    前記仮想オブジェクトは、前記端末を有する第1のユーザとは異なる第2のユーザによって過去に配置され、且つ、前記第2のユーザに関する付加情報が付加されており、
    前記第2のユーザが前記仮想オブジェクトの近傍に存在していない際に、前記第2のユーザによって配置された前記仮想オブジェクトへの、前記第1のユーザの入力の検出されたことを通じて、前記付加情報が前記第1のユーザの有する前記端末に送信され、
    前記仮想オブジェクトは、予め定義される基準面を有し、
    前記仮想オブジェクトの表示は、前記端末の画面に前記仮想オブジェクトの前記基準面が映るか否かに応じて変化し、
    前記オブジェクト配置行列は、前記第2のユーザの端末の位置及び姿勢を基準として、前記第2のユーザの端末が撮像した画像に映る環境の位置及び姿勢を表現する第2の環境認識行列の逆行列に基づいて決定されている、
    画像処理方法。
  10. コンピュータを、
    端末において撮像された画像に映る環境に配置された仮想オブジェクトを取得するデータ取得部と、
    前記データ取得部において取得された前記仮想オブジェクトを、前記画像を撮像した端末の位置及び姿勢を基準として、前記画像に映る環境に配置するオブジェクト配置部と、
    して機能させるプログラムであって、
    前記オブジェクト配置部は、
    前記端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する第1の環境認識行列を認識し、
    前記データ取得部において取得された前記仮想オブジェクトの位置及び姿勢を表現するオブジェクト配置行列と、認識された前記第1の環境認識行列とにより表現される位置及び姿勢で、前記仮想オブジェクトを前記端末の画面に表示し、
    前記仮想オブジェクトは、前記端末を有する第1のユーザとは異なる第2のユーザによって過去に配置され、且つ、前記第2のユーザに関する付加情報が付加されており、
    前記第2のユーザが前記仮想オブジェクトの近傍に存在していない際に、前記第2のユーザによって配置された前記仮想オブジェクトへの、前記第1のユーザの入力の検出されたことを通じて、前記付加情報が前記第1のユーザの有する前記端末に送信され、
    前記仮想オブジェクトは、予め定義される基準面を有し、
    前記仮想オブジェクトの表示は、前記端末の画面に前記仮想オブジェクトの前記基準面が映るか否かに応じて変化し、
    前記オブジェクト配置行列は、前記第2のユーザの端末の位置及び姿勢を基準として、前記第2のユーザの端末が撮像した画像に映る環境の位置及び姿勢を表現する第2の環境認識行列の逆行列に基づいて決定されている、
    プログラム。
JP2016103857A 2016-05-25 2016-05-25 画像処理装置、画像処理方法及びプログラム Expired - Fee Related JP6304305B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016103857A JP6304305B2 (ja) 2016-05-25 2016-05-25 画像処理装置、画像処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016103857A JP6304305B2 (ja) 2016-05-25 2016-05-25 画像処理装置、画像処理方法及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012026872A Division JP5942456B2 (ja) 2012-02-10 2012-02-10 画像処理装置、画像処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2016177834A JP2016177834A (ja) 2016-10-06
JP6304305B2 true JP6304305B2 (ja) 2018-04-04

Family

ID=57071281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016103857A Expired - Fee Related JP6304305B2 (ja) 2016-05-25 2016-05-25 画像処理装置、画像処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6304305B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230021345A1 (en) * 2019-12-26 2023-01-26 Nec Corporation Information processing device, control method, and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5499762B2 (ja) * 2010-02-24 2014-05-21 ソニー株式会社 画像処理装置、画像処理方法、プログラム及び画像処理システム
JP5573238B2 (ja) * 2010-03-04 2014-08-20 ソニー株式会社 情報処理装置、情報処理法方法およびプログラム
US20110310227A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Mobile device based content mapping for augmented reality environment
JP4993637B2 (ja) * 2010-07-21 2012-08-08 株式会社ブリリアントサービス エアタグ表示システム

Also Published As

Publication number Publication date
JP2016177834A (ja) 2016-10-06

Similar Documents

Publication Publication Date Title
JP5942456B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP5807686B2 (ja) 画像処理装置、画像処理方法及びプログラム
US11145083B2 (en) Image-based localization
US9256986B2 (en) Automated guidance when taking a photograph, using virtual objects overlaid on an image
EP3566113B1 (en) Surface aware lens
JP2013164697A (ja) 画像処理装置、画像処理方法、プログラム及び画像処理システム
US20190213792A1 (en) Providing Body-Anchored Mixed-Reality Experiences
TWI446175B (zh) 通信控制裝置、通信控制方法及相關之電腦可讀媒體
JP2013200793A (ja) 情報処理装置、情報処理方法およびプログラム
US10416783B2 (en) Causing specific location of an object provided to a device
US10074216B2 (en) Information processing to display information based on position of the real object in the image
US20210347053A1 (en) Virtual presence for telerobotics in a dynamic scene
JP6304305B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP7506091B2 (ja) 画像ベースの位置特定
CN116228514A (zh) 渲染数据处理方法、装置、计算机设备、介质和程序产品

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180219

R151 Written notification of patent or utility model registration

Ref document number: 6304305

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees