Video Anomaly Detection by Solving Decoupled Spatio-Temp

article/2025/8/6 8:53:40

Video Anomaly Detection by Solving Decoupled Spatio-Temp

  • 什么是SSL? Self-Supervised Learning,又称为自监督学习
  • 什么是多标签分类问题: 一个数据有多个标签
  • pretext 任务:
    简单的来说,通过另一个任务简介完成主任务
    比如,要训练一个网络来对 ImageNet 分类,可以表达为 f θ ( x ) : x → y f_{\theta}(x): x \rightarrow y fθ(x):xy ,目的是获得具有语义特征提取/推理能力的 θ \theta θ 。假设有另外一个任务 (Pretext task ),可以近似获得 θ \theta θ。 比如, A u t o − e n c o d e r Auto-encoder Autoencoder ( A E \mathrm{AE} AE) , 表示为: g θ ( x ) : x → x g_{\theta}(x): x \rightarrow x gθ(x):xx 。为什么 A E AE AE 可以近似 θ \theta θ 呢? 因为 AE 要重建 x x x 就必须学习 x x x 中的内在关系,而这种内在关系的学习又是有利于我们学习 $ f_{\theta}(x)$ 的。这种方式也叫做预训练,为了在目标任务上获得更好的泛化能力,一般还需要进行 f i n e − t u n i n g fine-tuning finetuning 等操作。在本文中,作者提出一个任务(拼图任务)的训练完成主任务(视频异常检测)

主要内容:

在本文中,提出了一种简单而有效的VAD自我监督学习方法,通过解决一个直观但具有挑战性的pretext任务,即时空拼图。通过这种排列,在帧内对补丁进行空间洗牌,以构建空间拼图,或者在时间上对连续帧序列进行洗牌,从而构建时间拼图。训练目标是从其空间或时间排列版本中恢复原始序列。

我们假设,成功解决此类难题需要网络通过学习强大的时空表示来理解视频帧的非常详细的空间和时间一致性,这对VAD至关重要。为此,我们考虑了所有可能的排列,以增加拼图的难度,目的是为区分特征提供细粒度的监督信号。基于异常事件通常涉及异常外观和异常运动的观察,我们在空间和时间维度上解耦了时空拼图,分别负责建模外观和运动模式。

贡献:

  • 优化了自监督框架
  • 允许网络从pretext任务中捕获细微的时空异常。为了确保计算效率,我们将解谜公式化为一个多标签学习问题,考虑了变化数量的因素。
  • 无需预先训练的网络

作者方法的创新性:

image-20230215224134405

(a)将图片在时间顺序上随机打乱

(b) 传统方法:通过神经网络预测正确连续帧的排列组合

© 作者方法:直接预测输出连续帧的顺序

算法流程:

image-20230215225714215

训练阶段主要步骤:

首先,使用现成的对象检测器[46]来提取帧中的所有对象,并沿时间维度堆叠对象以构建以对象为中心的立方体。从n!中排列组合中选择一个排列。对于每个立方体,我们进一步应用空间或时间洗牌来构建相应的空间或时间拼图。(Spatial jigswa\Temporal jisaw)

接着,在时间上或者空间上进行洗牌,训练目标是从其空间或时间排列版本中恢复原始序列(多标签分类问题)

最后,卷积神经网络充当拼图解算器,试图从其空间或时间排列版本中恢复原始序列。所提出的方法等效于解决多标签分类问题,并以端到端的方式进行训练。(预测出来的是一个预测矩阵,i位置的物体是在位置j的可能性)

测试阶段:

利用对象提取器提取所有对象,并沿时间维度堆叠对象以构建以对象为中心的立方体。不用经过洗牌,直接利用训练好的拼图解算器来获得规则性分数,并获得两个矩阵Ms和Mt,分别对应于空间和时间排列预测

如何评价?

