现场逆光拍的证件,识别率从实验室的 96% 掉到 41%,姓名和有效期两个字段几乎每次都要手改。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,逆光时前景欠曝,字符笔画和背景的灰度差不到 20,二值化之后笔画断裂。接口内部只做缩放,没有针对性增强。

「低质量图片增强」这类改动最怕改一半,回滚脚本先准备好,再动生产。报错里带路径的,先去看那个路径在不在、权限对不对。

import cv2
img = cv2.imread('id.jpg', 0)
clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8, 8))
print(cv2.mean(clahe.apply(img))[0])

同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

具体做法是,先做 CLAHE 提升局部对比度;灰度化后按字符高度选自适应二值化窗口;增强前后各识别一次 取置信度高的那份;建立低质量样本集 每次改预处理都跑回归。

最后用这个标准收尾,同一批逆光图识别率回到 88% 以上 姓名字段基本不用手改。

作者 9823189