Fast Image Retrieval (FIRe) is an open source image retrieval project

Overview

Fast Image Retrieval

Documentation Status

Documentation: https://fast-image-retrieval.readthedocs.io/en/latest/

Introduction

Fast Image Retrieval (FIRe) is an open source image retrieval project release by Center of Image and Signal Processing Lab (CISiP Lab), Universiti Malaya. This framework implements most of the major binary hashing methods, together with different popular backbone networks and public datasets.

Major features

  • One for All

    Herein, we unified (i) various binary hashing methods, (ii) different backbone, and (iii) multiple datasets under a single framework to ease the research and benchmarking in this domain. It supports popular binary hashing methods, e.g. HashNet, GreedyHash, DPN, OrthoHash, etc.

  • Modularity

    We break the framework into parts so that one can easily implement their own method by joining up the components.

License

This project is released under BSD 3-Clause License.

Changelog

Please refer to Changelog for more detail.

Implemented method/backbone/datasets

Backbone

  1. Alexnet
  2. VGG{16}
  3. ResNet{18,34,50,101,152}

Loss (Method)

Supervised

Method Config Template Loss Name
ADSH adsh.yaml adsh
BiHalf bihalf-supervised.yaml bihalf-supervised
Cross Entropy ce.yaml ce
CSQ csq.yaml csq
DBDH dbdh.yaml dbdh
DFH dfh.yaml dfh
DPN dpn.yaml dpn
DPSH dpsh.yaml dpsh
DTSH dtsh.yaml dtsh
GreedyHash greedyhash.yaml greedyhash
HashNet hashnet.yaml hashnet
JMLH jmlh.yaml jmlh
MIHash mihash.yaml mihash
OrthoCos(OrthoHash) orthocos.yaml orthocos
OrthoArc(OrthoHash) orthoarc.yaml orthoarc
SDH sdh.yaml sdh
SDH-C sdhc.yaml sdhc

Unsupervised

Method Config Template Loss Name
BiHalf bihalf.yaml bihalf
CIBHash cibhash.yaml cibhash
GreedyHash greedyhash-unsupervised.yaml greedyhash-unsupervised
SSDH ssdh.yaml ssdh
TBH tbh.yaml tbh

Shallow (Non-Deep learning methods)

Method Config Template Loss Name
ITQ itq.yaml itq
LsH lsh.yaml lsh
PCAHash pca.yaml pca
SH sh.yaml sh

Datasets

Dataset Name in framework
ImageNet100 imagenet
NUS-WIDE nuswide
MS-COCO coco
MIRFLICKR/Flickr25k mirflickr
Stanford Online Product sop
Cars dataset cars
CIFAR10 cifar10

Installation

Please head up to Get Started Docs for guides on setup conda environment and installation.

Tutorials

Please head up to Tutorials Docs for guidance.

Reference

If you find this framework useful in your research, please consider cite this project.

@inproceedings{dpn2020,
  title={Deep Polarized Network for Supervised Learning of Accurate Binary Hashing Codes.},
  author={Fan, Lixin and Ng, Kam Woh and Ju, Ce and Zhang, Tianyu and Chan, Chee Seng},
  booktitle={IJCAI},
  pages={825--831},
  year={2020}
}

@inproceedings{orthohash2021,
  title={One Loss for All: Deep Hashing with a Single Cosine Similarity based Learning Objective},
  author={Hoe, Jiun Tian and Ng, Kam Woh and Zhang, Tianyu and Chan, Chee Seng and Song, Yi-Zhe and Xiang, Tao},
  booktitle={Advances in Neural Information Processing Systems (NeurIPS)},
  year={2021}
}

Contributing

We welcome the contributions to improve this project. Please file your suggestions/issues by creating new issues or send us a pull request for your new changes/improvement/features/fixes.

Owner
CISiP Lab
Center of Image and Signal Processing (CISiP) Lab
CISiP Lab
An agnostic Canvas API for the browser-less and insane

Apollo An agnostic Canvas API for the browser-less and mildly insane. Project Apollo is a Pythonic re-imagining of HTML Canvas element implementati

1 Jan 13, 2022
This Web App lets you convert your Normal Image to a SKETCHED one within a minute

