来源:机器学习实验室
做图像分割方向的朋友,一定都用过U-Net,或者做分割方向研究的朋友们,也许都有过魔改U-Net的经历。作为2015年MICCAI上发表的一篇论文,U-Net目前在谷歌学术的引用是11487次,几乎做分割的人人都会引用。
早期基于深度学习的图像分割以FCN为核心,旨在重点解决如何更好从卷积下采样中恢复丢掉的信息损失。后来逐渐形成了以U-Net为核心的这样一种编解码对称的U形结构。作为语义分割界迄今为止最重要的两个设计之一(另一个是空洞卷积),以U-Net为baseline的网络结构在分割界是真正意义上的“寡头”。目前基于U-Net结构的创新就层出不穷,比如说应用于3D图像的V-Net,嵌套U-Net结构的U-Net++等。
U-Net结构能够在分割界具有一统之势,最根本的还是其效果好,尤其是在医学图像领域。所以,做医学影像相关的深度学习应用时,一定都用过U-Net,而且最原始的U-Net一般都会有一个不错的baseline表现。2015年发表U-Net的MICCAI,是目前医学图像分析领域最顶级的国际会议,U-Net为什么在医学上效果这么好非常值得探讨一番。
U-Net为什么在医学图像上表现这么好?原因是双向的,得分别从U-Net网络本身和医学图像特点上来回答这个问题。
U-Net结构分析
目前通用的语义分割网络结构流程就是输入图像,下采样编码,然后上采样解码,最后输出一个分割结果。我们来看一下U-Net的结构,如下图所示:
乍一看很复杂,U形结构下貌似有很多细节问题。我们来把U-Net简化一下,如下图所示:
从图中可以看到,简化之后的U-Net的关键点只有三条线:
下采样编码上采样解码跳跃连接下采样进行信息浓缩和上采样进行像素恢复,这是其他分割网络都会有的部分,U-Net自然也不会跳出这个框架,可以看到,U-Net进行了4次的最大池化下采样,每一次采样后都使用了卷积进行信息提取得到特征图,然后再经过4次上采样恢复输入像素尺寸。但U-Net最关键的、也是最特色的部分在于图中红色虚线的Skip Connection。每一次下采样都会有一个跳跃连接与对应的上采样进行级联,这种不同尺度的特征融合对上采样恢复像素大有帮助,具体来说就是高层(浅层)下采样倍数小,特征图具备更加细致的图特征,底层(深层)下采样倍数大,信息经过大量浓缩,空间损失大,但有助于目标区域(分类)判断,当high level和low level的特征进行融合时,分割效果往往会非常好。从某种程度上讲,这种跳跃连接也可以视为一种Deep Supervision(参见系列第15篇)。
所以U-Net本身的结构设计导致了其不光在医学图像上表现优越,在一般的自然图像上效果依然很好。
医学图像
再来看医学图像。相较于普通的自然影像,医学图像都有什么特征呢?
自然图像-家居设施
医学图像-肝脏CT
可以看到,相较于自然图像,医学图像内容和信息密度远远不如对方。所以总体而言,医学影像结构固定,语义信息较为简单。常见的医学影像类型,比如CT、MRI、超声、病理切片和OCT等等,大多数成像方式对单一的人体器官进行成像时得到的影像结构都会相对固定一些。比如说下图的血管内超声影像,其图像特点就是官腔(lumen)的位置相较于整幅图而言永远都处于中心位置。
血管内超声图像(IVUS)
第二个原因在于医学影像的小样本性。医学影像数据因其专业性和隐私性,相较于自然图像数据要难获取的多,所以,一般一个项目能用到的数据不过数百例,小样本是其典型特征。对于深度学习而言,小样本不能用大模型,因为容易过拟合,所以,网络结构复杂和参数量大的模型并不适合于医学影像。而原始U-Net的参数量为28M,这是一个非常轻量级的网络,即使数据量不够用,辅以相应的数据增强手段,一般都会有一个很好的适配性。
所以,总的来说U-Net在医学图像上效果优越,是由U-Net网络结构和医学图像本身特征所决定的。U-Net的带有跳跃连接的编解码结构能够融合不同层级的特征,医学图像本身的固定化结构和小样本性,共同使得U-Net成为医学图像分割领域的最佳模型。下次碰到面试官问你这个问题,可不要还回答不上来哦。
参考资料:
Ronneberger O, Fischer P, Brox T. U-net: Convolutional networks for biomedical image segmentation[C]//International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015: 234-241.