はじめに
本記事は、以下の手順をまとめた記事です。
- Webクローリングにより収集したデータをABEJA Platformに保存する
事前準備
Jupyter Notebookの起動
ABEJA Platformにて、ジョブ定義を作成して、ノートブックを立ち上げます。
icrawlerのインストール
Jupyter NotebookのTerminalでpip install icrawler
して、icrawlerをインストールします。
Webクローリングにより収集したデータをABEJA Platformに保存
準備が完了したら、ノートブックで以下のコードを実行します。
このコードでは、以下の2つのタスクを行っています。
- Webクローリングにより、5種類の花(マーガレット、タンポポ、バラ、ヒマワリ、チューリップ)の画像データを収集
- 収集したデータをABEJA Platformのデータレイクに保存
from pathlib import Path
from icrawler.builtin import GoogleImageCrawler
from abeja.datalake import Client as DatalakeClient
from abeja.datalake.storage_type import StorageType
# set credential
organization_id = 'XXXXXXXXXXXXX'
credential = {
'user_id': 'user-XXXXXXXXXXXXX',
'personal_access_token': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
}
datalake_client = DatalakeClient(organization_id=organization_id, credential=credential)
# define channel name and description
name = 'flower-data-crawling'
description = 'created by my crawler'
# create DataLake channel
channel = datalake_client.channels.create(name, description, StorageType.DATALAKE.value)
# download images
keyword_list = [u'マーガレット', u'タンポポ', u'バラ', u'ヒマワリ, 'u'チューリップ']
max_num = 100
filters = {'type': 'photo'}
image_root_dir = Path('image')
for keyword in keyword_list:
crawler = GoogleImageCrawler(storage={'root_dir': image_root_dir / keyword})
crawler.crawl(keyword=keyword, max_num=max_num, filters=filters)
# upload images
channel.upload_dir(image_root_dir)
数分で、Crawling task done!
が表示され、データ収集が完了しました。
データレイクに移動すると、先ほど指定した名前で、チャンネルが作成されています。
チャンネルの中身を確認すると、収集したデータが保存されています!
まとめ
本記事では、Webクローリングにより収集したデータをABEJA Platformに保存する手順をまとめました。ABEJA Platformには、アノテーションの機能があるため、その機能を使って保存したデータにラベル付けを行うことができます。詳細は、公式ドキュメントを参照ください
参考
Webクローリングで集めたデータを使い、このような機械学習モデルをつくることができます!
サンタクロースとサンタコスを見分けるDeep Learningモデルをサービス化してみた
https://tech-blog.abeja.asia/entry/santa-recognition-from-scratch
ABEJA Platformは、トライアルも提供しています。気になられた方は、是非、お気軽にお問い合わせください。また、フォーラムもありますので、是非、ご活用ください。
ABEJA Platformに関するお問い合わせ
https://abejainc.com/platform/ja/contact/
ABEJA Platform Forum
https://forums.abeja.io/