Skip to main content

This python package is meant to provide a high level interface to facilitate the evaluation of object detection and segmentation algorithms that operate on 3D volumetric data.

Project description

 UVal      Smiths Detection

UVal - Unified eValuation framework for 3D X-ray data

This python package is meant to provide a high level interface to facilitate the evaluation of object detection and segmentation algorithms that operate on 3D volumetric data.


  • There is a growing need for high performance detection algorithms using 3D data, and it is very important to be able to compare them. By far, there has not been a trivial solution for a straightforward comparison between different 3D detection algorithms.
  • This framework seeks a way to address the aforementioned problem by introducing a simple and standard layout of the popular HDF5 data format as input.
  • Each detection algorithm can export the results and groundtruth data according to the defined layout principles. Then, UVal can evaluate the performance and come up with common comparison metrics.

Installation (non-development)

If you are not developing and only using UVal, you can simply install it as a pypi package (requires Python 3.8 or higher); simply run:

pip install uval

If you would like to have UVal installation to be independant of a specific python environment, simply use pipx instead of pip.

To run the code you can type:

uval --config-file ${workspaceFolder}/output/example/config.yaml

For an example of the outputs see here and the report here.

For the details of each entry in the config file please see here.

Development setup

  • First, please clone the UVal's git repository by executing the following command:
    git clone https://gitlab.com/smithsdetection/uval.git

  • You will need a python >= 3.8 environment to develop Uval.
    We recommend using Anaconda due to its ease of use:

    curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
    bash Miniforge3-$(uname)-$(uname -m).sh
    

    For x86_64(amd64) use "Miniforge3-Linux-x86_64". For other operating systems see here.

  • Close and reopen your terminal session.

  • Setting up a conda virtual environment with poetry using the following commands:

    mamba env create -f environment.yml
    mamba activate UVALENV
    poetry install
    pre-commit install
    

    Alternatively, you can create your own conda environment from scratch. and follow with poetry and pre-commit installations.

Example code

  • A step-by-step walkthrough for reading and evaluating data with the UVal is available as a jupyter document:

  • Hint: Prior to running the demo jupyter notebook walkthrough, the following steps must be performed:

    • The ipykernel conda package must be installed
      conda install -c anaconda ipykernel
      
    • The uvalenv environment must be added as an ipykernel:
      python3 -m ipykernel install --user --name uvalenv --display-name "uvalenv Python38"
      
    • The uvalenv Python38 kernel, which includes all the required python packages must be selected in jupyter environment to run the code.

Documentations

Read the docs: https://uval.readthedocs.io/

Release History

  • 0.1.x
    • The first ready-to-use version of UVal releases publicly

Meta

Smiths Detection – @Twitteruval@smithsdetection.com

UVal is released under the GPL V3.0 license.

Contributing

  1. Fork it (https://gitlab.com/smithsdetection/uval/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new merge Request

Citing UVal

If you use UVal in your research or wish to refer to the results, please use the following BibTeX entry.

@misc{smithsdetection2022uval,
  author =       {Philipp Fischer, Geert Heilmann, Mohammad Razavi, Faraz Saeedan},
  title =        {UVal},
  howpublished = {\url{https://gitlab.com/smithsdetection/uval}},
  year =         {2022}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uval-0.2.2.tar.gz (77.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uval-0.2.2-py3-none-any.whl (99.5 kB view details)

Uploaded Python 3

File details

Details for the file uval-0.2.2.tar.gz.

File metadata

  • Download URL: uval-0.2.2.tar.gz
  • Upload date:
  • Size: 77.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.8.19 Linux/4.18.0-553.22.1.el8_10.x86_64

File hashes

Hashes for uval-0.2.2.tar.gz
Algorithm Hash digest
SHA256 c0cf635315830d57c1f0308098b9bcddf076e449c493472550459440ffc06383
MD5 be9b645dd1eee735f06e8cb8594564b5
BLAKE2b-256 e9c7dcd2385d05b79fc954461e02fcfb542d2ae7b419797545ec3f8cc9fbec58

See more details on using hashes here.

File details

Details for the file uval-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: uval-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 99.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.8.19 Linux/4.18.0-553.22.1.el8_10.x86_64

File hashes

Hashes for uval-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 48a1f143f7c0d30d2b6700d2b4048e8ed5ce3168c3e0ed1454ec6e27e2ba8c88
MD5 d4a0274085991e66049125521e9e0ddd
BLAKE2b-256 91fc54c124a56383493a8920474079359c41faff730bc04bb0ab3a96921326f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page