利用shell指令碼下載ImageNet資料集
阿新 • • 發佈:2019-01-10
第一次寫部落格分享近期的一些工作
ImageNet介紹
ImageNet是目前世界上影象識別最大的資料庫,該資料庫包含了海量的影象資訊,同時這些影象基本都有標籤資訊,這避免了自己手工標記影象,給使用者節省了不少時間。
準備工作
在下載資料集前,需要在官網註冊,官網的註冊連結:http://www.image-net.org/signup
注意,在註冊的時候,Email最好是填學校的郵箱,就是字尾是edu.cn的郵箱,基本每個學生都會有一個郵箱的。
註冊完,就可以申請許可權了,官網上說註冊郵箱像類似gmail,Hotmail這些郵箱基本不會給下載許可權,申請完,就可以去學校郵箱點選連結獲得下載許可權。
登入官網: http://www.image-net.org/login登入賬號,檢視my profile
圖中的username 以及 accesskey是後面下載資料集需要的東西。
開始下載
在官網上查詢自己需要的物體圖片,在ImageNet上每個類別的圖片都有自己的synset,synset網址:http://www.image-net.org/archive/words.txt,在本地建立一個檔案,儲存自己需要的synset。
以下為本人的shell批處理程式碼:
#!/bin/bash
#save_path="$1"
class_id="$1"
#讀取檔案內容並儲存
id_arr=($(cat $class_id | sed '/^#.*\|^$/d'))
id_num=${#id_arr[@]}
n=0
for var1 in ${id_arr[*]}
do
#$(wget -c ${id_arr[n]} -O ${name_arr[n]})
$(wget -c "http://www.image-net.org/downloads/bbox/bbox/${id_arr[n]}.tar.gz" -O "${id_arr[n]}.tar.gz")
$(wget -c "http://www.image-net.org/download/synset?wnid=${id_arr[n]}&username=[此處填寫你的username]&accesskey=[此處填寫你的accesskey]&release=latest&src=stanford" -O "${id_arr[n]}.tar")
let n+=1
done
echo "download finsh"
然後執行 bash [批處理的名字] [儲存synset檔案的名字] 即可開始下載