最近导师给的方向是geo-localization,刚开始确认方向,就在看论文,然后在下载数据集的时候碰到很多问题。经过一番钻研,也是找到了一些办法。
首先在https://github.com/TIBHannover/GeoEstimation里面有YFCC 4k的,可以直接下载。
而对于YFCC 26k,和MP-16,由于文件太大,并没有给出直接下载的方法,而是通过下载一个csv文件,文件里面有图片名和url进行下载,本来github是提供了一个脚本进行下载的,不过由于是在linux系统上进行的test,我电脑没有装linux系统,所以没办法,我自己写了一个很low的下载脚本,好在可以运行。我将脚本贴在下面,如果有人在做这方面,希望可以一起交流交流。
import pandas as pd
import requests
import os
data=pd.read_csv("C:/Users/hp/Downloads/mp16_urls.csv",names=['name','url'])#改成自己路径就可以
可以看到数据是这样的,name就是名字,但是有斜杠,在写入数据的时候会自动新建子文件夹,所以我直接将他删除了。
def process_filename(s):
return s[6:] # 将前面68/42/截取掉
data['name'] = data['name'].apply(process_filename)
data=data.dropna()#删除缺失值
data.reset_index(drop=True, inplace=True)#重置索引
count=0
len=data.shape[0]
start=int(0.04*len)#自己更改
end=int(0.05*len)
for i in range(start,end):
name = data.name[i]##此为图片的命名
url = data.url[i]
r = requests.get(url)
with open("D:/数据集/mp-16/"+name, 'wb') as code:
code.write(r.content)
count=count+1
if(count%500==0):
print(count)