GithubHelp home page GithubHelp logo

fbow's People

Contributors

imwithye avatar jeffin07 avatar manhtoanbkhn avatar shinsumicco avatar tricehelix avatar valgur avatar ymd-stella avatar

Stargazers

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

Watchers

 avatar  avatar

fbow's Issues

OpenvSLAM crashses when no keypoints are available

Hi,

I was testing the robustness of OpenVSLAM and covered camera with tape to make it lose the track and then evaluate its relocalization capabilities.

When I did that, program crashed with error:

[2021-11-20 13:14:02.066] [W] frame 21443: cannot extract any keypoints
terminate called after throwing an instance of 'std::runtime_error'
  what():  Vocabulary::transform No input data

May be it needs to be wrapped into a confition so it does not crash but just continues its operation until it gets proper data to extract keypoints?

score of FBoW is always 1

Hi !
I've got problem with computing score via FBoW.
When I run FBoW on custom images (not sequence) I get BoW similiarity score between random two images = 1.
I tried to find out why, compiled FBoW with string

std::cout << "inter score = " << vi * wi << "\n";

in the https://github.com/OpenVSLAM-Community/FBoW/blob/master/src/fbow.cpp#L432

Then I saw:

inter score = 26.5767
inter score = 30.6879
inter score = 92.7026
inter score = 99.7655
inter score = 39.6566
inter score = 34.9797
inter score = 24.8903
inter score = 62.8143

It means that final similiarity score is above value of 100. But in the end of calculating score it's limited from above with value 1
https://github.com/OpenVSLAM-Community/FBoW/blob/master/src/fbow.cpp#L458-L459

Is it correct to limit score value with 1 ?

Benchmarks and comparisons

Related to #4.

Benchmarking quality and time performance:

  • DBoW2 vs. FBoW (In addition, other methods)
  • Sampling methods for feature points (Relationship between Tracking.max_num_keypoints and Quality)
    ref. Eric Nowak, Frédéric Jurie, and Bill Triggs, Sampling Strategies for Bag-of-Features Image Classification, ECCV 2006.

Is it possible to compile on AArch64 (Jetson Nano)?

Hi There,

I'm trying to compile on a Jetson Nano (arm64)

First, I got these errors:

cmake .. && make
c++: error: unrecognized command line option ‘-msse3’
c++: error: unrecognized command line option ‘-msse4.1’
c++: error: unrecognized command line option ‘-mavx’
full log
azazdeaz@jetson:/tmp/FBoW/build$ cmake ..
-- The CXX compiler identification is GNU 7.5.0
-- The C compiler identification is GNU 7.5.0
-- 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
-- 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
-- Found OpenCV: /usr (found version "4.1.1") 
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- 
-- ----------------------------------------
--   General configuration for fbow 0.0.1
-- ----------------------------------------
-- 
-- CMAKE_MODULE_PATH = /usr/local/lib/cmake/;/usr/lib/cmake;/usr/local/lib/cmake
-- CMAKE_INSTALL_PREFIX = /usr/local
-- CMAKE_BINARY_DIR = /tmp/FBoW/build
-- 
-- OpenCV_DIR = /usr/lib/aarch64-linux-gnu/cmake/opencv4
-- OpenCV_INCLUDE_DIRS = /usr/include/opencv4
-- OpenCV_LIBS = opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_gapi;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio
-- 
-- Processor: aarch64
-- Build type: Release
-- Build dynamic libs: ON
-- Build utils: OFF
-- Build tests: OFF
-- Use OpenMP: TRUE
-- 
-- C compiler: /usr/bin/cc
-- C++ compiler: /usr/bin/c++
-- 
-- C++ flags (Common): -Wall -ffunction-sections -std=c++11 -fopenmp
-- C++ flags (Release): -msse3 -msse4.1 -mavx -fomit-frame-pointer -O2 -DNDEBUG -D_NDEBUG -Wall -ffunction-sections -std=c++11 -fopenmp
-- C++ flags (Debug): -msse3 -msse4.1 -mavx -g3 -DDEBUG -D_DEBUG -Wall -ffunction-sections -std=c++11 -fopenmp
-- C++ flags (Relaese+Debug): -msse3 -msse4.1 -mavx -O2 -g3 -DDEBUG -D_DEBUG -Wall -ffunction-sections -std=c++11 -fopenmp
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/FBoW/build

