Масштабно-инвариантная трансформация признаков

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Соответствие особых точек найденных с помощью SIFT.

Масштабно-инвариантная трансформация признаков (англ. scale-invariant feature transform, SIFT) является алгоритмом выявления признаков[en] в компьютерном зрении для выявления и описания локальных признаков в изображениях. Алгоритм был запатентован в Канаде университетом Британской Колумбии[1] и опубликован Дэвидом Лоу в 1999[2]. Приложения включают распознавание объектов[en], роботизированное составление карты[en] и роботизированную навигацию, сшивку изображений[en], трёхмерное моделирование, распознавание жестов, трекинг, идентификацию диких животных и позиционный трекинг.

Сначала в SIFT извлекаются ключевые точки объектов из набора контрольных изображений[2] и запоминаются в базе данных. Объект распознаётся в новом изображении путём сравнивания каждого признака из нового изображения с признаками из базы данных и нахождения признаков-кандидатов на основе евклидова расстояния между векторами признаков. Из полного набора соответствий в новом изображении отбираются поднаборы ключевых точек, которые наиболее хорошо согласуются с объектом по его местоположению, масштабу и ориентации. Определение подходящих блоков признаков осуществляется быстро с помощью эффективной реализации хеш-таблицы обобщённого преобразования Хафа. Каждый блок из 3 или более признаков, согласующийся с объектом и его положением, подлежит дальнейшей подробной проверке соответствия модели, и резко отклоняющиеся блоки отбрасываются. Наконец, вычисляется вероятность, что определённый набор признаков говорит о присутствии объекта, что даёт информацию о точности совпадения и числе возможных промахов. Объекты, которые проходят все эти тесты, могут считаться правильными с высокой степенью уверенности[3].

Обзор[править | править код]

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

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

SIFT[1] может надёжно выделить объекты даже при наличии шума и частичном перекрытии, поскольку описатель признака SIFT инвариантен пропорциональному масштабированию[en], ориентации, изменению освещённости и частично инвариантен аффинным искажениям[2]. Эта секция описывает исходный алгоритм SIFT и упоминает несколько конкурирующих техник, доступных для распознавания объектов с шумом и с частичным перекрытием.

SIFT-дескриптор основан на измерениях изображения в терминах рецепторных полей[4][5][6][7], для которых устанавливаются локальные инвариантные по масштабу опорные кадры[8][9] путём выбора локального масштаба[10][11][9]. Общее теоретическое объяснение алгоритма дано в статье проекта Scholarpedia о SIFT[12].

Задача Техника Преимущество
место ключа / масштаб / поворот Разность гауссианов / пирамида масштабов пространства / назначение направлений точность, стабильность, инвариантность к масштабу и повороту
геометрическое искажение размывание / повторная выборка локальных плоскостей ориентации изображения аффинная инвариантность
индексирование и сопоставление ближайший сосед / поиск «Best Bin First» Эффективность / скорость
Идентификация кластеров Голосование преобразования Хафа надёжные модели положения
Проверка адекватности модели / выявление выбросов Линейный метод наименьших квадратов лучшая устойчивость к ошибкам с меньшим соответствием
Одобрение гипотезы Анализ байесовской вероятности надёжность

Основные шаги[править | править код]

Обнаружение масштабно-инвариантных признаков[править | править код]

Метод Лоу для генерации признаков изображения преобразует изображение в большой набор векторов признаков, каждый из которых инвариантен относительно (параллельного) переноса изображения, масштабирования и вращения, частично инвариантен изменению освещения и устойчив к локальным геометрическим искажениям. Эти признаки имеют похожие свойства с нейронами в основной зрительной коре, которые кодируют основные формы, цвет и выявление движения объекта в зрении приматов[13]. Ключи местоположения определяются как максимум и минимум функции разности гауссианов, применённой в пространстве масштабирования[en] к серии сглаженных и повторно сделанных изображений. Точки-кандидаты с малой контрастностью и точки вдоль краёв отбрасываются. Локализованным ключевым точкам назначаются господствующие ориентации. Эти шаги обеспечивают большую стабильность ключевых точек для сопоставления и распознавания. SIFT-дескрипторы, устойчивые к локальным аффинным нарушениям, получают затем путём рассмотрения пикселей вокруг ключевого места размыванием и повторной выборкой плоскостей ориентации локального изображения.

Сопоставление признаков и индексация[править | править код]

Индексация состоит из запоминания SIFT-ключей и идентификации соответствующих ключей из нового изображения. Лоу использовал модификацию алгоритма k-мерного дерева, который называется методом поиска best-bin-first[en] (BBF)[14], который может идентифицировать ближайшего соседа с большой вероятностью, используя лишь ограниченное количество вычислений. Алгоритм BBF использует модифицированный порядок поиска для алгоритма k-мерного дерева, так что области в пространстве признаков просматриваются в порядке их ближайшего расстояния от запрашиваемого местоположения. Этот порядок поиска требует использование основанной на куче очереди с приоритетом для эффективного определения порядка просмотра. Лучший кандидат для каждой ключевой точки находится путём установления его ближайшего соседа в базе данных ключевых точек из тренировочных изображений. Ближайшие соседи определяются как ключевые точки с минимальным евклидовым расстоянием от заданного вектора дескриптора. Вероятность, что соответствие корректно, можно определить путём вычисления отношения расстояния от ближайшего соседа к расстоянию до второго по расстоянию соседа.

