GithubHelp home page GithubHelp logo

feixh / visma Goto Github PK

View Code? Open in Web Editor NEW
64.0 8.0 15.0 57.27 MB

Visual-Inertial-Semantic-MApping Dataset and tools

License: Other

C++ 88.11% CMake 4.03% Shell 0.73% Python 4.52% GLSL 2.60%
slam visual-inertial-odometry semantic mapping eccv object detection

visma's Introduction

VISMA dataset tools

VISMA stands for Visual Inertial Semantic MApping and contains both RGB videos and inertial measurements for developing object-level (semantic) mapping systems.

We gave a live demo of our system at CVPR 2016 followed by a CVPR 2017 paper, where objects are modeled as 3D bounding boxes with semantic labels attached.

In the follow-up ECCV 2018 paper, the system has been further improved to model fine-grained object shapes as polygon meshes.

If you find VISMA or this repo useful and use them in your work, please cite the following papers:

@inproceedings{feiS18,
    title = {Visual-Inertial Object Detection and Mapping},
    author = {Fei, X. and Soatto, S.},
    booktitle = {Proceedings of the European Conference on Computer Vision},
    year = {2018}
}

[paper]-[poster]-[video]

@inproceedings{dongFS17,
    author = {Dong, J., Fei, X., and Soatto, S.},
    title = {Visual Inertial Semantic Scene Representation for 3D Object Detection},
    booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
    year = {2017}
}

[paper]-[poster]-[video]

Data

Data is available in dropbox here.

Install

Dependencies

  • OpenCV: Image I/O and processing. Easy way is to install OpenCV via your favorite package manager.
  • Eigen: Linear algebra and matrix manipulation. Install via package manager or build from source.
  • Protobuf: Utilities for protocol buffer. Install via package manager.
  • abseil-cpp: Utilities from google. No need to build this manually, since the repo is add_subdirectory-ed into the main build script.
  • jsoncpp: I/O for json files. No need to build this manually, since the repo is add_subdirectory-ed into the main build script.

Once all the requirements are met, make a build directory, enter that directory and cmake .. followed by make.

To build the evaluation code, you need the following extra dependecies:

  • Open3D: For point cloud manipulation and visualization.
  • libigl: Mesh I/O and geometry processing. This is a header only library, clone the repo into thirdparty directory as libigl.

We provide a version of Open3D in thirdparty directory. First, go to thirdparty/Open3D and follow the instruction on http://www.open3d.org/docs/getting_started.html#ubuntu to build, i.e.:

util/scripts/install-deps-ubuntu.sh
mkdir build
cd build
cmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=../
make -j

Then, set build_evaluation to True in CMakeLists.txt and build.

Raw and preprocessed data

Raw data (RGB video and inertial measurements with time stamps) are stored in rosbags. You can run your favorite visual-inertial or visual SLAM to get camera poses.

In addition to the raw data, we also provide the following preprocessed data:

  • RGB images extracted from rosbags (XXX.png)
  • Associated camera pose at each time instant from our SLAM system (dataset)
  • Edge map (XXX.edge) and
  • Object bounding boxes (XXX.bbox)

Except the RGB images, all the other data are encoded according to protocols/vlslam.proto to avoid custom I/O. This being said, though the data loading example is written in C++, it will not be hard to parse data in other programming frameworks, say, python.

RGB-D (pseudo) ground truth

We ran ElasticFusion on RGB-D collected by a Kinect to get a (pseudo)ground truth reconstruction to which our semantic reconstruction is compared.

Folder RGBD contains all the data needed to evaluate semantic reconstruction for each sequence. For instance, clutter1 contains data to evaluate results on clutter sequence. clutter/test.klg.ply is the point cloud reconstruction of the scene from ElasticFusion. clutter/fragments contains the following items:

  • objects.json contains a complete list of objects in the scene. Each object is named as XXX_N.ply where XXX is the object name in the CAD database and N is the count of the object (there might be multiple identical objects in the scene).
  • For each object listed in objects.json, we have its point cloud segmented out from the RGB-D reconstruction. This is used to find the alignment between semantic reconstruction and RGB-D reconstruction in ICP as described in our paper.
  • alignment.json contains the ground truth object pose in the scene. The poses are found by orientation constrained ICP described in our paper.
  • augmented_scene.ply contains RGB-D point cloud with points sampled from the CAD models aligned to the scene. This is a point cloud file since RGB-D reconstruction is in the form of point cloud though the CAD models are provided as meshes.

