FEATURED · 精选文章

action-detection 深度揭秘:SSN 如何精准定位视频中的动作起点与终点

发布时间 / 2026/8/21 17:58:25
来源 / 创域科博编辑部
栏目 / 资讯中心
action-detection 深度揭秘:SSN 如何精准定位视频中的动作起点与终点 action-detection 深度揭秘SSN 如何精准定位视频中的动作起点与终点【免费下载链接】action-detectiontemporal action detection with SSN项目地址: https://gitcode.com/gh_mirrors/ac/action-detectionaction-detection 是一个基于 PyTorch 实现的时间动作检测Temporal Action Detection开源项目其核心是 ICCV 2017 论文提出的 SSNStructured Segment Networks结构化段网络。它的拿手好戏是从未剪辑的长视频中精准定位每个动作的起点与终点并同时给出动作类别。本文将从零讲透 SSN 的定位原理、两阶段检测流程、在 THUMOS14 与 ActivityNet 上的实测表现并附上从克隆仓库到跑通推理的完整上手指南。什么是时间动作检测为什么动作起点与终点这么难定位传统动作识别Action Recognition处理的是已经剪辑好的短视频模型只需回答这段视频在做什么。而时间动作检测面对的是几十分钟甚至几小时的长视频动作何时开始、何时结束、持续多久、是什么动作全部未知。难点主要有三个难点说明 边界模糊动作边界往往是渐变的起跳从哪一帧开始算人眼都难统一 背景干扰长视频 90% 以上时间是无关背景动作只占极小片段⏱️ 时长悬殊同一个动作短则 1 秒、长则几十秒尺度差异巨大action-detection 给出的答案就是用SSN把动作实例建模为三段结构从结构上解决边界与尺度问题。SSN 核心思想把动作拆成开始、进行、结束三个时段SSN 的灵感来自一个直觉一个完整的动作实例可以划分为三个语义不同的时段。开始段Starting Segment动作即将发生的过渡阶段例如挥拍前的蓄力进行段Course Segment动作的核心阶段信息最丰富结束段Ending Segment动作收尾阶段例如击球后的随挥。这三个时段在特征上各有侧重SSN 网络结构也据此设计。在 ssn_models.py 中模型构造时分别指定starting_segment、course_segment、ending_segment三个参数默认配置为(1, 5, 1)或(1, 8, 1)等组合三段合起来构成一次前向输入。这种设计带来两个直接好处信息解耦不同时段提取不同粒度的特征开始/结束段关注边界进行段关注内容结构约束无论动作长短都被统一映射到三段结构天然具备尺度不变性。STPP 结构化时间金字塔池化动作边界的定海神针SSN 最精妙的部分是ops/ssn_ops.py中的StructuredTemporalPyramidPoolingSTPP结构化时间金字塔池化。普通的时序池化把整段视频的特征一视同仁地平均边界信息被稀释。STPP 则对三个时段分别做多粒度金字塔池化开始段与结束段细分 1 个粒度强调整体过渡状态进行段细分为 2 个粒度1 等分 2 等分既看整体也看局部每个粒度的特征用norm_num归一化并与动作边界位置scaling相乘把边界偏移量显式编码进特征。STPP 输出的特征同时送入两个分类头输出头作用activity 分类头判断动作类别含背景类对应activity_fccompleteness 分类头判断该提案是否完整覆盖一个动作对应completeness_fcregression 回归头预测起点/终点偏移对应regressor_fc其中 completeness 头是 SSN 的独特创新它能区分完全包含动作与只包含动作一部分的提案从而过滤掉大量半截子提案。动作边界回归如何让起点终点再精确一步分类只能回答这个片段像不像完整动作真正把起点与终点钉准的是位置回归。在ssn_dataset.py的SSNInstance.compute_regression_targets()中可以看到回归目标的设计中心偏移(gt_center - prop_center) / prop_size即真实动作中心相对提案中心的比例偏移时长缩放log(gt_size / prop_size)即真实时长相对提案时长的对数比例。有了这两个目标回归头输出的就是提案该往左挪多少、该伸长或缩短多少再配合测试阶段 eval_detection_results.py 中的perform_regression()与时间维 NMS就能把检测框收敛到高精度的 [start, end] 区间。两阶段检测流程提案生成 精排打分SSN 遵循经典的两阶段检测范式流程如下第一阶段TAG 提案生成用gen_sliding_window_proposals.py在视频上生成多尺度滑窗候选用binary_train.py训练一个二分类动作性actionness分类器判断每个窗口像不像动作用gen_bottom_up_proposals.py依据动作性得分做自底向上合并输出高质量的时序提案列表proposal list。第二阶段SSN 精排把提案送入 SSN 模型ssn_test.py为每个提案输出活动得分、完整性得分与回归偏移最后在 eval_detection_results.py 中融合多模态得分RGB Flow、做 NMS 与回归按不同 IoU 阈值计算 mAP。项目在data/目录下已内置归一化的提案列表例如thumos14_tag_val_normalized_proposal_list.txt、activitynet1.2_tag_val_normalized_proposal_list.txt可以直接用gen_proposal_list.py适配到本机帧数。训练细节三类样本与在线难例挖掘SSN 的训练非常讲究数据配比。ssn_dataset.py把训练提案分成三类池子样本类型含义默认比例前景Foreground与真实动作 IoU 0.71不完整Incomplete部分覆盖动作0.1 IoU 0.36背景Background几乎不含动作1不完整样本占比最高这正是为了让 completeness 头学会识别残缺。配合ops/ssn_ops.py中实现的OHEM在线难例挖掘损失模型会优先优化那些最难分类的样本收敛更稳、效果更好。THUMOS14 与 ActivityNet v1.2 上的实测表现参考模型在 README 中给出了公开基准数据RGBFlow 双流融合THUMOS14 为 mAP0.5IoUActivityNet 为平均 mAP模型THUMOS14RGBFlowRGBFlowBNInception16.1822.5027.36BNInceptionKinetics 预训练21.3127.9332.50InceptionV3Kinetics 预训练22.1230.5133.15模型ActivityNet v1.2RGBFlowRGBFlowBNInception24.8521.6926.75BNInceptionKinetics 预训练27.5328.028.57可以看到双流融合 Kinetics 预训练能让 mAP 提升近 10 个点这也是 README 反复强调的调参方向。快速上手从克隆仓库到跑通推理1. 环境准备Python3 PyTorchGPU4~8 卡体验最佳DenseFlow 工具用于抽帧与光流提取安装依赖pip install -r requirements.txt。2. 克隆仓库与数据git clone --recursive https://gitcode.com/gh_mirrors/ac/action-detection下载 THUMOS14 或 ActivityNet v1.2 数据集后先用 TSN 项目的脚本抽帧并提取光流再把归一化提案列表适配到本机python gen_proposal_list.py DATASET FRAMES_PATH3. 训练与测试训练 SSNRGB 或 Flow 模态45 个 epochpython ssn_train.py thumos14 RGB -b 16 --lr_steps 20 40 --epochs 45测试并评估python ssn_test.py thumos14 RGB TRAINING_CHECKPOINT RESULT_PICKLE python eval_detection_results.py thumos14 RESULT_PICKLE如果暂时不想训练直接用官方参考模型评估python ssn_test.py thumos14 RGB none RESULT_PICKLE --use_reference4. 关键文件速查用途文件SSN 模型与三头结构ssn_models.pySTPP 池化、OHEM 损失ops/ssn_ops.py数据集与三类样本采样ssn_dataset.py提案生成全流程gen_sliding_window_proposals.py、gen_bottom_up_proposals.py检测结果评测eval_detection_results.py数据集配置与 NMS 等工具ops/utils.py、ops/detection_metrics.py总结SSN 之所以能精准定位视频中动作的起点与终点靠的是三件武器三段式结构建模开始/进行/结束、STPP 结构化时间金字塔池化多粒度特征聚合、边界回归 完整性判别精修边界并过滤残缺提案。action-detection 仓库把整套流程完整开源从提案生成到模型训练再到评测一条命令即可串联。无论你是做视频理解研究还是想在企业级视频分析场景落地这份代码都是极佳的起点与参考。【免费下载链接】action-detectiontemporal action detection with SSN项目地址: https://gitcode.com/gh_mirrors/ac/action-detection创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