本文介绍运行ctpn的步骤以及一些坑
引言:
ctpn用来做文字检测,即找出图片中的文字位置,并且框出来。
运行代码链接:https://github.com/AKSHAYUBHAT/CTPN8
因为原来的ctpn链接:https://github.com/tianzhi0549/CTPN,是基于cuda7.0,而这个cuda版本已经过时了,我的cuda版本是cuda8.0,因此不用原作者的代码,直接又找了第一个链接
问题1:cudnn的版本问题
原因:由于需要cudnn加速,而caffe的cudnn*.cpp/cudnn*.cu总是在更新,导致cudnn的版本冲突(这个问题和跑faster-rcnn的原因一样)
解决办法:
1).将/py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp.
2).将/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layer里的,所有以cudnn开头的文件,例如cudnn_lrn_layer.cu,cudnn_pooling_layer.cpp,cudnn_sigmoid_layer.cu。
都替换成最新版的caffe里的相应的同名文件。
3)将./include/caffe/layers的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp,cudnn_lcn_laye.hpp
都替换成最新版的caffe里的相应的同名文件问题2:引用不同文件夹下的py文件,导致由于找不到该文件而不能import py文件
解决办法:
方法1:
修改环境变量,在~/.bashrc里面进行修改,然后source ~/.bashrc
方法2:
引入.pth文件
在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。
1 windows
c:\python27\site-packages
# 我们的学员把pth文件直接放在c:\python27
# (或其他python安装目录)目录下测试也是有效的
# 2015.9.23
2 linux(ubuntu)
/usr/local/lib/python2.7/dist-packages (note by shanql, 我是放在这个目录下有效的,所添加的目录一定要存在,不存在则会不成功)
如果不好使的话,那么放入/usr/lib/python2.7 里
2 linux(redhat) /usr/lib/python2.7/site-packages
坑已填完,开始运行代码
------------------------------------------------------------------------------
运行步骤
1)
git clone --recursive https://github.com/qingswu/CTPN.git
这里要注意:一定要在终端执行这段代码,而不能通过下载zip文件来克隆源文件。因为--recursive这个参数引用了其他caffe的依赖
2)替换cudnn*.cpp,cudnn*.cu文件,编译caffe
make all -j32
make pycaffe
3)到该项目的根目录下,编译整个项目,生成cpu_nms.c文件
cd /home/xuy/CTPN
make
4)下载该项目的caffemodel到指定文件夹下
wget http://textdet.com/downloads/ctpn_trained_model.caffemodel -P models/
5)运行代码,输出结果
python tools/demo.py