OCR场景应用集合:包含数码管、液晶屏、车牌、高精度SVTR模型、手写体识别等9个垂类模型,覆盖通用,制造、金融、交通行业的主要OCR垂类应用。
一、PaddleOCR环境搭建
conda create -n ppocr python==3.8
conda activate ppocr
进入paddlepaddle官网输入以下指令安装paddlepaddle GPU版本
(我的cuda版本是11.8,根据你电脑装合适版本)
pip install paddlepaddle-gpu==2.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
进入PaddlePaddle / PaddleOCR官网下载 PaddleOCR_2.7版本,放在你主目录下:
之后安装命令:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
没有报错说明paddlepaddle-gpu环境安装成功。
二、PaddleOCR模型下载,PaddleOCR模型官网
分别下载检测和识别的推理模型
模型下载之后为两个压缩包,在PaddleOCR-realase-2.7根目录下新建文件夹
将压缩包解压到该文件夹下,如下图所示。
打开anaconda终端激活环境进入到PaddleOCR-releas-2.7目录下运行以下指令,其中image_dir为所要识别的图片路径,det_model_dir为刚才下载的文字检测模型,rec_model_dir为刚才下载的文字识别模型。
python tools/infer/predict_system.py --image_dir="./test_images/1.jpg" --det_model_dir="./inference_model/ch_PP-OCRv4_det_infer/" --rec_model_dir="./inference_model/ch_PP-OCRv4_rec_infer"
三、安装PPOCRLabel的环境
进入到PPOCRLabel目录下运行:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
运行PaddleOCR
python PPOCRLabel.py --lang ch
遇到问题:
ValueError: operands could not be broadcast together with shapes (213,488,4) (1,1,3)
解决方法
找到PaddleOCR/data/paddle.png 改成paddle1.png
再次运行:
python PPOCRLabel.py --lang ch
有报错需要在PPOCRLabel文件目录下的PPOCRLabel.py文件最上面加入以下代码。
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
弹出PPOCRLabel运行界面:
四、制作数据集
选择自动标注点击ok等待自动标注完成
自动标注:
自动标注结束后,从第一张开始检查,漏打标的按下Q框出字体,打标文字错误的,点击方框,在右边修改,并对每一个方框给出关键词列表(点击编辑点击更改box关键词信息)。最后删除无用信息,切换下一张快捷键为D,如下图所示。
全部打标完成之后,点击文件选择导出标记结果,再点击文件选择导出识别结果,完成后再文件夹多出四个文件fileState,Label,rec_gt, crop_img。其中crop_img中的图片用来训练文字识别模型,fileState记录图片的打标完成与否,Label为训练文字检测模型的标签,rec_gt为训练文字识别模型的标签。
打标签后,下面进行数据集的制作。在PaddleOCR根目录下建立train_data文件夹,并且将打标签生成的文件和图片放在该文件夹下。
打开终端进入PPOCRLabel的文件夹下,输入以下代码进行数据集的划分
参考文章:PaddleOCR训练属于自己的模型详细教程(从打标,制作数据集,训练到应用,以行驶证识别为例)-CSDN博客