《Detecting Text in Natural Image with Connectionist Text Proposal Network》,发表在ECCV2016,算是一个使用比较多效果较好的较为经典的一个文字检查算法了。
本人目前也在阅读该论文tensorflow版本的代码,该代码的仓库名称为ext-detection-ctpn,github下载地址:https://github.com/eragonruan/text-detection-ctpn.git
作者本人喜欢在本地调试服务器端训练,本机是mac没有gpu,所以只能跑cpu版本,下面分享一下跑通cpu版本的流程。
git clone https://github.com/eragonruan/text-detection-ctpn.git ,将代码下载到本地
将./ctpn/text.yml文件中的USE_GPU_NMS置为False
将./lib/fast_rcnn/nms_wrapper.py文件中的from lib.utils.gpu_nms import gpu_nms注释掉
利用./lib/utils/setup.py文件编译出cython_nms.so,方法如下:
a). 修改setup.py文件,将原来的所有代码改为下面代码
b). cd ./lib/utils
c). 运行python setup.py build
from Cython.Build import cythonize
import numpy as np
from distutils.core import setup
from distutils.extension import Extension
try:
numpy_include = np.get_include()
except AttributeError:
numpy_include = np.get_numpy_include()
ext_modules = [
Extension(
'bbox',
sources=['bbox.c'],
include_dirs = [numpy_include]
),
Extension(
'cython_nms',
sources=['cython_nms.c'],
include_dirs = [numpy_include]
)
]
setup(
ext_modules=ext_modules
)
上述步骤会输出so在目录./lib/utils/build下,将里面所有的so都拷到./lib/utils/目录下
下载训练好的模型,地址:https://github.com/eragonruan/text-detection-ctpn/releases ,将下载好的checkpoints文件夹拷到cptn文件夹里,运行python demo.py查看是否能跑通。
注意:笔者本地用的是pycharm进行调试代码,tensorflow的安装参考tensorflow mac和Linux上的简便安装,上述过程中如果提示确实什么安装包直接使用tensorflow环境里的pip安装即可,遇到问题欢迎留言
参考
[1] https://github.com/eragonruan/text-detection-ctpn
[2] https://github.com/eragonruan/text-detection-ctpn/issues/43
[3] https://github.com/eragonruan/text-detection-ctpn/releases