
145
5.9 情報変化量の使い方
実は、
3
章では、異なる閾値を与えて何度もセグメンテーションを繰り返した上で、よくでき
たセグメンテーションを選んでいます(ヒトだからこそできることです)。これは、画像セグメン
テーションのプログラミングとしてはまったく満足のいかない方法です。自動化するすべが必要な
のは明らかです。
閾値が高いほどセグメンテーションがよさそうなことは見てとれます。しかし、比較すべき正解
データがあるので、具体的な数値を決められるはずです。我々が持てる疎行列のすべてのスキルを
駆使すれば、それぞれのセグメンテーションの
VI
を計算できます。
variation_of_information(auto_seg_10, human_seg)
3.44884607874861
variation_of_information(auto_seg_40, human_seg)
1.0381218706889725
高い閾値の情報変化量は小さいので、より優れたセグメンテーションと言えます。では、取り得
る閾値の範囲で
VI
を計算し、ヒトによる正解データに最も近いセグメンテーションを選んでみま
す(図
5-10
)。
# Try many thresholds
多数の閾値を試してみる。
def vi_at_threshold(seg, tiger, human_seg, threshold):
auto_seg = rag_segmentation(seg, tiger, threshold)
return variation_of_information(auto_seg, ...