您的位置:首页 > 财经 > 金融 > 河北建设工程信息交易中心_深圳品牌营销策划公司_抖音关键词推广怎么做_网站页面布局和样式设计

河北建设工程信息交易中心_深圳品牌营销策划公司_抖音关键词推广怎么做_网站页面布局和样式设计

2024/12/26 9:48:21 来源:https://blog.csdn.net/qq_36722887/article/details/144301599  浏览:    关键词:河北建设工程信息交易中心_深圳品牌营销策划公司_抖音关键词推广怎么做_网站页面布局和样式设计
河北建设工程信息交易中心_深圳品牌营销策划公司_抖音关键词推广怎么做_网站页面布局和样式设计

【项目】基于PaddleOCR的文字检测识别项目

    • 简介
    • 安装与使用
      • (1)Paddle环境安装
      • (2)模型预测(文本检测+文本识别)
      • (3)文本检测识别模型训练
      • (4)本地模型训练与预测
      • (5)其它任务

简介

PaddleOCR 旨在打造一套丰富、领先、且实用的 OCR 工具库,助力开发者训练出更好的模型,并应用落地。

支持多种 OCR 相关前沿算法,在此基础上打造产业级特色模型PP-OCR、PP-Structure和PP-ChatOCR,并打通数据生产、模型训练、压缩、预测部署全流程。

在这里插入图片描述

  • PP-OCRv4 在线体验地址:https://aistudio.baidu.com/community/app/91660
  • SLANet 在线体验地址:https://aistudio.baidu.com/community/app/91661
  • PP-ChatOCRv3-doc 在线体验地址:https://aistudio.baidu.com/community/app/182491
  • PP-ChatOCRv2-common 在线体验地址:https://aistudio.baidu.com/community/app/91662
  • PP-ChatOCRv2-doc 在线体验地址:https://aistudio.baidu.com/community/app/70303

安装与使用

PaddleOCR 文档

(1)Paddle环境安装

开始使用_飞桨

# 拉取paddleOCR项目
git clone https://github.com/PaddlePaddle/PaddleOCR.git --depth 1 # 只拉取最近一次提交的库# 安装conda环境
conda create -n paddleocr_env python=3.9
conda activate paddleocr_env# 安装PaddleOCR相关依赖
pip install -r requirements.txt# 安装paddle
# CPU版本
pip install paddlepaddle==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
# 英伟达 GPU版本
pip install paddlepaddle-gpu==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
pip install paddlepaddle-gpu==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/# 安装PaddleOCR
pip install paddleocr

(2)模型预测(文本检测+文本识别)

import os
import time
from paddleocr import PaddleOCRfilepath = r"tests/test_files/254.jpg"ocr_model = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=True, show_log=1,det_db_box_thresh=0.1, use_dilation=True,det_model_dir='weight/ch_PP-OCRv4_det_server_infer',cls_model_dir='weight/ch_ppocr_mobile_v2.0_cls_infer',rec_model_dir='weight/ch_PP-OCRv4_rec_server_infer')t1 = time.time()
for i in range(1):result = ocr_model.ocr(img=filepath, det=True, rec=True, cls=True)[0]
t2 = time.time()
print((t2 - t1) / 10)for res_str in result:print(res_str)
# 使用方向分类器
python tools/infer/predict_system.py --image_dir="./tests/test_files/254.jpg" --det_model_dir="./weight/ch_PP-OCRv4_det_server_infer/" --cls_model_dir="./weight/ch_ppocr_mobile_v2.0_cls_infer/" --rec_model_dir="./weight/ch_PP-OCRv4_rec_server_infer/" --use_angle_cls=true# 不使用方向分类器
python tools/infer/predict_system.py --image_dir="./tests/test_files/254.jpg" --det_model_dir="./weight/ch_PP-OCRv4_det_server_infer/" --rec_model_dir="./weight/ch_PP-OCRv4_rec_server_infer/" --use_angle_cls=false# 使用多进程
python tools/infer/predict_system.py --image_dir="./tests/test_files/254.jpg" --det_model_dir="./weight/ch_PP-OCRv4_det_server_infer/" --rec_model_dir="./weight/ch_PP-OCRv4_rec_server_infer/" --use_angle_cls=false --use_mp=True --total_process_num=6

(3)文本检测识别模型训练

PaddleOCR-文本检测识别

  • 概述
  • 快速开始
  • 快速安装
  • 效果展示
  • 运行环境
  • 模型库
  • 模型训练
    • 基本概念
    • 文本检测
    • 文本识别
    • 文本方向分类器
    • 关键信息提取
    • 模型微调
    • 训练tricks
  • 模型压缩
    • 模型量化
    • 模型裁剪
    • 知识蒸馏
  • 推理部署
    • 基于Python预测引擎推理
    • 基于C++预测引擎推理
    • Visual Studio 2019 Community CMake 编译指南
    • 服务化部署
    • Android部署
    • Jetson部署

项目实操采用PaddlePaddle的AI Studio平台

PaddleOCR使用 - 飞桨AI Studio星河社区

(4)本地模型训练与预测

  • 1 准备数据
  • 2 数据格式转化
