文章目录

  • 简介
  • 安装
    • 1. Python
    • 2. CUDA和cuDNN
    • 3. PyTorch
    • 4. Python库
    • 5. PyAv
    • 6. gcc 和 g++
    • 7. Visual Studio 2015
    • 8. Visual Studio 2019
    • 9. ninja
    • 10. Detectron2
    • 11. SlowFast
    • 总结
  • 术语
  • 初试
  • 参考文献

简介

PySlowfast 是 FAIR 开源的基于 PyTorch 的视频理解代码库,让研究者可以轻而易举地复现从基础至前沿的视频识别 (Video Classification) 和行为检测 (Action Detection) 算法。

论文:SlowFast Networks for Video Recognition

本文系统为Windows,装起来还是挺痛苦的,建议使用Linux系统

本人使用的显卡为MX350显存2GB,配好了,跑不动hhh

Linux搭建环境可参考这篇文章

安装

1. Python

Python版本 ≥ 3.8

Python 3.8.10

2. CUDA和cuDNN

参考 这篇文章

3. PyTorch

安装PyTorch>=1.7

进入官网选择版本后执行命令,安装PyTorch同时要安装torchvision

如本人显卡为MX350,CUDA为11.0

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

4. Python库

pip install fvcore
pip install simplejson
pip install psutil
pip install opencv-python
pip install tensorboard
pip install moviepy
pip install pytorchvideo
pip install sklearn
pip install pandas

5. PyAv

下载 ffmpeg ,关键词:win64-gpl-shared

解压到C盘并将文件夹重命名为:ffmpeg

添加环境变量Path:C:\ffmpeg\bin

安装 PyAv

pip install av

测试视频

import avcontainer = av.open('1.mp4')for frame in container.decode(video=0):frame.to_image().save('frame-%04d.jpg' % frame.index)

6. gcc 和 g++

gcc 和 g++ 是由 GNU 开发的 C 和 C++ 编程语言编译器

下载 MinGW-W64 并安装,记住安装路径如 C:\mingw-w64

添加环境变量 Path:C:\mingw-w64\mingw64\bin

查看版本

gcc --version
g++ --version

下载 mingw-get-setup.exe 并安装,记住安装路径如 C:\MinGW

添加环境变量 Path:C:\MinGW\bin

执行命令安装 GCC 和 G++

mingw-get install gcc
mingw-get install g++


查看版本

gcc --version
g++ --version

7. Visual Studio 2015

可能需要也可能不需要,只要后面 ninja 编译能通过就行

8. Visual Studio 2019

下载 Visual Studio 2019 Community 社区版

IDE安装路径:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community

工作负荷勾选【使用 C++ 的桌面开发】

配置环境变量 Path(版本号会有所不同):C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\bin\Hostx64\x64

执行命令:cl

如果之前装了其他版本的Visual Studio,需要重置编译器(如上版本号是14.29.30037,则把call命令最后版本替换为14.29):

SET MSSdk=1
SET DISTUTILS_USE_SDK=1
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.29

9. ninja

git clone https://github.com/ninja-build/ninja.git

打开 Visual C++ 2015 x86 x64 Cross Build Tools Command Prompt.exe

cd ninja
python configure.py --bootstrap


配置环境变量 Path:D:\mycode\ninja

10. Detectron2

git clone https://github.com/facebookresearch/detectron2
cd detectron2
python setup.py clean --all
python setup.py build --force develop


测试图片 test.jpg

直接点击下方超链接下载 模型库 里的模型,测试图片test.jpg放在image文件夹中,新建文件夹output,模型文件放在model文件夹中

目标检测(Object Detection)

python demo/demo.py --config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --output output/1.jpg --opts MODEL.WEIGHTS 'model/model_final_b275ba.pkl'


实例分割(Instance Segmentation)

python demo/demo.py --config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --output output/2.jpg --opts MODEL.WEIGHTS 'model/model_final_f10217.pkl'


人体关键点检测(Person Keypoint Detection)

python demo/demo.py --config-file configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml --input image/test.jpg --output output/3.jpg --opts MODEL.WEIGHTS 'model/model_final_a6e10b.pkl'


全景分割(Panoptic Segmentation)

