发明名称 一种基于图像签名的图像篡改检测与篡改定位方法
摘要 本发明公开了一种基于图像签名的图像篡改检测与篡改定位方法,包括以下步骤:对原图像进行去噪处理;利用适应性Harris角点检测算法提取图像特征点;构造特征点邻域;计算特征点邻域内的统计量,得到特征向量值,生成中间签名;进行霍夫曼编码,得到原图像的最终签名;对原图像的最终签名进行Huffman解码,得到原图像的中间签名;生成被检测图像的中间签名;定义两个中间签名的距离,并判断被检测图像是否被篡改;定位被篡改区域。本发明方法能够对视觉可接受的几何形变和内容保持的图像处理操如JPEG压缩、添加噪声、滤波等操作具有良好的鲁棒性,对恶意篡改攻击具有较好的敏感性,并能够确定被篡改区域的位置。
申请公布号 CN102194208A 申请公布日期 2011.09.21
申请号 CN201110139102.8 申请日期 2011.05.26
申请人 西安理工大学 发明人 王晓峰;王尚平;张亚玲;郑振强
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 西安弘理专利事务所 61214 代理人 李娜
主权项 1.一种基于图像签名的图像篡改检测与篡改定位方法,其特征在于,包括以下步骤:图像发送方步骤1、对原图像进行去噪处理对于大小为M×N的原图像I<sub>0</sub>=f(x,y)利用一级DB1小波变换,得到低频重构图像为f<sub>LL</sub>(x,y);步骤2、利用适应性Harris角点检测算法提取图像特征点步骤2.1、把步骤1得到的f<sub>LL</sub>(x,y)图像分成N<sub>1</sub>×N<sub>2</sub>大小的不重叠图像块,对得到的每一图像块均利用Harris角点检测算法,检测该图像块中存在的角点并记为C(i,j),(0≤i≤N<sub>1</sub>,0≤j≤N<sub>2</sub>),计算C(i,j)的像素点的兴趣值R并存储在数组Matrix[Sum]中,其中,Sum为数组的大小,即每个图像块中角点的总数;步骤2.2、对Matrix[Sum]按R值从大到小的顺序排序,排序后的数组记为Matrix′[Sum];选取Matrix′[Sum]中R值较大的角点作为所求角点,即在Sum个角点中选取k×Sum个点作为所求角点,k∈(0,1],k为实数;步骤2.3、对f<sub>LL</sub>(x,y)图像进行邻近角点剔除操作选用3×3大小的图像块为模板,若模板下存在的角点数大于1,则只保留R值最大的角点,最终,得到f<sub>LL</sub>(x,y)的特征点集合记为:C={C(x<sub>1</sub>,y<sub>1</sub>),C(x<sub>2</sub>,y<sub>2</sub>),...,C(x<sub>n</sub>,y<sub>n</sub>)},其中,n为特征点数目,C(x<sub>i</sub>,y<sub>i</sub>)代表特征点;步骤3、构造特征点邻域对于步骤2.3得到的特征点C(x<sub>i</sub>,y<sub>i</sub>)∈C,1≤i≤n,以C(x<sub>i</sub>,y<sub>i</sub>)为圆心,r为半径构造圆形区域,定义为特征点邻域C<sub>i</sub>;步骤4、计算特征点邻域内的统计量,得到特征向量值,生成中间签名步骤4.1、对于步骤3得到的每个特征点邻域C<sub>i</sub>(1≤i≤n),取其中每个像素点的灰度值p<sub>i</sub>,构成一个向量<img file="FDA0000063989280000021.GIF" wi="392" he="59" />其中,N<sub>i</sub>为特征点邻域C<sub>i</sub>中像素点的个数;步骤4.2、计算向量P<sub>i</sub>的均值和方差,对其四舍五入取整后,分别定义为特征点邻域C<sub>i</sub>的均值M(P<sub>i</sub>)和方差V(P<sub>i</sub>):<maths num="0001"><![CDATA[<math><mrow><mi>M</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msub><mi>N</mi><mi>i</mi></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>i</mi></msub></munderover><msub><mi>p</mi><mi>k</mi></msub><mo>,</mo></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>V</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msub><mi>N</mi><mi>i</mi></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>i</mi></msub></munderover><msup><mrow><mo>(</mo><msub><mi>p</mi><mi>k</mi></msub><mo>-</mo><mi>E</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup></mrow></math>]]></maths>其中,p<sub>k</sub>是像素点的灰度值;定义n×2的矩阵:<maths num="0003"><![CDATA[<math><mrow><mi>H</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>M</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>n</mi></msub><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>n</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>矩阵H即为原图像I<sub>0</sub>的中间签名;步骤5、对步骤4得到的矩阵H进行霍夫曼编码,得到原图像I<sub>0</sub>的最终签名H<sub>0</sub>;图像接收方根据接收到的被检测图像I<sub>t</sub>以及原图像I<sub>0</sub>的最终签名H<sub>0</sub>,进行的图像篡改检测阶段如下:步骤6、对原图像I<sub>0</sub>的最终签名H<sub>0</sub>进行Huffman解码,得到原图像I<sub>0</sub>的中间签名H:<maths num="0004"><![CDATA[<math><mrow><mi>H</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>1</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msub><mi>P</mi><mn>2</mn></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>M</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>n</mi></msub><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msub><mi>P</mi><mi>n</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>步骤7、生成被检测图像I<sub>t</sub>的中间签名H′,其中,该生成方法与步骤1至步骤5所述方法相同:<maths num="0005"><![CDATA[<math><mrow><msup><mi>H</mi><mo>&prime;</mo></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msup><msub><mi>P</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msup><msub><mi>P</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msup><msub><mi>P</mi><mn>2</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msup><msub><mi>P</mi><mn>2</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>M</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mi>M</mi><mrow><mo>(</mo><msup><msub><mi>P</mi><msup><mi>n</mi><mo>&prime;</mo></msup></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mtd><mtd><mi>V</mi><mrow><mo>(</mo><msup><msub><mi>P</mi><msup><mi>n</mi><mo>&prime;</mo></msup></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>H′是一个n′×2的矩阵,其中n′是从被检测图像I<sub>t</sub>提取的特征点的个数;步骤8、定义H′每一行到H每一行的距离:<img file="FDA0000063989280000032.GIF" wi="997" he="101" />(j=1,2,...,n′;i=1,2,...,n),定义<img file="FDA0000063989280000033.GIF" wi="550" he="80" />(i=1,2,...,n),令D=max(d(j)),(j=1,2,...,n′);步骤9、根据预先给定的阈值T<sub>1</sub>来判断是否D≤T<sub>1</sub>,若是,则被检测图像I<sub>t</sub>未被篡改;若否,则被检测图像I<sub>t</sub>被篡改过;图像篡改定位阶段:步骤10、对于特征点C′(x<sub>j</sub>′,y<sub>j</sub>′)∈C′计算<img file="FDA0000063989280000034.GIF" wi="561" he="80" />(i=1,2,...,n)。如果d(j)>T<sub>2</sub>,那么C′(x<sub>j</sub>′,y<sub>j</sub>′)被认为是不可信的,其所在的邻域被认为是被篡改区域,阈值T<sub>2</sub>为预先给定值。
地址 710048 陕西省西安市金花南路5号