Лоу[3] отбрасывал все соответствия, в которых отношение расстояний больше 0,8, что исключает 90 % неверных соответствий, отбрасывая при этом менее 5 % правильных соответствий. Для дальнейшего улучшения эффективности алгоритм поиска «best-bin-first» останавливается после проверки первых 200 ближайших соседних кандидатов. Для базы данных с 100000 ключевыми точками это обеспечивает увеличение скорости по сравнению с точным поиском соседей на 2 порядка, при этом неверный выбор не выходит за 5 % от правильных соответствий.

Идентификация кластера голосованием преобразования Хафа[править | править код]

Преобразование Хафа используются для кластеризации надёжной модели гипотез для поиска ключей, которые согласуются с конкретной позиции[en] модели. Преобразование Хафа выявляет кластеры признаков с согласованным толкованием с помощью голосования за каждый признак для всех положений объекта, которые согласуются с признаком. Когда кластеры признаков найдены с голосами за то же положение объекта, вероятность верной интерпретации много выше, чем для любого отдельного признака. Создаётся запись в хеш-таблице, которая содержит предполагаемое положение, ориентацию и масштаб из гипотезы соответствия. Осуществляется поиск по хеш-таблице для идентификации всех кластеров с минимум 3 элементами в области и области сортируются по уменьшению размера.

Каждая из ключевых точек SIFT определяет 2D местоположение, масштаб и ориентацию и каждая ключевая точка в базе данных имеет запись с её параметрами, относящимися к тренировочному изображению, в котором она была найдена. Аналогичное преобразование, вытекающее из этих 4 параметров, является только аппроксимацией к полному пространству положений с 6 степенями свободы для 3-мерных объектов и также не учитывает любые гибкие деформации. Таким образом, Лоу[3] использовал для местоположения размеры областей в 30 градусов для ориентации, множителем 2 для масштаба и коэффициентом 0,25 для размера максимальной проекции тренировочного изображения (используя предсказанный масштаб). Для SIFT ключей, сгенерированных с большим масштабом, придаётся удвоенный вес по сравнению с ключами для меньшего масштаба. Это означает, что больший масштаб в состоянии отфильтровать с бо́льшей степенью вероятности соседей для проверки в меньшем масштабе. Это также улучшает эффективность распознавания, придавая бо́льший вес мене зашумлённому масштабу. Чтобы избежать проблемы эффектов границы при назначении области, каждая ключевая точка смотрит на голоса для 2 ближайших областей в каждом направлении, что даёт в общей сложности 16 значений для каждой гипотезы и дальнейшее размытие разброса положения.

Проверка модели методом наименьших квадратов[править | править код]

Каждый установленный кластер является предметом процедуры проверки, в которой осуществляется решение метода наименьших квадратов[en] для параметров аффинного преобразования, связанных с моделью изображения. Аффинное преобразование точки модели [x y]T в точку изображения [u v]T может быть записано следующим образом

где параллельный перенос равен [tx ty]T, а аффинное вращение, масштаб и растяжение представлено параметрами m1, m2, m3 и m4. Для получения параметров преобразования уравнение может быть переписано так, что все неизвестные оказались в вектор-столбце.

Равенство показывает одиночное сопоставление, но любое число соответствий может быть добавлено, где каждое соответствие добавляет две строки в первую и последнюю матрицу. По меньшей мере 3 соответствия нужны для получения решения. Мы можем записать эту линейную систему как

где A является известной матрицей (обычно m > n), x является неизвестным n-мерным вектором параметров, а b является известным m-мерным вектором измерений.

Таким образом, минимизирующий вектор является решением нормального уравнения

Решение системы линейных уравнений даётся в терминах матрицы , называемой псеводообратной матрицей[en] для A, в виде

,

что минимизирует сумму квадратов расстояний проекций местоположений модели до соответствующих местоположений изображения.

Выявление выбросов[править | править код]

Выбросы теперь могут быть отброшены путём проверки согласования между признаком каждого изображения и модели, заданного решением параметров. Если дано решение метода наименьших квадратов[en], каждое соответствие должно согласовываться не более чем на половину интервала ошибки, который использовался для параметров в областях преобразования Хафа. Выбросы отбрасываются, решение методом наименьших квадратов пересчитывается для оставшихся точек и процесс повторяется. Если после отбрасывания выбросов остаётся меньше 3 точек, соответствие отвергается. Кроме того, используется фаза сопоставления сверху вниз для добавления любых других сопоставлений, которые согласуются с положением проецируемой модели, что может быть пропущено областью преобразование Хафа вследствие аппроксимации похожих преобразований или других ошибок.

Конечное решение по принятию или отвержению модели гипотезы основывается на детальной вероятностной модели[15]. Этот метод сначала вычисляет ожидаемое число ошибочных соответствий модели положения, заданной размером модели, числом признаков внутри области и точностью соответствия. Байесов анализ даёт затем вероятность, что объект присутствует, основываясь на действительном числе найденных соответствий признаков. Модель принимается, если конечная вероятность правильной интерпретации больше 0,98. Основанное на разработанном Лоу методе SIFT распознавание объекта даёт прекрасные результаты, за исключением случаев широкого разброса освещения и при не обладающих жёсткостью преобразованиях.

