FCIS算法的MXNet实现
来源:互联网 发布:java char 编辑:程序博客网 时间:2024/05/30 02:24
论文:Fully Convolutional Instance-aware Semantic Segmentation
github地址:https://github.com/msracver/FCIS
FCIS(Fully Convolutional Instance-aware Semantic Segmentation)算法是COCO2016分割的冠军,接下来是自己记录的跑该算法demo和训练模型的过程。
1、拉取项目
git clone https://github.com/msracver/FCIS
2、运行demo
2.1、在项目根目录下运行init.sh:
sh init.sh
这个命令主要是编译cython和生成一些文件夹
2.2、把该项目的operator_cxx文件夹copy到mxnet项目下:
cp -r ${YOUT_FCIS_ROOT}/fcis/operator_cxx/* ${YOUR_MXNET_ROOT}/src/operator/contrib/
注:如果你的电脑还没有mxnet项目,那么应先拉取mxnet项目(切换分支和submodule两步我是做了)再执行前面的cp操作:
git clone --recursive https://github.com/dmlc/mxnet.gitgit checkout 62ecb60git submodule update
2.3、重新编译mxnet
如果原来你的电脑就有编译好的mxnet,那么应该先清除编译,再重新编译:
make cleanmake -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1
如果原来你的电脑连mxnet项目都没有,那么应该先拉取mxnet项目,再进行前面的2.2步骤,最后编译mxnet:
git clone --recursive https://github.com/dmlc/mxnet.gitgit checkout 62ecb60git submodule updatecp -r ${YOUT_FCIS_ROOT}/fcis/operator_cxx/* ${YOUR_MXNET_ROOT}/src/operator/contrib/make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1
2.4、下载训练好的模型
下载链接
使得在model文件夹下有这个文件:
./model/fcis_coco-0000.params
2.5、下载一些必要的python库,尤其最后这个hickle一定记得安装
pip install Cythonpip install opencv-python==3.2.0.6pip install easydict==1.6pip install hickle
2.5、运行demo
python ./fcis/demo.py
3、自己训练模型
3.1、下载数据
VOC 2012下载地址
解压后把img,inst,cls文件夹放在data文件夹下,如下所示:
.data/VOCdevkit/VOCSDS/img/.data/VOCdevkit/VOCSDS/inst/.data/VOCdevkit/VOCSDS/cls/
注:下载下来的.tgz压缩文件可以用 tar -xvf file.tgz 命令来解压缩
COCO数据集下载地址
解压后data文件夹下,如下所示:
.data/coco/.data/coco/annotations/instances_valminusminival2014.json.data/coco/annotations/instances_minival2014.json
3.2、下载预训练模型
下载地址
放在model/pretrained_model文件夹下,如下所示:
./model/pretrained_model/resnet_v1_101-0000.params
3.3、训练模型
假设你要在COCO数据集上训练,可以用对应的.yaml配置文件
python experiments/fcis/fcis_end2end_train_test.py --cfg experiments/fcis/cfgs/resnet_v1_101_coco_fcis_end2end_ohem.yaml
fcis_end2end_train_test.py脚本包括训练和测试两个部分,分别调用/FCIS/fcis/train_end2end.py脚本中的main()函数和/FCIS/fcis/test.py脚本中的main()函数.
resnet_v1_101_coco_fcis_end2end_ohem.yaml里面的dataset的数据路径,预训练模型路径最好改成绝对路径,避免以后的麻烦。
贴一个正在训练的FCIS:
- FCIS算法的MXNet实现
- SSD算法的MXNet实现
- FCIS ubuntu实现问题解决
- 可变卷积(Deformable ConvNets)算法的MXNet实现
- MXNet的训练实现脚本:module.py
- 推荐算法学习2-MXNET 实现movielen 融合个性化推荐
- 在Ubuntu 14.04下配置FCIS的运行环境
- [paper] FCIS
- MXNet的Model API
- MXNet的模型园地
- mxnet的更新问题
- mshadow的原理--MXNet
- mxnet 框架的搭建
- 推荐算法学习2-MXNET 实现movielen 融合个性化推荐-续-加入CNN文本处理
- MXNet设计和实现简介
- MXNet设计和实现简介
- MXNet设计和实现简介
- MXNet设计和实现简介
- 解决Maven新建webapp项目index.jsp报错
- CCF 2017 03 04修地铁(dijkstra变形)
- 欢迎使用CSDN-markdown编辑器
- HDU 5538 House Building——思路题
- Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)
- FCIS算法的MXNet实现
- Oracle 学习(一)---数据库基本操作
- Java中的equals和==的区别
- CEF 3.2623.1401 编译日志 2017
- 2017.9.16 WC模拟赛 总结
- 八大排序算法
- 异步刷新及一些心得
- oop Tab
- 大数加减