以图搜图的原理:将图片转成向量,然后通过欧式距离等等比较向量的距离,获取两个图片的相似度

那最关键的一步:『将图片转成向量』,如何使用 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)

参考:


universe_king
3.4k 声望678 粉丝