一、SRM简介
SRM(Spatial Rich Model) 为基于空域富模型的隐写分析方法,由Fridrich等人[1] 提出,主要用于空域编码图像的隐写分析,在基于传统的提取手工特征的方式中占据主流地位。SRM采用了多个子模型(sub-model)以提取更多类型的特征,使得能够更好地表征隐写对邻域像素多种相关性的破坏。所谓“子模型”,指的是图像经过特定的滤波后再提取相应特征,由于邻域相关性可以通过局部像素之间的预测误差表示,这里滤波一般指输出这种预测误差的操作,这类误差一般被称为残差(residuals)。
二、特征提取步骤
设
X
=
(
X
i
,
j
)
∈
{
0
,
⋯
,
255
}
n
1
×
n
2
X=(X_{i,j})\in \{ 0, \cdots, 255 \}^{n_{1}\times n_{2}}
X=(Xi,j)∈{0,⋯,255}n1×n2表示灰度图像像素或彩色图像亮度域像素,SRM特征的提取一般分为以下几个步骤。
1、计算残差
通过以下公式计算残差
R
=
(
R
i
,
j
)
∈
R
n
1
×
n
2
R=(R_{i,j})\in \mathbb{R^{n_{1}\times n_{2}}}
R=(Ri,j)∈Rn1×n2。
R
i
,
j
=
X
i
,
j
^
(
N
i
,
j
)
−
c
X
i
,
j
R_{i,j}=\hat{X_{i,j}}(N_{i,j})-cX_{i,j}
Ri,j=Xi,j^(Ni,j)−cXi,j 其中,
N
i
,
j
N_{i,j}
Ni,j为
X
i
,
j
X_{i,j}
Xi,j的若干邻域像素,
X
i
,
j
^
(
N
i
,
j
)
\hat{X_{i,j}}(N_{i,j})
Xi,j^(Ni,j)通过该邻域来预测
c
X
i
,
j
cX_{i,j}
cXi,j。由于一般
N
i
,
j
N_{i,j}
Ni,j中像素的数量等于
c
c
c,
c
∈
N
c\in \mathbb{N}
c∈N被称为残差阶(residual order)。以上计算残差的滤波按照水平和垂直两个方向分别计算。
2、量化与截断
将以上实数残差
R
i
,
j
R_{i,j}
Ri,j进行以下量化与截断。
R
i
,
j
←
t
r
u
n
c
T
(
r
o
u
n
d
(
R
i
,
j
q
)
)
t
r
u
n
c
T
(
x
)
=
{
x
,
x
∈
[
−
T
,
T
]
T
s
i
g
n
(
x
)
,
x
∉
[
−
T
,
T
]
R_{i,j} \leftarrow trunc_{T}\left( round\left(\frac{R_{i,j}}{q} \right)\right) \quad\quad trunc_{T}(x)=\begin{cases}x,&x\in[-T,T] \\ Tsign(x),&x\notin[-T,T] \end{cases}
Ri,j←truncT(round(qRi,j))truncT(x)={x,Tsign(x),x∈[−T,T]x∈/[−T,T] 其中,
q
q
q为量化步长。截断操作的意义是:一方面,隐写分析对相关性较强、残差较小的区域更感兴趣;另一方面,将残差截断有利于降低最后提取特征的维度。
3、统计共生矩阵(co-occurrence matrix)
SRM特征最终表现为在每个子模型下以上截断残差的4阶联合分布形式,即残差水平或垂直方向上4个连续样点
d
=
(
d
1
,
d
2
,
d
3
,
d
4
)
∈
τ
4
≜
{
−
T
,
⋯
,
T
}
4
d=(d_{1},d_{2},d_{3},d_{4})\in \tau_{4} \triangleq \{-T,\cdots,T\}^{4}
d=(d1,d2,d3,d4)∈τ4≜{−T,⋯,T}4的联合分布概率估计。水平方向的估计为:
C
d
(
h
)
=
1
Z
∣
{
(
R
i
,
j
,
R
i
,
j
+
1
,
R
i
,
j
+
2
,
R
i
,
j
+
3
,
)
∣
R
i
,
j
+
k
−
1
=
d
k
,
k
=
1
,
⋯
,
4
,
}
C_{d}^{(h)}=\frac{1}{Z}|\{(R_{i,j},R_{i,j+1},R_{i,j+2},R_{i,j+3},)|R_{i,j+k-1}=d_{k},k=1,\cdots ,4,\}
Cd(h)=Z1∣{(Ri,j,Ri,j+1,Ri,j+2,Ri,j+3,)∣Ri,j+k−1=dk,k=1,⋯,4,}其中,Z是全部出现情况的总数量,它作为归一化的参数使得
∑
d
∈
τ
4
C
d
(
h
)
=
1
\sum_{d\in \tau_{4}}C_{d}^{(h)}=1
∑d∈τ4Cd(h)=1,由此构成的4阶矩阵被称为4阶共生矩阵,垂直方向的共生矩阵
C
d
(
v
)
C_{d}^{(v)}
Cd(v)的计算过程类似。
三、核心技术解析
1、各种类型的残差计算
残差主要包括一阶、二阶、三阶、SQUARE、EDGE3×3、EDGE5×5共6类,每类残差中又分为线性滤波残差与非线性滤波残差;图1分别描绘了部分残差的计算方法。
线性残差计算:
(1)一阶残差:用一个相邻像素预测当前像素的误差,如图1中(1a)描述的残差是
R
i
,
j
=
X
i
,
j
+
1
−
X
i
,
j
R_{i,j}=X_{i,j+1}-X_{i,j}
Ri,j=Xi,j+1−Xi,j。
(2)二阶残差:用两个相邻像素预测当前像素的误差,如图1中(2a)描述的残差是
R
i
,
j
=
X
i
,
j
−
1
+
X
i
,
j
+
1
−
2
X
i
,
j
R_{i,j}=X_{i,j-1}+X_{i,j+1}-2X_{i,j}
Ri,j=Xi,j−1+Xi,j+1−2Xi,j。
(3)三阶残差:用三个相邻像素预测当前像素的误差,与二阶残差类似,
R
i
,
j
=
−
X
i
,
j
+
2
+
3
X
i
,
j
+
1
+
X
i
,
j
−
1
−
3
X
i
,
j
R_{i,j}=-X_{i,j+2}+3X_{i,j+1}+X_{i,j-1}-3X_{i,j}
Ri,j=−Xi,j+2+3Xi,j+1+Xi,j−1−3Xi,j。
(4)SQUARE、EDGE3×3、EDGE5×5残差:在计算中使用了更多方向的邻域像素。其中,3×3和5×5的SQUARE核分别为:
[
−
1
2
−
1
2
−
4
2
−
1
2
−
1
]
[
−
1
2
−
2
2
−
1
2
−
6
8
−
6
2
−
2
8
−
12
8
−
1
2
−
6
8
−
6
2
−
1
2
−
2
2
−
1
]
\begin{bmatrix} -1 & 2 & -1\\ 2 & -4 & 2 \\ -1 & 2 & -1 \end{bmatrix} \quad\quad \begin{bmatrix} -1 & 2 & -2 & 2 & -1 \\ 2 & -6 & 8 & -6 & 2 \\ -2 & 8 & -12 & 8 & -1 \\ 2 & -6 & 8 & -6 & 2 \\ -1 & 2 & -2 & 2 & -1 \end{bmatrix}
⎣⎡−12−12−42−12−1⎦⎤⎣⎢⎢⎢⎢⎡−12−22−12−68−62−28−128−22−68−62−12−12−1⎦⎥⎥⎥⎥⎤EDGE3×3和EDGE5×5的核分别为:
[
2
−
1
−
4
2
2
−
1
]
[
−
2
2
−
1
8
−
6
2
−
12
8
−
2
8
−
6
2
−
2
2
−
1
]
\begin{bmatrix} 2 & -1\\ -4 & 2 \\ 2 & -1 \end{bmatrix} \quad\quad \begin{bmatrix} -2 & 2 & -1 \\ 8 & -6 & 2 \\ -12 & 8 & -2 \\ 8 & -6 & 2 \\ -2 & 2 & -1 \end{bmatrix}
⎣⎡2−42−12−1⎦⎤⎣⎢⎢⎢⎢⎡−28−128−22−68−62−12−22−1⎦⎥⎥⎥⎥⎤
非线性残差计算: 通过求取两个或更多线性滤波残差的最大值或最小值得到的,“子类型名标识”中的滤波器数就是指求极值前使用的线性滤波器数量,对应除黑圆点外不同形状点的数量。
2、残差的方向性与对称性
如果将图像旋转90。后,残差未发生变化,则认为其无方向性,否则认为有方向性。如果将图像旋转90。后,共生矩阵未发生变化,则称相应残差水平与垂直对称,无方向性残差具有这种对称性。
3、子类型残差命名与共生矩阵计数
子类型名为:
n
a
m
e
=
{
t
y
p
e
}
{
f
}
{
σ
}
{
s
c
a
n
}
name=\{type\}\{f\}\{\sigma\}\{scan\}
name={type}{f}{σ}{scan},其中,type为前面六大类残差下的子类型名,只有spam与minmax两种。
f
f
f表示使用的线性滤波函数,即图1中单个子模型中除黑圆点外其它记号的数量;
σ
\sigma
σ表示对称指数(symmetry index),它指通过旋转图像能带来的不同种类残差数;
s
c
a
n
scan
scan表示残差计算方向,即图1中的
h
h
h(水平)、
v
v
v(垂直)。
由此,一阶残差由22个共生矩阵,每个对应一个类型的残差或子模型。其中图1的(1a)、(1c)、(1e)、(1f)、(1h)各2个,(1b)、(1d)、(1g)各4个;同理,三阶残差也有22个共生矩阵;二阶残差共有12个共生矩阵,图1的(2a)、(2b)、(2c)、(2e)各2个,(2d)有4个。SQUARE有2个共生矩阵,对应图1中的(S3a)、(S5a);EDGE3×3和EDGE5×5均有10个共生矩阵,图1的(E3a)、(E3b)、(E3d)各2个,(E3c)有4个。因此,总共有22+12+22+2+10+10=78个共生矩阵。
4、共生矩阵对称性的利用
一般认为,负残差图像(按照均值轴线向符号相反方向对称映射)的统计特性基本不变,即正负符号对称;图像信号在相反扫描方向上统计特性基本一致,即有扫描方向对称。因此,对spam子类型的4阶共生矩阵可以进行以下合并:
C
‾
d
←
C
d
+
C
−
d
C
‾
‾
d
←
C
d
+
C
−
d
\overline{C}_{d}\leftarrow C_{d}+C_{-d} \quad \quad \overline{\overline{C}}_{d}\leftarrow C_{d}+C_{-d}
Cd←Cd+C−dCd←Cd+C−d其中,
−
d
=
(
−
d
1
,
−
d
2
,
−
d
3
,
−
d
4
)
-d=(-d_{1},-d_{2},-d_{3},-d_{4})
−d=(−d1,−d2,−d3,−d4);
d
←
=
(
d
4
,
d
3
,
d
2
,
d
1
)
\overleftarrow d=(d_{4},d_{3},d_{2},d_{1})
d=(d4,d3,d2,d1)。当
T
=
2
T=2
T=2时,以上合并使spam残差共生矩阵元素的数量从625下降为169。
对于minmax类型可以进行以下合并:
C
‾
d
←
C
d
(
m
i
n
)
+
C
−
d
(
m
a
x
)
C
‾
‾
d
←
C
‾
d
+
C
‾
−
d
←
\overline{C}_{d}\leftarrow C_{d}^{(min)}+C_{-d}^{(max)} \quad \quad \overline{\overline{C}}_{d}\leftarrow \overline{C}_{d}+\overline{C}_{{- \overleftarrow d}}
Cd←Cd(min)+C−d(max)Cd←Cd+C−d其中,
C
D
(
m
i
n
)
C_{D}^{(min)}
CD(min)与
C
D
(
m
a
x
)
C_{D}^{(max)}
CD(max)是类型相同残差的共生矩阵,这意味着min与max残差共生矩阵可以合并。当
T
=
2
T=2
T=2时,以上合并将每类min与max残差共生矩阵元素的数量从
2
×
625
2 \times 625
2×625下降为
1
×
325
1 \times 325
1×325。
4、量化步长的确定
残差的阶
c
c
c是被预测像素值的倍数,因此,量化步长
q
q
q的选择与它相关。在论文中,考虑到用多个量化步长进一步丰富特征的表达能力,因此取
q
∈
[
c
,
2
c
]
q\in [c,2c]
q∈[c,2c]并满足
q
∈
{
{
c
,
1.5
c
,
2
c
}
,
c
>
1
{
1
,
2
}
,
c
=
1
q \in \begin{cases}\{c,1.5c,2c\},&c>1 \\ \{1,2\},&c=1 \end{cases}
q∈{{c,1.5c,2c},{1,2},c>1c=1因此,对一阶残差有两个量化步长,对其他大类残差有3个,这样,当T=2时,共生矩阵的特征总维数是
2
×
(
2
×
169
+
10
×
325
)
+
3
×
(
10
×
169
+
23
×
325
)
=
34671
2\times(2\times169+10\times325)+3\times(10\times169+23\times325)=34671
2×(2×169+10×325)+3×(10×169+23×325)=34671
参考文献
[1]Fridrich J,Kodovsky J. Rich models for steganalysis of digital images. IEEE Transactions on Information Forensics and Security,2012,7(3):868-882.
[2]http://dde.binghamton.edu/download/feature_extractors/.
[3]赵险峰,张宏.隐写学原理与技术[M].北京:科学出版社,2018:127-132.