|
Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции? |
Самостоятельная работа 7: Оптимизация и распараллеливание вычислений в задаче детектирования объектов на изображениях с использованием алгоритма Latent SVM
12.2. Приложение Б. Применение двумерного быстрого преобразования Фурье для вычисления сверток
12.2.1. Постановка задачи
Входные данные:
- Двумерная матрица векторов признаков
(матрица
признаков на некотором уровне пирамиды признаков). Данная матрица
может быть представлена в виде трехмерного прямоугольного
параллелепипеда размерности
, где
– число столбцов
матрицы векторов,
- количество строк матрицы векторов,
–
размерность вектора признаков. Двумерную матрицу, полученную при
каждом фиксированном p , будем называть каналом. - Двумерная матрица весовых векторов фильтра
(это может быть
точный или грубый фильтр). Данная матрица может быть представлена
в виде трехмерного прямоугольного параллелепипеда размерности
, где
– число столбцов матрицы весовых векторов,
–
количество строк матрицы весовых векторов,
– размерность
вектора весов.
Выходные данные: двумерная матрица свертки
размерности

Задача: определить значения элементов матрицы свертки в соответствии с формулой
![conv[i,j]=\sum^{N^g_y-1}_{di=0} \sum^{N^g_x-1}_{dj=0} \sum^{p-1}_{k=0} filter[di,dj,k]*featureMap[i+di,j+dj,k]](/sites/default/files/tex_cache/cd1bca95c71c86f9050e5b327d1b80d9.png)
12.2.2. Этапы решения
-
Для каждого канала
матрицы векторов признаков
оперделяем образ Фурье. Для этого используется
двумерное дискретное преобразование Фурье. Для вычисления
двумерного преобразования применяется одномерное БПФ сначала к
строкам, потом к столбцам (или наоборот):
где
.При вычислении значений оценочной функции на фиксированном уровне операцию достаточно сделать один раз для всех точных фильтров и один раз для грубого фильтра, т.к. свертки с грубыми и точными фильтрами считаются на разных уровнях пирамиды признаков.
-
Для каждого канала
матрицы весовых векторов
фильтра
получаем образ Фурье. Для этого матрицу весов
каждого канала необходимо повернуть на
и дополнить нулями до
размерности матрицы признаков, затем применить двумерное
дискретное преобразование Фурье (аналогично применяется
одномерное преобразование последовательно к строкам и столбцам):
где

- Для каждого канала находим свертку образов Фурье
:
где

- Находим суммарную свертку по всем каналам
:
где
- Определяем прообраз Фурье для свертки, используя одномерное
преобразование Фурье:

где
12.2.3. Одномерное дискретное преобразование Фурье
Постановка задачи:
– последовательность действительных чисел, N -
произвольное число (в общем случае составное).
– множество образов Фурье
для последовательности
.
Задача состоит в том, чтобы определить множество образов Фурье.
Алгоритм:
Пусть
имеет два простых множителя
и
. Тогда любые
и
можно
представить в виде
и
. Как следствие, каждый
элемент последовательности образов Фурье выражается следующим
образом:




где

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

"