JPEGsnoop算法研究以及制作可以通过检测的原图
来源:互联网 发布:中国反倾销数据统计 编辑:程序博客网 时间:2024/06/05 09:02
很多摄影爱好者、店主站长等因为需要储存大量照片,往往会对拍到的照片进行压缩处理——理论上JPEG的压缩率可以很高,而且压缩之后视觉上的差别并不大,所以很多人并不认为这是什么问题;此外,专业摄影师往往只会使用 RAW 格式的图像进行存档而没有储存 JPEG 副本的习惯,这些种种的原因经常会导致重新生成的 JPEG 文件丢失了原始的编码特征。一般情况下,使用非原厂编码的 JPEG 并不会有什么大问题,但是当要提交原始图像凭证的时候就会碰壁了,这种情况往往会发生于提交参赛图等对于图像原始性要求比较高的场合。因为原始图像已经完全丢失,所以就算有一样大小的高清图像,很多诸如 JPEGsnoop 等的专业原图侦测软件也不会认为提交的图像是原图。
JPEGsnoop 反馈的结果怎么看?
JPEGsnoop 是一款来自国外的专业原图检测软件,它有着很强大的数据库,可以根据比对结果精确判断和坚定图像的原始性。JPEGsnoop 反馈的结果主要有以下四种:
- Class 1- Image is processed/edited (图像已经被编辑)
- Class 2 - Image has high probability of being processed/edited (图像非常可能被修改)
- Class 3- Image has high probability of being original (图像非常可能为原图)
- Class 4- Uncertain if processed or original (证据不足,不确定是否为原图)
值得注意的是,JPEGsnoop 反馈的结果并非越高越好的,从以上看出,最好的结果是 Class 3,即 JPEGsnoop 认为受测图是原图;最差是 Class 1,说明一定被编辑过。曾经我在淘宝上看到过帮忙“做原图”的店家,他说 Class 4 是最好的,他声称可以做出 Class 4 的图,事实上这只说明 JPEGsnoop 数据库中没有收录受测型号相机的数据,所以这个结果根本说明不了任何问题。
为什么会不通过?
要解决以上提及的难题,首先要了解为什么看上去一模一样的两张图,一张就可以通过检测,另一张却不行。以 JPEGsnoop 为例,专业的原图检测软件往往会检测两方面的内容来鉴定图像是不是原图:
- EXIF 信息或元数据;
- 图像的压缩指纹
对于前者,JPEGsnoop 主要的判定依据是 Software (0x0131)的值以及 MakerNote(0x927C)是否存在。被编辑后转存过的图像往往会自动修改 Software 一项,比如 Photoshop 会将其修改为“Adobe Photoshop CS5 Windows”之类的,Camera Raw 和 Lightroom 也类似,甚至连美图秀秀也会主动修改这个项目来为自己的做宣传。所以如果这一项有明显被编辑的字样,JPEGsnoop 就会马上反馈一个 Class 1 的结果。此外,转存过的图像也经常会丢掉厂商注释数据(MakerNote),如果 Software 未被修改,但是却找不到厂商注释 MakerNote 的话,JPEGsnoop 则会反馈一个 Class 2 的结果。
如果上述的两个证据成立,JPEGsnoop 不会马上返回一个 Class 3,它会继续进行下一步的特征比对。众所周知,JPEG文件之所以能这么小是因为其采用的是有损压缩的算法,为了完成压缩 JPEG 编码器需要进行离散余弦变换和量化操作,这个过程会令不同的编码器留下不同的特征,JPEGsnoop 则将这些独有的特征称为“Signature”。相机原厂编码器的编码特征一般都是独有的,所以这个是判断原图的有力证据。一旦 EXIF 的举证通过后,JPEGsnoop 会自动计算受测图的压缩特征,并与其内置的强大的数据库进行比对,如果发现压缩特征与制定的相机型号不符,则说明图像并不是相机出片的原始图,此时会返回 Class 4;如果通过了,结果才是最优的 Class 3,这也是 JPEGsnoop 可靠的根本原因。
有什么办法?
传统的 EXIF 修改器(比如PowerExif、ExifTool等)一般只能修改 EXIF 信息,也就是举证1的内容,因此最好的结果往往也只是 Class 4。不过知道原因之后,我们可以对症下药,从而药到病除。这里介绍一款好用的EXIF工具:MagicEXIF 元数据编辑器,它不仅可以修改全部EXIF和厂商注释项目,更重要是具有内置的佳能和尼康原厂编码器,可以用原厂的编码特征重构图像,因此便可以通过 JPEGsnoop 检测了。通过“编辑”>“重建压缩数据”>“佳能 EOS 通用编码器/尼康单反编码器”即可完成原图重构。
最终结果:
- JPEGsnoop算法研究以及制作可以通过检测的原图
- 将Texture Packer制作的.pvr.ccz和.plist文件还原为多个原图 -- 可以一下转化多个
- 碰撞检测中的K_DOPS算法的研究
- 滚动背景的制作以及简单的碰撞检测
- 基于DM642的图像边缘检测算法的研究
- 成功研究出多边形的碰撞检测算法
- 图像处理--角点检测(Harris以及其他算法研究)
- 图像处理--角点检测(Harris以及其他算法研究)
- 图像处理--角点检测(Harris以及其他算法研究)
- 图像处理--角点检测(Harris以及其他算法研究)
- 图像算法---头发检测算法研究
- 通过jsp获取客户端的IP以及通过js检测浏览器类型
- 人脸美妆之唇色检测算法研究
- 美图秀秀专利---偏色检测算法研究
- 检测一个字符串是否可以只通过一次两个elements的交换实现排序!
- 检测对象中属性的存在与否可以通过3种方法来判断。
- 用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
- 用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
- MyEclipse搭建spring MVC+Hibernate
- 10.Tomcat删除项目时,删除那些文件或文件夹?
- 探究requestDisallowInterceptTouchEvent失效的原因
- UVaLive 3401 Colored Cubes 彩色立方体
- muduo日志1
- JPEGsnoop算法研究以及制作可以通过检测的原图
- muduo日志2
- 结构体指针
- 11. Firefox如何调试js脚本:
- Nagios 监控mysql服务器详细实现过程
- fork()&&进程的创建与终止--多进程编程
- 利用ajaxFileupload实现表单和图片同时上传
- muduo日志3
- MySQL技术内幕-InnoDB存储引擎-读书笔记(一)