最近github上面一个轻量级的中文orc火了,项目地址是:https://github.com/ouyanghuiyu/chineseocr_lite
由于项目需要,去年的时间对于百度,有道,阿里等大厂提供的ocr软件有所了解,虽然识别的准确率还算可以,但是有一个比较的尴尬的问题就是只能在线使用,内网情况下,只能使用开源的一些软件,tesseract 算是其中的佼佼者,可以自己训练字库,对于英文的识别率还是不错的,但是对于中的识别,就比较差强人意。
直接安装的方式,启动后不能正常识别图片,会报错,后来采用了conda的安装方式,可以正常识别图片,建议将上下两篇文章看完以后在操作,避免走弯路,浪费时间。
pytorch 1.2.0
python3
本机系统 :CentOS 7.4 64位
1 查询当前系统自带的python 版本
python --version
系统自带的版本是python2.7.5 先不要管
2 安装依赖包
首先安装gcc编译器,gcc有些系统版本已经默认安装,通过 gcc --version 查看,没安装的先安装gcc 安装命令如下
yum -y install gcc
3 安装其他依赖包,需要root权限(注:不要缺少,否则有可能安装python出错,python3.7.0以下的版本可不装 libffi-devel )
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
4 到https://www.python.org/downloads/source/ 下载我们需要的源码包,这里我下载的版本是3.6.10
也可以在https://www.python.org/ftp/python/ 网站找到自己需要的源码包,直接使用wget 命令下载到服务器,命令如下
wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz
5 将下载好的安装包 上传至服务器,并解压,我在root的根目录新建了,一个source 的目录,将python的压缩包上传到了source目录,解压命令如下
tar -zxvf Python-3.6.10.tgz
解压完成以后如下,会有一个Python-3.6.10的目录(请忽略3.7.6的版本,第一次就是安装的python3.7.6,到最后运行时 torch 模块一直找不到,试了好多方法,都是没有办法解决,于是卸载了3.7.6,从头开始安装3.6.10,后面如果截图中出现了3.7.6 就不在解释了)
6 执行配置文件,编译,编译安装
cd Python-3.6.10
./configure --prefix=/usr/local/python3
make && make install
安装过程中没有报错,就说明安装成功了,安装成功会看到以下信息
7 建立软连接(Python与pip都建立软连接,分别为python3、pip3与系统自带的Python2区分)
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
8 测试python3 是否可用
pthon3 的安装过程参考的博客 https://blog.csdn.net/zckui/article/details/89821101
9 测试pip3是否可用
根据系统建议,升级一下pip3 的版本(请务必升级)
pip3 install --upgrade pip
1 安装pytorch 的依赖 numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing
pip3 install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing
2 安装 torch版本为1.2.0
pip3 install torch==1.2.0
安装成功以后,如下图
3 安装 torchvision版本为0.4.0
pip3 install torchvision==0.4.0
安装完成以后如下图
4 测试pytorch 是否安装成功,导入torch模块,没有报错,就说明安装成功了。
现在项目需要的环境已经准备好了
打开https://github.com/ouyanghuiyu/chineseocr_lite ,将项目下载到本地,我这里选择的是zip包。(github上面拉项目超级恶心,我拉了一天,硬没有拉取成功,可以先将项目导入到码云,从码云下载,速度杠杠的,可以参考 https://blog.csdn.net/TeFuirnever/article/details/99110367)
安装zip/unzip 已经安装过的可以跳过
yum install -y unzip zip
解压
unzip chineseocr_lite-master.zip
PSENET 编译
cd chineseocr_lite/psenet/pse/
rm -rf pse.so
make
执行make 命令时报错:
根据错误提示 gcc 没有安装或者没有更新,执行的下面的命令,更新一下相关库。
yum -y update gcc
yum -y install gcc+ gcc-c++
再次执行make 命令,继续报错Python.h: No such file or directory 这个错误有点熟悉
可以看下我的这篇文章https://blog.csdn.net/qq_29832217/article/details/96482404,就是缺少python-devel包,因为我们是python3,所以只需要安装python3-devel 的报即可
安装python3-devel 的包,遇到选择Y/N 的全部选择Y即可
yum install python3-devel
再次执行 make 命令,可以看到有三条警告信息,并没有报错,说明我们已经编译通过了
cd chineseocr_lite## 进入chineseocr目录
启动web 服务
python3 app.py 8080 ##8080端口号,可以设置任意端口
启动服务是报错,说没有安装web 模块
缺什么,咱就安装什么呗,注意据说只能安装0.40的版本,其他版本没有测试
pip3 install web.py==0.40-dev1
安装好了之后,再次启动,结果继续报错
这个问题的原因并不是缺包,而是pillow 7.0 版本以后,就没有PILLOW_VERSION 这个值了,请参考这篇文章
https://blog.csdn.net/ternence_hsu/article/details/103821264
解决方案只能是降低pillow的版本
pip3 install 'pillow<7.0.0'
如下图 pillow 的版本降为了6.2.2
再次启动,再次报错,缺少cv2 模块
缺什么,咱就安装什么呗
pip3 install opencv-python
安装成功以后如下图:
再次启动,继续报错,提示libSM.so.6: cannot open shared object file: No such file or directory
错误原因 :缺少共享库,具体原因请参考
https://www.cnblogs.com/richerdyoung/p/8458910.html
使用如下命令查看缺少得共享库
yum whatprovides libSM.so.6
安装 libSM 库(这里的包名每个人可能不一样,修改为自己查询出来的即可)
yum install libSM-1.2.2-2.el7.i686 --setopt=protected_multilib=false
安装完成以后如下
测试了一下,tmd的还是不行
看到有篇文章的解决方案pip install opencv-python==3.2.0.8 那就试一下呗
pip3 install opencv-python==3.2.0.8
神奇的事情发生了,可以完美导入cv2 模块
pip3 install scipy
安装完成以后,再次启动
一步一个坑,最终成功是属于我们的,项目启动成功。
访问地址:ip:8080/ocr
我的访问地址是:http://www.365codemall.com:8080/ocr
我以为启动时,程序没有报错,并且可以正常访问页面,就可以了,我还是太天真了。。。
测试时后台报错了。。。