在之前的篇章中我分享过2D和3D分割模型的例子,里面有不同的分割网络Unet,VNet等。今天我就从损失函数这个方向给大家分享一下在分割模型中常用的一些函数。
1、dice_loss
我在之前的文章中用的损失函数一直都是dice_loss,在这篇文章中《V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation》有详细介绍,论文下载地址:https://arxiv.org/abs/1606.04797。
2、tversky_loss
分割任务中的主要挑战之一是数据的不平衡性,例如癌症区域和非癌症区域相差很大,所以有一些文章为了解决数据不平衡性问题,提出了一些改进的损失函数,在这篇文章中《Tversky loss function for image segmentation using 3D fully convolutional deep networks》有详细介绍tversky_loss,论文下载地址:
https://arxiv.org/abs/1706.05721。
3、generalised_dice_loss
再多分类分割任务中类别间也会存在不平衡性的挑战,在这篇文章中《Generalised Dice overlap as a deep learning loss function for highly unbalanced segmentations》有详细介绍generalised_dice_loss,论文下载地址:https://arxiv.org/abs/1707.03237。
我用tensorflow复现了上面三种损失函数的2D版本和3D版本,具体实现我已经分享到github上:
https://github.com/junqiangchen/Image-Segmentation-Loss-Functions。感兴趣的朋友可以在github上看到详细的过程,如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果碰到任何问题,随时留言,我会尽量去回答的。欢迎大家可以分享其他分割模型损失函数,让我们一起学习交流。