Ubantu16.04+CUDA10.0安装mmaction以及提取UCF101的frame和optical flow

研一刚转到视频动作识别方向,因为很多模型都需要光流输入,因此不得不安装第三方库提取光流。尽管现在该领域何凯明大佬的最新成果,Non-Local模块以及SlowFast-Net只用视频帧作为输入,无需光流就能碾压之前所有模型。但是对于视频的抽帧,提取光流,以及标准化为数据集等基本处理是必不可少的。在安装mmaction过程中踩坑无数,甚至有个问题到现在还没解决,所幸还算是安装成功了,至少能用了。【这篇博客好像是CSDN上第一篇关于mmaction安装的文章,希望能给有需要的同行们有一点点帮助】
mmaction安装的主要步骤参照MMACTION_INSTALL.md,接下来将按照这个流程进行记录。

mmaction安装及UCF101视频数据集的处理

  • Ubantu16.04+CUDA10.0安装mmaction以及提取UCF101的frame和optical flow
  • 一、Requirements
  • 二、Install Decord (Optional)
  • 三、Install dense_flow (Optional)
  • 四、Install MMAction
  • 五、Process UCF101
    • 使用mmaction处理UCF101

一、Requirements

Linux
Python 3.5+
PyTorch 1.0+
CUDA 9.0+
NVCC 2+(这个不用特地安装,CUDA自带)
GCC 4.9+
ffmpeg 4.0+
mmcv
Decord
dense_flow

在进行下列安装操作前,请先下载mmaction:

git clone --recursive https://github.com/open-mmlab/mmaction.git

我的安装都是在conda创建虚拟环境下进行的,不会创建虚拟环境的参考conda创建虚拟环境以及相关操作和Linux下系统默认python版本的切换。注意:为了避免不必要的麻烦请在创建虚拟环境时不要另外安装CUDA,就用之前已有的就行,不然环境路径混乱容易出错,而且很难排查。此外,创建虚拟环境时使用的python版本为3.7,并且将其设定为系统默认。

二、Install Decord (Optional)

(1)通过运行以下命令安装所需的软件包:

# 官方PPA随附ffmpeg 2.8,但缺少大量功能,我们在此处使用ffmpeg 4.0
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install -y build-essential python3-dev python3-setuptools make cmake
libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev
# 注意:需要安装cmake 3.8或更高版本,如果版本太旧,可以从cmake官方网站进行安装
sudo apt-get install ffmpeg

需要更新cmake版本的请见cmake-3.16.6安装。
(2)从源代码mmaction中构建库:

cd third_party/decord
mkdir build && cd build
cmake .. -DUSE_CUDA=0
make

cmake或者make失败的,请先确认是否按照(1)中更新了cmake版本。倘若与版本无关,可以尝试在前面加sudo再执行。反正我遇到过直接make不行,但是sudo make又成功了。

三、Install dense_flow (Optional)

(1)安装OpenCV=4.1.0
(仅适用于CUDA 10.0)CUDA 9.x应该没有问题。 CUDA 10.0中不推荐使用视频解码器。 要处理此问题,请下载NVIDIA VIDEO CODEC SDK,并将头文件复制到您的cuda路径(例如,/ usr / local / cuda-10.0 / include /)。 请注意,您可能必须以root用户身份执行。

unzip Video_Codec_SDK_9.0.20.zip
cp Video_Codec_SDK_9.0.20/include/nvcuvid.h /usr/local/cuda-10.0/include/
cp Video_Codec_SDK_9.0.20/include/cuviddec.h /usr/local/cuda-10.0/include/
cp Video_Codec_SDK_9.0.20/Lib/linux/stubs/x86_64/libnvcuvid.so /usr/local/cuda-10.0/lib64/libnvcuvid.so.1

NVIDIA VIDEO CODEC SDK官网下载需要付费,网上有资源可以自行下载。
(2)获取用于构建OpenCV 4.1.0的必需软件包

