周老虎、刘羚羊、陈冠希…… 这个世界有太多需要我们判定的真假图片,毛□□教导我们:“不放过一个好人,不冤枉一个坏人”,因此,我们需要一个工具。
John Wiseman 写了一个 C 程序实现这一功能,它的算法基于更早的一篇名为《发现“复制-移动”的伪造影像》的论文,原理看起来也不复杂(画外音 当年你的图形学及格了吗):
[-]
1、对测试图片适用 Marr 高通滤子;
2、对滤过的图片计算其自相关 r;
3、去掉一半的自相关(因为它们是对称的);
4、将两个自相关顶点处附近的 r 设为 0;
5、找到 r 的极大值,确定位移向量,用穷举法校验位移(是的,穷举法,因为目前我们的测试表明不需要在太多不同的位移向量间搜索);
6、如果侦测到结果大于(预设值)B,返回,否则用 r 的次高值重复第 5 步。
以下是结果,图片是当年给路透社带来麻烦的 Adnan Hajj 的照片,色斑处就是侦测到的造假点:
[-][-]
再下面是美国总统布什鼓吹战事的演讲图片,色斑处是华南虎:
[-][-]