Известия ТулГУ. Технические науки. Вып.11. Ч. 1. Тула: Изд-во ТулГУ, 2012. С. 261-268.
4. Акиншин Р.Н., Хомяков А.В., Новиков А.В. Оценки погрешностей при выборе математических моделей диаграмм направленности и рассеяния антенны // Журнал «Антенны». №12. 2013. С. 14-19.
Новиков Александр Валериевич, начальник сектора, [email protected], Россия, Тула, ОАО Центральное конструкторское бюро аппаратостроения
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]:
у(ш, п) = F{x(m - и п - j)}, (1)
где i = 0, ..., p, j = 0, ..., p, k = 1, ..., Q, l = 1, ..., Q, m = 1, ..., n п = 1, ..., N.
Для подавления спекл-шумов на оптических изображениях в системах с синтезированием апертуры антенны в качестве операции Б использу-
ется псевдомедианная фильтрация [2], описываемая следующим выражением:
y(m, n) = medial, а2, а3), (2)
где 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(1) X(L+1) X(2L+1) X(nL+1)
2 X(2) X(L+2) X(2L+2) X(nL+2)
L X(L) X(2L-11)) X(3L-1) X((n+1)L-1)
Здесь X(i) - i-я строка двумерной матрицы изображения. Наибольшая эффективность вычислений достигается, когда количество каналов памяти равно 2L, при этом номер канала и адрес элемента структуры данных определяются по формуле
Ac (Xi )=[i /2L], (3)
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(1,i)= nonlinear_filter(Y(L,i-N),Y(1,i),Y(2,i))
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(L,i)= nonlinear_filter(Y(L,i-N),Y(1,i),Y(2,i))
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(i) = argmm¿(d2(cq~\k),s(i))) k = 1,2,...,K, i = 1,2,...,N, (4)
где arg mink(^) - функция, возвращающая номер минимального члена k-элементной последовательности, d2(a, b) - квадрат евклидова расстояния между векторами a и b;
- вычисление количества межкластерных переходов в соответствии с рекуррентной формулой:
tq := tq + \q(ij*rq"1(i)} i = 1,2,...,N; (5)
- вычисление суммы элементов кластера в соответствии с рекуррентной формулой:
Zq (rq (i )):= Zq (rq (i )j+ s(i) (6)
и вычисление распределения элементов по кластерам в соответствии с рекуррентной формулой:
Nq (rq (i )):= Nq (rq (i))+1. (7)
После выполнения вышеперечисленных процедур для k = 1, 2, ...,K вычисляются новые кластерные центры по следующей формуле:
cq (k ) = Zq (k)/ Nq (k). (8)
Условием окончания итерационного процесса является выполнение неравенства А < tmin, где tmin - минимальное, наперед заданное количество межкластерных переходов.
В параллельной программе переназначения меток используются следующие параметры: Npr - количество признаков элемента изображения; N - размер изображения по одной координате; Ncl - количество кластерных центров. Параллельная COLAMO-программа, реализующая процедуру переназначения кластерных меток и вычисления количества межкластерных переходов имеет следующий вид:
DCL s(Npr VEC, N*N STREAM) MEM, cl(Npr VEC, Ncl STREAM)
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 (2)
Рис. 4. Граф-схема, поясняющая работу параллельной программы вычисления кластерных центров: а - формирование многомерной гистограммы; б - вычисление кластерных центров
Результат векторного суммирования записывается в параллельный массив g, который предназначен для временного хранения результата суммирования. Одновременно содержимое последовательного массива п_с1, считанное по этому же адресу а, складывается с единицей и так же записывается в g. В кадре Ыб1;_2. Содержимое массива g перезаписывается назад в массивы п_с1 и CL_NEW по адресу а. По завершении цикла по ] выполняется кадр Ыб1;_3, в котором вычисляются новые кластерные центры. На рис. 4, а) и б) приведены граф-схемы, соответственно иллюстрирующие работу формирования многомерных гистограмм и вычисления массива кластерных центров.
Список литературы
1. Андреев А.В., Курбатский С.А. Анализ структур быстродействующих медианных фильтров контроля качества изготовления неоднородных поверхностей // Материалы 10-й Всероссийской конференции «Новые технологии 2013». М.: МИАС, 2013.
2. Андреев А.В., Чендаров А.В. Анализ структур быстродействующих медианных фильтров // Сб. научных трудов НТО РЭС им. А.С. Попова. Тула: Изд-во ТулГУ, 2013. С. 240-246.
Акиншин Николай Степанович, д-р техн. наук, начальник отдела, [email protected], Россия, Тула, ОАО Центральное конструкторское бюро аппаратостроения,
Андреев Александр Викторович, специалист 1-й кат., [email protected], Россия, Тула, ОАО Центральное конструкторское бюро аппаратостроения,
Кальной Александр Игоревич, адьюнкт, Россия, Москва, 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