Ядро пирамиды Граумана и Даррелла - PullRequest
0 голосов
/ 10 ноября 2011

Я студент.Мое задание - выбрать бумагу для компьютерного зрения (из предоставленного списка) и реализовать ее алгоритм.Я выбрал Grauman and Darrells ' Ядро соответствия Pyramid: дискриминационная классификация с наборами характеристик изображения (IEEE, 2005).

Я закодировал эту штуку, но она не соответствует изображениям.На самом деле, я даже не могу концептуально понять, как он мог бы работать, если бы он использовал дескрипторы объектов, которые соответствуют друг другу.

Техника, как я понял, заключается в создании пирамиды гистограмм для двух наборов функций изатем вычислите (взвешенное) пересечение этих множеств.Размер ячейки == 1 для первого уровня, а размер ячейки удваивается на каждом уровне пирамиды.Процесс останавливается, когда размер корзины> = max_element_in_feature_sets.Если размер бина где-то больше, целочисленное деление descriptor_value / bin_size всегда будет возвращать ноль, и все будет в одном бине.

Так вот, где он разваливается для меня.Представьте, что размер ячейки = 1/2 * max_element, то есть каждый элемент каждой функции будет помещен в ячейку 1 или ячейку 0. Но при длине вектора элемента 128 элементов все равно будет 2 ^ 128 корзин.Какова вероятность попадания двух функций в одну корзину?

Ответ, конечно, зависит.Если бы объекты были случайным шумом, вероятность была бы очень низкой.В документе должно быть сделано молчаливое предположение, что похожие изображения имеют сходные черты.Я не вижу этого в моих тестовых прогонах.Например, я взял маленькое серое изображение и размыл его с помощью гауссова ядра 5x5.Затем я сравнил его с исходным изображением.Вот вывод: (объяснение находится ниже вывода. Прокрутите вниз.)

file named art487.jpg extracted features= 50
file named art487_blur.jpg extracted features= 7

Min value= 0, Max val= 164 (of any element)
levels in the pyramid= 8

SUMMARY OF PYRAMID art487.jpg
    level= 0, # bins= 50, bins= 1, 1, 1,..., 1,  count = 50
    level= 1, # bins= 50, bins= 1, 1, 1,..., 1,  count = 50
    level= 2, # bins= 50, bins= 1, 1, 1,..., 1, count = 50
    level= 3, # bins= 50, bins= 1, 1, 1,..., 1, count = 50
    level= 4, # bins= 50, bins= 1, 1, 1,..., 1, count = 50
    level= 5, # bins= 50, bins= 1, 1, 1,..., 1, count = 50
    level= 6, # bins= 50, bins= 1, 1, 1,..., 1, count = 50
    level= 7, # bins= 21, bins= 29, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  count = 50


SUMMARY OF PYRAMID art487_blur.jpg
    level= 0, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1,  count = 7
    level= 1, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1,  count = 7
    level= 2, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1,  count = 7
    level= 3, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1,  count = 7
    level= 4, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1,  count = 7
    level= 5, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1,  count = 7
    level= 6, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1,  count = 7
    level= 7, # bins= 4, bins= 4, 1, 1, 1,  count = 7

raw score= 0
normalized score= 0

Список чисел после "bins =" ​​показывает, сколько объектов попало в один конкретный блок.Результаты - это то, что я ожидаю от 128 измерений.Каждая функция получает свою собственную корзину, за исключением самого грубого уровня, где несколько нулевых векторов сгруппированы вместе.Это дает оценку сходства 0, как я и ожидал.

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

Что происходит не так?Я должен задавать интенсивность пикселей, а не дескрипторы функций?

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Я говорил с одноклассником. Оказывается, авторы использовали детектор признаков SIFT, но использовали 10-мерные дескрипторы PCA-SIFT. Я приведу это в движение. ОБНОВЛЕНИЕ: Это решило проблему. Векторы объектов должны иметь длину около 10 элементов.

0 голосов
/ 10 ноября 2011

Если размер корзины равен 1/2 * max-size, вы должны что-то добавить к своей пирамиде. То же самое происходит, когда я ищу ближайшего соседа в квадродереве и ограничиваю запрос до 1/2 квадродерева. Но этот метод является новым для меня.

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