Package: wildbook-ia
WBIA program for the storage and management of images and derived data for
use in computer vision algorithms. It aims to compute who an animal is, what
species an animal is, and where an animal is with the ultimate goal being to
ask important why biological questions.This project is the Machine Learning (ML) / computer vision component of the WildBook project: Seehttps://github.com/WildMeOrg/.  This project is an actively maintained fork of the popular IBEIS (Image Based Ecological Information System) software suite for wildlife conservation.  The original IBEIS project is maintained by Jon Crall (@Erotemic) athttps://github.com/Erotemic/ibeis.  The IBEIS toolkit originally was a wrapper around HotSpotter, which original binaries can be downloaded from:http://cs.rpi.edu/hotspotter/Currently the system is build around and SQLite database, a web GUI,
and matplotlib visualizations. Algorithms employed are: convolutional neural network
detection and localization and classification, hessian-affine keypoint detection, SIFT keypoint
description, LNBNN identification using approximate nearest neighbors.RequirementsPython 3.7+OpenCV 3.4.10Python dependencies listed in requirements.txtInstallation InstructionsPyPIThe WBIA software is now available onpypifor Linux systems. This means if you havePython installed. You can
simply run:pipinstallwildbook-iato install the software. Then the command to run the web server is:python-mwbia.dev--dbdirwbia-data/--webWe highly recommend using a Python virtual environment:https://docs.python-guide.org/dev/virtualenvs/#lower-level-virtualenvDocumentationThe documentation is built and available online atwildmeorg.github.io/wildbook-ia/. However, if you need to build a local copy of the source, the following instructions can be used.# checkout the source code
# install the project in development modepipinstall-e.# build the docsscripts/build-docs.shThen open the html file atdocs/build/html/index.html.DockerThe WBIA software is built and deployed as a Docker imagewildme/wbia.  You can download and run the pre-configured instance from the command line using:# Install Docker - https://docs.docker.com/engine/install/dockerpullwildme/wbia:latestdockercontainerrun-p<externalport>:5000--namewildbook-ia-v/path/to/local/database/:/data/docker/wildme/wbia:latestThis image is built using the multi-stage Dockerfiles indevops/.SourceTo be updated soon.This project depends on an array of other repositories for functionality.First Party Toolkits (Required)https://github.com/WildMeOrg/wbia-utoolhttps://github.com/WildMeOrg/wbia-vtoolFirst Party Dependencies for Third Party Libraries (Required)https://github.com/WildMeOrg/wbia-tpl-pyhesaffhttps://github.com/WildMeOrg/wbia-tpl-pyflannhttps://github.com/WildMeOrg/wbia-tpl-pydarknethttps://github.com/WildMeOrg/wbia-tpl-pyrfFirst Party Plug-ins (Optional)https://github.com/WildMeOrg/wbia-plugin-cnnhttps://github.com/WildMeOrg/wbia-plugin-flukematchhttps://github.com/WildMeOrg/wbia-plugin-deepsensehttps://github.com/WildMeOrg/wbia-plugin-finfindrhttps://github.com/WildMeOrg/wbia-plugin-curvrankhttps://github.com/WildMeOrg/wbia-tpl-curvrankhttps://github.com/WildMeOrg/wbia-plugin-kaggle7https://github.com/WildMeOrg/wbia-tpl-kaggle7https://github.com/WildMeOrg/wbia-plugin-2d-orientationhttps://github.com/WildMeOrg/wbia-tpl-2d-orientationhttps://github.com/WildMeOrg/wbia-plugin-lcahttps://github.com/WildMeOrg/wbia-tpl-lcaDeprecated Toolkits (Deprecated)
*https://github.com/WildMeOrg/wbia-deprecate-ubelthttps://github.com/WildMeOrg/wbia-deprecate-dtoolhttps://github.com/WildMeOrg/wbia-deprecate-guitoolhttps://github.com/WildMeOrg/wbia-deprecate-plottoolhttps://github.com/WildMeOrg/wbia-deprecate-detecttoolshttps://github.com/WildMeOrg/wbia-deprecate-plugin-humpbacktlhttps://github.com/WildMeOrg/wbia-deprecate-tpl-lightnethttps://github.com/WildMeOrg/wbia-deprecate-tpl-bramboxPlug-in Templates (Reference)https://github.com/WildMeOrg/wbia-plugin-templatehttps://github.com/WildMeOrg/wbia-plugin-id-exampleMiscellaneous (Reference)https://github.com/WildMeOrg/wbia-pypkg-buildhttps://github.com/WildMeOrg/wbia-project-websitehttps://github.com/WildMeOrg/wbia-aws-codedeployCitationIf you use this code or its models in your research, please cite:@inproceedings{crall2013hotspotter,
    title={Hotspotter — patterned species instance recognition},
    author={Crall, Jonathan P and Stewart, Charles V and Berger-Wolf, Tanya Y and Rubenstein, Daniel I and Sundaresan, Siva R},
    booktitle={2013 IEEE workshop on applications of computer vision (WACV)},
    pages={230--237},
    year={2013},
    organization={IEEE}
}

@inproceedings{parham2018animal,
    title={An animal detection pipeline for identification},
    author={Parham, Jason and Stewart, Charles and Crall, Jonathan and Rubenstein, Daniel and Holmberg, Jason and Berger-Wolf, Tanya},
    booktitle={2018 IEEE Winter Conference on Applications of Computer Vision (WACV)},
    pages={1075--1083},
    year={2018},
    organization={IEEE}
}

@inproceedings{berger2015ibeis,
    title={IBEIS: Image-based ecological information system: From pixels to science and conservation},
    author={Berger-Wolf, TY and Rubenstein, DI and Stewart, CV and Holmberg, J and Parham, J and Crall, J},
    booktitle={Bloomberg Data for Good Exchange Conference, New York, NY, USA},
    volume={2},
    year={2015}
}

@article{berger2017wildbook,
    title={Wildbook: Crowdsourcing, computer vision, and data science for conservation},
    author={Berger-Wolf, Tanya Y and Rubenstein, Daniel I and Stewart, Charles V and Holmberg, Jason A and Parham, Jason and Menon, Sreejith and Crall, Jonathan and Van Oast, Jon and Kiciman, Emre and Joppa, Lucas},
    journal={arXiv preprint arXiv:1710.08880},
    year={2017}
}DocumentationThe WBIA API Documentation can be found here:https://wildmeorg.github.io/wildbook-ia/Code Style and Development GuidelinesContributingIt’s recommended that you usepre-committo ensure linting procedures are run
on any commit you make. (See alsopre-commit.com)Referencepre-commit’s installation instructionsfor software installation on your OS/platform. After you have the software installed, runpre-commitinstallon the command line. Now every time you commit to this project’s code base the linter procedures will automatically run over the changed files.  To run pre-commit on files preemtively from the command line use:gitadd.pre-commitrun# orpre-commitrun--all-filesBrunetteOur code base has been formatted by Brunette, which is a fork and more configurable version of Black (https://black.readthedocs.io/en/stable/).Flake8Try to conform to PEP8.  You should set up your preferred editor to use flake8 as its Python linter, but pre-commit will ensure compliance before a git commit is completed.To run flake8 from the command line use:flake8This will use the flake8 configuration withinsetup.cfg,
which ignores several errors and stylistic considerations.
See thesetup.cfgfile for a full and accurate listing of stylistic codes to ignore.PyTestOur code uses Google-style documentation tests (doctests) that uses pytest and xdoctest to enable full support.  To run the tests from the command line use:pytestTo run doctests with+REQUIRES(–web-tests)do:pytest--web-tests