精读Learning Topological Interactions for Multi-Class Medical Image Segmentation

摘要

        在医学图像中,一个数据集中,不同类之间总是遵循着一些拓扑关系,例如骨髓在骨头内部,心脏不可能与膀胱接触,毕竟现实中这两玩意挨一起了,那画面直接过不了审,大多数数据集不可能采用这类样本做数据。于是,作者从这一点出发,研究GT中的拓扑关系,并找出分割结果中,不满足这类拓扑关系的点,计算一个额外的损失,以此来提高模型性能。

方法

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第1张图片

        上图是架构图,左半部分基本是传统方法,分割出来后计算交叉熵和dice损失,右边,绿色模块输出的才是重点。可以看到,GT中绿色类只会出现在黄色类内部,而分割结果P中,模型错误地把黄色区域外的一部分当成了绿色的类,于是,这块区域不和黄色相邻的边界便被标记为拓扑关系异常的错误的关键像素,保存在了V中。最后V与分割结果和GT分别相乘,只比较这一块的异同,再计算出一个损失,并用于DNN的训练。

        其实这个方法的重点难点就一点,如何确定GT和P的拓扑关系,从而找出拓扑关系错误的关键像素。

        本文的作者决定只关注两种拓扑关系,一种是包含,一种是互斥。

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第2张图片

  • A如果包含B,就说明B完全在A内部,不和其他任何一个类,包括背景接触,所以图像中每一组点对如果有了B,那么另一个只能是A或B,如果出现了别的组合就是分割错误、
  • A和B如果互斥,那么A和B必须完全互不接触,则一个点对中绝对不可能同时含有A和B。

        通过这两条定理,就可以通过确认点对的所有情况来确定图中的拓扑关系。但问题又来了,遍历图中每一对相邻点太耗时,作者于是采用卷积和点积的方式检测点对组合。具体操作如下图所示。

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第3张图片

        P是分割结果,灰色的为背景像素,红绿为另外两种像素。正常情况下红色类应该包含于绿色类,即红色像素周围应该只能有红色或绿色,而红色和灰色相邻的情况就是错误情况。

        除了P和III,其余的每个举证都是单通道0-1矩阵,黑色部分为0,其余部分为1。

        上面一行是背景类进行了卷积,MC即只关注C类,背景类,把原来的背景当主角,把其他所有类当背景。然后利用卷积核K进行卷积,得到NC。由于K中,中间像素的上下左右是白色的,就说明将MC中所有值为1的像素的上下左右的像素也变为了1,便得到了NC,如果将K替换为全白,那么MC中所有值为1的像素的八个方向的像素全部变为了1,才能得到NC。最后,把NC和MA点积,得到的结果就是A中有哪些点与C相邻。

        反之也是同理,用NA和MC相乘,便得到了C中存在哪些与A相邻的点。之前说过,红色类和灰色类不该相邻,即C和A不该相邻,那么这些相邻的点就是关键点,于是VA和VC进行一个位或运算便得到了AC两类之间的关键点。因为N图,即每个类卷积后的图,只需要求一次,所以遍历每一种N图组合便可得到GT的拓扑关系和P中的全部关键点,同时代价又不是大的无法接受。

        当然,P中还有许多其他分割错误的点,但本文方法只关注边界上的关键点。

        在得到关键点图后就很简单了,用这个0-1矩阵乘以分割结果和原图,于是分割结果和原图中只留下了关键点位置的信息,根据这些信息,使用像素级的损失函数,即可算出额外的损失函数。作者最终继续使用交叉熵作为这一损失函数。

实验

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第4张图片

        图中是随着训练,网络的表现。一开始与nnUNet一样,右侧有缺口。因为绿色类不该接触背景类,所以红线部分被识别为关键点,哪怕这些关键点自身可能有一部分是正确的,但因为不符合拓扑关系,所以被标记出来额外计算了损失函数。最终,经过更多的训练,这部分缺口被补上了。

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第5张图片

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第6张图片

        之后的实验没啥好说的,就是个例加数据,证明自己的方法牛逼。

消融实验

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第7张图片

        消融实验探究了前文提到的像素级损失函数使用不同的具体函数会如何和不同的权重值。损失函数中的None和权重值中的0就说明压根没关注关键点图,就是传统方法,其他实验则证明了用交叉熵损失函数和1e-4权重值是最佳的。

精读Learning Topological Interactions for Multi-Class Medical Image Segmentation_第8张图片

        作者还探究了不同的K对性能的影响。在图中的ours中,4conn就说明卷积核中除了中心白块只有4个其他的白块,默认这种情况下,四个白块是上下左右的四个,而8conn很简单,卷积核全白。可以看出,寻找关键像素图时,关注的范围越大,找出的异常点越多,效果越好。

你可能感兴趣的:(深度学习,深度学习)