Признаки[править | править код]

Обнаружение и описание локальных признаков изображения может помочь в распознавании объекта. SIFT-признаки локальны и основываются на проявлениях объекта в конкретных особых точек. Они инвариантны по изменению масштаба изображения и вращению. Они также стабильны к изменениям в освещении, шумам и небольшим изменениям точки наблюдения. Кроме этих свойств, они высоко различимы, относительно легко извлекаются и позволяют идентификацию объекта с малой вероятности ошибки. Их относительно легко находить в (большой) базе данных локальных признаков, но, однако, высокая размерность признаков может вызвать трудности, поэтому используются вероятностные алгоритмы, такие как k-мерные деревья с поиском best-bin-first[en] (BBF). Описание объекта с помощью SIFT-признаков также устойчиво относительно частичного перекрытия, поскольку даже трёх SIFT-признаков объекта достаточно для вычисления места и положения объекта. Распознавание может быть осуществлено за близкое к реальному время, по меньшей мере для малых баз данных современного компьютерного оборудования.

Алгоритм[править | править код]

Выявление экстремумов масштабного пространства[править | править код]

Мы начинаем с выявления точек, которые называются ключевыми точками в рамках SIFT. Изображение сворачивается с фильтрами Гаусса в различных масштабах, а затем вычисляется разность последовательных размытых по Гауссу изображений. Ключевые точки затем отбираются как максимум/минимум разности гауссианов, которые встречаются в различных масштабах. Разность гауссианов задаётся выражением

,
где является свёрткой исходного изображения с размытием по Гауссу[en] в масштабе , то есть,

Отсюда, образ разности гауссианов между масштабами и является разностью размытых по Гауссу изображений с масштабами и . Для определения экстремума в пространстве мастабирования[en] в алгоритме SIFT изображение сначала свёртывается с размыванием по Гауссу в различных масштабах. Свёрнутые изображения группируются по октаве (октава соответствует удвоению значения ) и значение выбирается так, что мы получаем фиксированное число свёрнутых изображений на октаву. Затем вычисляется разность гауссианов от смежных размытых по Гауссу изображений в октаве.

Как только разность гауссианов изображений получена, ключевые точки определяются как локальный минимум / максимум разности гауссианов изображений по шаблонам. Это делается путём сравнения каждого пикселя по разности гауссианов изображений для её восьми соседей в том же масштабе и девять соответствующих соседних пикселей в каждом из соседних масштабов. Если значение пикселя является максимумом или минимумом среди всех сравниваемых точек, оно выбирается как кандидат ключевой точки.

Этот шаг обнаружения ключевой точки является вариацией одного из методов обнаружения пятен[en], разработанного Линдебергом, путём нахождения экстремумов в масштабном пространстве, нормализованном по масштабу Лапласиана[10][11]. То есть определение точек, которые являются локальными экстремумами с учётом как пространственного положения, так и масштаба, в дискретном случае путём сравнения с ближайшими 26 соседями в дискретизированном объёме в масштабном пространстве. Оператор разности гауссианов можно рассматривать как приближение Лапласиана, с неявной нормализацией в пирамиде[en], также содержащей дискретную аппроксимацию нормализованного по масштабу Лапласиана[12]. Другое воплощение реального времени поиска экстремумов масштабного пространства оператора Лапласа было представлено Линдебергом и Бретцнером, оно основано на гибридном представлении пирамиды[16], которое использовалось для взаимодействия компьютера и человека для распознавания жестов в реальном времени[17].

Локализация ключевых точек[править | править код]

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

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

Интерполяция соседних данных для точности положения[править | править код]

Во-первых, для каждого кандидата ключевой точки, интерполяция ближних данных используется для точного определения положения. Начальным подходом было определение мест каждой ключевой точки по положению и масштабу кандидата в ключевые точки[2]. Новый подход вычисляет интерполированное положение экстремума, что существенно улучшает соответствие и стабильность[3]. Интерполяция осуществляется с помощью квадратичного разложения Тейлора функции разности гауссианов масштабного пространства (англ. Difference-of-Gaussian scale-space function) с кандидатом в ключевые точки, расположенном в начале координат. Это разложение Тейлора задаётся уравнением:

,

где D и её производная вычисляются в точке-кандидате, а является смещением от этой точки. Местоположение экстремума определяется взятием производной этой функции по и приравниванием к нулю. Если смещение больше в любом направлении, это свидетельствует о том, что экстремум лежит ближе к другому кандидату в ключевые точки. В этом случае кандидат в ключевые точки меняется и осуществляется интерполяция для этой точки. В противном случае смещение добавляется к кандидату в ключевые точки, чтобы получить интерполированную оценку места экстремума. Аналогичное субпиксельное определение местоположения экстремумов масштабного пространства, разработанное Линдебергом с соавторами, осуществляется в реализация реального времени на основе гибридных пирамид[16].

Отбрасывание ключевых точек низкого контраста[править | править код]

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

Исключение вклада рёбер[править | править код]

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

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