# (1)文本检测数据集格式转换
python ppocr/utils/gen_label.py --mode="det" --root_path="/path/to/icdar_c4_train_imgs/"  --input_path="/path/to/ch4_training_localization_transcription_gt" --output_label="/path/to/train_icdar2015_label.txt"# 文本检测数据集格式转换示例
python ppocr/utils/gen_label.py --mode="det" --root_path=""  --input_path="datasets/det/ch4_training_localization_transcription_gt" --output_label="datasets/det/ch4_training_paddleocr.txt" # (2)文本识别数据集格式转换
python ppocr/utils/gen_label.py --mode="rec" --input_path="{path/of/origin/label}" --output_label="rec_gt_label.txt"# 文本识别数据集格式转换示例
python ppocr/utils/gen_label.py --mode="rec" --input_path="datasets/rec/ch4_training_word_images_gt/gt.txt" --output_label="datasets/rec/rec_gt_label.txt"
  • 3 下载预训练模型
cd PaddleOCR/
# 根据backbone的不同选择下载对应的预训练模型
# 下载MobileNetV3的预训练模型
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/pretrained/MobileNetV3_large_x0_5_pretrained.pdparams
# 或,下载ResNet18_vd的预训练模型
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/pretrained/ResNet18_vd_pretrained.pdparams
# 或,下载ResNet50_vd的预训练模型
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/pretrained/ResNet50_vd_ssld_pretrained.pdparams
  • 4 修改配置文件

configs/det/det_mv3_db.yml

Global:use_gpu: false  # 根据设备修改use_xpu: falseuse_mlu: falseepoch_num: 1200log_smooth_window: 20print_batch_step: 10save_model_dir: ./output/db_mv3/save_epoch_step: 1200eval_batch_step: [0, 2000]cal_metric_during_train: Falsepretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained   # 修改预训练模型checkpoints:save_inference_dir:use_visualdl: Falseinfer_img: doc/imgs_en/img_10.jpgsave_res_path: ./output/det_db/predicts_db.txtArchitecture:model_type: detalgorithm: DBTransform:Backbone:name: MobileNetV3scale: 0.5model_name: largeNeck:name: DBFPNout_channels: 256Head:name: DBHeadk: 50Loss:name: DBLossbalance_loss: truemain_loss_type: DiceLossalpha: 5beta: 10ohem_ratio: 3Optimizer:name: Adambeta1: 0.9beta2: 0.999lr:learning_rate: 0.001regularizer:name: 'L2'factor: 0PostProcess:name: DBPostProcessthresh: 0.3box_thresh: 0.6max_candidates: 1000unclip_ratio: 1.5Metric:name: DetMetricmain_indicator: hmeanTrain:dataset:name: SimpleDataSetdata_dir: ./datasets/det/ch4_training_images    # 修改为训练数据集图像路径label_file_list:- ./datasets/det/ch4_training_paddleocr.txt   # 修改为训练数据集标签ratio_list: [1.0]transforms:- DecodeImage: # load imageimg_mode: BGRchannel_first: False- DetLabelEncode: # Class handling label- IaaAugment:augmenter_args:- { 'type': Fliplr, 'args': { 'p': 0.5 } }- { 'type': Affine, 'args': { 'rotate': [-10, 10] } }- { 'type': Resize, 'args': { 'size': [0.5, 3] } }- EastRandomCropData:size: [640, 640]max_tries: 50keep_ratio: true- MakeBorderMap:shrink_ratio: 0.4thresh_min: 0.3thresh_max: 0.7- MakeShrinkMap:shrink_ratio: 0.4min_text_size: 8- NormalizeImage:scale: 1./255.mean: [0.485, 0.456, 0.406]std: [0.229, 0.224, 0.225]order: 'hwc'- ToCHWImage:- KeepKeys:keep_keys: ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask'] # the order of the dataloader listloader:shuffle: Truedrop_last: Falsebatch_size_per_card: 16num_workers: 8use_shared_memory: TrueEval:dataset:name: SimpleDataSetdata_dir: ./datasets/det/ch4_test_images   # 修改为验证数据集图像路径label_file_list:- ./datasets/det/ch4_test_paddleocr.txt   # 修改为验证数据集标签路径transforms:- DecodeImage: # load imageimg_mode: BGRchannel_first: False- DetLabelEncode: # Class handling label- DetResizeForTest:image_shape: [736, 1280]- NormalizeImage:scale: 1./255.mean: [0.485, 0.456, 0.406]std: [0.229, 0.224, 0.225]order: 'hwc'- ToCHWImage:- KeepKeys:keep_keys: ['image', 'shape', 'polys', 'ignore_tags']loader:shuffle: Falsedrop_last: Falsebatch_size_per_card: 1 # must be 1num_workers: 8use_shared_memory: True
  • 5 开启训练
# 单机单卡训练 mv3_db 模型
python tools/train.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained# 单机多卡训练,通过 --gpus 参数设置使用的GPU ID
python -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained

(5)其它任务

  • 版面分析
  • 表格结构用解析
  • 关键信息提取

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com