CT Lab

第32章 セグメンテーション

本章では、しきい値処理、領域拡張、モルフォロジー、連結成分、U-Net による領域分割を扱います。

セグメンテーションは、画像から関心のある領域を切り出す処理です。骨・臓器・腫瘍・欠陥などを、背景や他の組織から分けて、それぞれの画素に「これは何か」というラベルを付けます。体積や面積の計測、3 次元表示(第28章の等値面はセグメンテーション結果から作ることも多い)、放射線治療の標的設定など、多くの応用の土台になります。

しきい値処理と Otsu 法

CT 値のように、組織ごとに値がはっきり違う場合、もっとも単純なセグメンテーションはしきい値処理です。ある値以上を前景、未満を背景とします。問題はしきい値をどう決めるかです。ヒストグラムが二つの山(前景と背景)に分かれているとき、Otsu 法は「二つのクラスの間の分散(クラス間分散)が最大になる」しきい値を自動で選びます。これは、前景と背景をもっともよく分離する境界にあたります。

Otsu しきい値背景前景しきい値モルフォロジー膨張収縮開・閉で整形

しきい値(Otsu)とモルフォロジー。左: 二峰性ヒストグラムを、クラス間分散が最大になるしきい値で背景と前景に分ける。右: 二値マスクを膨張(太らせ穴を埋める)・収縮(細らせ小片を消す)で整える。開は収縮→膨張、閉は膨張→収縮。

モルフォロジーで整える

しきい値だけで作ったマスクは、たいてい荒れています。ノイズによる孤立した小片が前景に紛れたり、本来つながっているべき領域に小さな穴が空いたりします。これを整えるのがモルフォロジー演算です。二値マスクに対して、構造要素(小さな窓)を使って次の操作を行います。

  • 収縮(erosion):窓の全画素が前景のときだけ前景を残す。物体を細らせ、細い突起や孤立した小片を消す。
  • 膨張(dilation):窓に前景が一つでもあれば前景にする。物体を太らせ、小さな穴や切れ目を埋める。
  • 開(opening):収縮してから膨張。大きさをほぼ保ったまま、小片や細い突起を除く。
  • 閉(closing):膨張してから収縮。大きさをほぼ保ったまま、小さな穴や隙間を埋める。

整えたマスクは、連結成分ラベリングで「いくつの塊があるか」「各塊の面積はいくつか」を数えられます。これは第7章の非破壊検査で、しきい値を超えた低密度領域を欠陥として数えたのと同じ流れです。

シミュレーション:切り出して整える

臓器と骨、ノイズ、ごま塩の小片を持つファントムをしきい値で二値化します。「Otsu」ボタンでしきい値を自動選択できます。しきい値だけのマスク(中央)にはノイズの小片が残りますが、モルフォロジーの「開」をかけると(右)小片が消え、骨の塊だけが残ります。連結成分の数(components)と前景の割合(area)を見てください。しきい値を動かすと、拾う組織が変わります。

元画像

WL 0.500 / WW 1.00ドラッグで WL/WW 調整

しきい値マスク

WL 0.500 / WW 1.00ドラッグで WL/WW 調整

整形後(モルフォロジー)

WL 0.500 / WW 1.00ドラッグで WL/WW 調整
連結成分の数2
前景の割合5.7%

ファントム、しきい値処理後のマスク、モルフォロジー処理後のマスク。Otsu 法、開閉処理、連結成分解析による前景領域の変化を示す。

しきい値では足りないとき

しきい値は、組織ごとの値が重ならない場合には強力ですが、値が近い組織どうし(軟部組織どうしなど)は分けられません。そこで、種画素から輝度の似た連結領域を広げる領域拡張、エッジに沿って輪郭を進化させる動的輪郭(スネーク・レベルセット)、画素をグラフのノードとみなして最小切断を求めるグラフカット、そして近年は、大量の手作業ラベルから領域の見分け方を学習する**深層学習(U-Net など)**が使われます。U-Net は第12章で見た畳み込みネットワークのセグメンテーション版で、医用画像セグメンテーションの標準になっています。古典的手法は透明で速く、学習型は複雑な境界に強い、という住み分けです。

この章の要点

セグメンテーションは画像に「これは何か」のラベルを付ける処理です。値のはっきり違う組織はしきい値処理で切り出せ、Otsu 法がクラス間分散を最大にするしきい値を自動で選びます。しきい値で荒れたマスクは、収縮・膨張・開・閉のモルフォロジーで整え、連結成分で塊の数と面積を測ります。値が近い組織には、領域拡張・動的輪郭・グラフカット・深層学習(U-Net)といった、より高度な手法が使われます。

参考文献

このページの内容