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

Известия ТулГУ. Технические науки. Вып.11. Ч. 1. Тула: Изд-во ТулГУ, 2012. С. 261-268.

4. Акиншин Р.Н., Хомяков А.В., Новиков А.В. Оценки погрешностей при выборе математических моделей диаграмм направленности и рассеяния антенны // Журнал «Антенны». №12. 2013. С. 14-19.

Новиков Александр Валериевич, начальник сектора, rts@cdbae.ru, Россия, Тула, ОАО Центральное конструкторское бюро аппаратостроения

ADAPTIVE ADJUSTMENT OF WEIGHT FACTORS IN ARRAY

A.V. Novikov

A conflict-free data structure for organizing a concurrent process of calculation of an adaptive array correlation matrix has been presented. A concurrent program of weight factor adjustment iterative process has been offered.

Key words: adaptation, array, digital filter, weight factors, macro, algorithm.

Novikov Alexandr Valeriyevich, head of sector, rts@,cdbae.ru, Russia, Tula, JSC Central Design Bureau of Apparatus Engineering

УДК 621.391

ПСЕВДОМЕДИАННАЯ ФИЛЬТРАЦИЯ ДЛЯ ОБРАБОТКИ ОПТИЧЕСКИХ ИЗОБРАЖЕНИЙ

Н.С. Акиншин, А.В. Андреев, А.И. Кальной

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

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

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

у

где i = 0, ..., p, j = 0, ..., p, k = 1, ..., Q, l = 1, ..., Q, m = 1, ..., n п = 1, ..., N.

Для подавления спекл-шумов на оптических изображениях в системах с синтезированием апертуры антенны в качестве операции Б использу-

ется псевдомедианная фильтрация [2], описываемая следующим выражением:

y

где al = med {x(m - 2, n - 2), x(m - 2, n - 1), x(m - 2, n)}, a2 = med {x(m - 1, n - 2), x(m - 1, n - 1), x(m - 1, n)}, a3 = med {x(m, n - 2), x(m, n - 1), x(m, n)}.

На рис. 1 представлена граф-схема макрооперации med_3.

Рис. 1. Граф-схема макрооперации med

На рис. 2 показана граф-схема соединения макроопераций med_3 в единую структуру, реализующую операцию псевдомедианной фильтрации в окне 3x3.

Рис. 2. Граф-схема структуры для псевдомедианной фильтрации

в окне 3*3

Рассмотрим структурно-процедурную реализацию вычислений и параллельную программу для степени распараллеливания М > 1. В таблице представлена бесконфликтная структура данных, которая используется для процедуры нелинейной фильтрации.

Бесконфликтная структура данных для реализации процедуры двумерной нелинейной фильтрации

1 X

2 X

L X

Здесь X(i) - i-я строка двумерной матрицы изображения. Наибольшая эффективность вычислений достигается, когда количество каналов памяти равно 2L, при этом номер канала и адрес элемента структуры данных определяются по формуле

Ac

NK (Xi) = a()& {mod L (i) = 0}+a(2 )& {mod L (i) = l}+... + a (2 L )& {mod 2 L (i) = 2 L -1}

Параллельная программа на языке высокого уровня для процедуры двумерной нелинейной фильтрации в окне 3*3, имеет вид

DCL (L vec, N*(N+K)/L stream);

cadr nonlinear_filter_1

for i=0 to N*(N+K)/L by 1 do;

Y

for k=2 to L by 1 do;

Y(k,i)= nonlinear_filter(Y(k-1 ,i),Y(k,i),Y(k+1 ,i));end;end;end nonline-ar_filter_1;

cadr nonlinear_filter_2;

for i=0 to N*(N+K)/L by 1 do;

Y

for k=2 to L by 1 do;

Y(k,i)= nonlinear_filter(Y(L,i - N),Y(1,i),Y(2,i));end; Y(L,i)= nonlinear_filter(Y(k-1,i-N),Y(k,i-N),Y(k+1,i));end;end nonline-ar_filter_2;

