图片防伪ELA检测--png与jpeg

文章目录

  • ELA概述
  • 有损图片、无损图片
    • 将ELA应用于有损图像(jpeg)
    • 将ELA应用于无损图像(png)
  • 使用ELA进行检测
    • 彩虹 Rainbowing
    • 改善结果
    • 高级用途
    • 注意事项

ELA概述

错误级别分析(ELA)允许识别图像中处于不同压缩级别的区域。对于JPEG图像,整个图片应处于大致相同的水平。如果图像的某个部分的错误级别明显不同,则它可能表示数字修改。

ELA突出显示了JPEG压缩率的差异。着色均匀的区域(例如,蓝天或白墙)可能会比高对比度边缘具有更低的ELA结果(较暗的颜色)。

有损图片、无损图片

  • 无损:无损文件格式保留确切的像素颜色信息。如果加载图片,保存并再次加载,则每个像素将具有完全相同的值。即使是两种无损格式之间的转换,也将保留完全相同的颜色值。例如,PNG和BMP是两种不同的无损格式。如果将图片从BMP转换为PNG,即使文件格式已更改,它将保留完全相同的像素值。
  • 有损:有损文件格式不能保证颜色保持不变。对于JPEG,保存需要指定质量级别。质量级别会调整压缩量(较低的质量会创建较小的文件),但是会通过删除一些颜色信息进行压缩。使用JPEG,保存图片会使颜色略有变化。重新保存的文件在视觉上可能看起来与源图片相同,但是确切的像素值将有所不同。

对于有损图片格式,第一次保存图像会导致大量的色彩损失。但是,加载图片,然后再次以相同的有损格式对其进行编码,将导致较少的其他颜色下降。ELA结果突出显示了图像在重新保存期间最容易出现颜色劣化的区域。与图像的其余部分相比,编辑通常是具有更高退化潜力的区域。

以下是常见的无损有损图片格式。

有损的 无损
JPEG2000,JBIG,JPEG格式 PNG,BMP,JPEG-LS,PPM,RAW ,GIF,PGM

所以在PNG图片上ps后ela检测算法是失效的。

将ELA应用于有损图像(jpeg)

JPEG图像使用有损压缩系统。图像的每次重新编码(重新保存)都会增加图像的质量损失。具体地说,JPEG算法在8x8像素网格上运行。每个8x8正方形均独立压缩。如果图像完全未修改,则所有8x8正方形都应具有相似的潜在错误。如果图像未修改并修复,则每个正方形应以大致相同的速率降级。

ELA以指定的JPEG质量级别保存图像。重新保存会在整个图像中引入已知数量的错误。然后将还原的图像与原始图像进行比较。

如果对图像进行了修改,则修改所触及的每个8x8正方形应比图像其余部分具有更高的潜在错误。修改后的区域将显示更高的潜在错误级别。

将文件从有损文件格式转换为无损格式时,将保留重新保存的工件。这允许ELA突出显示对已转换为PNG的JPEG图像所做的更改。

并非所有有损文件格式都兼容。例如,有损WebP,HEIC和HD Photo(JPEG XR)格式使用的压缩算法与JPEG不同。即使已重复保存JPEG图像,如果将其转换为其他文件格式,也可能会导致首次保存的伪像。发生这种情况是因为首次应用了WebP,HEIC和HD Photo工件。

FotoForensics可以将ELA应用于所有受支持的文件格式。但是,ELA假定非JPEG文件是从JPEG图像转换而来的。(这是一个合理的假设,因为没有市售的相机可以原生捕获PNG,WebP,HD Photo等图片。)因此,将所有ELA测试与JPEG有损压缩进行了比较。

将ELA应用于无损图像(png)

