数字图像复制粘贴篡改盲取证算法研究与实现

2015-02-23 08:28杨江涛马喜宏
电子器件 2015年4期
关键词:小波变换数字图像

杨江涛,马喜宏*,邬 琦

(1.中北大学电子测试技术国家重点实验室,太原030051; 2.中北大学仪器科学与动态测试教育部重点实验室,太原030051; 3.中北大学计算机与控制工程学院,太原030051)



数字图像复制粘贴篡改盲取证算法研究与实现

杨江涛1,2,马喜宏1,2*,邬琦3

(1.中北大学电子测试技术国家重点实验室,太原030051; 2.中北大学仪器科学与动态测试教育部重点实验室,太原030051; 3.中北大学计算机与控制工程学院,太原030051)

摘要:针对数字图像检测中一类常见的复制-粘贴图像篡改,提出了一种基于小波变换和奇异值分解的检测算法。该算法利用小波变换提取图像的低频分量,对低频分量分块提取奇异值特征,然后将特征矢量进行按行字典排序,并且配合图像块的偏移位置信息,进行图像复制伪造区域的检测和定位。实验表明该算法大大减小了特征向量的维数,从而提高了相似块的匹配检测效率。为了更方便快捷的检测图像是否被恶意篡改,设计了简单明了的系统检测界面,只需载入待检测的图像并输入相应的参数就能进行检测,最后将检测结果返回给界面,而且系统完成了篡改检测算法的DSP硬件实现,该算法将有利于推动数字图像取证技术的理论研究与应用推广的发展。

关键词:数字图像;篡改取证;小波变换;奇异值分解; DSP

图像数据作为信息传递的重要载体,被广泛应用在新闻报道、智能信息收集、犯罪调查、安全监控、医疗和科学研究等领域[1-2]。但随着成本、高性能、友好操作界面的图像处理软件的不断推出,数字化的图像信息面临着极大的安全隐患(即图像信息易被恶意篡改),因此数字图像真实性认证已经成为目前的研究热点[3-4]。

为了进一步减少运算量,本文从缩小图像尺寸和降低特征空间维数两方面考虑,提出了一种基于小波和奇异值分解的图像复制区域检测算法。该算法利用小波变换提取的图像低频分量作为分析对象,并使用奇异值分解提取小波低频图像特征进行降维。实验表明该算法能够定位出复制和粘贴的图像区域,并显著地减少了运算量,提高了检测效率。为了更方便快捷的检测图像是否被恶意篡改,设计了简单明了的系统检测界面,只需载入待检测的图像并输入相应的参数就能进行检测,最后将检测结果返回给界面,而且系统完成了篡改检测算法的DSP[5]硬件实现,该算法将有利于推动数字水印技术的理论研究与应用推广的发展。

1 数字图像复制粘贴篡改盲取证算法

1.1一级小波穷举搜索法

1.1.1算法思想

该算法[6]首先将图像进行不重叠分块,把每一个图像块当成一个模板,然后对图像块进行一级小波变换,将经过一级小波变换的图像块遍历剩余的部分(图像块同样要经过一级小波变换),看是否存在跟模板完全一样的图像块,若存在,则标记这两个图像块的位置,继续搜索,直到找到所有的相同块。

首先将图像分为ms×ns的不重叠块B,然后对小块做DWT,把DWT后图像小块当成一个模板,遍历图像剩余的部分(图像块同样要经过一级小波变换),看是否存在跟模板完全一样的图像块,若存在,则标记这两个图像块的位置,继续搜索,直到找到所有的相同块。

1.1.2算法步骤

(1)不重叠快的划分和特征向量的提取

将图像分为ms×ns的不重叠块,其中块大小的选择要求小于篡改块。假设图像大小为mc×nc,重叠块Bi大小为ms×ns,对于图像块的划分,分块越大检测的速度越快,在同一阈域T前提下漏检的可能性也越大;与之相对应分块划分过小,检测的准确性虽然提高了,但降低了检测的速度,同时可能会出现大量的虚警现象,所以关于块的大小的选择要根据人工怀疑的篡改区域大体估计,并通过反复试验,适当选择适当的分块大小。对每个小块做Haar离散小波变换(DWT):[Ai,Hi,Vi,Di]= dwt2 (Bi,’harr’),图像DWT后所对应的各子频带的值为相应的小波系数。低频逼近子带表示小波分解在最大尺度、最小分辨率下对原始图像的最佳逼近,它的统计特征和原图像相似,含有最重要的信息,所以我们采用低频子带Ai作为小块Bi的特征向量。

(2)重叠快的划分和特征向量的提取

将图像按照单像素位移被划分为多个重叠块Ci,图像块的大小和重叠块的大小一样,同为ms×ns大小。对每个小块做Haar离散小波变换(DWT):[Ai,Hi,Vi,Di]=dwt2(Ci,’harr’)。

