以圖搜圖如何生成向量?

ponponon發表於2023-01-17

以圖搜圖的原理:將圖片轉成向量,然後透過歐式距離等等比較向量的距離,獲取兩個圖片的相似度

那最關鍵的一步:『將圖片轉成向量』,如何使用 python 實現呢?

可以使用 image2vector

安裝方式很簡單

pip install image2vector

用起來就更簡單了,你不用關心任何深度學習的東西,只要指定 image 就能無腦生成圖片的向量

from pathlib import Path
from typing import List
from iv import ResNet, l2

# Initialize a residual neural network
resnet: ResNet = ResNet(
    weight_file='weight/gl18-tl-resnet50-gem-w-83fdc30.pth'
)


# Generate a vector of specified images
# The generated vector is a List[float] data structure,
# the length of the list is 512, which means the vector is of 512 dimensions
vector_1: List[float] = resnet.gen_vector('example-1.jpg')

vector_2: List[float] = resnet.gen_vector('example-2.jpg')

# Compare the Euclidean distance of two vectors

distance: float = l2(vector_1, vector_2)

print('Euclidean Distance is ', distance)

參考:

相關文章