无损文件格式不会改变图片的颜色。当有损图片转换为无损格式时,将保留所有有损伪像。这样可以识别特定类型的变更,例如:
文件格式转换。从JPEG转换为PNG将保留以前的JPEG工件。由于本机PNG不应包含JPEG伪像,因此可以检测到该转换。
本机无损。从未经历过JPEG编码(例如,将相机RAW图片直接转换为PNG而不使用Adobe产品)的图片将没有JPEG伪像。ELA应该报告一致的图像质量,并且不应出现基于8x8或16x16网格的块,因为它表示的是在第一次JPEG编码期间将改变的区域。

使用ELA进行检测

使用ELA,每个未针对质量级别进行优化的网格将显示在重新保存期间更改的网格正方形。例如,数码相机不会针对指定的相机质量级别(高、中、低等)优化图像。数码相机的原始图片在任何重新保存期间都应具有高度的变化(高ELA值)。随后的每次重新保存都会降低错误级别的可能性,从而产生更暗的ELA结果。有了足够的重采样,栅格平方将最终达到其最小误差水平,在那里它将不再变化。

原始数码照片(来源:Hacker Factor)具有较高的ELA值,在ELA中用白色表示。黑色部分对应于原始图像中的实心白皮书和黑色8x8正方形。纯色的压缩效果非常好,因此这些颜色已经处于最小的错误级别。
图片防伪ELA检测--png与jpeg_第1张图片
图片防伪ELA检测--png与jpeg_第2张图片

原始图像被重新保存了一次。对于人眼来说,原始图像和重新保存的图像之间没有明显的区别。然而,ELA显示出更多的黑色和更暗的颜色。如果再次保存此图像,它的ELA值将更低(更暗)。
图片防伪ELA检测--png与jpeg_第3张图片

重新保存的图像经过了数字修改:复制了书籍,并添加了一个玩具恐龙。ELA清楚地显示出修改区域具有更高的ELA值。

重要的是要认识到高频区域,如沿物体的边缘,通常具有比图片其余部分更高的ELA值。例如,书上的文字之所以突出,是因为明暗对比产生了高频边缘。通常,应将边与边进行比较、曲面与曲面进行比较。如果除一个曲面外的所有曲面都具有相似的ELA值,则应怀疑异常值。
图片防伪ELA检测--png与jpeg_第4张图片

彩虹 Rainbowing

JPEG不是通过红色、绿色和蓝色分量来保存颜色,而是将颜色分为亮度和色度通道。亮度实际上是图像的灰度强度。色度红和色度蓝分量标识着色量,与全色的强度无关。
对于ELA和重新保存的图像,亮度和色度通道之间可能存在可见的分离,即蓝色/紫色/红色,称为彩虹色。像Photoshop这样的绘图工具可以引入一种明显的彩虹图案曲面,这些曲面具有几乎均匀的颜色。

一般来说,Photoshop和其他Adobe产品会产生大量的彩虹。然而,rainbowing并不是Adobe产品的专有产品。例如,开源GIMP程序生成的彩虹很少,一些高质量的相机照片也可能包括沿着统一颜色表面(如白色墙壁或蓝天)的彩虹。有些绘图工具,比如微软的Paint,不会生成彩虹。

rainbowing的强大存在只表明Adobe产品,如Photoshop或Lightroom,是用来保存图像的。它不识别有意的修改。

有些数码相机可以产生彩虹。然而,有一个简单的方法来区分相机的彩虹和Photoshop。使用数码相机,彩虹不局限于JPEG网格。相机彩虹区域的边缘看起来有平滑的轮廓。在Photoshop和其他图形应用程序中,rainbowing仅限于JPEG网格。如果彩虹区域的边缘呈8x8或16x16块块状,则彩虹可能是由Photoshop等图形程序造成的。

改善结果

ELA的结果直接依赖于图像质量。您可能想知道是否添加了某些内容,但如果图片是副本副本的副本,则ELA可能只允许检测重存。试着找到质量最好的图片版本。

