基于ORB和WHT的电力视觉快速水印算法研究
2021-11-27张弢,许晶
张 弢,许 晶
(长安大学电子与控制工程学院,陕西 西安 710064)
0 引言
近几年,随着我国电力系统对智能化、自动化和安全性要求的不断提高,电网的正常运行及健康维护等工作已越来越多地需要借助智能巡检手段,并通过多种智能终端设备的可视化采集手段对某些电力设备元器件进行拍摄,产生了大量的电力视觉图像[1]。这些电力视觉样本记录着电力设备以及周边环境等各种主体及背景信息,与电力设备识别、系统故障诊断与分析等各个环节有关,对保密性有严格要求,并且需要同时保证图像的真实性和完整性,防止非法篡改和盗用。如何确保图像信息安全,对这些图像进行版权保护已成为电力领域刻不容缓的问题。数字水印技术既能够保证隐藏信息的安全性,又能够保持载体图像本身的真实性,通过与隐藏信息的匹配程度判断图像是否遭受恶意攻击,是解决电力图像的信息安全问题的一种极为有效的方法。
目前,数据水印技术已经逐步用于电力信息安全保障中[2]。文献[3]结合实际工程案例,运用小波变换将水印嵌入电网中电价记录图,保证了电力信息的安全;文献[4]提出了一种基于脊波变换的水印技术,将水印加入到电力图像的边缘曲线中,具有良好的隐藏性和鲁棒性;文献[5]提出一种基于混合变换域的数字图像水印算法,并应用到了电力系统信息安全领域。
由于电力视觉样本实时产生并采集储存,电力行业的版权保护对实时性有一定要求,但目前关于快速水印的研究较少。夏经文等[6]提出一种便携式数字水印终端的快速DCT-SVD。对载体图像进行分块并在空域中完成DCT域DC系数的计算并组成新的矩阵,再对新矩阵进行SVD分解,在兼顾便携性与鲁棒性的同时,耗时更少。
针对电力视觉样本对安全性和实时性的要求,本文提出一种基于ORB和WHT的电力视觉快速水印算法。ORB是一种快速特征点提取算法,选择ORB特征点邻域为嵌入区域,对其进行WHT变换,完成水印嵌入,对电力视觉样本进行实时、无缝式的版权保护。
1 理论基础
1.1 ORB算法
ORB(oriented FAST and rotated BRIEF)是一种快速特征点提取和描述的算法,其由2个部分组成:FAST角点与BRIEF描述子[7]。ORB算法使用图像金字塔来提取FAST角点,使其具有尺度不变性。在特征点邻域块内求取灰度质心,连接邻域块几何中心与质心得到特征主方向,使其具有旋转不变性。
FAST算法建立尺度图像金字塔,通过对图像的不同尺度空间提取特征点以达到满足尺度变化的效果。
BRISK算法具有较好的旋转不变性、尺度不变性和较好的鲁棒性等。ORB算法根据每个特征点的方向旋转对应于BRIEF描述子。对于任意方向的图像,ORB算法都能够检测到同样的特征点。
1.2 基于沃尔什哈达码变换的水印嵌入
1.2.1 沃尔什哈达码变换
沃尔什哈达码变换(WHT)[8]是沃尔什(Walsh)变换和哈达玛(Hadamard)变换的统称,属于广义傅里叶变换的范畴。它的优点是复杂度低,是一个由-1和+1组成的正交函数,被广泛用于图像处理、语音处理和滤波等[9]。
一阶和二阶Hadamard矩阵为:
H1=[1]
(1)
(2)
N阶Walsh-Hadamard矩阵为
(3)
二维图像f(x,y)的WHT变换为
(4)
二维图像的WHT逆变换为
f(x,y)=[HN]×F(U,V)
(5)
[HN]为哈达玛N阶矩阵,其大小为N×N。
1.2.2 水印嵌入
设嵌入水印的4×4的图像块为f(x,y),嵌入的数据为b={b1,b2,b3,b4},其WHT变换后为F(U,V),即
(6)
选择F(U,V)第3行和第4行来嵌入数据,矩阵只发生微小变化,能够保证嵌入后的图像质量。则第3行系数为a3i={a31,a32,a33,a34},第4行系数为a4i={a41,a42,a43,a44}。
a.求得a3i和a4i的差值di和平均值aavg。
b.根据di和bi,计算嵌入系数,规则如下:
若rem(|di|,2)=0,则
(7)
(8)
若rem(|di|,2)=1,则
(9)
(10)
c.通过比较a3i和a4i的值,确定嵌入系数e3i和e4i,公式为:
(11)
(12)
d.得到嵌入数据bi的矩阵块
(13)
e.将F(U,V)进行WHT逆变换,得到嵌入水印后的图像块,记为G(U,V)。
1.2.3 水印提取
对每一个嵌入水印后的图像块G(U,V)进行WHT变换,得到W(U,V)。
(14)
2 算法实现
2.1 算法流程
本文将ORB算法和WHT算法结合起来,转换图像颜色模型为YCbCr,加入特征点筛选模块,既能够保证嵌入水印的实时性,又能够保证其鲁棒性。本文算法流程如图1所示。
图1 本文算法流程
首先将RGB图像转换YCbCr图像,获取灰度图像。YCbCr图像分为3个分量,其中,Y为明亮度,也就是灰度值。然后利用ORB算法[7]提取特征点,再对所得特征点进行筛选优化,所得特征点的邻域作为水印的嵌入区域,保存邻域坐标信息,对各邻域进行WHT变换,嵌入水印,生成含密载体图像,再合成为YCbCr图像。最终对所得图像加入了几何变形、滤波攻击和加噪攻击来检验鲁棒性。水印提取为水印嵌入的逆过程,提取受攻击的水印信息和载体图像。
2.2 数字水印预处理
2.2.1 水印图像置乱
为消除像素空间的相关性,需要在嵌入前对水印图像进行置乱。对大小为32×32的水印图像w进行置乱,随机生成一列32×32的数组作为秘钥Key保存,水印图像转换为二进制数据,置乱后得到一个1×1024的B向量,按照32×32排列后如图2所示。
图2 原始水印图像和置乱后图像
2.2.2 提取图像分量
首先将RGB图像转换为YCbCr图像(其中,Y为亮度分量),提取其中的Y分量即灰度图像,得到图像Y,嵌入水印后再还原成YCbCr图像,这样能够降低嵌入过程的复杂度,提高嵌入速度。
2.3 特征点提取及筛选
利用ORB算法提取特征点的具体方法可参考文献[7],由于用常规ORB算法提取的特征点数量较多,并且大部分特征点密集在图像多纹理区域和灰度变化明显区域,如果将水印信息嵌入到和这些特征点相关的纹理区域,能够使人眼不易察觉,保证嵌入水印后图像的不可见性。但在图像纹理区域受到局部攻击后容易造成水印信息的丢失,为避免这样的情况发生,需要减少密集分布的特征点[9]。
考虑到以上问题和特征点邻域的重叠和超边界问题,需要对特征点进行筛选。步骤如下:
a.对载体图像Y提取ORB特征点,得到特征点集合{Hk}。
b.以{Hk}中特征点为中心选取8×8邻域。
2.4 水印嵌入
在确定水印嵌入区域后,将{blockk}的8×8区域分为4个4×4区域,在每一个4×4区域嵌入4位二进制数字。1个8×8区域可以嵌入的二进制位数为16位,分区如图3所示。
图3 嵌入水印区域
a.将要嵌入的B向量按1×4进行分组,得到行向量bi(i=256)。
b.将每一个{blockk}划分为4个4×4区域,并根据式(10)对每一个矩阵块进行Hadamard变换,得到F(U,V)。
c.求得F(U,V)第3行和第4行WHT系数的差值di和平均值aavg。
d.根据式(7)~式(10)计算出数据嵌入系数li和mi。
e.根据式(11)和式(12)确定e3i和e4i的值,并替换掉a3i和a4i的值,得到嵌入水印后的矩阵F(U,V)。
f.对F(U,V)进行WHT逆变换,得到嵌入水印后的图像块G(U,V)。
g.将G(U,V)按照特征点横纵坐标{xk}和{yk}替换载体图像Y的原图像块,嵌入完成。
2.5 水印提取
根据保存的特征点坐标{xk}和{yk},确定嵌入水印的区域和顺序,从而提取水印。
步骤如下:
a.提取嵌入水印图像的Y分量。
b.根据{xk}和{yk}确定嵌入水印区域,对每个区域进行WHT变换。
图4为提取到的水印,与原水印相同,表明水印信息无丢失,算法鲁棒性强。
图4 提取出的水印
3 实验结果分析
仿真实验采用MATLAB R2019a作为实验平台。为验证本文算法的性能,分别从不可见性、运行速度和鲁棒性3个方面进行测试。实验采用大小为512×512的Lena图像、2张电力图像作为载体图像,32×32的二值图像作为水印图像,验证本文算法对电力图像的适配性。本文采用DCT算法和WHT算法进行对比,WHT算法为修改的文献[8]算法,原文献[8]不能嵌入二值图像,为保证嵌入信息的一致性,本文对其进行了修改,并嵌入二值图像。
3.1 不可见性测试
图5为嵌入水印后的图像,上面为嵌入前图像,下面为嵌入后图像,上下图无明显变化,不可见性良好。
图5 嵌入水印前后图像对比
常用客观评价标准为图像的峰值信噪比(PSNR)。算法性能表如表1所示。
表1 算法PSNR值 dB
从表1中可看出,采用本文算法嵌入水印后的图像PSNR均大于51 dB,不可见性良好。远优于DCT算法,和WHT算法相差不大。
3.2 效率测试
由表2可知,本文算法在速率上明显优于DCT算法和WHT算法,原因是这2种方法对整个载体图像进行分块和变换,再进行嵌入,而本文算法只对特征点邻域进行变换及水印嵌入,减少了图像块变换的数量;并且本文算法没有对RGB三通道嵌入水印,而是选取YCbCr空间的灰度空间嵌入水印后再合成YCbCr图像,大大减少了运行时间,能够满足对实时性有要求的版权保护。
表2 不同算法运行时间 s
3.3 鲁棒性测试
鲁棒性测试采用归一化互相关系数(NC)来评价原始水印与提取解密水印的相似程度,NC的值越大,表示两者相似程度越大,则水印的鲁棒性越强。表3为各种攻击后提取水印的NC值。
表3 各种攻击后提取水印的NC值
如表3所示,本文算法对大部分噪声攻击和几何攻击都有较好抵抗能力,具有较好鲁棒性。尤其是几何攻击,本文算法对分散的特征点区域嵌入水印,所以裁剪后丢失的水印信息较少,提取到的水印和原水印相似度高。
4 结束语
本文采用ORB算法提取出载体图像特征点,进行筛选优化后,选择其8×8邻域作为嵌入区域。而后对嵌入区域作Hadamard变换,嵌入二值图像水印。仿真实验表明,本文算法计算复杂度低于其他方法,能够在保证运算速率的前提下,保证图像质量并且能够有效抵抗多种噪声攻击和几何攻击,能够满足电力图像版权保护对实时性和抗攻击性的要求。