Skip to main content

auspex-engine

Train your own auto-annotator from one labelled dataset — then let it label the rest.

Point it at a folder of images plus the annotations you already have (CVAT, COCO, YOLO, Pascal VOC or LabelMe). It trains a separate specialist model for each annotation type present, bundles them into a single portable file, and labels unseen images back into re-importable CVAT XML and COCO JSON.

No assumptions about your domain, your label names, or where you run it.

pip install auspex-engine

Quick start

from auspex_engine import Auspex

# TRAIN — format is auto-detected; only the annotation types present get trained
Auspex().train(dataset="ann.xml", images="imgs/", output="runs/exp1", epochs=50)
#   -> writes one file: runs/exp1/auspex_model.pt

# LABEL new images with it
results = Auspex("runs/exp1/auspex_model.pt").predict("test/")   # path | folder | ndarray
results.save("out/")        # annotated images + predictions_cvat.xml + predictions_coco.json
results.detections          # [{type, label, score, box|points|x,y}, ...]
results.plot()              # annotated image as a numpy BGR array

Or from the command line:

auspex train   --dataset ann.xml --images imgs/ --output runs/exp1 --epochs 50
auspex predict --model runs/exp1/auspex_model.pt --source test/ --output out/

Useful flags: --tasks bbox,tag (train a subset) · --device cpu · --imgsz 1024 · --batch 8 · --set KEY=VALUE (override any config knob).


What it learns

auspex works with five annotation types and trains a dedicated model for each one it finds in your data — anywhere from one to all five in a single run. You never pay for types you don't use.

Type What it marks
Bounding box A rectangle around each object
Polygon A free-form closed outline around a shape or region
Keypoint A single point / landmark
Polyline An open multi-point line or path
Tag A whole-image label, with no location

Datasets it reads

The format is auto-detected. A format that can't express a given type simply contributes none of it, and that model is skipped.

Format Point it at bbox polygon polyline keypoint tag
CVAT for Images 1.1 the exported .xml ✓ ✓ ✓ ✓ ✓
COCO the .json ✓ ✓ ✓ ✓ ✓
YOLO data.yaml or the dataset folder ✓ ✓ — — —
Pascal VOC the folder of per-image .xml files ✓ — — — —
LabelMe the folder of per-image .json files ✓ ✓ ✓ ✓ ✓

Anything auspex can't use — COCO RLE masks, degenerate geometry, YOLO pose lines, LabelMe circles — is skipped with a counted warning rather than silently dropped.

Outputs

runs/exp1/
  auspex_model.pt          ← every trained model, in one portable file
  training_summary.json    per-task metrics, which heads trained, partial-run flag
  master_train_log.txt
  <per-task folders with individual checkpoints and CSV training logs>

Prediction writes annotated images plus predictions_cvat.xml and predictions_coco.json — the CVAT file imports straight back into a CVAT task, so a human can correct the machine's work and you can retrain on the result.

Continue training from a previous model

When people have corrected the auto-labels, retrain from the model you already have instead of from scratch — it keeps what it learned and needs far fewer epochs:

Auspex().train(dataset="corrected.xml", images="imgs/", output="runs/v2",
               base_bundle="runs/v1/auspex_model.pt", epochs=15)
auspex train --dataset corrected.xml --images imgs/ --output runs/v2 \
             --base-bundle runs/v1/auspex_model.pt --base-allow-unsigned --epochs 15
  • Every head starts from its best checkpoint in the base bundle — box, polygon, keypoint, polyline and tag.
  • Classes are matched by name. Classes in both keep what they learned (even if their position moved), new classes can be added — they start fresh while everything else carries over — and removed ones are dropped.
  • Never silent: a head the base bundle doesn't have, or whose architecture you changed, trains from scratch, and training_summary.json → head_init records per head whether it started from the bundle or from scratch (and why), plus the classes kept / added / removed. Use --set BASE_BUNDLE_STRICT=true to fail such a head instead.
  • Verified before loading: pass base_verify_key="their.pub" for a model you didn't produce — a bundle is executable content. On the CLI you choose a verification mode, just as with auspex predict.
  • The train/val split is stable per image, so images the base model trained on never land in the new run's validation set — warm-start metrics stay honest as your dataset grows. One exception, and it is flagged: the first warm start from a bundle made before 0.3.2 (which used a shuffled split) validates partly on images the base trained on, so its val metrics read optimistic (training_summary.json → base_bundle.split.clean_val: false). Retrains after it are clean.
  • Write the new model to a new name or folder: a run refuses to overwrite its own base bundle, so a failed run can never cost you the model you started from.

