Поиск похожих изображений. Сравнение изображений Вячеслав Колбасин Зачем это нужно? 1. Фильтрация пользовательского контента (1) Востребована везде, где пользователи могут размещать свои изображения Особенно если владелец сайта отвечает за добавленное пользователями содержимое Надо проверять, что изображение не оскорбляет общественную мораль не содержит запрещенной законом символики не нарушает политику сайта, авторские права и психическое здоровье пользователей сайта Кулинарный форум вегетарианцев Есть кулинарный форум вегетарианцев с интернетмагазином Пользователи могут оставлять рецепты и изображения получившихся блюд Задача – защитить ресурс от размещения рецептов и картинок, неподобающего содержания • Тексты можно фильтровать по словам, но что делать с фотографиями? Что мы понимаем под неподобающим содержанием? Фруктовый плов Для приготовления фруктового плова необходимы: - 2 стакана риса; - 100 грамм сухофруктов; ……………………………. ……………………………. Через 30 минут у меня получился замечательный продукт: Что здесь может быть неподобающего ? Кулинарный форум вегетарианцев Есть кулинарный форум вегетарианцев с интернетмагазином Пользователи могут оставлять рецепты и изображения получившихся блюд Задача – защитить ресурс от размещения рецептов и картинок, неподобающего содержания • Тексты можно фильтровать по словам, но что делать с фотографиями? Фруктовый плов Для приготовления фруктового плова необходимы: - 2 стакана риса; - 100 грамм сухофруктов; ……………………………. ……………………………. Через 30 минут у меня получился замечательный продукт: Новый семинар: Проблемы и решения вывода денег в Нигерию в свете новинок законодательства Телефон для записи : 80-44-03 Что мы понимаем под неподобающим содержанием? 1. СПАМ Кулинарный форум вегетарианцев Есть кулинарный форум вегетарианцев с интернетмагазином Пользователи могут оставлять рецепты и изображения получившихся блюд Задача – защитить ресурс от размещения рецептов и картинок, неподобающего содержания • Тексты можно фильтровать по словам, но что делать с фотографиями? 2. Неприемлемые Что мы понимаем под картинки неподобающим содержанием? Фруктовый плов Для приготовления фруктового плова необходимы: - 2 стакана риса; - 100 грамм сухофруктов; ……………………………. ……………………………. Через 30 минут у меня получился замечательный продукт: Кулинарный форум вегетарианцев Есть кулинарный форум вегетарианцев с интернетмагазином Пользователи могут оставлять рецепты и изображения получившихся блюд Задача – защитить ресурс от размещения рецептов и картинок, неподобающего содержания • Тексты можно фильтровать по словам, но что делать с фотографиями? Что мы понимаем под неподобающим содержанием? Фруктовый плов Для приготовления фруктового плова необходимы: - 2 стакана риса; - 100 грамм сухофруктов; ……………………………. 3. Неприемлемые ……………………………. картинках Черезобъекты 30 минутна у меня получился замечательный продукт: 1. Фильтрация пользовательского контента (2) Для каждого изображения надо проверить: Есть ли оно в базе запрещенных изображений Встречаются ли в нем запрещенные изображения Технически требуется Выделить на изображении ключевые объекты • Возможно придется сегментировать изображение Найти в базе запрещенных изображений картинки, похожие на ключевые объекты и на саму картинку 2. Поиск товаров в интернет-магазине У пользователя есть фотография нравящегося ему предмета (куртки) и он хочет найти его в нашем магазине Технически надо найти по базе фотографий товаров наиболее похожие изображения и отобразить связанные с ними страницы сайта 3. Приложения дополненной реальности Пользователь фотографирует на смартфон объект, например здание, и просит показать информацию по нему Смартфон пересылает на сервер изображение и примерные координаты пользователя Система по ключевым точкам ищет наиболее похожие фотографии в базе и возвращает информацию по ним Госпро́м (укр. Держпром) — Дом Государственной промышленности, построенный на центральной площади города Харькова — площади Дзержинского (с 1996 года — площадь Свободы). Памятник архитектуры в стиле конструктивизм, символ данного стиля. (и далее описание из Wikipedia) Другие применения Фотосток Проверка авторства изображения • Поиск по изображениям фотостока нет ли такого же изображения с иными пропорциями, удаленными частями, измененными цветами и другими изменениями Автоматическая классификация фотографий • Сравнение, на какое из типовых изображений больше всего похоже данное Поиск похожего изображения, но с приемлемой лицензией • Нужна фотография офиса визуально похожая на найденную в сети, но под свободной лицензией Медицинские изображения По заданной рентгенограмме найти другие рентгенограммы, которые с диагностической точки зрения похожи на данную • То есть, имеющие аналогичные особенности Что человек понимает под похожими изображениями? Изображения (сцены) определенных классов Изображения (сцены), содержащие объекты заданных классов схожие по смыслу изображения Дополненная реальность Обнаружение номеров машин Визуально похожие изображения Фильтрация контента Медицинские изображения Изображения (сцены), содержащие объекты из заданного набора Фильтрация контента Поиск в интернет-магазине Поиск по фотостоку Идентичные изображения Фотосток, проверка дубликатов визуально схожие изображения Поиск дубликатов. (1) У одинаковых изображений отличие между точками мало Выразим отличие как среднеквадратичное отклонение (СКО): Причем СКО неоднозначная мера – эти изображения отличаются от оригинала примерно одинаково Поиск дубликатов. (2) Что можно улучшить ? Дополнить СКО учетом свойства маскировки разной чувствительности глаза к разным частотам восприятие человеком цвета (пространство Lab) Изображения сравнили, а как насчет поиска? Сравниваем искомое изображение со всеми в базе! Поиск будет очень ресурсоемким и долгим Какова будет релевантность поиска ? Что будет, если изображение в базе будет немного сдвинуто? А если мы изменим его цвет? А если немного изменим пропорции? Поиск дубликатов. (3) Чтобы повысить скорость сравнения можно уменьшить размер сравниваемых изображений Но до какого предела? Человек приемлемо распознает изображения размера 32*32 и 64*64 на черно-белых изображениях Что делаем: Переводим в градации серого Яркость нормируем Все изображения масштабируем к квадрату A. Torralba, R. Fergus, W. T. Freeman. 80 million tiny images: a large dataset for non-parametric object and scene recognition, 2008 1024 байт на изображение ? - все равно много! Пирамиды изображений Будем постепенно увеличивать размер изображения Отберем изображения размера 4*4 Потом из них выберем самые похожие размера 8*8 И так далее Так быстрее, но все равно полный перебор ошибки при существенно изменении пропорций изображения • метод непосредственно применим только для поиска дубликатов Что человек понимает под похожими изображениями? Изображения (сцены) определенных классов Изображения (сцены), содержащие объекты заданных классов схожие по смыслу изображения Дополненная реальность Обнаружение номеров машин Визуально похожие изображения Фильтрация контента Медицинские изображения Изображения (сцены), содержащие объекты из заданного набора Фильтрация контента Поиск в интернет-магазине Поиск по фотостоку Идентичные изображения Фотосток, проверка дубликатов визуально схожие изображения Визуально схожие изображения Изображения, из которых получили образец Изменены пропорции Часть изображения удалена Изменен цвет Изображения, похожие на образец Картинка зрительно похожа, совпадение объектов на ней не проверяется Признаки изображения Сравнивать попиксельно – неэффективно, нужны общие признаки изображения Что может быть признаком По ним и будем вести поиск Яркость точек Цвет точек Типовые фрагменты изображения («слова») Локальные особенности изображения Как сравнивать признаки? Сравнивать гистограммы признаков Сравнивать локализацию признаков на изображении Гистограммы яркостей Переводим изображения в градации серого и строим гистограмму яркостей точек Далее гистограммы квантуем для уменьшения числа столбцов и сравниваем между собой Гистограммы цветов Переводим изображения в цветовое пространство Lab и строим гистограмму распределения компонент а, b Можно привести цвета изображения к палитре с малым числом цветов и строить гистограмму по ней Гистограммы Для сравнения гистограмм можно По столбцам вычесть одну гистограмму из другой Посчитать сколько перемещений потребуется, чтобы превратить одну гистограмму в другую Недостатки гистограмм Признаки слишком общие и такие два изображения будут считаться одинаковыми Пирамиды гистограмм Чтобы добавить пространственного разрешения разделим изображение на части и будем для каждой из них строить гистограмму Уровень 0 Уровень 1 Уровень 2 А. Конушин. Лекции по компьютерному зрению МГУ Метод выделения признаков «мешок слов» Адаптация метода анализа текстов, использующего набор слов текста, без учета синтаксических особенностей Как работает Выделяем на изображении типовые фрагменты Считаем частоту их встречаемости Это и есть дескриптор изображений Что считать типовым фрагментом Часто зависит от обучающей выборки Как правило – получаются примитивы восприятия изображения (Fei-Fei, Perona – 2005) Локальные особенности Надо ли рассматривать все изображение для сравнения? Нет, обычно достаточно посмотреть на несколько хорошо различимых точек • Характеристические точки • Локальные особенности Как определить эти области? Их должно быть меньше числа пикселей на изображении Область должна быть локальной Область должна быть значимой (при сдвиге области результат сравнения должен изменяться) Как сравнить изображения по областям? Найти схожие области на двух изображениях Найти преобразование, которое их совмещает Посмотреть, удалось ли эти точки совместить Если да, сравнить содержимое точек Углы как локальные особенности Что здесь можно выбрать как локальную особенность ? Где окно можно сдвинуть так, чтобы изображение внутри него осталось неизменным? Окно анализа можем сдвигать в любом направлении Окно анализа можем сдвигать вдоль линии Окно анализа не можем сдвигать никуда Координаты углов можно определить детектором Харриса C. Harris, M. Stephens “A Combined Corner and Edge detector” // Proc. of 4th Alvey Vision Conference, p. 147-151, 1988 Размер особенностей Особенности детектора Нечувствителен к повороту изображения Частично чувствителен к изменению яркости Чувствителен к изменению масштаба • Угол в одном масштабе – линия в другом Как определить размер особенности? Выбрать радиус так, чтобы особенность помещалась целиком • Обработать изображение фильтром, выделяющим края • Выбрать масштаб, чтобы отклик фильтра от двух краев накладывался Source: S. Lazebnik Размер особенностей (2) Свертываем изображение с фильтром разного масштаба Смотрим, на каком масштабе будет максимум отклика Source: S. Lazebnik Можно ускорить используя метод Difference of Gaussian D. Lowe “Distinctive image features from scale-invariant keypoints”, 2004 Выделение особенностей Выделяем точки детектором Харриса Находим размер методом Difference of Gaussian Дескриптор точки Дескриптор должен быть инвариантен к повороту Используем градиенты пикселей Для характеристической области Определим доминантное направление градиента, Повернем область так, чтобы градиент был направлен в одну сторону Приведем область к стандартному размеру Строим дескриптор Дескриптор SIFT Вычислим градиент в каждой точке Квантуем ориентации градиентов по 8-ми направлениям Строим гистограмму направления градиентов Можем разделить область сеткой 4х4 для учета локальных особенностей Итого: 16 (4х4) ячеек В каждой гистограмма 8 напралений = 128 элементов D. Lowe. Distinctive Image Features from Scale-Invariant Keypoints, 2004 Применение SIFT Cравнение дескрипторов двух изображений Сравнение взаимного расположения дескрипторов на двух изображениях Поиск зоны интереса на изображении Слесарев и др. Яндекс на РОМИП 2010: Поиск похожих изображений и дубликатов, 2010 Поиск изображений по базе Для ускорения поиска можно использовать kD-мерные деревья (kD-trees) Кластеризация + «инвертированный» индекс по дескриптору Locality Sensitive Hashing Спектральное хеширование Увы… не сегодня Реализация Библиотека OpenCV Де-факто стандарт в области обработки изображений и компьютерного зрения Свободная лицензия Написана на С++, но портирована на Java, C#, Python Ограничено поддерживает использование GPU Очень хорошо документирована VLFeat Более специализированная библиотека для анализа изображений Написана на С++, есть интерфейс к Matlab Нет поддержки работы с устройствами видеозахвата Материалы Замечательные курсы по компьютерному зрению и обработке изображений МГУ им. Ломоносова Книга http://courses.graphicon.ru/main/ Richard Szeliski. Computer Vision: Algorithms and Applications. http://szeliski.org/Book/ Материалы по OpenCV http://locv.ru – Русский перевод книги Learning OpenCV http://opencv.org – сайт библиотеки Вопросы ?