结束了入门教程。开始一些实例应用教程。
今天在mindspore平台上学习FCN图像语义分割。
先记录一下一些基本概念:(方便别人看,以及以后自己看)
什么是图像语义分割?
图像语义分割是 将图像中的每个像素点分配到一个语义类别。 与传统的图像分类任务不同,语义分割需要对图像中的每个像素进行精细的分类,而不是只识别图像中包含的物体类别。
语义分割的特点
- 像素级预测: 语义分割任务需要输出与输入图像大小相同的分割图,其中每个像素都对应一个类别标签。
- 类别层次结构: 语义分割通常涉及多个类别,例如天空、树木、道路、汽车、行人等,这些类别可能具有层次结构。
- 局部和全局信息: 语义分割需要同时利用图像的局部特征和全局信息,例如物体的形状、纹理和上下文关系。
语义分割的应用
- 自动驾驶: 用于识别道路、车辆、行人等,实现安全驾驶。
- 机器人导航: 帮助机器人理解周围环境,进行路径规划。
- 医学影像分析: 用于识别器官、病变等,辅助医生进行诊断。
- 卫星图像分析: 用于识别土地类型、建筑物、道路等,进行资源管理和城市规划。
常用的语义分割模型
- FCN (Fully Convolutional Network)
- U-Net
- DeepLab
- Mask R-CNN
FCN (Fully Convolutional Network)用于语义分割的基本原理
FCN 模型就像一位超级精细的画家,它的目标是将一张彩色照片“上色”,让每个像素点都对应一个颜色,每种颜色代表一个类别(比如人、车、树)。就是说,FCN 模型就像一位超级精细的画家,它通过提取特征、缩小图像、恢复图像和跳跃连接等步骤,将一张彩色照片“上色”,让每个像素点都对应一个类别,从而实现图像的语义分割。
FCN 的工作流程:
- 提取特征: FCN 首先通过一系列卷积和池化操作,提取图像中的特征,就像画家观察照片,找出不同的形状和纹理。
- 缩小图像: 在提取特征的过程中,图像尺寸会逐渐缩小,就像画家将照片缩小,以便更好地观察细节。
- 恢复图像: 为了得到与原图大小相同的分割图,FCN 需要进行上采样操作,将图像尺寸恢复到原始大小,就像画家将缩小的照片放大,并根据观察到的特征进行上色。
- 跳跃连接: 为了保留图像的细节信息,FCN 会将浅层特征(细节丰富)与深层特征(全局信息)结合起来,就像画家在放大照片后,既参考整体轮廓,又参考细节纹理,才能画得更加精细。
- 像素级预测: FCN 能够对图像中的每个像素进行精细的分类,得到更精确的分割结果。
- 端到端学习: FCN 是一个端到端的学习模型,可以直接从原始图像学习到分割任务,无需手动设计特征。
- 可扩展性: FCN 可以轻松扩展到不同的分割任务,例如人体姿态估计、视频分割等。
代码部分: