windows10和linux18.04中配置mmhuman3d

分类:动作捕捉
github地址:https://github.com/open-mmlab/mmhuman3d
所需环境:
Windows10,CUDA11.6,conda 4.13.0,Visual Studio 2017;
Ubuntu18.04,conda22.9.0,CUDA11.4

目录

  • Windows10配置
  • 一.新建Pytorch基本环境
    • 1.创建并激活环境
    • 2.安装ffmpeg
    • 3.安装 PyTorch 全家桶
    • 4.从源码安装 PyTorch3D
      • 4.1使用git下载PyTorch3D源码包
      • 4.2手动下载CUB库并解压至本地
      • 4.3修改PyTorch3D的setup.py
      • 4.4安装Pytorch3D
      • 4.5检验是否安装成功
  • 二.安装其他的mmlab
    • 2.1 mmcv
    • 2.2 mmdetection
    • 2.3 mmpose
    • 2.4 mmtrack
  • 三.安装mmhuman3d
  • Linux中的OpenMMlab全家桶的安装
  • 参考链接

Windows10配置

一.新建Pytorch基本环境

1.创建并激活环境

conda create -n open-mmlab python=3.8 -y
conda activate open-mmlab

2.安装ffmpeg

conda install ffmpeg

3.安装 PyTorch 全家桶

(CUDA与cudnn没安装的话可以采用之前的1安装方式。Pytorch选择以下指令在线安装,这会自动适配CUDA11.6,下载最新的Pytorch版本。新版本会改正很多bug,很好地兼容mmlab全家桶。在下面的安装过程中mmlab全家桶也全下载最新版的,以免出现问题后各种查issue,其实大部分issue都是版本问题引起的。)
安装适配CUDA11.6最新版本的Pytorch全家桶(注意:windows上只能下载cpu版本的,gpu版本的pytorch会存在CUDA依赖问题导致无法编译mmhuman3d和mmtrack)

#如果在Windows上安装GPU版本Pytorch在编译mmhuman3d和mmtrack时会报错如下:
d:\anaconda3\envs\test\lib\site-packages\torch\include\pybind11\cast.h(624): error: too few arguments for template template parameter “Tuple”
d:\anaconda3\envs\test\lib\site-packages\torch\include\pybind11\cast.h(717): error: too few arguments for template template parameter “Tuple”

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu116 -i https://pypi.tuna.tsinghua.edu.cn/simple

4.从源码安装 PyTorch3D

请参考这个2。其实直接使用pip安装会更方便,源码构建比较麻烦。只是官网这么写的所以我就源码构建了。直接用pip安装的PyTorch3D理论上应该不会影响后续安装,读者可以一试。

4.1使用git下载PyTorch3D源码包

conda install git
git config --global http.proxy http://127.0.0.1:7890# 简单粗暴直接给git命令开代理,避免下载超时。端口号是clash的默认端口
cd D:\WLm_Project\MotionCatch\Openmmlab\Pytorch3D
git clone https://github.com/facebookresearch/pytorch3d.git # 运行此句前需要开启clash,运行完毕后记得退出clash

4.2手动下载CUB库并解压至本地

下载CUB1.10.0

在这里插入图片描述

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

设置环境变量-系统变量CUB_HOME,确定三连
在这里插入图片描述

4.3修改PyTorch3D的setup.py

修改Pytorch3D的setup.py 52行:extra_compile_args = {"cxx": ["-std=c++14"]}extra_compile_args = {"cxx": []}
在这里插入图片描述
删除Pytorch3D的setup.py.78行:-std=c++14
在这里插入图片描述

4.4安装Pytorch3D

cd D:\WLm_Project\MotionCatch\Openmmlab\Pytorch3D\pytorch3d
python setup.py install

需要编译好一阵子!
在这里插入图片描述
说明已经安装完毕了
在这里插入图片描述

4.5检验是否安装成功

注意:以下python代码不要本地Pytorch3D路径(Openmmlab\Pytorch3D\pytorch3d)中运行3.以免发生ImportError: cannot import name '_C' from 'pytorch3d'错误。

import pytorch3d
print(pytorch3d.__version__)
from pytorch3d.renderer import MeshRenderer
print(MeshRenderer)
from pytorch3d.structures import Meshes
print(Meshes)
from pytorch3d.renderer import cameras
print(cameras)
from pytorch3d.transforms import Transform3d
print(Transform3d)

在这里插入图片描述

import torch
device=torch.device('cuda')
from pytorch3d.utils import torus
Torus = torus(r=10, R=20, sides=100, rings=100, device=device)
print(Torus.verts_padded())

注意:gpu版本才会出现下图,cpu版本因为无法使用CUDA会报错。
在这里插入图片描述

