ParseNet源码训练和分析

版权声明:新建了专注于语义分割的QQ群704803384,欢迎交流!!! https://blog.csdn.net/u014451076/article/details/79442695

ParseNet

编译Caffe

直接从github上clone下来代码

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout fcn

注意:记得切换到fcn分支,不然会出现eval_type未定义的问题
存在的问题:cudnn6.0无法使用,于是在编译的时候关掉了cudnn.

训练

先制作数据集——训练集增强的VOC2012,得到完整的数据集后,不需要进行resize,因为parsenet的batch-size设置的是1, iter_size设置为8.
训练集数目为10582,验证集为1449,手动转化为lmdb,进行训练即可.
其中训练集的收集在我的deeplab中有介绍.

训练过程中显存占用为2.0g

结果

原论文给出的结果是在VOC val上为69.55 mIoU.
迭代20000次,结果如下:

I0305 01:53:47.707645 10625 solver.cpp:356] Iteration 10000, Testing net (#0)
I0305 01:55:48.532131 10625 solver.cpp:428]     Test net output #0 evaluation: per_pixel_acc = 0.927039
I0305 01:55:48.532177 10625 solver.cpp:430]     Test net output #0 evaluation: per_label_acc = 0.803155
I0305 01:55:48.532181 10625 solver.cpp:432]     Test net output #0 evaluation: iou_acc = 0.694358
I0305 01:55:48.532186 10625 solver.cpp:434]     Test net output #0 evaluation: weighted_iou_acc = 0.871142

源代码解读

源代码在caffe的基础上引入了filter_stride(atrous), L2-norm Layer, evaluation layer.
主要是Evaluation Layer,简单看了一下,后续有时间再详细分析

猜你喜欢

转载自blog.csdn.net/u014451076/article/details/79442695