HeadlinesBriefing HeadlinesBriefing.com

Алгоритм SIFT: масштабно-инвариантное преобразование признаков

Towards Data Science •
×

SIFT — один из самых известных алгоритмов в компьютерном зрении. Его основная цель состоит в обнаружении ключевых точек объектов, создании дескрипторов для них и сопоставлении одинаковых объектов на изображениях. Как следует из названия, SIFT — это масштабно-инвариантный алгоритм, что означает, что один и тот же объект может появляться в разных масштабах в паре изображений, и SIFT все равно сможет успешно обнаружить его ключевые точки. Кроме того, SIFT инвариантен к вращению, что делает возможным сопоставление также для повернутых объектов.

В своем рабочем процессе SIFT создает несколько версий исходного изображения, применяя преобразования изменения размера и гауссовского размытия. С выбранными значениями k и σ1, SIFT создает несколько версий исходного изображения, применяя гауссовское сглаживание с разными стандартными отклонениями. Это приводит к последовательности изображений, называемой октавой. Затем SIFT вычисляет попарные различия между результирующими изображениями, известные как разность гауссианов (DoG).

После этого алгоритм накапливает Di и пытается найти в них локальные экстремумы. Для каждой точки в Di(x, y), SIFT проверяет ее 26 соседей. Если Di(x, y) больше или меньше всех своих 26 соседних точек, SIFT помечает ее как максимум или минимум. Чтобы учесть различные вариации масштаба, тот же процесс повторяется для исходного изображения, уменьшенного в ширину и высоту в два раза, с построением новой октавы со значениями σ, такими как σ2 = 2σ1.

Источник: Towards Data Science · Сводку подготовил HeadlinesBriefing