简介:OCR技术让机器能够批量“读懂”图片中的文字,但隐私脱敏、水印保护等场景恰恰需要文字“人眼可读、机器不可读”。本文从OCR检测与识别两阶段原理出发,剖析其结构性弱点,系统梳理图像层干扰、语境嵌入、书本密码等对抗思路,并从攻防博弈与合规角度给出实践建议。
OCR(光学字符识别)已经渗透到内容审核、文档数字化、票据录入、图片搜索索引等几乎所有信息处理环节。一张包含手机号或密钥的截图,上传后几秒内就可能被机器读取、入库并触发后续流程。
但需求是双向的。在不少正当场景中,人们恰恰希望图片里的文字“人眼可读、机器不可读”:
反OCR研究的正是这一剪刀差:如何在不破坏人类阅读的前提下,压低机器识别的置信度。要理解怎么对抗,先要理解被对抗的对象。
无论传统方案还是深度学习方案,主流OCR大多遵循两阶段范式:
深度学习模型(卷积特征提取+循环序列建模+CTC解码,或基于注意力机制的编解码结构)显著提升了弯曲文本、稀疏字体、复杂背景下的表现,但其底层依赖没有变:
人类阅读依赖强大的语义冗余:缺笔画、局部形变、轻度遮挡都不影响理解,甚至可以凭上下文补全整句。机器识别则是对像素特征的统计推断,输入一旦偏离训练分布,置信度就会断崖式下跌。
反OCR的全部技巧,都可以归结为一句话:利用人类理解冗余度高、机器依赖输入分布窄这一差值。
第一类思路是硬碰硬——直接污染OCR的输入。
把文字叠放在空间频率与笔画宽度接近的复杂纹理上(织物、树叶、笔触),检测网络就难以区分“这是笔画还是背景边缘”。干扰强度存在明显上限:纹理过密时,人眼同样难以辨认。
对字符施加非刚性形变(波浪扭曲、局部拉伸)可以破坏几何先验;让相邻字符笔画粘连,则从源头破坏字符切分。这对传统逐字符方案近乎致命;深度模型有一定容忍度,但形变幅度超出训练数据覆盖后,准确率同样骤降。
把文字与背景的色差压缩到人眼可分辨、机器难以稳定提取的窄区间;或者利用人眼对亮度敏感、对色差宽容的特性,将信息置于特定色相差中——识别模型在灰度化预处理阶段就可能直接丢失信息。
验证码的经典思路:干扰线、噪点、字符重叠。此外,控制导出分辨率与压缩参数(有损压缩产生的块效应、字符尺寸低于识别下限)同样会拉低置信度。
另一条路线不与模型正面交锋,而是改变信息的组织方式,让机器“不知道该往哪看”。
平台风控早期主要作用于文本消息(关键词、正则、语义模型),图片属于另一个“域”。把文字渲染成图片本身就是一次跨域传递——这也是很多场景中“图片通道与文本通道宽严不一”的底层原因。但随着多模态识别成为风控标配,这一层的空间持续收窄。
若连图片都受限,可以把要传递的数字藏进一段公众熟悉的古典长诗:按约定将数字依次放在每行行首或其他固定位置。接收方逐行摘取即可还原;而任何逐行扫描的程序看到的只是一首完整诗歌——数字在文本流中既不连续也不显式,正则与关键词均无从命中。
这类方法的本质是:信息就在明面上,但读取维度只存在于双方约定之中,机器缺少“从哪个维度读取”的先验。
更古典的方案是码本编码:将密文写成若干组三元数字,每组依次对应密码本的页码、行号与字序。
(39, 1, 6) → 密码本第39页、第1行、第6个字
其安全性完全押在密码本上:
从信息论视角看,这类密文本身不泄露任何字符级统计特征,安全性等价于密码本的保密性——这是它在密码学教材里长盛不衰的原因。
码本思路的工程化版本:为每个字符建立独立的编码数据库,封装成网页工具做双向翻译。这并非新事物——早年流行的字符异形替换工具(把常用字映射为形近异体字符)就是同一模式。机器面对落在已知字表与语料分布之外的文本,解析自然失败。
三者共同原理:把理解信息所需的上下文从公开信道中抽离,公开信道里只留下密文。
站在平台与风控一侧,上述每种手段都有对应的反制方向:
攻防的真实图景是:没有一劳永逸的方案,只有持续升级的博弈。
上述技术均为公开的经典原理,但用途决定性质:
对于企业与开发者的正当诉求(文档批量脱敏、敏感信息审计),更稳妥的做法是采用成熟的内容安全能力:以百度智能云为代表的服务商提供通用的文字识别与内容审核类服务,可以将敏感字段识别、脱敏处理、审计留痕固化为标准流水线,稳定性与可维护性都远优于自行维护的对抗性方案。
反OCR不是某个单一技巧,而是一个谱系:像素级的干扰、结构级的嵌入、编码级的映射,层层递进,却共享同一内核——利用人与机器在“获取上下文能力”上的不对称。无论你是防守一侧的风控工程师,还是脱敏场景的开发者,理解这套谱系,都能更准确地判断自己所在的位置、方案的有效边界,以及不该越过的那条线。