(3)块匹配检测

每一个DWT重叠块和所有DWT非重叠块做相似性检测。常用的块相似性检测方法有基于直方图统计的检测方法,基于像素统计的检测方法和基于像素统计的检测方法。本文采用Pearson相关系数检测方法。

1.2DCT水印算法

1.2.1算法思想

该算法[7]首先将水印图像置乱,然后将水印嵌入到原始图像中。检测时,若提取出的水印和原始水印不一致,则说明图像被篡改过。

1.2.2算法步骤

(1)水印图像置乱,本文采用的置乱算法为Arnold变换。

(2)图像分为8×8大小块并进行DCT变换,把水印嵌入图像块中。

(3)检测时,提取水印,反置乱得到提取水印,若得到的水印和原始水印相同则图像未被篡改,否则为篡改图像[8]。

1.3LSB水印算法

1.3.1算法思想

该算法[9]的主要思想是图像2×2不重叠分块,提取图像分块的灰度均值并量化为8 bit的精确值,经混沌logistic映射加密和确定嵌入位平面后,嵌入到原始图像所有像素的2个最低有效位中;在图像需要认证时,提取图像中水印信息和重新计算图像分块灰度均值,经加密和确定嵌入位平面后生成参考水印,比较提取的水印信息与参考水印,若相同则通过认证,反之判定为篡改。在认证检测过程中,不需要原始图像和任何有关水印的附加信息,保证了水印的安全性和保密性,实现对图像内容完整性认证和篡改的精确定位。

1.3.2算法步骤

(1)原始图像分2×2不重叠分块,提取图像块的灰度均值并量化为8 bit的精度值。

(2)求分块高灰度均值二值化。

(3)经混沌logistic映射加密和确定嵌入为平面后,嵌入原始图像所有像素的2个最低有效位中。

(4)在图像需要认证时,提取图像中水印信息和重新计算图像分块灰度均值,经加密和确定嵌入位平面后生成参考水印。

(5)比较提取的水印信息与参考水印,若相同则通过认证,反之判定为篡改。定位篡改位置。

1.4基于小波和奇异值分解算法

1.4.1算法思想

本文算法首先对检测图像进行小波变换,对小波低频分量进行固定大小的滑窗操作,对取出的图像块进行奇异值分解[10],然后对图像奇异值特征矩阵进行按行字典排序。根据相似的图像块则奇异值矢量相近,排序后两个矢量会在排序矩阵中相邻,遍历排序后矩阵,并且配合图像块的偏移频率信息,检测出复制伪造区域。

1.4.2算法步骤

(1)设Imc×nc为待检测的灰度图像,其中mc×nc为图像的大小。

(2)对图像I进行j级小波变换,变换后的小波低频图像为Am×n,其中m=[mc/2j],n =[nc/2j],[]为下取整操作。

(3)设定窗口块w的大小为ms×ns(这里假设设定分块的大小小于要检测的复制图像区域的大小),对小波低频图像进行一次移动一个像素的滑窗操作,则共有Nw=(m-ms+1)×(n-ns+1)个块。

(4)对每个图像块进行奇异值分解,得到降维后的图像特征描述,特征空间由ms×ns维下降到了r维,其中r=min(ms,ns)。

(5)对得到的Nw×r维的特征矩阵,按行进行字典排序,得到排序后的特征矩阵S。向量si表示S中的一行,i=1,…,Nw,(xi,yi)表示与向量si对应图像块的左上角坐标值。

(6)遍历S,对S中相邻的两行向量si,sy,计算它们对应的图像块的坐标的偏移矢量(Δx,Δy)。

(7)对满足Δx>|ms|orΔy>|ns|的向量si,sy,统计其偏移频率C(Δx,Δy),得到偏移频率矩阵C(初始化为零):C(Δx,Δy)= C(Δx,Δy)+1

(8)对得到偏移频率矩阵C进行大于阈域T判断,判别出图像中是否存在复制图像区域。如果存在,进入下一步,如果不存在,则算法结束。

(9)对偏移频率大于阈值T的那些偏移矢量对应的块位置进行标识:如果这些具有相同偏移矢量的块是相邻的,则组成了复制粘贴的区域;如果标识块是孤立的,则可能是噪声。

2 DSP硬件平台设计

本系统主要由图像采集和图像处理两大部分组成。由CMOS传感器负责图像的采集,CPLD进行逻辑控制,SRAM进行数据存储,DSP进行数据处理,将数据采集和数据处理集成到一个系统中,从而发挥了不同类型可编程芯片的,提高了系统的性能。系统的硬件框图如图1所示。

图1 系统硬件设计框图

