昇腾社区首页
中文
注册

当使用MMDetection或MMDetection3D时出现“AssertionError: MMCV==2.2.0 is used but incompatible.”报错

问题描述

当安装的MMDetection版本为3.2.0及以上,MMDetection3D版本为1.3.0及以上,安装的MMCV版本为2.2.0时,使用MMDetection或MMDetection3D产生如下报错。

  • 报错截图

  • 报错文本
    ……
    AssertionError: MMCV==2.2.0 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0.
    ……

问题分析

mmdetection3d/mmdet3d/__init__.py和mmdetection/mmdet/__init__.py文件中限定mmcv_maximum_version = '2.2.0',但是断言检查当前安装的MMCV版本需要小于mmcv_maximum_version,因此安装2.2.0版本的MMCV,使用MMDetection或MMDetection3D会出现报错。

处理方法

按照如下操作修改MMCV版本的判断条件。

  • MMDetection
    将mmdetection/mmdet/__init__.py中
            and mmcv_version < digit_version(mmcv_maximum_version)), \
    修改为:
            and mmcv_version <= digit_version(mmcv_maximum_version)), \
  • MMDetection3D
    将mmdetection3d/mmdet3d/__init__.py中
            and mmcv_version < digit_version(mmcv_maximum_version)), \
    修改为:
            and mmcv_version <= digit_version(mmcv_maximum_version)), \