機械学習のための学習データセットとして、はたまた観賞用として、たくさんの画像が欲しくなる時があると思います。
そんな時に便利なPythonパッケージをGitHubで発見したので、紹介します。
結論
せっかち方のために、まずは結論から。
ターミナルを開き、以下の2つのコマンドを順に入力することで、猫の画像が1000枚ダウンロードされます。
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アプリを作ろうと考えています。