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

如何使用OpenCV Python检测提取KYC证件(如Aadhaar卡)中的文本?

轮廓查找完成后的后续操作
  • 先做轮廓筛选:根据Aadhaar卡文本块的面积、宽高比特征,剔除噪声、头像、指纹、logo等非文本轮廓。可根据图片分辨率设置面积阈值过滤过小噪点,再保留宽高比在1.2~15区间的轮廓,就是符合文本行特征的有效区域。
  • 对筛选出的轮廓按纵坐标排序,匹配证件从上到下的文本排版顺序,避免后续输出内容顺序错乱。
  • 按每个有效轮廓的外接矩形裁剪出单独的文本块,对倾斜的文本块做仿射变换校正角度。
  • 传入OCR模型做文本内容提取,针对Aadhaar卡的双语特征,优先选择支持印地语+英语的识别模型。

对应补充实现代码:

# 有效轮廓筛选示例
valid_cnts = []
for c in cnts:
    area = cv2.contourArea(c)
    if area < 100: # 面积阈值可根据图片实际分辨率调整
        continue
    x,y,w,h = cv2.boundingRect(c)
    aspect_ratio = w / h
    if 1.2 < aspect_ratio < 15: # 文本行常规宽高比范围
        valid_cnts.append((x,y,w,h))

# 按文本行从上到下的顺序排序
valid_cnts.sort(key=lambda x: x[1])

# 裁剪识别示例
import pytesseract
# 配置印地语+英语双语识别模型
custom_config = r'--oem 3 --psm 6 -l eng+hin'
for (x,y,w,h) in valid_cnts:
    text_block = gray_image[y:y+h, x:x+w]
    text = pytesseract.image_to_string(text_block, config=custom_config)
    print(text)
更适配证件场景的文本检测方案
  • 优先使用PP-OCRv4系列模型:内置文本检测、方向校正、识别全流程,针对结构化文档、证件场景做了专项优化,支持印地语、英语双语识别,无需自行做预处理、轮廓筛选操作,直接输入原图即可输出带坐标的文本结果,准确率远高于EAST加自定义规则的方案。
  • 固定模板匹配方案:Aadhaar卡属于排版固定的证件,可以先检测卡的四个角点做透视变换,校正整张卡的畸变、倾斜问题,再按照姓名、身份证号、地址等固定字段的位置坐标直接裁剪识别,比通用文本检测的效率和准确率都更高。
  • 专用证件OCR接口:如果对准确率要求极高,可以选择支持印度证件识别的商用OCR服务,无需自行开发算法,直接调用接口即可返回结构化的字段结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 01:15:03