Giter Site home page Giter Site logo

chaochao92 / efficient-descriptors Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iago-suarez/efficient-descriptors

0.0 0.0 0.0 44.8 MB

:rocket::rocket: Revisiting Binary Local Image Description for Resource Limited Devices

Home Page: https://iago-suarez.com/efficient-descriptors

C++ 6.85% C 93.05% CMake 0.10%

efficient-descriptors's Introduction

Graffter Banner

Revisiting Binary Local Image Description for Resource Limited Devices

This repository contains the source code of BAD (renamed as TEBLID after its inclusion in OpenCV contrib) and HashSIFT descriptors presented in "Revisiting Binary Local Image Description for Resource Limited Devices". When accuracy and efficiency are both important, the descriptors in this repository offer the perfect trade-off for real-time applications and resource limited devices like smartphones, robots or drones.

Graffter header image

Dependencies

The code depends on OpenCV 4.

To install OpenCV ... In Ubuntu 18.04 compile it from sources with the following instructions:
# Install dependencies (Ubuntu 18.04)
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# Download source code
git clone https://github.com/opencv/opencv.git --branch 4.5.2 --depth 1
# Create build directory
cd opencv && mkdir build && cd build
# Generate makefiles, compile and install
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j
sudo make install
  • NOTE: The code also compile with OpenCV 3, but without parallel for's. Thus, the description will be slower.

Compile and Run

We provide the pre-trained execution code of BAD and HashSIFT descriptors. The code contains two demos. The first one estimates the fundamental matrix between two images of the Machine Hall 05 from EuRoC MAV Dataset. The demo detects feature points using ORB detector (FAST + Harris score) and describes using BAD. We draw the RANSAC inliers with less than 3px of epipolar error. The code can be compiled with Cmake:

mkdir build && cd build
cmake .. && make
./stereo_demo [hashsift]

We also show a second demo that registers a pair of planar images.

./homography_demo [hashsift]

The result for the provided images should be several imshows and something like this in the standard output:

*************** Homography estimation demo ***************
Detected features: 1000
Matched features:   64
Inliers percentage:  6.4%

If ORB descriptor is used instead of BAD, only 2.4% of inliers are obtained.

References

If you use this code, you must cite our Robotics and Automation Letters paper:

@ARTICLE{9521740,
  author={Su\'arez, Iago and Buenaposada, Jos\'e M. and Baumela, Luis},
  journal={IEEE Robotics and Automation Letters}, 
  title={Revisiting Binary Local Image Description for Resource Limited Devices}, 
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/LRA.2021.3107024}}

Contact and Licence

We provide a free pre-trained version of the execution code. Full execution and training code can be obtained under license, if you are interested please contact us:

This software was developed by The Graffter S.L. in collaboration with the PCR lab of the Universidad Politécnica de Madrid.

efficient-descriptors's People

Contributors

iago-suarez avatar jmbuena avatar

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.