All Projects → yxgeee → Openibl

yxgeee / Openibl

Licence: mit
[ECCV-2020 (spotlight)] Self-supervising Fine-grained Region Similarities for Large-scale Image Localization. 🌏 PyTorch open-source toolbox for image-based localization (place recognition).

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Openibl

Kapture
kapture is a file format as well as a set of tools for manipulating datasets, and in particular Visual Localization and Structure from Motion data.
Stars: ✭ 128 (+0%)
Mutual labels:  image-retrieval, localization
kapture-localization
Provide mapping and localization pipelines based on kapture format
Stars: ✭ 111 (-13.28%)
Mutual labels:  localization, image-retrieval
Online place recognition
Graph-based image sequences matching for the visual place recognition in changing environments.
Stars: ✭ 100 (-21.87%)
Mutual labels:  localization
Dl Vision Papers
深度学习和三维视觉相关的论文
Stars: ✭ 123 (-3.91%)
Mutual labels:  localization
Traduora
Ever® Traduora - Open-Source Translation Management Platform
Stars: ✭ 1,580 (+1134.38%)
Mutual labels:  localization
Dwm1001 Examples
Simple C examples for Decawave DWM1001 hardware
Stars: ✭ 101 (-21.09%)
Mutual labels:  localization
Hypertag
Knowledge Management for Humans using Machine Learning & Tags
Stars: ✭ 116 (-9.37%)
Mutual labels:  image-retrieval
Imageretrieval Tf
基于tensorflow & tf-servering & flask 的图像检索
Stars: ✭ 94 (-26.56%)
Mutual labels:  image-retrieval
Dom I18n
Provides a very basic HTML multilingual support using JavaScript
Stars: ✭ 125 (-2.34%)
Mutual labels:  localization
Django Translations
Django model translation for perfectionists with deadlines.
Stars: ✭ 109 (-14.84%)
Mutual labels:  localization
Ov2slam
OV²SLAM is a Fully Online and Versatile Visual SLAM for Real-Time Applications
Stars: ✭ 119 (-7.03%)
Mutual labels:  localization
Pseudo Localization
Dynamic pseudo-localization in the browser and nodejs
Stars: ✭ 109 (-14.84%)
Mutual labels:  localization
Rtabmap
RTAB-Map library and standalone application
Stars: ✭ 1,376 (+975%)
Mutual labels:  localization
Overlap localization
chen2020iros: Learning an Overlap-based Observation Model for 3D LiDAR Localization.
Stars: ✭ 120 (-6.25%)
Mutual labels:  localization
Localechanger
An Android library to programmatically set the Locale of an app and persist the configuration.
Stars: ✭ 100 (-21.87%)
Mutual labels:  localization
React I18nify
Simple i18n translation and localization components and helpers for React.
Stars: ✭ 123 (-3.91%)
Mutual labels:  localization
Delf enhanced
Wrapper of DELF Tensorflow Model
Stars: ✭ 98 (-23.44%)
Mutual labels:  image-retrieval
Phabricator zh hans
Phabricator zh-Hans Translation & Tools.
Stars: ✭ 113 (-11.72%)
Mutual labels:  localization
Door Slam
Distributed, Online, and Outlier Resilient SLAM for Robotic Teams
Stars: ✭ 107 (-16.41%)
Mutual labels:  localization
Roenglishre
An unofficial english translation project for Korea Ragnarok Online (kRO).
Stars: ✭ 121 (-5.47%)
Mutual labels:  localization

OpenIBL

Introduction

OpenIBL is an open-source PyTorch-based codebase for image-based localization, or in other words, place recognition. It supports multiple state-of-the-art methods, and also covers the official implementation for our ECCV-2020 spotlight paper SFRS. We support single/multi-node multi-gpu distributed training and testing, launched by slurm or pytorch.

Official implementation:

  • SFRS: Self-supervising Fine-grained Region Similarities for Large-scale Image Localization (ECCV'20 Spotlight) [paper] [Blog(Chinese)]

Unofficial implementation:

FAQ

Quick Start without Installation

Extract descriptor for a single image

import torch
from torchvision import transforms
from PIL import Image

# load the best model with PCA (trained by our SFRS)
model = torch.hub.load('yxgeee/OpenIBL', 'vgg16_netvlad', pretrained=True).eval()

# read image
img = Image.open('image.jpg').convert('RGB') # modify the image path according to your need
transformer = transforms.Compose([transforms.Resize((480, 640)), # (height, width)
                                  transforms.ToTensor(),
                                  transforms.Normalize(mean=[0.48501960784313836, 0.4579568627450961, 0.4076039215686255],
                                                       std=[0.00392156862745098, 0.00392156862745098, 0.00392156862745098])])
img = transformer(img)

# use GPU (optional)
model = model.cuda()
img = img.cuda()

# extract descriptor (4096-dim)
with torch.no_grad():
    des = model(img.unsqueeze(0))[0]
des = des.cpu().numpy()

Installation

Please refer to INSTALL.md for installation and dataset preparation.

Train & Test

To reproduce the results in papers, you could train and test the models following the instruction in REPRODUCTION.md.

Model Zoo

Please refer to MODEL_ZOO.md for trained models.

License

OpenIBL is released under the MIT license.

Citation

If you find this repo useful for your research, please consider citing the paper

@inproceedings{ge2020self,
    title={Self-supervising Fine-grained Region Similarities for Large-scale Image Localization},
    author={Yixiao Ge and Haibo Wang and Feng Zhu and Rui Zhao and Hongsheng Li},
    booktitle={European Conference on Computer Vision}
    year={2020},
}

Acknowledgements

The structure of this repo is inspired by open-reid, and part of the code is inspired by pytorch-NetVlad.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].