跑kcf算法的MATLAB代码需要下载Visual Tracking Benchmark数据集,国内对官网的网速状况不佳,运行代码自带的download_video.m下载速度很慢,观察网页http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html源码发现,下载链接的标签有统一格式,编写爬虫可以很容易实现自动下载。
在Ubuntu上使用多线程下载工具axel, 可以实现快速下载。
# -*- coding: utf-8 -*-
import urllib.request
import re
import os
# open the url and read
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
page.close()
return html
# compile the regular expressions and find
# all stuff we need
def getUrl(html):
reg = r'href="(.*)" target="blank">'
url_re = re.compile(reg)
url_lst = url_re.findall(html.decode('UTF-8'))
return(url_lst)
def getFile(url):
file_name = url.split('/')[-1]
os.system('axel -n 100 '+url)
return
root_url = 'http://cvlab.hanyang.ac.kr/tracker_benchmark/' #下载地址中相同的部分
raw_url = 'http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html'
html = getHtml(raw_url)
url_lst = getUrl(html)
print(url_lst)
if not os.path.isfile('benchmark_video'):
os.mkdir('benchmark_video')
os.chdir(os.path.join(os.getcwd(), 'benchmark_video'))
for url in url_lst[:]:
url = root_url + url #形成完整的下载地址
getFile(url)
享受风驰电掣的下载速度吧~