On our reference retrain, an 8-epoch warm start reached 94–96% of a full 30-epoch retrain's quality on the keypoint and polyline heads in under a third of the time, and added classes learned as well as from scratch. Box (YOLO) heads gain the most from a somewhat longer budget — about a third of your usual epochs is a good starting point.

One file to move

Every trained sub-model is bundled into a single auspex_model.pt. Copy or version that one file to move the whole model between machines — no per-task folder juggling.

from auspex_infer import AuspexModel      # detection only, no training code needed
AuspexModel("auspex_model.pt").predict("photo.jpg").save("out/")

Signed bundles

A model bundle is executable content, so auspex can sign and verify one with an ed25519 key. Pin the public key of whoever produced a model and anything not signed by them is refused:

auspex keys generate --out mykey            # once — keep mykey, hand out mykey.pub
auspex train ... --sign-key mykey           # producer signs at train time
auspex predict --model m.pt --verify-key mykey.pub   # consumer pins the signer

Verification happens before anything is unpacked or loaded, and requires torch >= 2.6.

Tuning

Every knob is settable via --set KEY=VALUE, an environment variable, or a keyword argument to train(). The common ones:

Knob Default Purpose
--epochs / YOLO_EPOCHS … 50 Training budget (fans out to every head)
--imgsz / INPUT_SIZE 640 Image size; raise it to catch small objects
--device / DEVICE cuda cuda or cpu
--batch / YOLO_BATCH_SIZE 8 Batch for the box + tag heads
--no-amp (AMP on) Force fp32 — fixes NaN validation loss on some newer GPUs
AUSPEX_TASK_SUBPROCESS=1 off Isolate each head in its own process; frees all GPU memory between heads on small cards

An explicit per-key override always beats a convenience shortcut, so train(imgsz=640, POLYGON_SEG_INPUT_SIZE=1024) keeps the polygon head at 1024.

Machine-readable progress

For a UI or orchestrator, training emits stable progress events you can parse instead of scraping log text (set AUSPEX_PROGRESS=0 to silence):

AUSPEX_PLAN heads=bbox,polygon,keypoint,polyline
AUSPEX_HEAD_START head=polygon index=2 total=4
AUSPEX_EPOCH head=polygon epoch=19 total=100
AUSPEX_HEAD_END head=polygon status=ok

Requirements

Python 3.10 / 3.11 / 3.12 on Windows x64, Linux x86_64 / arm64 (manylinux, glibc 2.17+) or macOS Apple Silicon. A CUDA GPU is recommended for training but not required.

These are compiled wheels — native binaries, no readable Python source, and no source distribution. pip needs a wheel matching your platform; Intel Macs are not supported.

torch >= 2.6.0 installs automatically. To pin a specific CUDA build, install torch first and pip will leave it alone:

pip install torch --index-url https://download.pytorch.org/whl/cu121
pip install auspex-engine

Licence

auspex-engine is proprietary software, free to use. You may download, install and use it — including commercially — and the models you train are yours. Redistribution, modification and reverse-engineering are not permitted. The full terms ship inside the wheel (LICENSE).

Third-party components. auspex-engine depends on Ultralytics, which is licensed AGPL-3.0; your use of that component is governed by AGPL-3.0, which prevails over the terms above for that component. Full notices ship in the wheel (THIRD_PARTY_LICENSES).

Release files for auspex-engine 0.3.2

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

Built distributions (wheels)

Table of built distributions (wheels) for auspex-engine 0.3.2
File
auspex_engine-0.3.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
auspex_engine-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
auspex_engine-0.3.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
auspex_engine-0.3.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
auspex_engine-0.3.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
auspex_engine-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
auspex_engine-0.3.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
auspex_engine-0.3.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
auspex_engine-0.3.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
auspex_engine-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
auspex_engine-0.3.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
auspex_engine-0.3.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 17.0 MB

