🥭写在前面: 2024 年的 CCF-B,结合离散小波变换和奇异值分解。
1 Background
图像水印的嵌入与提取流程如下图所示:
该过程首先由水印嵌入算法启动,它需要原始图像、水印以及一个密钥。通信通道用于传输水印图像,随后该图像可能会经历多种形式的攻击。当需要提取水印时,使用相同的密钥和与嵌入过程相反的算法,从经过攻击的水印图像中恢复出水印。
注意:原始图像就是指图中的宿主 H o s t \mathsf{Host} Host 图像。水印是指 W a t e r m a r k \mathsf{Watermark} Watermark 图像,水印图像是指 W a t e r m a r k e d \mathsf{Watermarked} Watermarked 图像,请注意区分😇
2 Theoretical Background
该部分介绍了 A r n o l d \mathsf{Arnold} Arnold 映射 ( m a p ) \mathsf{(map)} (map)、离散小波变换 ( D W T ) \mathsf{(DWT)} (DWT) 和奇异值分解 ( S V D ) \mathsf{(SVD)} (SVD) 技术的初步概念。
2.1 Arnold Map
A r n o l d \mathsf{Arnold} Arnold 映射是一种对相邻像素进行迭代置乱 s c r a m b l e \mathsf{scramble} scramble 的加密技术。如果 I I I 是一个 N N N 阶的二维图像,那么它的像素表示 p i x e l r e p r e s e n t a t i o n \mathsf{pixel\ representation} pixel representation 可以写成:
P = { ( x , y ) ∣ x , y = 0 , 1 , 2 , . . . , N − 1 } P=\{(x,y)\ |\ x,y=0,1,2,...,N-1\} P={(x,y) ∣ x,y=0,1,2,...,N−1}
置乱后可写为:
P ′ = { ( x ′ , y ′ ) ∣ x ′ , y ′ = 0 , 1 , 2 , . . . , N − 1 } P'=\{(x',y')\ |\ x',y'=0,1,2,...,N-1\} P′={(x′,y′) ∣ x′,y′=0,1,2,...,N−1}
个人理解: ( x , y ) (x,y) (x,y) 就是一个像素的位置,经过 A r n o l d \mathsf{Arnold} Arnold 映射后,这个像素的位置变为 ( x ′ , y ′ ) (x',y') (x′,y′)。由于图像的大小为 N × N N\times N N×N,因此像素的行和列位置只可能在 0 0 0 到 N − 1 N-1 N−1 之间。
A r n o l d \mathsf{Arnold} Arnold 置乱变换可以表示为如下形式:
[ x ′ y ′ ] = [ 1 1 1 2 ] [ x y ] m o d N \begin{bmatrix} x' \\ y' \end{bmatrix}= \begin{bmatrix} 1 & 1\\ 1 & 2 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \ mod\ N [x′y′]=[1112][xy] mod N
其中, x x x 和 y y y 表示宿主图像的像素坐标,而 x ′ x' x′ 和 y ′ y' y′ 表示对宿主图像实施 A r n o l d \mathsf{Arnold} Arnold 变换后得到的像素坐标。 A r n o l d \mathsf{Arnold} Arnold 变换通过对宿主图像进行分散处理,保障了即便原图遭受损坏,嵌入的隐藏信息仍能保持均匀分布。这样的处理提高了隐藏图像的信赖度、鲁棒性和安全性。在我们的研究方法中,我们采用 A r n o l d \mathsf{Arnold} Arnold 映射技术来确保水印图像的安全性。
更多内容可以参考:数字水印 | Arnold 变换的 Python 代码实现
2.2 Discrete Wavelet Transform (DWT)
离散小波变换(DWT)通过对信号进行离散小波分解,将这些信号分解为离散采样的小波系数。与仅在频域上操作的傅里叶变换相比,DWT 同时在频率和时域上操作,因而具有明显的优势。DWT 广泛应用于图像压缩、信号处理、噪声消除等多个领域。
DWT 将宿主图像分解为四个不同的子带:低频-低频 ( L L ) \mathsf{(LL)} (LL)、低频-高频 ( L H ) \mathsf{(LH)} (LH)、高频-低频 ( H L ) \mathsf{(HL)} (HL)、高频-高频 ( H H ) \mathsf{(HH)} (HH)。其中, L L \mathsf{LL} LL 子带包含了图像的近似部分,而 L H , H L , H H \mathsf{LH,HL,HH} LH,HL,HH 子带包含了图像的细节信息,如边缘和纹理等。
这些子带不仅可以被进一步分解为更细致的子带,实现多级分解,而且每个子带的 DWT 系数的幅值在不同子带中有不同的表现,通常在 L L \mathsf{LL} LL 子带中较大。
GPT 说:在小波变换中,通过对原始信号进行多级分解,可以将信号分解为包含不同频率成分的子带。低频子带包含了信号的主要结构和整体趋势,而高频子带则包含了信号的细节和瞬态变化。
我们采用了四级 DWT 对宿主图像的 L L \mathsf{LL} LL 子带进行分解。下图展示了分解过程:
这有助于提高图像分解的细致程度,从而增强图像处理的效率和效果。
2.3 Singular Value Decomposition (SVD)
奇异值分解(SVD)是实数或复数矩阵的一种分解方法。
如果 M M M 是一个 N × N N×N N×N 尺寸的图像,那么它可以被分解为两个正交矩阵 U , V U,V U,V 和一个对角矩阵 S S S,使得:
M = U S V T M = USV^T M=USVT
对角矩阵 S S S 中的元素被称为奇异值。
SVD 可以在多种数字信号处理操作中广泛使用,包括图像恢复、数据压缩、功率谱估计和噪声减少。SVD 还可以有效地用于水印技术,因为它保持了水印图像的不可见性。SVD 的唯一奇异值使其对几何攻击和其他攻击更具鲁棒性。此外,这些奇异值包含了图像的主要信息。由噪声引起的微小变化不会显著影响奇异值,这些特性使得 SVD 在图像水印研究领域对研究人员更具吸引力。
受到这些启发,我们在对宿主图像进行小波变换之后进行了 SVD 。