Почему мы используем дескрипторы ключевых точек?


16

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

Я понимаю, что такое ключевые точки и их назначение, но когда мы извлекаем ключевые точки, тогда зачем нам использовать дескрипторы? Какова их важность и роль в признании?


Эй, ты хочешь узнать конкретно о SURF, или твой вопрос более общий, "зачем нам нужны дескрипторы для ключевых точек?" (просто вдохновленный изучением SURF)
Пенелопа

@penelope Мой вопрос более общий о дескрипторах
ARG

3
Надеюсь, вы не возражаете, что я сделал ваш вопрос более общим, прежде чем ответить.
Пенелопа

Ответы:


22

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

В зависимости от алгоритма, используемого для извлечения ключевой точки (SIFT, углы Харриса, MSER), вы будете знать некоторые общие характеристики извлеченных ключевых точек (например, они сосредоточены вокруг пятен, ребер, выпуклых углов ...), но вы не будете знать, насколько разные или подобный один ключевой пункт к другому.

Вот два простых примера, где только позиция и область ключевой точки нам не помогут:

  • Если у вас есть изображение A (медведя на белом фоне) и другое изображение B, точная копия A, но переведенная на несколько пикселей: извлеченные ключевые точки будут одинаковыми (на той же части этого медведя). Эти два изображения должны быть распознаны как одинаковые или похожие.

    Но, если единственная информация, которую мы имеем, это их положение, и это изменилось из-за перевода, вы не можете сравнивать изображения.

  • Если у вас есть изображение A (скажем, утки на этот раз) и другое изображение B, точно такой же утки, как в A, за исключением удвоенного размера: извлеченные ключевые точки будут такими же (те же части утки). Это тоже одни и те же (похожие) изображения.

    Но все их размеры (области) будут разными: все ключевые точки на изображении B будут в два раза больше, чем на изображении A.

Итак, вот и дескрипторы : они являются способом сравнения ключевых точек. Они резюмируют в векторном формате (постоянной длины) некоторые характеристики ключевых точек. Например, это может быть их интенсивность в направлении их наиболее выраженной ориентации. Он присваивает числовое описание области изображения, на которую ссылается ключевая точка.

Некоторые важные вещи для дескрипторов:

  • они должны быть независимы от позиции ключевой точки

    Если одна и та же ключевая точка извлекается в разных позициях (например, из-за перевода), дескриптор должен быть одинаковым.

  • они должны быть устойчивы к преобразованиям изображений

    Некоторыми примерами являются изменения контрастности (например, изображение одного и того же места в солнечный и облачный день) и изменения перспективы (изображение здания из центра справа и слева, мы все равно хотели бы распознать его как одно и то же здание) ,

    Конечно, ни один дескриптор не является абсолютно устойчивым ко всем преобразованиям (и ни к одному, если он сильный, например, большие изменения в перспективе).

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

  • они должны быть независимы от масштаба

    Дескрипторы должны учитывать масштаб. Если «выступающая» часть одной ключевой точки представляет собой вертикальную линию 10px (внутри круглой области с радиусом 8px), а выступающая часть другой вертикальной линии 5px (внутри круглой области с радиусом 4px) - этим ключевым точкам должны быть назначены аналогичные дескрипторы.

Теперь, когда вы рассчитали дескрипторы для всех ключевых точек, у вас есть способ сравнить эти ключевые точки . Для простого примера сопоставления изображений (когда вы знаете, что изображения имеют один и тот же объект и хотели бы идентифицировать части на разных изображениях, которые изображают одну и ту же часть сцены, или хотели бы определить изменение перспективы между двумя изображениями) Вы бы сравнили каждый дескриптор ключевых точек одного изображения с каждым дескриптором ключевых точек другого изображения. Поскольку дескрипторы являются векторами чисел, вы можете сравнить их с чем-то таким простым, как евклидово расстояние . Конечно, есть некоторые более сложные расстояния, которые можно использовать в качестве меры сходства. Но, в конце концов, вы бы сказали, чтоключевые точки, дескрипторы которых имеют наименьшее расстояние между ними, являются совпадениями , например, одни и те же «места» или «части объектов» на разных изображениях.

Для более сложного использования ключевых точек / дескрипторов вы должны взглянуть на этот вопрос - особенно на «локальный подход низкого уровня» в моем ответе и подход «мешка слов» в ответе @Maurits . Кроме того, ссылки в этих ответах полезны.


лучший ответ и хорошее объяснение, используя термин особенность так же, как дескрипторы? оба одинаковы или разные? и что означает термин ориентация в прибое?
ARG

1
Термин «особенность» совпадает с «ключевой точкой» - это заметная точка на изображении. Дескриптор тогда является «дескриптором ключевой точки» или «дескриптором функции». К сожалению, я мало что знаю о SURF, поэтому я спросил, хотите ли вы узнать о дескрипторах вообще или конкретно о SURF. Я знаю, что для SIFT ориентация очень важна.
Пенелопа

Термин ориентация не специфически используется для SURF, его также используют в SIFT, я просто хочу узнать об этом, что это такое
ARG

Вы вычисляете «принципиальную ориентацию» ключевой точки на основе локального градиента. Затем это направление становится «восходящим» для ключевой точки при расчете градиента для достижения вращательной инвариантности. Для SIFT у вас есть хорошее объяснение в Википедии
Пенелопа

:) мой вопрос, что такое ориентация? не на сите или в поиске
ARG

2

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

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

введите описание изображения здесь введите описание изображения здесь

Таким образом, ваш дескриптор необходим для правильного сопоставления одних и тех же объектов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.