Google colab复现openpose+st-gcn的心路历程:

因为本人的大致研究方向为动作识别,加上自己的笔记本比较菜鸡,没有牛皮的显卡,所以采用了google的colab。在网上查了三天,最后发现只有两个老哥的笔记比较靠谱,其他人基本上都是复制粘贴他们的博客,这两个老哥写的也比较简陋,可能是针对他们的基础写的,有些地方没写清楚,对于小白有点不太友好,本人的技术也很菜,站在之前的那两位老哥的肩膀上过来的,一共重新配置了8次才成功,花了两天时间,每一次都要从头开始各种bug都碰到过,换了三个谷歌账号才完成(因为colab的gpu是限时的!)。

这里给出两个靠谱的笔记地址:

(25条消息) 配置ST-GCN环境记录【Google colab】_Gary_ghw的博客-CSDN博客

(26条消息) ST-GCN复现以及配置环境遇到的问题(Colab)_Niki173的博客-CSDN博客

1、装载google云端硬盘

2、上传在github上下载的st-gcn代码到mydrive并解压到content目录下。

传送门在这:github:https://github.com/1zgh/st-gcn

3、导入openpose的代码:

import os
from os.path import exists, join, basename, splitext git_repo_url = 'https://github.com/CMU-Perceptual-Computing-Lab/openpose.git'
project_name = splitext(basename(git_repo_url))[0]
if not exists(project_name):
# see: https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/949
# install new CMake becaue of CUDA10
!wget -q https://cmake.org/files/v3.13/cmake-3.13.0-Linux-x86_64.tar.gz
!tar xfz cmake-3.13.0-Linux-x86_64.tar.gz --strip-components=1 -C /usr/local
# clone openpose
!git clone -q --depth 1 $git_repo_url
!sed -i 's/execute_process(COMMAND git checkout master WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}\/3rdparty\/caffe)/execute_process(COMMAND git checkout f019d0dfe86f49d1140961f8c7dec22130c83154 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}\/3rdparty\/caffe)/g' openpose/CMakeLists.txt
# install system dependencies
!apt-get -qq install -y libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev opencl-headers ocl-icd-opencl-dev libviennacl-dev
# install python dependencies
!pip install -q youtube-dl
# build openpose
!cd openpose && rm -rf build || true && mkdir build && cd build && cmake .. && make -j`nproc` from IPython.display import YouTubeVideo

编译成功之后如下:

4、安装cuda9.0,colab上默认是10.0:

!wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb
!dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb # 安装软件包:dpkg -i <.deb file name>
!apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub # 下载的文件添加到本地数据库
!apt-get update
!apt-get install cuda=9.0.176-1 !cat /usr/local/cuda/version.txt # 查看cuda版本

5、安装torch1.0.0加torchvision0.2.1 这里再安装torch1.0.0的时候报错了。(!!!!这个鬼东西搞了我一整天,重新弄了三次,最后经测试后才发现是在使用了!git clone st-gcn代码。。。命令之后就不能用pip了,我也不知道啥原因。所以尽量先把代码下载到本地在上传到谷歌云硬盘上解压。)

6、安装一些配置环境

!pip install -r requirements.txt
!sudo apt-get install ffmpeg
%cd /content/st-gcn-master/torchlight
!python setup.py install
%cd ..
!bash /content/st-gcn-master/tools/get_models.sh # 如果这个不管用就去上面我给的老哥的文章中找到模型,下载再上传到对应的位置(在st-gcn-master下的models里)。

7、运行demo

!python main.py demo --video /content/st-gcn-master/resource/media/cuk2.mp4 --openpose /content/openpose/build

这里我报了一个yaml的错误

意思是在io.py文件里面的load()函数缺少Loader参数,那咱就给他加上去。

或者是把load函数改为safe_load()函数。

到这我就跑通了。

但是在这里我发现一个问题,我看了github上star最多的那个st-gcn代码,他的源码的io.py文件里面是没有我上面这个load函数的错误的,但是他那个代码我运行一直会报Can not find python API的错。解决不了,然后我就改用另外一个老哥提供的代码了,除了这个load函数之外,其他的没问题。能跑通。但是最后存下来的.mp4文件。我下载到本地之后,播放是一片漆黑的。这个原因我还没处理。

最后祝大家也能早日复现,本人也是受尽了磨难才弄完。本人的大致研究发现是动作识别,如有兴趣,可以加好友一起讨论,本人微信是:captainsunsun

最后把我过程中用到的所有脚本总结一下:

import os
from os.path import exists, join, basename, splitext git_repo_url = 'https://github.com/CMU-Perceptual-Computing-Lab/openpose.git'
project_name = splitext(basename(git_repo_url))[0]
if not exists(project_name):
# see: https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/949
# install new CMake becaue of CUDA10
!wget -q https://cmake.org/files/v3.13/cmake-3.13.0-Linux-x86_64.tar.gz
!tar xfz cmake-3.13.0-Linux-x86_64.tar.gz --strip-components=1 -C /usr/local
# clone openpose
!git clone -q --depth 1 $git_repo_url
!sed -i 's/execute_process(COMMAND git checkout master WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}\/3rdparty\/caffe)/execute_process(COMMAND git checkout f019d0dfe86f49d1140961f8c7dec22130c83154 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}\/3rdparty\/caffe)/g' openpose/CMakeLists.txt
# install system dependencies
!apt-get -qq install -y libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev opencl-headers ocl-icd-opencl-dev libviennacl-dev
# install python dependencies
!pip install -q youtube-dl
# build openpose
!cd openpose && rm -rf build || true && mkdir build && cd build && cmake .. && make -j`nproc` from IPython.display import YouTubeVideo !unzip "/content/drive/MyDrive/st-gcn/st-gcn.zip" -d "/content/" # 这个是解压我自己上传到云盘上的st-gcn.zip !pip install torch==1.0.0 torchvision==0.2.1 !wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb
!dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb # 安装软件包:dpkg -i <.deb file name>
!apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub # 下载的文件添加到本地数据库
!apt-get update
!apt-get install cuda=9.0.176-1 !cat /usr/local/cuda/version.txt # 查看cuda版本 import torch
torch.__version__ %cd st-gcn-master !pip install -r requirements.txt !sudo apt-get install ffmpeg %cd /content/st-gcn-master/torchlight
!python setup.py install
%cd .. !bash /content/st-gcn-master/tools/get_models.sh !pip install -U PyYAML !python main.py demo --video /content/st-gcn-master/resource/media/clean_and_jerk.mp4 --openpose /content/openpose/build

Google colab复现openpose+st-gcn的心路历程的更多相关文章

  1. Google Colab Free GPU Tutorial【转载】

    转自:https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d 1.Google Cola ...

  2. 使用GOOGLE COLAB训练深度学习模型

    使用 谷歌提供了免费的K80的GPU用于训练深度学习的模型.而且最赞的是以notebook的形式提供,完全可以做到开箱即用.你可以从Google driver处打开.或者这里 默认创建的是没有GPU的 ...

  3. Google Colab 基本操作

    ## 上传 from google.colab import files uploaded = files.upload() for fn in uploaded.keys(): print('Use ...

  4. Google Colab Notebook 的外部文件引用配置

    Google Colab Notebook 的外部文件引用配置 Reference: How to upload the file and read Google Colab 先装工具:google- ...

  5. Google Colab 免费GPU服务器使用教程

    Google免费GPU使用教程(亲测可用)   今天突然看到一篇推文,里面讲解了如何薅资本主义羊毛,即如何免费使用Google免费提供的GPU使用权. 可以免费使用的方式就是通过Google Cola ...

  6. Google免费GPU使用教程(Google Colab Colaboratory)

    参考: https://www.234du.com/1154.html https://mp.weixin.qq.com/s/TGTToLYSQJui94-bQC4HIQ 注册gmail时遇到手机号无 ...

  7. Google Colab 免费的谷歌GPU for deep learning

    Who wants to use a free GPU for deep learning?Google Colab is a free cloud service and now it suppor ...

  8. 在Google Colab中导入一个本地模块或.py文件

    模块与单个.py文件的区别,模块中含有__init__.py文件,其中函数调用使用的是相对路径,如果使用导入.py文件的方法在Google Colab中导入模块 会报错:Attempted relat ...

  9. Google Colab调用cv2.imshow奔溃

    当我在Google Colab运行如下代码 import cv2 import numpy as np image = cv2.imread('a.jpg') cv2.imshow('original ...

  10. Google Colab的一些注意事项

    1.执行命令行前面加! 当我们使用python解释器时,我们需要不停地在命令行和IDE 之间切换,当我们需要使用命令行工具时.不过,Jupyter Notebook给了我们在notebook中运行sh ...

随机推荐

  1. 杭电 oj 第几天?

    Problem Description 给定一个日期,输出这个日期是该年的第几天.   Input 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input , ...

  2. Java基础——方法

    package com.zhao.demo; public class Demo07 { /* public static void main(String[] args) { //getSum(10 ...

  3. labwindows excel 不同电脑上无法保存

    存到c盘以外的盘,c盘因为权限问题可能无法写入

  4. StrFormatter 字符串格式化

    package com.hopedove.processserver.util; /** * 字符串格式化 * * @author ruoyi */ public class StrFormatter ...

  5. iview 自定义指令实现Table左右横向拖拽

    有时候表格内容会很多,需要横向滚动查看右边的内容,又不想到底部拖动滚动条,如果能直接在内容中拖动就好了,这个时候就可以用 vue 的自定义指令来实现了. 为了以后扩展指令方便,创建 directive ...

  6. Loadrunner——调试及脚本编译

    调试一般用于运行代码是出现的错误. loadrunner调试方式:断点.单步跟踪.日志输出.值查看器等, 断点设置 断点插入的位置:非空行或非语句的起始,简单来说呢就是断点打在函数前(取消断点就直接在 ...

  7. element NavMenu侧栏导航菜单(可折叠)

    展示效果如图: 代码: <el-scrollbar class="scrollbar-wrapper"> <!-- el-scrollbar超长可滚动 --> ...

  8. Vuex----Mutations

    注意: 只能通过 mutations里的函数才能修改 state 中的数据 第一种方法: const store = new Vuex.Store({ state:{ count:0 }, mutat ...

  9. js实现指定dom节点滚动到可视窗口

    const rollDom = document.getElementById('domId') // 获取想要滚动的dom节点 rollDom.scrollIntoView({ block: 'ce ...

  10. 循环神经网络(Recurrent Neural Networks)(第一部分)

    参考 https://www.cnblogs.com/royhoo/p/Recurrent-Neural-Networks-1.html