You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在keras_ocr中获取输出置信度得分?

获取keras-ocr的文本检测与识别置信度得分

针对当前keras-ocr版本(官方暂未正式支持置信度输出),可以通过以下几种方式获取置信度得分:

1. 修改源码保留置信度输出

keras-ocr的检测模型(如Craft)和识别模型本身都有置信度输出,但默认封装时被处理为固定值1。你可以修改核心代码来保留原始得分:

  • 找到keras_ocr/pipeline.py文件,在recognize方法中,检测结果的后处理部分会强制将置信度设为1,将这部分逻辑修改为保留模型输出的原始置信度值。
  • 对于识别部分,在keras_ocr/recognition.py的recognize方法中,添加返回每个字符预测概率的逻辑,后续可以基于这些概率计算整段文本的置信度。

2. 跳过封装直接调用模型获取原始输出

不修改源码的情况下,直接调用底层模型的predict方法获取原始输出:

检测阶段(Craft模型)

import keras_ocr
import numpy as np

# 加载检测模型
detector = keras_ocr.detection.Detector()
# 读取图像
image = keras_ocr.tools.read("your_image_path.jpg")
# 获取带置信度的检测结果
detections = detector.detect([image], return_detections=True)
# 解析结果:每个检测框包含坐标和置信度
for boxes, scores in detections:
    for box, score in zip(boxes, scores):
        print(f"检测框坐标:{box},置信度:{score}")

识别阶段(CRNN模型)

# 加载识别模型
recognizer = keras_ocr.recognition.Recognizer()
# 假设已从检测阶段得到裁剪后的文本区域图像
cropped_text_regions = [keras_ocr.tools.crop(image, box) for box in boxes]
# 获取识别结果及字符概率
results = recognizer.recognize(cropped_text_regions, return_probabilities=True)
# 计算整段文本的置信度(例如取字符概率的平均值)
for text, probs in results:
    confidence = np.mean(probs)
    print(f"识别文本:{text},置信度:{confidence:.4f}")

3. 使用社区修改版

部分社区开发者已经fork了keras-ocr项目并添加了置信度输出功能,你可以找到对应的仓库安装,直接调用API获取得分。

补充:官方文档提到部分数据集置信度设为1,是因为这类标注数据本身没有提供置信度标签,但模型自身的推理输出是包含置信度信息的,只是默认被屏蔽了。

内容的提问来源于stack exchange,提问作者Hitesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:45:36