原始地址:https://arxiv.org/abs/2603.15026
代码实现:https://github.com/OmerBenHayun/STALL
此论文实现了 training-free 的 AI 视频生成检测算法。论文使用了大量数学算法,因此写下笔记记录。
论文大致原理是对真实视频计算出一个空间分布,而生成视频不符合这个空间分布,从而实现对生成视频的识别。
真实视频空间分布计算
首先利用 DINOv3 模型对所有真实视频帧执行嵌入,每个视频 $V_i$ 得到一个帧序列:
$$ E_i=\{e_1, e_2, ..., e_t\} $$DINOv3
DINOv3 模型是图像理解模型,因此得到的嵌入对原始帧独立处理的产物,不同帧之间不携带上下文信息。
视频帧表征空间分布计算
这一分支主要目的是判别视频帧有多大程度满足真实视频的分布。
论文对 $N$ 个帧序列 $E_i$ 随机选取一帧,组成一个新序列:
$$ X=\{x_1, x_2,..., x_N\} $$对新序列 $X$ 计算协方差矩阵,协方差矩阵公式如下:
$$ \Sigma=\frac{1}{N-1}\sum_{i=1}^{N}{(x_i-\mu)(x_i-\mu)^T} $$其中 $\mu$ 是序列 $X$ 的均值向量,代表真实视频帧总体的“中心位置”,即:
$$ \mu=\frac{1}{N}\sum_{i=1}^{N}{x_i} $$接下来的目标,是尝试将真实帧向量所在的空间映射为一个,以原点为中心、在各个方向上尺度一致的“球”。即,寻找一个矩阵 $W$,使得:
$$ y=W(x-\mu) $$满足:
$$ E[y]=0 \\ Cov(y)\approx I $$其中 $I$ 代表单位矩阵。
通俗来讲,就是把真实视频帧所在空间做一个隐射,使得真实视频帧在这个空间的点位为一个聚集的集合,这样生成视频的帧在这个空间里就会表现为一个离群的点。
最后对视频帧嵌入向量计算 log-likelihood,作为此视频的分数 $S_{sp}$,对所有真实视频都执行此操作,得到若干分数。
协方差矩阵
协方差代表的是:两个维度是否会一起变化,以及共同变化趋势的强度。
对于一个协方差矩阵:
$$ \mathrm{Cov}(x)= \begin{bmatrix} \mathrm{Cov}(x_1,x_1) & \mathrm{Cov}(x_1,x_2) & \cdots \\ \mathrm{Cov}(x_2,x_1) & \mathrm{Cov}(x_2,x_2) & \cdots \\ \vdots & \vdots & \ddots \end{bmatrix} $$其中 $x$ 代表一个向量,若 $\mathrm{Cov}(x_i, x_j)>0$,则代表当 $x_i$ 高时,$x_j$ 也高;若 $\mathrm{Cov}(x_i, x_j)<0$,则当 $x_i$ 高时,$x_j$ 会低;若 $\mathrm{Cov}(x_i, x_j)=0$,则 $x_i$ 和 $x_j$ 无明显关联。
Mahalanobis 距离(马氏距离)
假设变量 $X$ 包含两个维度:身高和体重。显然,一个人身高增加 10cm,体重增加量通常不会是 10kg,因此这个变量的两个维度变化的尺度是不一致的。
假设一个人身高增加 10cm,体重通常增加 5kg,则代表:10cm 身高为 1 个尺度,5kg 体重为 1 个尺度,若按照这个尺度来画等距离点,其在欧氏几何的坐标轴中应该得到的是一个椭圆。
也就是说:若一个样本用中心点 $\mu$ 和协方差 $\Sigma$ 描述,其等马氏距离面应该是一个椭圆(三维则是椭球)。
视频帧运动空间分布计算
这一分支主要目的是判别视频帧的运动有多大程度满足真实视频的分布。
论文对每个视频的帧序列 $E_i$ 计算原始差分,得到差分序列 $E'_i$。
作者发现对该序列做 L2 归一化,即仅保留运动方向后能更好的满足高斯分布,因此论文对差分序列做 L2 归一化得到新序列 $E^{L2}_i$。
然后论文从每个 $E^{L2}_i$ 序列中随机抽取一个向量,组成新序列,对新序列执行与“表征空间分布计算”相同的操作。
最后对差分向量计算 log-likelihood,作为此帧视频的分数 $S_{temp}$,对所有真实视频都执行此操作,得到若干分数。
Maxwell–Poincaré 引理
当欧式几何空间的维度趋近于无穷大时,高维球面上的随机点的低维投影会趋近收敛于同分布的标准高斯分布。
即,对于一个随机向量 $x$,若满足 $||x||=c$,其中 $c$ 为常数,则向量 $x$ 的任意维度 $i$ 上的分量 $x_i$ 应满足高斯分布。
正态性检验(Normality Test)
论文使用了以下两类校验方法:
- Anderson–Darling test(AD)
- D’Agostino–Pearson test(DP)
作用是把高维随机向量在每个维度上的分量分别取出,检验这些标量样本是否“看起来像高斯分布”。
对视频评分
对任意输入视频按 8fps 抽帧,默认抽 2s,即一共 16 帧,使用冻结的 DINOv3 完成嵌入,得到 16 个向量,计算得到 15 个差分向量。
随后论文对上述两个序列分别执行两个分支,每个视频得到两组分数:16 个 $S_{sp}$ 和 15 个 $S_{temp}$。对于分数 $S_x$,取其在真实视频中的排名百分比作为概率,取两个概率的平均值作为最终分数。
论文发现,使用最小的 $S_{sp}$ 和最大的 $S_{temp}$ 计算最终分数得到的 AP 最高。