English Українська
ДонНТУ Портал магистров

Казанцев Максим Алексеевич

Факультет компьютерных наук и технологий

Кафедра автоматизированных систем управления

Специальность Информационные системы и технологии в технике и бизнесе

Разработка инструментальных средств параллельной сегментации трёхмерных изображений с применением методов роевого интеллекта

Научный руководитель: к.т.н., доц. Привалов Максим Владимирович

Реферат по теме выпускной работы

Содержание

Введение

Обработка цифровых изображений является крайне важным процессом, который имеет широкий спектр применения, начиная от определения номера машины участника дорожного движения и заканчивая выявлением злокачественных новообразований в организме человека [1].

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

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

  1. Кластеризация
  2. Пороги
  3. Разрастание областей
  4. Разделение графа

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

1. Актуальность темы

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

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

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

Выпускная квалификационная работа посвящена решению задачи повышения эффективности и производительности алгоритмов сегментации изображений. Для нахождения решения предполагается использование роевых алгоритмов на аппаратной базе современных GPGPU [3]. В качестве программной платформы выступит стандарт параллельных вычислений OpenCL [4], а также кроссплатформенный объектно-ориентированный язык программирования высокого уровня Java [5].

2. Цель и задачи исследования, планируемые результаты

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

  1. Исследовать существующие методы и алгоритмы сегментации изображений, в том числе на основе модели поведения роевого интеллекта.
  2. Выполнить формализацию задачи сегментации трехмерных медицинских изображений с применением методов роевого интеллекта.
  3. Исследовать существующие аппаратные и программные платформы параллельных вычислений.
  4. Создать и апробировать роевые алгоритмы сегментации, распараллеленные с применением GPGPU-вычислений.

Объект исследования: методы сегментации цифровых изображений.

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

В рамках выполнения выпускной квалификационной работы магистранта предполагается получение теоретических результатов по следующим направлениям:

  1. Определение перспективного варианта алгоритмической основы разрабатываемого инструментального средства.
  2. Нахождение оптимального метода сегментирования изображения.
  3. Означивание наиболее подходящей программной платформы распараллеливания.
  4. Модификация метода сегментации в соответствии с требованиями алгоритмической и программной основы.

Для получения экспериментальной оценки теоретических результатов необходимо разработать инструментальные средства сегментации.Разработка предусматривает следующие шаги:

  1. Реализация алгоритма последовательной сегментации изображений с использованием метода разбиения графа на платформе Java.
  2. Распараллеливание реализованного алгоритма сегментации средствами стандарта OpenCL.
  3. Модификация полученного программного алгоритма для нужд сегментации трехмерных изображений.

3. Обзор исследований и разработок

Тема сегментации цифровых изображений не является новой. На текущий момент существует множество методов и алгоритмов, многие из которых себя хорошо зарекомендовали. Значительная часть существующих подходов разработана и представлена университетами Европы, США, а также ведущих стран Азии и Южной Америки.

3.1 Обзор международных источников

Методы сегментирования, использующие алгоритмы кластеризации, на текущий момент являются классическим решением задачи обработки изображений. Ярким примером современного варианта применения таких алгоритмов является метод, представленный М. Алмазруи в статье GPU-based fuzzy C-means clustering algorithm for image segmentation [6]. Объектом эксперимента стал набор медицинских изображений головного мозга человека. Алгоритм сегментации выполнялся параллельно, аппаратной платформой выступил современный GPGPU NVIDIA Tesla C2050. Программной основой стал стандарт параллельных вычислений CUDA. При сохранении приемлемого уровня качества исходного результата, распараллеливание обеспечило 674-кратное ускорение, в сравнении с последовательным выполнением алгоритма.

Полученные результаты явно указывают на перспективность использования параллельных вычислений.

Более инновационным решением задачи сегментации может стать применение эвристических алгоритмов. Статья Parallel particle swarm optimization for image segmentation [7] за авторством А. Кристиади демонстрирует использование алгоритма роя частиц (PSO) для сегментирования изображения с применением кластеризации. При проведении эксперимента также использовались технологии параллельных вычислений CUDA.

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

В статье И. Чжу GPU accelerated fuzzy connected image segmentation by using CUDA [8] приводится описание распараллеливания алгоритма сегментации, в основе которого лежит метод нечетких связностей.

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

Другим, достаточно популярным и хорошо себя зарекомендовавшим, является метод сегментации с использованием алгоритма разрастания областей. В статье П. Н. Хаппа A Parallel region growing algorithm for image segmentation on GPUs [9] описывается применение распараллеленной версии данного алгоритма для сегментирования изображения.

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

Результаты эксперимента показали отсутствие значительной разницы в качестве результата сегментации при помощи исходной и модифицированной в угоду параллелизму версий алгоритма. Кратность ускорения в сравнении с последовательным выполнением на CPU варьируется от 1.38 до 6.86, она повышается при увеличении объема обрабатываемой визуальной информации.

В статье П. Ф. Фельзенцвальба Efficient graph-based image segmentation [10] представлен метод сегментации изображения с использованием алгоритма разбиения графа.

Результаты эксперимента показали производительность и гибкость представленного метода сегментирования. Несмотря на то, что алгоритм был представлен достаточно давно, он до сих пор остается производительным, эффективным и способен выдавать удовлетворительны результат при небольших временных затратах.

3.2 Обзор национальных источников

Публикация Использование пчелиных алгоритмов для решения комбинаторных задач [11] за авторством В. М. Курейчика демонстрирует использование разных алгоритмов для нахождения решения комбинаторной задачи разбиения графа.

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

В публикации В. В. Курейчика Роевой алгоритм в задачах оптимизации [12] приводится описание работы алгоритма, основанного на поведении колонии медоносных пчел, при решении оптимизационных задач проектирования.

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

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

3.3 Обзор локальных источников

На кафедре автоматизированных систем управления (АСУ), факультета компьютерных наук и технологий Донецкого национального технического университета проводятся исследования и разработки в области эвристических алгоритмов. Примером значимых работ может служить монография Метаэвристики за авторством Ю.А. Скобцова и Е.Е. Федорова [13].

Среди магистрантов кафедры АСУ проводились исследования и разработки в области применения эвристических алгоритмов к задаче сегментации изображений. Примером результатов таких исследований стала выпускная квалификационная работа магистранта С.А. Эль-Хатиба Компьютерная система сегментации медицинских изображений на основе алгоритма муравьиных колоний [14], а также его публикация уже в качестве аспиранта Компьютерная система сегментации медицинских изображений методом роя частиц [15].

4. Параллельная сегментация трехмерных изображений на основе алгоритма разбиения графа с применением роевого интеллекта

Основой метода [16] является представление изображения в виде графа, в котором вершины – это пиксели изображения. Длина ребер между вершинами определяется разностью характеристик двух соседних пикселей, на основании которых осуществляется сегментация. Значение длины ребра рассчитывается по формуле (1):

(1)

где Vi, Vj - i-я и j-я вершины соответственно, I(Pj) - характеристика пикселя Pj, на основании которой осуществляется сегментация.

Начальный этап алгоритма предполагает сравнение пикселей с 4 (северный, южный, западный, восточный) или 8 соседними (добавляются промежуточные). Такой подход позволяет сделать выбор в пользу производительности или же качества конечного результата. После прохождения данного этапа будет получено большое количество разрозненных сегментов. Далее, согласно критерию (2) происходит объединение этих сегментов:

(2)

где Diff(C1, C2) - наименее длинное ребро между двумя сравниваемыми сегментами, MInt(C1, C2) - меньший из максимальных перепадов характеристик сегментации внутри рассматриваемых сегментов. Схематически объединение сегментов может быть представлено следующим образом (рис. 1):

Рис. 1. Объединение сегментов

На практике, при программной реализации данного алгоритма, более эффективным подходом будет обработка массива ребер графа, отсортированных по возрастанию их веса. Каждое ребро проходит проверку н возможность объединения сегментов, которые оно соединяет. Следует понимать, что на начальном этапе каждый пиксель представляет свой сегмент.

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

Помимо уже указанной возможности регулирования количества ребер в графе, существует способ модификации расчетной формулы разности пикселей (3):

(3)