sudo apt-get install -y liblapack-dev libatlas-base-dev
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install -y ffmpeg

(2)使用cmake-gui安装OpenCV 4.1.0及OpenCV-contrib4.1.0
直接按照GitHub上步骤安装完出了点问题,还是没法儿用。我就重新使用cmake-gui安装了OpenCV4.1.0和OpenCV-contrib4.1.0,注意这俩版本必须匹配。使用cmake-gui安装的详细步骤参考
cmake-gui安装opencv及opencv-contrib。教程里安装的是3.0+的版本,除了安装包不同,安装步骤完全一致,但是对于cmake-gui的config过程中,各种选项的选择请参考

cmake -DCMAKE_BUILD_TYPE=Release -DWITH_CUDA=ON -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules/ -DWITH_TBB=ON -DBUILD_opencv_cnn_3dobj=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_dnn_modern=OFF -DBUILD_opencv_dnns_easily_fooled=OFF -DOPENCV_ENABLE_NONFREE=ON ..

一个个选择或者反选。这里有的如果cmake-gui界面中没有,可以不管。注意,-DOPENCV_ENABLE_NONFREE = ON被显式设置为启用TSN中提议的扭曲流。 如果您不想使用此参数,则可以跳过此参数以加快编译速度。
(3) 构建dense_flow

cd third_party/dense_flow
# dense_flow dependencies
sudo apt-get -qq install libzip-dev libboost-all-dev
mkdir build && cd build
OpenCV_DIR=../../opencv-4.1.0/build cmake ..
make -j

我在make -j过程中出现了一点点问题,但是直接跳过之后,发现也没有影响使用。到这一步遇到问题的小伙伴在debug无果后,可以尝试跳过。

四、Install MMAction

(1)安装 Cython

cd mmaction
pip install cython

报错的话 就尝试conda install cython
(2)编译CUDA扩展

./compile.sh

报错的话,请chmod 777 更改文件权限,再执行

(3)Install mmaction

python setup.py develop

至此,安装已经全部结束。

五、Process UCF101

参考DATASET.md以熟悉数据准备,参考GETTING_STARTED.md以使用MMAction。

使用mmaction处理UCF101

根据Preparing UCF-101能够完成对UCF101的抽帧提取光流。在下载annotations和video过程中,报错说网页证书无法验证,加–no-check-certificate也没用。因此这两步建议手动下载。分享一下数据集处理过程:

可以看到是使用了4块GPU进行加速的。想光用CPU跑的建议放弃,别浪费时间。


各个动作类别视频的处理结果被分别放到一个文件夹中,包含内容为:x方向上的光流flow_x、y方向上的光流flow_y以及相应的RGB帧。

