把一句话做成图片,调到机器读不出、而你还能读得出。页面里跑的是真实的 Tesseract 引擎,每一轮都会给出识别结果,看你能找到几条「人机分离」的配方。
先自己看一眼预览图,读得出就读得出,读不出就读不出。然后按两个按钮之一,跟机器对一次答案。想连续试就换预设,一轮一轮来。
图看不清就点它放大,再点一下收起
你还读得出吗?
四个格子里,只有第一格算真的找到了方法:人读得出、机器读不出。另外三格,要么参数根本没起作用,要么把图弄成了谁都读不出的样子。
波浪扭曲、干扰线、笔画切断、低对比度、切碎错位,这些手法 CAPTCHA 在 2005 年前后就全用过了。你刚才调出来的东西,等于手工做了一个二十年前的验证码。
传统 OCR 要先二值化、再切字、再逐字比对,你把笔画切碎它就崩。现在的识别模型把整行送进网络,靠上下文猜整句,字被切碎了它反而补得更准。
多模态大模型是直接看这张图的。它能靠语义把残缺的、扭曲的、错位的字补回来,比人还稳。你把人眼卡在临界点上,它照样读得出来。
在像素上叠一层人眼几乎看不见的扰动,让模型把「机密」读成「公开」。这招确实有效,但它是针对某个具体模型算出来的,换个引擎、升个版本就可能失效,现在多模态模型也扛住了不少。
知乎这个问题下面有个答案就很有意思:在大字里藏小字。OCR 认出大字,就认为这块区域已经处理完,不会往下细看,而小字才是真正要藏的东西。另一个答案用 Gamma 曲线配黑白棋盘格做仿色,人眼看到的亮度和模型降采样后拿到的数值对不上,字在人眼里还在,在模型眼里已经没了。
把秘密做成图片这件事本身,才是问题所在。