Система рентгеновской инспекции печатных плат
Контроль оборудования, захват и обработка снимков анализ изображений и подготовка отчетов
Операционные системы:
Linux, Windows

Платформы:
x64, Эльбрус 4C–8СB

Стек:
C++ 14–17, Qt/Qml, OpenGL, the Flow

Локализация:
Русский, английский, другие по запросу
Описание

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

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

  • Простой и понятный интерфейс
  • Множество фильтров, в том числе реального времени
  • Видео режим с регулируемым биннингом
  • Поддержка любого детектора серии "Марк"
  • Использование формата: TIFF, JPG
  • Бесшовная сшивка серии изображений
  • Счётчик SMD компонентов
  • Поиск пустот SMD/BGA
  • Поиск зон плохого контакта в BGA массивах
  • Управление рентген аппаратом
  • Управление системой перемещения
  • Томография
  • Непрерывная калибровка по всему диапазону анодных напряжений
  • Навигация по технологической карте
  • Поддержка отечественных операционных систем
  • Поддержка отечественных процессоров Эльбрус 8С
Процесс разработки

Программное обеспечение для системы рентгеновской инспекции печатных плат требует серьезной обработки больших изображений в реальном времени и одновременной работы с различными модулями установки. Поскольку это был один из наших первых проектов на платформе Эльбрус 8С (также поддерживаются Linux и Windows) мы были главным образом сфокусированы на эффективном решении этих двух задач в кроссплатформенном варианте.

Сердце системы — плоскопанельный цифровой детектор — передает данные по 1 Гб Ethernet посредством протокола GigE vision. Существующие решения с открытым исходным кодом (например Aravis) не подошли нам по скорости и качеству. Известные коммерческие SDK были несовместимы с Эльбрус 8С. Поэтому мы были вынуждены реализовать его самостоятельно. Реализация получилась эффективной, полностью загружает 1 Гб канал и обеспечивает максимальную частоту кадров. Наша реализация оснащена полностью автоматической системой обнаружения детекторов, подключенных к системе, используя различные фильтры для выбора наиболее подходящего.

По этим же причинам нам пришлось реализовывать поддержку всех остальных модулей системы: механику (до 9 осей), ряд рентгеновских генераторов (Spellman, Hamamatsu, Eltech, X-Pro), оптических камер и ключей защиты. Система автоматического поиска устройств используется для поиска всех подключенных к системе устройств.

Системы для цифровой радиографии работают с большими 16-битными снимками. 16 Мп и более являются обычными размерами для захвата в реальном времени, а 100 Мп и более не предел для сшивок и технологических карт. Для всех них пользователи ожидают быструю обработку в реальном времени (30 кадров/сек и более), как минимум для самых распространенных операций, что сложно себе представить на всех целевых процессорах. Вследствие отсутствия полноценной кроссплатформенной поддержки CUDA/OpenCL/Vulkan мы были вынуждены реализовать на чистом OpenGL 3.0 весь тракт работы с изображениями, от захвата с детектора и калибровки, до оценки и обработки гистограммы, повышения резкости и подавления шума, геометрических преобразований и цветовой дифференциации областей. Результаты обработки 16-битного изображении 3000x3000 пикселей показали от ~33 мс/кадр для устаревших видеокарт AMD R5 до ~2 ms/кадр на более современных GeForce RTX 2070 Max-Q. Эти цифры включают в себя все этапы обработки, от захвата с детектора до отображения результатов.

Сложная пост-обработка и анализ изображений был реализован на OpenCV, которая достаточно быстро работает на всех целевых платформах. Эльбрус 8С удивил нас превосходной оптимизацией и показал результаты сравнимые или лучше, чем современные модели Intel/AMD.

Подробнее о разработке для платформы Эльбрус.

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

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

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

Также мы активно использовали в проекте свои собственные наработки и библиотеку Flow для ускорения процесса и достижения нужной гибкости и качества продукта.