帮酷LOGO
  • 显示原文与译文双语对照的内容
Repo for tech report "A Pursuit for Temporal Accuracy in General Activity Detection"

  • 源代码名称:action-detection
  • 源代码网址:http://www.github.com/yjxiong/action-detection
  • action-detection源代码文档
  • action-detection源代码下载
  • Git URL:
    git://www.github.com/yjxiong/action-detection.git
  • Git Clone代码到本地:
    git clone http://www.github.com/yjxiong/action-detection
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/yjxiong/action-detection
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 基于结构段网络的实时动作检测

    项目网站。

    这个 repo 包含 ICCV 2017上提供的SSN框架的代码和模型。

    Temporal Yuanjun,Limin,Dahua,Venice,Venice,Temporal,Temporal,Temporal,Temporal,Temporal,Venice,Venice,Venice,Venice,Venice 。

    [Arxiv Preprint]

    SSN框架的前身是在

    Pursuit Pursuit Pursuit,Limin,Dahua,arXiv,,,。

    电子邮件内容使用指南

    先决条件

    [ back top ]

    为了便于使用,在PyTorch中的培训和测试是在中实现的。 我们需要以下软件来运行 SSN 。

    其他次要 python 模块可以通过运行

    pip install -r requirements.txt

    实际上,我们建议在运行SSN之前设置 temporal-segment-networks ( TSN ) 插件项目。 但这将有助于处理DenseFlow的许多依赖问题,但是这是可选的,因为我们只使用DenseFlow工具。

    对于光流提取和运行SSN来说,需要 gpu 。 node 中通常 4至 8的gpu可以保证平滑的训练体验。

    代码和数据准备

    [ back top ]

    获取代码

    从现在开始,假设你已经设置了 PyTorch,并且已经从 TSN 项目准备好了DenseFlow工具。

    用git克隆这里 repo,请记住使用 --recursive

    git clone --recursive https://github.com/yjxiong/action-detection

    下载数据集

    我们支持两个公开的数据集,用于时间动作检测: THUMOS14 & ActivityNet v1.2.下面是下载这两个数据集的一些步骤。

    下载每个数据集的视频后,将它们解压缩到文件夹 SRC_FOLDER

    Pretrained模型

    我们提供标准PyTorch格式的pretrained参考模型和初始化模型。 不需要手动下载初始化模型。 在必要时,torch.model_zoo 工具会下载它们。

    提取帧和光流图像

    为了运行训练和测试,我们需要将视频分解为帧。 同时,时间流网络需要光流或者扭曲光流图像来输入。

    我们建议使用 TSN repo 插件中的工具提供程序。 下面的说明来自 TSN repo

    这些可以通过脚本 scripts/extract_optical_flow.sh 实现。 脚本有三个参数

    • SRC_FOLDER 指向你放置视频数据集的文件夹
    • OUT_FOLDER 指向 根目录,其中提取的帧和光学图像将被放入其中
    • NUM_WORKER 指定并行用于流提取的GPU数,必须大于 1

    用于运行光流提取的命令如下所示

    bash scripts/extract_optical_flow.sh SRC_FOLDER OUT_FOLDER NUM_WORKER

    准备提案列表

    web服务模型的培训和测试依赖于文件调用"建议列表"。 它记录视频时间操作建议的信息和groundTruth动作实例的信息。

    在不同机器上的解码器可能输出不同数量的帧的意义。 我们以标准化形式提供提案列表。 要开始训练和测试,需要将建议列表调整到为每个视频提取的实际帧数。 要执行这里操作,请运行

    python gen_proposal_list.py DATASET FRAMES_PATH

    火车标签模型

    由于对标签训练的大量查询,我们提供了列举二进制actionness分类器的列表,并生成建议。

    生成滑动窗口建议

    首先,我们生成一系列滑动窗口的建议。

    • THUMOS14
    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 thumos14 
    • ActivityNet v1.2
    python gen_sliding_window_proposals.py training rgb FRAME_PATH data/activitynet1.2_sw_train_proposal_list.txt --dataset activitynet --version 1.2
    python gen_sliding_window_proposals.py validation rgb FRAME_PATH data/activitynet1.2_sw_val_proposal_list.txt --dataset activitynet --version 1.2

    训练二进制actionness分类器

    利用上述建议,我们可以训练一个二进制actionness分类器。

    python binary_train.py thumos14 MODALITY -b 16 --lr_steps 20 40 --epochs 45 

    或者

    python binary_train.py activitynet1.2 MODALITY -b 16 --lr_steps 3 6 --epochs 7 

    获得actionness分数

    python binary_test.py DATASET MODALITY SUBSET TRAINING_CHECKPOINT ACTIONNESS_RESULT_PICKLE 

    生成标记建议

    THUMOS14

    python gen_bottom_up_proposals.py ACTIONNESS_RESULT_PICKLE --dataset thumos14 --subset validation --write_proposals data/thumos14_tag_val_proposal_list.txt --frame_path FRAME_PATH
    python gen_bottom_up_proposals.py ACTIONNESS_RESULT_PICKLE --dataset thumos14 --subset testing --write_proposals data/thumos14_tag_test_proposal_list.txt --frame_path FRAME_PATH

    ActivityNet1.2

    python gen_bottom_up_proposals.py ACTIONNESS_RESULT_PICKLE --dataset activitynet --subset training --write_proposals data/activitynet1.2_tag_train_proposal_list.txt --frame_path FRAME_PATH
    python gen_bottom_up_proposals.py ACTIONNESS_RESULT_PICKLE --dataset activitynet --subset validation --write_proposals data/activitynet1.2_tag_val_proposal_list.txt --frame_path FRAME_PATH

    其中 ACTIONNESS_RESULTS_PICKLE 可以是多个( 比如 。 来自两个流的actionness预测

    测试培训模型

    [ back top ]

    评估基准数据集

    使用pretrained模型评估时间动作检测有两个步骤。

    首先,我们将通过运行以下命令提取所有建议的检测分数

    python ssn_test.py DATASET MODALITY TRAINING_CHECKPOINT RESULT_PICKLE

    然后使用建议分数,通过运行

    python eval_detection_results.py DATASET RESULT_PICKLE

    这个脚本将报告在不同IoU阈值下的平均平均精度的检测性能。

    使用参考模型进行评估

    我们在机器上提供训练的模型,以便在实际训练任何型号之前测试它们。 你可以在性能section中看到参考模型的性能。

    若要使用这些模型,请运行以下命令

    python ssn_test.py DATASET MODALITY none RESULT_PICKLE --use_reference

    Addtionally,我们提供了使用动力学pretraining训练的模型,以使用它们,运行

    python ssn_test.py DATASET MODALITY none RESULT_PICKLE --use_kinetics_reference

    培训 SSN

    [ back top ]

    在本文中,我们在ImageNet上使用pretraining报告。 所以我们先迭代这个案例。

    使用 ImageNet pretrained模型进行

    使用以下命令训练 SSN

    • THUMOS14
    python ssn_train.py thumos14 MODALITY -b 16 --lr_steps 20 40 --epochs 45
    • ActivityNet v1.2
    python ssn_train.py activitynet1.2 MODALITY -b 16 --lr_steps 3 6 --epochs 7

    在这里,MODALITY 可以是 RGBFlowDATASET 可以是 thumos14activitynet1.2 。 你可以通过运行以下命令来查找有关这里脚本的详细信息

    python ssn_train.py -h

    培训后,将有一个检查点文件,它的名称包含数据集。架构和模式的信息。 这里检查点文件包含经过训练的模型权重,可以用于测试。

    带有动力学pretrained模型的

    另外,我们在动力学数据集上提供了初始化模型 pretrained 。 这个pretraining过程可以提高检测性能。 更多细节可以在上找到pretrained模型网站。

    使用以下pretrained模型,向训练命令添加一个选项 --kin,如

    python ssn_train.py thumos14 MODALITY -b 16 --lr_steps 20 40 --epochs 45 --kin

    python ssn_train.py activitynet1.2 MODALITY -b 16 --lr_steps 3 6 --epochs 7 --kin

    系统将使用pytorch实用程序的model_zoo 来下载你的pretrained模型。

    基于的时序动作检测

    [ back top ]

    我们提供了一套参考时间动作检测模型。 它们在基准数据集上的性能如下。 这些结果也可以在项目网站上找到。 你可以下载

    THUMOS14

    map@0.5iou ( % ) RGB流 RGB+Flow
    BNInception16.1822.5027.36
    BNInception ( 动力学 Pretrained )21.3127.9332.50
    InceptionV318.2823.3028.00 ( 29.8* )
    InceptionV3 ( 动力学 Pretrained )22.1230.5133.15 ( 34.3* )

    在 *的分类模型中,利用的分类模型对检测结果进行过滤,只保留那些来自于预测行为类的。

    ActivityNet v1.2

    平均映射RGB流 RGB+Flow
    BNInception24.8521.6926.75
    BNInception ( 动力学 Pretrained )27.5328.028.57
    InceptionV325.7522.4427.82
    InceptionV3 ( 动力学 Pretrained )
    其他信息

    [ back top ]

    引用

    如果你觉得SSN对你的研究有用的话,请参考下面的文章

    @inproceedings{SSN2017ICCV,
     author = {Yue Zhao and
     Yuanjun Xiong and
     Limin Wang and
     Zhirong Wu and
     Xiaoou Tang and
     Dahua Lin},
     title = {Temporal Action Detection with Structured Segment Networks},
     booktitle = {ICCV},
     year = {2017},
    }

    相关项目

    • UntrimmmedNets: 我们的学习行为识别模型的最新框架。 ( cvpr'17 ) 。
    • 动力学Pretrained模型: 面向动力学数据集的TSN动作识别模型。
    • TSN: 裁剪视频的艺术动作识别框架的状态。 ( eccv'16 ) 。
    • CES-STAR@ActivityNet: ActivityNet挑战 2016的解决方案,基于 TSN 。
    • EnhancedMV: 视频编码中运动矢量的实时动作识别。

    联系人

    有关任何问题,请提交问题或者联系

    Yue Zhao: thuzhaoyue@gmail.com
    Yuanjun Xiong: bitxiong@gmail.com



    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语