Rotational Morphological Processingとは

Mathematical morphologyは様々な画像処理に利用されており,その有用さはよく知られています.Mathematical morphologyを用いた画像処理では,処理対象画像と構造要素(Structuring Element, 以降はSEと表記)と呼ばれる小図形を用いて演算を実施します.SEは画像中の情報の“プローブ”として働き,必要な構造を特異的に検出し,抽出することができます.その形や大きさは任意に選ぶことができるため,処理目的にあわせてSEを設計していきます.  

 Openingと呼ばれる演算ではSEの“あてはめ”によって構造の抽出を実現します.画像中において,SEがあてはまる領域は保存し,そうでない領域は削除します.この性質は“平滑化”の効果をもたらすため,opening演算は平滑化フィルタとしても用いられます(つまり,除去したいノイズはSEのあてはまらない部分領域であると考えます).

 しかし,SEの形状や向きによっては,望ましい処理が実現できないことがあり,繊細な構造の取り扱いが必要となる生物・医学画像処理では大きな問題になる場合があります. 以降では,サンプル画像(図1)を用いて,この問題が起こる原因と解決策について説明します.

図1: サンプル画像
図1: サンプル画像

図1中の解析対象は,図2で示すように,青色およびオレンジ色の長方形の物体であり,それ以外はノイズとします(図2).ふたつの解析対象は,同一種類のものですが,対象2(オレンジ色)は対象1(青色)の重心を中心として,時計まわりに45度回転しています.

図2: ふたつの対象とノイズ
図2: ふたつの対象とノイズ

ここでは,図1からこれらふたつの対象を抽出することを考えます.このために,opening演算を適用します.正方形のSEを用いた結果を図3に示します.ノイズはすべて除去されており,ふたつの対象が抽出されていますが,対象2は形状が変形し,長方形ではなくなっていることが分かります.これは対象2の領域中で,SEとフィットしなかった部分が除去されていることが原因です.この詳細を図4に示します.

図3: Opening画像
図3: Opening画像
図4: opening演算の過程.ErosionによってSEより小さな構造は除去され,完全に除去された領域はdilationによって復元されることはない.原画像中の物体の輪郭を点線で示した.
図4: opening演算の過程.ErosionによってSEより小さな構造は除去され,完全に除去された領域はdilationによって復元されることはない.原画像中の物体の輪郭を点線で示した.

Opening処理の過程は,原画像をまずerosionし,次いでdilationを行います.Erosionにより,SEよりも小さな構造が除去されます.この段階でノイズはすべて除去されていますが,対象領域も縮小されています.Dilationによって,縮小された領域を膨張させ復元させますが,SEの形状・向きによって,膨張の方向が制限されてしまいます.このため,対象2では四隅がもとの形状まで復元せず,変形しています.

 このような結果では,対象の面積や周囲長等を計測した場合,正確な値を得ることができません.また,医用画像等,複雑かつ繊細な形状で構成された対象の場合,本来,存在すべき構造が消失する場合も生じ,対象を誤認識する可能性もでてきます. Mathematical morphologyに基づく画像処理はノイズ除去や平滑化等に有効であり,その処理は画像解析に必須のものでもありますが,一方で深刻な問題を生じさせる性質も持ち合わせています.そこで,mathematical morphologyの有用な点を活用するためにも,このような欠点を補う方法論が必要となりました.

問題が生じる原因は,SEの形状と向きが解析対象の形状とフィットしないということにあります.そこで,「画像を回転させ解析対象がフィットするようにしたらどうか?」と考えたことが,rotational morphological processingを開発した発端となります.  

 このサンプル画像の場合は,対象2は対象1に対し,時計まわりに45度回転しているので,画像をその重心を中心として,反時計まわりに45度回転させ,opening処理を実行します.ここでは,回転角を\(\theta\)とし,反時計まわりを正とします.また,原画像を\(\it f\)と表し,これを\(\theta\)だけ回転させた画像を\(f_{\theta}\),そのopening画像を\(\gamma(f_{\theta})\)と表します.

図5: 回転画像に対するopening
図5: 回転画像に対するopening

結果を図5に示します.対象2はSEと向きが揃うため,欠損なく構造が復元しましたが,当然のことながら,今回は対象1に変形が生じます.そこで,回転なしの結果\(\theta\)=\(0^{\circ}\)と反時計まわりに45度回転させた画像の結果を合成(統合)すれば,対象1,2とも,もとの形状に復元した結果が得られることが期待されます(図6).合成を行うため,まずは,回転させたopening画像を時計まわりに45度回転させ,もとの画像の向きに戻します.ここで,\(\theta\)だけ回転させたopening画像を\(h_{\theta}\)と表します.最後に,各画像\(h_{\theta}\)の同一位置にある画素値の最大値を出力します(図7).

図6: Rotational morphological processingの過程
図6: Rotational morphological processingの過程
図7: 同一の画素位置における画素値のmax演算
図7: 同一の画素位置における画素値のmax演算

実際には,画像中の対象の回転方向は不明ですので,複数の角度で画像を回転させてそのつどopening演算を実行します.回転角\(\theta\)は,\(0^{\circ}\leq\theta<180^{\circ}\)の範囲で設定します.通常,SEは正方形,ディスク状,線状等,回転対称性(この場合は180度回転しても,もとの図形と同一になる)を持つものを用いますので,ある画像とそれを180度回転させた画像に対するopeningの結果は同一になるためです.回転角は,上記の範囲を\(N\)等分することで決定します.つまり,原画像を\(\it i\)回(\(i=0,1,…,N-1\))回転させ処理を行います.このときの回転角は\(\theta_{i}=\frac{180}{N}i\)と表されます.Rotational morphological processingによるopeningは一般的に以下のように記述できます. \[ \Gamma (x,y)=max_{i\in(0\dots N-1)}h_{\theta_{i}}(x,y) \] なお,rotational morphological processingに基づくclosing(openingの双対演算)の場合は,max演算の代わりにmin演算を用いて定義されます.

処理結果(対象の構造の復元結果)の精度と計算時間のトレードオフを考えると,正方形などのSEを使用する場合は,\(\it N\)=8,が最適値となります(kimori et al., Ultramicroscopy, 2007). 本手法は,医用画像や顕微鏡画像の処理において,多様な用途に適用されています(Kimori Y., J. Clin. Bioinforma., 2011,Kimori Y., J. Synchrotron Rad., 2013. Kimori Y., et al., J. Theor. Biol., 2016.)