hengli / camodocal

CamOdoCal: Automatic Intrinsic and Extrinsic Calibration of a Rig with Multiple Generic Cameras and Odometry
Other
1.17k stars 390 forks source link

Possible build issue with OpenCV 2.4.11 #12

Closed JayHuangYC closed 8 years ago

JayHuangYC commented 9 years ago

Hi,

May I know anyone successfully build CamOdoCal with OpenCV 2.4.11? I setup camodocal on Ubuntu, MacBook Pro 15 with nvidia GT750m, but encountered build error using "make" after "cmake" command, and it seems related to SurfGPU.cc. However, my OpenCV 2.4.11 installation (cmake/make/make install) on MBP is flawless, but OpenCV 2.4.9 did cause some errors. Would you suggest to use only OpenCV 2.4.9? Or, there might be other issues?

And also, while "cmake" this project, all the environment path are found including CUDA, Eigen, OpenCV and OpenMP. I can also "nvcc -V" to see my CUDA 6.5. But the dependency table shows CUDA "no". Any idea about fixing this issue from my side?

I had tried to build camodocal for 2 weeks, and any support will be very appreciated!

Best, Jay

More details below for "make" error after cmake:

make[2]: * [src/features2d/CMakeFiles/camodocal_features2d.dir/SurfGPU.cc.o] Error 1 make[1]: * [src/features2d/CMakeFiles/camodocal_features2d.dir/all] Error 2 make: *\ [all] Error 2

For cmake report (cmake -DCMAKE_BUILD_TYPE=Release ..):

... (removed) ... -- Found CUDA: /usr/local/cuda (found version "6.5") -- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0") -- A library with LAPACK API found. -- Found OpenCV: /usr/local/lib/libopencv_calib3d.so -- Found OpenCV: /usr/local/lib/libopencv_contrib.so -- Found OpenCV: /usr/local/include -- Found OpenCV: /usr/local/lib/libopencv_gpu.so -- Found OpenCV: /usr/local/lib/libopencv_highgui.so -- Found OpenCV: /usr/local/lib/libopencv_imgproc.so -- Found OpenCV: /usr/local/lib/libopencv_legacy.so -- Found OpenCV: /usr/local/lib/libopencv_ml.so -- Found GTest: /usr/lib/libgtest.a -- Try OpenMP C flag = [-fopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Success ... (removed) ... -- Found OpenMP.


-- DEPENDENCY: Required: Found:


-- BLAS yes yes -- CUDA yes no -- Eigen3 yes yes -- LAPACK yes yes -- OpenCV yes yes -- SuiteSparse yes yes -- GTest no yes -- OpenMP no yes


-- Library: Build: Condition:


-- ceres TRUE (satisfied) -- camodocal_brisk TRUE (satisfied) -- camodocal_calib TRUE (satisfied) -- camodocal_camera_models TRUE (satisfied) -- camodocal_camera_systems TRUE (satisfied) -- camodocal_chessboard TRUE (satisfied) -- camodocal_DBoW2 TRUE (satisfied) -- camodocal_DUtils TRUE (satisfied) -- camodocal_DUtilsCV TRUE (satisfied) -- camodocal_DVision TRUE (satisfied) -- camodocal_features2d TRUE (satisfied) -- camodocal_gpl TRUE (satisfied) -- camodocal_infrastr_calib TRUE (satisfied) -- camodocal_location_recognitionTRUE (satisfied) -- camodocal_fivepoint TRUE (satisfied) -- camodocal_pose_estimation TRUE (satisfied) -- camodocal_pose_graph TRUE (satisfied) -- camodocal_pugixml TRUE (satisfied) -- camodocal_sparse_graph TRUE (satisfied) -- camodocal_visual_odometry TRUE (satisfied)


-- Executable: Build: Condition:


-- dbow2_demo TRUE (satisfied) -- intrinsic_calib TRUE (satisfied) -- stereo_calib TRUE (satisfied) -- extrinsic_calib TRUE (satisfied) -- train_voctree TRUE (satisfied)


-- Test: Build: Condition:


-- CamOdoCalibration_test TRUE (satisfied) -- HandEyeCalibration_test TRUE (satisfied) -- PlanarHandEyeCalibration_test TRUE (satisfied) -- CataCamera_test TRUE (satisfied) -- EquidistantCamera_test TRUE (satisfied) -- PinholeCamera_test TRUE (satisfied) -- SlidingWindowBA_test TRUE (satisfied)

-- Configuring done -- Generating done -- Build files have been written to:

JayHuangYC commented 9 years ago

Maybe it is just a workaround, but the solution below help out for building all targets.

Solution for compilation error with OpenCV 2.4.11:

(1) Add gpu/gpu.hpp header file at project source src/features2d/SurfGPU.hpp . .

include < boost/thread.hpp >

include < opencv2/nonfree/gpu.hpp >

#include < opencv2/gpu/gpu.hpp >

namespace camodocal . .

(2) Add features2d.hpp header file at /usr/local/include/opencv2/nonfree/gpu.hpp . .

include "opencv2/core/gpumat.hpp"

#include "opencv2/nonfree/features2d.hpp"

namespace cv { namespace gpu { class CV_EXPORTS SURF_GPU . .

(3) As last post shows boost error: Add following link statement to src/feature2d/CMakeLists.txt ${Boost_LIBRARIES}

The new link libraries should look like

camodocal_link_libraries(camodocal_features2d ${OPENCV_CORE_LIBRARY} ${OPENCV_NONFREE_LIBRARY} ${OPENCV_GPU_LIBRARY} ${Boost_LIBRARIES} )

ahundt commented 9 years ago

My recent patches which have been merged should solve this problem. It should even work if you don't have CUDA installed, but to use CUDA you need to install the proprietary software provided by NVIDIA.

ahundt commented 8 years ago

I'm closing this issue, if problems persist please feel free to comment here or open a new issue.