Googleから画像を大量に取得してくれる便利なPythonライブラリがあったので使用方法をメモとして残しておきます。
#動作環境
Windows10 Pro
Python 3.6
#Google images download
Google images downloadとはHardik Vasaさんが作成したPythonスクリプトです
Github:https://github.com/hardikvasa/google-images-download
簡単に欲しい画像を取得してくれるので滅茶苦茶便利です
##導入方法
インストール方法
pipかGitでインストールできますのでお好きな方でお試しください
私はpipでインストールしました
PS> pip install google_images_download
##使用方法
以下のコマンドを端末を開いて実行します
PS> googleimagesdownload --keywords "<search_word>, <search_word>..." --limit <limit_number>
<search_word>
と<limit_number>
には具体的な値を代入してください
例)
PS> googleimagesdownload --keywords "りんご,もも" --limit 20
オプションの説明については公式ドキュメントに記載されていますのでそちらをご覧ください
##実際に使用してみる
具体的な値を入れて画像を取得してみます。
検索ワード:りんご,もも
取得枚数 : 20
-o
オプションでダウンロードしたいディレクトリ先のパスを設定しています
-o
オプションを付けなければコマンドを実行したディレクトリ直下にdownloads
フォルダが作成されます
PS> googleimagesdownload --keywords "りんご,もも" --limit 20 -o "/fruit"
Item no.: 1 --> Item name = \u308a\u3093\u3054
Evaluating...
Starting Download...
Completed Image ====> 1.eyebg_center.jpg
Completed Image ====> 2.tsugaru.png
Completed Image ====> 3.wasefuji.png
Completed Image ====> 4.large.jpg
Completed Image ====> 5.Fotolia_144834045_Subscription_Monthly_M-e1511750334744.jpg
Completed Image ====> 6.sekaiichi.png
Completed Image ====> 7.51GHTXFiklL.jpg
Completed Image ====> 8.05036_2012_0115_IMG_4671.jpg
Completed Image ====> 9.joryu-box-2.jpg
Completed Image ====> 10.fuji.png
Completed Image ====> 11.07051618_595c92d5513e0.jpg
Completed Image ====> 12.51kmweJuOjL._SX425_.jpg
Completed Image ====> 13.41wPeSYQ47L.jpg
Completed Image ====> 14.jona.png
Completed Image ====> 15.0A3A7443.jpg
Completed Image ====> 16.IMG_7577.JPG
Completed Image ====> 17.17438.jpg
Completed Image ====> 18.fdfr_apple-1.jpg
Completed Image ====> 19.img_cc8194214c194a21ca74c28b4dda346a604634.jpg
Completed Image ====> 20.natsuakari.JPG
Errors: 0
Item no.: 2 --> Item name = \u3082\u3082
Evaluating...
Starting Download...
Completed Image ====> 1.o0800108811977554449.jpg
Completed Image ====> 2.t02200312_0800113511010460443.jpg
Completed Image ====> 3.17587190_1173094239482876_3589664121886343168_n-819x1024.jpg
Completed Image ====> 4.t02200310_0367051710420131740.jpg
Completed Image ====> 5.dd52a09052c43a346491162c23540598-15.jpg
Completed Image ====> 6.t01600170_0160017010203310557.jpg
Invalid or missing image format. Skipping...
Completed Image ====> 7.momo.jpg
Completed Image ====> 8.DSC_5434-600x600.jpg
Completed Image ====> 9.6abfb50b8030f24242e8bd15e02bb078.png
Completed Image ====> 10.o0800113612695828734.jpg
Completed Image ====> 11.momocrop_1280x960.jpg
Invalid or missing image format. Skipping...
Invalid or missing image format. Skipping...
Completed Image ====> 12.28818478937e3fb5a81d5c61f3f985e2.jpg
Completed Image ====> 13.ohtaniyuhya2.jpg
Completed Image ====> 14.momo0711.jpg
Completed Image ====> 15.8199e2a4b11b68fb7d7dfe354b342de8.jpg
Completed Image ====> 16.%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A31.png
Completed Image ====> 17.momo050-e1530415714668.jpg
Completed Image ====> 18.a6e9474b-e613-4aec-88e2-909a7c7b1467.jpg
Completed Image ====> 19.IjyQhYKS.jpg
Completed Image ====> 20.Twicemomo-e1460001081786.png
Errors: 3
Everything downloaded!
Total errors: 3
Total time taken: 21.02908730506897 Seconds
ダウンロードができればオプションで指定したディレクトリが作成され画像が保存されているはず!!
オプションで指定していなければdownloads
がコマンドを実行した直下に作成されています
PS C:\fruit> ls
ディレクトリ: C:\fruit
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2019/06/13 11:44 もも
d----- 2019/06/13 11:43 りんご
できた!!滅茶苦茶簡単!!
#最後に
Google images downloadの導入から使用するまで5分もかかりませんね
機械学習をしている人にとっては画像収集のツールとしてとてもワンダフルなものではないでしょうか
私自身も機械学習を勉強しているのでこれからもお世話になると思います
#おまけ
google images downloadはライブラリとしてインポートすることが出来ます
自分で使いやすいようにPythonでカスタマイズしてみました
from google_images_download import google_images_download
def fetch_image(params_dict):
response = google_images_download.googleimagesdownload()
arguments = {
"keywords" : params_dict['search_keywords'],
"limit" : params_dict['limit'],
"format" : params_dict['image_format'],
"output_directory": params_dict['output_directory'],
"no_directory" : True
}
response.download(arguments)
def input_argument():
params_dict = {}
search_keywords=input('search keywords:')
while not search_keywords:
search_keywords=input('search keywords:')
limit=input('How much do you want a image?:')
while not limit.isdigit():
limit=input('How much do you want a image?:')
print("0:'jpg',1:'gif',2:'png',3:'bmp',4:'svg',5:'webp',6:'ico',7:'raw'")
image_format = ['jpg','gif','png','bmp','svg','webp','ico','raw']
image_format_number = input('Please select image format number(0~7):')
while not image_format_number.isdigit() or int(image_format_number) > 7:
image_format_number = input('Please select image format number(0~7):')
output_directory = input('Where are you saving download image?')
if not output_directory:
output_directory = 'downloads'
params_dict['search_keywords'] = search_keywords
params_dict['limit'] = limit
params_dict['image_format'] = image_format[int(image_format_number)]
params_dict['output_directory'] = output_directory
return params_dict
def main():
params_dict=input_argument()
fetch_image(params_dict)
if __name__ == '__main__':
main()