Auspex Cursus
betav0.8.1Polyline detection: an ordered chain of vertices per instance — pipes, drip lines, road centre lines, horizons. A detector purpose-built for paths, trained on your own annotations.
Install
pip install auspex-cursusOverview
Auspex Cursus detects polylines: for every instance it outputs an ordered, open chain of vertices, in your own stack. Nothing runs on this site.
A polyline is not a box and not a polygon
A pipe, a drip line, a road centre line, a horizon — these are paths. A bounding box around one throws away the geometry that made it worth labelling, and a polygon is the wrong shape for something with no interior. Cursus predicts the path itself: an ordered sequence of vertices whose direction and order are part of the answer.
Each class declares how many vertices it needs, so a two-point horizon and a twelve-point drip line live in the same model.
A detector built for this shape, on a pretrained backbone
The detection stack is written from scratch and trained from random initialisation: hierarchical instance-by-point queries, deformable attention, iterative refinement and direction-invariant matching, all built for polylines rather than adapted from a box detector.
The image backbone is not from scratch. It is ConvNeXt-T pretrained on ImageNet-22k, and that is a deliberate choice: a DETR-style model trained on a few dozen annotated photos will not converge from random pixels in any reasonable budget. If you would rather start from nothing, set `model.pretrained: false` in your config.
Every annotation source, one format
CVAT XML, LabelMe JSON and georeferenced GeoJSON/Shapefile with GeoTIFF all convert into one on-disk format. Train on whole images, or tile very large rasters and let sliding-window inference stitch the fragments back into continuous lines.
Free to try, keyed after 30 days
Install it and start training straight away — no key, no account, no card. After 30 days training needs a licence; prediction, validation, evaluation and export keep working either way.
Weights you train on your own data belong to you and keep working if a licence lapses. The key is verified offline, so it also works on air-gapped machines.
Using it
pip install auspex-cursus# CVAT / LabelMe / GeoJSON in, one format out auspex-cursus convert --format cvat --src annotations.xml --images ./images \ --labelspace labelspace.yaml --out data.cursus.json
auspex-cursus train --cfg run.yaml auspex-cursus val --weights runs/run/best.pt auspex-cursus predict --weights runs/run/best.pt --source ./photos \ --out preds --formats cursus,cvat,overlay ```
Predictions come back as ordered vertex lists per instance and export as CVAT XML you can upload as pre-labels, LabelMe JSON, or GeoJSON in world coordinates.
- Ordered, open polylines — direction and vertex order are part of the prediction
- Per-class vertex counts, so 2-point and 12-point classes share one model
- CVAT XML, LabelMe JSON and georeferenced GeoJSON/Shapefile in one run
- Whole-image or tiled, with sliding-window stitching for very large rasters
- Single and multi-GPU training; CPU inference
- Export to CVAT pre-labels, LabelMe, GeoJSON world coordinates, or ONNX
- Licence verified offline — works on machines with no internet access
Need this adapted to your data?
We build and evaluate models against your metrics, not benchmarks.