This Web App lets you convert your Normal Image to a SKETCHED one within a minute

Avinash M 25 Nov 10, 2022
Extracts dominating colors from an image and presents them as a palette.

ColorPalette A simple web app to extract dominant colors from an image. Demo Live View it live at : https://colorpalettedemo.herokuapp.com/ You can de

Mayank Nader 214 Dec 29, 2022
Glyphtracer is an app for converting images of letters to a font

Glyphtracer takes an image that contains pictures of several letters. It recognizes all them and lets the user tag each letter to a Unicode code point. It then converts the images to vector form and

Jussi Pakkanen 38 Dec 24, 2022
A GUI-based (PyQt5) tool used to design 2D linkage mechanism.

Pyslvs-UI A GUI-based (PyQt5) tool used to design 2D linkage mechanism. Planar Linkages Simulation Python-Solvespace: Kernel from Solvespace with Cyth

Yuan Chang 141 Dec 13, 2022
Transfers a image file(.png) to an Excel file(.xlsx)

Transfers a image file(.png) to an Excel file(.xlsx)

Junu Kwon 7 Feb 11, 2022
Console images in 48 colors, 216 colors and full rgb

console_images Console images in 48 colors, 216 colors and full rgb Full RGB 216 colors 48 colors If it does not work maybe you should change color_fu

Урядов Алексей 5 Oct 11, 2022
Black-white image converter - Black-white photo colorization

Black-white image converter - Black-white photo colorization

1 Jan 02, 2022
MaryJane is a simple MJPEG server written in Python.

MaryJane is a simple MJPEG server written in Python.

bootrino 152 Dec 13, 2022
A simple plugin to view APR images in napari

napari-apr-viewer A simple plugin to view APR images in napari This napari plugin was generated with Cookiecutter using @napari's cookiecutter-napari-

5 Jan 24, 2022
A proof-of-concept implementation of a parallel-decodable PNG format

mtpng A parallelized PNG encoder in Rust by Brion Vibber [email protected] Backgrou

Brion Vibber 193 Dec 16, 2022
EmbedToolV2 - 2.0 Version of DraKenCodeZ/ImageEmbedTool

EmbedToolV2 - 2.0 Version of DraKenCodeZ/ImageEmbedTool

DraKenCodeZ 1 Dec 07, 2021
👷 Build images with images

👷 Build images with images. About Tiler is a tool to create an image using all kinds of other smaller images (tiles). It is different from other mosa

5.5k Jan 03, 2023
This tool allows the user to convert a 16 by 16 image into a list with numbers representing an object/character.

Room Formatter This tool allows the user to convert a 16 by 16 image into a list with numbers representing an object/character. There is cur

Thomas Landstra 1 Nov 13, 2021
Nudity detection with Python

nude.py About Nudity detection with Python. Port of nude.js to Python. Installation from pip: $ pip install --upgrade nudepy from easy_install: $ eas

Hideo Hattori 881 Jan 06, 2023
imgAnalyser - Un script pour obtenir la liste des pixels d'une image correspondant à plusieurs couleurs

imgAnalyser - Un script pour obtenir la liste des pixels d'une image correspondant à plusieurs couleurs Ce script à pour but, à partir d'une image, de

Théo Migeat 1 Nov 15, 2021
Collection of SVG diagrams about how UTF-8 works

Diagrams Repository of diagrams made for articles on my blog. All diagrams are created using diagrams.net. UTF-8 Licenses Copyright 2022 Seth Michael

Seth Michael Larson 24 Aug 13, 2022
Generate different types of random avatars.

avatar-generator Generate different types of random avatars. Requirements Python3 pytorch=1.6 cv2=3.4 tqdm 1. Github-like avatars python generate_gi

Ming 11 Apr 02, 2022
Magic-Square - Creates a magic square by randomly generating a list until the list happens to be a magic square

Magic-Square Creates a magic square by randomly generating a list until the list happens to be a magic square. Done as simply as possible... Frequentl

Nick 2 Jan 01, 2022
Create a QR-code Generator app using only Python.

QR-code_Generator Create a QR-code Generator app using only Python. This apps generated a QR code for a single link. Libraryes used in this app -- py

Soham P Phasalkar 1 Oct 17, 2021