где xi, yi, zi - координаты пикселя, ri, gi, bi - его показатели по каждой из цветовых составляющих модели RGB. Такой способ расчета позволит более точно определять на изображении разрозненные участки, которые относятся к одному объекту.

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

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

На текущем этапе выполнения выпускной квалификационной работы предполагается [17] использовать роевой алгоритм для эффективного распределения мощностей выбранной аппаратной базы.

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

Оптимизация распределения нагрузки с использованием алгоритма пчелиной колонии требует предварительной оценки объема и некоторых других критериев входной информации.

Основой представляемого подхода является распределение пикселей исходного изображения на некоторое количество блоков по определенному критерию. Для каждого такого блока, по формуле (4), будет рассчитано количество выделенных вычислительных элементов:

(4)

где bi - количество вычислительных элементов блока, B - глобальное число вычислительных элементов текущей аппаратной платформы, f(xi) - значение целевой функции блока, которое зависит от его размера, min(F(X)) и max(F(X)) - минимальное и максимальное значение целевой функции среди всех блоков соответственно.

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

Ключевые моменты описываемого метода сегментации изображений могут быть схематически представлены следующим образом (рис. 2):


Рис. 2. Алгоритм сегментации (Анимация: 133 кб, 8 кадров, неогр. число повторений)

Предполагается, что программной основой распараллеливания представленного алгоритма выступит универсальный кроссплатформенный стандарт параллельных вычислений OpenCL. Среди ведущих стандартов в сфере параллельных вычислений (CUDA, OpenCL, OpenMP и др.), выбранный отличается кроссплатформенностью и легкостью интеграции в различные системы, при этом отставание в производительности от основного конкурента в лице CUDA незначительно и с выходом новых версий стандарта становится все меньше [18].

На текущий момент, реализована последовательная версия алгоритма, сегментирующая двумерные медицинские изображения МРТ, размером 512 на 512 пикселей. Программная реализация обеспечена средствами платформы Java.

При проведении эксперимента, сегментация изображения осуществлялась несколькими версиями алгоритма (с использованием 4-ех связного и 8-ми связного графа) при разных значениях аргумента k. Результаты замеров времени приведены в таблице 1.


Таблица 1. Результаты эксперимента
Связность графа k Затраченное время, сек
1 4 300 31,188
2 4 3000 27,438
3 4 30000 30,971
4 8 300 35,094
5 8 3000 34,693
6 8 30000 35,024

Результаты эксперимента говорят о том, что, на данном этапе реализации алгоритма, использование 4-ех связного графа не дает значительного преимущества в скорости выполнения. При этом, с субъективной точки зрения, 8-ми связный граф обеспечивает более высокий уровень качества конечного результата. На рис. 3 представлена исходное изображение, которое использовалось при проведении эксперимента.


Рис. 3. Исходное изображение

На рисунках 4(а) и 4(б) представлены результаты сегментации изображений при значении k = 3000.


а) С использованием 4-ех связного графа
б) С использованием 8-ми связного графа

Рис. 4. Результаты сегментации

Вывод

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

На текущем этапе выполнения работы обеспечено достижение следующих целей:

  1. Проведены исследования существующих методов и алгоритмов сегментации изображений, в частности, на базе современных аппаратных и программных платформ.
  2. Исследовано применение эвристических алгоритмов к задаче сегментации изображений.
  3. Определен перспективный вариант алгоритма, который смог бы выступить основой разрабатываемого инструментального средства.
  4. Выбраны удовлетворяющие требованиям программная и аппаратная платформы для будущих исследований.
  5. Сформулирована математическая постановка задачи сегментации изображений с использованием алгоритма разъединения графа, а также методов роевого интеллекта колонии медоносных пчел.
  6. Реализована начальная версия последовательного выполнения представленного алгоритма для нужд сегментации двумерных изображений
  7. Получены первые практические результаты исследований и разработок.

Дальнейшим направлением исследований и разработки будет:

  1. Нахождение наиболее оптимального набора характеристик изображения, которые лягут в основу расчетной формулы разности пикселей. Возможно задействование дополнительных моделей и алгоритмов для определения такого набора.
  2. Модификация полученного алгоритма для обеспечения возможности сегментации трехмерных изображений.
  3. Эффективная реализация распараллеливания разработанного алгоритма сегментации на основе выбранной программной базы.

