Observed since 20 Oct, 17:52 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Apache-2.0 PyTorch-native computer vision library. One API for detection, segmentation, and (soon) OBB/OCR/VLM/zero-shot.
Apache-2.0 PyTorch-native computer vision. One API — predict, train, export — across detection, segmentation, OBB, OCR, VLM, and zero-shot.
One class to learn. One to remember.
import acaua
model = acaua.Model.from_pretrained("CondadosAI/rtdetr_r50vd")
results = model.predict("image.jpg")
print(results.boxes, results.labels, results.scores)
The Python computer-vision stack has three ugly choices today:
mmengine/mmcv abstractions that feel foreign to anyone who wrote a torch.nn.Module in the last decade.And then there's Roboflow Supervision — Apache-2.0, pythonic, but intentionally thin. It handles annotation and post-processing, not training and multi-task model serving.
acaua fills the gap: an Apache-2.0, PyTorch-native, pythonic library that unifies detection, segmentation, OCR, VLM, and zero-shot tasks behind a single predict / train / export surface.
pip install acaua
Torch and Transformers come as direct deps. First install is a few hundred MB; get a coffee.
Two tasks, one API:
import acaua
# Object detection
det = acaua.Model.from_pretrained("CondadosAI/rtdetr_r50vd")
det_result = det.predict("http://images.cocodataset.org/val2017/000000039769.jpg")
print(det_result.boxes.shape, det_result.labels.tolist(), det_result.scores.tolist())
# Instance segmentation — same .predict(), different task
seg = acaua.Model.from_pretrained("CondadosAI/mask2former_swin_tiny_coco_instance")
seg_result = seg.predict("http://images.cocodataset.org/val2017/000000039769.jpg")
print(seg_result.masks.shape) # adds masks on top of the common fields
# Plug into Roboflow Supervision for annotation
detections = det_result.to_supervision()
The signature equality is not an accident — tests/test_predict_parity.py is a contract test that fails CI if any adapter drifts.
| Task | Backend | Weights |
|---|---|---|
| Object detection | transformers AutoModelForObjectDetection (RT-DETR) | CondadosAI/rtdetr_r50vd |
| Instance segmentation | transformers AutoModelForUniversalSegmentation (Mask2Former-Swin-Tiny) | CondadosAI/mask2former_swin_tiny_coco_instance |
Both adapters:
.predict() signature (contract-tested).torch.inference_mode().str (path or http/https URL), pathlib.Path, PIL.Image, np.ndarray (HWC uint8 RGB), torch.Tensor (CHW float32), or a sequence of any of the above.batch_size=8 by default.cuda > mps > cpu, or take an explicit device= kwarg.| v0.1 | v0.2 | v0.3 | |
|---|---|---|---|
predict | detection + instance segmentation | + OBB, OCR | + VLM, zero-shot |
train | per-backend idioms (not parity-gated) | signature parity across adapters | — |
export | (empty extras shipped) | ONNX parity | TensorRT, CoreML |
Tasks arrive as extras to avoid bloating the core install:
pip install acaua[ocr] # doctr / surya family (v0.2+)
pip install acaua[vlm] # Florence-2, Qwen-VL, Moondream (v0.3+)
pip install acaua[zeroshot] # GroundingDINO, SAM2, OWLv2, YOLO-World (v0.3+)
pip install acaua[export] # ONNX, TensorRT, CoreML (v0.2+)
pip install acaua[all]
The extras claim their slots today and ship empty — installing acaua[ocr] right now is a no-op, but when v0.2 lands it transparently picks up the new adapter.
Code: Apache-2.0. See LICENSE.
Weights: every weight in the default load path has an audited Apache-2.0 upstream, mirrored under CondadosAI/* at a pinned commit SHA. See LICENSES.md for the full matrix, attribution chains, and policy notes. Non-Apache weights raise LicenseError unless you pass allow_non_apache=True.
| License | API | PyTorch-native? | Tasks in scope | |
|---|---|---|---|---|
| Ultralytics | AGPL weights | class per task | yes | detection, pose, classification, segmentation |
| mmdetection | Apache-2.0 | registries + config DSLs | yes (but mmengine) | detection, segmentation, OBB |
| PaddleDetection | Apache-2.0 | Paddle-native | no (Paddle) | everything, but in a different ecosystem |
| Supervision | Apache-2.0 | annotation + post-processing | yes | not a model library |
| acaua | Apache-2.0 code + weights | one class, three verbs | yes | detection, segmentation now; OBB/OCR/VLM/zero-shot next |
If Ultralytics' license wasn't AGPL, it would fit this slot. It is, so acaua is here.
These are what acaua is actively not doing, so you can stop us if you see us drift:
torchvision.models.detection and transformers where possible.git clone https://github.com/CondadosAI/acaua
cd acaua
uv sync --group dev
uv run pytest tests/ -m "not e2e"
CI (.github/workflows/ci.yml) runs ruff, mypy, the adapter LOC budget script, the unit suite on Python 3.10–3.13 with a 90% coverage floor, plus one E2E job. Nightly runs the full cross-OS matrix.
Open an issue before a PR. For new adapters: the 300-line LOC budget is real and CI-enforced. If your adapter needs more than that, the abstraction is probably leaking and we need to design before we code.
acaua is a thin layer over work done by the PyTorch team, Hugging Face, torchvision, Roboflow Supervision, and the authors of RT-DETR, Mask2Former, and Swin. See LICENSES.md for the full chain.
The name is acauã — a Brazilian bird of prey (Herpetotheres cachinnans) that hunts snakes. Named for where the library was made.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0.dev0 | 18 Apr 2026 | 7 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 17:52 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:e13d9859e5dc85dc5eff2702c5dd0e3f5e93a5c48bc21c18f5c34fdc4498df96