19
18

More than 1 year has passed since last update.

似ている画像を探したい Pythonでかんたんに画像の類似度を計算する

Last updated at Posted at 2022-01-22

Pythonで画像の類似度を数値にする方法です

source compare distance
pancake pancake 0.0
pancake pancake 20.9
pancake pancake 30.8

膨大な画像から似た画像を探すのはたいへん

現代は画像があふれる時代ですが、似ている画像を目で探すのは大変です。

類似度を数値化すれば、自動で探せる

画像感の類似度を数値化できれば、その数値を比較して、もっとも似ている画像をかんたんに探せます。

機械学習モデルをつかって画像類似度を数値化してくれるimgsim

手順

imgsimをインストールして、画像を768の数値に埋め込み、埋め込み間の差分を計算する。

import imgsim

img0 = cv2.imread("cake.jpg")
img1 = cv2.imread("pancake.jpg")

vtr = imgsim.Vectorizer()
vec0 = vtr.vectorize(img0)
vec1 = vtr.vectorize(img1)

dist = imgsim.distance(vec0, vec1)

print("distance =", dist)

distance = 20.859903

出てきた数値が小さければ小さいほど、似ていると評価されている。

以下の例で言うと、
いちごケーキといちごケーキは同じ画像なので差分が0。
いちごケーキといちごパンケーキの方が、いちごとライオンよりも似ている、ということになる。

source compare distance
pancake pancake 0.0
pancake pancake 20.9
pancake pancake 30.8

🐣


フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com

Core MLやARKitを使ったアプリを作っています。
機械学習/AR関連の情報を発信しています。

Twitter
Medium

19
18
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
19
18