数字图像取证 - 基于像素的取证 1

Posted on Tue 03 November 2020 in Digital Image Forensics • 1 min read

重采样

多数的图像篡改都需要如下步骤:裁剪缩放, 旋转以及拉伸. 上述的操作都需要对图像重采样才可以. 经过这种重采样是基本不可见的,但是这里介绍一种特殊的相关性计算算法. 假设具有\(m\)个采样点的1-D离散采样信号\(f(x, y)\), 如图(a). 对其进行重采样时, 无论基于系数\(\frac{p}{q}\)将其重采样至n个样本时都需要经过以下三个步骤:

  1. 上采样: 新建一个有\(pm\)个采样的信号\(f_u(x)\), 其中\(f_u(px) = f(x), x = 1, 2, ..., m, 反之 $f_u(x) = 0\). 如图(b)
  2. 插值: 一个低通过滤卷积信号\(f_i(x) = f_i(x) = f_u(x) * h(x)\). 如图(c)
  3. 下采样: 新建一个有\(n\)个采样的信号\(f_d(x)\), 其中\(f_d(x) = f_i(qx), t = 1, 2, ..., n\). 为后续书写简单, 令\(g(x)\equiv f_d(x)\)

插值矩阵

如果在第二步中(插值算法)使用的是线性的插值算法,那么重采样过程可以被抽象为\(g = A_{{p}/{q}}f\),其中\(A\)就是插值矩阵,如果使用4/3的权重进行上采样插值那么A就表示为

$$ A_{4/3} = \begin{bmatrix} 1 & 0 & 0 & 0 &\\ 0.25 & 0.75 & 0 & 0 &\\ 0 & 0.5 & 0.5 & 0 &\\ 0 & 0 & 0.75 & 0.25 &\\ 0 & 0 & 0 & 1 &\\ & & & & \ddots \\ \end{bmatrix} $$

同理对于权重为2的上采样插值算法, 其矩阵组成形式如下

$$ A_{4/3} = \begin{bmatrix} 1 & 0 & 0 & \\ 0.5 & 0.5 & 0 & \\ 0 & 1 & 0 & \\ 0 & 0.5 & 0.5 & \\ 0 & 0 & 1 &\\ & & & \ddots \\ \end{bmatrix} $$

对于重采样后的信号其值是相邻点的平均值\(g_{2i} = 0.5f_i + 0.5f_{i+1}\), 其中 \(i = 1, ..., m-1\), \(f\)是原始信号, \(g\)是重采样信号. 因为\(f_i = g_{2i - 1}, f_{i + 1} = g_{2i +1}\), 故\(g_{2i} = 0.5g_{2i - 1} + 0.5g_{2i + 1}\).

求解插值矩阵

假设其权重为\(p/q\), 插值算法则定义为

$$ g_i \overset{?}{=} \sum^N_{k = -N} \alpha_k g_{i + k} $$

其中\(\alpha_k\)为标量权重(\(\alpha_0 = 0\)). 上式又等价于

$$ \begin{aligned} g_i - \sum^N_{k = -N} \alpha_k g_{i + k} = 0 \\ (a_i \cdot f) - \sum^N_{k = -N} \alpha_k (a_{i + k} \cdot f) = 0 \\ (a_i - \sum^N_{k = -N} \alpha_k (a_{i + k}) \cdot f) = 0 \\ \end{aligned} $$

其中\(a_i\)是重采样矩阵\(A_{p/q}\)的第\(i^{th}\)行, \(f\)是原始信号 因为重采样信号的第\(i\)个样本与其邻域线性相关. 那么CFA校验类似, 同样的可以使用EM算法对插值矩阵进行预测性. 在E-step 利用

$$ r_1(i) = g_i - \sum^N_{k = -N} \alpha_k g_{i + k} $$

求解似然函数

$$ \omega_1(i) = P_r(\alpha | r_1(x, y)) = \frac{e^{-r^2_1(i)/\mu}}{e^{-r^2_1(i)/\mu} + 1/\sigma} $$

在M-step最小化

$$ E(\alpha) = \sum_i\omega(i)(g_i - \sum^N_{k = -N}\alpha_k g_{i + k}) $$

最后令梯度为0, 得到

$$ \alpha = (G^TWG)^{-1}G^TWg $$

如果 \(N = 2, g = (g_3, g_4, g_5, ...)^T\), \(W\)为权重矩阵的对角矩阵, 矩阵G为

$$ \begin{bmatrix} g_1 & g_2 & g_4 & g_5 \\ g_2 & g_3 & g_5 & g_6 \\ g_3 & g_4 & g_6 & g_7 \\ \vdots & \vdots & \vdots & \vdots \\ \end{bmatrix} $$