Documentation

Supported AI Adapters

This page provides a comprehensive technical reference for every AI model currently supported in the OpenNVR registry. Each adapter is a standalone microservice that Kai-C communicates with via the standardized /infer API.

🛠️ Official Registry

These seven adapters ship in v0.1, maintained by the OpenNVR core team with stable support and pre-built images on GHCR. They run locally by default — no cloud round-trip.

Adapter Name Task ID (task_name) Type Primary Use Case
YOLOv8 object_detection Vision Low-latency person and object detection (ONNX, CPU + GPU).
ByteTrack multi_object_tracking Vision Persistent track IDs across frames; runs as a post-processor over a detector.
InsightFace face_detection, face_recognition Vision Facial detection and recognition with a REST-managed face DB.
fast-plate-ocr license_plate_recognition Vision License-plate text recognition on a cropped plate.
BLIP scene_description Vision Natural-language scene captioning (local).
Whisper speech_to_text Audio Speech-to-text transcription (faster-whisper, CPU + GPU).
Piper text_to_speech Audio Fast, local text-to-speech.

An Ollama integration for local LLM chat ships in the bundled reference server. Cloud providers such as Hugging Face are supported as an explicit opt-in — under the default local_only sovereignty policy, any adapter declaring network egress is refused registration.


🤝 Community Contributions

Anyone can publish an adapter and list it here — the entries below are illustrative of the shape community contributions take. Submit yours via the steps in Adding Your Name to the List.

Adapter Name Task ID (task_name) Type Notes
PPE / Hard-Hat Detector ppe_compliance Vision Construction-site safety compliance — a popular community target.
Pose / Fall Detection fall_detection Vision Pose-based fall detection for elder care — on the roadmap, open for contribution.

🏗️ Response Schemas

When consuming these adapters via a third-party application or AI Agent, you can expect the following structured JSON responses.

1. Person Detection / Counting

Task: person_counting

{
  "task": "person_counting",
  "count": 2,
  "confidence": 0.91,
  "detections": [
    { "bbox": [10, 20, 100, 200], "track_id": 4, "confidence": 0.95 }
  ]
}

2. Scene Description (VLM)

Task: scene_description

{
  "task": "scene_description",
  "caption": "a large truck is parked in a driveway next to a warehouse",
  "model_id": "Salesforce/blip-image-captioning-base"
}

3. Facial Analysis

Task: face_detection

{
  "faces": [
    {
      "bbox": [50, 50, 120, 120],
      "landmarks": [[55, 60], [65, 60], ...],
      "age": 32,
      "gender": "F",
      "confidence": 0.99
    }
  ],
  "face_count": 1
}

🚀 Adding Your Name to the List

Don’t see your specialized model here? We encourage developers to list their industry-specific adapters (Retail Analytics, Medical Safety, Pet Tracking, etc.) in the official registry.

  1. Build Your Adapter: Follow the Building Custom Adapters guide.
  2. Submit a PR: Add your adapter’s metadata to src/data/adapters.ts in the opennvr-site repository.
  3. Approval: Once verified by the core maintainers, your model will appear on the AI Registry page for all OpenNVR users to discover.