Собственные значения H пропорциональны главным кривизнам матрицы D. Оказывается, что отношение двух собственных значений, скажем  — большее из них, а  — меньшее, с отношением , достаточно для целей SIFT. След матрицы H, то есть , даёт нам сумму двух собственных значений, в то время как определитель, то есть , даёт произведение. Отношение , как можно показать, равно , что зависит только от отношения собственных значений, а не индивидуальных значений. R является минимум, если собственные значения равны. Таким образом, чем выше абсолютное значение разности между двумя собственными значениями, которое эквивалентно наибольшему абсолютному значению разности между двумя главными кривизнами D, тем выше значение R. Отсюда следует, что для некоторого порогового отношения собственных значений , если R для кандидата ключевой точки больше, чем , то ключевая точка неудачно расположена, а потому отбрасывается. Новый подход использует [3].

Этот шаг подавления ответа рёбер является переносом соответствующего подхода в оператор Харриса для обнаружения углов[en]. Разница в том, что мера для порога вычисляется из матрицы Гессе, а не из матрицы вторых моментов[en].

Назначение ориентации[править | править код]

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

В первую очередь берётся размытое по Гауссу изображение в ключевых точках с масштабом , так что все вычисления осуществляются в масштабно-инвариантной манере. Для изображения с масштабом предварительно вычисляются на основе разности пикселей величина градиента и ориентация

Вычисление величины и направления для градиента делается для каждого пикселя в окрестности ключевой точки в размытом по Гауссу изображении L. Формируется гистограмма направлений с 36 областями, каждая из которых покрывает 10 градусов. Каждая точка в окружающем окне добавляется в область гистограммы, взвешенная по величине градиента и по гауссово-взвешенному круговому окну с , которое в 1,5 раза больше масштаба ключевой точки. Пики в этой гистограмме соответствуют доминирующим направлениям. Как только гистограмма заполнена, направления, соответствующие самым высоким пикам и локальным пикам, которые в пределах 80 % от самых высоких пиков, назначаются ключевой точке. В случае назначения нескольких направлений создаётся дополнительная ключевая точка, имеющая то же местоположение и масштаб, что и оригинальная точка для каждого дополнительного направления.

Дескриптор ключевой точки[править | править код]

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

В первую очередь создаётся набор гистограмм направлений на 4×4 соседних пикселях с 8 областями в каждой. Эти гистограммы вычисляются из значений величины и ориентации элементов в области 16×16 вокруг ключевой точки, так что каждая гистограмма содержит элементы из 4×4 подобласти исходной области соседства. Величины далее взвешиваются функцией Гаусса с , равной половине ширины окна дескриптора. Дескриптор затем становится вектором всех значений этих гистограмм. Поскольку имеется 4 × 4=16 гистограмм с 8 областями в каждой, вектор имеет 128 элементов. Этот вектор нормализуется до единичной длины, чтобы обеспечить инвариантность аффинным изменениям в освещении. Чтобы сократить эффект нелинейного освещения, применяется порог величиной 0,2 и вектор снова нормализуется. Процесс применения порога может улучшить результаты сопоставления, даже если эффекты нелинейного освещения отсутствуют[18]. Значение порога 0,2 выбрано эмпирически и замена фиксированного порога на целенаправленно вычисленный, может улучшить результаты сопоставления[18].

Хотя размерность дескриптора (то есть 128) кажется высокой, дескрипторы с меньшей размерностью не работают столь хорошо[3], а вычислительные затраты остаются низкими, поскольку для поиска ближайшего соседа применяется метод приближённого BBF (см. ниже). Более длинные дескрипторы давали бы лучшие результаты, но не на много, и есть опасность увеличения чувствительности к искажениям и наложению (преградам). Также было показано, что точность сопоставления признаков выше 50 % для изменения точки обзора до 50 градусов. Поэтому SIFT-дескрипторы инвариантны малым аффинным изменениям. Чтобы проверить различимость SIFT-дескрипторов, измеряется также точность соответствия относительно различного количества ключевых точек в тестовой базе данных и было показано, что точность соответствия уменьшается лишь слегка для больших баз данных, что свидетельствует, что SIFT-признаки высоко различимы.

Сравнение SIFT-признаков с другими локальными признаками[править | править код]

Проводились интенсивные исследования по оценке эффективности различных локальных дескрипторов, включая SIFT[19]. Основные результаты приведены ниже:

  • SIFT и (похожие на SIFT) GLOH[en] признаки (англ. Gradient Location and Orientation Histogram) показывают наивысшую точность соответствия для аффинного преобразования в 50 градусов. После этого предела результаты преобразования становятся недостоверными.
  • Различимость дескрипторов измеряется суммированием собственных значений дескрипторов, полученных методом главных компонент для дескрипторов, нормализованных по дисперсии. Это соответствует величине дисперсии, соответствующей разным дескрипторам, а потому их различению. Признаки PCA-SIFT (Метод главных компонент, применённый к дескрипторам SIFT), GLOH и SIFT дают наивысшие значения.
  • Основанные на SIFT дескрипторы превосходят другие современные локальные дескрипторы как для текстурированных, так и структурных сценах, при этом эффективность для текстурных сцен выше.
  • Для изменения масштаба в 2-2,5 раза и вращения образа в пределах от 30 до 45 градусов SIFT и основанные на SIFT дескрипторы снова превосходят другие современные локальные дескрипторы для текстурированных и структурных сцен.
  • Размытие (нечёткость) воздействует на все локальные дескрипторы, особенно на те, которые основаны на границах (рёбрах), такие как алгоритм «shape context»[en] (контекст фигуры), поскольку рёбра исчезают в случае сильного размывания границ. Но GLOH, PCA-SIFT и SIFT продолжают работать лучше, чем остальные. Это верно также для случая изменений освещения.

Проведённые испытания сильно подсказывают, что основанные на SIFT дескрипторы наиболее устойчивы и различимы, а потому наиболее рекомендуемы для сопоставления признаков. Тем не менее, недавно разработанные дескрипторы признаков, такие как SURF[en], в этих испытаниях не исследовались.

SURF, как было показано, имеет эффективность, близкую к SIFT, но, в то же время, алгоритм много быстрее[20]. Другие исследования показали, что когда скорость не является критичным фактором, SIFT превосходит SURF[21][22]. В частности, если не учитывать эффекты дискретизации, дескриптор изображения в SIFT существенно лучше, чем дескриптор изображения в SURF. В то же время экстремум в масштабном пространстве определителя гессиана детектора простой особой точки в SURF состоит из существенно лучших особых точек по сравнению с экстремумом в масштабном пространстве лапласиана, для которого алгоритм определения особой точки в SIFT осуществляет численную аппроксимацию[21].

Показатель согласования изображения SIFT-дескрипторами может быть улучшен в смысле достижения более высоких показателей эффективности и более низких показателей 1-точности[прояснить] (англ. 1-precision scores) путём замены масштабируемого пространственного экстремума оператора разности гауссианов в исходном SIFT на экстремум определителя гессиана в масштабируемом пространстве, или рассматривая более общее семейство обобщённых особых точек масштабируемого пространства [21].

В недавнем времени был предложен слегка изменённый вариант дескриптора, использующий неоднородную гистограммную решётку, который существенно улучшает качество[23]. Вместо использования решётки 4×4 областей гистограммы все области расширяются к центру признака. Это улучшает устойчивость дескрипторов к изменению масштаба.

Дескриптор SIFT-Rank[24], как было показано, улучшает характеристики стандартного SIFT-дескриптора для аффинного сопоставления признаков. SIFT-Rank дескриптор образуется из стандартного SIFT-дескриптора путём присвоения каждой области гистограммы ранга в отсортированном массиве областей. Евклидово расстояние между SIFT-Rank дескрипторами инвариантно относительно произвольных монотонных изменений значений гистограммы и связано с коэффициентами корреляции рангов Спирмэна[en].

Приложения[править | править код]

Распознавание объектов с помощью SIFT-признаков[править | править код]

Если имеется возможность системы SIFT нахождения различных ключевых точек, инвариантных по местоположению, масштабу и повороту и устойчивых к аффинным преобразованиям (изменения в масштабе[en], повороте, сдвиге[en] и позиции) и изменения в освещении, они полезны для распознавания объектов. Эти шаги приведены ниже

  • Во-первых, SIFT-признаки получаются из входного изображения с помощью алгоритма, описанного выше.
  • Эти признаки сопоставляются с SIFT-признаками из базы данных, полученными из тренировочных изображений. Это сопоставление признаков осуществляется с помощью подхода, основанного на евклидовом расстоянии до ближайшего соседа. Для увеличения устойчивости сопоставление отбрасывается для ключевых точек, для которых отношение расстояния до ближайшего соседа к расстоянию до второго ближайшего соседа больше 0,8. Это отбрасывает много ложных соответствий, возникающих из фоновых мешающих изображений. Наконец, во избежание затратного поиска, нужного для нахождения ближайшего соседа по евклидову расстоянию, используется приближённый алгоритм с названием «best-bin-first»[14]. Это быстрый метод, возвращающий с высокой вероятностью ближайшего соседа, и он может ускорить процесс поиска в 1000 раз, в то время как нахождение ближайшего соседа занимает 95 % времени.
  • Хотя тест отношения расстояний, описанный выше, отбрасывает много ложных соответствий, возникающих из фоновых мешающих изображений, у нас остаются соответствия, принадлежащие другим объектам. Поэтому, чтобы увеличить надёжность идентификации объекта, мы хотим собрать в кластеры признаки, которые принадлежат тому же объекту, и отбросить соответствия, которые останутся после процесса кластеризации. Это делается с помощью преобразования Хафа. Это идентифицирует кластеры признаков, которые голосуют за некоторое положение объекта. Когда кластеры признаков найдены с голосами за некоторое положение объекта, вероятность правильной интерпретации будет много выше, чем для отдельного признака. Каждая ключевая точка голосует за набор положений объекта, если они согласуются с местоположением ключевой точки, масштабом и ориентацией. Области, которые аккумулируют по меньшей мере 3 голоса, считаются кандидатами для сопоставления объект/позиция.
  • Для каждого кластерного кандидата получаем решение методом наименьших квадратов для лучших оценочных параметров аффинной проекции, связывающих тренировочые изображения с входным изображением. Если проекция ключевой точки через эти параметры лежит в половине интервала ошибки, который использовался для параметров в областях преобразования Хафа, соответствие ключевой точки сохраняется. Если остаётся менее 3 точек после отбрасывания выбросов для областей, соответствие для объекта отвергается. Подгонка с помощью наименьших квадратов повторяется, пока удаётся что-то отбросить. Это лучше работает для распознавания плоских объектов, но не для распознавания 3D-объектов, поскольку аффинная модель становится недостоверной для 3D-объектов.
  • В статье Сирмачека и Унсалана[25] предлагается новый подход для использования SIFT-дескрипторов для выделения нескольких объектов. Предложенный подход к обнаружению нескольких объектов проверялся на аэроснимках и спутниковых снимках.

