U-Net网络介绍
U-Net神经网络是出自《U-Net:Convulution Networks for Biomedical Image Segmentation》在医疗影像方面的顶会,Medical Image Computing and Computer-Assisted Intervention(MICCAI)即医疗影像处理和计算机辅助。
是一种end-to-end的网络(什么是端对端的网络?,就是你的数据在提交的时候之后就不需要再次处理了,直接得到你想要的答案。就是你提供原料,出来的就是你想要的成品,例如在这里输入的是一张图片得到的也是一张图片。)
U-Net的贡献在于:1.速度快。2.更少的训练数据但有更精确的分割。
常用的神经网络在分类任务上已经十分出色,但是对微生物图像处理,分类就仅仅不够了,还需要对目标的定位和到像素级别的分类。
在论文指出了Ciresan创立的利用滑动窗口的目标检测的缺点:第一,速度慢,由于有重合部分而产生大流量的数据冗余。第二,无法在定位的精确性和文本内容中得到一个较好的权衡。(因为滑动框每次只能看到一小部分的文本内容)
并说出了U-Net可以在同时达到两种相对较优的优势。U-Net是建立在FCN(fully convulsional net)的基础之上。
上图是U-net网络的架构方式,其中深蓝色箭头代表卷积,过滤器(filter)大小是3*3,激活函数的ReLu,padding = 0,filter个数是64。
conv1 = keras.CONV2D(input = (572*572), filters = 64, kern_size = 3, strides = 1,
padding = 0, activation = "ReLu")
其中灰色箭头代表的是连接,讲左侧的缩小层(contracting path)和右侧的放大层(expansive path)合并。
红色箭头是下采样,也就是最大池化。
conv2 = keras.MaxPooling2D(kern_size = 2, stride =2, padding = 0,)
绿色箭头是一个上采样的过程:(什么是上采样?上采样就是一个扩大特征图的方法,其中的方法有很多,例如:uppooling:恢复max的位置,其他位置进行补零操作。deconvolution:先对input补零,在进行conv。3,插值算法)