Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling your source #1

Closed
ghost opened this issue Nov 20, 2017 · 3 comments
Closed

Compiling your source #1

ghost opened this issue Nov 20, 2017 · 3 comments

Comments

@ghost
Copy link

ghost commented Nov 20, 2017

Hi there
I am currently trying to compile your package into my work space.

I changed the dependencies and the directories to the libraries for openpose but I get this error

/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp: In constructor ‘OpenposeDetecter::OpenposeDetecter()’:
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:77:94: error: too many initializers for ‘op::CvMatToOpInput’
op::CvMatToOpInput cvMatToOpInput_{netInputSize, FLAGS_num_scales, (float)FLAGS_scale_gap};
^
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:79:52: error: too many initializers for ‘op::CvMatToOpOutput’
op::CvMatToOpOutput cvMatToOpOutput_{outputSize};
^
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:83:86: error: no matching function for call to ‘op::PoseExtractorCaffe::PoseExtractorCaffe()’
FLAGS_model_folder, FLAGS_num_gpu_start};
^
In file included from /home/amsl/openpose/include/openpose/pose/headers.hpp:10:0,
from /home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/amsl/openpose/include/openpose/pose/poseExtractorCaffe.hpp:13:9: note: candidate: op::PoseExtractorCaffe::PoseExtractorCaffe(op::PoseModel, const string&, int, const std::vectorop::HeatMapType&, op::ScaleMode, bool)
PoseExtractorCaffe(const PoseModel poseModel, const std::string& modelFolder, const int gpuId,
^
/home/amsl/openpose/include/openpose/pose/poseExtractorCaffe.hpp:13:9: note: candidate expects 6 arguments, 7 provided
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:86:131: error: no matching function for call to ‘op::PoseRenderer::PoseRenderer()’
op::PoseRenderer poseRenderer_{netOutputSize, outputSize, poseModel, nullptr, !FLAGS_disable_blending, (float)FLAGS_alpha_pose};
^
In file included from /home/amsl/openpose/include/openpose/pose/poseCpuRenderer.hpp:9:0,
from /home/amsl/openpose/include/openpose/pose/headers.hpp:8,
from /home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/amsl/openpose/include/openpose/pose/poseRenderer.hpp:12:9: note: candidate: op::PoseRenderer::PoseRenderer(op::PoseModel)
PoseRenderer(const PoseModel poseModel);
^
/home/amsl/openpose/include/openpose/pose/poseRenderer.hpp:12:9: note: candidate expects 1 argument, 6 provided
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:86:22: error: cannot declare variable ‘poseRenderer_’ to be of abstract type ‘op::PoseRenderer’
op::PoseRenderer poseRenderer_{netOutputSize, outputSize, poseModel, nullptr, !FLAGS_disable_blending, (float)FLAGS_alpha_pose};
^
In file included from /home/amsl/openpose/include/openpose/pose/poseCpuRenderer.hpp:9:0,
from /home/amsl/openpose/include/openpose/pose/headers.hpp:8,
from /home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/amsl/openpose/include/openpose/pose/poseRenderer.hpp:9:18: note: because the following virtual functions are pure within ‘op::PoseRenderer’:
class OP_API PoseRenderer
^
/home/amsl/openpose/include/openpose/pose/poseRenderer.hpp:16:45: note: virtual std::pair<int, std::_cxx11::basic_string > op::PoseRenderer::renderPose(op::Array&, const op::Array&, float, float)
virtual std::pair<int, std::string> renderPose(Array& outputData, const Array& poseKeypoints,
^
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:89:52: error: too many initializers for ‘op::OpOutputToCvMat’
op::OpOutputToCvMat opOutputToCvMat
{outputSize};
^
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp: In member function ‘void OpenposeDetecter::imageCallback(const ImageConstPtr&)’:
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:131:62: error: ‘class op::CvMatToOpInput’ has no member named ‘format’
std::tie(netInputArray, scaleRatios) = (*cvMatToOpInput).format(cv_ptr->image);
^
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:134:68: error: ‘class op::CvMatToOpOutput’ has no member named ‘format’
std::tie(scaleInputToOutput, outputArray) = (*cvMatToOpOutput).format(cv_ptr->image);
^
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:137:107: error: no matching function for call to ‘op::PoseExtractorCaffe::forwardPass(op::Array&, , std::vector&)’
(*poseExtractorCaffe).forwardPass(netInputArray, {cv_ptr->image.cols, cv_ptr->image.rows}, scaleRatios);
^
In file included from /home/amsl/openpose/include/openpose/pose/headers.hpp:10:0,
from /home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/amsl/openpose/include/openpose/pose/poseExtractorCaffe.hpp:22:14: note: candidate: virtual void op::PoseExtractorCaffe::forwardPass(const std::vector<op::Array >&, const op::Point&, const std::vector&)
void forwardPass(const std::vector<Array>& inputNetData, const Point& inputDataSize,
^
/home/amsl/openpose/include/openpose/pose/poseExtractorCaffe.hpp:22:14: note: no known conversion for argument 1 from ‘op::Array’ to ‘const std::vector<op::Array >&’
/home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:238:62: error: no matching function for call to ‘op::PoseRenderer::renderPose(op::Array&, const op::Array&)’
(*poseRenderer).renderPose(outputArray, poseKeypoints);
^
In file included from /home/amsl/openpose/include/openpose/pose/poseCpuRenderer.hpp:9:0,
from /home/amsl/openpose/include/openpose/pose/headers.hpp:8,
from /home/amsl/ros_catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/amsl/openpose/include/openpose/pose/poseRenderer.hpp:16:45: note: candidate: virtual std::pair<int, std::__cxx11::basic_string > op::PoseRenderer::renderPose(op::Array&, const op::Array&, float, float)
virtual std::pair<int, std::string> renderPose(Array& outputData, const Array& poseKeypoints,
^
/home/amsl/openpose/include/openpose/pose/poseRenderer.hpp:16:45: note: candidate expects 4 arguments, 2 provided
openpose_ros/CMakeFiles/openpose_ros_node.dir/build.make:62: recipe for target 'openpose_ros/CMakeFiles/openpose_ros_node.dir/src/openpose_ros_node.cpp.o' failed
make[2]: *** [openpose_ros/CMakeFiles/openpose_ros_node.dir/src/openpose_ros_node.cpp.o] Error 1
CMakeFiles/Makefile2:5779: recipe for target 'openpose_ros/CMakeFiles/openpose_ros_node.dir/all' failed
make[1]: *** [openpose_ros/CMakeFiles/openpose_ros_node.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed

Is there anyway you can help me out on this? Thanks in advance.

@slowsingle
Copy link
Owner

@shulace13

The cause of some errors depend on the difference of version of openpose.
Some APIs has been changed.

(example)
[old version] op::OpOutputToCvMat opOutputToCvMat{outputSize};
[latest version] op::OpOutputToCvMat opOutputToCvMat;

You have two solutions.
(I) you reinstall old openpose library. Maybe tag v1.0.0 works well.
(II) you rewrite openpose_ros_node.cpp with reference to "openpose/examples/tutorial_pose/1_extract_from_image.cpp".

@ghost
Copy link
Author

ghost commented Nov 21, 2017

@slowsingle
I see... Thanks for the advice!
I'll try my best.

@ghost ghost closed this as completed Nov 21, 2017
@ghost
Copy link
Author

ghost commented Nov 21, 2017

I'm sorry for commenting even after closing this,
I was wondering how to tag the old openpose library...
Do I change some parts in the makefile or do I need to download it again.

SORRY!
Just figured it out, you were talking about the tag in git.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant