前言
使用SDK Manager 烧录系统默认安装了CUDA等环境配置,查看Jetson AGX Orin 的JetPack 版本和 CUDA、cuDNN、OPENCV、TensorRT版本
- 安装pip3、jtop
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
- 下载 protobuf 2.6:下载链接
- 安装 protobuf 2.6
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
为空的,自己下载,然后将解压好的caffe
和 pybind11
替换掉即可
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
等待一会儿在Name
和Value
出现一些选项,按照下图选择即可 -
再次点击
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
- 错误信息:
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