介绍
在图像分割中,机器必须将图像分割成不同的segments,每个segment代表不同的实体。
图像分割示例
正如你在上面看到的,图像如何变成两个部分,一个代表猫,另一个代表背景。图像分割在从自动驾驶汽车到卫星的许多领域都很有用。也许其中最重要的是医学影像。医学图像的微妙之处是相当复杂的。一台能够理解这些细微差别并识别出必要区域的机器,可以对医疗保健产生深远的影响。
卷积神经网络在简单的图像分割问题上取得了不错的效果,但在复杂的图像分割问题上却没有取得任何进展。这就是UNet的作用。UNet最初是专门为医学图像分割而设计的。该方法取得了良好的效果,并在以后的许多领域得到了应用。在本文中,我们将讨论UNet工作的原因和方式
UNet背后的直觉
卷积神经网络(CNN)背后的主要思想是学习图像的特征映射,并利用它进行更细致的特征映射。这在分类问题中很有效,因为图像被转换成一个向量,这个向量用于进一步的分类。但是在图像分割中,我们不仅需要将feature map转换成一个向量,还需要从这个向量重建图像。这是一项巨大的任务,因为要将向量转换成图像比反过来更困难。UNet的整个理念都围绕着这个问题。
在将图像转换为向量的过程中,我们已经学习了图像的特征映射,为什么不使用相同的映射将其再次转换为图像呢?这就是UNet背后的秘诀。用同样的 feature maps,将其用于contraction 来将矢量扩展成segmented image。这将保持图像的结构完整性,这将极大地减少失真。让我们更简单地理解架构。
UNet架构
UNet架构
该架构看起来像一个'U'。该体系结构由三部分组成:contraction,bottleneck和expansion 部分。contraction部分由许多contraction块组成。每个块接受一个输入,应用两个3X3的卷积层,然后是一个2X2的最大池化。在每个块之后,核或特征映射的数量会加倍,这样体系结构就可以有效地学习复杂的结构。最底层介于contraction层和expansion 层之间。它使用两个3X3 CNN层,然后是2X2 up convolution层。
这种架构的核心在于expansion 部分。与contraction层类似,它也包含几个expansion 块。每个块将输入传递到两个3X3 CNN层,然后是2X2上采样层。此外,卷积层使用的每个块的feature map数量得到一半