1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【MMDetection】 config実践編

Last updated at Posted at 2021-01-28

概要

まだまだ日本語情報が少ない物体検出フレームワーク"MMDetection"について、学んだことを記録していこうと思います。間違い等ありましたらぜひコメントで教えてください。よろしくお願いします。

前回:config基礎編

今回は、実践的にconfigを利用してオリジナルのMask R-CNNを学習していきます。

configファイルの構造

configファイルにはモデルの構造だけでなく、データセットに関する設定等も記述します。
基本的に、configファイルは以下の4つのパートで構成します。

  • model:モデルに関する記述
  • dataset:データセットに関する記述
  • schedule:学習のスケジュールに関する記述
  • runtime:実行時の設定に関する記述(ログやチェックポイント等)

MMDetectionでは、各パートについてベースとなる設定が記述されたファイルが用意されています。詳しくはこちらを覗いてみてください。

モデルの構築

今回は、既存のモジュールを組み合わせてオリジナルのMask R-CNNを構築します。
既存のモジュールの一覧はこちら

1. configの作成

Mask R-CNNのデフォルト設定とはネック部分だけが異なるので、その部分だけ修正します。
ファイル名はルールに従ってmask_rcnn_r50_pafpn_1x_coco.pyとなります。

mask_rcnn_r50_pafpn_1x_coco.py
# 各パートのdefault設定を継承
_base_ = [
    '../_base_/models/mask_rcnn_r50_fpn.py',
    '../_base_/datasets/coco_instance.py',
    '../_base_/schedules/schedule_1x.py',
    '../_base_/default_runtime.py'
]

# modelのneck部分を修正
model = dict(
    neck=dict(
        type='PAFPN',                           # neckの名前
        in_channels=[256, 512, 1024, 2048],     # 各スケールの入力チャンネル数
        out_channels=256,                       # 各スケールの出力チャンネル数 
        num_outs=5                              # 出力スケール数
    )
)

具体的に各モジュールのどのkeyを修正すれば良いかは、各モジュールのソースコードを確認して、クラスのコンストラクタの引数を確認すればわかります。
モジュールはmmdetection/mmdet/models/*/*.pyにあります。

2. 学習と評価

モデルの学習・評価はこちらを参照してください。

参考文献

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?