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

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

Info

Publication number
JPWO2013118373A1
JPWO2013118373A1 JP2013557372A JP2013557372A JPWO2013118373A1 JP WO2013118373 A1 JPWO2013118373 A1 JP WO2013118373A1 JP 2013557372 A JP2013557372 A JP 2013557372A JP 2013557372 A JP2013557372 A JP 2013557372A JP WO2013118373 A1 JPWO2013118373 A1 JP WO2013118373A1
Authority
JP
Japan
Prior art keywords
matrix
image processing
environment
virtual object
processing apparatus
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.)
Granted
Application number
JP2013557372A
Other languages
English (en)
Other versions
JP5807686B2 (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 JP2013557372A priority Critical patent/JP5807686B2/ja
Publication of JPWO2013118373A1 publication Critical patent/JPWO2013118373A1/ja
Application granted granted Critical
Publication of JP5807686B2 publication Critical patent/JP5807686B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】3次元空間内で仮想オブジェクトを自在に操作することのできる仕組みを提供すること。【解決手段】画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、を備える画像処理装置を提供する。【選択図】図10

Description

本開示は、画像処理装置、画像処理方法及びプログラムに関する。
近年、実世界に付加的な情報を重畳してユーザに呈示する拡張現実(AR:Augmented Reality)と呼ばれる技術が注目されている。AR技術においてユーザに呈示される情報は、アノテーションとも呼ばれ、テキスト、アイコン又はアニメーションなどの様々な形態の仮想的なオブジェクトを用いて可視化され得る。
下記非特許文献1は、仮想オブジェクトを配置する前の段階で実空間をモデリングするための技術の一例を示している。下記非特許文献2は、仮想オブジェクトを撮像画像に重畳する際に必要とされる撮像装置の位置及び姿勢を算出することを目的とした、自然マーカを利用した技術の一例を示している。
AR技術は、ユーザとのインタラクションを伴うアプリケーションにおいても活用され得る。例えば、下記特許文献1は、ユーザにより操作され得るアイコンを仮想オブジェクトとして表示する技術を開示している。
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)
特開2010−238098号公報
しかしながら、上記特許文献1に記載された技術では、仮想オブジェクトは、2次元の画面上でユーザによる操作に応じて動くのみである。そのため、AR技術の利点の1つである現実感が十分に実現されているとはいい難い。ユーザとのインタラクションにおいて現実感を得るためには、3次元空間内で仮想オブジェクトを自在に操作することのできる仕組みが提供されることが望ましい。
本開示によれば、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、を備える画像処理装置が提供される。
また、本開示によれば、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、前記環境認識行列の逆行列を計算することと、第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御することと、を含む画像処理方法が提供される。
また、本開示によれば、コンピュータを、画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、前記環境認識行列の逆行列を計算する計算部と、第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、として機能させるためのプログラムが提供される。
本開示に係る技術によれば、3次元空間内で仮想オブジェクトを自在に操作することのできる仕組みが提供される。
本開示に係る技術が適用され得る環境の一例を示す説明図である。 本開示に係る技術の基本的な原理について説明するための第1の説明図である。 本開示に係る技術の基本的な原理について説明するための第2の説明図である。 本開示に係る技術の基本的な原理について説明するための第3の説明図である。 本開示に係る技術の基本的な原理について説明するための第4の説明図である。 本開示に係る技術に従って決定される3次元的な操作量の第1の例について説明するための説明図である。 本開示に係る技術に従って決定される3次元的な操作量の第2の例について説明するための説明図である。 本開示に係る技術に従って実行される仮想オブジェクトの操作の一例について説明するための説明図である。 一実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。 一実施形態に係る画像処理装置の論理的機能の構成の一例を示すブロック図である。 第1の操作シナリオに沿って仮想オブジェクトが操作される様子を示す説明図である。 第2の操作シナリオに沿って仮想オブジェクトが操作される様子を示す説明図である。 一実施形態に係る画像処理の流れの一例を示すフローチャートである。 図13に例示した操作配置計算処理の詳細な流れの一例を示すフローチャートである。 仮想オブジェクトの基準面の判定について説明するための説明図である。 仮想オブジェクトの距離に応じた表示について説明するための説明図である。 仮想オブジェクトの整列表示について説明するための説明図である。 仮想オブジェクトの共有について説明するための第1の説明図である。 仮想オブジェクトの共有について説明するための第2の説明図である。 仮想オブジェクトの共有について説明するための第3の説明図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下の順序で説明を行う。
1.基本的な原理
1−1.概要
1−2.基本的なパラメータ
1−3.3次元的な操作量の例
2.画像処理装置の構成例
2−1.ハードウェア構成
2−2.機能構成
2−3.操作シナリオ
2−4.処理の流れ
2−5.表示のバリエーション
2−6.仮想オブジェクトの共有
3.まとめ
<1.基本的な原理>
まず、図1〜図8を用いて、本開示に係る技術の基本的な原理について説明する。
[1−1.概要]
図1は、本開示に係る技術が適用され得る環境の一例を示す説明図である。図1を参照すると、環境1、及び環境1を映す画像を撮像する画像処理装置100が示されている。図1の例において、環境1には、物体11が存在している。画像処理装置100は、典型的には、撮像部(図示せず)及び表示部110を備える。画像処理装置100の撮像部は、環境1を映す映像を構成する一連の画像を撮像する。そして、画像処理装置100は、撮像画像を入力画像として画像処理を行い、3次元空間に仮想オブジェクトを配置する。仮想オブジェクトは、後に説明するように、画像処理装置100を動かすことによりユーザにより操作される。画像処理装置100の表示部110は、仮想オブジェクトが重畳された出力画像を表示する。
画像処理装置100は、仮想オブジェクトを何らかの基準環境内に配置する。即ち、仮想オブジェクトの位置及び姿勢は、基準環境と関連付けられる座標系(以下、基準座標系という)において定義される。以下の説明では、物体11を含む環境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の位置及び姿勢を表現する行列となる。図3は、環境認識行列の逆行列Mrecog −1が表現する座標変換を概念的に示している。
操作配置行列Mmobileは、仮想オブジェクトを操作するためにユーザにより移動される画像処理装置100の位置及び姿勢を表現する行列である。なお、本明細書において、特に「並行」移動と明示されない場合には、「移動」との用語は並行移動及び回転の双方を含み得るものとする。操作配置行列Mmobileは、例えば、次式のように、環境認識行列の逆行列Mrecog −1と等しくてもよい。
Figure 2013118373
図4は、式(1)が採用される場合の操作配置行列Mmobileが表現する座標変換を概念的に示している。但し、操作位置の調整を容易とするために、次に説明するようなオフセット行列が用いられてもよい。
(3)オフセット行列
図5は、オフセット行列Ttouchを算入して決定される操作配置行列Mmobileを概念的に示している。オフセット行列Ttouchは、画像処理装置100の画面上でのユーザ入力位置に応じて決定される、当該画面に沿った方向への並行移動を表現する座標変換行列である。オフセット行列Ttouchが算入される場合、操作配置行列Mmobileは、次式のように計算され得る。
Figure 2013118373
このようにオフセット行列Ttouchが算入される場合、ユーザにとって、画像処理装置100を動かす代わりに画面上の所望の位置で操作(例えば、タッチ又はクリックなど)を行うことで、操作位置を細かく調整することが容易となる。
[1−3.3次元的な操作量の例]
ここで、ユーザが、時刻t1から時刻t2にかけて画像処理装置100を移動させたものとする。その場合、上述した原理に従って、時刻t1における操作配置行列Mmobile(t1)と時刻t2における操作配置行列Mmobile(t2)とを計算することができる。操作配置行列Mmobile(t1)が表現する位置と操作配置行列Mmobile(t2)が表現する位置との差分は、時刻t1から時刻t2にかけての画像処理装置100の並行移動(及び画面上でのユーザ入力位置の変化)に対応する並行移動量を示す。操作配置行列Mmobile(t1)が表現する姿勢と操作配置行列Mmobile(t2)が表現する姿勢との差分は、時刻t1から時刻t2にかけての画像処理装置100の回転に対応する回転量を示す。本開示に係る技術では、これら並行移動量及び回転量に従って、基準環境内に配置される仮想オブジェクトが3次元的に操作される。
図6の例では、まず、時刻t1において、操作配置行列Mmobile(t1)が決定されている。また、後続する時刻t2において、操作配置行列Mmobile(t2)が決定されている。これら操作配置行列から、次式のように並行移動操作量Dmovが計算される。
Figure 2013118373
式(3)において、Vmobile(t)は、操作配置行列Mmobile(t)の並行移動成分を表すものとする。図7の例では、2つの操作配置行列Mmobile(t1)及びMmobile(t2)から、次式のように回転操作量Drotが計算される。
Figure 2013118373
式(4)において、Rmobile(t)は、操作配置行列Mmobile(t)の回転成分を表すものとする。なお、式(3)及び式(4)は一例に過ぎない。例えば、式(3)又は式(4)の右辺に、操作量を増幅し又は縮小するための係数が乗算されてもよい。
図8は、本開示に係る技術に従って実行される仮想オブジェクトの操作の一例について説明するための説明図である。ここでは、一例として、物体11から仮想オブジェクトを引き出すようなARアプリケーションが想定される。図8に示した操作前行列Mpreは、画像処理装置100により認識される物体11の位置及び姿勢を表現する行列に等しい。仮想オブジェクト21は、物体11と関連付けられる仮想オブジェクトである。例えば、画像処理装置100が物体11の位置及び姿勢を認識した後、時刻t1から時刻t2にかけてユーザが画像処理装置100を図示された通りに移動させたものとする。すると、画像処理装置100は、操作配置行列Mmobile(t1)と操作配置行列Mmobile(t2)との間の差分に応じた3次元的な操作量を決定する。図8の例では、並行移動操作量Dmovが決定されている。そして、画像処理装置100は、並行移動操作量Dmovに従って、仮想オブジェクト21を移動させる。図8の例のように、操作の起点となる位置及び姿勢が操作前行列Mpreにより表現される場合、操作後の仮想オブジェクト21の位置及び姿勢を表現する操作後行列Mpostは、次のように計算される。
Figure 2013118373
なお、並行移動の代わりに回転が行われる場合には、操作後行列Mpostは、式(6)のように計算される。並行移動及び回転の双方が行われる場合には、操作後行列Mpostは、式(7)のように計算される。
Figure 2013118373
図8の例において、時刻t2における画像処理装置100からの仮想オブジェクト21の見え方は、操作後行列Mpostと時刻t2における環境認識行列Mrecog(t2)との積に相当する次のような座標変換として表現され得る。
Figure 2013118373
本節で説明した原理に従って、ユーザは、画像処理装置100のような端末を動かしながらこれを操作することにより、3次元的な操作量を自在に指定することができる。以下、上述した原理に基づく画像処理装置100の構成の一例について詳細に説明する。
<2.画像処理装置の構成例>
[2−1.ハードウェア構成]
図9は、一実施形態に係る画像処理装置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、物体DB150、コンテンツDB160、操作制御部170及び表示制御部180を備える。
(1)画像取得部
画像取得部120は、撮像部102により生成される撮像画像を入力画像として取得する。画像取得部120により取得される入力画像は、実空間を映す映像を構成する個々のフレームであってよい。画像取得部120は、取得した入力画像を、認識部130及び表示制御部180へ出力する。
(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及び操作制御部170へ出力する。
また、認識部130は、図8の例のように仮想オブジェクトの位置及び姿勢が基準環境内の物体の位置及び姿勢に関連付けられる場合には、入力画像に映る物体の位置及び姿勢をも認識する。例えば、物体DB150は、1つ以上の物体の各々の既知の特徴量データと当該物体の識別子とを予め記憶する。そして、認識部130は、入力画像から抽出される特徴量データを物体DB150により記憶されている特徴量データと照合することにより、入力画像に映る物体を識別し得る。認識部130は、このように識別される物体の基準座標系での位置及び姿勢を表現する座標変換行列を、環境認識行列Mrecogと同様に認識する。
(3)計算部
計算部140は、認識部130から入力される環境認識行列の逆行列Mrecog −1を計算する。例えば、環境認識行列Mrecogは、4行4列の同次変換行列である。従って、環境認識行列の逆行列Mrecog −1もまた4行4列の同次変換行列であり、Mrecog・Mrecog −1=M(単位行列)を満たす。環境認識行列の逆行列Mrecog −1は、基準座標系の位置及び姿勢から端末の位置及び姿勢への座標変換を表現する。計算部140は、計算した環境認識行列の逆行列Mrecog −1を操作制御部170へ出力する。
(4)物体DB
物体DB150は、上述したように、ARアプリケーションの目的に応じて認識されるべき物体の既知の特徴量データと識別子とを予め記憶する。
(5)コンテンツDB
コンテンツDB160は、ユーザにより操作可能な仮想オブジェクトの識別子、属性データ及び関連付けられる物体の識別子を予め記憶する。仮想オブジェクトの属性データは、仮想オブジェクトの表示属性(例えば、位置及び姿勢の初期値、形状並びに色など)と、仮想オブジェクトの操作属性(例えば、並行移動及び回転がそれぞれ可能か、など)とを含み得る。
(6)操作制御部170
操作制御部170は、上述した様々なパラメータを用いて、入力画像に映る環境内に配置される仮想オブジェクトの操作を制御する。
例えば、操作制御部170は、操作の開始に対応する第1の時点において、環境認識行列の逆行列Mrecog −1に基づいて、3次元の基準環境内の操作位置及び姿勢を表現する操作配置行列Mmobileを決定する。操作制御部170は、例えば、上記式(1)に従って、環境認識行列の逆行列Mrecog −1に等しい操作配置行列Mmobileを決定してよい。また、操作制御部170は、上記式(2)に従い、端末の画面上でのユーザ入力位置に応じたオフセット行列を算入して操作配置行列Mmobileを決定してもよい。
また、操作制御部170は、操作対象の仮想オブジェクトを特定する。操作対象の仮想オブジェクトは、入力画像に映る物体の中から何らかの基準で選択される物体に関連付けられるオブジェクトであってもよい。また、操作対象の仮想オブジェクトは、画面上でユーザにより(例えばタッチ又はクリックなどで)指定されるオブジェクトであってもよい。
さらに、操作制御部170は、操作の終了(操作の途中であってもよい)に対応する第2の時点において、環境認識行列の逆行列Mrecog −1に基づいて、上記式(1)又は式(2)に従い、3次元の基準環境内の操作位置及び姿勢を表現する操作配置行列Mmobileを再び決定する。
そして、操作制御部170は、操作開始時及び操作終了時の2つの操作配置行列Mmobileの差分に応じて、仮想オブジェクトの操作量を決定する。例えば、コンテンツDB160により記憶されているデータが、操作対象の仮想オブジェクトが並行移動可能であることを示しているものとする。すると、操作制御部170は、2つの操作配置行列Mmobileの並行移動成分の間の差分に応じて、並行移動操作量Dmovを計算する。また、コンテンツDB160により記憶されているデータが、操作対象の仮想オブジェクトが回転可能であることを示しているものとする。すると、操作制御部170は、2つの操作配置行列Mmobileの回転成分の間の差分に応じて、回転操作量Drotを計算する。
操作制御部170は、これら操作量を計算すると、算出された操作量に従って、操作対象の仮想オブジェクトの配置を変更する。操作前後の仮想オブジェクトの配置の間の関係は、上記式(6)〜式(8)のいずれかであってよい。
操作制御部170は、このようにユーザによる操作に応じて更新される仮想オブジェクトの配置を表現する座標変換行列(操作後行列Mpost)を、表示制御部180へ出力する。
操作の開始に対応する上述した第1の時点は、端末において第1のユーザ入力が検出された時点であってもよく、操作の終了に対応する上述した第2の時点は、端末において第2のユーザ入力が検出された時点であってもよい。このように明示的にユーザに操作のタイミングを指示させることで、操作制御部170は、仮想オブジェクトの操作を意図するユーザの動作とその他の動作とを区別することができる。これら第1及び第2のユーザ入力は、それぞれ一連の操作の開始及び終了に対応するように定義されてもよい。一連の操作とは、例えば、タッチ又はドラッグに相当し得る。典型的には、タッチ又はドラッグの開始はプレス(Press)イベントとして検出され、タッチ又はドラッグの終了はリリース(Release)イベントとして検出される。このようなユーザインタフェースによれば、ユーザは、画面にタッチ(又はドラッグ)しつつ端末を動かすという簡単な操作のみで、仮想オブジェクトを意図した通りに3次元的に並行移動させ及び回転させることができる。
また、操作の開始に対応する上述した第1のユーザ入力に基づいて、操作対象の仮想オブジェクトが特定されてもよい。例えば、操作開始時の画面上のプレス位置に基づいて操作対象の仮想オブジェクトが特定される場合には、仮想オブジェクトを3次元空間内でドラッグして動かすような直感的なユーザインタフェースが実現される。
なお、ユーザ入力の種類は、上述した例に限定されない。例えば、所定のキー若しくはボタンの押下、タッチジェスチャの認識、表情の認識、音声コマンドの認識、又はヘッドマウントディスプレイにおける視線の認識などが、ユーザ入力として定義されてもよい。
(7)表示制御部
表示制御部180は、操作制御部170による配置に従って、仮想オブジェクトを入力画像に重畳することにより、出力画像を生成する。そして、表示制御部180は、生成した出力画像を表示部110の画面に表示させる。仮想オブジェクトの表示のトリガは、例えば、何らかのユーザ入力の検出、他の装置からの仮想オブジェクトのデータの受信、又は入力画像内の何らかのパターンの認識などであってよい。
[2−3.操作シナリオ]
次に、図11及び図12を用いて、仮想オブジェクトの操作に関する2つの操作シナリオを説明する。第1の操作シナリオでは、仮想オブジェクトが、画像内で認識される物体から引き出されるように新たに配置される。第2の操作シナリオでは、配置済みの仮想オブジェクトがユーザによる操作を通じて移動される。
(1)第1の操作シナリオ
図11は、第1の操作シナリオに沿って、新たな仮想オブジェクトが基準環境内に配置される様子を示している。
図11の例において、基準環境1内の物体11は、デジタルテレビジョン装置である。デジタルテレビジョン装置11の画面には、ライオン12を映したコンテンツ画像が表示されている。物体DB150には、ライオン12の特徴量データが予め記憶されている。
時刻t1において、ユーザが画像処理装置100をデジタルテレビジョン装置11にかざすと、入力画像にライオン12が映る。認識部130は、物体DB150により記憶されている特徴量データを用いて、入力画像に映るライオン12を識別する。すると、操作制御部170は、コンテンツDB160においてライオン12と関連付けられている仮想オブジェクト22を、操作対象の仮想オブジェクトとして特定する。仮想オブジェクト22は、例えば、並行移動可能であるものとする。
その後、時刻t1から時刻t2にかけて、ユーザは、画像処理装置100の画面にタッチしながら、画像処理装置100を移動させる。すると、操作制御部170は、移動の前後の2つの操作配置行列Mmobile(t1)及びMmobile(t2)の間の並行移動成分の差分である並行移動操作量Dmovを計算する。そして、操作制御部170は、ライオン12の位置及び姿勢及び並行移動操作量Dmovから、操作後の仮想オブジェクト22の位置及び姿勢を表現する操作後行列Mpostを計算する。表示制御部180は、操作後行列Mpostにより表現される3次元的な位置及び姿勢を有する仮想オブジェクト22を2次元の画面に投影し、仮想オブジェクト22の重畳された出力画像を表示させる。
(2)第2の操作シナリオ
図12は、第2の操作シナリオに沿って、配置済みの仮想オブジェクトがユーザにより操作される様子を示している。
図12の例において、基準環境1内の物体11は、デジタルテレビジョン装置である。物体DB150には、デジタルテレビジョン装置11の特徴量データが予め記憶されている。また、コンテンツDB160には、デジタルテレビジョン装置11と関連付けられている仮想オブジェクト23のデータが予め記憶されている。仮想オブジェクト23は、例えば、デジタルテレビジョン装置11についての情報を表示する仮想的なパネルである。
時刻t3において、仮想オブジェクト23は、操作前行列Mpreにより表現される位置及び姿勢でAR空間内に配置されている。ユーザが画像処理装置100をデジタルテレビジョン装置11にかざすと、入力画像に仮想オブジェクト23が映る。そして、ユーザが画面上で仮想オブジェクト23にタッチすると、操作制御部170は、仮想オブジェクト23を操作対象の仮想オブジェクトとして特定する。仮想オブジェクト23は、例えば、回転可能であるものとする。
その後、時刻t3から時刻t4にかけて、ユーザは、画像処理装置100を回転させる。すると、操作制御部170は、移動の前後の2つの操作配置行列Mmobile(t3)及びMmobile(t4)の間の回転成分の差分である回転操作量Drotを計算する。そして、操作制御部170は、操作前行列Mpre及び回転操作量Drotから計算される操作後行列Mpostにより表現される位置及び姿勢を仮想オブジェクト23が有するように、仮想オブジェクト23を再配置する。
[2−4.処理の流れ]
図13は、画像処理装置100による画像処理の流れの一例を示すフローチャートである。
図13を参照すると、まず、画像取得部120は、撮像部102により生成される撮像画像を入力画像として取得する(ステップS110)。そして、画像取得部120は、取得した入力画像を、認識部130及び表示制御部180へ出力する。
次に、認識部130は、画像取得部120から入力される入力画像を用いて、基準環境の位置及び姿勢を表現する環境認識行列Mrecogを認識する(ステップS115)。そして、認識部130は、認識した環境認識行列Mrecogを、計算部140、操作制御部170及び表示制御部180へ出力する。
次に、図13の画像処理は、操作状態に応じて分岐する。まず、ユーザにより所定の操作が開始されたことが検出された場合には、処理はステップS130へ進む(ステップS120)。また、ユーザにより開始された当該操作が終了したことが検出された場合には、処理はステップS160へ進む(ステップS125)。それ以外の場合には、処理はステップS190へ進む。
ステップS130では、操作制御部170は、操作対象の仮想オブジェクトを特定する(ステップS130)。ここで特定される仮想オブジェクトの数は、1つであってもよく、又は複数であってもよい。次に、図14を用いて説明される操作配置計算処理が実行され、第1の操作配置行列が計算される(ステップS140)。そして、計算された第1の操作配置行列が記憶される(ステップS150)。
ステップS160では、図14を用いて説明される操作配置計算処理が実行され、第2の操作配置行列が計算される(ステップS160)。次に、操作制御部170は、第1及び第2の操作配置行列を用いて、操作対象の仮想オブジェクトの操作量を決定する(ステップS170)。そして、操作制御部170は、決定した操作量に従って、操作対象の仮想オブジェクトを再配置する(ステップS180)。
そして、表示制御部180は、操作対象の仮想オブジェクト及びその他の表示すべき仮想オブジェクトが重畳された出力画像を生成し、生成した出力画像を表示部110の画面に表示させる(ステップS190)。
図14は、図13のステップS140及びS160に相当する操作配置計算処理の詳細な流れの一例を示すフローチャートである。
図14を参照すると、まず、計算部140は、認識部130から入力される環境認識行列の逆行列Mrecog −1を計算する(ステップS142)。また、操作制御部170は、端末の画面上でのユーザ入力位置に応じて、オフセット行列Ttouchを決定する(ステップS144)。なお、オフセット行列が使用されない場合には、ステップS144の処理は省略されてもよい。そして、操作制御部170は、環境認識行列の逆行列Mrecog −1及びオフセット行列Ttouchに基づいて、操作配置行列Mmobileを決定する(ステップS146)。
[2−5.表示のバリエーション]
本開示に係る技術において、仮想オブジェクトは、様々な形態で表示され得る。本項では、仮想オブジェクトの様々な表示のバリエーションについて説明する。
例えば、仮想オブジェクトは、予め定義される基準面を有してもよい。仮想オブジェクトがカード状の平面的な形状を有する場合には、一方の面が基準面、他方の面が非基準面として定義され得る。仮想オブジェクトが立体的な形状を有する場合には、当該仮想オブジェクトの基準面は、基準面から外へ向かう法線ベクトルによって識別され得る。このように仮想オブジェクトが基準面を有する場合、表示制御部180は、画像処理装置100の画面に当該仮想オブジェクトの基準面が映るか否かに応じて、当該仮想オブジェクトの表示を変化させてよい。
例えば、図15の例を参照すると、画像処理装置100の画面に表示される出力画像Im1に、2つの仮想オブジェクト31及び32が映っている。出力画像Im1に映っている仮想オブジェクト31の面は、非基準面である。出力画像Im1に映っている仮想オブジェクト32の面は、基準面である。従って、表示制御部180は、例えば、仮想オブジェクト32の形状、スケール、透明度、色、解像度又はエッジの太さなどの表示属性を、仮想オブジェクト31とは異なる値に設定し得る。また、表示制御部180は、仮想オブジェクト31及び32により示される情報の内容を、基準面が映っているか否かに応じて変化させてもよい。
このような表示の制御によって、表示される仮想オブジェクトがどの方向を向いているかをユーザが容易に把握することができる。このようなケースで、ユーザが仮想オブジェクト31の基準面に表示される情報の内容を閲覧したいと望んでいるものとする。本開示に係る技術がなければ、ユーザは、仮想オブジェクト31の基準面が見える位置に回りこんで端末をかざしてみることになる。しかし、本開示に係る技術によれば、ユーザは、画面上で仮想オブジェクト31を指定して端末をその場で回転させるだけで、仮想オブジェクト31の姿勢を3次元的に回転させ、仮想オブジェクト31の基準面に表示される情報の内容を容易に閲覧することができる。
また、表示制御部180は、画像処理装置100と仮想オブジェクトとの間の距離に応じて、当該仮想オブジェクトの表示を変化させてもよい。
例えば、図16の例を参照すると、画像処理装置100の画面に表示される出力画像Im2に3つの仮想オブジェクト41、42及び43が映っている。このうち、仮想オブジェクト43は、仮想オブジェクト41及び42と比較して、画像処理装置100からより遠くに位置する。この場合、表示制御部180は、例えば、仮想オブジェクト41及び42がより明瞭にユーザに視認されるように、仮想オブジェクト41及び42の表示属性を強調し得る。また、表示制御部180は、仮想オブジェクト41及び42について、より詳細な情報の内容を表示させてもよい。
このような表示の制御によって、多数の仮想オブジェクトが画面に表示されるような状況下で、ユーザがより関心を持っている(即ち、端末を近付けている)仮想オブジェクトの(又はその表示内容の)視認性を高めることができる。このようなケースで、ユーザが仮想オブジェクト43により表示される情報の内容をも詳しく閲覧したいと望んでいるものとする。本開示に係る技術がなければ、ユーザは、より仮想オブジェクト43に近付いた上で端末をかざしてみることになる。しかし、本開示に係る技術によれば、ユーザは、画面上で仮想オブジェクト43を指定して端末を引き寄せる動きをするだけで、仮想オブジェクト43の位置を手前に移動させ、仮想オブジェクト43により表示される情報の内容をより詳しく閲覧することができる。
表示制御部180は、所定の条件が満たされる場合に、表示すべき複数の仮想オブジェクトが所定の間隔を空けて整列するように、当該複数の仮想オブジェクトを再配置してもよい。
例えば、図17の例を参照すると、画像処理装置100の画面に6つの仮想オブジェクト51〜56が映っている。しかし、これら仮想オブジェクトがその配置の通りに表示されると、画面内で仮想オブジェクトが密集してしまい、仮想オブジェクトの視認性が低下する。そこで、例えば、表示制御部180は、所定のユーザ入力が検出された場合に、これら仮想オブジェクトを整列させる。図17の例では、画像処理装置100のより近くに位置する4つの仮想オブジェクト51、52、53及び54が、所定の間隔を空けて整列するように再配置されている。仮想オブジェクトを再配置させるための上記所定の条件は、ユーザ入力の代わりに、例えば画面内の仮想オブジェクトの個数が所定の閾値を上回ることなどであってもよい。
このような表示の制御によって、多数の仮想オブジェクトが画面に表示されるような状況下で、仮想オブジェクトの各々が示す情報の内容の視認性を高めることができる。操作制御部170は、このように整列された仮想オブジェクトの操作を、上述した仕組みに従って制御してもよい。
[2−6.仮想オブジェクトの共有]
ここまでの説明では、仮想オブジェクトの操作に用いられる端末と操作される仮想オブジェクトを表示する端末とが同一であった。しかしながら、本開示に係る技術は、かかる例に限定されない。例えば、ある端末を用いて操作される仮想オブジェクトが、他の端末の画面に表示されてもよい。本項では、そのような仮想オブジェクトの共有について説明する。
図18を参照すると、仮想オブジェクトをユーザ間で共有するための、画像処理装置100a及び画像処理装置100bを含む画像処理システムが示されている。
例えば、画像処理装置100aは、上述した仕組みに従って、基準座標系CSを有する基準環境2内で、ユーザによる操作に応じて仮想オブジェクトの配置を決定する。図18の例では、車を模した仮想オブジェクト61が実物体であるテーブル62の上に配置されている。仮想オブジェクト61は、例えば、画像処理装置100aにおいて決定される操作量(例えば、並行移動操作量Dmov)に従って移動可能である。画像処理装置100aは、仮想オブジェクト61の配置を表現するデータ(例えば、上述した操作後行列Mpost)を画像処理装置100bへ送信する。画像処理装置100bは、入力画像に映る基準環境2の位置及び姿勢を表現する環境認識行列を認識し、認識した環境認識行列と画像処理装置100aから受信される操作後行列Mpostとを用いて、仮想オブジェクト61を入力画像に重畳する。
図18の例では、基準環境として、テーブル62を含む1つの空間に相当する環境2が示されている。しかしながら、本開示に係る技術が適用される基準環境は、このような環境に限定されない。例えば、画像処理装置100aが存在する空間と画像処理装置100bが存在する空間とが異なる場合であっても、それら空間の間で共通する特徴点群若しくは物体が存在し、又は同視し得る校正された座標系が存在する場合には、それら空間に相当する複数の環境が1つの共通的な基準環境として扱われてよい。また、1つの空間において互いに異なる時刻に認識される環境が、1つの共通的な基準環境として扱われてもよい。
例えば、図19Aを参照すると、環境3a内に、画像処理装置100aと本63aとが存在する。図19Bを参照すると、環境3b内に、画像処理装置100bと本63bとが存在する。本63a及び本63bは、共通的な特徴点群を有する。従って、画像処理装置100a及び100bは、それら特徴点群を用いて1つの共通的な基準座標系CSを認識し、基準座標系CSと関連付けられる仮想オブジェクトを共有することができる。図19Aの例では、ゾウを模した仮想オブジェクト73が本63aの近傍に配置されている。仮想オブジェクト73は、例えば、画像処理装置100aにおいて決定される操作量(例えば、回転操作量Drot)に従って回転可能である。画像処理装置100bは、仮想オブジェクト73の配置を表現するデータ(例えば、上述した操作後行列Mpost)を画像処理装置100bへ送信する。画像処理装置100bは、入力画像に映る基準環境3bの位置及び姿勢を表現する環境認識行列を認識し、認識した環境認識行列と画像処理装置100aから受信される操作後行列Mpostとを用いて、仮想オブジェクト73の重畳された出力画像を表示する。
<3.まとめ>
ここまで、図1〜図19Bを用いて、本開示に係る技術の一実施形態について詳細に説明した。上述した実施形態によれば、基準環境内の端末の位置及び姿勢を基準として環境の位置及び姿勢を表現する環境認識行列が認識され、認識された環境認識行列の逆行列に基づいて端末の位置及び姿勢が表現される。そして、2つの時点の端末の位置及び姿勢の一方又は双方の差分に応じた3次元的な操作量で、基準環境内に配置される仮想オブジェクトが操作される。従って、ユーザは、端末を3次元空間内で動かすことにより、AR空間内で仮想オブジェクトを3次元的に自在に操作することができる。例えば、携帯端末が使用される場合には、ユーザは、当該携帯端末を持って動かすことにより、仮想オブジェクトを3次元的に移動させ、及び仮想オブジェクトを3次元的に回転させることができる。
また、上述した実施形態によれば、一連の操作の開始時の画面上のユーザ入力位置に基づいて、操作対象の仮想オブジェクトが特定される。それにより、仮想オブジェクトを3次元空間内でドラッグして動かすような直感的なユーザインタフェースを実現することができる。
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にRAM(Random Access Memory)に読み込まれ、CPUなどのプロセッサにより実行される。
また、各装置の論理的機能の一部は、当該装置上に実装される代わりに、クラウドコンピューティング環境内に存在する装置上に実装されてもよい。その場合には、論理的機能の間でやり取りされる情報が、図9に例示した通信部112を介して装置間で送信され又は受信され得る。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
を備える画像処理装置。
(2)
前記操作量は、前記第1の位置と前記第2の位置との間の差分に応じた並行移動量である、前記(1)に記載の画像処理装置。
(3)
前記操作量は、前記第1の姿勢と前記第2の姿勢との間の差分に応じた回転量である、前記(1)に記載の画像処理装置。
(4)
前記第1の時点は、前記端末において第1のユーザ入力が検出された時点であり、
前記第2の時点は、前記端末において第2のユーザ入力が検出された時点である、
前記(1)〜(3)のいずれか1項に記載の画像処理装置。
(5)
前記第1のユーザ入力及び前記第2のユーザ入力は、一連の操作の開始及び終了にそれぞれ対応する、前記(4)に記載の画像処理装置。
(6)
前記第1の位置又は前記第2の位置は、前記端末の画面上でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされる位置である、前記(4)又は前記(5)に記載の画像処理装置。
(7)
前記操作制御部は、前記第1のユーザ入力に基づいて、操作すべき前記仮想オブジェクトを特定する、前記(4)〜(6)のいずれか1項に記載の画像処理装置。
(8)
前記操作制御部は、前記第1のユーザ入力によって指定される前記環境内の物体と関連付けられる仮想オブジェクトを、操作すべき前記仮想オブジェクトとして特定する、前記(7)に記載の画像処理装置。
(9)
前記認識部、前記計算部及び前記操作制御部のうち少なくとも1つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、前記(1)〜(8)のいずれか1項に記載の画像処理装置。
(10)
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、
前記環境認識行列の逆行列を計算することと、
第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御することと、
を含む画像処理方法。
(11)
コンピュータを、
画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
前記環境認識行列の逆行列を計算する計算部と、
第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
として機能させるためのプログラム。
100 画像処理装置(端末)
120 画像取得部
130 認識部
140 計算部
170 操作制御部
180 表示制御部

Claims (11)

  1. 画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
    前記環境認識行列の逆行列を計算する計算部と、
    第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
    を備える画像処理装置。
  2. 前記操作量は、前記第1の位置と前記第2の位置との間の差分に応じた並行移動量である、請求項1に記載の画像処理装置。
  3. 前記操作量は、前記第1の姿勢と前記第2の姿勢との間の差分に応じた回転量である、請求項1に記載の画像処理装置。
  4. 前記第1の時点は、前記端末において第1のユーザ入力が検出された時点であり、
    前記第2の時点は、前記端末において第2のユーザ入力が検出された時点である、
    請求項1に記載の画像処理装置。
  5. 前記第1のユーザ入力及び前記第2のユーザ入力は、一連の操作の開始及び終了にそれぞれ対応する、請求項4に記載の画像処理装置。
  6. 前記第1の位置又は前記第2の位置は、前記端末の画面上でのユーザ入力位置に応じて当該画面に沿った方向にオフセットされる位置である、請求項4に記載の画像処理装置。
  7. 前記操作制御部は、前記第1のユーザ入力に基づいて、操作すべき前記仮想オブジェクトを特定する、請求項4に記載の画像処理装置。
  8. 前記操作制御部は、前記第1のユーザ入力によって指定される前記環境内の物体と関連付けられる仮想オブジェクトを、操作すべき前記仮想オブジェクトとして特定する、請求項7に記載の画像処理装置。
  9. 前記認識部、前記計算部及び前記操作制御部のうち少なくとも1つが前記画像処理装置の代わりにクラウドコンピューティング環境上に存在する装置により実現される、請求項1に記載の画像処理装置。
  10. 画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識することと、
    前記環境認識行列の逆行列を計算することと、
    第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御することと、
    を含む画像処理方法。
  11. コンピュータを、
    画像を撮像した端末の位置及び姿勢を基準として前記画像に映る環境の位置及び姿勢を表現する環境認識行列を認識する認識部と、
    前記環境認識行列の逆行列を計算する計算部と、
    第1の時点で認識される前記環境認識行列の前記逆行列に基づく第1の位置又は第1の姿勢と、後続する第2の時点で認識される前記環境認識行列の前記逆行列に基づく第2の位置又は第2の姿勢との間の差分に応じた3次元的な操作量で、前記環境内に配置される仮想オブジェクトの操作を制御する操作制御部と、
    として機能させるためのプログラム。
JP2013557372A 2012-02-10 2012-11-29 画像処理装置、画像処理方法及びプログラム Active JP5807686B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012026870 2012-02-10
JP2012026870 2012-02-10
JP2013557372A JP5807686B2 (ja) 2012-02-10 2012-11-29 画像処理装置、画像処理方法及びプログラム
PCT/JP2012/080863 WO2013118373A1 (ja) 2012-02-10 2012-11-29 画像処理装置、画像処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2013118373A1 true JPWO2013118373A1 (ja) 2015-05-11
JP5807686B2 JP5807686B2 (ja) 2015-11-10

Family

ID=48947160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013557372A Active JP5807686B2 (ja) 2012-02-10 2012-11-29 画像処理装置、画像処理方法及びプログラム

Country Status (5)

Country Link
US (1) US9268410B2 (ja)
EP (1) EP2814000B1 (ja)
JP (1) JP5807686B2 (ja)
CN (1) CN104081307B (ja)
WO (1) WO2013118373A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6263917B2 (ja) * 2013-09-17 2018-01-24 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US10386637B2 (en) * 2014-01-15 2019-08-20 Maxell, Ltd. Information display terminal, information display system, and information display method
US9690370B2 (en) 2014-05-05 2017-06-27 Immersion Corporation Systems and methods for viewport-based augmented reality haptic effects
JP6575221B2 (ja) * 2015-08-19 2019-09-18 富士通株式会社 表示制御方法、情報処理装置及び表示制御プログラム
US10101803B2 (en) 2015-08-26 2018-10-16 Google Llc Dynamic switching and merging of head, gesture and touch input in virtual reality
CN105913495A (zh) * 2016-03-31 2016-08-31 联想(北京)有限公司 一种信息处理方法及电子设备
CN106200916B (zh) * 2016-06-28 2019-07-02 Oppo广东移动通信有限公司 增强现实图像的控制方法、装置及终端设备
EP3327544B1 (en) * 2016-11-25 2021-06-23 Nokia Technologies Oy Apparatus, associated method and associated computer readable medium
DK180470B1 (en) * 2017-08-31 2021-05-06 Apple Inc Systems, procedures, and graphical user interfaces for interacting with augmented and virtual reality environments
EP3599539B1 (en) * 2018-07-26 2023-08-23 Nokia Technologies Oy Rendering objects in virtual views
US10909772B2 (en) 2018-07-31 2021-02-02 Splunk Inc. Precise scaling of virtual objects in an extended reality environment
US10692299B2 (en) * 2018-07-31 2020-06-23 Splunk Inc. Precise manipulation of virtual object position in an extended reality environment
KR20230022269A (ko) * 2019-10-15 2023-02-14 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드 증강 현실 데이터 제시 방법, 장치, 전자 기기 및 저장 매체
WO2021221676A1 (en) * 2020-04-30 2021-11-04 Hewlett-Packard Development Company, L.P. Frames of reference
CN113674430A (zh) * 2021-08-24 2021-11-19 上海电气集团股份有限公司 虚拟模型定位配准方法、装置、增强现实设备和存储介质
WO2023141535A1 (en) * 2022-01-19 2023-07-27 Apple Inc. Methods for displaying and repositioning objects in an environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062758A (ja) * 2002-07-31 2004-02-26 Canon Inc 情報処理装置および方法
JP2009093376A (ja) * 2007-10-05 2009-04-30 Sony Corp 信号処理システム及び信号処置方法、並びにプログラム
JP2010238098A (ja) * 2009-03-31 2010-10-21 Ntt Docomo Inc 端末装置、情報提示システム及び端末画面表示方法
JP4696184B1 (ja) * 2010-06-02 2011-06-08 任天堂株式会社 画像表示システム、画像表示装置および画像表示方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3558104B2 (ja) * 1996-08-05 2004-08-25 ソニー株式会社 3次元仮想物体表示装置および方法
US7991220B2 (en) * 2004-09-01 2011-08-02 Sony Computer Entertainment Inc. Augmented reality game system using identification information to display a virtual object in association with a position of a real object
US20100257252A1 (en) 2009-04-01 2010-10-07 Microsoft Corporation Augmented Reality Cloud Computing
US8633947B2 (en) 2010-06-02 2014-01-21 Nintendo Co., Ltd. Computer-readable storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method
EP2395768B1 (en) 2010-06-11 2015-02-25 Nintendo Co., Ltd. Image display program, image display system, and image display method
US20120200667A1 (en) * 2011-02-08 2012-08-09 Gay Michael F Systems and methods to facilitate interactions with virtual content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062758A (ja) * 2002-07-31 2004-02-26 Canon Inc 情報処理装置および方法
JP2009093376A (ja) * 2007-10-05 2009-04-30 Sony Corp 信号処理システム及び信号処置方法、並びにプログラム
JP2010238098A (ja) * 2009-03-31 2010-10-21 Ntt Docomo Inc 端末装置、情報提示システム及び端末画面表示方法
JP4696184B1 (ja) * 2010-06-02 2011-06-08 任天堂株式会社 画像表示システム、画像表示装置および画像表示方法

Also Published As

Publication number Publication date
WO2013118373A1 (ja) 2013-08-15
EP2814000A4 (en) 2015-10-28
JP5807686B2 (ja) 2015-11-10
CN104081307B (zh) 2018-02-23
US9268410B2 (en) 2016-02-23
US20140320404A1 (en) 2014-10-30
EP2814000A1 (en) 2014-12-17
EP2814000B1 (en) 2019-07-03
CN104081307A (zh) 2014-10-01

Similar Documents

Publication Publication Date Title
JP5807686B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP5942456B2 (ja) 画像処理装置、画像処理方法及びプログラム
Kim et al. Touch and hand gesture-based interactions for directly manipulating 3D virtual objects in mobile augmented reality
JP6469706B2 (ja) 深度センサを用いた構造のモデル化
US11443453B2 (en) Method and device for detecting planes and/or quadtrees for use as a virtual substrate
JP6458371B2 (ja) 3次元モデルのためのテクスチャデータを取得する方法、ポータブル電子デバイス、及びプログラム
JP2013165366A (ja) 画像処理装置、画像処理方法及びプログラム
JP2015516624A (ja) 有効インターフェース要素の強調のための方式
JP2013164697A (ja) 画像処理装置、画像処理方法、プログラム及び画像処理システム
US10416783B2 (en) Causing specific location of an object provided to a device
KR101470757B1 (ko) 증강현실 서비스 제공 방법 및 장치
CN104820584B (zh) 一种面向层次化信息自然操控的3d手势界面的构建方法及***
WO2021121061A1 (zh) 用于设置虚拟对象的空间位置的方法和电子设备
JP6304305B2 (ja) 画像処理装置、画像処理方法及びプログラム
US10496237B2 (en) Computer-implemented method for designing a three-dimensional modeled object
JP2016015078A (ja) 表示制御装置、表示制御方法、及び、プログラム
CN117453037A (zh) 交互方法、头显设备、电子设备及可读存储介质

Legal Events

Date Code Title Description
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: 20150811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150824

R151 Written notification of patent or utility model registration

Ref document number: 5807686

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250