連載
» 2020年10月28日 05時00分 公開

AI・機械学習のデータセット辞典:画像データをキーワード検索で効率的に収集する方法(Python「icrawler」のBing検索)

Bingキーワード検索による画像データの収集を、Pythonライブラリのicrawlerを使って簡単に行う方法を紹介する。たった3行のコードで非常にシンプル。

[一色政彦,デジタルアドバンテージ]
「AI・機械学習のデータセット辞典」のインデックス

連載目次

 機械学習などで画像データを使いたい場合に、既存のオープンデータセットを活用できれば手軽に済む。しかし既存のものが存在しない場合には自分でデータセットを作る必要があるだろう。画像を集める際に活用したいのがWeb検索エンジンではないだろうか。

 実際にGoogleなどで画像検索を行って1つずつ手動で収集することも不可能ではないが、できればプログラムを使ってある程度は自動化したい。そのようなニーズにマッチするPythonライブラリ「icrawler」があるので、本稿ではその使い方を紹介する。

icrawlerパッケージのインストール

 GitHub上でhellock氏によりオープンソース開発されているicrawlerはWebクローラーのミニフレームワークであり、BingやBaiduなどの検索エンジンに対応している(元々はGoogleにも対応していたが、2020/10/26執筆時点ではエラーが出て使用できない)。またicrawlerは、PyPIパッケージとして配布されており、Python環境で手軽にインストールできる(リスト1)。

!pip install icrawler

リスト1 icrawlerパッケージのインストール(Jupyter環境の場合)
通常のコマンドライン環境では、先頭の!は不要。

 図1はリスト1のコードを、Windows上のVisual Studio Code(以下、VS Code)における[ターミナル]で実行した結果である。

図1 icrawlerのインストール結果(Windows上のVS Codeでの例) 図1 icrawlerのインストール結果(Windows上のVS Codeでの例)

 それではさっそく使ってみよう。

icrawlerライブラリの使い方(Bing編)

 本稿では、icrawlerを使って「sunflower(ひまわり)」の画像をBing検索してみる。そのコードは、リスト2のように非常にシンプルだ。

# Bing用クローラーのモジュールをインポート
from icrawler.builtin import BingImageCrawler

# Bing用クローラーの生成
bing_crawler = BingImageCrawler(
    downloader_threads=4,           # ダウンローダーのスレッド数
    storage={'root_dir': 'images'}) # ダウンロード先のディレクトリ名

# クロール(キーワード検索による画像収集)の実行
bing_crawler.crawl(
    keyword="sunflower ひまわり",   # 検索キーワード(日本語もOK)
    max_num=100)                    # ダウンロードする画像の最大枚数

リスト2 icrawlerパッケージを使って画像を収集するコードの例

 特に難しいところはないと思うので、細かな説明は割愛する。リスト2内のコメントを参考にしてほしい。使用しているクラスやメソッドのAPIドキュメントは下記のリンク先にある。

 図2と図3はリスト2のコードを、同じくVS Codeの[ターミナル]で実行した結果である。

図2 icrawlerによる画像データの収集結果(Windows上のVS Codeでの例) 図2 icrawlerによる画像データの収集結果(Windows上のVS Codeでの例)

図3 収集した画像データの一覧(Windowsエクスプローラーでの例) 図3 収集した画像データの一覧(Windowsエクスプローラーでの例)

 「sunflower(ひまわり)」の画像がとても簡単に収集できた。

さらにicrawlerを活用するには

 上記のコード例だけで十分に活用できると思うが、icrawlerでは(例えば日付やライセンス、サイズなどで)フィルターを掛けたり独自にクローラーを拡張したりすることもできる。こういったicrawlerの詳細については、

を参照してほしい。

「AI・機械学習のデータセット辞典」のインデックス

AI・機械学習のデータセット辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。