尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

3 步跑通 mmsegmentation 语义分割可视化:把训练状态看得一清二楚

3 步跑通 mmsegmentation 语义分割可视化:把训练状态看得一清二楚 3 步跑通 mmsegmentation 语义分割可视化把训练状态看得一清二楚【免费下载链接】mmsegmentationOpenMMLab Semantic Segmentation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmsegmentation训练完语义分割模型你盯着 loss 曲线看了半天却说不出模型到底学到哪了推理之后拿到的是一张标签索引的彩色噪点图到底哪块是路、哪块是建筑谁也说不清。mmsegmentationOpenMMLab 出品的语义分割工具箱内置了一套语义分割可视化机制把预测结果和真实标注直接渲染成带颜色、带文字的可读掩码图——单张图像推理看图、训练过程定期截图两种用法下面都给你讲明白。一、它到底能帮你做什么先给结论这套可视化的核心是把像素级的类别索引翻译成人眼能直接看懂的图一共 5 个核心能力能力说人话解释典型用法GT 与预测并排对比左图真实标注、右图模型预测一眼看出差在哪训练钩子 /add_datasample掩码透明度调节alpha/opacity控制掩码遮不遮原图推理 demo、配置文件类别名标签叠加掩码上直接写 carroad不用查色卡推理时加--with-labels自定义调色板用自己的classespalette控制每个类别的颜色自建数据集深度图可视化把深度估计渲染成热图贴在原图下方Adabins 等深度任务其中前四项封装在 mmseg/visualization/local_visualizer.py 的SegLocalVisualizer类里推理脚本里用的MMSegInferencer也是调它来画图的。二、三步跑起来单张图像可视化最快上手这一步的目标用现成的 FCN 预训练模型把一张图切给你看。第 1 步拿到代码git clone https://gitcode.com/GitHub_Trending/mm/mmsegmentation cd mmsegmentation第 2 步安装python -m pip install -r requirements.txt python -m pip install -e .第 3 步运行推理可视化脚本python demo/image_demo_with_inferencer.py \ demo/classroom__rgb_00283.jpg \ configs/fcn/fcn_r50-d8_4xb2-40k_cityscapes-512x1024.py \ --checkpoint ./weights/fcn_r50-d8_cityscapes.pth \ --out-dir vis_output \ --with-labels \ --opacity 0.7关键参数就 4 个每个一行注释--checkpoint模型权重文件的本地路径换成你自己下载好的权重--out-dir结果图片保存目录跑完直接去文件夹里看图--with-labels在掩码上叠加类别名文字--opacity掩码透明度范围 (0, 1]默认 0.5越大越实另外两个容易踩的参数--dataset-name决定用哪套调色板渲染掩码默认cityscapes--device默认cuda:0没有显卡就改成--device cpu。三、分场景怎么用场景 1快速验证预训练模型效果拿几批业务图片批量过一遍image_demo_with_inferencer.py把--out-dir指到一个目录。判断标准很简单预测侧掩码里能不能出现你关心的类别、边界贴不贴合物体轮廓。这一步不碰任何训练配置5 分钟就能判断这个模型值不值得在你的数据上微调。场景 2训练中定期抓图检查模型状态 mmsegmentation 默认配置 configs/base/default_runtime.py 里已经挂了本地可视化后端vis_backends [dict(typeLocalVisBackend)] visualizer dict( typeSegLocalVisualizer, vis_backendsvis_backends, namevisualizer, alpha0.7)默认每 100 次迭代就会自动渲染一组左 GT / 右预测的对比图存到work_dir/vis_data下按迭代次数命名。想在本地文件之外同步写进 TensorBoard就在vis_backends里追加一行dict(typeTensorboardVisBackend)然后照常python tools/train.py 你的配置.py启动训练无需额外写钩子代码。场景 3自建数据集自定义类别名和颜色如果你的数据集类别和 cityscapes 不一样别去改源码——SegLocalVisualizer构造参数直接支持classes和palettevisualizer dict( typeSegLocalVisualizer, vis_backendsvis_backends, namevisualizer, classes[road, building, vegetation], # 与标注索引一一对应 palette[[0, 255, 0], [255, 0, 0], [0, 255, 255]], # 每类一个 RGB 颜色 alpha0.7)注意classes和palette长度必须一致一一对应两者优先级高于dataset_name自动查表。四、结果怎么看盯住 4 个信号训练截图里左边是 GT、右边是预测对着看这 4 个信号边界贴合度预测掩码边缘明显比 GT 模糊、或整体向内缩了一圈说明边界学习能力不足优先怀疑损失函数和输入分辨率而不是先换网络。类别缺失某个类别的颜色在预测侧完全没出现而 GT 侧有——大概率是类别不平衡或该类别标注有问题先查数据再怀疑模型。整图单一色预测侧几乎被一种颜色占满模型可能在塌缩到多数类看 loss 时容易漏掉这个信号图上则一目了然。标签对得上吗打开--with-labels核对文字标签和掩码颜色是否匹配不匹配说明classes/palette配置顺序错了结果再好看也是错的。五、避坑指南 ⚠️颜色全错或一片同色--dataset-name默认是cityscapes拿它渲染自建数据集必然对不上。显式传--dataset-name 你的数据集或在配置里写classes/palette。服务器上--show没反应--show依赖本地 GUI 窗口无头环境会静默失败。改用--out-dir保存图片看文件最稳。CPU 机器直接报 CUDA 错误--device默认cuda:0纯 CPU 环境记得加--device cpu推理会慢但能跑通。opacity调到 1 后找不到原图掩码会完全盖住原图。想对比细节就调低到 0.3~0.5想看清掩码轮廓就调高到 0.7 左右。写在最后一句话总结推理时用image_demo_with_inferencer.py看图、训练时盯vis_data目录里的对比图语义分割训练就不再是黑盒。下一步建议先用上面4 个信号检查一遍你手头模型的可视化截图确认问题出在数据还是结构再去动配置。更多入门内容可参考官方文档docs/zh_cn/get_started.md。【免费下载链接】mmsegmentationOpenMMLab Semantic Segmentation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmsegmentation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表