(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
【0010】
[第1の実施形態]
本実施形態では、HMDの表示画面に表示画像(静止画像であっても動画像であっても、それらの両方であっても良い)を表示するのであるが、この表示画像の形状を、壁面に設けたマーカをHMDに設けられたカメラで撮像した撮像画像中の該マーカの形状の変化に応じて制御するものである。以下の説明において「形状」とは、「外形」と「サイズ」の両方の意味を含むものとする。
【0011】
先ず、本実施形態に係るHMDについて、
図1A,1Bを用いて説明する。
図1Aは、本実施形態に係るHMD100の外観例を示す図である。
図1Aに示す如く、本実施形態に係るHMD100は、表示装置101とHMD本体部102と、を有する。
【0012】
表示装置101は、自身が保持する若しくは外部から受信したデータに基づく画像や文字を表示可能な表示画面を有する機器であり、例えば、スマートフォンやタブレット端末装置などを適用することができる。114はカメラであり、現実空間の動画像を撮像する。表示装置101の表示画面は、カメラ114が取り付けられた面とは逆の面に設けられている。
【0013】
HMD本体部102は、HMD100を装着したユーザの眼前に表示装置101の表示画面が位置するように該表示装置101を取り付けることができる機器である。HMD本体部102において190a、190bはそれぞれ、HMD100を装着したユーザの右耳、左耳に音声を出力するためのスピーカである。
【0014】
HMD100の装着例を
図1Bに示す。
図1B及び上記の如く、表示装置101は、ユーザの眼180の前に表示装置101の表示画面が位置するようにHMD本体部102に取り付けられている。
【0015】
なお、
図1A,1Bには、HMD100において以下の説明に関連する主要な構成を示しており、例えばHMD100をユーザの頭部に固定するためのベルトや、ベルトの長さを調整するための調整用つまみなどの図示は省略している。
【0016】
次に、表示装置101及びHMD本体部102のハードウェア構成例について、
図2のブロック図を用いて説明する。なお、
図2に示した構成は、以下の説明において表示装置101及びHMD本体部102が行うものとして後述する各処理を実現可能な構成の一例である。
【0017】
先ず、表示装置101のハードウェア構成例について説明する。
【0018】
CPU111は、RAM112に格納されているコンピュータプログラムやデータを用いて、表示装置101全体の動作制御を行うと共に、表示装置101が行うものとして後述する各処理を実行若しくは制御する。
【0019】
RAM112は、不揮発性メモリ113からロードされたコンピュータプログラムやデータを格納するためのエリア、CPU111が各種の処理を実行する際に用いるワークエリアを有する。更に、表示装置101が外部の機器とのデータ通信が可能な機器であれば、外部の機器から受信したコンピュータプログラムやデータを格納するためのエリアも有する。このように、RAM112は、各種のエリアを適宜提供することができる。
【0020】
不揮発性メモリ113には、OS(オペレーティングシステム)や、表示装置101が行うものとして後述する各処理をCPU111に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。不揮発性メモリ113に保存されているコンピュータプログラムには、撮像画像におけるマーカの領域を検出するためのコンピュータプログラム、表示画像の再生プログラム、音声の再生プログラム等が含まれている。また、不揮発性メモリ113に保存されているデータには、表示画像のデータ、音声のデータ、以下の説明において既知の情報として取り扱う情報、等が含まれている。なお、表示装置101が外部の機器とのデータ通信が可能な機器であれば、上記の各種のプログラムやデータ等は、外部の機器から受信して不揮発性メモリ113に保存するようにしても良い。
【0021】
不揮発性メモリ113に保存されているコンピュータプログラムやデータは、CPU111による制御に従って適宜RAM112にロードされ、CPU111による処理対象となる。
【0022】
カメラ114は、表示装置101において表示画面115とは逆の面に取り付けられたもので、現実空間の動画像を撮像する。カメラ114からは各フレームの画像(撮像画像)が出力され、該出力された撮像画像は不揮発性メモリ113に保存される。
【0023】
表示画面115は、液晶画面、タッチパネル画面などにより構成されており、CPU111による処理結果を画像や文字などでもって表示することができる。
【0024】
I/F(インターフェース)116は、HMD本体部102への音声出力用のインターフェースであり、後述するように、HMD本体部102側のI/F121とデータ通信が可能なように構成されている。I/F116とI/F121との間のデータ通信は無線通信でも良いし、有線通信でも良い。
【0025】
CPU111、RAM112、不揮発性メモリ113、カメラ114、表示画面115、I/F116は何れもバス117に接続されている。
【0026】
次に、HMD本体部102のハードウェア構成例について説明する。
【0027】
I/F121は、表示装置101からI/F116を介して出力された音声信号を受信し、該受信した音声信号を音声出力部122に送出するためのインターフェースであり、上記のI/F116とデータ通信が可能なように構成されている。
【0028】
音声出力部122は、I/F121から受けた音声信号を音として出力するためのものである。音声出力部122は、上記の右耳用のスピーカ190aと左耳用のスピーカ190bと、を含み、それぞれのスピーカに対して音声信号に基づく音を出力する。
【0029】
次に、上記のマーカについて
図3を用いて説明する。
図3のマーカ301は、矩形(例えば正方形)の枠302の内部に、該枠302に内接するように該枠302を縮小して規定角度(
図3では90度)回転させた枠303を配置し、該枠303の内部に規定のマーク304を配置したシートである。
図3に示したマーカ301は、現実空間中に固定して配置されるのであれば、如何なる方法で現実空間中に設けても構わない。例えば、マーカ301を壁面に貼り付けても良いし、天井からつるしても構わない。また、壁面に設けた若しくは天井からつるした表示画面にマーカ301の画像を表示しても良い。また、本実施形態で使用可能なマーカの構成は
図3に示した構成に限らない。
【0030】
次に、表示装置101の表示画面115に表示画像を表示するためにCPU111が行う処理について、
図6のフローチャートを用いて説明する。なお、
図6のフローチャートに従った処理は、1フレーム分の表示画像を表示画面115に表示させるための処理である。然るにCPU111は、
図6のフローチャートに従った処理を繰り返し行うことで、複数フレーム分の表示画像を表示画面115に表示させることができる。
【0031】
ステップS601では、CPU111は、カメラ114から出力された撮像画像(Nフレーム目の撮像画像)を取得し、該取得した撮像画像を不揮発性メモリ113に保存する。
【0032】
ステップS602では、CPU111は、ステップS601で取得したNフレーム目の撮像画像(現フレームの撮像画像)においてマーカ301が写っている画像領域をマーカ領域として検出する。撮像画像からマーカ領域を検出するための技術には様々な技術があり、本ステップでは如何なる技術を用いて撮像画像からマーカ領域を検出しても良い。例えば、予めマーカを学習させた認識モデルを用いて、撮像画像から該マーカの画像領域をマーカ領域として検出するようにしても良いし、パターンマッチング技術により、撮像画像からマーカの画像と最も一致する画像領域をマーカ領域として検出するようにしても良い。
【0033】
ステップS603では、CPU111は、ステップS601で取得した撮像画像が、表示装置101の起動後に初めてマーカ領域を検出した撮像画像であるのか否かを判断する。この判断の結果、ステップS601で取得した撮像画像が、表示装置101の起動後に初めてマーカ領域を検出した撮像画像であれば、処理はステップS604に進み、ステップS601で取得した撮像画像が、表示装置101の起動後にマーカ領域を検出した2枚目以降の撮像画像であれば、処理はステップS605に進む。
【0034】
ステップS604では、CPU111は、ステップS602で検出したマーカ領域、すなわち、表示装置101の起動後に初めて検出したマーカ領域の形状を規定する形状情報をRAM112に格納する。形状情報は、例えば、撮像画像上におけるマーカ領域の四隅の画像座標である。そして更にCPU111は、基準形状を有する表示画像(基準表示画像と称する場合がある)を表示画面115に表示する。以下では説明上、ステップS601で取得した撮像画像が、表示装置101の起動後に初めてマーカ領域を検出した撮像画像である場合には、
図5Bに示す表示画像502が基準表示画像として表示画面115に表示されるものとして説明する。この例でいうところの「基準表示画像」とは「基準サイズを有する長方形の表示画像」に相当する。
【0035】
一方、ステップS605では、CPU111は、ステップS604でRAM112に格納した形状情報が示す形状から、Nフレーム目の撮像画像についてステップS602で検出したマーカ領域の形状へ、の変化を検出する。
【0036】
ステップS606では、CPU111は、ステップS605で求めた形状の変化に応じて基準表示画像の形状を制御して新たな表示画像を生成し、該生成した表示画像を表示画面115に表示させる。
【0037】
ここで、ステップS605及びステップS606における処理について、
図4A〜4D,5A〜5Dを例にとり説明する。
【0038】
図4A〜4Dには、撮像画像中におけるマーカ301の様々な写り方の一例を示している。撮像画像におけるマーカ301の写り方は、カメラ114とマーカ301との間の距離や、マーカ301の面の法線方向とカメラ114の光軸方向との関係などに応じて変化する。
【0039】
例えば、マーカ301の位置から該マーカ301の法線方向に距離d1だけ離間した位置から該マーカ301を正面から撮像したことで、
図4Aの撮像画像401aが得られたとする。撮像画像401aにはマーカ301が適当なサイズのマーカ401bとして写っている。
【0040】
ここで、マーカ301の位置から該マーカ301の法線方向に距離d2(d2>d1)だけ離間した位置から該マーカ301を正面から撮像すると、
図4Bに示す如く、マーカ401bより小さいサイズのマーカ402bが写った撮像画像402aが得られる。
【0041】
また、マーカ301の位置から該マーカ301の法線方向に距離d1だけ離間した位置を位置Pとしたとき、位置Pから該マーカ301に向かって左側に適当な距離だけ離間した位置から該マーカ301を撮像すると、
図4Cに示す如く、左辺及び右辺のそれぞれが、マーカ401bの左辺よりも長く、マーカ401bの右辺よりも短いマーカ404bが写った撮像画像404aが得られる。
【0042】
また、位置Pから該マーカ301に向かって右側に適当な距離だけ離間した位置から該マーカ301を撮像すると、
図4Dに示す如く、左辺及び右辺のそれぞれが、マーカ401bの左辺よりも短く、マーカ401bの右辺よりも長いマーカ405bが写った撮像画像405aが得られる。
【0043】
このように、マーカ301とカメラ114との位置関係に応じて、撮像画像中のマーカ301の見え方は変化する。本実施形態では、表示装置101の起動後に初めて撮像画像からマーカ領域を検出した場合には、該検出したマーカ領域の形状に関わらず、基準表示画像(ここでは表示画像502)を表示画面115に表示する。つまり、
図4A〜4Dを例にとると、表示装置101の起動後に初めて撮像画像から検出したマーカ領域が、マーカ401b、402b、404b、405bの何れの画像領域であっても、その形状に関わらず、基準表示画像を表示する。そして、それ以降のフレームであるNフレーム目の撮像画像からマーカ領域を検出した場合には、形状情報が示す形状から該マーカ領域の形状への変化を求め、該求めた変化に応じて表示画像502の形状を制御した新たな表示画像を生成して表示する。
【0044】
例えば、表示装置101の起動後に初めてマーカ領域を検出した撮像画像が
図4Bの撮像画像402aであるとする。このとき、形状情報が示す形状はマーカ402bの形状である。そしてこのときに、基準表示画像として表示画像502が表示画面115に表示されたとする。
【0045】
そしてその後、Nフレーム目の撮像画像として撮像画像401aを取得したとする。この場合は、マーカ402bの形状からマーカ401bの形状への変化を求める。形状の変化を求める方法には様々な方法があるが、ここではその一例を挙げる。先ず、撮像画像401aにおけるマーカ401bの四隅の画像座標を求める。そして、形状情報が示すマーカ402bの四隅の画像座標からマーカ401bの四隅の画像座標への座標変換パラメータ(マーカ402bのマーカ領域の形状をマーカ401bのマーカ領域の形状に変形させるための領域変形パラメータ)を求める。そして、該座標変換パラメータを用いて表示画像502の四隅の画像座標を変換することで該表示画像502を変形させた表示画像501を生成し、該生成した表示画像501を表示画面115に表示させる。その結果、
図5Aに示す如く、表示画面115には、表示画像502を、マーカ402bのサイズに対するマーカ401bのサイズの拡大率に応じて拡大した表示画像501が表示されることになる。これは、撮像画像401a内のマーカ401bのサイズが、撮像画像402a内のマーカ402bのサイズよりも大きくなっているため、これに合わせて、表示画像502を拡大した表示画像501を表示したことに起因する。
【0046】
また、表示装置101の起動後に初めてマーカ領域を検出した撮像画像が
図4Aの撮像画像401aであり、そのときに表示した基準表示画像が表示画像501であり、Nフレーム目の撮像画像として撮像画像402aを取得した場合には、例えば、撮像画像402aにおけるマーカ402bの四隅の画像座標を求め、形状情報が示すマーカ401bの四隅の画像座標からマーカ402bの四隅の画像座標への座標変換パラメータを求め、該座標変換パラメータを用いて表示画像501の四隅の画像座標を変換させた表示画像502を生成し、該生成した表示画像502を表示画面115に表示させる。
【0047】
また、表示装置101の起動後に初めてマーカ領域を検出した撮像画像が
図4Aの撮像画像401aであり、そのときに表示した基準表示画像が表示画像501であり、Nフレーム目の撮像画像として撮像画像404aを取得した場合には、例えば、撮像画像404aにおけるマーカ404bの四隅の画像座標を求め、形状情報が示すマーカ401bの四隅の画像座標からマーカ404bの四隅の画像座標への座標変換パラメータを求め、該座標変換パラメータを用いて表示画像501の四隅の画像座標を変換させた表示画像504を生成し、該生成した表示画像504を表示画面115に表示させる。これは、表示装置101の起動後に初めてマーカ領域を検出した撮像画像が
図4Bの撮像画像402aであっても同様である。
【0048】
また、表示装置101の起動後に初めてマーカ領域を検出した撮像画像が
図4Aの撮像画像401aであり、そのときに表示した基準表示画像が表示画像501であり、Nフレーム目の撮像画像として撮像画像405aを取得した場合には、例えば、撮像画像405aにおけるマーカ405bの四隅の画像座標を求め、形状情報が示すマーカ401bの四隅の画像座標からマーカ405bの四隅の画像座標への座標変換パラメータを求め、該座標変換パラメータを用いて表示画像501の四隅の画像座標を変換した表示画像505を生成し、該生成した表示画像505を表示画面115に表示させる。これは、表示装置101の起動後に初めてマーカ領域を検出した撮像画像が
図4Bの撮像画像402aであっても同様である。
【0049】
このような構成によれば、HMD(頭部)の位置姿勢に応じた画像表示を行う場合、従来のように、HMDの位置姿勢をセンサなどを用いて計測したり、センサを用いて収集した情報やマーカの3次元位置姿勢なども考慮して仮想3次元空間における視点からの画像を生成するといった複雑な演算処理を行う必要はなく、撮像画像中のマーカ領域の形状の変化のみに応じて、HMD(頭部)の位置姿勢に応じた画像表示を行うことができる。
【0050】
[第2の実施形態]
第1の実施形態では、表示装置101の起動後に初めて撮像画像から検出したマーカ領域の形状を示す情報を形状情報としたが、他のフレームにおけるマーカ領域の形状を示す情報であっても良い。例えば、最近に検出したマーカ領域の形状を示す情報を形状情報としても良い。
【0051】
また、第1の実施形態では、HMDの代わりに、ハンドヘルド表示装置、スマートフォン、タブレット端末装置を使用しても良いが、何れの装置であっても、現実空間の動画像を撮像するカメラを有する必要がある。
【0052】
また、表示画面115に表示画像を表示する場合には、カメラ114による撮像画像も表示しても良い。例えば、撮像画像上のマーカ領域に重ねて表示画像を表示しても良い。もちろん、表示画像の表示位置はマーカ領域に重なる位置に限らない。
【0053】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。