
THUMOS14 完整实战用 action-detection 复现 ICCV 2017 论文 SOTA 结果【免费下载链接】action-detectiontemporal action detection with SSN项目地址: https://gitcode.com/gh_mirrors/ac/action-detection时间动作检测temporal action detection一直是视频理解中最具挑战性的任务之一而 action-detection 项目正是 ICCV 2017 论文《Temporal Action Detection with Structured Segment Networks》的官方开源实现。本文将带你以 THUMOS14 数据集为主线从零开始完成环境搭建、数据准备、模型训练到最终评估的完整实战轻松复现论文中 33.15% mAP 的 SOTA 结果。一、SSN 是什么为什么值得复现SSNStructured Segment Networks结构化分段网络由 Yue Zhao 等人提出核心思想是把一段视频中的动作实例结构化为开始Starting 主体Course 结束Ending三个分段每个分段由不同的网络分支建模并通过时序动作分组Temporal Action Grouping, TAG生成高质量的动作提案。与早期方法相比SSN 的三个显著优势让它成为经典结构化建模显式区分动作的起始、进行与结束阶段边界定位更精准端到端可训练在 PyTorch 中实现训练与测试流程清晰SOTA 性能在 THUMOS14 上取得当年领先的检测精度项目核心源码都集中在根目录训练入口 ssn_train.py、测试入口 ssn_test.py、评估脚本 eval_detection_results.py以及工具库 ops/ 目录下的 thumos_db.py、detection_metrics.py 等。二、快速了解 THUMOS14 数据集THUMOS14 是时间动作检测领域使用最广泛的基准数据集之一训练集使用 validation 集的 200 段未剪辑视频测试集使用 testing 集的 213 段未剪辑视频️类别数20 个动作类别如 BaseballPitch、CliffDiving、SoccerPenalty 等⏱️任务在视频中定位每个动作的起止时间并分类项目已在 data/ 目录中预置了标注文件例如 THUMOS14 测试集的时序标注位于 data/thumos_14/temporal_annotations_test/每个类别对应一个 txt 文件格式为视频名 起始帧 结束帧。三、第一步搭建运行环境SSN 的运行依赖非常简单官方推荐的环境如下组件说明Python 3开发语言PyTorch深度学习框架DenseFlow光流提取工具来自 TSN 项目GPU建议 4~8 块 GPU 进行训练安装其余 Python 依赖只需一行命令pip install -r requirements.txt依赖清单可在 requirements.txt 中查看包含 torchvision、numpy、scikit-learn、pandas 等常用库。获取项目代码git clone --recursive https://gitcode.com/gh_mirrors/ac/action-detection四、第二步提取视频帧与光流SSN 采用双流架构RGB 静态帧 光流图因此需要把原始视频分解为帧并提取光流。官方建议使用 TSN 项目提供的extract_optical_flow.sh脚本bash scripts/extract_optical_flow.sh SRC_FOLDER OUT_FOLDER NUM_WORKERSRC_FOLDER存放原始视频的目录OUT_FOLDER帧与光流图的输出目录NUM_WORKER并行提取光流的 GPU 数量这一步耗时较长建议耐心等待提取完成后会得到按视频组织的帧目录结构。五、第三步准备 Proposal ListSSN 的训练与测试都依赖proposal list提案列表文件它记录了每个视频的时序动作提案以及对应的真实标注ground truth信息。由于不同解码器可能输出不同帧数项目提供了归一化的提案列表需要根据你实际提取的帧数进行适配。只需运行python gen_proposal_list.py thumos14 FRAMES_PATH该脚本的逻辑见 gen_proposal_list.py它会读取 data/thumos14_tag_val_normalized_proposal_list.txt 和 data/thumos14_tag_test_normalized_proposal_list.txt结合实际帧目录生成可用的提案列表。六、零训练复现直接使用参考模型评估如果你只想快速验证 SSN 的效果、不想耗费 GPU 训练项目贴心地提供了预训练参考模型。在准备好 proposal list 后两步即可完成评估第一步提取检测分数python ssn_test.py thumos14 RGB none result.pkl --use_reference第二步计算检测精度python eval_detection_results.py thumos14 result.pkl评估脚本 eval_detection_results.py 会基于 data/dataset_cfg.yaml 中配置的 NMS 阈值与 top-k 参数报告不同 IoU 阈值下的 mean Average PrecisionmAP。七、完整训练流程从 TAG 提案到 SSN 训练如果你希望从零训练自己的模型完整流程分为四个阶段1️⃣ 生成滑窗提案python gen_sliding_window_proposals.py validation rgb FRAME_PATH data/thumos14_sw_val_proposal_list.txt --dataset thumos14 python gen_sliding_window_proposals.py testing rgb FRAME_PATH data/thumos14_sw_test_proposal_list.txt --dataset thumos142️⃣ 训练二分类动作性分类器python binary_train.py thumos14 RGB -b 16 --lr_steps 20 40 --epochs 453️⃣ 生成 TAG 提案python gen_bottom_up_proposals.py actionness.pkl --dataset thumos14 --subset testing --write_proposals data/thumos14_tag_test_proposal_list.txt --frame_path FRAME_PATH4️⃣ 训练 SSN 主网络python ssn_train.py thumos14 RGB -b 16 --lr_steps 20 40 --epochs 45训练参数在 ssn_opts.py 中定义包括分段数--num_body_segments 5、dropout、学习率策略等。若想使用 Kinetics 预训练权重提升精度只需追加--kin参数。数据集采样策略前景/背景/不完整样本比例可在 data/dataset_cfg.yaml 中调整。八、THUMOS14 性能对照论文 SOTA 一览使用项目提供的参考模型在 THUMOS14 测试集上可得到如下 mAP0.5IoU 结果模型架构RGBFlowRGBFlowBNInception16.1822.5027.36BNInceptionKinetics 预训练21.3127.9332.50InceptionV318.2823.3028.00InceptionV3Kinetics 预训练22.1230.5133.15 可见两个关键结论光流分支Flow显著优于 RGB 分支而Kinetics 预训练能为最终精度带来约 5 个百分点的提升。想要复现最顶尖结果请选择 InceptionV3 Kinetics 预训练 RGBFlow 融合。九、实战小贴士与避坑指南⚠️必须使用--recursive克隆否则会缺少子模块代码帧数一致性proposal list 生成时必须传入正确的帧目录否则训练会报错️GPU 资源双流融合训练建议 4 块以上 GPU训练时间随 epoch 数线性增长断点续训使用--resume参数可从 checkpoint 继续训练checkpoint 会自动命名评估指标mAP 计算在 ops/detection_metrics.py 中实现理解 IoU 阈值与 NMS 的配合能帮你更好地解读结果十、总结通过本文的完整实战你已经掌握了从环境搭建、数据准备、TAG 提案生成、SSN 训练到最终评估的全流程并可在 THUMOS14 上复现 ICCV 2017 论文的 SOTA 结果。action-detection 作为经典的时间动作检测开源实现其结构化分段思想至今仍是视频理解研究的重要基础。接下来不妨将同样的流程迁移到 ActivityNet v1.2 数据集只需把命令中的thumos14换成activitynet1.2开启你的视频理解探索之旅吧【免费下载链接】action-detectiontemporal action detection with SSN项目地址: https://gitcode.com/gh_mirrors/ac/action-detection创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考