分类
2016 - 交通事故 - Anticipating Accidents in Dashcam Videos
来源 | YouTube 行车记录仪 |
数量 | 1750个视频,620个正样本(发生事故)1130个负样本(无事故) |
参数 | 720P、每个视频5s共100帧 |
特点 | 包含汽车、摩托车等多种类型事故 正样本最后10帧包含事故发生时刻 |
类别数量 | 1 |
Baseline
方法
任务是在 2s 前预测事故,VGG 抽单张图像特征,IDT( improved dense trajectory)作为动态特征,训练 Faster R-CNN 做检测,目标位置特征配合注意力机制做融合,LSTM 做预测。
精度
R = 80%,P = 56.14%,mAP = 74.35%,平均在 1.8559s 前预测事故。
2017 - ShanghaiTech Campus
代码链接2 中提供有效数据下载链接,并附带 Avenue、UCSD Ped1 Ped2。这几个数据集比较类似,都通过固定位置相机拍摄视频,按目标检测或分割的方式,逐帧把有异常行为的目标标注出来。
对于异常行为各个数据集的标准有所不同,大致为非步行目标(骑车、开车、推车、奔跑等)以及走错方向、徘徊等。
Baseline
论文链接2
方法
论文中的方法并没有检测异常行为的目标,仅对帧进行分类。输入
1
→
t
1\to t
1→t 时刻的帧,通过 U-Net 生成预测的
t
+
1
t+1
t+1 时刻帧,与真实的
t
+
1
t+1
t+1 时刻帧计算差异,通过差异来预测是否异常。大致逻辑是生成一个正常情况下的帧,如果真实帧发生了突变,和生成的差异较大,就判断为异常。
精度
2019 - 暴力行为 - Real Life Violence Situations Dataset
来源 | YouTube |
数量 | 2000个视频,1000个暴力视频和1000个正常视频 |
参数 | 视频时长不等,大部分是几秒钟 |
特点 | 包含多种环境和条件下的街头斗殴情况 |
类别数量 | 1 |
Baseline
方法
VGG + LSTM
精度
准确率 88.2%
2018 - 暴力行为 - UCF-Crime
来源 | YouTube 和 LiveLeak 监控视频 |
数量 | 1900个视频,合计128小时,950个暴力视频和950个正常视频 |
类别数量 | 13 |
类别 | 总数 | 训练集数量 | |
---|---|---|---|
Abuse | 虐待 | 50 | 48 |
Arrest | 逮捕 | 50 | 45 |
Arson | 纵火 | 50 | 41 |
Assault | 袭击 | 50 | 47 |
Burglary | 入室盗窃 | 100 | 87 |
Explosion | 爆炸 | 50 | 29 |
Fighting | 打架 | 50 | 45 |
Road Accident | 交通事故 | 150 | 127 |
Robbery | 抢劫 | 150 | 145 |
Shooting | 枪击 | 50 | 27 |
Shoplifting | 入店行窃 | 50 | 29 |
Stealing | 偷窃 | 100 | 95 |
Vandalism | 故意破坏 | 50 | 45 |
Normal | 正常视频 | 950 | 800 |
数据格式
所有视频通过文件名做视频级标注
Abuse/Abuse001_x264.mp4
Arrest/Arrest002_x264.mp4
Arson/Arson001_x264.mp4
...
Training_Normal_Videos_Anomaly/Normal_Videos254_x264.mp4
对于测试集视频额外做帧级别标注,每个视频最多两个实例
Abuse028_x264.mp4 Abuse 165 240 -1 -1
Normal_Videos_150_x264.mp4 Normal -1 -1 -1 -1
Baseline
方法
作者提出的模型仅做二分类,每个视频先经过 C3D 提取特征,将特征分为 32 份求平均,作为每一小段视频的特征(相当于不论视频多长,分割为 32 个切片,每个切片用一个特征表示),最后输入到全连接网络并用 Sigmoid 输出得分。
核心是 MIL 损失函数,共分为 3 个部分。输入数据一半是异常视频(下标
a
a
a),一半是正常视频(下标
n
n
n),每个视频会输出 32 个得分
(1)1 - 异常视频得分的最大值 + 正常视频得分的最大值
(2)异常视频相邻片段得分差求和
(3)异常视频所有片段得分总和
l ( B a , B n ) = max ( 0 , 1 − max i ∈ B a f ( V a i ) + max i ∈ B n f ( V n i ) ) ⏞ ( 1 ) + λ 1 ∑ i n − 1 ( f ( V a i ) − f ( V a i + 1 ) ) 2 ⏞ ( 2 ) + λ 2 ∑ i n f ( V a i ) ⏞ ( 3 ) l\left(\mathcal{B}_{a}, \mathcal{B}_{n}\right)= \overbrace{\max \left(0,1-\max \limits_{i \in \mathcal{B}_{a}} f\left(\mathcal{V}_{a}^{i}\right)+\max \limits_{i \in \mathcal{B}_{n}} f\left(\mathcal{V}_{n}^{i}\right)\right)}^{(1)} +\lambda_{1} \overbrace{\sum_{i}^{n-1}\left(f\left(\mathcal{V}_{a}^{i}\right)-f\left(\mathcal{V}_{a}^{i+1}\right)\right)^{2}}^{(2)} +\lambda_{2} \overbrace{\sum_{i}^{n} f\left(\mathcal{V}_{a}^{i}\right)}^{(3)} l(Ba,Bn)=max(0,1−i∈Bamaxf(Vai)+i∈Bnmaxf(Vni)) (1)+λ1i∑n−1(f(Vai)−f(Vai+1))2 (2)+λ2i∑nf(Vai) (3)
(1)让最高得分分别趋近 0 和 1,(2)(3)为正则化项,(2)最小化相邻片段的得分,使视频输出更平滑,(3)最小化异常视频的总得分,使异常视频的正常片段得分趋近 0。
精度
- 二分类 AUC = 75.41
- 多分类尝试了最近邻 23.0 和 TCNN 28.4,基本没用
2020 - 暴力行为 - UBI-Fights
来源 | YouTube 和 LiveLeak |
数量 | 1000个视频,216个暴力视频和784个正常视频 |
类别数量 | 1 |
数据格式
文件结构如下所示,标签采用表格形式,对视频的每一帧进行标注,0代表正常,1代表暴力。
.
├── annotation
│ ├── F_0_1_0_0_0.csv
│ ├── ...
│ └── N_99_0_0_1_0.csv
├── test_videos.csv
└── videos
├── fight
│ ├── F_0_1_0_0_0.mp4
│ ├── ...
│ └── F_99_1_2_0_0.mp4
└── normal
├── N_0_0_0_1_0.mp4
├── ...
└── N_99_0_0_1_0.mp4
Baseline
方法
论文的训练框架比较复杂,用弱监督模型 WS(weakly supervised)和自监督模型 SS(self-supervised)迭代训练。
网络结构和 UCF-Crime 中的一致,WS 输入是视频切分成片段的 C3D 特征,损失函数是稍作改进的 MIL,大致是添加一项,使不确定的片段得分趋近 0.5;SS 的输入是单个片段的 C3D 特征,损失函数是二元交叉熵。
WS 的输出筛选出置信度高的正负样本片段作为 SS 的训练数据,SS 的输出决定下一次 WS 的训练数据。
文中说 SS 部分用于标注无标签数据,但实验部分使用的数据集是 UBI-Fights 和 UCF-Crime,没提到未标注的数据集的来源。
精度
动作检测
2019 - 暴力行为 - CCTV-Fights
来源 | YouTube |
数量 | 1000个视频,合计18小时,2414个打斗实例 |
参数 | 280个CCTV视频,时长5s~12min,平均2min 720个其他来源视频,时长3s~7min,平均45s |
特点 | 其他来源主要来自移动摄像头,少数来自行车记录仪、无人机、直升机 |
类别数量 | 1 |
数据格式
"fight_0001": { # 视频文件名
"duration": 66.0666666666667, # 视频时长 s
"subset": "validation", # 数据集划分 training, validation, testing
"nb_frames": 992, # 视频总帧数
"frame_rate": 30, # fps
"source": "CCTV", # 数据来源
"annotations": [ # 标注动作类别及时间段
{
"segment": [4.83333333333333, 9.83333333333333],
"label": "Fight"
}
]
},
Baseline
方法
尝试了不同的特征提取器和分类器,大致是逐帧或逐片段输出置信度,然后做平滑作为时序输出。
精度
预测片段 50% 与标注重合视作正确
2020 - 暴力行为 - XD-Violence
来源 | YouTube、电影 |
数量 | 4754个视频,合计217小时,2405个暴力视频和2349个正常视频 |
特点 | 包含音频信息用于多模态 视频可能包含多种类型暴力行为,按比重标注多标签 |
类别数量 | 6 |
类别 | 训练集(多标签) | 测试集(多标签) | 训练集(首个标签) | 测试集(首个标签) | |
---|---|---|---|---|---|
Abuse | 虐待 | 50 | 11 | 36 | 8 |
Car accident | 车祸 | 444 | 106 | 393 | 96 |
Explosion | 爆炸 | 382 | 103 | 314 | 91 |
Fighting | 打架 | 481 | 126 | 445 | 120 |
Riot | 暴动 | 384 | 101 | 381 | 101 |
Shooting | 枪击 | 442 | 104 | 336 | 84 |
合计 | |||||
violent | 暴力 | 1905 | 500 | ||
normal | 正常 | 2049 | 300 |
数据格式
训练集做视频级别标注,在视频文件名中用代号对应类别
B1: Fighting
B2: Shooting
B4: Riot
B5: Abuse
B6: Car accident
G: Explosion
Bullet.in.the.Head.1990__#01-19-10_01-21-30_label_B2-B5-0.mp4
Mission.Impossible.Ghost.Protocol.2011__#01-15-36_01-16-32_label_B1-B2-0.mp4
测试集做帧级别标注,每一对数值代表一个实例的起始帧和结束帧
v=S-7rRLrxnVQ__#1_label_B4-0-0 0 1517 1970 3038
v=u5SF4SlqNDQ__#00-00-00_00-01-00_label_G-0-0 624 912 950 1441
v=u5SF4SlqNDQ__#00-02-39_00-03-41_label_G-0-0 77 1430
v=cEOM18n8fhU__#1_label_G-0-0 2133 2750
v=NnmqkS1e88s__#1_label_B4-0-0 0 1750
v=vaSOMEIe1Bg__#1_label_G-0-0 300 1380
Casino.Royale.2006__#00-50-05_00-51-16_label_B1-B2-B6 43 180 383 625 702 830 860 1006 1066 1096 1527 1634
Baseline
方法
(粗看了下代码,细节上可能不准确)视频数据经过 C3D 或 I3D 抽特征,音频数据通过 VGGish 抽特征,两部分特征 concat 到一起作为网络输入。
首先通过几个一维卷积将原始特征降维到128,记作
x
[
B
,
T
,
128
]
x [B,T,128]
x[B,T,128]。
x
x
x 通过 3 个由图卷积网络构成的分支输出 3 份特征,将这 3 份特征 concat 到一起最后经过一个 Linear
输出分类。
图卷积网络的核心计算是
Y
=
A
(
X
W
)
Y=A(XW)
Y=A(XW),其中
W
[
C
i
n
,
C
o
u
t
]
W [C_{in},C_{out}]
W[Cin,Cout] 是可学习参数对输入特征维度做调整,
A
[
B
,
T
,
T
]
A [B,T,T]
A[B,T,T] 可以看作注意力或是重要性的矩阵,而 3 个分支主要就是
A
A
A 的计算方式不同。
- 对 x x x 用 kernel size = 5 即时间维度感受野更大的一维卷积对特征降维后,以计算差的绝对值为核心构建相似度矩阵
- 对 x x x 以点积运算的方式计算特征相似度,类似余弦相似度
- 根据 B , T B,T B,T 生成矩阵,类似位置编码
训练依然是在 MIL 上稍作改进。
精度
AP = 78.64%