简介:想让图中文字躲过 OCR 与多模态模型的识别,靠加噪点、扭曲已远远不够。本文介绍一种利用人机视觉感知差异的“错觉光栅”方案:通过文字掩码提取、相位反转与多通道彩色光栅编码,人眼仍可正常阅读,机器却难以提取字符。文中给出完整实现流程、示意代码、效果验证方法与适用边界。
在自动化识别能力快速进化的今天,“把文字放进图片就安全”的假设早已不成立。传统做法——加噪点、扭曲字形、叠加干扰线、贴背景纹理——本质上是给识别器增加难度,而现代 OCR 大多基于深度神经网络,配合通用多模态大模型,对这类低强度干扰几乎免疫:网络在训练中见过海量带噪声、形变的文本样本,鲁棒性远超规则式算法。
因此,这个问题应当换个问法:不是“如何把图变得更乱”,而是“如何利用人眼与机器在视觉机制上的根本差异,做到人能读、机不能读”。
典型需求场景包括:
这些场景都指向同一个硬性要求:对人类保持可读性,对 OCR 与多模态模型保持不可识别性。
近期一项发表于计算机视觉领域顶级学术会议、面向隐身式验证安全的研究提供了很好的借鉴。该研究同时从两个层面构造干扰:视觉感知层的轮廓错觉与特征表示层的对抗错觉。其核心洞察可以抽象为两条:
1. 人类视觉系统具备强大的知觉组织与轮廓补全能力。 这是格式塔心理学中的经典结论:人眼并不要求轮廓在像素层面连续,只要局部线索足够规律,大脑就会自动把不完整的碎片“补全”为完整形状,也就是所谓的虚幻轮廓现象。
2. 机器视觉流水线会系统性地抹掉细微结构。 一张图进入 OCR 或多模态模型前,通常要经历缩放插值、归一化、特征下采样、切块等步骤;进入网络后,多层卷积进一步平滑高频细节。凡是藏在精细纹理关系中的信息,都会在这些环节中被大幅削弱。
两条差异叠加,就构成了一个可利用的“感知缝隙”:把字符信息编码进人眼可补全、但机器流水线会丢弃的纹理结构里。
这是整套方案里最值得借鉴、也最容易落地的部分。其原理可以拆成四步:
为什么人还能读? 因为条纹的周期、方向在字符边界两侧保持一致,只有相位发生半周期跳变。人眼会沿着这条“错位带”自动补全出完整的字符轮廓——这正是虚幻轮廓的典型触发条件。
为什么机器读不了? 因为此时“字符形状”不再由明暗对比直接表达,而是被编码在条纹的相位关系中。缩放插值会模糊半周期的错位,卷积下采样会平均掉高频条纹,最终模型提取到的特征里,字符与背景几乎没有可区分的差异。
上述研究在光栅之外还叠加了对抗扰动,进一步把视觉编码器提取的特征“推向”攻击者指定的语义方向:
需要注意的是,对抗扰动涉及模型训练与评估环境,工程成本较高。如果只是日常自用的防识别处理,实现光栅部分就已经足够;对抗扰动可作为对抗强度要求极高时的叠加手段。
整个流程可以总结为五步,全部基于常规图像处理原语即可完成:
示意伪代码如下(具体落地可基于任意常用图像处理库):
# 伪代码示意:防 OCR 光栅化主流程def build_grating(w, h, theta, freq, phase):"""生成方向 theta、空间频率 freq、初相位 phase 的正弦光栅"""X, Y = meshgrid(w, h)proj = X * cos(theta) + Y * sin(theta)return sin(2 * PI * freq * proj / max(w, h) + phase)def anti_ocr_stylize(src):# 1) 文字掩码:灰度化 + Otsu 阈值gray = to_gray(src)mask = otsu_threshold(gray) # 1 表示文字像素# 2) 低频随机位移场 + 正弦调制,轻微扭曲线条dx = low_freq_noise(w, h) * 2.0dy = low_freq_noise(w, h) * 2.0mask = remap(mask, dx, dy)# 3) 三通道使用不同方向 / 频率的光栅configs = [(PI / 3, 8.0), # R 通道(2*PI/3, 6.0), # G 通道(0.0, 10.0), # B 通道]chans = []for theta, freq in configs:g = build_grating(w, h, theta, freq, 0.0)# 4) 关键一步:文字区域相位反转半周期g = where(mask == 1, shift_phase(g, PI), g)# 5) 叠加局部条纹扰动g = g + local_stripe_noise(w, h) * 0.15chans.append(normalize_to_uint8(g))return merge_rgb(chans)
参数选择建议:
做完处理不等于万事大吉,建议建立一套简单可复现的评测流程:
从社区普遍反馈与实际测试的定性观察看,仅光栅化一层就能明显拉低各类多模态模型的识别效果,而人眼在正常距离下基本不受影响;再叠加对抗扰动可进一步压制,但成本与复杂度同步上升,需按需取舍。
最后必须强调三点边界:
“防 OCR”的本质不是与识别器比拼谁更抗噪,而是精准踩在人机视觉机制的差异点上:让字符信息以人脑擅长补全、机器流水线必然丢弃的方式存在。掩码分割、相位反转、多通道光栅这三板斧实现成本极低,却能在多数通用识别场景下取得可观的防御收益,值得一试。