4. 影像预处理
保险理赔影像的来源极其分散:客户手机拍照、柜面扫描仪、医院自助机、交警系统导出、第三方公估上传。同一张发票,可能因为拍摄角度、光照、纸张折痕、传真底灰而呈现完全不同的质量。OCR 引擎再强,也无法在严重倾斜、噪点密集、对比度不足的影像上稳定输出字段。影像预处理不是"美化图片",而是把不可控的原始影像,转换为 OCR 与结构化模型可稳定消费的标准化输入。本节围绕去噪、二值化、倾斜校正、裁剪与增强五个环节,讲清原理、参数与保险场景中的取舍。
一、核心原理:预处理是在为 OCR 降低"决策熵"
OCR 的本质是在像素分布上做字符分类。噪声、阴影、倾斜、多余背景都会增加分类器需要处理的变量。预处理的目标是:保留字符笔画的有效高频信息,同时抑制与文字无关的低频干扰和随机噪点。五个环节各自解决一类问题:
- 去噪:抑制椒盐噪声、压缩伪影、纸张纹理,避免笔画断裂或伪笔画。
- 二值化:把灰度图转为黑白图,让文字与背景分离,降低后续处理复杂度。
- 倾斜校正:把旋转的文本行拉回水平,保证行切分和字符切分正确。
- 裁剪:去除无关边框、手指、桌面背景,减少 OCR 的无效搜索区域。
- 增强:提升对比度、锐化笔画、修复断裂,改善低质量影像的可读性。
二、方法流程与关键参数
下面给出一条可直接落地的处理流水线,适用于发票、病历、事故认定书等常见理赔单证。
输入:原始影像 raw.jpg
1. 灰度化:cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
2. 去噪:cv2.fastNlMeansDenoising(gray, h=10, templateWindowSize=7, searchWindowSize=21)
3. 倾斜校正:霍夫变换检测直线,计算中位角度,仿射旋转
4. 裁剪:基于轮廓/投影的 ROI 提取,保留文字区域
5. 增强:CLAHE 限制对比度自适应直方图均衡,clipLimit=2.0, tileGridSize=(8,8)
6. 二值化:cv2.adaptiveThreshold(..., cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 10)
输出:preprocessed.png
参数选择需要结合影像来源。手机拍照的发票,噪声以光照不均为主,去噪强度不宜过大,否则细笔画会糊;扫描仪影像噪声低,但可能有压缩块效应,适合轻度中值滤波。二值化窗口 blockSize 建议取 25~45 之间的奇数,过小会把纸张纹理当文字,过大则丢失小字号字段。
三、保险场景案例:医疗发票与事故认定书
案例一:手机拍摄的医疗发票。客户在光线不足的医院走廊拍照,发票整体偏暗,右侧有阴影,纸张有轻微旋转。处理策略:先做 CLAHE 增强提升暗部细节,再用霍夫变换检测发票边框直线,计算倾斜角约 3.2°,仿射旋转校正;随后用轮廓检测裁剪出发票区域,去除桌面背景;最后自适应二值化。OCR 对"金额""日期""发票号"的识别率从 72% 提升到 94%。
案例二:传真件事故认定书。传真件底灰严重,文字边缘模糊,存在椒盐噪声。处理策略:先中值滤波去椒盐,再用非局部均值去噪平滑底灰;由于传真件本身可能倾斜,用投影法统计水平投影,找到文本行峰值后计算角度;增强阶段使用锐化卷积核强化笔画;二值化采用较大 blockSize 避免底灰被误判为文字。最终字段抽取准确率提升约 18 个百分点。
| 环节 | 核心方法 | 关键参数 | 保险场景注意点 |
|---|---|---|---|
| 去噪 | 中值滤波、非局部均值 | h=5~12,窗口 3~7 | 避免过度平滑导致细笔画断裂 |
| 二值化 | 自适应高斯阈值、Otsu | blockSize=25~45,C=8~12 | 底灰重时用大窗口,避免纹理误判 |
| 倾斜校正 | 霍夫变换、投影法、最小外接矩形 | 角度阈值 0.5°~1° | 多栏单证需分栏校正,避免整体旋转 |
| 裁剪 | 轮廓检测、投影切分、边缘检测 | 面积阈值、长宽比 | 保留印章、手写批注区域 |
| 增强 | CLAHE、锐化、Gamma 校正 | clipLimit=2.0,tile=8×8 | 暗光拍照优先 Gamma,低对比优先 CLAHE |
四、误区与复盘:预处理不是越"干净"越好
复盘时建议关注三类问题:
- 参数一刀切:不同来源影像用同一套参数,导致手机拍照过处理、扫描件欠处理。应按来源分桶,分别配置参数。
- 顺序错误:先二值化再倾斜校正,投影法失效;先裁剪再校正,文字被切。应遵循"去噪→校正→裁剪→增强→二值化"的稳健顺序。
- 缺少质量评估:预处理后没有质量打分,无法判断是否该走人工复核。建议增加清晰度、倾斜角、对比度三个指标,低于阈值直接转人工。
总结来说,去噪、二值化、倾斜校正、裁剪与增强是保险影像进入 OCR 前的"标准化车间"。理解每个环节解决什么问题、参数如何随场景变化、哪些元素必须保留,才能让后续的字段抽取和理赔结构化建立在可靠输入之上。