Масштабировать пространство

Эта статья является частью серии, знакомящей разработчиков с компьютерным зрением. Ознакомьтесь с другими статьями из этой серии.

Понимание масштабного пространства - еще один из основных строительных блоков компьютерного зрения. Масштабное пространство позволяет использовать детекторы признаков с неизменным масштабом, что позволяет нам находить одни и те же особенности на изображениях одних и тех же объектов в разных масштабах.

В то время как детекторы объектов, зависящие от масштаба (такие как Угловой детектор Харриса), выдают список функций, которые состоят из значений x и y, соответствующих их местоположению на изображении. Если мы хотим работать с масштабно-инвариантными функциями, нам нужны точки характеристик, которые не только состоят из значений x и y, но также определяются третьим значением сигмы (часто обозначаемым греческой буквой σ). В то время как значения x и y дают нам представление о том, где находится объект в координатном пространстве изображения, значение сигмы даст нам представление о том, где объект находится в масштабном пространстве изображения. изображение. Другими словами, признаки, определяемые x, y и σ, позволят нам правильно найти один и тот же признак на изображениях, сделанных в разных масштабах.

Субдискретизация и пирамиды изображений

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

В рамках наших обсуждений мы выполняем субдискретизацию каждого второго пикселя как в направлении Y, так и в направлении X. Мы пропускаем каждую вторую строку пикселей и пропускаем каждый второй столбец пикселей. Это эффективно удаляет 75% пикселей, в результате чего изображение становится вдвое меньше и вдвое меньше исходного. Мы можем повторить этот процесс несколько раз для создания различных масштабов.

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

Гауссовские пирамиды

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

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

Когда мы складываем все эти изображения, мы получаем пирамиду Гаусса.

БОКОВОЕ ПРИМЕЧАНИЕ. Разработчики игр, возможно, уже проводят некоторые параллели между пирамидами изображений и текстурами mipmap, генерируемыми графическим процессором. MIP-карты представляют собой пирамиды изображений, но они не обязательно используют фильтр Гаусса. Mip-карты могут использовать другие фильтры или методы сглаживания.

Это еще одна действительно важная концепция, когда дело доходит до понимания масштабного пространства. Как разработчик вы уже привыкли к идее разрешения изображений. Мы часто думаем об этом как о количестве пикселей по ширине и высоте изображения. Что, если бы мы думали о разрешении как о количестве данных по ширине и высоте изображения? Как это меняет наше представление о разрешении? Имея это в виду, мы можем сделать вывод, что при подвыборке мы удаляем данные, удаляя пиксели, и этих данных больше нет в изображении - мы эффективно удаляем 75% данных в изображении, удаляя 75% пикселей.

Размытие по Гауссу сглаживает данные изображения и распределяет их на соседние пиксели. Затем мы производим субдискретизацию этого отфильтрованного изображения. Поскольку функция Гаусса распространяет данные каждого пикселя на его соседей, когда мы удаляем пиксель, мы не удаляем ВСЕ данные этого пикселя. Некоторые данные удаляемого пикселя остаются включенными в соседей, которые не удаляются. Таким образом, мы удаляем менее 75% данных, в то время как мы все еще удаляем 75% пикселей.

Гауссово масштабное пространство

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

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

Напомним, что мы обсуждали размытие по Гауссу, когда впервые ввели свертки. Мы кратко обсудили сигма-переменную при создании гауссовских ядер. Не вдаваясь в математику, важно отметить, что значение сигмы определяет силу размытия, применяемого к изображению. (В своем исследовании я нашел удобный калькулятор ядра Гаусса, который вы можете изучить здесь). Если значение сигмы определяет силу размытия, а величина размытия эффективно снижает разрешение, мы можем сделать вывод, что мы можем использовать значение сигмы для уменьшения разрешения изображения. Чем больше сигма, тем больше снижение разрешения. Когда мы несколько раз сворачиваем изображение с помощью ядра Гаусса, результат называется Пространством Гаусса. Для визуализации представьте, что размытое изображение складывается с увеличением значений сигмы. Теперь у нас есть способ обнаруживать особенности в масштабном пространстве, то есть мы можем идентифицировать особенности вдоль направлений x, y и σ (сигма).

SIDENOTE: Я знаю, что это может сбить с толку разработчиков, которые привыкли работать в 3D. Почему мы не используем Z в качестве третьего координатного направления? Ответ заключается в том, что Z относится к координатному положению, а σ относится к масштабу объекта. Как только мы сможем разместить объект в трехмерном пространстве, мы сможем использовать 4 значения для идентификации объекта: x, y, z и σ.

SIDENOTE: Существуют и другие методы уменьшения разрешения помимо размытия по Гауссу, такие как анизотропное масштабирование. Для целей этой серии метод Гаусса прост и ведет к другим темам, которые мы обсудим позже.

Оптимизация масштабного пространства

Три - это последняя тема, которую мы должны обсудить, прежде чем завершать масштабирование пространства. Огромное преимущество при работе с пирамидами изображений заключается в том, что после каждого шага изменения масштаба изображение становится на 75% меньше, чем на предыдущем шаге. Поскольку мы применяем другие алгоритмы компьютерного зрения к нашим изображениям для извлечения или описания функций, у нас на 75% меньше пикселей, о которых нужно беспокоиться на КАЖДОМ шаге нашей шкалы. Это означает, что наши алгоритмы будут обрабатывать большие масштабы быстрее и потребуют меньше памяти. Это значительная оптимизация производительности, которая особенно интересна для приложений реального времени. С этой целью оказывается, что у нас есть золотая середина между оптимизацией производительности и более точным контролем над масштабируемым пространством.

Для этого мы воспользуемся идеями из пирамиды Гаусса и пространства шкалы Гаусса, которые мы обсуждали ранее. Основная идея состоит в том, что мы начинаем с пирамиды Гаусса и повторно применяем размытие по Гауссу между этапами субдискретизации. Каждый раз, когда выполняется субдискретизация изображения, мы называем шкалы в этом пространстве октавой. Конкретная используемая сигма, количество применений размытия по Гауссу и количество октав - все это переменные, которые мы можем настроить в зависимости от нашего конкретного случая использования.

Популярная конфигурация, которую я часто видел в своих исследованиях, - это значения, предоставленные Дэвидом Лоу (изобретателем детектора и дескриптора функций SIFT, который мы обсудим позже), который представляет собой сигму 1,6 и 4 шага для каждой октавы.

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

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

TL; DR

В этой статье мы обсудили различные подходы к построению Масштабируемого пространства в качестве шага к созданию масштабно-инвариантных детекторов признаков. Пирамида изображений - это простейший метод изменения масштаба изображений с использованием понижающей дискретизации / субдискретизации, эффективно удаляя 75% пикселей с каждым шагом масштабирования. Пирамида Гаусса, напоминающая текстуры Mipmap, с которыми уже знакомы разработчики игр, улучшает пирамиды изображений, удаляя артефакты псевдонимов, которые часто встречаются в пирамидах изображений. Удобно, что повторяющиеся гауссовы свертки - интересный способ уменьшить эффективное разрешение изображений между ступенями пирамиды, что позволяет нам иметь большую точность, когда дело доходит до масштаба.

Источники и дополнительная информация