OpenMMLab(mmsegmentation、mmdetection、mmpose)环境配置
OpenMMLab
简介
链接: OpenMMLab
OpenMMLab基于PyTorch开发了MMEngine提供通用训练和评估引擎,MMCV提供神经网络算子和数据转换,作为整个项目的基础。自2018年10月首次发布以来,OpenMMLab已发布30多个视觉库,实现了300多个算法,并包含2000多个预训练模型。
优势:
- 提供高质量的库,降低算法重新实现的难度
- 创建针对各种后端和设备的高效部署工具链
- 为计算机视觉研发奠定坚实的基础
- 通过全栈工具链弥合学术研究和工业应用之间的差距
一、Windows/Linux下环境配置(以mmsegmentation v1.2.2(最新版)为例)
0. 确认安装版本信息
1)确认电脑显卡版本
命令行窗口输入:
nvidia-smi
查看显卡支持的最高CUDA的版本,根据CUDA版本确认cudnn版本,先不下载
我这里最高支持12.3版本
2)确认mmcv对应版本
https://download.openmmlab.com/mmcv/dist/cu118/torch2.1.0/index.html
替换路径中的cu118、torch2.1.0,先搜有没有对应的whl文件,(mmsegmentationV1.2.2要求pytorch版本在1.13以上),这是openmmlab提供的对应cuda、torch版本的mmcv预编译软件包,有对应版本,后面方便下载
(没有对应torch和cuda版本的预编译的whl文件,则从源码开始编译的。后面可以看到下载的是个tar.gz文件而不是whl文件,从源码开始编译很慢)
3)确认版本
经过上两步,我这里确认使用的版本如下:
CUDA:11.8
cuDNN:选择cuDNNV8.x.x版本的for CUDA11.x版本
pytorch:2.1.0
1. 安装CUDA和cuDNN
在base环境中安装CUDA和cuDNN,这里不赘述,可以自行搜索安装教程
CUDA:https://developer.nvidia.com/cuda-downloads
cuDNN:https://developer.nvidia.com/rdp/cudnn-download
先下载安装CUDA,再将cuDNN中的文件复制到CUDA的对应文件夹下即可
2. 创建conda环境,下载pytorch
新建conda环境,并激活:
conda create --name openmmlab python=3.8 -y conda activate openmmlab
安装前面确定的pytorch版本:
链接: pytorch各版本下载命令
我这里是:
conda install pytorch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 pytorch-cuda=11.8 -c pytorch -c nvidia
3. 安装 mmcv
依次执行以下命令,如果前面版本选择没问题,这里应该比较顺利:
pip install -U openmim mim install mmengine mim install "mmcv>=2.0.0"
4. 安装 MMSegmentation
依次执行以下命令安装分割库文件:
git clone -b main https://github.com/open-mmlab/mmsegmentation.git cd mmsegmentation pip install -v -e . pip install ftfy pip install regex
5. 添加环境变量(不一定要做)
如果报错与CUDA_HOME有关则添加系统环境变量:
变量名:CUDA_HOME
变量值:pathtoCUDA\CUDA\v11.x
二、检验配置是否成功
1. 下载配置文件和模型文件
在mmsegmentation文件夹路径下运行:
mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest .
将mmseg\models\losses\cross_entropy_loss.py文件中:
在第19行和第240行修改avg_non_ignore,改为avg_non_ignore=True。
运行:
2. 推理验证
在mmsegmentation文件夹路径下运行
python demo/image_demo.py demo/demo.png configs/pspnet/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --out-file result.jpg
在当前文件夹中将看到一个新图像 result.jpg,其中所有目标都覆盖了分割 mask:
安装成功!
这个报错不用管:
D:\software\anaconda3\envs\openmmlab\lib\site-packages\mmengine\visualization\visualizer.py:196: UserWarning: Failed to add <class 'mmengine.visualization.vis_backend.LocalVisBackend'>, please provide the `save_dir` argument. warnings.warn(f'Failed to add {vis_backend.__class__}, '
如果报错:
assert (mmcv_min_version <= mmcv_version < mmcv_max_version), \ AssertionError: MMCV==2.2.0 is used but incompatible. Please install mmcv>=2.0.0rc4.
修改mmsegmentation\mmseg_init_.py中的: