1. 教師データの準備:**

Cityscapesのfineレベルのデータから、poleとbuildingのクラスをインスタンス化するためには、cityscapesscriptsを使用します。以下は一般的な手順です。

	from cityscapesscripts.helpers.labels import labels
	# cityscapesscriptsによるデータ処理
	# ここでは、poleとbuildingのみを対象としています。
	for label in labels:
		if label.name == 'pole' or label.name == 'building':
			label.trainId = label.id
		else:
			label.trainId = label.ignoreInEval

このスクリプトはCityscapesデータセットのラベルを変更します。poleとbuildingのインスタンスだけが訓練データとして扱われ、他のすべてのインスタンスは無視されます。

2. 転移学習:**

次に、Detectron2のMask R-CNNを使用して転移学習を行います。Cityscapesの学習済みモデルを使用し、上記で作成した教師データに対して学習します。

	from detectron2.data.datasets import register_coco_instances
	from detectron2.engine import DefaultTrainer
	from detectron2.config import get_cfg
	from detectron2 import model_zoo
	# 教師データセットの登録
	register_coco_instances("my_dataset_train", {}, "path_to_your_dataset.json", "path_to_your_images")
	# 設定の準備
	cfg = get_cfg()
	# Mask R-CNNの設定
	cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
	# Cityscapesの学習済みモデルを使用
	cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")
	# 新たな教師データセットの指定
	cfg.DATASETS.TRAIN = ("my_dataset_train",)
	# 学習の開始
	trainer = DefaultTrainer(cfg)
	trainer.resume_or_load(resume=False)
	trainer.train()

ここでの主なポイントは、設定(cfg)においてCityscapesの学習済みモデルを指定し、新たに作成した教師データセットを訓練データとして指定することです。

このパイプラインは非常に基本的なものであり、多くの設定や詳細が省略されています。Detectron2とcityscapesscriptsの公式ドキュメンテーションを確認して、より詳細な設定を行ってください。また、データのパス、設定のパラメータ等はあなたの環境に合わせて適宜修正してください。

Cityscapes


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS