姚昆仑,李 鹏
(湘潭大学自动化与电子信息学院,湖南 湘潭 411105)
深度伪造指的是使用深度学习方法让理智的观察者错误地将某段伪造的音视频视为个人真实言语或行为的方法,其推动了文娱事业的发展,同时也可能误导舆论,扰乱社会秩序以及威胁人脸识别系统。传统图像取证法检测准确率低,且可通过在伪造影像中加入噪声的方式绕过[1]。基于深度学习的伪造检测技术大致可以分为两类:一类是基于CNN架构和损失函数来直接检测伪造图像,另一类是通过真伪图像频谱中的差异化分析,找出特定的GAN指纹特征 ,最终实现对伪造图像的识别。基于CNN架构和损失函数的方法准确率较高,但计算量大,目前仅在较小的数据集上实验。基于GAN指纹特征的方法则可通过选用无指纹特征的GAN来规避检测,且GAN技术发展迅速,该方法不具备通用性。本文提出的方法属于第一类方法,使用胶囊网络架构取代原网络中CNN架构,在准确率不变的情况下极大减少了实验参数,降低了计算复杂度[2]。
胶囊网络是2017年有“深度学习之父”之称的Hinton等人[1]提出的,用以弥补卷积神经网络不足的新的深度学习方法。胶囊是由多个卷积构成的集合,用来代表一类特征。多个胶囊构成胶囊层,胶囊层之间以动态路由的方式传递信息[3]。
特征出现的概率由胶囊输出的向量的长度表示,因此,输出向量需要使用非线性压缩函数将向量的长度压缩至0到1之间,以满足数学逻辑。非线性压缩函数squash如下:
式中,vj为胶囊j的向量输出;sj为向量j的总输出。
胶囊的总输入sj是上一层胶囊的预测向量的加权和,预测向量有上层胶囊的输出与变换矩阵相乘得到。
为了使胶囊层i与高级胶囊层j之间的耦合系数之和为1,使概率分布符合数学逻辑,使用softmax方程来确定cij。
图1 胶囊层连接示意
本文提出的深度伪造检测方法流程如图2所示。预处理的任务取决于输入的类型,如果输入是视频,则第一步是分离帧。如果输入是一帧或者一张图片,则将如数分离为patch。通常的输入尺寸为100×100到300×300,输入越大结果就越好,但需要更多计算能力[4]。
图2 基于胶囊网络的深度伪造检测方法流程图
后期处理单元根据预处理单元进行工作。如果任务是检测虚假图像,则将提取的patch分数平均;如果输入是视频,则将所有帧的分数平均。最终的得到输出[5]。
本文提出的胶囊深度伪造检测详细架构如图3所示。主胶囊层包含多个胶囊,每个胶囊分为三个部分:二维卷积部分、统计池化层(Stats Pooling)和一维卷积部分。论文证明统计池化层在伪造检测任务中是十分有效的,统计池化后的输出适用于一维卷积。[6]经过一维卷积后的输出经过动态路由发送到输出胶囊,由于本实验只需要做输入的真假判断,因此最终又输出胶囊计算最终结果。
图3 胶囊检测网络架构
本实验采用了FaceForensics++数据集。该数据集包含了4 000个上传自Youtube的视频,其中包含1 000个原视频,以及分别使用deepfake、Face2Face和FaceSwap技术进行了伪造的视频。数据集中训练集,验证集和测试集的数量分别为720、140和140个[7]。
为了减少计算量,在实验中对于训练集使用其前100帧,并裁减为300×300大小;对于验证集和测试集,仅使用其前10帧,同样裁减为300×300大小。
本实验使用了XceptionNet[4]作为对照,该网络在检测深度伪造的图像方面取得了最好的效果。但是XceptionNet是一个拥有超过2 000万个参数的大型网络,使得其训练速度较慢[8]。
实验参数方面,本实验使用Adam优化器,其中β1= 0.9,β2= 0.999,DropOut为0.05。动态路由的k=0.5。
模型的准确性和参数方面,首先,本文除了与XceptionNet比较外,还设计了实验对比不同初级胶囊个数对准确性和参数的影响。实验经过了25次迭代,表1显示了3~10个初级胶囊对实验准确性的影响。可以看出,随着初级胶囊增多,模型的准确性逐渐增加,当胶囊数量为8个时,胶囊检测网络的准确率已经超过了XceptionNet的准确率,同时参数量仅为XceptionNet的1/5[9]。
表1 不同胶囊数量的胶囊检测网络实验结果
同时,尽管较少的胶囊使得网络准确率降低,但可以在不对网络结构进行重大更改的情况下轻量化网络,使得网络移植到移动端更加便利。
对数据集中的数据进行多分类对比,结果如表2所示,可以看到Face2Face伪造是两个网络中最难检测的攻击。XceptionNet在deepfake方式伪造检测方面表现更好,准确度为84.81%。总体而言,与XceptionNet相比,本文提出的方法在所有伪造方式上的性能更加均衡。
表2 FaceForensics++数据库的多类分类准确性对比
除了检测伪造视频,本实验还对胶囊检测网络进行训练,使其可以对计算机生成的图像(CGI)和摄影作品(PI)进行分类。本实验使用了Rahmouni等人创建的数据集[7,8],CGI集包含取自5个大型3A游戏的1800张高分辨率屏幕截图,像素为1920×1080。PI集包含从RAISE数据集中选择的1800张高分辨率摄影图像,像素为4900×3200[10]。
本实验将这些数据集分解为100×100大小的patch,因此输入图像的大小为100×100,通过计算所有patch的平均分类概率来计算完整图片的准确率。实验结果如表5.3所示,本实验提出的方法明显优于其他三个较新的分类方法,并且在完整图片数据集上实验了100%的分类精度。
表3 对CGI和PI的分类准确性
本文提出了基于胶囊网络的深度伪造检测方法,可以用于数字图像和伪造视频的检测。[11]所做的改进使得本实验提出的模型可以在使用更少参数的情况下持平甚至超过目前的检测方法,从而降低计算成本。证明了该模型具有优秀的适应性,通过可视化胶囊输出分析了胶囊检测的工作原理[12]。