# LAB E14 — full-session recorded near-live qualification

Дата прогона: 2026-07-22
Статус вычислительного прогона: accepted for recorded near-live qualification
Статус physical live K1: not tested
Navigation/safety acceptance: false
Основной результат: `e10-integrated-perception-9c10dc36640b409393c161f6cbd59b000581b39851ef7a8931898cf8f46d7e8b`

## 1. Цель

LAB E14 переносит принятый в E13 class-aware amodal 3D cuboid contour с минутной выборки на всю доступную запись `RAVNOVES00`. Эксперимент отвечает на практический вопрос: может ли текущий RTX 4090 worker непрерывно обрабатывать полный recorded stream в темпе источника, одновременно выполняя:

- декодирование fisheye-видео;
- YOLOX-S 2D detection на каждом camera frame;
- EoMT semantic segmentation на каждом пятом frame;
- calibrated KB4 camera–LiDAR projection;
- semantic/LiDAR association;
- class-prior amodal 3D cuboid completion и temporal stabilization;
- clearance и world-state publication;
- GPU/runtime telemetry;
- fail-closed accounting без скрытых потерь очередей.

E14 является capacity qualification на записанном источнике. Он не заменяет физический live K1 gate, не подтверждает hardware-clock synchronization и не выдаёт контуру право управлять беспилотником.

## 2. Входные данные

- Сессия: `20260720T065719Z_viewer_live`, операторское имя `RAVNOVES00`.
- Камера: `sensor.camera.right`.
- XGRIDS calibration slot: `camera_1`.
- Калибровка SHA-256: `05f3ad9b38b3a4fc95388a8ec83da83c745e217709e51787b3d5aad0969f6fa9`.
- Camera compute job: `recorded-camera-602ac89026ed12978619801d`.
- Camera input SHA-256: `602ac89026ed12978619801d4edea0cae24b5cc3afabd9f7af2858de6505a20e`.
- LiDAR pack: `e10-lidar-pack-576c994a6c814e2592dd6240ace3902a5db94843312c759a73ba0c9166157d2b`.
- Кадры: 0–4488 включительно, 4489 camera frames.
- Timeline: 35.421857292–484.044857292 s.
- Source span: 448.623 s.
- Timeline SHA-256: `f91dad0a3cc998f4250be794b48f437943b3c60edccbe7e5ceed59030854a807`.
- Разрешение: 800×600.
- Valid-FOV mask: 270,606 из 480,000 пикселей, 56.38% кадра.
- Valid-FOV mask SHA-256: `a40cee06b7c6f69b6a09a11563dcfd237f3de833b1ccd31459e66692e528ba63`.

Valid-FOV mask вычислена заранее из стабильной геометрии объектива и переиспользуется. За пределами полезного круга detector/semantic contour не получает содержательного изображения; маска не пересчитывается для каждого кадра.

## 3. Воспроизводимая конфигурация

### 3.1 Worker и модели

- Worker host: `<worker-host>`.
- GPU: NVIDIA GeForce RTX 4090.
- Worker storage: только `D:\NDC_MISSIONCORE`.
- Диск `C:` не использовался и не проверялся.
- Container image: `nvcr.io/nvidia/tritonserver:26.06-py3`.
- Python 3.12.3; NumPy 1.26.4; SciPy 1.16.3; PyTorch 2.13.0+cu130; Transformers 4.57.6.
- Detector: YOLOX-S, COCO-80, Triton, 640×640.
- Detector model SHA-256: `c5c2d13e59ae883e6af3b45daea64af4833a4951c92d116ec270d9ddbe998063`.
- Semantic: `tue-mps/cityscapes_semantic_eomt_large_1024`, FP16 autocast.
- Semantic model revision: `8d6b6d1a3f7b50d441afd7d247c2ed10db186e8f`.
- Semantic model SHA-256: `c265da9a74f58f5c3f4826d23ca4ca78beac0b106cca5842beca61580de5b782`.

### 3.2 Scheduler и профили

