VizorLabs

Практическое руководство для разработчиков

Начать работу с VL Exchange

Как подготовить модель или сценарий к переносу, подключить их к платформе и проверить результат.

Draft / Experimental

Что переносится между платформами

Контекст инициативы: почему видеоаналитика не переезжает вместе с моделью. Для общей картины откройте VL Exchange.

VL Exchange предлагает общие правила переноса видеоаналитики. Вместе с моделью передаётся описание её входов и результатов, а вместе со сценарием — правила работы с событиями и состоянием.

Для этого предлагаются два формата: VLMP для моделей и VLSP для сценариев. VLBP — внутренний формат блоков VL. Другой платформе не нужны наш редактор или облако.

ONNX описывает вычисления модели, RTSP и ONVIF помогают работать с видео и устройствами, API связывают системы. VL Exchange дополняет их правилами запуска модели и сценария на другой платформе.

ИИ может помогать собирать сценарий в визуальном low-code-редакторе и писать адаптеры. В схеме видны блоки и связи: это помогает обсуждать и менять логику, не начиная каждый раз с чтения сгенерированного кода. Такое сочетание можно развивать и в VL. Проверка нужна в любом случае: визуальный граф не гарантирует корректной работы блоков.

Повторный запрос к ИИ может дать другой вариант. Для проверки исполнения важно зафиксировать готовый сценарий, версии моделей и компонентов, среду и входные данные, а затем сравнить результаты.

VL Exchange предназначен прежде всего для повторного использования уже готовой аналитики при переносе между платформами разных производителей. Сценарий можно написать вручную, собрать в редакторе или создать с помощью ИИ. Общие правила описывают входы, события и проверки, сокращая повторную работу. Принимающая платформа должна поддерживать согласованный профиль, а лицензия — разрешать перенос. Платформы по-прежнему конкурируют качеством аналитики, производительностью и поддержкой.

Полные спецификации, схемы и справочные реализации доступны в репозитории VL Exchange. Ниже приведены ссылки на текущие профили и примеры.

Технический центр VL →

Спецификации и примеры на GitHub

В README — команды запуска, зависимости и ограничения. В спецификациях — правила работы с пакетом. Учебные примеры используют синтетические данные и не требуют закрытого SDK.

МатериалОткрыть на GitHub
С чего начать: READMEEnglish README · Русский README
Публичный пакет модели VLMPРусский · English
Пакет сценария VLSPРусский · English
Синтетические примерыМодель · Сценарий
Пакет и адаптер платформыРусская документация · English guide
Результаты и ограниченияРусский · English
Профиль защитыРусский · English

Статус — Draft / Experimental. Спецификации обмена задуманы как открытый стандарт, для которого не потребуется коммерческая лицензия. Условия лицензирования спецификаций и справочного кода находятся на согласовании; публикация файлов не заменяет лицензию на их использование. Условия коммерческих пакетов определяет их правообладатель.

VLMP: пакет модели

VLMP — это модель вместе с инструкцией для платформы. В пакете находятся файлы модели, описание входных и выходных данных и контрольные примеры. Манифест указывает версию формата, зависимости, точки входа и контрольные суммы файлов.

Разные платформы должны одинаково готовить данные и понимать результат: учитывать порядок каналов, размер изображения, типы значений и значения классов. Для детекторов дополнительно важны координаты и постобработка. Проверка классификатора не означает, что профиль детекции тоже проверен.

Исторический профиль v0.1 проверен только для классификации на CPU: ONNX FP32, фиксированный batch 1. Результат нельзя переносить на детекторы, сегментацию, динамические размеры, TensorRT или GPU.

Минимальный порядок проверки

  1. Проверить версию, профиль и структуру пакета до импорта кода.
  2. Сверить список файлов и их SHA-256 с доверенным эталоном.
  3. Проверить доступность точных зависимостей и совместимость среды.
  4. Запустить контрольные примеры (golden tests) и сравнить результаты с ожидаемыми значениями и допусками.
  5. Зафиксировать хеш неизменённого пакета и версии исполнителя.

VLSP: исполняемый сценарий

