[Ch 07]バイナリ画像処理−自動進化:Otsu法


しきい値の自動決定方法


  • ビデオのヒストグラムが二重ピークで、前景&背景画素分布が似ている場合?

    Bimodel分布は統計学で2つの異なる最値を持つ連続確率分布である.下図に示すように、2つの極大値の確率分布関数図を示します.


  • ヒストグラムは二重ピークですが、前景&背景画素の分布が大きく異なるとしたら?

  • Otsu進化法


  • 入力ビデオがバックグラウンド(background)とオブジェクト(object)の2つの部分からなると仮定する→二重ピークヒストグラム

  • 任意の閾値Tで区切られた2つの画素分布群の中で最も分散が少ないTを選択する.

  • 最適化アルゴリズム(最適化アルゴリズム)


  • Within-class variance

    しかし、上記入力のTについては、0から255までスキャンが必要となるため、長い時間がかかる.

  • Otsuしきい値
  • argminargmin:「argumentofmin」という意味です.すなわち、ある関数を最小にする定義ドメインのポイント、要素、またはパラメータです.
    したがって,これはtの値が分散を最小限に抑えることを意味する.

  • 克服方法:Withinクラス分散の最小化とBetweenクラス分散の最大化


  • すべてのt値について𝜎²𝐵𝑖𝑡𝑤𝑒𝑒𝑛(𝑡)最適Tを求める.これは時間が遅いという欠点がある.

  • したがって,再帰的に効率的な計算を行うと速度が速くなる.すなわち、演算速度は、以前の重み付けw₁(t−1)w₁(t−1)を用いて改善される.

  • Otsuメソッドを使用した自動移行の例

    src = cv2.imread('rice.png', cv2.IMREAD_GRAYSCALE)
    th, dst = cv2.threshold(src, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
    
    print("otsu's threshold:", th)
    otsu's threshold: 131.0
    dstの底部では,この進化は完全に実現されなかった.ここまで進化の仕方をしっかり勉強して次のレッスンにいきましょう