AI-For-Beginners/translations/zh-CN/lessons/4-ComputerVision/12-Segmentation/README.md

70 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 分割
我们之前学习了目标检测,它可以通过预测*边界框*来定位图像中的对象。然而,对于某些任务,我们不仅需要边界框,还需要更精确的对象定位。这项任务被称为**分割**。
## [课前测验](https://ff-quizzes.netlify.app/en/ai/quiz/23)
分割可以看作是**像素分类**,即对于图像中的**每个**像素,我们必须预测其类别(*背景*是其中一个类别)。主要有两种分割算法:
* **语义分割**只告诉像素的类别,不区分同一类别的不同对象。
* **实例分割**将类别划分为不同的实例。
例如,对于实例分割,这些羊是不同的对象;而对于语义分割,所有的羊都被表示为一个类别。
<img src="../../../../../translated_images/zh-CN/instance_vs_semantic.eee9812bebf8cd45.webp" width="50%">
> 图片来源于[这篇博客文章](https://nirmalamurali.medium.com/image-classification-vs-semantic-segmentation-vs-instance-segmentation-625c33a08d50)
分割有不同的神经网络架构,但它们的结构都相同。从某种意义上说,它类似于你之前学习过的自动编码器,但不是解构原始图像,而是解构一个**掩码**。因此,分割网络包括以下部分:
* **编码器**从输入图像中提取特征
* **解码器**将这些特征转换为**掩码图像**,其大小与通道数对应于类别数量。
<img src="../../../../../translated_images/zh-CN/segm.92442f2cb42ff4fa.webp" width="80%">
> 图片来源于[这篇论文](https://arxiv.org/pdf/2001.05566.pdf)
我们特别需要提到分割中使用的损失函数。在使用经典自动编码器时我们需要测量两张图像之间的相似性可以使用均方误差MSE来实现。在分割中目标掩码图像中的每个像素表示类别编号在第三维度上进行独热编码因此我们需要使用特定于分类的损失函数——交叉熵损失并对所有像素进行平均。如果掩码是二值的则使用**二值交叉熵损失**BCE
> ✅ 独热编码是一种将类别标签编码为长度等于类别数量的向量的方法。可以查看[这篇文章](https://datagy.io/sklearn-one-hot-encode/)了解这一技术。
## 医学影像中的分割
在本课中,我们将通过训练网络识别医学图像中的人类痣(也称为黑痣)来实际应用分割技术。我们将使用<a href="https://www.fc.up.pt/addi/ph2%20database.html">PH<sup>2</sup>数据库</a>的皮肤镜图像作为图像来源。该数据集包含200张图像分为三类典型痣、非典型痣和黑色素瘤。所有图像还包含一个对应的**掩码**,用于勾勒痣的轮廓。
> ✅ 这种技术特别适用于这种类型的医学影像,但你还能想到哪些其他的实际应用场景?
<img alt="navi" src="../../../../../translated_images/zh-CN/navi.2f20b727910110ea.webp"/>
> 图片来源于PH<sup>2</sup>数据库
我们将训练一个模型,将任何痣从背景中分割出来。
## ✍️ 练习:语义分割
打开以下笔记本,了解不同的语义分割架构,练习使用它们,并观察它们的实际效果。
* [语义分割 Pytorch](SemanticSegmentationPytorch.ipynb)
* [语义分割 TensorFlow](SemanticSegmentationTF.ipynb)
## [课后测验](https://ff-quizzes.netlify.app/en/ai/quiz/24)
## 总结
分割是一种非常强大的图像分类技术,它超越了边界框,实现了像素级分类。这项技术在医学影像等领域有广泛应用。
## 🚀 挑战
人体分割只是我们可以对人物图像进行的常见任务之一。其他重要任务包括**骨架检测**和**姿态检测**。试试[OpenPose](https://github.com/CMU-Perceptual-Computing-Lab/openpose)库,看看姿态检测的实际应用。
## 复习与自学
这篇[维基百科文章](https://wikipedia.org/wiki/Image_segmentation)提供了关于该技术各种应用的良好概述。自行学习实例分割和全景分割领域的相关知识。
## [作业](lab/README.md)
在本实验中,尝试使用[Segmentation Full Body MADS Dataset](https://www.kaggle.com/datasets/tapakah68/segmentation-full-body-mads-dataset)数据集进行**人体分割**。
---