この発明に係る眼科装置の実施形態の一例について、図面を参照しながら詳細に説明する。この発明に係る眼科装置は、OCTを用いて被検眼の断層像や3次元画像を形成する。この明細書では、OCTによって取得される画像をOCT画像と総称することがある。また、OCT画像を形成するための計測動作をOCT計測と呼ぶことがある。なお、この明細書に記載された文献の記載内容を、以下の実施形態の内容として適宜援用することが可能である。
実施形態では、スペクトラルドメインタイプのOCTの手法を用いる場合について説明するが、他のタイプ(たとえばスウェプトソースタイプ)のOCTを用いる眼科装置に対して、実施形態に係る構成を適用することも可能である。また、この実施形態ではOCT装置と眼底カメラとを組み合わせた装置について説明するが、眼底カメラ以外の撮影装置、たとえばSLO、スリットランプ、眼科手術用顕微鏡などに、実施形態に係る構成を有するOCT装置を組み合わせることも可能である。また、実施形態に係る構成を、単体のOCT装置に組み込むことも可能である。
〈第1の実施形態〉
[構成]
図1及び図2に示すように、眼科装置1は、眼底カメラユニット2、OCTユニット100及び演算制御ユニット200を含んで構成される。眼底カメラユニット2は、従来の眼底カメラとほぼ同様の光学系を有する。OCTユニット100には、眼底のOCT画像を取得するための光学系が設けられている。演算制御ユニット200は、各種の演算処理や制御処理等を実行するコンピュータを具備している。
〔眼底カメラユニット〕
図1に示す眼底カメラユニット2には、被検眼Eの眼底Efの表面形態を表す2次元画像(眼底像)を取得するための光学系が設けられている。眼底像には、観察画像や撮影画像などが含まれる。観察画像は、たとえば、近赤外光を用いて所定のフレームレートで形成されるモノクロの動画像である。撮影画像は、たとえば、可視光をフラッシュ発光して得られるカラー画像、又は近赤外光若しくは可視光を照明光として用いたモノクロの静止画像であってもよい。眼底カメラユニット2は、これら以外の画像、たとえばフルオレセイン蛍光画像やインドシアニングリーン蛍光画像や自発蛍光画像などを取得可能に構成されていてもよい。なお、観察画像は、「動画像」の一例に相当する。
眼底カメラユニット2には、被検者の顔を支持するための顎受けや額当てが設けられている。更に、眼底カメラユニット2には、照明光学系10と撮影光学系30が設けられている。照明光学系10は眼底Efに照明光を照射する。撮影光学系30は、この照明光の眼底反射光を撮像装置(CCDイメージセンサ(単にCCDと呼ぶことがある)35、38。)に導く。また、撮影光学系30は、OCTユニット100からの信号光を眼底Efに導くとともに、眼底Efを経由した信号光をOCTユニット100に導く。なお、眼底カメラユニット2における照明光学系10及び撮影光学系30は、被検眼の動画像を撮影するための「光学系」の一例に相当する。
照明光学系10の観察光源11は、たとえばハロゲンランプにより構成される。観察光源11から出力された光(観察照明光)は、曲面状の反射面を有する反射ミラー12により反射され、集光レンズ13を経由し、可視カットフィルタ14を透過して近赤外光となる。更に、観察照明光は、撮影光源15の近傍にて一旦集束し、ミラー16により反射され、リレーレンズ17、18、絞り19及びリレーレンズ20を経由する。そして、観察照明光は、孔開きミラー21の周辺部(孔部の周囲の領域)にて反射され、ダイクロイックミラー46を透過し、対物レンズ22により屈折されて眼底Efを照明する。なお、観察光源としてLED(Light Emitting Diode)を用いることも可能である。
観察照明光の眼底反射光は、対物レンズ22により屈折され、ダイクロイックミラー46を透過し、孔開きミラー21の中心領域に形成された孔部を通過し、ダイクロイックミラー55を透過し、合焦レンズ31を経由し、ミラー32により反射される。更に、この眼底反射光は、ハーフミラー39Aを透過し、ダイクロイックミラー33により反射され、集光レンズ34によりCCDイメージセンサ35の受光面に結像される。CCDイメージセンサ35は、たとえば所定のフレームレートで眼底反射光を検出する。表示装置3には、CCDイメージセンサ35により検出された眼底反射光に基づく画像(観察画像)が表示される。なお、撮影光学系のピントが前眼部に合わせられている場合、被検眼Eの前眼部の観察画像が表示される。
撮影光源15は、たとえばキセノンランプにより構成される。撮影光源15から出力された光(撮影照明光)は、観察照明光と同様の経路を通って眼底Efに照射される。撮影照明光の眼底反射光は、観察照明光のそれと同様の経路を通ってダイクロイックミラー33まで導かれ、ダイクロイックミラー33を透過し、ミラー36により反射され、集光レンズ37によりCCDイメージセンサ38の受光面に結像される。表示装置3には、CCDイメージセンサ38により検出された眼底反射光に基づく画像(撮影画像)が表示される。なお、観察画像を表示する表示装置3と撮影画像を表示する表示装置3は、同一のものであってもよいし、異なるものであってもよい。また、被検眼Eを赤外光で照明して同様の撮影を行う場合には、赤外光の撮影画像が表示される。また、撮影光源としてLEDを用いることも可能である。
LCD(Liquid Crystal Display)39は、固視標や視力測定用指標を表示する。固視標は被検眼Eを固視させるための指標であり、眼底撮影時やOCT計測時などに使用される。
LCD39から出力された光は、その一部がハーフミラー39Aにて反射され、ミラー32に反射され、合焦レンズ31及びダイクロイックミラー55を経由し、孔開きミラー21の孔部を通過し、ダイクロイックミラー46を透過し、対物レンズ22により屈折されて眼底Efに投影される。
LCD39の画面上における固視標の表示位置を変更することにより、被検眼Eの固視位置を変更できる。被検眼Eの固視位置としては、たとえば従来の眼底カメラと同様に、眼底Efの黄斑部を中心とする画像を取得するための位置や、視神経乳頭を中心とする画像を取得するための位置や、黄斑部と視神経乳頭との間の眼底中心を中心とする画像を取得するための位置などがある。また、固視標の表示位置を任意に変更することも可能である。
更に、眼底カメラユニット2には、従来の眼底カメラと同様にアライメント光学系50とフォーカス光学系60が設けられている。アライメント光学系50は、被検眼Eに対する装置光学系の位置合わせ(アライメント)を行うための指標(アライメント指標)を生成する。フォーカス光学系60は、眼底Efに対してフォーカス(ピント)を合わせるための指標(スプリット指標)を生成する。
アライメント光学系50のLED51から出力された光(アライメント光)は、絞り52、53及びリレーレンズ54を経由してダイクロイックミラー55により反射され、孔開きミラー21の孔部を通過し、ダイクロイックミラー46を透過し、対物レンズ22により被検眼Eの角膜に投影される。
アライメント光の角膜反射光は、対物レンズ22、ダイクロイックミラー46及び上記孔部を経由し、その一部がダイクロイックミラー55を透過し、合焦レンズ31を通過し、ミラー32により反射され、ハーフミラー39Aを透過し、ダイクロイックミラー33に反射され、集光レンズ34によりCCDイメージセンサ35の受光面に投影される。CCDイメージセンサ35による受光像(アライメント指標)は、観察画像とともに表示装置3に表示される。ユーザは、従来の眼底カメラと同様の操作を行ってアライメントを実施する。また、演算制御ユニット200がアライメント指標の位置を解析して光学系を移動させることによりアライメントを行ってもよい(オートアライメント機能)。
フォーカス調整を行う際には、照明光学系10の光路上に反射棒67の反射面が斜設される。フォーカス光学系60のLED61から出力された光(フォーカス光)は、リレーレンズ62を通過し、スプリット指標板63により2つの光束に分離され、二孔絞り64を通過し、ミラー65に反射され、集光レンズ66により反射棒67の反射面に一旦結像されて反射される。更に、フォーカス光は、リレーレンズ20を経由し、孔開きミラー21に反射され、ダイクロイックミラー46を透過し、対物レンズ22により屈折されて眼底Efに投影される。
フォーカス光の眼底反射光は、アライメント光の角膜反射光と同様の経路を通ってCCDイメージセンサ35により検出される。CCDイメージセンサ35による受光像(スプリット指標)は、観察画像とともに表示装置3に表示される。演算制御ユニット200は、従来と同様に、スプリット指標の位置を解析して合焦レンズ31及びフォーカス光学系60を移動させてピント合わせを行う(オートフォーカス機能)。また、スプリット指標を視認しつつ手動でピント合わせを行ってもよい。
ダイクロイックミラー46は、眼底撮影用の光路からOCT計測用の光路を分岐させている。ダイクロイックミラー46は、OCT計測に用いられる波長帯の光を反射し、眼底撮影用の光を透過させる。このOCT計測用の光路には、OCTユニット100側から順に、コリメータレンズユニット40と、光路長変更部41と、ガルバノスキャナ42と、合焦レンズ43と、ミラー44と、リレーレンズ45とが設けられている。
光路長変更部41は、図1に示す矢印の方向に移動可能とされ、OCT計測用の光路の光路長を変更する。この光路長の変更は、被検眼Eの眼軸長に応じた光路長の補正や、干渉状態の調整などに利用される。光路長変更部41は、たとえばコーナーキューブと、これを移動する機構とを含んで構成される。
ガルバノスキャナ42は、OCT計測用の光路を通過する光(信号光LS)の進行方向を変更する。それにより、眼底Efを信号光LSで走査することができる。ガルバノスキャナ42は、たとえば、信号光LSをx方向に走査するガルバノミラーと、y方向に走査するガルバノミラーと、これらを独立に駆動する機構とを含んで構成される。それにより、信号光LSをxy平面上の任意の方向に走査することができる。
〔OCTユニット〕
図2を参照しつつOCTユニット100の構成の一例を説明する。OCTユニット100には、眼底EfのOCT画像を取得するための光学系が設けられている。この光学系は、従来のスペクトラルドメインタイプのOCT装置と同様の構成を有する。すなわち、この光学系は、低コヒーレンス光を参照光と信号光に分割し、眼底Efを経由した信号光と参照光路を経由した参照光とを干渉させて干渉光を生成し、この干渉光のスペクトル成分を検出するように構成されている。この検出結果(検出信号)は演算制御ユニット200に送られる。
なお、スウェプトソースタイプのOCT装置の場合には、低コヒーレンス光源を出力する光源の代わりに波長掃引光源が設けられる一方、干渉光をスペクトル分解する光学部材が設けられない。一般に、OCTユニット100の構成については、光コヒーレンストモグラフィのタイプに応じた公知の技術を任意に適用することができる。
光源ユニット101は広帯域の低コヒーレンス光L0を出力する。低コヒーレンス光L0は、たとえば、近赤外領域の波長帯(約800nm〜900nm程度)を含み、数十マイクロメートル程度の時間的コヒーレンス長を有する。なお、人眼では視認できない波長帯、たとえば1040〜1060nm程度の中心波長を有する近赤外光を低コヒーレンス光L0として用いてもよい。
光源ユニット101は、スーパールミネセントダイオード(Super Luminescent Diode:SLD)や、LEDや、SOA(Semiconductor Optical Amplifier)等の光出力デバイスを含んで構成される。
光源ユニット101から出力された低コヒーレンス光L0は、光ファイバ102によりファイバカプラ103に導かれて信号光LSと参照光LRに分割される。
参照光LRは、光ファイバ104により導かれて光減衰器(アッテネータ)105に到達する。光減衰器105は、公知の技術を用いて、演算制御ユニット200の制御の下、光ファイバ104に導かれる参照光LRの光量を自動で調整する。光減衰器105により光量が調整された参照光LRは、光ファイバ104により導かれて偏波調整器(偏波コントローラ)106に到達する。偏波調整器106は、たとえば、ループ状にされた光ファイバ104に対して外部から応力を与えることで、光ファイバ104内を導かれる参照光LRの偏光状態を調整する装置である。なお、偏波調整器106の構成はこれに限定されるものではなく、任意の公知技術を用いることが可能である。偏波調整器106により偏光状態が調整された参照光LRは、ファイバカプラ109に到達する。
ファイバカプラ103により生成された信号光LSは、光ファイバ107により導かれ、コリメータレンズユニット40により平行光束とされる。更に、信号光LSは、光路長変更部41、ガルバノスキャナ42、合焦レンズ43、ミラー44、及びリレーレンズ45を経由してダイクロイックミラー46に到達する。そして、信号光LSは、ダイクロイックミラー46により反射され、対物レンズ22により屈折されて眼底Efに照射される。信号光LSは、眼底Efの様々な深さ位置において散乱(反射を含む)される。眼底Efによる信号光LSの後方散乱光は、往路と同じ経路を逆向きに進行してファイバカプラ103に導かれ、光ファイバ108を経由してファイバカプラ109に到達する。
ファイバカプラ109は、信号光LSの後方散乱光と、光ファイバ104を経由した参照光LRとを干渉させる。これにより生成された干渉光LCは、光ファイバ110により導かれて出射端111から出射される。更に、干渉光LCは、コリメータレンズ112により平行光束とされ、回折格子113により分光(スペクトル分解)され、集光レンズ114により集光されてCCDイメージセンサ115の受光面に投影される。なお、図2に示す回折格子113は透過型であるが、たとえば反射型の回折格子など、他の形態の分光素子を用いることも可能である。
CCDイメージセンサ115は、たとえばラインセンサであり、分光された干渉光LCの各スペクトル成分を検出して電荷に変換する。CCDイメージセンサ115は、この電荷を蓄積して検出信号を生成し、これを演算制御ユニット200に送る。
この実施形態ではマイケルソン型の干渉計を採用しているが、たとえばマッハツェンダー型など任意のタイプの干渉計を適宜に採用することが可能である。また、CCDイメージセンサに代えて、他の形態のイメージセンサ、たとえばCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどを用いることが可能である。
〔演算制御ユニット〕
演算制御ユニット200の構成について説明する。演算制御ユニット200は、CCDイメージセンサ115から入力される検出信号を解析して眼底EfのOCT画像を形成する。そのための演算処理は、従来のスペクトラルドメインタイプのOCT装置と同様である。
また、演算制御ユニット200は、眼底カメラユニット2、表示装置3及びOCTユニット100の各部を制御する。たとえば演算制御ユニット200は、眼底EfのOCT画像を表示装置3に表示させる。
また、眼底カメラユニット2の制御として、演算制御ユニット200は、観察光源11、撮影光源15及びLED51、61の動作制御、LCD39の動作制御、合焦レンズ31、43の移動制御、反射棒67の移動制御、フォーカス光学系60の移動制御、光路長変更部41の移動制御、ガルバノスキャナ42の動作制御、眼底カメラユニット2に設けられた光学系を3次元的に移動させる光学系駆動部90(図3参照)の移動制御などを行う。
また、OCTユニット100の制御として、演算制御ユニット200は、光源ユニット101の動作制御、光減衰器105の動作制御、偏波調整器106の動作制御、CCDイメージセンサ115の動作制御などを行う。
演算制御ユニット200は、たとえば、従来のコンピュータと同様に、マイクロプロセッサ、RAM、ROM、ハードディスクドライブ、通信インターフェイスなどを含んで構成される。ハードディスクドライブ等の記憶装置には、眼科装置1を制御するためのコンピュータプログラムが記憶されている。演算制御ユニット200は、各種の回路基板、たとえばOCT画像を形成するための回路基板を備えていてもよい。また、演算制御ユニット200は、キーボードやマウス等の操作デバイス(入力デバイス)や、LCD等の表示デバイスを備えていてもよい。
眼底カメラユニット2、表示装置3、OCTユニット100及び演算制御ユニット200は、一体的に(つまり単一の筺体内に)構成されていてもよいし、2つ以上の筐体に分かれて構成されていてもよい。
〔制御系〕
眼科装置1の制御系の構成について図3を参照しつつ説明する。
(制御部)
眼科装置1の制御系は、制御部210を中心に構成される。制御部210は、たとえば、前述のマイクロプロセッサ、RAM、ROM、ハードディスクドライブ、通信インターフェイス等を含んで構成される。制御部210には、主制御部211と記憶部212が設けられている。
(主制御部)
主制御部211は前述の各種制御を行う。特に、主制御部211は、眼底カメラユニット2の合焦駆動部31A、光路長変更部41、ガルバノスキャナ42及び光学系駆動部90、更にOCTユニット100の光源ユニット101、光減衰器105及び偏波調整器106を制御する。
合焦駆動部31Aは、合焦レンズ31を光軸方向に移動させる。それにより、撮影光学系30の合焦位置が変更される。光学系駆動部90は、眼底カメラユニット2に設けられた光学系を3次元的に移動させる。光学系駆動部90は、光学系の光軸回りに光学系を回転移動させることも可能であってよい。この制御は、アライメントやトラッキングにおいて用いられる。トラッキングとは、被検眼Eの眼球運動に合わせて装置光学系を移動させるものである。トラッキングを行う場合には、事前にアライメントとピント合わせが実行される。トラッキングは、装置光学系の位置を眼球運動に追従させることにより、アライメントとピントが合った好適な位置関係を維持する機能である。
また、主制御部211は、記憶部212にデータを書き込む処理や、記憶部212からデータを読み出す処理を行う。
(記憶部)
記憶部212は、各種のデータを記憶する。記憶部212に記憶されるデータとしては、たとえば、OCT画像の画像データ、眼底像の画像データ、被検眼情報などがある。被検眼情報は、患者IDや氏名などの被検者に関する情報や、左眼/右眼の識別情報などの被検眼に関する情報を含む。また、記憶部212には、眼科装置1を動作させるための各種プログラムやデータが記憶されている。
(画像形成部)
画像形成部220は、CCDイメージセンサ115からの検出信号に基づいて、眼底Efの断層像の画像データを形成する。この処理には、従来のスペクトラルドメインタイプの光コヒーレンストモグラフィと同様に、ノイズ除去(ノイズ低減)、フィルタ処理、分散補償、FFT(Fast Fourier Transform:以下、FFT)などの処理が含まれている。他のタイプのOCT装置の場合、画像形成部220は、そのタイプに応じた公知の処理を実行する。
画像形成部220は、たとえば、前述の回路基板を含んで構成される。なお、この明細書では、「画像データ」と、それに基づく「画像」とを同一視することがある。
(画像処理部)
画像処理部230は、画像形成部220により形成された画像に対して各種の画像処理や解析処理を施す。たとえば、画像処理部230は、画像の輝度補正等の各種補正処理を実行する。また、画像処理部230は、眼底カメラユニット2により得られた画像(眼底像、前眼部像等)に対して各種の画像処理や解析処理を施す。
画像処理部230は、断層像の間の画素を補間する補間処理などの公知の画像処理を実行して、眼底Efの3次元画像の画像データを形成する。なお、3次元画像の画像データとは、3次元座標系により画素の位置が定義された画像データを意味する。3次元画像の画像データとしては、3次元的に配列されたボクセルからなる画像データがある。この画像データは、ボリュームデータ或いはボクセルデータなどと呼ばれる。ボリュームデータに基づく画像を表示させる場合、画像処理部230は、このボリュームデータに対してレンダリング処理(ボリュームレンダリングやMIP(Maximum Intensity Projection:最大値投影)など)を施して、特定の視線方向から見たときの擬似的な3次元画像の画像データを形成する。表示部240A等の表示デバイスには、この擬似的な3次元画像が表示される。
また、3次元画像の画像データとして、複数の断層像のスタックデータを形成することも可能である。スタックデータは、複数の走査線に沿って得られた複数の断層像を、走査線の位置関係に基づいて3次元的に配列させることで得られる画像データである。すなわち、スタックデータは、元々個別の2次元座標系により定義されていた複数の断層像を、1つの3次元座標系により表現する(つまり1つの3次元空間に埋め込む)ことにより得られる画像データである。
画像処理部230は、動画像である観察画像を解析して、各フレームの画像と事前に登録された登録画像との間の位置ずれ量を検出し、検出された位置ずれ量を、トラッキングの制御を行う制御部210(主制御部211)に出力する。登録画像は、位置ずれ量の検出処理の開始に先立って登録された画像である。このような登録画像として、たとえば観察画像のうちトラッキング開始後の最初のフレームの画像が用いられる。この明細書では、登録画像をベース画像と呼び、各フレームの画像をターゲット画像と呼ぶ。位置ずれ量は、ベース画像とターゲット画像との間の1ピクセル未満のサブピクセルレベルの回転方向(z方向の軸回り)の回転移動量や、ベース画像とターゲット画像との間のサブピクセルレベルのxy面内における平行移動量である。この実施形態では、以下で説明する演算処理で算出することにより、位置ずれ量の検出を行う。なお、ベース画像は「第1画像」の一例に相当し、ターゲット画像は「第2画像」の一例に相当する。
画像処理部230は、まず、ベース画像とターゲット画像との間の回転移動量をサブピクセルレベルで算出し、この回転移動量に基づいてベース画像とターゲット画像との間で回転方向の位置合わせを行う。その後、画像処理部230は、位置合わせがなされたベース画像とターゲット画像との間の平行移動量をサブピクセルレベルで算出する。
このような処理を実現するために、画像処理部230には、回転移動量算出部231と、位置合わせ部232と、平行移動量算出部233とが設けられている。なお、画像処理部230又は眼底カメラユニット2は、一般的なデジタルカメラと同様に、CCDイメージセンサ35、38からの画像信号をデジタル信号に変換する処理を行う。このデジタル信号は、たとえば図示しないメモリに一時的に記憶され、このメモリに記憶されたデジタル信号がベース画像及びターゲット画像のそれぞれに対応した信号として回転移動量算出部231以降の処理に供される。
画像処理部230は、後述する位相限定相関処理を施すことにより、ベース画像とターゲット画像との間の回転移動量及び平行移動量を算出する。このとき、画像処理部230は、位相限定相関処理に用いられるベース画像についてのPOC(Phase Only Correlation)データ(第1データ)については予め算出しておく。以下、ベース画像についてのPOCデータをベースPOCデータと呼び、ターゲット画像についてのPOCデータをターゲットPOCデータと呼ぶことがある。画像処理部230は、ターゲット画像POCデータ(第2データ)が算出されると、ターゲットPOCデータと予め求められたベースPOCデータとを用いて位相限定相関処理を継続させる。これにより、処理負荷の軽減と処理時間との短縮化とを図り、微小な位置ずれ量を算出する。
(位相限定相関処理)
この実施形態における位相限定相関処理では、たとえば、公知の位相限定相関関数が用いられる。この実施形態では、非特許文献1に開示された位相限定相関関数が用いられるものとする。
まず、画像サイズがN1×N2(N1、N2は正の整数)であるベース画像をf(n1,n2)、ターゲット画像をg(n1,n2)とする。ここで、離散空間上でn1=−M1,・・・,M1とし、N1=2M1+1(M1は正の整数)とし、f(n1,n2)の2次元離散フーリエ変換(Discrete Fourier Transformation:以下、DFT)の演算結果をF(k1,k2)とすると、F(k1,k2)は、式(1)のように表される。
式(1)において、AF(k1,k2)はf(n1,n2)の振幅成分であり、ejθF(k1,k2)はf(n1,n2)の位相成分である。
同様に、離散空間上でn2=−M2,・・・,M2とし、N2=2M2+1(M2は正の整数)とし、g(n1,n2)の2次元DFTの演算結果をG(k1,k2)とすると、G(k1,k2)は、式(2)のように表される。
式(2)において、AG(k1,k2)はg(n1,n2)の振幅成分であり、ejθG(k1,k2)はg(n1,n2)の位相成分である。
位相限定合成処理に用いられる位相限定合成関数は、式(1)及び式(2)を用いて、式(3)のように定義される。
この実施形態における位相限定相関関数は、式(3)の位相限定合成関数に対して2次元逆離散フーリエ変換(Inverse Discrete Fourier Transformation:以下、IDFT)を施すことにより、式(4)のように表される。
連続空間で定義された2次元画像sc(x1,x2)を、x1方向に微小移動量δ1だけ、且つ、x2方向に微小移動量δ2だけシフトさせて得られる画像は、sc(x1−δ1,x2−δ2)と表される。標本化間隔T1で標本化された離散空間上の2次元画像f(n1,n2)は、式(5)のように定義される。
同様に、標本化間隔T2で標本化された離散空間上の2次元画像g(n1,n2)は、式(6)のように定義される。
式(5)及び式(6)において、n1=−M1,・・・,M1であり、n2=−M2,・・・,M2である。これにより、離散空間上の2次元画像f(n1,n2)、g(n1,n2)に関する位相限定相関関数は、式(7)のような一般形で表される。式(7)において、α=1である。
上記の位相限定相関処理を行う画像処理部230の構成の一例について図4を参照しつつ説明する。
(回転移動量算出部)
回転移動量算出部231は、ベース画像とターゲット画像との間の回転移動量を算出する。具体的には、回転移動量算出部231は、ベース画像とターゲット画像とに対し位相限定相関処理を施すことにより、ベース画像とターゲット画像との間の回転移動量を算出する。このような回転移動量算出部231は、第1変換処理部301と、対数変換部302と、極座標変換部303と、第2変換処理部304と、第1位相限定合成部305と、第1逆変換処理部306とを備えている。
第1変換処理部301は、ベース画像に対し2次元DFT処理を施す。また、第1変換処理部301は、ターゲット画像に対し2次元DFT処理を施す。第1変換処理部301により行われる2次元DFT処理は、2次元DFTと、この2次元DFTの演算結果に対し象限をシフトする公知のシフト処理とを含む。以下、このシフト処理を、「シフト」と呼ぶことがある。なお、第1変換処理部301により行われる2次元DFTは、2次元FFTであってよい。
対数変換部302は、ベース画像についての第1変換処理部301による演算結果に対し対数変換を施す。また、対数変換部302は、ターゲット画像についての第1変換処理部301による演算結果に対し対数変換を施す。対数変換部302による対数変換は、自然画像において空間周波数の低周波数領域に集中する傾向がある振幅スペクトルを圧縮させる効果を有する。
極座標変換部303は、ベース画像についての対数変換部302による演算結果に対し極座標変換を施す。また、極座標変換部303は、ターゲット画像についての対数変換部302による演算結果に対し極座標変換を施す。なお、対数変換部302による対数変換を行わない場合、極座標変換部303は、ベース画像についての第1変換処理部301による演算結果に対し極座標変換を施し、ターゲット画像についての第1変換処理部301による演算結果に対し極座標変換を施す。極座標変換部303による極座標変換は、回転方向の移動量を式(1)〜式(7)における平行方向(n1方向やn2方向)の移動量に変換する処理である。
第2変換処理部304は、式(1)に示すように、ベース画像についての極座標変換部303による演算結果に対し2次元DFT処理(2次元DFT+シフト)を施す。ベース画像についての第2変換処理部304による処理結果は、第1位相限定合成部305による演算処理に先立って、振幅成分で正規化されたベースPOCデータ(第1データ)として、たとえば記憶部212に事前に保存される。また、第2変換処理部304は、式(2)に示すように、ターゲット画像についての極座標変換部303による演算結果に対し2次元DFT処理(2次元DFT+シフト)を施す。なお、第2変換処理部304により行われる2次元DFTもまた、2次元FFTであってよい。
第1位相限定合成部305は、式(3)に示すように、ベース画像について予め求められたベースPOCデータ(第1データ)と、ターゲット画像についての第2変換処理部304による演算結果に基づいて振幅成分で正規化されたターゲットPOCデータ(第2データ)とを合成する位相限定合成処理を行う。
第1逆変換処理部306は、第1位相限定合成部305による演算結果に対し2次元IDFT処理を施す。第1逆変換処理部306により行われる2次元IDFT処理は、2次元IDFTと、この2次元IDFTの演算結果に対し象限をシフトする公知のシフト処理とを含む。なお、2次元IDFTは、2次元逆高速フーリエ変換(Inverse Fast Fourier Transformation:以下、IFFT)により演算してもよい。
回転移動量算出部231は、第1逆変換処理部306による演算結果に基づいて回転移動量を算出する。具体的には、回転移動量算出部231は、第1逆変換処理部306による演算結果に基づいてピーク位置を特定することにより、ピクセルレベルで回転方向の移動量(回転移動量、位置ずれ量)を算出する。その後、回転移動量算出部231は、ピクセルレベルで特定されたピーク位置の近傍において、式(7)に示す位相限定相関関数の相関値が最大となるときの画素位置を特定することにより、サブピクセルレベルで回転方向の移動量(回転移動量、位置ずれ量)を算出する。回転移動量算出部231は、「回転移動量算出部」の一例に相当する。
回転移動量算出部231は、ベース画像を基準に、ターゲット画像の回転方向の移動量を算出するものとして説明したが、これに限定されるものではない。回転移動量算出部231は、ターゲット画像を基準に、ベース画像の回転方向の移動量を算出してもよい。
また、回転移動量算出部231は、位相限定相関処理により回転移動量を算出するものでなくてもよく、公知の手法により回転移動量を算出し、算出された回転移動量を位置合わせ部232に出力するようにしてもよい。
(位置合わせ部)
位置合わせ部232は、回転移動量算出部231により算出された回転移動量に基づいてベース画像とターゲット画像との間の回転方向の位置合わせを行う。具体的には、位置合わせ部232は、回転移動量算出部231により算出された回転移動量に基づいて、ベース画像を基準に、回転移動量が零となるようにターゲット画像に対し回転方向の位置合わせを行う。なお、位置合わせ部232は、回転移動量算出部231により算出された回転移動量に基づいて、ターゲット画像を基準に、ベース画像に対し回転方向の位置合わせを行うようにしてもよい。位置合わせ部232は、「位置合わせ部」の一例に相当する。
(平行移動量算出部)
平行移動量算出部233は、位置合わせ部232による位置合わせがなされたベース画像とターゲット画像との間の平行移動量を算出する。具体的には、平行移動量算出部233は、位置合わせ部232による位置合わせがなされたベース画像とターゲット画像とに対し位相限定相関処理を施すことにより、ベース画像とターゲット画像との間の平行移動量を算出する。このような平行移動量算出部233は、第3変換処理部311と、第2位相限定合成部312と、第2逆変換処理部313とを備えている。
第3変換処理部311は、式(1)に示すように、ベース画像に対し2次元DFT処理(2次元DFT+シフト)を施す。ベース画像についての第3変換処理部311による処理結果は、第2位相限定合成部312による演算処理に先立って、振幅成分で正規化されたベースPOCデータ(第3データ)として、たとえば記憶部212に事前に保存される。また、第3変換処理部311は、式(2)に示すように、ターゲット画像に対し2次元DFT処理(2次元DFT+シフト)を施す。なお、第3変換処理部311により行われる2次元DFTは、2次元FFTであってよい。
第2位相限定合成部312は、式(3)に示すように、ベース画像について予め求められたベースPOCデータ(第3データ)と、ターゲット画像についての第3変換処理部311による演算結果に基づいて、振幅成分で正規化されたターゲットPOCデータ(第4データ)とを合成する位相限定合成処理を行う。
第2逆変換処理部313は、第2位相限定合成部312による演算結果に対し2次元IDFT処理(2次元IDFT+シフト)を施す。なお、第2逆変換処理部313により行われる2次元IDFTは、2次元IFFTであってよい。
平行移動量算出部233は、第2逆変換処理部313による演算結果に基づいて平行移動量を算出する。具体的には、平行移動量算出部233は、第2逆変換処理部313による演算結果に基づいてピーク位置を特定することにより、ピクセルレベルで平行方向の移動量(平行移動量、位置ずれ量)を算出する。その後、平行移動量算出部233は、ピクセルレベルで特定されたピーク位置の近傍において、式(7)に示す位相限定相関関数の相関値が最大となるときの画素位置を特定することにより、サブピクセルレベルで平行方向の移動量(平行移動量、位置ずれ量)を算出する。平行移動量算出部233は、「平行移動量算出部」の一例に相当する。
平行移動量算出部233は、ベース画像を基準に、ターゲット画像の平行方向の移動量を算出するものとして説明したが、これに限定されるものではない。平行移動量算出部233は、ターゲット画像を基準に、ベース画像の平行方向の移動量を算出してもよい。
画像処理部230において算出された回転移動量及び平行移動量のうち少なくとも平行移動量は、制御部210に出力される。制御部210(主制御部211)は、画像処理部230において算出された平行移動量に基づいて光学系駆動部90を制御することにより、眼底カメラユニット2に設けられた光学系を3次元的に移動させることでトラッキングを行う。なお、制御部210(主制御部211)は、画像処理部230において算出された回転移動量に基づいて、光学系駆動部90を制御することにより、眼底カメラユニット2に設けられた光学系を3次元的に移動(回転)させることでトラッキングを行うことも可能である。
以上のように機能する画像処理部230は、たとえば、前述のマイクロプロセッサ、RAM、ROM、ハードディスクドライブ、回路基板等を含んで構成される。ハードディスクドライブ等の記憶装置には、上記機能をマイクロプロセッサに実行させるコンピュータプログラムが予め格納されている。
(ユーザインターフェイス)
ユーザインターフェイス240には、表示部240Aと操作部240Bとが含まれる。表示部240Aは、前述した演算制御ユニット200の表示デバイスや表示装置3を含んで構成される。操作部240Bは、前述した演算制御ユニット200の操作デバイスを含んで構成される。操作部240Bには、眼科装置1の筐体や外部に設けられた各種のボタンやキーが含まれていてもよい。たとえば眼底カメラユニット2が従来の眼底カメラと同様の筺体を有する場合、操作部240Bは、この筺体に設けられたジョイスティックや操作パネル等を含んでいてもよい。また、表示部240Aは、眼底カメラユニット2の筺体に設けられたタッチパネルなどの各種表示デバイスを含んでいてもよい。
なお、表示部240Aと操作部240Bは、それぞれ個別のデバイスとして構成される必要はない。たとえばタッチパネルのように、表示機能と操作機能とが一体化されたデバイスを用いることも可能である。その場合、操作部240Bは、このタッチパネルとコンピュータプログラムとを含んで構成される。操作部240Bに対する操作内容は、電気信号として制御部210に入力される。また、表示部240Aに表示されたグラフィカルユーザインターフェイス(GUI)と、操作部240Bとを用いて、操作や情報入力を行うようにしてもよい。
〔信号光の走査及びOCT画像について〕
ここで、信号光LSの走査及びOCT画像について説明しておく。
眼科装置1による信号光LSの走査態様としては、たとえば、水平スキャン、垂直スキャン、十字スキャン、放射スキャン、円スキャン、同心円スキャン、螺旋(渦巻)スキャンなどがある。これらの走査態様は、眼底の観察部位、解析対象(網膜厚など)、走査に要する時間、走査の精密さなどを考慮して適宜に選択的に使用される。
水平スキャンは、信号光LSを水平方向(x方向)に走査させるものである。水平スキャンには、垂直方向(y方向)に配列された複数の水平方向に延びる走査線に沿って信号光LSを走査させる態様も含まれる。この態様においては、走査線の間隔を任意に設定することが可能である。また、隣接する走査線の間隔を十分に狭くすることにより、前述の3次元画像を形成することができる(3次元スキャン)。垂直スキャンについても同様である。
十字スキャンは、互いに直交する2本の直線状の軌跡(直線軌跡)からなる十字型の軌跡に沿って信号光LSを走査するものである。放射スキャンは、所定の角度を介して配列された複数の直線軌跡からなる放射状の軌跡に沿って信号光LSを走査するものである。なお、十字スキャンは放射スキャンの一例である。
円スキャンは、円形状の軌跡に沿って信号光LSを走査させるものである。同心円スキャンは、所定の中心位置の周りに同心円状に配列された複数の円形状の軌跡に沿って信号光LSを走査させるものである。円スキャンは同心円スキャンの一例である。螺旋スキャンは、回転半径を次第に小さく(又は大きく)させながら螺旋状(渦巻状)の軌跡に沿って信号光LSを走査するものである。
ガルバノスキャナ42は、互いに直交する方向に信号光LSを走査するように構成されているので、信号光LSをx方向及びy方向にそれぞれ独立に走査できる。更に、ガルバノスキャナ42に含まれる2つのガルバノミラーの向きを同時に制御することで、xy面上の任意の軌跡に沿って信号光LSを走査することが可能である。それにより、上記のような各種の走査態様を実現できる。
上記のような態様で信号光LSを走査することにより、走査線(走査軌跡)に沿う方向と眼底深度方向(z方向)とにより張られる面における断層像を取得することができる。また、特に走査線の間隔が狭い場合には、前述の3次元画像を取得することができる。
上記のような信号光LSの走査対象となる眼底Ef上の領域、つまりOCT計測の対象となる眼底Ef上の領域を走査領域と呼ぶ。3次元スキャンにおける走査領域は、複数の水平スキャンが配列された矩形の領域である。また、同心円スキャンにおける走査領域は、最大径の円スキャンの軌跡により囲まれる円盤状の領域である。また、放射スキャンにおける走査領域は、各スキャンラインの両端位置を結んだ円盤状(或いは多角形状)の領域である。
[動作]
眼科装置1の動作について説明する。
図5は、眼科装置1の動作の一例を表す。この動作例では、画像処理部230により算出された位置ずれ量を補正してOCT計測を行う場合について説明する。この動作例には、画像に基づく被検眼Eと装置光学系との位置合わせの処理と、画像に基づく走査領域の設定処理とが含まれる。位置合わせの処理には、OCT計測のためのアライメント(オートアライメント)、ピント合わせ(オートフォーカス)、トラッキング(オートトラッキング)が含まれる。
(S1:リアルタイム近赤外動画像の取得を開始)
まず、観察光源11からの照明光(可視カットフィルタ14により近赤外光となる)で眼底Efを連続照明することにより、眼底Efの近赤外動画像の取得を開始する。この近赤外動画像は、連続照明が終了するまでリアルタイムで得られる。この動画像を構成する各フレームの画像は、フレームメモリ(記憶部212)に一時記憶され、画像処理部230に逐次送られる。
なお、被検眼Eには、アライメント光学系50によるアライメント指標と、フォーカス光学系60によるスプリット指標とが投影されている。よって、近赤外動画像にはアライメント指標とスプリット指標とが描画されている。これら指標を用いてアライメントやピント合わせを行うことができる。また、被検眼Eには、LCD39による固視標も投影されている。被検者は、この固視標を凝視するように指示を受ける。
(S2:アライメント)
画像処理部230は、光学系によって被検眼Eを動画撮影することにより得られるフレームを逐次に解析して、アライメント視標の位置を求め、光学系の移動量を算出する。制御部210は、画像処理部230により算出された光学系の移動量に基づいて光学系駆動部90を制御することにより、オートアライメントを行う。
(S3:ピント合わせ)
画像処理部230は、光学系によって被検眼Eを動画撮影することにより得られるフレームを逐次に解析して、スプリット視標の位置を求め、合焦レンズ31の移動量を算出する。制御部210は、画像処理部230により算出された合焦レンズ31の移動量に基づいて合焦駆動部31Aを制御することにより、オートフォーカスを行う。
(S4:トラッキングを開始)
続いて、制御部210は、オートトラッキングを開始する。具体的には、画像処理部230は、光学系によって被検眼Eを動画撮影することにより逐次に得られるフレームをリアルタイムで解析して、被検眼Eの動き(位置の変化)を監視する。制御部210は、逐次に取得される被検眼Eの位置に合わせて光学系を移動させるように光学系駆動部90を制御する。それにより、被検眼Eの動きに対して光学系をリアルタイムで追従させることができ、アライメントとピントが合った好適な位置関係を維持することが可能となる。このような画像処理部230は、ベース画像とターゲット画像との間のサブピクセルレベルの位置ずれ量を逐次に算出し、制御部210は、1又は複数のフレーム毎に、画像処理部230において算出された位置ずれ量を補正するように光学系を移動させる。
(S5:走査領域を設定)
制御部210は、近赤外動画像を表示部240Aにリアルタイムで表示させる。ユーザは、操作部240Bを用いることにより、この近赤外動画像上に走査領域を設定する。設定される走査領域は1次元領域でも2次元領域でもよい。
なお、信号光LSの走査態様や注目部位(視神経乳頭、黄斑部、病変部等)が予め設定されている場合などには、これら設定内容に基づいて制御部210が走査領域を設定するように構成することも可能である。具体的には、画像処理部230による画像解析により注目部位を特定し、制御部210が、この注目部位を含むように(たとえば、この注目部位が中心に位置するように)所定パターンの領域を設定する。
また、過去に実施されたOCT計測と同じ走査領域を設定する場合(いわゆるフォローアップ)、制御部210は、この過去の走査領域をリアルタイム近赤外動画像上に再現して設定することができる。その具体例として、制御部210は、過去の検査で設定された走査領域を表す情報(走査態様等)と、この走査領域が設定された近赤外眼底像(静止画、たとえばフレームでよい)とを対応付けて記憶部212に記憶している(実用上は、患者IDや左右眼情報とも対応付けられる)。制御部210は、過去の近赤外眼底像と現在の近赤外動画像のフレームとの位置合わせを行い、過去の近赤外眼底像における走査領域に対応する現在の近赤外動画像中の画像領域を特定する。これにより、過去の検査で適用された走査領域が現在の近赤外動画像に対して設定される。
(S6:OCT計測)
制御部210は、光源ユニット101や光路長変更部41を制御するとともに、ステップS5で設定された走査領域に基づいてガルバノスキャナ42を制御することにより、眼底EfのOCT計測を行う。画像形成部220は、得られた検出信号に基づいて眼底Efの断層像を形成する。走査態様が3次元スキャンである場合、画像処理部230は、画像形成部220により形成された複数の断層像に基づいて眼底Efの3次元画像を形成する。以上で、この動作例は終了となる(エンド)。
なお、上記ステップS4、S5の順序を入れ替えてもよい。また、上記ステップS4、S5では、近赤外動画像を表示させ、この近赤外動画像上に走査領域を設定しているが、走査領域の設定態様はこれに限定されるものではない。たとえば、近赤外動画像における一のフレームの画像(基準画像と呼ぶ)を表示させるとともに、そのバックグラウンドでオートトラッキングを実行する。基準画像上に走査領域が設定されると、制御部210は、基準画像と、現にオートトラッキングに供されている画像との間の位置合わせを行うことにより、基準画像上に設定された走査領域に対応するリアルタイム近赤外動画像中の画像領域を特定する。この処理によっても上記ステップS4、S5と同様にリアルタイム近赤外動画像中に走査領域を設定できる。更に、この方法によれば、静止画像上に走査領域を設定することができるので、現にオートトラッキングされている動画像上に設定する場合よりも作業の容易化や確実化を図ることができる。
この動作例において、光学系駆動部90は「駆動部」の一例に相当し、制御部210は、光学系駆動部90を制御する「制御部」の一例に相当する。
[効果]
眼科装置1は、実施形態に係る眼科装置の一例である。以下、実施形態に係る眼科装置の効果について説明する。
実施形態に係る眼科装置は、光学系(たとえば眼底カメラユニット2)と、回転移動量算出部(たとえば回転移動量算出部231)と、位置合わせ部(たとえば位置合わせ部232)と、平行移動量算出部(たとえば平行移動量算出部233)と、駆動部(たとえば光学系駆動部90)と、制御部(たとえば制御部210や主制御部211)とを有する。
光学系は、被検眼を動画撮影するために用いられる。回転移動量算出部は、光学系により取得された動画像に含まれる第1画像と第2画像との間の回転移動量を算出する。位置合わせ部は、回転移動量算出部により算出された回転移動量に基づいて第1画像と第2画像との間の回転方向の位置合わせを行う。平行移動量算出部は、位置合わせ部による位置合わせがなされた第1画像と第2画像とに対し位相限定相関処理を施すことにより、第1画像と第2画像との間の平行移動量を算出する。駆動部は、光学系を移動させる。制御部は、平行移動量算出部により算出された平行移動量に基づいて、駆動部を制御する。
回転移動量は、回転方向の移動量である。ここで、回転方向は、第1画像や第2画像に交差する軸回りの方向であり、実施形態では、第1画像及び第2画像を撮影する光学系の光軸回りの方向である。平行移動量は、平行方向の移動量である。ここで、平行方向は、第1画像や第2画像と平行な平面上の任意の方向とすることができる。
このような眼科装置によれば、光学系により撮影される動画像のうち撮影時刻が異なる第1画像と第2画像との間の回転移動量を算出し、算出された回転移動量に基づいて第1画像と第2画像との位置合わせが行われる。その後、位置合わせがなされた第1画像と第2画像とに対し位相限定相関処理を施すことにより、第1画像と第2画像との間の平行移動量をサブピクセルレベルで算出し、算出された平行移動量に基づいて光学系が移動される。これにより、微小な位置ずれ量を正確に検出することができ、検出された微小な位置ずれ量に基づいて光学系を移動させることにより、高精度なトラッキングが可能となる。
実施形態に係る眼科装置は、回転移動量についても位相限定相関処理を行うことによりサブピクセルレベルで算出するようにしてもよい。この場合、回転移動量算出部は、第1画像と第2画像とに対し位相限定相関処理を施すことにより、第1画像と第2画像との間の回転移動量を算出する。
このような眼科装置によれば、サブピクセルレベルで算出された回転移動量に基づいて、第1画像と第2画像との間の位置合わせが可能となるので、より微小な位置ずれを正確に検出することができるようになる。これにより、より一層高精度なトラッキングが可能となる。
実施形態に係る眼科装置では、回転移動量算出部が、第1変換処理部(たとえば第1変換処理部301)と、極座標変換部(たとえば極座標変換部303)と、第2変換処理部(たとえば第2変換処理部304)と、第1位相限定合成部(たとえば第1位相限定合成部305)と、第1逆変換処理部(たとえば第1逆変換処理部306)を有していてもよい。この場合、第1変換処理部は、第2画像に対しDFTを施す。極座標変換部は、第2画像についての第1変換処理部による演算結果に対し極座標変換を施す。第2変換処理部は、第2画像についての極座標変換部による演算結果に対しDFTを施す。第1位相限定合成部は、第1画像について予め求められた第1データと、第2画像についての第2変換処理部による演算結果に基づく第2データとを合成する位相限定合成処理を行う。第1逆変換処理部は、第1位相限定合成部による演算結果に対しIDFTを施す。回転移動量算出部は、第1逆変換処理部による演算結果に基づいて回転移動量を算出する。実施形態における位相限定合成処理は、上記の各種変換を含む。
このような構成によれば、予め求められた第1データと、公知の変換処理により算出された第2データとを用いて位相限定合成処理を行って回転移動量を算出するようにしたので、処理負荷の軽減と処理時間との短縮化とを図り、高精度なトラッキングの実現に寄与することができる。
実施形態に係る眼科装置では、回転移動量算出部が、第1画像について、第2画像と同様の変換処理を行って第1データを生成するようにしてもよい。この場合、第1変換処理部は、第1画像に対しDFTを施す。極座標変換部は、第1画像についての第1変換処理部による演算結果に対し極座標変換を施す。第2変換処理部は、第1画像についての極座標変換部による演算結果に対しDFTを施すことにより、第1データを生成する。
このような眼科装置によれば、第2画像と同様に、位相限定合成処理に供される第1画像についての第1データを生成するようにしたので、所望の動画像について正確に回転移動量を算出してトラッキングに適用することができる。
実施形態に係る眼科装置では、平行移動量算出部が、第3変換処理部(たとえば第3変換処理部311)と、第2位相限定合成部(たとえば第2位相限定合成部312)と、第2逆変換処理部(たとえば第2逆変換処理部313)とを有していてもよい。第3変換処理部は、位置合わせ部による位置合わせがなされた第2画像に対しDFTを施す。第2位相限定合成部は、第1画像について予め求められた第3データと、第2画像についての第3変換処理部による演算結果に基づく第4データとを合成する位相限定合成処理を行う。第2逆変換処理部は、第2位相限定合成部による演算結果に対してIDFTを施す。平行移動量算出部は、第2逆変換処理部による演算結果に基づいて平行移動量を算出する。
このような構成によれば、予め求められた第3データと、公知の変換処理により算出された第4データとを用いて位相限定合成処理を行って平行移動量を算出するようにしたので、処理負荷の軽減と処理時間との短縮化とを図り、高精度なトラッキングの実現に寄与することができる。
実施形態に係る眼科装置では、平行移動量算出部が、位置合わせ部による位置合わせが行われた第1画像について、第2画像と同様の変換処理を行って第3データを生成するようにしてもよい。この場合、第3変換処理部は、位置合わせ部による位置合わせがなされた第1画像に対しDFTを施すことにより、第3データを生成する。
このような眼科装置によれば、第2画像と同様に、位相限定合成処理に供される第1画像についての第3データを生成するようにしたので、所望の動画像について正確に平行移動量を算出してトラッキングに適用することができる。
〈第2の実施形態〉
この実施形態では、並列処理によりサブピクセルレベルでの位置ずれ量の算出が高速化された眼科装置について説明する。
[構成]
この実施形態に係る眼科装置は、制御部210及び画像処理部230を除き、第1の実施形態と同様の構成を有する(図1、図2を参照)。この実施形態では、制御部210及び画像処理部230の機能が、たとえば演算処理ユニット400によって実現される。
演算処理ユニット400の構成について図6を参照しつつ説明する。
(演算処理ユニット)
演算処理ユニット400は、中央演算処理装置(Central Processing Unit:以下、CPU)401と、第1メモリ402と、グラフィカルプロセッシングユニット(Graphical Processing Unit:以下、GPU)410とを備えている。
CPU401は、第1メモリ402に記憶されたプログラムを読み込んで、読み込まれたプログラムに対応した処理を実行し、たとえば、制御部210(主制御部211)の機能を実現する。また、CPU401は、カーネル関数を起動することによりGPU410を制御する。第1メモリ402は、記憶部212の機能を実現する。また、第1メモリ402は、CPU401において実行されるプログラムや処理結果の記憶領域や、作業領域として用いられたりする。
GPU410は、並列処理制御部411と、複数の演算処理部4121〜412Q(Qは2以上の自然数)と、第2メモリ413とを備えている。並列処理制御部411は、演算処理部4121〜412Qにより実行される演算の並列処理を制御する。演算内容や並列処理の態様は、CPU401により指定される。並列処理の態様としては、たとえばスレッドの数やブロックの数などがある。演算処理部4121〜412Qのそれぞれは、命令ユニット、複数の演算ユニット、レジスタを有している。演算処理部4121〜412Qは、CPU401により指定された同一処理を並列に同時実行可能に構成される。並列処理制御部411は、CPU401により指定された処理を並列に実行するように演算処理部4121〜412Qを制御し、Q以上のスレッド数の処理については、複数の演算処理部4121〜412Qを繰り返し用いるように制御する。第2メモリ413は、演算処理部4121〜412Qにより共有される共有メモリとして機能する。また、第2メモリ413は、各演算処理部の処理結果の保存領域や、作業領域として用いられたりする。
GPU410は、画像処理部230の回転移動量算出部231や平行移動量算出部233の演算処理を行う。CPU401は、GPU410により行われる演算処理以外の処理を行う。
CPU401は、第1メモリ402に記憶されたプログラムに従って処理を実行することで、第1メモリ402からGPU410に対してデータ転送を行うとともに、GPU410において実行されるカーネル関数を起動する。そして、GPU410は、CPU401により用意された第2メモリ413のデータに対し、CPU401により指定された処理を行う。GPU410の処理結果は、第2メモリ413に保存される。CPU401は、GPU410による処理結果を第2メモリ413から第1メモリ402に戻すようにデータ転送を制御することにより、GPU410により高速に求められた処理結果を取得することができる。
[動作]
この実施形態に係る眼科装置の動作について説明する。この実施形態に係る眼科装置の動作は、回転移動量及び平行移動量の算出処理の詳細を除いて、第1の実施形態と同様である。以下では、この実施形態に係る演算処理ユニット400を用いた回転移動量及び平行移動量の算出処理について具体的に説明する。
図7は、この実施形態に係る眼科装置における回転移動量及び平行移動量の具体的な算出処理の一例を表す。この動作例は、ユーザにより指示されたトラッキングが開始されることにより実行される処理である。
(S11:初期設定)
まず、CPU401は、GPU410を制御するための定数やライブラリの設定、処理を行うための記憶領域の確保、第1メモリ402及び第2メモリ413の確保、GPU410のスレッドの設定(たとえば32×32×1)やブロックの設定(たとえば11×11×1)を行う。複数の演算処理部4121〜412Qのそれぞれは1スレッドの処理を行う。CPU401は、GPU410に対し、各スレッドが1ピクセル分の処理(たとえば式(1)〜式(7)の各式の演算)を行うように指定する。
(S12:ベース画像処理)
ユーザによりトラッキングの開始が指示されると、CPU401は、ベース画像に対し位相限定相関処理を施すためのベース画像処理を行う。CPU401は、ベース画像を第1メモリ402から第2メモリ413に転送する制御を行うとともに、ベース画像に対する位相限定相関処理においてGPU410に実行させる処理内容を指定し、当該処理の実行を指示する。ベース画像処理の詳細については、後述する。
(S13:ターゲット画像処理)
CPU401は、逐次に入力されるターゲット画像に対し位相限定相関処理を施すためのターゲット画像処理を行う。CPU401は、ターゲット画像に対する位相限定相関処理においてGPU410に実行させる処理の内容を指定し、当該処理の実行を指示するとともに、処理結果を第2メモリ413から第1メモリ402に転送する制御を行う。ターゲット画像処理の詳細については、後述する。
(S14:撮影終了?)
撮影対象の被検眼が変わると、ステップS12において行われたベース画像処理の結果が不要になる。そこで、CPU401は、トラッキングの対象である被検眼Eの撮影が終了したか否かを判別する。CPU401は、たとえば操作部240Bを介したユーザの操作内容に基づき、被検眼Eの撮影が終了したか否かを判別することができる。被検眼Eの撮影が終了しないと判別されたとき(S14:NO)、CPU401は、ステップS13へ移行する。一方、被検眼Eの撮影が終了したと判別されたとき(S14:YES)、CPU401は、次のフレームのターゲット画像に対する処理を行うためにステップS15へ移行する。
(S15:次の撮影?)
続いて、別の被検眼に対して撮影を行う場合には、ベース画像処理を再実行する必要がある。そこで、CPU401は、次の被検眼の撮影の有無を判別する。次の撮影を行わないと判別されたとき(S15:NO)、CPU401は、一連の処理を終了する(エンド)。一方、次の撮影を行うと判別されたとき(S15:YES)、CPU401は、ステップS12へ移行する。
(ベース画像処理)
次に、図8〜図13Bを参照しつつステップS12のベース画像処理の詳細について説明する。図8は、処理フローを表し、図9〜図13Bは、図8の処理フローの各ステップの説明図を表す。
図8は、この実施形態に係るベース画像処理のフローの一例を表す。以下では、ベース画像のサイズが640(x方向)×480(y方向)であり、全ピクセルが独立で並列処理が可能であるものとする。また、GPU410について、同一処理の並列実行が可能な単位である1ワープが32スレッドであるものとする。
(S21:ベース画像をロード)
まず、CPU401は、観察画像のうちトラッキングの開始が指示された最初のフレームの画像を、第1メモリ402においてベース画像用に確保された記憶領域にロードする。第1メモリ402がフレームメモリとして用いられている場合、CPU401は、たとえばベース画像用に確保された記憶領域に当該最初のフレームの画像を転送する。
(S22:第2メモリへ転送)
続いて、CPU401は、第1メモリ402にロードされたベース画像(図9のIMG1を参照)を、その中央部を含む352×352のサイズの領域にクリッピングする(図9のIMG10を参照)。「352」は、1ワープのスレッド数(この実施形態では「32」)の整数倍である。なお、「352」は、1ワープのスレッド数の任意の整数倍とすることが可能である。クリッピングされた画像は、第1メモリ402に保存される。以下では、クリッピングされた画像をベース画像と呼ぶことがある。そして、CPU401は、第1メモリ402に記憶されたクリッピング後の画像(ベース画像)を第2メモリ413に転送する。これにより、GPU410は、指定された処理をベース画像に対して施すことができるようになる。
(S23:アポダイゼーション処理)
GPU410は、CPU401により起動されたカーネル関数により、第2メモリ413に記憶されたベース画像に対しアポダイゼーション処理を施す。アポダイゼーション処理は、アポダイゼーション関数を掛け合わせることにより、メインローブの振幅の低下をある程度抑えつつサイドローブの振幅を低下させて、ダイナミックレンジを高める処理である。アポダイゼーション関数としては、公知のハニング窓やガウス窓や矩形窓などの窓関数がある。図9に示すベース画像IMG10に対するアポダイゼーション処理の処理結果のうち実数成分を図10Aに表し、虚数成分を「128」によりバイアスした状態で図10Bに表す。なお、第1の実施形態において、アポダイゼーション処理は、たとえば、第1変換処理部301、又は回転移動量算出部231における図示しないアポダイゼーション処理部により行われる。
(S24:2次元DFT)
GPU410は、カーネル関数により、ベース画像に対するアポダイゼーション処理の結果(図10A、図10B)に対し2次元DFTを施す。この2次元DFTは、第1の実施形態においてベース画像について第1変換処理部301により行われる処理と同様である。
(S25:振幅スペクトルを対数変換)
次に、GPU410は、カーネル関数により、2次元DFTの処理結果に対し対数変換を施す(図11を参照)。具体的には、対数変換は、2次元DFTの処理結果の実数成分をRe、虚数成分をIm、対数変換結果をAmとすると、式(8)のように表される。これにより、自然画像において空間周波数の低周波数領域に集中する傾向がある振幅スペクトルを圧縮させる。この対数変換は、第1の実施形態においてベース画像について対数変換部302により行われる処理と同様である。
(S26:Log−Polar変換)
次に、GPU410は、カーネル関数により、対数変換の処理結果に対しLog−Polar変換を施す。これにより、動径方向がx方向、偏角方向がy方向に変換される。Log−Polar変換の実数成分を図12Aに表し、虚数成分を「128」によりバイアスした状態で図12Bに表す。このLog−Polar変換は、第1の実施形態においてベース画像について極座標変換部303により行われる処理と同様である。
(S27:2次元DFT)
次に、GPU410は、カーネル関数により、Log−Polar変換の処理結果に対し2次元DFTを施す。2次元DFTの処理結果の実数成分を図13Aに表し、虚数成分を図13Bに表す。この2次元DFTは、第1の実施形態においてベース画像について第2変換処理部304により行われる処理と同様である。
(S28:POCデータをストア)
次に、GPU410は、2次元DFTの処理結果に基づいて振幅成分で正規化し、2次元DFTの処理結果に基づくベースPOCデータとして第2メモリ413に保存する。ここで第2メモリ413に保存されたベースPOCデータは、第1データとして回転移動量を算出するための位相限定相関関数の相関値の算出に供される。
(S29:アポダイゼーション処理)
続いて、GPU410は、ベース画像に対し、平行移動を算出するための位相限定相関関数の相関値の算出に供されるベースPOCデータを生成する。そこで、GPU410は、CPU401により起動されたカーネル関数により、第2メモリ413に記憶されたベース画像に対しアポダイゼーション処理を施す。このアポダイゼーション処理は、ステップS23と同様の処理である。ステップS23の処理結果が第2メモリ413に保存された場合、ステップS29の処理を不要にすることができる。
(S30:2次元DFT)
GPU410は、カーネル関数により、ベース画像に対するアポダイゼーション処理の結果の実数成分に対し2次元DFTを施す。この2次元DFTは、第1の実施形態においてベース画像について第3変換処理部311により行われる処理と同様である。
(S31:POCデータをストア)
次に、GPU410は、2次元DFTの処理結果に基づいて振幅成分で正規化し、2次元DFTの処理結果に基づくベースPOCデータとして第2メモリ413に保存する。ここで第2メモリ413に保存されたベースPOCデータは、第3データとして平行移動量を算出するための位相限定相関関数の相関値の算出に供される。以上で、ベース画像処理の一連の処理は終了する(エンド)。
(ターゲット画像処理)
次に、図14〜図21を参照しつつステップS13のターゲット画像処理の詳細について説明する。図14〜図16は、処理フローを表し、図17〜図21は、図14〜図16の処理フローの各ステップの説明図を表す。
図14〜図16は、この実施形態に係るターゲット画像処理のフローの一例を表す。ターゲット画像処理は、ターゲット画像についてターゲットPOCデータを生成する処理と、回転移動量の算出処理と、位置合わせ処理と、平行移動量の算出処理とを含む。
(S41:ターゲット画像をロード)
まず、CPU401は、逐次に入力される各フレームの画像を、第1メモリ402においてターゲット画像用に確保された記憶領域にロードする。第1メモリ402がフレームメモリとして用いられている場合、CPU401は、たとえばターゲット画像用に確保された記憶領域に逐次に入力される各フレームの画像を転送する。
(S42:第2メモリへ転送)
続いて、CPU401は、第1メモリ402に記憶されたターゲット画像を、その中央部を含む416×416のサイズの領域にクリッピングする。「416」は、1ワープのスレッド数の整数倍であり、「416」は回転を考慮したサイズである。すなわち、ターゲット画像を回転方向に回転させた後でもベース画像と同じ画像サイズを確保するために設定されたサイズである。実際の処理は、ベース画像処理と同様に352×352のサイズで行われる。クリッピングするサイズは、「352」より大きく、スレッド数の整数倍であればよい。クリッピングされた画像は、第1メモリ402に保存される。以下では、クリッピングされた画像をターゲット画像と呼ぶことがある。そして、CPU401は、第1メモリ402に記憶されたクリッピング後の画像(ターゲット画像)を第2メモリ413に転送する。これにより、GPU410は、指定された処理をターゲット画像に対して施すことができるようになる。
(S43:アポダイゼーション処理)
GPU410は、CPU401により起動されたカーネル関数により、第2メモリ413に記憶されたターゲット画像に対しアポダイゼーション処理を施す。この処理は、ステップS23と同様であり、第1の実施形態において第1変換処理部301、又は回転移動量算出部231における図示しないアポダイゼーション処理部により行われる。
(S44:2次元DFT)
GPU410は、カーネル関数により、ターゲット画像に対するアポダイゼーション処理の結果に対し2次元DFTを施す。この2次元DFTは、第1の実施形態においてターゲット画像について第1変換処理部301により行われる処理と同様である。
(S45:振幅スペクトルを対数変換)
次に、GPU410は、カーネル関数により、2次元DFTの処理結果に対し対数変換を施す。この対数変換は、ステップS25と同様であり、第1の実施形態においてターゲット画像について対数変換部302により行われる処理と同様である。
(S46:Log−Polar変換)
次に、GPU410は、カーネル関数により、対数変換の処理結果に対しLog−Polar変換を施す。このLog−Polar変換は、ステップS26と同様であり、第1の実施形態においてターゲット画像について極座標変換部303により行われる処理と同様である。
(S47:2次元DFT)
次に、GPU410は、カーネル関数により、Log−Polar変換の処理結果に対し2次元DFTを施す。この2次元DFTは、第1の実施形態においてターゲット画像について第2変換処理部304により行われる処理と同様である。
(S48:位相限定合成処理)
次に、GPU410は、カーネル関数により、ステップS28において第2メモリ413に保存されたベースPOCデータと、ステップS47における2次元DFTの処理結果を振幅成分で正規化したターゲットPOCデータとを用いて、式(3)に示す式に従って位相限定合成処理を行う。この処理は、第1の実施形態において第1位相限定合成部305により行われる処理と同様である。
(S49:2次元IDFT)
次に、GPU410は、カーネル関数により、式(4)に示す式に従って位相限定合成処理の処理結果に対し2次元IDFTを施す。2次元IDFTの処理結果の実数成分を図17に表す。この処理は、第1の実施形態において第1逆変換処理部306により行われる処理と同様である。
(S50:ピーク位置を特定)
図17に示すステップS49の処理結果からピーク位置を特定することにより、相関値の高い動径(x方向の座標)と偏角(y方向の座標)とがピクセルレベルで特定される。そこで、GPU410は、カーネル関数により、ステップS49の処理結果のピーク値を求め、当該ピーク値に対応したピーク位置のアドレスを取得し、第2メモリ413に保存する。
(S51:第1メモリへ転送)
次に、CPU401は、第2メモリ413に保存されたピーク位置のアドレスを第1メモリ402に転送する。これにより、CPU401は、第1メモリ402に記憶されたピーク位置のアドレスに基づいて、サブピクセルレベルで回転移動量(Δθ)の算出を行うことができるようになる。
(S52:回転角≦TH1?)
CPU401は、第1メモリ402に記憶されたピーク位置のアドレスに基づき、偏角に対応した回転角が第1の閾値TH1以下であるか否かを判別する。当該回転角が第1の閾値TH1以下ではないと判別されたとき(S52:NO)、CPU401は、エラーと判断し、一連の処理を終了する(エンド)。一方、当該回転角が第1の閾値TH1以下であると判別されたとき(S52:YES)、CPU401は、ステップS53に移行する。
(S53:サブピクセルレベルでピーク位置を特定)
当該回転角が第1の閾値TH1以下であると判別されると、GPU410は、カーネル関数により、式(7)に従ってサブピクセルレベルで位相限定相関関数の相関値の算出を行う。具体的には、GPU410は、式(7)の位相限定相関関数において、ピーク位置に対応した画素を中心にnj(jは1又は2)を+3〜−3の範囲で、δjを+1〜−1の範囲でそれぞれ0.05ステップずつ変化させた複数の相関値を算出する。すなわち、ピーク位置に対応した画素を中心にn1方向(ここではx方向、動径方向)及びn2方向(ここではy方向、偏角方向)に3画素分の範囲で、サブピクセルレベルで複数の相関値を算出する。
このとき、式(7)に示す位相限定相関関数において、n1=δ1=0又はn2=δ2=0のとき、分母が零になる。分母が零になると、GPU410では、ゼロ除算の例外処理が発生し、処理速度を低下させる原因となる。そこで、複数の相関値の算出に先立って、制御構文における分岐命令によりn1=δ1=0又はn2=δ2=0のチェックを行うことが考えられる。ところが、演算処理部4121〜412Qが、分岐命令が真のときの処理を実行するスレッドと、この分岐命令が偽のときの処理を実行するスレッドとを含む場合、Branch Divergenceが発生し、処理速度を低下させる。
そこで、この実施形態では、式(7)の分母が非零の値となるようにn1、n2、δ1、及びδ2を変化させて、式(7)に示す位相限定相関関数の複数の相関値を求める。具体的には、式(7)について、n1及びn2を+3〜−3の範囲においてピクセルレベルで変化させながら、δ1及びδ2については図18に示すように変化させる。なお、図18におけるy方向は、図17のy方向に合わせて図示している。すなわち、ステップS49における2次元逆DFTの処理結果のy方向(偏角)は、+180度〜−180度までの範囲を352等分されるため、Δt1=2/352とし、δ1を次のようにΔt1単位で変化させる。
δ1=(−1+Δt1/2) =−0.997159
δ1=(−1+3Δt1/2)=−0.991477
・・・
δ1=−Δt1/2 =−0.002841
δ1=Δt1/2 =+0.002841
・・・
δ1=(1−3Δt1/2) =+0.991477
δ1=(1−Δt1/2) =+0.997159
δ2についても、δ1と同様である。
こうすることで、式(7)の分母が非零の値となるため、分岐命令によりn1=δ1=0又はn2=δ2=0のチェックを行う必要がなくなる。従って、カーネル関数から分岐命令を削除することができる上に、Branch Divergenceに起因した処理速度の低下を抑え、演算処理部4121〜412Qによる並列処理を高速化することが可能となる。
以上のようにn1、n2、δ1、及びδ2を変化させて、式(7)に示す位相限定相関関数の複数の相関値を求め、ピーク位置を特定することにより相関値の高い偏角(y方向の座標)が特定される。GPU410は、カーネル関数により、式(7)に示す位相限定相関関数の相関値のピーク値を求め、当該ピーク値に対応したアドレスを取得し、第2メモリ413に保存する。
(S54:Δθを算出)
次に、CPU401は、サブピクセルレベルで特定されたピーク位置に対応した回転移動量Δθを算出する。
図19はステップS54の説明図を表す。図19においてステップS49における2次元逆DFTの処理結果R1と、ステップS53で求められたピーク位置の近傍の位相限定相関関数の相関値を求めた処理結果R2と、回転移動量Δθとの関係を表す。処理結果R1からピクセルレベルでピーク位置P1が特定される。このピーク位置P1の近傍で、サブピクセルレベルで求められた位相限定相関関数のピーク位置P2が特定される。ピーク位置P1における回転移動量Δθ1、ピーク位置P2の位置ずれ量に対応した回転移動量Δθsがわかるため、回転移動量Δθは、次のように求められる。
Δθ=Δθ1+Δθs
このように、GPU410では、演算処理部4121〜412Qは、ベース画像とターゲット画像とに基づく第2位相限定相関関数の第2パラメータ(n1、n2、δ1、及びδ2)を互いに異ならせて第2位相限定相関関数の第2相関値を並列に算出する。そして、CPU401は、演算処理部4121〜412Qにより算出された複数の第2相関値の中から選択された第2相関値に対応した位置ずれ量を回転移動量として求めることができる。
(S55:位置合わせ)
回転移動量Δθが算出されると、GPU410は、CPU401により起動されたカーネル関数により、第2メモリ413に記憶された416×416サイズのターゲット画像を−Δθだけ回転させる。
(S56:アポダイゼーション処理)
続いて、GPU410は、平行移動量の算出を行う。すなわち、GPU410は、カーネル関数により、ステップS55において位置合わせが行われたターゲット画像に対しアポダイゼーション処理を施す。この処理は、第1の実施形態において第3変換処理部311、又は平行移動量算出部233における図示しないアポダイゼーション処理部により行われる。
(S57:2次元DFT)
GPU410は、カーネル関数により、ターゲット画像に対するアポダイゼーション処理の結果に対し2次元DFTを施す。この2次元DFTは、第1の実施形態においてターゲット画像について第3変換処理部311により行われる処理と同様である。
(S58:位相限定合成処理)
次に、GPU410は、カーネル関数により、ステップS31において第2メモリ413に保存されたベースPOCデータと、ステップS57における2次元DFTの処理結果を振幅成分で正規化したターゲットPOCデータとを用いて、式(3)に示す式に従って位相限定合成処理を行う。この処理は、第1の実施形態において第2位相限定合成部312により行われる処理と同様である。
(S59:2次元IDFT)
次に、GPU410は、カーネル関数により、式(4)に示す式に従って位相限定合成処理の処理結果に対し2次元IDFTを施す。2次元IDFTの処理結果の実数成分を図20に表す。この処理は、第1の実施形態において第2逆変換処理部313により行われる処理と同様である。
(S60:ピーク位置を特定)
図20に示すステップS59の処理結果からピーク位置を特定することにより、相関値のx方向の座標とy方向の座標とが特定される。GPU410は、カーネル関数により、ステップS59の処理結果のピーク値を求め、当該ピーク値に対応したピーク位置のアドレスを取得し、第2メモリ413に保存する。
(S61:第1メモリへ転送)
次に、CPU401は、第2メモリ413に保存されたピーク位置のアドレスを第1メモリ402に転送する制御を行う。これにより、CPU401は、第1メモリ402に記憶されたピーク位置のアドレスに基づいて、サブピクセルレベルで平行移動量(Δx、Δy)の算出を行うことができるようになる。
(S62:移動量≦TH2?)
CPU401は、第1メモリ402に記憶されたピーク位置のアドレスに基づき、たとえばx方向の移動量及びy方向の移動量が第2の閾値TH2以下であるか否かを判別する。x方向の移動量及びy方向の移動量が第2の閾値TH2以下ではないと判別されたとき(S62:NO)、CPU401は、エラーと判断し、一連の処理を終了する(エンド)。一方、x方向の移動量及びy方向の移動量が第2の閾値TH2以下であると判別されたとき(S62:YES)、CPU401は、ステップS63に移行する。
(S63:サブピクセルレベルでピーク位置を特定)
x方向の移動量及びy方向の移動量が第2の閾値TH2以下であると判別されると、GPU410は、カーネル関数により、式(7)に従ってサブピクセルレベルで位相限定相関関数の相関値の算出を行う。具体的には、GPU410は、式(7)の位相限定相関関数において、ピーク位置に対応した画素を中心にnj(jは1又は2)を+3〜−3の範囲で、δjを+1〜−1の範囲でそれぞれ0.05ステップずつ変化させた複数の相関値を算出する。すなわち、ピーク位置に対応した画素を中心にn1方向(ここではx方向)及びn2(ここではy方向)方向に3画素分の範囲で、サブピクセルレベルで複数の相関値を算出する。
このとき、ステップS53と同様に、式(7)の分母が非零の値となるようにn1、n2、δ1、及びδ2を変化させて、式(7)に示す位相限定相関関数の複数の相関値を求める。具体的には、式(7)について、n1及びn2を+3〜−3の範囲においてピクセルレベルで変化させながら、δ1及びδ2についてもステップS53と同様に変化させる。
こうすることで、式(7)の分母が非零の値となるため、分岐命令によりn1=δ1=0又はn2=δ2=0のチェックを行う必要がなくなる。従って、カーネル関数から分岐命令を削除することができる上に、Branch Divergenceに起因した処理速度の低下を抑え、演算処理部4121〜412Qによる並列処理を高速化することが可能となる。
以上のようにn1、n2、δ1、及びδ2を変化させて、式(7)に示す位相限定相関関数の複数の相関値を求め、ピーク位置を特定することにより相関値の高い移動量(x方向の座標、及びy方向の座標)が特定される。GPU410は、カーネル関数により、式(7)に示す位相限定相関関数の相関値のピーク値を求め、当該ピーク値に対応したアドレスを取得し、第2メモリ413に保存する。
(S64:Δx、Δyを算出)
次に、CPU401は、サブピクセルレベルで特定されたピーク位置に対応した平行移動量Δx、Δyを算出する。
図21はステップS64の説明図を表す。図21においてステップS59における2次元逆DFTの処理結果R3と、ステップS63で求められたピーク位置の近傍の位相限定相関関数の相関値を求めた処理結果R4と、平行移動量Δx、Δyとの関係を表す。処理結果R3からピクセルレベルでピーク位置P3が特定される。このピーク位置P3の近傍で、サブピクセルレベルで求められた位相限定相関関数のピーク位置P4が特定される。なおピーク位置P3における平行移動量Δx1、Δy1、ピーク位置P4の位置ずれ量に対応した平行移動量Δxs、Δysがわかるため、平行移動量Δx、Δyは、次のように求められる。以上で、ターゲット画像処理の一連の処理は終了する(エンド)。
Δx=Δx1+Δxs
Δy=Δy1+Δys
このように、GPU410において、演算処理部4121〜412Qは、ベース画像とターゲット画像とに基づく第1位相限定相関関数の第1パラメータ(n1、n2、δ1、及びδ2)を互いに異ならせて第1位相限定相関関数の第1相関値を並列に算出する。そして、CPU401は、演算処理部4121〜412Qにより算出された複数の第1相関値の中から選択された第1相関値に対応した位置ずれ量を平行移動量として求めることができる。
以上のように算出された回転移動量Δθ及び平行移動量Δx、Δyのうち少なくとも平行移動量Δx、Δyは、制御部210に出力される。制御部210(主制御部211)は、算出された平行移動量Δx、Δyに基づいて、光学系駆動部90を制御することにより、眼底カメラユニット2に設けられた光学系を3次元的に移動させることでトラッキングを行う。なお、制御部210(主制御部211)は、画像処理部230において算出された回転移動量Δθに基づいて光学系駆動部90を制御することにより、眼底カメラユニット2に設けられた光学系を3次元的に移動(回転)させることでトラッキングを行うことも可能である。
以上説明したように、この実施形態では、サブピクセルレベルで式(7)に示す位相限定相関関数の相関値を求める際に、ピーク位置の近傍をΔt1/2だけシフトさせて探索するようにしている。こうすることで、演算処理部4121〜412Qにおいてゼロ除算の例外が発生することがなく、また分母が零になる状態をチェックする分岐命令を不要にすることができる。その結果、Branch Divergenceに起因した処理速度の低下を抑え、演算処理部4121〜412Qによる並列処理を高速化(たとえば所定の条件下で処理時間は3/4倍)することが可能となる。
なお、ベース画像及びターゲット画像の1ピクセルのサイズが32マイクロメートル×32マイクロメートルのとき、Δt1/2のずれは、平行方向で約0.1(=32×0.002841)マイクロメートル程度に相当する。また、Δt1/2のずれは、回転方向で約0.003(=360/352×0.002841)度程度に相当する。平行方向及び回転方向のいずれについても、Δt1/2のずれは、実用上問題ない。
[効果]
この実施形態に係る眼科装置は、第1の実施形態の効果に加えて、次のような効果を有する。
実施形態に係る眼科装置は、平行移動量を算出するために複数の演算処理部(たとえば演算処理部4121〜412Q)を設けてもよい。複数の演算処理部は、第1パラメータを互いに異ならせて第1画像と第2画像とに基づく第1位相限定相関関数の複数の第1相関値を並列に算出する。この場合、平行移動量算出部は、複数の演算処理部により算出された複数の第1相関値の中から選択された第1相関値に対応した位置ずれ量を平行移動量として求める。
このような眼科装置によれば、複数の演算処理部による並列処理により、第1パラメータを互いに異ならせて第1位相限定相関関数の複数の第1相関値を算出することができる。そして、これらの中から選択された第1相関値に基づいて平行移動量が求められる。これにより、動画像に対するトラッキングの制御に必要なサブピクセルレベルの平行移動量を高速に求めることができ、高精度なトラッキングが可能となる。
実施形態に係る眼科装置では、第1パラメータとして、サブピクセルレベルの位置ずれ量を含み、複数の演算処理部は、第1位相限定相関関数の分母が非零の値となるように位置ずれ量を変化させることにより、複数の第1相関値を算出するようにしてもよい。
このような構成により、第1位相限定相関関数の分母が零か否かをチェックするための制御構文において分岐命令を削除することができるため、Branch Divergenceに起因した処理速度の低下を抑え、演算処理部による並列処理を高速化することが可能となる。
実施形態に係る眼科装置では、複数の演算処理部は、第1範囲内(たとえば+1〜−1)において、ピクセルレベルの第1画素位置からサブピクセルレベルの第1位置ずれ量(たとえばδ1、δ2)をシフトさせた第1開始位置(たとえば−0.997159)を始点に、第1ステップ(たとえばΔt1)毎に位置ずれ量を変化させる(たとえば−0.997159、−0.991477、・・・、−0.002841、+0.002841、・・・+0.991477、+0.997159)ことにより、複数の第1相関値を算出するようにしてもよい。
実施形態に係る眼科装置では、第1ステップ(たとえばΔt1)は、第1位置ずれ量(たとえばΔt1/2)の2倍であってもよい。
このような構成によれば、第1位相限定相関関数の分母を非零の値に確実に設定することができるようになる。
実施形態に係る眼科装置は、複数の演算処理部(たとえば演算処理部4121〜412Q)により、第2パラメータを互いに異ならせて第1画像と第2画像とに基づく第2位相限定相関関数の複数の第2相関値を並列に算出するようにしてもよい。この場合、回転移動量算出部は、複数の演算処理部により算出された複数の第2相関値の中から選択された第2相関値に対応した位置ずれ量を回転移動量として求める。
このような眼科装置によれば、複数の演算処理部による並列処理により、第2パラメータを互いに異ならせて第2位相限定相関関数の複数の第2相関値を算出することができる。そして、これらの中から選択された第2相関値に基づいて回転移動量が求められる。これにより、動画像に対するトラッキングの制御に必要なサブピクセルレベルの回転移動量を高速に求めることができ、高精度なトラッキングが可能となる。
実施形態に係る眼科装置では、第2パラメータとして、サブピクセルレベルの位置ずれ量を含み、複数の演算処理部は、第2位相限定相関関数の分母が非零の値となるように位置ずれ量を変化させることにより、複数の第2相関値を算出するようにしてもよい。
このような構成により、第2位相限定相関関数の分母が零か否かをチェックするための制御構文において分岐命令を削除することができるため、Branch Divergenceに起因した処理速度の低下を抑え、演算処理部による並列処理を高速化することが可能となる。
実施形態に係る眼科装置では、複数の演算処理部は、第2範囲内(たとえば+1〜−1)において、ピクセルレベルの第2画素位置からサブピクセルレベルの第2位置ずれ量(たとえばδ1、δ2)をシフトさせた第2開始位置(たとえば−0.997159)を始点に、第2ステップ(たとえばΔt1)毎に位置ずれ量を変化させることにより、複数の第2相関値を算出するようにしてもよい。
実施形態に係る眼科装置では、第2ステップ(たとえばΔt1)は、第2位置ずれ量(たとえばΔt1/2)の2倍であってもよい。
このような構成によれば、第2位相限定相関関数の分母を非零の値に確実に設定することができるようになる。
[変形例]
以上に説明した構成は、この発明を好適に実施するための一例に過ぎない。よって、この発明の要旨の範囲内における任意の変形(省略、置換、付加等)を適宜に施すことが可能である。
上記の実施形態において、眼底を近赤外領域の光で照明する場合について特に詳しく説明したが、可視領域(たとえば緑)の光で眼底を照明する構成を適用することも可能である。
上記の実施形態において、ベース画像及びターゲット画像が2次元画像である場合について特に詳しく説明したが、ベース画像及びターゲット画像がN(Nは自然数)次元画像である場合にも適用することができる。この場合、たとえば位相限定合成において、2次元DFTに代えてN次元DFTを行い、2次元IDFTに代えてN次元IDFTを行う。
上記の実施形態において、サブピクセルレベルで回転移動量を算出し、算出されたサブピクセルレベルの回転移動量に基づいて位置合わせを行う場合について特に詳しく説明したが、ピクセルレベルの回転移動量を算出するようにしてもよい。この場合、算出されたピクセルレベルの回転移動量に基づいて位置合わせが行われ、位置合わせがなされたベース画像とターゲット画像との間の平行移動量をサブピクセルレベルで算出する。なお、位置合わせ部232による位置合わせの精度が低下するものの、回転移動量の算出に伴う処理負荷を軽減することができる。
上記の実施形態において、ベース画像は、トラッキングが指示された後の最初のフレームの画像である場合について説明したが、トラッキング指示された後の数フレーム以降の画像であってもよい。また、上記の実施形態において、動画像を構成するベース画像とターゲット画像とに対し位相限定相関処理を行う場合について特に詳しく説明したが、ベース画像及びターゲット画像が静止画像であってもよい。
上記の実施形態においては、光路長変更部41の位置を変更することにより、信号光LSの光路と参照光LRの光路との光路長差を変更しているが、この光路長差を変更する手法はこれに限定されるものではない。たとえば、参照光の光路に反射ミラー(参照ミラー)を配置し、この参照ミラーを参照光の進行方向に移動させて参照光の光路長を変更することによって、当該光路長差を変更することが可能である。また、被検眼Eに対して眼底カメラユニット2やOCTユニット100を移動させて信号光LSの光路長を変更することにより当該光路長差を変更するようにしてもよい。また、特に被測定物体が生体部位でない場合などには、被測定物体を深度方向(z方向)に移動させることにより光路長差を変更することも可能である。
上記の実施形態を実現するためのコンピュータプログラムを、コンピュータによって読み取り可能な任意の記録媒体に記憶させることができる。この記録媒体としては、たとえば、半導体メモリ、光ディスク、光磁気ディスク(CD−ROM/DVD−RAM/DVD−ROM/MO等)、磁気記憶媒体(ハードディスク/フロッピー(登録商標)ディスク/ZIP等)などを用いることが可能である。
また、インターネットやLAN等のネットワークを通じてこのプログラムを送受信することも可能である。