如果我训练一个模型对只有一个对象的图像执行语义分割,它是否也适用于具有多个对象的图像?

人工智能 计算机视觉 图像分割 网络 实例分割 语义分割
2021-10-20 00:51:03

我正在使用 U-Net 从事医学领域的语义分割任务。假设我在医学图像上训练了一个 U-Net 模型,目标是从医学图像中分割出韧带。我假设,如果我在仅包含单个标记韧带的图像上训练该模型,它将能够很好地分割出单个韧带。如果我用多条韧带的图像呈现它,它是否也能很好地分割多条韧带?

根据我的理解,语义分割只是逐像素分类。结果,图像中的对象数量不应该不相关,因为它只查看单个像素吗?那么,只要一个像素与韧带的像素匹配,它就应该能够平等地分割它,对吧?

还是我误解了一些东西?

基本上,如果我在仅具有单个韧带的图像上训练 U-Net,它是否也能够根据我上面的逻辑同样地分割具有多个韧带的图像?

3个回答

如果没有实验证据支持我,我不能 100% 自信地回答这个问题。但是,我相当肯定这会根据模型引起问题。

U-net 本质上是一个自动编码器,由于它只是一个大型神经网络,它很可能会学习最简单的模式(就像所有 NN 一样),即找到一个对象并为该区域着色。

现在为什么这取决于模型?好吧,假设您正在使用稍微不同的东西,其中区域建议是由我们预定义的确定性算法生成的,然后这些区域通过 CNN 运行以对其进行分割。在这种情况下,由于每个区域都没有整个图像的上下文,因此网络无法区分图像中的 2 个对象和 1 个对象之间的差异(因为区域可能重叠),因此,仅使用具有 1 个对象的图像不会构成任何问题(像这样的早期模型有一个名字,虽然它逃脱了我)。

所以假设我是对的,你应该怎么做?对区域建议使用确定性算法的模型既慢又旧,所以我不建议这样做。相反,我认为您应该首先进行一些测试,看看它是否确实会导致问题。假设确实如此,一个好的选择可能是篡改训练数据并将片段分隔几个像素以“强制”多个对象存在。

无论如何,我仍然建议使用 U-net。解决这个问题(如果确实出现了)应该相对容易做到,所以使用 U-net 并尝试训练几乎没有什么损失。

Semantic Segmentation一个解决问题的问题中,调查图像上的特定像素是否属于某一类。例如,在从街道上拍摄的照片上,可能会感兴趣,该像素是否属于道路、红绿灯、标志、人物或不感兴趣的背景。

表面上看,在这种设置中,对象的单个实例或多个实例都无关紧要,更重要的是图像上特定类的丰富程度。

但是,CNN采用与数据来源相关的特定模式。可能的情况是,网络已经捕获了一些属性并采用了一种模式,该模式仅与一个实例相关。具有多个感兴趣类别实例的图像就像数据中的异常值,并且可能由于这种不正确而被处理。

我不确定它是否对你的特定问题有意义,但也许值得执行mosaic增强https://towardsdatascience.com/data-augmentation-in-yolov4-c16bd22b2617这样您就可以为一些增强数据样本提供多实例案例。

我不知道有一个模型可以从单段推广到多段,而无需进行重要的手术、增强和再训练,但是在要分割的区域不重叠的情况下,我已经取得了一些成功:在找到第一个分割,编辑输入图像以扭曲或模糊分割区域并再次运行它,重复直到它停止找到新的片段。