Python
初心者
機械学習
DeepLearning
画像認識

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

機械学習のための学習データセットとして、はたまた観賞用として、たくさんの画像が欲しくなる時があると思います。
そんな時に便利な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アプリを作ろうと考えています。