azazdeaz@jetson:/tmp/FBoW/build$ make
Scanning dependencies of target fbow_lib
[ 33%] Building CXX object src/CMakeFiles/fbow_lib.dir/fbow.cpp.o
c++: error: unrecognized command line option ‘-msse3’
c++: error: unrecognized command line option ‘-msse4.1’
c++: error: unrecognized command line option ‘-mavx’
src/CMakeFiles/fbow_lib.dir/build.make:62: recipe for target 'src/CMakeFiles/fbow_lib.dir/fbow.cpp.o' failed
make[2]: *** [src/CMakeFiles/fbow_lib.dir/fbow.cpp.o] Error 1
CMakeFiles/Makefile2:117: recipe for target 'src/CMakeFiles/fbow_lib.dir/all' failed
make[1]: *** [src/CMakeFiles/fbow_lib.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

So I turned those options off:

cmake .. -DUSE_SSE3=OFF -DUSE_SSE4=OFF -DUSE_AVX=OFF && make
/tmp/FBoW/src/fbow.h:36:10: fatal error: immintrin.h: No such file or directory
 #include <immintrin.h>
          ^~~~~~~~~~~~~
full log
azazdeaz@jetson:/tmp/FBoW/build$ cmake .. -DUSE_SSE3=OFF -DUSE_SSE4=OFF -DUSE_AVX=OFF
-- The CXX compiler identification is GNU 7.5.0
-- The C compiler identification is GNU 7.5.0
-- 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
-- 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
-- Found OpenCV: /usr (found version "4.1.1") 
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- 
-- ----------------------------------------
--   General configuration for fbow 0.0.1
-- ----------------------------------------
-- 
-- CMAKE_MODULE_PATH = /usr/local/lib/cmake/;/usr/lib/cmake;/usr/local/lib/cmake
-- CMAKE_INSTALL_PREFIX = /usr/local
-- CMAKE_BINARY_DIR = /tmp/FBoW/build
-- 
-- OpenCV_DIR = /usr/lib/aarch64-linux-gnu/cmake/opencv4
-- OpenCV_INCLUDE_DIRS = /usr/include/opencv4
-- OpenCV_LIBS = opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_gapi;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio
-- 
-- Processor: aarch64
-- Build type: Release
-- Build dynamic libs: ON
-- Build utils: OFF
-- Build tests: OFF
-- Use OpenMP: TRUE
-- 
-- C compiler: /usr/bin/cc
-- C++ compiler: /usr/bin/c++
-- 
-- C++ flags (Common): -Wall -ffunction-sections -std=c++11 -fopenmp
-- C++ flags (Release): -fomit-frame-pointer -O2 -DNDEBUG -D_NDEBUG -Wall -ffunction-sections -std=c++11 -fopenmp
-- C++ flags (Debug): -g3 -DDEBUG -D_DEBUG -Wall -ffunction-sections -std=c++11 -fopenmp
-- C++ flags (Relaese+Debug): -O2 -g3 -DDEBUG -D_DEBUG -Wall -ffunction-sections -std=c++11 -fopenmp
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/FBoW/build

azazdeaz@jetson:/tmp/FBoW/build$ make
Scanning dependencies of target fbow_lib
[ 33%] Building CXX object src/CMakeFiles/fbow_lib.dir/fbow.cpp.o
In file included from /tmp/FBoW/src/fbow.cpp:27:0:
/tmp/FBoW/src/fbow.h:36:10: fatal error: immintrin.h: No such file or directory
#include <immintrin.h>
^~~~~~~~~~~~~
compilation terminated.
src/CMakeFiles/fbow_lib.dir/build.make:62: recipe for target 'src/CMakeFiles/fbow_lib.dir/fbow.cpp.o' failed
make[2]: *** [src/CMakeFiles/fbow_lib.dir/fbow.cpp.o] Error 1
CMakeFiles/Makefile2:117: recipe for target 'src/CMakeFiles/fbow_lib.dir/all' failed
make[1]: *** [src/CMakeFiles/fbow_lib.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

I tried a bunch of things that google threw at me, but they all led to more errors. So I think I'm going in the wrong direction.
If you have any suggestion, I'd really appreciate it! ❤️
Thanks!!

failed build on armv7l raspberry pi

hi!
cant build on armv7l.
tried this:

cd /path/to/working/dir
git clone https://github.com/stella-cv/FBoW.git
cd FBoW
nano CMakeLists.txt
	option(USE_AVX "Set on/off" OFF)
	option(USE_SSE3 "Set on/off" OFF)
	option(USE_SSE4 "Set on/off" OFF)
mkdir build && cd build
cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    ..
make -j4 && make install

but got error:

Scanning dependencies of target fbow
[ 33%] Building CXX object CMakeFiles/fbow.dir/src/fbow.cpp.o
In file included from /home/pi/FBoW/include/fbow/fbow.h:34,
                 from /home/pi/FBoW/src/fbow.cpp:27:
/home/pi/FBoW/include/fbow/vocabulary.h:40:10: fatal error: immintrin.h: No such file or directory
 #include <immintrin.h>
          ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/fbow.dir/build.make:63: CMakeFiles/fbow.dir/src/fbow.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:77: CMakeFiles/fbow.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

if comment out immintrin.h in file mentioned building crashes.

help a bit, please.

Feature Request: Format Conversion Utility

Hi,

It'd be helpful to have a tool in the utilities that can convert to and from FBoW and DBow2/3 file formats - including text, YAML, and binary formats for DBow2. This would help comparing different SLAM packages that utilise differing libraries for vocabulary management.

I see there's one piece of the implementation here alrerady.

Thanks

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.