Skip to main content

Command line tool to do extract, transform, load and download operations on AI data for a number of projects at MBARI that require detection, clustering or classification workflows.

Project description

MBARI semantic-release License Python

mbari-aidata is a command line tool to do extract, transform, load and download operations on AI data for a number of projects at MBARI that require detection, clustering or classification workflows.

More documentation and examples are available at https://docs.mbari.org/internal/ai/data.

🚀 Features

  • 🧠 Object Detection/Clustering Integration: Loads detection/classification/clustering output from SDCAT formatted results.
  • Flexible Data Export: Downloads from Tator into machine learning formats like COCO, CIFAR, or PASCAL VOC.
  • Real-Time Uploads: Pushes localizations to Tator via Redis queues for real-time workflows.
  • Metadata Extraction: Parses images metadata such as GPS/time/date through a plugin-based system (extractors). *️Duplicate Detection & flexible media references: Supports duplicate media load checks with the --check-duplicates flag. References images or video accessible through a web server without needing to upload them.
  • Augmentation Support: Augment VOC datasets with Albumentations to boost your object detection model performance. See examples in the docs.

Requirements

  • Python 3.10 or higher
  • A Tator API token and (optional) Redis password for the .env file. Contact the MBARI AI team for access.
  • 🐳Docker for development and testing only, but it can also be used instead of a local Python installation.

📦 Installation

Install as a Python package:

pip install mbari-aidata

Create the .env file with the following contents in the root directory of the project:

TATOR_TOKEN=your_api_token
REDIS_PASSWORD=your_redis_password
ENVIRONMENT=testing or production

Create a configuration file in the root directory of the project:

touch config_cfe.yaml

Or, use the project specific configuration from our docs server at https://docs.mbari.org/internal/ai/projects/

This file will be used to configure the project data, such as mounts, plugins, and database connections.

aidata download --version Baseline --labels "Diatoms, Copepods" --config https://docs.mbari.org/internal/ai/projects/uav-901902/config_uav.yml

⚙️Example configuration file:

# config_cfe.yml
# Config file for CFE project production
mounts:
  - name: "image"
    path: "/mnt/CFElab"
    host: "https://mantis.shore.mbari.org"
    nginx_root: "/CFElab"

  - name: "video"
    path: "/mnt/CFElab"
    host: "https://mantis.shore.mbari.org"
    nginx_root: "/CFElab"


plugins:
  - name: "extractor"
    module: "mbari_aidata.plugins.extractors.tap_cfe_media"
    function: "extract_media"

redis:
  host: "doris.shore.mbari.org"
  port: 6382

vss:
  project: "902111-CFE"
  model: "google/vit-base-patch16-224"

tator:
  project: "902111-CFE"
  host: "https://mantis.shore.mbari.org"
  image:
    attributes:
      iso_datetime:
        type: datetime
      depth:
        type: float
  video:
    attributes:
      iso_start_datetime:
        type: datetime
  box:
    attributes:
      Label:
        type: string
      score:
        type: float
      cluster:
        type: string
      saliency:
        type: float
      area:
        type: int
      exemplar:
        type: bool

🐳 Docker usage

A docker version is also available at mbari/aidata:latest or mbari/aidata:latest:cuda-124. For example, to download data using the docker image:

docker run -it --rm -v $(pwd):/mnt mbari/aidata:latest aidata download --version Baseline --labels "Diatoms, Copepods" --config config_cfe.yml

Commands

  • aidata download --help - Download data, such as images, boxes, into various formats for machine learning e.g. COCO, CIFAR, or PASCAL VOC format. Augmentation supported for VOC exported data using Albumentations.
  • aidata load --help - Load data, such as images, boxes, or clusters into either a Postgres or REDIS database
  • aidata db --help - Commands related to database management
  • aidata transform --help - Commands related to transforming downloaded data
  • aidata -h - Print help message and exit.

Source code is available at github.com/mbari-org/aidata.

Development

See the Development Guide for more information on how to set up the development environment or the justfile

🗓️ Last updated: 2025-06-01

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

mbari_aidata-1.55.0.tar.gz (45.4 kB view details)

Uploaded Source

Built Distribution

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

mbari_aidata-1.55.0-py3-none-any.whl (63.1 kB view details)

Uploaded Python 3

File details

Details for the file mbari_aidata-1.55.0.tar.gz.

File metadata

  • Download URL: mbari_aidata-1.55.0.tar.gz
  • Upload date:
  • Size: 45.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.12 Linux/6.11.0-1014-azure

File hashes

Hashes for mbari_aidata-1.55.0.tar.gz
Algorithm Hash digest
SHA256 472e0c50faee419bc07d7f38aa76183ffa64b2a76385f2f33730689f516a9e67
MD5 17bf1ba63b4ee1f2a2d4e242523e04c5
BLAKE2b-256 a9486e57745af109d3cfece77375aac023a03d00e7a46e9600bf665c4cf3b35c

See more details on using hashes here.

File details

Details for the file mbari_aidata-1.55.0-py3-none-any.whl.

File metadata

  • Download URL: mbari_aidata-1.55.0-py3-none-any.whl
  • Upload date:
  • Size: 63.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.12 Linux/6.11.0-1014-azure

File hashes

Hashes for mbari_aidata-1.55.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b27602d89ca9d7f29383e8d8e6b0d3a5a5e3a193f41c27e893d4d607a7cecae8
MD5 35b5e66bbed135095c2ebc583fbe134b
BLAKE2b-256 4131b533915f7e5cc757792f9085474290a1f808edd3f416e952cd762658fbad

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