Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Магистерская диссертация.pdf
Скачиваний:
63
Добавлен:
27.03.2015
Размер:
2.77 Mб
Скачать

2. Модели, методы и алгоритмы, положенные в основу сегментации и поиска объектов

2.1. Формальная постановка задачи и основные этапы её решения

В качестве исходных данных рассматривается компьютерная томограмма3 T , представляющая собой 3D-массив атомарных элементов (вокселов):

{(i, j, k), i =

 

, j =

 

, k =

 

},

(2.1.1)

1, L

1, W

1, H

где L , W , H длина, ширина и высота массива (размеры вдоль осей X, Y и Z соответственно).

Далее через

L , W и H также будем обозначать соответствующие

множества индексов

{1, 2, ... , L },

{1, 2, ... , W } и {1, 2, ... , H }.

 

Каждому из элементов данного массива приписано определённое целочисленное значение плотности density[i, j, k] Z . При этом известны размеры каждого воксела вдоль осей X, Y и Z ScaleX , ScaleY и ScaleZ в некоторых метрических единицах. Таким образом, объём 1 воксела исходных данных равен ScaleX ScaleY ScaleZ кубических единиц.

Рассматриваемый массив можно геометрически интерпретировать, с одной стороны, как 3D-облако точек в ограничивающем прямоугольном параллелепипеде, а с другой – как последовательность независимых друг от друга полутоновых изображений (слоёв) одинаковой длины и ширины I1, I2 , ... , IH . Несмотря на трёхмерную структуру представления данных, томограммы в формате (2.1.1), наряду с обычными двумерными матрицами интенсивностей, также называют изображениями.

Определение. Под объектом компьютерной томограммы T будем понимать некое непустое подмножество S T множества всех её вокселов (в общем случае – трёхмерное облако точек).

Определение. Сегментацией томограммы T (или одного из её слоёв-изображений Iz , z H ) будем называть разбиение соответствующего 3D-массива вокселов на непустые подмножества {Ti }, i =1, K . При этом должны выполняться следующие условия:

T =

 

T ;

 

 

 

 

 

i=1..K

i

 

 

 

(2.1.2)

 

 

 

(i j): T

 

 

i,

j

1, K

 

T

j

=

 

 

 

 

 

i

 

 

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

3 Данные электронной микроскопии, которые также рассматривались в данной работе, представляются в виде аналогичной структуры, поэтому всюду далее при рассмотрении того или иного алгоритма речь будет идти именно о томограммах.

19

Определение. Под идентификацией объекта будем понимать выделение соответствующего ему подмножества вокселов (трёхмерного облака точек), а под его 3Dреконструкцией – построение полигональной поверхности по его подмножеству вокселов одним из известных методов.

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

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

2.2. Сегментация данных компьютерной томографии и электронной микроскопии

Учитывая специфику исходных биомедицинских данных (воксельная модель представления и скалярное поле значений плотности), для решения задачи сегментации в данной работе использовался метод k-средних (или центров тяжести), впервые описанный Гуго Штейнгаузом [41] и Стюартом Ллойдом [42].

Метод k-средних заключается в минимизации суммарного среднеквадратичного отклонения точек сегментов от их центров тяжести:

Smin, ... , S

∑∑k

(x j µi )2 ,

(2.2.1)

1

k i=1

j S

 

 

 

 

i

 

 

где:

k – максимальное количество рассматриваемых сегментов, Si , i =1, k – найденные сегменты,

x j – вектор признаков, характеризующих j - й объект,

µi , i =1, k – центры тяжести сегментов, вычисляемых по следующей формуле:

µi =

 

1

 

 

x j

(2.2.2)

 

 

Si

 

 

 

 

 

 

 

 

 

j Si

 

Алгоритм разбивает множество элементов векторного пространства на заранее

известное число кластеров k . Его основная идея заключается в том, что на каждой итерации

20

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

Алгоритм завершается, когда на некоторой итерации не происходит изменения в распределении объектов по сегментам (рис. 6). Это происходит за конечное число итераций, так как количество возможных разбиений конечного множество конечно, а на каждой итерации суммарное среднеквадратичное отклонение в задаче (2.2.1) уменьшается, поэтому зацикливание невозможно.

Рис. 6. Геометрическая интерпретация результатов работы алгоритма

Учитывая регулярность исходных данных, каждому элементу 3D-массива (i, j, k ) можно поставить во взаимно-однозначное соответствие одномерный приведённый индекс, вычисляемый по следующей формуле:

index(i, j, k )= i + L j + L W k

(2.2.3)

Поскольку каждый воксел однозначно идентифицируется своим приведённым индексом в исходном наборе данных, качестве объектов в методе k-средних можно рассматривать индексы вокселов исходного 3D-массива, а единственным признаком каждого объекта считать значение плотности в соответствующем вокселе density[i, j, k]. При этом расстоянием между объектами по любой из метрик будет модуль разности между соответствующими значениями плотности.

