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

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

3.3. Приведение задачи вычисления значений оценочной функции к задаче оптимизации

Для того чтобы определить значение оценочной функции для некоторого положения объекта в рамках координат матрицы признаков, необходимо решить задачу вида (8).

score(p_0)=max_{p_1,...,p_n} \lbrace  score(p_0,p_1,...,p_n)  \rbrace ( 8)

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

Подставим максимизируемую функцию в данное выражение и выполним некоторые элементарные преобразования:

score(p_0)=max_{p_1,...,p_n} \lbrace \sum^n_{i=0} {F'_i \phi(H,p_i)} -  \sum^n_{i=1} {d_i\phi_d(dx_i,dy_i)} +b  \rbrace =
=max_{p_1,...,p_n} \lbrace F'_1 \phi(H,p_0)+\sum^n_{i=0} {F'_i \phi(H,p_i)} - d_i\phi_d(dx_i,dy_i)  +b \rbrace ( 9)

Поскольку первое и последнее слагаемое в функции под максимумом не зависят от аргументов, по которым проводится максимизация, то их можно вынести из-под максимума:

score(p_0)=F'_0 \phi(H,p_0)+max_{p_1,...,p_n} \lbrace \sum^n_{i=1} {(F'_i \phi(H,p_i)} - {d_i\phi_d(dx_i,dy_i))}  \rbrace +b =
=F'_0\phi(H,p_0)+\sum^n_{i=1} {max_{p_1,...,p_n}  \lbrace F'_i \phi(H,p_i) - d_i\phi_d(dx_i,dy_i) \rbrace +b ( 10)

Далее введем вспомогательные обозначения:

R_{0,l_0}(x_0,y_0)=F'_0 \phi(H,p_0)R_{i,l}(x,y)=F'_i \phi(H,(x,y,l))D_{i,l}(x,y)=max_{dx,dy} \lbrace R_{i,l}(x+dx,y_dy)-d_i\phi_d(dx,dy) \rbrace

Как следствие, оценка положения объекта вычисляется следующим образом:

score(p_0)=score(x_0,y_0,l_0)=R_{0,l_0}+\sum_{i=1}^n {D_{i,l_0-\lambda}(2(x_0,y_0)+V_i)+b}

Из формулы видно, что для вычисления оценки необходимо решить несколько задач оптимизации вида:

max_{dx,dy} \lbrace R_{i,l}(x+dx,y_dy)-d_i\phi_d(dx,dy) \rbrace

Такого рода задачи приводятся к задаче вычисления обобщенного преобразования расстояний (случай евклидова расстояния на двумерной сетке):

max_{dx,dy} \lbrace R_{i,l}(x+dx,y_dy)-d_i\phi_d(dx,dy) \rbrace=min_{dx,dy} \lbrace -R_{i,l}(x+dx,y_dy)+d_i\phi_d(dx,dy) \rbrace=min_{x',y'} \lbrace -R_{i,l}(x',y')+d_i\phi_d(x'-x,y'-y) \rbrace

где x'=x+dx,y'=y+dy.

Очевидно, что при d_i=(0,0,1,1) функция d_i\phi_d(x'-x,y'-y) представляет собой Евклидово расстояние, т.к. \phi_d(dx,dy)=(dx,dy,dx^2,dy^2): d_i\phi_d(x'-x,y'-y)=(x'-x)^2+(y'-y)^2=(x-x')^2+(y-y')^2

Как следствие, получаем задачу минимизации выпуклой функции, которая решается с использованием обобщенного метода преобразования расстояний (Приложение А. Обобщенный метод преобразования расстояний для решения задачи оптимизации, [15]).

Задача выбора наиболее вероятных положений объекта предполагает выбор тех положений грубого фильтра, для которых выполняется условие (11).

score(p_0)>threshold, ( 11)

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

4. Основные этапы решения задачи детектирования с использованием алгоритма Latent SVM

Начальным этапом алгоритма Latent SVM является построение пирамиды признаков – модели исходного изображения1Процедура построения пирамиды признаков в настоящей работе не описывается, т.к. время выполнения данного этапа вносит незначительный вклад в общее время поиска объектов на наборе тестовых данных VOC 2007.. Процедура включает следующие действия:

  1. Масштабирование исходного изображения. Результатом является пирамида изображений.
  2. Построение матриц векторов признаков для каждого изображения в пирамиде изображений – формирование пирамиды признаков.

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

Идея алгоритма определения положения объекта состоит в том, чтобы некоторым образом оценить вероятность нахождения объекта во всех возможных положениях пирамиды изображений и выбрать наиболее вероятные положения. Данный алгоритм включает следующие этапы:

  1. Вычисление значений оценочной функции для каждого возможного положения объекта, исходя из формул для вычисления score(x_0,y_0,l_0). Положение объекта определяется расположением левого верхнего угла грубого фильтра в матрице векторов признаков какого-либо уровня. Заметим, что оценочная функция строится как сумма скалярных произведений векторов (свертка) признаков грубого и точных фильтров модели с соответствующими векторами матрицы признаков. На каждом уровне пирамиды вычисления проводятся независимо.
  2. Выбор положений, для которых значения оценочной функции превышают пороговое значение (11). Полученные координаты определяют положение грубого фильтра, описывающего объект, в матрице признаков.
  3. Преобразование координат, соответствующих найденным положениям объекта на различных уровнях пирамиды признаков, в пиксельные координаты исходного изображения. Полученное множество точек – координаты левых верхних углов окаймляющих прямоугольников.

Более подробное описание метода Latent SVM приведено в работе [3].

Андрей Терёхин
Андрей Терёхин

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

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

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

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