- Source pace: 1.0×.
- Detector: каждый frame, latest-wins queue capacity 2.
- Semantic: каждый пятый frame, latest-wins queue capacity 1.
- Semantic TTL: 750 ms.
- Profile: `experiments/perception/worker/e14_full_session_amodal_profile.json`.
- Profile SHA-256: `a010e32070459b123423f3d4f57aa1d839f73ed05f3df8580d12693406a1b218`.
- Detector profile SHA-256: `819bdfb0da521d187ec9ce3d3039a0ff75daa0ab473fb3d8e5fa92db9c1ddca1`.
- Semantic profile SHA-256: `ea583966bc3409f5cf563cbf4fad05e366907e67187082eb692aff53d9f5d875`.
- Runner SHA-256: `bf04efa64c3614688742fb28d2da7c428ff70b4ca61a513318cd2440e79ff776`.
- Fusion runtime SHA-256: `9724a4b5af719ea902f02a8a1efdb720e64b5af68b5759367bdc756bdd31b5c9`.
- PowerShell orchestrator SHA-256: `ac0ee42495839773a2de60090ebcb49eee979dc7ee3b8587662a3c59e19a4d03`.
- Runner generation: `D:\NDC_MISSIONCORE\runtime\derived\e14-runner-bf04efa64c36-ac0ee4249583-a010e3207045`.

### 3.3 Acceptance gates

| Gate | Порог |
|---|---:|
| Detector effective FPS | ≥9.5 |
| Detector drop fraction | ≤0.5% |
| Semantic effective FPS | ≥1.8 |
| Semantic drop fraction | ≤5% |
| Semantic completion age p95 | ≤400 ms |
| Fresh semantic coverage | ≥90% |
| World-state age p95 | ≤175 ms |
| Fused frames | ≥3500 |
| Accepted completed cuboids | ≥1500 |
| Detector/semantic failures | 0 |

## 4. Выполнение и время

- Подготовка worker input/runtime: 31.249 s.
- Source-paced replay внутри runner: 448.699 s.
- Source duration: 448.623 s.
- Replay/source ratio: 1.00017×, то есть вычислительный цикл удержал темп записи.
- Полный PowerShell orchestration wall time: 597.752 s.

Разница между replay и orchestration включает подготовку, запуск/проверку контейнерного контура, сбор и валидацию артефактов, восстановление model state и финальную уборку. Она не является inference latency кадра.

Контур выполнялся параллельно: detector и semantic workers имели отдельные bounded queues; fusion/world-state потреблял detector result на camera cadence и последнюю допустимую semantic result. Медленная semantic модель не блокировала detector loop и не накапливала безразмерную очередь.

## 5. Итоговые near-live метрики

| Метрика | Результат | Gate | Статус |
|---|---:|---:|---|
| Detector frames | 4489/4489 | полное accounting | pass |
| Detector effective FPS | 10.0045 | ≥9.5 | pass |
| Detector drops | 0 | ≤0.5% | pass |
| Detector queue max depth | 1 из 2 | bounded | pass |
| Semantic frames | 898 | every fifth frame | pass |
| Semantic effective FPS | 2.0013 | ≥1.8 | pass |
| Semantic drops | 0 | ≤5% | pass |
| Fresh semantic coverage | 99.7104% | ≥90% | pass |
| Semantic completion age p95 | 261.259 ms | ≤400 ms | pass |
| Fused frames | 3915 | ≥3500 | pass |
| Accepted 3D cuboids | 3656 | ≥1500 | pass |
| World-state age p50 / p95 | 67.439 / 102.883 ms | p95 ≤175 ms | pass |
| Failures | 0 | 0 | pass |

Fusion state accounting:

- `fused`: 3915;
- `depth-unavailable-sync-gate`: 561;
- `semantic-stale`: 8;
- `semantic-unavailable`: 5;
- semantic freshness violations: 0.

## 6. Latency decomposition

| Stage | Mean, ms | p50, ms | p95, ms | Max, ms |
|---|---:|---:|---:|---:|
| Decode | 33.438 | 31.333 | 48.551 | 77.638 |
| Detector | 31.502 | 28.524 | 47.158 | 65.501 |
| Detector queue wait | 0.202 | 0.074 | 0.200 | 23.505 |
| Projection | 0.476 | 0.397 | 0.884 | 12.028 |
| Association + cuboid | 2.575 | 1.964 | 6.834 | 26.413 |
| Clearance | 0.222 | 0.187 | 0.517 | 5.949 |
| World-state serialization | 0.075 | 0.046 | 0.233 | 0.964 |
| End-to-end world-state age | 70.425 | 67.439 | 102.883 | 182.733 |

Semantic processing:

