如何微调FCN-32以进行交互式对象分割

时间:2016-10-26 09:29:45

标签: neural-network deep-learning caffe image-segmentation conv-neural-network

我正在尝试在CVPR文件(Deep Interactive Object Selection)中实现所提出的模型,其中数据集包含每个输入样本的5个通道:

1.Red

2.Blue

3.Green

4.与正面点击相关联的欧氏距离图

5.与负面点击相关联的欧氏距离图(如下所示):

enter image description here

enter image description here

enter image description here

为此,我应该使用“对象二进制掩码”作为标签来微调FCN-32s网络:

enter image description here

如你所见,在第一个转换层我有2个额外的通道,所以我做了网络手术,为前3个通道使用预训练参数,为前2个额外用Xavier初始化。

对于FCN架构的其余部分,我有以下问题:

  1. 我应该在“fc6”之前冻结所有图层(第一个转换图层除外)吗?如果是,将如何学习第一轮的额外频道?梯度是否足够强,能够在训练过程中到达第一个转换层?

  2. “fc6”的内核大小应该是多少?我应该保留7?我在“Caffe net_surgery”笔记本中看到它取决于最后一层(“pool5”)的输出大小。

  3. 主要问题是“score_fr”和“upscore”图层的输出数量,因为我没有进行类分割(20个类和背景使用21个),我应该如何更改它? 2怎么样? (一个用于对象,另一个用于非对象(背景)区域)?

  4. 我应该将“裁剪”图层“偏移”更改为32以进行中心裁剪吗?

  5. 如果要更改这些层中的每一层,那么它们的最佳初始化策略是什么?其余的“双线”为“得分”和“泽维尔”?

  6. 我应该将二进制标签矩阵值转换为以零为中心({-0.5,0.5})状态,还是可以将它们与{0,1}中的值一起使用?

    < / LI>

    任何有用的想法将不胜感激。

    PS: 我正在使用欧几里德损失,而我使用“1”作为“score_fr”和“upscore”图层的输出数量。如果我使用2,我猜它应该是softmax。

1 个答案:

答案 0 :(得分:1)

我可以回答你的一些问题。

  1. 渐变将到达第一层,因此即使您冻结其他图层也应该可以学习权重。

  2. num_output更改为2并进行微调。你应该得到一个好的输出。

  3. 我认为您需要尝试每个选项并了解其准确性。

  4. 您可以使用值0,1。