detectron2の物体検出系で学習させるデータは,基本的に,Cocoフォーマットか?
本研究室の場合,labelmeで作成したjsonファイルからCocoフォーマットへの変換がよくある流れ.
labelme/examples/instance_segmentation/labelme2coco.py
Mask R-CNN†
demoフォルダにあるdemo.pyを使用する.
そしてModel Zooがいい。
設定ファイル(yaml形式)たちはconfigsにある。
- python demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --video-input /mnt/c/Users/survey/Documents/GitHub/detectron2_wkk/demo/GX070226s.mp4 --output /mnt/c/Users/survey/Documents/GitHub/detectron2_wkk/demo/outputs2.mp4 --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl
Cityscapes (Mask R-CNN)
- python demo.py --config-file ../configs/Cityscapes/mask_rcnn_R_50_FPN.yaml --video-input /mnt/c/Users/survey/Documents/GitHub/detectron2_wkk/video_nakatsugawa.mp4 --output /mnt/c/Users/survey/Documents/GitHub/detectron2_wkk/demo/nakatsu_cityscape_outputs.mp4 --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl
Faster R-CNN†
動かしたいが,情報が少ない..
- python demo.py --config-file ../configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml --video-input /mnt/c/Users/survey/Documents/GitHub/detectron2_wkk/demo/video_nakatsugawa.mp4 --output /mnt/c/Users/survey/Documents/GitHub/detectron2_wkk/demo/video_nakatsugawa_output.mp4 --opts MODEL.WEIGHTS detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl
Detectron2のModel Zooには多くの学習済みモデルがありますが、一般的な物体検出タスクにおいてよく使用されるモデルは、COCOデータセットでの性能が高いものが多いです。特にFaster R-CNNに関しては、ResNetやResNeXtをバックボーンとして使用したモデルがあります。
もし特別な要件(例: 推論速度の最適化、モデルサイズの制限など)がなければ、以下のモデルをおすすめします:
- **Faster R-CNN with ResNeXt-101**: このモデルは、精度と速度のバランスが取れており、多くのタスクで高い性能を発揮します。
それでは、上記の手順にこのモデルを組み込んだ具体的な手順を示します。
1. **必要なライブラリのインストール**:
- Detectron2をインストールします。
- 必要な依存関係を確認して、関連するパッケージもインストールします。
2. **アノテーションデータの変換**:
- Labelmeで作成したJSON形式のアノテーションデータを、Detectron2が読み込めるCOCO形式に変換します。
3. **データセットの登録**:
- 上記で変換したCOCO形式のデータセットを、Detectron2の`DatasetCatalog`に登録します。
4. **学習済みモデルのダウンロード**:
- Detectron2のModel Zooから、**Faster R-CNN with ResNeXt-101**の学習済みモデルをダウンロードします。
5. **設定の変更**:
- Detectron2の設定 (`cfg`) をダウンロードしたモデルとカスタムデータセットに合わせて変更します。
- データセットのパス、バッチサイズ、学習率などのパラメータを調整します。
6. **モデルのトレーニング**:
- 上記の設定を使用して、モデルの転移学習を開始します。
7. **評価とテスト**:
- 学習したモデルを使用して、検証データセットでのパフォーマンスを評価します。
- 必要に応じて、テストデータセットでの予測結果を可視化します。
8. **モデルの保存**:
- 転移学習を完了したモデルを保存します。
転移学習†
転移学習:tools/train_net.pyを使えばいいみたい.詳細は転移学習-cityscapes, cityscapesscripts, Mask R-CNN, Detectron2
AI Tips