| Stage | Mean, ms | p95, ms | Max, ms |
|---|---:|---:|---:|
| Host → device | 6.869 | 10.309 | 18.386 |
| Forward | 154.711 | 167.953 | 407.725 |
| Model postprocess | 9.825 | 14.110 | 20.840 |
| Full semantic processing | 188.479 | 206.391 | 434.399 |
| Completion age | 224.099 | 261.259 | 467.008 |

## 7. 3D geometry

Accepted class-prior-completed cuboids: 3656.

| Class | Count | Mean L×W×H, m |
|---|---:|---:|
| car | 3118 | 4.514×1.881×1.575 |
| truck | 493 | 7.016×2.514×3.125 |
| person | 31 | 0.622×0.588×1.720 |
| bus | 10 | 10.500×2.631×3.200 |
| bicycle | 2 | 1.800×1.016×1.500 |
| motorcycle | 2 | 2.100×0.874×1.450 |

- Mean support coverage: 86.19%.
- Mean inferred completion fraction: 91.56%.
- Temporal statuses: confirmed 2070; tentative 920; support-coverage reset 574; innovation reset 92.
- Orientation: support-PCA 1890; support-face-normal 1034; track-history axis disambiguation 702; track-history 23; sensor-bearing fallback 7.

Высокая completion fraction означает, что значительная часть полного объёма достроена по class priors из видимой LiDAR-поверхности. Это диагностическая геометрия с измеренным support audit, а не 3D ground truth.

Fail-closed rejections:

- fewer than 8 clustered vehicle points: 10,563;
- no semantic/LiDAR support: 4,884;
- distance innovation: 505;
- required size exceeds class bound: 395;
- support coverage below threshold: 306;
- fewer than 4 clustered non-vehicle points: 184;
- implausible cuboid: 20.

Rejection сохраняет 2D/audit evidence, но не публикует ложный полноценный 3D box.

## 8. Ресурсы и диски

- Process peak RSS: 2964.414 MiB.
- CUDA peak allocated: 2107.925 MiB.
- CUDA peak reserved: 2840 MiB.
- GPU utilization mean/p50/p95/max: 74.59% / 75% / 91% / 98%.
- GPU memory used mean/p50/p95/max: 13,274.69 / 13,273 / 13,282 / 13,284 MiB.
- GPU memory utilization mean/p95/max: 22.67% / 32% / 36%.
- GPU power mean/p95/max: 200.44 / 208.43 / 225.21 W.
- GPU temperature mean/p95/max: 49.09 / 54 / 55 °C.
- Telemetry samples: 449 at 1 s interval.

На `D:` до staging/preparation было приблизительно 389.65 GiB свободно. Runner стартовал с 415,364,739,072 bytes и закончил с 415,598,956,544 bytes при hard floor 386,547,056,640 bytes (360 GiB). После orchestration и уборки оставалось около 387.05 GiB. Временные camera frames удалены оркестратором; model state восстановлен. Диск `C:` не затрагивался.

На локальном Mac опубликованный Rerun overlay занимает 443,421,386 bytes. На момент отчёта локально оставалось около 32 GiB; лишние копии видео не создавались.

## 9. Публикация и интерфейсная проверка

- Результат дважды прошёл строгую локальную `validate_integrated_perception_result`: до и после immutable publication в canonical provider root.
- Full-session perception RRD: 443,421,386 bytes.
- RRD SHA-256: `1dc29900ddeb09897af70c7334755823b02aeaa95f203d979be4bd75fae5080b`.
- Mission Core API вернул HTTP 200 и сохранил immutable result-scoped cache.
- Сервис не перезапускался и оставался healthy во время построения и браузерной проверки.
- В Mission Core подтверждена полная шкала `00:00 / 08:55.718`.
- В режиме `Распознавание` исходная камера и `Сегментация · камера right` синхронно менялись при воспроизведении; это не статичный кадр.

Во время проверки обнаружен presentation defect режима `Кубы 3D`: blueprint имел origin `/world/perception`, поэтому исключал native cloud `/world/points` и показывал cuboids в отдельной пустой сцене. Исправление выполнено в source:

- cuboid view перенесён на origin `/world`;
- native cloud и `/world/perception` объединены в одном latest-at view;
- 12-second accumulation к cuboid view не применяется, поэтому коробки разных кадров не наслаиваются;
- дублирующий серый `/world/perception/lidar` скрыт;
- добавлены regression assertions для initial и dynamic blueprints.

