以图搜图的原理:将图片转成向量,然后通过欧式距离等等比较向量的距离,获取两个图片的相似度
那最关键的一步:『将图片转成向量』,如何使用 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)
参考:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。