你是如何运行FCN代码语义分段的?

时间:2016-12-18 13:52:38

标签: caffe pycaffe matcaffe

我想运行[FCN代码] [1]进行语义分割。但是,我是Caffe的初学者,我不知道从哪一点开始运行代码。

是否有任何分步指导运行?

1 个答案:

答案 0 :(得分:2)

由于我在这里得不到多少帮助,我在这里发布了这些步骤。对于那些没有经验的人(比如我),这可能会有所帮助。我花了很长时间才弄清楚如何运行它并获得结果。你可能能够成功运行它,但与我的情况类似,结果很长时间是空白图像,最后发现应该如何设置。

我可以对我的数据成功执行FCN8s,并执行了以下步骤:

  1. 将数据分为两组(训练,验证)和标签以及火车和验证中的相应图像(共4个文件夹:train_img_lmdbtrain_label_lmdbval_img_lmdbval_label_lmdb
  2. 将您的数据(每个数据单独转换)为LMDB格式(如果它不是RGB,使用cv2函数转换它),您将有4个lmdb文件夹,包括data.mdblock.mdb。示例代码为available here
  3. 从作者提供的url下载.caffemodel
  4. 更改train_val.ptototxt文件中lmdb文件路径的路径,您应该有4个数据层,sourcetrain_img_lmdb的路径,train_label_lmdbval_img_lmdbval_label_lmdb,类似于this link
  5. this line之后添加convolution图层(此处,我有五个类,然后根据地面实况图像中的类数更改num_output):

    图层{ 名称:" score_5classes" 类型:"卷积" 底部:"得分" top:" score_5classes" convolution_param { num_output:5 垫:0 kernel_size:1 } }

  6. 按如下方式更改损失层(仅根据底层的名称):

    图层{ 名称:"损失" type:" SoftmaxWithLoss" 底部:" score_5classes" 底部:"标签" 顶部:"损失" loss_param { normalize:true } }

  7. 运行模型开始训练你有pycaffe并安装了caffe环境。

    caffe train -solver = / path / to / solver.prototxt -weights /path/to/pre-trained/model/fcn8s-heavy-pascal.caffemodel 2>& 1 | tee /path/to/save/training/log/file/fcn8_exp1.log

  8. 我希望它有所帮助。感谢@ Shai的帮助