aipipeline is a library for running ai pipelines and monitoring the performance of the pipelines, e.g. accuracy, precision, recall, F1 score. This may include object detection, clustering, classification, and vector search algorithms. It is designed to be used for a number of projects at MBARI that require advanced workflows to process large amounts of images or video.
See the MBARI AI documentation for more information on the tools and services used in the pipelines.
Example plots from the t-SNE, confusion matrix and accuracy analysis of examplar data.
Three tools are required to run the code in this repository:
Anaconda environment
This is a package manager for python. We recommend using the Miniconda version of Anaconda. Install on Mac OS X with the following command:
brew install miniconda
or on Ubuntu with the following command:
sudo apt install miniconda
This is a containerization tool that allows you to run code in a container.
just tool.
This is a handy tool for running scripts in the project. This is easier to use than make
and more clean than bash scripts. Try it out!
Install on Mac OS X with the following command:
port install just
or on Ubuntu with the following command:
sudo apt install just
Clone the repository and run the setup command.
git clone http://github.com/mbari-org/aipipeline.git
cd aipipeline
just setup
Sensitive information is stored in a .env file in the root directory of the project, so you need to create a .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
Recipes are available to run the pipelines. To see the available recipes, run the following command:
just list
Recipe | Description |
---|---|
just list |
List recipes |
just install |
Setup the environment |
just plot-tsne-vss] |
Generate a tsne plot of the VSS database |
just gen-acc-vss] |
Calculate the accuracy of the VSS database |
just update |
Update the environment. Run this command after checking out any code changes |
just reset-vss project='uav' |
Reset the VSS database, removing all data. Run befpre init-vss or when creating the database. Run with e.g. uav |
just init-vss project='uav' |
Initialize the VSS database for the UAV project |
just cluster-uav |
Cluster mission in aipipeline/projects/uav/data/missions2process.txt |
just detect-uav |
Detect mission in aipipeline/projects/uav/data/missions2process.txt |
just detect-uav-test |
Detect mission data in aipipeline/projects/uav/data/missions2process.txt |
just load-uav-images |
Load uav mission images in aipipeline/projects/uav/data/missions2process.txt |
--
- aidata -A tool to extract, transform, load and download operations on AI data.
- sdcat - Sliced Detection and Clustering Analysis Toolkit.
- deepsea-ai - A tool to train and run object detection and tracking on video at scale in the cloud (AWS).
- fastapi-yolov5 - A RESTful API for running YOLOv5 object detection models on images either locally or in the cloud (AWS).
- fastapi-vss - A RESTful API for vector similarity search using foundational models.
- fastapi-tator - A RESTful API server for bulk operations on Tator annotation database.
updated: 2024-08-26