Каскадные классификаторы - Cascading classifiers

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

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

Первым каскадным классификатором был детектор лиц Виола и Джонс (2001). Требование к этому классификатору должно было быть быстрым, чтобы быть реализованным на маломощных Процессоры, например фотоаппараты и телефоны.

Свойства алгоритма

Масштабирование и вращения

Из этого описания видно, что классификатор не принимает перевернутые лица (брови не в правильном положении) или боковые стороны лица (нос уже не в центре, а тени сбоку от лица). нос может отсутствовать). Отдельные каскадные классификаторы должны быть обучены для каждого поворота, который не находится в плоскости изображения (сторона лица), и должны быть переобучены или запущены на повернутых элементах для каждого поворота, который находится в плоскости изображения (лицо вверх ногами или наклонено к сторона). Масштабирование не является проблемой, поскольку функции можно масштабировать (центральный, левый и правый пиксели имеют размер только относительно исследуемого прямоугольника). В последних каскадах значение пикселя из одной части прямоугольника по сравнению с другой было заменено на Вейвлеты Хаара.

Свойства сцены

Чтобы иметь хорошие общие характеристики, должны быть соблюдены следующие критерии:

  1. Каждый этап должен проверять все лица и может давать много ложных срабатываний. Например, если на этапе 1 было помечено как «не содержит грань» 20% прямоугольников, содержащих грань (ложноотрицательный показатель = 20%), то общая производительность цепочки не может быть выше 80% истинно положительных, независимо от следующие этапы, так как забраковано уже 20% лиц.
  2. Это предполагает, что на хорошем этапе должно быть 100% истинных положительных результатов и, например, 40% ложных положительных результатов, то есть принимать все прямоугольники, содержащие лица, и ошибочно отмечать многие прямоугольники как потенциально содержащие лицо, чтобы их можно было удалить на более поздних этапах. На первом этапе 100% истинных положительных и 40% ложных положительных результатов по-прежнему дают много ложных отрицательных результатов, если только 1 из 1000 прямоугольников на изображении содержит лицо, после первого этапа все равно будет 400: 1 ложных возможных лиц. .
  3. Если первый этап очень быстрый (несколько операций), мы очень быстро удалили 60% прямоугольников, не содержащих лица.

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

Первый детектор Viola & Jones имел 38 ступеней, из которых 1 функция на первой ступени, затем 10, 25, 25, 50 на следующих пяти ступенях, всего 6000 функций. На первых этапах быстро удаляются нежелательные прямоугольники, чтобы избежать оплаты вычислительных затрат на следующих этапах, так что время вычислений тратится на глубокий анализ той части изображения, которая с высокой вероятностью содержит объект.

Каскадное обучение

Каскады обычно выполняются с помощью экономичного ADAboost. Порог чувствительности (0,8 в нашем примере) можно настроить так, чтобы было около 100% истинных срабатываний и несколько ложных срабатываний. Затем процедура может быть запущена снова для этапа 2, пока не будет достигнута желаемая точность / время вычисления.

После первоначального алгоритма стало понятно, что обучение каскада в целом можно оптимизировать, чтобы достичь желаемой истинной скорости обнаружения с минимальной сложностью. Примеры таких алгоритмов - RCBoost, ECBoost или RCECBoost. В их самых основных версиях их можно понимать как выбор на каждом этапе между добавлением этапа или добавлением слабого ученика к предыдущему этапу, в зависимости от того, что является менее затратным, до тех пор, пока не будет достигнута желаемая точность. Каждый этап классификатора не может иметь уровень обнаружения (чувствительность) ниже желаемого уровня, поэтому это ограниченная оптимизация проблема. Чтобы быть точным, общая чувствительность будет продуктом чувствительности сцены.

Каскадные классификаторы доступны в OpenCV, с предварительно натренированными каскадами для лица и верхней части тела. Обучение нового каскада в OpenCV также возможно с помощью методов haar_training или train_cascades. Это можно использовать для быстрого обнаружения более конкретных целей, включая нечеловеческие объекты с Хаара-подобные особенности. Для этого процесса требуются два набора образцов: отрицательный и положительный, где отрицательные образцы соответствуют произвольным изображениям, не являющимся объектами. Временные ограничения на обучение каскадного классификатора можно обойти, используя облачные вычисления методы.

Каскадные классификаторы в статистике

Этот термин также используется в статистике для описания поэтапной модели. Например, классификатор (например k-means), принимает вектор характеристик (переменные решения) и выводит для каждого возможного результата классификации вероятность того, что вектор принадлежит классу. Обычно это используется для принятия решения (отнесения к классу с наибольшей вероятностью), но каскадные классификаторы используют этот результат в качестве входных данных для другой модели (другой этап). Это особенно полезно для моделей, которые имеют сильно комбинаторные правила или правила подсчета (например, class1, если ровно две функции отрицательны, class2 в противном случае), которые не могут быть подогнаны без рассмотрения всех условий взаимодействия. Наличие каскадных классификаторов позволяет на последующем этапе постепенно приближать комбинаторный характер классификации или добавлять в алгоритмы классификации элементы взаимодействия, которые не могут выразить их на одном этапе.

В качестве простого примера, если мы попытаемся соответствовать правилу (class1, если ровно 2 характеристики из 3 отрицательны, class2 в противном случае), дерево решений будет:

  • особенность 1 отрицательный
    • характеристика 2 отрицательная
      • характеристика 3 отрицательная -> класс2
      • особенность 3 положительная -> класс1
    • характеристика 2 положительных
      • функция 3 отрицательная -> класс1
      • особенность 3 положительная -> класс2
  • особенность 1 положительный
    • характеристика 2 отрицательная
      • функция 3 отрицательная -> класс1
      • особенность 3 положительная -> класс2
    • характеристика 2 положительных
      • характеристика 3 отрицательная -> класс2
      • особенность 3 положительная -> класс2

В дереве есть все возможные комбинации листьев для выражения полного набора правил, тогда как (feature1 positive, feature2 negative) и (feature1 negative, feature2 positive) должны фактически присоединяться к одному и тому же правилу. Это приводит к дереву, на листьях которого слишком мало образцов. Двухэтапный алгоритм может эффективно объединить эти два случая, присвоив классу 1 средне-высокую вероятность, если feature1 или (исключительная) feature2 отрицательны. Второй классификатор может уловить эту более высокую вероятность и принять решение о знаке признака3.

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

Смотрите также

Рекомендации

Источники

  • Gama, J .; Браздил, П. (2000). «Каскадное обобщение». Машинное обучение. 41 (3): 315–343. CiteSeerX  10.1.1.46.635. Дои:10.1023 / а: 1007652114878.
  • Minguillón, J. (2002). О каскадных малых деревьях решений (Кандидатская диссертация). Автономный университет Барселоны.
  • Zhao, H .; Рам, С. (2004). «Ограниченное каскадное обобщение деревьев решений». IEEE Transactions по разработке знаний и данных. 16 (6): 727–739. CiteSeerX  10.1.1.199.2077. Дои:10.1109 / tkde.2004.3.