(57)【要約】【課題】仮想情報としての多角形を、顔の向きに応じて好適に透過型HMDに表示すること。【解決手段】三次元矢印情報演算部13は、仮想情報である矢印の各端点の位置を、利用者との相対位置として演算する。顔向き取得部15は、利用者の顔の向き情報を取得する。二次元矢印情報演算部14は、矢印端点の位置を、顔の向き情報に応じて制御するとともに、HMD面上の位置に変換する。二次元矢印情報演算部14において、顔の向き情報に応じて矢印端点の位置を制御したときにHMD面より利用者側となる端点がある場合、該端点に代えて矢印の外形線分とHMD面の交点を用いれば、虚像が表示されないようにすることができる。表示設定部16は、HMD面に投影表示する画像を生成し、表示部17は、その画像をHMD面に投影表示する。【選択図】図１
2011034429.tif 000002
【特許請求の範囲】
【請求項１】
利用者の顔の向き情報を取得する第１のステップと、
三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算する第２のステップと、
前記第２のステップにより演算された仮想情報の端点の位置を、前記第１のステップにより取得された利用者の顔の向き情報に応じて制御するとともに、透過型ＨＭＤの表示面上の位置に変換する第３のステップと、
前記第３のステップにより変換された仮想情報の端点の位置を用いて、透過型ＨＭＤの表示面に投影表示する画像を生成する第４のステップと、
前記第４のステップにより生成された画像を透過型ＨＭＤの表示面に投影表示する第５のステップを備えたことを特徴とする表示方法。
【請求項２】
前記第３のステップは、首を中心とする顔の回転モデルを用いて、仮想情報の端点の位置を透過型ＨＭＤの表示面上の位置に変換することを特徴とする請求項１に記載の表示方法。
【請求項３】
前記３のステップは、利用者の顔の向き情報に応じて仮想情報の端点の位置を制御したときに透過型ＨＭＤの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型ＨＭＤの表示面の交点を求め、該交点を利用者側の端点に代える処理を含むことを特徴とする請求項１または２に記載の表示方法。
【請求項４】
前記第４のステップは、透過型ＨＭＤの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面との交点を求め、該交点を表示面外との端点の代わりに用いて透過型ＨＭＤの表示面に投影表示する画像を生成する処理を含むことを特徴とする請求項１ないし３のいずれかに記載の表示方法。
【請求項５】
仮想情報が、ナビゲーションにおける矢印であり、ＧＰＳシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成されることを特徴とする請求項１ないし４のいずれかに記載の表示方法。
【請求項６】
仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得されることを特徴とする請求項１ないし４のいずれかに記載の表示方法。
【請求項７】
利用者の現在位置を基準とした一定範囲内の位置の仮想情報だけの画像が透過型ＨＭＤの表示面に表示されることを特徴とする請求項６に記載の表示方法。
【請求項８】
利用者の顔の向き情報を取得する顔向き取得部と、
三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算する三次元情報演算部と、
前記三次元情報演算部により演算された仮想情報の端点の位置を、前記顔向き取得部により取得された利用者の顔の向き情報に応じて制御するとともに、透過型ＨＭＤの表示面上の位置に変換する二次元情報投影演算部と、
前記二次元情報投影演算部により変換された仮想情報の端点の位置を用いて、透過型ＨＭＤの表示面に投影表示する画像を生成する表示設定部と、
前記表示設定部により生成された画像を透過型ＨＭＤの表示面に投影表示する表示部を備えたことを特徴とする表示システム。
【請求項９】
前記二次元情報投影演算部は、首を中心とする顔の回転モデルを用いて、仮想情報の端点の位置を透過型ＨＭＤの表示面上の位置に変換することを特徴とする請求項８に記載の表示システム。
【請求項１０】
前記二次元情報投影演算部は、利用者の顔の向き情報に応じて仮想情報の端点の位置を制御したときに透過型ＨＭＤの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型ＨＭＤの表示面の交点を求め、該交点を利用者側の端点に代える機能を有することを特徴とする請求項８または９に記載の表示システム。
【請求項１１】
前記表示設定部は、透過型ＨＭＤの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面との交点を求め、該交点を表示面外との端点の代わりに用いて透過型ＨＭＤの表示面に投影表示する画像を生成する機能を有することを特徴とする請求項８ないし１０のいずれかに記載の表示システム。
【請求項１２】
仮想情報が、ナビゲーションにおける矢印であり、ＧＰＳシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成されることを特徴とする請求項８ないし１１のいずれかに記載の表示システム。
【請求項１３】
仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得されることを特徴とする請求項８ないし１１のいずれかに記載の表示システム。
【請求項１４】
利用者の現在位置を基準とした一定範囲内の位置の仮想情報だけの画像が透過型ＨＭＤの表示面に表示されることを特徴とする請求項１３に記載の表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示方法および表示システムに関し、特に、現実空間に電子情報を重畳して仮想情報を表示する拡張現実技術における表示方法および表示システムに関する。
【背景技術】
【０００２】
従来から、装着することにより眼前にディスプレイが配置され、視界を覆ってディスプレイ画面のみを利用者に視認させる非透過型ヘッドマウントディスプレイ(HMD：Head Mounted Display)が存在する。非透過型HMDでは、眼前のディスプレイ画面上に電子情報による仮想情報が表示されるので、利用者は、意識的に視線を向けなくても、その仮想情報を視認することができる。また、小型のディスプレイを用いても仮想的に大型の画面表示を実現できる。非透過型HMD(Vuzix iWear vr920)は、非特許文献１に記載されている。
【０００３】
近年では、視界を確保しながらディスプレイ画面上に電子情報による仮想情報を重畳して表示することが可能な透過型HMDが実現されている。透過型HMDでは、利用者の視界を確保しつつ、ディスプレイ画面上に電子情報による仮想情報が表示されるので、現実空間の視界の一部に電子情報による仮想情報を重畳して表示することができる。透過型HMD(LUMUS)は、非特許文献２に記載されている。
【０００４】
一方、非透過型HMDに顔の向きを検知するセンサを搭載し、3次元データで構成された仮想空間データを利用者の顔の向きに応じて連続的に切替えて表示するヘッドトラッキング機能を備えたHMDが存在する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Vuzix iWear VR920(http://www.vuzix.com/iwear/products_vr920.html)
【非特許文献２】LUMUS（http://www.lumusvision.com/）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
透過型HMDを用いて視界の一部に電子情報を重畳して仮想情報を表示する場合、視界上にあたかも仮想情報が存在するように見せるためには、利用者の顔の向きに応じて電子情報を変更して表示を制御する必要がある。これは、上述のヘッドトラッキング機能を利用する手法により実現可能である。
【０００７】
しかしながら、従来のヘッドトラッキング機能を利用する手法を用いる場合には、3次元データを仮想空間データとして用意する必要があるので、表示を制御するための処理負荷や消費電力が高くなり、携帯電話などの処理能力が低い端末でこれを実現するのが困難であるという課題がある。
【０００８】
本発明の目的は、上記課題を解決し、仮想情報としての多角形を、顔の向きに応じて低い処理負荷で透過型HMDに適切に表示することができる表示方法および表示システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の表示方法は、利用者の顔の向き情報を取得する第１のステップと、三次元空間に仮想的に存在する多角形の仮想情報の端点の位置を、利用者の位置に対する相対位置として演算する第２のステップと、前記第２のステップにより演算された仮想情報の端点の位置を、前記第１のステップにより取得された利用者の顔の向き情報に応じて制御するとともに、透過型ＨＭＤの表示面上の位置に変換する第３のステップと、前記第３のステップにより変換された仮想情報の位置を用いて、透過型ＨＭＤの表示面に投影表示する画像を生成する第４のステップと、前記第４のステップにより生成された画像を透過型ＨＭＤの表示面に投影表示する第５のステップを備えた点に第１の特徴がある。
【００１０】
また、本発明の表示方法は、前記第３のステップが、首を中心とする顔の回転モデルを用いて、仮想情報の端点の位置を透過型ＨＭＤの表示面上の位置に変換する点に第２の特徴がある。
【００１１】
また、本発明の表示方法は、前記３のステップが、利用者の顔の向き情報に応じて仮想情報の端点の位置を制御したときに透過型ＨＭＤの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型ＨＭＤの表示面の交点を求め、該交点を利用者側の端点に代える処理を含む点に第３の特徴がある。
【００１２】
また、本発明の表示方法は、前記第４のステップが、透過型ＨＭＤの表示面外となる仮想情報の端点がある場合、仮想情報の多角形外形の線分と表示面との交点を求め、該交点を表示面外との端点の代わりに用いて透過型ＨＭＤの表示面に投影表示する画像を生成する処理を含む点に第４の特徴がある。
【００１３】
また、本発明の表示方法は、仮想情報が、ナビゲーションにおける矢印であり、ＧＰＳシステムによる利用者の現在位置および目的地までのルート情報に基づいて生成される点に第５の特徴がある。
【００１４】
また、本発明の表示方法は、仮想情報が、その存在位置および多角形表示の内容を含む情報であり、予め表示システム内に保存されている、あるいは通信によりネットワーク上のサーバや他端末から動的に取得される点に第６の特徴がある。
【００１５】
また、本発明の表示方法は、利用者の現在位置を基準とした一定範囲内の位置の仮想情報だけの画像が透過型ＨＭＤの表示面に表示される点に第７の特徴がある。
【００１６】
なお、本発明は、表示方法としてだけでなく、上記各ステップを実行する手段を備える表示システムとしても実現できる。
【発明の効果】
【００１７】
本発明では、顔の向きに応じて多角形の仮想情報の表示を制御するので、あたかも現実世界に存在するかのようにして透過型HMDの表示面に多角形の仮想情報を適切に表示することができる。その際、利用者の顔の向き情報に応じて仮想情報の端点の位置を制御したときに透過型HMDの表示面より利用者側となる端点がある場合、仮想情報の多角形線分と透過型HMDの表示面の交点を求め、該交点を利用者側の端点に代えることにより、仮想情報が虚像として表示されることをなくすことができる。
【００１８】
また、3次元データを仮想空間データとして用意する必要がないので、表示を制御するための処理負荷や消費電力を低くすることができ、携帯電話などの処理能力が低い端末でもこれを実現することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の表示システムの第１実施形態を示す機能ブロック図である。
【図２】三次元座標上での矢印端点の位置を概念的に示す図である。
【図３】三次元座標上での矢印(直進矢印)端点の位置を詳細に示す図である。
【図４】三次元座標上での矢印(右左折矢印)端点の位置を詳細に示す図である。
【図５】矢印端点の三次元座標位置からHMD面上の二次元座標位置への変換を概念的に示す図である。
【図６】顔の向き情報に従って矢印端点の位置を制御するために利用される顔の回転モデルを示す図である。
【図７】矢印端点が実像として表示される領域(実像範囲)と虚像として表示される領域(虚像範囲)を示す図である。
【図８】虚像範囲に存在する端点の処理を概念的に示す図である。
【図９】塗りつぶし面を求める手法を示すフローチャートである。
【図１０】塗りつぶし面を求める手法を具体的に説明する図である。
【図１１】本発明の表示システムの第２実施形態を示す機能ブロック図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明を説明する。本発明は、特に、仮想情報として多角形を利用者の顔の向きに応じて制御しつつ透過型HMD(以下では、単に「HMD」と記す。)に表示する表示システムであり、例えば、多角形を利用者進行方向を指示する矢印とすることによりナビゲーションシステムに適用でき、任意の多角形とすることにより、利用者の周りに仮想情報による物体があたかも存在するかのように表示する表示システムに適用できるものである。
【００２１】
図１は、本発明の表示システムの第１実施形態を示す機能ブロック図である。なお、本発明は、各部処理をステップとした表示方法としても実現できる。
【００２２】
第１実施形態の表示システムは、位置情報取得部11、ナビゲーション情報取得部12、三次元矢印情報演算部13、二次元矢印情報投影演算部14、顔向き取得部15、表示設定部16および表示部17を備え、ナビゲーションシステムとして構成されている。なお、これらの各部の処理は、ハードウエアでもソフトウエアでも実現できる。
【００２３】
ここで、三次元矢印情報演算部13、二次元矢印情報投影演算部14および表示設定部16は、基本的な表示内容設定装置を構成し、この表示内容設定装置に顔向き取得部15と表示部17を付加した構成が、表示システムに必要な構成である。本実施形態は、ナビゲーションシステムであるので、さらに位置情報取得部11とナビゲーション情報取得部12を付加している。
【００２４】
位置情報取得部11は、GPSシステムにより利用者の現在位置情報を取得する。ナビゲーション情報取得部12は、利用者により入力される現在地から目的地までのルート情報を求め、利用者の現在位置の情報からその時点での進行方向の方位、次の右左折点までの距離、右左折点で曲がる角度などのナビゲーション情報を取得する。
【００２５】
三次元矢印情報演算部13は、ナビゲーション情報を元に、三次元座標上での矢印端点の位置を算出する。矢印端点の位置とは、ナビゲーション用の矢印を利用者がみたときの、三次元座標上での利用者と矢印の間の相対位置を意味する。
【００２６】
図２は、三次元座標上での矢印端点の位置を概念的に示す図である。ここには、利用者の進行方向,左右方向,上下方向をそれぞれx軸,y軸,z軸とし、利用者の首の位置を原点(0,0,0)としたときの利用者と矢印(始点,終点,右左折点)の間の相対位置を示している。同図(a)に示すように、首から-uの高さの位置において、進行方向の距離vの地点から距離v+w1の地点までの直進矢印の始点、終点の位置はそれぞれ、(v,0,-u),(v+w1,0,-u)で表される。また、同図(b)に示すように、進行方向の距離v+wの地点で右左折(折角度θ)し、さらに距離w2だけ進む場合の、右左折矢印の始点、右左折点、終点の位置はそれぞれ、(v,0,-u),(v+w,0,-u),(v+w+w2*cosθ,w2*sinθ,-u)で表される。例えば、v=1m、w1=30m、v+w+w2=30mに設定される。このように、直線矢印については、一定距離を表す一定長さの直線矢印とすることが好ましいが、次の右左折点までの直線矢印としてもよい。
【００２７】
図３、図４は、三次元座標上での矢印端点の位置を詳細に示す図であり、図３は直進矢印の場合、図４は右左折矢印の場合である。ここでは、矢印のx軸方向およびy軸方向の位置(Xi,Yi)を示しており、z軸方向の位置はZ=-u(固定)としている。矢印は、実際上では、図３、図４に示されるように太さを持って表される。三次元矢印情報演算部13は、図３、図４で示されるように、矢印端点の位置を算出する。
【００２８】
直進矢印と右左折矢印は、次の右左折点までの距離v+wに従って切り替えられる。一定長さの直進矢印を表示するものとすると、w1=T(閾値)とし、w≧Tの場合に直進矢印を表示し、w＜Tの場合に右左折矢印を表示するようにすれば、直進矢印と右左折矢印を連続的に切り替えることができる。右左折点までの距離や右左折折角度は、ナビゲーション情報から得ることができる。
【００２９】
二次元矢印情報投影演算部14は、三次元矢印情報演算部13により算出された三次元座標上での位置をHMD面の二次元座標上での位置に変換し、矢印がHMD面に投影表示されたときのHMD面上での矢印端点の位置を算出する。
【００３０】
図５は、矢印端点の三次元位置からHMD面上の二次元位置への変換を概念的に示す図である。同図に示すように、HMD面上での矢印端点の位置は、矢印端点の三次元座標上での位置(v,0,-u),(v+w,0,-u)と眼を結ぶ線分とHMD面との交点として得られる。
【００３１】
二次元矢印情報投影演算部14には、顔向き取得部15から顔の向き情報が与えられ、これにより、HMD面上での矢印端点の位置が利用者の顔が向いている方位、上下方向の角度、左右の傾きに応じて制御される。
【００３２】
顔向き取得部15は、利用者の顔の向き情報を取得する。顔向き取得部15は、例えば、ジャイロセンサ、地磁気センサ、加速度センサ、またはそれらの複数を１つに統合したセンサモジュールとして構成される。顔の向き情報は、利用者の顔が向いている方位、上下方向の角度、左右の傾きの情報を含む。
【００３３】
図６は、顔の向き情報に従って矢印端点の位置を制御するために利用される顔の回転モデルを示す。顔の回転モデルは、人間の首をモデル化したものであり、この回転モデルに従って矢印の端点位置に首の付け根を中心とした回転処理が施される。
【００３４】
以下に、二次元矢印情報投影演算部14での回転処理、すなわち、顔の向き情報に従って矢印端点の位置を制御する処理について説明する。
【００３５】
まず、図６に示されるように、利用者の首の位置を原点Oとし、進行方向をX軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した首の位置を原点O'とし、進行方向をX軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した眼の位置を原点O"とし、進行方向をX軸、左右方向をy軸、上下方向をz軸とした三次元座標、HMD面の一隅を原点O'''とし、その水平方向をx軸、垂直方向をy軸とした二次元座標を想定し、顔の回転モデルに関する定数r,h,lを以下のように定義する。
const r = HMD_FRONT_LEN_FROM_EYE (定数r：眼とHMD面間の距離)
const h = EYE_HEIGHT_FROM_NECK (定数h：首と眼の高低差)
const l = EYE_FRONT_LEN_FROM_NECK (定数l：首と眼の水平方向離間距離)
【００３６】
また、HMD面の大きさに関する定数(ピクセルではなく物理的な長さ)を以下のように定義する。
const DISPLAY_WIDTH (HMD面の幅)
const DISPLAY_HEIGT (HMD面の高さ)
【００３７】
顔向き取得部15から取得できる顔の向き情報の変数を以下のように定義する。
θ = face_direction(北向きから反時計回り(西側)が正)
φ = face_tilt(上向き方向が正)
ψ = face_rot(右に傾げた場合が正)
【００３８】
三次元座標上での矢印端点の位置(X,Y,Z)とすると、原点をOとする三次元座標上での端点の位置(X,Y,Z)Ｏは、式(1)により原点をO'とする三次元座標上での位置(X,Y,Z)Ｏ’に変換される。
【００３９】
【数１】
2011034429.tif 000003
【００４０】
式(1)における右辺の3つの行列はそれぞれ、顔の左右傾きを逆補正回転(-ψ回転)させる行列、顔の上下傾きを逆補正回転(-φ回転)させる行列、顔の向きを逆補正回転(-θ回転)させる行列であり、これらの行列を行列(X,Y,Z)Ｏに掛けることにより行列(X,Y,Z)Ｏ’が算出される。
【００４１】
原点をO'とする三次元座標上での端点の位置(X,Y,Z)Ｏ’は、式(2)に示すように、定数h,l分だけ平行移動させることにより、原点をO"とする三次元座標上での位置(X,Y,Z)Ｏ"へ変換される。
【００４２】
【数２】
2011034429.tif 000004
【００４３】
以上のようにして算出された原点をO"とする三次元座標上での位置(X,Y,Z)Ｏ"をHMD面の一隅を原点O'''とする二次元座標上での位置に変換してHMD面上での矢印端点の位置を算出する。
【００４４】
本実施形態では、さらに、HMD面に虚像が表示されないようにしている。矢印端点のうちいくつかがHMD面に対して利用者の顔と同じ側の領域に存在する場合、その領域に存在する端点はHMD面表示では虚像となり、矢印の全部あるいは一部が上下左右逆に表示されることになる。
【００４５】
図７は、矢印端点が実像として表示される領域(実像範囲)と虚像として表示される領域(虚像範囲)を示す図である。同図に示すように、HMD面に対して利用者の顔と反対側の領域が実像範囲となり、顔と同じ側の領域が虚像範囲となる。
【００４６】
これを回避するために単純に虚像範囲に存在する端点を削除すると、その端点と実像範囲に存在する端点を結ぶ線分が正常に処理されなくなる。そこで、二次元矢印情報投影演算部14は、HMD面と三次元座標上での矢印の線分の交点を求め、この交点を虚像範囲に存在する端点の代わりとする。すなわち、HMD面と三次元座標上での矢印の線分の交点を矢印端点として再定義する。
【００４７】
図８は、虚像範囲に存在する端点の処理を概念的に示す図である。同図(a)に示すように、多角形の端点A〜FのうちC〜Eが実像範囲に存在し、A,B,Fが虚像範囲に存在するとする。
【００４８】
このままの端点を元にしてHMD面表示を行うと、虚像範囲に存在する多角形の一部が虚像として表示される。また、虚像範囲に存在する端点A,B,Fを単に削除すると、同図(b)に示すように、端点BとCを結ぶ線分BC、端点EとFを結ぶ線分EFが正常に処理されなくなり、実像として表示されるべき多角形の部分も削除されてしまう。
【００４９】
そこで、本発明では、同図(c)に示すように、線分BC、線分EFとHMD面の交点B',F'を求め、交点B',F'をそれぞれ端点B,Fに代えることにより多角形の端点を再定義する。
【００５０】
次に、多角形の端点を再定義するための具体的手法について説明する。原点をO"とする三次元座標上において多角形を形成する1つの線分ABの端点A,Bの位置(式(2)により求められた端点位置をA(xa,ya,za)、B(xb,yb,zb)とする。
【００５１】
以下に示す(1)〜(3)の手順に従って、端点A,Bが実像範囲に存在するか虚像範囲に存在するかにより多角形の端点を再定義する。
(1)端点A、Bが共にHMD面に対して顔と反対側の領域(実像範囲)に存在する場合
【００５２】
端点A,Bをそのまま保持する。端点A、Bが共にHMD面に対して実像範囲に存在することは、xa≧r，xb≧rにより判別できる。
(2)端点A、Bが共にHMD面に対して顔と同じ側の領域(虚像範囲)に存在する場合
【００５３】
端点A、Bは存在しないものとする。端点A、Bが共にHMD面に対して虚像範囲に存在することは、xa＜r，xb＜rにより判別できる。
(3)端点A, BがHMD面を挟んで(一方が実像範囲、他方が虚像範囲)存在する場合
【００５４】
線分ABとHMD面との交点を求め、虚像範囲に存在す端点の代わりに線分ABとHMD面との交点(x,y,z)Ｏ"を用いる。すなわち、xa＜r，xb≧rの場合には、端点Bをそのままとし、端点Aの代わりに交点(x,y,z)Ｏ"を用い、xa≧r，xb＜rの場合には、端点Aをそのままとし、端点Bの代わりに交点(x,y,z)Ｏ"を用いる。
【００５５】
線分ABとHMD面との交点(x,y,z)Ｏ"は、式(3)で求めることができる。
【００５６】
【数３】
2011034429.tif 000005
【００５７】
HMD面の一隅を原点O'''とした二次元座標上での端点位置は、HMD面の大きさを考慮すると、式(4)で求めることができる。これにより求められる端点位置は、物理的な長さによるものである。HMD面上でのピクセル数による端点位置とするには、HMD面の左上端からの端点位置までの縦・横の長さに垂直・水平方向の解像度を乗算してピクセル座標に合わせればよい。
【００５８】
【数４】
2011034429.tif 000006
【００５９】
表示設定部16では、虚像範囲に存在する端点は処理対象とせず、虚像範囲に存在する端点の代わりに再定義された交点および実像範囲に存在する端点を処理対象とする。図８(c)に示した例では、端点Aは存在しないものとされ、端点B,Fの代わりに交点B',F'が再定義されるので、端点B',C,D,E,F'のみが処理対象とされる。
【００６０】
表示設定部16は、二次元矢印情報投影演算部14により算出された矢印端点の位置を元にHMD面での表示情報を生成する。ここで、矢印の一部がHMD面の表示領域枠外に存在する場合、表示設定部16は、表示領域枠内に存在する矢印の部分が正常に表示されるように、塗りつぶし面の端点の位置を求める。塗りつぶし面の端点の位置は、表示領域枠と矢印外形線の線分の直線同士の交点として求めることができる。各端点の位置を元に塗りつぶし面を求める手法については、後述する。
【００６１】
表示部17は、表示設定部16により生成された表示情報を表示する。具体的には、表示設定部16により生成された表示情報を画像出力用ケーブルを介してHMDに出力し、HMD面に投影表示する。なお、画像出力用ケーブルに代えてWireless HDなどの無線接続を利用することもできる。
【００６２】
次に、表示設定部16において、各端点の位置を元に塗りつぶし面を求める手法について説明する。図９は、この塗りつぶし面を求める手法を示すフローチャートである。
【００６３】
まず、二次元矢印情報投影演算部14での投影演算処理により算出された矢印端点の位置(座標)を元にして各端点を時計回りにたどり、描画端点を得る(S1)。このとき、矢印端点がHMD面の表示領域枠内に存在する場合、その端点を描画端点として保存し、前後の端点を結ぶ線分が表示領域枠と交わる場合にはその交点を描画端点として保存する。それ以外の端点は描画端点としない。また、描画端点に(1)から順に番号を付けるとともに、種別を付ける。描画端点の種別とは、表示領域枠内(表示領域枠内に存在する端点)、交点入(表示領域枠内に入る線分の交点)、交点出(表示領域枠外に出る線分の交点)である。
【００６４】
以下の処理は、描画端点を反時計回りにたどりつつ実行される。まず、処理番号を描画端点の最大番号とし(S2)、最初の描画多角形データの生成開始(S3)とする。S3および後述するS12,S15のステップは、互いに分離された複数の塗りつぶし面が存在する場合に、個々の塗りつぶし面に対する別々の描画多角点データを生成するために設けられている。
【００６５】
次に、その描画端点が処理済みであるか否かを判定する(S4)。S4で、処理済みでないと判定された場合、その描画端点を描画多角形データに登録するとともに処理済みに設定し(S5)、処理済みと判定された場合はS12に進む。
【００６６】
次に、処理済みに設定した描画端点の種別が交点入であるか否かを判定する(S6)。S6で、その描画端点が交点入でないと判定された場合、S7に進み、交点入りと判定された場合は、S9に進む。
【００６７】
S7では、処理番号が描画端点の最小番号であるか否かを判定する。S7で、処理番号が描画端点の最小番号と判定された場合、S12に進むが、最小番号でないと判定された場合には、処理番号を1だけ小さくし(S8)、S4に戻って処理を繰り返す。
【００６８】
S6で、描画端点が交点入と判定された場合には、表示領域枠の同じ線分上、反時計回りに交点出の描画端点があるか否かを判定する(S9)。この判定には、処理済みの描画端点も対象とする。S9で、交点出の種別の描画端点があると判定された場合、最も近い描画端点を選択し(S10)、S4に戻って処理を繰り返す。また、S9で、交点出の種別の描画端点がないと判定された場合には、反時計回りにある表示領域枠の隅を新たな描画端点(交点入)として登録し、この描画端点を処理対象とし(S11)、S4に戻って処理を繰り返す。なお、この場合の新たな描画端点の種別は、S6からS9に進むために便宜上交点入とする。但し、それが表示領域枠の隅であること明示する種別とし、S6を交点入あるいは表示領域枠の隅であるか否かを判定する構成としてもよい。
【００６９】
S12では、S7で処理番号が最小番号と判定されたので、当該描画多角形データの生成終了とする。これにより1つの塗りつぶし面に対する描画多角点データが終端される。
【００７０】
次に、まだ処理済みでない描画端点があるか否かを判定する(S13)。ここで、あると判定された場合には残りの描画端点の番号のうちの最大番号を処理番号として(S14)、新たに次の描画多角形データの生成開始(S15)とした後、S4に戻って処理を繰り返すが、ないと判定された場合は、処理を終了する。
【００７１】
以下に具体的に説明する。ここでは、図１０に示すように、4隅をα,β,γ,δとするHMD面の表示領域枠に対して矢印(端点A〜I)の一部が表示領域枠外となり、表示領域枠αβと矢印外形線の線分BC,CD,DEの交点(3),(4),(6)、表示領域枠δαと矢印外形線の線分HIの交点(7)が求められている場合を例に挙げる。
【００７２】
1. 矢印の1つの端点(例えば端点A)から矢印の外周を時計回りにA→B→C…H→Iとたどる。このとき、端点がHMDの表示領域内に存在する場合はその端点を描画端点として登録し、前後の端点を結ぶ線分が表示領域枠と交わる場合はその交点を描画端点として登録する。登録された描画端点には(1)から順に番号を付すとともに種別を付す(S1)。
【００７３】
図１０の例では、以下のようになる。
端点Aは表示領域内→端点Aが描画端点(番号(1),種別(領域内))として登録される。
端点Bは表示領域内→端点Bが描画端点(番号(2),種別(領域内))として登録される。
線分BCは表示領域枠と交わる→交点が描画端点(番号(3),種別(交点出))として登録される。
線分CDは表示領域枠と交わる→交点が描画端点(番号(4),種別(交点入))として登録される。
端点Dは表示領域内→端点Dが描画端点(番号(5),種別(領域内))として登録される。
線分DEは表示領域枠と交わる→交点が描画端点(番号(6),種別(交点出))として登録される。
線分EFは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分FGは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分GHは表示領域枠と交わらない→登録される端描画点はない(無視)。
線分HIは表示領域枠と交わる→交点が描画端点(番号(7),種別(交点入))として登録される。
端点Iは表示領域内→端点Iが描画端点(番号(8),種別(領域内))として登録される。
【００７４】
2. 処理番号を描画端点の最大番号(8)とし(S2)、まず、描画端点I(番号(8))を処理対象として最初の描画多角形データの生成開始とする(S3)。
【００７５】
3. 描画端点I(番号(8),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００７６】
4. 描画端点I(番号(8),種別(交点入))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点(番号(7),種別(交点入))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【００７７】
5. 描画端点(番号(7),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００７８】
6. 描画端点(番号(7),種別(交点入))の種別は交点入であり、表示領域枠の同じ線分(αδ)上、反時計回りに交点出の描画端点はないので、反時計回りにある表示領域枠の隅(α)を新たな描画端点(番号(9),種別(交点入))に登録し、これを処理対象としてS4以下の処理を行う(S6),(S9),(S11)。
【００７９】
7. 描画端点(番号(9),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００８０】
8. 描画端点(番号(9))の種別は交点入であり、表示領域枠の同じ線分(αβ)上、反時計回りに交点出の描画端点(番号(3),種別(交点出))があるので、最も近い描画端点(番号(3),種別(交点出))を選択し、これを処理対象としてS4以下の処理を行う(S6),(S9),(S10)。なお、この場合、最も近い描画端点は描画端点(番号(3),種別(交点出))1つだけである。
【００８１】
9. 描画端点(番号(3),種別(交点出))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００８２】
10. 描画端点(番号(3),種別(交点出))の種別は交点入でないので、処理番号を1だけ小さくして描画端点B(番号(2),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【００８３】
11. 描画端点B(番号(2),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００８４】
12. 描画端点B(番号(2),種別(領域内))の種別は交点入でないので、処理番号を1だけ小さくして描画端点A(番号(1),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【００８５】
13. 描画端点A(番号(1),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００８６】
14. 描画端点A(番号(1),種別(領域内))の種別は交点入でなく、それより小さい番号の描画端点はないので、当該描画多角形データの生成終了とし、S13に進む(S6),(S7),(S12)。
【００８７】
15. 処理済みでない描画端点が存在し、その最大番号は(6)であるので、描画端点(番号(6),種別(交点出))を処理対象として次の描画多角形データの生成開始とし、S4以下の処理を行う(S13),(S14),(S15)。
【００８８】
16. 描画端点(番号(6),種別(交点出))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００８９】
17. 描画端点(番号(6),種別(交点出))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点D(番号(5),種別(領域内))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【００９０】
18. 描画端点D(番号(5),種別(領域内))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００９１】
19. 描画端点D(番号(5),種別(領域内))の種別は交点入でなく、処理番号は最小番号でないので、処理番号を1だけ小さくして描画端点(番号(4),種別(交点入))を処理対象とし、S4以下の処理を行う(S6),(S7),(S8)。
【００９２】
20. 描画端点(番号(4),種別(交点入))は処理済みでないので、描画多角形データに登録し、処理済みに設定する(S4),(S5)。
【００９３】
21. 描画端点(番号(4),種別(交点入))の種別は交点入であり、表示領域枠の同じ線分(αδ)上に描画端点(番号(6),種別(交点出))があるが、これは処理済みであるので、当該描画多角形データの生成終了とし、S13に進む(S6),(S9),(S10),(S4),(S12)。
22. 以上により処理済みでない描画端点はなくなるので、処理を終了する(S13)。
【００９４】
以上の処理により、(8),(7),(9),(3),(2),(1)の描画多角形データと(6),(5),(4)の描画多角形データ、すなわち2つ塗りつぶし面が得られる。
【００９５】
図１１は、本発明の表示システムの第２実施形態を示す機能ブロック図である。第２実施形態は、本発明をHMD面上に種々の多角形の仮想情報を表示する表示システムとして構成されている。これによれば、例えば、利用者の周りに、あたかも多角形状の物体が存在するかのような表示を行わせることができる。このように、本発明は、ナビゲーションシステムに限らず、種々の表示システムとして構成できる。
【００９６】
図１１において、図１と同一あるいは同等部分には同じ符号を付している。第２実施形態が第１実施形態と異なるのは、図１の三次元矢印情報演算部13と二次元矢印情報投影演算部14に代えて三次元仮想情報演算部18と二次元仮想情報投影演算部19を備え、三次元仮想情報演算部18および二次元仮想情報投影演算部19が仮想情報20を処理対象とする点である。第１実施形態は、仮想情報がナビゲーション用の矢印である場合に相当する。
【００９７】
ここで、三次元仮想情報演算部18、二次元仮想情報投影演算部19および表示設定部16は、基本的な表示内容設定装置を構成し、この表示内容設定装置に顔向き取得部15と表示部17を付加した構成が、表示システムに必要な構成である。
【００９８】
仮想情報20は、それが存在する絶対位置あるいは利用者の位置に対する相対位置の情報と多角形の表示内容を含む。仮想情報20は、予め表示システム内に保存されるものでもよいし、通信によりネットワーク上のサーバや他端末から動的に取得されるものでもよい。
【００９９】
三次元仮想情報演算部18は、三次元座標上での利用者の位置に対する仮想情報20の端点の相対位置を算出する。仮想情報20として、その絶対位置と表示内容が提供される場合には、その絶対位置とGPSシステムによって取得される利用者の現在位置情報を比較し、利用者の現在位置に対する仮想情報の相対位置を算出すればよい。また、仮想情報20として、利用者の位置に対する相対位置と表示内容が提供される場合には、その相対位置をそのまま用いることができる。
【０１００】
二次元仮想情報投影演算部19は、三次元仮想情報演算部18で算出された三次元座標上での仮想情報の端点の位置をHMD面の二次元座標上での位置に変換し、仮想情報がHMD面に投影表示されたときのHMD面上での仮想情報の端点の位置を算出する。この処理は、二次元矢印情報投影演算部14が行う処理と実質的に同じである。
【０１０１】
表示設定部16および表示部17での処理は、第１実施形態と同様であるので説明を省略する。
【０１０２】
第２実施形態によれば、利用者の周りに、あたかも多角形状の物体が存在するかのように表示する表示システムを構成できる。この場合、利用者の現在位置を基準とした一定範囲内の位置の仮想情報だけをHMD面に表示する構成にしてもよい。これは、三次元仮想情報演算部18が三次元座標上での利用者の位置に対する仮想情報20の相対位置を算出する際に、算出対象とする相対位置に制限を加えることにより実現できる。
【０１０３】
以上、実施形態を説明したが、本発明は、上記実施形態に限定されるのもではなく、種々に変形されたものも含む。例えば、図１では、顔の向きや傾きを検知する顔向き取得部15を1つのセンサモジュールとして構成しているが、顔の向きや傾きをそれぞれ検知するのに適した加速度センサ、地磁気センサを別々のセンサモジュールとして構成することもできる。また、センサモジュールは、表示内容設定装置に搭載されていてもよいし、HMD(表示部17)に搭載されていてもよいし、単独の装置として構成されていてもよい。
【符号の説明】
【０１０４】
11・・・位置情報取得部、12・・・ナビゲーション情報取得部、13・・・三次元矢印情報演算部、14・・・二次元矢印情報投影演算部、15・・・顔向き取得部、16・・・表示設定部、17・・・表示部、18・・・三次元仮想情報演算部、19・・・二次元仮想情報投影演算部、20・・・仮想情報
【図１】
2011034429.tif 000007
【図２】
2011034429.tif 000008
【図３】
2011034429.tif 000009
【図４】
2011034429.tif 000010
【図５】
2011034429.tif 000011
【図６】
2011034429.tif 000012
【図７】
2011034429.tif 000013
【図８】
2011034429.tif 000014
【図９】
2011034429.tif 000015
【図１０】
2011034429.tif 000016
【図１１】
2011034429.tif 000017
【手続補正書】
【提出日】平成21年9月4日(2009.9.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
以下、図面を参照して本発明を説明する。本発明は、特に、仮想情報として多角形を利用者の顔の向きに応じて制御しつつ透過型HMD(以下では、単に「HMD」と記す。)に表示する表示システムであり、例えば、多角形を利用者の進行方向を指示する矢印とすることによりナビゲーションシステムに適用でき、任意の多角形とすることにより、利用者の周りに仮想情報による物体があたかも存在するかのように表示する表示システムに適用できるものである。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
位置情報取得部11は、GPSシステムにより利用者の現在位置情報を取得する。
ナビゲーション情報取得部12は、利用者により入力される現在地から目的地までのルート情報を求め、利用者の現在位置の情報からその時点での進行方向の方位、次の右左折点までの距離、右左折点で曲がる角度などのナビゲーション情報を取得する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
図３、図４は、三次元座標上での矢印端点の位置を詳細に示す図であり、図３は直進矢印の場合、図４は右左折矢印の場合である。ここでは、各矢印端点のx軸方向およびy軸方向の位置(Xi,Yi)を示しており、z軸方向の位置はZ=-u(固定)としている。矢印は、実際上では、図３、図４に示されるように太さを持って表される。三次元矢印情報演算部13は、図３、図４で示されるように、矢印端点の位置を算出する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
まず、図６に示されるように、利用者の首の位置を原点Oとし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した首の位置を原点O'とし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、顔の回転を逆補正した眼の位置を原点O"とし、進行方向をx軸、左右方向をy軸、上下方向をz軸とした三次元座標、HMD面の一隅を原点O'''とし、その水平方向をx軸、垂直方向をy軸とした二次元座標を想定し、顔の回転モデルに関する定数r,h,lを以下のように定義する。
const r = HMD_FRONT_LEN_FROM_EYE (定数r：眼とHMD面間の距離)
const h = EYE_HEIGHT_FROM_NECK (定数h：首と眼の高低差)
const l = EYE_FRONT_LEN_FROM_NECK (定数l：首と眼の水平方向離間距離)
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
二次元矢印情報投影演算部14からは虚像範囲に存在する端点の代わりに再定義された交点および実像範囲に存在する端点の投影点の位置が送出される。図８(c)に示した例では、端点Aは存在しないものとされ、端点B,Fの代わりに交点B',F'が再定義されるので、端点B',C,D,E,F'の投影点の位置が二次元矢印情報投影演算部14から送出される。