Skip to main content

cvsuite

cvsuite is a computer vision toolkit for reproducible, filesystem-to-filesystem dataset work, organized around one CLI:

cvsuite <branch> <src> [transform] <output>

Convert between annotation formats (YOLO, COCO, LabelMe, class folders, segmentation masks, VQA manifests). Auto-label raw images from a text prompt with foundation grounding models such as SAM 3 or Grounding DINO. Caption them or answer questions about them with vision-language models. Sort them into class folders with zero-shot classifiers. Read text off them with OCR. Generate and edit images with diffusion models. Then do the unglamorous half of the job: unzip and flatten a dump of files, drop exact and near-duplicates, fix orientation, normalize size and format, and draw a balanced sample for training.

cvsuite label ./dataset-yolo to-coco ./dataset-coco
cvsuite label ./images ground --provider gsam --prompt "fire, smoke" to-coco ./labeled
cvsuite vlm ./images caption --provider qwen to-json ./captions
cvsuite class ./images infer --provider clip --prompt "good,bad" to-class-dir ./sorted
cvsuite gen create --provider flux --prompt "a red fox in the snow" to-dst ./fox.png
cvsuite prep arrange ./dump ./clean --unzip --exact-dedup --rename-seq

More in the cookbook.

You point a branch at a source, optionally run a transform, and materialize a destination layout. There is deliberately no universal "convert anything to anything" command.

How it works

flowchart LR
    SRC["source<br/>yolo · coco · labelme<br/>images · shards · …"] --> TOOL

    TOOL{"pick a tool<br/>label · class · vlm · gen"} -->|ingest| DS["VisionDataset"]

    DS --> TF["one transform<br/>sample · ground · ocr<br/>infer · caption · vqa"]
    TF -->|"chain runs to stack"| DS

    DS -->|output command| DST["destination<br/>yolo · coco · class-dir<br/>json · shards · …"]

Whichever tool you pick, the spine is the same: the source is ingested into a shared VisionDataset, transforms mutate that dataset, and an output command materializes it. What differs per tool is the ingest heuristics, which transforms exist, and the export rules.

Each run applies at most one transform, so you stack them by chaining runs: the destination of one becomes the source of the next. FM-backed transforms (ground, ocr, infer, caption, vqa, and the gen actions) hand the dataset to an isolated provider subprocess that mutates records in place. cvsuite prep is the exception to all of this, since it works directly on folders and never builds a dataset.

Branches

Branch Purpose
cvsuite label annotated datasets: YOLO / COCO / LabelMe / image-only ingest, sample / ground / ocr / ops / filter transforms, export to any label format
cvsuite class class-directory datasets: infer with zero-shot classifiers, class-aware sample, export via to-class-dir
cvsuite vlm vision-language datasets: caption / ask / vqa / map-answers, export to flat JSON / shards / VQA-style
cvsuite gen text-to-image and image-edit generation, materialized via to-dst
cvsuite prep raw image folder cleanup: arrange / process / sample / orient, file-first
cvsuite common shared operations: FM cache paths, inspection, and purge

Install

pip install cv-suite

Or from source:

git clone https://github.com/ptonso/cv-suite
pip install -e ./cv-suite

The base install ships the CLI and the I/O layer. Foundation-model backends run in isolated per-model virtualenvs provisioned on first use. See docs/getting-started.md.

Documentation

  • docs/ contains the guides: the mental model, getting started, and a cookbook of common workflows.
  • specs/ is the technical source of truth: architecture, the dataset contract, per-branch behavior, business decisions, and the guardrails that must not break.

Names

  • PyPI distribution: cv-suite
  • import package and CLI: cvsuite

License

MIT. See LICENSE.

Metadata

Release files for cv-suite 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cv-suite 0.0.1
File Size Uploaded
cv_suite-0.0.1.tar.gz 385.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cv-suite 0.0.1
File Interpreter ABI Platform
cv_suite-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 918.9 kB

Release files / cv_suite-0.0.1.tar.gz

Download URL cv_suite-0.0.1.tar.gz
Size 385.1 kB
Tags Source
SHA-256 checksum
How to use checksums
19b1ca9055cb830e077c293b746445ad2ac239e79f23f91bf5efe7a6aa2939a6
BLAKE2b-256 checksum
How to use checksums
aa33bfb2ba5aa8ca5e113ca307ad784cbbb3bed3694c1381b5fad73cd0cea32b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / cv_suite-0.0.1-py3-none-any.whl

Download URL cv_suite-0.0.1-py3-none-any.whl
Size 533.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bcbea400edd354c9b16308edceb892b512eaa1e9a5510ee005da34251d99b7c5
BLAKE2b-256 checksum
How to use checksums
a3b35d7cc3d28dbead024f365dc18af996e9d7c42e394cd980dcbe90c81f5050
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page