mmdet 2.x 迁移到 3.x
mmdet 2.x 迁移到 3.x
)
step1 根据官方文档修改 配置文件:
https://mmdetection.readthedocs.io/zh-cn/latest/migration/config_migration.html
step2 修改自定义的dataset模块
try:
# mmdet 2.x
from mmdet.datasets.builder import DATASETS
from mmdet.datasets.pipelines import Compose
from mmdet.datasets.custom import CustomDataset
from mmcv.utils import print_log
except Exception as e:
# mmdet 3.x
from mmdet.registry import DATASETS
from mmcv.transforms import Compose
from mmengine.dataset import BaseDataset as CustomDataset
from mmengine.logging import print_log
@DATASETS.register_module()
class YourCustomDataset(CustomDataset):
# 此处省略 部分代码
#
# 将 类初始化中的参数 img_prefix 改为 data_prefix='', test_mode=True,增加:*args,**kwargs
# 类初始化的时候 __init__ 增加
self._metainfo = {
}
self._metainfo['classes'] = self.CLASSES
# 增加一个方法
@classmethod
def get_classes(cls, classes=None):
"""Get class names of current dataset.
Args:
classes (Sequence[str] | str | None): If classes is None, use
default CLASSES defined by builtin dataset. If classes is a
string, take it as a file name. The file contains the name of
classes where each line contains one class name. If classes is
a tuple or list, override the CLASSES defined by the dataset.
Returns:
tuple[str] or list[str]: Names of categories of the dataset.
"""
if classes is None:
return cls.CLASSES
if isinstance(classes, str):
# take it as a file path
class_names = mmcv.list_from_file(classes)
elif isinstance(classes, (tuple, list)):
class_names = classes
else:
raise ValueError(f'Unsupported type {
type(classes)} of classes.')
return class_names
step3 在模型调用时修改调用的代码
try:
# mmdet 2.x
from mmcv.parallel import collate, scatter
from mmdet.datasets.pipelines import Compose
except Exception as e:
# mmdet 3.x
print(mmcv.__version__,dir(mmcv))
from mmcv.transforms import Compose
from mmdet.structures.bbox import bbox2roi
# fro
1767



被折叠的 条评论
为什么被折叠?



