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