以下、本発明の実施例を説明する前に、本発明の一実施形態について概略的に説明する。本実施形態では、従来の閾値処理においてコントラストの低いOCTA画像を生成してしまう上述した各場合に対処した新たな閾値処理を行う。
まず、光ショットノイズに対する閾値処理について説明する。OCTでは、干渉計の測定光路と参照光路とを通った光が干渉した干渉光の光強度を干渉信号として取得する。そのため、光強度を取得する際に避けることのできない光ショットノイズを同時に取得することとなる。OCTでは、干渉信号を取得後、光の周波数軸上で干渉信号をフーリエ変換することで被検体の断層情報を得る。光ショットノイズを含んだ状態で取得される干渉信号に基づいて断層情報が取得されると、断層情報の信号強度に光ショットノイズによる信号強度の揺れが含まれてしまう。
光ショットノイズによる信号強度の揺れは、被検体や測定装置(干渉計)自体が移動していなくても生じる。そのため、光ショットノイズによる信号強度の揺れを含んだデータをOCTA画像の生成に用いると、本来輝度値の変化が生じるべきではない箇所において輝度値の変化に基づく画素値を有するOCTA画像を生成することとなる。このことは、OCTA画像にノイズ情報が含まれることと等価であり、OCTA画像のコントラスト(コントラストノイズレシオ)を低下させることになる。
ここで、光強度をLiとすると、光ショットノイズは信号対ノイズ比(Signal to Noise Ratio:SNR)としてLi/√Liであらわされることが、一般的に知られている。このことから、断層画像における輝度値の変化として、断層画像の輝度値Sに対して√Sの範囲内での輝度値の変化は、光ショットノイズによる輝度値の変化と、本来の被検体の変化による輝度値の変化との判別ができない。
そのため、本実施形態では、断層画像の輝度値Sに対する√S以下の輝度値の変化は、OCTA画像の生成に用いない。つまり、OCTA画像の生成に用いる輝度値の変化について、√Sに基づいて閾値を設定する。なお、√Sは光ショットノイズの標準偏差σであるため、より確実にノイズを除去するために標準偏差σの数倍の範囲の輝度変化を除去することもできる。
次に、閾値にまたがった、測定装置(干渉計)が有する雑音(背景ノイズ)に対する閾値処理について説明する。背景ノイズに関しては、測定装置において、被検体を置かずに測定を行い、被検体からの戻り光がない状態で光信号を検出することにより背景信号を取得することができる。背景信号をフーリエ変換することで、断層画像の次元での背景信号を生成することできる。背景信号はノイズに起因する大きな信号強度の揺れを有しており、背景信号の平均値に対して背景信号の標準偏差σの数倍の大きさの信号まで背景ノイズである可能性がある。そのため、背景信号の標準偏差σの数倍の値を閾値の設定に用いることができる。なお、測定光を検出する光学系において遮光体を挿入し測定光を遮ることで背景信号を取得してもよい。
OCTA画像を生成する際には、2枚の位置合わせを行った断層画像において、同一座標(画素位置)の2つの画素の間での輝度値の変化を算出する。この際、従来の閾値処理手法では、一方の断層画像の輝度値(画素値)が閾値を下回った場合は、該当座標の輝度値の変化はOCTA画像の生成に用いていなかった。
しかしながら、他方の断層画像では該当座標の輝度値が閾値を大きく上回る場合があり、このような画素の輝度値は有意な信号であると考えられる。そのため、もう一方の断層画像において輝度値が閾値を下回ったことは、この有意な信号強度が、被検体の移動によって大きく揺らぎ、測定装置が有する背景信号の強度程度まで大きく低下したことに起因すると考えられる。従って、このような画素の輝度値の変化はOCTA画像の生成に利用されるべきであり、当該画素は被検体の移動を適切に表している画素と判断されるべきである。
そこで本実施形態では、2枚の断層画像を用いて輝度値の変化を算出する際に、一方の断層画像の画素の輝度値が所定の閾値を超えていれば、他方の断層画像の画素の輝度値が閾値を超えていなくても、当該画素での輝度値の変化をOCTA画像の生成に用いる。本実施形態では、このような処理結果をもたらすことができる新たな閾値処理を提案する。
提案する新たな閾値処理は、背景ノイズの分布を考慮して行われる。背景ノイズの分布は、どのような断層画像においても同一の装置・環境で測定している限り、基本的には同一のものである。背景ノイズが正規分布になることを考慮すると、輝度値Iに対する背景ノイズの確率分布は、任意の係数cを用いて次の式のようになる。
ここで、2枚の断層画像における同一座標(画素位置)の画素の輝度値I
1,I
2がノイズである確率分布P(I
1,I
2)は、断層画像のデータが各々独立のデータであるため、以下のように書ける。
そのため、従来から知られる2枚の断層画像それぞれにおける背景ノイズ分布の形状と、2枚の断層画像に関する、輝度値I1,I2を軸とした座標上で原点を中心とした半径(r)方向の背景ノイズ分布の形状とは同一であると考えられる。このことから、背景ノイズを除去するためには、原点を中心とした円弧状に閾値を設けることができる。当該閾値としては、半径rの円弧の内側に上述した背景ノイズの大部分が入るような値となる、輝度値Iの平均値と標準偏差σの数倍との和で表される値を利用する。
本実施形態では、このような閾値処理により、従来の閾値処理によって除去されていた血球の移動により生じた輝度変化の値をOCTA画像の生成に用いることができ、高いコントラストのOCTA画像を生成することができる。
以下、本発明を実施するための例示的な実施例を、図面を参照して詳細に説明する。ただし、以下の実施例で説明する寸法、材料、形状、及び構成要素の相対的な位置等は任意であり、本発明が適用される装置の構成又は様々な条件に応じて変更できる。また、図面において、同一であるか又は機能的に類似している要素を示すために図面間で同じ参照符号を用いる。
(実施例1)
以下、図1乃至6を参照して、本発明の実施例1による光干渉断層撮像装置(OCT装置)及び画像処理方法について説明する。図1は、本実施例によるOCT装置1の概略的な構成を示す。OCT装置1には、撮像光学系100、制御部200(画像処理装置)、及び表示部300が設けられている。
撮像光学系100は、被検体である被検眼に測定光を照射し、被検眼からの戻り光と参照光との干渉光を検出して干渉信号を生成する。制御部200は、撮像光学系100及び表示部300に接続されており、これらを制御する。また、制御部200は、撮像光学系100によって生成された干渉信号を取得し、被検眼の断層画像を生成することができる。表示部300は、制御部200から送られる、各種画像や被検眼の情報などを表示することができる。
ここで、制御部200は、汎用コンピュータを用いて構成してもよいし、撮像光学系100の専用のコンピュータとして構成してもよい。表示部300は、任意のディスプレイを用いて構成することができる。なお、本実施例においては、撮像光学系100、制御部200及び表示部300は別個の構成としているが、これらの全部又は一部は一体的に構成されてもよい。
(撮像光学系の構成)
次に、図2を参照して、本実施例に係る撮像光学系100の構成について説明する。図2は、撮像光学系100の概略的な構成を示す。
撮像光学系100においては、被検眼140に対向して対物レンズ101が設置されている。対物レンズ101の光軸上にはダイクロイックミラー102及びダイクロイックミラー103が設けられている。対物レンズ101からの光路は、ダイクロイックミラー102,103によって、OCT光学系の光路L1、内部固視灯及び眼底観察系用の光路L2、並びに前眼部観察系用の光路L3に、光路を通過する光の波長帯域ごとに分岐される。本実施例では、ダイクロイックミラー102の透過方向にOCT光学系の光路L1並びに内部固視灯及び眼底観察系の光路L2が配置され、反射方向に前眼部観察系の光路L3が配置される。また、ダイクロイックミラー103の透過方向に内部固視灯及び眼底観察系の光路L2が配置され、反射方向にOCT光学系の光路L1が配置される。しかしながら、これらの光路の配置は当該配置に限られず、ダイクロイックミラー102,103の透過方向及び反射方向にそれぞれ逆の配置となるように各光路が配置されてもよい。
光路L2には、レンズ104,105、ダイクロイックミラー134、内部固視灯106、及び眼底観察用のCCD111が設けられている。なお、眼底観察系の光路に配置される構成要素は眼底観察光学系を構成する。レンズ104は合焦レンズであり、光路L2を通過する光の合焦調整のため、制御部200によって制御される不図示のモータにより、図中矢印で示される光軸方向に駆動される。光路L2は、ダイクロイックミラー134によって内部固視灯106への光路と、CCD111への光路とに分岐される。本実施例では、ダイクロイックミラー134の透過方向に内部固視灯106が配置され、反射方向にCCD111が配置される。なお、ダイクロイックミラー134の透過方向にCCD111が配置され、反射方向に内部固視灯106が設けられてもよい。
CCD111は不図示の眼底観察用照明光の波長、具体的には780nm付近に感度を有する。内部固視灯106は可視光を発生して被検者の固視を促すために用いられる。
眼底観察用光源から発せられ被検眼140によって反射された戻り光は、対物レンズ101、及びダイクロイックミラー102,103を透過し、光路L2に入射する。光路L2に入射した戻り光は、レンズ104,105を通った後、ダイクロイックミラー134によって反射され、CCD111へと導かれる。CCD111は、入射した被検眼140からの戻り光を検出し、戻り光に対応する信号を生成する。制御部200は、CCD111によって生成された信号に基づいて被検眼140の眼底Erの正面画像を得ることができる。
内部固視灯106から発せられた光は、ダイクロイックミラー134、レンズ105,104、ダイクロイックミラー103,102、及び対物レンズ101を通り、被検眼140に入射する。内部固視灯106は、被検眼140上の任意の位置に任意の形状の光を固視標として提供することができ、被検者の固視を促すことができる。
なお、眼底観察光学系の構成は上記構成に限られず、例えば、照明光を被検眼に対して走査するSLO(Scanning Laser Ophothalmoscope:走査型検眼鏡)の構成を有してもよい。この場合には、SLO光学系の走査手段の動きに合わせて内部固視灯106を点滅させることによって、被検眼140上の任意の位置に任意の形状の光を固視標として提供することができ、被検者の固視を促すことができる。
次に、前眼部観察系の光路L3について説明する。前眼部観察系の光路L3には、レンズ107,109、スプリットプリズム108、及び赤外光を検知する前眼部観察用のCCD110が設けられている。なお、前眼部観察系の光路L3に配置されるこれらの構成要素は、前眼部観察光学系を構成する。
光路L3では、不図示の光源から970nm付近の波長を有する前眼部観察用の光が被検眼140の前眼部に対して照射される。被検眼140の前眼部からの反射光は対物レンズ101、ダイクロイックミラー102、及びレンズ107を介してスプリットプリズム108に入射する。スプリットプリズム108は、被検眼140の瞳孔と共役な位置に配置されている。スプリットプリズム108から出射された光はレンズ109を介してCCD110に入射する。
CCD110は、970nm付近の波長を有する光を検出するものであり、前眼部からの反射光を検出し、前眼部からの反射光に対応する信号を生成する。制御部200は、CCD110によって生成された信号に基づいて、被検眼140の前眼部の画像を生成することができる。この際、制御部200は、CCD110によってスプリットプリズム108を通った反射光を検出することで、前眼部のスプリット像から被検眼140に対する撮像光学系100のZ方向(深さ方向)の距離を検出することができる。
次に光路L1について説明する。光路L1は、前述の通りOCT光学系用の光路を構成しており、被検眼140の断層画像を生成するための干渉信号の取得に用いられる。光路L1には、Xスキャナ131、Yスキャナ132、及びレンズ112,113が配置されている。
Xスキャナ131及びYスキャナ132は、測定光を被検眼140の眼底Er上で走査する走査手段を構成する。Xスキャナ131及びYスキャナ132は、制御部200によって制御される不図示のガルバノモータにより駆動される。Xスキャナ131は測定光をX方向に走査するために用いられ、Yスキャナ132は測定光をY方向に走査するために用いられる。なお、Xスキャナ131及びYスキャナ132は、ガルバノミラー等の任意の偏向ミラーを用いて構成されることができる。なお、本実施例では、Xスキャナ131及びYスキャナ132によって走査手段を構成しているが、走査手段の構成はこれに限られない。走査手段は、MEMSミラー等の1枚で2次元方向に光を偏向させられる偏向ミラーによって構成されてもよい。
レンズ112は、被検眼140の眼底Erに対する、OCT測定光学系の光ファイバー115から出射する測定光の合焦調整のために用いられる合焦レンズである。レンズ112は、制御部200によって制御される不図示のモータにより、図中矢印で示される測定光の光軸方向に駆動される。この合焦調整によって眼底Erからの戻り光は同時に光ファイバー115の先端にスポット状に結像されて入射される。なお、光ファイバー115、光路L1に配置される各光学部材、ダイクロイックミラー102,103、及び対物レンズ101等は、OCT光学系において測定光が伝播するOCT測定光学系を構成する。
光ファイバー115は、光カプラー119に接続されている。光カプラー119には、OCT測定光学系の光ファイバー115、光源114に接続された光ファイバー116、OCT参照光学系の光ファイバー117、及び分光器123に接続された光ファイバー118が接続されている。光カプラー119は、光源114からの光を測定光と参照光に分割する分割器、及び被検眼140からの測定光の戻り光と参照光とを干渉させ、干渉光を発生させる干渉部として機能する。
光源114は代表的な低コヒーレント光源であるSLD(Super Luminescent Diode)である。本実施例では、光源114として、出射する光の中心波長が855nm、波長バンド幅が約100nmのものを用いている。なお、光源114の構成はこれに限られず、所望の構成に応じて任意の光源を用いることができる。
光源114から出射された光は光ファイバー116を通じ、光カプラー119を介して、光ファイバー115等のOCT測定光学系を伝播する測定光と光ファイバー117等のOCT参照光学系を伝播する参照光とに分割される。測定光は前述のOCT光学系の光路L1を通じ、観察対象である被検眼140の眼底Erに照射され、網膜による反射や散乱により、戻り光として同じ光路を通じて光カプラー119に到達する。
一方、参照光は光ファイバー117、レンズ120、及び測定光と参照光の分散を合わせるために挿入された分散補償ガラス121を介して参照ミラー122に到達し反射される。そして同じ光路を戻り、光カプラー119に到達する。ここで、光ファイバー117、レンズ120、分散補償ガラス121、及び参照ミラー122はOCT参照光学系を構成する。
被検眼140からの測定光の戻り光と参照光は光カプラー119によって、合波され干渉光となる。測定光の光路長と参照光の光路長とがほぼ等しい状態となったときに、測定光の戻り光と参照光は互いに干渉し、干渉光となる。参照ミラー122は、制御部200によって制御される不図示のモータ及び駆動機構により、図中矢印で示される参照光の光軸方向に調整可能に保持され、被検眼140の被測定部によって変わる測定光の光路長に参照光の光路長を合わせることが可能である。干渉光は、光ファイバー118を介して分光器123に導かれる。
分光器123(光検出部)には、レンズ124,126、回折格子125、及びラインセンサ127が設けられている。光ファイバー118から出射された干渉光は、レンズ124を介して略平行光となった後、回折格子125で分光され、レンズ126によってラインセンサ127に結像される。なお、ラインセンサ127は、干渉光を受光して、干渉光に応じた干渉信号を生成し、出力する受光素子の一例として示される。制御部200は、ラインセンサ127によって生成された信号に基づいて、被検眼140の眼底Erの断層に関する情報を取得し、眼底Erの断層画像を生成することができる。
(制御部200の構成)
図3を参照して、制御部200の構成について説明する。図3は、制御部200の概略的な構成を示すブロック図である。制御部200には、画像生成部210、取得部220、駆動制御部230、記憶部240、及び表示制御部250が設けられている。
取得部220は、撮像光学系100のCCD110,111、及びラインセンサ127から各種信号を取得する。また、取得部220は、断層画像生成部213から、干渉信号に基づいて生成されたフーリエ変換後の信号やこれに何らかの信号処理を施した信号等を取得することもできる。
画像生成部210には、前眼画像生成部211、眼底画像生成部212、断層画像生成部213、閾値算出部214、及びOCTA画像生成部215(画素値算出部)が設けられている。
前眼画像生成部211は、取得部220によって取得されたCCD110からの信号に基づいて被検眼140の前眼画像を生成する。眼底画像生成部212は、取得部220によって取得されたCCD111からの信号に基づいて被検眼140の眼底画像を生成する。
断層画像生成部213は、取得部220によって取得されたラインセンサ127からの干渉信号に基づいて被検眼140の断層画像を生成する。より具体的には、断層画像生成部213は、上述の一連の処理によりラインセンサ127から得られる干渉信号をフーリエ変換し、フーリエ変換後の信号を輝度或いは濃度情報に変換する。これにより、断層画像生成部213は被検眼140の眼底Erのある一点における深さ方向(Z方向)の断層画像を生成する。このようなスキャン方式をAスキャンと呼び、得られる断層画像をAスキャン画像と呼ぶ。
Xスキャナ131及びYスキャナ132によって測定光を眼底Erの所定の横断方向に走査しながら、このようなAスキャンを繰り返し行うことにより、複数のAスキャン画像を取得することができる。例えば、測定光をXスキャナ131によってX方向に走査すればXZ面における断層画像が得られ、Y方向に走査すればYZ面における断層画像が得られる。このように被検眼140の眼底Erを所定の横断方向に走査する方式をBスキャンと呼び、得られる断層画像をBスキャン画像と呼ぶ。
閾値算出部214は、取得部220によって取得されたラインセンサ127からの干渉信号等の断層データに基づいて、OCTA画像の生成に用いられる閾値を算出する。ここで、断層データには、干渉信号や、干渉信号に基づいて生成されたフーリエ変換後の信号、これに何らかの信号処理を施した信号、断層画像生成部213で生成された断層画像等を含むことができる。
OCTA画像生成部215は、取得部220によって取得された断層データ及び閾値算出部214によって算出された閾値を用いて、被検眼140のモーションコントラストデータを算出し、モーションコントラストデータに基づくOCTA画像を生成する。
なお、本実施例では、OCTA画像生成部215が、モーションコントラストデータを断層画像の輝度値の変化に基づいて算出する構成について説明する。しかしながら、モーションコントラストデータの算出方法は、これに限られない。モーションコントラストデータを、例えば、フーリエ変換後の複素OCT信号(干渉信号)を用いて、複素OCT信号間の強度差を計算することによっても得ることができる。この場合、OCTA画像生成部215は、最終的なモーションコントラストデータを、各強度差の平均値や最大値として求めることができる。OCTA画像生成部215は、フーリエ変換後の複素数OCT信号の強度情報(輝度情報)を用いて、モーションコントラストデータを計算する既知の方法を採用してよい。
駆動制御部230は、光源114、Xスキャナ131及びYスキャナ132等の撮像光学系100の各構成要素の駆動を制御する。記憶部240は、画像生成部210によって生成された各種画像や入力された被検者の情報、制御部200を構成するプログラム等を記憶する。表示制御部250は、表示部300を制御し、記憶部240に記憶された各種画像や被検者の情報等を表示部300に表示させる。
なお、制御部200の各構成要素は、制御部200のCPUやMPUで実行されるモジュールにて構成することができる。また、制御部200の各構成要素は、ASICなどの特定の機能を実現する回路等により構成されてもよい。記憶部240は、任意のメモリや光学ディスク等の記憶媒体を用いて構成することができる。
(断層画像の撮影処理)
以下、図4A乃至6を参照して、本実施例に係る断層画像の撮影処理について説明する。図4Aは、表示部300で表示する制御/画像表示用GUIのプレビュー画面400の一例を示す。図4Bは、表示部300で表示する制御/画像表示用GUIのレポート画面405の一例を示す。図4Aに示すプレビュー画面400は、撮影開始の指示や、撮像光学系100のアライメント調整、及び撮影する部位の位置の調整等を行うために表示される画面である。一方、図4Bに示すレポート画面405は、撮影によって生成されたOCTA画像を表示する画面である。なお、本実施例では説明しないが、表示部300には、生成された断層画像やOCTA断層画像等を示すレポート画面も表示されることができる。
本実施例では、図4Aに示すプレビュー画面400にて撮影準備を整えたのちに、OCT装置1を用いて被検者の眼底Erを撮影する。具体的には、まず、撮像光学系100の顔受け部に被検者の顔を載せ、測定光が被検眼140の瞳に入るように、被検眼140に対する撮像光学系100のアライメントを行う。本実施例では、検者がプレビュー画面400上の前眼画像401や眼底プレビューに表示される眼底画像402を見ながら、撮像光学系100を不図示の駆動ステージを用いてXYZ方向に移動させて、撮像光学系100のアライメントを行う。ここで、前述のように、前眼画像401は前眼画像生成部211によって、眼底画像402は眼底画像生成部212によって生成される。なお、制御部200によって、前眼画像401等を解析し、解析結果に基づいて撮像光学系100の駆動を制御して、被検眼140に対する撮像光学系100のアライメントを行ってもよい。
次に、検者は、不図示のマウス等の入力手段によりOCTA画像の撮影範囲403を設定した後、撮影ボタン404、もしくは、撮像光学系100に付随する撮影ボタンを押して撮影を開始する。なお、撮影範囲403の設定は、被検眼140の被測定部を入力し、眼底画像402等を解析することで被測定部に対して撮影範囲403を設定してもよい。また、撮影範囲403の設定後、所定の時間が過ぎたら撮影を開始する構成としてもよい。
(断層画像の処理フロー)
図5Aは本実施例による断層画像の撮影・画像処理のフローチャートを示し、図5BはOCTA断層画像生成処理のフローチャートを示す。撮影が開始されると、処理はステップS501に移行する。
ステップS501では、断層画像生成部213が、OCT光学系におけるノイズ信号として、背景信号(バックグラウンドデータ:背景データ)を複数回取得する。なお、背景信号の取得回数は任意の数であってよく、本実施例ではM回とする。背景信号は、例えば、測定光の戻り光を遮断して参照光のみの光信号を取得することで、取得される。なお、断層画像生成部213は、予め装置ごとに測定され、記憶部240に記憶されている背景信号等のノイズ信号を取得してもよい。
ステップS502では、まず、断層画像生成部213が、ステップS501においてM回取得したノイズ信号を用いて背景画像を生成する。次に、閾値算出部214が生成されたM枚の背景画像を用いて背景ノイズ閾値thn(背景閾値thn)を算出する。
具体的には、閾値算出部214は、生成されたM枚の背景画像の輝度値から輝度値の平均値Naveと標準偏差Nσを算出する。その後、閾値算出部214は、平均値Naveと、正の係数βをかけた標準偏差Nσとの和である、Nave+β×Nσを背景ノイズ閾値thnとする。ここで、背景ノイズ閾値thnは全画素に共通して算出されてもよいし、深さ方向の画素位置ごとに算出されてもよい。この場合には、M枚の背景画像の深さ方向の各画素位置から各画素位置の平均値Naveと標準偏差Nσを算出し、Nave+β×Nσを各画素位置の背景ノイズ閾値とすることができる。なお、背景信号取得する際に、測定信号が取得される各走査位置において、複数回背景信号(背景データ)を取得し、各画素位置に対応する走査位置ごとに背景ノイズ閾値thnを算出してもよい。
閾値算出部214は、算出した背景ノイズ閾値thnを記憶部240に記憶させる。なお、背景ノイズ閾値は事前に記憶部240に記憶されていてもよい。
ここで、係数βは任意の値であってよく、本実施例ではβ=7とする。係数βが大きい場合、背景ノイズ閾値thnを上回る輝度値は被検体に由来するものである確率が高くなる。一方で、係数βが大きすぎると、被検体に由来する輝度値もノイズとして判断してしまう可能性がある。そのため、例えば、後述の閾値処理が行われた最終的なOCTA画像を観察しながら係数βを調整してもよい。
ステップS503では、撮像光学系100によって被検眼140の眼底Erを撮像し、取得部220が断層データとして眼底Erの干渉信号を取得する。具体的には、まず、駆動制御部230が撮像光学系100の各構成要素を制御して、被検眼140の略同一箇所(走査ライン)のXZ方向にN回Bスキャンを行い、眼底Erを光干渉断層撮像する。これにより、取得部220は、N回分のBスキャンによって得られた、N組の干渉信号を取得する。なお、本実施例では、N=3とし、3回光干渉断層撮像することとしているが、撮像回数はこれに限られない。撮像回数であるNは、OCTA画像を生成するための輝度変化を算出するために利用する断層画像の枚数となるため、2以上の任意の数であってよい。また、以下において、1回のBスキャンに対応する干渉信号の集合を1組の干渉信号という。同様に、1回のBスキャンに対応する断層信号の集合を1組の断層信号という。なお、略同一箇所とは、完全に同一の箇所だけでなく、同一箇所から僅かにずれた箇所も含むものとする。
次に駆動制御部230は、撮像光学系100の各構成要素を制御して、走査ラインをY方向に所定距離だけずらして再度N回分のBスキャンを行い、取得部220は撮像光学系100からN組の干渉信号を取得する。駆動制御部230は、L箇所の走査を行うように当該撮像処理を繰り返す。これにより、取得部220は、L×N組の干渉信号を取得する。以降、走査ラインl番目及びn組目の干渉信号について、In(l,n)と記述する。また、輝度値等に関しても、同様に添え字にて各インデックスを記述する。なお、本実施例では、L=232とし、231回Y方向に測定箇所をずらすが、Lはこれに限れず、所望の構成に応じて任意に設定されてよい。また、本実施例では、測定位置を13μmずらして測定を行うが、当該距離も所望の構成に応じて任意に設定されてよい。例えば、測定位置をずらす量をより小さくするとともに、Lの数を増やすことで、被検眼140をより高密度に撮影することができる。
ステップS503において、L×N組の干渉信号を取得したら、制御部200は処理をステップS504に進める。ステップS504では、L×N組の干渉信号を用いて、断層画像生成部213が断層画像を生成するとともに、OCTA画像生成部215がOCTA断層画像を生成する。以下、図5Bを参照して、ステップS504の処理フローを説明する。
ステップS504の処理が開始されると、ステップS511において、画像生成部210は断層画像及びOCTA断層画像を生成するために用いる干渉信号を取得した走査ラインの位置を選択する。ステップS511において、まず、画像生成部210は、走査ラインの位置l=1を選択する。その後、画像生成部210は、処理をステップS512に進め、ステップS512からステップS522までの処理が終了したら、lとLを比較し、lがLよりも小さい間には、lを1増やし、ステップS512からステップS522までの処理を繰り返す。
ステップS512では、画像生成部210が断層画像を生成するための干渉信号の組を選択する。上述のように、干渉信号は走査ラインごとにN組取得されているため、画像生成部210は、走査ラインの位置lのn組目の干渉信号を選択する。ステップS512において、まず、画像生成部210は、n=1の干渉信号In(l,1)を選択する。その後、画像生成部210は、処理をステップS513に進め、ステップS513の処理が終了したら、nとNを比較し、nがNよりも小さい間には、nを1増やし、ステップS513の処理を繰り返す。
ステップS513では、断層画像生成部213が、画像生成部210によって選択された干渉信号In(l,n)から断層画像を生成する。具体的には、断層画像生成部213は、干渉信号In(l,n)における各Aスキャン位置の干渉信号について1次元フーリエ変換を行い、算出された信号の振幅を算出する。この振幅が1Aスキャンに対応する断層画像の各画素の輝度値となる。断層画像生成部213は、1Bスキャン分の干渉信号について当該処理を行うことで、断層画像C(l,n)を生成する。ここでは、説明の簡略化のためにフーリエ変換だけを行うとしている。しかしながら、OCTの断層画像を生成する処理は、既知である任意の処理方法によって行われてよく、また、画質向上等の目的で行われる任意の信号処理を干渉信号に対して施してもよい。
ステップS514において、画像生成部210はn=Nであるかを確認し、n=Nであった場合には、処理をステップS515に進める。n<Nである場合には、ステップS512に関して説明したように、nを1増やし、ステップS513を繰り返す。
ステップS515において、断層画像生成部213は、走査ラインの位置lに関するN枚の断層画像中の眼底Erの形状等の断層画像中の特徴点等を利用し、断層画像同士の位置合わせを行う。これにより、N枚の断層画像内の同一座標に被検体の同一箇所が配置されることとなる。
具体的には、まず断層画像生成部213は、N枚の断層画像のうち任意の1枚をテンプレートとして選択する。例えば、断層画像生成部213は、テンプレートとして選択する断層画像として、最初に生成された断層画像を選択することができる。また、断層画像生成部213は、N枚の断層画像において互いにすべての組み合わせで相関値を演算し、フレーム別に相関係数の和を求め、その和が最大となる断層画像をテンプレートとして選択してもよい。
次に、断層画像生成部213は、断層画像ごとにテンプレートと照合し、断層画像ごとに位置ずれ量(δX、δZ、δθ)を求める。ここで、δXはX方向のずれ量、δZはZ方向のずれ量、δθは回転方向のずれ量を示す。具体的には、断層画像生成部213は、テンプレートの位置と角度を変えながら各フレームの断層画像との類似度を表す指標であるNormalized Cross−Correlation(NCC)を計算する。断層画像生成部213は、計算したNCCの値が最大となるときの、照合される断層画像とテンプレートとの位置の差を位置ずれ量として求める。なお、画像間の類似度を表す指標は、照合されるフレームの断層画像とテンプレートの内の特徴の類似性を表す尺度であればよく、そのような尺度を示す任意の指標に種々変更が可能である。
断層画像生成部213は、求めた位置ずれ量(δX、δZ、δθ)に応じて位置補正をテンプレート以外のN−1枚の断層画像に適用することで、断層画像の位置合わせを行う。N枚の断層画像の位置合わせが実施される結果、各画像における画素の座標(画素位置)が同一の場合、当該画素に表示される眼底Erの位置も同一位置となる。断層画像の位置合わせが終了したら、画像生成部210は処理をステップS516に進める。
ステップS516では、画像生成部210は、モーションコントラストデータを算出し、閾値処理を施すための断層画像の組み合わせを選択する。ステップS516において、まず、画像生成部210は、1枚目(n=1)の断層画像C(l,1)を選択する。その後、画像生成部210は、処理をステップS517に進め、ステップS517からステップS520までの処理が終了したら、nとN−1を比較し、nがN−1よりも小さい間、nを1増やし、ステップS517からステップS520までの処理を繰り返す。
ステップS517では、OCTA画像生成部215が、断層画像C
(l,n)と断層画像C
(l,n+1)から各画素位置におけるモーションコントラストデータに対応する断層画像の各画素位置における輝度値の変化を算出する。本実施例では、輝度値の変化として断層画像同士の脱相関値を利用する。脱相関は断層画像の同一座標(画素位置)の画素ごとに、下記式のように算出する。
このように、位置合わせした断層画像C
(l,n),C
(l,n+1)の同一座標の画素同士で相関値を算出し、1から相関値を減算することで脱相関値を算出することができる。そして、各画素位置について脱相関値を算出することで脱相関値画像D
(l,n)を算出することができる。
次に、ステップS518において、閾値算出部214が光ショットノイズにより生成される脱相関情報を除去するための光ショットノイズ閾値thsを算出する。ここで、光ショットノイズ閾値thsは断層画像の画素位置(座標)ごとに対して算出される。閾値算出部214は、位置合わせした断層画像C(l,n),C(l,n+1)の同一座標の各画素同士で輝度値を平均し、各画素位置で平均値Cave(l,n)を算出する。上述のように、光ショットノイズは光強度の平方根に比例するため、この平均値Cave(l,n)の平方根√Cave(l,n)を、光ショットノイズの標準偏差Cave_σ(l,n)と考えることができる。そのため、断層画像C(l,n),C(l,n+1)の各画素の輝度値は、標準偏差Cave_σ(l,n)=√Cave(l,n)で輝度値が揺れていると捉えられる。そこで、閾値算出部214は、輝度値(第1のデータ)CI1=Cave(l,n)+α√Cave(l,n)と輝度値(第2のデータ)CI2=Cave(l,n)−α√Cave(l,n)を算出する。その後、閾値算出部214は、輝度値CI1と輝度値CI2との間で算出される脱相関値を各画素位置での光ショットノイズ閾値thsとして算出する。
ここで、αは任意の係数であり、所望の構成に応じて設定することができるが、およそ1〜10の間の値として定められることができる。αが大きいと、より確実に光ショットノイズ由来の脱相関値を除去することが可能であるが、実際の血球の動きにより生じる脱相関値も除去する可能性がある。一方で、αが小さい場合は、実際の血球の動きにより生じる脱相関値を除去する可能性が低くなるが、光ショットノイズ由来の脱相関値を除去する精度が下がる。一般的に、光ショットノイズは正規分布を取るため、平均値に対して+/−3倍の標準偏差の範囲に光ショットノイズに由来する輝度値の99.7%が入ると考えられる。そこで、本実施例ではα=3とし、光ショットノイズに由来する輝度値の揺れから算出される脱相関値の大部分を除去する光ショットノイズ閾値thsを算出する。閾値算出部214は、各画素位置に対して光ショットノイズ閾値thsを算出することで、断層画像に対応する光ショットノイズ閾値thsを算出することができる。
ステップS519では、OCTA画像生成部215が、光ショットノイズ閾値ths以下の脱相関値を、光ショットノイズにより生じる脱相関値であり血球の動きにより生じる脱相関値ではないと判断する。OCTA画像生成部215は、脱相関値画像D(l,n)と断層画像に対応する光ショットノイズ閾値thsを画素位置ごとに比較して、脱相関値が光ショットノイズ閾値thsより大きい画素位置の画素では画素値として脱相関値を維持する。また、OCTA画像生成部215は、脱相関値が光ショットノイズ閾値ths以下である画素位置の画素では画素値を0とする。これにより、OCTA画像生成部215は、光ショットノイズ閾値処理を施した脱相関値画像D’(l,n)を生成する。
次に、ステップS520において、OCTA画像生成部215は、背景ノイズによる輝度値の変化に由来する脱相関値を除去する。上述したように、背景ノイズの存在確率は、原点を中心に同心円の確率分布を有することとなる。そのため、輝度値0を原点とし、上述した背景ノイズ閾値thnを半径とした円の外側に位置する輝度値は、被検体に由来する輝度値であると判断することができる。そこで、OCTA画像生成部215は、断層画像C(l,n),C(l,n+1)の同一座標の画素の輝度値IcnとIcn+1を用いて、Icn 2+Icn+1 2<thn2となる座標(画素位置)の輝度値はノイズであると判断する。
具体的には、OCTA画像生成部215は、断層画像C(l,n),C(l,n+1)の同一座標の画素の輝度値Ic1,Ic2が背景ノイズ閾値thnに対して、Icn 2+Icn+1 2<thn2を満たすか否かを判断する。OCTA画像生成部215は、Icn 2+Icn+1 2<thn2が満たされる場合には、脱相関値画像D’(l,n)の対応する画素位置の画素値を0とする。また、OCTA画像生成部215は、Icn 2+Icn+1 2<thn2が満たされない場合には、脱相関値画像D’(l,n)の対応する画素位置の脱相関値を維持する。なお、背景ノイズ閾値thnが画素位置ごとに設定されている場合には、同一座標の画素の輝度値Ic1,Ic2が同一座標に対応する背景ノイズ閾値thnに対して、Icn 2+Icn+1 2<thn2を満たすか否かを判断する。
これら処理により、OCTA画像生成部215は、断層画像C(l,n),C(l,n+1)から、光ショットノイズ閾値処理及び背景ノイズ閾値処理が行われたモーションコントラスト断層画像(OCTA断層画像)Ac(l,n)を生成することができる。
ステップS521では、画像生成部210がn=N−1であるかを確認し、n=N−1であった場合には、処理をステップS522に進める。n<N−1である場合には、ステップS516に関して説明したように、nを1増やし、ステップS517からステップS520までの処理を繰り返す。
ステップS522では、OCTA画像生成部215が、走査ラインの位置lごとのN枚のOCTA断層画像Ac(l,1),…,Ac(l,N−1)の平均を算出し、最終的なOCTA断層画像Ac(l)を算出する。
ステップS523において、画像生成部210はl=Lであるかを確認し、l=Lであった場合には、OCTA断層画像生成処理を終了し、処理をステップS505に進める。l<Lである場合には、ステップS511に関して説明したように、lを1増やし、ステップS512からステップS522までの処理を繰り返す。これにより、OCTA画像生成部215は、X,Y,Zの3次元にモーションコントラストデータ(脱相関値)が配置されたOCTAボリュームデータを算出することができる。
ステップS505では、OCTA画像生成部215が、OCTAボリュームデータに基づいて、XY平面の法線方向から見たOCTA画像(OCTA正面画像)を生成する。具体的には、まず、画像生成部210が、ステップS515においてテンプレートとして選択した断層画像において、セグメンテーション処理を行い被検体である眼底構造の層構造の境界を抽出する。なお、層境界の抽出は、眼底の解剖学的な層境界を抽出できる技術であれば、既知の任意の層境界抽出技術を用いて行われてよい。なお、本実施例ではステップS505において層境界の抽出処理を行う構成としているが、層境界の抽出処理は、断層画像生成処理の終了後からステップS505までの間であれば任意のタイミングで行われてよい。なお、画像生成部210は断層画像に対応する干渉信号等の断層データに基づいて層境界の抽出を行ってもよい。この場合には、断層データの取得後からステップS505までの間の任意のタイミングで層境界の抽出処理が行われてよい。
OCTA画像生成部215は、抽出された層境界の情報を用いて、被検体の所望の構造についてOCTAボリュームデータに基づくXY平面のOCTA画像を生成する。OCTA画像生成部215は、例えば、各OCTA断層画像において、網膜と硝子体の境界、及び神経節細胞層と内網状層の境界で囲まれた領域の画素値を深さ方向(Z方向)に平均した値を各XY位置における画素値とし、XY平面のOCTA画像を生成する。なお、OCTA画像を生成するために用いられるボリュームデータに対応する被検体の構造は、3次元のOCTAボリュームデータに含まれる被検体の任意の構造であってよい。また、OCTA画像の画素値は、3次元のボリュームデータのZ方向の平均値に限られず、中央値、最大値、又は最頻値等の任意の代表値を用いて定められてよい。
上記処理により、制御部200は、光ショットノイズ及び背景ノイズについて適切な閾値処理により、コントラストの高いモーションコントラスト画像であるOCTA画像を生成することができる。
図6(a)乃至(c)は、同一の断層データについて各種閾値処理を施したOCTA画像を示す。図6(a)は従来の閾値処理を施したOCTA画像、図6(b)は従来の閾値処理と本実施例に係る光ショットノイズの閾値処理を施したOCTA画像を示す。また、図6(c)は従来の閾値処理の代わりに、本実施例に係る背景ノイズの閾値処理を施したOCTA画像、図6(d)は、本実施例に係る光ショットノイズの閾値処理及び背景ノイズの閾値処理の両方を施したOCTA画像を示す。
まず、図6(a)と図6(b)を対比すると、図6(a)では全体的に白くコントラストが低い状態となっているのに対し、図6(b)では光ショットノイズが適切に処理されるため全体的に白さが薄まり、コントラストが高くなっていることが分かる。また、図6(a)と図6(c)を対比すると、図6(c)では、背景ノイズが適切に処理されることで、血管の輪郭がはっきりしコントラストが高くなっていることが分かる。図6(a)と図6(d)を対比すると、図6(d)では、光ショットノイズ及び背景ノイズが適切に処理されることで全体的に白さが薄まるとともに血管の輪郭がはっきりし、一見してコントラストが向上していることが分かる。この結果からも、本実施例による閾値処理を施すことにより、従来の閾値処理に比べてコントラストが向上したOCTA画像を生成できていることが分かる。
上記のように、本実施例による制御部200は、取得部220と、閾値算出部214と、OCTA画像生成部215とを備える。取得部220は、被検体の略同一位置における断層の情報を示す複数の断層データ(複数の断層画像)を取得する。より具体的には、取得部220は、被検体の略同一位置を走査するように制御された測定光を用いて被検体を複数回光干渉断層撮像して得た、複数の断層データを取得する。閾値算出部214は、複数の断層データにおける、脱相関値(モーションコントラストデータ)を算出すべき対象画素に対応する輝度値から閾値を算出する。OCTA画像生成部215は、閾値及び対象画素に対応する輝度値から算出される脱相関値に基づいて、OCTA断層画像(モーションコントラスト画像)の対象画素の画素値を算出する。
より具体的には、閾値算出部214は、複数の断層データにおける対象画素に対応する輝度値の平均値Caveと、該平均値Caveの平方根と、係数αとを用いて、第1のデータCI1=Cave+α×√Caveを算出する。閾値算出部214は、同様に、第2のデータCI2=Cave−α×√Caveを算出する。閾値算出部214は、第1のデータCI1と第2のデータCI2を用いて算出した脱相関値を光ショットノイズ閾値thsとする。なお、閾値算出部214は、平均値Caveとして、脱相関値を算出するために用いられる対象画素に対応する2つの輝度値の平均値を算出する。
OCTA画像生成部215は、対象画素に対応する輝度値から算出される脱相関値が光ショットノイズ閾値ths以下の場合にはOCTA断層画像の対象画素の画素値を0とする。また、OCTA画像生成部215は、脱相関値が光ショットノイズ閾値thsより大きい場合には当該脱相関値を用いてOCTA断層画像の対象画素の画素値を算出する。
さらに、取得部220は、被検体の断層データの取得に用いられる撮像光学系100の複数の背景データを取得する。閾値算出部214は、複数の背景データの平均値Nave及び標準偏差Nσ、並びに係数βを用いて背景ノイズ閾値thn=Nave+β×Nσをさらに算出する。OCTA画像生成部215は、背景ノイズ閾値thnに基づいて、脱相関値を算出するために用いられる対象画素に対応する2つの断層データの値Ic1及びIc2について、Ic1 2+Ic2 2<thn2が満たされる場合には対象画素の画素値を0とする。また、OCTA画像生成部215は、Ic1 2+Ic2 2<thn2が満たされない場合には脱相関値を用いて対象画素の画素値を算出する。
このような構成から、本実施例による制御部200は、OCTA断層画像及びOCTA画像への光ショットノイズによる影響を低減することができ、従来の閾値処理と比べて、コントラストの高いモーションコントラスト画像を生成することができる。
さらに、本実施例による制御部200は、一方の断層画像の画素の輝度値が所定の閾値を超えていれば、他方の断層画像の画素の輝度値が閾値を超えていなくても、当該画素での輝度値の変化をOCTA画像の生成に利用することができる。そのため、制御部200は、より適切な背景ノイズ閾値処理を提供することができ、従来の閾値処理と比べて、コントラストの高いモーションコントラスト画像を生成することができる。
なお、本実施例では、モーションコントラストデータの算出や閾値算出、閾値処理について断層画像の輝度値を用いたが、これら処理に用いられる値は輝度値に限られない。これら処理は、干渉信号や、干渉信号に基づいて生成されたフーリエ変換後の信号、これに何らかの信号処理を施した信号等を含む断層データを用いて行うこともできる。同様に、背景ノイズ閾値thnは背景画像の輝度値から生成される構成に限られず、例えば、撮像光学系100によって取得された背景信号や背景信号についてフーリエ変換等の処理を行った後の信号に基づいて行われてよい。
また、本実施例では、モーションコントラストデータを脱相関値として求めた。しかしながら、モーションコントラストデータは脱相関値に限られず、例えば、分散値や、最小値を最大値で割った値(最小値/最大値)等のモーションコントラストデータとして既知の任意の数値であってよい。なお、OCTA画像生成部215がモーションコントラストデータとして断層画像間の輝度値の分散値を用いる場合には、閾値算出部214は光ショットノイズ閾値thsとして分散値Cave_σ 2(=Cave)を算出する。また、OCTA画像生成部215がモーションコントラストデータとして断層画像間の輝度値の最小値/最大値を用いる場合には、閾値算出部214は、光ショットノイズ閾値thsとして(Cave−√Cave)/(Cave+√Cave)を算出する。これらの場合、OCTA画像生成部215は、断層画像を用いて求めたモーションコントラストデータに対して対応する閾値により閾値処理を行う。
なお、本実施例では、光ショットノイズ閾値処理の後に背景ノイズ閾値処理を行ったが、これら閾値処理の順番は当該順番に限られない。背景ノイズ閾値処理が光ショットノイズ閾値処理よりも前に行われてもよいし、これらの閾値処理が並行して実施されてもよい。また、背景ノイズ閾値の算出も上述の順番に限られず、背景ノイズの取得後から背景ノイズ閾値処理の前までに行われればよい。
また、本実施例では、閾値算出部214が閾値を算出し、OCTA画像生成部215が算出された閾値を用いて各種閾値処理を行った。これに対し、閾値算出部214が、算出した閾値と比較される値の比較結果に応じて、対象画素に対応する画素位置の画素値を0〜1としたマスクを生成してもよい。
例えば、閾値算出部214は、脱相関値が光ショットノイズ閾値ths以下であれば、対象画素の画素位置に対応するマスクの画素値を0とし、光ショットノイズ閾値thsより大きければ、マスクの画素値を1としたマスクを生成する。同様に、閾値算出部214は、Icn 2+Icn+1 2<thn2が満たされる場合には、対象画素の画素位置に対応するマスクの画素値を0とし、Icn 2+Icn+1 2<thn2が満たされない場合には、マスクの画素値を1としたマスクを生成する。
そして、OCTA画像生成部215は、各種閾値に基づくマスク及び脱相関値を用いてOCTA断層画像の対象画素の画素値を算出する。より具体的にはOCTA画像生成部215は、光ショットノイズ閾値に基づくマスクを脱相関値画像に乗算することで、光ショットノイズ閾値処理が行われた脱相関値画像を生成することができる。同様に、OCTA画像生成部215は、背景ノイズ閾値に基づくマスクを脱相関値画像に乗算することで、背景ノイズ閾値が行われた脱相関値画像を生成することができる。この場合であっても、本実施例と同様の効果を奏することができる。
(実施例1の変形例)
実施例1では、位置合わせした断層画像C(l,n)及び断層画像C(l,n+1)の各座標の画素における輝度値の平均値、及び平均値の平方根を利用して光ショットノイズ閾値thsを算出していた。これに対し、実施例1の変形例では、位置合わせしたN枚全ての断層画像C(l,1),…,C(l,N)の各座標の画素における輝度値の平均値、及び平均値の平方根を利用して光ショットノイズ閾値thsNを算出する。
実施例1のように2枚の断層画像の輝度値では、動きのない被検体である眼底組織由来の輝度値に対して光ショットノイズの揺らぎが偏っていた場合、輝度値の平均値は本来あるべき値に対して大きく異なる値を示すことがある。そのため、光ショットノイズ閾値thsの各画素の値も適切な値とは大きく異なる値となる可能性がある。
これに対して、本実施例では、N枚の断層画像の同一座標の画素における輝度値を全て利用して平均値を算出する。N枚全ての断層画像の輝度値を利用して平均値を算出することで、測定した値の揺らぎが偏っている可能性を低くすることができ、より本来の眼底組織から測定されるべき値に近い値が算出される可能性を高めることができる。従って、このような平均値を閾値の算出に用いることで、光ショットノイズ閾値thsNもより適切な値となる可能性が高くなる。そのため、光ショットノイズ閾値処理によって、光ショットノイズに由来する脱相関値をより適切に除去し、被検体の動きに由来する脱相関値をより適切に残存させることができ、より高コントラストなモーションコントラスト画像を生成することができる。
また、実施例1では、位置合わせした断層画像C(l,n)及び断層画像C(l,n+1)の同一座標の画素における輝度値Icn,Icn+1と背景ノイズ閾値thnに基づいて、背景ノイズ処理を行った。これに対して、本変形例では、位置合わせしたN枚全ての断層画像C(l,1),…,断層画像C(l,N)の同一座標の画素における輝度値Ic1,…,IcNと背景ノイズ閾値thnに基づいて背景ノイズ処理を行う。
背景ノイズは、上述のとおり原点を中心とした半径方向にノイズの分布があり、円周方向に見るとノイズの確率密度は同一となっている。これは2枚の断層画像だけでの話にとどまらない。3枚以上の断層画像であっても、同一の装置で断層画像を取得しているため、取得された全ての断層画像における背景ノイズの分布は同一で、且つ、断層画像ごとに独立している。
ここで、説明の簡略化のため、3枚の断層画像について説明する。3枚の断層画像の同一座標の画素における輝度値を輝度値I
1,I
2,I
3とすると、その座標の画素がノイズである確率はP(I
1,I
2,I
3)で表わすことができる。また、各々異なる断層画像における輝度値であり各々独立のため、
となり、球の半径の方向に同一の背景ノイズ分布が存在していることが分かる。そのため、ある半径rの球面上のノイズの確率密度は同一となることが分かる。
同様に、N枚の断層画像の同一座標の画素における輝度値I
1,I
2,…,I
Nを考えても、以下のように表すことができる。
そこで、本実施例では、rの値としてステップS502で求めた背景ノイズ閾値を用い、N枚の断層画像の同一座標の画素における輝度値と背景ノイズ閾値thnに基づいて背景ノイズ閾値処理を行う。この閾値処理では、N次元の半径r=thnの円の内側に位置する輝度値(I
1,I
2,…,I
N)の組が、背景ノイズであると判断する。そのため、本変形例の背景ノイズ閾値処理では、N枚の断層画像において輝度値の組が背景ノイズに該当する座標に対応する脱相関値画像の座標における画素の画素値を0とし、その他の画素の画素値は処理対象である脱相関値画像の脱相関値を維持する。
このようにN枚の断層画像の輝度値から、脱相関値画像における各座標の画素値が背景ノイズであるのかを判断することができ、より正確に背景ノイズを特定することができる。そのため、背景ノイズ閾値処理によって、背景ノイズに由来する脱相関値をより適切に除去し、被検体(測定対象物)の動きに由来する脱相関値をより適切に残存させることができ、より高コントラストなOCTA画像を生成することができる。
本変形例によれば、光ショットノイズ閾値をより多くのデータに基づいて生成することができ、光ショットノイズ閾値をより精度高く算出できる。また、本実施例によれば、背景ノイズ閾値処理をより多くのデータを用いて行うことで、より精度高く背景ノイズの閾値処理を行うことができる。
以下、図7を参照して本変形例の画像処理について説明する。なお、OCT装置の構成及び制御部における閾値処理以外の処理は、実施例1と同様であるため、同様の参照符号を用いて実施例1との相違点を中心に説明する。図7は、本変形例に係るOCTA断層画像生成処理のフローチャートである。
本実施例では、ステップS515において断層画像の位置合わせが行われると、画像生成部210は、処理をステップS701に進める。ステップS701では、閾値算出部214が位置合わせされたN枚の断層画像C(l,1)から断層画像C(l,N)の同一座標の各画素同士で輝度値を平均し、各画素位置での平均値Cave(l)を算出する。そして、閾値算出部214は、実施例1と同様に、この平均値Cave(l)の平方根√Cave(l)を光ショットノイズの標準偏差Cave_σ(l)とする。その後、閾値算出部214は、輝度値(信号強度)CI1=Cave(l)+α×√Cave(l)と輝度値CI2=Cave(l)−α×√Cave(l)との間で算出される脱相関値を各画素位置での光ショットノイズ閾値thsNとして算出する。
画像生成部210は、閾値算出部214が光ショットノイズ閾値thsNを算出したら、処理をステップS516に進める。その後、ステップS517でOCTA画像生成部215がモーションコントラストデータを算出したら、画像生成部210は処理をステップS702に進める。ステップS702では、OCTA画像生成部215が、光ショットノイズ閾値thsNを用いて、実施例1のステップS518と同様に、算出した脱相関値画像D(l,n)に対して光ショットノイズの閾値処理を行う。
画像生成部210は、ステップS702において光ショットノイズの閾値処理が行われたら、処理をステップS703に進める。ステップS703では、OCTA画像生成部215が、背景ノイズによる輝度値の変化に由来する脱相関値を除去する。上述のように、本変形例では、OCTA画像生成部215は、断層画像C(l,1),…,C(l,N)の同一座標の画素の輝度値Ic1,…,IcNを用いて、Ic1 2+…+IcN 2<thn2となる座標(画素位置)の輝度値はノイズであると判断する。
具体的には、OCTA画像生成部215は、Ic1 2+…+IcN 2<thn2が満たされる場合には、脱相関値画像D’(l,n)の対応する画素位置の画素値を0とする。また、OCTA画像生成部215は、Ic1 2+…+IcN 2<thn2が満たされない場合には、脱相関値画像D’(l,n)の対応する画素位置の脱相関値を維持する。
これら処理により、OCTA画像生成部215は、断層画像C(l,n),C(l,n+1)から光ショットノイズ閾値処理及び背景ノイズ閾値処理が行われた脱相関値画像であるモーションコントラスト断層画像(OCTA断層画像)を生成することができる。なお、以降の処理は実施例1と同様であるため、説明を省略する。
上記のように、本変形例では、閾値算出部214は、平均値Caveとして、対象画素に対応する3つ以上の断層データ、特にN枚の断層画像における対象画素に対応する全ての輝度値の平均値を算出する。OCTA画像生成部215は、背景ノイズ閾値thnに基づいて、対象画素に対応する全ての断層データの値Ic1,Ic2,…,IcNについて、Ic1 2+Ic2 2+…+IcN 2 <thn2が満たされるか否かを判断する。OCTA画像生成部215は、Ic1 2+Ic2 2+…+IcN 2 <thn2が満たされる場合にはOCTA断層画像の対象画素の画素値を0とする。また、OCTA画像生成部215は、Ic1 2+Ic2 2+・・・+IcN 2 <thn2が満たされない場合にはモーションコントラストデータを用いてOCTA断層画像の対象画素の画素値を算出する。
本変形例では、3つ以上、特にN個全ての断層データを利用し、光ショットノイズ閾値処理の精度を向上させ、より高いコントラストのOCTA画像を生成することができる。同様に、本実施例によれば、N個の断層データを利用し、背景ノイズ閾値処理の精度を向上させ、より高いコントラストのOCTA画像を生成することができる。
なお、本変形例では、背景ノイズ閾値処理を行う際に、各画素位置においてIc1 2+…+IcN 2<thn2が満たされるか否かを判断したが、背景ノイズ閾値処理の手法はこれに限られない。例えば、閾値算出部214は断層画像の位置合わせが行われた後、背景ノイズ閾値処理を行うまでに、断層画像と背景ノイズ閾値に基づいて、背景ノイズ閾値処理用のマスクを生成してもよい。
具体的には、閾値算出部214は、位置合わせされた断層画像の各画素位置の画素の輝度値がIc1 2+…+IcN 2<thn2を満たすか否かを判断する。そして、閾値算出部214は、式が満たされる場合には輝度値を用いた断層画像の画素位置に対応する画素位置の画素値を0、満たされない場合には画素値を1としたマスクを生成する。この場合には、OCTA画像生成部215がステップS703において、生成された背景ノイズ閾値処理用のマスクと脱相関値画像D’(l,n)とを掛け合わせることで、背景ノイズ閾値処理を行う。
このような処理であっても、本変形例と同様に、背景ノイズ閾値処理の精度を向上させ、より高いコントラストのOCTA画像を生成することができる。また、マスクを一度生成すれば、背景ノイズ閾値処理はマスクと脱相関値画像とを掛け合わせることで行えるため、背景ノイズ閾値処理に掛かる計算量を少なくすることができる。また、実施例1と同様に、閾値算出部214は、光ショットノイズ閾値についてもマスクを作成してもよい。
(実施例2)
実施例1では、各画素位置について光ショットノイズ閾値thsを算出し、モーションコントラスト画像である脱相関値画像に光ショットノイズ閾値処理を施した。これに対し、実施例2では、より簡便な光ショットノイズ閾値thssを算出する方法を提供する。
以下、図8を参照して本実施例に係る閾値処理について説明する。なお、本実施例に係るOCT装置の構成及び光ショットノイズ閾値処理以外の処理は実施例1と同様であるため、同じ参照符号を用いて、実施例1との相違点を中心に説明する。
本実施例でも、モーションコントラストデータを生成するために用いる2枚の断層画像の同一座標の画素における画素値を用いて光ショットノイズ閾値thssを算出する。当該2枚の断層画像について、横軸に1枚目の断層画像の輝度値I1を、縦軸に2枚目の断層画像の輝度値I2をとり、断層画像の各座標の輝度値の組をプロットすると図8に示す黒点のように分布する。断層画像の選択は任意であるため、このプロットされた黒点は、図中一点鎖線で示される、原点を通り横軸・縦軸に対して45度傾いた直線に対して線対称となる。なお、図8に示すプロット図の原点付近における1/4の円弧は実施例1に係る背景ノイズ閾値thnを表す曲線である。
ここで、図8はこの輝度値の組に対して実施例1に係る光ショットノイズ閾値thsに対応する輝度値の組を破線で示している。これに対して、本実施例では、より簡便に光ショットノイズ閾値を設定するために、このプロット図上で直線となる光ショットノイズ閾値thssを算出する。図8は、本実施例に係る光ショットノイズ閾値thssを実線で示す。
上述のように、モーションコントラスト画像に用いられる2枚の断層画像の同一座標の画素における輝度値の組は、図8に示すプロット図において、原点を通り横軸・縦軸に対して45°傾いた直線に対して線対称となる。そのため、図8に示されるように、2枚の断層画像の同一座標の画素における輝度値の平均値及び平均値の平方根から算出される実施例1に係る光ショットノイズ閾値thsに対応する輝度値の組も、当該45度傾いた直線に対して線対称となる。そこで、本実施例に係る光ショットノイズ閾値thssも、当該45°傾いた直線に対して略線対称となるプロット図上の直線として定める。なお、略線対称とは、線対称から僅かにずれているような状態も含むものとする。
この直線は、原点を通り横軸・縦軸に対して45°傾いた直線に対して線対称となるため、それぞれが横軸又は縦軸となす角度がγとなるような2つの直線として求めることができる。従って、本実施例に係る光ショットノイズ閾値ths
sは図8に示すプロット図において、以下の2つの式で表される2つの直線となるように求められる。
ここで、I
0はI
1の座標軸に対する光ショットノイズ閾値ths
s2に対応する直線の切片及びI
2の座標軸に対する光ショットノイズ閾値ths
s1に対応する直線の切片を示し、本実施例ではI
0=0とし、各直線は原点を通る直線となっている。また、角度γは調整用パラメータであり、所望の構成に応じて任意の角度に設定することができる。γを大きくすると、光ショットノイズに起因する輝度値の揺れとして閾値処理する対象が少なくなる。例えば、閾値処理の行われた最終的なOCTA画像を観察しながらγを調整してもよい。本実施例ではγ=40°とした。
本実施例で求めた直線は、図8に示すように、実施例1でα=3として求めた光ショットノイズ閾値thsの曲線(図中破線)とほぼ同一であるため、同様の効果を奏することが期待できる。本実施例に係る光ショットノイズ閾値処理では、モーションコントラスト画像の生成に用いる2つの断層画像における同一座標の画素における輝度値が、上記式から求めた2つの直線で囲まれた輝度値の組となるか否かを判断する。2つの直線で囲まれた輝度値の組である場合には、光ショットノイズに由来する輝度値の変化であるとして、当該座標に対応するモーションコントラストデータ(脱相関値)を0にし、そうでなければ、脱相関値を画素値とする。
以下、本実施例に係る具体的な処理フローについて説明する。なお、本実施例に係る処理フローは実施例1に係る処理フローと同様であるため、実施例1に係る処理フローを示す図5(b)を参照して説明する。なお、処理内容(処理工程)が実施例1と同様である処理については説明を省略する。
本実施例では、ステップS518において、閾値算出部214が断層画像C(l,n)及び断層画像C(l,n+1)の同一座標の画素における輝度値Ic(l,n)及び輝度値Ic(l,n+1)の一方に基づいて光ショットノイズ閾値thssを算出する。ここでは、閾値算出部214が断層画像C(l,n)の該当画素の輝度値Ic(l,n)を用いて光ショットノイズ閾値thssを算出することとして説明する。
閾値算出部214は、該当画素の輝度値Ic(l,n)から光ショットノイズ閾値thss1=Ic(l,n)/tanγ+I0と、光ショットノイズ閾値thss2=(Ic(l,n)−I0)tanγを算出する。本実施例ではI0=0、γ=40°とする。閾値算出部214は、断層画像C(l,n)の各画素位置について光ショットノイズ閾値thss1,光ショットノイズ閾値thss2を算出する。
次に、ステップS519では、OCTA画像生成部215が、断層画像C(l,n+1)の各画素位置の輝度値Ic(l,n+1)、及び各画素位置に対応する光ショットノイズ閾値thss1,thss2を用いて光ショットノイズ閾値処理を行う。具体的には、OCTA画像生成部215は、断層画像C(l,n+1)の各画素位置の輝度値Ic(l,n+1)が、thss2≦Ic(l,n+1)≦thss1を満たすか否かを判断する。OCTA画像生成部215は、thss2≦Ic(l,n+1)≦thss1が満たされる場合には、該当する画素位置に対応する脱相関値画像D(l,n)の画素位置の画素値を0にする。また、OCTA画像生成部215は、thss2≦Ic(l,n+1)≦thss1が満たされない場合には、該当する画素位置に対応する脱相関値画像D(l,n)の画素位置の画素値を維持する。以降の処理は、実施例1に係る処理と同様であるため省略する。
本実施例による制御部200は、上記処理により、実施例1と同様に高いコントラストのOCTA画像を生成することができる。なお、ステップS518で、断層画像C(l,n+1)の該当画素の輝度値Ic(l,n+1)を用いて光ショットノイズ閾値thssを算出する場合にも同様の効果を奏することができる。この場合には、閾値算出部214は、光ショットノイズ閾値thss1=Ic(l,n+1)/tanγ+I0と、光ショットノイズ閾値thss2=(Ic(l,n+1)−I0)tanγを算出する。また、ステップS519において、OCTA画像生成部215は、断層画像C(l,n)の各画素位置の輝度値Ic(l,n)が、thss2≦Ic(l,n)≦thss1を満たすか否かを判断する。
上記のように、本実施例では、閾値算出部214は、複数の断層データにおける同一の画素位置の2つの断層データの値I1及びI2をそれぞれ座標軸とした2次元座標を想定する。閾値算出部214は、当該2次元座標において、原点を通り各座標軸と45°の角度をなす直線に対して略線対称となる2つのI2に関するI1の一次関数を第1の閾値thss1及び第2の閾値thss2(thss2<thss1)として算出する。具体的には、閾値算出部214は、第1の閾値thss1及び第2の閾値thss2として、2つのI2に関するI1の一次関数thss1:I2=I1/tanγ+I0、及びthss2:I2=(I1−I0)tanγを算出する。ここで、I0はI1の座標軸に対する第2の閾値thss2に対応する一次関数の切片であり、γはI1の座標軸と第2の閾値thss2に対応する一次関数とがなす角度である。
OCTA画像生成部215は、脱相関値を算出するために用いられる対象画素に対応する2つの断層データの値をI1及びI2にそれぞれ代入したときに、thss2≦I2≦thss1が満たされる場合にはOCTA断層画像の対象画素の画素値を0とする。また、OCTA画像生成部215は、thss2≦I2≦thss1が満たされない場合には脱相関値を用いてOCTA断層画像の対象画素の画素値を算出する。
これら処理により、本実施例による制御部200は、より簡便な光ショットノイズ閾値を算出し、より簡易に光ショットノイズ閾値処理を行いながらも、実施例1と同様に高いコントラストのOCTA画像を生成することができる。
また、実施例1と同様に、閾値算出部214は、光ショットノイズ閾値thssを用いてモーションコントラスト画像である脱相関値画像を閾値処理するためのマスクを生成してもよい。具体的には、ステップS518において、閾値算出部214は、一方の断層画像C(l,n)における各画素の輝度値Ic(l,n)から光ショットノイズ閾値thss1及びthss2を算出する。その後、他方の断層画像C(l,n+1)における対応する画素の輝度値を用いて、thss2≦Ic(l,n+1)≦thss1が満たされる画素位置の画素値を0とし、当該式が満たされない画素値位置の画素値を1とした閾値マスクを生成する。なお、閾値算出部214は、一方の断層画像としてC(l,n+1)が選択される場合には、他方の断層画像C(l,n)における対応する画素の輝度値を用いて、thss2≦Ic(l,n)≦thss1が満たされるか否かを判断する。
上述のように、光ショットノイズ閾値thssは、輝度値のプロット図におけるグラフの対角線近傍(diagonal vicinity)の直線によって囲まれた座標の輝度値の組に基づく脱相関値を除去する(画素値を0にする)。そのため、ここでは、光ショットノイズ閾値thssを用いて生成した閾値を対角線近傍閾値と呼び、当該閾値のマスクを対角線近傍マスク(Diagonal Vicinity Mask:DVM)と呼ぶ。対角線近傍マスクを生成する場合には、ステップS519においてOCTA画像生成部215は、対角線近傍マスクと脱相関値画像とを乗算することで光ショットノイズ閾値処理を行うことができる。この場合にも、マスクを生成しない場合と同様に、制御部200は、高いコントラストのOCTA画像を生成することができる。
なお、閾値算出部214は、N枚の断層画像を用いて、N−1枚のモーションコントラスト画像の光ショットノイズ閾値処理のための光ショットノイズ閾値thssを算出することもできる。ただし、本実施例に係る光ショットノイズ閾値thssは輝度値の平均値や標準偏差を用いるものではなく、モーションコントラストデータの生成に用いる2枚の断層画像の各画素位置における輝度値の組の分布に関するものである。また、最終的に閾値処理に用いられる輝度値は、モーションコントラストデータの生成に用いられる2枚の断層画像の各画素位置における輝度値の組となる。そのため、N枚の断層画像を用いて算出された光ショットノイズ閾値thssであっても、最終的には式に当該2枚の断層画像における輝度値を代入することで、2枚の断層画像の各画素位置における輝度値の組ごとに求められることとなる。
(実施例2の変形例)
光ショットノイズ閾値処理及び背景ノイズ閾値処理のための閾値として、実施例2に係る直線によって定められたノイズ閾値のみを用いることもできる。この場合には、上記光ショットノイズ閾値thss1及びthss2の式におけるI0に背景ノイズ閾値thnを適用する。
この場合における、モーションコントラスト画像を生成するために用いられる2枚の断層画像についての輝度値I1,I2の組に関するプロット図を図9に示す。また、図9は、本変形例に係るノイズ閾値tha1,tha2を実線で示す。なお、ノイズ閾値tha1及びtha2の式は光ショットノイズ閾値thss1,thss2と同一であるが、本変形例では、γ=45°、I0=thn=Nave+β×Nσとする。
図9と図8とを比較すると、本変形例に係るノイズ閾値thaの直線によって囲まれる輝度値の組の範囲は、実施例2に係る背景ノイズ及び光ショットノイズと見込まれる輝度値の組の範囲をカバーしており、当該範囲に似ていることが分かる。そのため、本変形例に係る閾値処理の効果も実施例2に係る閾値処理の効果と大よそ同様となる。ここで、図10(a)は従来の閾値処理によるOCTA画像を示し、図10(b)は実際に本実施例に係るノイズ閾値thaを用いて閾値処理を行った結果のOCTA画像を示す。図10(a)と図10(b)を比較すると、図10(b)では、全体的に白さが薄まり、OCTA画像のコントラストが向上していることがわかる。
なお、本変形例に係る閾値処理の方法は、実施例2と同様である。具体的には、ステップS519において閾値算出部214がI0=thnとして、光ショットノイズ閾値thss1,thss2の式からノイズ閾値tha1,tha2を算出する。すなわち、閾値算出部214は、ノイズ閾値tha1=thss1=Ic(l,n)/tanγ+thn、及びノイズ閾値tha2=thss2=(Ic(l,n+1)−thn)tanγを算出する。その後、ステップS520において、OCTA画像生成部215が、断層画像における各画素位置の輝度値及びノイズ閾値tha1,tha2を用いて、実施例2と同様に閾値処理を行う。なお、本変形例では、光ショットノイズ閾値に、背景ノイズ閾値も包含されるため、ステップS520の処理を省くことができる。
また、本変形例に関しても、閾値処理に関して対角線近傍マスク(DVM)を生成することができる。この場合には、生成された対角線近傍マスク(DVM)のみをモーションコントラスト画像である脱相関値画像に乗算するだけで、光ショットノイズ及び背景ノイズの閾値処理を行うことができる。
なお、本変形例においても、N枚の断層画像を用いて、N−1枚のモーションコントラスト画像のノイズ閾値処理のための本実施例に係るノイズ閾値thaを算出することもできる。ただし、実施例2と同様に、ノイズ閾値thaも、最終的にはモーションコントラストデータの生成に用いられる2枚の断層画像の各画素位置における輝度値の組ごとに求められることとなる。
(実施例3)
OCT装置等の眼科撮影装置では、同一条件で撮影を行ったとしても、患者のまばたき、涙液の渇き、瞳孔の縮小/散大、及び眼球運動によるアライメント変化などの影響を受けて、完全に同じ画像を撮影することは困難である。特にこれらの影響により、生成される断層画像において、被検体からの反射光に基づく信号の強度に大きな違いが生じてしまった場合には、各断層画像の明るさが互いに大きく異なってしまう。
そこで、実施例3では、2枚の断層画像の間で断層画像の明るさに差が生じていた場合に対する、実施例2で求めたような光ショットノイズ閾値、及びモーションコントラストデータの算出方法を提供する。以下、図11及び12を参照して、本実施例に係る光ショットノイズ閾値、及びモーションコントラストデータの算出方法について説明する。なお、本実施例に係るOCT装置の構成及び光ショットノイズ閾値処理以外の処理は実施例2と同様であるため、同じ参照符号を用いて、実施例2との相違点を中心に説明する。
上記のような影響により、各断層画像の明るさが互いに大きく異なる場合には、2枚の断層画像の各画素位置における輝度値の組の分布が、図11に示すように、全体的に輝度値の高い方の断層画像の輝度値を示す軸側に偏ってしまう。ここで、図11は、モーションコントラストデータを生成するために用いられる2枚の断層画像の明るさが互いに大きく異なってしまった場合の、2枚の断層画像の各画素位置における輝度値の組を示すプロット図である。
これに対し、実施例2では、2枚の断層画像の明るさが同じ場合であったため、図8に示すように輝度値の組の分布が対角線を境に略線対称に集まっていた。そのため、実施例2では、光ショットノイズ閾値thssの式を各軸と閾値を表す直線との角度γ及び各々の断層画像に関する輝度値(信号強度)で表すことができた。
しかしながら、図11に示すように、2枚の断層画像における輝度値の組の分布が、片方の軸側に偏ると、輝度値の組の分布が対角線(原点を通る傾き45°の直線)に対して線対称でなくなる。そのため、このような場合には、各断層画像の輝度値をそのままモーションコントラストデータや光ショットノイズ閾値の算出に用いると、適切な閾値処理が行えなくなる。
そこで、本実施例では、実施例2と同一の式を用いて適切に光ショットノイズ閾値処理を行うために、2枚の断層画像の明るさが同一となるように、一方の断層画像の明るさに比例係数ηを乗じて明るさの補正を行う。
具体的には、まず、モーションコントラストデータを生成するために用いられる2枚の断層画像に関する輝度値I1,I2の組から実施例1に係る背景ノイズ閾値処理と同様に、I1 2+I2 2<thn2を満たす輝度値I1,I2の組を除去する。これは、背景ノイズは被検体から戻ってくる光とは独立しており、断層画像の明るさが変化しても背景ノイズの輝度値は変化しないことから、明るさの変化の影響を受けていない背景ノイズまで補正してしまうことを防ぐためである。これにより、輝度値I1,I2の組の分布から、図11に示す領域1101の範囲の輝度値の組が除去される。
次に、残存する輝度値I
1,I
2の組の分布を直線I
2=aI
1+bで近似する。その後、近似直線の傾きaの逆数を、比例係数ηとして、以下の式のように、輝度値I
2を補正し、断層画像の明るさを補正する。
同様に各画素位置について輝度値I
2の補正を行うことにより、明るさが補正された断層画像を生成する。その後、明るさが補正された断層画像と他方の断層画像を用いて、モーションコントラストデータ及び光ショットノイズ閾値ths
sを算出する。このような処理により、モーションコントラストデータを生成するために用いられる2枚の断層画像の明るさが互いに大きく異なる場合でも、実施例2と同様の光ショットノイズ閾値処理を行い、高いコントラストのOCTA画像を生成することができる。
以下、図12を参照して、本実施例に係る信号強度調整処理や光ショットノイズ閾値処理等を含む、OCTA断層画像生成処理のフローについて説明する。図12は、本実施例に係るOCTA断層画像生成処理のフローチャートである。なお、処理内容が実施例2と同様である処理については説明を省略する。
ステップS516において、同一箇所の画像処理ループが開始されると、画像生成部210は処理をステップS1201に進める。ステップS1201では、OCTA画像生成部215が、モーションコントラストデータを生成するために用いられる2枚の断層画像C(l,n),(l,n+1)に関する輝度値(信号強度)Ic(l,n),Ic(l,n+1)の組の強度調整を行う。
具体的には、まずOCTA画像生成部215は、輝度値Ic(l,n),Ic(l,n+1)の組から、実施例1に係る背景ノイズ閾値処理と同様に、Ic(l,n) 2+Ic(l,n+1) 2<thn2を満たす輝度値Icn,Icn+1の組を除去する。
その後、OCTA画像生成部215は、残存する輝度値Ic(l,n),Ic(l,n+1)の組の分布を直線Ic(l,n+1)=aIc(l,n)+bで近似する。さらに、OCTA画像生成部215は、近似直線の傾きaを用いて比例係数η=1/aを求め、Ic(l,n+1)’=ηIc(l,n+1)として輝度値Ic(l,n+1)を補正する。当該処理を断層画像C(l,n+1)の各画素位置の画素について行うことで、OCTA画像生成部215は、明るさを補正した断層画像C(l,n+1)’を生成する。
次に、ステップS1202において、OCTA画像生成部215は、断層画像C(l,n)と明るさを補正した断層画像C(l,n+1)’を用いて、実施例2と同様に脱相関値画像D(l,n)を算出する。ステップS1203では、閾値算出部214が、実施例2と同様に断層画像C(l,n)と明るさを補正した断層画像C(l,n+1)’を用いて、光ショットノイズ閾値thssを算出する。その後、ステップS1204では、OCTA画像生成部215が、実施例2と同様に断層画像C(l,n)、明るさを補正した断層画像C(l,n+1)’及び光ショットノイズ閾値thssを用いて、実施例2と同様に光ショットノイズ閾値処理を行う。
以降の処理は、実施例2と同様であるため、説明を省略する。なお、ステップS520では、上述のように背景ノイズは被検体からの戻り光の光量の変化の影響を受けないので、OCTA画像生成部215は、断層画像C(l,n),C(l,n+1)及び背景ノイズ閾値thnを用いて閾値処理を行う。
上記のように、本実施例では、OCTA画像生成部215は、脱相関値を算出するために用いられる対象画素に対応する2つの断層データについて、該断層データの値の大きさを補正する。このため、OCTA画像生成部215は、断層データの値の大きさを補正する補正部として機能する。OCTA画像生成部215は、一方の断層データの値をIc1とし、他方の断層データの値をIc2としたとき、断層データの値Ic1,Ic2をそれぞれ座標軸とした2次元座標において、断層データの組の分布をプロットする。OCTA画像生成部215は、脱相関値の算出に用いられるこれら断層データの組の分布から背景ノイズに対応する分布を除外した断層データの組の分布を近似した、近似直線Ic2=aIc1+bを算出する。OCTA画像生成部215は、η=1/aとして係数ηを算出し、Ic2’=η×Ic2に従って断層データの値Ic2を補正する。
閾値算出部214は、対象画素に対応する断層データの値Ic1及び補正された断層データの値Ic2’を用いて光ショットノイズ閾値thsを算出する。OCTA画像生成部215は、光ショットノイズ閾値ths、並びに対象画素に対応する断層データの値Ic1及び補正された断層データの値Ic2’から算出される脱相関値に基づいて、OCTA断層画像の対象画素の画素値を算出する。
本実施例によれば、モーションコントラストデータを算出する断層画像の明るさが異なる場合であっても、断層画像の明るさを調整することで、高いコントラストのOCTA断層画像を生成することできる。なお、本実施例では、断層画像の明るさについて述べたが、補正すべき対象はこれに限られない。補正すべき対象は、モーションコントラストデータの算出に用いられる断層データであればよい。言い換えると、本実施例では、断層データ間での全体的な値の違いを補正することで、高いコントラストのOCTA断層画像を生成することができる。
なお、本実施例に係る明るさの補正では、ステップS1201において断層画像C(l,n+1)の輝度値Ic(l,n+1)を補正したが、断層画像C(l,n)の輝度値Ic(l,n)を補正し、明るさの補正された断層画像C(l,n)を生成してもよい。この場合には、OCTA画像生成部215は、近似直線Ic(l,n)=aIc(l,n+1)+bを算出し、比例係数η=1/aを求める。そして、OCTA画像生成部215は、Ic(l,n)’=ηIc(l,n)として輝度値Ic(l,n)を補正する。その後、OCTA画像生成部215は、当該処理を断層画像C(l,n)の各画素位置の画素について行うことで、OCTA画像生成部215は、明るさを補正した断層画像C(l,n)’を生成する。その後は、断層画像C(l,n+1)と明るさを補正した断層画像C(l,n)’を用いて光ショットノイズ閾値thssの算出、及び光ショットノイズ閾値処理が行われる。
また、本実施例に係る光ショットノイズ閾値についても対角線近傍マスク(DVM)を生成してもよい。また同様に、本実施例に係る閾値処理として、実施例2の変形例に係る閾値処理(マスクを作成する場合を含む)を適用してもよい。
また、明るさの補正は、必要な場合のみ行われてもよい。例えば、ステップS1201の前に、モーションコントラストデータを生成するのに用いられる2枚の断層画像C(l,n),C(l,n+1)に関する輝度値の平均値等を比較し、比較の結果が所定の閾値以下であれば、ステップS1201を省略してもよい。
(実施例4)
一般に、OCTA画像においては、断層画像の一定以上高い輝度値に対応してプロジェクションアーチファクトと呼ばれるアーチファクトが生じることが知られている。プロジェクションアーチファクトは、眼底の網膜における視細胞の内節/外節(IS/OS)の界面や、色素上皮(RPE)等のOCT断層画像において高輝度に描出される層に顕著に見られる。プロジェクションアーチファクトは、これらの層よりも内側に存在する層に存在する血球の動きに影響されて高輝度な画素として生じる。そこで、実施例4では、一定以上高い輝度値を有する断層画像の画素に対応するモーションコントラストデータに関しても閾値処理を行う。
また、OCTA断層画像の平均化を行う際やOCTA画像を生成する際に、モーションコントラスト値が0の画素を用いると、最終的なモーションコントラスト値が小さくなりすぎてしまう。そこで本実施例では、OCTA断層画像の平均化を行う際やOCTA画像を生成する際に、閾値処理によってモーションコントラスト値(画素値)が0に書き換えられた画素を無視して平均する。
以下、図13及び14を参照して、本実施例に係る高値閾値処理の算出方法について説明する。なお、本実施例に係るOCT装置の構成及び光ショットノイズ閾値処理以外の処理は実施例2と同様であるため、同じ参照符号を用いて、実施例2との相違点を中心に説明する。
本実施例では、画像生成部210が、プロジェクションアーチファクトを抑制するため、高値閾値処理を行う。高値閾値処理では、閾値算出部214が、背景ノイズの平均値Naveと標準偏差Nσを用いて高値閾値thhi=Nave+A×Nσを求める。そして、OCTA画像生成部215が、モーションコントラストデータを生成するために用いられる2枚の断層画像の各画素位置の輝度値I1,I2がI1 2+I2 2>thhi 2を満たすか否かを判断する。OCTA画像生成部215は、I1 2+I2 2>thhi 2が満たされる場合には、該当する画素位置に対応する脱相関値画像の画素位置の画素値を0にする。一方、I1 2+I2 2>thhi 2が満たされない場合には、該当する画素位置に対応する脱相関値画像の画素位置の画素値を維持する。
これにより、OCTA画像を劣化させることなく、眼底内側の層の影響を受けてIS/OSやRPEなど高輝度な層を含むOCTA画像に描出されるプロジェクションアーチファクトを抑制することができる。ここで、図13は、最終的な脱相関値画像の各画素値に対応する、2枚の断層画像の各画素位置における輝度値の組の分布を示す。本実施例では、最終的な脱相関値画像の各画素値に対応する、2枚の断層画像の各画素位置における輝度値の組の分布から、背景ノイズの領域、光ショットノイズの領域及びプロジェクションアーチファクトを生じさせる高輝度領域が除去される。このため、背景ノイズ、光ショットノイズ及びプロジェクションアーチファクトが低減された、高いコントラストのOCTA画像を生成することができる。なお、図13においては、除去される領域が斜線で示されている。
また、本実施例では、OCTA画像生成部215が、OCTA断層画像(脱相関値画像)を平均する際に、閾値処理によってモーションコントラスト値が0に書き換えられた画素は無視して平均する。また、OCTA画像生成部215は、層境界を利用し被検体の所望の領域について深さ方向にモーションコントラスト値を平均する際に、閾値処理によってモーションコントラスト値が0に書き換えられた画素を無視して平均し、OCTA画像を生成する。
これにより、モーションコントラスト値の平均化処理において、モーションコントラスト値の平均値を小さくしすぎることなく、OCTA画像の画質を向上させることができる。
以下、図14を参照して、本実施例に係る高値閾値処理及びモーションコントラスト値の平均化処理(除外処理)等を含む、OCTA断層画像生成処理のフローについて説明する。図14は、本実施例に係るOCTA断層画像生成処理のフローチャートである。なお、処理内容が実施例2と同様である処理については説明を省略する。
本実施例に係るOCTA断層画像生成処理では、ステップS520において背景ノイズ閾値処理が行われたら、処理をステップS1401に進める。ステップS1401では、閾値算出部214が、ステップS502で算出された背景ノイズの平均値Naveと標準偏差Nσを用いて高値閾値thhi=Nave+A×Nσを求める。ここで、係数Aは任意の値であってよい。例えば、閾値処理の行われた最終的なOCTA画像を観察しながら、プロジェクションアーチファクトが低減するように係数Aを調整することができる。
ステップS1402では、OCTA画像生成部215が、2枚の断層画像C(l,n),(l,n+1)の同一座標の画素における輝度値Ic(l,n),Ic(l,n+1)がIc(l,n) 2+Ic(l,n+1) 2>thhi 2を満たすか否かを判断する。Ic(l,n) 2+Ic(l,n+1) 2>thhi 2が満たされる場合には、OCTA画像生成部215は、該当する座標(画素位置)に対応する脱相関値画像の画素位置の画素値を0にする。一方、Ic(l,n) 2+Ic(l,n+1) 2>thhi 2が満たされない場合には、OCTA画像生成部215は、該当する座標に対応する脱相関値画像の画素位置の画素値を維持する。
その後、ステップS521において同一箇所の画像処理ループが終了したら、画像生成部210は処理をステップS1403に進める。ステップS1403においては、OCTA画像生成部215が、N−1枚の脱相関値画像の各画素位置において画素値を平均する際に、閾値処理によって画素値が0にされた画素について、画素値を平均化処理から省く。具体的には、OCTA画像生成部215は、ステップS519、ステップS520、及びステップS1402において画素値が0にされた画素について、画素値を平均化処理から省く。その後、OCTA画像生成部215は、平均された画素値を用いてOCTA断層画像を生成する。
なお、ステップS519、ステップS520、及びステップS1402において画素値が0にされた画素については、例えば各閾値処理において、画素値を0にした画素位置を記憶部240に記憶させておくことができる。この場合にはOCTA画像生成部215は、記憶部240に記憶されている画素位置の画素については、画素値を平均化処理から省く。なお、OCTA画像生成部215は、他の処理により閾値処理によって画素値を0にした画素位置を特定してもよい。
OCTA断層画像の生成処理が終了したら、ステップS505において、OCTA画像生成部215が、生成されたOCTA断層画像に基づく3次元のOCTAボリュームデータを用いてOCTA画像(OCTA正面画像)を生成する。ここで、OCTA画像生成部215は、層境界を利用し被検体の所望の領域について深さ方向にモーションコントラスト値を平均する際に、閾値処理によってモーションコントラスト値が0に書き換えられた画素を無視して平均し、OCTA画像を生成する。
具体的には、OCTA画像生成部215は、ステップS519、ステップS520、及びステップS1402において画素値が0にされた3次元のOCTAボリュームデータの画素について、画素値を平均化処理から省く。なお、被検体の所望の領域とは、各OCTA断層画像において網膜と硝子体の境界及び神経節細胞層と内網状層の境界で囲まれた領域等、任意に設定されてよい。また、ステップS519、ステップS520、及びステップS1402において画素値が0にされた画素については、ステップS1403と同様に、各閾値処理において記憶部240に記憶されたものを読み出すことで特定することができる。なお、他の処理により閾値処理によって画素値を0にした画素位置を特定してもよい。
なお、OCTA画像を生成する際に、平均値ではなく最頻値や中央値等を算出し画素値とする場合であっても、上記と同様に閾値処理によって画素値が0になった画素を計算から省いてもよい。
上記のように、本実施例では、取得部220は、被検体の断層データの取得に用いられる撮像光学系100の複数の背景データを取得する。さらに、閾値算出部214は、複数の背景データの平均値Nave及び標準偏差Nσと、並びに係数Aを用いて高値閾値thhi=Nave+A×Nσを算出する。OCTA画像生成部215は、高値閾値thhiに基づいて、対象画素に対応する断層データの値Ic1及びIc2について、Ic1 2+Ic2 2>thhi 2が満たされる場合にはOCTA断層画像の対象画素の画素値を0とする。また、OCTA画像生成部215は、Ic1 2+Ic2 2>thhi 2が満たされない場合には、脱相関値を用いてOCTA断層画像の対象画素の画素値を算出する。
また、OCTA画像生成部215は、対象画素の画素値が算出された複数のモーションコントラスト画像を平均する際に、閾値に基づいて画素値が0にされた対象画素の画素値を平均化処理から除外する。
本実施例によれば、断層画像において高輝度で描出される層に現れやすいプロジェクションアーチファクトを抑制することができ、さらに、閾値処理により画素値が0となった画素を無視して平均化処理を行うことでOCTA画像の画質を向上することができる。
なお、本実施例に係る高値閾値処理についても、断層画像の輝度値と高値閾値とを用いてマスク画像を生成し、閾値処理を行ってもよい。また、本実施例については、実施例2を参照しながら説明したが、本実施例に係る高値閾値処理及び平均化処理(除外処理)は、実施例1、実施例3、並びに実施例1及び2の変形例にも適用することができる。さらに、各閾値処理の順番は上述の順番に限られず、高値閾値処理が光ショットノイズ閾値処理や背景ノイズ閾値処理よりも先に実施されてもよいし、これらと並行して実施されてもよい。
(各種閾値処理の変形例)
上記実施例及びその変形例において、閾値処理の結果は、画素値を0にするか、対象の画素位置の画素値を維持するかの2択であった。しかしながら、この閾値の境界に幅を持たせ、対象の画素位置の画素値について0から1の値を乗じるようにしてもよい。
例えば、実施例1の背景ノイズ閾値thnに対して半径方向にδrだけ幅をもたせ、thn2−(δr/2)2<I1 2+I2 2<thn2+(δr/2)2となる座標では、モーションコントラスト値に0から1の間で線形に変化する重みwを乗算してもよい。この場合には、I1 2+I2 2がthn2+(δr/2)2に近づくほど、重みwが1に近づくように重みwを設定する。なお、その他の閾値に関しても同様に、幅を持たせることができる。
より具体的には、閾値算出部214が、算出した閾値に幅δを設ける。その後、OCTA画像生成部215は、閾値と比較される値が閾値に対して±δの範囲に含まれる場合には、脱相関値に対して、0〜1の範囲で、比較される値がノイズの領域から遠ざかるほど1に近づく重みwを掛けた値を画素値として算出する。これにより、閾値をまたいでノイズの領域側に存在する信号、反対に、信号の領域側に存在するノイズを考慮した閾値処理を行うことができる。また、上記のように閾値についてマスクを生成する場合には、閾値の境界の幅に応じてマスクの画素値を0から1の間の値とすることで、同様の効果を奏することができる。
上記のように、上記実施例及びその変形例によれば、位置合わせされた複数枚の断層画像の同一座標同士の画素の信号強度から算出される閾値により、光ショットノイズ及び背景ノイズ由来のモーションコントラスト値を除去することができる。その結果、高いコントラストのモーションコントラスト画像を提供することができる。
また、上記実施例で説明してきた閾値等のパラメータに関して、装置を使用するユーザーがマウスやキーボードを通して、GUIにてパラメータを変更してもよい。具体例として挙げると、光ショットノイズ閾値の係数α、背景ノイズ閾値の係数β、光ショットノイズ閾値に関する対角線近傍閾値の角度γ、高値閾値の係数A、及び上述した閾値の境界の幅δなど種々の関連パラメータを各々変更できるようにしてもよい。
なお、上記実施例及びその変形例による処理は、断層画像の輝度値に基づいて行われる構成に限られない。上記各種処理は、撮像光学系100で取得された干渉信号、干渉信号にフーリエ変換を施した信号、該信号に任意の処理を施した信号、及びこれらに基づく断層画像等を含む断層データに対して適用されてよい。これらの場合も、上記構成と同様の効果を奏することができる。また、モーションコントラストデータは上述のように脱相関値に限られず、モーションコントラストデータの算出に用いられる断層データの分散値、又は最小値を最大値で割った値等のモーションコントラストデータとして既知の他の値であってもよい。
上記実施例及びその変形例では、取得部220は、撮像光学系100で取得された干渉信号や画像生成部210で生成されたフーリエ変換後のデータ等を取得した。しかしながら、取得部220がこれらの信号を取得する構成はこれに限られない。例えば、取得部220は、制御部200とLAN、WAN、又はインターネット等を介して接続されるサーバや撮像装置からこれらの信号を取得してもよい。同様に、取得部220は、撮像光学系100の背景信号等のノイズ信号を制御部200とLAN等を介して接続されるサーバ等から取得してもよい。
上記実施例及びその変形例では、OCT装置として、SLDを光源として用いたスペクトラルドメインOCT(SD−OCT)装置について述べたが、本発明によるOCT装置の構成はこれに限られない。例えば、出射光の波長を掃引することができる波長掃引光源を用いた波長掃引型OCT(SS−OCT)装置等の他の任意の種類のOCT装置にも本発明を適用することができる。
また、上記実施例及びその変形例では、分割手段としてカプラーを使用したファイバー光学系を用いているが、コリメータとビームスプリッタを使用した空間光学系を用いてもよい。また、撮像光学系100の構成は、上記の構成に限られず、撮像光学系100に含まれる構成の一部を撮像光学系100と別体の構成としてもよい。なお、上記実施例及びその変形例では、眼底観察系や前眼部観察系を含む撮像光学系について述べたが、OCTA画像を生成するための撮像光学系としてはこれら光学系を含まなくてもよい。
さらに、上記実施例及びその変形例では、被検体を人眼としたが、例えば、OCT撮影の対象は他の臓器等であってもよい。この場合、測定光学系は内視鏡等の構成を有していてもよい。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、実施例を参照して本発明について説明したが、本発明は上記実施例に限定されるものではない。本発明の趣旨に反しない範囲で変更された発明、及び本発明と均等な発明も本発明に含まれる。また、上述の各実施例及び変形例は、本発明の趣旨に反しない範囲で適宜組み合わせることができる。