0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ImageHashのみで類似画像検知ができるか?

Last updated at Posted at 2020-08-15

はじめに

ImageHashのハミング距離が 0 が同一画像、 1~10 が潜在的に似ている画像とのことだが、
ImageHashのみで類似画像検知ができるか再確認する。

ソースコード

ハッシュは、dhushを使用する。

参考:
https://tech.unifa-e.com/entry/2017/11/27/111546

sample.py
import imagehash
from PIL import Image

hash1 = imagehash.dhash(Image.open('./images/001.png'))
hash2 = imagehash.dhash(Image.open('./images/002.png'))
hash3 = imagehash.dhash(Image.open('./images/003.png'))

print(hash1, hash2, hash3)

print('001.png:002.png - {}'.format(hash1 - hash2))
print('001.png:003.png - {}'.format(hash1 - hash3))
print('002.png:003.png - {}'.format(hash2 - hash3))

使用した画像

本プログラムでは以下の画像を使用する。
002.png と 003.png は似た画像を選び、
001.png は、ポーズは違うが中央にキャラクターがいる構図は同じ様になっている。

1 2 3
001.png 002.png 003.png
001.png 002.png 003.png

実行結果

001.pngとほかの画像のハミング距離は、それぞれ16と12となっていて大きく異なっている。
002.pngと003.pngはハミング距離が8となっている。
通常「1~10」が潜在的に似ている画像とのことだが、全く異なる画像であるため誤検知といえる。
先日の投稿でも記載したが、Imagehashのみで類似画像を判定させるというのは難しいといえる。

3868e0f870706979 a269e8e8f0f4f070 b860e0e8f1f0f070
001.png:002.png - 16
001.png:003.png - 12
002.png:003.png - 8
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?