Допоміжні візуалізації
Відеопереглядач може показувати пов’язані з кадром дані поруч із відео, а не як накладку. Кожен канал має незалежну панель, а кілька подань відображаються як вкладки. Insight передає непрозоре корисне навантаження JSON зареєстрованому засобу відтворення. Перший вбудований засіб відображає світові орієнтири BlazePose як тривимірний скелет.
Надсилайте допоміжні дані на UDP-порт метаданих каналу (metadataUDP + N). Установіть timestamp у значення PTS вихідного відео в цілих мілісекундах. Переглядач приймає допоміжні дані лише для точного декодованого кадру RTP та зберігає останнє зіставлене подання не довше 160 мілісекунд під час короткої перерви доставки.
Контракт повідомлення
{
"type": "auxiliary-visualization",
"timestamp": 1234,
"frame_id": "42",
"data": {
"schema_version": 1,
"id": "world-pose",
"renderer": "blazepose-3d",
"title": "3D Pose",
"payload": {
"poses": [{
"id": "pose_1",
"keypoints": [
{"name": "nose", "x": 0.01, "y": -0.42, "z": -0.08, "confidence": 0.98}
]
}]
}
}
}
| Поле | Вимога |
|---|---|
schema_version | Ціле число 1; невідомі версії ігноруються. |
id | Ст абільний непорожній ідентифікатор подання. |
renderer | Зареєстрований засіб відтворення; невідомі назви ігноруються. |
title | Необов’язкова назва панелі. |
payload | Об’єкт JSON, специфічний для засобу відтворення. |
Конверт не прив’язаний до пози. Хмара точок, сітка, діаграма або інше 3D-подання може зареєструвати засіб відтворення та визначити власне корисне навантаження без зміни транспорту чи панелі.
BlazePose 3D
Корисне навантаження blazepose-3d приймає poses[]; кожен елемент містить іменовані keypoints[] зі скінченними світовими координатами x, y і z. Довіра необов’язкова; точки з низькою довірою тьмяніють, а не зникають. Скелет використовує окремі кольори для голови, тулуба, лівої та правої сторін об’єкта. Кілька поз також отримують різні кольори контурів.
Відкрийте 3D Pose у Viewer Configuration, щоб глобально або для окремого каналу налаштувати видимість, розмір панелі, прозорість, кут рискання й тангажу камери та видимість опорного куба. Елементи панелі перемикають куб або скидають камеру; перетягування полотна вибирає фіксований кут огляду. Засіб відтворює кожен зіставлений кадр безпосередньо й не згладжує та не анімує його незалежно від 2D-накладки.
Типова камера використовує стабільну метричну систему відліку. Відправник може перевизначити її через payload.view.center.{x,y,z} і payload.view.half_extent.
Кілька подань і засобів відтворення
Надсилайте одне повідомлення на подання з окремим data.id; до 16 подань для однієї мітки часу відображаються як вкладки. Звичайні повідомлення накладок можуть використовувати той самий кадр і далі відтворюватися поверх відео. Для всіх даних одного кадру використовуйте однакові канал і PTS джерела.
Засоби відтворення реєструються у frontend/src/viewer/auxiliaryVisualization.js. Засіб надає назву, заголовок і функцію draw(context, viewport, payload, frame). Інтерактивні засоби також можуть надавати сеанс з елементами керування й обробниками вказівника. Панель керує плануванням перемальовування, налаштуваннями та очищенням.
Після зміни протоколу або засобу відтворення виконайте перевірки переглядача:
cd frontend
npm ci
npm run test:viewer
npm run build:viewer