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

如何基于Python boxdetect检测的文本框提取表单文本?

基于boxdetect检测文本框后的文本提取方案

你已经通过boxdetect完成了KYC表单中文本框的检测,接下来可以结合OCR工具(如Tesseract)提取文本框内的内容,最终输出Name: Mr William Smith Jons , PAN: 577634563744格式的结果。

实现步骤

1. 依赖安装

首先需要安装Tesseract OCR引擎,以及Python对应的pytesseract库:

# 安装pytesseract
pip install pytesseract

注:Tesseract引擎需根据系统单独安装,Windows可下载官方安装包,Linux可通过apt install tesseract-ocr安装

2. 完整代码实现

基于你现有的代码,添加OCR提取逻辑,根据检测到的文本框坐标裁剪对应区域并识别文本:

import cv2
import numpy as np
from boxdetect import config
from boxdetect.pipelines import get_boxes
import matplotlib.pyplot as plt
import pytesseract

# 设置Tesseract路径(如果系统未自动识别,Windows需指定)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 读取并预处理图片
image1 = cv2.imread('kyc_sample1.jpg')
img = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
ret, thresh4 = cv2.threshold(img, 120, 255, cv2.THRESH_TOZERO)

# boxdetect配置与文本框检测
cfg = config.PipelinesConfig()
cfg.width_range = (30,55)
cfg.height_range = (25,40)
cfg.scaling_factors = [0.7]
cfg.wh_ratio_range = (0.5, 1.7)
cfg.group_size_range = (2, 100)
cfg.dilation_iterations = 0
rects, grouping_rects, image, output_image = get_boxes(thresh4, cfg=cfg, plot=False)

# 定义标签与对应文本框组(根据表单布局,Name对应第一个分组,PAN对应第二个)
labels = ["Name", "PAN"]
result = []

# 遍历每个文本框分组,提取文本
for idx, group_rect in enumerate(grouping_rects):
    if idx >= len(labels):
        break
    # 裁剪分组区域:x, y, w, h
    x, y, w, h = group_rect
    roi = image1[y:y+h, x:x+w]
    
    # 预处理ROI提升识别准确率
    roi_gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
    _, roi_thresh = cv2.threshold(roi_gray, 127, 255, cv2.THRESH_BINARY_INV)
    
    # 使用Tesseract识别文本,配置参数优化结果
    custom_config = r'--oem 3 --psm 6'
    text = pytesseract.image_to_string(roi_thresh, config=custom_config).strip()
    
    result.append(f"{labels[idx]}: {text}")

# 输出最终结果
print(" , ".join(result))

# 可视化结果
plt.figure(figsize=(20,20))
plt.imshow(output_image)
plt.show()

代码说明

  • Tesseract路径配置:如果系统未自动识别Tesseract位置,需手动指定安装路径
  • ROI裁剪与预处理:针对每个文本框分组裁剪区域,通过二值化反转增强文本对比度,提升OCR准确率
  • OCR参数配置:--oem 3使用默认OCR引擎模式,--psm 6假设图像为单一文本块,适合表单文本框识别
  • 结果映射:根据表单布局,将检测到的文本框分组与Name、PAN标签对应,最终拼接成目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:39:50