这是一个过程。
1. 进入imagenet 的下载页面并选择“下载图片 URL”。
2. 从页面底部的链接下载图片URL列表,例如fall 2011's list。
3. 从他们的 URL 下载图片(这可能需要几天时间)。
请注意,某些 URL(我上次检查时约为 5%)不再有效,并将返回“存根”flickr 图像。
这是我用来使用convert
实用程序下载图像的 perl 脚本:
#!/usr/bin/perl
use strict;
use warnings;
use Digest::MD5 qw(md5_hex);
use File::Copy;
my $base = "/path/to/imagenet/train/";
open my $fh, '/path/to/train_image_urls.txt' or die "Cannot not open url list: $!";
while( my $line = <$fh> ) {
# a line in the url list looks like:
# n00005787_13 http://www.powercai.net/Photo/UploadPhotos/200503/20050307172201492.jpg
chomp($line);
if ( $line =~ /^(n\d+)_(\d+)\s+(\S.+)$/ ) {
my $type = $1;
my $filename = $1 . "_" . $2;
my $url = $3;
my $dst = "$base/$type/$filename" . ".JPEG";
if (! -d $base.$type ) {
mkdir($base.$type)
}
my $convertCmd = "convert \"$url\" $dst";
if ( system( $convertCmd ) == 0 ) {
if ( -e $dst ) {
my $size = -s $dst;
# check that image is not a "flickr" stub:
if ( $size == 24921 || $size == 6898 ) {
open( my $FILE, $dst );
binmode($FILE);
my $md5sum = Digest::MD5->new->addfile($FILE)->hexdigest;
if ( $md5sum eq "513dd080b92472dab22ad3e09f58f1af" || $md5sum == "ed15d4fe8b5680d1b3e01c0d2778d145" ) {
print $invl "$dst\n";
move( $dst, $base . "../invalid/" );
}
close($FILE);
}
}
} else {
# invalid image file
}
} else {
# error downloading an image
}
}
close $fh;
exit(0);