SIFT-признаки могут, в принципе, быть применены к любой задаче, в которой требуется определение места соответствия изображений. Работа может быть осуществлена на приложениях, таких как распознавание конкретных категорий объектов в 2D-изображениях, реконструкция 3D-объектов, отслеживание движений и сегментации, местоположения робота, склейка панорамных изображений и эпиполярной калибровки[en]. Некоторые из этих приложений обсуждаются более детально ниже.

Местоположение робота и карты[править | править код]

В этом приложении[26] используется тринокулярная стереосистема для определения oценки 3D-местоположения ключевой точки. Ключевые точки используются, только когда они появляются во всех 3 изображениях с согласующимися несовпадениями, что приводит к очень редким выпадениям. Когда робот движется, он определяет своё местоположение с помощью соотношения признаков с существующей 3D-картой, а затем последовательно добавляет признаки в карту во время обновления 3D-позиции, используя фильтр Калмана. Это обеспечивает надёжное и точное решение задачи определения местоположения робота в неизвестном окружении.

Сшивка панорамы[править | править код]

Соответствие SIFT-признаков может быть использовано для сшивки изображений[en] для полностью автоматизированного построения панорамы из непанорамных кадров. SIFT-признаки, выделенные из входных изображений, сопоставляются друг с другом для поиска k ближайших соседей в каждом изображении. Эти соответствия затем используются для поиска m кандидатов соответствия изображений для каждого изображения. Затем вычисляются гомографии между парами изображений, используя RANSAC (англ. Random sample consensus) и используется вероятностная модель для проверки. Поскольку не существует никаких ограничений на входные изображения, применяется поиск по графу для связных компонент соответствия изображений, так что каждая связная компонента будет соответствовать панораме. Наконец, для каждой связной компоненты выполняется блочное уравнивание[en] для решения параметров камеры, и панорама обрабатывается с помощью широкодиапазонного смешивания (англ. multi-band blending). Ввиду подхода к распознаванию объектов для сшивки панорамы, навеянного методом SIFT, результирующая система нечувствительна к порядку, ориентации, масштабу и освещённости изображений. Входные изображения могут содержать несколько панорам и шумы изображений (некоторые из которых могут даже не быть частями составного изображения)[27].

Моделирование 3D-сцен, распознавание и трассировка[править | править код]

Это приложение использует SIFT-признаки для распознавания трёхмерного объекта[en] и трёхмерного моделирования в контексте дополненной реальности, в которой создаваемые искусственные объекты в точной позе накладываются на реальные изображения. SIFT-соответствие определяется для нескольких 2D-изображений сцены или объекта, полученных с различных углов. Это используется с блочным уравниванием[en] для построения разреженной 3D-модели рассматриваемой сцены и одновременно восстанавливаются позиции камеры и параметры калибровки. Затем определяется позиция, ориентация и размер виртуального объекта относительно координат кадра рассматриваемой модели. Для онлайнового позиционного трекинга признаки SIFT выделяются из текущего видеокадра и сопоставляются с уже вычисленными признаками, что даёт набор соответствий 2D-к-3D. Эти соответствия затем используются для вычисления текущей позиции камеры для виртуальной проекции и конечной обработки. Техника регуляризации используется для сокращения дрожания в виртуальной проекции[28]. Были также реализованы 3D-расширения SIFT для распознавания и выделения настоящих трёхмерных объектов[29][30].

3D SIFT-подобные дескрипторы для распознавания действий человека[править | править код]

Изучались расширения SIFT-дескриптора до 2+1-мерных пространственно-временных данных в контексте распознавания действий человека в видео[29][31][32][33]. Создание локальных зависящих от положения гистограмм в алгоритме 2D SIFT расширяется с двухмерного до трёхмерного, чтобы описать признаки SIFT пространственно-временной области. Для приложения к распознаванию действий человека в видео тренировочные видео выполняются либо с особых пространственно-временных точек, либо в случайном месте, времени и масштабе. Пространственно-временные области вокруг этих особых точек затем описываются с помощью 3D SIFT-дескриптора. Эти дескрипторы затем собираются в виде пространственно-временной модели «мешок слов»[en]. 3D SIFT-дескрипторы, извлечённые из тестовых роликов, сопоставляются этим словам для классификации действий человека.

Авторы утверждают, что их 3D SIFT-дескриптор показывает существенно более лучшие результаты, чем другие подходы, такие как простые 2D SIFT-дескрипторы и значение градиента[34].

Анализ человеческого мозга в трёхмерных изображениях Магнитно-резонансной томографии[править | править код]