系统图像数据的采集、处理过程如下:首先,由DSP启动对图像数据的采样,通过扩展的I/O口,发送控制信号到CPLD;控制信号主要由开始采集、采集完成等几个状态组成。CPLD一旦接收到开始采集信号,就立刻向CMOS传感器发送采集控制信号。为了实现SRAM中数据地址的同步,将CMOS传感器输出的数字信号送往CPLD进行缓冲,然后送到SRAM中供DSP读取。DSP通过查询和中断方式,监控CPLD发出的中断信号,一旦接收到CPLD发出的采集完成中断信号,DSP在通知CPLD停止采集的同时,延时一段时间后从SRAM读取数据,然后在内部进行数据处理,将处理结果通过显示器件显示或者根据用户的要求,将放在存储器中的结果通过McBSP、USB接口送往PC机。

2.1图像数据格式转换

为了弥补CCS环境图像显示能力的不足,系统对图像进行的性能评估工作主要在MATLAB平台下完成。DSP平台主要用来实时采集图像并提取水印信息,图像在CCS与MATLAB之间通过.dat图像数据文件进行传输。

MATLAB程序可以直接读取图像文件,图像数据经过处理后,通过格式转换程序,将图像数据封装成CCS可识别的.dat数据文件。CCS可以通过File->Data->Load很方便地将文件中的数据导入到DSP的存储空间,利用DSP对图像数据进行快速处理。然后通过File->Data->Save将存储空间中的图像数据导出至.dat数据文件,在MATLAB中通过格式转换程序将文件中的图像数据转换成MATLAB可识别的unit8格式图像数据,进而对图像进行显示输出和质量评估。

2.2视频驱动程序设计

TI公司为C64X系列DSP提供了一种类/微型驱动模型,同时为开发DSP的外设驱动程序提供了驱动程序开发包DDK,而且提供专门针对视频设备的FVID模型。FVID模型将微型驱动也分为两层结构:上层为通用视频端口层;下层为编解码芯片微驱动层,它们通过外部设备控制接口EDC实现对外围编解码芯片的操作。

系统在DSPBIOS的用户驱动配置中添加了3个自定义视频输入输出设备驱动,并在其属性中添加GIO的驱动实例。在任务管理中添加任务,并绑定函数作为视频驱动的处理程序。主程序中视频驱动处理任务函数的处理过程可描述为:在初始化部分建立视频采集和显示设备的实例句柄,利用FVID相关函数打开并初始化设备以取得句柄,同时分别申请一个输入和输出缓冲区。进入任务循环后,通过DMA操作将输入缓冲区中的数据读出来,对其进行处理,并将数据送输出缓冲区进行显示,然后向视频口驱动程序切换输入和输出缓冲区完成更新。操作完成后释放句柄,关闭驱动设备。

2.3无线串口通信程序设计

系统串口模块采用TL16C752B通用异步收发器进行设计。对TL16C752B访问之前需要配置一些控制寄存器对其进行初始化。主程序中首先定义串口结构体和串口句柄,使用初始化函数打开一个串口通道,并返回该通道句柄,此后便可利用此句柄进行数据的接收和发送。数据收发可以通过直接读写模块寄存器完成,也可以利用McBSP模块的CSL函数来实现。

为了解决DSP硬件与上位机进行串口通信受限于串口线长度的问题。系统使用2块DRF1605H模块,实现计算机与DSP开发板之间的无线串口通信。DRF1605H模块是利用TI的CC2530F256设计的,它运行ZigBee2007协议。系统配置上位机ZigBee模块作为主节点,DSP硬件ZigBee模块作为从节点,为它们配置相同的无线频率及网络ID,从而组成一个ZigBee网络。节点上电后即可自动组网,主节点自动给从节点分配网络地址,采用数据透明传输模式,主节点从计算机串口接收到的数据会自动发送给从节点,从节点由DSP串口接收到的数据会自动发送给主节点,主从节点之间的通信就像用一条串口线直接相连一样方便。

3 仿真实验与结果分析

3.1系统测试实验

(1)测试一级小波穷举搜索法如图2所示。

用例描述:在基于一级小波穷举搜索法界面,输入正确参数;

前置条件:进入一级小波穷举搜索法界面;

输入:要检测的图像,图像块长为10,宽为15,阈值为0.95;

测试结果:正确显示执行结果。

(2)测试DCT水印算法如图3所示。

用例描述:在嵌入DCT水印算法界面,载入正确图像并点击嵌入水印按钮;

前置条件:进入嵌入DCT水印算法界面;

输入:要嵌入水印的图像和水印图像;

测试结果:正确显示执行结果。

图2 一级小波穷举搜索法测试图

图3 DCT水印法测试图

(3)测试LSB水印算法如图4所示。

用例描述:在LSB水印算法界面,载入图像并点击嵌入水印按钮;

