基於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作爲測試,可以成功的顯示圖片了。

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