--- comments: true --- # 文本检测模块使用教程 ## 一、概述 文本检测模块是OCR(光学字符识别)系统中的关键组成部分,负责在图像中定位和标记出包含文本的区域。该模块的性能直接影响到整个OCR系统的准确性和效率。文本检测模块通常会输出文本区域的边界框(Bounding Boxes),这些边界框将作为输入传递给文本识别模块进行后续处理。 ## 二、支持模型列表
模型 | 模型下载链接 | 检测Hmean(%) | GPU推理耗时(ms) [常规模式 / 高性能模式] |
CPU推理耗时(ms) [常规模式 / 高性能模式] |
模型存储大小(MB) | 介绍 |
---|---|---|---|---|---|---|
PP-OCRv5_server_det | 推理模型/训练模型 | 83.8 | 89.55 / 70.19 | 383.15 / 383.15 | 84.3 | PP-OCRv5 的服务端文本检测模型,精度更高,适合在性能较好的服务器上部署 |
PP-OCRv5_mobile_det | 推理模型/训练模型 | 79.0 | 10.67 / 6.36 | 57.77 / 28.15 | 4.7 | PP-OCRv5 的移动端文本检测模型,效率更高,适合在端侧设备部署 |
PP-OCRv4_server_det | 推理模型/训练模型 | 69.2 | 127.82 / 98.87 | 585.95 / 489.77 | 109 | PP-OCRv4 的服务端文本检测模型,精度更高,适合在性能较好的服务器上部署 |
PP-OCRv4_mobile_det | 推理模型/训练模型 | 63.8 | 9.87 / 4.17 | 56.60 / 20.79 | 4.7 | PP-OCRv4 的移动端文本检测模型,效率更高,适合在端侧设备部署 |
模式 | GPU配置 | CPU配置 | 加速技术组合 |
---|---|---|---|
常规模式 | FP32精度 / 无TRT加速 | FP32精度 / 8线程 | PaddleInference |
高性能模式 | 选择先验精度类型和加速策略的最优组合 | FP32精度 / 8线程 | 选择先验最优后端(Paddle/OpenVINO/TRT等) |
参数 | 参数说明 | 参数类型 | 默认值 |
---|---|---|---|
model_name |
模型名称。如果设置为None ,则使用PP-OCRv5_server_det 。 |
str|None |
None |
model_dir |
模型存储路径。 | str|None |
None |
device |
用于推理的设备。 例如: "cpu" 、"gpu" 、"npu" 、"gpu:0" 、"gpu:0,1" 。如指定多个设备,将进行并行推理。 默认情况下,优先使用 GPU 0;若不可用则使用 CPU。 |
str|None |
None |
enable_hpi |
是否启用高性能推理。 | bool |
False |
use_tensorrt |
是否启用 Paddle Inference 的 TensorRT 子图引擎。如果模型不支持通过 TensorRT 加速,即使设置了此标志,也不会使用加速。 对于 CUDA 11.8 版本的飞桨,兼容的 TensorRT 版本为 8.x(x>=6),建议安装 TensorRT 8.6.1.6。 对于 CUDA 12.6 版本的飞桨,兼容的 TensorRT 版本为 10.x(x>=5),建议安装 TensorRT 10.5.0.18。 |
bool |
False |
precision |
当使用 Paddle Inference 的 TensorRT 子图引擎时设置的计算精度。 可选项: "fp32" 、"fp16" 。 |
str |
"fp32" |
enable_mkldnn |
是否启用 MKL-DNN 加速推理。如果 MKL-DNN 不可用或模型不支持通过 MKL-DNN 加速,即使设置了此标志,也不会使用加速。 |
bool |
True |
mkldnn_cache_capacity |
MKL-DNN 缓存容量。 | int |
10 |
cpu_threads |
在 CPU 上推理时使用的线程数量。 | int |
10 |
limit_side_len |
检测的图像边长限制:int 表示边长限制数值。如果设置为None ,将使用模型默认配置。 |
int|None |
None |
limit_type |
检测的图像边长限制,检测的边长限制类型,"min" 表示保证图像最短边不小于det_limit_side_len,"max" 表示保证图像最长边不大于limit_side_len。如果设置为None ,将使用模型默认配置。 |
str|None |
None |
max_side_limit |
检测的图像边长最大值限制:int 限制输入检测模型的图片最长边。如果设置为 None ,将使用模型默认配置。 |
int|None |
None |
thresh |
像素得分阈值。输出概率图中得分大于该阈值的像素点被认为是文本像素。如果设置为None ,将使用模型默认配置。 |
float|None |
None |
box_thresh |
检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。如果设置为None ,将使用模型默认配置。 |
float|None |
None |
unclip_ratio |
Vatti clipping算法的扩张系数,使用该方法对文字区域进行扩张。如果设置为None ,将使用模型默认配置。 |
float|None |
None |
input_shape |
模型输入图像尺寸,格式为 (C, H, W) 。 |
tuple|None |
None |
参数 | 参数说明 | 参数类型 | 默认值 |
---|---|---|---|
input |
待预测数据,支持多种输入类型,必填。
|
Python Var|str|list |
|
batch_size |
批大小,可设置为任意正整数。 | int |
1 |
limit_side_len |
参数含义与实例化参数基本相同。设置为None 表示使用实例化参数,否则该参数优先级更高。 |
int|None |
None |
limit_type |
参数含义与实例化参数基本相同。设置为None 表示使用实例化参数,否则该参数优先级更高。 |
str|None |
None |
thresh |
参数含义与实例化参数基本相同。设置为None 表示使用实例化参数,否则该参数优先级更高。 |
float|None |
None |
box_thresh |
参数含义与实例化参数基本相同。设置为None 表示使用实例化参数,否则该参数优先级更高。 |
float|None |
None |
unclip_ratio |
参数含义与实例化参数基本相同。设置为None 表示使用实例化参数,否则该参数优先级更高。 |
float|None |
None |
方法 | 方法说明 | 参数 | 参数类型 | 参数说明 | 默认值 |
---|---|---|---|---|---|
print() |
打印结果到终端 | format_json |
bool |
是否对输出内容进行使用 JSON 缩进格式化 |
True |
indent |
int |
指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_json 为 True 时有效 |
4 | ||
ensure_ascii |
bool |
控制是否将非 ASCII 字符转义为 Unicode 。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_json 为True 时有效 |
False |
||
save_to_json() |
将结果保存为json格式的文件 | save_path |
str |
保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致 | 无 |
indent |
int |
指定缩进级别,以美化输出的 JSON 数据,使其更具可读性,仅当 format_json 为 True 时有效 |
4 | ||
ensure_ascii |
bool |
控制是否将非 ASCII 字符转义为 Unicode 。设置为 True 时,所有非 ASCII 字符将被转义;False 则保留原始字符,仅当format_json 为True 时有效 |
False |
||
save_to_img() |
将结果保存为图像格式的文件 | save_path |
str |
保存的文件路径,当为目录时,保存文件命名与输入文件类型命名一致 | 无 |
属性 | 属性说明 |
---|---|
json |
获取预测的json 格式的结果 |
img |
获取格式为dict 的可视化图像 |