Backend не перезапускался из-за операторского требования никогда не оставлять Mission Core недоступным. Поэтому вычислительный 3D result принят, source fix протестирован, но визуальная runtime-проверка исправленного blueprint остаётся отдельным коротким gate после следующего штатного перезапуска сервиса.

## 10. Артефакты

Worker result root:

`D:\NDC_MISSIONCORE\runtime\derived\e10-integrated-perception-9c10dc36640b409393c161f6cbd59b000581b39851ef7a8931898cf8f46d7e8b`

Local laboratory copy:

`.runtime/compute-experiments/e14/worker-results/e10-integrated-perception-9c10dc36640b409393c161f6cbd59b000581b39851ef7a8931898cf8f46d7e8b`

Published provider root:

`.runtime/compute-experiments/e10/worker-results/e10-integrated-perception-9c10dc36640b409393c161f6cbd59b000581b39851ef7a8931898cf8f46d7e8b`

| Artifact | Bytes | SHA-256 |
|---|---:|---|
| `result.json` | 13,799 | `ff129ee1e51e19b514ffb790a145cf17292bd49e9256de2a77a2ca2557e50e68` |
| `run-report.json` | 18,144 | `a85a714215358715120efb057991087f8b214fe6ef86ce2f68124f19287f2a4d` |
| `semantic-frames.jsonl` | 404,398 | `0156bd7450cf6e89fcc3e66831377e87089c6f322a0db382d7135246241cf6b3` |
| `fusion-frames.jsonl` | 17,008,643 | `04c6589c0d5258b47937114c80a1562b6a427456b22e8aedb8cfa86741fe183b` |
| `world-state.jsonl` | 10,699,803 | `5b030270c4ae9029690666cbde7e6191df4129f393a8530dc561b76a68b61f89` |
| `transient-perception.npz` | 8,291,832 | `36677d1b2f4260f821dcf29929dc0dea90b28a4e74ff5c777d320dda7213f659` |
| `gpu-telemetry.jsonl` | 100,917 | `d4fb026b46d25b97b7d35397d598fec23647276af6339c98898cbfea97345601` |
| full-session `perception.rrd` | 443,421,386 | `1dc29900ddeb09897af70c7334755823b02aeaa95f203d979be4bd75fae5080b` |

## 11. Что доказано и что не доказано

Доказано:

1. На RTX 4090 текущий YOLOX + EoMT + calibrated LiDAR fusion + E13 cuboid/world-state contour удерживает полный 448.623-second recorded stream в 1.0×.
2. Detector и semantic queues bounded; за 4489 frames нет ни overflow drops, ни model failures.
3. p95 world-state age 102.883 ms оставляет запас до лабораторного 175 ms gate.
4. Full-session 2D/semantic playback опубликован и работает на общей временной шкале Mission Core.
5. Все 3656 опубликованных 3D boxes прошли class bounds и support gates; rejected candidates не маскируются.

Не доказано:

1. Физический K1 live ingress → decode → inference → fusion на реальном сетевом потоке.
2. Hardware-clock camera/LiDAR synchronization.
3. Устойчивость к реальному disconnect/reconnect при работающем inference.
4. Forest-domain качество COCO/Cityscapes моделей.
5. 3D IoU, center/yaw error и recall относительно ground truth.
6. Navigation/safety authority.

## 12. Следующий gate

Следующий этап не должен улучшать recorded-видео в вакууме. Он переносит доказанный E14 compute contour на уже принятый E12 ingress:

1. подключить persistent fMP4 camera decoder к bounded shadow transport;
2. выполнять detector на 10 Hz и semantic на 2 Hz через latest-wins queues;
3. декодировать LiDAR/pose и публиковать тот же calibrated fusion/world-state contract;
4. вывести live telemetry: source age, decode/inference/fusion age, queue depth, drops, semantic freshness, reconnect generation;
5. выполнить физический K1 shadow gate 15 s;
6. при нулевых gaps/failures выполнить 60 s gate;
7. только после этого увеличивать длительность и проверять disconnect/reconnect;
8. control/navigation output оставить физически отключённым.

Отдельная короткая presentation-проверка после следующего штатного перезапуска Mission Core должна подтвердить, что исправленный `Кубы 3D` показывает latest-at cuboids непосредственно поверх native point cloud.