VLSP передаёт Python-логику сценария вместе с описанием входов, результатов и состояния. Например, сценарий определяет, когда появление человека в зоне считать событием. Принимающая платформа запускает сценарий, передаёт ему контекст и результаты моделей, а затем принимает события. Визуальный граф блоков VL переносить не нужно.

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

Контрольные последовательности помогают проверить идентификаторы событий и повторный запуск. Один и тот же код может дать разные результаты, если платформа иначе передаёт время или сбрасывает состояние.

Для защищённой поставки код упаковывается согласно отдельному профилю защиты. Обычный ZIP с Python не является защитой исходной логики.

Attribution & Branding: авторство и бренд

Экспериментальный профиль позволяет добавить к пакету VLMP или VLSP сведения об издателе, авторах модели и сценария, версии и происхождении решения. Авторы модели и сценария могут отличаться друг от друга и от производителя платформы. Если в решении несколько моделей, можно указать нескольких авторов. Ранее выпущенные пакеты без этих сведений продолжают работать.

Где сохраняется авторствоКак это задумано
При просмотреПодпись или логотип рядом с результатами аналитики, например «Analytics by Detector Lab». Платформа выбирает размещение так, чтобы не закрывать важные элементы.
При экспорте видеоПодпись может быть встроена в экспортируемую копию. Исходный поток и оригинальная архивная запись при этом не меняются.
В метаданныхИздатель, авторы и версия пакета могут передаваться вместе с событиями и экспортируемыми данными — даже если видимая подпись отключена.

Автор может рекомендовать показ подписи, требовать его по лицензии или разрешать поставку без видимого бренда (white-label). Эти условия и техническая возможность их соблюдения — разные вещи: сторонняя платформа может не поддерживать профиль, а технически гарантировать невозможность отключения подписи нельзя.

Логотип может поставляться внутри пакета для работы без интернета. Для его показа не требуется передавать видео или результаты обработки сторонним сервисам. Атрибуция, подпись пакета, защита кода и лицензирование — отдельные механизмы; сведения об издателе сами по себе не подтверждают его подлинность.

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

Спецификация Attribution & Branding на GitHub →

Как это может выглядеть на видео

Иллюстрация на синтетическом видео: сцена и рамки нарисованы, а имена авторов вымышлены. Показаны варианты для одного и нескольких разработчиков.

Синтетический кадр видеоаналитики с подписью одного разработчика Example Lab
Один автор: Analytics by Example Lab.
Синтетический кадр видеоаналитики с подписью двух разработчиков Example Lab и Vision Workshop
Два автора: Example Lab · Vision Workshop.

Посмотреть видеодемонстрацию и исходные файлы на GitHub →

Первое испытание: один пакет, два исполнителя

Начните с синтетического примера из репозитория. Он предназначен для изучения интерфейса, а не для оценки качества коммерческой аналитики.

  1. Прочитайте README и создайте отдельную Python-среду.
  2. Установите перечисленные публичные зависимости.
  3. Соберите демонстрационный пакет штатными командами; сохраните его SHA-256.
  4. Выполните валидатор и контрольные примеры.
  5. Запустите один неизменённый архив в эталонном и независимом host.
  6. Сравните полные результаты с согласованными допусками и сохраните отчёт.

Команды и ограничения берите из README конкретной версии. Новый публичный профиль VLMP 0.2.0-draft.1 не наследует результат исторического пилота с Box 5; совместимость с платформами сторонних вендоров ещё не проверена.

Матрица совместимости и воспроизводимые проверки →

Обсудить технический пилот →

Разработчику принимающей платформы

Укажите, какие версии VLMP и VLSP поддерживает ваша платформа, в какой среде они работают и какие результаты и механизмы защиты доступны. Так разработчик поймёт, подходит ли его пакет.

  • Импортируйте пакет безопасно: отклоняйте выход за каталог, дубликаты, лишние файлы и неподдерживаемые версии.
  • Проверяйте подпись по доверенному ключу издателя, а не по ключу, безусловно принятому из самого пакета.
  • Передавайте контекст, вызовы моделей, состояние и события так, как описано в спецификации нужной версии.
  • Проверяйте лицензию и отдельно обеспечивайте безопасный запуск кода в изолированной среде.
  • Сохраните отчёт о проверке неизменённого пакета, включая случаи, когда платформа должна отклонить пакет.

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

