LoginSignup
2
3

More than 3 years have passed since last update.

機械学習時に使えそうな画像自動収集パッケージ「icrawler」(0.6.3)の紹介

Posted at

画像を使った深層学習で面倒な画像集めを行うパッケージの紹介。

検索エンジンから画像を収集したり、画像投稿SNSや、webページからの画像をまとめて自動でDLできる

googleの画像検索エンジンの仕様変更に伴ってgoogle用の関数はまだ使えない様子
当記事投稿(2020-10-10)の4日前にもgoogleクローラーの修正が行われていたので、いずれ改善するのではないでしょうか。

検索エンジンからのダウンロード

bing,baiduからのダウンロード

from icrawler.builtin import BaiduImageCrawler, BingImageCrawler, GoogleImageCrawler


bing_crawler = BingImageCrawler(downloader_threads=4,storage={'root_dir': 'C:\\Users\\Desktop\\0\\your_dir'})
bing_crawler.crawl(keyword='cat', filters=None, offset=0, max_num=10)

画像の保存先をstorageに指定する
rooot_dirの後にpathでなく、文字を指定してやれば作業ディレクトリ中に指定した文字のファイルを自動作成してそこに収集される

keyで検索ワードを指定する

baidu_crawler = BaiduImageCrawler(storage={'root_dir': 'your_image_dir'})
baidu_crawler.crawl(keyword='cat', offset=0, max_num=100,min_size=(200,200), max_size=None)

max_numを1000に指定したところ800くらいまではDLされる
同じディレクトリを指定した場合の挙動は、ファイルの名前と拡張子が被っていた場合skipする

webサイトからのダウンロード

webサイト上の画像を片っ端から探しながらダウンロードしてくれる
ダウンロード後の振り分けが必要

from icrawler.builtin import GreedyImageCrawler

greedy_crawler = GreedyImageCrawler(storage={'root_dir': 'di'})
greedy_crawler.crawl(domains='https://ダウンロードしたい画像のあるURL.html', max_num=10,min_size=None, max_size=None)

SNS(Flickr)からのダウンロード

Flickrの検索結果をもとに画像をダウンロードする
メアドと名前程度の簡単なユーザー登録が必要(google mailではconfirmできない?)

sign in したあとAPIkeyをリクエストすることで使える

APIのリクエスト

非営利であること、利用目的、などを記入してAPIkeyを発行後コードを動かす

image.png

from datetime import date
from icrawler.builtin import FlickrImageCrawler

flickr_crawler = FlickrImageCrawler('発行したkeyをここに',
                                    storage={'root_dir': 'image_dir'})
flickr_crawler.crawl(max_num=100, tags='cat,dog',
                     min_upload_date=date(2019, 5, 1))

動作確認できていないがgoogleの場合

少し前までは100件しかダウンロードできない、という問題はあれどダウンロード自体はできてたんですけど
現在はダウンロードすら確認できなくなっていました

from icrawler.builtin import BaiduImageCrawler, BingImageCrawler, GoogleImageCrawler

google_crawler = GoogleImageCrawler(
    feeder_threads=1,
    parser_threads=1,
    downloader_threads=4,
    storage={'root_dir': 'er'})

google_crawler.crawl(keyword='cat', offset=0, max_num=10,
                     min_size=(200,200), max_size=None, file_idx_offset=0)

以上

参考サイト
Welcome to icrawler

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3