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

📦 Модули

instance

Пространственные примитивы для детекций.

Классы

  • Point — валидированная 3D точка [0.0, 1.0]
  • Box — axis-aligned 3D bounding box
  • Polygon — vertex collection для масок сегментации
  • Obb — oriented (rotated) bounding box
  • Instance — детектированный объект с классификацией

Пример

example.py
from acmenra_cv.instance import Point, Box, Instance

# Создание точки
p = Point(X=0.5, Y=0.3, Z=0.0)

# Создание bounding box
box = Box(left=0.1, right=0.5, top=0.2, bottom=0.8, front=0.5, back=0.5)

# Геометрия
center = box.center
area = box.get_area()

# YOLO форматы
xyxyn = box.to_xyxyn()
xywhn = box.to_xywhn()

inference

Backend-agnostic inference и результаты.

Классы

  • Backend — абстрактный базовый класс для всех backends
  • YOLOBackend — YOLO-specific backend
  • Timing — метрики времени (preprocess, prediction, postprocess)
  • Result — универсальный контейнер результатов

Пример

example.py
from acmenra_cv.inference import YOLOBackend, Result
from acmenra_cv.instance import DeviceType, TaskType
from ultralytics import YOLO

# Загрузка модели
model = YOLO("yolov8n.pt")

# Создание backend
backend = YOLOBackend(
    model=model,
    device=DeviceType.CPU,
    task_type=TaskType.DETECT,
    threshold=0.5,
)

# Инференс
result = backend.predict(frame)

# Обработка результатов
for instance in result:
    print(f"{instance.label.name}: {instance.conf:.2f}")

# Сериализация
result_dict = result.to_dict()

tracker

Multi-object tracking с persistent IDs.

Классы

  • Tracker — основной движок трекинга
  • TrackedObject — отслеживаемый объект с траекторией
  • TimedPointQueue — очередь точек траектории
  • TimedPoint — точка с timestamp

Пример

example.py
from acmenra_cv.tracker import Tracker

# Создание трекера
tracker = Tracker(
    id=0,
    backend=backend,
    max_length=50,
)

# Трекинг
tracked_objects = tracker.track(frame, enable_tracking=True)

# Доступ к траекториям
for obj in tracked_objects:
    print(f"ID: {obj.id}")
    print(f"Trajectory: {len(obj.trajectory)} points")

render

Типобезопасная визуализация.

Классы

  • Drawer — основной движок рендеринга
  • Style — конфигурация стиля
  • Font — настройки шрифта
  • Stroke — настройки обводки
  • Fill — настройки заливки

Пример

example.py
from acmenra_cv.render import Drawer, Style, Stroke, Fill

# Настройка стиля
style = Style(
    palette=[(255, 0, 0), (0, 255, 0), (0, 0, 255)],
    stroke=Stroke(thickness=2, alpha=0.8),
    fill=Fill(alpha=0.3),
    show=True,
)

# Создание drawer
drawer = Drawer(style=style)

# Визуализация
output = drawer.draw_instances(
    frame=frame,
    tracked_objects=tracked_objects,
    is_box=True,
    is_trajectory=True,
)

utils

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

Функции

  • get_frame_illumination() — оценка освещённости кадра

Пример

example.py
from acmenra_cv.utils import get_frame_illumination

# Оценка освещённости
illumination = get_frame_illumination(
    frame=frame,
    grid_size=10,
    method="BGR",
)

print(f"Illumination: {illumination:.2f}")
# 0.0 = темнота, 1.0 = максимальная яркость

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

Быстрый старт