diff --git a/.circleci/test.yml b/.circleci/test.yml index 7d08ccf3..9e24535f 100644 --- a/.circleci/test.yml +++ b/.circleci/test.yml @@ -67,7 +67,7 @@ jobs: command: | pip install -U openmim mim install git+https://github.com/open-mmlab/mmengine.git@main - mim install 'mmcv >= 2.0.0rc1' + mim install 'mmcv >= 2.0.0rc4' mim install git+https://github.com/open-mmlab/mmdetection.git@dev-3.x pip install -r requirements/albu.txt pip install -r requirements/tests.txt @@ -125,7 +125,7 @@ jobs: command: | docker exec mmyolo pip install -U openmim docker exec mmyolo mim install -e /mmengine - docker exec mmyolo mim install 'mmcv >= 2.0.0rc1' + docker exec mmyolo mim install 'mmcv >= 2.0.0rc4' docker exec mmyolo pip install -e /mmdetection docker exec mmyolo pip install -r requirements/albu.txt docker exec mmyolo pip install -r requirements/tests.txt diff --git a/README.md b/README.md index ecf32b4f..284c2f9f 100644 --- a/README.md +++ b/README.md @@ -141,9 +141,9 @@ MMYOLO relies on PyTorch, MMCV, MMEngine, and MMDetection. Below are quick steps conda create -n open-mmlab python=3.8 pytorch==1.10.1 torchvision==0.11.2 cudatoolkit=11.3 -c pytorch -y conda activate open-mmlab pip install openmim -mim install "mmengine>=0.3.1" -mim install "mmcv>=2.0.0rc1,<2.1.0" -mim install "mmdet>=3.0.0rc5,<3.1.0" +mim install "mmengine>=0.6.0" +mim install "mmcv>=2.0.0rc4,<2.1.0" +mim install "mmdet>=3.0.0rc6,<3.1.0" git clone https://github.com/open-mmlab/mmyolo.git cd mmyolo # Install albumentations diff --git a/README_zh-CN.md b/README_zh-CN.md index eae02d86..2bc90ac9 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -162,9 +162,9 @@ MMYOLO 依赖 PyTorch, MMCV, MMEngine 和 MMDetection,以下是安装的简要 conda create -n open-mmlab python=3.8 pytorch==1.10.1 torchvision==0.11.2 cudatoolkit=11.3 -c pytorch -y conda activate open-mmlab pip install openmim -mim install "mmengine>=0.3.1" -mim install "mmcv>=2.0.0rc1,<2.1.0" -mim install "mmdet>=3.0.0rc5,<3.1.0" +mim install "mmengine>=0.6.0" +mim install "mmcv>=2.0.0rc4,<2.1.0" +mim install "mmdet>=3.0.0rc6,<3.1.0" git clone https://github.com/open-mmlab/mmyolo.git cd mmyolo # Install albumentations diff --git a/demo/boxam_vis_demo.py b/demo/boxam_vis_demo.py index 3672b727..e7f039ef 100644 --- a/demo/boxam_vis_demo.py +++ b/demo/boxam_vis_demo.py @@ -18,7 +18,6 @@ import mmcv from mmengine import Config, DictAction, MessageHub from mmengine.utils import ProgressBar -from mmyolo.utils import register_all_modules from mmyolo.utils.boxam_utils import (BoxAMDetectorVisualizer, BoxAMDetectorWrapper, DetAblationLayer, DetBoxScoreTarget, GradCAM, @@ -177,8 +176,6 @@ def init_detector_and_visualizer(args, cfg): def main(): - register_all_modules() - args = parse_args() # hard code diff --git a/demo/featmap_vis_demo.py b/demo/featmap_vis_demo.py index 2006c7af..892e73d6 100644 --- a/demo/featmap_vis_demo.py +++ b/demo/featmap_vis_demo.py @@ -6,10 +6,10 @@ from typing import Sequence import mmcv from mmdet.apis import inference_detector, init_detector from mmengine import Config, DictAction +from mmengine.registry import init_default_scope from mmengine.utils import ProgressBar from mmyolo.registry import VISUALIZERS -from mmyolo.utils import register_all_modules from mmyolo.utils.misc import auto_arrange_images, get_file_list @@ -96,13 +96,12 @@ class ActivationsWrapper: def main(): args = parse_args() - # register all modules in mmdet into the registries - register_all_modules() - cfg = Config.fromfile(args.config) if args.cfg_options is not None: cfg.merge_from_dict(args.cfg_options) + init_default_scope(cfg.get('default_scope', 'mmyolo')) + channel_reduction = args.channel_reduction if channel_reduction == 'None': channel_reduction = None diff --git a/demo/image_demo.py b/demo/image_demo.py index 8f9fde1a..be2217c9 100644 --- a/demo/image_demo.py +++ b/demo/image_demo.py @@ -8,7 +8,7 @@ from mmengine.logging import print_log from mmengine.utils import ProgressBar, path from mmyolo.registry import VISUALIZERS -from mmyolo.utils import register_all_modules, switch_to_deploy +from mmyolo.utils import switch_to_deploy from mmyolo.utils.labelme_utils import LabelmeFormat from mmyolo.utils.misc import get_file_list, show_data_classes @@ -51,9 +51,6 @@ def main(): raise RuntimeError('`--to-labelme` or `--show` only ' 'can choose one at the same time.') - # register all modules in mmdet into the registries - register_all_modules() - # build the model from a config file and a checkpoint file model = init_detector(args.config, args.checkpoint, device=args.device) diff --git a/demo/large_image_demo.py b/demo/large_image_demo.py index 27d14949..73106b28 100644 --- a/demo/large_image_demo.py +++ b/demo/large_image_demo.py @@ -28,7 +28,7 @@ except ImportError: 'to install sahi first for large image inference.') from mmyolo.registry import VISUALIZERS -from mmyolo.utils import register_all_modules, switch_to_deploy +from mmyolo.utils import switch_to_deploy from mmyolo.utils.large_image import merge_results_by_nms, shift_predictions from mmyolo.utils.misc import get_file_list @@ -90,9 +90,6 @@ def parse_args(): def main(): args = parse_args() - # register all modules in mmdet into the registries - register_all_modules() - # build the model from a config file and a checkpoint file model = init_detector(args.config, args.checkpoint, device=args.device) diff --git a/demo/video_demo.py b/demo/video_demo.py index 7020c9fe..d8317a2c 100644 --- a/demo/video_demo.py +++ b/demo/video_demo.py @@ -20,7 +20,6 @@ from mmdet.apis import inference_detector, init_detector from mmengine.utils import track_iter_progress from mmyolo.registry import VISUALIZERS -from mmyolo.utils import register_all_modules def parse_args(): @@ -49,9 +48,6 @@ def main(): ('Please specify at least one operation (save/show the ' 'video) with the argument "--out" or "--show"') - # register all modules in mmdet into the registries - register_all_modules() - # build the model from a config file and a checkpoint file model = init_detector(args.config, args.checkpoint, device=args.device) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2bd00697..65689dd5 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -26,7 +26,7 @@ RUN apt-get update \ # Install MMEngine , MMCV and MMDet RUN pip install --no-cache-dir openmim && \ - mim install --no-cache-dir "mmengine>=0.3.1" "mmcv>=2.0.0rc1,<2.1.0" "mmdet>=3.0.0rc5,<3.1.0" + mim install --no-cache-dir "mmengine>=0.6.0" "mmcv>=2.0.0rc4,<2.1.0" "mmdet>=3.0.0rc6,<3.1.0" # Install MMYOLO RUN git clone https://github.com/open-mmlab/mmyolo.git /mmyolo && \ diff --git a/docker/Dockerfile_deployment b/docker/Dockerfile_deployment index 7f63c1cc..1a0a226a 100644 --- a/docker/Dockerfile_deployment +++ b/docker/Dockerfile_deployment @@ -30,7 +30,7 @@ RUN wget -q https://github.com/microsoft/onnxruntime/releases/download/v${ONNXRU # Install OPENMIM MMENGINE MMDET RUN pip install --no-cache-dir openmim \ - && mim install --no-cache-dir "mmengine>=0.3.1" "mmdet>=3.0.0rc5,<3.1.0" \ + && mim install --no-cache-dir "mmengine>=0.6.0" "mmdet>=3.0.0rc6,<3.1.0" \ && mim install --no-cache-dir opencv-python==4.5.5.64 opencv-python-headless==4.5.5.64 RUN git clone https://github.com/open-mmlab/mmcv.git -b 2.x mmcv \ diff --git a/docs/en/get_started/dependencies.md b/docs/en/get_started/dependencies.md index d75275f1..03cd6760 100644 --- a/docs/en/get_started/dependencies.md +++ b/docs/en/get_started/dependencies.md @@ -4,7 +4,9 @@ Compatible MMEngine, MMCV and MMDetection versions are shown as below. Please in | MMYOLO version | MMDetection version | MMEngine version | MMCV version | | :------------: | :----------------------: | :----------------------: | :---------------------: | -| main | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | +| main | mmdet>=3.0.0rc6, \<3.1.0 | mmengine>=0.6.0, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 | +| 0.5.0 | mmdet>=3.0.0rc6, \<3.1.0 | mmengine>=0.6.0, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 | +| 0.4.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | | 0.3.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | | 0.2.0 | mmdet>=3.0.0rc3, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | | 0.1.3 | mmdet>=3.0.0rc3, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | diff --git a/docs/en/get_started/installation.md b/docs/en/get_started/installation.md index d73bede7..85217375 100644 --- a/docs/en/get_started/installation.md +++ b/docs/en/get_started/installation.md @@ -6,9 +6,9 @@ ```shell pip install -U openmim -mim install "mmengine>=0.3.1" -mim install "mmcv>=2.0.0rc1,<2.1.0" -mim install "mmdet>=3.0.0rc5,<3.1.0" +mim install "mmengine>=0.6.0" +mim install "mmcv>=2.0.0rc4,<2.1.0" +mim install "mmdet>=3.0.0rc6,<3.1.0" ``` **Note:** @@ -79,9 +79,7 @@ Option (b). If you install MMYOLO with MIM, open your python interpreter and cop ```python from mmdet.apis import init_detector, inference_detector -from mmyolo.utils import register_all_modules -register_all_modules() config_file = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py' checkpoint_file = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth' model = init_detector(config_file, checkpoint_file, device='cpu') # or device='cuda:0' diff --git a/docs/en/tutorials/custom_installation.md b/docs/en/tutorials/custom_installation.md index 4aafe6a3..327de64e 100644 --- a/docs/en/tutorials/custom_installation.md +++ b/docs/en/tutorials/custom_installation.md @@ -20,7 +20,7 @@ To install MMEngine with pip instead of MIM, please follow \[MMEngine installati For example, you can install MMEngine by the following command. ```shell -pip install "mmengine>=0.3.1" +pip install "mmengine>=0.6.0" ``` ## Install MMCV without MIM @@ -32,7 +32,7 @@ To install MMCV with pip instead of MIM, please follow [MMCV installation guides For example, the following command installs MMCV built for PyTorch 1.12.x and CUDA 11.6. ```shell -pip install "mmcv>=2.0.0rc1" -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html +pip install "mmcv>=2.0.0rc4" -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html ``` ## Install on CPU-only platforms @@ -73,9 +73,9 @@ thus we only need to install MMEngine, MMCV, MMDetection, and MMYOLO with the fo ```shell !pip3 install openmim -!mim install "mmengine>=0.3.1" -!mim install "mmcv>=2.0.0rc1,<2.1.0" -!mim install "mmdet>=3.0.0rc5,<3.1.0" +!mim install "mmengine>=0.6.0" +!mim install "mmcv>=2.0.0rc4,<2.1.0" +!mim install "mmdet>=3.0.0rc6,<3.1.0" ``` **Step 2.** Install MMYOLO from the source. diff --git a/docs/zh_cn/get_started/dependencies.md b/docs/zh_cn/get_started/dependencies.md index fcd3f661..b950519c 100644 --- a/docs/zh_cn/get_started/dependencies.md +++ b/docs/zh_cn/get_started/dependencies.md @@ -4,7 +4,8 @@ | MMYOLO version | MMDetection version | MMEngine version | MMCV version | | :------------: | :----------------------: | :----------------------: | :---------------------: | -| main | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | +| main | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 | +| 0.5.0 | mmdet>=3.0.0rc6, \<3.1.0 | mmengine>=0.6.0, \<1.0.0 | mmcv>=2.0.0rc4, \<2.1.0 | | 0.4.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | | 0.3.0 | mmdet>=3.0.0rc5, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | | 0.2.0 | mmdet>=3.0.0rc3, \<3.1.0 | mmengine>=0.3.1, \<1.0.0 | mmcv>=2.0.0rc0, \<2.1.0 | diff --git a/docs/zh_cn/get_started/installation.md b/docs/zh_cn/get_started/installation.md index 147d204f..32927b6e 100644 --- a/docs/zh_cn/get_started/installation.md +++ b/docs/zh_cn/get_started/installation.md @@ -6,9 +6,9 @@ ```shell pip install -U openmim -mim install "mmengine>=0.3.1" -mim install "mmcv>=2.0.0rc1,<2.1.0" -mim install "mmdet>=3.0.0rc5,<3.1.0" +mim install "mmengine>=0.6.0" +mim install "mmcv>=2.0.0rc4,<2.1.0" +mim install "mmdet>=3.0.0rc6,<3.1.0" ``` 如果你当前已经处于 mmyolo 工程目录下,则可以采用如下简化写法 @@ -86,9 +86,7 @@ python demo/image_demo.py demo/demo.jpg \ ```python from mmdet.apis import init_detector, inference_detector -from mmyolo.utils import register_all_modules -register_all_modules() config_file = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py' checkpoint_file = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth' model = init_detector(config_file, checkpoint_file, device='cpu') # or device='cuda:0' diff --git a/docs/zh_cn/tutorials/custom_installation.md b/docs/zh_cn/tutorials/custom_installation.md index df9bf0cf..cdec9ed3 100644 --- a/docs/zh_cn/tutorials/custom_installation.md +++ b/docs/zh_cn/tutorials/custom_installation.md @@ -23,7 +23,7 @@ 例如,你可以通过以下命令安装 MMEngine: ```shell -pip install "mmengine>=0.3.1" +pip install "mmengine>=0.6.0" ``` ## 不使用 MIM 安装 MMCV @@ -36,7 +36,7 @@ MMCV 包含 C++ 和 CUDA 扩展,因此其对 PyTorch 的依赖比较复杂。M 例如,下述命令将会安装基于 PyTorch 1.12.x 和 CUDA 11.6 编译的 mmcv: ```shell -pip install "mmcv>=2.0.0rc1" -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html +pip install "mmcv>=2.0.0rc4" -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html ``` ## 在 CPU 环境中安装 @@ -75,9 +75,9 @@ pip install "mmcv>=2.0.0rc1" -f https://download.openmmlab.com/mmcv/dist/cu116/t ```shell !pip3 install openmim -!mim install "mmengine>=0.3.1" -!mim install "mmcv>=2.0.0rc1,<2.1.0" -!mim install "mmdet>=3.0.0rc5,<3.1.0" +!mim install "mmengine>=0.6.0" +!mim install "mmcv>=2.0.0rc4,<2.1.0" +!mim install "mmdet>=3.0.0rc6,<3.1.0" ``` **步骤 2.** 使用源码安装 MMYOLO: diff --git a/docs/zh_cn/useful_tools/browse_dataset.md b/docs/zh_cn/useful_tools/browse_dataset.md index ab991daa..5d6f0872 100644 --- a/docs/zh_cn/useful_tools/browse_dataset.md +++ b/docs/zh_cn/useful_tools/browse_dataset.md @@ -3,7 +3,7 @@ ```shell python tools/analysis_tools/browse_dataset.py \ ${CONFIG_FILE} \ - [-o, --output-dir ${OUTPUT_DIR}] \ + [-o, --out-dir ${OUTPUT_DIR}] \ [-p, --phase ${DATASET_PHASE}] \ [-n, --show-number ${NUMBER_IMAGES_DISPLAY}] \ [-i, --show-interval ${SHOW_INTERRVAL}] \ @@ -14,7 +14,7 @@ python tools/analysis_tools/browse_dataset.py \ **所有参数的说明**: - `config` : 模型配置文件的路径。 -- `-o, --output-dir`: 保存图片文件夹,如果没有指定,默认为 `'./output'`。 +- `-o, --out-dir`: 保存图片文件夹,如果没有指定,默认为 `'./output'`。 - **`-p, --phase`**: 可视化数据集的阶段,只能为 `['train', 'val', 'test']` 之一,默认为 `'train'`。 - **`-n, --show-number`**: 可视化样本数量。如果没有指定,默认展示数据集的所有图片。 - **`-m, --mode`**: 可视化的模式,只能为 `['original', 'transformed', 'pipeline']` 之一。 默认为 `'transformed'`。 @@ -32,24 +32,24 @@ python tools/analysis_tools/browse_dataset.py \ 1. **'original'** 模式 : ```shell -python ./tools/analysis_tools/browse_dataset.py configs/yolov5/yolov5_balloon.py --phase val --output-dir tmp --mode original +python ./tools/analysis_tools/browse_dataset.py configs/yolov5/yolov5_s-v61_syncbn_fast_1xb4-300e_balloon.py --phase val --out-dir tmp --mode original ``` - `--phase val`: 可视化验证集, 可简化为 `-p val`; -- `--output-dir tmp`: 可视化结果保存在 "tmp" 文件夹, 可简化为 `-o tmp`; +- `--out-dir tmp`: 可视化结果保存在 "tmp" 文件夹, 可简化为 `-o tmp`; - `--mode original`: 可视化原图, 可简化为 `-m original`; - `--show-number 100`: 可视化100张图,可简化为 `-n 100`; 2. **'transformed'** 模式 : ```shell -python ./tools/analysis_tools/browse_dataset.py configs/yolov5/yolov5_balloon.py +python ./tools/analysis_tools/browse_dataset.py configs/yolov5/yolov5_s-v61_syncbn_fast_1xb4-300e_balloon.py ``` 3. **'pipeline'** 模式 : ```shell -python ./tools/analysis_tools/browse_dataset.py configs/yolov5/yolov5_balloon.py -m pipeline +python ./tools/analysis_tools/browse_dataset.py configs/yolov5/yolov5_s-v61_syncbn_fast_1xb4-300e_balloon.py -m pipeline ```