OpenPose笔记——windows 10下,自编译openpose代码(vs下能跑了,pythonAPI也能使了)

2023-11-05

简直太可怕了,遇到N多的问题,我觉有必要写下来记录一下
我自己编译了四五天
编译了10几次
夭寿哦!
缺好多好多东西!
给大家讲一下具体步骤

一 .准备工作
准备工作当然是各种环境:
1. 至少VS2015 以上的版本
2. CMake Gui,注意,千万不要下载3.16版的!3.16版本没有win64的选项,编译出来是win32版本的。。。然后x64和x86冲突简直哭死个人。。。。我个人用cmake 3.13.2版本莫问题
3. OpenPose 源码 下载好后解压好待用。本人是2019年10月23日下载的源码
4. 安装 CUDA 官网下载,按提示来就行,注意添加环境变量:添加 [yourPath]\cuda 和[yourPath]\cuda\bin 到环境变量
5. 安装 CuDNN ,解压后拷贝:
[yourPath]\cuda\bin\cudnn64_5.dll —> (拷贝至)
[yourPath]\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
[yourPath]\cuda\include\cudnn.h —> (拷贝至)
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
[yourPath]\cuda\lib\x64\cudnn.lib —>(拷贝至)
[yourPath]\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
二. 各种依赖安装
1. 运行…/openpose-master/models/中的getModels.bat 下载所需的模型
2. 运行…/openpose-master/3rdparty/windows中的getCaffe.bat,getCaffe3rdparty.bat和getOpenCV.bat 下载各种依赖
3. 下载pyhind11,放在openpose-master\3rdparty文件夹下覆盖即可。 pyhind11百度云,提取码hgnd

三、编译源代码
最重要的来了!
1. 打开CMake GUI,第一个红框是openpose源码的文件夹,第二个红框里填的是生成路径,自己创建的
在这里插入图片描述
2. 点击【Configure】按钮,在弹出的对话框根据自己的版本选择合适的vs版本,一定要选择带win64的!对于同一个源码文件夹,这个对话框只弹一次。。。。。
在这里插入图片描述
3. 等出现 “Configuring done”后,差不多是这样的,再次点击【Configure】按钮直到红色全部消失。configure时如果出现错误,按照下面的错误提示自行解决。(我遇到的就是缺少pyhind11)
在这里插入图片描述
4. 勾选复选框
在这里插入图片描述
在这里插入图片描述
5. 点击【Generate】按钮,出现“Generating done”就好了
6. 然后下载 Caffe.rar, 解压后放在 openposeC-master\3rdparty\caffe\bin。因为之前通过 getcaffe.bat下载的caffe少boost_thread-vc140-mt-1_61.dll等dll文件,会导致无法运行,这几个dll根本下不到啊啊啊,所以我就把我自己弄好的dll打包好分享出来。 caffe百度云,提取码2403
在这里插入图片描述
7. 打开vs2015,打开项目,sln文件在刚刚的build文件夹里,选择Examples下的OpenPoseDeme,右键“设置为启动项目”,然后build整个解决方案
8. 、在这里插入图片描述
在这里插入图片描述
不知道别人怎么样,反正我跳过了一个。。。。
在这里插入图片描述
四、 跑起来啊嘿嘿嘿~
1. 上面的步骤完了之后,C++的例子已经可以运行了,所有C++的例子都在这里,需要用哪个例子,就把它右键设置为启动项目,然后运行就可以了。(里面有几个例子是要用到摄像头的)
在这里插入图片描述
在这里插入图片描述
2. 运行python
正常步骤下来,这个时候在openpose-master\build\python\openpose\Release文件夹下会出现pyopenpose.cp37-win_amd64.pyd 这个库文件
在这里插入图片描述
这证明我们已经安装了python API
然后通过cmd,cd到 openpose-masterV2\build\examples\tutorial_api_python文件夹下,执行 python 01_body_from_image.py,就可以得到结果
在这里插入图片描述
PS:如果出现了 找不到 DLL 文件的错误,会提示“BUILD_PYTHON”的错误,这个错误是python文件里写的。。。可以不用管,主要原因还是之前依赖没安好,在确定所有的依赖都放到了对应的文件夹的情况下,可以再次执行 点击【configure】按钮,点击【generate】按钮,vs内 【重新生成解决方案】,这样重新编译一遍就好了。
真的太难了。。。我弄了整整5天。。。。各种缺库。。。我还试过自己编译boost_1_61,只能编译出来静态链接库lib,编译不出来动态链接库dll。。。最核心的caffe包(包含各种boost vc140 dll)还是我从一位大哥那要了一个已经编译好的openpose文件里抠出来的,哪哪都下不到,真的是心力交瘁

