注意力机制和自编码器构造的零水印算法①

2022-09-20 04:11李西明蔡河鑫陈志浩杜治国吕红英
计算机系统应用 2022年9期
关键词:鲁棒性编码器卷积

李西明, 蔡河鑫, 陈志浩, 马 莎, 杜治国, 吕红英

1(华南农业大学 数学与信息学院, 广州 510642)

2(华南农业大学 电子工程学院, 广州 510642)

随着科学技术的发展, 数字媒体已经得到广泛应用, 越来越多的数字产品在网络中传播, 但是, 科技给人们带来便利的同时, 也给数字产品的信息安全和版权保护带来了日益严峻的问题. 为了保护数字信息的安全问题以及版权问题, 研究人员提出了数字水印[1-3].数字水印技术是一种安全可靠的方案, 同时也是信息安全领域研究的一个热点. 然而在当时, 传统数字水印算法存在算法透明性和鲁棒性之间矛盾的问题, 原因有二: 透明性意味着需要嵌入较弱的水印信号; 而更强的水印信号则可以提高算法的鲁棒性. 为了解决这个问题, 温泉等人[4]提出了零水印的概念, 零水印的思想是利用原始载体图像的内部特征进行构造水印, 而不需要修改载体图像的信息, 这保证了原始载体图像的完整性. 零水印被提出来后, 也成为了研究的热点之一.郝世博[5]结合了离散小波变换和奇异值分解, 通过比较特征矩阵的每一个系数与特征矩阵均值的大小关系来构造零水印信息, 然而该算法对于旋转攻击的鲁棒性较差. 张海涛等人[6]提出的基于超混沌的图像零水印算法解决了零水印鲁棒性不高的问题, 但是对于噪声攻击的鲁棒性较差. 为了解决该问题, 文献[7]和文献[8]都提出了相应的解决方案, 文献[7]结合离散小波变换和奇异值分解来构造特征矩阵; 文献[8]则结合张量展开、奇异值分解和离散余弦变换来构造图像的特征矩阵. 以上的工作都是使用传统的人工方法进行提取特征, 而且提取的是图像的几何特征, 然而神经网络却可以模拟人类视觉机制, 从而提取到图像的视觉特征. 此外, 若算法需要改进, 传统方法可能需要付出更多的努力去探索更优化的方法, 基于神经网络的方法则只需要对神经网络的结构参数进行修改并进行重新训练.然而, 目前对于利用神经网络进行图像特征提取的零水印方案并没有得到广泛的研究. Fierro-Radilla等人[9]提出利用卷积神经网络(convolutional neural network,CNN)提取的特征来构造特征矩阵, 虽然该算法可以抵抗多种攻击和常见的图像处理, 然而卷积神经网络本身也存在缺陷: 一是对于传统CNN来说, 图像中的权值都是一样的; 二是图像中可能存在的干扰会影响卷积神经网络的分类结果, 这是通过影响卷积神经网络对特征的提取所致, 这也是卷积神经网络容易受到对抗样本攻击的可能原因. 目前, 提高模型稳健性的方法有3类: 对抗训练、修改模型和添加模型. 基于对抗训练[10]的防御方法在训练过程中加入新的对抗样本, 使得神经网络能够更好地了解对抗样本的特征, 提高了模型的鲁棒性.

人类视觉注意力机制可以帮助人们快速聚焦目标物体的关键特征, 而忽略次要特征[11-14], 引入注意力机制理论上也能使神经网络在图像关键区域投入更多的注意力. 受以上思想的启发, 本文提出了一种基于注意力机制和卷积自编码器的零水印算法, 利用卷积自编码器重构数据的能力来提取图像特征, 并结合注意力机制实现对关键特征的稳健提取, 训练过程中采用对抗训练, 增强了模型的鲁棒性, 实验表明, 本文算法在受到多种已知攻击的情况下仍能提取图像的稳健特征.

1 理论知识

1.1 自编码器

传统自编码器的概念最开始是由Rumelhart等人[15]提出的, 随后, Bourlard等人[16]对自编码进行了详细的解释. 早期, 关于新型自编码器提出的进展还比较缓慢, 并且该编码器还只是单层, 到了2010年, Vincent等人[17]又提出了深度去噪自编码器. 紧接着, 卷积自编码器[18]、变分自编码器[19]、循环自编码器[20]相继被提出.

自编码器是一种无监督学习的人工神经网络, 主要应用于数据降维和特征学习. 它可以给出比原始数据更好的特征描述, 此外, 它具有较强的特征学习能力.自编码器包括两部分: 一个是编码器, 一个是解码器.编码器从原始输入数据提取特征, 而解码器则从特征信息中重建原始输入数据, 并且使得构建的数据尽可能的等于原始数据.