Разработчику модели или сценария

Перед упаковкой опишите задачу модели или сценария, входы и результаты, требования к камере и среде, зависимости, параметры и ограничения. Приложите контрольные данные: синтетические или разрешённые для распространения.

В лицензии укажите, кто и где может запускать решение, разрешён ли перенос и нужна ли сеть. Сам формат пакета не даёт права использовать решение на другой платформе.

Для публикации в каталоге отдельно подтвердите коммерческий статус, наличие отдельной поставки, готовность пакета и отчёт об испытаниях. Поле «Доступен в VL» не заменяет подтверждение экспорта.

Защита и лицензирование

Открытые правила обмена не требуют раскрывать код или веса модели. Автор определяет лицензию пакета; для закрытой поставки можно дополнительно использовать защиту содержимого и контроль доступа.

ЗадачаМеханизм и граница
ЦелостностьSHA-256 выявляет изменение относительно доверенного эталона. Не удостоверяет издателя.
ПодлинностьПодпись проверяется по заранее доверенному ключу. Требует процесса управления доверием и ротацией.
Право исполненияЛицензия ограничивает срок и разрешённую установку. Online и offline имеют разные правила выдачи и отзыва.
КонфиденциальностьШифрование ограничивает чтение упакованной поставки. При локальном исполнении данные расшифровываются.
Безопасность кодаОтдельный процесс или контейнер, минимальные права, ограничения сети, файлов, ресурсов и зависимостей. Подпись не заменяет изоляцию.

В базовой модели администратору конечной системы доверяют. Защита от извлечения весов или кода из памяти таким администратором не заявляется. Упаковка и обфускация не гарантируют абсолютной защиты от обратной разработки.

Локальный прототип проверен с online- и offline-лицензиями. Сервис выдачи и отзыва лицензий и изолированная среда запуска пока не заявлены как готовые к промышленной работе. Использованный локальный сервер — тестовый.

Что проверено и что предстоит

ПроверкаСостояниеПредел результата
Исторический VLMP-пилотОдин синтетический ZIP, 5 входов, два загрузчикаClassification / CPU ONNX FP32; независимый executor и настоящий CustomModel Box 5 в контейнере, с общими компонентами SDK/ORT
Исторический VLSP-пилот15 шагов, две локальные host-реализации, 90 сравненийНе интеграция с платформой конкурента
Общий профиль защитыЛокально проверены online и offline режимыДоверенный администратор; нет абсолютной защиты памяти
Публичная самостоятельная сборкаVLMP proposed 0.2.0-draft.1 без приватного SDK; 54 теста PASSДва независимых host; фактический ONNX-результат передан защищённому VLSP в online/offline. Новый профиль не проверен с Box 5 или платформой конкурента
Первый межвендорный пилотПланируетсяНужен независимый партнёр и согласованная среда

Исторические результаты взяты из протоколов 30–31.10.2026. Их точные версии и ограничения должны сопровождать будущую публикацию.

FAQ

Можно ли обойтись без закрытого SDK VL?

Это требование к публичной спецификации и примерам. Независимый host реализует опубликованные интерфейсы и поддержанный профиль. Исторический Box 5 пилот использовал свой SDK; результат нового самостоятельного примера проверяется отдельно.

Будет ли коммерческое использование платным?

Спецификации обмена задуманы как открытый стандарт без коммерческой лицензии. Лицензии спецификаций, документации и примеров пока на согласовании. Условия коммерческого пакета определяет его правообладатель. Публикация кода сама по себе не даёт разрешения на его использование.

Как предложить изменение?

Подготовьте проблему, сценарий использования, изменение спецификации интерфейса, влияние на совместимость и тест. Откройте Issue в репозитории VL Exchange и приложите минимальный воспроизводимый пример без коммерческих данных, ключей и приватных SDK.

Как сохраняется уже оплаченная аналитика?

Для переноса нужны совместимый пакет, платформа, которая его поддерживает, и лицензия с правом переноса или переактивации. Формат пакета сам по себе не меняет условия договора.

Вернуться к инициативе →