Clasificación de imágenes en cascada previamente entrenada

Crea un modelo de clasificación de imagen previamente entrenado de caras frontales mediante la biblioteca de OpenCV

Categoría: módulos de biblioteca OpenCV

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo de clasificación de imágenes en cascada previamente entrenado en Azure machine learning Studio (clásico) para detectar caras en imágenes.

El modelo se basa en la biblioteca OpenCV . La biblioteca OpenCV proporciona una lista de modelos predefinidos, cada uno optimizado para detectar un tipo determinado de objeto.

Más información sobre el modelo entrenado previamente

Este modelo de reconocimiento de imágenes ya se ha entrenado en una gran corpus de imágenes que se usa ampliamente para las tareas de reconocimiento de imágenes. Este modelo de clasificación concreto se ha optimizado para la detección facial y usa el algoritmo de detección de objetos de Viola-Jones. El propósito del modelo es identificar imágenes que contienen una esfera humana en la vista frontal.

Aunque actualmente solo se proporciona un modelo de clasificación de imágenes OpenCV, los modelos previamente entrenados adicionales podrían estar disponibles en versiones posteriores.

Uso de un modelo entrenado previamente

Si tiene un conjunto de imágenes que desea analizar, debe proporcionarlas como entrada al módulo puntuar modelo , tal como se describe en este tema, y adjuntar este módulo, que proporciona el modelo de biblioteca OpenCV previamente entrenado.

El módulo puntuar modelo usa el modelo de clasificación de imágenes para determinar si la imagen contiene una esfera humana y devuelve una puntuación de probabilidad para cada imagen que se usa como entrada.

Los modelos basados en la clasificación de imágenes en cascada previamente entrenada no se pueden volver a entrenar en nuevos datos de imagen.

El formato en el que se almacena el modelo no es compatible con los módulos entrenar modelo y validar modelo de forma cruzada.

Cómo configurar la clasificación de imágenes en cascada previamente entrenada

El modelo de clasificación de imágenes de Azure Machine Learning ya se ha entrenado con un conjunto de información grande y está optimizado para un tipo de imagen específico. Por lo tanto, lo único que debe hacer es proporcionar un conjunto de imágenes como un conjunto de resultados de puntuación. Como resultado, el módulo genera una puntuación que indica si cada imagen contiene el tipo de imagen de destino.

  1. Preparar e importar el conjunto de imágenes de las imágenes que se van a usar en la puntuación. En general, todas las imágenes del conjunto de los mismos deben tener el mismo tamaño.

    Agregue las imágenes al experimento mediante el módulo importar imágenes . Lea la ayuda de las imágenes de importación en estrecha colaboración para asegurarse de que las imágenes que utiliza cumplen los requisitos. También debe asegurarse de que las imágenes sean accesibles en la opción de almacenamiento definida.

  2. Agregue el módulo de clasificación de imágenes en cascada previamente entrenado al experimento en Studio (clásico). Puede encontrar este módulo en la categoría biblioteca OpenCV .

  3. Seleccione uno de los clasificadores previamente entrenados de la lista en clasificador previamente entrenado.

    Actualmente, solo hay un clasificador disponible: frontal, que está seleccionada de forma predeterminada.

  4. Factor de escala: escriba un valor que especifique cuánto se reduce el tamaño de la imagen en cada escala de la imagen.

    En la biblioteca OpenCV, el clasificador está diseñado para que se pueda "cambiar de tamaño" con el fin de poder encontrar los objetos de interés en diferentes tamaños. Esto es más eficaz que cambiar el tamaño de la imagen. Por lo tanto, para buscar un objeto de un tamaño desconocido en la imagen, el procedimiento de digitalización se debe realizar varias veces en distintas escalas.

    Le recomendamos que pruebe factores de escala diferentes para ver cuáles proporcionan los mejores resultados de clasificación de imágenes.

  5. Número mínimo de vecinos: escriba un número entero que represente el número mínimo de rectángulos superpuestos que se requieren para detectar que una esfera está incluida en una región.

    En la biblioteca OpenCV, el clasificador detecta objetos de diferentes tamaños en la imagen de entrada. Los objetos detectados se devuelven como una lista de rectángulos. El parámetro Neighbors controla el número de coincidencias posibles que se requieren para calificar como una característica o una superficie detectada. Por lo tanto, el aumento de este valor tiende a aumentar la precisión a costa de la cobertura.

    Para obtener ejemplos de cómo se calculan los vecinos, consulte este artículo en la documentación de la biblioteca de OpenCv: Eigenfaces en OpenCV

  6. Opcionalmente, puede usar la siguiente configuración para especificar el tamaño de la imagen en el modelo para que pueda hacer mejores predicciones. Se eliminan las imágenes que no se ajustan a los requisitos:

    • Altura mínima: escriba el alto en píxeles de la imagen más pequeña. Si especifica un valor para esta propiedad, se omiten las imágenes inferiores a este.

    • Alto máximo. Escriba el ancho en píxeles de la imagen más grande. Si especifica un valor para esta propiedad, se omiten las imágenes mayores que.

    • Ancho mínimo: escriba el ancho en píxeles de la imagen más pequeña. Si especifica un valor para esta propiedad, se omiten las imágenes inferiores a este.

    • Ancho máximo: escriba el ancho en píxeles de la imagen más grande. Si especifica un valor para esta propiedad, se omiten las imágenes mayores que.

  7. Conecte el conjunto de imágenes de imagen usado para puntuar.

  8. Agregue el módulo score Model (puntuar modelo ) al experimento y conecte el clasificador de imágenes previamente entrenado y el conjunto de imágenes.

  9. Ejecute el experimento.

