图像语义分割-FCN

xiaoxiao2021-02-28  75

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 图像级的分类:假设数据集共有c类, 网络最终输出会是一个长为c的输出向量, 表示输入图像属于每一类的概率。

语义级别语义分割:得到对应位置每个像素的分类结果。其目的是将图像分割为若干个区域,语义相同的像素被分在同一区域内。

边缘检测:相当于一个二分类问题,判断每个像素是不是边缘。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 传统做法:以某个像素点为中心取一个图像块,作为样本输入网络,网络输出为中心像素点属于每一类的概率。在测试阶段, 在测试图片上以每个像素点为中心采一个图像块进行分类(sliding windows)。缺点:时间复杂度高;受到图像块限制,无法感知更大的上下文信息。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FCN: 论文:https://arxiv.org/abs/1411.4038 程序:https://github.com/shelhamer/fcn.berkeleyvision.org Input->conv1_1->con1_2->pool1->conv2_1->conv2_2->pool2->conv3_1->conv3_2->conv3_3->pool3->conv4_1->conv4_2->conv4_3->pool4 ->conv5_1->conv5_2->conv5_3->pool5->fc6(+drop6)->fc7(+drop7)->score_fr->upscore->crop

(其中fc6和fc7的特征图数目为4096,score_fr的特征图数目为类别数。且每一个卷积层后面都接一个Relu层。upscore上采样层的参数为kernelsize=64,stride=32。)

训练时caffe中的loss为SoftmaxWithLoss,tensorflow中的 loss=tf.reduce_mean((tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits,labels=tf.squeeze(annotation, squeeze_dims=[3]),name=”entropy”)))) 其中,logits的尺寸为IMAGE_SIZE*IMAGE_SIZE*num_classes,annotation的尺寸为IMAGE_SIZE*IMAGE_SIZE*1

http://blog.csdn.net/weixin_35653315/article/details/54602190(Semantic Segmentation with FCN里的32x, 16x和8x)

转载请注明原文地址: https://www.6miu.com/read-1450315.html

最新回复(0)