こんばんは,@PKです.
以前,CellProfilerに関する記事を書いたときに,「MeasureObjectSizeShape」モジュールで取得できる特徴量について,細かく触れることができませんでした.
今回は「MeasureObjectSizeShape」でどのような特徴量を取得できるのかについて紹介したいと思います.
MeasureObjectSizeShape
各オブジェクトのサイズや形を測定するモジュールです. 今回は二次元の画像解析の特徴量のみを説明します.
こちらもわかりやすい特徴量は定義だけ簡単に示します.
- Area: (2D only) : オブジェクト領域内のピクセル数
- Perimeter: (2D only) : 各オブジェクト領域の境界周囲にあるピクセル数
- Center_X, Center_Y : 任意のオブジェクトエッジから最も離れた点(重心)の(X,Y)座標
わかりやすい(自分が知っていた)のは上記だけだったのが驚きですね….
それでは残りの特徴量について,それぞれ紹介していきます.
FormFactor
FormFactor : 4 x π x 面積 / (周囲長)2の計算値
真円度を表す特徴量で,Circularityとも呼ばれます.
真円の場合は値が1になりますが,例えば以下のようなオブジェクトでは1以下の数値になります.
画像解析で丸みを指標とした特徴量を抽出するときに有効かと思います.
Solidity
Solidity : 面積包絡度= 実際の周囲長を巻き付けた面積 / 包絡周囲長を巻き付けた面積
以下の説明が非常に参考になりました.
粒子形状 - 粒子特性評価のベーシックガイド3-3 | Materials Talks マルバーン・パナリティカルのブログ
以下の図のように,滑らかな輪郭のオブジェクトでは,実際の周囲長を巻き付けた面積(青)と 包絡周囲長を巻き付けた面積(赤)はほぼ同じため1に近づきます.
一方で,凹凸や粗い輪郭をもつオブジェクトでは,Solidity=面積包絡度は1以下となります.
Solidityは,例えば刺激によって細胞が丸みを帯びた形から,ダイナミックに変化する場合の指標として非常に便利なのではないでしょうか.
Extent
Extent : オブジェクトのエリア値 / オブジェクトのBounding boxのエリア値
Bounding boxという聞きなれない単語が出てきたので調べました.
バウンディングボックス - TeX Wiki
「Bounding Box」とは,以下のようにオブジェクトを囲うのに必要な四角形をのことです.
Extentは,Solidityと同じようにオブジェクトの形状変化をとらえることができる特徴量です.
しかし,四角の箱でオブジェクトの面積を概算するので,Solidityと比べると精度が落ちるのでは,以下の記事で述べていました.
What is the application difference between extent and solidity in image processing? - Signal Processing Stack Exchange
EulerNumber
EulerNumber(オイラー数):8連結性を仮定して領域内のオブジェクトの合計数からそれらのオブジェクト内の穴の合計数を差し引いた数
画像処理ではよく出てくる?数値のようです.
Re - ImageJで学ぶ!: 第23回 2値画像処理の基本で学ぶ!
バイナリ イメージのオイラー数 - MATLAB bweuler - MathWorks 日本
EulerNumber数によって,オブジェクト内にどれくらいホールがあるかがわかります.
ミトコンドリア内の穴を数えることためにEulerNumberを使用している文献がありました.
Mitochondrial Morphological Features Are Associated with Fission and Fusion Events
https://www.researchgate.net/publication/323535857_Methods_for_imaging_mammalian_mitochondrial_morphology_A_prospective_on_MitoGraph
Eccentricity
Eccentricity : オブジェクトの領域と同じ2次モーメントを持つ楕円の離心率
離心率とは、円錐曲線(二次曲線)の特徴を示す数値のひとつで,
離心率e = 焦点からの距離と準線からの距離の比と定義されています.
離心率 - Wikipedia
高校の時に習いましたが(忘れましたね), 離心率 = 0 → 真円 0 < 離心率 < 1 → 楕円 となります.
以下のような楕円形の細胞の,おおまかな形を表すことができる特徴量といえると思います.
MajorAxisLength / MinorAxisLength
MajorAxisLength / MinorAxisLength : オブジェクトの領域と同じ2次中心モーメントをもつ楕円の長軸と短軸
「Eccentricity」の時と同様に,楕円形の細胞の形を表す特徴量の一つと考えることができます.
Orientation
Orientation : オブジェクトの領域と同じ2次中心モーメントをもつ楕円のX軸に対する傾き(-90度から90度まで)
こちらも「Eccentricity」「Major/MinorAxisLength」と同じく,以下のような楕円形の細胞で考えるとわかりやすいと思います.
Compactness
Compactness : The mean squared distance of the object’s pixels from the centroid divided by the area
Compactnessの上記説明がわかりませんでした.
理解出来たら追記します.
真円の時はCompactness=1で,不規則な形のオブジェクトや穴が開いているオブジェクトは1よりも大きい値を持つそうです.
下記図と同じ意味だと思うのですが,計算方法が違う気が… https://www.researchgate.net/figure/Compactness-analysis-for-artefact-identification_fig4_221000558
MaximumRadius
MaximumRadius / MedianRadius / MeanRadius : オブジェクト内の任意のピクセルから,オブジェクト外の最も近いピクセルまでの距離の最大値/中央値/平均値
わかりにくいですが,MaximumRadius について,細長いオブジェクトで考えてみると,MaximumRadius =オブジェクトの幅の1/2となることがわります.
細長いオブジェクトでは,上記どの値も小さくなります.
以下の論文でも,細胞の形態変化の指標として使っているようです.
Morphological features of IFN-γ–stimulated mesenchymal stromal cells predict overall immunosuppressive capacity | PNAS
MinFeretDiameter, MaxFeretDiameter
MinFeretDiameter, MaxFeretDiameter : オブジェクトの両側に接する2本の平行線の間の距離の最小値と最大値
「オブジェクトをノギスで測定したときの最大値と最小値」と考えるのが一番わかりやすいと思います.
Zernike shape features
Zernike shape features : Zernike多項式に基づいた形に関する特徴量
ん??という感じでしたので一番調べ物に時間がかかりました.
Zernike多項式についてわかりやすく紹介している記事がありました.
Zernike多項式 - その2 Zernike多項式とは:腰も砕けよ 膝も折れよ:So-net blog
以下引用です.
Zerike 多項式Unm(ρ,θ)は座標原点を中心にする単位円(半径1の円)の内部で定義された関数で
というようなものでRnm(ρ)は動径多項式と呼ばれるものである.
mの正負の区別は便宜上のもので、Fourier級数をei nθで書いたりcos nθとsin nθで書いたりするのと同じことである.
もともと丸いレンズの瞳の中で連続な収差を表現するために作られたので、丸いもののなかに連続に分布する「なにか」を表現するのに便利になっている.
つまり,「Zernike shape features」はオブジェクトの形を特徴づけることができる数値ということみたいです.
CellProfilerのでは、0次から9次までのゼルニケ多項式が計算され、合計30個の測定値を得ることができるそうです.
計算できる次数に制限はありませんが、高次多項式の情報は少なくなるとのことでした.
Manualを読むと,
The Zernike features are computed within the minimum enclosing circle of the object, i.e., the circle of the smallest diameter that contains all of the object’s pixels.
Measurement — CellProfiler 3.0.0 documentation
とあったので,オブジェクトを囲む最小の円を用意して,その円に対してゼルニケ多項式を計算するようです.
使用例を調べてみると,がん細胞の形を分類している論文がありました.
https://pubs.rsc.org/en/content/articlelanding/2016/ib/c6ib00100a/unauth#!divAbstract
以上で取得できる特徴量の紹介を終わります.
自分で調べていて,それぞれの特徴量が何を表しているか知ることができたので,非常に勉強になりました.
ちなみに「MeasureObjectIntensity」で取得できる特徴量も紹介していますので,ぜひ参考にしてください.
MeasureオブジェクトはintensityやSizeShapeだけでなく,他にもあるので機会をみつけて紹介していきたいと思います.