Рассмотрим параллельную программу и набор макроопераций, реализующих итерационную процедуру кластерной группировки данных (КГД) в задачах обработки изображений. Поскольку при выполнении процедуры КГД пиксели изображения полагаются пространственно-независимыми, двумерный массив изображения объекта X(m, n), m = 1,2, ..., N, n = 1,2, ..., N можно представить одномерным: X(mN + m). Каждому

элементу полученного массива x(i) ставится в соответствие вектор признаков {s(1, i), s(2, i), ..., s(M, i)} и кластерная метка r(i), указывающая принадлежность данного вектора к определенному кластеру.

На q-й итерации КГД q выполняются следующие процедуры:

- переназначение меток

rq

где arg mink(^) - функция, возвращающая номер минимального члена k-элементной последовательности, d2(a, b) - квадрат евклидова расстояния между векторами a и b;

- вычисление количества межкластерных переходов в соответствии с рекуррентной формулой:

tq := tq + \q

- вычисление суммы элементов кластера в соответствии с рекуррентной формулой:

Zq

и вычисление распределения элементов по кластерам в соответствии с рекуррентной формулой:

Nq

После выполнения вышеперечисленных процедур для k = 1, 2, ...,K вычисляются новые кластерные центры по следующей формуле:

cq

Условием окончания итерационного процесса является выполнение неравенства А < tmin, где tmin - минимальное, наперед заданное количество межкластерных переходов.

В параллельной программе переназначения меток используются следующие параметры: Npr - количество признаков элемента изображения; N - размер изображения по одной координате; Ncl - количество кластерных центров. Параллельная COLAMO-программа, реализующая процедуру переназначения кластерных меток и вычисления количества межкластерных переходов имеет следующий вид:

DCL s

MEM,

a(Npr VEC) COM, c,d REG; clust_lab_1,clust_lab_2(N*N STREAM);

f(1);

for j=1 to N*N by 1 do; cadr init_c; c=Ncl; end init; cadr claster_lable;

for i=1 to Mcl by 1 do; for k=1 to Npr by1 do; a(k)=dist (s(k,j),c(k,i)); b=pirsum(a(k)); end;

c=seq_argmin(c,n(i),b); clust_lab_2(j)=c; end; end claster_lable; end; cadr init_n_clper; d=0 save d; end init_n_clper; cadr n_clper; for i=1 to N*N by1 do;

d=pr_out (d,clust_lab_2(j), clust_lab_1(j)); f(1)=d; end; end n_clper;

На рис. 3, а приведена графическая схема, поясняющая работу данной программы в части, касающейся переназначения кластерной метки. Для последовательно устанавливаемых значений индекса j в программе выполняется кадр cluster_lable. На векторе макроопераций dist вычисляются евклидовы расстояния для каждой компоненты. В программе они обозначены коммутационными переменными a(\), a(2), ..., a(Npr).

В макрооперации pirsum происходит сложение коммутационных переменных, при этом результат сложения присваивается переменной b. Переменная c является регистровой и используется для вычисления кластерной метки на макрооперации seq_argmin.. Для инициализации данной переменной выполняется кадр init_c, в котором переменная получает значение Ncl. По завершению работы кадра элементу массива lab_clust(2) (j) присваивается значение c.

На рис. 3, б приведена графическая схема, поясняющая работу данной программы в части, касающейся вычисления количества межкластерных переходов. В кадре n_clper из страниц lab_clust(2) и lab_clust(1) читаются по адресу j значения кластерной метки для текущей и предыдущей итерации и поступают в макрооперацию pr_out. Для инициализации регистра данной макрооперации выполняется кадр init_d, в котором регистровой переменной присваивается нулевое значение.

Модифицированное в кадре значение переменной d сравнивается со значением константы n_m, определяющее минимальное количество межкластерных переходов, и полученный предикат записывается в ячейку памяти f(\). В дальнейшем содержимое ячейки f(1) используется для выполнения условного перехода. Если f(1) = 0, то итерационный цикл завершен.

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

DCL s(Npr VEC, N*N STREAM) MEM, CL_NEW(Npr VEC, Ncl STREAM) MEM,

