mask-RCNN(mxnet版本)的安装与使用
mask-RCNN(mxnet版本)的安装与使用tuSimple(https://github.com/TuSimple/mx-maskrcnn)实现的代码使用python2写的,因此我在anaconda中新建了一个python2.7的kernel,用来测试maskRCNN。在安装mxnet的时候,我将原来的mxnet版本(0.12.0)替换成了最新的1.3.0版本的,旧的版本一直报错。(...
·
mask-RCNN(mxnet版本)的安装与使用
- tuSimple(https://github.com/TuSimple/mx-maskrcnn)实现的代码使用python2写的,因此我在anaconda中新建了一个python2.7的kernel,用来测试maskRCNN。
- 在安装mxnet的时候,我将原来的mxnet版本(0.12.0)替换成了最新的1.3.0版本的,旧的版本一直报错。(在
import mxnet
的过程中一直有遇到'undefined symbol: cblas_sgemm'
之类的问题) - 如果提示找不到
cublas.h
,则需要在config.make中添加ADD_CFLAGS=-I/usr/include/openblas ADD_LDFLAGS=-L/usr/lib64
。 - 使用openblas的话,我在
make.config
中修改USE_BLAS
也会报错,在命令行make -j
后面添加选项即可。参考链接:https://zhuanlan.zhihu.com/p/31107408 - 如果在make的过程中报错
compile error "fatal error: ../mshadow_op.h"
,则需要将roiAlign拷贝到src/operator/contrib
中。参考链接:https://github.com/TuSimple/mx-maskrcnn/issues/123。 - 因为需要编译mxnet的python版本(主要是需要编译roiAlign,不然直接用gluon就行了)。进入python文件夹,
python setup.py install
即可 - 测试:说明python没有找到openblas的库之类的,因此需要在
.bashrc
中添加库目录,添加方式如下export LIBRARY_PATH="$LIBRARY_PATH:/usr/lib64"
。参考链接:https://github.com/apache/incubator-mxnet/issues/245
其他参考链接
其他库的安装
- opencv:
pip install opencv-python
- 安装特定版本的库:
pip install requests==2.18.4
训练和测试
- 安装好并准备好数据之后就可以直接进行训练了
- 如果遇到
out of memory
的问题,则可以减少roi的个数,在rcnn/tools/train_maskrcnn.py
中,之前设置的是256,训练会报错,减少至128个之后,就没有报错了。参考链接:https://github.com/TuSimple/mx-maskrcnn/issues/69 - 下载之前的pretrained模型,应该是256个roi训练出来的,训练开始,
TrainRPN ACC
会下降一些。。。之后再慢慢升高。 - 按照github上的readme进行train和eval就可以了,需要几天时间(我把rcnn的train epoch由24改成了4,其他的不变,最终3块卡用了2天时间)
- 也可以对单张图片进行测试
scripts/demo_single_image.sh
。这里需要注意的是,maskRCNN对输入图像的大小没有要求(训练的时候用的是2048X1024的,我测试单张图片的时候,用的是1368X720的图像也没有问题。) - 如果在train的过程中, 遇到了
LocalFileSystem::Open "model/res50-fpn/cityscape/alternate//rcnn1-0000.params": No such file or directory
的问题,则运行train_alternate.sh
即可。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)