Сопоставление изображений является одним из фундаментальных аспектов многих задач компьютерного зрения, таких как распознавание объектов, построение трёхмерной сцены на основе нескольких изображений, создание стереопары, создание панорамных изображений, motion tracking (слежение за объектом в видеопоследовательности) и так далее. По причине того, что область знаний, решающая подобные проблемы, ещё молода (интенсивное изучение началось лишь в 1970-х годах), не существует определённого универсального метода, идеально подходящего для всех задач такого рода. Однако, существуют методы решения более узких задач, каждый из которых будет показывать лучшие результаты в зависимости от задачи.
Человеку несложно сравнить два изображения и выделить на них объекты, всё это происходит на интуитивном уровне и не вызывает затруднений. Но для компьютера изображение — лишь набор данных, не несущий информации об объектах, изображенных на нём. Можно описать два основных подхода к наделению машины таким умением.
Первый подход заключается в сравнении изображений на основе информации полученной от анализа всех пикселей изображения [3]. В общем случае алгоритм такого типа выглядит следующим образом: для каждого пикселя вычисляется значение некоторой функции, и на основе этих значений получается определенная характеристика всего изображения в целом. И тогда задача сводится к сравнению этих характеристик. И хотя такие алгоритмы просты и не требуют больших вычислительных затрат, результат их работы оставляет желать лучшего. Причина заключается в их основной идее, в характеристику изображения вносит вклад каждый пиксель, несмотря на ценность этого вклада. Метод будет выдавать неприемлемый результат в случае появления новых объектов, перекрытия одних объектов другими, появления шума, изменение положения объекта в трёхмерном пространстве и так далее.
Второй подход, о котором и пойдёт речь в данной работе, основан на идее использования лишь тех пикселей, вклад которых в общую характеристику будет значительным. Изображение заменяется на набор точек, называемых особыми.
Определение. Особой точкой изображения называется точка изображения, окрестность которой o(m) отличима от окрестности любой другой точки изображения o(n) в некоторой другой окрестности особой точки 02(m). [1]
В большинстве алгоритмов в качестве окрестности точки используется прямоугольное окно размером 5x5 пикселей. Харалик и Шапир [2] определили следующие требования, которым должны удовлетворять особые точки:
1. Отличимость: Особая точка должна выделяться на фоне и быть уникальной в своей окрестности.
2. Инвариантность: Выбор особых точек должен быть независимым от афинных преобразований.
3. Стабильность: Выбор особых точек должен быть устойчив к шуму и ошибкам.
4. Уникальность: Помимо локальной отличимости, особая точка должна также обладать свойством глобальной уникальности для того, чтобы улучшить различимость повторяющихся паттернов.
5. Интерпретируемость: Особые точки должны определяться таким образом, чтобы их можно было использовать для анализа соответствий и лучшей интерпретации изображения.
Процесс сравнения изображений разделяется на три этапа. Первый этап — нахождение множества особых точек с помощью методов, называемых детекторами. Данные методы обеспечивают инвариантность нахождения одних и тех же точек относительно преобразований изображения. Однако, недостаточно использования лишь детектора, так как результатом его работы является множество координат особых точек, которые на каждом изображении различны. Для этого на втором этапе происходит построение дескрипторов. Дескриптор — это описание точки, уникально идентифицирующее её среди множества всех точек. Дескриптор должен обеспечивать инвариантность нахождения соответствий между точками относительно преобразований изображения. Некоторые методы выполняют сразу обе задачи, детектирование особых точек и построение дескрипторов. И третий этап заключается в сравнении дескрипторов и поиске точек, совпадающих на обоих изображениях.
Задачей данной выпускной квалификационной работы было исследование принципов работы детекторов особых точек на изображении и их сравнение на практике. Для этого было разработано программное обеспечение, реализующее методы детектирования и использовано для сравнения результатов их работы. На основе полученных результатов были сделаны выводы о сильных и слабых сторонах алгоритмов и возможных сценариях применения каждого из них.
[1] Конушин А. Слежение за точечными особенностями сцены // Компьютерная графика и мультимедиа, Вып. №1(5)/2003.
[2] Rodehorst V., Koschan A. Comparison and evaluation of feature point detectors, 2006.
[3] Построение SIFT дескрипторов и задача сопоставления изображений https://habrahabr.ru/post/106302/
[4] Moravec, H. Rover visual obstacle avoidance // In International Joint Conference on Artificial Intelligence, Vancouver, Canada, 1981, pp. 785-790.
[5] Harris, C. and Stephens, M. A combined corner and edge detector // In Fourth Alvey Vision Conference, Manchester, UK, 1988, pp. 147-151.
[6] Shi T. Good Features to Track, 1994.
[7] E. R. a. T. Drummond. Fusing Points and Lines for High Performance Tracking, 2005.
[8] R. P a. T. D. Edward Rosten. Faster and better: a machine learning approach to corner detection, 2008.
[9] David G. Lowe. Distinctive Image Features from Scale-Invariant Keypoints, 2004
[10] Herbert Bay, Andreas Ess, Tinne Tuytelaars, and Luc Van Gool, "Speeded Up Robust Features", ETH Zurich, Katholieke Universiteit Leuven
[11] Stefan Leutenegger, Margarita Chli and Roland Siegwart: BRISK: Binary Robust Invariant Scalable Keypoints. ICCV 2011: 2548-2555.