VIAME/VIAME
Video and Image Analytics for Multiple Environments
VIAME – A DIY Computer‑Vision Toolkit
What it is – VIAME (Vision for Intelligent Analytic Media Extraction) is an open‑source computer‑vision framework that bundles a large collection of algorithms, pipelines, and user interfaces for building AI‑powered video and image analysis applications. It started in the marine‑science community for species analytics but has grown into a generic, extensible toolkit.
Core ideas
- Pipeline‑centric: C++/Python nodes are wired together in a multi‑threaded pipeline (built on Kitware’s KWIVER).
- Plug‑in architecture: algorithms (detectors, trackers, filters, measurement tools, etc.) are provided as plugins and can be mixed with custom code.
- Dual UI: a desktop GUI (VIVIA/DIVE) for annotation, training and visual inspection, plus a web‑based version for remote use.
- End‑to‑end workflow: from raw video → data annotation → model training → inference → evaluation → search/mosaicing.
Key capabilities
| Capability | What you can do |
|---|---|
| Object detection & tracking | Run pre‑trained detectors, train new models, and generate object tracks across video streams. |
| Data annotation | Interactive tools (desktop and web) for drawing bounding boxes, polygons, and stereo measurements. |
| Multi‑camera & stereo | Fuse feeds, measure real‑world size, and produce mosaics. |
| Image enhancement | Apply filters, de‑noising, and contrast improvements before analysis. |
| Rapid model generation & search | Build a model on a small labeled set and use it to query large video archives. |
| Evaluation & scoring | Compare detections/tracks against ground‑truth CSV/COCO/JSON formats. |
| Extensible pipelines | Combine any mix of C++ or Python processes; add new plugins via the plugins/ directory. |
How to get it
- Pre‑built binaries – Windows
.zipor Linux.tar.gzpackages (GPU‑enabled or CPU‑only) are linked in the README. - Docker – Pull
kitware/viame:gpu-algorithms-defaultfor a headless command‑line container; full web/desktop images are also provided. - Python package –
pip install viame(Python 3.10‑3.14). The package installs aviameCLI that wraps the core tools and can download add‑on models. - Build from source – Clone the repo, initialise submodules, and run CMake with optional flags (e.g.,
VIAME_ENABLE_PYTORCH,VIAME_ENABLE_CUDA). See the Quick Build section for the exact commands.
Typical command‑line workflow
# set up environment (for binary or source installs)
source /opt/noaa/viame/setup_viame.sh
# run a pipeline on a video
viame run my_pipeline.pipe video.mp4
# train a detector on a labelled dataset
viame train data/ train_detector.conf
# evaluate results
viame score detections.csv groundtruth.csv
# list and install extra models
viame add-ons
The same pipelines can be invoked from Python via the viame package or by importing the underlying KWIVER classes.
Installation highlights
- Requires ~8 GB disk space.
- GPU acceleration needs an NVIDIA GPU with ≥8 GB VRAM and drivers ≥570.65.
- Supported OS: Windows 7/8/10/11 (64‑bit), Linux (RHEL, CentOS, Ubuntu), and limited MacOS support for the web tools.
- Optional dependencies (OpenCV, VXL, PyTorch, CUDA, TensorRT, ONNX, TensorFlow, Darknet, MATLAB) are toggled with CMake flags.
Documentation & community
- Quick‑Start guide and full manual are hosted at https://viame.github.io/VIAME/.
- Example pipelines, tutorials, and plugin templates live under the
examples/andplugins/directories. - A public annotation archive and web annotator are available at https://viame.kitware.com/.
- The project is BSD‑3 licensed; citations and acknowledgements are listed in
docs/citations.mdanddocs/acknowledgements.md.
Who might use it
- Researchers needing a ready‑made toolbox for video analytics (e.g., wildlife monitoring, surveillance, industrial inspection).
- Developers building custom AI pipelines who want a C++/Python hybrid framework with GPU support.
- Teams that require both a GUI for labeling and a headless CLI for batch processing.
All the information above is taken directly from the repository’s README; no additional features have been inferred.
Related
- Project
- Project
- Dispatch
- Project
- Project