ОРДЕНА ЛЕНИНА
ИНСТИТУТ ПРИКЛАДНОЙ МАТЕМАТИКИ
им.М.В.Келдыша РАН
Андрианов А.Н., Базаров С.Б., Ефимкин К.Н.
ПРИМЕНЕНИЕ ЯЗЫКА НОРМА ДЛЯ СЕГМЕНТАЦИИ
ИЗОБРАЖЕНИЙ НА ПАРАЛЛЕЛЬНЫХ ЭВМ
Москва
Андрианов А.Н., Базаров С.Б., Ефимкин К.Н.
Применение языка НОРМА для сегментации изображений на параллельных ЭВМ.¨
Аннотация
Рассматриваются вопросы применения непроцедурного языка Норма для решения задач обработки изображений различного характера.
Язык Норма предназначен для автоматизации решения сеточных задач на вычислительных системах с параллельной архитектурой. Этот язык позволяет исключить фазу программирования, которая необходима при переходе от расчетных формул, заданных прикладным специалистом, к программе.
Приведены результаты обработки 2-х и 3-х мерных изображений.
A.N.Andrianov, S.B.Bazarov, K.N.Efimkin.
The application of NORMA language for parallel image segmentation.
Abstract
The application of nonprocedural language NORMA for the segmentation of different kind images is considered.
The Norma language is a tool aimed for automated solution of the grid-oriented problems on parallel conputer systems. This language eliminate the programming phase which is necessary to pass from computational formulas, derived by an application specialist, to a computer program.
The results of 2-D and 3-D images development are indicated.
Содержание.
Введение. *
Алгоритмы сегментации. *
Программная реализация. *
Примеры обработки изображений. *
Использование методики в трехмерном случае. *
Заключение. *
Иллюстрации. *
Литература. *
Поскольку в настоящее время увеличивается использование многопроцессорных систем в численном моделировании, представляется целесообразным использование их не только для “классических” вычислительных задач, но и “сервисных” программ, одним из видов которых является обработка изображений. Использование языка НОРМА дает возможность построения программ для ЭВМ различной (в том числе параллельной) архитектурой.
Приведем описание методики, следуя в основном работе. Рассмотрим функцию – интенсивность изображения, состоящего из
квадратных пикселей (со стороной
). В центральной точке каждого пикселя (i,j) воспользуемся детектором перепадов для окна изображения
:
,
и вычислим выражения – дискретные свертки данного окна изображения с масками H1 и H2:
тогда величина градиента функции f в точке
:
, а ориентация вектора градиента в центре пикселя
:
.
Вычислим среднее значение градиента по всему расчетному полю: и из множества всех точек
выберем те, в которых
(то есть точки, в которых градиент превышает среднее значение). Обозначим это множество точек через N1.
Во множество N1 попадают не только пиксели истинных перепадов, но и близлежащие. Для их исключения применим метод подавления немаксимумов, при котором исключается конкуренция между собой соседних точек, расположенных вдоль перепада. Принимая во внимание, что определяет направление, нормальное к поверхности перепада интенсивности, определим две соседних с
ячейки
и
, задающих ближайшее к этой нормали направление. Из точек множества N1 оставим такие, в которых одновременно выполняются условия
, и обозначим это множество точек через N2. Реально на практике значение
аппроксимируется одним из восьми направлений из центра пикселя (i,j) на центры соседних ячеек, при этом углы
заменяются на
. Например с конкретные значения
и
могут быть
и
, тогда
.
Рассмотрим максимальную разность между значениями углов – направлений на центры соседних ячеек. Для сохранения свойства линейной протяженности перепада исключим изолированные выбросы интенсивности изображения. А именно из точек множества N2 оставим те, в которых одновременно. Поиск изолированных артефактов осуществляется рассмотрением круговой окрестности каждой точки радиусом
. Точка удаляется из множества в том случае, если в этой окрестности нет других точек перепада (обычно использовалась константа Q=2). Обозначим множество оставшихся точек через N3.
Для программной реализации метода использовался транслятор-синтезатор с языка НОРМА. Приведем программу получения множества N1 (строки, начинающиеся с восклицательного знака, являются комментариями):
MAIN PART VRNOR1.
BEGIN
! Начало головной программы
GRIDSOL:((I=1..LX); (J=1..LY)).
! Сетка, на которой заданы значения интенсивности
GRID1:((I=2..(LX-1)); (J=2..(LY-1))).
! Сетка, на которой определяются значения градиента
VARIABLE F DEFINED ON GRIDSOL.
! Интенсивность изображения
VARIABLE MN1 DEFINED ON GRID1 INTEGER.
! Массив для храния признака принадлежности множеству
DOMAIN PARAMETERS LX = 125, LY = 100.
! Размеры изображения
COMPUTE VRRE1(LX, LY RESULT F ON GRIDSOL).
! ФОРТРАН-подрограмма чтения массива значений
COMPUTE VRMN1(F ON GRIDSOL RESULT MN1 ON GRID1).
! НОРМА-процедура определения искомого множества
COMPUTE VRWR1(MN1 ON GRID1, LX, LY).
! ФОРТРАН-подпрограмма записи результатов
END PART.
! Конец головной программы
PART VRMN1.
! Начало процедуры определения искомого множества
F RESULT MN1
! Входной и выходной параметры процедуры
BEGIN
GRIDSOL:((I=1..LX); (J=1..LY)).
GRID1:((I=2..(LX-1)); (J=2..(LY-1))).
VARIABLE F DEFINED ON GRIDSOL.
VARIABLE MN1 DEFINED ON GRID1 INTEGER.
DOMAIN PARAMETERS LX = 125, LY = 100.
VARIABLE G DEFINED ON GRID1.
! Массив градиентов
VARIABLE SUMG REAL.
! Переменная для хранения суммы градиентов.
VARIABLE SRSUM REAL.
! Переменная для хранения среднего значения градиентов.
DISTRIBUTION INDEX I=1..15,J=1..1.
! Разбиение вычислений по 1-й координате на 15 процессов
FOR GRID1 ASSUME G = (0.125) * SQRT(
((F[I-1,J+1]+2.0*F[J+1]+F[I+1,J+1])-(F[I-1,J-1]+2.0*F[J-1]+F[I+1,J-1]))
*((F[I-1,J+1]+2.0*F[I,J+1]+F[I+1,J+1])-(F[I-1,J-1]+2.0*F[J-1]+F[I+1,J-1]))
+((F[I+1,J+1]+2.0*F[I+1,J]+F[I+1,J-1])-(F[I-1,J+1]+2.0*F[I-1]+F[I-1,J-1]))
*((F[I+1,J+1]+2.0*F[I+1]+F[I+1,J-1])-(F[I-1,J+1]+2.0*F[I-1]+F[I-1,J-1]))).
! Вычисление градиентов
SUMG=SUM((GRID1)G).
! Вычисление суммы градиентов
SRSUM=SUMG/((LX-2.0)*(LY-2.0)).
! Вычисление среднего значения градиента
GRID1T,GRID1F:GRID1/G>SRSUM.
! Определение принадлежности множеству
FOR GRID1T ASSUME MN1=1.
! Присвоение признака принадлежности множеству
END PART.
! Конец процедуры определения искомого множества
Программа транслировалась в стандарт FORTRAN-77 (при этом оператор разбиения вычислений на несколько процессов игнорируется), в параллельный Fortran-GNS и в Fortran-MPI. Первая программа реализовывалась на ПК Pentium, вторая – на МВК-100, третья – на МВК-1000.
Примеры обработки изображений.
Возьмем в качестве цифрового изображения результат численного моделирования дифракции ударной волны (число Маха 4.7, ) на плоском прямом угле, полученный по схеме С.К.Годунова, которая довольно сильно “размазывает” разрывы течения. В качестве функции интенсивности
выбиралось отношение давления к плотности (вообще говоря в качестве функции f можно брать и другой параметр, например просто плотность или энергию).
На рис.1 приведены изолинии f (пунктир – первоначальное положение ударной волны, стрелка – направление ее движения), а на рис.2-4 приведены точки множеств N1– N3 соответственно. То есть таким образом удалось выявить разрывы течения (в дальнейшем предполагается перенести на параллельные ЭВМ также и алгоритмы классификации разрывов).
Следует отметить, что приведенная методика не требует никакой априорной информации о течении и применима к результатам расчетов, полученных любым методом сквозного счета. В случае, если численное моделирование проводилось каким-либо методом, дающим осцилляции в окрестности разрыва, возможно применение процедуры сглаживания изображения с помощью какой-либо расфокусирующей маски. В случае необходимости также возможно использование алгоритмов реставрации изображения.
Проиллюстрируем обработку экспериментальной фотографии перерасширенной сверхзвуковой струи (М=1.8). Изображение сканировалось с разрешением 300 точек на дюйм в режиме 256-ти градаций серого и сохранялось в формате “инкапсулированный ПостСкрипт”. Получающийся файл (с расширением EPS) является текстовым и поэтому может передаваться и обрабатываться на ЭВМ другого типа. На рис.5 приведен результат сегментации, где хорошо видна бочкообразная структура течения.
Применение данной методики в медицине иллюстрируется рис.6 – обработке сцинтиграммы печени (размер изображения 64*64 пиксела), позволившую выявить имеющиеся аномалии.
В заключении приведем обработку фотографии персонального компьютера, полученную цифровой камерой (с разрешением 640*480) в условиях плохого освещения – рис.7. Удалось выделить основные контуры изображения, дающие представление об объектах сцены (корпус, клавиатура, монитор).
Использование методики в трехмерном случае.
В трехмерном случае мы имеем дело с функцией интенсивности , зависящей от трех переменных, а само изображение состоит из
элементарных кубических объемов.
Рассмотрим окно изображения f размером, центрированное в вокселе (i,j,k)
и применим к нему для вычисления составляющей градиента Gx оператор
Операторы для вычисления компонент Gy и Gz получаются при соответствующих изменениях ориентации Hx. Свойством этих операторов является то, что они дают наилучший (по методу наименьших квадратов) плоский контур между двумя областями различной интенсивности в трехмерной окрестности. Величина градиента определяется как .
Вначале рассмотрим тестовый пример ступенчатого перепада, когда в качестве изображения берется массив данных, в котором от нуля отличны только значения в точках, лежащих на ребрах произвольного куба (для определенности полагаем все их равными единице). Те точки, в которых выполняется неравенство , приведены на рис.8. На таком идеальном перепаде использование окна
приводит к выделению граней “толщиной” в три ячейки.
Рассмотрим такую газодинамическую задачу: в начальный момент времени область, ограниченная непроницаемыми плоскостями x=0, y=0, z=0, x=50, y=50, z=50, заполнена газом с параметрами ,
, а в подобласти
,
,
давление повышено в два раза, а остальные параметры такие же. Расчет проводился также методом С.К.Годунова.
Поскольку заведомо известно, что использовавшиеся расчетная сетка () и метод не позволяли получить хорошее разрешение контактного разрыва, в качестве функции f бралось давление и в каждой точке вычислялся градиент. Пусть
– множество всех расчетных точек. Число точек во множестве будем обозначать буквой L (то есть число точек множества
–
). Во множество
включаем те точки множества
, в которых выполнено условие
. При применении такой процедуры происходит “удаление” более слабых (по интенсивности) разрывов с одновременным утончением относительно более сильных.
На рис.9 и рис.10 в двух различных ракурсах приведено множество точек , полученное при обработке численного решения. Очевидно, что таким образом удалось локализовать головную ударную волну.
Заметим, что применение данной методике можно найти и в медицине при обработке набора томограмм – снимков слоев изучаемой области, которые “в сумме” представляют собой “трехмерное изображение”.
Описанный подход обеспечивает обработку изображений, получаемых в результате численного моделирования и физического эксперимента и повышает объективность интерпретации получаемых результатов. Использование языка НОРМА позволяет существенно облегчить разработку соответствующих программ для многопроцессорных ЭВМ, а также повысить их переносимость. Параллелизация ускоряет процесс обработки изображения, что особенно важно в трехмерном случае.
Рис.1
Рис.2
Рис.3
Рис.4
Рис.5
Рис.6
Рис.7
Рис.8
Рис.9
Рис.10
Базаров С.Б. Применение методов обработки изображений в вычислительной газодинамике // Труды 8-й Международной конференции по компьютерной графике и визуализации. Москва. 7-11 сентября 1998 г. с.258-264.
Shaw G.B. Local and regional edge detectors: some comparisons. Computer graphics and image processing. No.2. v.9. 1979. pp.135-149.
Rosenfeld A. and Kak A.C. Digital Picture Processing. New York. Academic Press. 1976. 457 pp.
Nevatia R. and Babu K.R. Linear feature extraction and description. Computer Graphics and Image Processing. No.3. v.13. 1980. pp.257-269.
А.Н.Андрианов, А.Б.Бугеря, К.Н.Ефимкин, И.Б.Задыхайло. НОРМА. Описание языка. Рабочий стандарт / Препринт ИПМ им.М.В.Келдыша РАН. №120. 1995. 52с.
Годунов С.К., Забродин А.В., Иванов М.Я. и др. Численное решение многомерных задач газовой динамики. М. Наука. 1976. 400 с.
Альбом течений жидкости и газа. Сост. М.Ван-Дайк. М. Мир. 1986. 184с.
В.З.Агранат, О.Л.Рябов, Б.В.Соколов. Способы прямого вычисления сверток матрицы чисел с некоторыми весовыми функциями / Препринт ИАЭ им.И.В.Курчатова. М. 1983. 24 с.
Zucker S.W., Hummel R.A. Three-Dimensional Edge Operator. IEEE Trans. Pattern Anal. Mach. Intell. PAMI-3. No.3. 1981. pp.324-331.