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

How did you run FCN code semantic segmentation?

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

运行ning 有任何分步指导吗?

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

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

  1. 将数据分为两组(train,validation)和labels以及train和validation中相应图像的标签(共4个文件夹:train_img_lmdbtrain_label_lmdb, val_img_lmdbval_label_lmdb)

  2. 将你的数据(每一个单独)转换成LMDB格式(如果不是RGB,使用cv2函数转换),你将有4个lmdb文件夹,包括data.mdblock.mdb。示例代码是 available here.

  3. 从作者提供的url下载.caffemodel

  4. 将路径更改为train_val.ptototxt文件中的lmdb文件的路径,你应该有4个数据层,source是[=10=的路径]、train_label_lmdbval_img_lmdbval_label_lmdb,类似于this link

  5. this line之后添加一个convolution层(这里我有5个类,然后根据[的个数改变num_output =83=] 在地面实况图像中):

    图层{ 名称:“score_5classes” 类型:“卷积” 底部:“分数” 顶部:“score_5classes” convolution_param{ num_output: 5 垫:0 kernel_size: 1 个 } }

  6. 更改损失层如下(根据你在底层的名称):

    图层{ 名称:“损失” 类型:“SoftmaxWithLoss” 底部:“score_5classes” 底部:“标签” 顶部:“损失” loss_param{ 归一化:真 } }

  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

希望对您有所帮助。感谢@Shai 的帮助