Метод ProcessCameraStreamInference (AID)

Документация AI-воркера: Потоковый инференс компьютерного зрения для видеопотока камеры

Author

Application & Simulation Services Framework Documentation

Published

August 8, 2026

WarningОграничение публичной документации

В открытом доступе представлена демонстрационная версия метода. В настоящей публичной документации отображены не все шаги, технические сценарии и приватные эндпоинты для системы цифровых симуляторов бизнес-процессов.

  • Полная спецификация метода: Будет доступна только во внутреннем контуре разработки (Confluence / Swagger Enterprise).

Функциональное назначение

Русский

Асинхронный воркер слоя ИИ (camera-vision-processor) предназначен для непрерывной обработки бинарного видеопотока, поступающего от камеры мобильного клиента. Метод решает задачу классификации и детекции продуктов питания «на лету» (Real-time Object Detection), обеспечивая пользователя мгновенными подсказками по составу корзины до момента фиксации кадра.

English

The asynchronous AI layer worker (camera-vision-processor) is designed for continuous processing of the binary video stream received from the mobile client’s camera. The method solves the problem of real-time food asset classification and detection, providing the user with instantaneous UI predictive feedback before the frame is locked.


Протокол взаимодействия (Событийный контракт) / Communication Protocol (Event Contract)

  • Тип метода / Method Type: Asynchronous Event Stream Consumer / gRPC Producer
  • Входной топик / Input Kafka Topic: media.camera.stream.v2
  • Формат ключа / Key Format: String (session_id)
  • Формат значения / Value Format: Byte[] (Raw JPEG bytes)

Спецификация входного события / Input Event Message Specification

Конфигурация заголовков сообщения (Kafka Headers)

Ключ заголовка / Header Key Тип данных / Type Описание / Description Пример / Example
x-request-id String Сквозной ID сессии для распределенного трейсинга / End-to-end tracing ID stream-7a2b-9c1d-00ef
frame_timestamp String (ISO) Время захвата кадра на устройстве / Frame capture timestamp 2026-07-01T21:10:05.123Z
user_id String Идентификатор владельца сессии / Identifier of the session owner usr-8822-fa41

Диаграмма последовательности (Mermaid)

sequenceDiagram
    autonumber
    participant K as Apache Kafka Cluster
    participant Worker as camera-vision-processor (AID)
    participant GW as FastAPI Gateway (backend-api)
    
    K->>Worker: Поток бинарных кадров (Byte[]) из топика media.camera.stream.v2
    activate Worker
    Note over Worker: Распаковка JPEG массива<br/>Инференс модели детекции (YOLO/ViT)
    alt Успешный инференс (Success)
        Worker->>GW: gRPC / Event: STREAM_PREDICTION_UPDATED (verified_sku, confidence)
    else Ошибка декодирования (ERR-FRAME-DECODE-FAILED)
        Worker->>GW: Асинхронное бизнес-исключение: ERR-FRAME-DECODE-FAILED
    end
    deactivate Worker


Расшифровка шагов

Русский

Шаг Компонент (Из) Направление Компонент (В) Операция / Тело события Бизнес-исключения
1 Apache Kafka Broker --> camera-vision-processor Чтение бинарного кадра Byte[] и заголовков сообщения
2 camera-vision-processor --> camera-vision-processor Распаковка JPEG, инференс модели детекции и классификации ERR-FRAME-DECODE-FAILED
3 camera-vision-processor --> FastAPI Gateway Эмит gRPC/Event: событие STREAM_PREDICTION_UPDATED с verified_sku и confidence No business errors

English

Step Component (From) Direction Component (To) Operation / Event Payload Business Exceptions
1 Apache Kafka Broker --> camera-vision-processor Consume binary frame Byte[] and message headers
2 camera-vision-processor --> camera-vision-processor Unpack JPEG, run object detection and classification inference ERR-FRAME-DECODE-FAILED
3 camera-vision-processor --> FastAPI Gateway Emit gRPC/Event: STREAM_PREDICTION_UPDATED with verified_sku and confidence No business errors

Примеры исходящих ответов / Output Payload Examples

Промежуточное событие предикта / Intermediate Prediction Frame Event (STREAM_PREDICTION_UPDATED)

Генерируется на каждом успешном шаге инференса кадра и передается обратно в шлюз для трансляции в WebSocket.

{
  "event_type": "STREAM_PREDICTION_UPDATED",
  "timestamp": "2026-07-01T21:10:05.180Z",
  "trace_id": "stream-7a2b-9c1d-00ef",
  "data": {
    "detected_sku": "TOMATO",
    "confidence": 0.915,
    "bounding_box": {
      "x_min": 120,
      "y_min": 45,
      "x_max": 340,
      "y_max": 410
    }
  }
}

Ответ при возникновении бизнес-исключения / Business Exception Event (ERR-FRAME-DECODE-FAILED)

Генерируется в случае невозможности декомпрессии бинарного массива кадра.

{
  "error_code": "ERR-FRAME-DECODE-FAILED",
  "message": "Не удалось декодировать бинарный кадр изображения / Failed to decode binary image frame.",
  "details": {
    "reason": "Corrupted byte stream array or unsupported image compression format.",
    "timestamp": "2026-07-01T21:10:06.002Z"
  }
}