基于openpose搭建自己的程序时CMakeList配置,包括ros环境下配置

本来想要用https://github.com/ildoonet/ros-openpose这个ros包去跑openpose的,但是编译出现很多问题:比如’log’is not a member of ''op之类的在这里插入图片描述

查了一下是因为openpose版本更新导致接口变化,这个就很麻烦了,看来只能自己搞了。

先讲不使用ros环境的CmakeList的配置:

cmake_minimum_required(VERSION 3.5.1)
project(easyopenpose)

set(CMAKE_CXX_STANDARD 14)
set(INC_DIR /usr/include
        /usr/local/cuda/include #cuda的include位置 修改为正确的地方
        /home/wxw/openpose/3rdparty/caffe/include #机器中正确的caffe位置
        /home/wxw/openpose/3rdparty/caffe/src #机器中正确的caffe位置
        )

set(LINK_DIR /usr/lib
        /usr/lib/x86_64-linux-gnu/
        /usr/local/cuda/lib64 #cuda的lib位置 修改为正确的地方
        /home/wxw/openpose/3rdparty/caffe/build/lib #caffe的lib位置 修改为正确的地方
        )
set(OpenCV_DIR /home/wxw/opencv-3.4.2) #opencv的位置
find_package(OpenCV REQUIRED)
#link_directories("home/wxw/opencv-3.4.2/build/lib")

find_package(OpenPose REQUIRED)
include_directories(${INC_DIR}${OpenCV_INCLUDE_DIRS}${OpenPose_INCLUDE_DIRS}${EIGEN3_INCLUDE_DIR})
link_directories(${LINK_DIR}${OpenCV_LIBS}${OpenPose_LIBS})
add_executable(easyopenpose 06_face_from_image.cpp)
target_link_libraries(easyopenpose
        caffe
        boost_system
        glog
        jsoncpp
        ${OpenPose_LIBS}
        ${OpenCV_LIBS}
        )

这里我们采用了openpose文件样例中自带的06_face_from_image.cpp进行了测试。
还要记得把model文件夹拷到这个文件夹下(这里我也没找到什么好方法)。目录结构如下:
在这里插入图片描述

##这里是ROS环境下的CMakeList和package.xml的配置

#CMakeList.txt
cmake_minimum_required(VERSION 2.8.3)
project(openpose_ros)

set(CMAKE_CXX_STANDARD 14)
set(INC_DIR /usr/include
        /usr/local/cuda/include #cuda的include位置 修改为正确的地方
        /home/wxw/openpose/3rdparty/caffe/include #机器中正确的caffe位置
        /home/wxw/openpose/3rdparty/caffe/src #机器中正确的caffe位置
        )

set(LINK_DIR /usr/lib
        /usr/lib/x86_64-linux-gnu/
        /usr/local/cuda/lib64 #cuda的lib位置 修改为正确的地方
        /home/wxw/openpose/3rdparty/caffe/build/lib #caffe的lib位置 修改为正确的地方
        )
set(OpenCV_DIR /home/wxw/opencv-3.4.2) #opencv的位置
find_package(OpenCV REQUIRED)
#link_directories("home/wxw/opencv-3.4.2/build/lib")

find_package(OpenPose REQUIRED)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  cv_bridge
  sensor_msgs
  image_transport
  sensor_msgs

)
catkin_package(
  CATKIN_DEPENDS 
    std_msgs roscpp
)
include_directories(${INC_DIR}${OpenCV_INCLUDE_DIRS}${OpenPose_INCLUDE_DIRS}${EIGEN3_INCLUDE_DIR})
include_directories(
  include ${catkin_INCLUDE_DIRS}
   include
   ${catkin_INCLUDE_DIRS} 
)

link_directories(${LINK_DIR}${OpenCV_LIBS}${OpenPose_LIBS})
add_executable(face_detect 06_face_from_image.cpp)
target_link_libraries(face_detect
        caffe
        boost_system
        glog
        jsoncpp
        ${OpenPose_LIBS}
        ${OpenCV_LIBS}
        ${catkin_LIBRARIES} 
        )

package.xml正常写

<?xml version="1.0"?>
<package>
  <name>openpose_ros</name>
  <version>0.0.1</version>
  <description>ROS Message Package for Openpose</description>

  <maintainer email="[email protected]">wxw</maintainer>

  <license>BSD</license>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_depend>cv_bridge</build_depend>
  <build_depend>image_transport</build_depend>


  <run_depend>std_msgs</run_depend>
  <run_depend>roscpp</run_depend>
  <run_depend>image_transport</run_depend>

</package>

仍然是用06_face_from_image.cpp作为测试,可以成功的显示图片了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章