Техника морфометрии, основанной на признаках, (англ. Feature-based Morphometry, FBM)[35][35] использует экстремумы в разности гауссового пространства масшабирования[en] для анализа и классификации 3D Магнитно-резонансных изображений (англ. magnetic resonance images, MRIs) человеческого мозга. FBM моделирует изображение вероятностно как коллаж независимых признаков, обусловленных геометрией изображения и группами меток, например здоровые объекты и объекты, соответствующие болезни Альцгеймера. Признаки сначала извлекаются в отдельные изображения из четырёхмерной разности гауссового пространства масшабирования, затем моделируются в понятиях их проявления, геометрии и статистики совместного выпадения событий в группе по множеству изображений. FBM была проверена в анализе болезни Альцгеймера с помощью набора ~200 объёмных снимков (MRI) человеческого мозга, автоматически определяя установленные индикаторы болезни Альцгеймера в мозге и классифицируя неострые болезни в новых изображениях с показателем 80 %[35].

Конкурирующие методы[править | править код]

Конкурирующие методы для распознавания объектов инвариантно по масштабу при помехах и частичном перекрытии следующие.

RIFT[36]: Инвариантное относительно вращения обобщение SIFT (англ. rotation-invariant generalization of SIFT). Дескриптор RIFT строится с помощью круговых нормализованных кусочков, разделённых на концентрические кольца равной ширины, и внутри каждого кольца вычисляется гистограмма направления градиента. Чтобы получить инвариантность относительно вращения, ориентация измеряется в каждой точке относительно направления от центра.

G-RIF[37]: Обобщённые Устойчивые Инвариантные Признаки (англ. Generalized Robust Invariant Feature) — это общий дескриптор контекста, который кодирует ориентацию рёбер, плотность рёбер и информацию о цвете в едином ключе, комбинируя информацию восприятия с пространственным кодированием. Схема распознавания объекта для оценки моделей объекта использует контекст соседства, основываясь на голосовании.

«SURF»[en][38]: Устойчивые Ускоренные Признаки (англ. Speeded Up Robust Features) — это высокоэффективные детекторы / дескрипторы инвариантные по масштабу и вращению особой точки, для которых утверждается, что они приближаются или даже превосходят предварительно предложенные схемы по воспроизводимости, отчётливости и надёжности. SURF опирается на полные изображения для свёртки для сокращения времени вычисления и основан на силе лидирующих существующих детекторов и дескрипторов (используя быструю меру, основанную на матрице Гессе, для детекторов и основанных на вероятностных распределениях дескрипторах). Он описывает распределение ответов вейвлета Хаара среди соседей особой точки. Для ускорения используются полные изображения и используются только 64-мерные вектора признаков для сокращения времени вычисления и сопоставления. Шаг индексирования основан на знаке лапласиана, что увеличивает скорость сопоставления и устойчивость дескриптора.

PCA-SIFT[39] и GLOH[en][19] являются вариантами SIFT. PCA-SIFT-дескриптор — это вектор градиентов изображения в направлениях x и y, вычисленный в поддерживаемой области. Область градиента разбита на 39×39 мест, поэтому размерность вектора равна 3042. Размерность сокращается до 36 методом главных компонент. Гистограмма градиентов местоположения-ориентации (GLOH[en]) является расширением SIFT-дескриптора, и разрабатывался для увеличения его устойчивости и различимости. SIFT-дескриптор вычисляется в логарифмических полярных координатах[en] решётки положения с тремя областями в радиальных направлениях (радиус устанавливается в 6, 11 и 15) и 8 в угловых направлениях, что даёт 17 областей. Центральная область не разделяется на угловые направления. Направления градиента квантуются на 16 областей, что даёт гистограмму с 272 областями. Размер этого дескриптора сокращается методом главных компонент. Ковариационная матрица для метода главных компонент оценивается на кусках, собранных из разных изображений. 128 наибольших собственных векторов используются для описания.

Gauss-SIFT[21] является чистым дескриптором изображения, определённым путём осуществления измерения всех изображений лежащего в основе дескриптора SIFT с помощью производной гауссиана, а не аппроксимации производной в пирамиде изображений, как это делается в стандартном SIFT. При таком подходе эффект дискретизации пространства и масштаба может быть сокращён до минимума, что, потенциально, даст более точные дескрипторы изображений. У Линдеберга[21] такие Gauss-SIFT дескрипторы изображений комбинировались с набором обобщённых масштабных пространств особых точек, включая лапласиан гауссиана, определитель гессиана, четыре новых меры признаков беззнакового и знакового гессиана, а также особые точки Харриса — Лапласа и Ши — Томаса. В интенсивном экспериментальном прогоне на базе данных афиш, содержащей несколько преобразований 12 афиш по изменению масштаба до 6-кратного и направления обзора вплоть до угла в 45 градусов, было показано, что существенное увеличение эффективности обработки изображений (более высокие показатели эффективности и более низкие показателей 1-точности) может быть получено путём замены лапласиана гауссиана особых точек на определитель гессиана особых точек. Поскольку разность гауссианов особых точек предполагает численную аппроксимацию лапласиана гауссиана особых точек, это показывает, что возможно существенное увеличение производительности сопоставления путём замены разности гессианов особых точек в SIFT на определитель гессиана особых точек. Дополнительное увеличение производительности может быть далее получено при рассмотрении меры силы признака беззнакового гессиана (англ. unsigned Hessian feature strength measure) или 0 в противном случае. Численное сравнение между Gauss-SIFT дескриптором и соответствующим Gauss-SURF дескриптором также показало, что Gauss-SIFT в общем случае работает существенно лучше, чем Gauss-SURF для большого числа различных детекторов масштабных пространств особых точек. Изучение, таким образом, показывает, что отбрасывание эффекта дискретизации дескриптора изображения в SIFT существенно лучше, чем дескриптор изображения в SURF, тем не менее детектор особых точек в SURF, который можно рассматривать как численное приближение к экстремуму в масштабном пространстве определителя гессиана, существенно лучше, чем детектор особых точек в SIFT.