Examples

Data loading (C++)

For example usage of data loader, see example/example_load.cpp and run example_load DATASET_DIRECTORY in the example sub-directory. The input RGB image, pre-computed edge map and object proposals, camera pose from SLAM will be loaded. To load the sparse reconstruction, 2D tracklets of feature points and other information from SLAM, see the protocol buffer file in protocols/vlslam.proto and modify the dataset loader accordingly.

Data loading (Python)

VISMA is designed for but not limited to developing visual-inertial semantic SLAM. In any case if one wants to use it for training deep neural networks, e.g., unsupervised depth prediction learned from monocular videos, we provide an example python script to load and process data.

First go to protocols and

protoc vlslam.proto --python_out=../scripts

which generates vlslam_pb2.py in scripts folder.

Go to project root directory and run the following

python scripts/example_load.py --dataroot YOUR_DIRECTORY_OF_PREPROCESSED_DATA

For more command line options, see the script.

TODO

  • Complete python script on loading bounding boxes, sparse features, etc.
  • Finalize example code on evaluation.

visma's People

Contributors

feixh avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

visma's Issues

Inertial data

Hi,

Thanks for sharing this! Since this is a VIO dataset, I am wondering whether we could obtain IMU data in python? Could you kindly provide an example?

Are depth map streams provided in the VISMA dataset?

Hello Dr. Xiaohan Fei, thanks for this great work.
I wonder if the depth map streams are provided in this dataset? I checked the given rosbags, and found no depth map topic inside them. Is it possible for you to add the raw depth streams to the dataset if they are still available? This would help a lot in my ongoing project and this line of research as well.
Thanks for your time!

compilation errors

Hi,

I plan to run your VISMA-tracker and trying to compile the VISMA dataset tools. I installed all the dependencies, and successfully cmake. But the following error is reported during make.