已阵亡。。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenPose笔记——windows 10下,自编译openpose代码(vs下能跑了,pythonAPI也能使了) 的相关文章

  • 微信小程序 功能页导航 functional-page-navigator 组件

    完整微信小程序 Java后端 技术贴目录清单页面 必看 仅在插件中有效 用于跳转到插件功能页 属性 类型 默认值 必填 说明 最低版本 version string release 否 跳转到的小程序版本 线上版本必须设置为 release
  • linux安装idea并创建快捷方式

    一 安装 1 下载 在linux自带的火狐浏览器打开下载更方便 下载 IntelliJ IDEA JetBrains 功能强大 符合人体工程学的 Java IDE 选择Linux 这里以下载社区版为例 我下载的版本是2022 2 3 文件名
  • 了解应用层

    应用层 1 概述 2 应用程序组织方式 2 1 C S方式 2 1 P2P方式 3 动态主机配置协议DHCP 3 1 DHCP工作流程 4 域名系统DNS 4 1 域名结构 4 2 域名分类 4 3 域名服务器 4 3 1 分类 4 4 D
  • Python-爬虫(Scrapy爬虫框架,爬取豆瓣读书和评分)

    文章目录 1 Scrapy注意点 2 Scrapy爬取豆瓣读书和评分 代码部分 数据定义items py 爬虫部分spiders book py 数据存储部分pipelines py 启动爬虫执行cmd命令 start py 1 Scrap
  • QT设计电子时钟类

    1 界面效果 2 类的声明 wedgit h class Widget public QWidget Q OBJECT public Widget QWidget parent nullptr 默认构造函数 Widget 默认析构函数 vo
  • 磁共振检查头部能检测出什么_头部核磁共振可以检查什么?

    很多人会疑惑为什么要做头部核磁共振 做CT不好吗 这是因为脑CT具有一定的局限性 有时候脑CT是不能诊断出脑部异常情况的 头部核磁共振检査较CT更为敏感 具有多方向切层 多参数成像的特点 能更精确的现实病变位置 范围大小及组织学特性 是发现
  • 【Java】利用SpringBoot搭建WebService服务接口

    前言 在项目开发过程中经常会碰到对接医疗软件系统的时候对方要求提供WebService形式的接口 本篇文章记载了个人对接项目过程中整合并搭建的WebService形式的接口 希望对您能够有所帮助 一 在pom xml文件中导入WebServ
  • 期权、期货及其他衍生产品 第一章读书笔记

    期权 期货及其他衍生产品 第一章读书笔记 介绍 什么是衍生产品 衍生产品的特点 有哪些交易所场所 交易所市场 一些著名的交易所市场 场外市场 我国的场外市场 远期合约 远期合约可以用来对冲外汇风险 远期合约的收益 远期价格和即期价格 期货合
  • lua学习笔记—table

    1 什么是table table是lua的一种数据结构 可以用来创建数组或映射 lua中的table使用的是关联型数组 关联数组的key值可以是除过nil之外任意类型的值 table的大小是不固定的 可以自己进行扩容 2 如何构造table
  • iOS autorelease 示例研究

    iOS autorelease是Objective C中的一个自动内存管理机制 它通过在对象创建时将其添加到自动释放池中 在池被释放时自动释放对象 从而减少手动内存管理的工作量 本文将介绍如何使用autorelease机制来管理内存 aut

