#はじめに
deep learningで画像識別を使用と思ったので学習用の画像をFlickrAPIを使って画像を集めるときのメモです。
使用したpythonのバージョンは3.6です。
#FlickrAPIライブラリのインストール
pythonでFlickrAPIを使うためのライブラリをpipを使ってインストールします。
pip install flickrapi
#コード
あらかじめ、APIの公開鍵と秘密鍵を入手しておいてください。
また、最後にtime.sleep()
などで少し時間をおいて画像を保存するようにすると、サーバーに負荷が軽減されるのでいいです。
download.py
from flickrapi import FlickrAPI
from urllib.request import urlretrieve
from pprint import pprint
import os,time,sys
#キーの作成
key = "公開鍵の番号"
secret = "秘密鍵の番号"
wait_time = 1
#コマンドラインで保存先と検索する名前を指定する
AnimalName = sys.argv[1]
#保存先の指定
SaveDir = "./" + AnimalName
#APIキーの作成
flickrapi = FlickrAPI(key,secret,format='parsed-json')
#検索する
result = flickrapi.photos.search(
text = AnimalName,
per_page = 400,
media = 'photos',
sort = 'relevance',
safe_search=1,
extras = 'url_q,licence'
)
#結果の表示
photos = result['photos']
#pprint(photos)
for i ,photos in enumerate(photos['photo']):
url_q = photos['url_q']
filepath = SaveDir + '/' + photos['id'] + '.jpg'
if os.path.exists(filepath):continue
urlretrieve(url_q,filepath)
time.sleep(wait_time)
このプログラムは第一引数に保存先を指定しているのでこのファイルの保存先と同じ名前のディレクトリをあらかじめ作っておく必要があります。
たとえば、牛の画像を保存するときにcow
と第一引数に指定するときにディレクトリ構成は以下のようにしておく必要があります。
root/
├─download.py
└─cow