精华内容
下载资源
问答
  • 2022-02-18 16:30:48

    Linux Python快速实现PySlowFast视频理解
    https://blog.csdn.net/lly1122334/article/details/118162190

    1、摘要

    本文提出了用于视频识别的SlowFast网络。我们的模型包括:
    (1)一条slow pathway,以低帧速率运行,以捕获空间语义;
    (2)一条fast pathway,以高帧速率运行,以精细的时间分辨率捕获运动。
    fast pathway可以通过减少通道容量而变得非常轻量,但可以学习有用的时间信息用于视频识别。模型在视频动作分类和检测方面都取得了较好的性能,我们的slowfast概念针对性能有很大的改进。并在Kinetics,Charades和AVA等基准上取得了最好的效果。

    2、介绍

    在识别图像I(x, y)时,习惯对称地处理两个空间维度x和y。自然图像的统计数据证明了这些合理性,即图像各向同性(所有方向都是等可能的)。但是视频中所有时空方向的可能性并不相同,慢动作比快动作更可能发生(事实上,我们所看到的世界大部分在某一时刻都处于禁止状态),我们可以分解网络结构来分别处理空间信息和时间事件。

    空间范畴的语义演化缓慢,比如挥手不会改变“手”的类别,一个人从步行转为跑步,也总是处于“人”的类别。因此,对分类语义(以及他们的颜色、纹理、光照等)的识别可以相对缓慢地刷新。但对于正在执行的动作可以比其主体身份更快地发展,例如拍手、挥手、摇晃、步走或跳跃。可以期望使用快速刷新帧(高时间分辨率)来有效地模拟可能快速变化的运动。

    基于上述推论,提出了一个视频识别的双路径slowfast模型。根据上述描述,slow路径显然是为了捕获空间语义信息,并且顾名思义,该路径以较低的帧速度和较慢的刷新速度运行。fast路径负责捕获快速变化的运动,以快速刷新速度和高时间分辨率运行。尽管这条路径具有很高的时间速率,但它非常轻,约占总计算量的20%。这是由于该路径有较少的通道和较弱的能力来处理空间信息,因为空间信息可以由slow路径提供。这两条path是由横向连接融合。

    fast pathway由于其轻量性,不需要时间池化操作(因为它可以在所有中间层的高帧速率下运行,并保持时间准确性)。slow pathway由于时间速率较慢,更加关注空间语义。通过以不同的时间速率处理原始视频,这两种途径在视频建模方面拥有自己的专业知识(fast掌握时间信息,slow掌握空间信息)。

    另外,还有一种著名的视频识别架构即two-stream模型,它也是双流设计,但它没有探索不同时间速度的潜力,而这是我们方法中的一个关键概念。此外,two-stream方法对两个流采用相同的主干结构,而我们的快速路径更轻。我们的方法不计算光流,因此,我们的模型是从原始数据端到端的学习的。在实验中,我们观察到slowfast更有效。我们对kinetics行为分类的综合消融实验证明了slowfast的效果。重要的是,slowfast 在四个数据集(kinetics400,kinetics600,AVA,Charades)上都实现了最高的水准。

    我们的方法部分受到了灵长类视觉系统中视网膜神经节细胞的生物学研究的启发,尽管不可否认这个类比是粗糙和不成熟的。这些研究结果表明,在这些细胞中,大约80%是小细胞(p细胞),大约15-20%是巨细胞(m细胞)。m细胞的工作频率很高,对快速的时间变化有反应,但对空间细节或颜色不敏感。p细胞提供良好的空间细节和颜色,但较低的时间分辨率,对刺激反应缓慢。我们的框架在以下几个方面是类似的:(i)我们的模型有两个路径分别在低和高时间分辨率下工作;(ii)我们的Fast路径旨在捕捉快速变化的运动,但捕获的空间细节较少,类似m细胞;(iii)我们的Fast路径是轻量级的,类似于m细胞的小比例。我们希望这些关系将启发更多的计算机视觉模型用于视频识别。

    我们评估了我们的方法在Kinetics-400,Kinetics-600,Charades,AVA数据集上。我们在Kinetcs动作分类方面的综合消融实验证明了SlowFast的有效性。
    慢速网络在所有数据集上都取得了最新的进展,比文献中先前的系统有显著的进步。我们的综合能力
    2、相关工作
    时空滤波器:动作可以表示为时空对象,并通过时空中的定向滤波捕获,如HOG3D和cuboids。3D ConvNets将2D图像模型扩展到时空域,同样处理时空维度。也有相关的方法专注于长期滤波和利用时间跨距的池化,以及将卷积分解为单独的二维空间和一维时间滤波器。

    除了时空过滤或其可分离版本,我们的工作追求通过使用两种不同的时间速度来更彻底地分离知识建模。

    视频识别的光流:基于光流的手工时空特征是一个经典的研究分支。这些方法,包括流直方图、运动边界直方图和轨迹,在深度学习普及之前,这些方法已经在动作识别方面表现出了竞争性能。

    在深度神经网络的背景下,双流方法利用光流作为另一种输入模态。该方法是文献中许多竞争结果的基础。然而,考虑到光流是一种手工设计的表示,它在方法上是不令人满意的,而且双流方法往往不是与流一起端到端学习的。

    3、slowfast网络介绍

    slowfast网络可以被描述为以两种不同帧速率运行的单流体系结构,但我们使用路径的概念来反映与生物中的Parvo-和Magnocellular对应物的类比。我们的通用架构有一条slow pathway和fast pathway,fast pathway通过横向连接至slow pathway 融合形成slowfast网络。
    在这里插入图片描述可以看出,fast pathway的时间维度分辨率和通道数分别是slow pathway的a倍和b倍。

    3.1 slow pathway介绍

    慢路径可以是任何卷积模型将一段视频作为一个时空体积。我们的慢路径的关键概念是输入帧上的大时间跨度τ,也就是说,它只处理τ帧中的一个。我们研究的τ的一个典型值为16—这个刷新速度是对于30帧的视频大约每秒采样2帧。表示Slow路径采样的帧数为T, 原始视频长度为T × τ坐标系。

    3.2 fast pathway

    与慢路径并行,Fast路径是另一个具有以下属性的卷积模型。

    高帧率: 我们的目标是在时间维度上有一个良好的表示。我们的快速路径在τ /α的小时间跨度下工作,其中α > 1是快速和缓慢路径之间的帧速率比。这两种途径在同一个原始视频长度上运行,所以Fast途径对αT帧进行采样,其密度是Slow途径的α倍。在我们的实验中,一个典型值是α = 8。
    α的存在slowfast概念的关键。它明确指出这两条路径在不同的时间速度下工作,从而驱动两个子网络的参数学习进而实例化这两条路径。

    高时间分辨率特征: 我们的Fast路径不仅具有高输入分辨率,而且追求高分辨率特征贯穿整个网络层次中。在我们的实例化中,我们在整个Fast路径中没有使用时间下采样层(既没有时间池也没有时间跨度卷积),直到分类之前的全局池化层。因此,我们的特征张量在时间维度上总是有αT帧,尽可能地保持时间保真度。

    低通道容量: 我们的快速路径也与现有模型的区别在于,它可以使用显著地较低的信道容量来实现良好的准确性SlowFast模型。这使得它很轻。

    简而言之,我们的Fast pathway是一个类似于Slow路径的卷积网络,但有一个β比率的(β<1)慢通道。在我们的实验中,典型值是β = 1/8。请注意,公共层的计算(浮点数运算,或FLOPs)通常是其通道比例的二次型。这就是fast pathway比slow pathway计算效率更高的原因。在我们的实例化中,Fast pathway通常占用总计算量的20%。有趣的是,正如第一节所提到的,证据表明灵长类视觉系统中15-20%的视网膜细胞是m细胞(对快速运动敏感,但对颜色或空间细节不敏感)。

    低信道容量也可以解释为较弱的空间语义表达能力。从技术上讲,Fast pathway没有对空间维度进行特殊处理,因此由于通道较少,其空间建模能力应该低于Slow pathway。模型结果表明,Fast pathway 在弱化其空间建模能力的同时增强其时间建模能力是一种理想的折衷。

    基于这一解释,我们还探索了在Fast pathway中削弱空间容量的不同方式,包括降低输入空间分辨率和去除颜色信息。正如我们将通过实验证明的那样,这些版本都可以提供良好的准确性,这表明具有较少空间容量的轻量级Fast pathway是有益的。

    3.3 侧面连接

    这两条pathway的信息被融合,所以其中一条路径并不是不知道另一条路径学习到的表征。我们通过横向连接来实现这一点,横向连接已被用于融合基于光流的两流网络。在图像目标检测中,横向连接是一种流行的融合不同空间分辨率和语义的技术。

    类似于[12,35],我们在每一个阶段都在两条通路之间附加一个横向连接”(图1)。特别是ResNets[24],这些连接紧跟在pool1、res2、res3和res4之后。这两条路径有不同的时间维度,因此横向连接执行转换来匹配它们(详见3.4节)。我们使用单向连接,将Fast路径的特征融合到Slow路径中(图1)。我们对双向融合进行了实验,发现了类似的结果。
    最后,对每个路径的输出执行一个全局平均池。然后将两个合并的特征向量连接起来作为全连接分类器层的输入。

    3.4 实例化

    我们关于SlowFast的想法是通用的,它可以用不同的backbone(例如,[45,47,24])和实现细节进行实例化。在这个小节中,我们将描述网络架构的实例。
    在这里插入图片描述
    表1中指定了一个示例SlowFast模型。我们用T*S^2表示时空大小,其中T是时间长度,S是方形空间作物的高度和宽度。下面将详细描述。

    Slow-pathway:表1中的slow-pathway是一个临时跨越的3D ResNet,由[12]修改而来。它有T = 4帧作为网络输入,稀疏地从64帧原始剪辑与时间跨度τ = 16采样。在这个实例化中,我们选择不执行时间下采样,因为当输入步幅很大时这样做是有害的。

    与典型的C3D / I3D模型不同,我们使用非简并的时间卷积(时间核大小>1,表1中划线)仅在res4和res5中;从conv1到res3的所有滤波器本质上都是这个路径中的二维卷积核。这是由我们的实验观察引起的,在早期层中使用时间卷积会降低精度。我们认为,这是因为当物体移动快且时间跨度大时,除非空间感受域足够大(即在后面的层次中),否则时间感受域内几乎没有相关性。


    深入调研

    TSN

    作者指出了CNN用在action recgonition中的两个缺陷
    (1)视频是一个长时序结构的,而主流的CNN只专注于静态图像或短时序图像。
    (2)现有的公开标注视频资源太少,使用深层的CNN很可能会导致过拟合。

    作者提出了两个问题:
    (1)怎么样设计一个有效的视频级框架来做动作识别。
    (2)在有限的标注资源下,怎样训练CNN模型。

    设计思想:
    (1)在训练模型中发现Dense temporal sampling会存在大量高度相似的帧,为解决这个问题,设计了TSN。即,将视频分为多个snippets(片段),每次训练都是从每个snippet中随机抽帧,并将结果进行汇总,得到最终结果。
    (2)对于框架中卷积网络的选取,作者选取了深层的BNInception。而为解决上述生成网络容易过拟合问题,探索了许多可以增强数据的方法。

    一是cross-modality交叉模态预训练:通过更多的输入形式来增强TSN模型的判别能力。之前的通用做法是使用RGB作为spatial stream输入,optical flow作为temporal stream输入。作者提出了两种新的输入方法:RGB diff和warped optical flow 。作者认为单一的RGB缺少上下文信息,而通过连续两帧得到的RGB dif可以得到动作信息。一般的optical flow 有时会聚焦在运动的背景上,而不是动作本身上,对此,作者提出了warped optical flow 。

    二是regularization tech:batch Normalization可以有效地处理covariate shift协变量转变问题,BN通过减每个batch的mean并除以variance,将数据转化成标准的高斯分布。这样可以加快训练的收敛,但也可能会导致过拟合,因为有限的训练数据和真实环境可能会有偏置。所以作者在预训练初始化模型后,将除第一层外的其它BN层的mean和variance 全部固定。作者将该做法称为partial BN。

    三是data augmentation:主流方法是通过random crop 和horizontal flipping 来进行增强数据,作者再次基础上提出了Corner cropping和scale jittering。
    Corner cropping是为了避免在裁剪时总是集中在图像的中心区域。
    Scale jittering 是在裁剪时按一定范围的随机选择裁剪尺寸。
    在这里插入图片描述

    C3

    作者希望能够设计出一个简单可靠的模型,希望该模型具有通用、简洁、高效和简单易实现等特性。

    作者认为3D卷积是具备以上特点的最佳选择。3D卷积可以汇聚视频的目标,场景和动作等信息,并适用于多种任务。

    其实在本文之前,已经有人提出了3D卷积网络。

    本文相比前人的3D卷积,最大特点有以下3种:
    (1)前人提出的3D卷积,在训练时需要将视频做分段处理,现在本文的3D卷积可以接受整个视频的帧。
    (2)本文的3D卷积网络相比前人的更深了
    (3)在设计深层次的3D卷积时,借鉴了传统的2D卷积,并得到了一个相对最优模型。
    在这里插入图片描述

    I3D

    作者指出在图像分类的领域中,通过ImageNet获取的预训练模型可以很好地应用到其他领域和任务中;那么是否可以有这样的一个大规模的视频数据集,通过该数据集训练得到的模型在小数据集(HMD51,UCF101等)上取到更好的效果,然后作者就搞了一个名为kinetics的大数据集。

    作者首先总结了当前的主流视频动作识别模型:
    1、2D卷积+LSTM(结构a):2D卷积只能处理单帧数据,对于视频数据来说,需要将2D处理的多张单帧数据做融合,融合方法一种是aggregation,一种是LSTM。作者认为LSTM在理论上讲是更好的方法。

    2、3D卷积(结构b):3D卷积看似更适合做视频处理,但有个主要问题是它比2D有更多的参数,这样就会更难训练。现在作者有一个大规模的视频数据集–kinetics,所以3D卷积相比2D是一个更好的选择。

    3、Two-stream网络(结构c):LSTM在卷积的顶层获取高层次(明显)的动作(毕竟时序处理中会有信息损失),而不能获取关键的低层次动作。而且在做反向传递时,由于多帧铺展,训练起来也非常的耗时。为了能够有效的捕捉动作信息,双流可以说是一种有效简单的方法。
    Two-stream构造:使用两个通过ImageNet预训练好的卷积(2D)模型,一个做RGB数据处理,一个做optical flow数据处理。

    作者根据以上各个模型的优缺点,设计了一个基于3D卷积的双流模型(Two-stream Inflated 3DConvNets)(结构e)

    因为是3D卷积模型,没有像2D卷积那样成熟的预训练参数。作者便借鉴成熟的2D卷积网络----Inceptionv1,将该网络中的2D换为3D。H、W 对应的参数都直接从Inception中获取,但D参数需要自己训练。

    I3D的训练方式是先通过Kinetics数据集进行预训练,再训练HMD51和UCF101并验证效果,效果有明显提升。
    在这里插入图片描述


    总结

    TSN3D卷积输入的是单帧图片序列,需要将视频分段,C3D的输入虽然是一个16帧的样本,但是可以通过模型实现自动提取。RGB和光流信息分组处理,基本都是在双流法 的基础上进行结构改进的,C3D与双流思路融合就是现在的I3D方法。


    **Fast pathway:**表1显示了α = 8和β = 1/8的Fast pathway的例子。它具有更高的时间分辨率(绿色)和更低的通道容量(橙色)。
    Fast路径在每个区块中都有非简并的时间卷积。这是由于观察到该路径对时域卷积具有良好的时间分辨率,以捕捉详细的运动。此外,Fast通道设计上没有时序下采样层。

    Lateral connections:我们的横向连接从fast融合到slow pathway。在融合之前,它需要匹配特征的大小。表示Slow pathway的特征形状为{T, S^2, C}, Fast路径的特征形状为{αT, S^2, βC}。我们在横向连接中试验了以下转换:
    (i)time-to-channel:将{αT, S^2,βC}转化为{T, S^2, αβC},这意味着我们将所有的α帧打包到一个帧的通道中。
    (ii)Time-strided-sampling:我们简单地从每一个α帧中选取一个,所以{αT, S^2, βC}变成{T, S^2, βC}。
    (iii)Time-strided convolution:我们用2βC的输出通道和α步长用511核进行3D卷积。横向连接的输出通过累加或串联的方式融合到slow pathway中。

    4、实验:动作分类

    我们在四个视频识别数据集使用标准评估协议评估我们的方法。对于本节介绍的动作分类实验,我们考虑了广泛使用的Kinetics- 400[30],最近的Kinetics- 600[3]和Charades[43]。在第5节的动作检测实验中,我们使用具有挑战性的AVA数据集[20]。

    **Training:**我们在Kinetics上的模型是从随机初始化(从零开始)训练的,没有使用ImageNet[7]或任何预先训练。我们按照[19]中的配方使用同步的SGD训练。详细信息请参见附录。
    对于时域,我们从全长视频中随机抽取一个片段(αT *τ帧),进入慢路径和快路径的分别是T帧和αT帧;对于空间域,我们从一个视频中随机裁剪出224 224个像素,或者它的水平翻转,在[256,320]像素中随机选取较短的边。

    Inference:按照通常的做法,我们沿着时间轴一致地从一个视频中选取10个片段。对于每个片段,我们将较短的空间边缩放到256像素,并取3个256*256的crop覆盖空间维度,作为全卷积测试的近似,遵循[56]代码。我们将softmax分数平均用于预测。

    我们报告实际的推理时间计算。由于现有的论文在空间和时间上裁剪的推理策略不同。与之前的工作相比,我们报告了每个时空视图的FLOPs”(带有空间裁剪的时间片段)在推理和使用的视图数量。回想一下,在我们的案例中,推理时间空间大小是2562(取代训练的2242),每个有3个空间片段(30个视图)使用了10个时间片段。

    Datasets:
    kinetics - 400包含240k训练视频和20k验证视频,涵盖400个人类动作类别。
    Kinetics-600拥有392k个培训视频和30k验证视频,涵盖600个类别。我们报告top-1和top-5分类准确度(%)。我们报告一个单独的、在空间中裁剪的片段的计算成本(以FLOPs为单位)。
    Charades拥有9.8k的培训视频和1.8k的验证视频,涵盖一个多标签分类设置的157个类别,平均持续30秒的活动。性能是用平均精度(mAP)来衡量的。

    4.1 主要结果

    Kinetics-400。表2显示了使用各种输入采样(T*τ)和骨干的SlowFast实例化的最新结果的比较:ResNet-50/101 (R50/101)[24]和Nonlocal (NL)[56]。

    与之前最先进的[56]相比,我们的最佳模型提供了2.1%的顶级精度。值得注意的是,我们所有的结果都比没有经过ImageNet预处理的现有结果好得多。特别是,我们的模型(79.8%)比之前这类模型的最佳结果(73.9%)绝对好5.9%。我们对SlowFast网络的ImageNet预训练进行了实验,发现它们在预训练和从零开始(随机初始化)的变体上表现相似(0.3%)。

    我们的结果以较低的推理时间成本实现。我们注意到,许多现有的工作(如果报告的话)在时间轴上使用了非常密集的样本采样,这可能导致在推理时产生100个视图。这一成本在很大程度上被忽视了。相比之下,我们的方法不需要很多时间片段,因为高时间分辨率还需轻量级的快速路径。我们每个时空视图的成本可以很低(例如,36.1 GFLOPs),但仍然是准确的。

    将表2中的SlowFast变异体(具有不同的主干和样本率)与对应的Slow-only路径进行比较,以评估Fast路径带来的改进。水平轴测量256^2空间大小的单个输入片段的模型容量,与总体推理成本的1/30成正比。

    Fig2表明,对于所有的变体,Fast路径能够以相对较低的成本持续提高慢路径的性能。下一小节将对Kinetics-400进行更详细的分析。

    Kinetics-600 数据相对较新,现有的结果是有限的。所以我们的目标主要是在表3中提供结果供以后参考。请注意,Kinetics-600验证集与Kinetics-400训练集[3]重叠,因此我们不对Kinetics-400进行预训练。在最新的ActivityNet 2018[15]挑战赛中获胜的参赛作品[21]报告了79.0%的最佳单模型、单模态精度。我们的变体显示出良好的性能,最好的模型为81.8%。最近的kinetics700[4]的SlowFast结果在[11]中。

    Charades[43]是一个具有更长的活动范围的数据集。表4显示了我们在它上面的SlowFast结果。为了进行公平的比较,我们的基线是只有39.0 mAP的慢速版本。SlowFast比这一基线增加3.1 mAP(至42.1),而额外的NL导致额外的0.4 mAP。在预先训练动力学-600时,我们的mAP也达到了45.2。总的来说,在表4中,我们的SlowFast模型以更低的成本,以稳定的利润率超过了之前的最佳数字(STRG[57])。

    4.2 消融实验 ablatoin experiments

    本节提供了kinetics-400的消融研究,比较精度和计算复杂性。

    Slow vs slowfast。我们的第一个目标是通过改变Slow pathway的采样率(T* τ)来探索SlowFast的互补性。因此,本消融研究了快路径与慢路径的帧率比α。图2显示了Slow和SlowFast模型的各种实例化的准确性与复杂性的权衡。可以看到,在慢路径中增加一倍的帧数可以提高性能(垂直轴),同时增加一倍的计算成本(水平轴),而SlowFast在计算成本小幅增加的情况下显著地扩展了所有变体的性能,即使慢路径运行在更高的帧速率上。绿色箭头表示将Fast路径添加到相应的Slow-only架构的好处。红色箭头表示SlowFast提供更高的精度和更低的成本。

    更多相关内容
  • 【人工智能】图像处理应用实战案例:slowfast检测算法使用yolov3来检测人的行为.zip
  • SlowFast 与 JS 实验 SlowFast 是一个库拆分视频,用于播放不同的播放速率。 这个想法来自与 用法 使用页面中 html 中的视频创建 SlowFast 对象,并对每个部分的信息进行评分。 var video = document . ...
  • SlowFast测试视频.zip

    2021-06-29 21:06:46
    Linux Python快速实现PySlowFast视频理解 https://xercis.blog.csdn.net/article/details/118162190
  • 用知云文献翻译软件+自己的一些理解翻译的何神的这篇SlowFast Networks for Video Recognition论文
  • slow-fast network 何凯明最新论文源码,内含部分注释
  • SlowFast复现

    千次阅读 2022-03-21 12:54:26
    SlowFast复现目录参考环境准备配置slowfast环境代码修改测试有可能出现的错误 目录 参考 论文 github地址 参考博客: 【SlowFast复现】SlowFast Networks for Video Recognition复现代码 使用自己的视频进行demo检测...

    目录

    参考

    论文
    github地址
    参考博客:
    【SlowFast复现】SlowFast Networks for Video Recognition复现代码 使用自己的视频进行demo检测
    可以对着这个大佬的b站视频复现,但是可以先看一下我的文章,因为官方对环境的要求有了变化

    环境准备

    windows下复现问题较多
    租用网站的GPU:极链AI云平台
    学生认证可以白嫖100云币券

    • 创建实例
      选择1个GPU就够用了
      在这里插入图片描述
    • 选择镜像
      pytorch尽量选择最高版本的,上面两个博客都是基于pytorch1.4(python3.7),现在github中的配置文件已经要求python≥3.8
      在这里插入图片描述
    • 安装Xshell
      在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    配置slowfast环境

    官方配置要求
    在这里插入图片描述
    我的配置过程
    在xshell执行git clone将源代码下载至home目录下

    cd /home/
    git clone https://github.com/facebookresearch/SlowFast.git
    
    # 创建虚拟环境
    conda create -n slowfast python=3.8
    conda activate slowfast
    
    # 安装cuda11.1的pytorch1.8和torchvision0.9.0
    pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
    # 安装fvcore
    pip install 'git+https://github.com/facebookresearch/fvcore'
    # 安装simplejson
    pip install simplejson
    # 安装PyAv
    conda install av -c conda-forge
    # 安装iopath
    pip install -U iopath
    # 安装psutil
    pip install psutil
    # 安装opencv-python pip install opencv-python
    #我在这没有安装opencv 因为后面执行setup.py会给我们安好,建议不要pip安装
    
    # 安装tensorboard
    pip install tensorboard
    # 安装cython
    pip install cython
    # 安装detectron2,这里与官网安装方式不同
    python -m pip install detectron2==0.6 -f \
      https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.8/index.html
    
    # 导入路径,路径如下图所示,修改成你自己的路径即可
    export PYTHONPATH=/home/slowfast/slowfast:$PYTHONPATH
    # 进入SlowFast目录
    cd slowfast
    # 编译,可以干点别的事等着,非常慢
    python setup.py build develop
    
    

    代码修改

    • 在/slowfast/demo/AVA目录下新建ava.json,文件内容如下
    {"bend/bow (at the waist)": 0, "crawl": 1, "crouch/kneel": 2, "dance": 3, "fall down": 4, "get up": 5, "jump/leap": 6, "lie/sleep": 7, "martial art": 8, "run/jog": 9, "sit": 10, "stand": 11, "swim": 12, "walk": 13, "answer phone": 14, "brush teeth": 15, "carry/hold (an object)": 16, "catch (an object)": 17, "chop": 18, "climb (e.g., a mountain)": 19, "clink glass": 20, "close (e.g., a door, a box)": 21, "cook": 22, "cut": 23, "dig": 24, "dress/put on clothing": 25, "drink": 26, "drive (e.g., a car, a truck)": 27, "eat": 28, "enter": 29, "exit": 30, "extract": 31, "fishing": 32, "hit (an object)": 33, "kick (an object)": 34, "lift/pick up": 35, "listen (e.g., to music)": 36, "open (e.g., a window, a car door)": 37, "paint": 38, "play board game": 39, "play musical instrument": 40, "play with pets": 41, "point to (an object)": 42, "press": 43, "pull (an object)": 44, "push (an object)": 45, "put down": 46, "read": 47, "ride (e.g., a bike, a car, a horse)": 48, "row boat": 49, "sail boat": 50, "shoot": 51, "shovel": 52, "smoke": 53, "stir": 54, "take a photo": 55, "text on/look at a cellphone": 56, "throw": 57, "touch (an object)": 58, "turn (e.g., a screwdriver)": 59, "watch (e.g., TV)": 60, "work on a computer": 61, "write": 62, "fight/hit (a person)": 63, "give/serve (an object) to (a person)": 64, "grab (a person)": 65, "hand clap": 66, "hand shake": 67, "hand wave": 68, "hug (a person)": 69, "kick (a person)": 70, "kiss (a person)": 71, "lift (a person)": 72, "listen to (a person)": 73, "play with kids": 74, "push (another person)": 75, "sing to (e.g., self, a person, a group)": 76, "take (an object) from (a person)": 77, "talk to (e.g., self, a person, a group)": 78, "watch (a person)": 79}
    
    
    • 修改
      /slowfast/demo/AVA/SLOWFAST_32x2_R101_50_50.yaml,内容改为如下:
    TRAIN:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 16
      EVAL_PERIOD: 1
      CHECKPOINT_PERIOD: 1
      AUTO_RESUME: True
      CHECKPOINT_FILE_PATH: "/media/bao/新加卷1/sunqiang/SlowFast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl"  #path to pretrain model
      CHECKPOINT_TYPE: pytorch
    DATA:
      NUM_FRAMES: 32
      SAMPLING_RATE: 2
      TRAIN_JITTER_SCALES: [256, 320]
      TRAIN_CROP_SIZE: 224
      TEST_CROP_SIZE: 256
      INPUT_CHANNEL_NUM: [3, 3]
    DETECTION:
      ENABLE: True
      ALIGNED: False
    AVA:
      BGR: False
      DETECTION_SCORE_THRESH: 0.8
      TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]
    SLOWFAST:
      ALPHA: 4
      BETA_INV: 8
      FUSION_CONV_CHANNEL_RATIO: 2
      FUSION_KERNEL_SZ: 5
    RESNET:
      ZERO_INIT_FINAL_BN: True
      WIDTH_PER_GROUP: 64
      NUM_GROUPS: 1
      DEPTH: 101
      TRANS_FUNC: bottleneck_transform
      STRIDE_1X1: False
      NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]
      SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]]
      SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]
    NONLOCAL:
      LOCATION: [[[], []], [[], []], [[6, 13, 20], []], [[], []]]
      GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]
      INSTANTIATION: dot_product
      POOL: [[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]]
    BN:
      USE_PRECISE_STATS: False
      NUM_BATCHES_PRECISE: 200
    SOLVER:
      MOMENTUM: 0.9
      WEIGHT_DECAY: 1e-7
      OPTIMIZING_METHOD: sgd
    MODEL:
      NUM_CLASSES: 80
      ARCH: slowfast
      MODEL_NAME: SlowFast
      LOSS_FUNC: bce
      DROPOUT_RATE: 0.5
      HEAD_ACT: sigmoid
    TEST:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 8
    DATA_LOADER:
      NUM_WORKERS: 2
      PIN_MEMORY: True
    
    NUM_GPUS: 1
    NUM_SHARDS: 1
    RNG_SEED: 0
    OUTPUT_DIR: .
    
    #TENSORBOARD:
    #  MODEL_VIS:
    #    TOPK: 2
    DEMO:
      ENABLE: True
      LABEL_FILE_PATH: "/media/bao/新加卷1/sunqiang/SlowFast/demo/AVA/ava.json"
      INPUT_VIDEO: "/home/slowfast/Vinput/1.mp4"
      OUTPUT_FILE: "/home/slowfast/Vinput/2.mp4"
    
      DETECTRON2_CFG: "COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml"
      DETECTRON2_WEIGHTS: https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl
    
    
    • 下载预训练权重文件
      下载页面
      在这里插入图片描述
      我先下载在本地,然后利用了xftp传输,包括后面用的测试视频也是直接这样传的
      在这里插入图片描述
      下载模型SLOWFAST_32x2_R101_50_50.pkl 到/home/slowfast/configs/AVA/c2目录下,修改参数
    TRAIN:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 16
      EVAL_PERIOD: 1
      CHECKPOINT_PERIOD: 1
      AUTO_RESUME: True
      CHECKPOINT_FILE_PATH: '/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl'  #path to pretrain model
      CHECKPOINT_TYPE: pytorch
    
    

    测试

    代码运行

    cd /home/slowfast/
    python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml
    

    结果(随便在网上找的一段视频)
    在这里插入图片描述

    有可能出现的错误

    我在slowfast的配置部分写的安装命令已经是和我的环境适配了

    python -m pip install detectron2==0.6 -f \
      https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.8/index.html
    

    我最开始因为因为detectron2的版本问题报错:not such file or directory
    和我的环境不一样的话,可以去该链接下找到合适的版本:
    detectron2

    在这里插入图片描述

    展开全文
  • slowfast.tar.xz

    2021-06-03 10:18:24
    slowfast.tar.xz
  • 资源分类:Python库 所属语言:Python 资源全名:slowfast-1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
  • SlowFast官网地址 代码下载: git clone https://github.com/facebookresearch/slowfast 这里建议使用码云来下载,使用上面的那个命令实在太慢,码云下载方法: git clone 显著提速,解决Github代码拉取速度缓慢...

    复现过程视频:
    B站复现视频
    复现结果

    一,准备

    1.1代码

    SlowFast官网地址
    代码下载:

    git clone https://github.com/facebookresearch/slowfast
    

    这里建议使用码云来下载,使用上面的那个命令实在太慢,码云下载方法:
    git clone 显著提速,解决Github代码拉取速度缓慢问题

    下载链接

    1.2 环境准备

    这里推荐几个网站,租用这些网站的GPU然后跑代码,因为普通的笔记本搭建图像处理的环境会遇到各种各样的问题。在网站上租用GPU可以使用官方搭建好的镜像,如果跑代码或者自己把环境弄乱了,就可以释放实例,重新再来(约等于自己电脑的重装系统,但是这个租用的释放和搭建新镜像速度非常快)

    以下是我推荐的几个网站:
    1,极链AI云平台(我用的就是这个,有50元的白嫖额度,我就是靠这50元的额度跑出来slowfast)
    2,MistGPU

    1.3 搭建镜像

    第一步,在极链AI云平台选择一个机子,我选的一般都是4元/小时的。
    在这里插入图片描述

    第二步,选择GPU数量,我们跑自己的视频,一般1个GPU就够了
    在这里插入图片描述
    第三步,实例镜像,官方给的框架是PyTorch,这里也就PyTorch,PyTorch的版本官方给的1.3(当时官方发布的时候,PyTorch最高版本就1.3,但是这里的镜像没有1.3,所以选择一个比它高的1.4版本)。注意,python一定要选3.7版本python一定要选3.7版本python一定要选3.7版本,3.6版本我是跑出了问题。CUDA只有10.1可选(这也是官方镜像的好处,在自己电脑上安装CUDA很烦的)

    备注:有读者尝试的时候,这里出现问题,这是我2021年2月份做出来的,读者是4月份尝试的,然后报错,这里读者采用了pytorch1.4的版本,cuda10.2的版本。所以如果版本问题的话,尝试把pytorch和cuda版本提高。
    在这里插入图片描述
    第四步,按照极链AI云平台的手册指引,在Xshell上打开实例。
    在这里插入图片描述

    1.4 配置slowfast环境

    按照官网上的步骤来
    Installation
    注意,这里的opencv-python就不要执行,因为镜像里自带了opencv-python!
    在这里插入图片描述

    1.5 ava.json

    {"bend/bow (at the waist)": 0, "crawl": 1, "crouch/kneel": 2, "dance": 3, "fall down": 4, "get up": 5, "jump/leap": 6, "lie/sleep": 7, "martial art": 8, "run/jog": 9, "sit": 10, "stand": 11, "swim": 12, "walk": 13, "answer phone": 14, "brush teeth": 15, "carry/hold (an object)": 16, "catch (an object)": 17, "chop": 18, "climb (e.g., a mountain)": 19, "clink glass": 20, "close (e.g., a door, a box)": 21, "cook": 22, "cut": 23, "dig": 24, "dress/put on clothing": 25, "drink": 26, "drive (e.g., a car, a truck)": 27, "eat": 28, "enter": 29, "exit": 30, "extract": 31, "fishing": 32, "hit (an object)": 33, "kick (an object)": 34, "lift/pick up": 35, "listen (e.g., to music)": 36, "open (e.g., a window, a car door)": 37, "paint": 38, "play board game": 39, "play musical instrument": 40, "play with pets": 41, "point to (an object)": 42, "press": 43, "pull (an object)": 44, "push (an object)": 45, "put down": 46, "read": 47, "ride (e.g., a bike, a car, a horse)": 48, "row boat": 49, "sail boat": 50, "shoot": 51, "shovel": 52, "smoke": 53, "stir": 54, "take a photo": 55, "text on/look at a cellphone": 56, "throw": 57, "touch (an object)": 58, "turn (e.g., a screwdriver)": 59, "watch (e.g., TV)": 60, "work on a computer": 61, "write": 62, "fight/hit (a person)": 63, "give/serve (an object) to (a person)": 64, "grab (a person)": 65, "hand clap": 66, "hand shake": 67, "hand wave": 68, "hug (a person)": 69, "kick (a person)": 70, "kiss (a person)": 71, "lift (a person)": 72, "listen to (a person)": 73, "play with kids": 74, "push (another person)": 75, "sing to (e.g., self, a person, a group)": 76, "take (an object) from (a person)": 77, "talk to (e.g., self, a person, a group)": 78, "watch (a person)": 79}
    

    将上面的内容,保存在ava.json里面,然后保存在/home/slowfast/demo/AVA目录下。
    在这里插入图片描述

    1.6 SLOWFAST_32x2_R101_50_50.yaml

    在目录:/home/slowfast/demo/AVA中打开SLOWFAST_32x2_R101_50_50.yaml
    内容改为如下:

    TRAIN:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 16
      EVAL_PERIOD: 1
      CHECKPOINT_PERIOD: 1
      AUTO_RESUME: True
      CHECKPOINT_FILE_PATH: '/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl'  #path to pretrain model
      CHECKPOINT_TYPE: pytorch
    DATA:
      NUM_FRAMES: 32
      SAMPLING_RATE: 2
      TRAIN_JITTER_SCALES: [256, 320]
      TRAIN_CROP_SIZE: 224
      TEST_CROP_SIZE: 256
      INPUT_CHANNEL_NUM: [3, 3]
    DETECTION:
      ENABLE: True
      ALIGNED: False
    AVA:
      BGR: False
      DETECTION_SCORE_THRESH: 0.8
      TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]
    SLOWFAST:
      ALPHA: 4
      BETA_INV: 8
      FUSION_CONV_CHANNEL_RATIO: 2
      FUSION_KERNEL_SZ: 5
    RESNET:
      ZERO_INIT_FINAL_BN: True
      WIDTH_PER_GROUP: 64
      NUM_GROUPS: 1
      DEPTH: 101
      TRANS_FUNC: bottleneck_transform
      STRIDE_1X1: False
      NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]
      SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]]
      SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]
    NONLOCAL:
      LOCATION: [[[], []], [[], []], [[6, 13, 20], []], [[], []]]
      GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]
      INSTANTIATION: dot_product
      POOL: [[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]]
    BN:
      USE_PRECISE_STATS: False
      NUM_BATCHES_PRECISE: 200
    SOLVER:
      MOMENTUM: 0.9
      WEIGHT_DECAY: 1e-7
      OPTIMIZING_METHOD: sgd
    MODEL:
      NUM_CLASSES: 80
      ARCH: slowfast
      MODEL_NAME: SlowFast
      LOSS_FUNC: bce
      DROPOUT_RATE: 0.5
      HEAD_ACT: sigmoid
    TEST:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 8
    DATA_LOADER:
      NUM_WORKERS: 2
      PIN_MEMORY: True
    
    NUM_GPUS: 1
    NUM_SHARDS: 1
    RNG_SEED: 0
    OUTPUT_DIR: .
    #TENSORBOARD:
    #  MODEL_VIS:
    #    TOPK: 2
    DEMO:
      ENABLE: True
      LABEL_FILE_PATH: "/home/slowfast/demo/AVA/ava.json"
      INPUT_VIDEO: "/home/slowfast/Vinput/2.mp4"
      OUTPUT_FILE: "/home/slowfast/Voutput/1.mp4"
    
      DETECTRON2_CFG: "COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml"
      DETECTRON2_WEIGHTS: detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl
    

    下面这一行代码存放的是输入视频的位置,当然Vinput这个文件夹是我自己建的

     INPUT_VIDEO: "/home/slowfast/Vinput/2.mp4"
    

    下面这一行代码存放的是检测后视频的位置,当然Voutput这个文件夹是我自己建的

    OUTPUT_FILE: "/home/slowfast/Voutput/1.mp4"
    

    1.7 SLOWFAST_32x2_R101_50_50 .pkl

    下载页面
    下载模型SLOWFAST_32x2_R101_50_50 .pkl 到/home/slowfast/configs/AVA/c2目录下

    在这里插入图片描述

    然后在目录:/home/slowfast/demo/AVA下文件SLOWFAST_32x2_R101_50_50.yaml里修改如下:

    TRAIN:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 16
      EVAL_PERIOD: 1
      CHECKPOINT_PERIOD: 1
      AUTO_RESUME: True
      CHECKPOINT_FILE_PATH: '/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl'  #path to pretrain model
      CHECKPOINT_TYPE: pytorch
    

    二,代码运行

    在xShell终端中,跳转到以下目录

    cd /home/slowfast/
    

    输入运行命令

    python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml
    

    最后结果:在这里插入图片描述
    最后结果上传到了B站上:视频链接

    三 错误解决

    from av._core import time_base, pyav_version as version, library_versions
    ImportError: libopenh264.so.5: cannot open shared object file: No such file or directory

    解决方案:
    参考之前写的解决方案链接
    直接再终端运行:

    conda install x264=='1!152.20180717' ffmpeg=4.0.2 -c conda-forge
    
    展开全文
  • Windows10配置SlowFast环境全过程 并使用自己的视频进行demo检测环境简介开始配置配置demo环境结果 环境简介 pycharm python=3.7.11 我就是不用linux,就要用window10配置。 你还需要安装git,下下来以后一直下一步...

    SlowFast在Windows10环境配置全过程并使用自己的视频进行demo检测

    环境简介

    pycharm
    python=3.7.11

    我就是不用linux,就要用window10配置。
    你还需要安装git,下下来以后一直下一步即可。
    可能还需要Visual Studio。

    1. 开始配置

    首先下载官网的代码库

    git clone https://github.com/facebookresearch/slowfast
    cd SlowFast
    

    新建一个虚拟环境。

    在这里插入图片描述

    安装 pytorch 和 torchvision 对应cuda的GPU版本。

    接下来就按我给的安装提示一步一步的安装。

    # 要双引号!!!!!!!
    pip install 'git+https://github.com/facebookresearch/fvcore'  
    pip install 'git+https://github.com/facebookresearch/fairscale' 
    pip install simplejson
    pip install -U iopath
    pip install psutil,tensorboard,opencv-python,moviepy,moviepy,pytorchvideo
    pip install pillow,pyyaml,pandas,matplotlib,sklearn
    

    其中Detection2的安装可以按这个:

    git clone https://github.com/facebookresearch/detectron2.git
    python -m pip install -e detectron2
    

    在这里插入图片描述
    千万要有耐心,一步一步走。

    接下来就是就是编译:

    python setup.py build develop
    

    如果没报错的话就代表没有错误,如果报错了就代表有错误。

    2.配置demo环境

    终于到了测试自己视频的环节。
    在主目录下/demo/AVA下新建ava.json,复制下面的标签到里面。

    在这里插入图片描述
    ava.json

    {"bend/bow (at the waist)": 0, "crawl": 1, "crouch/kneel": 2, "dance": 3, "fall down": 4, "get up": 5, "jump/leap": 6, "lie/sleep": 7, "martial art": 8, "run/jog": 9, "sit": 10, "stand": 11, "swim": 12, "walk": 13, "answer phone": 14, "brush teeth": 15, "carry/hold (an object)": 16, "catch (an object)": 17, "chop": 18, "climb (e.g., a mountain)": 19, "clink glass": 20, "close (e.g., a door, a box)": 21, "cook": 22, "cut": 23, "dig": 24, "dress/put on clothing": 25, "drink": 26, "drive (e.g., a car, a truck)": 27, "eat": 28, "enter": 29, "exit": 30, "extract": 31, "fishing": 32, "hit (an object)": 33, "kick (an object)": 34, "lift/pick up": 35, "listen (e.g., to music)": 36, "open (e.g., a window, a car door)": 37, "paint": 38, "play board game": 39, "play musical instrument": 40, "play with pets": 41, "point to (an object)": 42, "press": 43, "pull (an object)": 44, "push (an object)": 45, "put down": 46, "read": 47, "ride (e.g., a bike, a car, a horse)": 48, "row boat": 49, "sail boat": 50, "shoot": 51, "shovel": 52, "smoke": 53, "stir": 54, "take a photo": 55, "text on/look at a cellphone": 56, "throw": 57, "touch (an object)": 58, "turn (e.g., a screwdriver)": 59, "watch (e.g., TV)": 60, "work on a computer": 61, "write": 62, "fight/hit (a person)": 63, "give/serve (an object) to (a person)": 64, "grab (a person)": 65, "hand clap": 66, "hand shake": 67, "hand wave": 68, "hug (a person)": 69, "kick (a person)": 70, "kiss (a person)": 71, "lift (a person)": 72, "listen to (a person)": 73, "play with kids": 74, "push (another person)": 75, "sing to (e.g., self, a person, a group)": 76, "take (an object) from (a person)": 77, "talk to (e.g., self, a person, a group)": 78, "watch (a person)": 79}
    

    然后下载官网权重文件

    在这里插入图片描述

    打开/demo/AVA/SLOWFAST_32x2_R101_50_50.yaml将我的配置信息粘贴进去

    TRAIN:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 16
      EVAL_PERIOD: 1
      CHECKPOINT_PERIOD: 1
      AUTO_RESUME: True
      # 刚刚下载的官方权重文件的路径
      CHECKPOINT_FILE_PATH: 'D:/python/video_classify/SlowFast-main/weights/SLOWFAST_32x2_R101_50_50.pkl'  #path to pretrain model
      CHECKPOINT_TYPE: pytorch
    DATA:
      NUM_FRAMES: 32
      SAMPLING_RATE: 2
      TRAIN_JITTER_SCALES: [256, 320]
      TRAIN_CROP_SIZE: 224
      TEST_CROP_SIZE: 256
      INPUT_CHANNEL_NUM: [3, 3]
    DETECTION:
      ENABLE: True
      ALIGNED: False
    AVA:
      BGR: False
      DETECTION_SCORE_THRESH: 0.8
      TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]
    SLOWFAST:
      ALPHA: 4
      BETA_INV: 8
      FUSION_CONV_CHANNEL_RATIO: 2
      FUSION_KERNEL_SZ: 5
    RESNET:
      ZERO_INIT_FINAL_BN: True
      WIDTH_PER_GROUP: 64
      NUM_GROUPS: 1
      DEPTH: 101
      TRANS_FUNC: bottleneck_transform
      STRIDE_1X1: False
      NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]
      SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]]
      SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]
    NONLOCAL:
      LOCATION: [[[], []], [[], []], [[6, 13, 20], []], [[], []]]
      GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]
      INSTANTIATION: dot_product
      POOL: [[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]]
    BN:
      USE_PRECISE_STATS: False
      NUM_BATCHES_PRECISE: 200
    SOLVER:
      MOMENTUM: 0.9
      WEIGHT_DECAY: 1e-7
      OPTIMIZING_METHOD: sgd
    MODEL:
      NUM_CLASSES: 80
      ARCH: slowfast
      MODEL_NAME: SlowFast
      LOSS_FUNC: bce
      DROPOUT_RATE: 0.5
      HEAD_ACT: sigmoid
    TEST:
      ENABLE: False
      DATASET: ava
      BATCH_SIZE: 8
    DATA_LOADER:
      NUM_WORKERS: 2
      PIN_MEMORY: True
    
    NUM_GPUS: 1
    NUM_SHARDS: 1
    RNG_SEED: 0
    OUTPUT_DIR: .
    #TENSORBOARD:
    #  MODEL_VIS:
    #    TOPK: 2
    DEMO:
      ENABLE: True
      LABEL_FILE_PATH: "./demo/AVA/ava.json" #刚刚生成的label文件
      INPUT_VIDEO: "./input/1.mp4"			#视频输入路径
      OUTPUT_FILE: "./output/1.mp4"			#视频输出路径
    
      DETECTRON2_CFG: "COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml"
      DETECTRON2_WEIGHTS: detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl
    

    注意修改,权重文件的路径,label文件的路径,输入视频的路径以及输出视频的路径

    运行以下代码进行测试:

    python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml
    

    3. 测试结果

    在这里插入图片描述
    这样就代表demo运行成功。

    结果展示

    Windows10配置SlowFast环境全过程 并使用自己的视频进行demo检测

    看起来是不是很简单呢。

    有什么问题,及时评论留言。

    展开全文
  • SlowFast论文翻译+解读

    千次阅读 2022-03-31 20:16:48
    SlowFast Networks for Video Recognition 用于视频的慢速网络 Abstract(摘要) 我们提出用于视频识别的SlowFast网络。 我们的模型涉及 以低帧速率操作的慢速路径,捕获空间语义 以高帧速率操作的...
  • slowfast模型浅析

    千次阅读 2021-08-05 17:17:28
    slowfast模型浅析业务场景SlowFast模型 业务场景 背景非常固定 动作持续时间短.快 SlowFast模型 使用双流卷积输入,一个慢通道,一个快通道,分别提取空域信息以及时域信息。 关键点: Slow Pathway: γ\gammaγ...
  • 用于视频识别的 SlowFast 网络 paper题目:SlowFast Networks for Video Recognition paper是FAIR发表在ICCV 2019的工作 论文地址:链接 Abstract 本文提出了用于视频识别的 SlowFast 网络。模型涉及(i)以低...
  • 三分钟安装 facebook research slowfast
  • 一、slowfast 代码复现

    千次阅读 热门讨论 2021-05-14 21:59:38
    小心情:   今天刚刚在学校打完新冠疫苗,回来后写完的这篇博客,...目录一、SlowFast复现1.1 配置环境1.1.1 代码下载1.2 修改部分代码1.3 代码运行 一、SlowFast复现 1.1 配置环境 1.1.1 代码下载 官方地址: git
  • 目录 前言 一,ava相关文件准备 1.1 空间准备(500G) 1.2 整体ava文件结构 1.3 frames文件 ...slowfast官网 之前写了一个博客,是用slowfast的检测一个自己的视频的demo:【SlowFast复现】SlowFast Net
  • slowFast 本地环境

    2022-06-30 11:06:14
    slowFast 本地环境 slowFast 本地环境.z01 slowFast 本地环境.z02 slowFast 本地环境.z03 slowFast 本地 离线 环境,解压即用 及 例子工程 四个压缩包都下载下来解压即可使用
  • 2021年11月13日复现slowfast 本文记录了利用大佬教程复现的过程,以及过程中遇到的问题和注意点。 教程参考: https://blog.csdn.net/WhiffeYF/article/details/113527759?spm=1001.2014.3001.5501 ...
  • SlowFast-入门1-动作识别-部署与测试

    千次阅读 2021-07-28 13:42:57
    SlowFast-部署与测试 目录SlowFast-部署与测试简介安装部署测试准备pkl文件并上传上传ava.json文件准备yaml文件准备素材运行运行结果后记——不重要的痛苦的过程 简介 GitHub: ...
  • 【代码解析】mmaction2: SlowFast

    千次阅读 2022-04-07 15:50:43
    网络分成slow pathway和fast pathway分别对spatial和temporal维度特征进行提取 Backbone fast_pathway: x_fast nn.functional.interpolate(): Fast pathway在时间维度进行密集采样,空间维度不变。 self.slow_...
  • SlowFast网络可以被描述为以两种不同帧率运行的单一流结构,SlowFast使用通道的概念与生物上的P细胞和M细胞做类比。SlowFast的通用架构有一个Slow路径(Slow pathway)(第3.1节)和一个Fast 路径(Fast pathway)(第3...
  • slowfast安装并训练自己的数据集

    千次阅读 多人点赞 2021-06-01 18:04:46
    安装 slowfast主页:https://github.com/facebookresearch/SlowFast
  • 快速搭建mmaction2 pytorch 1.6.0与 pytorch 1.8.0 版本 03【mmaction2 行为识别商用级别】使用mmaction搭建faster rcnn批量检测图片输出为via格式 04【mmaction2 行为识别商用级别】slowfast检测算法使用yolov3来...
  • slowFast 本地环境.z01

    2022-06-30 11:11:46
    slowFast 本地环境 slowFast 本地环境.z01 slowFast 本地环境.z02 slowFast 本地环境.z03 slowFast 本地 离线 环境,解压即用 及 例子工程 四个压缩包都下载下来解压即可使用
  • Windows10下SlowFast环境安装和运行

    千次阅读 2021-11-18 16:08:44
    SlowFast安装详解第一步:下载官方源码第二步:我搭建的环境配置第二步:安装其他包以及出现的问题第三步:构建SlowFast第四部:下载权重和标签第五步:更改参数第六步:当然是运行啦 第一步:下载官方源码 github...
  • AI视频行为识别之SlowFast测试实践

    千次阅读 2021-06-18 08:17:53
    AI视频行为识别之3D-SlowFast测试实践安防智能行为识别定义及理解开源数据集算法模型基于深度学习的方法C-3D开源项目实战1.视频分析模型(行为识别):C3D工作流程网络结构3D卷积和池化kernel 的时间深度2.视频行为...
  • 首先安装好slowfast环境,然后打开源码,slowfast/configs/AVA/SLOWFAST_32x2_R50_SHORT.yaml作如下配置 TRAIN: ENABLE: True DATASET: ava BATCH_SIZE: 4 EVAL_PERIOD: 5 CHECKPOINT_PERIOD: 1 AUTO_RESUME...
  • slowfast实现行为识别

    千次阅读 2021-11-12 09:17:04
    准备数据集2.slowfast部署3.参考 1.准备数据集 2.slowfast部署 conda create -n slowfast python=3.7 conda activate slowfast git clone https://gitee.com/qiang_sun/SlowFast.git cd SlowFast python setup.py ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 91,040
精华内容 36,416
关键字:

slowfast

友情链接: LCD1602_test.zip