📋 Каталог форматов данных

Форматы данных, используемые в VeriDepth API. Источник истины — DataFormatRegistry.CreateDefault() в src/Storage.DataCatalog.Abstractions.

A. Форматы captures (загружаемые файлы)
measurement_capture_png/v1 Активный PNG · Стерео-кадр с измерением

PNG-файл с embedded метаданными в tEXt-чанках. Кадр самоописателен — все ключевые поля сервер извлекает автоматически.

Content-Type при загрузке: image/png

Ключевые tEXt-поля внутри PNG:

Поле (JSON-путь)Описание
FrameMetadata.SchemaVersionДолжно быть measurement_capture_png/v1
FrameMetadata.Device.DeviceUniqueId→ EvidenceDeviceId / DeviceId
FrameMetadata.Device.HardwareDeviceId→ HardwareDeviceId
FrameMetadata.CalibrationLinkage.CalibrationId→ CalibrationRef
FrameMetadata.CalibrationLinkage.BaselineMmБазис стерео в мм
CalibrationПолный профиль калибровки JSON

Правый кадр встроен в PNG. Сервер вычисляет ImageSha256 = SHA256 пикселей изображения (без EXIF/tEXt) для дедупликации.

stereo-scan-video/v1 Активный AVI · Видео-скан эндоскопа

AVI-файл со стерео-видео side-by-side (левый|правый кадр, RGB24, без потерь). Используется для 3D-реконструкции.

Content-Type при загрузке: video/x-msvideo

Обязательный заголовок: X-Format-Version: stereo-scan-video/v1

HTTP-заголовки (метаданные):

ЗаголовокОписание
X-Device-IdID устройстваобяз.
X-Hardware-Device-IdHardware ID прибора
X-Calibration-RefID калибровки
X-Artifact-UidСтабильный UID артефакта (для связи с другими объектами)

Кастомный RIFF-чанк vdMt: UTF-8 JSON структуры StereoScanVideoMetadata — artifact_uid, device_id, hardware_device_id, calibration_id, calibration_profile_json, stereo_layout, fps, frame_count, pixel_format, created_at_utc, source_class, consent.

Полная спека: src/Storage.DataCatalog.Abstractions/StereoScanVideoMetadata.cs

B. Форматы записей измерений
training-evidence/v1 Активный JSON · Запись измерения с наземной истиной

JSON-документ, описывающий одно измерение и связанный с capture (PNG или видео).

{
  "schemaVersion": "training-evidence/v1",      // обязательно
  "evidenceId":    "gtpkg-<hex>",              // обязательно, уникальный ID
  "captureSha256": "<sha256>",                  // обязательно, capture должен существовать
  "deviceId":      "0454628",                    // обязательно
  "sourceClass":   "point_to_point",             // обязательно
  "conditionBucket": "standard",                 // обязательно
  "consent":       "explicit_opt_in",            // обязательно, только это значение
  "measurementJson": { ... },                    // данные измерения
  "groundTruthJson": { ... }                     // наземная истина (опц.)
}
sourceClassОписание
point_to_pointИзмерение расстояния между двумя точками
scanПолный видео-скан эндоскопа
our_real3d_cubeКуб с вмятинами (наш реальный 3D-объект)
other_device_metrology_boardКалибровочная доска от другого устройства
C. Форматы калибровки
calibration-profile/v1 Активный JSON · Профиль стерео-калибровки

JSON-документ с полной стерео-калибровкой прибора. Загружается через POST /api/calibrations/v1/devices/{serial}/calibrations.

ПолеТипОписание
schemaVersionstringДолжно быть calibration-profile/v1 *
calibrationIdstringУникальный ID, напр. cal-<hex> *
deviceSerialstringСерийный номер прибора *
rmsStereoPxdoubleRMS стерео в пикселях *
baselineMmdoubleБазис между камерами в мм *
k5PassedboolПрошёл ли тест k5 *
isRecommendedActiveboolРекомендована ли как активная *
computedAtISO 8601Время вычисления
softwareVersionstringВерсия ПО, вычислившего калибровку
orientationobjectrotationDegrees, flipHorizontal, flipVertical
profileJsonobjectПолные интринсики L/R, экстринсика (R, T) *

Спека: CalibrationApiModule.vb, метод TryValidateProfile. Текущий активный профиль 1/11: serial 0454628, cal-ee1abd6a3a501ff5cd759a6c6a95ad9e, baselineMm=3.556, rmsStereo=0.803px.

D. Форматы дистрибутивов
distribution/windows Активный ZIP · Windows x64

ZIP-архив Windows-дистрибутива. Content-Type при загрузке: application/zip. X-Platform: windows.

distribution/linux-x64 Активный TAR.GZ · Linux x64

TAR GZ-архив Linux-дистрибутива. Content-Type при загрузке: application/x-tar. X-Platform: linux-x64.

VeriDepth DataFormat Catalog · Актуально 2026-06-28 · Источник истины: DataFormatRegistry.CreateDefault()