最近使用ocr技术,通过技术调研也对比了几款免费的ocr技术,最终发现百度的技术ai技术的ocr技术识别效果最好。
对比的产品有 chineseocr_lite、darknet-ocr、tesseract 这些识别效果都不够理想,也尝试了一些收费的商用技术,都达不到理想的效果。
经过测试百度的paddleocr识别效果是最好的,但是需要运行在gpu服务器上。
飞桨PaddlePaddle-源于产业实践的开源深度学习平台
PaddleOCR/readme.md at release/2.3 · PaddlePaddle/PaddleOCR · GitHub
Releases · PaddlePaddle/PaddleOCR · GitHub
PaddleOCR/environment.md at release/2.3 · PaddlePaddle/PaddleOCR · GitHub
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/doc_ch/models_list.md
安装步骤
操作系统 | Ubuntu-20.04.3-server-LTS |
显卡驱动 | nvidia-460 |
cuda | 11.2.2 |
cudnn | 8.1.1.33 |
python | python3.7.xx |
paddlepaddle-gpu | paddlepaddle-gpu-V2.0.2 |
PaddleOCR | PaddleOCR-2.1.1 |
paddlehub | paddlehub-2.1.1 |
安装python3.7环境
~$ sudo apt install libcurl4-openssl-dev libssl-dev python3-pip --no-install-recommends ~$ sudo add-apt-repository ppa:deadsnakes/ppa ~$ sudo apt update ~$ sudo apt install python3.7 python3.7-dev python3.5-dev ##3.5-dev用于适配3.5版本的pip模块,python3.7以 –m 参数指定pip时会检索系统中已安装的pip3.5模块 ~$ sudo python3.7 -m pip install --upgrade pip ~$ sudo python3.7 -m pip install virtualenv
创建用户,配置环境变量
~$ sudo useradd -m -s /bin/bash ocr ~$ pass ocr ##设置密码 ~$ su - ocr ##切换至ocr用户 ~$ virtualenv .ocr --python=python3.7 --prompt=[ocr-py3.7] ##创建虚拟python环境 ~$ bash -c 'cat >> /etc/profile.d/path.sh <<EOF export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/cuda/bin" EOF' source /etc/profile ~$ bash -c 'cat >> ~/.bashrc << EOF export LD_LIBRARY_PATH=":/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" export CUDA_HOME=/usr/local/cuda source ~/.ocr/bin/activate EOF' ~$ source ~/.ocr/bin/activate
安装PaddleOCR
~$ wget https://github.com/PaddlePaddle/PaddleOCR/archive/refs/tags/v2.1.1.tar.gz ~$ tar zxvf v2.1.1.tar.gz && cd PaddleOCR-2.1.1/ ~$ pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple ~$ pip install paddlepaddle-gpu==2.2.1.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html ~$ pip install paddlehub --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple ~$ mkdir inference && cd inference \ && wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar \ && wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar \ && wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar \ && for i in *.tar;do tar xvf $i;done ~$ vi ~/PaddleOCR-2.1.1/deploy/hubserving/ocr_system/params.py ##修改如下3项-见截图 cfg.det_model_dir = "./inference/ch_ppocr_server_v2.0_det_infer/" cfg.rec_model_dir = "./inference/ch_ppocr_server_v2.0_rec_infer/" cfg.cls_model_dir = "./inference/ch_ppocr_mobile_v2.0_cls_infer/"
安装和启动模块
~$ cd ~/PaddleOCR-2.1.1 ~$ hub install deploy/hubserving/ocr_system/ ##安装模块 * 切换为 ocr 用户: ~$ python tools/test_hubserving.py http://127.0.0.1:8868/predict/ocr_system ./doc/imgs/1.jpg ##测试模块,截图输出表示正常