Skip to main content

A collection of commonly functions used by DroneBase ML Engineers

Project description

AI/ML Python Package: ml_dronebase_data_utils

This package contains commonly used data functions for the AI/ML Team at Zeitview (formerly: DroneBase).

This repo provides:

  • Custom Python Package: ml_dronebase_data_utils

Contributing Guidelines

Please see the CONTRIBUTING.md document for details on how to contribute to this repository through Pull-Requests.

Usage

import ml_dronebase_data_utils as data_utils
...

Object Detection Annotation Formatting

This package provides a Pascal VOC writer that renders *.xml annotation files for object detection tasks. It supports regular object detection and oriented object detection annotations with an additional <angle>some angle</angle> parameter.

from ml_dronebase_data_utils import PascalVOCWriter
writer = PascalVOCWriter()

for box in boxes:
    xmin, ymin, xmax, ymax, angle = box
    writer.addObject(
        name="some class name",
        xmin=xmin,
        ymin=ymin,
        xmax=xmax,
        ymax=ymax,
        angle=angle # Optional parameter
    )
writer.save(annotation_path)

This package also provide CLI interfaces for the same,

convert_geojson can be used to convert geojson to voc format. This also has the ability to process in batch.

usage: convert_geojson [-h] --ortho-path ORTHO_PATH --geojson GEOJSON 
                       --save-path SAVE_PATH 
                      [--class-attribute CLASS_ATTRIBUTE[CLASS_ATTRIBUTE ...]]
                      [--class-mapping CLASS_MAPPING]
                      [--skip-classes SKIP_CLASSES [SKIP_CLASSES ...]] 
                      [--rotated] [--batch] [--prefix PREFIX]

Convert geojson to voc format data

optional arguments:
  -h, --help            show this help message and exit
  --ortho-path ORTHO_PATH
                        The ortho path, can be local/s3
  --geojson GEOJSON     The geojson path
  --save-path SAVE_PATH
                        The save path
  --class-attribute CLASS_ATTRIBUTE [CLASS_ATTRIBUTE ...]
                        The class attribute to use from the geojson for class labels
  --class-mapping CLASS_MAPPING
                        A plain txt file containing class mappings
  --skip-classes SKIP_CLASSES [SKIP_CLASSES ...]
                        Classes to skip, specify multiple
  --rotated             Use rotated bounding box, defaults to false
  --batch               Process a batch of orthos
  --prefix PREFIX       The prefix to use when saving the annotation

Example,

convert_geojson --ortho-path s3://ml-solar-ortho-fault-detection/orthos/tiff/PA140004_Thermal.tif --geojson s3://ml-solar-ortho-fault-detection/orthos/geojson/PA140004_Thermal.geojson --save-path s3://ml-solar-ortho-fault-detection/orthos/annotations/PA140004_Thermal.xml --class-attribute id --skip-classes 0 4 5 6 7 8 9 10 --class-mapping mapping.txt

mapping.txt must contain mappings in the format 0 = Normal

visualize_converted_geojson can be used to visualize the generated annotations. This also has the ability to process in batch.

usage: visualize_converted_geojson [-h] --ortho-path ORTHO_PATH --anno-path
                                   ANNO_PATH --save-path SAVE_PATH
                                   [--draw-labels] [--batch]

Visualize converted geojson for quick visual inspection

optional arguments:
  -h, --help            show this help message and exit
  --ortho-path ORTHO_PATH, -o ORTHO_PATH
                        The ortho path, can be local/s3
  --anno-path ANNO_PATH, -a ANNO_PATH
                        The ortho path, can be local/s3
  --save-path SAVE_PATH, -s SAVE_PATH
                        The ortho path, can be local/s3
  --draw-labels, -d     Draw the class labels
  --batch, -b           Run in batched mode

Example,

visualize_converted_geojson -o s3://ml-solar-ortho-fault-detection/orthos/tiff/PA140004_Thermal.tif -a s3://ml-solar-ortho-fault-detection/orthos/annotations/PA140004_Thermal.xml -s s3://ml-solar-ortho-fault-detection/orthos/visual_validation/PA140004_Thermal_drawn.png -d

S3 Data Utils

This package also provides common AWS S3 data functions like downloading data, uploading data (data or trained models), train/test split, etc.

Installation from source

Clone and cd into the root directory of this repo, then run the following:

pip install -e .

Installation using pip

pip install ml-dronebase-data-utils

References

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

ml-dronebase-data-utils-0.4.0.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

ml_dronebase_data_utils-0.4.0-py2.py3-none-any.whl (25.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ml-dronebase-data-utils-0.4.0.tar.gz.

File metadata

File hashes

Hashes for ml-dronebase-data-utils-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c9e7598145aa20a3ef761eff32af6329a6ff26118fd681ab1c97a035a3105ae6
MD5 27f63266cc552cc48147803c790310af
BLAKE2b-256 0fd2dc1ba48f2dd156d65f7c943cedda4dc45218fbc7bf8432fef9c13544f985

See more details on using hashes here.

File details

Details for the file ml_dronebase_data_utils-0.4.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ml_dronebase_data_utils-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aa189fa5e6f3a3facaa0fd99cdeda2b10bd352ce5b87dbdafc868c2ed12e6ac2
MD5 6f1f8f1ad0e2bcef089b4fe3ace30989
BLAKE2b-256 16d1d5283f8b54350a760cada19ba0859467c72f5dd8e588f7afe2c99cdb32c7

See more details on using hashes here.

Supported by

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