前情回顾
我们在前三期介绍了
这一节为大家详细讲解迁移学习与语义分割的基本原理
﹏
﹏
﹏
﹏
语义分割的任务是将图像每一个像素进行分类,而VGG16在语义分割任务中则是扮演充当图像编码器的角色。Vijay Badrinarayanan等人[13]提出了SegNet模型便很好地完成该项任务,模型结构如图 7.9所示。类似于我们在第四章提及的卷积自编码器,SegNet也是采用Encoder-Decoder模式。编码器由VGG16的前13层组成(即去掉了全连接层),每个卷积层后面跟着Batch Normalization和Relu激励函数,而译码器则是和编码器每一层都相对应,最后下接一个Softmax层来进行分类,进而输出每一个像素的标签。
图 7.9 SegNet
这个模型最大的亮点是采用了Pooling Indices,通过记录每一次Max Pooling的最大值和位置,从而建立索引查询。在upsampling过程中,我们直接利用记录的索引恢复像素,从而达到定向恢复相应值的效果,进而达到分类更加精细的目标。而且这样做的另外一个好处是耗费少量存储空间,加快了训练速度。因为我们只是将对应记录的Max pooling的最大值放回原来的位置,并不需要通过Upsampling来训练学习。Max Pooling与其相对应的UpSampling运算过程如图 7.10所示。
图 7.1 Max Pooling和Upsampling运算过程
参考文献
[13]Badrinarayanan V, Kendall A, Cipolla R. Segnet: A deepconvolutional encoder-decoder architecture for image segmentation[J]. IEEEtransactions on pattern analysis and machine intelligence, 2017, 39(12):2481-2495.
下一期,我们将继续讲授
实例分割
敬请期待~
关注我的微信公众号~不定期更新相关专业知识~
内容 |阿力阿哩哩
编辑 | 阿璃
点个“在看”,作者高产似那啥~