前置条件:进入LSB水印算法界面;

输入:要检测的图像;

测试结果:正确显示执行结果。

(4)测试基于小波和奇异值分解算法如图5所示。

用例描述:在基于小波和奇异值分解算法界面,输入参数正确;

前置条件:进入基于小波和奇异值分解算法界面;

输入:要检测的图像,小波级数为3,阀值为100;

测试结果:正确显示执行结果。

图4 LSB水印法测试图

图5 基于小波和奇异值分解算法测试图

3.2测试结果分析

基于以上算法,系统在MATLAB平台下,对彩色图像嵌入水印后,对含水印图像进行各种攻击处理后提取水印,对提取结果进行理论分析对比。同时利用DSP系统采集经打印机输出的含水印图像,在DSP平台下进行水印提取,然后将图像数据传输给MATLAB程序,在MATLAB平台上对图像进行质量评估,以验证本水印算法有效抵抗打印扫描过程中各种图像攻击处理的鲁棒性。

本文提出的算法是基于小波和奇异值分解的图像复制区域检测算法,而所有的基于图像块匹配的算法时间消耗都比较高,该算法利用小波变换提取的图像低频分量作为分析对象,并使用奇异值分解提取小波低频图像特征进行降维。通过表1可以比较得出,在相同实验条件下,本文算法的图像块的特征维数为6,而穷举搜索法、DCT水印算法和LSB水印算法中的图像特征维数分别是无、64维和32维。因此,本文提出的算法减少了提取的特征维数和运算量,大大降低了算法的复杂度。

表1 本文算法与其他算法的比较结果

4 结论

图像部分区域复制-粘贴篡改是常见的篡改方式,在日常生活新闻媒体医学法律等方面都有应用。本文提出了一种基于小波和奇异值分解的图像复制区域检测算法,该算法利用小波变换提取的图像低频分量作为分析对象,并使用奇异值分解提取小波低频图像特征进行降维。实验表明该算法能够定位出复制和粘贴的图像区域,并显著地减少了运算量,提高了检测效率。为了更方便快捷的检测图像是否被恶意篡改,设计了简单明了的系统检测界面,只需载入待检测的图像并输入相应的参数就能进行检测,最后将检测结果返回给界面。本系统将图像篡改检测算法在DSP平台上进行实现,促进了图像数字图像取证技术理论与实际应用的有效结合。系统进一步完善后如能实现产品应用推广,将有力推动数字图像取证技术产品化的发展。

参考文献:

[1]李亚标,王宝光,李温温.基于小波变换的图像纹理特征提取方法及其应用[J].传感技术学报,2009,22(9):1308-1311.

[2]欧红玉,陈曦,宋燕辉,等.基于LBP的图像复制篡改检测[J].计算机应用与软件,2013,30(9):170-172.

[3]叶鸿敏,沈永增,张敏捷.基于二代小波提升算法的快速图像边缘检测[J].计算机测量与控制,2007,15(7):866-869.

[4]崔宇寅.数字图像盲取证技术研究及其应用[D].上海:华东理工大学,2014.

[5]李志勇,张鹏.基于DSP的偏振图像快速融合研究[J].电子器件,2010,33(4):498-501.

[6]龚薇,斯科,叶秀清,等.一种强鲁棒性的实时图像增强算法[J].传感技术学报,2007,20(9):2024-2028.

[7]林克正,李绍华,李东勤.基于DWT和DCT的自适应水印算法[J].微计算机信息,2007,23(6):284-286.

[8]古丽江·库尔班.基于DCT编码图像分割算法研究[J].电子器件,2014,37(1):168-170.

[9]何冰.基于LSB的抗旋转攻击鲁棒性数字水印算法[J].系统仿真技术,2010,6(4):304-307.

[10]蒋华,张敏.基于提升小波和奇异值分解的灰度水印算法[J].计算机应用研究,2009,26(8):3028-3030.

杨江涛(1988-),男,山西运城人,硕士研究生,研究方向为惯性测试技术及控制;

邬 琦(1989-),女,山西大同人,硕士研究生,研究方向为计算机仿真与图形图像处理,wuqi6567@163.com。

马喜宏(1964-),女,汉族,山西大同人,优异级高级工程师,硕士生导师,研究方向为微系统集成技术;

收稿日期:2014-05-23修改日期:2014-06-26

中图分类号:TP391

文献标识码:A

文章编号:1005-9490(2015)04-0961-06

猜你喜欢
小波变换数字图像
ARGUS-100 艺术品鉴证数字图像比对系统
MATLAB在《数字图像处理》课程中的辅助教学
基于互信息和小波变换的图像配准的研究
基于块效应测度的JPEG数字图像盲取证
数字图像修补技术的研究进展与前景展望
基于DirectShow的便携式X射线数字图像采集的实现