[ 11%] Linking CXX static library ../../../../../lib/libabsl_stack_consumption.a
CMakeFiles/core.dir/build.make:70: recipe for target 'CMakeFiles/core.dir/core/utils.cpp.o' failed
make[2]: *** [CMakeFiles/core.dir/core/utils.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 11%] Building CXX object thirdparty/abseil-cpp/absl/debugging/CMakeFiles/absl_stacktrace.dir/internal/vdso_support.cc.o
[ 11%] Built target absl_stack_consumption
[ 12%] Linking CXX static library ../../../../../lib/libabsl_stacktrace.a
[ 12%] Linking CXX static library ../../../../../lib/libabsl_int128.a
[ 12%] Built target absl_stacktrace
[ 12%] Built target absl_int128
[ 13%] Linking CXX static library ../../../../../lib/libabsl_container.a
[ 13%] Built target absl_container
CMakeFiles/Makefile2:169: recipe for target 'CMakeFiles/core.dir/all' failed
make[1]: *** [CMakeFiles/core.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

I also tried to directly run the install.sh, and got other errors.

[ 58%] Building CXX object thirdparty/abseil-cpp/absl/strings/CMakeFiles/absl_strings.dir/ascii.cc.o
[ 56%] Building CXX object thirdparty/abseil-cpp/absl/strings/CMakeFiles/absl_strings.dir/internal/memutil.cc.o
[ 57%] Building CXX object thirdparty/abseil-cpp/absl/strings/CMakeFiles/absl_strings.dir/match.cc.o
[ 57%] Built target absl_span
[ 58%] Linking CXX static library ../../../../../lib/libabsl_variant.a
[ 58%] Built target absl_variant
[ 59%] Linking CXX static library ../../../../../lib/libabsl_optional.a
[ 59%] Built target absl_optional
[ 60%] Linking CXX static library ../../../../../lib/libabsl_symbolize.a
[ 60%] Built target absl_symbolize
CMakeFiles/Makefile2:169: recipe for target 'CMakeFiles/core.dir/all' failed
make[1]: *** [CMakeFiles/core.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:206: recipe for target 'CMakeFiles/visma.dir/all' failed
make[1]: *** [CMakeFiles/visma.dir/all] Error 2
[ 61%] Linking CXX static library ../../../../../lib/libabsl_strings.a
[ 61%] Built target absl_strings
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Could you help me for this?

compilation errors

Hi,

I'm trying to compile the VISMA dataset tools. I installed all the dependencies. The cmake went well and this is the output:

-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.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
-- Found Eigen3: /usr/include/eigen3  
-- Found Glog: /usr/include  
-- Found glog    (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so)
-- 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 Protobuf: /usr/local/lib/libprotobuf.so;-lpthread (found version "3.6.1") 
-- Found Eigen at /usr/include/eigen3
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so   
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Checking for one of the modules 'glfw3'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nigno/Libraries/VISMA/build

When I try to compile this is the output:

[  1%] Running C++ protocol buffer compiler on /home/nigno/Libraries/VISMA/protocols/vlslam.proto
[libprotobuf WARNING google/protobuf/compiler/parser.cc:562] No syntax specified for the proto file: vlslam.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.)
Scanning dependencies of target visma
[  1%] Building CXX object CMakeFiles/visma.dir/src/dataloader.cpp.o
In file included from /home/nigno/Libraries/VISMA/core/alias.h:3:0,
                 from /home/nigno/Libraries/VISMA/core/utils.h:6,
                 from /home/nigno/Libraries/VISMA/src/dataloader.cpp:8:
/home/nigno/Libraries/VISMA/core/se3.h: In member function ‘feh::SE3Type<TT> feh::SE3Type<Type>::cast()’:
/home/nigno/Libraries/VISMA/core/se3.h:142:25: error: expected primary-expression before ‘(’ token
       return SE3Type<TT>(R_.cast<TT>(), T_.cast<TT>());
                         ^
/home/nigno/Libraries/VISMA/core/se3.h:142:36: error: expected primary-expression before ‘>’ token
       return SE3Type<TT>(R_.cast<TT>(), T_.cast<TT>());
                                    ^
/home/nigno/Libraries/VISMA/core/se3.h:142:38: error: expected primary-expression before ‘)’ token
       return SE3Type<TT>(R_.cast<TT>(), T_.cast<TT>());
                                      ^
/home/nigno/Libraries/VISMA/core/se3.h:142:51: error: expected primary-expression before ‘>’ token
       return SE3Type<TT>(R_.cast<TT>(), T_.cast<TT>());
                                                   ^
/home/nigno/Libraries/VISMA/core/se3.h:142:53: error: expected primary-expression before ‘)’ token
       return SE3Type<TT>(R_.cast<TT>(), T_.cast<TT>());
                                                     ^