二.安装其他的mmlab

2.1-2.4都可以直接安装,读者可以尝试官网教程。但是我是直接从源码构建的。

https://github.com/open-mmlab/mmhuman3d/blob/main/docs/install.md

2.1 mmcv

打开Anaconda的Powershell Prompt4,配置open-mmlab环境的环境变量,输入以下指令:
在这里插入图片描述

conda activate open-mmlab
$env:TORCH_CUDA_ARCH_LIST="7.5" # 显卡算力 2080是7.5
$env:MMCV_WITH_OPS = 1 # mmcv默认没有cuda选项,手动改成使用CUDA
$env:MAX_JOBS = 8  # 基于电脑内核,我是12核,给定最大8线程

在这里插入图片描述

回到Anaconda的Powershell Prompt,安装mmcv5

cd D:\WLm_Project\MotionCatch\Openmmlab\mmcv
# git clone https://github.com/open-mmlab/mmcv.git -b v1.5.3
git clone https://github.com/open-mmlab/mmcv.git # 获取当前版本2.0.1
cd mmcv
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

2.2 mmdetection

cd D:\WLm_Project\MotionCatch\Openmmlab\mmdetection
# git clone https://github.com/open-mmlab/mmdetection.git -b v2.25.1
git clone https://github.com/open-mmlab/mmdetection.git# 安装最新版本mmdet3.1.0
cd mmdetection
pip install -r requirements/build.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

2.3 mmpose

cd D:\WLm_Project\MotionCatch\Openmmlab\mmpose
# git clone https://github.com/open-mmlab/mmpose.git -b v0.28.1
git clone https://github.com/open-mmlab/mmpose.git# 安装最新版本mmpose1.1.0
cd mmpose
git config --global --unset http.proxy # 取消之前的git代理设置,不然requirements下载不完全
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

2.4 mmtrack

cd D:\WLm_Project\MotionCatch\Openmmlab\mmtracking
# git clone https://github.com/open-mmlab/mmtracking.git -b v0.13.0
git clone https://github.com/open-mmlab/mmtracking.git# 安装最新版本0.14.0
cd mmtracking
pip install -r requirements/build.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e .  -i https://pypi.tuna.tsinghua.edu.cn/simple # or "python setup.py develop"

在这里插入图片描述
提示scipy版本冲突,但是mmtrack0.14.0安装上了。冲突问题可暂时不考虑,以后跑代码时出现问题再说。

三.安装mmhuman3d

# !!!!!!!!!!!!!!此部分指令不要输入进conda 这是错的
cd D:\WLm_Project\MotionCatch\Openmmlab\mmhuman3d
git clone https://github.com/open-mmlab/mmhuman3d.git
cd mmhuman3d
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple  # or "python setup.py develop"

这会出现错误:picklebufobject.obj : error LNK2005: PyPickleBuffer_GetBuffer 已经在 python38.lib(python38.dll) 中定义 build\lib.win-amd64-cpython-38\pickle5\_pickle.cp38-win_amd64.pyd : fatal error LNK1169: 找到一个或多个多重定义的符号 error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\link.exe' failed with exit code 1169

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

这个是没法解决的,我在这里找到了这个issue6。意思是pickle5三年前就没人维护了,建议删除pickle5,因为会阻止mmhuman3d在windows上的安装(pickle5没法编译所以mmhuman3d安装就会中断)。

显然作者团队也已经注意到这个问题7,并且画饼会给出解决方案,然而过去了一年没消息。

这个是找到的修改策略8,是别人的改进方式,但是官方还没有拉到自己仓库中。我直接克隆了这个仓库,尝试后发现可以正常在windows中安装mmhuman3d。相对于官方仓库而言,他改了以下四个文件(直接取消了对pickle5的调用)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装指令如下:

cd D:\WLm_Project\MotionCatch\Openmmlab\mmhuman3d
git clone https://github.com/Wei-Chen-hub/mmhuman3d.git# 安装Wei-Chen-hub给出的mmhuman3d-0.11.0修改版本
cd mmhuman3d
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple  # or "python setup.py develop"

成功安装mmhuman3d0.11.0
在这里插入图片描述

升级某个库时,首先pip uninstall将其卸载。然后删掉源码文件夹从新git。重新执行安装requirments的依赖和setup的安装指令。