python demo/demo.py --config-file configs/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x.yaml --input image/test.jpg --output output/4.jpg --opts MODEL.WEIGHTS 'model/model_final_cafdb1.pkl'

11. SlowFast

git clone https://github.com/facebookresearch/SlowFast.git
cd SlowFast
python setup.py build develop
python setup.py clean --all
python setup.py build --force develop

报错 error: Could not find suitable distribution for Requirement.parse(‘PIL’)

setup.py 中的 PIL 改为 pillow

总结

功能
PyTorch 深度学习框架
fvcore FAIR团队开发计算机视觉框架中的核心功能
torchvision pytorch中的数据集,模型和图片转换工具
simplejson JSON编解码器
PyAV FFmpeg的Python接口
psutil 跨平台进程和系统监控
opencv-python 计算机视觉库
tensorboard TensorFlow的可视化工具包
moviepy 视频编辑库
PyTorchVideo 视频理解研究的深度学习库
Detectron2 检测和分割算法库

参考文献:

  1. Installation — PyAV Documentation
  2. Python调用FFmpeg库——PyAV
  3. Windows Python安装pyav
  4. Python安装pyav库踩过的那些坑
  5. detectron2 INSTALL.md
  6. 在 Windows 上安装新版本 gcc/g++
  7. Windows10下安装detectron2超详细教程
  8. win10下 安装 Detectron2(0.4) (VS2019 + cuda11 + pytorch1.8)
  9. detectron2 安装
  10. OpenPose Examples

术语

视频识别基准(Benchmarks)

  1. Kinetics:视频识别。根据版本不同,该数据集包含多达65万个视频片段的URL链接,涵盖400/600/700个人类动作类。这些视频包括弹奏乐器等人和物互动,以及握手和拥抱等人与人之间的互动。每个动作类至少有400/600/700个视频剪辑。每个剪辑都带有一个单独的动作类,持续约10秒。
  2. Charades:一个指导我们研究非结构化视频活动识别和日常人类活动常识推理的数据集。
  3. AVA:行为检测。AVA数据集对430个电影剪辑中的80个小视觉动作进行了细致注释,这些动作在空间和时间上都是本地化的,产生了1.62万个动作标签,每个人有多个标签。剪辑是从15分钟的连续电影片段中提取的,为对活动进行时间推理打开了大门。数据集被分成235个视频用于训练,64个视频用于验证,131个视频用于测试。

X3D:扩展高效视频识别架构

初试

下载 SLOWFAST_32x2_R101_50_50.pkl 放到 SlowFast\demo\AVA

新建 ava.json 放到 SlowFast\demo\AVA

