Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
87
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
87
Help us understand the problem. What are the problem?