Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

При разложении смещения-дисперсии каскадные модели обычно рассматриваются как уменьшающие смещение, но увеличивающие дисперсию.

См. Также [ править ]

Ссылки [ править ]

Источники [ править ]

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