Я только что изучил SURF и собираюсь его реализовать, но я так и не понял, почему мы используем дескрипторы.
Я понимаю, что такое ключевые точки и их назначение, но когда мы извлекаем ключевые точки, тогда зачем нам использовать дескрипторы? Какова их важность и роль в признании?
Ответы:
Важно понимать, что после извлечения ключевых точек вы получаете только информацию об их положении , а иногда и об их зоне покрытия (обычно аппроксимируемой кругом или эллипсом) на изображении. Хотя информация о положении ключевой точки иногда может быть полезной, она мало говорит о самих ключевых точках.
В зависимости от алгоритма, используемого для извлечения ключевой точки (SIFT, углы Харриса, MSER), вы будете знать некоторые общие характеристики извлеченных ключевых точек (например, они сосредоточены вокруг пятен, ребер, выпуклых углов ...), но вы не будете знать, насколько разные или подобный один ключевой пункт к другому.
Вот два простых примера, где только позиция и область ключевой точки нам не помогут:
Если у вас есть изображение A (медведя на белом фоне) и другое изображение B, точная копия A, но переведенная на несколько пикселей: извлеченные ключевые точки будут одинаковыми (на той же части этого медведя). Эти два изображения должны быть распознаны как одинаковые или похожие.
Но, если единственная информация, которую мы имеем, это их положение, и это изменилось из-за перевода, вы не можете сравнивать изображения.
Если у вас есть изображение A (скажем, утки на этот раз) и другое изображение B, точно такой же утки, как в A, за исключением удвоенного размера: извлеченные ключевые точки будут такими же (те же части утки). Это тоже одни и те же (похожие) изображения.
Но все их размеры (области) будут разными: все ключевые точки на изображении B будут в два раза больше, чем на изображении A.
Итак, вот и дескрипторы : они являются способом сравнения ключевых точек. Они резюмируют в векторном формате (постоянной длины) некоторые характеристики ключевых точек. Например, это может быть их интенсивность в направлении их наиболее выраженной ориентации. Он присваивает числовое описание области изображения, на которую ссылается ключевая точка.
Некоторые важные вещи для дескрипторов:
они должны быть независимы от позиции ключевой точки
Если одна и та же ключевая точка извлекается в разных позициях (например, из-за перевода), дескриптор должен быть одинаковым.
они должны быть устойчивы к преобразованиям изображений
Некоторыми примерами являются изменения контрастности (например, изображение одного и того же места в солнечный и облачный день) и изменения перспективы (изображение здания из центра справа и слева, мы все равно хотели бы распознать его как одно и то же здание) ,
Конечно, ни один дескриптор не является абсолютно устойчивым ко всем преобразованиям (и ни к одному, если он сильный, например, большие изменения в перспективе).
Разные дескрипторы разработаны так, чтобы быть устойчивыми к различным преобразованиям, которые иногда противоположны скорости, необходимой для их вычисления.
они должны быть независимы от масштаба
Дескрипторы должны учитывать масштаб. Если «выступающая» часть одной ключевой точки представляет собой вертикальную линию 10px (внутри круглой области с радиусом 8px), а выступающая часть другой вертикальной линии 5px (внутри круглой области с радиусом 4px) - этим ключевым точкам должны быть назначены аналогичные дескрипторы.
Теперь, когда вы рассчитали дескрипторы для всех ключевых точек, у вас есть способ сравнить эти ключевые точки . Для простого примера сопоставления изображений (когда вы знаете, что изображения имеют один и тот же объект и хотели бы идентифицировать части на разных изображениях, которые изображают одну и ту же часть сцены, или хотели бы определить изменение перспективы между двумя изображениями) Вы бы сравнили каждый дескриптор ключевых точек одного изображения с каждым дескриптором ключевых точек другого изображения. Поскольку дескрипторы являются векторами чисел, вы можете сравнить их с чем-то таким простым, как евклидово расстояние . Конечно, есть некоторые более сложные расстояния, которые можно использовать в качестве меры сходства. Но, в конце концов, вы бы сказали, чтоключевые точки, дескрипторы которых имеют наименьшее расстояние между ними, являются совпадениями , например, одни и те же «места» или «части объектов» на разных изображениях.
Для более сложного использования ключевых точек / дескрипторов вы должны взглянуть на этот вопрос - особенно на «локальный подход низкого уровня» в моем ответе и подход «мешка слов» в ответе @Maurits . Кроме того, ссылки в этих ответах полезны.
источник
Давайте подумаем об идеальном дескрипторе, чтобы понять идею. Идеальный дескриптор - это функция от пиксельного пространства до некоторого другого пространства, так что одни и те же объекты имеют одинаковый результат , тогда как разные объекты имеют разный результат.
Например, если вы сняли два изображения с одним и тем же объектом, но с разным уровнем экспозиции, вы получите умноженную версию изображения. Дескриптор, который будет брать пиксели и нормализовать их по среднему значению и уровню стандартного отклонения, будет иметь одинаковый результат, говоря, что эти два объекта одинаковы. Это хорошо, потому что это позволяет нам правильное соответствие
Таким образом, ваш дескриптор необходим для правильного сопоставления одних и тех же объектов.
источник