实验室需要NUS-WIDE数据库中的原图,数据集的地址为http://lms.comp.nus.edu.sg/research/NUS-WIDE.htm 由于这个数据只给了每个图片的URL,所以需要一个小爬虫程序来爬取这些图片。在图片的下载过程中建议使用VPN。由于一些URL已经失效,所以会下载一些无效的图片。
1 # PYTHON 2.7 Ubuntu 14.04 2 nuswide = "$NUS-WIDE-urls_ROOT" #the location of your nus-wide-urls.txt 3 imagepath = "$IMAGE_ROOT" # path of dataset you want to download in 4 f = open(nuswide, 'r') 5 url = f.readlines() 6 import re 7 import urllib 8 import os 9 reg = r"ImageData.+?jpg" 10 location_re = re.compile(reg) 11 reg = r"(ImageData.+?)/0" 12 direction_re = re.compile(reg) 13 reg = r"http.+?jpg" 14 image_re = re.compile(reg) 15 for i in url: 16 filename = re.findall(location_re, i) 17 direction = re.findall(direction_re, i) 18 image = re.findall(image_re, i) 19 if image: 20 path = imagepath+filename[0] 21 path_n = imagepath+direction[0] 22 print path_n 23 if os.path.exists(path_n): 24 urllib.urlretrieve(image[1], path) 25 else: 26 os.makedirs(path_n) 27 urllib.urlretrieve(image[1], path)
update 1:
我在使用数据集的nus-wide-urls.txt文件时,为了避免‘\’的转义字符问题,将其中的'\'替换为了'/'。