openpose开发(1)官方1.5版本源码编译
环境
WIN10系统,联想Y7000配置,8G内存
- VS2019
- cuda10
- cudnn10
- opencv4.11没有扩展库
- 显卡 1050TI
用到的库(提前下载好的模型,依赖库,user_code是自己新添加的开发样例)

隐患
我的系统默认还有cuda8(已经被10的系统环境替代)
还有VS2015 ,VS2019与其共存极其容易带来环境问题,造成后面的编译调试失败。
1下载源码
https://github.com/CMU-Perceptual-Computing-Lab/openpose

我的此时此刻最新的1.5.1

2开始编译
2-1第一次编译,直接翻墙,手机流量,高速下载让他自动安装caffe和openc4.11和模型文件
(如果是第二次编译,为了加快速度可以把之前下载好的caffe和opencv4.11库预先复制出来,给以后重复编译用)
直接解压到工程文件对应目录

库模型也可以直接解压避免重新下载


2-2 创建bulid文件夹开始编译
选择vs2019- 64位


3 生成generate

4 vs2019打开生成的vs工程


5 VS生成文件

环境配置什么都没有,默认cmake时候有了caffe库和opencv4.11库
漫长等待生成。

我们运行一个

正常因该出画面

报了个错,程序中断了,感觉是cuda问题我来看看。

双击对勾,点击加载


一直在那加载,我等里一段时间,他应该加载了很多默认的东西,包括出错的那个东西也应该自动加载了,点击取消,直接成功

直接运行生成的EXE会报错

我们需要去之前下载的cafe和opencv4.11库复制过来


还有生成的模型,相对路径
全部复制到exe的生成文件夹下
重新运行就可以了。
这样就可以执行CMD输入参数
6 如何创建自己的新工程
自己要改写一个程序做一个开发
来到



这个cpp是来自于样例16的开发直接拷贝过来。
cmake改写后的内容、
# Uncomment these lines with your custom file names
set(USER_CODE_FILES
# ADD_HERE_YOUR_FILE1.cpp
# ADD_HERE_YOUR_FILE1.hpp
# ADD_HERE_YOUR_FILE2.cpp
# # ...
synchronous_custom_output.cpp) foreach(USER_CODE_FILE ${USER_CODE_FILES}) get_filename_component(SOURCE_NAME ${USER_CODE_FILE} NAME_WE) if (UNIX OR APPLE)
set(EXE_NAME "${SOURCE_NAME}.bin")
elseif (WIN32)
set(EXE_NAME "UserCustomCode")
endif () message(STATUS "Adding Example ${EXE_NAME}")
add_executable(${EXE_NAME} ${USER_CODE_FILE})
target_link_libraries(${EXE_NAME} openpose ${examples_3rdparty_libraries}) if (WIN32)
set_property(TARGET ${EXE_NAME} PROPERTY FOLDER "User Code")
configure_file(${CMAKE_SOURCE_DIR}/cmake/OpenPose${VCXPROJ_FILE_GPU_MODE}.vcxproj.user
${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}.vcxproj.user @ONLY)
# Properties->General->Output Directory
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
set_property(TARGET ${EXE_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}/$(Platform)/$(Configuration))
endif (WIN32) endforeach()
重新cmake一下

打开vs可以看见多一个项目

重新VS编译一下

设为启动项目,运行调试

openpose开发(1)官方1.5版本源码编译的更多相关文章
- HAProxy-1.8.x版本源码编译
源码编译HAProxy: 官网下载HAProxy包,并解压包,切换到haproxy包目录下 [root@centos17haproxy-1.8.20]#tar xvf haproxy-1.8.20. ...
- spring各个版本源码
各版本源码下载地址 http://maven.springframework.org/release/org/springframework/spring/
- Spring各版本源码下载
spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...
- [转帖]nginx1.17.2版本源码安装
nginx1.17.2版本源码安装 原创: 沧海书生 Ansible爱好者 昨天 公众号里面的内容 这里简单测试了下 在x86的虚拟机里面编译安装 nginx 仅make make install n ...
- Kafka 0.10.1版本源码 Idea编译
Kafka 0.10.1版本源码 Idea编译 1.环境准备 Jdk 1.8 Scala 2.11.12:下载scala-2.11.12.msi并配置环境变量 Gradle 5.6.4: 下载Grad ...
- 任务驱动,Winform VS WEB对比式学习.NET开发系列第一篇------身份证解析(不断更新的WEB版本及Winform版本源码)
一 本系列培训随笔适用人群 1. 软件开发初学者 2. 有志于转向Web开发的Winform程序员 3. 想了解桌面应用开发的Web程序员 二 高效学习编程的办法 1 任务驱动方式学习软件开发 大部分 ...
- Res-net 标准版本源码差异-官方源码示例
# resnet https://github.com/tensorflow/models/blob/master/research/slim/nets/resnet_v1.py https://gi ...
- 《k8s-1.13版本源码分析》-测试环境搭建(k8s-1.13版本单节点环境搭建)
本文原始地址(gitbook格式):https://farmer-hutao.github.io/k8s-source-code-analysis/prepare/debug-environment. ...
- 《k8s-1.13版本源码分析》- Scheduler启动前逻辑
本文原始地址(gitbook格式):https://farmer-hutao.github.io/k8s-source-code-analysis/core/scheduler/before-sche ...
随机推荐
- 使用WCF-SQL一次Insert多个表
在Visual Studio中新增生成项目 选择适配器类型 选择WCF-SQL适配器 创建连接选项 选择相应的存储过程 生成相应的消息架构
- (十一)golang--键盘输入
两种方式:fmt.Scanln()和fmt.Scanf() (1)fmt.Scanln package main import "fmt" func main() { //获取一行 ...
- sprintboot+mybatis+@Mapper中in的使用方法
错误的使用方法: @Select("select goods_sn from ${tableName} where goods_sn in (#{skuStr})") public ...
- 修改Yarn的全局安装和缓存位置
在CMD命令行中执行 #1.改变 yarn 全局安装位置 yarn config set global-folder "你的磁盘路径" #2.然后你会在你的用户目录找到 `.yar ...
- 【More Effective C++ 条款1】仔细区别pointers和references
1)操作符的差别 指针使用"*"和"->"操作符,而引用使用"."操作符 2)初始化的差别 有空指针,但是没有空引用,和const对象 ...
- 被synchronized修饰的方法调用了没有被synchronized修饰的方法,是否是线程安全
1 被synchronized修饰的方法调用了没有被synchronized修饰的方法,是否线程安全? /** * (1)被synchronized修饰的方法调用了没有被synchronized修饰的 ...
- springboot+RabbitMQ 问题 RabbitListener 动态队列名称:Attribute value must be constant
因为多机环境fanout广播模式,每台机器需要使用自己的队列接受消息 所以尝试使用以下的方案 private static final String QUEUE_NAME="foo.&quo ...
- scala基础题--面向对象1
练习1 编写computer类,包含CPU.内存.硬盘等属性,getDetails方法用于返回computer的详细信息. 编写PC子类,继承computer类,添加特有属性[品牌brand] 编写n ...
- ionic4 页面跳转传值和新页面取值
页面跳转 : <ion-row *ngFor="let item of aboutData.stockData" [routerLink]="[ '/stock-d ...
- Git 快速极简图文教程 第一篇
Git简介 Git 是目前使用最广泛,最著名的工具.据了解,目前绝大部分互联网公司都已经全部切入到git作为版本管理工具,尤其是bat等头部公司,这是一个标准的技能. Git 最早是有linux之父, ...