这篇文章最值得带走的几点
  • 不可见水印是图像信号,不是隐藏的 EXIF。
  • 信号检测和载荷恢复是不同任务。
  • 任何鲁棒性数字都应与测试条件一起阅读。

可见水印和隐形水印解决的是不同问题

可见水印直接出现在画面上,例如名称、Logo或半透明文字。它的优势是任何观看者都能立即看见;代价是会改变画面,也可能通过裁剪、遮盖或修图被移除。

隐形水印则不依赖明显的视觉覆盖,而是对像素或频率成分做受控调整,让专用检测器之后去寻找已知模式。不同系统的目标也不同:有的只确认“信号是否存在”,有的还需要恢复一个标识符、密钥相关代码或更长的载荷。

“看不见”不等于“无法破坏”。

鲁棒性必须在明确的变换条件下测量。把某一组测试结果扩展成“任何场景都能检测到”是不严谨的。

水印可以嵌入到什么位置?

隐形水印并没有唯一算法。空间域方法会直接微调像素值;频域方法则先把图像转换到另一种表示,再修改相应系数。

用手头的照片试试 SIGNA

先用手头的照片试试 SIGNA。无需订阅,每月可免费使用 5 次,再决定是否需要 Pro。

免费安装 · 无需订阅,每月可免费使用 5 次 · 需要更多时再升级 Pro
前往 Google Play 试用 SIGNA →

JPEG特别值得关注,因为它在编码时会使用DCT(离散余弦变换)并进行量化。若水印嵌入在频率系数中,那么后续JPEG保存会再次修改同一类信号成分。经典的spread-spectrum水印研究之所以影响深远,就是因为它尝试把微弱信号分散到较有意义的频谱成分中,以提高对普通信号处理的耐受度。

“检测到”与“恢复载荷”不是同一件事

判断一个已知水印模式是否存在,相对来说只需要确认统计或结构上的匹配;恢复载荷则要求多个比特或符号在变换后仍然足够完整,还常常需要错误校正。

因此,只看到“检测成功”并不能回答载荷恢复率是多少,也不能说明在更强压缩、更大裁剪或不同缩放比例下是否仍然可读。严谨测试应明确图像类型、信号强度、载荷大小、JPEG质量、缩放比例、裁剪范围、旋转以及检测器是否知道原始几何信息。

JPEG重压缩为什么会影响水印?

JPEG会对DCT系数量化。已经保存过一次的JPEG再次保存时,细小的系数变化会被重新量化。照片在人眼看来可能几乎没变化,但检测器依赖的模式却可能明显减弱。

这并不意味着所有隐形水印都会在JPEG之后消失。很多系统正是为了在一定压缩范围内保持可检测性而设计。关键不是简单问“能不能抗JPEG”,而是问“在哪些JPEG质量和图像条件下,检测或载荷恢复经过了实际测量”。

缩放会带来同步问题

缩放并不只是减少细节。插值会生成新的像素采样网格。如果检测器依赖原图尺寸、固定块位置或原始坐标来寻找信号,那么即使水印能量仍然存在,也可能因为位置对应关系被打乱而读取失败。

这就是同步问题。一个更鲁棒的检测流程往往需要重新估计比例、旋转、偏移或局部位置。换句话说,“信号还在不在”和“检测器能不能重新对齐到信号”是两个不同问题。

裁剪不仅删像素,还会改变坐标上下文

裁剪会直接删除图像区域。被删掉的区域里如果包含水印信息,那部分信息就不存在了。即使信号分布在整张图上,裁剪也会减少剩余证据,并改变检测器看到的新坐标原点。

所以,抗缩放和抗裁剪不能混为同一指标。一个能处理统一缩放的系统,在大幅裁剪后仍可能失去同步。水印工程里之所以要分别讨论重复、同步、载荷编码和错误校正,就是因为这些失败机制并不一样。

截图与社交平台通常是复合变换

截图不是简单复制原文件,而是生成一张新图片。分辨率、缩放、颜色处理、压缩以及元数据都可能发生变化。社交平台和即时通信工具也可能根据上传路径与设置执行缩放、重压缩、格式转换或生成派生图。

因此,“一定能穿过社交平台”是非常强的承诺。某个平台、某个版本、某种上传方式下的测试结果,不应该被当成对所有设备和未来平台行为的长期保证。

鲁棒性、画质和容量之间存在取舍

提高嵌入信号强度,通常会增加变换后的检测余量,但也可能提高可见失真的风险。反过来,只追求极低可见度,又会缩小抵抗有损处理的空间。

如果还希望携带更多载荷,就需要更多信号资源或更强的冗余和错误校正。因此一个实际系统至少要同时考虑画质、恢复能力和载荷容量,而不是只优化其中一个数字。

隐形水印不是元数据

EXIF、XMP、IPTC等元数据存在于文件结构的字段里;像素域或频域水印则嵌入图像信号本身。两者可以在不同阶段被删除或保留。

元数据可能被清除,但像素信号仍然存在;强烈的图像变换也可能削弱水印,却保留一部分元数据。C2PA等内容来源技术主要处理带签名的内容凭证,而水印可以作为另一个图像信号与之配合。二者可以互补,但不能互相替代。

检测到水印以后,究竟能说明什么?

能支持的结论必须回到具体系统的设计。例如,“本次检查观察到与该水印系统匹配的信号”是一个相对窄且可验证的技术描述。它不等于证明图片所有权、原创性、法律效力,也不等于证明文件从未被编辑。

相反,未检测到水印也不代表“从未嵌入过”。信号可能被削弱或移除,可能使用了错误的检测器或密钥,也可能图像变换已经超出系统的工作范围。

SIGNA如何处理隐形信号

SIGNA可以在不添加可见标记的情况下插入不可见的SIGNA信号。当用户应用可见水印时,SIGNA也会同时加入不可见的SIGNA信号。对于JPEG图片,SIGNA采用基于DCT的频域方式插入信号。

在 Inspect 里,可以把 SIGNA 信号信息和图片状态放在一起查看。分享前先加入信号,之后拿到图片时再回到同一个应用检查;主要的水印处理、信号检查和图片查看都以设备端处理为核心。

SIGNA也明确承认变换边界:缩放、裁剪、重压缩、截图以及平台处理都可能改变隐形信号的可检测性。这不是附加免责声明,而是数字水印工程本身必须面对的条件。

更有价值的问题不是“隐形水印是不是万能”。

真正该问的是:嵌入了什么信号,经历了什么变换,实际恢复了什么,以及这些结果究竟能支持多强的结论。

继续阅读

主要参考资料

Cox, Kilian, Leighton & Shamoon — Secure Spread Spectrum Watermarking for Multimedia, IEEE Transactions on Image Processing (1997)

Google DeepMind — SynthID

Google Gemini 帮助 — SynthID验证与变换限制

C2PA — Content Credentials规范

用SIGNA准备并查看图片信息

用 SIGNA Android 应用,可以在分享前给图片加上可见水印或不可见的 SIGNA 信号,之后再在同一个应用里查看信号和图片状态。主要处理在设备端完成,准备和检查图片时无需把所选照片上传到 SIGNA 服务器。

免费安装 · 无需订阅,每月可免费使用 5 次 · 需要更多时再升级 Pro
在 Google Play 获取
← 返回SIGNA文章