Average Hash解説

ここでは、類似画像検出法の一つであるAverage HASHを説明します。

二つの画像を比較して、類似度を算出するAverage Hash法を解説することにより、類似度の意味を理解して頂くことを目的としています。

  1. 比較元の画像ファイルを読込みます。
  2. 元画像をグレースケール化します。

  3. 元画像の縦横比を無視して、16×16ピクセル(総画素数256)に縮小します。
    10倍に拡大表示しています。

  4. これで画像のRGB(赤・緑・青)の各色素は輝度情報(0~255の値を取ります)のみになります。
  5. RGBのいずれかを選択し(RGBどれを選択しても得られる輝度情報は同じ値である)、全ピクセル(256ピクセル)の輝度平均(Average)を求めます。
  6. 改めて全ピクセル平均輝度(Average)と各ピクセルの輝度を比較し、ピクセル輝度が平均輝度より大きい場合は”1″、ピクセル輝度が平均輝度以下なら”0″として判定して行きます。
  7. この結果、256ビットのAverage Hashが求められます。(以下このAverage Hashをソースハッシュと呼びます)
  8. 次に、比較先画像を読み込みます。

  9. 上記2~6と同じ処理を比較先画像に対して行います。
    出来上がったAverage Hashをターゲットハッシュと呼びます。
  10. ソースハッシュとターゲットハッシュをXOR(排他的論理和)演算します。
     ソースハッシュ   :1001100011001011・・・・10011 256ビットの2進数
     ターゲットハッシュ :1001000010000111・・・・10010 256ビットの2進数
     XOR演算値     :0000100001001100・・・・00001 256ビットの2進数

  11. XOR計算値から”1″の数を求めます。1の所が一致していないことになっっています。これをUnmatched Countと呼ぶことにします。
  12. 次式で一致度(%)を求めます。
    一致度(%)=100-(Unmatched Count/256)

  13. この結果、
    比較元画像と

    比較先画像の

    一致度は82.4%となります。

  14. IMCで採用している画像比較法はAverage Hash法のみならず
     Perceptual Hash法(公知の方法)
     Color Hash法(独自開発)
     Contour Hash法(独自開発)
    共にXOR演算値を求めて、一致度(%)を算出しています。

最後にAverage Hashアルゴリズムを開発されたDr. Neal Krawetz氏に感謝いたします。