Программное обеспечение FastVCR для камер машинного зрения XIMEA
Обновлено:
Готовое приложение для захвата и обработки кадров с камер XIMEA на видеокарте NVIDIA в реальном времени — от RAW до сжатого JPEG/JPEG2000 и записи на диск. 65-мегапиксельная камера — 60–70 фпс. Для тех, кому нужен рабочий софт под камеру, а не разработка с нуля.
FastVCR — программное обеспечение для камер машинного зрения XIMEA с полным конвейером обработки изображений на видеокарте NVIDIA в реальном времени. Программа принимает «сырые» кадры с камеры (USB3 или PCIe), выполняет на GPU весь конвейер ISP — от линеаризации и демозаики до шумоподавления, тон-маппинга и кодирования — и выдаёт результат на монитор, в файлы JPEG или видео на SSD, либо в RTSP-поток с минимальной задержкой. На NVIDIA GeForce RTX 4090 FastVCR обрабатывает поток с 65-мегапиксельной камеры (9344×7000) в реальном времени.
Взять FastVCR или собирать конвейер самому? Связать SDK камеры, дебайер, цветокоррекцию, шумоподавление, кодек и запись в один realtime-конвейер — это недели интеграции. FastVCR даёт это готовым приложением с GPU-обработкой и управлением сенсором: подключаете камеру XIMEA и работаете, а не пишете и отлаживаете конвейер.
Мы сами написали эти алгоритмы
Кодеки и ISP-модули Fastvideo — это не обёртки над чужим кодом. Алгоритмы демозаики, шумоподавления, тон-маппинга и кодеков JPEG/JPEG2000 мы спроектировали — а многие и придумали — сами и сами реализовали на CUDA, на базе экспертизы в обработке изображений, которую нарабатываем с 2009 года. Поэтому вы получаете цельное, настроенное решение, а не набор GPU-примитивов; и если вашей задаче нужно что-то специфическое, мы можем изменить сам алгоритм, а не просто вызвать его.
Компания XIMEA - известный производитель камер для промышленных, медицинских и научных приложений. Эта компания предлагает компактные и высококачественные продукты с различными разрешениями, частотой кадров, интерфейсами USB3 и PCIe, спектральной чувствительностью, разнообразными сенсорами. Камеры XIMEA могут поставляться с интерфейсом PCI-Express, который значительно улучшает пропускную способность и позволяет использовать приложения в реальном времени для камер с высоким разрешением и высокой частотой кадров.
Камеры XIMEA поставляются с программным обеспечением CamTool, которое может использоваться для тестирования или для приложений с низкой частотой кадров. Чтобы преодолеть это существенное ограничение, мы разработали программное обеспечение на базе графического процессора NVIDIA для работы с камерами XIMEA, обеспечивающее максимальную производительность и высокое качество изображений в режиме реального времени. Вы можете скачать это программное обеспечение (версия для Windows) и протестировать его с камерами XIMEA (8/12-бит, монохромные или цветные).
Для чего нужен быстрый софт для камер XIMEA?
Если мы посмотрим на технические характеристики последней серии сенсоров SONY Pregius 4-го поколения, то увидим, что большинство из них имеют версию "high speed", что означает, что у этих матриц не только высокое разрешение, но и высокая частота кадров. Камеры XIMEA с этими сенсорами оснащены высокоскоростными интерфейсами USB3 или PCIe, поэтому они могут передавать полученные кадры с очень высокой пропускной способностью.
Это относится не только к сенсорам SONY, аналогичная ситуация наблюдается и с сенсорами Gpixel, On-Semi и AMS (CMOSIS). Современные камеры машинного зрения обеспечивают высокое разрешение и высокую частоту кадров, поэтому непросто делать обработку в реальном времени с высоким качеством и без потерь кадров, это довольно сложная задача. Но это именно то, что мы делаем с помощью программного обеспечения FastVCR, работающего на графическом процессоре NVIDIA. Параллельная реализация алгоритмов обработки изображений значительно повышает скорость, что очень критично для приложений с камерами.
Камеры машинного зрения могут обеспечивать высокое качество изображения в режиме реального времени, поэтому кроме промышленных приложений они также используются и в приложениях для потоковой передачи данных, цифрового кино, 3D, дополненной реальности и виртуальной реальности VR.
Камеры XIMEA
- Камеры XIMEA PCIe: быстрые камеры серии xiB-64
- Камеры XIMEA USB3: серия xiC
- Камеры XIMEA USB3: серия xiQ
- Встраиваемые решения и многокамерные системы: серия xiX
Серии камер xiC и xiX
Камеры xiC - это чрезвычайно разнообразное семейство камер, разработанное для сенсоров Sony Pregius™. Оно предлагает множество вариантов сочетаний сенсоров и интерфейсов.
Камеры xiX основаны на той же концепции на уровне платы и могут передавать изображения в компьютер через шину PCI Express Gen2. В сочетании с минимальными задержками и нагрузкой на процессор, камеры идеально подходят для встраиваемых систем видеонаблюдения и для мультикамерных приложений. Благодаря гибким плоским кабелям, встроенные камеры можно интегрировать в ограниченном пространстве и в непосредственной близости друг от друга.
Возможности программы FastVCR для управления камерами XIMEA
- Инициализация камеры (модель камеры, параметры по умолчанию для разрешения, частоты кадров, экспозиции и т.д.)
- Битность и формат исходных данных, получаемых от камеры
- Разрешение полного кадра и установка области интереса (ROI)
- Частота кадров
- Длительность экспозиции
- Аналоговый коэффициент усиления (Gain)
- Контроль пропускной способности камеры
- Автоматическое управление экспозицией и аналоговым коэффициентом усиления (exposure/gain)
- Дополнительные режимы: биннинг, децимация и т.д.
- Предустановки софта для быстрой смены наборов параметров сенсора
Возможности FastVCR для обработки исходных данных от камер XIMEA на видеокартах NVIDIA
- Получение "сырых" данных от камеры
- Распаковка данных
- Линеаризация исходных данных
- Вычитание темнового кадра
- Коррекция виньетирования (плоское поле)
- Автоматическое удаление битых пикселов
- Баланс белого / автоматический ББ
- Адаптивное управление экспозицией и аналоговым коэффициентом усиления
- Демозаика по алгоритму MG (окно 23 × 23)
- Шумодав на базе вейвлетов
- Шумодав по алгоритму NLM
- Цветокоррекция с помощью матрицы или DCP профиля
- Восстановление светов
- Коррекция экпозиции (управление яркостью)
- Кривые и уровни
- Повороты на 90/180/270 градусов, отражения по вертикали и по горизонтали
- Кроп
- Ресайз (уменьшение или увеличение размера кадра масштабированием)
- Поворот кадра на произвольный угол
- Подавление дисторсии с помощью LCP-профиля или с картами ремапа
- Резкость (локальный контраст)
- Гамма
- Сжатие в JPEG и сохранение кадров на SSD
- Конвертация RGB в формат NV12 для сжатия видео в h264/h265
- Автоматическое разбиение видео на отдельные файлы в формате AVI/MP4 при записи
- Встроенный RTSP-сервер для стриминга с минимальной латентностью
- Вывод обработанных кадров на монитор в реальном времени
Варианты вывода данных для программы FastVCR
- Видео вывод на монитор через OpenGL в реальном времени
- Вывод статистики работы камеры
- Сжатие в JPEG с сохранением кадров на SSD
- Сжатие видео в MJPEG (AVI), H.264/H.265/AV1 (MP4) и сохранение в видео контейнер на SSD
- Видео стриминг с минимальной задержкой через RTSP (плеер и сервер включены в комплект поставки)
- Сохранение сырых данных в форматах RAW/PGM/DNG на SSD в реальном времени
- Возможность интеграции с другим софтом, работающим на CUDA
- Интеграция с нейросетями, в том числе и на уровне GPU
Бенчмарки для FastVCR
Это программное обеспечение работает на графическом процессоре NVIDIA для параллельной обработки изображений и таким образом достигается высокая производительность, что крайне важно для приложений с камерами. Камеры XIMEA с интерфейсами USB3 и PCIe как раз и дают огромные потоки данных, которые нужно обрабатывать в реальном времени. Для камер USB3 программное обеспечение может работать с многокамерными системами, обрабатывая сырые кадры со всех камер в режиме реального времени без потери кадров. Тем не менее, наибольшая скорость передачи может быть достигнута с камерами PCIe. Программное обеспечение FastVCR может обрабатывать изображения с 65-мегапиксельной камеры (10 бит) со скоростью 60 кадров в секунду (до 70 кадров в секунду для 8 бит) на NVIDIA GeForce RTX 4090, включая импорт RAW, обработку кадров на графическом процессоре, кодирование в формате JPEG и сохранение на SSD. Это всего лишь один пример, который показывает высочайший уровень производительности. В целом, производительность зависит от сложности конвейера обработки изображений и используемого оборудования (CPU/GPU/SSD и т.д.). Демо версию программы можно загрузить для тестирования камер XIMEA для оценки качества обработки изображений, производительности и латентности.
Это программное обеспечение также может работать в режиме эмулятора камеры, чтобы дать возможность проверить производительность обработки изображений на графическом процессоре даже при отсутствии камеры. Пользователь может загрузить для обработки произвольное изображение в формате RAW/PGM/TIFF и работать с ним как с виртуальной камерой. Это очень полезно для проверки качества обработки и производительности работы софта на имеющейся у пользователя видеокарте. Таким образом, можно сразу оценить предполагаемый результат, даже без камеры.
| FastVCR на NVIDIA GeForce RTX 4090 | Разрешение | Битность | Частота кадров |
| Камера XIMEA 65 МПикс | 9344×7000 | 8 бит | 70 фпс |
| Камера XIMEA 65 МПикс | 9344×7000 | 10 бит | 60 фпс |
Как проверить эти цифры: они измерены на указанной видеокарте NVIDIA и воспроизводимы на вашем GPU — скачайте демо-программы и измерьте скорость на своих изображениях.
Измеряемый конвейер включает импорт RAW, преобразование RAW→RGB, цветокоррекцию, кодирование JPEG и запись на SSD. С камерами USB3 программа также работает с многокамерными системами, обрабатывая кадры со всех камер в реальном времени без потерь; максимальная скорость достигается с камерами PCIe.
Какая латентность (glass-to-glass) у FastVCR?
Латентность измеряется стандартным методом glass-to-glass (G2G), и в FastVCR встроен модуль для таких замеров. Для цветной камеры XIMEA USB3 3 МПикс (8 бит) при 120 фпс и мониторе 144 Гц измеренная задержка составляет около 35–40 мс; камеры PCIe и более быстрые мониторы уменьшают её ещё сильнее. Результат зависит от частоты камеры, частоты монитора, производительности GPU и сложности конвейера обработки.
Дополнительные модули обработки на видеокарте NVIDIA
- Захват RAW кадров, обработка и сохранение на SSD
- Вычисление гистограмм для сырых и для обработанных кадров
- Кривые и уровни для RAW, RGB, HSV
- Поддержка профилей DCP
- Поддержка 3D LUT
- Геометрические и аффинные преобразования
- Возможность работы в режиме HDR
- Локальный и глобальный тонмаппинг
- Возможность вывода через SDI
- Поддежка многокамерных систем
- Быстрый повтор (replay, синхронизированный вьюер) для многокамерных систем
- Высокопроизводительные кодеки JPEG2000 и Raw-JPEG на CUDA
- Возможность интеграции с FFmpeg
- Внешнее управление через скрипты на питоне
- Калибровка камер и объективов: FPN, FFC, DCP, дисторсия
- Поддержка GenICam (GenTL) и SDK от следующих производителей камер: Basler, Imperex, DALSA/Flir, IO Industries, Emergent Vision Technologoes, Lucid Vision, Daheng Imaging, Mindvision, Hikrobot и др.
- Подавление поперечных хроматических аберраций - в разработке
CLI приложение FastVCR (приложение для командной строки)
Во многих случаях приходится запускать программное обеспечение удалённо без какого-либо графического интерфейса, и это может происходить в разных ситуациях. Так часто бывает в приложениях для беспилотных летательных аппаратов или в любых других задачах с удаленным управлением камерой. Это также относится к любой длительной записи и потоковой передаче видео без прямого участия пользователя.
Чтобы соответствовать этим требованиям, мы разработали CLI приложение, которое обладает всеми вышеперечисленными функциями программного обеспечения FastVCR и может работать без графического интерфейса пользователя. Это приложение позволяет удалённо контролировать камеру, а также параметры обработки и сохранения кадров/видео.
Все указанные выше модули обработки изображений реализованы на базе нашего Fastvideo SDK для обработки изображений на видеокартах NVIDIA. Наши заказчики могут использовать эти функции в своих приложениях для быстрой обработки изображений. Здесь можно посмотреть на бенчмарки для Fastvideo SDK.
Помимо программного обеспечения FastVCR, мы предлагаем индивидуальную разработку программного обеспечения для создания решений в соответствии с требованиями заказчика. Мы можем реализовать режимы работы, зависящие от конкретного приложения, для решения необходимой задачи. Пожалуйста, заполните контактную форму ниже информацией о вашем проекте и отправьте ее нам.
Загрузить FastVCR
- Программное обеспечение FastVCR для камер XIMEA, на Windows для CUDA-12.6
- FastVCR для камер XIMEA и Jetson Xavier/Orin (Jetson Pack 5.1.1, CUDA-11.4) - по запросу
- FastVCR для камер XIMEA и Jetson Orin (Jetson Pack 6.0, CUDA-12.6) - запросу
- XIMEA SDK for Windows/Linux/ARM
Применения FastVCR
- Офтальмология, микрохирургия и медицинская визуализация
- Машинное зрение и промышленные приложения
- Медиа и индустрия развлечений
- Вещание и стриминг
- Дроны и БПЛА
- 3D-сканирование и роботизированные манипуляторы
- Аэрофотосъёмка
- Сбор данных для приложений ИИ с камерами машинного зрения
Смежные продукты и решения Фаствидео
- Fastvideo SDK — библиотека обработки изображений на видеокартах NVIDIA
- FastVCR для камер Hikrobot
- Дебайер на CUDA — быстрая демозаика по алгоритму MG
- RAW-кодек RawZipper для сжатия сырых данных с камер
- Tonemap — локальный тон-маппинг и HDR на видеокарте
- Решения Фаствидео для задач обработки изображений и видео
Блог Фаствидео на английском
- GPU software for machine vision cameras
- Gpixel GMAX3265 Image Sensor Processing
- Realtime image processing for XIMEA CB500
- GPU Software for Camera Applications
Сначала — на ваших данных, бесплатно
До любых обязательств пришлите нам несколько своих снимков или опишите задачу. Мы прогоним их через софт, покажем результат и разберём его вместе на созвоне. Если решаете двигаться дальше — заказ простой: коммерческое предложение, ваш заказ (договор/PO), наш счёт; условия лицензии уже входят в софт.
