ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MMSegmentation 新手上手指南:20 分钟跑通语义分割并训练出自己的模型

MMSegmentation 新手上手指南:20 分钟跑通语义分割并训练出自己的模型 MMSegmentation 新手上手指南20 分钟跑通语义分割并训练出自己的模型【免费下载链接】mmsegmentationOpenMMLab Semantic Segmentation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmsegmentation把一张街景图里的汽车、行人、马路自动区分开靠的就是语义分割让模型判断图像中每个像素属于哪一类物体。用 MMSegmentation——OpenMMLab 推出的语义分割工具包——你可以从装好环境、跑通一个预训练模型到用自己的数据训练并评估模型大约 20 分钟走完一遍。项目名片MMSegmentation 是什么MMSegmentation 是一个基于 PyTorch 的语义分割工具箱把选模型、准备数据、训练、评估、可视化这些事收在同一个代码库里让你不用为每个算法单独翻论文复现代码。它的三条核心卖点模块化拆解 → 对你意味着什么分割框架被拆成 backbone负责提取图像特征的基础网络、neck融合多尺度特征的中段、head输出每个像素类别的头等可插拔组件换算法时只改配置不用重写整条流水线。统一评测基准 → 对你意味着什么PSPNet、DeepLabV3、SegFormer 等几十种模型都在同一套数据和评估口径下跑你横向比较性能时不用担心数据不一样、结论不可信。开箱即用的预训练权重 → 对你意味着什么每个模型都提供现成 checkpoint下载后一条命令就能出图先看效果再决定是否要自己训练。先选模型再动手三类算法各适合什么场景别急着装环境先想清楚你要解决什么——这决定了你该挑哪一类模型。仓库在configs/下按算法分目录下面这张表帮你先定方向算法类别代表模型能力适合的场景配置目录经典 CNNPSPNet、DeepLabV3/DeepLabV3、FCN精度稳定、生态成熟精度优先的街景、遥感等常规分割适合入门configs/pspnet/轻量级BiSeNetV2、STDC、CGNet参数少、推理快部署到端侧或需要实时响应的场景configs/bisenetv2/TransformerSegFormer、SETR、Mask2Former全局感受野强、上限高数据量大、追求 SOTA 精度的研究场景configs/segformer/ 新手建议先跟 PSPNet 走预训练权重齐全、文档多卡住时最容易找到答案。搭好开发环境一条命令装好 GPU 版系统要求Python 3.7、PyTorch 1.8用 GPU 还需 CUDA 10.2。先建一个干净的 conda 环境再按设备装 PyTorch。GPU 机器conda create -n openmmlab python3.8 -y conda activate openmmlab conda install pytorch torchvision -c pytorchCPU 机器把最后一行换成conda install pytorch torchvision cpuonly -c pytorch装好 PyTorch 后用 MIM 装 MMEngine 和 MMCVMMCV 是 OpenMMLab 的底层工具库MIM 能自动帮你匹配好版本避免手动对依赖pip install -U openmim mim install mmengine mim install mmcv2.0.0最后装 MMSegmentation 本体两条路线二选一。想改代码、看实现走源码安装只是当依赖库用走 PyPI# 路线 A源码安装推荐方便阅读和调试 git clone -b main https://gitcode.com/GitHub_Trending/mm/mmsegmentation cd mmsegmentation pip install -v -e . # 路线 BPyPI 安装 pip install mmsegmentation1.0.0验证装没装成功用 MIM 拉一份 PSPNet 的配置和权重再跑一张仓库自带的示例图。mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest . python demo/image_demo.py demo/demo.png 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打开它能看到街景图上叠了一层彩色分割区域——只要这张图正常生成就说明环境装好了。装得细一点的内容见 docs/zh_cn/get_started.md。跑通第一次分割输入一张图得到一张带颜色的图先说你要什么结果给一张街景图拿回一张每个像素都涂了类别颜色的图。仓库里的demo/demo.png就是现成输入下面这段代码做的就是加载模型 → 推理 → 存图三件事。from mmseg.apis import inference_model, init_model, show_result_pyplot config_file pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py checkpoint_file pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth model init_model(config_file, checkpoint_file, devicecuda:0) # 没 GPU 就写 devicecpu img demo/demo.png result inference_model(model, img) show_result_pyplot(model, img, result, showTrue, out_fileresult.jpg, opacity0.5)运行后show_result_pyplot会弹出一张叠加了半透明色块的图同时把result.jpg写到磁盘opacity0.5控制颜色层的透明度调小一点能看清原图细节。视频分割是把同样的模型逐帧跑一遍。最省事的办法是直接调用仓库里的脚本加--show实时预览或用--output-file存成视频python demo/video_demo.py video.mp4 pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --show⚠️ 视频只是把单帧推理循环了 N 次帧数多时会比较慢先拿几秒钟的短片段试。训一个自己的模型数据 → 训练 → 评估数据准备。以 Cityscapes 为例把数据集解压到data/cityscapes/要含leftImg8bit/和gtFine/两套目录再跑转换脚本把它整理成工具包认得的格式。这一步的作用是把原始标注转成统一的.npy标签之后训练就不用再关心原始格式python tools/dataset_converters/cityscapes.py data/cityscapes --nproc 8预期结果data/cityscapes/下多出一批*.npy文件说明标注已经就位。目录细节看 docs/zh_cn/user_guides/2_dataset_prepare.md。训练。选一份配置直接起训检查点和日志会自动存进work_dirs/下与配置同名的目录python tools/train.py configs/pspnet/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py预期结果终端里滚出Iter日志GPU 占用上升跑完后work_dirs/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024/里会有latest.pth和若干 checkpoint。多卡训练则用bash tools/dist_train.sh 配置 8把 8 换成你的卡数。评估。用训好的权重在验证集上算 mIoU平均交并比衡量分割准不准的指标越高越好python tools/test.py configs/pspnet/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py work_dirs/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024/latest.pth --eval mIoU预期结果终端打印出整体 mIoU 以及每个类别的 IoU数字越高说明模型分得越准。更多训练/测试参数见 docs/zh_cn/user_guides/4_train_test.md。踩坑急救三个高频问题No module named mmcv原因MMCV 版本和 PyTorch 没对上或根本没装。 解法pip uninstall mmcv清干净再用mim install mmcv2.0.0重装让 MIM 帮你匹配版本。推理时 CUDA 报错 / 找不到显卡原因PyTorch 的 CUDA 版本和驱动不匹配。 解法装 PyTorch 时按官网对应驱动的版本选只想在 CPU 上跑把配置里和命令中的device都改成cpu即可。评估时类别数对不上mIoU 全是 0 或报错原因配置文件里的num_classes和数据集真实类别数不一致。 解法打开你用的配置文件把num_classes改成与数据集一致的类别数再重跑。更多问题可以翻 docs/zh_cn/notes/faq.md里面有版本对照表和逐项排查。继续深入想把手感练得更扎实按这个顺序往下看就行官方 Notebook demo/MMSegmentation_Tutorial.ipynb从建模型到推理的完整可交互例子。用户指南 docs/zh_cn/user_guides/index.rst配置、数据、推理、训练、部署逐章讲。进阶指南 docs/zh_cn/advanced_guides/index.rst教你怎么自定义模型、加数据集、改数据流。社区项目 projects/医疗影像、遥感等真实落地的扩展案例。 回到开头那张街景图等你把环境、推理、训练、评估这条线跑通想再分卡车、自行车、红绿灯只需要换一份配置、标好数据就能继续往下走了。【免费下载链接】mmsegmentationOpenMMLab Semantic Segmentation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmsegmentation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表