Release files / auspex_engine-0.3.2-cp312-cp312-win_amd64.whl

Download URL auspex_engine-0.3.2-cp312-cp312-win_amd64.whl
Size 1.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e3752d7958797ef75010ccd26b75ec256453b8269dcd0f60c3dffce80935462f
BLAKE2b-256 checksum
How to use checksums
1bdff4dc733c5e9e3047509617fc2d39dbeb3d91d8531cd6e60458df83fd369b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL auspex_engine-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
de605d029688ce741b46f8418b53ce274d00b57a610deec8e4c99f502637cf3d
BLAKE2b-256 checksum
How to use checksums
5c193e4d1e77bb05f2b29bc1887fef009baafcb6caeacea6383ca122bb5d66ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL auspex_engine-0.3.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5e83a9b812f902a9a3108b3338c5c289fa682363b670b581591e38dbb596922f
BLAKE2b-256 checksum
How to use checksums
5a3ee1e1cdf38592543458bd3102591b2cc912d98393c6266faa6ba24983919e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL auspex_engine-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0b7eadb3758faf4a7bc0b2b4b81089ff5c4eb82337d50a20d54ed9021e81794e
BLAKE2b-256 checksum
How to use checksums
09ae22549fad458bd893f604cc75ffbacd8a560e87835e42640996234727a400
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp311-cp311-win_amd64.whl

Download URL auspex_engine-0.3.2-cp311-cp311-win_amd64.whl
Size 1.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
781439c00699103aa001378de098f12e7b3d42a7d99fc0ff25f5c34e17d1977e
BLAKE2b-256 checksum
How to use checksums
31d1eb661ebfff57ebdf73f242c970aa0efc7fab2f083cf5c5d715ea53a7649d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL auspex_engine-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aeafb91fd671f5defdfa78db20a237f3734f7440b9df53481f53a53d57697fa6
BLAKE2b-256 checksum
How to use checksums
536bb940d6d34dec7eb5211d1cfae08f456546daee693f0440fc8e9ab761f9ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL auspex_engine-0.3.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8ea819e940b47804f5a6227fe0e4c3249a875569927415c9165fbf95472fffc0
BLAKE2b-256 checksum
How to use checksums
c56ed788445ceae7d5f71608bbebfa35e898025437e71ae7f1efdd154b7de38a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL auspex_engine-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f63433d4764de525d851955d540a40cab88b44cf50ca88a2f282e19ebfcc6a8c
BLAKE2b-256 checksum
How to use checksums
8a0251a869177de9520d7a35fb067d70c9a1fe8103348371c7639551554b79ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp310-cp310-win_amd64.whl

Download URL auspex_engine-0.3.2-cp310-cp310-win_amd64.whl
Size 1.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
274811a7980579274a9e88669954d1a992f50f5d851bfad86bc8e393435245c1
BLAKE2b-256 checksum
How to use checksums
dcb5993f05b8d7a2d078d611475f0ce6fc801b934fb70c6e2c33cca607c2316f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL auspex_engine-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5cf5c1efdbd9f1896593ef6c3d068bb61ef15dafea9ec9dbc4c61510178fb317
BLAKE2b-256 checksum
How to use checksums
39bfbae357c93b707e704bc00d99525f7bf89af39de61be45037920216bd9f3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL auspex_engine-0.3.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
63c470dbdd069f27757ce8b58e88581792e6fbca3d79f73f6fe1d764d72be426
BLAKE2b-256 checksum
How to use checksums
4d67d00fe86ba64f45baffe3b2ab5ce47179d607b4a47ec815588ea67d6b2ae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / auspex_engine-0.3.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL auspex_engine-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
51acd50ab4c87d9aac16da0bfb65d19f43c0622fb0176c4b9c5e99f04a34b044
BLAKE2b-256 checksum
How to use checksums
7d033956c59dd9041affd8bbeed065e21b05db535fa35313a91d61a6b6549e03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.3

12 release files

This release

0.3.2 This release

12 release files

0.3.1

12 release files

0.3.0

12 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