以下に、本発明にかかる注視点検出装置および注視点検出方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、以下では、注視点検出結果を用いて発達障がいなどの診断を支援する診断支援装置に注視点検出装置を用いた例を説明する。適用可能な装置は診断支援装置に限られるものではない。
注視点検出時には、被験者の個人差を考慮した処理や、個人差を補正する処理を実行することが望ましい。これらの処理のために、注視点の検出に用いる情報を算出する算出処理が事前に実行される場合がある。注視点の検出に用いる情報は、例えば、瞳孔中心と角膜反射中心との距離、および、補正用注視点である。補正用注視点は、補正用の画像から検出される注視点である。
複数の診断画像を用いて診断を実行する場合、その都度、算出処理を実行すると非効率である。被験者ごとに算出処理された情報を保存しておき、診断時に読み出して利用する方法も考えられるが、被験者ごとの情報の選択と読出し処理のための負荷増大などの問題が生じうる。
そこで本実施形態では、良好に算出処理が実行できたことや同一人物であることを確認し、前回の算出処理の結果を使用できるようにする。これにより、測定を短時間化し、また、被験者がキャリブレーション映像等に飽きることがないようにして、効率向上および診断精度の向上が実現可能となる。
また、本実施形態の注視点検出装置(診断支援装置)は、2ヵ所に設置された照明部を用いて視線を検出する。また、本実施形態の注視点検出装置(診断支援装置)は、注視点検出前に被験者に1点を注視させて測定した結果を用いて、角膜曲率中心位置を高精度に算出する。
なお、照明部とは、光源を含み、被験者の眼球に光を照射可能な要素である。光源とは、例えばLED(Light Emitting Diode)などの光を発生する素子である。光源は、1個のLEDから構成されてもよいし、複数のLEDを組み合わせて1ヵ所に配置することにより構成されてもよい。以下では、このように照明部を表す用語として「光源」を用いる場合がある。
視点検出を精度よく行うためには、瞳孔位置を正しく検出できることが重要となっている。近赤外の光源を点灯させカメラで撮影した場合、カメラと光源の距離が一定以上離れていると、瞳孔は他の部分より暗くなることがわかっている。この特徴を用いて瞳孔位置が検出される。
本実施形態では、2台のカメラに対して、光源をそれぞれのカメラの外側に2ヶ所配置する。そして、これらの2つの光源を相互に異なるタイミングで点灯させ、点灯している光源からの距離が長い方(遠い方)のカメラで撮影する。これにより、瞳孔をより暗く撮影し、瞳孔と他の部分とを、より高精度に区別することが可能となる。
この場合、点灯させる光源が異なるため、通常のステレオ方式による三次元計測を単純に適用することができない。すなわち、視点を求める際の光源と角膜反射を結ぶ直線を世界座標で算出することができない。そこで本実施形態では、2つのタイミングでの、撮像に用いるカメラ相互の位置関係、および、点灯させる光源相互の位置関係を、仮想的な光源の位置(仮想光源位置)に対してそれぞれ対称とする。そして、2つの光源それぞれの点灯時に得られる2つの座標値を、左カメラによる座標値および右カメラによる座標値として世界座標に変換する。これにより、2つの光源それぞれの点灯時に得られる角膜反射位置を用いて、仮想光源と角膜反射を結ぶ直線を世界座標で算出すること、および、この直線に基づき視点を算出することが可能となる。
図1は、1つの光源を使用した場合の被験者の目11の様子を示す図である。図1に示すように、虹彩12と瞳孔13との暗さの差が十分ではなく、区別が困難となる。図2は、2つの光源を使用した場合の被験者の目21の様子を示す図である。図2に示すように、虹彩22と瞳孔23との暗さの差は、図1と比較して大きくなっている。
図3および4は、本実施形態の表示部、ステレオカメラ、赤外線光源および被験者の配置の一例を示す図である。
図3に示すように、本実施形態の診断支援装置は、表示部101と、ステレオカメラを構成する右カメラ102a、左カメラ102bと、LED光源103a、103bと、を含む。右カメラ102a、左カメラ102bは、表示部101の下に配置される。LED光源103a、103bは、右カメラ102a、左カメラ102bそれぞれの外側の位置に配置される。LED光源103a、103bは、例えば波長850nmの近赤外線を照射する光源である。図3では、9個のLEDによりLED光源103a、103b(照明部)を構成する例が示されている。なお、右カメラ102a、左カメラ102bは、波長850nmの近赤外光を透過できるレンズを使用する。なお、LED光源103a、103bと、右カメラ102a、左カメラ102bとの位置を逆にして、LED光源103a、103bを、右カメラ102a、左カメラ102bそれぞれの内側の位置に配置されていてもよい。
図4に示すように、LED光源103a、103bは、被験者の眼球111に向かって近赤外光を照射する。LED光源103aを照射したときに左カメラ102bで撮影を行い、LED光源103bを照射したときに右カメラ102aで撮影を行う。右カメラ102aおよび左カメラ102bと、LED光源103a、103bとの位置関係を適切に設定することにより、撮影される画像では、瞳孔112が低輝度で反射して暗くなり、眼球111内に虚像として生じる角膜反射113が高輝度で反射して明るくなる。従って、瞳孔112および角膜反射113の画像上の位置を2台のカメラ(右カメラ102a、左カメラ102b)それぞれで取得することができる。
さらに2台のカメラにより得られる瞳孔112および角膜反射113の位置から、瞳孔112および角膜反射113の位置の三次元世界座標値を算出する。本実施形態では、三次元世界座標として、表示部101の画面の中央位置を原点として、上下をY座標(上が+)、横をX座標(向かって右が+)、奥行きをZ座標(手前が+)としている。
図5は、診断支援装置100の機能の概要を示す図である。図5では、図3および4に示した構成の一部と、この構成の駆動などに用いられる構成を示している。図5に示すように、診断支援装置100は、右カメラ102aと、左カメラ102bと、左カメラ102b用のLED光源103aと、右カメラ102a用のLED光源103bと、スピーカ205と、駆動・IF(interface)部313と、制御部300と、記憶部150と、表示部101と、を含む。図5において、表示画面201は、右カメラ102aおよび左カメラ102bとの位置関係を分かりやすく示しているが、表示画面201は表示部101において表示される画面である。なお、駆動部とIF部は一体でもよいし、別体でもよい。
スピーカ205は、キャリブレーション時などに、被験者に注意を促すための音声などを出力する音声出力部として機能する。
駆動・IF部313は、ステレオカメラに含まれる各部を駆動する。また、駆動・IF部313は、ステレオカメラに含まれる各部と、制御部300とのインタフェースとなる。
制御部300は、例えば、CPU(Central Processing Unit)などの制御装置と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置と、ネットワークに接続して通信を行う通信I/Fと、各部を接続するバスを備えているコンピュータなどにより実現できる。
記憶部150は、制御プログラム、測定結果、診断支援結果など各種情報を記憶する。記憶部150は、例えば、表示部101に表示する画像等を記憶する。表示部101は、診断のための対象画像等、各種情報を表示する。
図6は、図5に示す各部の詳細な機能の一例を示すブロック図である。図6に示すように、制御部300には、表示部101と、駆動・IF部313が接続される。駆動・IF部313は、カメラIF314、315と、LED駆動制御部316と、スピーカ駆動部322と、を備える。
駆動・IF部313には、カメラIF314、315を介して、それぞれ、右カメラ102a、左カメラ102bが接続される。駆動・IF部313がこれらのカメラを駆動することにより、被験者を撮像する。右カメラ102aからはフレーム同期信号が出力される。フレーム同期信号は、左カメラ102bとLED駆動制御部316とに入力される。これにより、LED光源103a、103bを発光させ、それに対応して左右カメラによる画像を取り込んでいる。
スピーカ駆動部322は、スピーカ205を駆動する。なお、診断支援装置100が、印刷部としてのプリンタと接続するためのインタフェース(プリンタIF)を備えてもよい。また、プリンタを診断支援装置100の内部に備えるように構成してもよい。
制御部300は、診断支援装置100全体を制御する。制御部300は、点灯制御部351と、位置検出部352と、曲率中心算出部353と、視線検出部354と、視点検出部355と、出力制御部356と、評価部357と、処理制御部358と、を備えている。なお、注視点検出装置としては、少なくとも点灯制御部351、位置検出部352、曲率中心算出部353、視線検出部354、視点検出部355、評価部357、および、処理制御部358が備えられていればよい。
制御部300に含まれる各要素(点灯制御部351、位置検出部352、曲率中心算出部353、視線検出部354、視点検出部355、出力制御部356、評価部357、および、処理制御部358)は、ソフトウェア(プログラム)で実現してもよいし、ハードウェア回路で実現してもよいし、ソフトウェアとハードウェア回路とを併用して実現してもよい。
プログラムで実現する場合、当該プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
点灯制御部351は、LED駆動制御部316を用いて、LED光源103a、103bの点灯を制御する。例えば点灯制御部351は、LED光源103a、103bを、相互に異なるタイミングで点灯するように制御する。タイミングの差(時間)は、例えば、被験者の視線の移動等による視線検出結果への影響が生じない時間として予め定められた時間とすればよい。
位置検出部352は、ステレオカメラにより撮像された眼球の画像から、瞳孔の中心を示す瞳孔中心の位置(第1位置)を算出する。また位置検出部352は、撮像された眼球の画像から、角膜反射の中心を示す角膜反射中心の位置(第2位置)を算出する。
曲率中心算出部353は、仮想光源位置と角膜反射中心とを結ぶ直線(第1直線)から、角膜曲率中心(第4位置)を算出する。例えば、曲率中心算出部353は、この直線上で、角膜反射中心からの距離が所定値となる位置を、角膜曲率中心として算出する。所定値は、一般的な角膜の曲率半径値などから事前に定められた値を用いることができる。
角膜の曲率半径値には個人差が生じうるため、事前に定められた値を用いて角膜曲率中心を算出すると誤差が大きくなる可能性がある。従って、曲率中心算出部353が、個人差を考慮して角膜曲率中心を算出してもよい。この場合、曲率中心算出部353は、まず目標位置(第3位置)を被験者に注視させたときに算出された瞳孔中心および角膜反射中心を用いて、瞳孔中心と目標位置とを結ぶ直線(第2直線)と、角膜反射中心と仮想光源位置とを結ぶ直線(第1直線)と、の交点を算出する。そして曲率中心算出部353は、瞳孔中心と算出した交点との距離(第1距離)を算出し、例えば記憶部150に記憶する。
目標位置は、予め定められ、三次元世界座標値が算出できる位置であればよい。例えば、表示画面201の中央位置(三次元世界座標の原点)を目標位置とすることができる。この場合、例えば出力制御部356が、表示画面201上の目標位置(中央)に、被験者に注視させる画像(目標画像)等を表示する。これにより、被験者に目標位置を注視させることができる。
目標画像は、被験者を注目させることができる画像であればどのような画像であってもよい。例えば、輝度や色などの表示態様が変化する画像、および、表示態様が他の領域と異なる画像などを目標画像として用いることができる。
なお、目標位置は表示画面201の中央に限られるものではなく、任意の位置でよい。表示画面201の中央を目標位置とすれば、表示画面201の任意の端部との距離が最小になる。このため、例えば視線検出時の測定誤差をより小さくすることが可能となる。
距離の算出までの処理は、例えば実際の視線検出を開始するまでに事前に実行しておく。実際の視線検出時には、曲率中心算出部353は、仮想光源位置と角膜反射中心とを結ぶ直線上で、瞳孔中心からの距離が、事前に算出した距離となる位置を、角膜曲率中心として算出する。曲率中心算出部353が、仮想光源位置と、表示部上の目標画像を示す所定の位置(第3位置)と、瞳孔中心の位置と、角膜反射中心の位置と、から角膜曲率中心(第4位置)を算出する算出部に相当する。
視線検出部354は、瞳孔中心と角膜曲率中心とから被験者の視線を検出する。例えば視線検出部354は、角膜曲率中心から瞳孔中心へ向かう方向を被験者の視線方向として検出する。
視点検出部355は、検出された視線方向を用いて被験者の視点を検出する。視点検出部355は、例えば、表示画面201で被験者が注視する点である視点(注視点)を検出する。視点検出部355は、例えば図4のような三次元世界座標系で表される視線ベクトルとXY平面との交点を、被験者の注視点として検出する。
視点検出部355は、補正用注視点と、検査用注視点とを検出(算出)する。補正用注視点は、補正用の画像表示時に検出される注視点である。検査用注視点は、診断画像表示時に検出される注視点である。補正用注視点および検査用注視点の検出方法は、例えば、特開2014−039787と同様の方法を適用できる。
出力制御部356は、表示部101およびスピーカ205などに対する各種情報の出力を制御する。例えば、出力制御部356は、表示部101上の目標位置に目標画像を出力させる。また、出力制御部356は、診断画像、および、評価部357による評価結果などの表示部101に対する出力を制御する。
診断画像は、視線(視点)検出結果に基づく評価処理に応じた画像であればよい。例えば発達障がいを診断する場合であれば、発達障がいの被験者が好む画像(幾何学模様映像など)と、それ以外の画像(人物映像など)と、を含む診断画像を用いてもよい。
評価部357は、診断画像と、視点検出部355により検出された注視点(検査用注視点)とに基づく評価処理を行う。例えば発達障がいを診断する場合であれば、評価部357は、診断画像と注視点とを解析し、発達障がいの被験者が好む画像を注視したか否かを評価する。
処理制御部358は、診断画像に対する被験者の注視点の検出に用いる情報の算出処理を制御する。算出処理は、距離算出処理および点算出処理の少なくとも一方を含む。距離算出処理は、曲率中心算出部353が、瞳孔中心と算出した交点との距離(第1距離)を算出する処理である。曲率中心算出部353が、距離算出部に相当する。点算出処理は、視点検出部355が、補正用注視点を算出(検出)する処理である。
本実施形態では、評価部357は、さらに算出処理によって算出された情報が、距離算出処理の場合は所定の範囲内であるか否か、点算出処理の場合は所定の閾値以上であるか否かを評価する。例えば評価部357は、距離算出処理によって算出された距離の値が所定の範囲内であるか否かを評価する。また評価部357は、点算出処理によって算出された注視点の割合が所定の閾値以上か否かを評価する。評価部357は、距離算出処理によって算出された距離の値と、点算出処理によって算出された注視点の割合との少なくとも一方を評価してもよく、両方を評価することでより精度がよくなる。
そして処理制御部358は、算出処理によって算出された情報の評価結果に応じて、次に出力(表示)される画像について算出処理を実行するか否かを制御する。例えば処理制御部358は、ある診断画像(第1診断画像)に対する注視点の検出に用いられた情報(第1情報)の距離算出処理における距離が所定の範囲内であるという評価および点算出処理における注視点の割合が所定の閾値以上であるという評価がされた場合、第1診断画像の後に出力される診断画像(第2診断画像)に対して算出処理を実行しないように制御する。この場合、視点検出部355は、第2診断画像に対する注視点を、第1情報を用いて検出する。
一方、処理制御部358は、第1情報の距離算出処理における距離が所定の範囲内ではないという評価および点算出処理における注視点の割合が所定の閾値以上でないという評価がされた場合、第2診断画像に対して算出処理を実行するように制御する。この場合、視点検出部355は、第2診断画像に対して実行された算出処理によって算出された情報(第2情報)を用いて、第2診断画像に対する注視点を検出する。このような制御により、測定の効率向上とともに診断の精度の向上を図ることができる。
図7は、1つの光源を用いると仮定した場合の処理の概要を説明する図である。図3〜図6で説明した要素については同一の符号を付し説明を省略する。図7の例では、2つのLED光源103a、103bの代わりに、1つのLED光源203が用いられる。
瞳孔中心407および角膜反射中心408は、それぞれ、1つのLED光源203を点灯させた際に検出される瞳孔の中心、および、角膜反射点の中心を表している。角膜曲率半径409は、角膜表面から角膜曲率中心410までの距離を表す。LED光源203は、ここでは1個のLEDとしているが、数個の小さいLEDを組み合わせて1ヵ所に配置されたものであっても構わない。
図8は、本実施形態の診断支援装置100により実行される処理の概要を説明する図である。図3〜図6で説明した要素については同一の符号を付し説明を省略する。
角膜反射点621は左カメラ102bで撮影したときの画像上の角膜反射点を表す。角膜反射点622は右カメラ102aで撮影したときの画像上の角膜反射点を表す。本実施形態では、右カメラ102aと右カメラ用のLED光源103b、および、左カメラ102bと左カメラ用のLED光源103aは、例えば右カメラ102aと左カメラ102bの中間位置を通る直線に対して左右対称の位置関係にある。このため、右カメラ102aと左カメラ102bの中間位置(仮想光源位置)に仮想光源303があるとみなすことができる。角膜反射点624は、仮想光源303に対応する角膜反射点を表す。角膜反射点621の座標値と角膜反射点622の座標値を、左右カメラの座標値を三次元世界座標に変換する変換パラメータを用いて変換することにより、角膜反射点624の世界座標値が算出できる。仮想光源303と角膜反射点624を結ぶ直線523上に角膜の曲率中心505が存在する。従って、図7で表した光源が1ヵ所の視線検出方法と同等の方法で視点検出が可能である。
なお右カメラ102aと左カメラ102bとの位置関係、および、LED光源103aとLED光源103bとの位置関係は、上述の位置関係に限られるものではない。例えば同一の直線に対して、それぞれの位置関係が左右対称となる関係であってもよいし、右カメラ102aと左カメラ102bと、LED光源103aとLED光源103bとは同一直線上になくてもよい。
図9は、視点検出(視線検出)を行う前に、角膜曲率中心位置、および、瞳孔中心位置と角膜曲率中心位置との距離を算出する距離算出処理を説明するための図である。図3〜図6で説明した要素については同一の符号を付し説明を省略する。
目標位置605は、表示部101上の一点に目標画像等を出して、被験者に見つめさせるための位置である。本実施形態では表示部101の画面の中央位置としている。直線613は、仮想光源303と角膜反射中心612とを結ぶ直線である。直線614は、被験者が見つめる目標位置605(注視点)と瞳孔中心611とを結ぶ直線である。角膜曲率中心615は、直線613と直線614との交点である。曲率中心算出部353は、瞳孔中心611と角膜曲率中心615との距離616を算出して記憶しておく。
図10は、本実施形態の距離算出処理の一例を示すフローチャートである。
まず出力制御部356は、表示部101の画面上の1点に目標画像を再生し(ステップS101)、被験者にその1点を注視させる。次に、点灯制御部351は、LED駆動制御部316を用いてLED光源103a、103bのうち一方を被験者の目に向けて点灯させる(ステップS102)。制御部300は、左右カメラ(右カメラ102a、左カメラ102b)のうち点灯したLED光源からの距離が長い方のカメラで被験者の目を撮像する(ステップS103)。次に、点灯制御部351は、LED光源103a、103bのうち他方を被験者の目に向けて点灯させる(ステップS104)。制御部300は、左右カメラのうち点灯したLED光源からの距離が長い方のカメラで被験者の目を撮像する(ステップS105)。
なお、点灯したLED光源からの距離が長いカメラ以外のカメラによる撮像を停止しなくてもよい。すなわち、少なくとも点灯したLED光源からの距離が長い方のカメラで被験者の目を撮像し、撮像した画像が座標算出等に利用可能となっていればよい。
LED光源103aまたはLED光源103bの照射により、瞳孔部分は暗い部分(暗瞳孔)として検出される。またLED照射の反射として、角膜反射の虚像が発生し、明るい部分として角膜反射点(角膜反射中心)が検出される。すなわち、位置検出部352は、撮像された画像から瞳孔部分を検出し、瞳孔中心の位置を示す座標を算出する。位置検出部352は、例えば目を含む一定領域の中で最も暗い部分を含む所定の明るさ以下の領域を瞳孔部分として検出し、最も明るい部分を含む所定の明るさ以上の領域を角膜反射として検出する。また、位置検出部352は、撮像された画像から角膜反射部分を検出し、角膜反射中心の位置を示す座標を算出する。なお、位置検出部352は、左右カメラで取得した2つの画像それぞれに対して、各座標値を算出する(ステップS106)。
なお、左右カメラは、三次元世界座標を取得するために、事前にステレオ較正法によるカメラ較正が行われており、変換パラメータが算出されている。ステレオ較正法は、Tsaiのカメラキャリブレーション理論を用いた方法など従来から用いられているあらゆる方法を適用できる。
位置検出部352は、この変換パラメータを使用して、左右カメラの座標から、瞳孔中心と角膜反射中心の三次元世界座標に変換を行う(ステップS107)。例えば位置検出部352は、LED光源103aが点灯されたときに左カメラ102bにより撮像された画像から得られた座標を左カメラの座標とし、LED光源103bが点灯されたときに右カメラ102aにより撮像された画像から得られた座標を右カメラの座標として、変換パラメータを用いて三次元世界座標への変換を行う。この結果得られる世界座標値は、仮想光源303から光が照射されたと仮定したときに左右カメラで撮像された画像から得られる世界座標値に対応する。曲率中心算出部353は、求めた角膜反射中心の世界座標と、仮想光源303の中心位置の世界座標とを結ぶ直線を求める(ステップS108)。次に、曲率中心算出部353は、表示部101の画面上の1点に表示される目標画像の中心の世界座標と、瞳孔中心の世界座標とを結ぶ直線を算出する(ステップS109)。曲率中心算出部353は、ステップS108で算出した直線とステップS109で算出した直線との交点を求め、この交点を角膜曲率中心とする(ステップS110)。曲率中心算出部353は、このときの瞳孔中心と角膜曲率中心との間の距離を算出して記憶部150などに記憶する(ステップS111)。記憶された距離は、その後の視点(視線)検出時に、角膜曲率中心を算出するために使用される。
距離算出処理で表示部101上の1点を見つめる際の瞳孔中心と角膜曲率中心との間の距離は、表示部101内の視点を検出する範囲で一定に保たれている。瞳孔中心と角膜曲率中心との間の距離は、目標画像を再生中に算出された値全体の平均から求めてもよいし、再生中に算出された値のうち何回かの値の平均から求めてもよい。
図11は、視点検出を行う際に、事前に求めた瞳孔中心と角膜曲率中心との距離を使用して、補正された角膜曲率中心の位置を算出する方法を示した図である。注視点805は、一般的な曲率半径値を用いて算出した角膜曲率中心から求めた注視点を表す。注視点806は、事前に求めた距離を用いて算出した角膜曲率中心から求めた注視点を表す。
瞳孔中心811および角膜反射中心812は、それぞれ、視点検出時に算出された瞳孔中心の位置、および、角膜反射中心の位置を示す。直線813は、仮想光源303と角膜反射中心812とを結ぶ直線である。角膜曲率中心814は、一般的な曲率半径値から算出した角膜曲率中心の位置である。距離815は、事前の距離算出処理により算出した瞳孔中心と角膜曲率中心との距離である。角膜曲率中心816は、事前に求めた距離を用いて算出した角膜曲率中心の位置である。角膜曲率中心816は、角膜曲率中心が直線813上に存在すること、および、瞳孔中心と角膜曲率中心との距離が距離815であることから求められる。これにより一般的な曲率半径値を用いる場合に算出される視線817は、視線818に補正される。また、表示部101の画面上の注視点は、注視点805から注視点806に補正される。
図12は、本実施形態の視線検出処理の一例を示すフローチャートである。例えば、診断画像を用いた診断処理の中で視線を検出する処理として、図12の視線検出処理を実行することができる。診断処理では、図12の各ステップ以外に、診断画像を表示する処理、および、注視点の検出結果を用いた評価部357による評価処理などが実行される。
ステップS201〜ステップS207は、図10のステップS102〜ステップS108と同様であるため説明を省略する。
曲率中心算出部353は、ステップS207で算出した直線上であって、瞳孔中心からの距離が、事前の距離算出処理によって求めた距離と等しい位置を角膜曲率中心として算出する(ステップS208)。
視線検出部354は、瞳孔中心と角膜曲率中心とを結ぶベクトル(視線ベクトル)を求める(ステップS209)。このベクトルが、被験者が見ている視線方向を示している。視点検出部355は、この視線方向と表示部101の画面との交点の三次元世界座標値を算出する(ステップS210)。この値が、被験者が注視する表示部101上の1点を世界座標で表した座標値である。視点検出部355は、求めた三次元世界座標値を、表示部101の二次元座標系で表される座標値(x,y)に変換する(ステップS211)。これにより、被験者が見つめる表示部101上の視点(注視点)を算出することができる。
(変形例)
瞳孔中心位置と角膜曲率中心位置との距離を算出する距離算出処理は、図9および図10で説明した方法に限られるものではない。以下では、距離算出処理の他の例について図13および図14を用いて説明する。
図13は、本変形例の距離算出処理を説明するための図である。図3〜図6および図9で説明した要素については同一の符号を付し説明を省略する。
線分1101は、目標位置605と仮想光源位置とを結ぶ線分(第1線分)である。線分1102は、線分1101と平行で、瞳孔中心611と直線613とを結ぶ線分(第2線分)である。本変形例では、以下のように、線分1101、線分1102を用いて瞳孔中心611と角膜曲率中心615との距離616を算出して記憶しておく。
図14は、本変形例の距離算出処理の一例を示すフローチャートである。
ステップS301〜ステップS309は、図10のステップS101〜ステップS109と同様であるため説明を省略する。
曲率中心算出部353は、表示部101の画面上の1点に表示される目標画像の中心と、仮想光源位置とを結ぶ線分(図13では線分1101)を算出するとともに、算出した線分の長さ(L1101とする)を算出する(ステップS310)。
曲率中心算出部353は、瞳孔中心611を通り、ステップS310で算出した線分と平行な線分(図13では線分1102)を算出するとともに、算出した線分の長さ(L1102とする)を算出する(ステップS311)。
曲率中心算出部353は、角膜曲率中心615を頂点とし、ステップS310で算出した線分を下辺とする三角形と、角膜曲率中心615を頂点とし、ステップS311で算出した線分を下辺とする三角形とが相似関係にあることに基づき、瞳孔中心611と角膜曲率中心615との間の距離616を算出する(ステップS312)。例えば曲率中心算出部353は、線分1101の長さに対する線分1102の長さの比率と、目標位置605と角膜曲率中心615との間の距離に対する距離616の比率と、が等しくなるように、距離616を算出する。
距離616は、以下の(1)式により算出することができる。なおL614は、目標位置605から瞳孔中心611までの距離である。
距離616=(L614×L1102)/(L1101−L1102)・・・(1)
曲率中心算出部353は、算出した距離616を記憶部150などに記憶する(ステップS313)。記憶された距離は、その後の視点(視線)検出時に、角膜曲率中心を算出するために使用される。
図12の視線検出処理では、距離算出処理で算出された距離を用いて注視点や視線を検出した。距離算出処理の代わりに、または、距離算出処理とともに、点算出処理を実行して補正用注視点を算出し、補正用注視点を用いて検査用注視点を補正するように構成してもよい。補正用注視点による検査用注視点の補正方法は、例えば、特開2014−039787と同様の方法を適用できる。
上記のように、視線検出(注視点検出)の都度、距離算出処理や点算出処理を実行すると非効率となる場合がある。以下では、これらの算出処理を省略(スキップ)可能とする手順について説明する。
図15は、本実施形態の診断画面1501の一例を示す図である。診断画面1501は、例えば1歳6か月健診などで使用する時のスタート画面になる。図15に示すように、診断画面1501は、選択ボタン1511〜1513と、指定ボタン1514と、を含む。選択ボタン1511〜1513は、診断画像(映像)を選択するためのボタンである。選択ボタン1511〜1513がそれぞれ押下されると、映像1、映像2、および、映像3がそれぞれ診断画像として選択される。指定ボタン1514は、前回と同じ情報(入力項目)で測定を実行すること、言い換えると、算出処理を実行しないこと、を指定するためのボタンである。
算出処理を実行しない指定は、指定ボタン1514等のボタンによる方法に限られるものではなく、任意の方法を適用できる。また診断画像の個数は3に限られるものではなく任意の個数とすることができる。また診断画像の選択方法は選択ボタンによる方法に限られるものではなく、任意の方法を適用できる。
診断画面1501の入力項目としては、測定日(画像の出力日)、受付番号、氏名、生年月日、および、性別がある。これらは、例えば診断支援装置100に接続されているキーボードにより入力される。入力項目の入力方法はこれに限られるものではなく、タッチパネルを用いた方法など従来から用いられているあらゆる方法を適用できる。
療育用の装置などでは、多数の映像を用意しておき、療育の対象者の状況等に応じて任意の映像を順次選択して療育を行う利用形態が考えられる。このような場合、検査者(医師等)は指定ボタン1514を押下することにより、各入力項目(測定日、受付番号、氏名、生年月日、性別)に前回入力した情報を利用することを指定できる。
次に、算出処理をスキップ可能とした視線検出処理の例について説明する。図16は、このように構成した視線検出処理の一例を示すフローチャートである。
処理制御部358は、算出処理のスキップが指定されたかを判定する判定処理を実行する(ステップS401)。判定処理の詳細は後述する。処理制御部358は、判定処理による判定結果が「OK」(スキップ指定)であるか否かを判定する(ステップS402)。判定結果が「OK」でない場合(ステップS402:No)、処理制御部358は、スキップの判定に用いる各フラグ(フラグ1、フラグ2)をリセットする(ステップS403)。フラグ1は、距離算出処理のスキップが可能か否かを示す情報の一例である。フラグ2は、点算出処理のスキップが可能か否かを示す情報の一例である。例えば、距離算出処理によって算出された距離が所定の精度以上であると評価された場合に、フラグ1=「スキップ」が設定される。フラグ1=「スキップ」は、距離が所定の精度以上であるため、次回の測定において同じ値が使用可能であることを示す。そして例えば各フラグに「スキップ」が設定されている場合に、対応する算出処理がスキップされる。
ステップS402で判定結果が「OK」であった場合(ステップS402:Yes)、処理制御部358は、フラグ1が「スキップ」であるか否かを判定する(ステップS404)。
フラグ1=「スキップ」である場合(ステップS404:Yes)、処理制御部358は、瞳孔中心位置と角膜曲率中心位置との距離として、前回算出された値を設定する(ステップS405)。この後、距離算出処理は実行されず(スキップ)、ステップS409に遷移する。
フラグ1=「スキップ」でなかった場合(ステップS404:No)、および、ステップS403でフラグをリセットした後、距離算出処理が実行される(ステップS406)。距離算出処理は、例えば図10と同様の手順で実行することができる。このように本実施形態では、スキップが指定された場合であっても(ステップS402:Yes)、前回算出された距離の精度が十分でない場合は距離算出処理がスキップされずに実行される。これにより、診断の精度の低下を回避可能となる。
精度が十分でない場合、精度が十分となるまで距離算出処理を再実行してもよい。次回の算出処理をスキップするための精度が十分でないと判定した場合であっても、診断(検査用注視点算出)のための精度としては問題ない場合は、診断を継続するように構成してもよい。
距離算出処理の後、評価部357は、距離算出処理の結果(距離算出結果)が所定の範囲内であるかを評価する(ステップS407)。所定の範囲内であるかの評価処理の詳細は後述する。所定の範囲内である場合(ステップS407:Yes)、処理制御部358は、フラグ1に「スキップ」を設定する(ステップS408)。距離算出処理の結果が所定の範囲内でない場合(ステップS409:No)、フラグ1を更新せずにステップS409に遷移する。ステップS408の実行後もステップS409に遷移する。
ステップS409で処理制御部358は、フラグ2が「スキップ」であるか否かを判定する(ステップS409)。フラグ2が「スキップ」である場合(ステップS409:Yes)、処理制御部358は、補正用注視点として、前回算出された値を設定する(ステップS410)。この後、点算出処理は実行されず(スキップ)、ステップS414に遷移する。
フラグ2=「スキップ」でなかった場合(ステップS409:No)、点算出処理が実行される(ステップS411)。点算出処理は、例えば特開2014−039787の図16(補正用注視点検出処理)と同様の手順で実行することができる。このように本実施形態では、スキップが指定された場合であっても(ステップS402:Yes)、前回算出された補正用注視点の精度が十分でない場合は点算出処理がスキップされずに実行される。これにより、診断の精度の低下を回避可能となる。
点算出処理の後、評価部357は、点算出処理の結果が所定の閾値以上であるかを評価する(ステップS412)。所定の閾値以上であるかの評価処理の詳細は後述する。所定の閾値以上である場合(ステップS412:Yes)、処理制御部358は、フラグ2に「スキップ」を設定する(ステップS413)。点算出処理の結果が所定の閾値以上でない場合(ステップS412:No)、フラグ2を更新せずにステップS414に遷移する。ステップS413の実行後もステップS414に遷移する。
ステップS414では視線検出処理が実行される(ステップS414)。視線検出処理は、図12と同様の手順で実行することができる。図12で注視点(検査用注視点)を算出した後(ステップS211など)、特開2014−039787と同様の手順で、補正用注視点を用いて検査用注視点を補正してもよい。なお距離算出処理(ステップS406)および点算出処理(ステップS411)は両方実施する必要はなく、いずれか一方を実施してもよい。この場合、視線検出処理(ステップS414)は、実施する算出処理で算出される情報のみを用いた処理とすればよい。
次に、ステップS401の判定処理の詳細について説明する。図17は、図16のステップS401の判定処理の一例を示すフローチャートである。
まず、処理制御部358は、指定ボタン(図15では指定ボタン1514)が押下されたかを否かを判定する(ステップS501)。指定ボタンが押下された場合(ステップS501:Yes)、処理制御部358は、判定結果を「OK」とする(ステップS510)。
指定ボタンが押下されていない場合(ステップS501:No)、処理制御部358は、入力項目(測定日、受付番号、氏名、性別、生年月日等)の入力を受け付ける(ステップS502)。測定日は、当日の日付を診断制御装置100が設定するように構成してもよい。また、入力項目はすべて入力する必要はなく、同一被験者か確認するために必要な入力項目のみを入力するように構成してもよい。例えば測定日と受付番号のみを入力し、前回の値と比較することで同一被験者か確認することが可能である。処理制御部358は、前回の測定日が今回の測定日と同一であるか否かを判定する(ステップS503)。測定日が同一の場合(ステップS503:Yes)処理制御部358は、さらに今回の受付番号が前回の受付番号と同一か否かを判定する(ステップS504)。受付番号が同一の場合(ステップS504:Yes)、処理制御部358は、判定結果を「OK」とする(ステップS510)。
測定日が同一でなかった場合(ステップS503:No)、同一被験者でない可能性が高いので、同一被験者であるかを確認するためにステップS505に遷移する。ステップS504で受付番号が同一でないと判定された場合も、同一被験者でない可能性が高いので、ステップS505に遷移する。
ステップS505では、処理制御部358は、前回の氏名が今回の氏名と同一であるか否かを判定する(ステップS505)。氏名が同一の場合、処理制御部358は、前回の生年月日が今回の生年月日と同一か否かを判定する(ステップS506)。生年月日が同一の場合(ステップS506:Yes)、処理制御部358は、前回の性別が今回の性別と同一であるか否かを判定する(ステップS507)。性別が同一の場合(ステップS507:Yes)、判定結果を「OK」として判定処理を終了する(ステップS510)。処理制御部358は、判定結果を「OK」とした後、各入力項目の今回の値として、前回の値を設定し(ステップS511)、判定処理を終了する。
氏名が同一でなかった場合(ステップS505:No)、生年月日が同一でなかった場合(ステップS506:No)、および、性別が同一でなかった場合(ステップS507:No)、同一被験者でないので、処理制御部358は、判定結果を「NG」とする(ステップS508)。処理制御部358は、判定結果を「NG」とした後、各入力項目の今回の値として、ステップS502で入力が受け付けられた値を設定し(ステップS509)、判定処理を終了する。値が入力されていない入力項目がある場合は、ステップS502に戻り処理を繰り返してもよい。この後、次の判定処理のために、前回の各入力項目(測定日、受付番号、氏名、生年月日、性別)の値に、今回の各入力項目の値を設定してもよい。
なお図17に示す判定処理は一例であり、少なくとも前回の被験者と今回の被験者とが同一であると判定できる方法であれば他の判定処理を用いてもよい。測定日が同一であるかを判定する代わりに、測定日の差が所定の範囲内であるかを判定してもよい。測定日が同一であるか(または測定日の差が所定の範囲内であるか)を判定すれば、日数の経過により被験者の特性が変化する影響を最小限とすることが可能となる。
図18は、図16のステップS407の評価処理の一例を示すフローチャートである。まず評価部357は、距離算出処理で求めた瞳孔中心と角膜曲率中心の距離を読出す(ステップS601)。次に評価部357は、瞳孔中心と角膜曲率中心の距離が所定の範囲内であるか否かを判定する(ステップS602)。所定の範囲内の場合(ステップS602:Yes)、評価部357は、距離算出結果に「OK」を設定する(ステップS603)。所定の範囲内でない場合(ステップS602:No)、評価部357は、距離算出結果に「NG」を設定する(ステップS604)。距離算出結果=「OK」は、算出された距離が所定の範囲内であることを示す。距離算出結果=「NG」は、算出された距離が所定の範囲内でないことを示す。
次に、補正用注視点の評価処理(図16のステップS412)について説明する。上述のように補正用注視点は、例えば特開2014−039787と同様の手順で算出できる。以下では特開2014−039787と同様の補正用の画像(ターゲットポイントの目印SP0〜SP4を含む画像)を用いる場合の評価処理を例に説明する。
図19は、補正用注視点を算出する処理のタイムチャートの一例を示す。Tsp0〜Tsp4は、それぞれターゲットポイントの目印SP0〜SP4を注視させる時間を表す。
図20は、評価処理に用いる判定領域の一例を示す図である。目印SP0〜SP4に対して、領域Asp0〜Asp4がそれぞれ設定される。例えば領域Asp0は、目印SP0が表示されたときに検出された補正用注視点を評価するときに用いられる領域である。
図21は、図16のステップS412の評価処理の一例を示すフローチャートである。まず評価部357は、時間Tsp0で検出された注視点が領域Asp0に入っている割合Rsp0を計算する(ステップS701)。
割合Rsp0は、例えば検出された注視点の総数に対する、領域Asp0内に含まれる注視点の個数の割合として算出される。割合Rsp0の算出方法はこれに限られるものではない。例えば注視点が検出された時間に相当する情報(時間そのもの、フレーム数など)が得られる場合は、時間Tsp0に対する、注視点が領域Asp0内で検出された時間の割合Rsp0を算出してもよい。注視点の検出情報の割合とは、検出された注視点の総数に対する領域Asp0内に含まれる注視点の個数の割合、または、時間Tsp0に対する、注視点が領域Asp0内で検出された時間の割合のことである。
次に評価部357は、割合Rsp0が、所定の閾値Kr0より大きいか否かを判定する(ステップS702)。割合Rsp0が所定の閾値Kr0以下であれば(ステップS702:No)、評価部357は、点算出結果に「NG」を設定する(ステップS712)。評価部357は、他の時間(Tsp1〜4)で検出された注視点についても同様に処理を行う(ステップS703〜ステップS710)。閾値Kr0〜Kr4は、同じ値であってもよいし相互に異なる値であってもよい。
すべての注視点において、閾値以上であった場合(ステップS710:Yes)、良好に注視点位置の補正が完了したことになるので、評価部357は、点算出結果に「OK」を設定する(ステップS711)。
以上のように、本実施形態によれば、例えば以下のような効果が得られる。
(1)同一の被験者が多種の映像を視聴する場合に特に効率がよく、時間を短縮できる。
(2)時間短縮しても測定精度を維持することができる。
(3)事前処理(補正に用いる情報の算出など)のための映像を見飽きてしまうことが少なく、幼児でも良好な測定を実現できる。
(4)2つの光源のうち、2台のカメラからそれぞれ遠い光源を点灯させたときの画像を撮影し使用することにより、瞳孔だけをより暗く撮影でき、瞳孔検出精度、および視線検出精度を向上させることができる。
(5)それぞれカメラから遠い1つの光源を使用するため、2つの光源の位置を離す必要がなくコンパクトにすることが可能である。