前言
之前在研究图像检索的过程中,在网上看了一些资料,发现许多方法的检索结果并不是非常适合我的数据集,于是在翻看论文的时候看到了*《Large-Scale Image Retrieval with Attentive Deep Local Features》*等几篇论文,其中还包含Unifying Deep Local and Global Features for Image Search,于是进行尝试了下。
源码地址
环境的搭建
由于Linux的环境搭建很方便,网上教程也很多,就不过多赘述,在此也贴上Windows环境搭建的链接,方便同学们查看:点击这里
复现过程
准备工作
在GitHub中,作者给出的教程也很详细,也就是先下载数据集,解压,如果不想自己训练模型,也可以直接通过调用已经训练好的模型。
需要注意的一点就是,需要注意各部分代码中包含的路径,如果路径错误,因为raise error经过‘包装’,不会告知你是具体在哪里的错误。
更换数据集
在论文中,对于验证集,所有相关信息都写在了mat文件中,明显如果我们要更换验证集,就需要大量的标注工作,但是经过实践后,只需要我们更换一下dataset文件里面的ReadDatasetFile()函数,进行常规的文件读取就可以完成更换数据集的工作。
def ReadDatasetFile():
file_dir = 'E:\\all_images\\school_nearby\\'
index_list = os.listdir(file_dir)
index_list = "".join(index_list)
index_list = index_list.replace('jpg','')
index_list = index_list.split('.')
for i in index_list:
if i == '':
index_list.remove(i)
qfile_dir = 'E:\\all_images\\query_image\\'
query_list = os.listdir(qfile_dir)
query_list = "".join(query_list)
query_list = query_list.replace('jpg','')
query_list = query_list.split('.')
for i in query_list:
if i == '':
query_list.remove(i)
return query_list,index_list
这个就是我我自己写的读取文件函数,是可用的。
实际效果
经过实践,发现效果真的非常不错,只能说作者团队还是非常强的,因为这个模型的泛化能力真的非常强大!
我们来看一下实际效果:
因为我想要的效果是能够根据输入的图片来查找最接近的地理位置,而这个方法无疑能够达到我的需求,很赞呐!!
结言
在这一领域,还需要太多太多需要学习~~