Ubantu16.04+CUDA10.0安装mmaction以及提取UCF101的frame和optical flow相关推荐

  1. 战神笔记本ubuntu 18.04.1LTS cuda10.0安装折腾记

    战神笔记本ubuntu 18.04.1LTS cuda10.0安装折腾记 折腾前奏 安装准备 安装Ubuntu18.04.1系统 cuda 10.0 安装过程 折腾前奏 写下本记录的原因是因为网上的教 ...

  2. NVIDA GTX2080 Ubuntu18.04 cuda10.0 cudnn7.5 tensorflow 1.12 install

    NVIDA GTX2080 Ubuntu18.04 cuda10.0 cudnn7.5 tensorflow 1.12 install 心仪已久的显卡2080终于到了,Ubuntu18这么帅,怎么还能 ...

  3. Ubuntu18.04 + CUDA10.0 + tensorflow-gpu 安装过程

    简介 这篇博客Ubuntu16.04+CUDA9+tensorflow的安装流程.不过,随着软件不断更新,现在Ubuntu18.04逐渐成为客户端的主流,加上tf开始支持CUDA10,在这里在更新一下 ...

  4. Ubuntu18.04+CUDA10.0+GTX1050Ti安装

    安装Nvidia显卡驱动 sudo ubuntu-drivers autoinstall 安装完成后,使用命令nvidia-smi就可以查看到显卡的信息了,以960M为例: 安装CUDA10.0 1. ...

  5. Ubuntu16.04+cuda10.0+cudnn7.6配置tensorflow1.x环境

    现阶段有多种深度学习框架,应用较多的主要是tensorflow.pytorch以及百度公司的paddlepaddle.个人刚开始使用的深度学习框架是基于pytorch的mmdetection,来自于商 ...

  6. 深度学习环境配置 (Ubuntu18.04 + CUDA10.0 + cuDNN7.6.5 + TensorFlow2.0)

    @ Bergen, Norway 第一次安装 CUDA 的过程简直抓狂,中间出现了很多次莫名其妙的 bug,踩了很多坑.比如装好了 CUDA 重启后进不去桌面系统了,直接黑屏.比如鼠标键盘都不 wor ...

  7. linux搭建erp教程,Ubuntu 12.04+OpenERP7.0安装笔记

    不经意的一次看到OpenERP这个开源ERP,就被其丰富的功能,简洁的画面,熟悉的语言所吸引.迫不及待的多方查询资料,自己架设一个测试环境来进行了解.以下为Ubuntu 12.04下测试安装时候的步骤 ...

  8. ubuntu16.04+cuda10.1安装opencv-3.3.0

    目录 1.系统环境 2.安装一些基础命令 2.1更新包 2.2安装依赖项 3.下载OpenCV 和 OpenCV_contrib 源码包 3.1下载地址 3.2解压并移动opencv_contrib- ...

  9. caffe-gpu ubuntu 安装_ubuntu16.04 cuda10.0 配置caffe gpu环境

    caffe gpu环境的配置就是一部赤裸裸的血泪史,每次都能遇到很多问题~ 环境依赖 ubuntu 16.04cuda 10.0python 3.5opencv 3.4.10sudo apt-get ...

  10. docker 配置使用宿主机的GPU(ubuntu16.04+cuda10.0+cudnn7)

    1. 安装 Docker 卸载旧版本 Docker sudo apt-get remove docker docker-engine docker.io containerd runc 安装新版本 s ...

最新文章

  1. Oracle中的iot_type,oracle IOT表学习
  2. mac上使用crontab周期性执行python脚本
  3. Pandas将dataframe保存为pickle文件并加载保存后的pickle文件查看dataframe数据实战
  4. 太多选择——企业如何选择合适的BI工具?
  5. 用一句JQuery代码实现表格的简单筛选
  6. 2019.03.18 连接my sql
  7. C++中自定义比较函数和重载运算符总结
  8. Visual C++ 2011-5-27
  9. 在ASP程序设计中在使用Response对象
  10. 集群环境下的Session共享
  11. Android—常用组件练习
  12. 【手势交互】9. PS Move
  13. android 更新平台,Android更新平台架构方案
  14. 【收集】47种常见的浏览器兼容性问题
  15. 16 操作系统第四章 文件管理 文件的基本操作 文件共享 文件保护 文件系统的层次结构
  16. 4.2-户部告急-百姓们太太太太太能生了2333
  17. windows下,可替换telnet的工具tcping.exe
  18. python爬虫爬取高清图片——爬虫入门
  19. 面向自动驾驶的高精地图及数据采集生产体系
  20. vue3不在手动引入import {ref} from ‘vue‘ 等 也能照样运行项目

热门文章

  1. matlab矩阵运算rank,Matlab矩阵运算
  2. 人脸识别系统Python源代码的实现
  3. 宋宝华:深入理解cache对写好代码至关重要
  4. springboot test
  5. python数学篇(经典算法题)
  6. fuzor2020安装教程附安装包
  7. 缺陷分析之缺陷引入与移除矩阵
  8. 虚拟机镜像文件高速下载方法之一
  9. 各类文件的文件头标志
  10. liunx版pgadmin3 source code安装