Erotemic / ibeis

image based ecological information system
Apache License 2.0
47 stars 16 forks source link

How does it work? #64

Open mcsimenc opened 5 years ago

mcsimenc commented 5 years ago

Hi,

I am having trouble finding information about what IBEIS actually does. Is that information available anywhere? I have seen the color pictures and the extensive method list, looks very interesting, but nothing is said about what the modules are for.

Thanks, Matt

Erotemic commented 5 years ago

Good question, its not exactly clear. It was my first really big project, and it shows in the architecture, docs, and general layout. There are a lot of lessons learned in this repo, but I do believe that all the information to get it and its dependencies installed is in the super_setup.py file (perhaps much of it is outdated, but a clever developer could probably work with it).

IBEIS is software that I helped develop for animal identification during my PhD. It manages images and annotations on those image (which are usually around some sort of animal). It uses SIFT descriptor matching with KD-trees to find ranked lists of individuals and contains UIs to annotate them. It also contains work done by @bluemellophone, @hjweide, and @zmjjmz for object detection and other methods of animal identification.

It was first developed to be a standalone application, but a few years ago my advisor partnered with the the Wildme project and from then on this started to become more focused on image analysis and less focused on the user interaction needed to curate these computer vision algorithms. As such the Qt GUI in ibeis/gui began to become more and more of a developer debugging interface. This repo began to move towards a service based design where the Wildme/Wildbook software would send us a "query" image and we would run our ranking algorithms and return the top results.

I'm not planning on supporting this repo too much as code developed after 2016 unfortunately needed to be be moved to a private repo :(, however I can give you a quick rundown of the code structure:

Lets start with the top level sub-packages

As for the non-obvious top-level modules:

Hope this helps. Note that this was all from memory, so I may be off one a few things. Lots of the functions (but not all) do have docstrings / doctests though, so those are other places to look for help.

bluemellophone commented 5 years ago

Hello @mcsimenc!

We have been working behind the scenes (with the help of Microsoft) to update the IBEIS software and provide a consistent release schedule. This process includes 1) a new Docker image for easy deployment, 2) a better REST API with interfaces to review images, annotations, parts, and matches, and 3) better documentation and usage examples.

While this process is slow, we are making iterative progress towards a public release towards the end of the year. In the meantime, the software is being internally tested and used in our Wildbook platform for detection and identification on a wide range of species.

VLucet commented 1 year ago

@bluemellophone Just wondering if there are updates on that process. I am currently reviewing ML methods for CT data and I am curious about ibeis.

bluemellophone commented 1 year ago

@VLucet I recommend checking out Wild Me's WBIA project: https://docs.wildme.org/docs/developers/wbia/wbia_overview