ubuntu16.04 系统如何正运行caffe版本的CTPN 文字检测demo(CPU版)?

目录

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文件夹,如:
image

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文件:

去掉WITH_PYTHON_LAYER := 1(添加支持python网络层)和CPU_ONLY :=1(表示CPU模式)前面的“#”:
image

image

在Makefile.config文件中添加hdf5头文件和库路径 ,添加前如下所示:
image

添加内容如下:
/usr/include/hdf5/serial
/usr/lib/x86_64-linux-gnu/hdf5/serial

然后并保存修改。修改后:


image

4)执行编译

sudo make all
sudo make test
sudo make runtest

编译结果如:
image

5)编译python接口

参考【caffe】Ubuntu16.4系统安装caffe CPU版 (踩坑记录)中python接口编译部分。

6)测试编译结果

终端依次输入:

pyhon
import caffe

没有提示错误,则表示编译成功,如下图(红框中的三个连续箭头表示导入caffe模块成功):

image
具体编译过程可以参考:【caffe】Ubuntu16.4系统安装caffe CPU版 (踩坑记录)

2、运行测试代码:

1)进入CTPN源码目录:

cd /home/zsb/CTPN

2)编译源码中cython文件

终端输入:

make

3)利用python执行demo.py文件,运行测试demo案例(CPU模式)

终端输入:

python tools/demo.py --no-gpu

运行结果:
image

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
image

原因是caffe未能成功编译
解决办法:重新编译caffe和python接口

3)caffe版本错误:

error:Message type "caffe.LayerParameter" has no field named "transpose_param"
image

原因是作者修改的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:

image

原因是编译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,你所不知的那些坑!

你可能感兴趣的:(ubuntu16.04 系统如何正运行caffe版本的CTPN 文字检测demo(CPU版)?)