(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024160840
(43)【公開日】2024-11-15
(54)【発明の名称】視線検出装置および視線検出装置の制御方法
(51)【国際特許分類】
G09G 5/38 20060101AFI20241108BHJP
G09G 5/00 20060101ALI20241108BHJP
【FI】
G09G5/38 100
G09G5/00 550C
G09G5/00 510A
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023076267
(22)【出願日】2023-05-02
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】内田 武志
【テーマコード(参考)】
5C182
【Fターム(参考)】
5C182AA05
5C182AB25
5C182AB31
5C182AB35
5C182AC03
5C182AC39
5C182BA14
5C182BA29
5C182BA54
5C182BA56
5C182BA66
5C182BC26
5C182CB42
5C182CB45
(57)【要約】
【課題】両眼で見ている状態と片眼で見ている状態とで、ユーザが見ている外界の物体の位置と仮想物体の位置との関係が変化しないよう制御する。
【解決手段】視線検出装置は、ユーザが見ている物体に対して仮想物体を表示するように制御する表示制御手段と、前記ユーザの視線位置を検出する検出手段とを有し、前記表示制御手段は、前記ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に、前記仮想物体の表示位置を補正することを特徴とする。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ユーザが見ている物体に対して仮想物体を表示するように制御する表示制御手段と、
前記ユーザの視線位置を検出する検出手段と
を有し、
前記表示制御手段は、前記ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に、前記仮想物体の表示位置を補正する
ことを特徴とする視線検出装置。
【請求項2】
前記表示制御手段は、両眼で見ている状態と片眼で見ている状態との間で、前記ユーザが知覚する前記物体の位置と前記仮想物体の位置との関係が変化しないように前記仮想物体の表示位置を補正する
ことを特徴とする請求項1に記載の視線検出装置。
【請求項3】
前記表示制御手段は、前記ユーザが両眼で見ている状態から片眼で見ている状態に遷移した場合、前記ユーザが開いている眼の位置と前記物体の位置に応じた位置とを通る直線上の位置に、前記仮想物体の表示位置を補正する
ことを特徴とする請求項1に記載の視線検出装置。
【請求項4】
前記表示制御手段は、前記ユーザから前記物体までの距離を繰り返し検出し、検出した前記ユーザから前記物体までの距離に基づいて前記仮想物体の表示位置を補正する
ことを特徴とする請求項1に記載の視線検出装置。
【請求項5】
前記表示制御手段は、前記ユーザから前記仮想物体を表示する表示部までの距離を繰り返し検出し、検出した前記ユーザから前記表示部までの距離に基づいて前記仮想物体の表示位置を補正する
ことを特徴とする請求項1に記載の視線検出装置。
【請求項6】
前記表示制御手段は、補正後の前記仮想物体の表示位置が、前記仮想物体の表示が制限される制限領域に含まれる場合、前記仮想物体を補正前の表示位置に表示するか、または、前記仮想物体を表示しないように制御する
ことを特徴とする請求項1に記載の視線検出装置。
【請求項7】
補正後の前記仮想物体の表示位置が、前記仮想物体の表示が制限される前記制限領域に含まれる場合、前記ユーザに所定の通知を行うように制御する通知制御手段をさらに有する
ことを特徴とする請求項6に記載の視線検出装置。
【請求項8】
前記検出手段は、前記ユーザが両眼を開いているか、いずれか一方の眼を閉じているかを検出する
ことを特徴とする請求項1に記載の視線検出装置。
【請求項9】
ユーザが見ている物体に対して仮想物体を表示するように制御する表示制御ステップと、
前記ユーザの視線位置を検出する検出ステップと
を有し、
前記表示制御ステップでは、前記ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に、前記仮想物体の表示位置を補正する
ことを特徴とする視線検出装置の制御方法。
【請求項10】
コンピュータを、請求項1~8のいずれか1項に記載の視線検出装置の各手段として機能させるためのプログラム。
【請求項11】
コンピュータを、請求項1~8のいずれか1項に記載の視線検出装置の各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、視線検出装置および視線検出装置の制御方法に関する。
【背景技術】
【0002】
近年、MR(Mixed Reality)またはAR(Augmented Reality)を利用した眼鏡型デバイスといった視線検出機能を有する頭部装着型表示装置の自動化・インテリジェント化が進んでいる。頭部装着型表示装置の方式としては、ユーザが透過型の光学部材(レンズ)を介して外界(現実空間)を見たり、頭部装着型表示装置によって表示されたグラフィック(例えば仮想物体)を見たりすることができる光学シースルー方式がある。特許文献1は、使用者の視線の方向を検出し、選択肢を表す映像で視線が向けられた選択肢に応じて、テレビ等の外部機器を制御する技術を開示している。また、特許文献2は、顔画像から片方の目しか検出できない場合であっても、視線の検出精度を向上させる技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003-230539号公報
【特許文献2】特開2021-77265号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
頭部装着型表示装置を装着したユーザが、透過型の光学部材を介して外界の物体および仮想物体を両眼で見ている際に片眼を閉じた場合、仮想物体の位置は、背景にある外界の物体の位置に対して相対的に移動したように見える。特許文献1、2では、ユーザが片眼を閉じることによる見え方の変化が考慮されておらず、ユーザは、片眼を閉じた場合に外界の物体に対して仮想物体が移動したと誤認する恐れがある。
【0005】
上記を鑑みて、本発明は、両眼で見ている状態と片眼で見ている状態とで、ユーザが見ている外界の物体の位置と仮想物体の位置との関係が変化しないよう制御する技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様は、ユーザが見ている物体に対して仮想物体を表示するように制御する表示制御手段と、前記ユーザの視線位置を検出する検出手段とを有し、前記表示制御手段は、前記ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に、前記仮想物体の表示位置を補正することを特徴とする視線検出装置である。
【0007】
本発明の第2の態様は、ユーザが見ている物体に対して仮想物体を表示するように制御する表示制御ステップと、前記ユーザの視線位置を検出する検出ステップとを有し、前記表示制御ステップでは、前記ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に、前記仮想物体の表示位置を補正することを特徴とする視線検出装置の制御方法である。
【0008】
本発明の第3の態様は、コンピュータを、上述した視線検出装置の各手段として機能させるためのプログラムである。本発明の第4の態様は、コンピュータを、上述した視線検出装置の各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体である。
【発明の効果】
【0009】
本発明によれば、両眼で見ている状態と片眼で見ている状態とで、ユーザが見ている外界の物体の位置と仮想物体の位置との関係が変化しないよう制御する技術を提供することができる。
【図面の簡単な説明】
【0010】
【
図4】実施形態1に係る仮想物体表示処理を例示するフローチャートである。
【
図6】両眼で見ている状態での仮想物体の見え方を説明する図である。
【
図7】片眼で見ている状態での仮想物体の見え方を説明する図である。
【
図8】ブロックマッチング法について説明する図である。
【
図10】眼撮像素子に投影される眼画像の概略図である。
【
図11】視線検出処理を例示するフローチャートである。
【
図12】キャリブレーションについて説明する図である。
【
図13】開眼状態の検出方法について説明する図である。
【
図14】左右両眼の眼球角度に基づく視線位置の決定方法を説明する図である。
【
図15】実施形態2の仮想物体の表示位置の補正について説明する図である。
【
図16】実施形態3の仮想物体の表示位置の補正について説明する図である。
【
図17】仮想物体の表示が制限される制限領域について説明する図である。
【
図18】実施形態4に係る仮想物体表示処理を例示するフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付の図面を参照して本発明の実施形態を説明する。
【0012】
<実施形態1>
本発明の実施形態1について説明する。本発明は、光学シースルー方式の頭部装着型表示装置(HMD、ヘッドマウントディスプレイ)に適用可能である。光学シースルー方式の頭部表示装置は、例えば、スマートグラス(AR(Augmented Reality)グラス)である。光学シースルー方式の頭部表示装置は、例えば、一般的な眼鏡のレンズと同様のレンズ(光学部材)を有し、レンズまたはユーザの網膜に対してグラフィック(例えば仮想物体)を投影する。光学シースルー方式の頭部装着型表示装置を装着したユーザは、光学部材(レンズ)を介して外界(現実空間)を見たり、頭部装着型表示装置によって投影(表示)されたグラフィックを見たりすることができる。
【0013】
<構成の説明>
図1(A),1(B)は、実施形態1に係る視線検出装置としての表示装置100の外観を示す。
図1(A)は正面斜視図であり、
図1(B)は背面斜視図である。表示装置100は光学シースルー方式の頭部装着型表示装置である。表示装置100は、表示装置100を頭部に装着したユーザの右目の視線と左目の視線とを個別に検出することができる。以後、表示装置100を頭部に装着したユーザのことを、単にユーザと称する。
【0014】
レンズ10は、ユーザの眼に対向(正対)する光学部材である。ユーザは、レンズ10を通して外界を視認することができる。表示デバイス11は、後述するCPU2からの制御(表示制御)によって、ユーザの両目(右目と左目の両方)に対して、グラフィック(例えば仮想物体の虚像)を表示する。例えば、レンズ10がプリズムまたはハーフミラー
を有し、表示デバイス11は、レンズ10にグラフィックを投影する。表示デバイス11は、ユーザの網膜にグラフィックを投影してもよい。レンズ10が、表示機能(表示デバイス11の機能)を有する透過型ディスプレイ(表示部)であってもよい。表示デバイス11は、例えば、グラフィックとして、GUI(Graphical User Interface、例えばボタンまたはアイコン)を表示する。ユーザは、表示された仮想物体を、外界に存在するように見ることができる。グラフィックを表示する際に、右目に対する表示位置と左目に対する表示位置との左右方向の位置関係(視差)を調整することによって、ユーザから見たグラフィックの奥行位置(奥行方向(ユーザから遠ざかる方向)の位置)を調整することができる。
【0015】
光源駆動回路12は、光源13a,13bを駆動する。光源13aと光源13bのそれぞれは、ユーザの眼を照明する光源であり、例えばユーザに対して不感の赤外光を発する赤外発光ダイオードである。光源13a,13bから発せられてユーザの眼で反射した光の一部は、受光レンズ16によって、眼撮像素子17に集光する。眼撮像素子17は、ユーザの眼を撮像する撮像センサ(撮像素子)である。撮像センサは、例えばCCD(Charge Coupled Device)センサまたはCMOS(Complementary Metal Oxide Semiconductor)センサである。
【0016】
レンズ10、表示デバイス11、光源駆動回路12、光源13a,13b、受光レンズ16、および眼撮像素子17は、右目と左目のそれぞれについて設けられている。光源駆動回路12、光源13a,13b、受光レンズ16、および眼撮像素子17を用いて、ユーザの視線情報を取得することができる。視線情報は、視線に関する情報であり、例えば視点、視線方向(視線の方向)、および輻輳角(右目の視線と左目の視線とのなす角度)の少なくともいずれかを示す。視点は、視線が注がれた位置と捉えたり、ユーザが見ている位置と捉えたり、視線位置と捉えたりすることもできる。視線情報の取得方法の詳細については後述する。
【0017】
外界撮像ユニット20は、ユーザが顔を向けている方向の外界の光景を撮像する撮像センサ(撮像素子)を含む。さらに、外界撮像ユニット20は、外界情報(外界に関する情報)を取得するための様々な機能を有する。撮像センサは、例えばCCDセンサまたはCMOSセンサである。
【0018】
例えば、外界撮像ユニット20は、GUIを操作する操作体(例えば、ユーザの手、ユーザの指、またはユーザが手に持った指示棒)を検出して追跡し、操作体の特定の動き(ジェスチャー)を検出するための機能を有する。操作体は、例えば、外界を撮像した画像から検出される。この機能には、様々な公知技術(例えばハンドトラッキングの技術)を用いてよい。例えば、GUIであるボタンを指でタップするような動きを、ボタンの押下を想定した処理に紐づけておくことによって、当該ボタンに対するジェスチャー操作(ジェスチャーによる操作)が可能となる。
【0019】
また、外界撮像ユニット20は、表示装置100(ユーザ)から外界に存在する現実物体までの距離を検出するための機能(当該距離に関する情報(距離情報)を取得するための機能)を有する。この機能には、様々な公知技術を用いてよい。例えば、光波(例えばレーザー光またはLED(Light-Emitting Diode)光)が対象物に向かって発せられてから、当該光波が対象物で反射して戻ってくるまでの時間を計測する方法を用いてもよい。光波でなく、音波または電波を用いてもよい。上述の撮像センサとは異なる測距センサ(例えば、レーザー光を利用するLiDAR(Light Detection And Ranging)センサ、またはLED光を利用するTOF(Time Of Flight)センサ)を用いてもよい。外界を撮像した画像から距離を算出する方法を用いてもよい。例えば、2つの撮像センサを用いて測距を行うステレオカメ
ラを用いてもよい。撮像センサの撮像面内における異なる複数の画素(複数の光電変換素子)を用いて測距を行う方法(位相差AF(AutoFocus))を用いてもよい。
【0020】
TOFセンサの一種であるSPAD(Single Photon Avalanche Diode)センサは、高速かつ高感度に測距を行うことができる。SPADセンサでは、例えば数m先までのリアルタイムな測距において、距離の検出誤差は数%未満である。位相差AFを用いれば、同じ撮像センサを用いて現実物体の測距と操作体の検出とを行うことができる。用いられるセンサの数が減るため、コストを低減することができる。
【0021】
なお、現実物体までの距離と、現実物体を見たときのユーザの輻輳角とには相関があり、表示装置100(ユーザ)から1m程度の範囲内では、それらを高精度に検出することができる。
【0022】
図2は、表示装置100における電気的構成を示すブロック図である。CPU2は、表示装置100に内蔵されたマイクロコンピュータの中央処理部であり、表示装置100全体を制御する。CPU2には、表示デバイス11、光源駆動回路12、視線検出回路15、外界撮像ユニット20、距離検出回路201、およびメモリ部3が接続されている。
【0023】
メモリ部3は、眼撮像素子17からの映像信号の記憶機能、視線補正係数(視線の個人差を補正するパラメータ)の記憶機能などを有する。
【0024】
視線検出回路15は、眼撮像素子17上に眼の光学像が結像した状態での眼撮像素子17の出力(眼を撮像した眼画像)をA/D変換し、その結果をCPU2に送信する。CPU2は、所定のアルゴリズムに従って眼画像から視線検出に必要な特徴点を抽出し、特徴点の位置からユーザの視線を検出する。
【0025】
距離検出回路201は、外界撮像ユニット20における撮像センサに含まれた、位相差検出のための複数の画素(複数の光電変換素子)からの信号(電圧)をA/D変換し、CPU2に送る。CPU2は、複数の画素の信号を用いて、各距離検出ポイントに対応する現実物体(被写体)までの距離を算出する。
【0026】
上記の説明では頭部装着型表示装置(HMD)を例として挙げたが、本発明は、これに限られず、ユーザの両眼の視線情報を検出し、両眼の視線位置に基づいて仮想物体を表示する光学シースルー方式のXR機器であれば適用可能である。
【0027】
図3は、本発明が適用可能な表示装置100の他の例として、ヘッドアップディスプレイ(HUD、Head-Up Display)を搭載した車両の外観図を示す。HUDは、
図1で説明した表示装置100と同様の構成を有し、車両のフロントガラスに仮想物体を表示することができる。
図1(A),1(B)と同じ構成については、同じ符号を付して説明は省略する。HUDの表示デバイス11は、レンズ10として機能するフロントウィンドウ(光学部材)を介して、外界を視認するユーザの視界に重畳させて仮想物体を表示する。
図3の例では、HUDは、ユーザが見ている人物40(外界の物体)に重畳させて、枠30(仮想物体)を表示している。
【0028】
<仮想物体表示処理>
表示装置100は、視線方向を検出する機能を有する光学シースルー方式のXR機器であり、ユーザが見ている物体に対して仮想物体を表示する。表示装置100は、ユーザが物体を両眼で見ている状態から片眼で見ている状態に遷移した場合、ユーザが知覚する物体の位置と仮想物体の位置との関係が変化しないように仮想物体の表示位置を補正する。仮想物体の表示位置が補正されることにより、物体の位置に対して仮想物体の位置がずれ
たように見えるユーザの誤認は軽減される。
【0029】
図4は、実施形態1に係る仮想物体表示処理を例示するフローチャートである。仮想物体表示処理において、表示装置100は、ユーザが物体を両眼で見ている状態から片眼で見ている状態に遷移した場合、仮想物体の表示位置を補正する。仮想物体表示処理は、ユーザが表示装置100の使用を始めること(例えば、ユーザが表示装置100を装着すること、ユーザが表示装置100の電源を入れること等)により開始される。
図4に示す処理は、外界撮像ユニット20によって撮像されるフレームごとに実行される。
【0030】
ステップS101において、CPU2は、外界撮像ユニット20により外界を撮像した画像を取得する。ステップS102において、CPU2は、ユーザの画像を取得する。具体的には、光源13a、13bはユーザの眼に向けて赤外光を放射する。放射された赤外光によって照明されたユーザの眼画像は、眼撮像素子17上に受光レンズ16を通して結像される。ユーザの眼画像は、眼撮像素子17により光電変換がなされ、電気信号として処理が可能となる。
【0031】
ステップS103において、CPU2は、ステップS102で撮像されたユーザの眼画像から、左右それぞれの眼球の画像を取得する。表示装置100が頭部装着型表示装置である場合、表示装置100は左右それぞれの眼撮像素子17を備え、CPU2は、ステップS102で左右の眼撮像素子17により撮像した画像を、それぞれ左右の眼球の画像として取得することができる。
【0032】
なお、表示装置100がHUDである場合、ステップS102では、CPU2は、
図5(A)に示すように眼撮像素子17により両眼を含むように撮像した1枚のユーザの画像を取得する。CPU2は、ステップS102で取得したユーザの画像から、右眼画像501および左眼画像502を取得することができる。
【0033】
ステップS104において、CPU2は、ステップS103で取得した左右の眼球の画像それぞれに対し、視線検出処理を実行し、左右眼球の眼球角度などの視線情報を取得する。視線検出処理については、
図9~
図11を参照して後述する。
【0034】
ステップS105において、CPU2は、ステップS103で得られたユーザの左右の眼球画像より、少なくとも片眼が開眼状態であるか否かを判定する。CPU2は、ユーザが両眼を開いている場合、またはいずれか片方の眼を閉じている場合に、少なくとも片眼が開眼状態であると判定してステップS106に進む。CPU2は、ユーザが両眼とも閉じている場合、または眼撮像素子17の撮影範囲内に両眼の眼球が映っていない場合等、両眼の視線が検出されない場合には、ステップS101に戻る。
【0035】
ステップS106において、CPU2は、両眼ともに開眼状態にあるか否かを判定する。CPU2は、ステップS105の処理結果に基づいて両眼が開眼しているか否か判定することができる。両眼ともに開眼状態にある場合、処理はステップS110に進む。片眼のみ開眼状態である場合等、一方の眼の視線が検出されない場合には、処理はステップS120に進む。
【0036】
ステップS110において、CPU2は、ステップS104で取得した両眼それぞれの眼球角度に基づいて、ユーザが外界において見ている位置(視線位置)を決定する。左右両方の眼球角度が取得されている場合には、CPU2は、左右それぞれの視線位置の平均、またはあらかじめ設定された重みづけ係数を用いた重みづけ平均により、ユーザの視線位置を取得することができる。
【0037】
ステップS111において、CPU2は、ステップS101で取得した外界画像から、ステップS110で決定した視線位置を用いて、視線位置に存在する物体を検出する。
【0038】
ステップS112において、CPU2は、距離検出回路201により、ステップS111で検出した物体までの距離を取得する。距離検出回路201は、例えば、外界撮像ユニット20に含まれる画素を用いて、カメラによる撮像面位相差AFとして知られる公知の技術により、外界の物体までの距離を測定することができる。
【0039】
なお、CPU2は、物体までの距離を毎フレーム測定しなくてもよい。CPU2は、例えば、ステップS111で検出した物体が前フレームで検出した物体と同じ場合、または前フレームから眼球角度の変化がない場合には、外界の物体までの距離を測定せずに、前フレームで取得した距離をそのまま使用してもよい。CPU2は、ユーザから外界の物体までの距離が変化しないような場合には、ユーザから外界の物体までの距離の測定を行わないことで、仮想物体を表示する処理の負荷を軽減することができる。
【0040】
ステップS113において、CPU2は、ステップS111で検出した物体に対して表示する仮想物体の表示位置を決定する。CPU2は、ステップS110で決定した視線位置およびステップS112で測定した物体までの距離に基づいて、仮想物体の表示位置を決定する。
【0041】
ステップS113からステップS140に進むと、CPU2は、ステップS113で決定された表示位置に仮想物体を表示する。
図5(B)の例では、仮想物体は、ユーザの視線位置を示す枠30である。なお、表示装置100が頭部装着型表示装置である場合、仮想物体は左右それぞれのレンズ10(表示部)に表示されるが、
図5(B)は、説明の便宜上、1つのレンズ10に仮想物体が表示されている例を示す。
【0042】
表示装置100は、ユーザの視線位置を検出し、ユーザの視界に重畳させて仮想物体(枠30)をレンズ10に表示することができる。ユーザは、外界の物体(現実物体)をシースルーの光学部材を介して視認しつつ、表示装置100のレンズ10に重畳表示された仮想物体を視認することができる。
【0043】
図5(B)の例では、ユーザは、外界の物体(例えば、人物)および視線位置を示す枠30を視認可能である。
図5(B)では、外界の物体と視線位置を示す枠とは、重なって配置されている。ユーザは、外界の物体を注視することで選択または捕捉する機能を動作させる際、視線位置を示す枠30が物体と重なることで、自身が選択したい物体が選択されていることを確認することができる。表示装置100は、例えば、ユーザの視線位置が、所定時間、物体の位置に存在する場合に、ユーザが物体を注視していると判定することができる。
【0044】
注視によって外界の物体を選択または捕捉する機能の利用例として、以下の例が挙げられる。運転中のユーザは、歩行者の中で危険な飛び出しをするおそれがある子供など、挙動に注意したい対象を注視して選択または捕捉し、表示装置100のCPU2は、選択された対象を監視して、危険な挙動があれば運転者に警告するように制御することができる。また、CPU2は、ユーザが看板および標識といった物体を注視すると、注視した物体の画像を拡大表示することができる。また、CPU2は、ユーザが建造物を注視すると、注視した建造物の関連情報を表示することができる。
【0045】
ユーザが外界の物体に視線を向けて選択または捕捉する際に、両眼で見ている状態から片眼で見ている状態に遷移した場合、ユーザには、外界の物体と視線位置に表示した仮想物体との位置関係が変化したように見える。そこで、CPU2は、ステップS120から
ステップS123までの処理において、ユーザが知覚する外界の物体の位置と仮想物体の位置との関係が変化しないように仮想物体の表示位置を補正する。
【0046】
ステップS120において、CPU2は、所定時間内に両眼の開眼状態から片眼の開眼状態に移行したか否かを判定する。ステップS120では、片眼が開眼状態であり、CPU2は、現在のフレームより所定時間前までのフレーム中に両眼が開眼状態となっているフレームがあった場合に、所定時間内に両眼の開眼状態から片眼の開眼状態に移行したと判定することができる。
【0047】
所定時間内に両眼の開眼状態から片眼の開眼状態に移行した場合、すなわち所定時間内に両眼で見ている状態から片眼で見ている状態に遷移した場合、処理はステップS121に進む。所定時間内に両眼の開眼状態から片眼の開眼状態に移行しなかった場合、すなわち所定時間以上、片眼で見ている状態が継続している場合、処理はステップS130に進む。
【0048】
ここで、
図6(A),6(B)および
図7(A)~7(C)を用いて、両眼で見ている状態および片眼で見ている状態での仮想物体の見え方について説明する。両眼で見ている状態から片眼で見ている状態に遷移した場合、外界の物体の位置と仮想物体の位置とは、相対的にずれたように見える。
【0049】
図6(A)は、ユーザが両眼で見ている状態で、レンズ10を通してユーザの視界方向に見える光景を図示している。なお、
図1に例示する表示装置100は、左右それぞれのレンズ10を有するが、以下では、簡略化のため1つのレンズ10を図示して説明する。ユーザは、光学シースルーのレンズ10を通して外界の光景が視認することができる。表示デバイス11は、ユーザが見ている人物40(外界の物体)に重畳させて、仮想物体である枠30をレンズ10に表示する。
【0050】
図6(B)は、ユーザが両眼で見ている状態の鳥瞰図を示している。ユーザは、レンズ10に表示された仮想物体(枠30)と、外界の物体(人物40)とを見ている。両眼が開眼状態であるため、ユーザは、点線で囲んだ右眼視界50および2点鎖線で囲んだ左眼視界51の双方を認識し、
図6(C)に示すように両視界を統合して認識する。左右の視界は、視線位置を中心として脳内で結合される。レンズ10に表示される枠30は、人物40とともにユーザの正面に配置されており、ユーザは、枠30と人物40とがずれることなく配置されていると認識する。ユーザは、視線により外界の物体を選択または捕捉する機能を動作させる際に、選択したい外界の物体を両眼で見ることにより、誤らずに選択することができる。
【0051】
図7(A)~7(C)は、両眼で見ている状態から、片方の眼が閉じられ、片眼で見ている状態に遷移した場合の見え方の変化を説明する図である。
図7(A)は、片眼で見ている状態に遷移した場合の鳥瞰図を示す。ユーザは、両眼で見ている状態から継続して、レンズ10に表示されている仮想物体(枠30)と外界の物体(人物40)とを見ている。
【0052】
しかしながら、ユーザが片眼を閉じることで、左右の視界は統合されず、ユーザは右眼視界50のみを見るため、
図7(B)に示すように枠30と人物40との位置にずれが生じたと認識してしまう。ユーザが右眼視界50の中心に枠30を視認した場合、人物40の位置に、右眼視界50の中心からのずれ量ΔHが生じるためである。
【0053】
以上のように、両眼で見ている状態では仮想物体の位置と外界の物体の位置とにずれがないように見えていても、片眼を閉じた際に、ユーザは、仮想物体の位置と外界の物体の
位置との関係が変化したと認識してしまう。
【0054】
両眼で見ている状態から片眼で見ている状態に遷移した瞬間に、仮想物体と外界の物体とがずれて見えるため、ユーザは、視線位置に基づいて物体を選択している場合に片眼を閉じると、物体の選択に失敗したと誤認するおそれがある。両眼で見ている状態から片眼で見ている状態への遷移は、例えば、片眼の瞬きがあった場合、ごみが入って片眼を閉じた場合、まぶしさで片眼を閉じた場合などに生じることが想定される。
【0055】
ユーザが片眼を閉じた際に、仮想物体と外界の物体とがずれたと誤認しないようにするため、表示装置100は、ステップS121~S123で、仮想物体の表示位置を補正する。
【0056】
ステップS121において、CPU2は、外界撮像ユニット20により撮像した画像から、両眼が開眼状態であった際に視線位置があった物体を検出する。CPU2は、外界撮像ユニット20で撮像した画像のうち、両眼開眼状態で撮像されたフレーム画像と、次に撮像されたフレーム画像とを比較し、ブロックマッチング法といったパターンマッチング技術によりユーザが両眼で見ていた物体を追跡することができる。
【0057】
CPU2は、片眼で見ている状態に遷移した際のフレームまで1フレームずつパターンマッチングを行うことで、片眼で見ている状態に遷移した際のフレームにおいて、両眼で見ていた物体を検出することができる。なお、CPU2は、両眼で見ていた物体を検出することができればよく、1フレームごとに限られず、数フレームごとにパターンマッチングを行って当該物体を追跡してもよい。
【0058】
図8(A)~8(C)は、ブロックマッチング法について説明する図である。
図8(A)は時刻t
nで取得された画像61、
図8(B)は時刻t
nよりも後の時刻t
n+1で取得された画像64である。
図8(C)は、時刻t
nで取得された画像61および時刻t
n+1で取得された画像64を重ねて表示した画像68に対し、ユーザが見ている被写体(物体)の移動量を表すベクトル69を模式的に示す図である。
【0059】
CPU2は、
図8(A)に示す画像61で、被写体62の一部を含む着目領域63に着目して被写体62を追跡する。着目領域63の大きさは、任意に設定可能であるが、例えば8×8画素とすることができる。
【0060】
CPU2は、着目領域63が、
図8(B)に示す画像64のどこに移動したかを差分絶対値(SAD、Sum of Absolute Difference)などを基準として探索することができる。
【0061】
具体的には、CPU2は、画像64で、画像61の着目領域63に対応する領域65を、矢印66で示す方向にずらしながら、着目領域63とのSADを計算すればよい。CPU2は、SADが最小となる位置を、着目領域63に対応する、画像64での着目領域67として取得する。
図8(C)に示すように、着目領域63は、時刻t
nから時刻t
n+1までの間に、ベクトル69に沿って着目領域67の位置まで移動している。このように、CPU2は、ブロックマッチング法により、外界撮像ユニット20で撮像した被写体(外界の物体)を追跡することが可能である。
【0062】
ステップS122において、CPU2は、距離検出回路201により、ステップS121で検出した物体までのZ方向の距離を取得する。距離検出回路201は、例えば、外界撮像ユニット20に含まれる画素により、カメラにおける撮像面位相差AFとして知られる公知の技術を用いて、物体までの距離を測定することができる。なお、CPU2は、ス
テップS112と同様に、外界の物体までの距離を毎フレーム測定せずに、前フレームで取得した距離をそのまま使用してもよい。
【0063】
ステップS123において、CPU2は、レンズ10に表示する仮想物体の表示位置を補正する。CPU2は、両眼で見ている状態でユーザが知覚する物体の位置と仮想物体の位置との関係が、片眼で見ている状態になっても変化しないように、仮想物体の補正後の表示位置を決定する。
【0064】
図7(A)~7(C)を用いて、仮想物体の補正後の表示位置の決定方法の一例について説明する。
図7(A)は、両眼で見ている状態から片眼で見ている状態に遷移した直後のユーザの状態を鳥瞰図で示している。ユーザの正面に位置する枠30(仮想物体)を、両眼で見ている状態から片眼で見ている状態に遷移した場合、ユーザは同じ枠30の位置を見続ける。したがって、ユーザは、片眼で見ている状態に遷移した直後も、両眼で正面方向に見えていた枠30の位置を片眼で見続ける。このため、片眼の眼球角度から取得される視線位置は、元の枠30の位置と同じ位置になる。
【0065】
ユーザが左眼を閉じて視界が右眼視界50のみになった場合に、枠30を同じ位置に表示し続けると、
図7(B)のように、枠30の位置と人物40の位置とはずれているように見える。ユーザは両眼で見ている状態から片眼を閉じても継続して同じ位置を見ているつもりであるため、枠30と人物40とが急にずれたように見えることで、混乱する可能性がある。
【0066】
そこで、CPU2は、
図7(C)のように、ユーザが枠30の位置と人物40の位置とはずれていないと認識できるように、枠30の表示位置を補正する。具体的には、
図7(A)において、開眼している眼球の中心を点R、人物40の中心を点Oとすると、枠30の位置は、人物40における点Oと右眼球の点Rとを結んだ直線OR上の位置に補正されればよい。CPU2は、両眼で見ている状態から片眼で見ている状態へ遷移した場合に、点Oおよび点Rを結ぶ直線ORと、レンズ10の表示面との交点WRの位置に枠30を表示するように、枠30の表示位置を補正すればよい。
【0067】
人物40の位置である点Oの3次元座標は、外界撮像ユニット20の画像から算出することができる。また、眼球の位置である点Rの3次元座標は、眼撮像素子17の画像から算出することができる。なお、点Oは、人物40(外界の物体)の中心に限られず、人物40の重心または人物40の境界上の位置などであってもよい。また、点Rは、眼球の中心に限られず、瞳孔中心など眼球における他の位置であってもよい。
【0068】
図7(A)~7(C)は、仮想物体である枠30を、ユーザの視線位置に存在する外界の物体に重ねて表示している場合に、表示位置を補正する方法について説明するが、仮想物体は、外界の物体に重ねて表示されなくてもよい。仮想物体は、外界の物体(例えば、施設または店舗など)に関する文字情報などであってもよく、物体と並べて表示されるようしてもよい。
【0069】
仮想物体が外界の物体と重っていない場合、CPU2は、例えば、ユーザが開いている眼の位置と、両眼で見ている状態で仮想物体が表示されていた位置(外界の物体の位置に応じた位置)とを通る直線上の位置に、仮想物体の表示位置を補正することができる。また、仮想物体が外界の物体と重っていない場合、CPU2は、
図7(B)で説明した外界の物体(人物40)のずれ量ΔHと、外界の物体に対する仮想物体(枠30)の相対位置とに基づいて、仮想物体の表示位置を補正してもよい。
【0070】
ステップ123からステップS140に進むと、CPU2は、レンズ10の表示領域に
対し、ステップ123で補正した表示位置に仮想物体(枠30)を表示する。このように、CPU2は、両眼で見ている状態から片眼で見ている状態へ遷移すると、検出された片眼の眼球角度から決定される視線位置ではなく、ステップS123で補正された表示位置に仮想物体としての枠30を表示する。これにより、表示装置100は、ユーザが知覚する枠30(仮想物体)の位置と人物40(外界の物体)の位置との関係が変化しないように制御することができる。
【0071】
ステップS120において、片目の開眼状態のまま所定時間以上経過している場合には、CPU2は、所定時間内に両眼の開眼状態から片眼の開眼状態への移行はなかったと判定し、ステップS130に進む。ステップS130において、CPU2は、検出された片眼の眼球角度から視線位置を決定する。
【0072】
ステップS131において、CPU2は、ステップS130で決定した視線位置に基づいて、仮想物体である枠30の表示位置を決定する。片眼の開眼状態のまま所定時間以上経過している場合には、ユーザは、仮想物体の位置と外界の物体の位置とがずれたと錯覚しないためである。ステップS131からステップS140に進むと、CPU2は、レンズ10の表示領域に対し、ステップ131で決定した表示位置に仮想物体(枠30)を表示する。
【0073】
ステップS141において、CPU2は、所定の時間、待機をしてからステップS142に進む。ステップS142において、CPU2は、ユーザが表示装置100の使用を終了して電源をオフにしたか否かを判定する。表示装置100の電源がオフにされている場合、
図4に示す処理は終了する。表示装置100の電源がオフにされていない場合、処理はステップS101に戻る。
【0074】
図4の仮想物体表示処理によれば、表示装置100は、ユーザが両眼で見ている状態から片眼で見ている状態に遷移した場合、ユーザから見た外界の物体の位置に対する仮想物体の相対位置が変化しないように、仮想物体の表示位置を補正する。したがって、表示装置100は、ユーザが両眼で見ている状態から片眼で見ている状態に遷移した場合に、外界の物体に対して表示された仮想物体について、ユーザが知覚する位置ずれを抑制することができる。
【0075】
<視線検出処理>
図9~
図11を用いて、
図4のステップS104での視線検出処理(視線検出方法)について説明する。右眼の視線も左眼の視線も、以下の視線検出方法で検出することができる。
【0076】
図4のステップS103において、
図5(A)で例示したように、CPU2は、ステップS102で取得したユーザの画像から、右眼画像501および左眼画像502を取得する。CPU2は、ステップS104において、取得した眼画像に対して視線検出処理を実行する。CPU2は、左右両眼の眼球角度をそれぞれ算出し、算出した左右の眼球角度に基づいて、以下で説明するように視線位置を決定することができる。
【0077】
図9は視線検出方法の原理を説明するための図であり、視線を検出するための光学系の概略図である。
図9に示すように、光源13a,13bはユーザに対して不感の赤外光を放射する発光ダイオード等の光源である。光源13a,13bは、受光レンズ16の光軸に対して略対称に配置され、ユーザの眼球14を照らす。光源13a,13bから発せられて眼球で反射した光の一部は、受光レンズ16によって、眼撮像素子17に集光される。表示装置100が頭部装着型の視線検出装置である場合、表示装置100は、
図1に示すように左右それぞれの眼撮像素子17を有し、左右それぞれの眼画像を取得する。
【0078】
図10(A)は、眼撮像素子17で撮像された眼画像(眼撮像素子17に投影される眼画像)の概略図である。
図10(B)は、眼撮像素子17におけるCCDの出力強度を示す図である。
【0079】
図11は、視線検出処理を例示するフローチャートである。視線検出処理が開始すると、ステップS201において、光源13a,13bは、ユーザの眼球14に向けて赤外光を照射する。赤外光によって照明されたユーザの眼の光学像は、受光レンズ16を通して眼撮像素子17上に結像され、眼撮像素子17によって光電変換される。これにより、処理可能な眼画像の電気信号が得られる。ステップS202では、CPU2は、眼撮像素子17から視線検出回路15を介して眼画像(眼画像の電気信号;眼画像の画像データ)を取得する。
【0080】
ステップS203では、CPU2は、ステップS202で得られた眼画像から、
図9に示す光源13a,13bの角膜反射像Pd,Peおよび瞳孔中心cに対応する点の座標を求める。光源13a,13bより照射された赤外光は、ユーザの眼球14の角膜142を照明する。角膜142の表面で反射した赤外光の一部により形成される角膜反射像Pd,Peは受光レンズ16により集光され、眼撮像素子17上に結像して、眼画像における角膜反射像Pd’,Pe’となる。同様に瞳孔141の端部a,bからの光束は、眼撮像素子17上に結像して、眼画像における瞳孔端像a’,b’となる。
【0081】
図10(A)は、眼撮像素子17から得られる反射像の眼画像の例を示す。
図10(B)は、
図10(A)の眼画像における領域α1の輝度情報(輝度分布)を示す。
図10(B)では、眼画像の水平方向をX軸方向、垂直方向をY軸方向とする。角膜反射像Pd’,Pe’のX軸方向(水平方向)の座標はXd,Xeとする。瞳孔端像a’,b’のX軸方向の座標はXa,Xbとする。
【0082】
図10(B)に示されるように、角膜反射像Pd’,Pe’の座標Xd,Xeでは、極端に高いレベルの輝度が得られる。瞳孔141の領域(瞳孔141からの光束が眼撮像素子17上に結像して得られる瞳孔像の領域)に相当する、座標XbからXaまでの領域では、座標Xd、Xeを除いて、極端に低いレベルの輝度が得られる。
【0083】
これに対し、瞳孔141の外側の虹彩143の領域(虹彩143からの光束が結像して得られる、瞳孔像の外側の虹彩像の領域)では、上記2種の輝度の中間の輝度が得られる。具体的には、X座標がXbより小さい領域およびX座標がXaより大きい領域での輝度は、上記2種の中間程度の輝度となる。
【0084】
図10(B)に示すような輝度分布から、CPU2は、角膜反射像Pd’,Pe’のX座標Xd,Xe、および瞳孔端像a’,b’のX座標Xa,Xbを得ることができる。具体的には、CPU2は、輝度が極端に高い座標を角膜反射像Pd’,Pe’の座標として得ることができ、輝度が極端に低くなる境界の座標を瞳孔端像a’,b’の座標として得ることができる。
【0085】
受光レンズ16の光軸に対する、眼球14の光軸の回転角θxが所定の角度以下の場合には、瞳孔中心cからの光束が眼撮像素子17上に結像して得られる瞳孔中心像c’(瞳孔像の中心)の座標Xcは、Xc≒(Xa+Xb)/2と表すことができる。所定の角度は、例えば、眼撮像素子17上に角膜反射像Pd’,Pe’が結像されるように決定することができる。瞳孔中心像c’の座標Xcは、瞳孔端像a’,b’のX座標Xa,Xbから算出することができる。このように、CPU2は、角膜反射像Pd’,Pe’の座標、および瞳孔中心像c’の座標を見積もることができる。
【0086】
ステップS204では、CPU2は、眼画像の結像倍率βを取得する。結像倍率βは、受光レンズ16に対する眼球14の位置により決まる倍率で、角膜反射像Pd’、Pe’の間隔(Xd-Xe)の関数として求めることができる。
【0087】
ステップS205では、CPU2は、受光レンズ16の光軸に対する眼球14の光軸の回転角を取得する。角膜反射像Pd’とPe’との中点のX座標は、角膜142の曲率中心CのX座標とはほぼ一致する。角膜142の曲率中心Cと瞳孔141の中心cまでの標準的な距離をCcとすると、Z-X平面(Y軸に垂直な平面)内での眼球14の光軸の回転角θXは、以下の式1で算出できる。Z-Y平面(X軸に垂直な平面)内での眼球14の回転角θyは、回転角θxと同様の方法で算出できる。
β×Cc×SINθX≒{(Xd+Xe)/2}- Xc ・・・(式1)
【0088】
ステップS206では、CPU2は、ステップS205で算出した回転角θx,θyを用いて、レンズ10上でのユーザの視線位置(以下、視点とも称する)を取得する。視点の座標(Hx,Hy)がレンズ10上での瞳孔141の中心cに対応する座標であるとすると、視点の座標(Hx,Hy)は、以下の式2,3で算出できる。
Hx=m×(Ax×θx+Bx) ・・・(式2)
Hy=m×(Ay×θy+By) ・・・(式3)
【0089】
式2,3のパラメータm、光学系(受光レンズ16等)の構成で定まる定数で、回転角θx,θyをレンズ10上での瞳孔141の中心cに対応する座標に変換する変換係数である。パラメータmは、あらかじめ決定されてメモリ部3に記憶される。視線補正係数Ax,Bx,Ay,Byはユーザの視線の個人差を補正するパラメータであり、キャリブレーション作業を行うことで取得される。視線補正係数Ax,Bx,Ay,Byは、視線検出処理が開始する前にメモリ部3に記憶される。
【0090】
ステップS207では、CPU2は、視点の座標(Hx,Hy)をメモリ部3に格納し、視線検出処理を終了する。なお、
図11の処理は、光源13a、13bの角膜反射像を利用して眼球の回転角度を取得し、レンズ10上での視点の座標を取得する例を示すが、これに限られない。眼球画像から眼球の回転角度を取得する手法は、瞳孔中心位置から視線を計測するといった手法であってもよい。
【0091】
<キャリブレーション作業>
図11で説明したように、表示装置100は、視線検出処理において眼画像から眼球14の回転角θx、θyを取得し、瞳孔中心cの位置をレンズ10上での位置に座標変換することで視点を推定できる。
図12(A)は、ユーザの視野400(レンズ10を通してユーザが見ることのできる範囲、外界撮像ユニット20の撮像範囲)を示す図であり、表示デバイス11が動作した状態を示す。
図12(A)に示すように、表示デバイス11は、推定された視点Pに枠などを表示する。
【0092】
しかし、人間の眼球の形状の個人差等の要因により、視点を高精度に推定することは困難な場合がある。具体的には、視線補正係数Ax,Ay,Bx,Byをユーザに応じて適切な値に調整しなければ、
図12(B)に示すように、推定された視点Rの位置は、ユーザの実際の視点Qとずれてしまう場合がある。
図12(B)では、ユーザは実際の視点Qの位置の人物を見ているが、表示装置100は、誤って背景に含まれる視点Rの位置を、ユーザの視点の位置として推定している。
【0093】
そこで、ユーザは、表示装置100の通常使用の前に、視線検出機能のキャリブレーション作業を行い、表示装置100は、ユーザに適した視線補正係数Ax,Ay,Bx,B
yを決定し、メモリ部3に記憶する。
【0094】
キャリブレーション作業は、例えば、表示装置100の通常使用の前に
図12(C)に示すような位置の異なる複数の指標を表示し、ユーザにその指標を見てもらうことで行われる。各視標の注視時に視線検出動作を行い、算出された複数の視点(推定位置)および各指標の座標から、ユーザに適した視線補正係数Ax,Ay,Bx,Byを決定する技術が、公知の技術として知られている。
【0095】
<開眼状態の検知>
図13(A),13(B)を参照して、
図4のステップS105における左右の眼の開眼状態の検出方法の一例について説明する。
図13(A)は、眼撮像素子17で撮像された眼画像(眼撮像素子17に投影される眼画像)の概略図である。
図13(B)は、眼撮像素子17におけるCCDの出力強度を示す図である。
【0096】
光源13a,13bより照射された赤外光は、ユーザの眼球14の角膜142を照明する。角膜142の表面で反射した赤外光の一部により形成される角膜反射像Pd,Peは受光レンズ16により集光され、眼撮像素子17上に結像して、眼画像における角膜反射像Pd’,Pe’となる。
【0097】
図13(A)は、眼撮像素子17から得られる反射像の画像例を示す。
図13(B)は、
図13(A)の眼画像における領域α2の輝度情報(輝度分布)を示す。
図13(B)では、眼画像の水平方向をX軸方向、垂直方向をY軸方向とする。角膜反射像Pd’のY軸方向(垂直方向)の座標はYdとする。瞳孔141の上端部、下端部からの光束が、眼撮像素子17上に結像した瞳孔端像(瞳孔のY軸方向の両端の像)のY座標をYa,Ybとする。
【0098】
図13(B)に示されるように、角膜反射像Pd’の座標Ydでは、極端に高いレベルの輝度が得られる。瞳孔141の領域(瞳孔141からの光束が眼撮像素子17上に結像して得られる瞳孔像の領域)に相当する、座標YaからYbまでの領域では、座標Ydを除いて、極端に低いレベルの輝度が得られる。
【0099】
これに対し、瞳孔141の外側の虹彩143の領域、および上瞼145f、下瞼145gの外側の領域では、上記2種の輝度の中間の輝度が得られる。具体的には、Y座標がYaより大きい領域およびY座標がYbより小さい領域での輝度は、上記2種の中間程度の輝度となる。
【0100】
中間程度の輝度値が得られる、Y座標がYaより大きい領域およびY座標がYbより小さい領域においても、輝度値は2段階に分かれている。瞳孔141の上端のY座標Yaから上瞼145fのY座標Yfまでの虹彩143に相当する領域は、輝度値K1を有する。Y座標がYfより大きい上瞼145fの外側の領域は、輝度値K2を有する。
【0101】
下瞼方向についても同様に、瞳孔141の下端のY座標Ybから下瞼145gのY座標Ygまでの虹彩143に相当する領域は、輝度値K1を有する。Y座標がYgより小さい下瞼145gの外側の領域は、輝度値K2を有する。
【0102】
表示装置100は、Y座標に対する輝度値の変動情報から、角膜反射像Pd’のY座標Yd、瞳孔端像のY座標Ya,Yb、上瞼145fのY座標Yf、下瞼145gのY座標Ygを得ることができる。上瞼145fのY座標Yfと、下瞼145gのY座標Ygとの差分は、ユーザの瞼の開閉程度を表す。表示装置100は、瞼の開閉程度を評価することで、開眼状態か否かを判定することができる。例えば、表示装置100は、上瞼145f
のY座標Yfと下瞼145gのY座標Ygとの差分が所定の閾値より大きい場合に、開眼状態であると判定することができる。所定の閾値は、開眼状態での上瞼と下瞼との標準的な距離としてもよく、ユーザごとに計測された上瞼と下瞼との距離に基づいて設定されてもよい。
【0103】
<両眼での視線位置の決定>
図4のステップS140において、左右両眼の視線検出結果である左右それぞれの眼球角度に基づいて、ユーザが外界で見ている位置を決定する方法を、
図14(A)~14(C)を用いて説明する。
図14(A)は、ユーザが両眼で見ている状態で、レンズ10の表示領域を通してユーザの視界方向に見える光景を図示している。
図14(B)は、ユーザが両眼で見ている状態の鳥瞰図を示している。
【0104】
表示装置100は、左右両眼の視線検出結果である左右それぞれの眼球角度に基づいて、レンズ10の表示領域での左眼の視点61Lおよび右眼の視点61Rの位置を算出することができる。左眼の視点61Lと右眼の視点61Rとは、基本的にはレンズ10の表示領域における略同一の位置を示すが、特定条件下では
図14(A)に示すように1点に交わらず、互いに離れた状態となる。
【0105】
以下、表示装置100がHUDである場合に、両眼で見ている状態での視線位置の決定する方法について説明する。ユーザがフロントウィンドウ(レンズ10)よりも奥に存在する外界の物体に注目している場合、左右の視線方向はフロントウィンドウ上で交差しない。この場合、左眼の視点61Lと右眼の視点61Rとは1点に交わらず、互いに離れた状態となる。
【0106】
そこで、表示装置100は、左右の視点61L,61Rの座標を用いて、左右の視点を統合した両眼での視線位置を決定する。表示装置100は、決定した両眼での視線位置に、仮想物体である枠30を表示することができる。左右の視点を統合した両眼での視線位置61Cは、例えば次のように決定することができる。
【0107】
視線位置61Cの座標は(Xc,Yc,Zc)、左眼の視点61Lの座標は(Xl,Yl,Zl)、右眼の視点61Rの座標は(Xr,Yr,Zr)とする。表示装置100は、例えば、(Xc,Yc,Zc)=((Xl+Xr)/2,(Yl+Yr)/2,(Zl+Zr)/2)のように、視線位置61Cを左眼の視点61Lと右眼の視点61Rとを結んだ線分の中点として算出することができる。
【0108】
なお、表示装置100は、視点61Lと視点61Rとの中点に限られず、左右で異なる重みづけをした係数をかけて視線位置61Cの座標を算出してもよい。利き目の視点は、利き目でない眼の視点よりも信頼性が高いと考えられるためである。例えば、右眼が利き目である場合、右眼対左眼の重みづけの比率を0.6:0.4とすると、視線位置61Cの座標は、(Xc,Yc,Zc)=(0.6×Xr+0.4×Xl,0.6×Yr+0.4×Yl,0.6×Zr+0.4×Zl)のように算出される。右眼対左眼の重みづけの比率は、ユーザごとに設定されてもよい。このように、表示装置100は、左眼の視点61Lおよび右眼の視点61Rに基づいて、両眼での視線位置61Cを決定することができればよい。
【0109】
上記の実施形態1では、表示装置100は、ユーザが両眼で見ている状態から片眼で見ている状態に遷移した際に、ユーザが見ている物体に対して表示している仮想物体の表示位置を補正する。具体的には、表示装置100は、ユーザが両眼で見ている状態から片眼を閉じた場合に、ユーザが知覚する物体の位置と仮想物体の位置との関係が変化しないように、仮想物体の表示位置を補正する。これにより、表示装置100は、ユーザが片眼を
閉じた場合に、外界の物体(または光景)と仮想物体の位置との関係が変化したと誤認するおそれを低減することができる。
【0110】
なお、上記の実施形態1は、ユーザが両眼で見ている状態から片眼で見ている状態に遷移した場合の例を説明しているが、これに限られない。実施形態1は、ユーザが片眼で見ている状態から両眼で見ている状態に遷移した場合にも適用可能である。この場合、表示装置100は、ユーザが片眼で見ている状態から両眼で見ている状態に遷移した場合に、両眼で見ている状態での視線位置と外界の物体の位置とを通る直線上の位置に、仮想物体の表示位置を補正すればよい。このように、表示装置100は、ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に仮想物体の表示位置を補正することで、ユーザが外界の物体と仮想物体の位置との関係が変化したと誤認するおそれを低減することができる。
【0111】
<実施形態2>
実施形態1では、表示装置100は、ユーザから外界の物体までの距離があまり変化しないことが想定される場合、前フレームで使用した距離を用いて、仮想物体の表示位置を決定する。これに対し、実施形態2は、ユーザから外界の物体までの距離を繰り返し検出し、検出したユーザから外界の物体までの距離に基づいて、仮想物体の表示位置を補正する実施形態である。実施形態2では、仮想物体の表示位置は、ユーザから外界の物体まで距離を加味して補正される。実施形態2に係る表示装置100の外観および構成については、実施形態1と同様であるため説明は省略する。
【0112】
図15(A)~15(C)を用いて、ユーザからの距離が異なる外界の物体に対して表示される仮想物体の表示位置の補正について説明する。
図15(A)の例では、ユーザからの距離が異なる人物41(外界の物体)および人物42(外界の物体)は、ユーザの正面に存在している。人物41の中心の点O1と開眼状態の右眼球の中心の点Rとを結んだ直線O1Rは、交点WR1の位置でレンズ10と交わる。また、人物41の点O1と開眼状態の右眼球の点Rとを結んだ直線O2Rは、交点WR2の位置でレンズ10と交わる。
【0113】
交点WR1と交点WR2とは、レンズ10上の異なる位置に存在する。
図15(B)に示すように、人物41と枠30とのずれ量はΔH1である。
図15(C)に示すように、人物42と枠30とのずれ量はΔH2である。人物41と枠30とのずれ量ΔH1は、人物42と枠30とのずれ量ΔH2よりも大きい。このように、ユーザが人物42よりも遠くに存在する人物41を見ている場合、人物41に対する枠30のずれ量ΔH1は、人物42に対する枠30のずれ量ΔH2よりも大きくなる。したがって、ユーザが人物41を見ている場合と、人物41よりも近くに存在する人物42を見ている場合とで、仮想物体である枠30の表示位置の補正量は異なる。
【0114】
そこで、実施形態2では、表示装置100は、ユーザから外界の物体までの距離を繰り返し検出し、
図4のステップS123の処理では、ユーザから外界の物体までの距離を加味して、仮想物体の表示位置を補正する。表示装置100は、ユーザから外界の物体までの距離を、フレームごとに検出してもよく、所定の時間間隔で検出してもよい。また、表示装置100は、前フレームからの外界の物体の移動量が所定の閾値以上の場合に、ユーザから外界の物体までの距離を検出しなおしてもよい。
【0115】
上記の実施形態2によれば、外界の物体が移動してユーザから外界の物体までの距離に変動があった場合でも、表示装置100は、ユーザが知覚する外界の物体と仮想物体とのずれ量に応じて、仮想物体の表示位置を適切に補正することができる。
【0116】
<実施形態3>
実施形態1では、表示装置100は、ユーザから仮想物体を表示するレンズ10までの距離は略一定であると想定して、仮想物体の表示位置を決定する。すなわち、表示装置100は、ユーザから外界の物体までの距離があまり変化しないことが想定される場合、前フレームで使用した物体までの距離を用いて、仮想物体の表示位置を決定する。これに対し、実施形態3は、ユーザから仮想物体を表示するレンズ10までの距離を繰り返し検出し、検出したユーザからレンズ10までの距離に基づいて、仮想物体の表示位置を補正する実施形態である。実施形態3では、仮想物体の表示位置は、ユーザから仮想物体を表示するレンズ10までの距離を加味して補正される。実施形態3に係る表示装置100の外観および構成については、実施形態1と同様であるため説明は省略する。
【0117】
図16(A),16(B)を用いて、ユーザから仮想物体を表示するレンズ10までの距離が変化する場合の、仮想物体の表示位置の補正について説明する。
図16(A)は、ユーザU1の眼球がZ座標Zr1の位置に存在し、ユーザU2の眼球がZ座標Zr2の位置に存在する例を示す。人物40(外界の物体)の中心の点O3とユーザU1の右眼球の中心の点R1とを結んだ直線O3R1は、交点WR1’の位置でレンズ10と交わる。また、人物40の点O3とユーザU2の右眼球の点R2とを結んだ直線O3R2は、交点WR2’の位置でレンズ10と交わる。
【0118】
交点WR1’と交点WR2’とは、レンズ10上の異なる位置に存在する。ユーザU1が人物40を見ている場合、ユーザU2が人物40を見ている場合よりも、枠30(仮想物体)と人物40とのずれ量は大きくなる。したがって、ユーザU1が人物40を見ている場合と、ユーザU2が人物40を見ている場合とで、仮想物体である枠30の表示位置の補正量は異なる。
【0119】
そこで、実施形態3では、表示装置100は、ユーザから仮想物体を表示するレンズ10までの距離を繰り返し検出し、
図4のステップS123の処理では、ユーザからレンズ10までの距離を加味して、仮想物体の表示位置を補正する。表示装置100は、ユーザからレンズ10までの距離を、所定の時間間隔で検出してもよい。ユーザからレンズ10までの距離は、実施形態2で説明したユーザから外界の物体までの距離よりも、変化量および変化の頻度は少ないことが想定されるため、より長い時間間隔で検出されるようにしてもよい。また、表示装置100は、前フレームからのユーザの姿勢変化等による移動量が所定の閾値以上の場合に、ユーザからレンズ10までの距離を検出しなおしてもよい。
【0120】
図16(B)を用いて、ユーザの眼球から仮想物体を表示するレンズ10までの距離の算出方法について説明する。表示装置100は、
図10(A)で説明した眼球画像における2つのプルキニエ像の間隔を用いて、ユーザの眼球からレンズ10までの距離を算出することができる。
【0121】
図16(B)は、像間隔ΔPと眼球距離Zとの関係を示すグラフである。像間隔ΔPは、光源13a,13bによって形成される角膜反射像Pd’と角膜反射像Pe’との間隔である。眼球距離Zは、眼撮像素子17から眼球までの距離である。眼球距離Zは、像間隔ΔPの増加と共に非線形に単調減少する。像間隔ΔPを決定すると、表示装置100は、眼撮像素子17から眼球までの眼球距離Zを一意に算出することができる。
【0122】
図16(B)の例では、ユーザU1の角膜反射像Pd1’,Pe1’間の像間隔がΔP1の場合、ユーザU1の眼球距離はZ1となる。また、ユーザU2の角膜反射像Pd2’,Pe2’間の像間隔がΔP2の場合、ユーザU2の眼球距離はZ2となる。像間隔ΔPが広いほど、眼球距離Zは大きくなる。
【0123】
角膜反射像の像間隔ΔPと眼球距離Zとの対応関係は、例えば、メモリ部3に格納され
る相関テーブルなどの形式で、あらかじめ設定しておくことができる。表示装置100は、相関テーブルを読み出すことで、測定された像間隔ΔPから眼球距離Zを取得することができる。表示装置100は、取得した眼球距離Zを、ユーザからレンズ10までの距離として、仮想物体の表示位置を決定することができる。
【0124】
なお、ユーザから仮想物体を表示するレンズ10までの距離の算出方法は、
図16(B)で説明したプルキニエ像の像間隔ΔPを利用した算出方法に限られない。表示装置100は、ユーザからレンズ10までの距離を測定可能な手段を有していればよく、例えば、眼撮像素子17に組み込まれた距離検出回路によって眼球までの距離を算出してもよい。
【0125】
上記の実施形態3によれば、ユーザから仮想物体を表示するレンズ10までの距離に変動があった場合でも、表示装置100は、距離の変動に応じて、ユーザが知覚する外界の物体と仮想物体とのずれ量を適切に補正することができる。例えば、表示装置100がHUDであった場合、ユーザが姿勢を変えることによりHUDのフロントウィンドウまでの距離に変動があった場合でも、HUDは仮想物体の表示位置を適切に補正することができる。
【0126】
<実施形態4>
実施形態4では、表示装置100は、補正後の仮想物体の表示位置が、仮想物体の表示が制限される制限領域に含まれる場合、仮想物体を補正前の表示位置に表示するか、または、仮想物体を表示しないように制御する。具体的には、表示装置100は、仮想物体の表示位置を補正した後、補正後の仮想物体の表示位置が制限領域に含まれるか否かを判定する。表示装置100は、補正後の仮想物体の表示位置が制限領域に含まれる場合、仮想物体を補正前の表示位置に表示するか、または、仮想物体を表示しないように制御する。実施形態4に係る表示装置100の外観および構成については、実施形態1と同様であるため説明は省略する。
【0127】
図17は、仮想物体の表示が制限される制限領域について説明する図である。
図17は、レンズ10を通してユーザの視界方向に見える光景を図示している。ユーザは光学シースルーのレンズ10を通して外界の光景を視認することができる。表示デバイス11は、仮想物体である枠30をレンズ10の表示領域に表示する。レンズ10の一部は、制限領域600として、仮想物体の表示が制限されている。
【0128】
制限領域600は、レンズ10の表示領域のうち、仮想物体の表示が制限されている領域である。制限領域600は、例えば、重要な情報を表示するために、その他の情報の表示が制限されている領域である。表示装置100の一例であるHUDは、例えば、重要な道路標識、車体の故障状況などを制限領域600に表示する。制限領域600は、レンズ10の表示領域において、固定位置に配置されてもよく、道路標識の位置など外界の状況に応じて、配置位置が変更されてもよい。
【0129】
図17に示す枠30は、ユーザが両眼で見ている状態で検出された視線位置を示す仮想物体である。枠31は、ユーザが片眼を閉じて片眼で見ている状態に遷移した際の枠30の補正後の位置を示している。補正後の枠31が制限領域600に含まれる場合、表示装置100は、制限領域600内には枠31を表示しないように制御する。
【0130】
具体的には、表示装置100は、仮想物体(枠30)の補正後の表示位置を取得した後、補正後の表示位置が制限領域600に含まれるか否かを判定する。表示装置100は、仮想物体の補正後の表示位置が制限領域600に含まれる場合、補正前の表示位置に仮想物体を表示する。
図17の例では、枠31は制限領域600に含まれるため、表示装置100は、表示位置の補正を行わずに補正前の表示位置(枠30の位置)に枠を表示する。
また、表示装置100は、仮想物体の補正後の表示位置が制限領域600に含まれる場合、仮想物体自体を表示しないようにしてもよい。
【0131】
表示装置100は、仮想物体の表示位置を補正しない場合、その旨をユーザに知らせる所定の通知を行うように制御(通知制御)する。仮想物体の表示位置が補正されなかった場合、ユーザは、仮想物体と外界との物体のずれを知覚して違和感を持つ。表示装置100は、ユーザの視線位置による操作に支障が出ることを防止するため、
図17に示すように、通知領域601に仮想物体の表示位置(枠位置)の補正が制限されたことを通知するメッセージを表示する。表示装置100は、メッセージを表示する代わりに、仮想物体(枠30)の色および形状の少なくともいずれかを変更したり、仮想物体を点滅表示したりすることによって、仮想物体の表示位置が補正されていないことを、ユーザに通知してもよい。
【0132】
また、表示装置100は、仮想物体の補正後の表示位置が制限領域600に含まれることで、仮想物体自体を表示しない場合も、その旨をユーザに知らせる所定の通知を行うように制御(通知制御)する。仮想物体が表示されなかった場合、ユーザは、仮想物体が見えなくなることで違和感を持つ。表示装置100は、ユーザの視線位置による操作に支障が出ることを防止するため、通知領域601に仮想物体の表示自体が制限されたことを通知するメッセージを表示する。
【0133】
図18は、実施形態4に係る仮想物体表示処理を例示するフローチャートである。
図18に示す仮想物体表示処理は、
図4に示す実施形態1に係る仮想物体表示処理に対し、ステップS150~S152を追加した処理である。
図4と同じ処理については、同じ符号を付して説明は省略する。
【0134】
表示装置100のCPU2は、ステップS101~S113、ステップS120~S123、ステップS130~S131において、実施形態1と同様に、仮想物体の表示位置を決定する。
【0135】
ステップS150において、CPU2は、決定された仮想物体の表示位置が制限領域600に含まれるか否かを判定する。CPU2は、例えば、仮想物体の中心点が制限領域600に含まれる場合に、仮想物体の表示位置が制限領域600に含まれると判定することができる。なお、CPU2は、仮想物体の全体または一部が制限領域600に含まれる場合に、仮想物体の表示位置が制限領域600に含まれると判定してもよい。仮想物体の表示位置が制限領域600に含まれない場合、処理はステップS140に進む。仮想物体の表示位置が制限領域600に含まれる場合、処理はステップS151に進む。
【0136】
ステップS151において、CPU2は、制限領域600には仮想物体を表示せず、補正前の表示位置に仮想物体を表示する。また、CPU2は、仮想物体を非表示にしてもよい。仮想物体を補正前の表示位置にするか非表示とするかは、あらかじめ設定しておくことができる。
【0137】
ステップS152において、CPU2は、仮想物体が補正前の表示位置に表示されたこと、すなわち仮想物体の表示位置が補正されなかったことをユーザに通知する。CPU2は、例えば、
図17に示す通知領域601に、仮想物体の表示位置の補正が制限されたことを通知するメッセージを表示する。CPU2は、補正前の表示位置に表示した仮想物体(枠30)の色および形状の少なくともいずれかを変更したり、枠を点滅表示したりすることによって、仮想物体の表示位置が補正されていないことを、ユーザに通知してもよい。CPU2は、仮想物体を非表示とする場合には、その旨を通知するメッセージを通知領域601に表示すればよい。
【0138】
ステップS141において、CPU2は、所定の時間、待機をしてからステップS142に進む。ステップS142において、CPU2は、ユーザが表示装置100の使用を終了して電源をオフにしたか否かを判定する。表示装置100の電源がオフにされている場合、
図18に示す処理は終了する。表示装置100の電源がオフにされていない場合、処理はステップS101に戻る。
【0139】
上記の実施形態4によれば、表示装置100は、ユーザが両眼で見ている状態から、片眼で見ている状態に遷移した際に、仮想物体の表示位置を補正しつつ、制限領域600での仮想物体の表示を制限する。したがって、表示装置100は、制限領域600に表示される主要な情報の視認を妨げることなく、仮想物体の表示を制御することができる。
【0140】
以上述べた実施形態は、本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。また、本発明の要旨を逸脱しない範囲で、各種形態を適宜組み合わせることも可能である。
【0141】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0142】
本実施形態の開示は、以下の構成、方法、プログラムおよび媒体を含む。
(構成1)
ユーザが見ている物体に対して仮想物体を表示するように制御する表示制御手段と、
前記ユーザの視線位置を検出する検出手段と
を有し、
前記表示制御手段は、前記ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に、前記仮想物体の表示位置を補正する
ことを特徴とする視線検出装置。
(構成2)
前記表示制御手段は、両眼で見ている状態と片眼で見ている状態との間で、前記ユーザが知覚する前記物体の位置と前記仮想物体の位置との関係が変化しないように前記仮想物体の表示位置を補正する
ことを特徴とする構成1に記載の視線検出装置。
(構成3)
前記表示制御手段は、前記ユーザが両眼で見ている状態から片眼で見ている状態に遷移した場合、前記ユーザが開いている眼の位置と前記物体の位置に応じた位置とを通る直線上の位置に、前記仮想物体の表示位置を補正する
ことを特徴とする構成1または2に記載の視線検出装置。
(構成4)
前記ユーザから前記物体までの距離を繰り返し検出し、検出した前記ユーザから前記物体までの距離に基づいて前記仮想物体の表示位置を補正する
ことを特徴とする構成1または2に記載の視線検出装置。
(構成5)
前記ユーザから前記仮想物体を表示する表示部までの距離を繰り返し検出し、検出した前記ユーザから前記表示部までの距離に基づいて前記仮想物体の表示位置を補正する
ことを特徴とする構成1~3のいずれかに記載の視線検出装置。
(構成6)
前記表示制御手段は、補正後の前記仮想物体の表示位置が、前記仮想物体の表示が制限
される制限領域に含まれる場合、前記仮想物体を補正前の表示位置に表示するか、または、前記仮想物体を表示しないように制御する
ことを特徴とする構成1~5のいずれかに記載の視線検出装置。
(構成7)
補正後の前記仮想物体の表示位置が、前記仮想物体の表示が制限される前記制限領域に含まれる場合、前記ユーザに所定の通知を行うように制御する通知制御手段をさらに有する
ことを特徴とする構成6に記載の視線検出装置。
(構成8)
前記検出手段は、前記ユーザが両眼を開いているか、いずれか一方の眼を閉じているかを検出する
ことを特徴とする構成1~7のいずれかに記載の視線検出装置。
(方法)
ユーザが見ている物体に対して仮想物体を表示するように制御する表示制御ステップと、
前記ユーザの視線位置を検出する検出ステップと
を有し、
前記表示制御ステップでは、前記ユーザが両眼で見ている状態と片眼で見ている状態の一方から他方に遷移した場合に、前記仮想物体の表示位置を補正する
ことを特徴とする視線検出装置の制御方法。
(プログラム)
コンピュータを、構成1~8のいずれかに記載の視線検出装置の各手段として機能させるためのプログラム。
(媒体)
コンピュータを、構成1~8のいずれかに記載の視線検出装置の各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【符号の説明】
【0143】
2:CPU、10:レンズ、17:眼撮像素子、100:表示装置(視線検出装置)