基本配置
电脑:thinkbook 15p
显卡:gtx 1650maxq
系统:ubuntu 18.04
驱动:nvidia 455
CUDA:11.1
CuDNN:8.0.4
Cmake: 3.19.1(官方要求>=3.12)
安装过程
结合官方教程以及自己遇到的问题总结。
// 命令行
//下载源码
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
//编译安装
cd openpose/
mkdir build/
cd build/
cmake-gui .. //此步骤有注意事项,下文给出
sudo make -j`nproc`
sudo make install //此步骤在需要ros_openpose的时候执行,卸载:sudo make uninstall
cmake版本(3.19.1)
常规编译,都默认,点击configure,generate
若出现以下问题:
-
CUDNN_STATUS_NOT_INITIALIZED
在确保cudnn的确安装正确的前提下在cmake-gui中选择USE_CUDNN OFF -
Check failed: error == cudaSuccess (2 vs. 0) out of memory
尝试调整 --net_resolution 或其他参数,详见源码doc/faq.md。
测试
// 自带视频测试
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution 320x160
// 自带图片测试
./build/examples/openpose/openpose.bin --image_dir examples/media/ --net_resolution 320x160
//笔记本摄像头测试
./build/examples/openpose/openpose.bin --net_resolution 320x160
以上测试fps基本为17。
ros_openpose的编译使用
编译安装
//源码下载
git clone https://github.com/ravijo/ros_openpose.git
参考README.md
//进入工作空间,这里是catkin_pose
cd catkin_pose/
catkin_make //编译一般不出问题,缺什么依赖补什么依赖
roscd ros_openpose/scripts
chmod +x *.py
编译过程中遇到此问题:(其他问题见README.md)
/usr/bin/ld: cannot find -lThreads::Threads
解决方法:在CMakeLists.txt中添加
find_package(Threads REQUIRED)
配置launch
图像输入设备:kinect
找到 config_kinect.launch 修改内容:(此处kinect已完成标定)
<!-- rostopic to subscribe for color images -->
<arg name="color_topic" default="/camera/rgb/image_raw" />
<!-- rostopic to subscribe for depth images -->
<arg name="depth_topic" default="/camera/depth_registered/image_raw" />
<!-- rostopic to subscribe for camera calibration parameters -->
<arg name="cam_info_topic" default="/camera/rgb/camera_info" />
<!-- frame id for point cloud and 3D skeleton data -->
<arg name="frame_id" default="camera_depth_optical_frame" />
修改run.launch
<arg name="openpose_args" value="--model_folder /你自己的openpose目录/openpose/models/ --net_resolution 320x160 --number_people_max 1" />
//--net_resolution 320x160 --number_people_max 1等参数视电脑和其他具体情况而定
测试
roslaunch freenect_launch freenect.launch //启动kinect
roslaunch ros_openpose run.launch //启动ros_openpose
rviz修改全局坐标系为camera_depth_optical_frame
Point Cloud topic:/camera/depth_registered/points
后续更新…