当前位置: 首页 > news >正文

语义分割实战项目(从原理到代码环境配置)

语义分割(Semantic Segmentation)
先看结果:

是计算机视觉和深度学习领域的一项核心任务,它主要致力于对图像中的每一个像素进行分类,赋予每个像素一个类别标签,以达到理解图像内容的目的。换句话说,语义分割就是将图像分割成多个区域,使得同一区域内所有像素属于同一类别(例如,天空、道路、行人、车辆等)。

在实际应用中,语义分割技术有着广泛用途,例如自动驾驶汽车需要精确区分路面、行人、交通标志等元素,医学影像分析中也需要对组织器官进行精准分割,以及无人机航拍图像的场景解析等。

总的来说,语义分割是一个既要求模型具有全局上下文理解能力,又要求具备局部细节分辨能力的技术,是推动图像理解和智能系统发展的重要一环。

主要特性

  • 统一的基准平台

    我们将各种各样的语义分割算法集成到了一个统一的工具箱,进行基准测试。

  • 模块化设计

    MMSegmentation 将分割框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的分割模型。

  • 丰富的即插即用的算法和模型

    MMSegmentation 支持了众多主流的和最新的检测算法,例如 PSPNet,DeepLabV3,PSANet,DeepLabV3+ 等.

  • 速度快

    训练速度比其他语义分割代码库更快或者相当。

开始:安装和运行 MMSeg

需要安装 Python 3.7+, CUDA 10.2+ 和 PyTorch 1.8+

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

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

步骤 2.

 在 GPU 平台上:

conda install pytorch torchvision -c pytorch

在 CPU 平台上:

conda install pytorch torchvision cpuonly -c pytorch

安装

最佳实践

步骤 0. ​ 使用 MIM 安装 MMCV

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

步骤 1. 安装 MMSegmentation

情况 a: 如果您想立刻开发和运行 mmsegmentation,您可通过源码安装:


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

情况 b: 如果您把 mmsegmentation 作为依赖库或者第三方库,可以通过 pip 安装:

pip install "mmsegmentation>=1.0.0"

验证是否安装成功

为了验证 MMSegmentation 是否正确安装,我们提供了一些示例代码来运行一个推理 demo 。

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

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

步骤 2. 验证推理 demo

选项 (a). 如果您通过源码安装了 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

您将在当前文件夹中看到一个新图像 ,其中所有目标都覆盖了分割 maskresult.jpg

选项 (b). 如果您通过 pip 安装 mmsegmentation, 打开您的 python 解释器,复制粘贴以下代码:

from mmseg.apis import inference_model, init_model, show_result_pyplot
import mmcvconfig_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, device='cuda:0')# 在单张图像上测试并可视化
img = 'demo/demo.png'  # or img = mmcv.imread(img), 这样仅需下载一次
result = inference_model(model, img)
# 在新的窗口可视化结果
show_result_pyplot(model, img, result, show=True)
# 或者将可视化结果保存到图像文件夹中
# 您可以修改分割 map 的透明度 (0, 1].
show_result_pyplot(model, img, result, show=True, out_file='result.jpg', opacity=0.5)
# 在一段视频上测试并可视化分割结果
video = mmcv.VideoReader('video.mp4')
for frame in video:result = inference_model(model, frame)show_result_pyplot(model, frame, result, wait_time=1)

可以修改上面的代码来测试单个图像或视频,这两个选项都可以验证安装是否成功。

 

#代码获取#企鹅Q耗子:767172261

 

http://www.lryc.cn/news/323997.html

相关文章:

  • 基于python+vue 的一加剧场管理系统的设计与实现flask-django-nodejs-php
  • 【Entity Framework】 EF中DbContext类详解
  • 智能风扇的新篇章:唯创知音WTK6900G语音识别芯片引领行业革新
  • [json.exception.type_error.316] invalid UTF-8 byte报错
  • 深度强化学习(九)(改进策略梯度)
  • Oracle修改Number类型精度报错:ORA-01440
  • 美团到店-后端开发一面
  • 面试算法-77-括号生成
  • webpack5零基础入门-12搭建开发服务器
  • opengl日记10-opengl使用多个纹理示例
  • 锂电池寿命预测 | Matlab基于ALO-SVR蚁狮优化支持向量回归的锂离子电池剩余寿命预测
  • 动态规划15 | ● 392.判断子序列 ● *115.不同的子序列
  • APP UI自动化测试思路总结
  • Codeforces Round 936 (Div. 2)
  • yolov6实现遥感影像目标识别|以DIOR数据集为例
  • stable-diffusion-electron-clickstart 支持windows AMD显卡
  • ES进程除了kill之外,有什么优雅关闭的方式吗?
  • 院子摄像头的监控
  • SpringBoot3使用响应Result类返回的响应状态码为406
  • 基础:TCP四次挥手做了什么,为什么要挥手?
  • Android Studio实现内容丰富的安卓校园二手交易平台(带聊天功能)
  • 第十一届蓝桥杯省赛第一场真题
  • 设计模式 模板方法模式
  • 【STM32嵌入式系统设计与开发】——6矩阵按键应用(4x4)
  • 乐优商城(九)数据同步RabbitMQ
  • XSS-labs详解
  • 设计模式——模板方法模式封装.net Core读取不同类型的文件
  • [思考记录]技术欠账
  • React - 实现菜单栏滚动
  • 线性筛选(欧拉筛选)-洛谷P3383