mmSegmentation安装和使用

安装步骤

该部分引用自开始:安装和运行 MMSeg — MMSegmentation 1.0.0 文档

步骤 0. 从官方网站下载并安装 Miniconda

步骤 1. 创建一个 conda 环境,并激活

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

Step 2. 参考 official instructions 安装 PyTorch

在 GPU 平台上:

conda install pytorch torchvision -c pytorch

step 3.使用 MIM 安装 MMCV

pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"

step 4. 安装 MMSegmentation

通过源码安装:

git clone -b main https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .
# '-v' 表示详细模式,更多的输出# '-e' 表示以可编辑模式安装工程,# 因此对代码所做的任何修改都生效,无需重新安装

验证是否安装成功

步骤 1. 下载配置文件和模型文件

mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest .

该下载过程可能需要花费几分钟,这取决于您的网络环境。当下载结束,您将看到以下两个文件在您当前工作目录:pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.pypspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth

步骤 2. 验证推理 demo

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

注意:如果按照官方教程,pytorch无法调用cuda,只需要卸载pytorch,然后pip命令常规安装即可,安装过程参考其他pytorch安装教程。

自定义数据集并训练

参考文章(2条消息) mmsegmentation教程1:自定义数据集、config文件修改、训练教程_AESA相控阵的博客-CSDN博客,里面讲的很详细

简要总结:

(1).在mmseg/datasets/文件夹下加入自己的数据集的配置文件;

(2).在configs/_ base _/datasets下面对数据加载进行定义;

(3).在configs/下面选择你需要的模型参数进行修改,查看你修改的文件中调用的配置文件,如调度器、模型、runtime、数据集等等,这些文件同样要修改;

(4).使用命令进行训练。

例如我的训练命令:

python train.py /root/mmsegmentation/configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py --work-dir /root/mmsegmentation/work-dir/BiSeNetV2

后面的参数为你的模型,而-work-dir是你的工作目录,训练中所有的数据都会保存在这里。

推理,测试:

python tools/test.py /root/mmsegmentation/configs/bisenetv2/bisenetv2_fcn_4x4_1024x1024_160k_cityscapes.py\
/root/mmsegmentation/work-dir/ BiSeNetV2/latest.pth \
--show-dir BiSeNetV2

推理完成后就会生成分割图。

注:输出的mask默认是叠加原图的,想要输出mask不叠加原图,tools/test中只需要opacity的默认值为1即可。

parser.add_argument(
        '--opacity',
        type=float,
        default=1,
        help='Opacity of painted segmentation map. In (0, 1] range.')
    parser.add_argument('--local_rank', type=int, default=0)

猜你喜欢

转载自blog.csdn.net/qq_22471349/article/details/129722527
今日推荐