puzzlepaint / camera_calibration Goto Github PK
View Code? Open in Web Editor NEWAccurate geometric camera calibration with generic camera models
License: BSD 3-Clause "New" or "Revised" License
Accurate geometric camera calibration with generic camera models
License: BSD 3-Clause "New" or "Revised" License
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
Can you give me some advice?
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’
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?
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.
Hi,
What is the physical meaning of unit of translation parameter?
(tx,ty,tz in the camera_tr_rig.yaml)
Does it measure by the calibration pattern size? (eg: 13mm)
Could you help me answer this question?
Thanks
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?
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.
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 ?
What else could I try to run camera_calibration ?
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?
Would you please share your Tango test data? It would help a lot.
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:
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.
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?
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?
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.
Half window size - 10 (I couldn't get features on all images for 15)
Cell size - 20 (1620x1080)
Camera Model - Central_generic
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!
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
Second camera
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
Second one
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?
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)?
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?
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.
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.
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.
/// 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!
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 .
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 !
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
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?
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
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()
Could you give more explanations or examples , such as
CentralGenericCamera
, represents ideal camera with specific width(w), height(h), position of projected optical center (cx, cy), and specific focal length (fx, and fy)?calibration_min_x, calibration_max_x...
? Whether image areas out of these parameters cover range are out of calibration?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!
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!
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.
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!
hi:
I want to do some testing, but I don’t have a calibration board, so I want some existing data.
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.
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!
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.
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
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"
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!
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 !
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?
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
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)
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 !
Is it possible to calibrate with this app a camera platform (rig) with multiple cameras (ex 5 cameras)?
Thank you!
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.
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```
Hi @puzzlepaint, besides the dataset provided in #16, are there any plans to make available the datasets used in the paper, i.e. the ones corresponding to the cameras mentioned in Table 2 of the arXiv version? Thank you in advance!
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 !
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.
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,
Hey, I followed what you mentioned in #22 .
Here are my results, it looks like it gets even more distorted.
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;
}
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.
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!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.