Clasificación de imágenes en cascada previamente entrenada

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

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

Categoría: Módulos de la biblioteca OpenCV

Nota:

Solo se aplica a: Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo Pretrained Cascade Image Classification en 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 un gran corpus de imágenes que se usa ampliamente para las tareas de reconocimiento de imágenes. Este modelo de clasificación determinado se ha optimizado para la detección facial y usa el algoritmo Viola-Jones de detección de objetos. El propósito del modelo es identificar imágenes que contienen una cara humana en la vista frontal.

Aunque actualmente solo se proporciona un modelo de clasificación de imágenes openCV, es posible que haya modelos previamente entrenados adicionales disponibles en versiones posteriores.

Uso de un modelo entrenado previamente

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

El módulo Score Model (Puntuar modelo) usa el modelo de clasificación de imágenes para determinar si la imagen contiene una cara humana y devuelve una puntuación de probabilidad para cada imagen utilizada como entrada.

Los modelos basados en la clasificación de imágenes en cascada previamente entrenadas no se pueden volver a entrenar con 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.

Configuración de la clasificación de imágenes en cascada previamente entrenadas

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

  1. Prepare e importe el conjunto de datos de imágenes que planea usar en la puntuación. En general, todas las imágenes del conjunto de datos deben tener el mismo tamaño.

    Las imágenes se agregan al experimento mediante el módulo Importar imágenes. Lea la ayuda de Importar imágenes con atención para asegurarse de que las imágenes que usa 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 Pretrained Cascade Image Classification (Clasificación de imágenes en cascada previamente entrenadas) 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 en la lista clasificador previamente entrenado.

    Actualmente, solo hay disponible un clasificador: la cara 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 imagen.

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

    Se recomienda probar diferentes factores de escalado para ver cuál proporciona 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 necesarios para detectar que una cara 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 cuántas coincidencias posibles son necesarias para calificarse como una cara o característica detectada. Por lo tanto, aumentar 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 OpenCv: Efaces in OpenCV

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

    • Alto mínimo: escriba el alto de píxeles de la imagen más pequeña. Si especifica un valor para esta propiedad, se omiten las imágenes más pequeñas.

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

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

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

  7. Conectar conjunto de datos de imagen usado para la puntuación.

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

  9. Ejecute el experimento.

Results

La salida de Score Model (Puntuar modelo) 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 cara) 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 datos. 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 resultado.

Notas técnicas

El modelo de reconocimiento facial proporcionado por este módulo se basa en el algoritmo Viola-Jones de detección de caras. 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 las características de Haar y cómo se usan en la detección facial: Detección facial- Parte 1

  • En este artículo de Wikipedia se describe el método usado para el clasificador, basado en el documento de Navneet Dalal y Bill Triggs: Histograma de degradados orientados

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

Nota:

Este módulo no genera la colección completa de información que genera la biblioteca OpenCV. En concreto, este módulo solo genera la predicción de si una cara está presente o no, y no incluye las coordenadas de la cara ni ninguna otra información.

Si necesita esta información adicional, considere la posibilidad de usar otras bibliotecas, como Face API proporcionada por Microsoft Cognitive Services.

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Clasificador previamente entrenado Lista 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 errores específicos de los módulos de Studio (clásico), consulte Machine Learning códigos de error.

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

Consulte también

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