In file included from /home/nigno/Libraries/VISMA/src/dataloader.cpp:8:0:
/home/nigno/Libraries/VISMA/core/utils.h: At global scope:
/home/nigno/Libraries/VISMA/core/utils.h:136:26: error: ‘knuth_b’ is not a member of ‘std’
     std::shared_ptr<std::knuth_b> p_engine = nullptr) {
                          ^~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:136:26: error: ‘knuth_b’ is not a member of ‘std’
/home/nigno/Libraries/VISMA/core/utils.h:136:33: error: template argument 1 is invalid
     std::shared_ptr<std::knuth_b> p_engine = nullptr) {
                                 ^
/home/nigno/Libraries/VISMA/core/utils.h: In function ‘Eigen::Matrix<float, N, M> feh::RandomMatrix(feh::ftype, feh::ftype, int)’:
/home/nigno/Libraries/VISMA/core/utils.h:140:10: error: ‘normal_distribution’ is not a member of ‘std’
     std::normal_distribution<ftype> dist(meanVal, stdVal);
          ^~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:140:10: note: suggested alternative: ‘uniform_int_distribution’
     std::normal_distribution<ftype> dist(meanVal, stdVal);
          ^~~~~~~~~~~~~~~~~~~
          uniform_int_distribution
/home/nigno/Libraries/VISMA/core/utils.h:140:35: error: expected primary-expression before ‘>’ token
     std::normal_distribution<ftype> dist(meanVal, stdVal);
                                   ^
/home/nigno/Libraries/VISMA/core/utils.h:140:37: error: there are no arguments to ‘dist’ that depend on a template parameter, so a declaration of ‘dist’ must be available [-fpermissive]
     std::normal_distribution<ftype> dist(meanVal, stdVal);
                                     ^~~~
/home/nigno/Libraries/VISMA/core/utils.h:140:37: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/nigno/Libraries/VISMA/core/utils.h:142:18: error: invalid operands of types ‘int’ and ‘std::nullptr_t’ to binary ‘operator==’
     if (p_engine == nullptr) {
         ~~~~~~~~~^~~~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:143:14: error: ‘default_random_engine’ is not a member of ‘std’
         std::default_random_engine engine;
              ^~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:143:14: note: suggested alternative: ‘default_delete’
         std::default_random_engine engine;
              ^~~~~~~~~~~~~~~~~~~~~
              default_delete
/home/nigno/Libraries/VISMA/core/utils.h:146:32: error: ‘engine’ was not declared in this scope
                 v(i, j) = dist(engine);
                                ^~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:146:32: note: suggested alternative: ‘p_engine’
                 v(i, j) = dist(engine);
                                ^~~~~~
                                p_engine
/home/nigno/Libraries/VISMA/core/utils.h:146:27: error: there are no arguments to ‘dist’ that depend on a template parameter, so a declaration of ‘dist’ must be available [-fpermissive]
                 v(i, j) = dist(engine);
                           ^~~~
/home/nigno/Libraries/VISMA/core/utils.h:151:33: error: invalid type argument of unary ‘*’ (have ‘int’)
                 v(i, j) = dist(*p_engine);
                                 ^~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:151:27: error: there are no arguments to ‘dist’ that depend on a template parameter, so a declaration of ‘dist’ must be available [-fpermissive]
                 v(i, j) = dist(*p_engine);
                           ^~~~
/home/nigno/Libraries/VISMA/core/utils.h: At global scope:
/home/nigno/Libraries/VISMA/core/utils.h:163:26: error: ‘knuth_b’ is not a member of ‘std’
     std::shared_ptr<std::knuth_b> p_engine = nullptr) {
                          ^~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:163:26: error: ‘knuth_b’ is not a member of ‘std’
/home/nigno/Libraries/VISMA/core/utils.h:163:33: error: template argument 1 is invalid
     std::shared_ptr<std::knuth_b> p_engine = nullptr) {
                                 ^
/home/nigno/Libraries/VISMA/core/utils.h: In function ‘Eigen::Matrix<float, N, 1> feh::RandomVector(feh::ftype, feh::ftype, int)’:
/home/nigno/Libraries/VISMA/core/utils.h:167:10: error: ‘normal_distribution’ is not a member of ‘std’
     std::normal_distribution<ftype> dist(meanVal, stdVal);
          ^~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:167:10: note: suggested alternative: ‘uniform_int_distribution’
     std::normal_distribution<ftype> dist(meanVal, stdVal);
          ^~~~~~~~~~~~~~~~~~~
          uniform_int_distribution
/home/nigno/Libraries/VISMA/core/utils.h:167:35: error: expected primary-expression before ‘>’ token
     std::normal_distribution<ftype> dist(meanVal, stdVal);
                                   ^
/home/nigno/Libraries/VISMA/core/utils.h:167:37: error: there are no arguments to ‘dist’ that depend on a template parameter, so a declaration of ‘dist’ must be available [-fpermissive]
     std::normal_distribution<ftype> dist(meanVal, stdVal);
                                     ^~~~
/home/nigno/Libraries/VISMA/core/utils.h:169:18: error: invalid operands of types ‘int’ and ‘std::nullptr_t’ to binary ‘operator==’
     if (p_engine == nullptr) {
         ~~~~~~~~~^~~~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:170:14: error: ‘default_random_engine’ is not a member of ‘std’
         std::default_random_engine engine;
              ^~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:170:14: note: suggested alternative: ‘default_delete’
         std::default_random_engine engine;
              ^~~~~~~~~~~~~~~~~~~~~
              default_delete
/home/nigno/Libraries/VISMA/core/utils.h:172:25: error: ‘engine’ was not declared in this scope
             v(i) = dist(engine);
                         ^~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:172:25: note: suggested alternative: ‘p_engine’
             v(i) = dist(engine);
                         ^~~~~~
                         p_engine
/home/nigno/Libraries/VISMA/core/utils.h:172:20: error: there are no arguments to ‘dist’ that depend on a template parameter, so a declaration of ‘dist’ must be available [-fpermissive]
             v(i) = dist(engine);
                    ^~~~
/home/nigno/Libraries/VISMA/core/utils.h:176:26: error: invalid type argument of unary ‘*’ (have ‘int’)
             v(i) = dist(*p_engine);
                          ^~~~~~~~
/home/nigno/Libraries/VISMA/core/utils.h:176:20: error: there are no arguments to ‘dist’ that depend on a template parameter, so a declaration of ‘dist’ must be available [-fpermissive]
             v(i) = dist(*p_engine);
                    ^~~~
/home/nigno/Libraries/VISMA/core/utils.h: In function ‘std::vector<std::array<unsigned char, 3> > feh::GenerateRandomColorMap()’:
/home/nigno/Libraries/VISMA/core/utils.h:244:27: error: ‘knuth_b’ is not a member of ‘std’
     auto generator = std::knuth_b(0);
                           ^~~~~~~
In file included from /home/nigno/Libraries/VISMA/include/dataloader.h:14:0,
                 from /home/nigno/Libraries/VISMA/src/dataloader.cpp:9:
/home/nigno/Libraries/VISMA/build/vlslam.pb.h: At global scope:
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:185:30: error: ‘google::protobuf::uint8* vlslam_pb::CameraInfo::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:325:30: error: ‘google::protobuf::uint8* vlslam_pb::Feature::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:514:30: error: ‘google::protobuf::uint8* vlslam_pb::Packet::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:667:30: error: ‘google::protobuf::uint8* vlslam_pb::Track::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:794:30: error: ‘google::protobuf::uint8* vlslam_pb::Dataset::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:957:30: error: ‘google::protobuf::uint8* vlslam_pb::EdgeMap::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/nigno/Libraries/VISMA/include/dataloader.h:14:0,
                 from /home/nigno/Libraries/VISMA/src/dataloader.cpp:9:
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:1115:30: error: ‘google::protobuf::uint8* vlslam_pb::BoundingBox::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:1344:30: error: ‘google::protobuf::uint8* vlslam_pb::BoundingBoxList::InternalSerializeWithCachedSizesToArray(bool, google::protobuf::uint8*) const’ marked ‘final’, but is not virtual
   ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h: In member function ‘void vlslam_pb::Feature::clear_id()’:
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:1511:9: error: ‘GOOGLE_LONGLONG’ was not declared in this scope
   id_ = GOOGLE_LONGLONG(0);
         ^~~~~~~~~~~~~~~
/home/nigno/Libraries/VISMA/build/vlslam.pb.h:1511:9: note: suggested alternative: ‘GOOGLE_LOG_INFO’
   id_ = GOOGLE_LONGLONG(0);
         ^~~~~~~~~~~~~~~
         GOOGLE_LOG_INFO
CMakeFiles/visma.dir/build.make:70: recipe for target 'CMakeFiles/visma.dir/src/dataloader.cpp.o' failed
make[2]: *** [CMakeFiles/visma.dir/src/dataloader.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/visma.dir/all' failed
make[1]: *** [CMakeFiles/visma.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Do you have any idea what is the problem?

I didn't change the CMakeList.txt, but in any case this is its content:

cmake_minimum_required(VERSION 3.5)
project(VISMA)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall -g -fopenmp -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -Wno-narrowing")
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin )
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib )

# MACROS eigen
add_definitions(-DEIGEN_INITIALIZE_MATRICES_BY_ZERO)
add_definitions(-DEIGEN_DEFAULT_TO_ROW_MAJOR)

# Eigen
find_package(Eigen3 REQUIRED)
# Google log
find_package(Glog REQUIRED)
# Protobuf
find_package(Protobuf REQUIRED)
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${PROJECT_SOURCE_DIR}/protocols/vlslam.proto)

add_subdirectory(thirdparty/abseil-cpp)

include_directories(
        ${CMAKE_CURRENT_BINARY_DIR}
        ${PROJECT_SOURCE_DIR}/core
        ${PROJECT_SOURCE_DIR}/render
        ${PROJECT_SOURCE_DIR}/include
        ${PROJECT_SOURCE_DIR}/thirdparty/libigl/include
        ${PROJECT_SOURCE_DIR}/thirdparty/jsoncpp/include
        ${PROJECT_SOURCE_DIR}/thirdparty/abseil-cpp

        ${EIGEN3_INCLUDE_DIR}
        ${PROTOBUF_INCLUDE_DIRS}
        ${GLOG_INCLUDE_DIRS}
)
message(STATUS "Found Eigen at ${EIGEN3_INCLUDE_DIR}")

link_directories(
        ${PROJECT_SOURCE_DIR}/lib
        ${PROJECT_SOURCE_DIR}/thirdparty/jsoncpp/lib
        /usr/local/lib
        /usr/lib
        /usr/x86_64-linux-gnu
)


link_libraries(
        protobuf
        glog
        jsoncpp

        opencv_highgui
        opencv_core
        opencv_imgproc
        opencv_video
        opencv_calib3d)

add_library(core SHARED
        core/utils.cpp
        ${PROTO_SRCS})

add_library(visma SHARED
        src/dataloader.cpp
        src/undistorter.cpp
        ${PROTO_SRCS})

link_libraries(core visma absl::str_format)

add_executable(example_load example/example_load.cpp)
# target_link_libraries(example_load visma core)

add_executable(example_dump example/example_dump.cpp)
# target_link_libraries(example_dump visma core)

add_executable(undistort_images example/undistort_images.cpp)
# target_link_libraries(undistort_images visma core)

add_executable(generate_depthmaps example/generate_depthmaps.cpp)
# target_link_libraries(generate_depthmaps visma core)

set(BUILD_CORE_TESTS False)
if (${build_core_tests})
  add_executable(test_rodrigues core/test/test_rodrigues.cpp)
  target_link_libraries(test_rodrigues gtest gtest_main)
  # add_executable(test_se3 core/test_se3.cpp)
endif(${build_core_tests})


set(BUILD_EVALUATION False)
if (${build_evaluation})
    include_directories(
            ${PROJECT_SOURCE_DIR}/thirdparty/Open3D/include/Open3D)
    link_directories(
            ${PROJECT_SOURCE_DIR}/thirdparty/Open3D/lib
    )
    add_library(visma_eval SHARED
            src/constrained_ICP.cpp
            src/evaluation.cpp
            src/visualization.cpp)
          target_link_libraries(visma_eval ${PROJECT_SOURCE_DIR}/thirdparty/jsoncpp/lib/libjsoncpp.so)

    add_executable(example_evaluate example/example_evaluate.cpp)
    target_link_libraries(example_evaluate visma_eval visma core Open3D)
endif(${build_evaluation})

set(build_tools True)
if (${build_tools})
  add_subdirectory(render)
endif(${build_tools})

Thank you,
Nino

how to get the dataset?

Hi,
I'm not sure if I should download all the data, then I can run the demo. Can I get more details about how to run the demo? Thank you!

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.