Skip to main content

mas-ods 🚀

mas-ods is an ultra-lightweight, high-accuracy, single-class (person) object detection engine and model hub designed for extreme cost efficiency and high throughput on CPUs, edge devices, and GPUs.

Built from the ground up for production deployment, mas-ods runs exclusively on ONNX Runtime with pure NumPy/OpenCV pre/post-processing, automatic model downloading from Google Drive into a local .models/ directory, seamless CPU/GPU/AUTO hardware toggles, and 100% Apache-2.0 commercial compliance.


🌟 Key Features

  • ⚡ Ultra-Lightweight & Fast: Sub-5ms latency and 150–250+ FPS on standard CPUs.
  • 🌐 Dynamic Model Hub (Auto-Download): Simply pass the model name (e.g. PersonDetector("yolox_nano")) and the model is automatically downloaded into .models/ on first run.
  • 🎯 Single-Class Person Focus: Eliminates multi-class softmax/NMS overhead for maximum efficiency.
  • 💻 Pure ONNX Runtime Core: No heavy PyTorch or PaddlePaddle dependencies needed during inference.
  • 🔄 AUTO Hardware Acceleration: Choose between device="auto", "cpu", "gpu", "cuda", or "directml" with automatic graceful fallback.
  • 📊 Profiling & Diagnostics: Built-in latency (P50/P95/P99), FPS, and hardware execution provider benchmark suite.
  • ⚖️ Commercial Friendly: Free from copyleft/AGPL constraints (Apache-2.0).

📦 Installation

# Using uv (recommended)
uv add mas-ods

# Or using pip
pip install mas-ods

🚀 Quickstart

1. Python API (Zero Setup — Auto Downloads Model)

import cv2
from mas_ods import PersonDetector

# 1. Initialize detector by model name (automatically downloads if not cached)
# Models available: "yolox_nano", "nanodet-plus-m_320", "nanodet-plus-m_416", "yolox_tiny", "yolox_s", "yolox_m"
detector = PersonDetector(
    model="yolox_nano",         # or pass custom local file path: "path/to/model.onnx"
    device="auto",              # "auto" (prioritizes GPU with CPU fallback) | "cpu" | "gpu"
    confidence_threshold=0.40,  # Filter out low-confidence predictions
    iou_threshold=0.45,         # NMS IoU threshold
)

# 2. Run inference on an image (filepath, numpy array, or PIL image)
image = cv2.imread("street.jpg")
result = detector.predict(image)

print(f"Persons detected: {result.count}")
print(f"Total time: {result.total_time_ms:.2f} ms ({result.fps:.1f} FPS)")

for box in result.boxes:
    print(f"Coordinates: {box.xyxy} | Confidence: {box.score:.2f}")

# 3. Render bounding boxes and HUD overlay
annotated_frame = detector.render(image, result, show_fps=True)
cv2.imwrite("output.jpg", annotated_frame)

2. Real-Time Webcam / Video Stream

from mas_ods import PersonDetector, VideoPipeline

detector = PersonDetector(model="yolox_nano", device="auto")
pipeline = VideoPipeline(detector)

# Stream from webcam (0) or video file ("video.mp4")
pipeline.process_stream(source=0, show=True)

📋 Available Model Catalog

Model Name Input Shape Model Size Description
yolox_nano 416x416 ~3.7 MB Ultra-lightweight (0.91M params), 150–250+ FPS on CPU
nanodet-plus-m_320 320x320 ~4.8 MB Ultra-fast anchor-free CPU detector
nanodet-plus-m_416 416x416 ~4.8 MB High resolution anchor-free CPU detector
nanodet-plus-m-1.5x_416 416x416 ~9.9 MB High accuracy anchor-free detector
yolox_tiny 416x416 ~20.2 MB Balanced speed and accuracy (~5M params)
yolox_s 640x640 ~35.9 MB Small detector (~9M params), great for GPU
yolox_m 640x640 ~101.3 MB Medium detector (~25M params)

🖥️ Command-Line Interface (CLI)

List Available Models in the Catalog

mas-ods models

Check Hardware & Available Execution Providers

mas-ods devices

Benchmark Latency & Throughput (FPS)

mas-ods benchmark --model yolox_nano --device auto --iterations 100

Run Detection via CLI

mas-ods detect --model yolox_nano --source test.jpg --device auto --save output.jpg

📄 License

This project is licensed under the Apache License 2.0 - free for both commercial and personal use.

Metadata

Release files for mas-ods 1.0.2

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

Source distribution (sdist)

Source distribution for mas-ods 1.0.2
File Size Uploaded
mas_ods-1.0.2.tar.gz 45.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mas-ods 1.0.2
File Interpreter ABI Platform
mas_ods-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 104.5 kB

Release files / mas_ods-1.0.2.tar.gz

Download URL mas_ods-1.0.2.tar.gz
Size 45.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9e61867a904d82704f0ecb5850083aa2fd63132e08c7d67300ed7e333505a4ac
BLAKE2b-256 checksum
How to use checksums
16b446a286f364a0b5c76755efc68c3e797fa17c0f3cded109a20c0933fa2a4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mas_ods-1.0.2-py3-none-any.whl

Download URL mas_ods-1.0.2-py3-none-any.whl
Size 59.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54853641d5adaeb7792386b12360706eef22a2bfb110118df3bbb569617a0cd6
BLAKE2b-256 checksum
How to use checksums
9b019edf1d4575562d7011affaed60c8bd91bf084db31ca66e7e0ba8f04ad332
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

1.0.3

2 release files

This release

1.0.2 This release

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

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