- Термины: ключевые точки, дескрипторы ключевых точек.
- Алгоритмы извлечения и описания (description) ключевых точек: SIFT, SURF, FAST, BRIEF, и ORB.
- Support Vector Machine (SVM).
- Не чувствительный к изменениям в освещении и беспорядку на сцене детектор объектов на основе ключевых точек использующий машинное обучение для обнаружения множества объектов в режиме реального времени с помощью фрейморка bag-of-visual-words.
Ключевые точки и дескрипторы ключевых точек
Пара подводных камней при обнаружении объектов на основе цвета (или grayscale):
- Работает хорошо только для одноцветных объектов. Можно сделать backproject a hue histogram of a textured object, but that is likely to include a lot of colors и это вызовет очень большое количество ложных срабатываний;
- Алгоритм может быть "одурачен" разными объектами одного цвета.
Плюсом обнаружения объектов на основе цвета является скорость. Короче говоря способ хорошо, когда известна среда в которой будет работать приложение, в противном случае способ бесполезен. Например, в среде
Robocup всё известно: мяч, поле, линии на поле, ворота. Поэтому в такой среде можно использовать обнаружение объектов по цвету. Повысить качество обнаружения можно добавив некоторые логические проверки: высота мяча и соотношение сторон ворот, т.е. высоты к ширине. Среда известна, все объекты имеют уникальные цвета сплошной заливки. Поэтому обнаружение объектов на основе цвета будет работать хорошо. Однако если разрабатывается система зрения для поисково-спасательного робота, то рабочая среда заранее не известна и поэтому подход к обнаружению объектов на основе цвета работать не будет.
Общие термины
В задачах обнаружения объектов обычно предполагается два множества изображений:
- Обучающее множество - для того чтобы научить компьютер как выглядит объект. Это может быть достигнуто путем расчета hue histograms или путем расчета ключевых точек и дескрипторов ключевых точек. Очевидно, что желательно чтобы на обучающих изображениях интересующие объекты были ограничены прямоугольниками или чтобы обучающие изображения содержали по большому счету только интересующие объекты.
- Тестовое множество - use case разрабатываемого приложения.
Как работает метод на основе ключевых точек
Смысл метода состоит в том чтобы "не учить" компьютер характеристикам целого объекта (как например расчет гистограмм
flood-filled точек) и искать подобные случаи на других изображениях. Вместо этого найти действительно "важные" точки (ключевые точки) на объекте и также сохранить информацию об их соседях (дескрипторах ключевых точек) в качестве описания объекта. А на тестовых изображениях искать дескрипторы ключевых точек среди ключевых точек на всём изображении и пытаться сопоставить два множества дескрипторов (одно с обучающего объекта, второе с тестового) использую некоторое
notion of similarity и смотреть как много дескрипторов совпадают. Для тестовых изображений которые содержат в себе объекты с обучающего изображения будет получаться много совпадений и в них будет прослеживаться закономерная тенденция. На рисунке ниже показано обучающее и тестовое изображение, каждое со своими SIFT ключевыми точками, и также показаны совпадающие дескрипторы между изображениями. Все совпадения следуют тенденции.
|
Сравнение SIFT ключевых точек и признаков |