FCN(语义分割)

有关于FCN的个人理解

背景

FCN(语义分割)_第1张图片
该篇文章是开辟语义分割领域的经典之作,在这之前还没有很好的算法能够去区分(标注)图像中不同类别的目标,需要注意的是与往后文章所要介绍的实列分割是不一样的。

思想

受到卷积神经网络中分类思想的启发,决定基于卷积提取特征,再基于反卷积恢复到原尺寸预测每一个像素点的类别概率(属于像素级别的类别预测),另外文章也加入了多尺度的思想。

模型结构

作者依据反卷积的操作将卷积得到的特征图上采样到原图尺寸,于是设计了三种不同上采样倍数的网络,有8、16、32三种,上采样倍数越低的网络拥有更加精细的预测效果,主要是因为底层特征图拥有更多的细节。相对于每一种特征图预测来说,先是通过反卷积上采样到原图尺寸,后接上两个卷积层将特征图的通道数调整到总类别个数,再在通道方向上加上Softmax函数预测每一个像素的类别概率(每一个像素点通道方向上的最大值),模型结构如下图所示。其中对于8、16倍模型都会将上一倍数的特征图先融合,再上采样,同时获得底层与高层的语义信息,共同预测类别概率。此外,值得注意的一点:该模型并没有运用全连接层,而是选择了全卷积,作者给出的理由是:由于全连接层计算量十分大,并且采用1 * 1的卷积就可以完全代替全连接,该结构对以后的CNN模型也起到了一定的影响。
FCN(语义分割)_第2张图片

训练阶段

虽然是语义分割任务,但意义上是与分类任务是一样的,只不过它精细到了每一个像素,因此文章采用的损失函数依据为多分类交叉熵损失,不再赘述。

测试阶段

模型将会直接输出每一个像素对应的类别概率,因此我们只需要取最大值即可,相比于目标检测是十分简单的(但其实是很难学习的),以下是不同尺度模型的预测效果。
FCN(语义分割)_第3张图片

总结

该任务从实现上来说相对比较简单,但要想获得像素级别的类别其实是很难的一件事,因此还有很大的提升空间。如理解存在纰漏,敬请指正,谢谢!

你可能感兴趣的:(目标分割,深度学习,目标检测)