典型的3层自编码器如图1所示, 它由输入层、输出层和一个隐藏层组成. 输入层用于原始数据的输入, 输出层用于输出特征数据经重构后的数据, 而隐藏层用于特征提取. 输入层和输出层的神经元个数相等,隐藏层的神经元个数少于输入层和输出层神经元个数.自编码器通过简单的学习能够使得输出尽可能复制输入, 但重构后的数据与原始数据存在一定的误差. 要使得输出尽可能地等于输入, 则要求隐藏层提取的原始数据特征要更具代表性.

图1 典型3层自编码器

设编码器函数用encoder表示, 解码器函数用decoder表示, 编码器函数提取到的数据特征为feature,即数据特征, 输入数据用x表示, 输出数据用 x′表示. 编码器的作用是将输入数据x变换成数据特征feature,而解码器是将feature转换成输出数据 x′, 整个编码器训练过程就是不断调整参数, 使得 x′尽可能接近x. 自编码器可以用图2表示.

图2 自编码器工作图

1.2 卷积注意力机制

注意力机制是模拟人类视觉而提出的, 它不仅能告诉网络模型需要注意什么特征, 而且也能增强特定区域的表征, 过滤不重要的信息. 本算法使用的注意力模块基于卷积注意力模块(convolutional block attention module, CBAM), 是由Woo等人[21]首次提出的, 该方案不同于通道注意力机制[22], 能显著提升模型的特征表达能力.

如图3所示, 给定一个中间特征图F作为输入,CBAM依次经过通道注意力模块和空间注意力模块.首先是通道注意力模块. 将中间特征图F对每个通道进行最大池化和平均池化得到最大池化特征 Fmax和平均池化特征Favg. 然后将二者分别输入到含有一个隐藏层的多层感知机(multilayer perceptron, MLP)中, 使用元素求和法来合并输入的特征向量, 最后经过激活函数得到通道注意力 Mc(F). 通道注意力的计算过程如式(1):池化特征图:∈R1×H×w和∈R1×H×w. 然后这两个特征图通过一个标准的卷积层和Sigmoid函数后生成二维空间注意力图 Ms(F′). 空间注意力计算过程可以用式(2)进行表示:

图3 卷积注意力模块

最后, 进入空间注意力模块. 先沿着通道轴应用平均池化和最大池化操作, 生成平均池化特征图和最大

其中, AvgPool(F)表示平均池化, MaxPool(F)表示最大池化, σ表示Sigmoid函数, f7×7表示卷积核尺寸为7×7的卷积运算. 整个卷积注意力模块的过程可以用式(3)来进行概括:

其中, ⊗表示按元素计算的乘法.

2 AMAE架构设计

本节介绍了基于注意力机制和自编码器的网络架构的详细设计, 同时说明了训练过程.

2.1 网络架构描述

本实验的目标是设计一个能够提取稳健图像特征的网络架构, 这也意味着我们设计的网络需要具备抵抗噪声干扰等的能力, 该网络架构是基于自编码器提出的. 自编码器具有重构数据的能力, 能够很好地提取数据的特征, 此外, 相对于传统的图像特征提取的方法,卷积神经网络可以更好地提取图像的特征, 所以本实验用卷积层和池化层代替了传统自编码器的全连接层,而由于加了干扰的图片会影响卷积神经网络的特征提取, 再加上卷积神经网络也无法聚焦在图片的关键特征上, 所以我们需要让卷积自编码器能够将注意力更多地关注于关键特征, 从而保证算法的稳健性. 综上,我们在卷积自编码的基础上加入注意力机制, 这可以让网络过多关注图片的关键特征, 而忽视图片上存在的类似于噪声的无关特征.

网络的架构图如图4所示, 分为注意力机制编码器和注意力机制解码器两部分.

图4 网络架构图

注意力机制编码器: 将大小为 (N,C,H,W)的数据input输入到编码器中, 首先是经过一个包含卷积核大小为( 3,3)的卷积层Conv1, 然后将其输入到注意力模块中, 输出具有显著特征的掩膜图像 T1, 大小为(N,32,112,112), 紧接着再经过3层卷积层和最大池化层, 分别是Conv2、Maxpool1、Conv2、Maxpool1、Conv2、Maxpool1, 变为 ( N,16,56,56)的 张量T 2. 最后将T 2输入到解码器.

