袁 哲,孙延君,陈 亮
(1.吉林大学 机械与航空航天工程学院,长春 130022;2.空军航空大学 计算机教研室,长春 130022)
计算机图像处理软件能绘制出各种不同场景的数字图像,人们通过肉眼根本无法辨别出这些图像和真实图像的区别[1-6],因此,如何保证图像的真实性,如何鉴别图像的真伪,已成为当前该领域的研究热点[7-8].Farid等[9]提出了图像的高阶统计特性模型、邻近像素线性组合概率、离散余弦变换(DCT)系数直方图的类采样效应量化等方法,在计算机生成图像与真实图像进行鉴别检测中取得了较好的效果;文献[10]主要通过图像的几何特性鉴别计算机生成图像和真实图像;姚丹红等[11]提出了基础分形维数的计算机生成图像鉴别算法.在机械类实验中,为了解液力元件(包括液力变矩器、液力偶合器和液力缓速器)内部液体的流动状态和流动规律,采用粒子图像测速(PIV)技术.PIV实验中,需要采用CCD(电荷耦合器件)相机去拍摄视频和图片,并对图片进行识别和分析[12-14].本文基于计算机生成图像和真实图像之间的差异,通过计算图像的提取特征值,采取分类的方法识别计算机生成图像和真实图像.实验结果表明,本文提出的方法可切实有效地识别计算机生成图像与真实图像.
图1 数字图像成像过程Fig.1 Imaging process of digital images
数字图像的成像原理是光源光线通过数码相机的CCD传感器,捕捉和获取R,G,B三个通道的像素值实现的,如图1所示.在此期间,数码相机会利用CFA(彩色滤波阵列)插值的方法形成图像.数码相机在进行处理工作时,由于受诸多因素(如真实场景复杂程度、硬件及数码相机插值过程)的影响,导致在此过程中真实图像会产生一定的噪声.
图2 计算机生成图像过程Fig.2 Process of computer-generated images
计算机生成图像可通过各种途径及各类不同的图像编辑软件获得,并可对图像再进行一系列的人为操作,如对图像润饰、锐化、平滑,也可以对图像重新采取插值等方式模拟相机成像流程生成新图像,如图2所示.所以计算机生成图像和真实图像在纹理上存在差异.目前图像编辑软件功能日益强大,通过肉眼已经很难识别计算机生成图像,如图3所示.因此,只能通过采用适当的识别算法判断图像的真伪性.本文算法基于计算机生成图像和真实图像纹理的差异,利用局部二值模式特征进行鉴别.
图3 计算机生成图像与真实图像对比Fig.3 Comparision between computer-generated images and real images
局部二值模式特征也称为LBP(local binary pattern)特征,是描述图像局部纹理特征的算子.LBP特征的算法是在3×3范围内,周围8个像素点值比中间点像素值小的记为0,大于或等于中间点像素值的记为1,然后按顺时针方向得到二进制串,如图4所示.由图4可见,中间点的像素值用二进制序列10001111代替.其中,LBP的顺序并无硬性要求,只是一个量化公式,在计算中需保持相同顺序.本文在原有LBP算法的基础上进行改进,改进后的算法为:在3×3的范围内,周围8个像素点比中间点像素大的记为1,小的记为-1,相等的记为0,如图5所示.
图4 局部二值模式原理Fig.4 Principle of local binary pattern
图5 改进后的局部二值模式原理Fig.5 Principle of improved local binary pattern
由图5可见,在改进后算法中,算法将大于中心阈值的点和等于中心阈值的点组合成一个字符串,同时将小于中心阈值的点和等于中心阈值的点组合成一个字符串,这样中间点的像素值可用2个二进制字符串表示,分别按照顺时针排列的10111和1110.这样改进的优点是可以突出图像的边缘信息,而边缘信息是计算机生成图像和真实图像的重要区别,同时可将特征值集中在某一范围内,从而提高鉴别率.
对于一幅尺寸为M×N的图片,利用局部二值模式的改进算法将其转换成特征图像,如图6所示.其中: (A)是原图;(B)中像素值是由大于等于中心像素值转换的点组成;(C)中像素值是小于等于中心像素值转换的点组成,其转换方法是将灰度图像中每个像素值用局部二值模式值代替,然后提取每幅特征图像的128统计直方图特征作为特征向量.
图6 改进局部二值模式实例Fig.6 Example of improved local binary pattern
为进一步分析图像间的差异,本文先提取图像梯度特征,利用边缘检测得到边缘图像,然后利用边缘检测结果求取梯度方向.首先求梯度方向的比值,然后使用反正切函数进行映射,分别将映射后的比值和梯度幅值作为特征值,计算公式为
(1)
(2)
其中:d1和d2分别为水平和垂直两个方向的差值,从而可得到梯度特征.
下面利用改进的LBP特征和梯度特征的算法进行计算机生成图像和真实图像的检测.将所有待检测图像分为训练和测试两部分.首先对样本图像进行特征提取,得到其特征信息;然后利用支持向量机(SVM)分类器对样本进行训练;最后对测试图像利用SVM分类器进行测试.算法流程如图7所示.
图7 算法流程Fig.7 Flow chart of algorithm
步骤1) 将彩色图像转化成灰度图像;
步骤2) 对灰度图像进行改进的LBP特征和梯度特征提取;
步骤3) 利用SVM分类器对特征值进行分类.
用于实验的硬件环境为AMD Athlon(tm) 7750 2.7 GHz CPU,1 GB内存,采用的编程环境为Microsoft Visual 2010,选用C语言作为编程语言,SVM作为分类器.图像库采用美国哥伦比亚大学数字图像库,其中自然图像800幅,计算机生成图片800幅.实验随机选取400幅训练样本图像和200幅测试样本图像.确保训练图像和测试图像的比例为2∶1,实验结果列于表1.
表1 实验结果对比
本文算法的特征主要针对图像的纹理信息,由表1可见: 本文算法的识别率符合实际情况,对于真实图像,算法对于纹理信息较多图像的识别率较高;而相对于图像中纹理信息较少的图像,本文算法在识别率上还有待提高.同时由于真实图像在成像过程中受相机CCD感光和CFA插值等因素影响,特别是某些真实图像在拍摄时,相机与场景存在较剧烈的运动,导致拍摄的真实图像较模糊,本文算法在识别这些图像时会受一些影响.但实验结果表明,本文算法对计算机生成图像和真实图像具有较好的识别率.
综上所述,本文提出了一种鉴别计算机生成图像和真实图像的有效方法,由于计算机生成图像和真实图像二者的成像过程不同,所以二者在纹理上有较大差异,而图像梯度和LBP特征在描述图像纹理复杂性方面具有优势,因此本文基于计算机生成图像与真实图像的纹理进行特征值的提取,先得到图像的特征信息,然后利用SVM分类器进行分类.实验结果表明,本文提出的算法可切实有效地鉴别出计算机生成图像与真实图像,在实际应用中前景广阔.