Встроенное программное обеспечение для нового рентгеновского детектора МТЛ
Встроенное программное обеспечение для нового рентгеновского детектора МТЛ с быстрой обработкой изображений на CUDA и высокоэффективным стримингом
Заказчик:
МТЛ Медицинские Технологии (Россия)

Links and publications:
Применение GPU для обработки рентгеновских снимков и томографической реконструкции, страница 40 (VIII Всероссийская конференция производителей рентгеновской техники)
Операционные системы:
Linux

Платформы:
Arm64

Стек:
C++ 14–17, CUDA

Локализация:
Русский, английский

Описание

Встроенное программное обеспечение управляет оборудованием детектора, получает части изображения от отдельных рентгеновских датчиков, объединяет их в единое выходное изображение, обрабатывает и отправляет его на хост-компьютер.

Встроенный конвейер обработки изображений на основе CUDA позволяет корректировать изображение в реальном времени, например, осуществлять dark и gain коррекции, коррекцию дефектов и зазоров сенсора, настройку уровней и гаммы, построение HDR-изображения. Конвейер позволяет использовать внешние модули обработки, которые можно объединять в цепочку без необходимости модификации прошивки.

Полученные изображения можно хранить локально на устройстве, просматривать напрямую через соединение HDMI, отправлять на хост-компьютер по протоколу GigE Vision или передавать в потоковом режиме через встроенный веб-интерфейс.
Особенности

  • Интегрированный гибкий конвейер обработки изображений на основе CUDA
  • Возможность использования пользовательских модулей обработки
  • Высокая производительность обработки: до 60 кадров в секунду на больших изображениях с разрешением 3624x4560 (16 бит)
  • Поддержка режима получения изображения HDR
  • Быстрая собственная реализация протокола GigE Vision без промежуточного копирования памяти и с поддержкой каналов до 10 Гбит/с
  • Генерация функций GeniCam "на лету" в зависимости от конфигурации и настроек устройства
  • Веб-интерфейс с потоковым видео в реальном времени
  • Прямой вывод HDMI с возможностью масштабирования/дополнения
Процесс разработки

Получение, обработка и дальнейшая отправка изображения на хост-компьютер могут быть довольно затруднительными из-за больших размеров изображений (до 3624x4560, 16 бит) и ограниченных вычислительных возможностей встроенного оборудования. Поэтому основные усилия были направлены на оптимизацию конвейера обработки изображений, сокращение промежуточного копирования больших данных и оптимальное распараллеливание всех внутренних процессов.

Большинство шагов обработки изображения выполняются на CUDA за один проход, что обеспечивает высокую производительность до 60 кадров в секунду. В то же время конвейер обработки поддерживает внешние кастомизируемые модули обработки, которые можно настраивать и использовать в режиме реального времени.

Один пул буферов изображений используется на всех этапах, от получения частей изображения до обработки и потоковой передачи. Такой подход гарантирует отсутствие промежуточного копирования изображений, что приводит к высокой производительности.
Быстрая внутренняя реализация протокола GigE Vision оптимизирует использование сети и позволяет использовать скорость соединения до 10 Гбит без потери кадров.

Внедрение центрального хранилища функций GeniCam дает полный контроль над всеми функциями устройства. Файл .xml со списком функций создается во время выполнения, что позволяет автоматически настраивать его в соответствии с конфигурацией и настройками устройства.