# git config --global http.proxy http://127.0.0.1:7890
# git config --global --unset http.proxy 
# 试图在windows gpu pytorch上安装MMhuman3d所做的一些尝试:
# 卸载pip uninstall torch torchvision torchaudio  -y# windows cpu pytorch(2.0.1) 无cudatoolkit:完美安装pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu116 -i https://pypi.tuna.tsinghua.edu.cn/simple# windows gpu pytorch(1.13.1) 无cudatoolkit:不可安装pip install torch-1.13.1+cu116-cp38-cp38-win_amd64.whlpip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116# windows gpu pytorch(2.0.0) cudatoolkit(11.8):不可安装conda install cudatoolkit=11.8cd D:\WLm_Project\MotionCatch\Openmmlabpip install torch-2.0.0+cu117-cp38-cp38-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simplepip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu117 # windows gpu pytorch(1.10.1) cudatoolkit(11.3):不可安装conda install cudatoolkit=11.3pip install torch-1.10.1+cu111-cp38-cp38-win_amd64.whlpip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html# mmhuman3d安装指令cd D:\WLm_Project\MotionCatch\Openmmlab\mmhuman3d\mmhuman3dpip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simplepip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

Linux中的OpenMMlab全家桶的安装

在linux下安装OpenMMlab全家桶非常简单,也不会遇到什么大问题。windows10中最令人头疼的pickle5和编译器问题在Ubuntu18.04中并不是问题。因为OpenMMlab就是针对linux开发的。

同样,从源码构建的方式,升级需要先pip uninstall卸载相应的包,再删除源码文件夹重新后git并编译。

# 创建环境
conda create -n OpenMMlab python=3.7 -y
conda activate OpenMMlab#ffmpeg
conda install ffmpeg -y#pytorch全家桶
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch -y# pytorch3D
conda install -c fvcore -c iopath -c conda-forge fvcore iopath -y
conda install -c bottler nvidiacub -y
conda install pytorch3d -c pytorch3d# mmcv
cd
mkdir OpenMMlab/mmcv
cd  OpenMMlab/mmcv
git clone https://github.com/open-mmlab/mmcv.git 
cd mmcv
pip install -r requirements.txt 
MMCV_WITH_OPS=1 pip install -e . # mmdetection
cd
mkdir OpenMMlab/mmdetection
cd OpenMMlab/mmdetection
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt 
pip install -v -e . # mmpose
cd
mkdir OpenMMlab/mmpose
cd OpenMMlab/mmpose
git clone https://github.com/open-mmlab/mmpose.git
cd mmpose
pip install -r requirements.txt 
pip install -v -e . #mmtrack
cd
mkdir OpenMMlab/mmtrack
cd OpenMMlab/mmtrack
git clone https://github.com/open-mmlab/mmtracking.git
cd mmtracking
pip install -r requirements/build.txt 
pip install -v -e .  # mmhuman3D
cd
mkdir OpenMMlab/mmhuman3D
cd OpenMMlab/mmhuman3D
git clone https://github.com/open-mmlab/mmhuman3d.git
cd mmhuman3d
pip install -r requirements.txt 
pip install -v -e . 

以下是安装完成后的截图:

mmcv
在这里插入图片描述
mmdet
在这里插入图片描述
mmpose
在这里插入图片描述
mmtrack

在这里插入图片描述

mmhuman3D
在这里插入图片描述

参考链接

1.win10中CUDA cundnn pytorch环境搭建记录
2.在windows中安装Pytorch3D
3.ImportError: cannot import name ‘_C’ from ‘pytorch3d’
4.Windows10下面安装MMCV全过程图文详解
5.【OpenMMLab全家桶】Win10编译配置教程
6.呼吁移除pickle5
7.pickle5有何作用
8.其他作者fork的代码,但是mmhuman3d团队暂时没有归并到自己repo中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/89577.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT: 提升程序员开发效率的秘密武器!

引言 在现代软件开发中,时间和效率显得尤为重要。程序员们需要在尽可能短的时间内编写高质量的代码,并使之处于状态良好的维护周期。为满足这些需求,人工智能技术逐渐成为软件开发的一项核心能力。ChatGPT作为自然语言生成模型中的佼佼者&am…

php如何对接伪原创api

在了解伪原创api的各种应用形态之后,我们继续探讨智能写作背后的核心技术。需要说明的是,智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联,在百度的智能写作实践中,常根据实际需求将多…

tp5中的事务处理

使用事务首先要数据库支持事务; 如下MySQL数据库user表开启事务支持,即设计表->引擎设置为InnoDB->保存 事务处理 1. 数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可; 2. 事务处理,需要执行多个 SQ…

稀疏感知图像和体数据恢复的系统对象研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

ARMday2

.text .global _start _start:mov r0,#0x1mov r1,#0x0sum:cmp r0,#0x64bhi stopaddls r1,r1,r0addls r0,r0,#0x1bls sumstop:b stop .end

背上大书包准备面试之CSS篇

