К содержимому
  1. Главная
  2. Документация
  3. Промышленные USB-камеры
  4. Аппаратные метки времени: руководство

Аппаратные метки времени: руководство

Документация Arducam · перевод arducam-russia.ru

Метки времени — одна из ключевых функций камер GigE Vision. Обычно их применяют вместе с протоколом точного времени PTP (Precision Time Protocol), чтобы точно синхронизировать и запускать несколько камер в промышленных системах технического зрения.

Если у модуля камеры есть собственные часы, он может ставить метки времени на кадры или вычислять интервалы между ними. Метка показывает, когда именно снят каждый кадр. Опытный разработчик систем машинного зрения использует эти данные, чтобы строить сложные многокамерные приложения или точно согласованные системы, где изображение и видео объединяются с сигналами других датчиков, — так растут качество результата и эффективность.

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

Arducam решила закрыть этот пробел.

В новом SDK и плате USB3 Camera Shield Plus появилась поддержка аппаратных меток времени. Внутренние часы модуля синхронизируются со временем UTC хоста через SDK, и к каждому кадру добавляется точная глобальная метка времени. Так можно синхронизировать камеры Arducam с любыми другими датчиками системы, а нужные кадры по сохранённым меткам легко найти при постобработке, сопоставить с другими данными или передать в другие приложения.

Подробнее — в блоге Arducam. Ниже — примеры того, как получить текущую метку времени.

Решения Arducam на базе USB 3.0 для Linux и Windows

1. Формат метки времени

Текущий формат метки времени:

FILETIME: число интервалов по 100 нс, прошедших с 1 января 1601 года

Пример:

132702865451985472 — это пятница, 9 июля 2021 года, 6:42:25

2. Оборудование

Нужна только одна плата USB3.0 Camera Shield Plus с прошивкой версии 3.20 или новее.

Плата USB3.0 Camera Shield Plus

3. Программная часть

3.1. Текущая метка времени в C++

После вызова функции ArduCam_readImage заполняется структура frameData. Её тип — ArduCamOutData, он определён так:

Определение структуры ArduCamOutData

Метка времени хранится в поле u64Time структуры frameData.

Чтение метки времени u64Time в C++

3.2. Текущая метка времени в Python

Функция Py_ArduCam_readImage возвращает три значения: код состояния (status), данные изображения (data) и словарь со сведениями об изображении (cfg). Метка времени хранится в cfg, её ключ — u64Time:

Чтение метки времени u64Time в Python

Запросить цену

Укажите количество — пришлём коммерческое предложение.