PP-OCR文本检测环境配置需要使用飞桨云平台飞桨AI Studio星河社区-人工智能学习与实训社区注册后登录点击创建notebook高级选项选择使用百度的notebook或则jupter我选用jupter然后选择下面的PaddlePaddle框架框架会自带python版本实践得知paddlepaddle 2.4~2.0 都使用python3.7paddlepaddle 3.0使用python 3.10我选用 paddle 2.4。进入环境后安装 paddlepaddle 安装与框架版本相同的版本pip install paddlepaddle-gpu2.4.0将PP-OCR 2.8分支下载2.8分支 requirement.txt 没有一个新库的要求然后传入目录中不要直接下载 code会下载到最新的版本传入目录后需要解压文件中有快捷键可以得到解压代码下载所需要的库cd PaddleOCRpip install -r requirements.txt此时可能会报错ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/cv2/LICENSE.txt Consider using the --user option or check the permissions.解决方法尝试使用pip的--user选项通常不是正确的解决方案因为这会将包安装在用户的home目录下而不是conda环境中。然而如果你确实想这么做并且了解这可能会影响环境隔离你可以尝试pip install --user opencv-contrib-python然后重新 pip install -r requirements.txt下载数据集下载后训练数据放在PaddleOCR/train_data/icdar2015/text_localization/icdar_c4_train_imgs测试数据放在PaddleOCR/train_data/icdar2015/text_localization/ch4_test_imagescd PaddleOCR/下载训练标注标注里的内容有相对路径直接从数据集手动下载的话有坑里面有 rgb 目录与下载的数据集的目录组织形式不符wget -P ./train_data/ https://paddleocr.bj.bcebos.com/dataset/train_icdar2015_label.txt下载测试标注wget -P ./train_data/ https://paddleocr.bj.bcebos.com/dataset/test_icdar2015_label.txt下载预训练模型需要 .pdparams 文件cd PaddleOCR/# 根据backbone的不同选择下载对应的预训练模型# 下载MobileNetV3的预训练模型wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/pretrained/MobileNetV3_large_x0_5_pretrained.pdparams可以更换预训练模型采用 PP-OCRv4在 github 下载训练模型有十几MB将模型解压到 pretrain 中那么模型准备完毕解压 ch_PP-OCRv4_det_train.tar 文件tar -xf ./pretrain_models/ch_PP-OCRv4_det_train.tar -C ./pretrain_models/开始训练启动训练# 单机单卡训练 mv3_db 模型python3 tools/train.py -c configs/det/det_mv3_db.yml \-o Global.pretrained_model./pretrain_models/MobileNetV3_large_x0_5_pretrained上述指令中通过-c 选择训练使用configs/det/det_mv3_db.yml配置文件配置文件中的use_gpu字段修改为 true 表示使用 GPU启动 PP-OCRv4 模型的训练更改 ch_PP-OCRv4_det_cml.yml 配置文件python3 tools/train.py -c configs/det/ch_PP-OCRv4/ch_PP-OCRv4_det_cml.yml但会报一大堆的警告ppocr WARNING: The pretrained params backbone.blocks2.0.dw_conv.lab.scale not in model解决办法使用 ch_PP-OCRv4_det_student.yml 配置文件预训练模型仍然使用 ch_PP-OCRv4_det_train 的 best_accuracypython3 tools/train.py -c configs/det/ch_PP-OCRv4/ch_PP-OCRv4_det_student.yml什么是蒸馏student 和 teacher 的关系是什么意思训练可能会报错OSError: (External) CUDA error(2), out of memory.这个错误信息表明你在使用PaddleOCR进行模型训练时遇到了CUDA内存不足的问题。解决办法更改配置文件的批次无法解决说明很有可能是硬件问题重启环境即可解决训练可能会报错Out of memory error on GPU 0. Cannot allocate 37.500000MB memory on GPU 0, 15.986328GB memory has been allocated and available memory is only 14.000000MB.这个错误信息表明你在使用PaddlePaddle进行深度学习模型训练时GPU内存不足导致了程序崩溃。解决办法更改配置文件的 batch 大小模型评估与预测指标评估用训练好的命名为 latest 的模型output 里有 latest 参数等python3 tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints./output/db_mv3/latest模型评估会出现报错这是 cuda 版本的问题需要10.2但环境中的为11.2自动配置好的可以尝试改动为使用用 cpu 评估但我重启了环境就可以了ImportError: libcudart.so.10.2: cannot open shared object file: No such file or directory运行后会在终端显示数据测试单张图像的检测效果python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img./doc/imgs_en/img_10.jpg Global.pretrained_model./output/db_mv3/latest测试DB模型时调整后处理阈值会在output 文件夹保存图片和 point 的 .txt 信息python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img./doc/imgs_en/img_10.jpg Global.pretrained_model./output/db_mv3/latest PostProcess.box_thresh0.6 PostProcess.unclip_ratio2.0测试文件夹下所有图像的检测效果python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img./doc/imgs_en/ Global.pretrained_model./output/det_db/best_accuracypython3 tools/infer_det.py -c configs/det/ch_PP-OCRv4/ch_PP-OCRv4_det_student.yml -o Global.infer_img./doc/imgs_en/img_10.jpg Global.pretrained_model./output/ch_PP-OCRv4/best_model/modelPP-OCR文本识别环境配置同上下载数据集4.3下载后训练数据放在PaddleOCR/train_data/ic15_data/train测试数据放在PaddleOCR/train_data/ic15_data/test需要解压import zipfile import os # 定义ZIP文件路径 zip_file_path ./data/data305333/ch4_training_word_images_gt.zip # 定义解压目标目录 extract_to ./PaddleOCR/train_data/ic15_data/train # 创建目标文件夹如果不存在 os.makedirs(extract_to, exist_okTrue) # 解压ZIP文件 with zipfile.ZipFile(zip_file_path, r) as zip_ref: zip_ref.extractall(extract_to) print(解压完成)cd PaddleOCR/下载训练标注标注里的内容有相对路径直接从数据集手动下载的话有坑里面有 rgb 目录与下载的数据集的目录组织形式不符wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_train.txt下载测试标注wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_test.txt开始训练首先下载pretrain model可以下载训练好的模型在 icdar2015 数据上进行finetunecd PaddleOCR/wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/PP-OCRv4/english/en_PP-OCRv4_rec_train.tar# 解压模型参数cd pretrain_modelstar -xf en_PP-OCRv4_rec_train.tar rm -rf en_PP-OCRv4_rec_train.tar开始训练# GPU训练 支持单卡多卡训练 # 训练icdar15英文数据 训练日志会自动保存为 {save_model_dir} 下的train.log#单卡训练训练周期长不建议 python3 tools/train.py -c configs/rec/PP-OCRv4/en_PP-OCRv4_rec.yml -o Global.pretrained_model./pretrain_models/en_PP-OCRv4_rec_train/best_accuracy评估过程中默认将最佳acc模型保存为 output/en_PP-OCRv4_rec/best_accuracy模型评估与预测指标评估训练中模型参数默认保存在Global.save_model_dir目录下。在评估指标时需要设置Global.checkpoints指向保存的参数文件。评估数据集可以通过 configs/rec/PP-OCRv3/en_PP-OCRv3_rec.yml 修改Eval中的 label_file_path 设置。GPU 评估 Global.checkpoints 为待测权重 python3 -m paddle.distributed.launch --gpus 0 tools/eval.py -c configs/rec/PP-OCRv4/en_PP-OCRv4_rec.yml -o Global.checkpoints{path/to/weights}/best_accuracy预测其中 best_accuracy.* 是评估集上的最优模型iter_epoch_x.* 是以save_epoch_step为间隔保存下来的模型latest.* 是最后一个epoch的模型。预测英文结果最好直接在配置文件中调整更改保存的 .txt 文件python3 tools/infer_rec.py -c configs/rec/PP-OCRv4/en_PP-OCRv4_rec.yml -o Global.pretrained_model./output/rec_ppocr_v4/best_model/best_model -o Global.infer_imgdoc/imgs_words/en/word_1.png预测结果训练的轮次很少数字能识别出来英文基本识别不出来两个中文检测模型为什么一个十几兆一个推理模型只有几兆