Вагнер с сотрудниками разработал два алгоритма распознавания объектов специально приспособленных к ограничениям существующих мобильных телефонов[40]. В отличие от классического подхода, SIFT Вагнер и др. используют алгоритм обнаружения углов[en] FAST для обнаружения признаков. Алгоритм также отличается оффлайновой фазой подготовки, где признаки создаются на разных уровнях масштаба, и онлайновой фазой, где признаки создаются только для фиксированного уровня масштаба изображения камеры телефона. Кроме того, признаки создаются только из фиксированных областей размером 15×15 пикселей и создаётся только 36-мерный SIFT дескриптор. Подход был в дальнейшем расширен путём интеграции с масштабируемым деревом слов (англ. Scalable Vocabulary Tree)[41]. Это позволяет эффективное распознавание большого числа объектов мобильным телефоном. Подход ограничен главным образом количеством доступной оперативной памяти.

KAZE и A-KAZE (Признаки KAZE и Форсированные признаки Kaze) является новым методом 2D-обнаружения и описания признаков, который работает лучше, чем SIFT и SURF. Он получил широкую популярность вследствие того, что распространяется свободно и имеет открытые исходные коды. Алгоритм также не запатентован. KAZE создали Пабло Ф. Алькантарилья, Эдриен Бартоли и Эндрю Дж. Дэвисон[42].

См. также[править | править код]

Примечания[править | править код]

  1. 1 2 U.S. Patent 6,711,293, «Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image» («Метод и аппараты для обнаружения инвариантных по масштабу признаков в изображении и использование их для нахождения объекта в изображении»), патент Дэвида Лоу на алгоритм SIFT, Март 23, 2004
  2. 1 2 3 4 Lowe, 1999, с. 1150–1157.
  3. 1 2 3 4 5 6 Lowe, 2004, с. 91–110.
  4. Koenderink, van Doorn, 1987, с. 383—396.
  5. Koenderink, van Doorn, 1992, с. 597—605.
  6. Lindeberg:BICY, 2013, с. 589—635.
  7. Lindeberg:AdvImg, 2013, с. 1—96.
  8. Lindeberg:PLoS ONE, 2013.
  9. 1 2 Lindeberg, 2014, с. 701—713.
  10. 1 2 Lindeberg, 1994.
  11. 1 2 Lindeberg, 1998, с. 79–116.
  12. 1 2 Lindeberg, 2012, с. 10491.
  13. Serre, Kouh, Cadieu, Knoblich, Kreiman, Poggio, 2005.
  14. 1 2 Beis, Lowe, 1997, с. 1000–1006.
  15. Lowe, 2001, с. 682—688.
  16. 1 2 Lindeberg, Bretzner, 2003, с. 148–163.
  17. Bretzner, Laptev, Lindeberg, 2002, с. 423—428.
  18. 1 2 Kirchner, 2016, с. 291—295.
  19. 1 2 Mikolajczyk, Schmid, 2005, с. 1615–1630.
  20. TU-chemnitz.de (недоступная ссылка). Дата обращения 12 ноября 2018. Архивировано 22 мая 2011 года.
  21. 1 2 3 4 5 Lindeberg, 2015, с. 3—36.
  22. Oyallon, Rabin, 2015.
  23. Cui, Hasler, Thormaehlen, Seidel, 2009.
  24. Toews, Wells III, 2009, с. 172–177.
  25. Sirmacek, Unsalan, 2009, с. 1156–1167.
  26. Se, Lowe, Little, 2001, с. 2051.
  27. Brown, Lowe, 2003, с. 1218–1225.
  28. Gordon, Lowe, 2006, с. 67—82.
  29. 1 2 Flitton, Breckon, 2010, с. 11.1–12.
  30. Flitton, Breckon, Megherbi, 2013.
  31. Laptev, Lindeberg, 2004, с. 91–103.
  32. Laptev, Caputo, Schuldt, Lindeberg, 2007, с. 207–229.
  33. Scovanner, Ali, Shah, 2007, с. 357–360.
  34. Niebles, Wang, Li, 2006, с. 1156–1167.
  35. 1 2 3 Toews, Wells III, Collins, Arbel, 2010, с. 2318–2327.
  36. Lazebnik, Schmid, Ponce, 2004.
  37. Kim, Yoon, Kweon, 2006.
  38. Bay, Tuytelaars, van Gool, 2006.
  39. Ke, Sukthankar, 2004.
  40. Wagner, Reitmayr, Mulloni, Drummond, Schmalstieg, 2008.
  41. Henze, Schinke, Boll, 2009.
  42. KAZE Features.

Литература[править | править код]

Ссылки[править | править код]