こんばんは、エンジニアの眠れない夜です。
機械学習をしたくても素材がない…
そんな問題を解決してくれるのが icrawler です。
icrawler はGoogle、Bing、Baidu、Flickrなどの画像検索サービスから画像をダウンロードしてくれる便利なPythonのパッケージです。
30秒あればあなたのPCでも再現できるのでぜひ読みながらプログラムを動かしてみてくださいね^^
icrawler の使い方
まずはインストールします。
pip install icrawler
インストールできたらPythonを起動して、下記のコマンドを実行してみましょう。
from icrawler.builtin import GoogleImageCrawler
crawler = GoogleImageCrawler(storage={"root_dir": "images"})
crawler.crawl(keyword="犬", max_num=100)
ターミナルで今いるディレクトリに images というフォルダが作成され、その中にどんどん画像がダウンロードされていきます。
ダウンロードする画像のサイズやカラーなどいろいろ指定できるので詳しくはドキュメントを参照してください。
http://icrawler.readthedocs.io/en/latest/builtin.html#search-engine-crawlers
どれくらい簡単に始められるかはこちらの動画を見ていただければ分かるはずです。
すっごく便利なので機械学習の画像集めにぜひご活用ください。
追記:大量の画像を集める場合(2019/02/26)
キーワードにもよるのですが、数10枚〜200枚程度で停止します。1つのキーワードについて集中的にキーワードを集めたい場合は複合キーワードにして集めると効果的です。
例:
- 犬
- 犬 走る
- 犬 座る
- 犬 (地名)
- 犬 (犬種)
- etc…
追記:エラー発生中(2020/03/13)
Googleの仕様が変わり現在画像を取得できなくなっているようです。
https://github.com/hellock/icrawler/issues/65
アップデートを試みているようなのですがうまくいっていないようです。
https://github.com/hellock/icrawler/pull/67
追記:画像ダウンロードエラーの解消 (2021/01/05)
Googleの仕様が変わってParserErrorが出ていたのですが、こちらの記事を参考にさせていただき、修正を行いました。(現在プルリクエスト中)
追記:画像ダウンロードエラーの解消 (2021/04/15)
プルリクエストがマージされていました。また、私がフォークしていたバージョンはエラーが発生するようになっていたためインストールは本家から行うように記事を修正しました。
[…] 機械学習の画像集めはiCrawlerがおすすめ! […]
python初心者です。
keras-yolo3の学習方法からこちらの記事を拝見させていただきました。
記事の内容通りに、インストールして実行をしようと試みたのですが、
以下のようなものがコンソールにでてきて画像を取得することができませんでした。
2020-03-12 12:04:33,018 – INFO – icrawler.crawler – start crawling…
2020-03-12 12:04:33,018 – INFO – icrawler.crawler – starting 1 feeder threads…
2020-03-12 12:04:33,018 – INFO – feeder – thread feeder-001 exit
2020-03-12 12:04:33,018 – INFO – icrawler.crawler – starting 1 parser threads…
2020-03-12 12:04:33,018 – INFO – icrawler.crawler – starting 1 downloader threads…
2020-03-12 12:04:33,651 – INFO – parser – parsing result page https://www.google.com/search?q=%E7%8A%AC&ijn=0&start=0&tbs=&tbm=isch
2020-03-12 12:04:35,704 – INFO – parser – no more page urls for thread parser-001 to parse
2020-03-12 12:04:35,707 – INFO – parser – thread parser-001 exit
2020-03-12 12:04:38,024 – INFO – downloader – no more download task for thread downloader-001
2020-03-12 12:04:38,031 – INFO – downloader – thread downloader-001 exit
2020-03-12 12:04:38,046 – INFO – icrawler.crawler – Crawling task done!
改善方法を教えていただけますでしょうか。
よろしくお願いします。
kisutaさん
コメントありがとうございます。
Googleの仕様が変わり現在利用できないようです。
https://github.com/hellock/icrawler/issues/65
アップデートを試みているようなのですがうまくいっていないようです。
https://github.com/hellock/icrawler/pull/67
時間が経てば誰かがアップデート版を公開してくれるのではないかと思います。