正常事件的对角线(i,i) 的预测概率一定大于异常事件的。作者选择矩阵对角线上的最小分数作为生成的对象级规则性分数(因为根据训练中的细粒度多标签监督,只要错误预测了一个帧或补丁,示例就可能是异常的。)
{ r s = min ⁡ ( diag ⁡ ( M s ) ) r t = min ⁡ ( diag ⁡ ( M t ) ) \left\{\begin{array}{l} r_s=\min \left(\operatorname{diag}\left(M_s\right)\right) \\ r_t=\min \left(\operatorname{diag}\left(M_t\right)\right) \end{array}\right. {rs=min(diag(Ms))rt=min(diag(Mt))
diag(·)提取矩阵对角线,rs和rt表示对象级别的规则性得分

归一化:
{ R s = R s − min ⁡ ( R s ) max ⁡ ( R s ) − min ⁡ ( R s ) R t = R t − min ⁡ ( R t ) max ⁡ ( R t ) − min ⁡ ( R t ) \left\{\begin{aligned} R_s & =\frac{R_s-\min \left(R_s\right)}{\max \left(R_s\right)-\min \left(R_s\right)} \\ R_t & =\frac{R_t-\min \left(R_t\right)}{\max \left(R_t\right)-\min \left(R_t\right)} \end{aligned}\right. RsRt=max(Rs)min(Rs)Rsmin(Rs)=max(Rt)min(Rt)Rtmin(Rt)
加权得分:
R = w ∗ R s + ( 1 − w ) ∗ R t R=w * R_s+(1-w) * R_t R=wRs+(1w)Rt

实验:

实验参数

对象提取器(物体检测) : YoloV3 , 实验参数与Anomaly detection in video via self-supervised and multi-task learning. 原论文保持一致

评估指标:

具体来说,我们连接数据集中的所有帧,然后计算整体帧级AUC,即微平均AUROC

消融实验:

从四个方面:

a)排列数量;整体都在上升,并且做作者算法内存消耗小可以使用更大的数量,表现更好。

b) 帧数/补丁数;时间维度上的帧数(l)和空间维度上的面片数(n2),从5/4-9/16 先升高后恶化

c) 谜题类型;根据何时和哪些拼图游戏被激活,设计了四种可选配置 来验证多任务学习带来的效益

d)拼图游戏以外的其他pretext 任务。


http://chatgpt.dhexx.cn/article/5pnujH0b.shtml

相关文章

魔改YOLOv5/YOLOv7高阶版——改进之结合解耦头Decoupled_Detect

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨

Distilling Object Detectors via Decoupled Features

Abstract 相比于图像分类而言&#xff0c;目标检测器更加复杂&#xff0c;具有多个损失函数。而目前的的检测中&#xff0c;其主要将注意力集中在对象的区域中&#xff0c;但本文指出&#xff0c;从背景中提取的特征信息对于学生模型的学习也是必不可少的。且由于目标区域和背…

Decoupled Attention Network for Text Recognition

摘要&#xff1a; 最流行的文字检测的方法是注意力机制&#xff0c;但是大多数的注意力机制方法由于循环的对齐操作会导致严重的对齐问题。因为对齐操作依赖于历史解码信息。 本文提出的DAN将对齐操作与历史解码信息解耦。 原理&#xff1a; Connectionist temporal classifi…

涨点技巧:Detect系列---Yolov5/Yolov7加入解耦头Decoupled_Detect,涨点明显

目录 1. Decoupled Head介绍 2.Yolov5加入Decoupled_Detect 2.1 DecoupledHead加入common.py中&#xff1a; 2.2 Decoupled_Detect加入yolo.py中&#xff1a; 2.3修改yolov5s_decoupled.yaml 3.数据集下验证性能 &#x1f3c6; &#x1f3c6;&#x1f3c6;&#x1f3c6;&…

Decoupled Contrastive Learning 论文解读和感想

本文首先提出了当前对比学习的三大痛点&#xff1a; 1、当前的sota方法结构都过于复杂 2、对比学习要想取得效果&#xff0c;必须要用大batch 3、超参敏感(个人认为这里说的超参是指数据增强方式) 然后本文以SimCLR为例&#xff0c;通过对对比损失的梯度进行分析&#xff0c;发…

DECOUPLED WEIGHT DECAY REGULARIZATION

引言 Adam作为一个常用的深度学习优化方法&#xff0c;提出来的时候论文里的数据表现都非常好&#xff0c;但实际在使用中发现了不少问题&#xff0c;在许多数据集上表现都不如SGDM这类方法。 后续有许多工作针对Adam做了研究&#xff0c;之前整理过关于优化算法的发展历程&am…

Decoupled Dynamic Filter Networks

转载自:https://www.cnblogs.com/liuyangcode/p/14755924.html 对depth-wise的改进&#xff0c;将卷积核的参数改为根据输入变化的方式 Introduction 卷积缺点在于&#xff1a;内容不变&#xff0c;计算量高动态filter可以根据内容自适应&#xff0c;但是会提高计算量。depth…

Analyzing and Leveraging Decoupled L1 Caches in GPUs

introduction 我们都知道L1/L2/L3cache解决了内存墙的问题&#xff0c;但是作者分析出现有的缓存架构有着天然缺陷&#xff0c; 作者列出的many to few communication&#xff0c;也就是L1ache中大量的数据传输到L2cache中&#xff0c;可能对于L1cache的带宽使用率不是很高&a…

Decoupled network

Decoupled network https://zhuanlan.zhihu.com/p/37598903 神经网络机制存在的缺陷&#xff1f; 过拟合&#xff0c;梯度消失或者是膨胀&#xff0c;训练依靠大量样本&#xff0c;对网络初始化及其敏感记忆协迁移等等。 Decupled network是对operator的改进 现在的卷积操作…

Decoupled Knowledge Distillation论文阅读+代码解析

本文来自2022年CVPR的文章&#xff0c;论文地址点这里 一. 介绍 知识蒸馏&#xff08;KD&#xff09;的通过最小化师生预测对数之间的KL-Divergence来传递知识(下图a)。目前大部分的研究注意力都被吸引到从中间层的深层特征中提取知识。与基于logit的精馏方法相比&#xff0c…

令牌桶算法

一 算法 令牌桶算法和漏桶算法不同的是&#xff0c;有时后端能够处理一定的突发情况&#xff0c;只是为了系统稳定&#xff0c;一般不会让请求超过正常情况的60%&#xff0c;给容灾留有余地。但漏桶算法中后端处理速度是固定的&#xff0c;对于短时的突发情况&#xff0c;后端…

动态分区分配算法(1、首次适应算法 2、最佳适应算法 3、最坏适应算法 4、邻近适应算法)

文章目录 前言知识总览1、首次适应算法2、最佳适应算法3、最坏适应算法4、邻近适应算法知识回顾与重要考点 前言 此篇文章是我在B站学习时所做的笔记&#xff0c;大部分图片都是课件老师的PPT&#xff0c;方便复习用。此篇文章仅供学习参考。 提示&#xff1a;以下是本篇文章…

《算法4》读书笔记(一)

写在前面&#xff1a;配套网站algs4.cs.princeton.edu&#xff0c;可以把这个网站作为编程的时候的参考资料。这本书比较实用&#xff08;某瓣评分9.3&#xff09;&#xff0c;但没有动态规划部分&#xff0c;作为两三年没怎么碰过算法和数据结构的菜狗&#xff0c;看了《图解算…

《算法4》深入理解红黑树

红黑树是一种性能非常优秀的数据结构&#xff0c;关键在于它能保证最坏的性能也是对数的&#xff0c;主要是因为它是一种平衡的树&#xff0c;所以也叫平衡查找树。要理解红黑树&#xff0c;最好先看看我的上一篇博客《算法4》符号表以及二叉查找树&#xff0c;了解二叉查找树以…

【算法4总结】第四章:图

目录备份 第四章&#xff1a;图 概述 图可以根据是否有向和带权分成以下四种&#xff1a; 无向图 &#xff08;无向不带权&#xff09;有向图 &#xff08;有向不带权&#xff09;加权无向图&#xff08;无向带权&#xff09;加权有向图&#xff08;有向带权&#xff09; …

算法4(一、递归学习)

每次用递归都感觉有点难&#xff0c;这个趁着恶补基础知识的时候&#xff0c;专门看了一遍递归&#xff0c;算法4的。 1.1 递归介绍 方法可以调用自己&#xff0c;例如&#xff1a;下面给出了bin_search的二分查找的一种实现。&#xff08;算法4中使用的是Java&#xff0c;但…

【算法4总结】第一章:基础

目录备份 第一章&#xff1a;基础 我认为这一章主要介绍的是如何使用工具。 一共五节&#xff0c;前两节主要是对 Java 语法的回顾&#xff0c;第三节则是三个数据结构&#xff0c;背包&#xff0c;队列和栈的API讲解。 而第四节是讲解的是如何分析算法。第五节则是针对具体…

SQL修改语句

如果我们要修改数据库中表的数据&#xff0c;这个时候我们就要使用到UPDATE语句。 UPDATE语句的基本语法是&#xff1a; UPDATE <表名> SET 字段1值1, 字段2值2, ... WHERE ...; 例如&#xff0c;我们想更新employees表id100的记录的last_name和salary这两个字段&…

【数据库】SQL语句之修改语句(INSERT,UPDATE,DELETE)

1.INSERT INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...); 例如&#xff1a; 一次插入一个 INSERT INTO students (class_id, name, gender, score) VALUES (2, 小明, M, 80);一次插入多条 INSERT INTO students (class_id, name, gender, score) VA…

SQL Server修改数据

本篇主要讲解的是SQL Server 中修改数据的几种语句&#xff1a; INSERT语句INSERT INTO SELECT语句UPDATE语句DELETE语句 一&#xff1a;INSERT语句 INSERT语句向表中添加新行&#xff0c;以下是INSERT语句的最基本形式&#xff1a; 首先&#xff1a;table_name指定要插入的…