Train Libra_R-CNN using mmdetection for small object detection

1. mmdetection installation: https://mp.csdn.net/console/editor/html/107685152

2. Dataset preparation

Using VOC2007

3. Start training

python tools/train.py configs/libra_rcnn/libra_faster_rcnn_r50_fpn_1x_coco.py --gpus 1 

Some details:

1.  Using VOC dataset

libra_faster_rcnn_r50_fpn_1x_coco.py  -->  faster_rcnn_r50_fpn_1x_coco.py --> faster_rcnn_r50_fpn.py

_base_ = [
    '../_base_/models/faster_rcnn_r50_fpn.py',
    '../_base_/datasets/voc0712.py',
    '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py'
]

2. modify the training data classes and class number

(1) In mmdetection/mmdet/datasets/voc.py

class VOCDataset(XMLDataset):

    # CLASSES = ('aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car',
    #            'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse',
    #            'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train',
    #            'tvmonitor')
    CLASSES = ('mandatory', 'warning', 'prohibitory', 'guideboard_s', 'guideboard_l',)

(2) In mmdetection/mmdet/core/evaluation/class_names.py

def voc_classes():
    return [
        'mandatory', 'warning', 'prohibitory', 'guideboard_s', 'guideboard_l',
    ]

(3) In faster_rcnn_r50_fpn.py

search num_classes, num_classes=train classes+1

3. notes

from file mmdetection/mmdet/datasets/builder.py:

batch_size = samples_per_gpu OR batch_size = num_gpus * samples_per_gpu

猜你喜欢

转载自blog.csdn.net/summermaoz/article/details/107761453