Как показали Дэвид Артур и Сергей Васильвицкий, на некоторых классах множеств

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

[45],

где n – общее число объектов.

В данной работе метод k-средних был выбран для сегментации биомедицинских данных по нескольким причинам. Во-первых, потому что на каждой его итерации соблюдается независимость вычислений по данным, что обеспечивает очень высокий уровень параллелизма и повышения производительности при использовании графических процессоров [46]. Кроме того, он устойчив в вычислительном плане, поскольку на каждой итерации в общую погрешность вычислений вносят вклад лишь k операций с плавающей

точкой (деление на мощность сегмента при вычислении центра тяжести для каждого

21

сегмента). Вследствие этого при проведении достаточно большого числа итераций результатом сегментации будут чётко отделимые друг от друга фрагменты объектов.

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

-K – максимальное число искомых сегментов;

-N – количество итераций метода.

Шаг 0. Формируем K пустых сегментов. Распределяем между ними индексы вокселов произвольным способом, но так, чтобы каждый сегмент в итоге был непустым.

Шаг 1. В цикле по переменной I от 1 до N выполняем Шаг 2 – Шаг 3. По окончании данного цикла переходим на Шаг 4.

Шаг 2. Вычисляем центр тяжести каждого из K сегментов как среднее значение плотности вокселов, индексы которых образуют сегмент.

Шаг 3. В цикле по индексам вокселов исходного массива относим текущей индекс к тому из сегментов, центр тяжести которого находится ближе всего к значению плотности соответствующего воксела. После этого переходим к очередной итерации метода (Шаг 2).

Шаг 4. В качестве результата возвращаем совокупность непустых сегментов.

Конец алгоритма

2.3. Повышение производительности вычислений в методе k-средних

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

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

22

Пусть k – максимально допустимое число сегментов, а n – общее число вокселов в томограмме или её конкретном слое, N – число итераций метода k-средних. Тогда общую трудоёмкость вычислений на N итерациях можно оценить как

N(n +O(k) n)= N n (O(k)+1).

(2.3.1)

Здесь

O(k)

k операций сравнения и, быть может, присвоения (для сохранения

текущего индекса оптимального сегмента).

 

При распараллеливании вычислений трудоёмкость сокращается до величины

 

 

 

O(k) n

 

 

N n

+

+δ ,

(2.3.2)

 

 

 

p

 

 

 

 

 

 

где p

– число одновременно обрабатываемых вокселов на каждой итерации,

а δ

накладные расходы, связанные с передачей данных на устройство (GPU) и обратно (на CPU). Следовательно, ускорение от распараллеливания вычислений можно оценить

следующим образом:

 

 

 

 

 

 

 

 

 

 

S(k, n, p)=

N n (O(k)+1)

=

 

O(k)+1

 

.

(2.3.3)

 

O(k) n

 

 

O(k)

+1+

δ

 

 

 

 

 

 

N n +

+δ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

p

 

n

 

 

 

 

 

 

 

 

 

 

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

Можно показать, с ростом любого из рассматриваемых параметров (k, n, p), при условии неизменности двух других, ускорение увеличивается, однако его прирост замедляется.

Входе выполнения данной работы были реализованы как последовательная, так и параллельная (для GPU, с использованием технологии Open Computing Language, или OpenCL) версии сегментации методом k-средних для решения поставленной задачи. Кроме того, рассматривалась как полная (без ограничений на диапазон плотностей вокселов), так и условная сегментация (если такое ограничение присутствует).

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

экспериментов на одних и тех же исходных данных (n = 512 ×512 = 262144). Варьировались максимально возможное количество сегментов при фиксированном числе итераций метода k-средних (N = 20 ), максимально возможное количество потоков, обрабатывающих вокселы, p = 256 . Вычислительные эксперименты проводились на ЭВМ со следующими характеристиками:

23

CPU: Intel Core 2 Duo E6750 2.66 GHz

GPU: Nvidia GeForce 8800 GTS

Результаты представлены в виде следующих графиков (рис. 7, 8):

20

 

 

 

 

 

 

 

 

 

18

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

Consequtive

8

 

 

 

 

 

 

 

 

Parallel

6

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

5

10

15

20

25

30

35

40

45

50

Рис. 7. Горизонтальная ось – максимальное число сегментов, вертикальная – время выполнения в секундах

10

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

SpeedUp

3

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

5

10

15

20

25

30

35

40

45

50

Рис. 8. Горизонтальная ось – максимальное число сегментов, вертикальная – ускорение

Как видно из результатов, метод k-средних, положенный в основу решения поставленной задачи, допускает нелинейное от размера исходных данных и максимального числа сегментов ускорение при его распараллеливании с использованием графических процессоров, а полученные значения ускорений согласованы с их теоретической оценкой

(2.3.3).

24