作者:云时之间
来源:知乎
链接:https://zhuanlan.zhihu.com/p/134050443
编辑:王萌

项目地址:github.com/xiaofengShi/
为了方便下载:gitee.com/yunshizhijian
因为项目中推荐使用的环境为MAC和Linux,因此迁移到Windows上仍需要一些改动,但是在网上的资料很少,并且处理报错不够全面,踩了一路坑,因此写一篇博客记录一下。
系统要使用的环境如下:
特别建议使用虚拟环境,特别是现在tensorflow已经更新到2.0,而项目中仍在使用1.8,有很多的差别。
因为我这里使用的是CPU环境,这里仅举例CPU安装所需的库:
Python 3.6
scipy numpy jupyter ipython
opencv-contrib-python==4.0.0.21
keras==2.1.5 ,tensorflow==1.8
剩余的一些不太关键包需要啥就装啥


项目下载好后,pycharm打开,首先运行项目中的demo.py

出现没有 No module named 'lib.utils',但是我们目录中是有utils这个包的,我们需要使用Cpython来编译,打开ctpn/lib/utils/setup_cpu.py,将里面的代码全部删掉,用下面代码替换:

import osfrom distutils.core import setupfrom distutils.extension import Extensionfrom os.path import join as pjoinimport numpy as npfrom Cython.Distutils import build_extfrom Cython.Build import cythonizetry:numpy_include = np.get_include()except AttributeError:numpy_include = np.get_numpy_include()setup(ext_modules=cythonize(["bbox.pyx","cython_nms.pyx"]),)

在控制台进入到setup_cpu.py这个文件的目录,输入python setup_cpu.py build,大概率出现

这时候将替换为

setup(ext_modules=cythonize(["bbox.pyx","cython_nms.pyx"],include_dirs=[numpy_include]),)

继续编译,直至生成:

到下图路径下,找到这两个文件:

复制移动到:D:\chinese_ocr\ctpn\lib\utils目录下,再运行demo.py,继续报错

ModuleNotFoundError: No module named 'lib.utils'
继续修改:
分析文件路径,我们可以发现lib的文件夹是在上一层目录下的,所以这里需要对python的查找目录中加入查找路径
类似的错误:ModuleNotFoundError: No module named 'lib.fast_rcnn'。
修改如下:

继续运行demo.py,继续出现错误:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa3 in position 389: illegal multibyte sequence。

定位到config.py:更改为UTF-8编码:

再运行demo.py,还会接着报错:

ValueError: Buffer dtype mismatch, expected 'int_t' but got 'long long'

这个报错处理起来比较麻烦:
打开ctpn/ctpn/text.yml脚本,修改以下代码,即取消GPU

打开 ctpn/lib/fast_rcnn/config.py脚本,修改一下代码:

打开ctpn/lib/fast_rcnn/nms_wrapper.py ,删掉以下代码:

打开ctpn/ lib/utils/init.py,删掉以下代码

打开ctpn\lib\utils\cython_nms.pyx,更改这一行代码

这时候再运行demo.py,依旧报错,这时候再重复刚开始的操作,再去编译一下,刚才的问题解决,再运行demo.py,继续运行失败:

此时修改demo.py的文件存储路径即可,再运行:

运行成功。

©著作权归作者所有:来自51CTO博客作者mb5fca0b6a49e47的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 第1章 0125-php数据类型与检测,学习心得、笔记(php程序的运行原理,p
  2. 用Portspoof欺骗扫描Port的***者
  3. 搭建php环境以及运行原理-php与html混编方式-常用数据类型
  4. 工欲善其事,必先利其器 -- Mac 软件推荐(序)
  5. PHP入门:集成环境、php运行原理、php使用方式和常见数据类型
  6. php学习小结(php程序的运行原理、短标签的使用与html混编、常用数
  7. PHP本地环境搭建|PHP运行原理|PHP与html混编|PHP常用数据类型
  8. php运行原理、混编方式、常用数据类型
  9. php运行过程和数据类型

随机推荐

  1. Android——RatingBar(评价条)相关知识总结
  2. sensor
  3. Android选项卡TabHost方式实现
  4. android ActionBar(官方指导)
  5. (原)Eclipse的java中文件读写
  6. ListView小知识整理:滑动背景、Item间隙等
  7. Android学习笔记6——基本布局
  8. ContentProvider详解
  9. android 录像/打开video文件
  10. Android曲线绘制demo