{"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_32x2_R101_50_50.yaml

#TENSORBOARD:
#  MODEL_VIS:
#    TOPK: 2
DEMO:ENABLE: TrueLABEL_FILE_PATH: "D:/mycode/SlowFast/demo/AVA/ava.json" # Add local label file path here.
#  WEBCAM: 0INPUT_VIDEO: "D:/mycode/SlowFast/demo/AVA/1.mp4"OUTPUT_FILE: "D:/mycode/SlowFast/demo/AVA/2.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

执行命令

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

若速度较慢,可手动下载 model_final_280758.pkl 放到 C:\Users\Administrator\.torch\iopath_cache\detectron2\COCO-Detection\faster_rcnn_R_50_FPN_3x\137849458

2GB显存,加载失败,报错RuntimeError: CUDA out of memory. Tried to allocate 58.00 MiB (GPU 0; 2.00 GiB total capacity; 1.03 GiB already allocated; 39.17 MiB free; 1.08 GiB reserved in total by PyTorch)

参考文献

  1. PySlowfast GitHub
  2. PySlowfast Paper
  3. 论文代码复现 SlowFast Networks for Video Recognition
  4. PySlowFast YouTube
  5. 视频行为识别ActionRecognition之无敌SlowFast
  6. Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型
  7. AVA 在线查看
  8. SlowFast Networks for Video Recognition复现代码
  9. Cuda Error

Python快速实现PySlowFast视频理解相关推荐

  1. PySlowFast 视频理解代码库

    PySlowfast 是 FAIR 开源的基于 PyTorch 的视频理解代码库,让研究者可以轻而易举地复现从基础至前沿的视频识别 (Video Classification) 和行为检测 (Acti ...

  2. python快速入门教程-终于理解python快速入门教程

    跟Java语言一样,python语言也有类的概念,直接使用class关键字定义python类.在python类,定义类的方法.然后直接使用类的初始化调用自身,获取相应的属性.以下是小编为你整理的pyt ...

  3. 用Python快速采集ins视频

    Instagram(照片墙)是一款运行在移动端上的社交应用,以一种快速.美妙和有趣的方式将你随时抓拍下的图片彼此分享,Facebook公司旗下社交应用 本篇文章主要是如何"高速复制粘贴&qu ...

  4. python 微信视频_基于Python快速整理微信视频与图片

    photoes.jpg 作为超级APP,微信已经成了移动互联网的入口.而我们也早已习惯通过微信收发图片与视频等多媒体文件.身为一名屌丝通信狗,经常出差海外,跟家人的沟通方式主要就靠微信了,每当累了或抑 ...

  5. Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩的工作.近日,FAIR视频团队在 ICCV 相关 ...

  6. python从入门到精通视频,python快速入门精讲

    <跟老齐学Python:从入门到精通>pdf下载在线阅读全文,求百度网盘云资源 <跟老齐学Python:从入门到精通>百度网盘pdf最新全集下载:链接: ?pwd=9ib9 提 ...

  7. 【PySlowFast】Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩 ...

  8. Python快速从视频中提取视频帧(多线程)

    Python快速提取视频帧(多线程) 今天介绍一种从视频中抽取视频帧的方法,由于单线程抽取视频帧速度较慢,因此这里我们增加了多线程的方法. 1.抽取视频帧 抽取视频帧主要使用了 Opencv 模块. ...

  9. Python快速入门视频

    这是我第一次尝试着录制视频教程,没有多少经验.希望看到我视频的朋友,给我多提意见.本教程共有10集,每周更新一集,每集20到30分钟. 邮箱(请看到的朋友,多多提意见和建议.通过大家的反馈,我可以提供 ...

最新文章

  1. Centos运行级别和开机过程
  2. reactNative 打包那些事儿
  3. 集合之TreeMap源码分析,简单介绍什么是红黑树,SortedMap和NavigableMap之间的关系和区别
  4. hiho一下 第六周 Hihocoder #1038 : 01背包
  5. beautifulsoup_Python爬虫-BeautifulSoup
  6. 关于构造与析构过程中调用虚函数的问题
  7. 哪里是我们最好的避风港?
  8. tomcat多种部署项目方法总结
  9. C++智能指针的实现与使用(详解)
  10. android最贵的手机,2019翻盖手机排行榜_2019年最贵的手机有哪些?最贵手机排行榜...
  11. mysql_config缺失_安装 mysqlclient 报 mysql_config not found
  12. 根据银行卡账号获取所属银行php代码
  13. 前端响应式布局与Bootstrap栅格系统快速了解与应用
  14. 【ArcGIS进阶】制作土地利用转移矩阵
  15. 计算机毕业设计ssm鲲龙装饰公司在线管理系统的设计与开发前台模块iub6h系统+程序+源码+lw+远程部署
  16. 弄明白了清华校训“自强不息 厚德载物”的来龙去脉
  17. Redis统计用户访问量
  18. mongodb集群-副本集(CSRS)
  19. 机器人专业需要学习那些理论知识
  20. sprintf 用法(sprintf_s)

热门文章

  1. 计算机java毕业设计 SSM大学生兼职信息发布管理平台(源码+论文)
  2. 实现财务自由 之 收割你的 “韭菜” 思维,学会做价值投资
  3. 26python编程实现PPT文档内容样式批量调整
  4. 2022年低压电工操作证考试题库模拟考试平台操作
  5. 计算机找不到cd,为什么我的电脑找不到imapi cd-burning com services ?
  6. HTML5音频和视频处理
  7. 电子证件照怎么换背景?怎样修改证件照底色?
  8. 判断字符串是否是回文
  9. goahead(嵌入式Web服务器)之交叉编译、移植篇
  10. Matlab中天文导航仿真星图存储问题