Your SlideShare is downloading. ×

Поиск объектов

2,589
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,589
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
54
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Сравниваются все варианты. Оказывается, что centered вариант самый лучший Цветовые разные модели
  • Transcript

    • 1. Поиск объектов на изображении Many slides adapted from P. Viola and S.Lazebnik CSEDays-2010
    • 2. Вспоминаем - «Мешок слов»
      • Извлечение особенностей
      • Обучить “ визуальный словарь ”
      • Квантуем особенности по словарю
      • Описываем картинку частотами «визуальных слов»
      • Варианты:
        • Поиск ближайшего
        • Многоклассовая классификация
    • 3. Найти интересные объекты (людей)
    • 4.
      • Подход на основе скользящего окна ( sliding window) .
      • Сканируем изображение окном поиска и применяем классификатор к каждому положению
      Поиск лиц
    • 5. Требования к детектору лиц
      • Скользящим окно необходимо оценить десятки тысяч возможных комбинаций масштаба / положения
      • Лица же достаточно редкий объект – 0-10 лиц на картинке
        • Для достижения вычислительной эффективности отрицательные примеры нужно отбрасывать как можно быстрее
        • На изображении в 1МП сопоставимое с количеством пикселей число возможных положений лица
        • Чтобы избежать ложных обнаружений ( false positives) ошибка 2го рода должна быть ниже 10 -6
    • 6. Детектор Violo-Jones
      • Основополагающий метод для поиска объектов на изображении в реальном времени
      • Обучение очень медленное, но поиск очень быстр
      • Основные идеи:
        • Интегральные изображения для быстрого вычисления признаков
        • Бустинг для выбора признаков
        • Каскад ( Attentional cascade ) для быстрой отбраковки окон без лица
      P. Viola and M. Jones. Rapid object detection using a boosted cascade of simple features. CVPR 2001. P. Viola and M. Jones. Robust real-time face detection. IJCV 57(2), 2004.
    • 7. Признаки “ Прямоугольные фильтры ” Value = ∑ (pixels in white area) – ∑ (pixels in black area)
    • 8. Пример Source Result
    • 9. Интегральные изображения
      • Значение каждого пиксела ( x , y ) равно сумме значений всех пикселов левее и выше пикселя ( x , y ) включительно
      • Интегральное изображение рассчитывается за один проход
      (x,y)
    • 10. Вычисление интегрального изображения
    • 11. Вычисление интегрального изображения
      • Сумма по строке : s(x, y) = s(x–1, y) + i(x, y)
      • Интегральное изображение : ii(x, y) = ii(x, y−1) + s(x, y)
      ii(x, y-1) s(x-1, y) i(x, y) MATLAB: ii = cumsum(cumsum(double(i)), 2);
    • 12. Вычисление суммы в прямоугольнике
      • Пусть A,B,C,D – значения интегрального изображения в углах прямоугольника
      • Тогда сумма значений пикселов в исходном изображении вычисляется по формуле:
        • sum = A – B – C + D
      • 3 операции сложения для любого прямоугольника
      D B C A
    • 13. Пример -1 +1 +2 -1 -2 +1 Integral Image
    • 14. Выбор признаков
      • Для окна поиска 24x24 пиксела , число возможных прямоугольных признаков достигает ~160,000!
    • 15. Выбор признаков
      • Для окна поиска 24x24 пиксела , число возможных прямоугольных признаков достигает ~160,000!
      • В процессе поиска вычислять все признаки нереально
      • Хороший классификатор должен использовать лишь маленькое подмножество всевозможных признаков
      • Вопрос - как выбрать такое подмножество?
    • 16. Бустинг
      • Бустинг – схема классификации, основанная на комбинировании слабых классификаторов в более точный комитетный
        • Слабый классификатор должен быть лучше монетки
      • Обучение состоит из нескольких этапов усиления ( boosting rounds )
        • На каждом этапе выбираем слабый классификатор, который лучше всех сработал на примерах, оказавшихся трудными для предыдущих классификаторов
        • «Трудность» записывается с помощью весов, приписанных примерам из обучающей выборки
        • Составляем общий классификатор как линейную комбинацию слабых классификаторов
      Y. Freund and R. Schapire, A short introduction to boosting , Journal of Japanese Society for Artificial Intelligence , 14(5):771-780, September, 1999.
    • 17. Слабые классификаторы
      • Определяем слабые классификаторы на основе прямоугольных признаков
      окно Значение признака порог
    • 18.
      • Определяем слабые классификаторы на основе прямоугольных признаков
      • Для каждого этапа бустинга:
        • Вычисляем каждый прямоугольный признак на каждом примере
        • Выбираем наилучший порог для каждого признака
        • Выбираем наилучший признак / порог
        • Перевзвешиваем выборку
      • Вычислительная сложность обучения : O ( MNK )
        • M этапов , N примеров , K признаков
      Бустинг для поиска лиц
    • 19. Бустинг для поиска лиц
      • Первые два признака, выбранные бустингом :
      • Эта комбинация признаков дает 100% detection rate и 50% false positive rate
    • 20. Бустинг для поиска лиц
      • Классификатор из 200 признаков дает 95% detection rate и a false positive rate of 1 in 14084
      Недостаточно хорошо ! Receiver operating characteristic (ROC) curve
    • 21. Каскад ( Attentional cascade )
      • Начинаем с простых классификаторов, которые отбрасывают часть отрицательных окон, при этом принимая почти все положительные окна
      • Положительный отклик первого классификатора запускает вычисление второго, более сложного, классификатора, и т.д.
      • Отрицательный отклик на любом этапе приводит к немедленной отбраковке окна
      FACE IMAGE SUB-WINDOW Classifier 1 T Classifier 3 T F NON-FACE T Classifier 2 T F NON-FACE F NON-FACE
    • 22. Каскад
      • Цепочка классификаторов с каждым уровнем становится более сложной, ошибка второго рода постоянно снижается
      FACE IMAGE SUB-WINDOW Classifier 1 T Classifier 3 T F NON-FACE T Classifier 2 T F NON-FACE F NON-FACE Receiver operating characteristic vs false neg determined by % False Pos % Detection 0 50 0 100
    • 23. Каскад
      • detection rate и false positive rate каскада вычисляются как произведение соответствующих уровней ошибок каждого этапа
      • A detection rate 0.9 и false positive rate порядка 10 -6 достигается с помощью каскада из 10 этапов, если на каждом этапе detection rate примерно равен 0.99 (0.99 10 ≈ 0.9) и false positive rate примерно 0.30 (0.3 10 ≈ 6×10 -6 )
      FACE IMAGE SUB-WINDOW Classifier 1 T Classifier 3 T F NON-FACE T Classifier 2 T F NON-FACE F NON-FACE
    • 24. Обучение каскада
      • Задаем требуемые значения detection and false positive rates для каждого этапа
      • Добавляем признаки до тех пор, пока параметры текущего этапа не достигнут заданного уровня
        • Приходится понижать порог AdaBoost для максимизации обнаружения ( в противоположенность минимизации общей ошибки классификации )
        • Тестирование на отдельном наборе ( validation set )
      • Если общий уровень false positive rate недостаточно низок, добавляем очередной этап
      • Ложные обнаружения на текущем этапе используются как отрицательные примеры на следующем этапе
    • 25. Тренировочная выборка
      • 5000 лиц
        • Все фронтальные, уменьшенные до 24x24 пикселов
        • Все нормированы
      • 300 М отрицательных примеров
        • 9500 изображений без лиц
      • Большая изменчивость
        • Разные люди
        • Освещение
        • Поза лица
    • 26. Производительность системы
      • Обучение : “ недели ” на 466 MHz Sun рабочей станции
      • 38 этапов , всего 6061 признаков
      • В среднем 10 признаков оцениваются для каждого окна на тестовой выборке
      • “ На 700 Mhz Pentium III, детектор лиц обрабатывает одно изображение 384x288 пикселов за 0 .067 секунды ”
        • 15 Hz
        • В 15 раз быстрее сравнимого по точности предшествующего метода (Rowley et al., 1998)
    • 27. Пример работы
    • 28. Другие задачи поиска объектов Локализация черт лица Определение пола Поиск профилей
    • 29. Поиск профилей
    • 30. Признаки для поиска профилей
    • 31. Резюме: детектор Violo-Jones
      • Прямоугольные признаки
      • Интегральные изображения для быстрого вычисления признаков
      • Бустинг для выбора признаков
      • Каскад классификаторов для быстрого выбраковки отрицательных окон
    • 32. Дескриптор HOG и поиск пешеходов
      • HOG = Histogram of Oriented Gradients
      Navneet Dalal, Bill Triggs,Histograms of Oriented Gradients for Human Detection, CVPR-2005 Основа работы – эксперименты с разными параметрами системы
    • 33. uncentered centered cubic-corrected Sobel Slides by Pete Barnum
      • Вычисляем карту градиентов
      • В RGB (цвете)
        • берем максимум по каналам
      • Рамка больше объекта!
        • Иначе качество падает
    • 34.
      • «Ячейки» ( Cells)
        • Лучший 8*8 пикселов
      • Гистограмма ориентаций
      • «Взвешенные гистограммы»
      • Тестирование разного количества ячеек
        • Идеально около 9, без ориентаций
      Slides by Pete Barnum
    • 35.
      • Нормализация по блокам
        • 2*2, 3*3 блоки из ячеек
      • Блоки пересекаются по ячейкам, каждая ячейка участвует в нескольких блоках
      • Нормализуем вектора-дескрипторы
      • Несколько вариантов нормализации
      Slides by Pete Barnum
    • 36.
      • Параметры
        • 64*128 окно поиска
        • 7*15 блоков = 105 блоков
        • Каждый блок – 4 ячейки с гистограммой из 9 корзин
        • 38*7*15 = 3780 признаков
      • Классификация с помощью SVM
      • - (Support Vector Machine)
      • Машина опорных векторов
      Slides by Pete Barnum
    • 37. Линейные классификаторы
      • Найти линейную функцию (гиперплоскость) которые разделяет положительные и отрицательные примеры
      Какая гиперплоскость лучше?
    • 38. Машина опорных векторов
      • Найти гиперплоскость, которая максимизирует отступ ( margin ) между положительными и отрицательными примерами
      Margin Support vectors C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition , Data Mining and Knowledge Discovery, 1998 Расстояние от вектора до плоскости : Опорные вектора , Отступ равен 2 / || w ||
    • 39. Машина опорных векторов
      • Найти гиперплоскость, которая максимизирует отступ ( margin ) между положительными и отрицательными примерами
      Граница Опорные вектора C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition , Data Mining and Knowledge Discovery, 1998 Оптимизационная задача : Минимизируем При условии y i ( w · x i + b ) ≥ 1 Опорный вектор веса
    • 40. HOG: резюме
      • Вклад авторов
        • HOG по ячейкам
        • Плотная сетка ячеек
        • Локальная нормализация каждого блока, причем блоки пересекаются
      • Фиксированное окно и ячейки
      • 1 кадр в секунду
        • Разреженный перебор
        • ~800 окон на кадр
    • 41. Violo-Jones + HOG = Cascade HOG
      • Ускорение поиска людей за счет объединения идей
        • HOG блоки разного размера как признаки
          • Нужно для каскада
          • Маленькие блоки не репрезентативны на первых стадиях
          • От 12*12 до 64*128 пикселей
          • Всего 5031 блок
        • Интегральные изображения для расчета гистограмм переменного размера
        • Линейный SVM в качестве слабого классификатора
        • Бустинг для выбора признаков (слабых классификаторов)
      Qiang Zhu et. al. Fast human detection using a cascade of Histograms of Oriented Gradients , CVPR 2006
    • 42. Параметры каскада
      • (а) – признаки с наименьшей ошибкой
      • ( b ) – уровень 1 (с) – уровень 2, ( d) – уровень 8
    • 43. Cascaded HOG
      • HOG + integral images + SVM + boosting
      • 12800 окон на изображение
      • 4-5 кадров в секунду
        • 70-80 X ускорение при том же качестве
      • Behold the power of cascade and boosting!
    • 44.  
    • 45.  
    • 46. Схемы голосования для поиска объектов Juergen Gall, Victor Lempitsky: Class-specific Hough Forests for Object Detection. CVPR 2009
      • Пусть «визуальные слова» будут голосовать за положение объекта!
    • 47. Идея
      • Для каждого «слова» запоминаем:
        • Принадлежит ли оно объекту
        • Вектор-смещения от слова к центру объекта
      Тренировочное изображение Визуальное слово с векторами смещения
    • 48. Случайные окна + решающий лес
    • 49. Решающий лес На выходе: вероятность принадлежности объекту + распределение положений относительно центра
    • 50. Признаки и бинарные тесты
      • 16 признаков на каждый пиксель окна
        • 3 канала LAB
        • Первые производные по x и y
        • Вторые производные по x и y
        • HOG ( 9 ориентаций)
          • По окрестности 5 x5
      • 32 признака всего
        • Min и мах значение каждого признака по 5x5 окрестности
        • а - № канала
    • 51. Применение леса
    • 52. Обнаружение объектов
    • 53. Обнаружение объектов Обнаружение объектов разных размеров
    • 54. Обнаружение объектов На данный момент, около 2-6 секунд на изображение
    • 55. Построение решения
      • Выбор признаков
        • Должны считаться быстро (пр. интегральные изображения)
      • Метод сканирования изображения
        • Сканирующее окно (быстро)
        • Особые точки (медленно)
        • Случайные области (медленно)
      • Каскад
        • Единственный метод достижения скорости работы в реальном времени
    • 56. Методы классификации
      • Бустинг
        • Объединяет классификацию и выбор признаков
        • Требуется большая обучающая выборка
        • Долго обучается
      • SVM
        • На практике часто работает лучше бустинга
      • Решающий лес
        • Быстрое обучение
        • Простая реализация
        • Хорошо работает при больших размерностях векторов
        • Вероятностное распределение на выходе