目录
1、编译CTPN源码中的caffe
1)安装caffe依赖库
2)下载CTPN demo源码
3)生成Makefile.config文件
4)执行编译
5)编译python接口
6)测试编译结果
2、运行测试代码:
1)进入CTPN源码目录:
2)编译源码中cython文件
3)利用python执行demo.py文件,运行测试demo案例(CPU模式)
3、错误修改:
1)错误1:No module named cpu_nms:
2)错误2:No module named _caffe:
3)caffe版本错误:
4)Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python:
4、CTPN工程
系统环境:ubuntu 16.04 64位+caffe
1、编译CTPN源码中的caffe
1)安装caffe依赖库
终端执行命令如下:
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install --no-install-recommends libboost-all-dev
2)下载CTPN demo源码
进入当前用户目录(文中指:/home/zsb),利用Git下载源码,在终端窗口输入:
git clone https://github.com/tianzhi0549/CTPN.git
如果没有安装Git,请先安装Git:
sudo apt-get install git
下载完成之后,/home/zsb下将会生成一个CTPN文件夹,如:
3)生成Makefile.config文件
进入CTPN源码caffe所在路径(文中指:/home/zsb/CTPN/caffe):
cd /home/zsb/CTPN/caffe
从Makefile.config.example复制编译内容到Makefile.config:
cp Makefile.config.example Makefile.config
编辑Makefile.config文件:
添加内容如下:
/usr/include/hdf5/serial
/usr/lib/x86_64-linux-gnu/hdf5/serial
然后并保存修改。修改后:
4)执行编译
sudo make all
sudo make test
sudo make runtest
编译结果如:
5)编译python接口
参考【caffe】Ubuntu16.4系统安装caffe CPU版 (踩坑记录)中python接口编译部分。
6)测试编译结果
终端依次输入:
pyhon
import caffe
没有提示错误,则表示编译成功,如下图(红框中的三个连续箭头表示导入caffe模块成功):
2、运行测试代码:
1)进入CTPN源码目录:
cd /home/zsb/CTPN
2)编译源码中cython文件
终端输入:
make
3)利用python执行demo.py文件,运行测试demo案例(CPU模式)
终端输入:
python tools/demo.py --no-gpu
运行结果:
3、错误修改:
1)错误1:No module named cpu_nms:
File "tools/demo.py", line 31, in
from detectors import TextProposalDetector, TextDetector
File "./src/detectors.py", line 4, in
from utils.cpu_nms import cpu_nms as nms
ImportError: No module named cpu_nms
(1)方法1:在/home/zsb/CTPN/src/utils下添加cpu_nm.py文件(见步骤4)
(2)方式2:安装cpython库
sudo apt-get install cython
然后回到CTPN根目录(/home/zsb/CTPN),执行make编译cython文件文件:
cd /home/zsb/CTPN/
make
2)错误2:No module named _caffe
原因是caffe未能成功编译
解决办法:重新编译caffe和python接口
3)caffe版本错误:
error:Message type "caffe.LayerParameter" has no field named "transpose_param"原因是作者修改的caffe网络,其他版本的caffe没有定义“transpose_param”网络层。
解决方法:
编译CTPN源码中的caffe源码(/home/zsb/CTPN/caffe),然后重新运行demo.py文件:
python tools/demo.py --no-gpu
4)Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type:
原因是编译caffe时,未添加python网络层支持
解决方法:修改Makefile.config,去掉WITH_PYTHON_LAYER := 1(添加支持python网络层)前面的“#”,保存修改后,重新编译caffe源码和python接口
4、CTPN工程
VX公号“striveallen” 回复“CTPN”既可以包含作者训练好的caffe 模型(ctpn_trained_model.caffemodel),cpu_nm.py以及编译caffe库的调试CTPN源码工程。其他错误可以参考Ubuntu 64位系统编译caffe,你所不知的那些坑!