白色パッチ除去手法比較

-- Views

November 23, 25

スライド概要

大津法、緑値、標準偏差、レンジを比較しました。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

白色パッチ判定手法の比較 WSI 病理画像解析における白色領域(背景・カバーガラス)除外手法の検討 1

2.

検証目的 問題: 解析で白色背景やカバーガラスの影を除外したい 組織領域のみを効率的に抽出する必要がある 課題: カバーガラスの影(グレー領域)の誤検出 H&E染色の色特性を考慮する必要 WSI 2

3.

検証手法 つの白色パッチ判定手法を比較: 1. otsu法 - Otsu二値化ベース(デファクト) 2. green法 - 緑チャンネル平均値ベース 3. std法 - RGB標準偏差ベース 4. ptp法 - RGB範囲(max-min)ベース 4 3

4.

法 - 二値化ベース 1. Otsu 概念 グレースケール化してOtsu二値化し、白ピクセル率を計算 実装 def calc_patch_otsu(patch): gray = cv2.cvtColor(patch, cv2.COLOR_RGB2GRAY) _, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) white_pixels = np.sum(binary == 255) total_pixels = patch.shape[0] * patch.shape[1] return white_pixels / total_pixels 4

5.

法 - 結果 (画像1) Otsu 閾値: 0.8 5

6.

法 - 結果 (画像2) Otsu 閾値: 0.8 6

7.

法 - 評価 Otsu 優れた点 理論的に確立された手法(1979年) パラメータフリー(閾値自動決定) 実装が簡単(OpenCVで1行) 問題点 カバーガラスの影を組織として誤検出 グレースケール化で色情報を喪失 WSI特有の問題に対応していない 総合評価 精度: ★★☆☆☆ | 速度: ★★★★☆ 結論: デファクトだが実用上は不適 7

8.

2. green 概念 法 - 緑チャンネル平均 緑チャンネルのみを抽出し、平均値が高いほど白色と判定 実装 def calc_patch_green(patch): green = patch[:, :, 1] / 255.0 green_mean = np.mean(green) return green_mean 8

9.

green 法 - 結果 (画像1) 閾値: 0.9 9

10.

green 法 - 結果 (画像2) 閾値: 0.9 10

11.

green 法 - 評価 優れた点 組織部分をおおむね正確に検出 カバーガラスの影を除外できる 計算が非常に軽い(単純平均のみ) H&E染色の色特性を活用 課題 緑チャンネルのみの情報 std法より精度が劣る 閾値調整が必要 総合評価 精度: ★★★★☆ | 速度: ★★★★★ 結論: 速度重視の場合の選択肢 11

12.

3. std 概念 法 - RGB標準偏差 各ピクセルのRGB標準偏差を計算し、ばらつきが小さいピクセルを白色と判定 実装 def calc_patch_std(patch, rgb_std_threshold=7.0): rgb_std_pixels = np.std(patch, axis=2) < rgb_std_threshold white_pixels = np.sum(rgb_std_pixels) total_pixels = patch.shape[0] * patch.shape[1] return white_pixels / total_pixels 12

13.

std 法 - 結果 (画像1) 閾値: 0.75 13

14.

std 法 - 結果 (画像2) 閾値: 0.75 14

15.

std 法 - 評価 優れた点 組織部分を正確に検出(赤枠) カバーガラスの影を正しく除外(青枠) 色情報を活用して無彩色を判定 課題 計算コストが高い(標準偏差計算) 各ピクセルで平均→二乗→平方根の処理が必要 総合評価 精度: ★★★★★ | 速度: ★★☆☆☆ 15

16.

法 - RGB範囲(max-min) 4. ptp 概念 各ピクセルのRGB範囲(max-min)を計算し、範囲が小さいピクセルを白色と判定 実装 def calc_patch_ptp(patch, rgb_range_threshold=20): rgb_range = np.ptp(patch, axis=2) # peak-to-peak white_pixels = np.sum(rgb_range < rgb_range_threshold) total_pixels = patch.shape[0] * patch.shape[1] return white_pixels / total_pixels 16

17.

法 - 結果 (画像1) ptp 閾値: 0.9 17

18.

法 - 結果 (画像2) ptp 閾値: 0.9 18

19.

法 - 評価 ptp 優れた点 法と同じ発想(色のばらつき検出) std法とほぼ同等の精度 std法より高速(平方根計算不要) カバーガラスの影を正しく除外 組織部分を正確に検出 std 課題 法よりわずかに計算量が多い可能性がある場面も std 総合評価 精度: ★★★★★ | 速度: ★★★★☆ 結論: std法の高速代替として最適 19

20.

総合比較 手法 精度 速度 カバーガラス影除外 otsu ★★☆☆☆ ★★★★☆ green ★★★★☆ ★★★★★ std ★★★★★ ★★☆☆☆ ptp ★★★★★ ★★★★☆ 推奨度 20

21.

結論と提言 主要な発見 法の限界: デファクトだが、カバーガラスの影を誤検出 2. 色情報の重要性: RGB情報を活用する手法が優秀 3. std法とptp法が最高精度: ほぼ同等の品質 4. 速度と精度のトレードオフ: ptp法が最適バランス 1. Otsu 推奨手法 精度最優先: std法 または ptp法 - 最高品質の判定 実用的選択: ptp法 - std法と同等の精度でより高速 速度最優先: green法 - 最も高速だが精度は劣る 非推奨 Otsu 法: WSI解析には不適(論文慣習に惑わされない) 21

22.

まとめ 実用上の選択: 精度重視: std法 (0.75) または ptp法 (0.9) - ほぼ同等の品質 バランス重視: ptp法 (0.9) - 精度と速度の最適バランス 速度重視: green法 (0.9) - 最速だが精度は妥協 重要な教訓: 論文や慣習が必ずしも最適解ではない 精度が重要ならstd法またはptp法を選ぶべき 実際のデータで検証し、適切な手法を選択すること 22