目录 H5 新特性 css3新特性? 为什么要初始化css样式? 浏览器兼容性问题? css sprites(css精灵图)? css盒模型是什么样的? 页面中一个块元素的宽度包含了盒模型中的哪些部分?…

Unity2D RPG开发笔记 P1 - Unity界面基础操作和知识

文章目录 工具选择简单快捷键Game 窗口分辨率检视器Transform 组件Sprite Renderer综合检视器 工具选择 按下 QWERTY 可以选择不同的工具进行 旋转、定位、缩放 简单快捷键 按下 Ctrl D 可以复制物体 Game 窗口分辨率 16:9 为最常见的分辨率 检视器 Transform 组件 物体在…

go内存管理机制

golang内存管理基本是参考tcmalloc来进行的。go内存管理本质上是一个内存池,只不过内部做了很多优化:自动伸缩内存池大小,合理切割内存块。 基本概念: Page:页,一块 8 K大小的内存空间。Go向操作系统申请和…

分布式 - 服务器Nginx:一小时入门系列之HTTP反向代理

文章目录 1. 正向代理和反向代理2. 配置代理服务3. proxy_pass 命令解析4. 设置代理请求headers 1. 正向代理和反向代理 正向代理是客户端通过代理服务器访问互联网资源的方式。在这种情况下,客户端向代理服务器发送请求,代理服务器再向互联网上的服务器…

stm32项目(8)——基于stm32的智能家居设计

目录 一.功能设计 二.演示视频 三.硬件选择 1.单片机 2.红外遥控 3.红外探测模块 4.光敏电阻模块 5.温湿度检测模块 6.风扇模块 7.舵机 8.WIFI模块 9.LED和蜂鸣器 10.火焰传感器 11.气体传感器 四.程序设计 1.连线方式 2.注意事项 3.主程序代码 五.课题意义…

zabbix监控mysql数据库、nginx、Tomcat

文章目录 zabbix监控mysql数据库、nginx、Tomcat一.zabbix监控mysql数据库1.环境规划2.zabbix-server安装部署(192.168.198.17)3.zabbix-mysql安装部署(192.168.198.15)3.1 部署 zabbix 客户端3.2 服务端验证 zabbix-agent2 的连通…

【JavaWeb】MySQL基础操作

1 通用语法规则 SQL语句可以单行或者多行书写,以分号结尾SQL语句不区分大小写,关键字建议使用大写单行注释 --注释内容(通用) # 注释内容(MySQL独有)多行注释 /* 注释内容 */ 2 语句 数据库 -- 查…

前后端分离------后端创建笔记(03)前后端对接(下)

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…

新增守护进程管理、支持添加MySQL远程数据库,支持PHP版本切换,1Panel开源面板v1.5.0发布

2023年8月14日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.5.0版本。 在这个版本中,1Panel新增了守护进程管理功能;支持添加MySQL远程数据库;支持添加FTP/S和WebDAV的SFTP服务;支持PHP版本切换。此外&am…

测试架构师如何落地性能测试方案(一)

背景描述: 最近刚接手一个新项目,在最开始的时候要求对这个项目做性能测试,产品经理也给不出性能需求,只因为这个项目是电商项目,可能会有高并发,秒杀的场景,所以产品经理要求我们对这个项目必…

深入浅出 栈和队列(附加循环队列、双端队列)

栈和队列 一、栈 概念与特性二、Stack 集合类及模拟实现1、Java集合中的 Stack2、Stack 模拟实现 三、栈、虚拟机栈、栈帧有什么区别?四、队列 概念与特性五、Queue集合类及模拟实现1、Queue的底层结构(1)顺序结构(2)链…

echarts3d柱状图

//画立方体三个面 const CubeLeft echarts.graphic.extendShape({shape: {x: 0,y: 0,width: 9.5, //柱状图宽zWidth: 4, //阴影折角宽zHeight: 3, //阴影折角高},buildPath: function (ctx, shape) {const api shape.api;const xAxisPoint api.coord([shape.xValue, 0]);con…

c++ 有元

友元分为两部分内容 友元函数友元类 友元函数 问题&#xff1a;当我们尝试去重载operator<<&#xff0c;然后发现没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作 数了。…

AutoDL服务器的镜像版本太高,配置python3.7 tensorflow1.15版本的框架的步骤

1.选择一个实例&#xff0c;进入后端界面 2. 更新bashrc中的环境变量 conda init bash && source /root/.bashrc查看虚拟环境 conda info --envs可以看到此时有一个base的虚拟环境 但是它的python版本为3.8.10&#xff0c;无法安装tensorflow1.15,所以我们要创建一个…

基于Java+SpringBoot+Vue的网上图书商城设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…