Delphi调用百度飞桨(PaddleOCR)OCR模型库识别验证码

本文介绍了如何在Delphi中利用PaddleOCR库进行验证码识别,包括OCR参数设置、结构参数定义以及实际的调用过程,展示了通过PaddleOCR简化验证码识别流程的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PaddleOCR是百度开源的超轻量级OCR模型库,本文旨在分享如何通过Delphi使用其框架进行验证码识别。

调用事例基于Git上(https://gitee.com/raoyutian/paddle-ocrsharp)项目开源代码C++使用PaddleOCR中的代码转化而来

unit uPPOCRApi;

interface

/// <summary>
/// OCR识别参数
/// </summary>
type
  OCRParameter = packed record
    // 通用参数
    use_gpu: Boolean; // 是否使用GPU;默认false
    gpu_id: Integer; // GPU id,使用GPU时有效;默认0;
    gpu_mem: Integer; // 申请的GPU内存;默认4000
    cpu_math_library_num_threads: Integer; // CPU预测时的线程数,在机器核数充足的情况下,该值越大,预测速度越快;默认10
    enable_mkldnn: Boolean; // 是否使用mkldnn库;默认true

    // 前向相关
    det: Boolean; // 是否执行文字检测;默认true
    rec: Boolean; // 是否执行文字识别;默认true
    cls: Boolean; // 是否执行文字方向分类;默认false

    // 检测模型相关
    max_side_len: Integer; // 输入图像长宽大于960时,等比例缩放图像,使得图像最长边为960,;默认960
    det_db_thresh: Single; // 用于过滤DB预测的二值化图像,设置为0.-0.3对结果影响不明显;默认0.3
    det_db_box_thresh: Single; // DB后处理过滤box的阈值,如果检测存在漏框情况,可酌情减小;默认0.5
    det_db_unclip_ratio: Single; // 表示文本框的紧致程度,越小则文本框更靠近文本;默认1.6
    use_dilation: Boolean; // 是否在输出映射上使用膨胀,默认false
    det_db_score_mode: Boolean; // 1:使用多边形框计算bbox score,0:使用矩形框计算。矩形框计算速度更快,多边形框对弯曲文本区域计算更准确。
    visualize: Boolean; // 是否对结果进行可视化,为1时,预测结果会保存在output字段指定的文件夹下和输入图像同名的图像上。默认false

    // 方向分类器相关
    use_angle_cls: Boolean; // 是否使用方向分类器,默认false
    cls_thresh: Single; // 方向分类器的得分阈值,默认0.9
    cls_batch_num: Integer; // 方向分类器batchsize,默认1

    // 识别模型相关
    rec_batch_num: Integer; // 识别模型batchsize,默认6
    rec_img_h: Integer; // 识别模型输入图像高度,默认48
    rec_img_w: Integer; // 识别模型输入图像宽度,默认320

    show_img_vis: Boolean; // 是否显示预测结果,默认false
    use_tensorrt: Boolean; // 使用GPU预测时,是否启动tensorrt,默认false

    ///初始化属性默认值
    procedure InitPropertyDefaultValue;
  end;

  /// <summary>
  /// 表格识别参数
  /// </summary>
  StructureParameter = record
    OCRParameter: OCRParameter;
    table_max_len: Integer;  // 输入图像长宽大于488时,等比例缩放图像,默认488
    merge_no_span_structure: Boolean;  // 是否合并空单元格,默认true
    table_batch_num: Integer;  // 批量识别数量,默认1
  end;

  /// <summary>
  /// 获取最后一次错误信息
  /// </summary>
  /// <returns></returns>
  function GetError: PAnsiChar; stdcall; external 'PaddleOCR.dll';

  /// <summary>
  /// 是否使用单字节编码(
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值