编译CTPN遇到的问题总结

在mac os 10.14环境下,使用python 3.6和tensorflow 1.12.0进行CTPN(文本检测)的编译与运行时遇到了多个问题。包括CPU版本编译时找不到bbox.c,AttributeError与'NoneType' object相关,OpenMP初始化错误,以及KeyError b'TEST'。通过修改工作目录,下载checkpoints文件,调整OpenMP设置和修复代码中的KeyError,最终成功运行了demo并显示了截图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本地环境:

mac os 10.14

python 3.6

tensorflow 1.12.0

问题一:仅用cpu版本,lib/utils/setup.py 如下,执行报找不到bbox.c,我用的是pycharm,运行时需要把workdirctory设置

到utils目录下,如图:

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'],
    )
]
setup(
    ext_modules=ext_modules
)

问题2:AttributeError: 'NoneType' object has no attribute 'model_checkpoint_path'  

解决方法:在https://github.com/eragonruan/text-detection-ctpn/releases里下载checkpoints压缩文件,并解压到xxx/text-detection-ctpn-master目录下

问题3:运行demo.py时

OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.
OMP: Hint: This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous...

解决办法:

在demo.py 中添加 

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

 

问题4:KeyError: b'TEST'

解决办法:

/lib/rpn_msr/rpn_msr/proposal_layer_tf.py

53行添加代码:

cfg_key = cfg_key.decode("utf-8")

添加后如:

cfg_key = cfg_key.decode("utf-8")
    pre_nms_topN  = cfg[cfg_key].RPN_PRE_NMS_TOP_N #12000,在做nms之前,最多保留的候选box数目
    post_nms_topN = cfg[cfg_key].RPN_POST_NMS_TOP_N #2000,做完nms之后,最多保留的box的数目
    nms_thresh    = cfg[cfg_key].RPN_NMS_THRESH #nms用参数,阈值是0.7
    min_size      = cfg[cfg_key].RPN_MIN_SIZE #候选box的最小尺寸,目前是16,高宽均要大于16

至此没有再碰到问题了,成功跑通了demo,可以自己捣鼓了...成功截图如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值