stringtranslate.com

Clasificadores en cascada

La cascada es un caso particular de aprendizaje conjunto basado en la concatenación de varios clasificadores , utilizando toda la información recopilada de la salida de un clasificador determinado como información adicional para el siguiente clasificador de la cascada. A diferencia de los conjuntos de votación o apilamiento, que son sistemas multiexpertos, el sistema en cascada es de varias etapas.

Los clasificadores en cascada se entrenan con varios cientos de vistas de muestra "positivas" de un objeto en particular e imágenes "negativas" arbitrarias del mismo tamaño. Una vez entrenado el clasificador, se puede aplicar a una región de una imagen y detectar el objeto en cuestión. Para buscar el objeto en todo el cuadro, la ventana de búsqueda se puede mover a través de la imagen y verificar cada ubicación con el clasificador. Este proceso se utiliza más comúnmente en el procesamiento de imágenes para la detección y seguimiento de objetos, principalmente la detección y reconocimiento facial .

El primer clasificador en cascada fue el detector de rostros de Viola y Jones (2001) . El requisito de este clasificador era ser rápido para poder implementarse en CPU de bajo consumo , como cámaras y teléfonos.

Propiedades del algoritmo

Escalado y rotaciones

Se puede ver en esta descripción que el clasificador no aceptará rostros que estén al revés (las cejas no están en la posición correcta) o al costado de la cara (la nariz ya no está en el centro y sombras al costado de puede que le falte la nariz). Se deben entrenar clasificadores en cascada separados para cada rotación que no esté en el plano de la imagen (lado de la cara) y se tendrán que volver a entrenar o ejecutar en características rotadas para cada rotación que esté en el plano de la imagen (boca al revés o inclinada hacia el lado). La escala no es un problema, ya que las características se pueden escalar (los píxeles centrales, izquierdos y derechos tienen una dimensión sólo relativa al rectángulo examinado). En cascadas recientes, el valor de los píxeles de una parte de un rectángulo en comparación con otra ha sido reemplazado por wavelets de Haar .

Propiedades del escenario

Para tener un buen desempeño general, se deben cumplir los siguientes criterios:

  1. Cada etapa debe validar todas las caras y puede producir muchos falsos positivos. Por ejemplo, si la etapa 1 marcara como 'no contiene una cara' el 20% de los rectángulos que contienen una cara (tasa de falsos negativos = 20%), entonces el rendimiento total de la cadena no puede ser superior al 80% de verdaderos positivos, sea cual sea. Las siguientes etapas son, ya que el 20% de los rostros ya han sido rechazados.
  2. Esto sugiere que una buena etapa debe tener un 100% de verdaderos positivos y, por ejemplo, un 40% de falsos positivos, es decir, aceptar todos los rectángulos que contienen caras y marcar erróneamente muchos rectángulos como que potencialmente contienen una cara, para ser eliminados en etapas posteriores. Para una primera etapa, 100% de verdaderos positivos y 40% de falsos positivos todavía dan muchos falsos negativos; si solo 1 de cada 1000 rectángulos en una imagen contiene una cara, todavía habrá entre 400 y 1 posibles caras falsas después de la primera etapa. .
  3. Si la primera etapa es muy rápida (unas pocas operaciones), hemos eliminado muy rápidamente el 60% de los rectángulos que no contienen cara.

Por lo tanto, el procedimiento de entrenamiento para una etapa es tener muchos alumnos débiles (operadores simples de diferencia de píxeles), entrenarlos como grupo (aumentar su peso si dan un resultado correcto), pero tenga en cuenta tener solo unos pocos alumnos débiles activos para que el cálculo el tiempo sigue siendo bajo.

El primer detector de Viola & Jones tenía 38 etapas, con 1 característica en la primera etapa, luego 10, 25, 25, 50 en las siguientes cinco etapas, para un total de 6000 características. Las primeras etapas eliminan rápidamente los rectángulos no deseados para evitar pagar los costos computacionales de las siguientes etapas, de modo que el tiempo computacional se dedica a analizar profundamente la parte de la imagen que tiene una alta probabilidad de contener el objeto.

Entrenamiento en cascada

Las cascadas generalmente se realizan a través de ADAboost, que tiene en cuenta los costos. El umbral de sensibilidad (0,8 en nuestro ejemplo) se puede ajustar para que haya cerca del 100% de verdaderos positivos y algunos falsos positivos. Luego, el procedimiento se puede iniciar nuevamente para la etapa 2, hasta que se alcance la precisión/tiempo de cálculo deseado.

Después del algoritmo inicial, se entendió que el entrenamiento de la cascada en su conjunto se puede optimizar para lograr una tasa de detección real deseada con una complejidad mínima. Ejemplos de tales algoritmos son RCBoost, ECBoost o RCECBoost. En sus versiones más básicas, se puede entender que eligen, en cada paso, entre agregar una etapa o agregar un alumno débil a una etapa anterior, lo que sea menos costoso, hasta alcanzar la precisión deseada. Cada etapa del clasificador no puede tener una tasa de detección (sensibilidad) inferior a la tasa deseada, por lo que este es un problema de optimización restringida . Para ser precisos, la sensibilidad total será producto de las sensibilidades escénicas.

Los clasificadores en cascada están disponibles en OpenCV , con cascadas previamente entrenadas para caras frontales y parte superior del cuerpo. También es posible entrenar una nueva cascada en OpenCV con los métodos haar_training o train_cascades. Esto se puede utilizar para la detección rápida de objetivos más específicos, incluidos objetos no humanos con características similares a las de Haar . El proceso requiere dos conjuntos de muestras: negativas y positivas, donde las muestras negativas corresponden a imágenes arbitrarias que no son objetos. La limitación de tiempo en el entrenamiento de un clasificador en cascada se puede evitar utilizando métodos de computación en la nube .

Clasificadores en cascada en estadística.

El término también se utiliza en estadística para describir un modelo por etapas. Por ejemplo, un clasificador (por ejemplo k -means), toma un vector de características (variables de decisión) y genera para cada posible resultado de clasificación la probabilidad de que el vector pertenezca a la clase. Esto generalmente se usa para tomar una decisión (clasificar en la clase con mayor probabilidad), pero los clasificadores en cascada usan esta salida como entrada para otro modelo (otra etapa). Esto es particularmente útil para modelos que tienen reglas altamente combinatorias o de conteo (por ejemplo, clase1 si exactamente dos características son negativas, clase2 en caso contrario), que no se pueden ajustar sin observar todos los términos de interacción. Tener clasificadores en cascada permite que la etapa sucesiva se aproxima gradualmente a la naturaleza combinatoria de la clasificación, o agregar términos de interacción en algoritmos de clasificación que no pueden expresarlos en una etapa.

Como ejemplo simple, si intentamos hacer coincidir la regla (clase1 si exactamente 2 características de 3 son negativas, clase2 en caso contrario), un árbol de decisión sería:

El árbol tiene todas las combinaciones de hojas posibles para expresar el conjunto de reglas completo, mientras que (característica1 positiva, característica2 negativa) y (característica1 negativa, característica2 positiva) en realidad deberían unirse a la misma regla. Esto da como resultado un árbol con muy pocas muestras en las hojas. Un algoritmo de dos etapas puede fusionar efectivamente estos dos casos dando una probabilidad media-alta a la clase1 si la característica1 o la característica2 (exclusiva) es negativa. El segundo clasificador puede captar esta probabilidad más alta y tomar una decisión sobre el signo de la característica3.

En una descomposición sesgo-varianza , generalmente se considera que los modelos en cascada reducen el sesgo y aumentan la varianza.

Ver también

Referencias

Fuentes