二维码与视错觉 - 人眼和摄像头为何看到不同的东西
人眼为何无法「读取」二维码
人类能看到二维码图案但无法解码存储的数据。我们的视觉系统通过数千年的文化学习识别文字,但 1994 年发明的二维码图案还没有足够的时间进行视觉训练。理论上,记住完整规格并心算 Reed-Solomon 解码是可能的,但即使最小的二维码(21×21,441 个模块)也使这在实际中几乎不可能。
摄像头如何「看到」二维码
摄像头识别分四步:定位图案检测、几何校正(针对角度畸变的射影变换)、模块采样(网格划分和亮度阈值判定)、纠错解码。有趣的是,人脑和摄像头都会校正透视畸变,但通过完全不同的机制:生物神经回路与数学射影变换。
利用视错觉的设计二维码
赫尔曼网格错觉(白色网格交叉点出现灰点)在二维码模块阵列中对人类观察者产生但对精确测量亮度值的摄像头不产生。人类视觉与摄像头传感器之间的色彩恒常性差异理论上可实现仅在特定照明条件下可扫描的二维码。这些视觉感知差距使得对人眼呈现为艺术但对摄像头为有效码的设计成为可能。
色觉多样性与二维码无障碍
约 5% 的日本男性具有与多数人不同的色觉特征。红绿二维码对 P 型或 D 型色觉者可能不可见。无障碍二维码设计需要不依赖色相的亮度对比,遵循 WCAG 4.5:1 对比度准则。传统黑白组合(21:1 对比度)仍是最具普遍无障碍性的选择。
二维码教给我们的「看」的奥秘
二维码是日常体验人类视觉与计算机视觉差异的教材。人类从相同的黑白阵列中看到「图案」,摄像头读取「数据」。人类视觉擅长面部识别、情感解读和三维空间理解。摄像头擅长码解码、精细图案检测和一致的亮度测量。两者通过根本不同的方法实现「看」。