前提・実現したいこと
Jupyter notebook上でGoogleImageCrawler
を使ったクローラーのアプリを実行し、リストに入っているキーワードの検索結果画像を収集しようとしています。
発生している問題・エラーメッセージ
現在のプログラムを実行するとエラーは出ずにクローラーが走るのですが、プログラム実行後のフォルダを見ても、画像データが1つも入っていないという状態です。
生成されるフォルダは、
「fishimages/アイゴ/test」、「fishimages/オニカサゴ/test」...となっており、各魚名のフォルダの配下に「train」フォルダが生成されません。
正しく画像データが保存されるようにするには、何を修正すればいいのでしょうか。
該当のソースコード
『データ収集からWebアプリ開発まで 実践で学ぶ機械学習活用ガイド』サポートサイトよりダウンロードしたファイル内のコードです。
フォルダ構成はkikagaku_sample/chapter5/5-2.ipynb
となっており、5-2.ipynb
と同じ階層にfishimages
という画像データを保存するフォルダを作成した上で、以下のプログラムを実行しています。
5-2.ipynb
Python
1import os # …① 2import glob # …② 3import random # …③ 4import shutil # …④ 5from icrawler.builtin import GoogleImageCrawler # …⑤ 6 7# 画像を保存するルートディレクトリパス 8root_dir = 'fishimages/'# …⑥ 9# 魚画像検索キーワードリスト 10fishnames = ['アイゴ', 'オニカサゴ', 'カサゴ', 'カワハギ', 'キュウセンベラ', 11 'クサフグ', 'ソウシハギ', 'マハゼ', 'マアジ', 'マイワシ', 'ミノカサゴ', 12 'メジナ', 'メバル'] 13# 収集画像データ数 14data_count = 100 15 16def crawl_image(fishname, datacount, root_dir): 17 18 crawler = GoogleImageCrawler(storage={'root_dir':root_dir + fishname + '/train'}) 19 # …⑦ 20 21 filters = dict( 22 size='large', 23 type='photo' 24 ) 25 # …⑧ 26 27 # クローリングの実行 …⑨ 28 crawler.crawl( 29 keyword=fishname, 30 filters=filters, 31 max_num=datacount 32 ) 33 34 # 前回実行時のtestディレクトリが存在する場合、ファイルをすべて削除する 35 if os.path.isdir(root_dir + fishname + '/test'): 36 shutil.rmtree(root_dir + fishname + '/test') 37 os.makedirs(root_dir + fishname + '/test') 38 # …⑩ 39 40 # ダウンロードファイルのリストを取得 …⑪ 41 filelist = glob.glob(root_dir + fishname + '/train/*') 42 # ダウンロード数の2割をtestデータとして抽出 …⑫ 43 test_ratio = 0.2 44 testfiles = random.sample(filelist, int(len(filelist) * test_ratio)) 45 46 for testfile in testfiles: 47 shutil.move(testfile, root_dir + fishname + '/test/') 48 49# 魚画像キーワードの数だけクローリングを実行 50for fishname in fishnames: 51 crawl_image(fishname, data_count, root_dir)
試したこと
pip install icrawler
でインストールは完了しています。
また、以下のようにクローラーは動いているのは確認済みです。
2020-05-07 18:30:37,916 - INFO - icrawler.crawler - start crawling... 2020-05-07 18:30:37,917 - INFO - icrawler.crawler - starting 1 feeder threads... 2020-05-07 18:30:37,920 - INFO - feeder - thread feeder-001 exit 2020-05-07 18:30:37,920 - INFO - icrawler.crawler - starting 1 parser threads... 2020-05-07 18:30:37,924 - INFO - icrawler.crawler - starting 1 downloader threads... 2020-05-07 18:30:38,610 - INFO - parser - parsing result page https://www.google.com/search?q=%E3%82%A2%E3%82%A4%E3%82%B4&ijn=0&start=0&tbs=isz%3Al%2Citp%3Aphoto&tbm=isch 2020-05-07 18:30:40,681 - INFO - parser - no more page urls for thread parser-001 to parse 2020-05-07 18:30:40,682 - INFO - parser - thread parser-001 exit 2020-05-07 18:30:42,932 - INFO - downloader - no more download task for thread downloader-001 2020-05-07 18:30:42,935 - INFO - downloader - thread downloader-001 exit 2020-05-07 18:30:42,948 - INFO - icrawler.crawler - Crawling task done!
補足情報(FW/ツールのバージョンなど)
jupyter-notebook : 6.0.3



回答1件
あなたの回答
tips
プレビュー