注意力机制解码器: T 2先经过采用了最近邻算法的上采样Upsample1和卷积核大小为 ( 3,3)的卷积层Conv5得到大小为( N,16,112,112)的 张量T 3, 再经过采用了最近邻算法的上采样Upsample1和卷积核大小为(3,3) 的 卷积层Conv6得到大小为( N,16,224,224)的张量 T4 , 最后经过一层卷积核大小为( 3,3)的卷积层Conv7实现数据的复原, 得到output. 网络的结构参数如表1.

表1 网络参数表

2.2 训练过程

为了提高网络模型的鲁棒性, 我们在训练网络的时候借鉴了对抗训练的思想, 目标是使用随机初始化的权重来训练一个具有鲁棒性的网络模型, 实验中添加的扰动权重值在0-1之间随机选取, 添加扰动后的图像样本如图5所示, 训练集由原始数据集和添加扰动的数据集组成, 并且随着迭代次数的增加, 扰动数据集数量也会随之增加.

图5 扰动样本生成图

网络训练的最终目的是使输入无限接近于输出,详细的训练过程如下: 训练集合D上的数据x, y为模型的输出, 网络的损失函数为 L (x,y,θ), 本实验使用的是交叉熵函数, θ为网络模型的参数, Δ x为扰动. 训练的前将扰动 Δ x 加入到部分数据 x中, 并随着迭代次数的增加, 添加扰动的数据比例会上升, 其目标是使得L(x+Δx,y,θ)越来越大, 也就是说该扰动尽可能让神经网络重构后的数据与训练集数据差别越来越大. 在利用原始样本都构造出 x +Δx扰动样本后, 训练的目标就是利用梯度下降法来找到能够最小化网络输出和输入差E(x,y)∼D[L(x,y,θ)]的合适参数.在不断的迭代过程中,持续地优化参数, 整个优化过程中是最大化和最小化交替执行, 详细公式如式(4). 此过程类似于生成式对抗网络(generative adversarial networks, GAN), 然而也不同于GAN, 因为该训练过程的输入扰动过程为最大化过程, 调整参数为最小化过程.

该模型是在ImageNet数据集上进行训练, 迭代次数为100次, 训练步长为0.001, 该网络训练的损失值变化如图6所示, 可见随着训练迭代次数的增加, 损失值逐渐下降, 并在迭代次数大于20后, 趋于稳定, 可以见得本方案的模型训练速度很快, 很快就达到拟合状态.

图6 损失值变化图

其中, Ω为扰动空间.

3 AMAE零水印算法

本节给出基于注意力机制和自编码器的零水印算法的详细说明.

3.1 零水印算法描述

自编码器的零水印算法分为零水印的构造和水印的提取两部分. 水印构造包括3个步骤, 分别是提取图像特征、获取二值矩阵、构造零水印. 水印提取包括3个步骤, 分别是获取待测图像特征、获取二值矩阵、恢复水印.

3.1.1 水印构造

该部分从宿主照片提取特征构造零水印, 如图7(a)所示, 包括以下步骤, 如算法1所示.

算法1. 零水印构造算法1)提取图像特征(3,224,224)(16,56,56)(56,56) (224,224)A当基于注意力机制的卷积自编码器训练好后, 该网络便能够提取图像的稳定特征, 我们利用编码器的输出来构造图像的特征, 将一张需要提取特征的大小为 的图像输入到编码器, 从网络架构图中可以看出, 编码器的输出大小为 , 也就是16张大小为的特征图, 再将这16张特征图融合成大小为 的特征图 , 如图8(a), 融合策略如下:(56,56)(224,224) F1,F2,F3,F4 A首先将特征图标号为1, 2, …, 6, 然后每4张大小为 特征图拼接成大小为 的特征子图 , 最后利用式(5)进行加权融合得到最终的特征图.

A=4∑i=1 1 4Fi (5)2)获取二值矩阵A Ax,y A T C利用矩阵 的每个元素的值 与矩阵 的均值 的大小关系构造二值矩阵 , 如式(6)所示.Cx,y=■■■■■■■■■1, ifA′x,y>T 0, otherwise (6)3)构造零水印C W M M M将矩阵 与水印图像矩阵 进行异或运算得到零水印 , 紧接着, 零水印 在知识产权信息数据库进行注册, 使版权信息得到保存. 一般认为, 一旦零水印得到注册, 也意味着该载体图像处于水印技术的保护中, 当发现有侵权现象时, 可取出零水印进行版权认证, 从而实现对自己的图像所有权的保护. 的计算方法如式(7)所示:M=XOR(C,W)(7)

3.1.2 水印提取

水印的提取即为水印构造的逆过程, 如图7(b)所示, 包括以下步骤, 如算法2所示.

图7 零水印算法图

