APP下载

基于变邻域局部搜索的篡改图像检测算法

2023-03-20吴冬梅郑佳雯

电子设计工程 2023年6期
关键词:搜索算法邻域像素

吴冬梅,郑佳雯

(1.永城职业学院电子信息工程系,河南永城 476600;2.西安信息职业大学 大数据与云计算学院,陕西 西安 710077)

随着图像处理技术的日益增强,出现的篡改图像会导致人们无法分辨出真实图像[1-3],所以数字图像检测技术得到了国内外学者的重视。

Dixit 等人提出一种基于Fourier-Meilin 的图像篡改检测算法[4],该算法很好地描述了图像的特征,但是对于篡改区域定位较差。华秀茹等人提出了一种基于超像素分割和SURF 特征点的篡改检测算法[5],该算法提高了图像的篡改检测准确率,但是不能对篡改区域进行定位。

针对上述算法的缺点,该文提出改进的变邻域局部搜索的篡改图像检测算法,首先提取SIFT 特征,通过特征匹配判断图像是否经过篡改,然后合并符合相似性判定的由分块的超像素所得到的疑似区域以及改进的变邻域局部搜索算法所得到的邻域块,最终采用形态学闭运算填补孔洞,完成篡改区域的检测。

1 特征提取和匹配

1.1 SIFT特征提取

首先对图像进行非重叠分块,再提取子块的SIFT 特征,提取SIFT 特征的过程可概括为如下三个步骤[6]。

Step1:构造尺度空间

尺度空间核函数的选用标准是具备描述图像的多尺度特征,所以通常用高斯函数作为核函数[7]。尺度空间经过采样处理后,相邻的每一层的尺度空间相减,就可得到高斯差分尺度空间,如式(1)所示:

Step2:检测尺度空间极值点

为了得到准确的特征点的位置信息和尺度信息,对候选特征点相应的高斯差分尺度空间进行泰勒二次展开,通过对泰勒展开式的三维二次函数的计算,可得到拟合曲面的极值。

特征良好的方向性需要具备旋转不变性,这是通过计算特征点邻域像素的梯度分布特性得到的。

Step3:生成特征向量

坐标轴以特征点为方向和中心,特征向量的采样窗口为16×16 的邻域范围,将采样窗口分成16 个子块,此时每一个子块为4×4,SIFT 特征向量就是产生于子块的梯度直方图。

1.2 特征匹配

为了检测篡改图像,还需要特征匹配,该文采用g2nn 算法对提取的SIFT 特征进行匹配,依次计算两个SIFT 特征之间的欧几里得距离,如式(2)所示:

其中,图像上的特征点表示为l1和l2,特征中的分量表示为xi和yi。

此时距离向量为D={d1,d2,…,dn},循环执行2 近邻准则进行搜索,依次计算相邻欧几里得距离之间的比值,如式(3)所示:

判断某一特征点与其余特征点的匹配条件是[8]Mk<τ且Mk+1≥τ,并且满足1 ≤k≤n-2。

其中,τ表示阈值,阈值的大小会影响匹配的结果,该文设置为0.5。

2 局部搜索算法

局部搜索算法的思想可以应用到图像检测[9]。特征匹配后可以得到篡改区域,但是此时的篡改区域不完整,可以用局部搜索算法解决这样的问题。在特征匹配算法的篡改区域基础上搜索其邻域,得到更加准确的篡改区域,即原有篡改区域加上特征描述后的邻域。

局部搜索算法的邻域有固定邻域和变邻域之分,该文选用四邻域和八邻域的变邻域,分别如图1和图2 所示。

图1 四邻域局部搜索算法

图2 八邻域局部搜索算法

由图1 可知,区域a、b和c均为特征匹配后的已检测区域,则区域a的四邻域为aneighbor,即aneighbor={a0,a2,a4,a6},其中,a0表示上邻域,a2表示左邻域,a4表示下邻域,a6表示右邻域,区域b和c的四邻域类似。经过四邻域局部搜索算法后,就可得到右下角的真实篡改区域。

由图2 可知,区域a、b、c、d和e均为特征匹配后的已检测区域,则区域a的八邻域为aneighbor,其中a0表示上邻域,a1表示左上邻域,a2表示左邻域,a3表示左下邻域,a4表示下邻域,a5表示右下邻域,a6表示右邻域,a7表示右上邻域,可表示为aneighbor={a0,a1,a2,a3,a4,a5,a6,a7},区域b、c、d和e的八邻域类似。经过八邻域局部搜索算法后,就可得到右下角的真实篡改区域。

四邻域和八邻域局部搜索算法都可减少重复计算,比如图1 中的a4和图2 中的a5区域。对于每一个篡改区域都优先使用四邻域搜索,如果当前检测篡改区域不属于四邻域,则采用八邻域搜索,直至检测完最后一个篡改区域[10-11]。

3 改进的篡改区域定位算法

