Re - ImageJで学ぶ!: 第63回 ImageJによる領域抽出の応用ーFijiとレベルセット法で学ぶ!

2015年12月13日日曜日

第63回 ImageJによる領域抽出の応用ーFijiとレベルセット法で学ぶ!

ImageJでは、画像濃淡値の閾値による領域抽出が標準で用意されていますが、今回は、最先端かつ応用的なレベルセット法という領域抽出法を紹介します。画像の中の対象周辺の濃度勾配の計算を繰り返しながら正確に輪郭を抽出する手法です。


領域抽出手法について


ImageJで実行可能な領域抽出法については、これまでにいくつか基礎的な方法に限り説明を行ってきました。今回は、ImageJを生命科学の研究用に特化させた"Fiji"を使って、より応用的な輪郭抽出法の説明を行います。
Fijiについては、第51回ImageJの高次画像処理パッケージーFijiについてーで学ぶ!を参照してください。

Fijiで扱うことができる領域抽出法は多く揃っています。以下に、主な領域抽出法を紹介します。
  • 自動局所閾値処理
  • マルチ大津法
  • 最大エントロピー閾値法
  • 混合モデリング閾値法
  • Nuclei Watershed Separation法
  • SIOX:Simple Interactive Object Extraction
  • レベルセット法
それぞれの画像の領域抽出法には長所・短所があるため、目的に応じて使い分ける必要があり、この手法自体に優劣をつけて評価できるものではないことに留意してください。
2015年12月現在、Fijiのプラグインに設定されているSegmentationツールは次の通りです。
(各機能の詳細はFijiサイトで確認してください。)

レベルセット法による領域抽出法


レベルセット法は、オブジェクトの境界を抽出するために、濃淡の高低差のある位置を認識し、隣接するピクセル間の差分の評価を偏微分方程式(partial differential equations :PDE)をベースに解いていく手法です。

抽出領域が成長している間は、常に新しく追加されたピクセルに現在の選択範囲の差を計算し、事前に選択された濃淡値の差を越える場合、または、それが事前に選択された成長の特定レートを超えている場合は、成長が止まります。
しかし、このアルゴリズムは、オブジェクトの外側に領域が漏洩する可能性もあります。

輪郭がオブジェクトの境界に到達するまでのレベルは、ゴムバンドの強さとグレーレベルの違いを事前にレベルセット設定ダイアログから選択して調整できます。
この設定の中にあるスピーディーファーストマーチングは、処理データが大きい場合に、高速なレベルセットによる輪郭抽出として使用できます。例えば、画像が大きければ、スピーディーファーストマーチングでスタートして、レベルセット法でオブジェクトを定義し、輪郭抽出を使用することで、オブジェクト検出の効率化を図ることができます。


Fijiによるレベルセット法のアルゴリズムの詳細


レベルセット法の高速マーチングアルゴリズム(Flood fillに似ている処理方法)はオブジェクトの境界に向かってシード点から展開されていきます。アクティブな輪郭は、画像の複数の固有の幾何学的測定に準じて、特定時間内に初期輪郭を進化させます。

Fijiに実装されたプラグインで測定されるのは、エッジベースの制約、グレー値ペナルティ、あいまいなエッジにおけるオブジェクト境界漏れを防ぐ局率制約です。

Fijiのプラグインは偏微分方程式を用いた図に示す式に基づいています。


(補足)

  • Φ(i)=最新の抽出表面
  • W(a)=移流重量
  • F(a)=移流力
  • W(c)=曲率重量
  • F(c)=曲率力
  • ∇I*=ガウシアンぼかし画像間の差分



Fijiを用いたレベルセット法の実行例


レベルセット法はFijiのプラグインから選択できます。
まず、対象とする画像を表示して、ポイントアイコン(またはポリゴンや円形ROI)を選択し、領域抽出したシードポイントを決定します。次に、FijiメニューからPlugin>Segmentation>Level Setsを選択すると、図のようなダイアログが表れます。
一般的なものであれば、デフォルトの設定でうまく抽出できるようになっています。



シード点にポイントツールを利用している場合は、"Use Fast Marching"をチェックすると、高速に輪郭を探してくれます。また、ある程度マニュアルで任意ROIによって形状を作ってから"Use Level Sets"をチェックして実行すると、ROIをうまく対象画像の辺縁にマッチしてくれます。"Use Level Sets"はデフォルトでOnになっています。

上記設定で、そのままOKをすると、領域抽出が繰り返され、設定された閾値領域がすべて抽出されると、自動で計算が止まり、ROIと二値化画像を表示してくれます。


(抽出結果:濃淡値の閾値"50")

この例では、脳腫瘍が他の脈管や白質・灰白質などの正常組織とコントラストが淡く、デフォルト設定ではうまく抽出されませんでした。造影コントラストのある脈管系を除く脳全体が抽出されたことがわかります。

そのため、境界条件をもう少し厳しくして、再度、計算させてみると、次のように、画像内の脳腫瘍と同じ濃淡レベルの領域が複数抽出されました。


(濃淡値の閾値を"50"→"10"に設定)



(実行結果)

同じような目的で利用する領域抽出処理にSnake処理がありますが、利用する上で大きく違うポイントは、レベルセットでは、このように複数の関心領域を同時に分けて検出してくれるところです。

また、上記の例では、外側に膨張していく処理ですが、Region expand設定をInsideにすれば、内側に膨張させていくことも可能です。

このように、レベルセット法はImageJのデフォルトの領域ツールとは異なり、シードポイントを拡張しながら対象物の輪郭を抽出したり、同様に対象物の周辺から輪郭に向かって縮小していくような微分方程式を用いた優れた領域抽出法です。

今回は、画像の領域抽出処理の中でもレベルセット法による輪郭抽出について説明を行いました。本処理は、特に、腫瘍の面積を正確に計算したり、複雑な輪郭形状を抽出するのに便利な領域抽出法です。

次回もImageJによる画像処理の応用について説明を行います。


参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(26・1) 2011, p86-87」

0 件のコメント:

コメントを投稿