下载faceScrub人脸数据库(单线程版本)

faceScrub 数据库是一个公共的名人人脸数据库,其相对与其他的数据库来说,优点是图像比较多,而且清晰度比较好,共有 107,818 张人脸图像, 涵盖530 个名人, 每个人大约200张图片。


居于版权的信息,该数据只提供了图片的链接,没有提供图片本身,跟另外一个数据库PubFig类似,所以我们需要自己写脚本来完成这个图像提取的功能。


这个数据库的文件在这里:http://vintage.winklerbros.net/facescrub.html 下载,文件不大,压缩后的大小只有8M多。


文件格式如下

name    image_id    face_id url bbox    sha256  
Aaron Eckhart   1   1   http://upload.wikimedia.org/wikipedia/commons/5/5d/AaronEckhart10TIFF.jpg   53,177,418,542  dec996994cf1eec33b53c203cff0e8f25638829fa2ad71bb0307d308fa11cdac  
Aaron Eckhart   2   2   http://movies.dosthana.com/sites/default/files/image-gallery/Aaron-Eckhart-Image.jpg    80,102,260,282  f84d0c3b1b854a51e6bc031bc353e801834e81df795e85ec1589ca895fb7c1ae  
Aaron Eckhart   3   3   http://upload.wikimedia.org/wikipedia/commons/5/52/Aaron_Eckhart_-_002.jpg  203,802,975,1574    8548658ef00f2ac4c384fbfff9d3ae225b4b9e0c2aa45e79a97420381c0f84c9  
Aaron Eckhart   4   4   http://25.media.tumblr.com/nJ2vga5sae9o2ks4FltK2lYvo1_400.jpg   62,90,231,259   658d83f35859d2f313ff660c1900427c21eae1c41e3035307428f62b645e64d7  
Aaron Eckhart   5   5   http://upload.wikimedia.org/wikipedia/commons/5/5e/Aaron-Eckhart-Traveling.jpg  276,120,492,336 1fa14fed3371280e8785df42cdc5d0335e7923a38f1b0632e3b88a52e850825f  
Aaron Eckhart   6   6   http://media.zenfs.com/en_us/Movies/PhotoG/2nd-annual-ampas-governors-awards-2010-aaron-eckhart-53335.jpg   235,158,540,463 121e8bea5caae215b537dc116534bbd2fa7a9a60c1910764d78794ec185aa527  
Aaron Eckhart   7   7   http://img2.timeinc.net/people/i/2008/news/080804/aaron_eckhart.jpg 60,57,178,175   bb2e227a9420d6325b67974231d334fc4620e807543a16030d51b35fa8a092f3  

所以我们可以很容易的采用提取文本的方法直接去读取和存储图像。

由于最近在学习 Python,就用 python来完成这个功能吧。


直接贴代码吧。

# -*- coding: utf-8 -*-  
""" 
Created on Tue Apr 07 15:28:53 2015 
 
@author: Chenriwei 
"""  
  
import os  
import re  
import time  
import urllib  
  
def get_all_iamge(filename):  
    fid=open(filename)  
    lines=fid.readlines()  
    for line in lines:  
        line_split=line.split('\t')  
        name=line_split[0]  
        image_id=line_split[1]  
        face_id=line_split[2]  
        box=line_split[4]  
        image_url=line_split[3]  
        print image_url+'\n'  
        print box+'\n'  
        if False == os.path.exists(name):  
            os.mkdir(name)  
          
        try:  
         urlopen=urllib.URLopener()  
         fp = urlopen.open(image_url)  
         data = fp.read()  
         fp.close()  
         file=open(name+'/'+image_id+'.jpg','w+b')  
         file.write(data)  
         print "下载成功:"+ image_url  
         file.close()  
        except IOError:  
         print "下载失败:"+ image_url  
  
if __name__ == "__main__":  
    get_all_iamge('facescrub_actors.txt')  


当然这里有个不足之处,是只采用了单线程,所以很慢,下载一个人的图像都要好久。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值