На момент написания реферата, магистерская работа не завершена. Окончательное завершение планируется в мае 2018 года. Полный текст работы и материалы по теме могут быть получены у магистранта или его научного руководителя не ранее указанной даты.

Список источников

  1. Сегментация (обработка изображений) [электронный ресурс]. / Материал из Википедии, свободной энциклопедии. Режим доступа: https://ru.wikipedia.org/wiki/...
  2. Сегментация изображений [электронный ресурс]. Режим доступа: https://habrahabr.ru/post/...
  3. CUDA: Как работает GPU [электронный ресурс]. Режим доступа: https://habrahabr.ru/post/...
  4. OpenCL: Что это такое и зачем он нужен [электронный ресурс]. Режим доступа: https://habrahabr.ru/post/...
  5. Java [электронный ресурс]. / Материал из Википедии, свободной энциклопедии. Режим доступа: https://ru.wikipedia.org/wiki/...
  6. M. Almazrooie GPU-Based Fuzzy C-Means Clustering Algorithm for Image Segmentation / M. Almazrooie, M. Vadiveloo, and R. Abdullah – School of Computer Sciences, National Advanced IPv6 Center (NaV6), Universiti Sains Malaysia, Malaysia, 2016.
  7. A. Kristiadi Parallel Particle Swarm Optimization for Image Segmentation / A. Kristiadi, Pranowo, P. Mudjihartono – Atma Jaya Yogyakarta University, Indonesia, 2013.
  8. Y. Zhuge GPU Accelerated Fuzzy Connected Image Segmentation by using CUDA / Y. Zhuge, Y. Cao, J. K. Udupa, and R. W. Miller – Radiation Oncology Branch, National Cancer Institute, National Institutes of Health, USA, 2009.
  9. P. N. Happ A Parallel Region Growing Algorithm for Image Segmentation on GPUs / P. N. Happ, R. Q. Feitosa, C. Bentes, R. Farias – Federal University of Rio de Janeiro, Brazil, 2012.
  10. P. F. Felzenszwalb Efficient Graph-Based Image Segmentation / P. F. Felzenszwalb, D. P. Huttenlocher – Massachusetts Institute of Technology, USA, 2003.
  11. В. М. Курейчик Использование пчелиных алгоритмов для решения комбинаторных задач / В.М. Курейчик, А.А. Кажаров // «Искусственный интеллект» – Таганрог, 2010 – №3. – С. 583-589.
  12. В. В. Курейчик Роевой алгоритм в задачах оптимизации / В. В. Курейчик, Д. Ю. Запорожец // «Известия ЮФУ. Технические науки» – Таганрог, 2010 – Тематический выпуск – С. 28-32.
  13. Ю.А. Скобцов Метаэвристики / Скобцов Ю.А., Федоров Е.Е. – Монография. – Донецк: Ноулидж, 2013. – 426 с.
  14. Реферат по теме магистерской работы «Компьютерная система сегментации медицинских изображений на основе алгоритма муравьиных колоний» [электронный ресурс]. Режим доступа: http://masters.donntu.ru/2011/fknt/...
  15. Ю.А. Скобцов Компьютерная система сегментации медицинских изображений методом роя частиц / Ю. А. Скобцов, С.А. Эль-Хатиб // «Вестник НТУ ХПИ» – Харьков, 2015 – №33(1142) – С.144-151.
  16. Эффективная сегментация изображений на графах [электронный ресурс]. Режим доступа: https://habrahabr.ru/post/...
  17. М.А. Казанцев Параллельная сегментация трехмерных изображений на основе алгоритма разбиения графа с применением роевого интеллекта / М.А. Казанцев, М.В. Привалов // Сборник статей студенческой научно-технической конференции «В мире компьютерных технологий» – Севастополь, 2017 – С.43-47.
  18. K. Karimi A Performance Comparison of CUDA and OpenCL / K. Karimi, N. G. Dickson, F. Hamze – D-Wave Systems Inc., Canada, 2010.