Jetson AGX Orin部署Openpose实现肢体姿态检测学习笔记

前言

使用SDK Manager 烧录系统默认安装了CUDA等环境配置,查看Jetson AGX OrinJetPack 版本和 CUDAcuDNNOPENCVTensorRT版本

  • 安装pip3jtop
sudo apt-get update
sudo apt-get install python3-pip python3-dev -y
sudo -H pip3 install jetson-stats
sudo jtop

在这里插入图片描述

  • 换国内源
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

#清华源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricted
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricted

sudo apt-get update

一、Openpose环境配置

1.安装 protobuf

sudo apt-get install build-essential 
tar -zxvf protobuf-2.6.1.tar.gz
cd protobuf-2.6.1/
sudo ./configure 
sudo make 
sudo make check 
sudo make install 
  • 查看 protobuf
sudo gedit /etc/ld.so.conf.d/bprotobuf.conf   //创建 bprotobuf.conf文件

#添加的内容
/usr/local/lib

sudo ldconfig
protoc --version

在这里插入图片描述

2.安装依赖库

sudo apt-get install g++ gcc libssl-dev make
sudo apt-get install qtbase5-dev
sudo apt-get install libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev 
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev 
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev 
sudo apt-get install git build-essential

3.安装 cmake

  • 下载Cmake源码:Cmake官网
    在这里插入图片描述
    直接安装 Cmake 时出现 Could not find OpenSSL 错误,所以就先安装 openssl
    在这里插入图片描述

  • 下载openssl源码:openssl 官网
    在这里插入图片描述

  • 安装 openssl

tar -zxvf openssl-3.0.7.tar.gz
cd openssl-3.0.7/
sudo ./config --prefix=/usr/local --openssldir=/usr/local/openssl
sudo make
sudo make test
sudo make install

  • 安装 Cmake
sudo apt purge cmake-qt-gui				//卸载低版本的cmake
tar -zxvf cmake-3.25.0.tar.gz
cd cmake-3.25.0/
sudo ./configure --qt-gui
sudo ./bootstrap
sudo make -j8
sudo make install 
cmake --version

在这里插入图片描述

二、安装 Openpose

1.下载 openpose 、caffe、pybind11

github 下载的 openpose-master 文件夹3rdparty目录中的caffe目录和pybind11为空的,自己下载,然后将解压好的caffepybind11替换掉即可

unzip openpose-master.zip
unzip caffe-master.zip
unzip pybind11-master.zip
cd caffe-master/
cp -r * ../openpose-master/3rdparty/caffe/			//将下载的caffe复制到openpose-master/3rdparty/caffe/目录下
cd ../pybind11-master
cp -r * ../openpose-master/3rdparty/pybind11/		//将下载的pybind11复制到openpose-master/3rdparty/pybind11/目录下

2.编译 Openpose

sudo cmake-gui			//打开cmake编译界面
cd openpose-master/ && mkdir build    //在openpose目录下创建build文件夹

source code 选择 openpose 文件夹
binaries 选择刚刚新建的build文件夹
Specify the generator for this project 选择 Unix Makefiles,点击 finish

在这里插入图片描述

  • 点击 Configure 等待一会儿在 NameValue 出现一些选项,按照下图选择即可

  • 再次点击 Configure ,出现 Configuring done;点击 Generate 出现 Generating done,编译好之后关闭cmake-gui
    在这里插入图片描述

  • 编译

cd openpose-maste/build
sudo make -j8 

三、测试 Openpose

1.调试

  • 编译完成之后直接测试出现了一些错误:

1.错误信息,Gtk-Message:Failed to load module "canberra-gtk-module"
在这里插入图片描述
安装相应的依赖库

sudo apt install libcanberra-gtk-module
  1. 错误信息:check filed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: models/pose/body_25
    在这里插入图片描述
cd openpose-master/models
bash ./getModels.sh				//下载过程比较长							

2.关键参数

--face :开启 Face 关键点检测
--hand:开启 Hand 关键点检测
--video input.mp4:读取 Video
--camera 0:读取 webcam number 0
--image_dir path_to_images/: 运行图像路径内的图片
--ip_camera http://iris.not.iac.es/axis-cgi/mjpg/video.cgi?resolution=320x240?x.mjpeg:在 streamed IP camera 上运行
--write_video path.mp4:将处理后的图片保存为 Video
--write_images folder_path: 将处理后的图片保存到指定路径
--write_keypoint path/: 在指定路径输出包含人体姿态数据的 JSON, XML 或 YML 文件
--process_real_time: 对于视频,可能在实时运行时,跳过某些视频帧
--disable_blending:如果 --disable_blending=True,则在很色背景上渲染估计结果(如 keypoints skeletons 和 heatmaps),而不显示原始图像
--part_to_show: 可视化的预测通道(Prediction channel).
--display 0: 不打开可视化显示窗口. 对于服务器部署和 OpenPose 加速很帮助.
--num_gpu 2 --num_gpu_start 1::多 GPUs 时,设置开始的 GPU id. 默认使用所有可用的 GPUs.
--model_pose MPI:采用的模型Model,影响 Keypoints 的数量、运行速度和精度.
--logging_level 3:Logging messages threshold, range [0,255]: 0 - 输出所有信息e & 255 - 不输出任何信息

3.运行测试

3.1 测试图片

  • 传递的参数是 image_dir测试图片可以使用官方自带的图片文件夹examples/meida,这里我用自己的图片文件夹./test/,添加面部关键点检测,然后将检测结果保存到指定的文件夹下./check
sudo ./build/examples/openpose/openpose.bin --image_dir ./test/  --net_resolution 320x160  --write_images ./check --face

在这里插入图片描述

  • 传递参数是--camera,我的摄像头是/dev/video0,添加面部、手部关键点检测
sudo ./build/examples/openpose/openpose.bin --camera 0  --net_resolution 320x160  --face --hand

在这里插入图片描述

3.3 测试mp4视频

  • 传递参数是--video,添加测试视频路径
sudo ./build/examples/openpose/openpose.bin --video examples/media/a.mp4 --net_resolution 320x160

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Yan_uuu/article/details/127978278