随机推荐

  • 跨部门的高效沟通与协作

    在企业管理当中 沟通是一个非常重要的技能 它运用我们管理当中每一个细节 首先要做好沟通和协作 我们需要有一个很好的思维模式 这个就像盖房子一样 它是地基 是一个房子的地基部分 没有一个正确的思维模式 那我们其后的技巧都不会有一个很好的效果
  • 大数据框架总结

    hdfs 1 写数据流程 2 HDFS读数据流程1 3 HDFS副本节点选择 4 HDFS nn 2nn 镜像文件以及编辑日志的工作机制 注意此类机制都是先更新编辑日志 再更新内存文件block元数据 checkpoint触发默认条件是一小
  • 谈谈虚幻引擎4的Global Illumination

    本届GDC 2013 Epic再次展示了UE4的最新demo 效果惊艳毋庸置疑 不过今天我们只谈UE4的光照利器 SVOGI SVOGI全称Sparse Voxel Octree Global Illumination 由Epic的Andr
  • DES的加密与解密(C语言实现)——大三密码学实验

    目录 DES的描述 Feistel体制 密钥扩展函数 F函数 总流程 代码 get函数的构建 yihuo函数的构建 fuck函数的构建 left move函数的构建 exchange函数的构建 erzhuanshi函数的构建 shizhua
  • 利用Vulnhub复现漏洞 - GoAhead 远程命令执行漏洞(CVE-2017-17562)

    GoAhead 远程命令执行漏洞 CVE 2017 17562 Vulnhub官方复现教程 漏洞原理 复现漏洞 启动环境 漏洞复现 动态链接库源码 编译so文件 发送payload Vulnhub官方复现教程 https vulhub or
  • EasyExcel导出模板实现下拉选(解决下拉超过50个限制)

    学习地址 https d9bp4nr5ye feishu cn wiki O3obweIbgi2Rk1ksXJncpClTnAf B站视频 https www bilibili com video BV1H34y1T7Lm 先来看看最终实现
  • MySQL基本操作语句

    目录 基本的操作数据库的语句 操作库的基本SQL语句 针对表的基本SQL语句 针对记录的基本SQL语句 扩展知识 select 标准用法 基本的操作数据库的语句 show databases gt gt gt gt 查看所有的数据库 sho
  • vue3 nvm配置多个版本node

    在实际开发中 我们可能会负责多个项目 有的项目是vue2版本开发的 有的是vue3版本开发的 如果我们电脑全局的node版本是低版本的 那么高版本的vue3项目在安装依赖时就会报错 反之亦然 我们可以使用nvm来安装多个版本的node 并使
  • Vue table不分页 动态加载数据(类似手机端滑动到底端后再去获取数据)

    最近接到一个需求 pc端中的table 数据不做分页 而是做成滚动条形式 但是table中的数据还是一次显示50条 等这50条滑动到底部后 再去加载50条 有加载效果 以此类推 直到数据全部展示 值得注意的是 我的需求是 第一次请求数据就将
  • 在线UTF-8/GBK互相转换工具

    在线UTF 8 GBK互相转换工具 https encode guiboweb com
  • shell执行Oracle SQL并捕获异常案例分析

    一 shell脚本 实现功能读取指定配置文件中的Oracle数据库连接 清空传入变量表的数据 以及清除数据之后的结果进行捕获分析 bin bash Created Date 2022 12 16 Author Last Modified 2
  • db2错误代码

    DB2错误代码 SQL返回码信息对照 用COBOL链接DB2时 出现DB2错误信息时 如果你不懂代码是什么意思 可以用这份资料查找 当然你也可以直接在db2的命令行下输入 db2 SQL30081N 系统会给出一些提示信息 sqlcode
  • LiDAR SLAM的比较

    在自动驾驶领域 定位是很重要的一环 为了建立更有鲁棒性 精确的定位 在实际自动驾驶车上往往都会使用激光雷达 激光雷达相比于摄像头 对光照变化不敏感 适合白天和黑夜 绝大多数路况 激光雷达获得的距离信息精度很高 获取的feature很稳定 当
  • Spring 异常处理的三种方式 整理

    异常处理方式一 ExceptionHandler 异常处理方式二 实现HandlerExceptionResolver接口 异常处理方式三 ControllerAdvice ExceptionHandler 三种方式比较说明 强烈推荐各位看
  • 小程序接入微信客服

    wx openCustomerServiceChat Object object 微信开放文档 微信小程序打开微信客服 接口文档 企业微信开发者中心 1 网页搜索 微信客服 扫码登录 根据提示 填写信息 微信客服 2 在 微信客服 中进入企
  • 项目打包报不能在脱机状态下访问**资源

    项目场景 springboot项目 使用maven进行打包操作 问题描述 Failed to execute goal org springframework boot spring boot maven plugin 2 5 0 repa
  • UE4_UStruct 遍历

    一个结构体中存在一个Val变量 Val变量的类型是FVector4 想从c 层面去遍历获得Val的值 上图是很早之前的一个Property继承关系图 当然 在4 25UProperty被FProperty夺笋 好处呢 见下 没有继承UObj
  • etcd的使用

    启动etcd服务 启动etcd时最主要的是需要准备两个没有使用过的端口 这两个端口一个用于etcd之间同步信息 一个用于etcd向客户端提供服务的端口 因此启动单个etcd节点 只需按照如下命令行输入即可 server name myetc
  • sigmoid & logistic

    1 吴恩达老师视频中说sigmoid函数就是logistic函数 2 查阅复旦大学邱锡鹏老师关于深度学习的书 在第四章中写道 Sigmoid型函数是指一类S型曲线函数 为两端饱和函数 常用的Sigmoid型函数有Logistic函数和Tan
  • OpenPose笔记——windows 10下,自编译openpose代码(vs下能跑了,pythonAPI也能使了)

    简直太可怕了 遇到N多的问题 我觉有必要写下来记录一下 我自己编译了四五天 编译了10几次 夭寿哦 缺好多好多东西 给大家讲一下具体步骤 一 准备工作 准备工作当然是各种环境 1 至少VS2015 以上的版本 2 CMake Gui 注意