Перейти к содержанию

📚 Модули ядра (acmenra-cv)

instance

Пространственные примитивы для детекций, работающие в нормализованном пространстве [0.0, 1.0].

Классы

  • Point — валидированная 3D точка.
  • Box — axis-aligned 3D bounding box.
  • Polygon — vertex collection для масок сегментации.
  • Obb — oriented (rotated) bounding box.
  • Instance — детектированный объект. Важно: использует свойство label (Enum member, например CocoClass.PERSON), в то время как Backend использует category (Enum class).

Пример

example.py
1
2
3
4
5
6
7
from acmenra_cv.instance import Point, Box

p = Point(X=0.5, Y=0.3, Z=0.0)
box = Box(left=0.1, right=0.5, top=0.2, bottom=0.8, front=0.0, back=0.0)

print(box.center)
print(box.to_xywhn())  # Конвертация в формат YOLO

inference

Backend-agnostic контракты и универсальные контейнеры результатов.

Классы

  • Backend — абстрактный базовый класс, определяющий контракт (predict, track) для всех движков.
  • Timing — метрики времени выполнения (preprocess, prediction, postprocess).
  • Result — универсальный контейнер результатов с collection-like API (len(), итерация, индексация).

Где YOLOBackend?

Конкретные реализации, такие как YOLOBackend, вынесены в отдельные пакеты-плагины (например, acmenra-yolo), чтобы не перегружать ядро тяжелыми зависимостями.


tracker

Multi-object tracking с persistent IDs и управлением траекториями.

Классы

  • Tracker — основной движок трекинга, принимающий любой Backend.
  • TrackedObject — отслеживаемый объект, связывающий Instance и историю перемещений.
  • TimedPointQueue — FIFO-очередь точек траектории с O(1) расчетом центроида.
  • TimedPoint — точка (Point), расширенная временной меткой (timestamp).

render

Типобезопасная визуализация, оптимизированная для embedded-систем.

Классы

  • Drawer — основной движок рендеринга с декоратором @validate_frame.
  • Style — централизованная конфигурация (palette, stroke, fill, font, alpha, show).
  • Stroke / Fill / Font — гранулярные настройки стилей.
  • LabelPosition — Enum для позиционирования бейджей (TOP, BOTTOM, CENTER, OFF и др.).

utils

Высокопроизводительные вспомогательные функции.

Функции

  • get_frame_illumination() — оценка освещённости кадра с использованием grid-sampling (в 10-50 раз быстрее полной обработки кадра на Raspberry Pi). Поддерживает методы BGR, GRAY, LAB.

Следующие шаги

Документация плагина acmenra-yolo