Spaces:
Build error
Build error
# Legacy Configs in MMDetection V1.x | |
[OTHERS] | |
Configs in this directory implement the legacy configs used by MMDetection V1.x and its model zoos. | |
To help users convert their models from V1.x to MMDetection V2.0, we provide v1.x configs to inference the converted v1.x models. | |
Due to the BC-breaking changes in MMDetection V2.0 from MMDetection V1.x, running inference with the same model weights in these two version will produce different results. The difference will cause within 1% AP absolute difference as can be found in the following table. | |
## Usage | |
To upgrade the model version, the users need to do the following steps. | |
### 1. Convert model weights | |
There are three main difference in the model weights between V1.x and V2.0 codebases. | |
1. Since the class order in all the detector's classification branch is reordered, all the legacy model weights need to go through the conversion process. | |
2. The regression and segmentation head no longer contain the background channel. Weights in these background channels should be removed to fix in the current codebase. | |
3. For two-stage detectors, their wegihts need to be upgraded since MMDetection V2.0 refactors all the two-stage detectors with `RoIHead`. | |
The users can do the same modification as mentioned above for the self-implemented | |
detectors. We provide a scripts `tools/model_converters/upgrade_model_version.py` to convert the model weights in the V1.x model zoo. | |
```bash | |
python tools/model_converters/upgrade_model_version.py ${OLD_MODEL_PATH} ${NEW_MODEL_PATH} --num-classes ${NUM_CLASSES} | |
``` | |
- OLD_MODEL_PATH: the path to load the model weights in 1.x version. | |
- NEW_MODEL_PATH: the path to save the converted model weights in 2.0 version. | |
- NUM_CLASSES: number of classes of the original model weights. Usually it is 81 for COCO dataset, 21 for VOC dataset. | |
The number of classes in V2.0 models should be equal to that in V1.x models - 1. | |
### 2. Use configs with legacy settings | |
After converting the model weights, checkout to the v1.2 release to find the corresponding config file that uses the legacy settings. | |
The V1.x models usually need these three legacy modules: `LegacyAnchorGenerator`, `LegacyDeltaXYWHBBoxCoder`, and `RoIAlign(align=False)`. | |
For models using ResNet Caffe backbones, they also need to change the pretrain name and the corresponding `img_norm_cfg`. | |
An example is in [`retinanet_r50_caffe_fpn_1x_coco_v1.py`](retinanet_r50_caffe_fpn_1x_coco_v1.py) | |
Then use the config to test the model weights. For most models, the obtained results should be close to that in V1.x. | |
We provide configs of some common structures in this directory. | |
## Performance | |
The performance change after converting the models in this directory are listed as the following. | |
| Method | Style | Lr schd | V1.x box AP | V1.x mask AP | V2.0 box AP | V2.0 mask AP | Config | Download | | |
| :-------------: | :-----: | :-----: | :------:| :-----: |:------:| :-----: | :-------: |:------------------------------------------------------------------------------------------------------------------------------: | | |
| Mask R-CNN R-50-FPN | pytorch | 1x | 37.3 | 34.2 | 36.8 | 33.9 | [config](https://github.com/open-mmlab/mmdetection/blob/master/configs/legacy_1.x/mask_rcnn_r50_fpn_1x_coco_v1.py) | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/mask_rcnn_r50_fpn_1x_20181010-069fa190.pth)| | |
| RetinaNet R-50-FPN | caffe | 1x | 35.8 | - | 35.4 | - | [config](https://github.com/open-mmlab/mmdetection/blob/master/configs/legacy_1.x/retinanet_r50_caffe_1x_coco_v1.py) | | |
| RetinaNet R-50-FPN | pytorch | 1x | 35.6 |-|35.2| -| [config](https://github.com/open-mmlab/mmdetection/blob/master/configs/legacy_1.x/retinanet_r50_fpn_1x_coco_v1.py) | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/retinanet_r50_fpn_1x_20181125-7b0c2548.pth) | | |
| Cascade Mask R-CNN R-50-FPN | pytorch | 1x | 41.2 | 35.7 |40.8| 35.6| [config](https://github.com/open-mmlab/mmdetection/blob/master/configs/legacy_1.x/cascade_mask_rcnn_r50_fpn_1x_coco_v1.py) | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/cascade_mask_rcnn_r50_fpn_1x_20181123-88b170c9.pth) | | |
| SSD300-VGG16 | caffe | 120e | 25.7 |-|25.4|-| [config](https://github.com/open-mmlab/mmdetection/blob/master/configs/legacy_1.x/ssd300_coco_v1.py) | [model](https://s3.ap-northeast-2.amazonaws.com/open-mmlab/mmdetection/models/ssd300_coco_vgg16_caffe_120e_20181221-84d7110b.pth) | | |