Results

El resultado del modelo de puntuación incluye el nombre de la imagen, la etiqueta puntuada y la puntuación de probabilidad de la etiqueta (0 o 1). El clasificador genera un "1" si es probable que la imagen muestre el objeto (una esfera) y "0" en caso contrario. Por ejemplo:

Nombre de la imagen Etiquetas puntuadas Probabilidades puntuadas
MAN001.png TRUE 1
TABLE001.PNG false 0
CHAIR001.PNG false 0

Sugerencia

La salida también contiene los valores RGB para todos los canales de color del conjunto de resultados. Por lo tanto, para ver los datos más fácilmente, se recomienda que en el experimento use seleccionar columnas en el conjunto de datos para generar solo las columnas de resultados.

Notas técnicas

El modelo de reconocimiento facial proporcionado por este módulo se basa en el algoritmo de detección de caras Viola-Jones. Para obtener más información, vea estos recursos:

  • En este vídeo se explican los conceptos básicos del reconocimiento facial, incluida una definición de características de Haar y cómo se usan en la detección facial: detección de rostros, parte 1 .

  • Este artículo de Wikipedia describe el método utilizado para el clasificador, basado en el papel por Navneet Dalal y Bill Triggs: histograma de degradados orientados

  • Para obtener la documentación del algoritmo de reconocimiento facial proporcionado en la biblioteca OpenCV, consulte clasificador en cascada.

Nota

Este módulo no genera la recopilación completa de la información generada por la biblioteca OpenCV. En concreto, este módulo solo genera la predicción de si una esfera está presente o no, y no incluye las coordenadas de la superficie ni cualquier otra información.

Si necesita esta información adicional, considere la posibilidad de usar otras bibliotecas, como la face API que proporciona Microsoft Cognitive Services.

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Clasificador previamente entrenado List PretrainedClassifier Cara frontal Clasificador entrenado previamente desde la distribución OpenCV estándar.
Factor de escala >= 1,0000000000000002 Float 1.1 Parámetro que especifica cuánto se reduce el tamaño de la imagen en escala de cada imagen.
Número mínimo de vecinos >=0 Entero 3 Parámetro que especifica cuántos vecinos debería tener cada rectángulo candidato para conservarlo.
Alto mínimo >=1 Entero 100 Alto mínimo de objeto posible (en píxeles). Los objetos más pequeños que este valor se omiten.

El parámetro es opcional.
Ancho mínimo >=1 Entero 100 Ancho mínimo de objeto posible (en píxeles). Los objetos más pequeños que este valor se omiten.

El parámetro es opcional.
Alto máximo >=1 Entero 200 Alto máximo de objeto posible (en píxeles). Los objetos más grandes que este valor se omiten.

El parámetro es opcional.
Ancho máximo >=1 Entero 200 Ancho máximo de objeto posible (en píxeles). Los objetos más grandes que este valor se omiten.

El parámetro es opcional.

Salidas

Nombre Tipo Descripción
Modelo entrenado Interfaz ILearner Modelo de clasificación binaria entrenado

Excepciones

Excepción Descripción
Error 0005 Se produce una excepción si el parámetro es menor que el valor especificado.

Para obtener una lista de los errores específicos de los módulos de Studio (clásico), consulte Machine Learning de los códigos de error.

Para obtener una lista de excepciones de API, consulte códigos de error de la API de REST de machine learning.

Vea también

Importar imágenes
Pretrained Cascade Image Classification (clasificación de imágenes en cascada previamente entrenada)