пресс-центр

Программное обеспечение микротомографа считает модель на CUDA

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

Масса микротомографа — 450 кг, ширина — 99 см, глубина — 50 см, высота — 1,5 м.

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

 

Рис. 1 Внешний вид

 

Разработка

 

 

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

Для разработки ПО были использованы алгоритмы полигонизации 3D-модели, создана специальная библиотека для объемно-воксельного рендеринга и сохранены объемные данные в формате октодеревьев. На стадии отладки был создан собственный 12-битный формат для хранения изображений с оттенками серого.

Для просмотра результатов сканирования в 3D-редакторах применялся алгоритм «Марширующие кубы», который проходит скалярное поле, при каждой итерации просматривает восемь вершин куба, параллельного осям координат. Далее алгоритм определяет полигоны, образующие заданную изоповерхность, которая проходит через данный куб. Полигоны выводятся на экран.

 

 

Трехмерный пиксель носит название «воксель». Объемно-воксельный рендеринг применялся для просмотра моделей. Области просмотра масштабируются, и секущая плоскость располагается под разными углами. С помощью секущей плоскости можно получить изображение среза с разрешением 1 микрометр.

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

 

Отладка

Оптимизация иногда занимает времени больше, чем разработка. Задача этапа — сократить время построения трехмерной модели до 2 часов. В микротомографе используется камера PIXIS-XF:2048B. Для каждого объекта томограф делает 360 снимков, разрешение одного снимка — до 8000х8000. Отладка производилась на полученных с томографа проекционных снимках.

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

В первой версии ПО входные данные содержали изображения в формате TIFF с 16-битным кодированием оттенков серого. Указанная глубина цвета оказалась избыточной и замедляла расчеты. Однако 8-битная глубина давала размытое изображение. Поэтому мы выбрали глубину цвета в 12 бит.

Задача реконструкции 3D-модели делится на небольшие задания, распределяемые центральным модулем программы по сети серверов в кластере. На серверах используется программно-аппаратная архитектура параллельных вычислений CUDA, которая реконструирует объёмные данные из проекций и ускоряет вычисления с помощью графических процессоров NVIDIA.

Решение аналогичной задачи на CPU заняло бы меньше времени при разработке, но продукт работал бы гораздо медленнее. В итоге, с помощью CUDA необходимое для расчета одной модели время уменьшается пропорционально числу серверов в кластере, поскольку вычислительные задачи отлично распараллеливаются, и все серверы полностью загружены. Программное обеспечение для микротомографа поддерживает научную карту NVIDIA Tesla K80 24GB и игровую EVGA GeForсe GTX TITAN на 12GB.

Для кроссплатформенности единый исходный код написан на C++/Qt, и программное обеспечение собрано под разные операционные системы: Microsoft Windows XP/Vista/7, Linux.

Детальное описание расчета доступно по ссылке.