Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 430 / 54 | Длительность: 19:27:00

Самостоятельная работа 7: Оптимизация и распараллеливание вычислений в задаче детектирования объектов на изображениях с использованием алгоритма Latent SVM

12.2.4. Одномерное обратное преобразование Фурье

Постановка задачи:

\lbrace \overline{x_k}=\sum_{m=0}^{N-1} x_mW^{mk},W=e^{-\frac {2\pi i} {N}} \rbrace , k=\overline{0,N-1}
– множество образов Фурье для некоторой действительной последовательности \lbrace x_m \rbrace

\lbrace x_m \rbrace, m=\overline{0,N-1} – последовательность действительных чисел (множество прообразов Фурье), N - произвольное число (в общем случае составное).

Задача состоит в том, чтобы определить множество прообразов Фурье.

Алгоритм:

Пусть имеет два простых множителя N_1 и N_2. Тогда любые m и k можно представить в виде

m=N_1m_2+m_1,m_1=\overline{0,N_1-1},m_2=\overline{0,N_2-1}
и
k=N_2k_1+k_2,k_1=\overline{0,N_1-1},k_2=\overline{0,N_2-1}
. Как следствие, каждый элемент последовательности прообразов Фурье выражается следующим образом:

x_{N_1m_2+m_1}=\frac 1 N \sum^{N-1}_{N_2k_1+k_2=0} \overline{x_{N_2k_1+k_2}}W^{(N_1m_2+m_1)(N_2k_1+k_2)}
=\frac 1 N \sum^{N_2-1}_{k_2=0}W^{N_1k_2m_2}W^{N_1k_2}\sum^{N_1-1}_{k_1=0} \overline{x_{N_2k_1+k_2}}W^{N_2k_1m_1}
\sum^{N_1-1}_{m_1=0} W_2^{k_2m_2}W^{m_1k_2}\sum^{N_2-1}_{m_2=0} x_{N_1m_2+m_1}W_1^{k_1m_1}

где

W_1=W^{N_2}=e^{\frac {2\pi i} {N_1}},W_2=W^{N_1}=e^{\frac {2\pi i} {N_2}

В случае произвольного значения приведенная процедура выполняется рекурсивно.

12.3. Приложение В. Инструкция по запуску пакета VOCdevkit

  1. Разархивировать файл VOCdevkit_08-Jun-2007.tar.
  2. Скопировать папку с VOC данными (VOC2007), включая описания изображений, в VOCdevkit.
  3. В файле VOCdevkit\VOCcode\VOCinit.m закомментировать строку 31, добавив символ % в начало строки:
    VOCopts.testset='val'; % use validation data for 
    development test set  
    
    и раскомментировать строку 32:
      
    % VOCopts.testset='test'; % use test set for final 
    challenge 
  4. Установить в MATLAB в качестве рабочей папки VOCdevkit.
  5. Скопировать файл с результатами detection (вида comp3_det_test_<имя детектируемого класса>.txt) в папку VOCdevkit\results\VOC2007\Main.
  6. Выполнить последовательность команд, заменив текст, выделенный полужирным шрифтом на название класса (CAR, BUS и т.п.):
      
    addpath([cd '/VOCcode']); 
    VOCinit; 
    [recall,prec,ap]=VOCevaldet(VOCopts,'comp3', 
                                'имя класса',true); 
  7. Сохранить полученную precision/recall кривую в файл.
Андрей Терёхин
Андрей Терёхин

Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции?

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "