一种基于图片内容的对JPEG压缩完全稳定的图像防篡改方法

收稿日期:2017-10-27
作者简介:易焕银(1987-),男,助教,硕士研究方向:图像处理、机器视觉
1引言
由于图像的JPEG 压缩具有压缩率高和视觉失真度小的特点,JPEG 格式目前为图像存取、传输过程中应用最广泛的一种格式。随着移动互
打印头换针联网和数字图像处理技术的飞速发展,移动终端(手机等)用户随手拍照并通过图片美化软件修改图片,然后进行保存、上传到网络成为一种常见的大众行为。这些图片处理技术方便了人们的日常生活,满足了很多用户(特别是女性用户)对美的追求。但某些企业对JPEG 图片在存储和
一种基于图片内容的对JPEG 压缩完全稳定的
图像防篡改方法
易焕银,王贵恩
(广东交通职业技术学院,广东广州510800)
要:某些企业迫切需要一种能够自动检测JPEG 图片在存储、传输过程中是否有被篡改过的水印技术,
同时需保证“原图”不受水印的影响。但因JPEG 压缩为有损压缩,压缩和解压缩过程会引起图片信息发生变化,要同时保证检测的零误检率和极低的漏检率是非常困难的。文中提出了一种基于图片内容的对JPEG 压缩完全稳定的图像防篡改方法,包括两个部分:加水印部分和检测图片是否篡改并去除水印部分。本算法能做到完全无误检,同时保证对篡改保持极高的检出率,而且丝毫不影响“原图”,完全满足企业的上述需求。本算法应用于某家企业的实际项目中。
关键词:JPEG 压缩;数字水印;篡改检测;零误检率;低漏检率中图分类号:TP309.7
文献标识码:A
A Tamper-proof Technique Based on Image Content and Absolutely
Stable for JPEG Compression
YI Huan-yin,WANG Gui-en
(Guangdong Communication Polytechnic,Guangzhou 510800,China)
Abstract:Some companies urgently need a kind of watermarking technology which can automatically detect wheth-er the picture has been tampered in the process of storage or transmission,while ensuring that the original image is not affected by the added watermark.As JPEG compression is lossy compression and image information will be changed during the process of compression and decompression,it is difficult ito ensure that false rejection rate is 0%with very low false acceptance rate.This paper presents an absolutely robust to JPEG compressing technique of im-age tamper-proof,which is divided into two parts:the watermark adding and the testing for whether the picture is tampered and removing the watermark section.The algorithm can absolutely guarantee against error checking while ensuring a high detection rate of tampering,and does not affect the original image,which fully meets the above needs of companies.This algorithm is applied to a practically project of some company.
电炉配料Key words:JPEG compression;digital watermarking;tamper detection;0%false rejection rate;low false acceptance rate
传输过程中的“原图性”是高度保密和高度敏感的,例如公安部门要求证件照片(如身份证、护照等)必须保留照片中人物的所有特征信息,不允许有任何人为篡改图片中的人像生物特征的行为,如通过Photoshop(简称为PS,下同)把脸上的痣替换为普通皮肤颜,修改脸上皮肤颜等。因此,如何保证所得到的图片是原始拍摄的图片,即保证图片的“原图性”,成为某些企业迫切需要解决的关键问题。
要达到企业应用级的要求,针对JPEG图像的防篡改水印技术需要同时做到以下几点:①水印信息不能有损原图;②水印信息必须是基于图片内容的,即水印信息体现图片特征;③对没有篡改过的图片,要求100%无误检,即被误判为有被篡改过的概率为0;④对篡改过的图片,要求做到基本无漏检,即漏断为没有篡改过的概率极低,并能定位到篡改位置;⑤水印和原图需保存在一张图片中,同时存储、传输。因为JPEG 为有损压缩,要同时做到以上几点是一个非常具有挑战性的课题,现有的各种水印算法都无法达到以上企业要求。
传统的脆弱水印方法能够做到以上要求中的一部分。文献[1]首先对图像进行DCT变换,然后分段修改变换后的直流系数来嵌入水印,该方法对JPEG压缩具有一定的鲁棒性。文献[2]提出一种通过修改奇
异值量化系数的编码来嵌入半脆弱水印信息的图像内容认证策略。文献[3]提出了一种基于频率域的三维网格模型零水印算法。文献[4]提出一种针对二维条形码的半脆弱水印认证算法,算法将水印信息嵌入到图像的中高频小波系数中,通过检测系数来实现内容认证。文献[5]提出了一种基于混沌的脆弱水印算法。文献[6]在非主要区域嵌入水印信息以抵抗JPEG压缩。文献[7]在水印信息中加入纠错码以恢复因JPEG压缩引起的误码。
voip业务但以上算法都是将水印信息嵌入到原图中,都存在两个问题(这是企业无法接受的):无法100%保证无误判,无法100%保证嵌入水印信息后原图的所有细节特征得以保留。①不能100%保证无误判:在用户没有篡改的情况下,不能保证嵌入到原图的水印信息与从嵌入水印信息后的图片中提取的水印信息保持100%一致,进而造成用户没有篡改图片,却被误判为篡改过。一方面,由于水印不能完全抵抗JPEG的压缩,即JPEG压缩和解压过程造成水印信息本身的变化,提取出的水印信息有噪点。另一方面,图片内容也会在JPEG压缩和解压过程中发生变化,引起从图片内容中两次提取的信息之间有差异。②不能100%保证嵌入水印信息后原图的所有细节特征得以保留:因为将水印信息嵌入到原图中,水印信息可能会造成原图特征发生改变。
本文提出了一种基于图片内容的对JPEG压缩完全稳定的图像防篡改方法,能够同时满足上述企业需求,并应用于某家企业的实际项目中。本方法是基于图片JPEG压缩中离散余弦变换子过程(DCT)中的某些不变性质提出的,即直流分量的整数部分的高位在某种条件下保持不变,算法的另一个关键技术
是图片在某些纯背景情况下对嵌入的水印能保持绝对稳定。其中直流分量的高位在某种条件下不变的性质能保证在JPEG 压缩、解压缩前后提取出的原图特征保持不变,某些纯情况下嵌入水印信息保持稳定的特性能保证水印信息本身的绝对稳定。
如图1所示,算法包括两个部分:水印信息嵌入部分、水印信息提取与检测图片是否篡改部分。
2本文算法
本算法主要解决3个问题:如何在原图中寻到对JPEG压缩稳定的信息?如何将水印信息与原图一起稳定的保存到一张图片当中?如何提取水印信息并判断原图是否有被篡改过?如果有篡改,需返回不通过并定位到篡改位置。如果没用篡改,则返回通过,并恢复原图。其中前两个问题属于水印信息嵌入部分,最后一个问题属于水印信息的提取、检测图片是否有被篡改部分。
2.1算法总体设计思想
要在原图中到对JPEG压缩稳定的信息,首先需要了解JPEG编码的流程。从图2可以看
图1本算法的组成与运用
算法组成的两个部分
小鼠步态分析实验
广东交通职业技术学院学报第17卷
出JPEG 压缩编码主要包括6个步骤:内存中的RGB 格式的图像被转换为YUV 格式,然后对YUV 三通道分别进行采样,接着分块进行DCT 变换和量化,最后进行熵编码,得到压缩编码的JPEG 图片。
其中导致有损原图信息的部分为第4步量化,正是由于量化,导致信息的不可逆恢复。表1为JPEG 标准亮度量化表。量化后的数据分为直流分量和交流分量,其中(0,0)位置为直流分量,其他63个元素被称为交流分量。对于交流分量,由于JPEG 采用图3所示的Zigzag 扫描排序,左上角为为低频部分,右下角为高频部分。可见,对DCT 变换后的数据量化时,直流和低频部分的量化分辨率远高于高频部分的量化分辨率,导致一些体现图像细微细节信息的高频部分被抛弃,量化后大量高频数据为0,JPEG 得以实现高压缩率。由于人眼对高频细节敏感度不高,所以肉眼看上去压缩后图像变化很小,JPEG 格式得以广泛应用。
本文算法是利用JPEG 编码流程的前4步来提取水印数据和嵌入水印信息的。
具体来说:
(1)水印数据选取的是在量化后获取直流分量的部分信息作为体现原图的特征信息,为步骤1-2-3-4之后的信息。
(2)水印数据的嵌入是将拓展部分的JPEG 编码进行到流程的步骤1-2-3-4后,再嵌入水印,然后原路返回到RGB 图像,即步骤4-3-2-1来保存嵌入水印信息,以供JPEG 压缩,最后把整个拓展并嵌入水印后的图像送给标准的JPEG 编码流程。
(3)水印信息的提取和检测有无篡改部分都是获取量化后的信息,即步骤1-2-3-4后的信息。2.2水印信息的选择与嵌入
基于图片内容的水印算法采用图片本身的特征信息作为水印信息。由于加过水印的每一张图像相互之间是独立的,无论是图片内容被篡改还是水印信息被破坏,都能被检测为被篡改过,因此能更好的抵抗外界对图片的篡改与攻击。2.2.1寻原图中对JPEG 压缩稳定的信息
经过DCT 变换后,直流分量一般会远远大于其他63个交流分量,由于直流分量一般较大且量化精度高,直流分量量化后的大小还能维持一个较大的值。将量化后的直流分量的整数部分转化为二进制形式,经过分析和实验,发现该二进制数值从第4位开始能够维持±1波动的稳定,波动的原因是低位进位或借位的变化引起。本算法取该二进制数的4~7位共4位作为体现图像特征的水印数据,这样做是权衡了两方面的考虑:①水印数据量不能太大,否则会增加存放水印数据的图像拓展面积(后文会详细说明);②水印数据不能太少,图片若有篡改必须足够敏感地检测出来。经过理论分析和实验验证,每个8*8像素的图像块用4bit 水印数据来体现该块的图像特征是合适的。将直流分量的整数部分量化后的二进制数的4~7位作为体现图像特征的水印数据是本算法的第一个主要创新点,同时也是本算法的灵魂。
具体做法是:将原始图像分成互不覆盖的
图2JPEG
编码流程与本算法的关系
表1
JPEG
标准亮度量化表
图3JPEG Zigzag 扫描排序
40
8*8像素的图像块,记为B k,k=0,1,2,...,N。并对每一8*8像素小块的图像进行DCT变换,然后按JPEG标准亮度量化表进行量化,最后提取直流分量的整数部分的二进制数的4~7位,作为水印信息的主要部分。
2.2.2将水印信息与原图一起稳定的保存到一张
图片当中
辽宁五点一线要解决水印保存信息的稳定性问题,同时保证水印信息不影响原图。具体分如下几步进行:Step1:将原图拓展,长和宽分别拓展为原图的1.44倍。拓展部分用来存放水印信息。
Step2:将拓展部分统一设为纯(R,G,B)= (44,44,44)。设置为纯的目的是,这样设置后水印部分经过DCT变换后的交流部分的63个分量全为0,保证后续嵌入水印的稳定性。
Step3:将原图在拓展后图片中的位置信息和上一步中的水印信息经过密匙加密,然后嵌入到水印部分。原图在拓展后的图片中的位置可以用两个二维坐标点来表示,即左上角和右下角两个坐标点。
由于本步骤比较复杂,而且是水印嵌入的核心部分,因此下面对本步骤做详细说明。
水印信息嵌入方法(以嵌入4bit的水印信息“1000”为例):
文献[8]提出了一种对比随机选定的DCT中频系数的水印嵌入方法,本文参考其思路,依然通过中频系数的对比来嵌入水印信息,但操作上稍有不同,嵌入水印的顺序为预先指定的固定中频系数对:(28,29)、(30,31)、(32,33)、(34,35)。
把拓展后的图像分为8*8像素互不重叠的小块,每一个不包含原图像素的8*8像素小块可以保存4bit的水印信息,跳过所有包含原图像素的小块。
由于放置水印信息的拓展部分被设为纯(44,44,44),因此每个8*8像素的图像块经过DCT 变换并用JPEG标准亮度量化表量化后直流部分为117.3,交流部分的63个分量全为0,如表2所示。此时将信息嵌入到上述指定的中频系数对中能保证嵌入水印的绝对稳定。这一点是本算法的另一个关键所在,也是本算法的另一个创新点。
类似于文献[8]的做法,通过要嵌入二进制信息的值来改变中频系数的值,但为了保证水印信息的绝对稳定,做法上稍有不同:对中频系数对(28,29)、(30,31)、(32,33)、(34,35),每一对保存1bit要嵌入的水印数据信息,当该bit的值为0时,将前面的序号所对应的数值设为2,后面的序号所对应的数值设为-2;反之,当该值为1时,将前面的序号所对应的数值设为-2,后面的序号所对应的数值设为2。后续提取水印信息的原理是:分别比较中频系数对(28,29)、(30,31)、(32, 33)、(34,35)的大小关系,即可分别获得1bit的水印信息(共4bit)。经过超过10万张图片的测试表明,这样设置能做到所保存的水印信息100%稳定无误。
表3为嵌入4bit的水印信息“1000”后的结果。
Step4:当所有的水印信息嵌入完成后(即8*8像素块BN信息嵌入完成后),进行图2中步骤4-3-2-1,
主要是反量化和IDCT(离散余弦反变换),然后将内存中的拓展后的图片(包括原图和水印拓展部分)保存为JPEG格式,供后续保存、传输。
原图和拓展后图片示例如图4和图5所示,企业实际应用时,对用户只显示拓展后的图片中的原图部分。
集效应
2.3
水印信息提取并判断原图是否有被篡改过
总体来说,水印信息的提取过程是嵌入过程的反过程,只是首先需要通过左上角16个8*8像表2拓展部分8*8像素的图像块经过DCT变换
并量化后的结果
表3嵌入水印信息“1000”后的结果
广东交通职业技术学院学报第17卷
素块来提取原图在拓展后大图中的位置,然后提取嵌入的水印信息,并按原方法提取原图的特征信息,最后比较两者之间的差异,判断原图每个8*8像素图像块是否有被篡改过。
Step1:提取原图在拓展图片中位置的水印信息。
提取原图在拓展后大图中的位置是后续定位原图、提取水印中保存的原图特征信息等步骤的前提。通过左上角16个8*8像素的水印图像块即可提取得到4个16位整数,这4个数即为原图在拓展图中的位置信息(左上角和右下角两个点的坐标)。
提取水印信息的方法:
Step1.1:将左上角16个8*8像素的水印图像块分别进行DCT 变换,并用JPEG 标准亮度量化表量化;
Step1.2:比较中频系数对的大小关系:(28,29)、(30,31)、(32,33)、(34,35),即可得到4bit 水印信息;
Step1.3:将16个4bit 信息按嵌入时用的密匙解密、拼接,即可获得4个16位整数(表示范围0~65535,足以覆盖两个点的坐标值的变化空间),即为原图左上角和右下角两个点的位置。说明:如果提取出来的两个坐标中的任意一个不在合理范围内,则停止进行下面的Step2、Step3、Step4步骤,直接将图片判为篡改过的。
上述示例中,算法提取出的原图左上角和右下角坐标为:(64,96;359,521),符合实际情况。
Step2:提取拓展图片中的原图部分的特征信息。
根据上一步获得的原图在拓展图中的位置信息,将拓展图片中的原图部分分为8*8像素的图像块,按照与“水印信息的选择与嵌入”部分一样的方法提取其直流分量的整数部分的4~7位共4bit 特征信息,按照嵌入的顺序将其整理为一个整数,并将其赋给变量x ;
Step3:提取在拓展图片中存放的原图特征的水印信息。
从左上角第17个8*8像素的水印图像块开始,按照Step1中一样的方法提取水印信息(跳过包含原图像素的8*8像素的水印图像块),提取4bit 水印信息,并按照嵌入的顺序将其整理为一个整数,将其赋给变量y ;
Step4:判断原图是否有被篡改过。
比较上面两部中x 和y ,如果|x-y|落在集合{0,1,15}中,则将该8*8像素的图像块判为没有篡改,否则判为篡改过。因此,本算法对篡改定位的精度为8*8像素的像素块。继续进行步骤Step2、Step3、Step4,直到拓展图片中原图部分所有8*8像素图像块都比较完成为止。
在下面的示例中,通过PS 抹掉了嘴边的黑痣(图6和图7),算法成功定位到PS 篡改过的8*8像素块位置:
tampered positions:(112,248)。
篡改检测原理:直流分量的整数部分的4~7位本身是稳定的,但其0~3位可能会在JPEG 压缩、解压缩过程中发生变化,进而引起对4~7位进位或借位的变化。无论是进位还是借位,都可能使得x 和y 之差的绝对值从0变为1或15。由于这种变化是JPEG 压缩、解压缩引起的,因此不能将该8*8像素的图像块判断为篡改过的。由于|x-y|的可能值有0~15共16种情况,当有篡改时,其它的13种情况都可以被确定为篡改过的,因此每个8*8像素的图像块能检测出篡改的概率为13/16=0.8125,如果有4个8*8像素的图像块被篡改(因为证件照一般像素值较高,稍稍修改便会达到甚至超过这个条件),那么被本算法漏判为没有修改的概率为(1-0.8125)^4,约为
0.001
图4
原图
图5
拓展后的图片(包含原图和防篡改水印)
42

本文发布于:2024-09-20 19:52:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/316036.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:水印   信息   图片   原图   部分   嵌入
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议