算法2. 零水印提取算法1)获得待测图像特征A′将待检测载体图片作为自编码器输入, 然后取编码器输出构造载体图片特征矩阵 .2)获取二值矩阵A′ A′x,y A′ T′C′利用矩阵 的每个元素的值 与矩阵 的均值 的大小关系构造二值矩阵 , 如式(8)所示.Cx,y=■■■■■■■■■1, if A′x,y>T 0, otherwise (8)3)恢复水印C′ M W′将矩阵 与零水印 进行异或运算得到所恢复的水印图像 , 如式(9)所示.W′=XOR(C′,M)(9)

3.2 实验结果分析

本文实验是在PyCharm实验平台上进行仿真, 并利用PyTorch框架进行编码实现. 在本文的零水印算法中,引入归一化相关系数NC, 它是衡量提取到的水印图像与原始水印图像之间相近程度的一个度量工具, NC 值的范围在0到1之间, 该值越接近于1, 表明提取出来的水印越接近原始水印, NC值的计算方法如式(10)所示.

其中, W 是指原始水印图, W′指的是从待测载体图像上提取出来的水印图像.

本实验使用的水印图片和载体图片如图8(b)与图8(c)所示.

图8 特征图、水印图和载体图

3.2.1 鲁棒性分析

本文分别对载体图像进行不同种类和不同强度的攻击, 攻击样例图如图9, 并计算不同的NC值, 实验结果如表2所示.

图9 攻击样例图

从表2可知, 载体图片不管是受到几何攻击还是非几何攻击, 提取出的水印的NC值均超过0.9, 由此可见, 该算法能很好地抵抗多种攻击, 具有良好的鲁棒性.

表2 待测图像攻击后提取出的水印的NC值

3.2.2 实验对比分析

(1)神经网络实验对比分析

为了验证本模型的有效性, 我们做了3组对比实验. 分别是: 对抗训练与正常训练情况下的对比, 训练集减半情况下的对比, 添加注意力机制与不添加注意力机制的对比, 实验所得的NC值分别对应于表3中的NC1、NC2和NC3.

表3 NC 值对比

从实验结果来看, 不加注意力机制和不进行对抗训练的模型在抵抗攻击的时候并没本论文提出的模型表现得好, 这也体现出本实验提出的模型的有效性, 此外, 减半数据集后的实验结果相较于完整数据集的结果, NC值相差在0.01以内, 这也说明了本方案小数据集上, 也可以得到良好的零水印.

(2)零水印算法实验结果对比

本文结合注意力机制和编码器的输出来构造特征矩阵, 文献[23]在小波变换域提取的低频区域进行分块的奇异值分解, 再利用分块的最大奇异值来构造特征矩阵, 文献[24]则是选择在时域上使用非均匀NURP来进行特征矩阵的构造, 不同方法的实验结果如表4所示.

从表4可知, 在抵抗噪声攻击方面, 文献[23,24]的性能明显比本文实验差, 尤其是在抵抗高斯噪声方面, 本实验比文献[24]的NC值高了近0.1. 此外, 从整体来看, 本文实验的NC值普遍都要比文献[23,24]的高, 而且均在0.9以上, 通过对比实验可以得出本文算法的鲁棒性更强.

表4 不同文献NC 值对比

4 结论与展望

结合卷积注意力模块和卷积编码器, 提出了一种用于构造零水印的深度注意自编码器模型, 该算法利用卷积自编码器重构数据的能力对图像特征进行提取,并结合注意力机制, 对关键位置给予更多的关注, 忽视了类似于噪声等攻击的无关特征. 在训练的过程中, 结合对抗训练, 进一步提高了模型的鲁棒性, 从而保证了图像特征的稳定提取. 实验结果表明, 在载体图片受到几何攻击和非几何攻击下所提取出的水印NC值均在0.9以上, 该算法具有很好的鲁棒性. 是否添加注意力机制、是否减半数据集和是否进行对抗训练等3个不同的对比实验可以证明提出的自编码器模型的有效性,从与传统方法的实验结果对比, 可以发现, 相较于传统方法, 该算法鲁棒性更好.

猜你喜欢
鲁棒性编码器卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于ResNet18特征编码器的水稻病虫害图像描述生成
基于图像处理与卷积神经网络的零件识别
武汉轨道交通重点车站识别及网络鲁棒性研究
基于深度卷积网络与空洞卷积融合的人群计数
卷积神经网络概述
基于TMS320F28335的绝对式光电编码器驱动设计
一种基于三维小波变换的鲁棒视频水印方案
电子节气门非线性控制策略
基于鲁棒性改进理论的大面积航班延误治理分析