Metadata-Version: 2.3
Name: nrtk-explorer
Version: 0.5.0
Summary: Model Visualizer
Author-email: Alessandro Genova <alessandro.genova@kitware.com>, Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
License-File: LICENSE
Keywords: Application,Framework,Interactive,Python,Web
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: License :: Other/Proprietary License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: accelerate
Requires-Dist: nrtk[headless]>=0.12.0
Requires-Dist: numpy
Requires-Dist: pillow
Requires-Dist: pybsm>=0.6
Requires-Dist: scikit-learn==1.5.2
Requires-Dist: smqtk-image-io
Requires-Dist: tabulate
Requires-Dist: timm>=1.0.3
Requires-Dist: torch
Requires-Dist: torchvision
Requires-Dist: trame-quasar
Requires-Dist: trame>=3.7
Requires-Dist: transformers
Requires-Dist: umap-learn
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: flake8; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: tabulate; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Provides-Extra: kwcoco
Requires-Dist: kwcoco; extra == 'kwcoco'
Provides-Extra: package
Requires-Dist: build<1.3.0; extra == 'package'
Requires-Dist: python-semantic-release; extra == 'package'
Requires-Dist: setuptools; extra == 'package'
Requires-Dist: wheel; extra == 'package'
Provides-Extra: web
Requires-Dist: trame-vtk; extra == 'web'
Requires-Dist: trame-vuetify; extra == 'web'
Description-Content-Type: text/markdown

# NRTK EXPLORER

NRTK Explorer is a web application for exploring image datasets. It provides
insights of a image dataset in [COCO][3] format and it evaluate image
transformation and perturbation resilience of object recognition DL models. It
is built using [trame][1] by the [kitware][2] team.

![nrtk explorer screenshot](https://github.com/user-attachments/assets/85c95836-3490-40ec-813d-e6841c540d51)

## Features

- Explore image datasets in COCO format.
- Apply parametrized image degradation (such as blur) to the images.
- Benchmark dataset resilience with a differential PCA|UMAP analysis of the
  embeddings of the images and its transformation.
- Evaluate object detection DL models in both the source images and its
  transformations.
- When possible it will attempt to utilize the user GPU as much as possible to
  speedup its computations.

## Installing

Install it from pypi:

```bash
pip install nrtk-explorer
```

## Usage

```bash
# get some sample data
git clone https://github.com/vicentebolea/nrtk_explorer_datasets.git

# Run the application on given dataset
nrtk-explorer --dataset ./nrtk_explorer_datasets/OIRDS_v1_0/oirds.json
```

![nrtk explorer usage](https://github.com/user-attachments/assets/86a61485-471c-4b94-872e-943cb9da52a1)

Some COCO image datasets available at: https://github.com/vicentebolea/nrtk_explorer_datasets/

## CLI flags and options

- `-h|--help` show the help for the command line options, it inherit trame
  command line options and flags.
- `--dataset` specify the path to a json file describing a COCO
  image dataset. You can specify multiple COCO datasets using a comma `,` as a
  separator. Example usage: `nrtk_explorer --dataset /foo-dir/coco.json, ../bar-dir/baz.json`

## Contribute to NRTK_EXPLORER

```bash
git clone https://github.com/Kitware/nrtk-explorer.git
cd nrtk-explorer
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e '.[dev]'
pytest .
```

For more details on setting up a development environment see [DEVELOPMENT docs](docs/source/manual/DEVELOPMENT.rst).

[1]: https://trame.readthedocs.io/en/latest/
[2]: https://www.kitware.com/
[3]: https://cocodataset.org/

### Create release

1. Merge `main` to `release` with a _merge commit_.
2. Run "Create Release" workflow with workflow from `release` branch.
3. Merge `release` to `main` with a _merge commit_.
