windows10和linux18.04中配置mmhuman3d

news2024/11/23 11:37:41

分类:动作捕捉
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.whl
 pip 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.8
 cd D:\WLm_Project\MotionCatch\Openmmlab
 pip install torch-2.0.0+cu117-cp38-cp38-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
 pip 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.3
 pip install torch-1.10.1+cu111-cp38-cp38-win_amd64.whl
 pip 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\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

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.coloradmin.cn/o/877214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能能够通过所有[创造力测试]

沃顿商学院教授Ethan Mollick emollick 分享了三篇新的实验性论文,证明了AI在实际情境中的创造力。 https://www.oneusefulthing.org/p/automating-creativity “GPT-4 现在在替代用途测试中击败了 91% 的人类,在托伦斯创造性思维测试中击败了 99% 的人类…

每天一道leetcode:1466. 重新规划路线(图论中等广度优先遍历)

今日份题目: n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以…

网络安全专业术语英文缩写对照表

因在阅读文献过程中经常遇到各种专业缩写,所以把各种缩写总结了一下。 因能力有限,错误在所难免,欢迎进行纠错与补充:https://github.com/piaolin/CSAbbr 渗透相关 缩写全称解释备注XSSCross Site Script Attack跨站脚本攻击为…

前端食堂技术周刊第 94 期:TS 5.2 RC、从零实现 RSC、Redux 迁移至 ESM 之旅、HTML 满汉全席

美味值:🌟🌟🌟🌟🌟 口味:葡茉美式 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…

揭秘国产操作系统的黄金测试利器:探索开源测试工具的神秘世界

揭秘国产操作系统的黄金测试利器:探索开源测试工具的神秘世界 文章目录 1.前言2.国产操作系统现状的深度解析3.国产操作系统的质量保障神器(开源测试工具)4.开源测试工具的重要性5.国产操作系统如何利用开源测试工具进行黄金测试6.国产操作系统的开源测试工具整合方…

python安装第三方包时报错:...\lib\site-packages\pip\_vendor\urllib3\response.py...

安装redis第三方包: pip install redis报错现象: 解决方法:使用以下命令可成功安装 pip install redis -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

IT运维:使用数据分析平台监控深信服防火墙

概述 深信服防火墙自身监控可以满足绝大部分需求,比如哪个应用占了最大带宽,哪个用户访问了哪些网站?这里我们为什么使用鸿鹄呢?因为我们要的是数据的处理和分析,比如某个用户在某个事件都做了哪些行为,这个…

OpenCV图像处理——轮廓检测

目录 图像的轮廓查找轮廓绘制轮廓 轮廓的特征轮廓面积轮廓周长轮廓近似凸包边界矩形最小外接圆椭圆拟合直线拟合 图像的矩特征矩的概念图像中的矩特征 图像的轮廓 查找轮廓 binary,contours,hierarchycv.findContours(img,mode,method)绘制轮廓 cv.drawContours(img,coutours…

找不到mfc140u.dll怎么办?mfc140u.dll丢失怎样修复?简单三招搞定

最近我遇到了一个问题,发现我的电脑上出现了mfc140u.dll文件丢失的错误提示。这个错误导致一些应用程序无法正常运行,让我感到非常困扰。经过一番研究和尝试,我终于成功修复了这个问题,并从中总结出了一些心得。 mfc140u.dll丢失原…

Claude2 Api接入方案

一,实现目标 接入钉钉机器人支持群聊和私聊 网上看了很多方案,因为Claude的api申请难度非常大,大部分都是说使用Slack,但是Slack只能免费使用一个月。作为一个完美主义怎么可能允许这样的事情发生。何如处理,抓网页。…

基于Redis实现全局唯一Id

微信公众号访问地址:基于Redis实现全局唯一Id 推荐文章: 1、使用原生Redis命令实现分布式锁 ​ 2、为什么引入Redisson分布式锁? 3、SpringBoot整合多数据源,并支持动态新增与切换(详细教程) 4、Sprin…

【计算机网络】Udp详解

前言 上几文章我们讲解了应用层协议Http和Https,要知道应用层协议有很多,这些都是程序员自己定制的,而真正要传输的时候,是要在操作系统的传输层进行的,今天我们就来学习一下传输层协议Udp的 标识一个通信 要进行跨…

黑马项目一阶段面试 自我介绍篇

面试官你好,我叫xxx,是来自xxxx的本科毕业生。我通过招聘网站/内推/线下招聘了解到的贵司,我具有扎实的Java后端的基础功底,基本掌握JavaSE、JavaEE流行技术的使用,并且我比较好学,心态也很乐观积极&#x…

docker nginx ssl设置

使用docker运行nginx,配置代理,和ssl设置,进行https访问 一 准备 本次在centos环境中 1.已安装docker,docker-compose 2.运行了一个后端服务容器,提供基本的接口访问【可选】 3.一个域名(已经解析到服…

Linux命令200例:date用于显示和设置系统的日期和时间

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…

MongoDB 更新文档(更新数组对象中的元素)

之前我们介绍了如何更新文档,并简单的介绍了更新文档时可以使用选项进行指定当更新内容不存在时,可以进行新增文档。具体可以参考: MongoDB 更新文档(更新一条文档)https://blog.csdn.net/m1729339749/article/details/129983304 最近遇到了…

Android实现超出固定行数折叠文字“查看全文“、“收起全文“

先上效果图 分析问题 网上有很多关于这个的代码,实现都过于复杂了,github上甚至还看到一篇文章600多行代码,结果一跑起来全是bug。还是自己写吧!!! 如果我们需要换行的"查看全文"、"收起全…

用汇编指令求两个数的最大公约数 求for循环实现1~100

1.用汇编指令求两个数的最大公约数 2.用汇编指令求for循环实现1~100

【校招VIP】测试计划之黑盒测试白盒测试

考点介绍: 黑盒测试&白盒测试是大厂和三四线公司校招的必考点。黑盒是以结果说话,白盒往往需要理解实现逻辑。现在商业项目的接口测试往往以白盒为主,也就是需要测试同学自己观察和修改数据库的值进行用例的测试。 但是无论采用哪种测试方…

尚硅谷大数据项目《在线教育之离线数仓》笔记001

视频地址:尚硅谷大数据项目《在线教育之离线数仓》_哔哩哔哩_bilibili 目录 P003 P004【数仓概念讲的颇为详细】 P018 P019 P020 P021 P022 P023 P024 P003 时间切片:时间回溯,找回以前的数据。 P004【数仓概念讲的颇为详细】 核心架…