The nrtk
package is an open source toolkit for evaluating the natural robustness of computer vision
algorithms to various perturbations, including sensor-specific changes to camera focal length, aperture
diameter, etc. Functionality is provided through Strategy
and Adapter patterns to allow for modular integration
into systems and applications.
We have also created the nrtk-jatic
package to support AI T&E
use-cases and workflows, through interoperability with the maite
library and integration with other JATIC tools. Users seeking to use NRTK to
perturb MAITE-wrapped datasets or evaluate MAITE-wrapped models should
start with the nrtk-jatic
package.
The following steps assume the source tree has been acquired locally.
Install the current version via pip:
pip install nrtk
Alternatively, you can also use Poetry:
poetry install --sync --with dev-linting,dev-testing,dev-docs
See here for more installation documentation.
We provide a number of examples based on Jupyter notebooks in the
./examples/
directory to show usage of the nrtk
package in a number
of different contexts.
Contributions are welcome! See the CONTRIBUTING.md file for details.
Documentation snapshots for releases as well as the latest master are hosted on ReadTheDocs.
The sphinx-based documentation may also be built locally for the most up-to-date reference:
# Install dependencies
poetry install --sync --with dev-linting,dev-testing,dev-docs
# Navigate to the documentation root.
cd docs
# Build the docs.
poetry run make html
# Open in your favorite browser!
firefox _build/html/index.html
pre-commit hooks
pre-commit hooks are used to ensure that any code meets all linting and
formatting guidelines required. After installing, this will always run before
committing to ensure that any commits are following the standards, but you
can also manually run the check without committing. If you want to commit
despite there being errors, you can add --no-verify
to your commit command.
Installing pre-commit hooks:
# Ensure that all dependencies are installed
poetry install --sync --with dev-linting,dev-testing,dev-docs
# Initialize pre-commit for the repository
poetry run pre-commit install
# Run pre-commit check on all files
poetry run pre-commit run --all-files
- We follow the general guidelines outlined in the JATIC Design Principles.
- We use the Git Flow branching strategy.
- See docs/release_process.rst for detailed release information.
- See CONTRIBUTING.md for additional contributing information.
Principal Investigator: Brian Hu (Kitware) @brian.hu
Product Owner: Austin Whitesell (MITRE) @awhitesell
Scrum Master / Tech Lead: Brandon RichardWebster (Kitware) @b.richardwebster
Deputy Tech Lead: Emily Veenhuis (Kitware) @emily.veenhuis