Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 423 / 54 | Длительность: 19:27:00

Самостоятельная работа 4: Классификация изображений с использованием bag-of-words методов

Аннотация: В работе предлагается описание основных шагов bag-of-words подхода для классификации изображений. Рассматриваются прототипы функций библиотеки OpenCV, необходимые для реализации данных шагов, с описанием назначения входных параметров. Предлагаются примеры подпрограмм, демонстрирующие использование каждой функции. Разрабатывается приложение, содержащее реализацию bag-of-words подхода для классификации двух категорий изображений. Проводится вычислительный эксперимент на наборе данных, применяемом на практике. Рассматривается зависимость результатов применения подхода от используемых параметров.

Введение

Презентацию к лабораторной работе Вы можете скачать здесь.

Дополнительные материалы к лабораторной работе Вы можете скачать здесь.

В лабораторной работе рассматривается один из наиболее распространенных классов алгоритмов классификации изображений: так называемые bag-of-words (также известные как bag-of-features или bag-of- keypoints) методы [13]. Фактически bag-of-words подход использует в качестве описания гистограмму вхождений отдельных шаблонов в изображение. Корни идеи восходят к задаче классификации текстов, для решения которой используют описания в виде гистограмм вхождений в документ слов из заранее составленного словаря.

Основные шаги алгоритмов класса bag-of-words могут быть описаны следующим образом:

  1. Детектирование ключевых точек на изображении.
  2. Построение описания (дескрипторов) локальных окрестностей ключевых точек.
  3. Кластеризация дескрипторов ключевых точек, принадлежащих всем объектам обучающей выборки (это соответствует построению словаря, "словами" в котором являются центроиды построенных кластеров).
  4. Построение описания каждого изображения в виде нормированной гистограммы встречаемости "слов" (для каждого кластера вычисляется количество отнесенных к нему ключевых точек, принадлежащих определенному изображению).
  5. Построение классификатора, использующего вычисленное на шаге 4 признаковое описание изображения.

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

В настоящей работе рассматривается ряд методов детектирования ключевых точек и построения их дескрипторов, обучения словаря с использованием алгоритма кластеризации k-средних(KMeans) [5], а также построения признаковых описаний объектов на основе данного словаря. Приводятся примеры использования алгоритмов обучения с учителем для классификации изображений с использованием вычисленных признаковых описаний. В работе демонстрируется использование соответствующих операций на базе средств открытой библиотеки компьютерного зрения OpenCV [19].

1. Методические указания

1.1. Цели и задачи работы

Цель данной работы – изучить bag-of -words подход для классификации изображений с использованием соответствующих функций библиотеки компьютерного зрения OpenCV.

Данная цель предполагает решение следующих задач:

1. Изучить bag-of-words подход для классификации изображений и принцип работы базовых операций обработки изображений:

  • детектирование ключевых точек на изображении;
  • вычисление дескрипторов ключевых точек;
  • построение словаря дескрипторов ключевых точек;
  • вычисление признакового описания изображений с использованием словаря дескрипторов ключевых точек;
  • обучение классификатора "случайный лес" и предсказание категорий новых изображений.

2. Рассмотреть прототипы функций, реализующих перечисленные операции в библиотеке OpenCV.

3. Разработать простые примеры использования указанного набора функций.

4. Разработать консольное приложение, содержащее реализацию bag-of- words подхода для задачи классификации изображений двух категорий.

5. Провести вычислительный эксперимент на основе подмножества изображений из набора данных Caltech-101 [14].

6. Выполнить исследование зависимости ошибки классификации от используемых параметров (типа используемых детекторов и дескрипторов ключевых точек, числа слов в словаре, параметров алгоритма обучения с учителем "случайный лес").

7. Реализовать подход для построения словаря на основе Gaussian Mixture Model [5] и сравнить полученные результаты с ранее реализованным подходом.

1.2. Структура работы

В работе предлагается описание основных шагов bag-of-words подхода для классификации изображений. Рассматриваются прототипы функций библиотеки OpenCV, необходимые для реализации данных шагов, с описанием назначения входных параметров. Предлагаются примеры подпрограмм, демонстрирующие использование каждой функции. Разрабатывается приложение, содержащее реализацию bag-of-words подхода для классификации двух категорий изображений. Проводится вычислительный эксперимент на наборе данных, применяемом на практике. Рассматривается зависимость результатов применения подхода от используемых параметров.

1.3. Тестовая инфраструктура

Вычислительные эксперименты проводились с использованием следующей инфраструктуры (табл. 11.1).

Таблица 11.1. Тестовая инфраструктура
Операционная система Microsoft Windows 7
Среда разработки Microsoft Visual Studio 2010
Библиотеки OpenCV Версия 2.4.3

1.4. Требования к участнику лабораторной работы

Необходимо предварительное изучение участником работы теоретического материала по следующим темам:

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

Также требуется ознакомление с материалами лабораторной работы "Машинное обучение в библиотеке OpenCV".

1.5. Рекомендации по проведению занятий

При выполнении данной лабораторной работы рекомендуется следующая последовательность действий:

  1. Привести примеры задач и приложений компьютерного зрения, которые требуют решения задачи классификации изображений.
  2. Последовательно рассмотреть основные шаги bag-of-words подхода для классификации изображений. Параллельно ввести функции библиотеки OpenCV, необходимые для реализации данных шагов, и продемонстрировать примеры подпрограмм с их применением.
  3. Рассмотреть структуру приложения, реализующего bag-of-words подход для классификации изображений. Объяснить назначение всех функций, которые небходимо реализовать.
  4. Рассмотреть параметры запуска приложения, необходимые для получения результатов вычислительного эксперимента.
  5. Рассмотреть задание, связанное с исследованием результатов классификации объектов от параметров алгоритма.
  6. Рассмотреть подход для построения словаря на основе Gaussian Mixture Model. Сформулировать задание, связанное с реализацией данного подхода в рамках лабораторной работы.
Андрей Терёхин
Андрей Терёхин

Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции?

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "