Edited at

たった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アプリを作ろうと考えています。