Code Monkey home page Code Monkey logo

camera_calibration's People

Contributors

abrock avatar puzzlepaint avatar xiesc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

camera_calibration's Issues

Signal: SIGABRT

hi,
thank you for your code
The program crashes during calibration

./camera_calibration --dataset_files ./output/features_px.bin --output_directory ./pattern_resolution_17x24/output/noncentral_generic --cell_length_in_pixels 20 --model noncentral_generic --num_pyramid_levels 4

E02O5@TE5TZ6EUSM)E24I7V

Can you give me some advice?

Issues building libvis

Hi @puzzlepaint, I'm excited to try your camera calibration, but am having some problems building the repo.

The cmake step appears fine:
camera_calibration $ mkdir build
camera_calibration $ cd build
build $ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CUDA_FLAGS="-arch=sm_61" ..
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/lib/ccache/cc
-- Check for working C compiler: /usr/lib/ccache/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/lib/ccache/c++
-- Check for working CXX compiler: /usr/lib/ccache/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for a CUDA compiler
-- Looking for a CUDA compiler - NOTFOUND
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so   
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0") 
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   serialization
--   filesystem
--   system
-- Found PythonInterp: /usr/bin/python (found version "2.7.12") 
-- The ASM compiler identification is GNU
-- Found assembler: /usr/lib/ccache/cc
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
-- Performing Test HAVE_LD_VERSION_SCRIPT
-- Performing Test HAVE_LD_VERSION_SCRIPT - Success
-- Symbol prefix: 
-- Found GLEW: /usr/include  
-- The following OPTIONAL packages have been found:

 * PythonInterp

-- The following REQUIRED packages have been found:

 * OpenGL
 * Eigen3
 * Boost
 * Threads
 * ZLIB
 * GLEW
 * Qt5Core
 * Qt5Gui (required version >= 5.8.0)
 * Qt5OpenGL
 * Qt5Widgets
 * Qt5 (required version >= 5.8)
 * Qt5X11Extras

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_CUDA_FLAGS


-- Build files have been written to: /home/eric/camera_calibration/build

The make step from the Readme doesn't work for me, not exactly sure why:

build $ make -j camera_calibration
make: *** No rule to make target 'camera_calibration'.  Stop.

But running plain old make appears to work until it reaches lm_optimizer:

build $ make
Scanning dependencies of target bin2c_autogen
[  1%] Automatic MOC for target bin2c
[  1%] Built target bin2c_autogen
Scanning dependencies of target bin2c
[  1%] Building CXX object CMakeFiles/bin2c.dir/bin2c_autogen/mocs_compilation.cpp.o
[  2%] Building CXX object CMakeFiles/bin2c.dir/libvis/src/bin2c/main.cc.o
[  3%] Linking CXX executable bin2c
[  3%] Built target bin2c
Scanning dependencies of target gtest
[  4%] Building CXX object libvis/third_party/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[  4%] Linking CXX shared library libgtest.so
[  4%] Built target gtest
Scanning dependencies of target genfiles
[  5%] Generating pnglibconf.c
[  6%] Generating pnglibconf.out
[  7%] Generating pnglibconf.h
[  8%] Generating scripts/sym.out
[  8%] Generating libpng.sym
[ 10%] Generating scripts/vers.out
[ 11%] Generating libpng.vers
[ 11%] Generating pngprefix.h
[ 12%] Generating scripts/intprefix.out
[ 13%] Generating scripts/pnglibconf.c
[ 14%] Generating scripts/prefix.out
[ 15%] Generating scripts/symbols.out
[ 15%] Generating scripts/symbols.chk
[ 15%] Built target genfiles
Scanning dependencies of target png
[ 16%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/png.c.o
[ 17%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngerror.c.o
[ 18%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngget.c.o
[ 20%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngmem.c.o
[ 20%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngpread.c.o
[ 21%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngread.c.o
[ 22%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngrio.c.o
[ 23%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngrtran.c.o
[ 24%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngrutil.c.o
[ 24%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngset.c.o
[ 25%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngtrans.c.o
[ 26%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwio.c.o
[ 27%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwrite.c.o
[ 27%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwtran.c.o
[ 28%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwutil.c.o
[ 30%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/intel/intel_init.c.o
[ 31%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/intel/filter_sse2_intrinsics.c.o
[ 32%] Linking C shared library libpng16.so
[ 35%] Built target png
Scanning dependencies of target loguru
[ 35%] Building CXX object CMakeFiles/loguru.dir/libvis/third_party/loguru/loguru.cpp.o
[ 36%] Linking CXX shared library libloguru.so
[ 36%] Built target loguru
Scanning dependencies of target libvis_autogen
[ 37%] Automatic MOC for target libvis
[ 37%] Built target libvis_autogen
[ 38%] Automatic RCC for libvis/resources/resources.qrc
Scanning dependencies of target libvis
[ 38%] Building CXX object CMakeFiles/libvis.dir/libvis_autogen/mocs_compilation.cpp.o
[ 40%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/command_line_parser.cc.o
[ 41%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/glew.cc.o
[ 42%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image.cc.o
[ 43%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_display.cc.o
[ 43%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_display_qt_widget.cc.o
[ 44%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_display_qt_window.cc.o
[ 45%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io.cc.o
[ 46%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io_libpng.cc.o
[ 47%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io_netpbm.cc.o
[ 47%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io_qt.cc.o
[ 48%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/libvis.cc.o
[ 50%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl.cc.o
[ 51%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl_context.cc.o
[ 52%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl_context_glx.cc.o
[ 52%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl_context_qt.cc.o
[ 53%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/patch_match_stereo.cc.o
[ 54%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/qt_thread.cc.o
[ 55%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_display.cc.o
[ 55%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_window.cc.o
[ 56%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_window_qt.cc.o
[ 57%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_window_qt_opengl.cc.o
[ 58%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/renderer.cc.o
[ 60%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/shader_program_opengl.cc.o
[ 60%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/timing.cc.o
[ 61%] Building CXX object CMakeFiles/libvis.dir/libvis_autogen/X5QHYVNTKQ/qrc_resources.cpp.o
[ 62%] Linking CXX shared library liblibvis.so
[ 62%] Built target libvis
Scanning dependencies of target libvis_test_autogen
[ 63%] Automatic MOC for target libvis_test
[ 63%] Built target libvis_test_autogen
Scanning dependencies of target libvis_test
[ 64%] Building CXX object CMakeFiles/libvis_test.dir/libvis_test_autogen/mocs_compilation.cpp.o
[ 65%] Building CXX object CMakeFiles/libvis_test.dir/libvis/src/libvis/test/camera.cc.o
[ 66%] Building CXX object CMakeFiles/libvis_test.dir/libvis/src/libvis/test/dlt.cc.o
[ 67%] Building CXX object CMakeFiles/libvis_test.dir/libvis/src/libvis/test/geometry.cc.o
[ 67%] Building CXX object CMakeFiles/libvis_test.dir/libvis/src/libvis/test/image.cc.o
[ 68%] Building CXX object CMakeFiles/libvis_test.dir/libvis/src/libvis/test/image_cache.cc.o
[ 70%] Building CXX object CMakeFiles/libvis_test.dir/libvis/src/libvis/test/lm_optimizer.cc.o
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc: In member function ‘virtual void LMOptimizer_SchurComplement_Test::TestBody()’:
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:459:51: error: no matching function for call to ‘vis::LMOptimizer<float>::UseBlockDiagonalStructureForSchurComplement(int, std::vector<Eigen::Matrix<float, 2, 1> >::size_type, bool)’
       2, estimated_feature_positions.size(), false);  // TODO: Test with sparse off-diagonal storage as well
                                                   ^
In file included from /home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:34:0:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:315:8: note: candidate: void vis::LMOptimizer<Scalar>::UseBlockDiagonalStructureForSchurComplement(int, int, bool, bool, int, bool) [with Scalar = float]
   void UseBlockDiagonalStructureForSchurComplement(
        ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:315:8: note:   candidate expects 6 arguments, 3 provided
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc: In member function ‘void vis::LMOptimizerTestHelper::Test()’:
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:532:16: error: ‘class vis::LMOptimizer<double>’ has no member named ‘SolveWithSchurComplement’
     optimizer->SolveWithSchurComplement(
                ^
In file included from /home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:34:0:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementSparseOffDiag(int, int, State*, const CostFunction&) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:856:52:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:90:48:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1198:48: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
       m_x.bottomRows(dense_degrees_of_freedom) =
                                                ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementDenseOffDiag(int, int, State*, const CostFunction&) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:862:51:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:90:48:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1260:50: error: ‘class Eigen::Matrix<float, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1343:50: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
In file included from /home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:34:0:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveDensely(Eigen::MatrixBase<OtherDerived>&, const Eigen::MatrixBase<OtherDerived>&, Eigen::Matrix<Scalar, -1, 1>*) [with DerivedA = Eigen::Matrix<float, -1, -1>; DerivedB = Eigen::Matrix<float, -1, 1>; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:869:25:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = Eigen::Matrix<float, 2, 1>; CostFunction = {anonymous}::SimpleLineFittingCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:90:48:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1020:10: error: ‘class Eigen::MatrixBase<Eigen::Matrix<float, -1, -1> >’ has no member named ‘completeOrthogonalDecomposition’
       *x = H.completeOrthogonalDecomposition().solve(b);
          ^
In file included from /home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:34:0:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementSparseOffDiag(int, int, State*, const CostFunction&) [with State = {anonymous}::SE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:856:52:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:252:34:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1198:48: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
       m_x.bottomRows(dense_degrees_of_freedom) =
                                                ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementDenseOffDiag(int, int, State*, const CostFunction&) [with State = {anonymous}::SE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:862:51:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:252:34:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1260:50: error: ‘class Eigen::Matrix<float, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1343:50: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementSparseOffDiag(int, int, State*, const CostFunction&) [with State = {anonymous}::ExternalSE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:856:52:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::ExternalSE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::ExternalSE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:270:34:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1198:48: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
       m_x.bottomRows(dense_degrees_of_freedom) =
                                                ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementDenseOffDiag(int, int, State*, const CostFunction&) [with State = {anonymous}::ExternalSE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:862:51:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::ExternalSE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::ExternalSE3fState; CostFunction = {anonymous}::MatchedPointsDistanceCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:270:34:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1260:50: error: ‘class Eigen::Matrix<float, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1343:50: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementSparseOffDiag(int, int, State*, const CostFunction&) [with State = {anonymous}::SchurComplementTestState; CostFunction = {anonymous}::SchurComplementTestCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:856:52:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SchurComplementTestState; CostFunction = {anonymous}::SchurComplementTestCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SchurComplementTestState; CostFunction = {anonymous}::SchurComplementTestCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:430:34:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1198:48: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
       m_x.bottomRows(dense_degrees_of_freedom) =
                                                ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h: In instantiation of ‘void vis::LMOptimizer<Scalar>::SolveWithSchurComplementDenseOffDiag(int, int, State*, const CostFunction&) [with State = {anonymous}::SchurComplementTestState; CostFunction = {anonymous}::SchurComplementTestCostFunction; Scalar = float]’:
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:862:51:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::OptimizeImpl(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SchurComplementTestState; CostFunction = {anonymous}::SchurComplementTestCostFunction; bool IsReversible = true; Scalar = float]’
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:399:60:   required from ‘vis::OptimizationReport vis::LMOptimizer<Scalar>::Optimize(State*, const CostFunction&, int, int, Scalar, Scalar, bool) [with State = {anonymous}::SchurComplementTestState; CostFunction = {anonymous}::SchurComplementTestCostFunction; Scalar = float]’
/home/eric/camera_calibration/libvis/src/libvis/test/lm_optimizer.cc:430:34:   required from here
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1260:50: error: ‘class Eigen::Matrix<float, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
/home/eric/camera_calibration/./libvis/src/libvis/lm_optimizer.h:1343:50: error: ‘class Eigen::Matrix<float, -1, -1, 1, -1, -1>’ has no member named ‘completeOrthogonalDecomposition’
         m_x.bottomRows(dense_degrees_of_freedom) =
                                                  ^
CMakeFiles/libvis_test.dir/build.make:140: recipe for target 'CMakeFiles/libvis_test.dir/libvis/src/libvis/test/lm_optimizer.cc.o' failed
make[2]: *** [CMakeFiles/libvis_test.dir/libvis/src/libvis/test/lm_optimizer.cc.o] Error 1
CMakeFiles/Makefile2:112: recipe for target 'CMakeFiles/libvis_test.dir/all' failed
make[1]: *** [CMakeFiles/libvis_test.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

Could this be an Eigen version issue? The Eigen change log (http://eigen.tuxfamily.org/index.php?title=ChangeLog) looks like completeOrthogonalDecomposition (to choose one of the functions) may have shown up in Eigen 3.3-beta2 whereas I've got Eigen 3.2.93

~ $ cat /usr/include/eigen3/Eigen/src/Core/util/Macros.h | grep VERSION#define EIGEN_WORLD_VERSION 3
#define EIGEN_MAJOR_VERSION 2
#define EIGEN_MINOR_VERSION 92

What version of Eigen are you using?

Less clear are the LMOptimizer errors,

no matching function for call to ‘vis::LMOptimizer<float>::UseBlockDiagonalStructureForSchurComplement(int, std::vector<Eigen::Matrix<float, 2, 1> >::size_type, bool)’
‘class vis::LMOptimizer<double>’ has no member named ‘SolveWithSchurComplement’

How to implement binocular stereo distance measurement

Hi @puzzlepaint
I have a binocular camera composed of two cameras with fixed relative positions. I can complete the feature point matching of two pictures. I use the central generic model to calibrate two cameras respectively. How can I calculate the spatial position of feature points?

Pixel corresponding to the (0.0, 0.0, 1.0) vector

Hi, @puzzlepaint
Thanks for sharing the code, it is of great help. I have just started with using it for my needs, sorry for a potentially stupid question.

Question: I've calibrated my large-FOV fisheye camera (it is a mono-camera) using central_generic and got the intrinsics0.yaml and modified the code from https://github.com/puzzlepaint/camera_calibration/tree/master/applications/camera_calibration/generic_models to work with my intinrinsics. As a first test, I projected the vector (0.0, 0.0, 1.0) corresponding to the optical axis of the camera to the image, and it turned out to be projected exactly at the image center. However I know for sure, the optical axis ray of this camera doesn't correspond to the center of the image. So my question: did I do some thing wrong and may be got incorrect intrinsics, or it is a feature of the non-parameteric model and I have to determine the optical axis from the intrinsics some other way? Basically, what I got is it a bug or a feature?

Regards,
Sergey.

How to obtain the centre of Distortion?

I read a few papers and said that the distortion center will affect the radial distortion, so I want to ask, is the distortion center calculated separately in the code?

Feature Request: Export Target Deformation Info

I'm interested in measuring the deformation of a printed target.

Could you export that in a file in the report directory? For example for every point of the target one line
x1 y1 z1 x2 y2 z2
where (x1,y1,z1) are the initial coordinates assuming a perfectly planar target with no deformations and (x2,y2,z2) the estimated positions.

Windows build errors

Hi,

Thank you for sharing the source code publicly.
It saves a lot of implementation time.

Unfortunately, I'm running into compile errors on Windows (after many issues setting up CMake):

\camera_calibration\applications\camera_calibrat
ion\third_party\apriltag\common\time_util.h(32,10): fatal error C1083: Cannot open include file: 'sys
/time.h': No such file or directory
camera_calibration\applications\camera_calibrat
ion\third_party\apriltag\common/timeprofile.h(35,10): fatal error C1083: Cannot open include file: 's
ys/time.h': No such file or directory
camera_calibration\applications\camera_calibrat
ion\third_party\apriltag\common\workerpool.c(29,10): fatal error C1083: Cannot open include file: 'pt
hread.h': No such file or directory
...
camera_calibration\applications\camera_calibrat
ion\third_party\apriltag\common\pjpeg.c(452,36): error C2466: cannot allocate an array of constant si
ze 0
\camera_calibration\applications\camera_calibrat
ion\third_party\apriltag\common\pjpeg.c(521,34): error C2057: expected constant expression
camera_calibration\applications\camera_calibrat
ion\third_party\apriltag\common\string_util.h(59,43): error C2061: syntax error: identifier '__attrib
ute__'
...
camera_calibration\applications\camera_calibrat
ion\third_party\apriltag\common\pjpeg.c(521,34): error C2466: cannot allocate an array of constant si
ze 0

At first glance they seem to be third party library errors related to unix/windows differences.

Any hints on how to correctly configure and build the project would be greatly appreciated.

Additionally I did manage to build on Windows via WSL2 + CUDA + VcXsrv, however WSL2 doesn't support passing over USB devices from windows. I am hoping I can have an executable on windows to stream as an IP camera on localhost, but as far as I can tell camera_calibration populates the cameras list from USB cameras only ?

2020-12-03 21_54_32-libvis - Microsoft Visual Studio

2020-12-03 21_56_00-Camera calibration - Settings

What else could I try to run camera_calibration ?

Questions about calibrating large FOV fisheye camera

Hi, respect to your work!

I noticed that you test your method on a fisheye camera that you labeled as Tango in the paper. And it turned out a much better result than traditional OpenCV parametric model's. I've tested your method in my fisheye camera too but I couldn't obtain a expected result. I guess it's due to my wrong way taking the pattern images. Could you provide more details on how to obtain calibration data when using large FOV camera?

  • How many images (or detected features) is enough? I took 100 images but almost half of them fail to be detected.
  • Due to high distortion at the edge of image, it's difficult to obtain image that has pattern feature at the edge. Would it matter?
  • How to check the detected feature is good before calibrating?

Would you please share your Tango test data? It would help a lot.

Excessive computation time and poor results

I have been trying to use this code to calibrate both the depth and color cameras of some Azure Kinects recently. You can find the specifications of both types of cameras here and here. For reasons that are specific to my project, I have to use the central OpenCV model. In order to evaluate the quality of my calibration, I thus mainly focus on the value of the reprojection error and the histogram.

The major issue I have at the moment is twofold:

  1. The computation time is excessively high for both types of cameras, taking more than 20h.
  2. The results for the calibration of the color camera are almost always bad (spread histogram, reprojection errors > 1 to 1.5 px). Depth cameras present correct calibration.

I am especially surprised to see how fast the code runs for the test dataset you proposed in the Issue #16. In my case, I am using a big chart with the star pattern and AprilTag from 0 to 15. Typical datasets I am using are available here. Log files for a color camera, a depth camera and the test dataset are also available. They do not correspond to the particular datasets I gave, but are given as example. In general, I am using a half window size of 20 for the color camera, 10 for the depth camera and a cell size of 10.

My guess is that the problem comes from the initialization. The iterations that take a lot of time (approx. 6-7 min each, the code is running in dense_cuda mode) are the ones of the bundle adjustment phase. I was also wondering if it was normal that the fitting of the per-pixel model was going through all the deltas that are proposed (from 1e-2 to 1e-5).

My first trials were made with color images of 2160p, but the initialization was more complicated, as the algorithm could not find a high number of pixels observing features in all three images from the triplet. I thus reduced the resolution to 720p. It helped to increase the value of best_num_point_triple, and I managed to got the "Accepting the current calibration immediately" log, but it did not improve anything. My initial cost at the start of bundle adjustment is also usually high (1e6, 1e7 range).

The color camera of the Azure Kinect is rolling shutter, thus it might be possible that parasitic distortions due to motions are explaining in part the bad results I obtain. On its side, the depth camera is global shutter, as the Intel D435 that was used to capture the test dataset.

Understanding why the computation time is that high would help me to run more tests, and I would greatly appreciate any help! Thanks.

the question about binocular camera

hi, I can understand your camera_calibration procedure for one camera. And I want to use the result for binocular camera three-dimensional reconstruction base on triangulation measurement. Firstly, I want to calibrate to get RT between two cameras, it's easy if I use the central generic model, because the optical central position of camera is only one. But for the noncentral generic model, I have no idea how to calibrate the pose of two cameras, and how to use constraint of polar line? Could you do me a favor?

How can I capture the images that the tool can extract features successfully?

Hi @puzzlepaint,
This calibration tool is well to use, and thanks for your sharing.
However, I found the feature extraction of many images I captured failed, and the message showed
"0 features".
I have follow the instructions, using global shutter sensors and capturing on the tripod.
Is there any other tips for capturing?
Or what situation the tool would rule out the images for feature extraction?

Issue calibrating DSLR images.

Hey,
I am using an 18-55 lens, the pictures are taken when the lens is fully zoomed out.
The results after calibration seem weird to me, they are all constrained to one side.

Dataset

DSC_0001
DSC_0006
DSC_0015
DSC_0018

Configuration

Half window size - 10 (I couldn't get features on all images for 15)
Cell size - 20 (1620x1080)
Camera Model - Central_generic

Results

report_camera0_error_directions
report_camera0_errors_histogram
report_camera0_observation_directions
report_camera0_error_magnitudes

What I observed is, for some reason the calibration script only takes 5 images from the entire dataset. Maybe this is why the results are only on one side?

Any ideas and help would be much appreciated!

Have trouble to calibrate multiple D435C

Hi,@puzzlepaint. I am really appreciate your great work for the community.
But, I have some trouble to calibrate the D435 Color cameras.
We have two D435 cameras in a fixed triple. Moving the target feature little by little.
First camera
000006
Second camera
000006
resolution 1280*720 for both RGB cameras, and half window 10, cell 30.
About 2769 pics for each camera.
However, it ends like this.
First one
report_camera0_error_directions
report_camera0_error_magnitudes
report_camera0_errors_histogram
report_camera0_grid_point_locations
report_camera0_observation_directions
report_camera0_removed_outliers

Second one
report_camera1_error_directions
report_camera1_error_magnitudes
report_camera1_errors_histogram
report_camera1_grid_point_locations
report_camera1_observation_directions
report_camera1_removed_outliers
The second one is weird to me. I have no problem to calibrate the infrared cameras. 900 pics will converge to a proper error. Maybe it is caused by the shutter type, I guess. There are a lot of outlier are removed from second one. Am I missing some trick there?
camera_tr_rig.yaml is the location of both cameras. So I can align both cameras into one unify world coordinate systems, for depth projection of each camera, and the scale is meters. Am I aright?

Explain camera parameters

Hi,
Can you explain which parameters are (distortion parameters) and which are (intrinsic parameters), such that in Pinhole parameters, there are up to 8 distortion parameters, and 2 focal lengths, and 2 optical centers parameters.?

And then what is the equations needed to un-distort the images, and how to project and un-project using un-distorted images (without distortion parameters)?

My printed pattern got slightly different upscale for 0X and 0Y dimentions. How to adopt calibration for it?

Dear authors,

I recently figured out that all patterns I print have some weird issue, that squares which supposed to be squares. Is there a simple way to hack it out based on real measurements of the pattern?
I have something like 0.5% upscale for 0Y dimention compared to 0X dimention. And this change caused by printer drivers is out of my control.

Is there anything I can do with already printed pattern by just changing the code? Like some place to look at at least?

Segmentation fault when trying to load an existing calibration

I rendered 80 images so I could play around and ran the calibration like this:

--dataset_files ./output-large.yaml --output_directory ./calib/ --cell_length_in_pixels 50 --model central_generic --num_pyramid_levels 4

It didn't create those nice figures you show in your paper so I tried to run it again like this:

--dataset_files ./output-large.yaml --report_base_path ./report/ --state_directory ./calib/ --output_directory ./calib/ --cell_length_in_pixels 50 --model central_generic --num_pyramid_levels 4 --show_visualizations

But it aborts, here's a backtrace from a debug build.

I found that it runs if I set --num_pyramid_levels 1. Perhaps the code could detect that case and warn the user or automatically adjust the level.

Also I'm not 100% sure it starts where it stopped when I ran it the first time, I vaguely remember a final cost of 12 and it starts with 30.

I made a zip of the relevant files, if you need / want the rendered images I can upload them somewhere.

Questions about undistortion of generic models

Hi @puzzlepaint, I'm impressive by the undistortion algorithm you proposed at #22, which requires both generic calibration result (pixel directions) and parametric calibration result (focal length and center offset). I wondering if there is another way that uses only pixel directions, so I came up with this idea:

The reason why distortion occurs at the sensor (green plane) is because the outside rays refract when they pass through the lens (blue arrows become red ones). So if I can use a plane to "intercept" the outside rays before they reach the lens, I can obtain undistorted images on that plane (orange plane). The generic calibration result is exact the directions of the outside rays (blue arrows), so just use them to find their intersections with the orange plane, then apply simple perspective transformation to fill the color.

However, in the experiment I still saw distorted images. I'm not sure whether the idea is wrong or I misused the directions your program calibrated. Here is how I did it:

- Choose an outside plane in the same coordinate as the ray directions'.
- For each cell in the generic calibration result (each cell has 4 pixels { p1, p2, p3, p4 } with corresponding direction vectors)
  - Find the intersections { q1, q2, q3, q4 } of the 4 directions and the outside plane.
  - Calculate the homography H from  { p1, p2, p3, p4 } to { q1, q2, q3, q4 }.
  - Perspectively project the image cell in the original image to the outside plane using H.

test

Creating undistorted images

Hi, because depth computation doesn't work without the GPU, and I'd like to try my own stereo algorithm on images, I was wondering if it would be possible to get corrected/undistorted images using this calibration and feed those into a stereo algorithm. Is that something you've tried before? It feels like some of the pieces are available in the "How to use generic camera models in your application" section of the README, although it's not a 1:1 fit.

https://github.com/puzzlepaint/camera_calibration/blob/master/applications/camera_calibration/generic_models/src/central_generic.h

  /// Un-projects the given image pixel coordinate to a 3D direction in the
  /// local coordinate frame of the camera.

This would be something new for me, and I imagine I could dig up some online resources on it, but first I wanted to check if it was something your team had tried before. Thanks!

"Segmentation fault (core dumped)" problem

hi ! @puzzlepaint again ,I still have a problem .
Question: I got a "Segmentation fault (core dumped)" when I almost finish the step of Camera calibration .

  • ubuntu@ubun:$ export CELL_SIZE=50
    ubuntu@ubun:
    $ ${CALIBRATION_PATH}/build/applications/camera_calibration/camera_calibration --dataset_files ${DATASET}/features_${HALF_WINDOW_SIZE}px.bin --output_directory ${DATASET}/result_${HALF_WINDOW_SIZE}px_central_generic_${CELL_SIZE} --cell_length_in_pixels ${CELL_SIZE} --model central_generic --num_pyramid_levels 4 --show_visualizations
    time file:line v|
    17:30:12.457 loguru.cpp:587 INFO| arguments: /home/ubuntu/camera_calibration/build/applications/camera_calibration/camera_calibration --dataset_files /home/ubuntu/camera_calibration/features_15px.bin --output_directory /home/ubuntu/camera_calibration/result_15px_central_generic_50 --cell_length_in_pixels 50 --model central_generic --num_pyramid_levels 4 --show_visualizations
    17:30:12.457 loguru.cpp:590 INFO| Current dir: /home/ubuntu
    17:30:12.457 loguru.cpp:592 INFO| stderr verbosity: 2
    17:30:12.457 loguru.cpp:593 INFO| -----------------------------------
    17:30:12.539 calibration.cc:1268 INFO| Dataset 0: /home/ubuntu/camera_calibration/features_15px.bin
    17:30:12.540 calibration_io.cc:244 INFO| Loaded dataset with 1018 feature observations.
    17:30:12.540 calibration.cc:937 INFO| Calibrate() starting ...
    17:30:12.541 calibration.cc:951 INFO| Estimating the dense initialization for camera 0 ...
    17:30:36.305 dense_initialization.cc:1310 INFO| Final init_indices: 1, 0, 2
    17:30:36.306 dense_initialization.cc:1311 INFO| best_num_point_triples: 35691
    17:30:36.306 dense_initialization.cc:997 INFO| optical_center: -0.140615 0.106569 -0.346135
    17:30:36.306 dense_initialization.cc:998 INFO| init_known_geometry_index: 0
    17:30:36.306 dense_initialization.cc:1002 INFO| Determining initial partial calibration from initial images ...
    17:30:36.312 dense_initialization.cc:1040 INFO| Extending initial calibration by localizing the remaining images ...
    17:30:36.322 dense_initialization.cc:1423 INFO| Imagesets used for calibration: 3 / 3
    17:30:36.329 calibration.cc:655 INFO| Area that will be calibrated for camera 0: (843, 149) to (3264, 2786)
    17:30:36.329 calibration.cc:674 INFO| Choosing grid resolution (for highest pyramid level): 50 x 54
    17:30:36.329 calibration.cc:741 INFO| FitToDenseModel() ...
    17:30:37.426 calibration.cc:1046 INFO| Bundle adjustment with pyramid level: 3
    17:30:37.426 calibration.cc:1058 INFO| Grid resolution on pyramid level 3 for camera 0: 21 x 23
    17:30:37.426 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:37.460 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 1152.07
    17:30:38.156 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:38.156 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.016884 seconds
    17:30:38.156 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.695825 seconds
    17:30:38.156 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 22.9504
    17:30:38.158 calibration.cc:240 INFO| [1] Cost: 22.9504
    17:30:38.744 calibration_report.cc:1140 1| Maximum reprojection error: 7.86458
    17:30:38.861 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:38.893 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 22.9504
    17:30:39.633 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:39.633 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0185652 seconds
    17:30:39.633 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.739105 seconds
    17:30:39.633 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 2.01155
    17:30:39.633 calibration.cc:240 INFO| [2] Cost: 2.01155
    17:30:40.195 calibration_report.cc:1140 1| Maximum reprojection error: 0.530992
    17:30:40.309 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:40.340 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 2.0115
    17:30:41.079 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:41.079 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.026992 seconds
    17:30:41.079 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.738952 seconds
    17:30:41.079 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 1.79785
    17:30:41.079 calibration.cc:240 INFO| [3] Cost: 1.79785
    17:30:41.644 calibration_report.cc:1140 1| Maximum reprojection error: 1.55904
    17:30:41.758 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:41.788 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 1.79781
    17:30:42.528 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:42.528 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0266771 seconds
    17:30:42.528 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.739686 seconds
    17:30:42.528 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.331711
    17:30:42.528 calibration.cc:240 INFO| [4] Cost: 0.331711
    17:30:43.091 calibration_report.cc:1140 1| Maximum reprojection error: 0.197815
    17:30:43.206 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:43.236 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.331692
    17:30:43.977 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:43.977 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0262904 seconds
    17:30:43.977 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.740803 seconds
    17:30:43.977 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.198178
    17:30:43.977 calibration.cc:240 INFO| [5] Cost: 0.198178
    17:30:44.541 calibration_report.cc:1140 1| Maximum reprojection error: 0.115596
    17:30:44.657 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:44.686 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.198167
    17:30:45.428 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:45.428 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0256629 seconds
    17:30:45.428 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.741466 seconds
    17:30:45.428 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.157953
    17:30:45.428 calibration.cc:240 INFO| [6] Cost: 0.157953
    17:30:45.990 calibration_report.cc:1140 1| Maximum reprojection error: 0.0702889
    17:30:46.108 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:46.138 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.157933
    17:30:46.884 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:46.884 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0269043 seconds
    17:30:46.884 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.745051 seconds
    17:30:46.884 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.14589
    17:30:46.884 calibration.cc:240 INFO| [7] Cost: 0.14589
    17:30:47.444 calibration_report.cc:1140 1| Maximum reprojection error: 0.0553178
    17:30:47.552 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:47.582 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.145887
    17:30:48.321 lm_optimizer.h:960 1| LMOptimizer: [1, 1 of 50] update rejected (bad cost: 0.151303), new lambda: 26.26
    17:30:49.060 lm_optimizer.h:936 1| LMOptimizer: [1] update accepted
    17:30:49.060 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:49.060 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0257546 seconds
    17:30:49.060 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 1.47788 seconds
    17:30:49.060 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.141569
    17:30:49.060 calibration.cc:240 INFO| [8] Cost: 0.141569
    17:30:49.623 calibration_report.cc:1140 1| Maximum reprojection error: 0.0567211
    17:30:49.716 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:49.733 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.141542
    17:30:50.477 lm_optimizer.h:960 1| LMOptimizer: [1, 1 of 50] update rejected (bad cost: 0.148519), new lambda: 26.26
    17:30:51.223 lm_optimizer.h:936 1| LMOptimizer: [1] update accepted
    17:30:51.223 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:51.223 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0154971 seconds
    17:30:51.223 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 1.48916 seconds
    17:30:51.223 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.138505
    17:30:51.223 calibration.cc:240 INFO| [9] Cost: 0.138505
    17:30:51.793 calibration_report.cc:1140 1| Maximum reprojection error: 0.0569463
    17:30:51.888 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:51.912 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.138476
    17:30:52.654 lm_optimizer.h:960 1| LMOptimizer: [1, 1 of 50] update rejected (bad cost: 0.146446), new lambda: 26.26
    17:30:53.399 lm_optimizer.h:936 1| LMOptimizer: [1] update accepted
    17:30:53.399 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:53.399 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0207793 seconds
    17:30:53.399 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 1.48582 seconds
    17:30:53.399 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.136361
    17:30:53.399 calibration.cc:240 INFO| [10] Cost: 0.136361
    17:30:53.967 calibration_report.cc:1140 1| Maximum reprojection error: 0.0566219
    17:30:54.066 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:54.093 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.136329
    17:30:54.843 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:54.843 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0238589 seconds
    17:30:54.843 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.748786 seconds
    17:30:54.843 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.13099
    17:30:54.843 calibration.cc:240 INFO| [1] Cost: 0.13099
    17:30:55.415 calibration_report.cc:1140 1| Maximum reprojection error: 0.0538887
    17:30:55.511 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:55.533 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.130987
    17:30:56.280 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:30:56.280 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0194202 seconds
    17:30:56.280 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 0.746466 seconds
    17:30:56.280 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.130947
    17:30:56.280 calibration.cc:240 INFO| [2] Cost: 0.130947
    17:30:56.854 calibration_report.cc:1140 1| Maximum reprojection error: 0.0538669
    17:30:56.951 calibration.cc:383 INFO| Resampling model ...
    17:30:58.988 calibration.cc:1046 INFO| Bundle adjustment with pyramid level: 2
    17:30:58.988 calibration.cc:1058 INFO| Grid resolution on pyramid level 2 for camera 0: 28 x 30
    17:30:58.988 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:30:59.017 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 3.81402
    17:31:01.152 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:01.152 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0146177 seconds
    17:31:01.152 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.13454 seconds
    17:31:01.152 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.00807074
    17:31:01.154 calibration.cc:240 INFO| [1] Cost: 0.00807074
    17:31:01.714 calibration_report.cc:1140 1| Maximum reprojection error: 0.0300044
    17:31:01.829 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:01.874 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.00806985
    17:31:03.987 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:03.987 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.014998 seconds
    17:31:03.987 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.11327 seconds
    17:31:03.987 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.00393746
    17:31:03.990 calibration.cc:240 INFO| [2] Cost: 0.00393746
    17:31:04.543 calibration_report.cc:1140 1| Maximum reprojection error: 0.0225824
    17:31:04.654 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:04.689 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.00392819
    17:31:06.799 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:06.800 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0141925 seconds
    17:31:06.800 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.1101 seconds
    17:31:06.800 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.00175875
    17:31:06.802 calibration.cc:240 INFO| [3] Cost: 0.00175875
    17:31:07.354 calibration_report.cc:1140 1| Maximum reprojection error: 0.0149429
    17:31:07.466 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:07.510 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.001751
    17:31:09.621 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:09.621 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0152241 seconds
    17:31:09.621 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.11123 seconds
    17:31:09.621 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.000550263
    17:31:09.624 calibration.cc:240 INFO| [4] Cost: 0.000550263
    17:31:10.171 calibration_report.cc:1140 1| Maximum reprojection error: 0.00777432
    17:31:10.282 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:10.333 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.000545818
    17:31:12.468 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:12.468 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0199945 seconds
    17:31:12.468 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.1342 seconds
    17:31:12.468 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 0.0001202
    17:31:12.470 calibration.cc:240 INFO| [5] Cost: 0.0001202
    17:31:13.049 calibration_report.cc:1140 1| Maximum reprojection error: 0.002901
    17:31:13.144 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:13.181 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.00011815
    17:31:15.310 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:15.310 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0170011 seconds
    17:31:15.310 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.12904 seconds
    17:31:15.310 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 1.80266e-05
    17:31:15.312 calibration.cc:240 INFO| [6] Cost: 1.80266e-05
    17:31:15.877 calibration_report.cc:1140 1| Maximum reprojection error: 0.000726045
    17:31:15.975 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:16.020 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 1.75217e-05
    17:31:18.154 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:18.154 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0195554 seconds
    17:31:18.154 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.13368 seconds
    17:31:18.154 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 1.62184e-06
    17:31:18.156 calibration.cc:240 INFO| [7] Cost: 1.62184e-06
    17:31:18.729 calibration_report.cc:1140 1| Maximum reprojection error: 0.000165935
    17:31:18.837 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:18.882 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 1.55295e-06
    17:31:20.996 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:20.996 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0150476 seconds
    17:31:20.996 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.11399 seconds
    17:31:20.996 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 1.29537e-07
    17:31:20.998 calibration.cc:240 INFO| [1] Cost: 1.29537e-07
    17:31:21.552 calibration_report.cc:1140 1| Maximum reprojection error: 0.000160522
    17:31:21.677 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:21.721 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 1.28781e-07
    17:31:23.744 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:23.744 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0148472 seconds
    17:31:23.744 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 2.02297 seconds
    17:31:23.744 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 1.04526e-07
    17:31:23.747 calibration.cc:240 INFO| [2] Cost: 1.04526e-07
    17:31:24.299 calibration_report.cc:1140 1| Maximum reprojection error: 0.000149248
    17:31:24.413 calibration.cc:383 INFO| Resampling model ...
    17:31:34.730 calibration.cc:1046 INFO| Bundle adjustment with pyramid level: 1
    17:31:34.730 calibration.cc:1058 INFO| Grid resolution on pyramid level 1 for camera 0: 38 x 41
    17:31:34.730 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:34.779 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.737476
    17:31:43.101 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:43.101 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0154736 seconds
    17:31:43.101 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 8.32095 seconds
    17:31:43.101 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 7.42717e-06
    17:31:43.106 calibration.cc:240 INFO| [1] Cost: 7.42717e-06
    17:31:43.669 calibration_report.cc:1140 1| Maximum reprojection error: 0.000879625
    17:31:43.781 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:43.847 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 7.33983e-06
    17:31:52.160 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:31:52.160 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0151702 seconds
    17:31:52.160 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 8.31215 seconds
    17:31:52.160 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 7.36855e-10
    17:31:52.165 calibration.cc:240 INFO| [2] Cost: 7.36855e-10
    17:31:52.717 calibration_report.cc:1140 1| Maximum reprojection error: 9.55947e-06
    17:31:52.830 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:31:52.897 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 3.87065e-10
    17:32:01.223 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:32:01.223 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0151742 seconds
    17:32:01.223 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 8.32593 seconds
    17:32:01.223 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 3.09372e-13
    17:32:01.228 calibration.cc:240 INFO| [1] Cost: 3.09372e-13
    17:32:01.775 calibration_report.cc:1140 1| Maximum reprojection error: 8.87755e-06
    17:32:01.887 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:32:01.953 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 1.86585e-13
    17:32:10.246 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:32:10.246 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0151907 seconds
    17:32:10.246 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 8.29264 seconds
    17:32:10.246 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 2.08106e-17
    17:32:10.251 calibration.cc:240 INFO| [2] Cost: 2.08106e-17
    17:32:10.803 calibration_report.cc:1140 1| Maximum reprojection error: 9.0477e-06
    17:32:10.916 calibration.cc:383 INFO| Resampling model ...
    17:33:05.481 calibration.cc:1095 INFO| Bundle adjustment with final grid resolution for camera 0: 50 x 54 ...
    17:33:05.481 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:33:05.578 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 0.0990803
    17:33:36.889 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:33:36.889 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0161807 seconds
    17:33:36.889 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 31.3096 seconds
    17:33:36.889 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 6.37168e-07
    17:33:36.900 calibration.cc:240 INFO| [1] Cost: 6.37168e-07
    17:33:37.452 calibration_report.cc:1140 1| Maximum reprojection error: 0.000134803
    17:33:37.561 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:33:37.674 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 3.65644e-07
    17:34:09.005 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:34:09.005 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0162783 seconds
    17:34:09.005 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 31.3299 seconds
    17:34:09.005 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 4.73339e-11
    17:34:09.016 calibration.cc:240 INFO| [2] Cost: 4.73339e-11
    17:34:09.564 calibration_report.cc:1140 1| Maximum reprojection error: 6.28872e-06
    17:34:09.707 calibration.cc:131 1| Removing outlier which does not project into the image.
    17:34:09.707 calibration.cc:159 INFO| Outlier detection removed 1 outlier features.
    17:34:10.113 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:34:10.211 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 2.10964e-11
    17:34:41.527 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:34:41.527 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0157114 seconds
    17:34:41.527 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 31.3151 seconds
    17:34:41.527 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 8.20758e-15
    17:34:41.537 calibration.cc:240 INFO| [1] Cost: 8.20758e-15
    17:34:42.089 calibration_report.cc:1140 1| Maximum reprojection error: 6.20147e-06
    17:34:42.196 lm_optimizer.h:327 1| Using the Schur complement (block_size: 6, num_blocks: 3)
    17:34:42.310 lm_optimizer.h:749 INFO| LMOptimizer: [0] Initial cost: 6.14656e-15
    17:35:13.632 lm_optimizer.h:982 INFO| LMOptimizer: Maximum iteration count reached, stopping.
    17:35:13.632 lm_optimizer.h:984 INFO| LMOptimizer: [1] Cost / Jacobian computation time: 0.0157741 seconds
    17:35:13.632 lm_optimizer.h:985 INFO| LMOptimizer: [1] Solve time: 31.3208 seconds
    17:35:13.632 lm_optimizer.h:986 INFO| LMOptimizer: [1] Final cost: 1.61911e-18
    17:35:13.642 calibration.cc:240 INFO| [2] Cost: 1.61911e-18
    17:35:14.195 calibration_report.cc:1140 1| Maximum reprojection error: 6.20395e-06
    Segmentation fault (core dumped)

I put 3 pictures into the images folder , and the version is the same as you are.
Do you know something about this problem?
thanks a lot !

How to obtain camera internal parameters from calibration results

hi,
i have get the calibration results, How to obtain camera internal parameters from calibration results? i want to correct the fisheye from calibration results

report_camera0_info.txt:

resolution : 1280 x 720
horizontal_fov : 212.87422947398
vertical_fov : 118.26021874509

num_localized_imagesets : 385
num_total_imagesets : 390

reprojection_error_count : 10743
reprojection_error_median : 0.141347150886
reprojection_error_average : 0.17611839469023
reprojection_error_maximum : 1.1953747539699
median_kl_divergence : 0.46867320578886

reprojection_error_histogram_visualization_half_extent_in_pixels : 0.20000000298023
maximum_error_visualization_maximum_error_in_pixels : 0.5

Windows build - CUDA issue

I have NVIDIA card only on Windows 10 machine, so I tried to build the projects on it. The build is mostly successful (with a few tweaks that I am happy to report). All the libraries compile fine, but the application gives linking errors of type:
error LNK2019: unresolved external symbol __cudaRegisterLinkedBinary_69_tmpxft_00007b48_00000000_7_patch_match_stereo_kernel_mutation_cpp
which indicate that all CUDA objects (except for patch_match_stereo_kernel_optimize.cu, which is empty) are not linked. However, libvis_cuda.lib is being explicitly linked.
I know that the testing has been done on Linux, but maybe someone has any idea what is going wrong in my case?

make[1]: *** [CMakeFiles/Makefile2:907: applications/camera_calibration/CMakeFiles/camera_calibration.dir/rule] Error 2 make: *** [Makefile:487: camera_calibration] Error 2

I am trying to build a new library for camera calibration however get this error message when I use command make -j camera_calibration. Error occurs latest at 31% of the progress bar. I have checked all other libraries, cuda version and dependencies as well but they work fine.(CUDA 10.1)

Full error:
Scanning dependencies of target camera_calibration_apriltag_autogen
Scanning dependencies of target loguru
Scanning dependencies of target yaml-cpp2_autogen
Scanning dependencies of target genfiles
[ 0%] Automatic MOC for target camera_calibration_apriltag
[ 1%] Automatic MOC for target yaml-cpp2
[ 2%] Generating pnglibconf.c
[ 2%] Building CXX object CMakeFiles/loguru.dir/libvis/third_party/loguru/loguru.cpp.o
[ 4%] Generating pngprefix.h
[ 4%] Generating scripts/pnglibconf.c
[ 4%] Generating scripts/symbols.out
options.awk: bad line (10): com
CMake Error at scripts/gensrc.cmake:68 (message):
Failed to generate pnglibconf.tf5

make[3]: *** [libvis/third_party/libpng/CMakeFiles/genfiles.dir/build.make:85: libvis/third_party/libpng/pnglibconf.c] Error 1
make[3]: *** Waiting for unfinished jobs....
[ 4%] Built target yaml-cpp2_autogen
options.awk: bad line (11): com
[ 4%] Built target camera_calibration_apriltag_autogen
CMake Error at scripts/gensrc.cmake:41 (message):
Failed to generate pnglibconf.tf7

make[3]: *** [libvis/third_party/libpng/CMakeFiles/genfiles.dir/build.make:108: libvis/third_party/libpng/scripts/pnglibconf.c] Error 1
make[2]: *** [CMakeFiles/Makefile2:776: libvis/third_party/libpng/CMakeFiles/genfiles.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
Scanning dependencies of target yaml-cpp2
Scanning dependencies of target camera_calibration_apriltag
[ 5%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/convert.cpp.o
[ 5%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/yaml-cpp2_autogen/mocs_compilation.cpp.o
[ 5%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/directives.cpp.o
[ 5%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitfromevents.cpp.o
[ 5%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/binary.cpp.o
[ 5%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/camera_calibration_apriltag_autogen/mocs_compilation.cpp.o
[ 6%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitterstate.cpp.o
[ 6%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/apriltag_pose.c.o
[ 6%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitter.cpp.o
[ 8%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emit.cpp.o
[ 8%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitterutils.cpp.o
[ 9%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/apriltag.c.o
[ 9%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/apriltag_quad_thresh.c.o
[ 9%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/image_u8x3.c.o
[ 11%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/image_u8x4.c.o
[ 11%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/matd.c.o
[ 11%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pam.c.o
[ 11%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/image_u8.c.o
[ 12%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/g2d.c.o
[ 13%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pjpeg-idct.c.o
[ 13%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/getopt.c.o
[ 13%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/exceptions.cpp.o
[ 15%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/homography.c.o
[ 15%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pjpeg.c.o
[ 15%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/memory.cpp.o
[ 16%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/exp.cpp.o
[ 16%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/node.cpp.o
[ 18%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/node_data.cpp.o
[ 18%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/nodebuilder.cpp.o
[ 18%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/svd22.c.o
[ 18%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pnm.c.o
[ 18%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/nodeevents.cpp.o
[ 18%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/time_util.c.o
[ 19%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/string_util.c.o
[ 20%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/null.cpp.o
[ 20%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/ostream_wrapper.cpp.o
[ 22%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/unionfind.c.o
[ 22%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/workerpool.c.o
[ 22%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/zhash.c.o
[ 22%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/parser.cpp.o
[ 22%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/zmaxheap.c.o
[ 23%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/parse.cpp.o
[ 25%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/zarray.c.o
[ 25%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/regex_yaml.cpp.o
[ 26%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/tag36h11.c.o
[ 27%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scanner.cpp.o
[ 29%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scantoken.cpp.o
[ 29%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scanscalar.cpp.o
[ 29%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/singledocparser.cpp.o
[ 30%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/stream.cpp.o
[ 30%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scantag.cpp.o
[ 30%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/simplekey.cpp.o
[ 30%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/tag.cpp.o
[ 30%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/contrib/graphbuilder.cpp.o
[ 31%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/contrib/graphbuilderadapter.cpp.o
[ 31%] Linking CXX static library libcamera_calibration_apriltag.a
[ 31%] Built target camera_calibration_apriltag
[ 31%] Linking CXX static library libyaml-cpp2.a
[ 31%] Built target yaml-cpp2
[ 31%] Linking CXX shared library libloguru.so
[ 31%] Built target loguru
make[1]: *** [CMakeFiles/Makefile2:907: applications/camera_calibration/CMakeFiles/camera_calibration.dir/rule] Error 2
make: *** [Makefile:487: camera_calibration] Error 2

How to manipulate the grid points for some warping application

Hi @puzzlepaint ,

I want to manipulate the grid points of generic model of camera for some other warping application.
I have read the function bool TestCentralGenericCameraReprojection()

bool TestCentralGenericCameraReprojection() {

However, I still do not well understand the meaning of grid points.

Could you give more explanations or examples , such as

  1. How to generate a camera object CentralGenericCamera, represents ideal camera with specific width(w), height(h), position of projected optical center (cx, cy), and specific focal length (fx, and fy)?
  2. What is the optical meaning of calibration_min_x, calibration_max_x...? Whether image areas out of these parameters cover range are out of calibration?

Question about calibrating a stereo camera

Dear @puzzlepaint ,
I want to calibrate a stereo camera. I tried to calibrate them together, but the program was difficult to converge. But when I calibrate them separately, they converge well. The most important thing is that I want to know the RT between two cameras. I can calculate R through the calibration results, but I don't know how to calculate T. Can you give me some ideas to solve the problem?Thanks!

FATL| Cuda Error: CUDA driver version is insufficient for CUDA runtime version

Hi,

I ran into this error when trying to run "start normal" in the live input section. But the application window crashes and terminal shows the error info:

Stack trace:
8       0x7f291da2388f clone + 63
7       0x7f291b7ae6db /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7f291b7ae6db]
6       0x7f291e36666f /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xbd66f) [0x7f291e36666f]
5       0x7f292035103d vis::ImageInputRealSense::ThreadMain(std::vector<std::shared_ptr<vis::AvailableInput>, std::allocator<std::shared_ptr<vis::AvailableInput> > > const&) + 6925
4       0x7f29203e8289 vis::LiveImageConsumer::NewImageset(std::vector<vis::Image<Eigen::Matrix<unsigned char, 3, 1, 0, 3, 1> >, std::allocator<vis::Image<Eigen::Matrix<unsigned char, 3, 1, 0, 3, 1> > > > const&) + 601
3       0x7f292033c625 vis::FeatureDetectorTaggedPattern::DetectFeatures(vis::Image<Eigen::Matrix<unsigned char, 3, 1, 0, 3, 1> > const&, std::vector<vis::PointFeature>*, vis::Image<Eigen::Matrix<unsigned char, 3, 1, 0, 3, 1> >*) + 501
2       0x7f2920332a62 vis::FeatureDetectorTaggedPattern::PrepareCUDAResources(int, int) + 66
1       0x7f2920340cde vis::CUDABuffer<unsigned char>::CUDABuffer(int, int) + 206
0       0x7f291f912fe2 loguru::StreamLogger::~StreamLogger() + 162
23:30:27.332       cuda_buffer_inl.h:40    FATL| Cuda Error: CUDA driver version is insufficient for CUDA runtime version

So I checked my cuda and driver version:

root@568df16a4713:/# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
root@568df16a4713:/# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  465.19.01  Fri Mar 19 07:44:41 UTC 2021
GCC version:  gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)

According to https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#major-components, my driver version (465.19) is more than enough for my cuda version (10.2).

Could you suggest how this could happen and what could possibly the way to solve it? Thanks!

Docker Support

Hi,

Thanks for the great work! I would like to use your repo, but I find it very difficult to get the compilation to work on my computer. I even tried to build from scratch on a clean cuda docker image. But still no luck.

Is it possible for you to provide some kind of Docker support, be it Dockerfile or Docker image, I'm sure it will be greatly beneficial to a large number of developers like me to use your work.

How to use generic model in Colmap?

Hi, @puzzlepaint
In the paper Colmap reconstruction is used as an evaluation.
Do you undistort the images first, then give the undistorted images to Colmap?
Or you integrate the generic-model undistortion and distortion into Colmap? If so, what's the Jacobian?
Thanks in advance!

Unable to find features

Hi, I'm excited to try this calibration out but am having problems on the "Calibrating a camera from images in a folder" section of the readme. A CUDA-capable graphics card is not available, so I unchecked the "Live feature detection" button in the capture GUI and got ~150 images of pattern_resolution_17x24_segments_16_apriltag_0.yaml. The only notable thing I can think of in the feature-finding command is that --no_cuda_feature_detection is turned on:

${CALIBRATION_PATH}/build/applications/camera_calibration/camera_calibration \
    --pattern_files ${CALIBRATION_PATH}/applications/camera_calibration/patterns/pattern_resolution_17x24_segments_16_apriltag_0.yaml \
    --image_directories ${DATASET}/images \
    --dataset_output_path ${DATASET}/features_${HALF_WINDOW_SIZE}px.bin \
    --refinement_window_half_extent ${HALF_WINDOW_SIZE} \
    --show_visualizations \
    --no_cuda_feature_detection

I tried HALF_WINDOW_SIZE values of [5, 10, 15... 35], with the same result. There's a lot of this:

14:50:25.615          calibration.cc:1210  INFO| camera_calib_images/images/000084.png: 0 features
14:50:25.903          calibration.cc:1210  INFO| camera_calib_images/images/000085.png: 0 features
14:50:26.151          calibration.cc:1210  INFO| camera_calib_images/images/000086.png: 0 features
14:50:26.400          calibration.cc:1210  INFO| camera_calib_images/images/000087.png: 0 features
14:50:26.642          calibration.cc:1210  INFO| camera_calib_images/images/000088.png: 0 features
14:50:26.875 feature_detector_tagged:729   INFO| Timing
------
DetectFeatures()                  90    000016.8805 (00.187562 +- 00.020580)    [00.125142,00.261750]
PredictAndDetectFeatures()        90    000012.9827 (00.144252 +- 00.018448)    [00.086499,00.189654]
RefineFeatureDetections()         90    000012.9821 (00.144246 +- 00.018448)    [00.086494,00.189649]
AprilTag detection                90    000001.8834 (00.020926 +- 00.002415)    [00.015397,00.026967]

14:50:26.875          calibration.cc:1210  INFO| camera_calib_images/images/000089.png: 0 features
14:50:27.112          calibration.cc:1210  INFO| camera_calib_images/images/000090.png: 0 features
14:50:27.363          calibration.cc:1210  INFO| camera_calib_images/images/000091.png: 0 features
14:50:27.599          calibration.cc:1210  INFO| camera_calib_images/images/000092.png: 0 features
14:50:27.820          calibration.cc:1210  INFO| camera_calib_images/images/000093.png: 0 features

The images seem reasonable to me and similar to #1. Could blurriness be an issue? I'm holding the calibration board by hand, perhaps there could be a slight jitter there that would have an effect? The pictures look reasonably sharp by eye.

000021

000118

Calibrating depth to RGB in RealSense 415

Hi, are there any special considerations for calibrating the extrinsics between the depth output and RGB camera of a RealSense 415 (for aligning depth to RGB)? Also, is there any reason I shouldn’t expect the code to work for the 415 model? Thanks!

How to combine with parametric model

Hello, through issue # 19 and # 22, I learned that distortion can be removed through the general model or applied to the colmap parameter model in combination with BA.

I also want to know how to combine the calibration result of OpenCV calibration function? For example, how to apply it to robot hand-eye calibration.

something wrong with step # Feature extraction #

hi ! @puzzlepaint . your work is very great!
i have a problem that i put follow command into terminal to # Feature extraction #

export CALIBRATION_PATH=/home/ubuntu/Documents/yjw2/camera_calibration-master
export DATASET=/home/ubuntu/Documents/yjw2/camera_calibration-master/17x24_16_1
export HALF_WINDOW_SIZE=15
${CALIBRATION_PATH}/build/applications/camera_calibration/camera_calibration
--pattern_files ${CALIBRATION_PATH}/applications/camera_calibration/patterns/pattern_resolution_17x24_segments_16_apriltag_1.yaml
--image_directories ${DATASET}/images
--dataset_output_path ${DATASET}/features_${HALF_WINDOW_SIZE}px.bin
--refinement_window_half_extent ${HALF_WINDOW_SIZE}
--show_visualizations

but the terminal did not excuting the order .
the terminal show like this

Screenshot from 2020-08-19 21-09-51
It says "bash: /home/ubuntu/Documents/yjw2/camera_calibration-master/build/applications/camera_calibration/camera_calibration: No such file or directory"
I looked the path" /home/ubuntu/Documents/yjw2/camera_calibration-master/build/applications/camera_calibration" it did not have "camera_calibration"
Screenshot from 2020-08-19 21-14-15

so ,i don't know why the path did not have "camera_calibration" file, is that i have missed some step? Or i do something wrong about it?

now i have done the step of # Building #and# Obtaining a calibration pattern # as you said in readme.
thanks a lot! I have stuck on it weeks ,please help me!

CMake does not find the CUDA SDK

hi ! when I build it ,I meet some error.

`ubuntu@ubun:~/camera_calibration2/camera_calibration-master/build$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CUDA_FLAGS="-arch=sm_61" ..
-- The C compiler identification is GNU 10.1.0
-- The CXX compiler identification is GNU 10.1.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for a CUDA compiler
-- Looking for a CUDA compiler - NOTFOUND
CMake Error at CMakeLists.txt:60 (message):
CMake does not find the CUDA SDK, which is required to build this
application (even in case CUDA itself will not or cannot be used).

-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/camera_calibration2/camera_calibration-master/build/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/camera_calibration2/camera_calibration-master/build/CMakeFiles/CMakeError.log".
`

my CUDA version is:
ubuntu@ubun:~$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243

Why CMake does not find the CUDA SDK? Is that something should i install ? Or I should set the ccbin path?
I have try to solve it ,but still did not fix it.
do you know what should I do to solve it?
Really hope for you answer !

Having trouble with running calibration script

Hello, I am able to successfully run the feature detection for 2 cameras I have

(lab42) root@gpu2:/nfs1/mostafa/camera_calibration/build# ./applications/camera_calibration/camera_calibration     --pattern_files /nfs1/mostafa/custom_pattern.yaml     --image_directories /nfs1/mostafa/cali$
ration_images/4103636377,/nfs1/mostafa/calibration_images/4103642089 --dataset_output_path /nfs1/mostafa/fea
tures_10px.bin --refinement_window_half_extent 10

time                            file:line     v|
23:27:47.735              loguru.cpp:587   INFO| arguments: ./applications/camera_calibration/camera_calibration --pattern_files /nfs1/mostafa/custom_pattern.yaml --image_directories /nfs1/mostafa/calibratio$
_images/4103636377,/nfs1/mostafa/calibration_images/4103642089 --dataset_output_path /nfs1/mostafa/features_10px.bin --refinement_window_half_extent 10
23:27:47.735              loguru.cpp:590   INFO| Current dir: /nfs1/mostafa/camera_calibration/build
23:27:47.735              loguru.cpp:592   INFO| stderr verbosity: 2
23:27:47.735              loguru.cpp:593   INFO| -----------------------------------
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
23:27:48.539          calibration.cc:1175  INFO| Found 15 images to extract features from.
23:27:48.786          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/0.png: 52 features
23:27:48.824          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/1.png: 52 features
23:27:48.868          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/10.png: 50 features
23:27:48.911          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/11.png: 52 features
23:27:48.954          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/12.png: 52 features
23:27:49.002          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/13.png: 52 features
23:27:49.052          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/14.png: 52 features
23:27:49.097          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/2.png: 50 features
23:27:49.138          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/3.png: 52 features
23:27:49.174 feature_detector_tagged:729   INFO| Timing
------
DetectFeatures()                      10        000000.4291     (00.042912 +- 00.060850)        [00.020548,00.216021]
AprilTag detection                    10        000000.1098     (00.010982 +- 00.001589)        [00.008832,00.013215]
PredictAndDetectFeatures()            10        000000.1045     (00.010452 +- 00.001626)        [00.008745,00.013060]
RefineFeatureDetections()             48        000000.0883     (00.001841 +- 00.000373)        [00.000539,00.002531]

23:27:49.174          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/4.png: 46 features
23:27:49.218          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/5.png: 52 features
23:27:49.257          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/6.png: 21 features
23:27:49.294          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/7.png: 51 features
23:27:49.340          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/8.png: 52 features
23:27:49.388          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103636377/9.png: 50 features
23:27:49.901          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/0.png: 51 features
23:27:50.199          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/1.png: 50 features
23:27:50.347          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/10.png: 52 features
23:27:50.625          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/11.png: 50 features
23:27:50.833 feature_detector_tagged:729   INFO| Timing
------
DetectFeatures()                      20        000000.6796     (00.033978 +- 00.042980)        [00.020548,00.216021]
AprilTag detection                    20        000000.2188     (00.010939 +- 00.002025)        [00.008742,00.015323]
PredictAndDetectFeatures()            20        000000.2096     (00.010478 +- 00.001681)        [00.008584,00.013676]
RefineFeatureDetections()             94        000000.1740     (00.001852 +- 00.000359)        [00.000539,00.002600]

23:27:50.833          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/12.png: 52 features
23:27:50.969          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/13.png: 52 features
23:27:51.172          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/14.png: 52 features
23:27:51.268          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/2.png: 43 features
23:27:51.498          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/3.png: 51 features
23:27:51.780          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/4.png: 49 features
23:27:51.918          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/5.png: 49 features
23:27:52.049          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/6.png: 39 features
23:27:52.207          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/7.png: 50 features
23:27:52.403          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/8.png: 51 features
23:27:52.808 feature_detector_tagged:729   INFO| Timing
------
DetectFeatures()                      30        000000.9500     (00.031666 +- 00.034993)        [00.020548,00.216021]
AprilTag detection                    30        000000.3433     (00.011443 +- 00.002303)        [00.008742,00.017321]
PredictAndDetectFeatures()            30        000000.3172     (00.010573 +- 00.001670)        [00.008584,00.013676]
RefineFeatureDetections()            143        000000.2658     (00.001859 +- 00.000379)        [00.000539,00.002633]

23:27:52.808          calibration.cc:1210  INFO| /nfs1/mostafa/calibration_images/4103642089/9.png: 52 features
23:27:52.843              loguru.cpp:467   INFO| atexit

however, when i actually try to run the calibration I get this issue,

lab42) root@gpu2:/nfs1/mostafa/camera_calibration/build# ./applications/camera_calibration/camera_calibration --dataset_files /nfs1/mostafa/features_10px.bin --output_directory /nfs1/mostafa/result_10px_central_opencv_50 --cell_length_in_pixels 50 --model central_generic --num_pyramid_levels 4
time                            file:line     v|
00:49:50.136              loguru.cpp:587   INFO| arguments: ./applications/camera_calibration/camera_calibration --dataset_files /nfs1/mostafa/features_10px.bin --output_directory /nfs1/mostafa/result_10px_central_opencv_50 --cell_length_in_pixels 50 --model central_generic --num_pyramid_levels 4
00:49:50.136              loguru.cpp:590   INFO| Current dir: /nfs1/mostafa/camera_calibration/build
00:49:50.136              loguru.cpp:592   INFO| stderr verbosity: 2
00:49:50.136              loguru.cpp:593   INFO| -----------------------------------
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
00:49:50.980          calibration.cc:1268  INFO| Dataset 0: /nfs1/mostafa/features_10px.bin
00:49:50.981       calibration_io.cc:244   INFO| Loaded dataset with 1479 feature observations.
00:49:50.981          calibration.cc:937   INFO| Calibrate() starting ...
00:49:50.981          calibration.cc:951   INFO| Estimating the dense initialization for camera 0 ...
00:49:54.875 dense_initialization.cc:1310  INFO| Final init_indices: 12, 7, 1
00:49:54.875 dense_initialization.cc:1311  INFO| best_num_point_triples: 3757
00:49:54.875 dense_initialization.cc:997   INFO| optical_center: -0.0761606   0.166054   -1.52539
00:49:54.875 dense_initialization.cc:998   INFO| init_known_geometry_index: 0
00:49:54.875 dense_initialization.cc:1002  INFO| Determining initial partial calibration from initial images ...
00:49:54.878 dense_initialization.cc:1040  INFO| Extending initial calibration by localizing the remaining images ...
double free or corruption (out)
Aborted

Do you have any idea what is going on or what I should do?

Difficult to extract featrues on L515 infrared camera, need help.

Hi,@puzzlepaint. Your great work works fine with D435i both infrared and RGB camera on multiple resolutions.
However, it seems very difficult to calibrate the L515 infrared camera cause it has very low resolution and low image quality.
It detects a few of features. It can see the april tag ,but can not detect the cross line features. Evan it detects a few of them, it seems only detect a few points in the center of image . Maybe it needs another kind of feature specified designed for infrared images. Another interesting thing , the infrared image has a blur dot in the cross line center. I dont know why.
Any advice will be helpful. Thanks
000000
000013
000054

Can computing depth images be done without a GPU?

Feature detection, for example, can be done without using the GPU using the --no_cuda_feature_detection flag. Can something similar be done for depth image computation? I didn't spot any relevant arguments in the help text.

Here's the error that depth computation is getting at the moment:

camera_calibration $ ${CALIBRATION_PATH}/build/applications/camera_calibration/camera_calibration     --stereo_depth_estimation     --state_directory ${CALIBRATION_RESULT}     --images ${STEREO_DATASET}/images0/${IMAGE}.png,${STEREO_DATASET}/images1/${IMAGE}.png     --output_directory ${STEREO_DATASET}/stereo_${IMAGE}
time                            file:line     v| 
18:49:59.607              loguru.cpp:587   INFO| arguments: /home/user/camera_calibration/build/applications/camera_calibration/camera_calibration --stereo_depth_estimation --state_directory /home/user/Desktop/camera_calib_images/result_15px_central_generic_20 --images /home/user/Desktop/camera_calib_images/images0/000718.png,/home/user/Desktop/camera_calib_images/images1/000718.png --output_directory /home/user/Desktop/camera_calib_images/stereo_000718
18:49:59.607              loguru.cpp:590   INFO| Current dir: /home/user/camera_calibration
18:49:59.607              loguru.cpp:592   INFO| stderr verbosity: 2
18:49:59.607              loguru.cpp:593   INFO| -----------------------------------
18:49:59.851       calibration_io.cc:696   INFO| Loaded type: CentralGenericModel
18:49:59.936       calibration_io.cc:696   INFO| Loaded type: CentralGenericModel
Stack trace:
7       0x7f679294541d clone + 109
6       0x7f678d0de6ba /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f678d0de6ba]
5       0x7f67931dfc80 /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb8c80) [0x7f67931dfc80]
4       0x7f67945d5f6e /home/user/camera_calibration/build/liblibvis.so(+0x86f6e) [0x7f67945d5f6e]
3       0x7f6794e08e3d vis::StereoDepthEstimation(std::string const&, std::vector<std::string> const&, std::string const&) + 7309
2       0x7f6792213c4d vis::PatchMatchStereoCUDA::ComputeDepthMap(vis::CUDAUnprojectionLookup2D const&, vis::Image<unsigned char> const&, Sophus::SE3<float, 0> const&, vis::PixelCornerProjector const&, vis::Image<unsigned char> const&, vis::Image<unsigned char> const&, Sophus::SE3<float, 0> const&, vis::Image<float>*, vis::Image<float>*) + 2845
1       0x7f6792227ac9 vis::InitPatchMatchCUDA(vis::StereoParametersSingle const&, int, float, float, float, vis::CUDABuffer_<curandStateXORWOW>*, float, vis::CUDABuffer_<float>*) + 4153
0       0x7f6794331d73 loguru::StreamLogger::~StreamLogger() + 163
18:50:00.328 patch_match_stereo_kern:102   FATL| Cuda Error: invalid device symbol
Aborted (core dumped)

The problem about image resize and image distortion correction

hi,
I have tried the camera generic model in my project, most of the scenes make sense! But I found that there are some scenes such as the image needs to be resized or distortion correction is need for line detection, I do not know very clearly how to use this camera generic model.
Is there some way to do these things? Thanks very much for your help !

Calibrate Camera Rig

Is it possible to calibrate with this app a camera platform (rig) with multiple cameras (ex 5 cameras)?
Thank you!

Support for CUDA 11

When trying to compile under Ubuntu 20.04 with CUDA 11.2 installed, the compiler fails with the following output:

/usr/local/cuda/targets/x86_64-linux/include/thrust/system/cuda/config.h:78:2: error: #error The version of CUB in your include path is not compatible with this release of Thrust. CUB is now included in the CUDA Toolkit, so you no longer need to use your own checkout of CUB. Define THRUST_IGNORE_CUB_VERSION_CHECK to ignore this.
78 | #error The version of CUB in your include path is not compatible with this release of Thrust. CUB is now included in the CUDA Toolkit, so you no longer need to use your own checkout of CUB. Define THRUST_IGNORE_CUB_VERSION_CHECK to ignore this.

This version mismatch is due to the fact that CUB(1.8.0) is included in the project as a third party library. However, starting from Version 11, CUDA already includes the correct version of CUB.

This problem can be solved by simply removing third_party/cub-1.8.0 from the target_include_directories for the target camera_calibration_baselib. To make it backward compatible a condition could be used e.g. ( if(CUDA_VERSION_MAJOR VERSION_LESS 11).

Furthermore, Thrust is complaining about the C++ standard:

usr/local/cuda/targets/x86_64-linux/include/thrust/detail/config/cpp_dialect.h:118:13: warning: Thrust requires C++14. Please pass -std=c++14 to your compiler. Define THRUST_IGNORE_DEPRECATED_CPP_DIALECT to suppress this message.
118 | THRUST_COMPILER_DEPRECATION(C++14, pass -std=c++14 to your compiler);

Perhaps it would be worth considering to bump the standard up to 14.

Cannot find lcublas

Hi,
I am having problem building the repo. I have updated my cmake to latest version(3.19.5) to avoid some warnings.

~/camera_calibration/build$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CUDA_FLAGS="-arch=sm_61" ..
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for a CUDA compiler
-- Looking for a CUDA compiler - /usr/local/cuda-10.2/bin/nvcc
-- The CUDA compiler identification is NVIDIA 10.2.89
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CUDA compiler: /usr/local/cuda-10.2/bin/nvcc - skipped
-- Detecting CUDA compile features
-- Detecting CUDA compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so   
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0") 
-- Found CUDA: /usr/local/cuda-10.2 (found version "10.2") 
-- Found Boost: /usr/include (found version "1.65.1") found components: serialization filesystem system 
CMake Deprecation Warning at libvis/third_party/gtest/CMakeLists.txt:43 (cmake_minimum_required):
 Compatibility with CMake < 2.8.12 will be removed from a future version of
 CMake.

 Update the VERSION argument <min> value or use a ...<max> suffix to tell
 CMake that the project does not need compatibility with older versions.


-- Found PythonInterp: /usr/bin/python (found version "2.7.17") 
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Performing Test HAVE_LD_VERSION_SCRIPT
-- Performing Test HAVE_LD_VERSION_SCRIPT - Success
-- Symbol prefix: 
-- Found GLEW: /usr/include (found version "2.0.0") 
CMake Deprecation Warning at applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeLists.txt:6 (cmake_minimum_required):
 Compatibility with CMake < 2.8.12 will be removed from a future version of
 CMake.

 Update the VERSION argument <min> value or use a ...<max> suffix to tell
 CMake that the project does not need compatibility with older versions.


CMake Deprecation Warning at applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeLists.txt:10 (cmake_policy):
 The OLD behavior for policy CMP0012 will be removed from a future version
 of CMake.

 The cmake-policies(7) manual explains that the OLD behaviors of all
 policies are deprecated and that a policy should be set to OLD only under
 specific short-term circumstances.  Projects should be ported to the NEW
 behavior and not rely on setting a policy to OLD.


CMake Deprecation Warning at applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeLists.txt:14 (cmake_policy):
 The OLD behavior for policy CMP0015 will be removed from a future version
 of CMake.

 The cmake-policies(7) manual explains that the OLD behaviors of all
 policies are deprecated and that a policy should be set to OLD only under
 specific short-term circumstances.  Projects should be ported to the NEW
 behavior and not rely on setting a policy to OLD.


-- Performing Test FLAG_WEXTRA
-- Performing Test FLAG_WEXTRA - Success
CMake Warning at applications/camera_calibration/CMakeLists.txt:23 (find_package):
 By not providing "Findrealsense2.cmake" in CMAKE_MODULE_PATH this project
 has asked CMake to find a package configuration file provided by
 "realsense2", but CMake did not find one.

 Could not find a package configuration file provided by "realsense2" with
 any of the following names:

   realsense2Config.cmake
   realsense2-config.cmake

 Add the installation prefix of "realsense2" to CMAKE_PREFIX_PATH or set
 "realsense2_DIR" to a directory containing one of the above files.  If
 "realsense2" provides a separate development package or SDK, be sure it has
 been installed.


-- SCSDK_ROOT has not been set. If you would like to use the Structure SDK support, please set this to the root path of the Structure SDK manually.
-- The following OPTIONAL packages have been found:

* CUDA
* PythonInterp

-- The following REQUIRED packages have been found:

* OpenGL
* Eigen3
* Boost
* Threads
* ZLIB
* GLEW
* Qt5Core
* Qt5Gui (required version >= 5.9.5)
* Qt5OpenGL
* Qt5Widgets
* Qt5 (required version >= 5.8)
* Qt5X11Extras
* opengv

-- The following OPTIONAL packages have not been found:

* realsense2
* Structure

-- Configuring done
-- Generating done
-- Build files have been written to: /home/pravin/camera_calibration/build

Make fails with linking error. Previously, I was using Cuda-10.1 but somehow the cublas were in separate folder Cuda-10.2. I created symbolic link but was still not finding cublasXt.h, so I removed all cuda and reinstalled only cuda-10.2.

~/camera_calibration/build$ make -j3 camera_calibration
Scanning dependencies of target yaml-cpp2_autogen
Scanning dependencies of target genfiles
Scanning dependencies of target loguru
[  1%] Automatic MOC for target yaml-cpp2
[  1%] Generating pnglibconf.c
[  2%] Building CXX object CMakeFiles/loguru.dir/libvis/third_party/loguru/loguru.cpp.o
[  2%] Generating pngprefix.h
[  4%] Generating scripts/pnglibconf.c
[  4%] Generating scripts/symbols.out
[  5%] Generating pnglibconf.out
[  5%] Built target yaml-cpp2_autogen
Scanning dependencies of target camera_calibration_apriltag_autogen
[  5%] Automatic MOC for target camera_calibration_apriltag
[  5%] Generating scripts/symbols.chk
[  5%] Generating pnglibconf.h
[  5%] Generating scripts/prefix.out
[  6%] Generating scripts/sym.out
[  8%] Generating scripts/vers.out
[  8%] Generating scripts/intprefix.out
[  8%] Built target camera_calibration_apriltag_autogen
Scanning dependencies of target yaml-cpp2
[  8%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/yaml-cpp2_autogen/mocs_compilation.cpp.o
[  8%] Generating libpng.sym
[  9%] Generating libpng.vers
[  9%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/binary.cpp.o
[  9%] Built target genfiles
[ 11%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/convert.cpp.o
[ 11%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/directives.cpp.o
Scanning dependencies of target camera_calibration_apriltag
[ 11%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/camera_calibration_apriltag_autogen/mocs_compilation.cpp.o
[ 12%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/apriltag.c.o
[ 13%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emit.cpp.o
[ 13%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitfromevents.cpp.o
[ 13%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/apriltag_pose.c.o
[ 13%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/apriltag_quad_thresh.c.o
[ 13%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitter.cpp.o
[ 15%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/g2d.c.o
[ 15%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/getopt.c.o
[ 16%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitterstate.cpp.o
[ 18%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/homography.c.o
[ 18%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/image_u8.c.o
[ 18%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/image_u8x3.c.o
[ 19%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/image_u8x4.c.o
[ 19%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/matd.c.o
[ 19%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/emitterutils.cpp.o
[ 19%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pam.c.o
[ 20%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pjpeg-idct.c.o
[ 20%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pjpeg.c.o
[ 20%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/pnm.c.o
[ 22%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/string_util.c.o
[ 22%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/svd22.c.o
[ 22%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/time_util.c.o
[ 23%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/unionfind.c.o
[ 23%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/workerpool.c.o
[ 25%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/zarray.c.o
[ 25%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/zhash.c.o
[ 25%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/common/zmaxheap.c.o
[ 26%] Building C object applications/camera_calibration/CMakeFiles/camera_calibration_apriltag.dir/third_party/apriltag/tag36h11.c.o
[ 26%] Linking CXX static library libcamera_calibration_apriltag.a
[ 26%] Built target camera_calibration_apriltag
[ 26%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/exceptions.cpp.o
[ 26%] Linking CXX shared library libloguru.so
[ 26%] Built target loguru
Scanning dependencies of target png
[ 27%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/png.c.o
[ 27%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngerror.c.o
[ 27%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngget.c.o
[ 29%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngmem.c.o
[ 29%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngpread.c.o
[ 30%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/exp.cpp.o
[ 30%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/memory.cpp.o
[ 31%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngread.c.o
[ 31%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngrio.c.o
[ 31%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngrtran.c.o
[ 31%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/node.cpp.o
[ 33%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/node_data.cpp.o
[ 34%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngrutil.c.o
[ 34%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/nodebuilder.cpp.o
[ 34%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngset.c.o
[ 34%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/nodeevents.cpp.o
[ 34%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngtrans.c.o
[ 36%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwio.c.o
[ 36%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwrite.c.o
[ 36%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwtran.c.o
[ 37%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/null.cpp.o
[ 37%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/ostream_wrapper.cpp.o
[ 38%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/pngwutil.c.o
[ 38%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/intel/intel_init.c.o
[ 38%] Building C object libvis/third_party/libpng/CMakeFiles/png.dir/intel/filter_sse2_intrinsics.c.o
[ 40%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/parse.cpp.o
[ 40%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/parser.cpp.o
[ 41%] Linking C shared library libpng16.so
[ 43%] Built target png
[ 43%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/regex_yaml.cpp.o
Scanning dependencies of target libvis_autogen
[ 43%] Automatic MOC for target libvis
[ 44%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scanner.cpp.o
[ 44%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scanscalar.cpp.o
[ 44%] Built target libvis_autogen
[ 44%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scantag.cpp.o
[ 44%] Automatic RCC for libvis/resources/resources.qrc
Scanning dependencies of target libvis
[ 44%] Building CXX object CMakeFiles/libvis.dir/libvis_autogen/mocs_compilation.cpp.o
[ 45%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/command_line_parser.cc.o
[ 47%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/scantoken.cpp.o
[ 47%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/glew.cc.o
[ 47%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/simplekey.cpp.o
[ 47%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image.cc.o
[ 48%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_display.cc.o
[ 48%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/singledocparser.cpp.o
[ 50%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/stream.cpp.o
[ 50%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/tag.cpp.o
[ 50%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/contrib/graphbuilder.cpp.o
[ 50%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_display_qt_widget.cc.o
[ 50%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_display_qt_window.cc.o
[ 51%] Building CXX object applications/camera_calibration/third_party/yaml-cpp-0.6.0/CMakeFiles/yaml-cpp2.dir/src/contrib/graphbuilderadapter.cpp.o
[ 51%] Linking CXX static library libyaml-cpp2.a
[ 51%] Built target yaml-cpp2
[ 52%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io.cc.o
[ 52%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io_libpng.cc.o
[ 54%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io_netpbm.cc.o
[ 54%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/image_io_qt.cc.o
[ 54%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/libvis.cc.o
[ 55%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl.cc.o
[ 55%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl_context.cc.o
[ 55%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl_context_glx.cc.o
[ 56%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/opengl_context_qt.cc.o
[ 56%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/patch_match_stereo.cc.o
[ 56%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/qt_thread.cc.o
[ 58%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_display.cc.o
[ 58%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_window.cc.o
[ 58%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_window_qt.cc.o
[ 59%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/render_window_qt_opengl.cc.o
[ 59%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/renderer.cc.o
[ 61%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/shader_program_opengl.cc.o
[ 61%] Building CXX object CMakeFiles/libvis.dir/libvis/src/libvis/timing.cc.o
[ 61%] Building CXX object CMakeFiles/libvis.dir/libvis_autogen/X5QHYVNTKQ/qrc_resources.cpp.o
[ 62%] Linking CXX shared library liblibvis.so
[ 62%] Built target libvis
Scanning dependencies of target libvis_external_io_autogen
Scanning dependencies of target libvis_cuda_autogen
[ 62%] Automatic MOC for target libvis_cuda
[ 63%] Automatic MOC for target libvis_external_io
[ 63%] Built target libvis_external_io_autogen
[ 63%] Built target libvis_cuda_autogen
Scanning dependencies of target libvis_external_io
Scanning dependencies of target libvis_cuda
[ 65%] Building CXX object CMakeFiles/libvis_external_io.dir/libvis_external_io_autogen/mocs_compilation.cpp.o
[ 65%] Building CXX object CMakeFiles/libvis_external_io.dir/libvis/src/libvis/external_io/colmap_model.cc.o
[ 66%] Building CXX object CMakeFiles/libvis_external_io.dir/libvis/src/libvis/external_io/meshlab_project.cc.o
[ 66%] Building CXX object CMakeFiles/libvis_cuda.dir/libvis_cuda_autogen/mocs_compilation.cpp.o
[ 68%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/cuda_buffer.cu.o
[ 68%] Building CXX object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo.cc.o
[ 68%] Building CXX object CMakeFiles/libvis_external_io.dir/libvis/third_party/tinyxml2/tinyxml2.cpp.o
/home/pravin/camera_calibration/libvis/third_party/tinyxml2/tinyxml2.cpp: In static member function ‘static void tinyxml2::XMLUtil::ConvertUTF32ToUTF8(long unsigned int, char*, int*)’:
/home/pravin/camera_calibration/libvis/third_party/tinyxml2/tinyxml2.cpp:411:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
             input >>= 6;
             ~~~~~~^~~~~
/home/pravin/camera_calibration/libvis/third_party/tinyxml2/tinyxml2.cpp:412:9: note: here
         case 3:
         ^~~~
/home/pravin/camera_calibration/libvis/third_party/tinyxml2/tinyxml2.cpp:415:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
             input >>= 6;
             ~~~~~~^~~~~
/home/pravin/camera_calibration/libvis/third_party/tinyxml2/tinyxml2.cpp:416:9: note: here
         case 2:
         ^~~~
/home/pravin/camera_calibration/libvis/third_party/tinyxml2/tinyxml2.cpp:419:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
             input >>= 6;
             ~~~~~~^~~~~
/home/pravin/camera_calibration/libvis/third_party/tinyxml2/tinyxml2.cpp:420:9: note: here
         case 1:
         ^~~~
[ 68%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo.cu.o
[ 68%] Linking CXX shared library liblibvis_external_io.so
[ 68%] Built target libvis_external_io
[ 69%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_kernel_consistency.cu.o
[ 69%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_kernel_init.cu.o
[ 69%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_kernel_mutation.cu.o
[ 70%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_kernel_optimize.cu.o
[ 70%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_kernel_outliers.cu.o
[ 72%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_kernel_propagation.cu.o
[ 72%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_kernel_refinement.cu.o
[ 72%] Building CUDA object CMakeFiles/libvis_cuda.dir/libvis/src/libvis/cuda/patch_match_stereo_samples.cu.o
[ 73%] Linking CUDA device code CMakeFiles/libvis_cuda.dir/cmake_device_link.o
[ 73%] Linking CXX shared library liblibvis_cuda.so
[ 73%] Built target libvis_cuda
Scanning dependencies of target camera_calibration_baselib_autogen
[ 75%] Automatic MOC for target camera_calibration_baselib
[ 75%] Built target camera_calibration_baselib_autogen
Scanning dependencies of target camera_calibration_baselib
[ 75%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/camera_calibration_baselib_autogen/mocs_compilation.cpp.o
[ 75%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/bundle_adjustment/ba_state.cc.o
[ 76%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/bundle_adjustment/cuda_joint_optimization.cc.o
[ 76%] Building CUDA object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/bundle_adjustment/cuda_joint_optimization.cu.o
[ 76%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/bundle_adjustment/joint_optimization.cc.o
[ 77%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/calibration_initialization/dense_initialization.cc.o
[ 77%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/feature_detection/cuda_refinement_by_matching.cc.o
[ 79%] Building CUDA object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/feature_detection/cuda_refinement_by_matching.cu.o
[ 79%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/feature_detection/cuda_refinement_by_symmetry.cc.o
[ 79%] Building CUDA object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/feature_detection/cuda_refinement_by_symmetry.cu.o
[ 80%] Building CUDA object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/feature_detection/cuda_util.cu.o
[ 80%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/feature_detection/feature_detector_tagged_pattern.cc.o
[ 80%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/image_input/image_input.cc.o
[ 81%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/image_input/image_input_realsense.cc.o
[ 81%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/image_input/image_input_structure.cc.o
[ 81%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/image_input/image_input_v4l2.cc.o
[ 83%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/io/calibration_io.cc.o
[ 83%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/models/central_generic.cc.o
[ 83%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/models/central_opencv.cc.o
[ 84%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/models/central_radial.cc.o
[ 84%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/models/central_thin_prism_fisheye.cc.o
[ 86%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/models/noncentral_generic.cc.o
[ 86%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/models/parametric.cc.o
[ 86%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/relative_pose_initialization/central_camera_3d_target.cc.o
[ 87%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/relative_pose_initialization/central_camera_planar_target.cc.o
[ 87%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/relative_pose_initialization/noncentral_camera_3d_target.cc.o
[ 87%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/relative_pose_initialization/noncentral_camera_planar_target.cc.o
[ 88%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/bundle_adjustment.cc.o
[ 88%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/compare_calibrations.cc.o
[ 88%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/compare_point_clouds.cc.o
[ 90%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/convert_dataset.cc.o
[ 90%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/create_legends.cc.o
[ 90%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/intersect_datasets.cc.o
[ 91%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/localization_accuracy_test.cc.o
[ 91%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/render_synthetic_dataset.cc.o
[ 93%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/stereo_depth_estimation.cc.o
[ 93%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/tools/visualize_calibration.cc.o
[ 93%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/ui/calibration_window.cc.o
[ 94%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/ui/live_image_consumer.cc.o
[ 94%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/ui/main_window.cc.o
[ 94%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/ui/pattern_display.cc.o
[ 95%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/ui/settings_window.cc.o
[ 95%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/calibration.cc.o
[ 95%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/calibration_report.cc.o
[ 97%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/dataset.cc.o
[ 97%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration_baselib.dir/src/camera_calibration/util.cc.o
[ 97%] Linking CXX shared library libcamera_calibration_baselib.so
[ 97%] Built target camera_calibration_baselib
Scanning dependencies of target camera_calibration_autogen
[ 98%] Automatic MOC for target camera_calibration
[ 98%] Built target camera_calibration_autogen
Scanning dependencies of target camera_calibration
[ 98%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration.dir/camera_calibration_autogen/mocs_compilation.cpp.o
[100%] Building CXX object applications/camera_calibration/CMakeFiles/camera_calibration.dir/src/camera_calibration/main.cc.o
[100%] Linking CXX executable camera_calibration
/usr/bin/ld: cannot find -lcublas
collect2: error: ld returned 1 exit status
applications/camera_calibration/CMakeFiles/camera_calibration.dir/build.make:135: recipe for target 'applications/camera_calibration/camera_calibration' failed
make[3]: *** [applications/camera_calibration/camera_calibration] Error 1
CMakeFiles/Makefile2:888: recipe for target 'applications/camera_calibration/CMakeFiles/camera_calibration.dir/all' failed
make[2]: *** [applications/camera_calibration/CMakeFiles/camera_calibration.dir/all] Error 2
CMakeFiles/Makefile2:895: recipe for target 'applications/camera_calibration/CMakeFiles/camera_calibration.dir/rule' failed
make[1]: *** [applications/camera_calibration/CMakeFiles/camera_calibration.dir/rule] Error 2
Makefile:493: recipe for target 'camera_calibration' failed
make: *** [camera_calibration] Error 2```

CMake does not find the CUDA SDK

hi ! when I build it ,I meet some error.

`ubuntu@ubun:~/camera_calibration2/camera_calibration-master/build$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CUDA_FLAGS="-arch=sm_61" ..
-- The C compiler identification is GNU 10.1.0
-- The CXX compiler identification is GNU 10.1.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for a CUDA compiler
-- Looking for a CUDA compiler - NOTFOUND
CMake Error at CMakeLists.txt:60 (message):
CMake does not find the CUDA SDK, which is required to build this
application (even in case CUDA itself will not or cannot be used).

-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/camera_calibration2/camera_calibration-master/build/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/camera_calibration2/camera_calibration-master/build/CMakeFiles/CMakeError.log".
`

my CUDA version is:
ubuntu@ubun:~$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243

Why CMake does not find the CUDA SDK? Is that something should i install ? Or I should set the ccbin path?
I have try to solve it ,but still did not fix it.
do you know what should I do to solve it?
Really hope for you answer !

Red cell on the report_cameraX_error_magnitudes.png

Hi @puzzlepaint ,

I try to calibrate a ultra-wide lens stereo camera.
The results of report_camera0_error_magnitudes.png and report_camera1_error_magnitudes.png have some red cells.
How large is the max error magnitude of these red cells?
And you have mention that "If there are red points forming some systematic pattern, something is probably wrong".
What is the probable reasons?
How to get more robust or more convincing calibration result?

I provide my calibration results, and maybe you can help me check what is going wrong.

(Unrelated) About freeage

Hello friend, How are you doing ?

Many users are interested to use Freeage. I posted a youtube video about it and people seem to love it.

It would be great if you restore it back and ignore whatever copyright none-sense they talk you out in that issue 24. They are obviously so mad that you managed to pull an easy to use app interface while they are violating game asset usage themselves.

I'm sure that as long as Freeage remains free of charge (not a paid service) It'll be like WK and AoE2Tools. I myself have a few hardcoded files into my project AoE2Tools. Same thing goes for WK.

Microsoft owns Github and still none of us got banned why? Because we are promoting their product and forcing people to buy aoe2. Did you know that MS sponsored many WK tournaments in the past casted by memb and T90??

Trust me! When it comes to marketing and as long as you're helping them grow the business. All you'll be getting is support. MS have had well qualified marketing workers and they are not stupid to shut down anyone of us because that'll just bad marketing.

Come on we are waiting for that project to be restored <3 Thank you

Have a nice day,

Undistorting the image

Hey, I followed what you mentioned in #22 .

  • First I unproject with pinhole parameters.
  • Then I project with the calibrated model.

Here are my results, it looks like it gets even more distorted.

Distorted

001

Undistorted

undistorted

Pinhole unprojection code

bool Unproject_pinhole(Eigen::Vector2d pix, Eigen::Vector3d* direction, Eigen::Matrix3d K_inv)
{
    Eigen::Vector3d pix_hmg;
    pix_hmg[0] = pix[0];
    pix_hmg[1] = pix[1];
    pix_hmg[2] = 1.0;
    
    *direction = K_inv*pix_hmg;

    return true;
}

Feature detection on fisheye lenses

At the moment it's really hard to detect features on fisheye lenses. I have tested with 187° and 220° lenses on different Allied Vision Alvium cameras with 2000x2000px resolution. Unfortunately the closer the test pattern comes to the edges of the cameras field of view the harder it gets to get a feature match. I have attached some of my calibration images with no features found.

b0575
b1399
b1603
b1703

Is there an appropriate way to get more feature matches or can I configure the application to be less restrictive while feature detection process?

Thanks in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.