ubuntu18.04编译Open Pose 1.7
文章目录
- 1、编译opencv 和 opencv_contrib
- 1.1安装最新版本opencv4.5.3(跳过)-caffee版本不匹配
- 1.2安装opencv3.4.3
- 2、编译caffe
- 2.1错误排除
- 2.1.1 nvcc fatal : Unsupported gpu architecture 'compute_20'
- 2.1.2 fatal error: opencv2/core/core.hpp: 没有那个文件或目录
- 2.1.3fatal error: glog/logging.h: No such file or directory compilation terminated.
- 2.1.4fatal error: gflags/gflags.h:没有那个文件或目录
- 2.1.5fatal error: hdf5.h: 没有那个文件或目录
- 2.1.6 error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
- 3、编译OpenPose
- 报错
- pybind11
- Library was built without OpenGL support in function 'cvNamedWindow'
- 4 测试
1、编译opencv 和 opencv_contrib
1.1安装最新版本opencv4.5.3(跳过)-caffee版本不匹配
下载并解压opencv_contrib
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.3.zip
unzip opencv_contrib-4.5.3.zip
下载并解压opencv
https://github.com/opencv/opencv/archive/refs/tags/4.5.3.zip
unzip opencv-4.5.3.zip
创建构建目录并进入该目录
mkdir opencv-4.5.3/build
cd opencv-4.5.3/build
安装必要的包
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
注掉anaconda的环境配置
vi ~/.bashrc
保存配置
source ~/.bashrc
执行cmake
这里看自己文件夹python版本
PYTHON_DEFAULT_EXECUTABLE
PYTHON3_INCLUDE_DIR
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.3/modules -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.8 -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF -D PYTHON3_EXCUTABLE=/usr/bin/python3.8 -D PYTHON3_INCLUDE_DIR=/usr/include/python3.8 -D WITH_CUDA=OFF -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_GTK_2_X=ON ..
如果看到如下信息,说明cmake执行成功
-- Configuring done
-- Generating done
-- Build files have been written to: xxx/opencv-4.5.3/build
执行编译
make -j8
不报错的话即编译成功。
安装
sudo make install
如果要卸载
sudo make uninstall
1.2安装opencv3.4.3
1安装所需要的依赖
sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev # 处理图像所需的包
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt install libatlas-base-dev gfortran # 优化opencv功能
sudo apt install ffmpeg
2.去官网下载opencv,在本教程中选用的时opencv3.4.6
https://opencv.org/releases/page/3/
wget https://github.com/opencv/opencv/archive/3.4.6.zip
3安装依赖库
sudo apt update
sudo apt install cmake
sudo apt install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
3解压
unzip opencv-3.4.6.zip
cd opencv-3.4.6
mkdir build
cd build
4cmake
cmake -D WITH_OPENGL=ON -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv343 ..
成功
5执行编译
sudo make -j8
6执行命令
sudo make install
7配置环境
sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
执行如下命令使得刚才的配置路径生效
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
source /etc/bash.bashrc
更新
sudo updatedb
如果没有安装执行
sudo apt-get install mlocate
8测试
至此所有的配置都已经完成,下面用一个小程序测试一下
cd到opencv-3.4.6/samples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行
cmake .
make
./opencv_example
2、编译caffe
下载并解压源代码:
wget -c https://codeload.github.com/BVLC/caffe/zip/f019d0dfe86f49d1140961f8c7dec22130c83154 -O caffe1.zip
unzip caffe1.zip
安装库
$ sudo apt-get update
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libatlas-base-dev liblmdb-dev
修改文件
cd caffe1protoc src/caffe/proto/caffe.proto --cpp_out=.mkdir include/caffe/protomv src/caffe/proto/caffe.pb.h include/caffe/proto
修改Makefile.config
cp Makefile.config.example Makefile.config
# 根据本机环境修改 Makefile.config
...
将
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
......
#如果此处是OpenCV2,则不用修改
将
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
......
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
......
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
......
将
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \-gencode arch=compute_20,code=sm_21 \-gencode arch=compute_30,code=sm_30 \-gencode arch=compute_35,code=sm_35 \-gencode arch=compute_50,code=sm_50 \-gencode arch=compute_52,code=sm_52 \-gencode arch=compute_60,code=sm_60 \-gencode arch=compute_61,code=sm_61 \-gencode arch=compute_61,code=compute_61
修改为
CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \-gencode arch=compute_35,code=sm_35 \-gencode arch=compute_50,code=sm_50 \-gencode arch=compute_52,code=sm_52 \-gencode arch=compute_60,code=sm_60 \-gencode arch=compute_61,code=sm_61 \-gencode arch=compute_61,code=compute_61
...
然后修改 caffe 目录下的 Makefile 文件:
sudo gedit Makefile
...
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
......
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
...
然后修改 /usr/local/cuda/include/host_config.h 文件
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
但是我发现文件中并没有#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!,然后就发现有个/usr/local/cuda/include/crt/host_config.h,然后gedit进去改了一个相似的。
开始编译
不要直接在caffe里make all -j8
使用官方的安装方式
mkdir build
cd build
cmake -DCUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so \-DPYTHON_LIBRARY=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so \-DPYTHON_INCLUDE_DIRS=/usr/include/python3.8 ..make all -j8
make install
make runtest
2.1错误排除
如果编译失败 进入caffee文件夹
sudo make clean
2.1.1 nvcc fatal : Unsupported gpu architecture ‘compute_20’
解决办法:修改Makefile.config文件
# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \-gencode arch=compute_20,code=sm_21 \-gencode arch=compute_30,code=sm_30 \-gencode arch=compute_35,code=sm_35 \-gencode arch=compute_50,code=sm_50 \-gencode arch=compute_52,code=sm_52 \-gencode arch=compute_60,code=sm_60 \-gencode arch=compute_61,code=sm_61 \-gencode arch=compute_61,code=compute_61
把下面这两行删除就可以了
-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
2.1.2 fatal error: opencv2/core/core.hpp: 没有那个文件或目录
这个问题,可以查看include_dir
文件夹错位了在下一层
这里在下一层去复制过来就可以了
sudo cp -r /usr/local/include/opencv4/opencv2/ /usr/include/
2.1.3fatal error: glog/logging.h: No such file or directory compilation terminated.
方法1
sudo apt-get install libgoogle-glog-dev
方法2
出现这个错误是因为本机没有安装glog,安装方法:csdn查询对应ubuntu系统版本的安装方法
1、安装autoreconf
sudo apt install autoconf automake libtool
2下载glog源文件:
git clone https://github.com/google/glog.git
3根据https://github.com/google/glog底部的安装步骤安装glog:
./autogen.sh
./configure
make
sudo make install
2.1.4fatal error: gflags/gflags.h:没有那个文件或目录
sudo apt-get install libgflags-dev
2.1.5fatal error: hdf5.h: 没有那个文件或目录
这次是ubuntu 16.04修改了hdf5头文件目录导致的,要在Makefile.config中把hdf5的一个目录添加进来:
# 找到这行:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include# 替换为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
2.1.6 error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
cd ..
sed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/layers/window_data_layer.cpp
sed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/util/io.cpp
sed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g' src/caffe/util/io.cpp#下面部分忽略。。。上面三行就可以
sed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/test/test_io.cpp
sed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g' src/caffe/test/test_io.cpp
3、编译OpenPose
下载并解压代码:
wget -c https://github.com/CMU-Perceptual-Computing-Lab/openpose/archive/refs/tags/v1.7.0.zip -O openpose-1.7.0.zip
unzip openpose-1.7.0.zip
下载第三方包
cd openpose-1.7.0/3rdparty
git clone https://gitee.com/yao_yu/pybind11.git
创建构建目录
cd ../
mkdir openpose-1.7.0/build
启动cmake-ui
cmake-gui
这是最终效果
点击 Configure 在弹出的窗口中点Finish如果不报错再点击Generate
如果一切顺利 切换到openpose-1.7.0/build目录
cd openpose-1.7.0/build
make -j8
如果编译过程中出现过一个错误 cannot find #include “caffe/proto/caffe.pb.h”
# 在caffe根目录
protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto
然后在build目录下重新编译
不报错即编译成功
make clean
make -j8
sudo make install
报错
pybind11
这里需要下载pybind11
随便在码云找一个pybind11的包下载到3edparty文件夹中
roy@ngi:~/data/gitte/openpose_make/openpose-1.7.0/3rdparty$ git clone https://gitee.com/zzwmirrors/pybind11.git
Library was built without OpenGL support in function ‘cvNamedWindow’
解决方案
https://blog.csdn.net/weixin_40198941/article/details/97523485
4 测试
在根目录下
./build/examples/openpose/openpose.bin --video examples/media/video.avi
出现问题可以查看
https://www.freesion.com/article/2784790670/
也有可能电脑新能跟不上改为下面的检测点由25个变为15个
./build/examples/openpose/openpose.bin -model_pose MPI -net_resolution -1x368 --video examples/media/video.avi
ubuntu18.04编译Open Pose 1.7相关推荐
- Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南
Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...
- Ubuntu18.04 编译报错 `No package ‘orocos-bfl‘ found` 的解决方法
写在前面 笔者运行环境Ubuntu18.04,ROS-melodic. 在运行 robot_pose_ekf ,出现了 bfl 的报错. 一.报错提示 No package 'orocos-bfl' ...
- OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录
OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录 1.下载源码和安装依赖包 2.解压源码文件和配置路径 3.配置Cmake并编译OpenCV 4.导入Op ...
- android 源码编译core dumped,Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记
Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记 经过不断的尝试并经过一晚上的编译终于在ubuntu18.04的虚拟机内编译成功Android 8.1,下面我列举以下在编译 ...
- Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动
记录一下Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动全过程 内核版本: Linux 5.6.19-050619-generic 先是一步一步按照这个做的,到make的时候发 ...
- Ubuntu18.04 编译 ncnn
官方文档(https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux-x86)上说的是: install g++ cmake p ...
- Ubuntu18.04编译Android源码openssl版本过高
报错:*FAILED:/bin/bash -c "(rm -rf out/target/product/FJDEV061/signed )报错原因:Ubuntu18.04的openssl1. ...
- Ubuntu18.04编译c语言程序
在Ubuntu18.04系统下编译C程序的一般流程,vim文本编辑器的使用,makefile的使用等 一.vim教程 1. 功能 2. 模式 3. 基本操作 二.在Ubuntu系统下使用gcc编译c程 ...
- ubuntu18.04编译4.15内核过程
内核下载地址:Linux kernel 1.将下载好的内核源码压缩包置于ubuntu18.04虚拟机中(在windows上解压会导致部分文件损坏) 2.解压下载的压缩包,在/usr/src中 tar ...
- ubuntu安装vasp_科学网—Ubuntu18.04编译VASP.5.4.1两种方法的详细过程 - 木留华的博文...
笔者根据自己的经验总结了VASP在Ubuntu系统的安装方法,分享给大家并方便自己查看. 下面两种编译方法(gfortran及MKL分别编译VASP)均需要VASP源码包及其补丁,这些可以在官网或通过 ...
最新文章
- python中最常用的映射类型_什么是python中唯一的映射类型
- C++words search单词搜索的算法实现(附完整源码)
- 用户登陆_「python学习笔记」用户登陆需求实现(for/if/str知识点)
- Loadruner压数据库oracle,LoadRunner连接Oracle数据库(转)
- php基础知识 书写格式
- Jmeter中的几个重要测试指标释义
- string字符串的查找替换、模式匹配
- DB2数据库常用命令
- C语言读取易语言的字节集,易语言字节集参数传递详解
- 中控考勤机忘记密码处理
- 用Aria2来替换迅雷
- 20年前的网文:我彷徨在唯物主义和唯心主义之间
- 洛谷P2668 斗地主
- python test suite什么意思_在python中创建testsuite
- 关于Ultraiso无法写入硬盘映像的相关解决办法
- 基于腾讯云的多人视频会议的在线语音转写功能的实现
- SEO优化:6个方法提升网站排名
- C++ QT开发人机象棋(鼠标点击)
- L3-011 直捣黄龙
- 『JavaSE』多态
热门文章
- tomcat下载安装及配置【图文教程】
- 工业上的数控机床所属计算机应用的什么领域,工业上的数控机床所属的计算机应用领域是______。...
- windowskb2685811补丁_Win7/8.1 KB2685811、KB2685813和KB2670838蓝屏补丁下载汇总 (32位+64位)...
- 电脑版微信发消息转圈圈
- 视频教程-AJAX+JSON完成实时验证码检测+输入补齐-Java
- 文件上传下载--DiskFileUpload
- 南大通用极速内存数据库
- 韦东山嵌入式学习心得
- 中职生计算机应用试卷分析,中职计算机应用基础学业水平测试问题的相关分析...
- Manjaro 安装 wiznote[解决:安装完成输入wiznote没有该命令]