From a0609ca6c8623cda6e8aa990d396206a53e852b5 Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Tue, 6 Jul 2021 11:21:26 -0500 Subject: [PATCH] Initial work on trying to get the app to build without cuda. --- .../camera_calibration/CMakeLists.txt | 476 +++++++++--------- .../joint_optimization_jacobians.h | 2 +- .../src/camera_calibration/cuda_shims.h | 49 ++ .../feature_detector_tagged_pattern.cc | 9 + .../models/central_generic.cc | 5 + .../tools/stereo_depth_estimation.cc | 4 + 6 files changed, 311 insertions(+), 234 deletions(-) create mode 100644 applications/camera_calibration/src/camera_calibration/cuda_shims.h diff --git a/applications/camera_calibration/CMakeLists.txt b/applications/camera_calibration/CMakeLists.txt index c2b52b4..53bd13e 100644 --- a/applications/camera_calibration/CMakeLists.txt +++ b/applications/camera_calibration/CMakeLists.txt @@ -1,63 +1,141 @@ -if (CMAKE_CUDA_COMPILER) - # Make CMake find the Find.cmake files in the cmake subdirectory. - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +# Make CMake find the Find.cmake files in the cmake subdirectory. +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +# Packaged third-party library: AprilTag +file(GLOB CAMERA_CALIBRATION_APRILTAG_SRC + "third_party/apriltag/*.h" + "third_party/apriltag/*.c" + "third_party/apriltag/common/*.h" + "third_party/apriltag/common/*.c" +) +add_library(camera_calibration_apriltag ${CAMERA_CALIBRATION_APRILTAG_SRC}) +set_property(TARGET camera_calibration_apriltag PROPERTY C_STANDARD 99) +target_include_directories(camera_calibration_apriltag PRIVATE third_party/apriltag/) +set_target_properties(camera_calibration_apriltag PROPERTIES + POSITION_INDEPENDENT_CODE ON +) + +# Packaged third-party library: YAML-CPP +add_subdirectory(third_party/yaml-cpp-0.6.0) + +# Find external library librealsense2 for live RealSense camera support +find_package(realsense2) +if (realsense2_FOUND) + add_definitions(-DHAVE_REALSENSE) +endif() + +# Find external library Structure SDK for live Structure Core camera support +find_package(Structure) + +# Find external library OpenGV +find_package(opengv REQUIRED) + + +# Base library for both the main executable and the unit test executable +# file(GLOB CAMERA_CALIBRATION_SRC +# "src/*.h" +# "src/*.cc" +# "src/*.cu" +# "src/*.cuh" +# ) +set(CAMERA_CALIBRATION_SRC + src/camera_calibration/bundle_adjustment/ba_state.cc + src/camera_calibration/bundle_adjustment/ba_state.h + src/camera_calibration/bundle_adjustment/joint_optimization.cc + src/camera_calibration/bundle_adjustment/joint_optimization.h + src/camera_calibration/bundle_adjustment/joint_optimization_jacobians.h - # Packaged third-party library: AprilTag - file(GLOB CAMERA_CALIBRATION_APRILTAG_SRC - "third_party/apriltag/*.h" - "third_party/apriltag/*.c" - "third_party/apriltag/common/*.h" - "third_party/apriltag/common/*.c" - ) - add_library(camera_calibration_apriltag ${CAMERA_CALIBRATION_APRILTAG_SRC}) - set_property(TARGET camera_calibration_apriltag PROPERTY C_STANDARD 99) - target_include_directories(camera_calibration_apriltag PRIVATE third_party/apriltag/) - set_target_properties(camera_calibration_apriltag PROPERTIES - POSITION_INDEPENDENT_CODE ON - ) + src/camera_calibration/calibration_initialization/dense_initialization.cc + src/camera_calibration/calibration_initialization/dense_initialization.h - # Packaged third-party library: YAML-CPP - add_subdirectory(third_party/yaml-cpp-0.6.0) - - # Find external library librealsense2 for live RealSense camera support - find_package(realsense2) - if (realsense2_FOUND) - add_definitions(-DHAVE_REALSENSE) - endif() + src/camera_calibration/feature_detection/cpu_refinement_by_matching.h + src/camera_calibration/feature_detection/cpu_refinement_by_symmetry.h + src/camera_calibration/feature_detection/feature_detector.h + src/camera_calibration/feature_detection/feature_detector_tagged_pattern.cc + src/camera_calibration/feature_detection/feature_detector_tagged_pattern.h - # Find external library Structure SDK for live Structure Core camera support - find_package(Structure) + src/camera_calibration/image_input/image_input.cc + src/camera_calibration/image_input/image_input.h + src/camera_calibration/image_input/image_input_realsense.cc + src/camera_calibration/image_input/image_input_realsense.h + src/camera_calibration/image_input/image_input_structure.cc + src/camera_calibration/image_input/image_input_structure.h + src/camera_calibration/image_input/image_input_v4l2.cc + src/camera_calibration/image_input/image_input_v4l2.h - # Find external library OpenGV - find_package(opengv REQUIRED) - - - # Base library for both the main executable and the unit test executable - # file(GLOB CAMERA_CALIBRATION_SRC - # "src/*.h" - # "src/*.cc" - # "src/*.cu" - # "src/*.cuh" - # ) - set(CAMERA_CALIBRATION_SRC - src/camera_calibration/bundle_adjustment/ba_state.cc - src/camera_calibration/bundle_adjustment/ba_state.h + src/camera_calibration/io/calibration_io.cc + src/camera_calibration/io/calibration_io.h + + src/camera_calibration/local_parametrizations/direction_parametrization.h + src/camera_calibration/local_parametrizations/line_parametrization.h + src/camera_calibration/local_parametrizations/quaternion_parametrization.h + + src/camera_calibration/models/camera_model.h + src/camera_calibration/models/central_generic.cc + src/camera_calibration/models/central_generic.h + src/camera_calibration/models/central_opencv.cc + src/camera_calibration/models/central_opencv.h + src/camera_calibration/models/central_radial.cc + src/camera_calibration/models/central_radial.h + src/camera_calibration/models/central_thin_prism_fisheye.cc + src/camera_calibration/models/central_thin_prism_fisheye.h + src/camera_calibration/models/noncentral_generic.cc + src/camera_calibration/models/noncentral_generic.h + src/camera_calibration/models/parametric.cc + src/camera_calibration/models/parametric.h + + src/camera_calibration/relative_pose_initialization/algorithms.h + src/camera_calibration/relative_pose_initialization/central_camera_3d_target.cc + src/camera_calibration/relative_pose_initialization/central_camera_planar_target.cc + src/camera_calibration/relative_pose_initialization/noncentral_camera_3d_target.cc + src/camera_calibration/relative_pose_initialization/noncentral_camera_planar_target.cc + + src/camera_calibration/tools/bundle_adjustment.cc + src/camera_calibration/tools/compare_calibrations.cc + src/camera_calibration/tools/compare_point_clouds.cc + src/camera_calibration/tools/convert_dataset.cc + src/camera_calibration/tools/create_legends.cc + src/camera_calibration/tools/intersect_datasets.cc + src/camera_calibration/tools/localization_accuracy_test.cc + src/camera_calibration/tools/render_synthetic_dataset.cc + src/camera_calibration/tools/stereo_depth_estimation.cc + src/camera_calibration/tools/tools.h + src/camera_calibration/tools/visualize_calibration.cc + + src/camera_calibration/ui/calibration_window.cc + src/camera_calibration/ui/calibration_window.h + src/camera_calibration/ui/live_image_consumer.cc + src/camera_calibration/ui/live_image_consumer.h + src/camera_calibration/ui/main_window.cc + src/camera_calibration/ui/main_window.h + src/camera_calibration/ui/pattern_display.cc + src/camera_calibration/ui/pattern_display.h + src/camera_calibration/ui/settings_window.cc + src/camera_calibration/ui/settings_window.h + + src/camera_calibration/b_spline.h + src/camera_calibration/calibration.cc + src/camera_calibration/calibration.h + src/camera_calibration/calibration_report.cc + src/camera_calibration/calibration_report.h + src/camera_calibration/dataset.cc + src/camera_calibration/dataset.h + src/camera_calibration/fitting_report.h + src/camera_calibration/hash_vec2i.h + src/camera_calibration/util.cc + src/camera_calibration/util.h +) +if(CMAKE_CUDA_COMPILER) + list(APPEND CAMERA_CALIBRATION_SRC src/camera_calibration/bundle_adjustment/cuda_joint_optimization.cc src/camera_calibration/bundle_adjustment/cuda_joint_optimization.cu src/camera_calibration/bundle_adjustment/cuda_joint_optimization.cuh src/camera_calibration/bundle_adjustment/cuda_joint_optimization.h - src/camera_calibration/bundle_adjustment/joint_optimization.cc - src/camera_calibration/bundle_adjustment/joint_optimization.h - src/camera_calibration/bundle_adjustment/joint_optimization_jacobians.h - - src/camera_calibration/calibration_initialization/dense_initialization.cc - src/camera_calibration/calibration_initialization/dense_initialization.h - + src/camera_calibration/cuda/cuda_matrix.cuh src/camera_calibration/cuda/cuda_util.cuh - - src/camera_calibration/feature_detection/cpu_refinement_by_matching.h - src/camera_calibration/feature_detection/cpu_refinement_by_symmetry.h + src/camera_calibration/feature_detection/cuda_refinement_by_matching.cc src/camera_calibration/feature_detection/cuda_refinement_by_matching.cu src/camera_calibration/feature_detection/cuda_refinement_by_matching.cuh @@ -68,199 +146,131 @@ if (CMAKE_CUDA_COMPILER) src/camera_calibration/feature_detection/cuda_refinement_by_symmetry.h src/camera_calibration/feature_detection/cuda_util.cu src/camera_calibration/feature_detection/cuda_util.cuh - src/camera_calibration/feature_detection/feature_detector.h - src/camera_calibration/feature_detection/feature_detector_tagged_pattern.cc - src/camera_calibration/feature_detection/feature_detector_tagged_pattern.h - - src/camera_calibration/image_input/image_input.cc - src/camera_calibration/image_input/image_input.h - src/camera_calibration/image_input/image_input_realsense.cc - src/camera_calibration/image_input/image_input_realsense.h - src/camera_calibration/image_input/image_input_structure.cc - src/camera_calibration/image_input/image_input_structure.h - src/camera_calibration/image_input/image_input_v4l2.cc - src/camera_calibration/image_input/image_input_v4l2.h - - src/camera_calibration/io/calibration_io.cc - src/camera_calibration/io/calibration_io.h - - src/camera_calibration/local_parametrizations/direction_parametrization.h - src/camera_calibration/local_parametrizations/line_parametrization.h - src/camera_calibration/local_parametrizations/quaternion_parametrization.h - - src/camera_calibration/models/camera_model.h - src/camera_calibration/models/central_generic.cc - src/camera_calibration/models/central_generic.h - src/camera_calibration/models/central_opencv.cc - src/camera_calibration/models/central_opencv.h - src/camera_calibration/models/central_radial.cc - src/camera_calibration/models/central_radial.h - src/camera_calibration/models/central_thin_prism_fisheye.cc - src/camera_calibration/models/central_thin_prism_fisheye.h - src/camera_calibration/models/noncentral_generic.cc - src/camera_calibration/models/noncentral_generic.h - src/camera_calibration/models/parametric.cc - src/camera_calibration/models/parametric.h - - src/camera_calibration/relative_pose_initialization/algorithms.h - src/camera_calibration/relative_pose_initialization/central_camera_3d_target.cc - src/camera_calibration/relative_pose_initialization/central_camera_planar_target.cc - src/camera_calibration/relative_pose_initialization/noncentral_camera_3d_target.cc - src/camera_calibration/relative_pose_initialization/noncentral_camera_planar_target.cc - - src/camera_calibration/tools/bundle_adjustment.cc - src/camera_calibration/tools/compare_calibrations.cc - src/camera_calibration/tools/compare_point_clouds.cc - src/camera_calibration/tools/convert_dataset.cc - src/camera_calibration/tools/create_legends.cc - src/camera_calibration/tools/intersect_datasets.cc - src/camera_calibration/tools/localization_accuracy_test.cc - src/camera_calibration/tools/render_synthetic_dataset.cc - src/camera_calibration/tools/stereo_depth_estimation.cc - src/camera_calibration/tools/tools.h - src/camera_calibration/tools/visualize_calibration.cc - - src/camera_calibration/ui/calibration_window.cc - src/camera_calibration/ui/calibration_window.h - src/camera_calibration/ui/live_image_consumer.cc - src/camera_calibration/ui/live_image_consumer.h - src/camera_calibration/ui/main_window.cc - src/camera_calibration/ui/main_window.h - src/camera_calibration/ui/pattern_display.cc - src/camera_calibration/ui/pattern_display.h - src/camera_calibration/ui/settings_window.cc - src/camera_calibration/ui/settings_window.h - - src/camera_calibration/b_spline.h - src/camera_calibration/calibration.cc - src/camera_calibration/calibration.h - src/camera_calibration/calibration_report.cc - src/camera_calibration/calibration_report.h - src/camera_calibration/dataset.cc - src/camera_calibration/dataset.h - src/camera_calibration/fitting_report.h - src/camera_calibration/hash_vec2i.h - src/camera_calibration/util.cc - src/camera_calibration/util.h ) - add_library(camera_calibration_baselib SHARED - ${CAMERA_CALIBRATION_SRC} - ) - set_target_properties(camera_calibration_baselib PROPERTIES POSITION_INDEPENDENT_CODE ON) - target_compile_options(camera_calibration_baselib - PUBLIC - "${LIBVIS_WARNING_OPTIONS}" - # NOTE: The -march=native was required to be able to use opengv, otherwise - # it would just crash when calling an opengv function. I suspect - # that it might be because the Eigen objects passed to opengv might - # be compiled to have different layouts then. - $<$:-march=native> +endif() + +add_library(camera_calibration_baselib SHARED + ${CAMERA_CALIBRATION_SRC} +) +set_target_properties(camera_calibration_baselib PROPERTIES POSITION_INDEPENDENT_CODE ON) +target_compile_options(camera_calibration_baselib + PUBLIC + "${LIBVIS_WARNING_OPTIONS}" + # NOTE: The -march=native was required to be able to use opengv, otherwise + # it would just crash when calling an opengv function. I suspect + # that it might be because the Eigen objects passed to opengv might + # be compiled to have different layouts then. + $<$:-march=native> # $<$:-use_fast_math> - $<$:--expt-relaxed-constexpr> - ) - target_include_directories(camera_calibration_baselib PRIVATE - src - ${CERES_INCLUDE_DIRS} - third_party/apriltag - third_party/yaml-cpp-0.6.0/include - ${realsense_INCLUDE_DIR} - ${OpenCV_INCLUDE_DIRS} - ) + $<$:--expt-relaxed-constexpr> +) +target_include_directories(camera_calibration_baselib PRIVATE + src + ${CERES_INCLUDE_DIRS} + third_party/apriltag + third_party/yaml-cpp-0.6.0/include + ${realsense_INCLUDE_DIR} + ${OpenCV_INCLUDE_DIRS} +) +if(CMAKE_CUDA_COMPILER) if (CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11) target_include_directories(camera_calibration_baselib PRIVATE third_party/cub-1.8.0 ) endif() target_link_libraries(camera_calibration_baselib PUBLIC - libvis libvis_cuda - libvis_external_io - ${CERES_LIBRARIES} CUDA::cublas - opengv - camera_calibration_apriltag - yaml-cpp2 - ${OpenCV_LIBS} - ${realsense2_LIBRARY} - Qt5::Widgets - ${Boost_LIBRARIES} - v4l2 - X11 ) - - if (TARGET StructurePrebuilt) - target_link_libraries(camera_calibration_baselib PUBLIC - StructurePrebuilt - ) - target_compile_definitions(camera_calibration_baselib PUBLIC HAVE_STRUCTURE) - endif() - - # # For cuda-memcheck - # target_compile_options(camera_calibration_baselib - # PUBLIC - # $<$:-Xcompiler -rdynamic> - # $<$:-lineinfo> - # ) - - - # Main executable - add_executable(camera_calibration - src/camera_calibration/main.cc - ) - target_include_directories(camera_calibration PRIVATE - src - third_party/yaml-cpp-0.6.0/include - ) - target_link_libraries(camera_calibration PRIVATE - camera_calibration_baselib - ${Boost_LIBRARIES} - yaml-cpp2 - libvis_external_io - ) - set_target_properties(camera_calibration PROPERTIES - POSITION_INDEPENDENT_CODE ON - ) - - - # Resource files for unit tests - ADD_CUSTOM_TARGET(camera_calibration_test_resources ALL - COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_CURRENT_SOURCE_DIR}/test_data - ${CMAKE_CURRENT_BINARY_DIR}/test_data - ) - - # Unit tests - add_executable(camera_calibration_test - src/camera_calibration/test/b_spline_test.cc - src/camera_calibration/test/camera_unique_representation_test.cc - src/camera_calibration/test/central_generic_test.cc - src/camera_calibration/test/central_opencv_test.cc - src/camera_calibration/test/central_radial_test.cc - src/camera_calibration/test/central_thin_prism_fisheye_test.cc - src/camera_calibration/test/dummy_cuda_file.cu - src/camera_calibration/test/feature_detection_test.cc - src/camera_calibration/test/io_test.cc - src/camera_calibration/test/main.cc - src/camera_calibration/test/noncentral_generic_test.cc - src/camera_calibration/test/opengv_test.cc - src/camera_calibration/test/optimization_test.cc - src/camera_calibration/test/relative_pose_initialization_test.cc - src/camera_calibration/test/util_test.cc - ) - add_dependencies(camera_calibration_test camera_calibration_test_resources) - target_link_libraries(camera_calibration_test - camera_calibration_baselib - gtest - pthread - yaml-cpp2 - ) - target_include_directories(camera_calibration_test PRIVATE - src - ${gtest_SOURCE_DIR}/include - ${gtest_SOURCE_DIR} - third_party/yaml-cpp-0.6.0/include - ) - add_test(camera_calibration_test - camera_calibration_test +endif() + +target_link_libraries(camera_calibration_baselib PUBLIC + libvis + libvis_external_io + ${CERES_LIBRARIES} + opengv + camera_calibration_apriltag + yaml-cpp2 + ${OpenCV_LIBS} + ${realsense2_LIBRARY} + Qt5::Widgets + ${Boost_LIBRARIES} + v4l2 + X11 +) + +if (TARGET StructurePrebuilt) + target_link_libraries(camera_calibration_baselib PUBLIC + StructurePrebuilt ) + target_compile_definitions(camera_calibration_baselib PUBLIC HAVE_STRUCTURE) endif() + +# # For cuda-memcheck +# target_compile_options(camera_calibration_baselib +# PUBLIC +# $<$:-Xcompiler -rdynamic> +# $<$:-lineinfo> +# ) + + +# Main executable +add_executable(camera_calibration + src/camera_calibration/main.cc +) +target_include_directories(camera_calibration PRIVATE + src + third_party/yaml-cpp-0.6.0/include +) +target_link_libraries(camera_calibration PRIVATE + camera_calibration_baselib + ${Boost_LIBRARIES} + yaml-cpp2 + libvis_external_io +) +set_target_properties(camera_calibration PROPERTIES + POSITION_INDEPENDENT_CODE ON +) + + +# Resource files for unit tests +ADD_CUSTOM_TARGET(camera_calibration_test_resources ALL + COMMAND ${CMAKE_COMMAND} -E create_symlink + ${CMAKE_CURRENT_SOURCE_DIR}/test_data + ${CMAKE_CURRENT_BINARY_DIR}/test_data +) + +# Unit tests +add_executable(camera_calibration_test + src/camera_calibration/test/b_spline_test.cc + src/camera_calibration/test/camera_unique_representation_test.cc + src/camera_calibration/test/central_generic_test.cc + src/camera_calibration/test/central_opencv_test.cc + src/camera_calibration/test/central_radial_test.cc + src/camera_calibration/test/central_thin_prism_fisheye_test.cc + src/camera_calibration/test/dummy_cuda_file.cu + src/camera_calibration/test/feature_detection_test.cc + src/camera_calibration/test/io_test.cc + src/camera_calibration/test/main.cc + src/camera_calibration/test/noncentral_generic_test.cc + src/camera_calibration/test/opengv_test.cc + src/camera_calibration/test/optimization_test.cc + src/camera_calibration/test/relative_pose_initialization_test.cc + src/camera_calibration/test/util_test.cc +) +add_dependencies(camera_calibration_test camera_calibration_test_resources) +target_link_libraries(camera_calibration_test + camera_calibration_baselib + gtest + pthread + yaml-cpp2 +) +target_include_directories(camera_calibration_test PRIVATE + src + ${gtest_SOURCE_DIR}/include + ${gtest_SOURCE_DIR} + third_party/yaml-cpp-0.6.0/include +) +add_test(camera_calibration_test + camera_calibration_test +) diff --git a/applications/camera_calibration/src/camera_calibration/bundle_adjustment/joint_optimization_jacobians.h b/applications/camera_calibration/src/camera_calibration/bundle_adjustment/joint_optimization_jacobians.h index 8983194..ac6e0d3 100644 --- a/applications/camera_calibration/src/camera_calibration/bundle_adjustment/joint_optimization_jacobians.h +++ b/applications/camera_calibration/src/camera_calibration/bundle_adjustment/joint_optimization_jacobians.h @@ -28,7 +28,7 @@ #pragma once -#include +#include "../cuda_shims.h" #include diff --git a/applications/camera_calibration/src/camera_calibration/cuda_shims.h b/applications/camera_calibration/src/camera_calibration/cuda_shims.h new file mode 100644 index 0000000..ed95aff --- /dev/null +++ b/applications/camera_calibration/src/camera_calibration/cuda_shims.h @@ -0,0 +1,49 @@ +// Copyright 2019 ETH Zürich, Thomas Schöps +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#pragma once + +#ifdef LIBVIS_HAVE_CUDA +#include +#else +#include + +#ifndef __host__ +#define __host__ +#endif + + +#ifndef __device__ +#define __device__ +#endif + +#if !defined(_MSC_VER) && !defined(__forceinline__) +#define __forceinline__ EIGEN_FORCE_INLINE +#endif + +#endif diff --git a/applications/camera_calibration/src/camera_calibration/feature_detection/feature_detector_tagged_pattern.cc b/applications/camera_calibration/src/camera_calibration/feature_detection/feature_detector_tagged_pattern.cc index bd4ff3c..66d7747 100644 --- a/applications/camera_calibration/src/camera_calibration/feature_detection/feature_detector_tagged_pattern.cc +++ b/applications/camera_calibration/src/camera_calibration/feature_detection/feature_detector_tagged_pattern.cc @@ -32,10 +32,17 @@ #include #include + +#ifdef LIBVIS_HAVE_CUDA #include #include +#endif + #include +#ifdef LIBVIS_HAVE_CUDA #include +#endif + #include #include #include @@ -43,9 +50,11 @@ #include "camera_calibration/feature_detection/cpu_refinement_by_matching.h" #include "camera_calibration/feature_detection/cpu_refinement_by_symmetry.h" +#ifdef LIBVIS_HAVE_CUDA #include "camera_calibration/feature_detection/cuda_refinement_by_matching.h" #include "camera_calibration/feature_detection/cuda_refinement_by_symmetry.h" #include "camera_calibration/feature_detection/cuda_util.cuh" +#endif #include "camera_calibration/hash_vec2i.h" diff --git a/applications/camera_calibration/src/camera_calibration/models/central_generic.cc b/applications/camera_calibration/src/camera_calibration/models/central_generic.cc index 334a9fc..d3949d2 100644 --- a/applications/camera_calibration/src/camera_calibration/models/central_generic.cc +++ b/applications/camera_calibration/src/camera_calibration/models/central_generic.cc @@ -28,12 +28,17 @@ #include "camera_calibration/models/central_generic.h" +#ifdef LIBVIS_HAVE_CUDA #include #include +#endif #include #include "camera_calibration/local_parametrizations/direction_parametrization.h" + +#ifdef LIBVIS_HAVE_CUDA #include "camera_calibration/models/cuda_central_generic_model.cuh" +#endif // Include Jacobians implementation #include "camera_calibration/models/central_generic_jacobians.cc" diff --git a/applications/camera_calibration/src/camera_calibration/tools/stereo_depth_estimation.cc b/applications/camera_calibration/src/camera_calibration/tools/stereo_depth_estimation.cc index 931b4b9..20a34b0 100644 --- a/applications/camera_calibration/src/camera_calibration/tools/stereo_depth_estimation.cc +++ b/applications/camera_calibration/src/camera_calibration/tools/stereo_depth_estimation.cc @@ -29,7 +29,9 @@ #include "camera_calibration/tools/tools.h" #include +#ifdef LIBVIS_HAVE_CUDA #include +#endif #include #include #include @@ -39,8 +41,10 @@ #include "camera_calibration/io/calibration_io.h" #include "camera_calibration/models/central_generic.h" #include "camera_calibration/models/central_thin_prism_fisheye.h" +#ifdef LIBVIS_HAVE_CUDA #include "camera_calibration/models/cuda_camera_model.cuh" #include "camera_calibration/models/cuda_central_generic_model.cuh" +#endif namespace vis {