clust_lab_2(N*N STREAM);g(1 VEC), N_CL(Ncl STREAM) MEM; for j=1 to N*N by 1 do; cadr hist_1;

for k=1 to Npr+1 by1 do; a= clust_lab_2(j);

G(k)=vect_sum (s(kj),cl_new(k,a)); G(k+1)=N_CL(a)+1; end; end

hist_1;

cadr hist_2; for k=1 to Npr+1 by1 do; a= clust_lab_2(j);

с1(к,а^(к); ^Ща)=в(к+1);е^; end hist_2;end; cadr hist_3; for i=1 to Ncl ЬУ 1 do;for k=1 to Npr+1 ЬУ1 do; cl(k,i)= cl_new(k,i))/ N_CL(i);end;end; end hist_3;

Рис. 3. Граф-схема, поясняющая работу параллельной программы переназначения кластерных меток: а - переназначение кластерной метки; б - вычисление количества межкластерных переходов

Для вычисления новых кластерных центров организуется последовательный цикл по у. В теле данного цикла последовательно М*И выполняются два кадра hist_1 и hist_2. В кадре hist_1 из массива ^ по индексу у вектор признаков и суммируется с содержимым массива прочи-

танным по адресу а, определяемому содержимым массива с1шМаЬ_2(|).

1аЬ_е1ик1

Рис. 4. Граф-схема, поясняющая работу параллельной программы вычисления кластерных центров: а - формирование многомерной гистограммы; б - вычисление кластерных центров

Результат векторного суммирования записывается в параллельный массив g, который предназначен для временного хранения результата суммирования. Одновременно содержимое последовательного массива п_с1, считанное по этому же адресу а, складывается с единицей и так же записывается в g. В кадре Ыб1;_2. Содержимое массива g перезаписывается назад в массивы п_с1 и CL_NEW по адресу а. По завершении цикла по ] выполняется кадр Ыб1;_3, в котором вычисляются новые кластерные центры. На рис. 4, а) и б) приведены граф-схемы, соответственно иллюстрирующие работу формирования многомерных гистограмм и вычисления массива кластерных центров.

Список литературы

1. Андреев А.В., Курбатский С.А. Анализ структур быстродействующих медианных фильтров контроля качества изготовления неоднородных поверхностей // Материалы 10-й Всероссийской конференции «Новые технологии 2013». М.: МИАС, 2013.

2. Андреев А.В., Чендаров А.В. Анализ структур быстродействующих медианных фильтров // Сб. научных трудов НТО РЭС им. А.С. Попова. Тула: Изд-во ТулГУ, 2013. С. 240-246.

Акиншин Николай Степанович, д-р техн. наук, начальник отдела, rts@cdbae.ru, Россия, Тула, ОАО Центральное конструкторское бюро аппаратостроения,

Андреев Александр Викторович, специалист 1-й кат., rts@cdbae.ru, Россия, Тула, ОАО Центральное конструкторское бюро аппаратостроения,

Кальной Александр Игоревич, адьюнкт, Россия, Москва, 3 ЦНИИ Министерства обороны

PSEUDO MEDIAN FILTERING FOR OPTICAL IMAGE PROCESSING N.S. Akinshin, A.V. Andreyev, A.I. Kalnoy

The problem of optical image speckle-noise suppression is set and solved on the pseudo median filtering basis. The parallel program and a set of macros which implement iterative procedure of cluster grouping of data in optical image processing problems are proposed.

Key words: nonlinear filtering, speckle noise, optical image, pseudo median filtering, macro, image matrix.

Akinshin Nikolai Stepanovich, doctor of engineering, head of department, rts@,cdbae.ru, Russia, Tula, JSC Central Design Bureau of Apparatus Engineering,

Andreyev Aleksandr Viktorovich, 1st category specialist, rts@,cdbae.ru, Russia, Tula, JSC Central Design Bureau of Apparatus Engineering,

Kalnoy Aleksandr Igorevich, military postgraduate, Russia, Moscow, 3 Central Scientific-Research Institute of the Ministry of Defence