以下文章来源于趣玩 APPS ,作者 Aimo
在这个万物皆可 PS 的时代,一张图片的真假似乎越来越难判定。
例如网上突然传出来一张截图,你要怎么才知道这是真的证据,还是 PS 出来的谣言?如何快速鉴定一张图片有没有被 PS 过,成为了一大难题。要完美鉴别一张图片有没有被 PS,是很困难的,这就提供两个值得一试的方法,供大家参考。
通常来说,图片生成时是会带有Exif等图片信息的。例如用手机拍摄的照片,Exif 就会携带有快门、光圈、手机型号等信息,而用 PS 处理过的图片,也会带有 Photoshop 的软件信息。因此,我们可以通过 Exif 信息,来判别某张图片是否是未经篡改的原图。
最简单的方法,自然就是直接看文件头了。例如一张图片是在 PS 中修改过、然后保存的,那么用记事本开启这张图片,就可以在它的文件头中,找到 "Photoshop" 的字样,如下图所示。
用记事本打开图片文件,有 "Photoshop" 字样,说明这是一张用 PS 保存的图片
能修改图片的软件不止 PS,如果是用其他软件来修改,我们还可以通过第三方软件来鉴别其 Exif,例如下面的这款"JPEGsnoop"。
JPEGsnoop:https://www.impulseadventure.com/photo/jpeg-snoop.html
鉴别出该图经过处理
根据 JPEGsnoop 给出的信息,这张图片是经过处理或者编辑的,也就是说它不是原图。
再看这张图,JPEGsnoop 判断它就是原图,没有经过任何 PS,可以确信为真了。
鉴别出这是原始图片
通过 Exif 鉴别图片是否是原图,的确是行之有效的,但这种方法也有其局限,那就是它只能鉴定图片是否是原图,而不能鉴定图片内容是否保真。例如用 QQ、微信发送的图片,会被压缩过,图片内容没有被修改,但通过 Exif 鉴别,这仍属于处理过的图片,如此一来就显得意义不大了。
如果你想要鉴别图片内容是否被修改,那么直接鉴别图片的内容是更靠谱的方法。问题来了,这属于技术活,往往需要人工细细甄别,有没有更加傻瓜智能的方法?还真有,例如Forensically这个网站,其中很多功能,都非常方便且实用,可以帮你快速鉴定图片有没有被 P 过。
Forensically clone Detection:https://29a.ch/photo-forensics/
首先来说说其中的"Clone Detection"功能。顾名思义,这可以检测图片是否存在克隆现象。通常来说,修改图片时,例如去除水印、杂物等等,都会用到 PS 中的像素克隆工具,Forensically 的检测原理就在于识别图片中重复的像素,来判断这张图片有没有被像素克隆工具修改过,下图就是 Forensically 默认提供的样张。
这些红线连起来的区域,像素是一模一样的,证明经过 PS 克隆工具的涂抹
在 Forensically 的鉴别结果中,白斑代表一模一样的像素,红线代表相同像素的平移路径。可以看到,途中有大面积相邻像素都是一模一样的,这就是经过克隆的痕迹,这无疑就是一张 PS 过的图片。
再来看一张正常的照片。
没 P 过的图,没有集中分布的相似像素
这张照片是没有经过 PS 的,在 Forensically 中尽管也鉴别出了一模一样的像素,但分布面积小且零散,因此可以认为这张图片没有被克隆工具修改过。
Forensically 的 Clone Detection 只适用于使用克隆工具修改的照片,对于其他 P 图情况,我们可以使用 Forensically 的其他工具鉴别。
例如,Forensically 的 "Error Level Analysis" 功能,可以突出显示某些肉眼看上去差不多、但从计算机角度来看非常突兀的像素。例如这张示例图中的飞碟,就很显眼了,这明显就是 P 上去的。
经过一定算法处理,发现某一块像素的特征和周围的明显不同,这显然是 P 上去的图像
再来看看原始拍摄未经处理的照片,可见计算机认为像素特征是均匀的,没有突兀的像素群。
未 P 过的图像,算法处理后的像素特征是相似的
当然,Forensically 也是存在局限的,它的原理决定它只能适用于鉴定拍摄的照片(还不能有太多过曝之类造成的 " 死像素 "),对于截图或者 CG 这样的人造图像不那么适用。但无论如何,如果你想要鉴别某张照片有没有被 P 过,Forensically 仍是非常不错的辅助工具。
PS 鉴定是一个技术活,很难通过软件算法自动得出图片是否为真的结果,但如果软件算法只是作为辅助,结合人的经验进行判断,还是能有个十不离八九的结果的,希望上文的方法能帮到大家,如果有什么新奇的坚定思路或者方法,也欢迎在评论区分享!
本文内容经授权转自「太平洋电脑网」,文章为作者独立观点,不代表黑马公社立场。