MMDetection トレーニング カスタム データ セット

序文

トレーニング計画などの理由で、最近マシンビジョン会社でインターンとして働いています。現在 MMDetection フレームワークを使用しています。カスタム (企業) データセットのトレーニングに Mask-RCNN を使用して、トレーニングを記録したいと考えています。プロセス。

1. データセットの作成

私はラベルミーを使用しています。まず、conda は環境 (openmmlab であると仮定します) をアクティブ化し、pip install labelme を実行し、インストールが完了した後にその環境で起動します (labelme を直接入力します)。データ セットにラベルを付ける具体的な方法は省略しますが、比較的簡単で、オンライン チュートリアルは非常に親切です。マーキング後はjsonファイルが生成されるので、それをcocoまたはvocファイルに変換する必要がありますが、トレーニングの場合はCOCOデータセットまたはVOCデータセットに変換する必要があります。具体的な方法は以下の通りです。データセット検証セットがありますが、画像は
自動的に保存されません2
. COCO データセットへの公式リンク
3. VOC データセットへの公式リンク
4.次回データセットを作成するときに彼の方法を試してください
5.インスタンスのラベル付けとデータセットのセグメント化時の注意

2、MM検出トレーニングパート

公式サイトのカスタムデータの設定方法は
初心者のためまだ真似の段階です。カスタム バルーン データ セットをトレーニングするには、公式 Web サイトを参照してください。まず、configs フォルダーに設定ファイル box_img を作成し、その中に py ファイルを作成します。ファイルは形式に従って名前が付けられており、次のようにカスタマイズすることもできますあなたが快適である限り。コードは以下のように表示されます。
ここに画像の説明を挿入

# 官方文档里的配置代码
# 新配置继承了基本配置,并做了必要的修改
# 不同数据集他继承的文件也不一样
_base_ = '../mask_rcnn/mask-rcnn_r101_fpn_2x_coco.py'

# 我们还需要更改 head 中的 num_classes 以匹配数据集中的类别数
model = dict(
    roi_head=dict(
        bbox_head=dict(num_classes=1), mask_head=dict(num_classes=1)))

# 修改数据集相关配置
data_root = '../data/box_img/'
metainfo = {
    
    
    'classes': ('box', ),
    'palette': [
        (220, 20, 60),
    ]
}
# 根据自己放数据集的位置进行修改
train_dataloader = dict(
    batch_size=1,
    dataset=dict(
        data_root=data_root,
        metainfo=metainfo,
        ann_file='annotations/instances_train2017.json',
        data_prefix=dict(img='train2017/')))
val_dataloader = dict(
    dataset=dict(
        data_root=data_root,
        metainfo=metainfo,
        ann_file='annotations/instances_val2017.json',
        data_prefix=dict(img='val2017/')))
test_dataloader = val_dataloader

# 修改评价指标相关配置
val_evaluator = dict(ann_file=data_root + 'annotations/instances_val2017.json')
test_evaluator = val_evaluator

# 使用预训练的 Mask R-CNN 模型权重来做初始化,可以提高模型性能 他会下载到一个cache文件夹内,不知道在哪里改,强迫症犯了
load_from = 'https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r101_fpn_2x_coco/mask_rcnn_r101_fpn_2x_coco_bbox_mAP-0.408__segm_mAP-0.366_20200505_071027-14b391c7.pth'

その後、train.py を実行し、必要なパラメーターをいくつか追加するだけで、残りを変更する必要はありません。
ここに画像の説明を挿入
トレーニングを開始すると、時間の名前が付けられたフォルダーとより詳細な構成ファイルが、output/boxImg_maskRCNN_101 に作成されます。これは、下図の py ファイルです (エポックは、前回のトレーニング プロセス中に生成されたものであり、まだそこにはありません)
ここに画像の説明を挿入
その後、このファイルで、毎回保存されるエポックの数、ログ保存の間隔など、モデルがさらに変更されます。変更後、トレイン設定の py ファイルを上記のものに変更し、train.py ファイルを再実行して、トレーニングを開始します。

3. テスト部分

言うことはあまりありません。test.py は非常に詳細に記述されており、形式に従って設定項目を追加するだけです
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/dashenfeng1/article/details/131825633