虽然采用四邻域和八邻域可以更好地表示篡改区域,但是仍然存在着真实篡改区域具体判定条件的问题,该文提出了一种改进的变邻域局部搜索的篡改区域定位算法。对于疑似区域(Suspected Regions,SR)的选取、邻域块的选取、合并区域(Merged Regions,MR)的具体判定条件等给予了详细说明。

改进算法的具体步骤如下:

Step1:疑似区域

超像素算法通常可应用于图像分割[12-13],超像素初始值大小的设置尤为重要,该文初始值设置为20和10,高分辨率图像设置为20,低分辨率图像设置为10。采用超像素分块的SIFT 特征匹配点可以作为真实篡改区域的疑似区域。

Step2:邻域块

采用变邻域局部搜索得到邻域块,邻域块的定义如式(4)所示:

其中,θ决定了到底采用哪一种邻域方式,θ={90°,180°,270°,360°}为四邻域,θ={45°,90°,135°,180°,225°,270°,315°,360°}为八邻域。

Step3:合并区域

合并区域指的是合并疑似区域和邻域块,但是需要一定的合并条件,即局部颜色RGB 特征的条件,如式(5)和式(6)所示:

其中,R()表示邻域块的RGB 分量的R 分量,G()表示邻域块的RGB 分量的G 分量,B()表示邻域块的RGB 分量的B分量。

其中,TRsim表示度量相似程度的阈值,该文设置为15。

Step4:形态学闭运算

此时Step3 中得到的区域还存在些许小空洞,该文采用结构元素为圆的形态学闭运算不仅可以填充出现的孔洞,还不会改变原有区域的形状。

4 仿真结果与分析

该文所采用的软件环境是Matlab 2016b。数据集是benchmark data[14],该数据集包含96 幅图像,真实图像和篡改图像各占一半,即各48 幅。

该文考虑了图像像素,采用precision、recall 和F这三个指标去分析篡改图像算法的性能[15],如式(8)-(10)所示:

其中,TP 表示正确检测的篡改像素的数目,FN表示错误检测的篡改像素的数目,FP 表示错误检测的真实像素的数目。

单纯依靠precision 指标和recall 指标是不能判断检测性能的,F 指标权衡了两个指标并加以结合,一般认为F 值的大小和算法检测性能的优劣呈正相关关系,即F 值越大越能凸显算法的优越性。

将该文算法与文献[14]算法和文献[16]算法进行对比,单区域篡改和多区域篡改的检测结果分别如图3-图5 所示,三种算法precision、recall 和F 指标的检测结果如表1 所示,可以对三种算法进行定量分析和定性分析。

表1 三种算法检测性能的比较

由图3-5 可知,文献[14]算法、文献[16]算法和该文算法检测复制篡改图像的效果各不相同。文献[14]算法会出现漏检的情况,对于图3 和图4 的篡改图像均出现检测不完整的情况,对于图5 的篡改图像的其中一个篡改区域没有检测出来;文献[16]算法的检测效果较文献[14]的检测效果更好一些,但是仍然会出现部分误检的情况,如图4 和图5 的篡改图像;与文献[14]算法和文献[16]算法相比,该文算法的检测效果是最佳的。

由表1 可知,相比较文献[14]算法和文献[16]算法,该文算法的precision、recall和F 都是最高的,其中precision 的涨幅分别为7.1%和0.8%,recall 的涨幅分别为2.5%和0.4%,F 的涨幅分别为2.6%和0.6%,与图3-图5的检测结果是一致的。这是因为文献[14]算法采用一种基于密度场的篡改图像检测算法,其中匹配算法会存在漏检的情况,并且不能实现对于多区域篡改的定位;文献[16]算法采用SURF特征算法和2近邻特征匹配算法,匹配算法会存在漏检和误检的情况,并且不能实现篡改区域定位;而该文算法采用一种改进的变邻域局部搜索算法消除特征匹配的误匹配,实现篡改区域准确定位,可以减少漏检和误检。

图3 单区域单次篡改图像

图4 单区域多次篡改图像

图5 多区域篡改图像

5 结论

该文提出一种改进的变邻域局部搜索的篡改图像检测算法。提取SIFT 特征,通过特征匹配判断图像是否经过篡改,合并满足一定相似性条件的由分块的超像素所得到的疑似区域以及改进的变邻域局部搜索算法所得到的邻域块。改进算法的检测准确率为91.1%,相较于两种主流算法,检测F 值分别提高2.6%和0.6%。该文算法对于复制篡改图像具有较高的检测准确率,对于单个篡改区域和多个篡改区域的定位效果较好。后续工作将研究在复制篡改的基础上添加尺度变换、旋转等操作的检测。

猜你喜欢

搜索算法邻域像素
像素前线之“幻影”2000
改进的和声搜索算法求解凸二次规划及线性规划
稀疏图平方图的染色数上界
“像素”仙人掌
基于邻域竞赛的多目标优化算法
ÉVOLUTIONDIGAE Style de vie tactile
关于-型邻域空间
高像素不是全部
基于汽车接力的潮流转移快速搜索算法
基于逐维改进的自适应步长布谷鸟搜索算法