赞
踩
本次研究论文题目为:Future Frame Prediction for Anomaly Detection -- A New Baseline。
本片文章主要分为两大块来详细阐述这篇论文,分别是:论文阅读核心点与论文复现流程及细节。
本篇论文为GAN进行异常检测的一篇文章。在这篇论文中核心为下面的pipeline
。
该pipeline
指出:
(1)使用修改过的U-Net作为生成器,并使用训练好的Flowne2
提取光流。
(2)判别器采用 Image-to-image translation with conditional adversarial networks
中的判别器。
【对抗训练】
生成对抗网络(GAN)包含一个生成器G与判别器D,而G学习去生成(由D很难去分类)的帧(图片),而D目标则是去判别由G生成的帧(图片),这称为对抗训练。
【训练D(判别器)】
判别器D基于CGAN构建的图像转换模型中的局部判别器Patch Discriminator。该方案先将生成图片分成N*N的小块,然后对每一块使用二分类判别器进行真假的判别。通过这一修改,不仅降低了判别器的参数量,加快模型的运行速度,也使其适应任意尺寸的输入。同时促使判别器D更加关注高频局部信息,激励生成器生成细节更清晰的图像。
其损失函数如下。其中,i,j 是图片块的索引,D(x)ϵ[0,1]:
【训练G(生成器)】
生成器G使用U-Net模型,设计一个具有相同输入输出同分辨率的帧预测模型,该模型使用类似自编码器的对称结构,通过在同样分辨率大小的浅层和深层之间添加短路连接(Shortcut)。解决传统自编码器结构的梯度消失和重构时细节丢失的问题,使用该结构可以生成更加清晰的图像。
(1)U-Net模型:
(2)强度损失:预测帧(生成图片)与真实帧(原图片)的L2距离。
(3)梯度损失:边缘形状的约束,使得生成图像更加锐化,其中,i、j 表示二维视频帧中的像素位置。加入该损失后,使得生成图片中每个像素点与相邻像素点的差值与原图片更一致,对于中色彩转换边界有更大影响。
(4)光流损失:预测帧与真实帧与前一帧的光流之间的L1距离。
(5)均方误差损失:生成出来的帧希望全部都被判别器判定为1。在训练G时固定D的权重。其中i, j 是图片块的索引,D(x)ϵ[0,1]。
【生成器G】
生成网络的目标函数是:强度损失,梯度损失,光流损失,均方误差损失,最后对抗损失为按比例求和:
【判别器D】
对抗网络的目标函数是:仅有对抗损失:
具体的训练参数设置,可以看原文。
使用峰值信噪比(PSNR)评估预测帧的质量(计算预测帧和真实帧的像素级相似度),越接近正常,分数越高。越低的PSNR越可能有异常:
最后,将每个测试视频中所有帧的PSNR归一化到[0,1]的范围内,计算正则分数:
在数据集CUHK Avenue , UCSD Pedestrian, ShanghaiTech上,该方法均超过baseline。
复现直接使用论文官方的github数据集与代码。复现流程及思路如下:
【数据集】
本次实验训练step非常大,8w步,当然也可以自己设置,如果电脑是数字1000以下GPU,就不要跑了,会卡死。
实验中有三个数据集,而在这次复现中仅使用了ped2数据集做训练与测试。复现的具体流程在官网github上有详细流程,下面重点来看复现结果与代码分析。
【复现结果】
训练step对应的异常事件图:
训练过程中的loss:
模型选择后,测试数据上的AUC精度对比:
对比上述AUC得出95.4%!
【代码分析】
该篇论文的代码写的非常优雅!非常值得学习!
论文复现代码中使用了如下深度学习技术:
PatchBatch
U-Net
CGAN
Pix to Pix
Flownet2-tf
flownet2
文件夹下的代码源自:
https://github.com/sampepose/flownet2-tf
pix2pix.py
源自:
https://github.com/tensorflow/models/blob/master/research/slim/nets/pix2pix.py
【数据集与运行】
(1)对视频做帧提取(ffmpeg提取),提取方式:
ffmpeg -i 01.avi frames/frames_%05d.jpg
-i 后是输入文件名,最后是输出结果,以frame_为前缀,以五位数字为编号(不够前边用0补齐),图片格式为jpg。
(2)服务器后台运行
当使用nohup与&将训练放在后台后,使用tail -f追踪数据时,不显示输出结果,原因在于数据数据未能及时写入log中,此时需要python运行加-u参数即可实现。
最后,继续去琢磨代码,改代码,深入改写。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。