【发布时间】:2021-07-15 14:09:02
【问题描述】:
我正在尝试从图像中提取特征,然后将这些特征与数千张图像中的一系列特征进行比较。
image = Image.open('C:/Users/Timmi/Desktop/test_image.jpg')
query = fe.extract(image)
print(np.shape(query))
print(np.linalg.norm(query))
dists = np.linalg.norm(features - query, axis=1)
print(dists)
print(np.shape(features))
dists2 = (np.linalg.norm(features, axis=1)) - (np.linalg.norm(query, 0))
print(dists2)
ids = np.argsort(dists)[:3]
scores = [(dists[id], img_paths[id]) for id in ids]
print(scores)
这是打印出来的
(4096,)
0.99999994
[0.96851873 1.0867099 1.054868 ... 1.2182273 1.2591194 1.2556202 ]
(31303, 4096)
[-1158. -1158. -1158. ... -1158. -1158. -1158.]
[(0.0, WindowsPath('static/img/image1.jpg')), (0.0, WindowsPath('static/img/image2.jpg')), (0.08249867, WindowsPath('static/img/image3.jpg'))]
我试图找出这两行之间的区别:
dists1 = np.linalg.norm(features - query, axis=1)
dists2 = (np.linalg.norm(features, axis=1)) - np.array(np.linalg.norm(query, 0))
【问题讨论】:
-
这是两种不同的数学运算,所以当然输出不同的结果,你的问题究竟是什么?
-
这是一道数学题,不是编程题