加权和脆弱水印在Karhunen - Loève域的应用
1. 相关算法概述
在图像水印领域,有多种算法被提出用于实现鲁棒水印。部分算法使用了KLT(Karhunen - Loève变换)或GA(遗传算法)。
- Barni等人在开发鲁棒水印算法时,运用KLT对RGB颜色带进行去相关处理,将水印嵌入到新颜色带的离散傅里叶变换系数中,同时考虑人类视觉系统的特性,并应用Neyman - Pearson准则计算阈值以降低检测端的错误率。
- 有算法使用奇异值分解(SVD)开发鲁棒图像水印方案,利用奇异值检测块的复杂度,选择复杂度较高的块,通过修改SVD向量的两个分量插入二进制水印,并使用遗传算法调整阈值以平衡图像质量和抗攻击能力。
- 还有工作使用合作协同进化遗传算法(CCGA)选择合适的小波包基,再用CCGA选择用于计算水印嵌入系数的小波子带,该方法对一些图像处理攻击具有良好的鲁棒性。
2. Karhunen - Loève变换
线性变换是将一个空间的向量x映射到另一个空间的向量y的函数,可表示为y = Ax,其逆变换为$x = A^{-1}y$。常见的线性变换有傅里叶变换、离散余弦变换(用于JPEG标准)、沃尔什变换和哈达玛变换,这些变换在向量大小确定时,变换核是固定的。
而KLT是一种变换核不固定的线性变换,其变换核的计算步骤如下:
1. 计算平均向量$m = E{x}$;
2. 推导协方差矩阵$C = E{(x - m)(x - m)’}$;
3. 计算C的特征向量,并按其关联特征值的非递增顺序排列成变换核矩阵A的行。
对向量z进行KLT变换的公式为$y = A (z - m)$,其中y的分量称为变换系数,每个系数的位置称为系数的阶。从y通过逆KLT变换可得到z:$z = A^{-1}y + m$。将图像划分为大小相同的连续不重叠块并视为向量,就可以从任何图像中导出KLT核。
3. 遗传算法
遗传算法(GA)是一种模拟生物个体向“最优”进化的计算范式。当问题的解可以编码为一组参数时,这些参数的不同实现构成个体种群,通过遗传算子进行进化。
GA的工作流程如下:
1. 初始化:随机生成具有预定义大小的个体种群。
2. 迭代进化:在有限的代数或时期内,对个体进行交配和变异以生成新个体。每个个体根据适应度函数进行评估,该函数表达了其编码解的质量。
3. 选择繁殖个体:在每个时期,从种群中选择一定数量的个体进行繁殖,可使用多种选择方法,如锦标赛选择。
4. 交叉操作:以概率$p_c$应用交叉算子,交换交配个体的随机参数子集,产生两个新后代。
5. 变异操作:每个新后代有概率$p_m$随机修改其一个参数,以扩大解空间的探索范围。
6. 评估与更新种群:新个体根据适应度函数评估后插入种群,可使用部分或全部替换旧种群、锦标赛选择等策略。
7. 终止条件:达到最大代数或最佳个体的适应度在一定代数内不再提高时,进化停止。
4. 提出的算法(WS - KLT)
WS - KLT算法可应用于任何位图格式的图像$I_h$,生成包含脆弱水印的图像。水印由从宿主图像$I_h$和秘密密钥图像$I_k$提取的特征计算得出,秘密密钥图像定义了插入水印(位串)的隐藏KLT空间。该算法由五个模块组成:
模块1:基图像生成
将密钥图像$I_k$划分为大小为$n×n$的连续不重叠块,将这些块视为向量的随机域,从中计算Karhunen - Loève基。此模块对于每个使用的密钥图像只需执行一次。
模块2:水印生成
二进制水印从密钥图像$I_k$的固定像素集$O_k$(四个像素)获得。$O_k$中像素的值作为索引指向宿主图像$I_h$的像素,形成集合$P_h$;$P_h$中的像素又作为索引指向$I_k$的像素,得到集合$P_k$。以$P_k$中像素的值作为密码哈希函数(如SHA - 3)的种子,多次调用该函数生成所需长度的水印W。为让验证者计算相同的水印,插入算法不会修改此步骤中使用的$I_h$的像素,建议该集合保持较小(如2或4个像素)。
模块3:水印插入
这是算法的核心模块。将$I_h$划分为大小为$n×n$的连续不重叠块,每个块插入s个水印位,水印长度为$s×N×M/n^2$。每个s位的水印部分插入从子图像提取的一组KLT系数中。插入过程如下:
1. 将s位水印视为二进制数字,表示范围在$[0, 2^s - 1]$的数字L。
2. 计算所选系数$c_1, c_2, …, c_u$的加权和$L’ = (\sum_{i = 1}^{u}i×[c_i]) mod 2^s$,其中$[c_i]$表示$c_i$的整数部分。
3. 若$L’ = L$,则系数已包含水印,无需操作;若$L’ ≠ L$,使用遗传算法修改子图像的像素,使KLT系数能够正确提取水印位。
4. GA进化的个体是$n×n$像素强度修改向量,通常为±1或±2灰度级(多数为0)。GA通常运行最大代数,但找到可行解时可提前终止。个体适应度函数引导GA寻找更好的解,同时考虑修改后子图像相对于原始子图像的失真。
插入水印位编码为数字L的子图像$S_i$的步骤如下:
1. 对$S_i$的像素应用修改(由GA个体表示),得到$S_i^m$;
2. 从$S_i^m$计算KLT系数,然后根据所选系数计算加权和得到$L’$;
3. 若$L = L’$且失真低,则停止并处理下一个子图像;否则返回步骤1。
模块4:水印提取
水印提取在插入模块(GA适应度函数中检查子图像是否有效存储水印位)和验证模块中都有使用,需要密钥图像来导出KLT基。将水印图像划分为大小为$n×n$的子图像,从每个子图像的所选KLT系数中根据公式(3)提取水印位,所有子图像水印位的拼接即为提取的水印$W_e$。
模块5:篡改检测/验证
将提取的水印$W_e$与应包含的水印W(可按模块2的步骤计算)进行比较,相同位置的位值不同表示子图像被篡改,因为像素的改变会导致KLT系数的变化。
5. 实验结果
为评估WS - KLT水印图像的质量,对1000张256×256像素、256灰度级(8 bpp)的真实灰度图像插入每8×8像素块8位的水印,计算平均PSNR(峰值信噪比)和SSIM(结构相似性指数)及其标准差。GA参数设置为默认值(种群大小 = 100,$p_m = 0.04$,$p_c = 0.9$,若最佳个体适应度在最后10代稳定则终止)。
同时运行其他算法在相同的1000张图像上,得到的性能对比如下:
| 水印方案 | PSNR (dB) | SSIM |
| — | — | — |
| Yeung和Mintzer | 46.06 ± 0.30 | 0.992 |
| Ho等人 | 35.64 ± 1.84 | 0.898 |
| Rawat和Raman | 51.14 ± 0.01 | 0.997 |
| Oktavia和Lee | 51.14 ± 0.01 | 0.997 |
| Lin等人 | 58.06 ± 13.96 | 0.999 |
| Botta等人 | 53.12 ± 0.14 | 0.998 |
| WS - KLT | 60.02 ± 0.06 | 0.999 |
从表中可以看出,WS - KLT在PSNR和SSIM方面的质量优于其他算法。不过,Lin等人的算法标准偏差很大,部分图像的PSNR高于WS - KLT,但部分图像则较差。不同算法嵌入的水印位数也有所不同,[5]、[7]和[8]每个像素嵌入1位,[3]、[6]和WS - KLT每64像素块嵌入8位,[4]每128像素块嵌入8位。
6. 算法灵活性分析
WS - KLT将水印插入变换空间而非像素空间,比Lin等人的方法更灵活。在Lin等人的算法中,每个块插入的水印位数与块大小密切相关,插入s位水印,块大小必须为$2^s - 1$像素。而在WS - KLT中,在$2^s - 1$个系数的块中,可插入多达$2^s - 1$个水印位(每个系数1位),无需改变块大小。
例如,当块大小为64($2^6$)个系数时:
- 当$s < 7$,选择$2^s - 1$个系数计算加权和。
- 当$s = 7$,使用所有64个系数。
- 当$s > 7$,可将KLT系数划分为两个或更多不相交的组,在每个组中存储水印的不同部分。如$s = 12$,将64个KLT系数分为两组,每组32个系数,分别存储6位水印。
与Lin等人的算法相比,在1000张256×256像素的图像中插入12288位水印,Lin等人的算法PSNR为48.84 ± 12.8 dB,而WS - KLT为57.41 ± 0.06 dB。
7. 篡改检测能力分析
Lin等人的算法使用较小的块大小(25像素),在篡改定位能力上优于WS - KLT。但该算法存在设计缺陷,攻击者可通过将块中的第一个像素加2,第二个像素减1来成功篡改图像而不被检测到。
WS - KLT的检测能力取决于用于计算加权模和的系数数量以及图像块篡改对这些系数的影响。改变块中单个像素的值可能会改变多个所选系数的值,由于系数空间是秘密的,攻击者无法预测篡改是否会被检测到。
通过对块中单个像素进行±1和±2灰度级的修改并检查篡改是否被检测,计算出WS - KLT对±1像素值修改检测到约83%的篡改块,对±2像素值修改检测到约97%的篡改块。这些实验评估了算法在仅改变单个像素时的检测性能,而实际的典型攻击(如全局图像处理、局部操作等)通常会改变多个像素,检测性能可能更高。例如,对JPEG有损压缩(不同质量级别:85、90、95、100)的检测,使用JPEG或JPEG2000标准,WS - KLT检测到99.998%的篡改块。
为提高检测百分比,可增加每个块插入的水印位数(但会轻微降低图像质量)或使用更多系数。使用更多系数可轻松实现,甚至可使用块中的所有系数计算加权模和,此时在每64像素块插入8位水印的情况下,对±1像素值修改的检测能力可提高到99.49%。
8. 结论
WS - KLT算法是一种优雅的位图图像脆弱水印算法,通过扩展先前的工作并采用新的插入函数,将二进制水印插入由秘密密钥图像定义的KLT空间的某些系数中。由于水印和插入空间依赖于秘密密钥(图像),该方法具有很强的安全性,攻击者在未获取秘密图像的情况下,无法计算水印位或确定包含水印的系数值。在需要低带宽传输认证密钥(如实时应用)或密钥存储空间有限(如智能卡应用)的情况下,可使用由秘密随机种子生成的密钥图像。与其他算法相比,WS - KLT对像素篡改更敏感,PSNR更高,计算时间更短(16.11 ± 0.3s)。
加权和脆弱水印在Karhunen - Loève域的应用
9. 算法优势总结
WS - KLT算法在图像水印领域展现出了多方面的显著优势,以下进行详细总结:
-
安全性高
:水印和插入空间依赖于秘密密钥图像,攻击者在未获取该图像时,难以计算水印位或确定包含水印的系数,大大增强了算法的安全性。在需要低带宽传输认证密钥(如实时应用)或密钥存储空间有限(如智能卡应用)的场景中,还可使用秘密随机种子生成密钥图像,进一步提升了算法在不同应用场景下的安全性和灵活性。
-
图像质量好
:从实验结果来看,WS - KLT的PSNR和SSIM指标均优于其他对比算法。PSNR值越高,说明图像失真越小;SSIM值越接近1,表明图像与原始图像的结构相似性越高。这表明WS - KLT在嵌入水印的同时,能较好地保持图像的质量。
-
灵活性强
:与Lin等人的算法相比,WS - KLT不受块大小与水印位数严格关联的限制。在不同的水印位数需求下,可通过灵活选择系数分组的方式来实现水印嵌入,而无需改变块的大小,这种灵活性使得算法在实际应用中能更好地适应各种场景。
-
篡改检测能力较好
:虽然在篡改定位能力上,Lin等人的算法因使用较小块大小有一定优势,但WS - KLT的检测能力也较为出色。通过对单个像素修改的实验以及对常见图像处理攻击(如JPEG有损压缩)的测试,都显示出WS - KLT能有效检测出图像的篡改情况。并且,通过增加水印位数或使用更多系数,还可进一步提高检测能力。
-
计算效率高
:WS - KLT具有较低的计算时间(16.11 ± 0.3s),这使得它在处理大量图像时,能够更高效地完成水印嵌入和检测任务,适用于对处理速度有较高要求的应用场景。
10. 算法流程回顾
为了更清晰地理解WS - KLT算法的整体运作过程,以下通过mermaid流程图进行展示:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(基图像生成):::process --> B(水印生成):::process
B --> C(水印插入):::process
C --> D(水印提取):::process
D --> E(篡改检测/验证):::process
subgraph 准备阶段
style 准备阶段 fill:#ffffff,stroke:#000000,stroke-width:1px
A
end
subgraph 水印嵌入阶段
style 水印嵌入阶段 fill:#ffffff,stroke:#000000,stroke-width:1px
B
C
end
subgraph 验证阶段
style 验证阶段 fill:#ffffff,stroke:#000000,stroke-width:1px
D
E
end
整个算法流程可分为三个主要阶段:
1.
准备阶段
:通过基图像生成模块,从密钥图像计算Karhunen - Loève基,为后续水印嵌入和提取提供基础。
2.
水印嵌入阶段
:先根据宿主图像和密钥图像生成水印,然后将水印插入到宿主图像的KLT系数中。在水印插入过程中,使用遗传算法寻找最优的像素修改方案,以确保水印能正确嵌入且图像失真较小。
3.
验证阶段
:从水印图像中提取水印,并与应包含的水印进行比较,以检测图像是否被篡改。
11. 应用场景分析
WS - KLT算法凭借其独特的优势,在多个领域具有广泛的应用前景:
-
版权保护
:在数字图像版权保护方面,WS - KLT可将版权信息作为水印嵌入到图像中。由于算法安全性高,攻击者难以去除或篡改水印,从而有效保护图像的版权归属。当发生版权纠纷时,可通过提取水印来证明版权所有者的身份。
-
图像认证
:在需要对图像真实性进行验证的场景中,如新闻图片、医学图像等,WS - KLT的篡改检测能力可发挥重要作用。通过检测图像是否被篡改,确保图像的原始性和可靠性,避免虚假信息的传播。
-
实时监控
:对于实时监控系统中产生的大量图像,WS - KLT的计算效率高和对像素篡改敏感的特点使其非常适用。能够在短时间内完成水印嵌入和检测任务,及时发现图像中的异常篡改情况,保障监控系统的正常运行。
-
智能卡应用
:在智能卡存储图像的场景中,由于存储空间有限,WS - KLT可使用由秘密随机种子生成的密钥图像,减少密钥存储的空间需求。同时,其高安全性和良好的图像质量保证了智能卡中图像信息的安全和可用性。
12. 未来改进方向
尽管WS - KLT算法已经取得了较好的效果,但仍有一些方面可以进一步改进和优化:
-
进一步提高篡改定位能力
:虽然WS - KLT在篡改检测方面表现良好,但在篡改定位的精度上还有提升空间。可以研究更精细的系数选择和水印嵌入策略,以更准确地定位图像中被篡改的区域。
-
优化遗传算法参数
:遗传算法在水印插入过程中起着关键作用,其参数的设置会影响算法的性能。可以通过更深入的实验和优化算法,找到更适合不同图像和水印需求的遗传算法参数,提高算法的效率和准确性。
-
增强对复杂攻击的抵抗能力
:随着攻击技术的不断发展,WS - KLT需要进一步增强对各种复杂攻击的抵抗能力。例如,研究针对新出现的图像篡改技术的应对策略,提高算法的鲁棒性。
-
拓展多模态应用
:目前算法主要应用于灰度图像,可考虑将其拓展到彩色图像、视频等多模态数据的水印处理中,以满足更广泛的应用需求。
13. 总结
WS - KLT算法是一种在图像水印领域具有创新性和实用性的算法。它结合了Karhunen - Loève变换和遗传算法的优势,在安全性、图像质量、灵活性、篡改检测能力和计算效率等方面都表现出色。通过对算法的详细分析和实验验证,我们看到了它在多个应用场景中的潜力。同时,针对算法存在的不足提出的未来改进方向,为进一步提升算法性能和拓展应用范围提供了思路。相信在未来的研究和实践中,WS - KLT算法将不断完善,为数字图像的安全和认证提供更有力的支持。
通过以上对WS - KLT算法的全面介绍,希望能让读者对该算法有更深入的了解,并为相关领域的研究和应用提供有价值的参考。
WS - KLT算法:图像水印领域新方案
超级会员免费看
2086

被折叠的 条评论
为什么被折叠?



