LoginSignup
66
83

More than 5 years have passed since last update.

たった2つのコマンドで1000枚の画像をダウンロードする

Last updated at Posted at 2018-12-04

機械学習のための学習データセットとして、はたまた観賞用として、たくさんの画像が欲しくなる時があると思います。
そんな時に便利なPythonパッケージをGitHubで発見したので、紹介します。

結論

せっかち方のために、まずは結論から。
ターミナルを開き、以下の2つのコマンドを順に入力することで、猫の画像が1000枚ダウンロードされます。
cat.PNG

pip install google_images_download
googleimagesdownload -ri -cd "chromedriver.exe" -l 1000  -k "猫"

ただし、準備しなければ2つ目のコマンドでエラーが出ます。

準備

  • Google Chromeをインストールする

説明不要だと思います。

  • Pythonをインストールする

これも説明は省略します。筆者は公式のインストーラーでインストールしました。

  • chromedriverをダウンロードする

使用するPythonパッケージの動作に必要なものです。以下リンクからダウンロード可能です。
http://chromedriver.chromium.org/downloads
ダウンロード後は、カレントディレクトリ(ターミナルが開いているディレクトリ)に解凍してください。

  • コマンドを入力

準備は完了です。2つのコマンドを入力してください。

pip install google_images_download
googleimagesdownload -ri -cd "chromedriver.exe" -l 1000  -k "猫"

解説

  • コマンドその1
pip install google_images_download

google_images_downloadというPythonパッケージをあなたのPython環境にインストールしています。

このパッケージでは、Google画像検索を利用して画像をダウンロードすることができます。

Python-2.xと3.xの両方のバージョンに互換性があるようです。

  • コマンドその2
googleimagesdownload -ri -cd "chromedriver.exe" -l 1000  -k "猫"

google_images_downloadでは、オプションで何の画像を、どのようにダウンロードするかを指定することができます。

オプションとは、 -ri のように - を付けてパッケージに渡される引数のことです。

-ri
related_imagesの略で、大量の画像(100枚~)をダウンロードする場合に必要なようです。

-cd "chromedriver.exe"
chromedriverの略で、-riオプションを使用する場合に必要なようです。-cdに続いて、準備でダウンロードしたchromedriver.exeへのパス(場所)を入力する必要があります。このパスは、絶対パスでも相対パスでも良いようで、今回は相対パスで入力しています。

-l 1000
limitの略で、ダウンロードする画像の枚数上限を設定できます。今回は上限を1000枚に設定しています。

-k "猫"
keywordsの略で、Google画像検索に使うキーワードを設定できます。今回はに設定しています。

これ以外にもたくさんのオプションが用意してあるので、別な使い方をしたい方は、README(英語)を見て試してみるといいと思います。

感想

検索関係のAPIや、有名なスクレイピング関係のPythonパッケージでは、ここまで簡単に、大量の画像を入手することは難しいと思うので、google_images_downloadを作成してくださった方には感謝したいです。

筆者は、これで学習データを収集して、Google Cloud Auto MLで分類モデルを作成し、ユーザの入力した画像を分類できるようなWebアプリを作ろうと考えています。

66
83
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
83