使用opencv进行ocr中文识别

作者: zengde 分类: 技术相关 发布时间: 2020-03-04 01:07

git clone https://github.com/chineseocr/darknet-ocr,模型文件下载地址

http://www.chineseocr.com:9990/static/models/darknet-ocr/

conda create -n darknetocr python=3.6
conda activate darknetocr
pip install -r requirements.txt

因为使用的函数relu,opencv不支持,需要自定义编译opencv。

git clone https://github.com/chineseocr/opencv-for-darknet.git

#wget https://codeload.github.com/opencv/opencv/zip/4.0.1   
wget http://www.chineseocr.com:9990/static/models/opencv/opencv.4.0.1.zip    
 
unzip  opencv.4.0.1.zip && \
cp darknet_io.cpp opencv-4.0.1/modules/dnn/src/darknet && \
cp layers_common.cpp opencv-4.0.1/modules/dnn/src/layers && \
cp all_layers.hpp opencv-4.0.1/modules/dnn/include/opencv2/dnn/

安装构建环境

sudo apt-get install build-essential cmake

在opencv-4.0.1中新建目录build,在build目录新建cmake.sh并执行

CONDA_ENV_PATH=/root/miniconda3/envs/
CONDA_ENV_NAME=darknetocr
cmake -D CMAKE_BUILD_TYPE=RELEASE \
     -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D BUILD_opencv_python2=OFF \
    -D BUILD_opencv_python3=ON  \
   -D PYTHON3_EXCUTABLE=$CONDA_ENV_PATH/$CONDA_ENV_NAME/bin/python \
  -D PYTHON3_INCLUDE_DIR=$CONDA_ENV_PATH/$CONDA_ENV_NAME/include/python3.6m  \
-D PYTHON3_LIBRARY=$CONDA_ENV_PATH/$CONDA_ENV_NAME/lib/libpython3.6m.so \
-D PYTHON_NUMPY_PATH=$CONDA_ENV_PATH/$CONDA_ENV_NAME/lib/python3.6/dist-packages/numpy/ .. \
&& make -j2 && make install

如果conda安装在其他位置,修改CONDA_ENV_PATH,构建安装完成后需要替换python的cv2。

先把python的site-packages/cv2移到其他位置,如果不知道site-packages目录在哪,在python中运行

from distutils.sysconfig import get_python_lib
print(get_python_lib())
mv cv2 /path/to/back
cp -r /usr/local/lib/python3.6/site-packages/cv2 cv2

进入darknet-ocr目录

pythton app.py 8080

访问服务

http://127.0.0.1:8080/text

如果出现找不到libgthread-2.0.so,执行

apt-get install libglid2.0-dev

如果出现找不到libSM.so,执行

apt-get install python-qt4

附;

opencv编译后文件

链接:https://pan.baidu.com/s/1cBlyCv5jMcK846g994FUbg
提取码:tsgi

darknet-ocr文件

链接:https://pan.baidu.com/s/1ncJvnY9dhNCU3Se0sJBeXQ
提取码:cyxr