例如,许多图片都是由Flickr托管的。Flickr提供小、中、大和原始图像。小的、中的和大的都是由Flickr创建的衍生图像(resave)。“原稿”是用户发送到Flickr的任何内容,所以原稿的质量最好。同样,新闻网站上的图片通常会被重新保存。如果他们有一个类似“来源:美联社图片”这样的标语,那么就去来源,用那张图片代替。新闻网站通常会对图片重新着色、调整大小和裁剪,然后再以非常低的质量保存图片。使用原始源(或尽可能靠近原始源)来提高图像质量和ELA结果。

有两种简单的方法可以判断图像是否为原始图像,即查看图像大小和属性。一般来说,数码相机不会产生小照片。根据网络大小调整的图片可能会根据其他图片调整大小,甚至那些图片也可能不是相机原创的。此外,许多网站在图片的一角添加了他们的logo或URL。这意味着基础图片被重新保存,最后的修改很可能是添加了属性。

为了获得最佳效果,请尝试找到源图片。如果你不知道从哪里开始,那就试试TinEye。网络上的许多图片在用户之间传递时会被重新保存。TinEye不知道网络上的每一张图片,但它知道很多图片。如果图片正在被传阅,TinEye可以帮助找到图片的来源(或者至少是图片的一个更好的副本)。一般来说,最大的图像通常质量最好。(但有些网站会将图片放大…)

高级用途

通过培训和实践,ELA用户还可以学习识别图像缩放、质量、裁剪和重新保存转换。例如,如果非JPEG图像包含可见网格线(8x8正方形中1像素宽),则表示该图片以JPEG格式开始并转换为非JPEG(例如PNG)格式。如果图片的某些区域缺少网格线或网格线偏移,则表示非JPEG图像中的拼接或绘制部分。

另一个例子是,PNG文件是一种无损的文件格式。如果一个原始的PNG纹理是非常高的,那么ELA应该产生一个非常高的边缘值。但是,如果ELA沿着边缘和纹理生成弱结果(深色或黑色),那么PNG很可能是从JPEG创建的。这是因为从JPEG到PNG的转换过程是无损的,并且会保留JPEG伪影。

当与其他算法相结合时,ELA成为一个非常强大的评估工具。

注意事项

虽然ELA是帮助检测修改的极好工具,但有许多注意事项:

  • 单个像素的改变,或者轻微的颜色调整,可能不会在ELA中产生明显的变化。
  • 由于JPEG是在网格上运行的,对网格的任何部分的更改都可能会影响整个网格正方形。您可能无法准确识别网格中的哪个像素被修改。
  • JPEG使用YUV颜色空间。同一网格中的高对比度颜色,例如黑色和白色、橙色和蓝色或绿色和紫色(YUV颜色空间的两端相反),通常会生成比同一网格中类似颜色更高的ELA值。
  • ELA只识别哪些区域具有不同的压缩级别。它不确定来源。如果将低质量图像拼接到高质量图像中,则低质量图像可能会显示为较暗的区域。
  • 缩放、重新着色或向图像添加噪波将修改整个图像,从而产生更高的错误级别。
  • 如果一个图像被多次重新保存,那么它可能完全处于最小错误级别,其中更多的重存储不会改变图像。在这种情况下,ELA将返回一个黑色图像,并且使用该算法无法识别任何修改。
  • 使用Photoshop,保存图片的简单操作可以自动锐化纹理和边缘,从而产生更高的错误级别。这个工件不识别有意的修改;它标识使用的是Adobe产品。(请记住:如果有人需要从他们的相机下载图片或调整图片的大小,他们很可能会使用Photoshop,就像他们使用任何其他工具一样。)从技术上讲,ELA显示为一个修改,因为Adobe自动执行了修改,但修改并不一定是用户有意为之。
  • 如上所述,彩虹并不是Photoshop独有的。开源的GIMP绘图程序可能会引入一些彩虹,一些高质量的照片可能包含彩虹。
  • ELA只是一种算法。对结果的解释可能是不确定的。用其他分析技术和算法验证研究结果是很重要的。

你可能感兴趣的:(图像处理,ela,jpg,png,ps检测)