Cómo crear un clasificador con Custom VisionHow to build a classifier with Custom Vision

Para usar Custom Vision Service para la clasificación de imágenes, primero debe crear un modelo de clasificador.To use the Custom Vision Service for image classification, you must first build a classifier model. En esta guía, aprenderá a crear un clasificador mediante el sitio web de Custom Vision.In this guide, you'll learn how to build a classifier through the Custom Vision website.

Requisitos previosPrerequisites

  • Una suscripción válida a Azure.A valid Azure subscription. Cree una cuenta gratis.Create an account for free.
  • Un conjunto de imágenes con el que entrenar el clasificador.A set of images with which to train your classifier. Consulte las siguientes sugerencias sobre cómo elegir imágenes.See below for tips on choosing images.

Crear recursos de visión personalizada en el portal de AzureCreate Custom Vision resources in the Azure portal

Para usar Custom Vision Service, deberá crear los recursos de Custom Vision entrenamiento y predicción de la portal Azure.To use Custom Vision Service, you will need to create Custom Vision Training and Prediction resources in the Azure portal. De esta manera se crea un recurso de entrenamiento y predicción.This will create both a Training and Prediction resource.

Creación de un nuevo proyectoCreate a new project

En el explorador web, vaya a la página web de Custom Vision y seleccione Sign in (Iniciar sesión).In your web browser, navigate to the Custom Vision web page and select Sign in. Inicie sesión con la misma cuenta que usó para iniciar sesión en el portal de Azure.Sign in with the same account you used to sign into the Azure portal.

Imagen de la página de inicio de sesión

  1. Para crear su primer proyecto, seleccione New Project (Nuevo proyecto).To create your first project, select New Project. Aparece el cuadro de diálogo Create new project (Crear nuevo proyecto).The Create new project dialog box will appear.

    Este cuadro de diálogo contiene campos de nombre, descripción y dominios.

  2. Escriba un nombre y una descripción para el proyecto.Enter a name and a description for the project. Después, seleccione un grupo de recursos.Then select a Resource Group. Si la cuenta con la que ha iniciado sesión está asociada a una cuenta de Azure, aparecerá el menú desplegable Resource Group (Grupo de recursos) que incluye un recurso de Custom Vision Service.If your signed-in account is associated with an Azure account, the Resource Group dropdown will display all of your Azure Resource Groups that include a Custom Vision Service Resource.

    Nota

    Si no hay ningún grupo de recursos está disponible, confirme que ha iniciado sesión en customvision.ai con la misma cuenta que se usa para iniciar sesión en el portal Azure.If no resource group is available, please confirm that you have logged into customvision.ai with the same account as you used to log into the Azure portal. Además, confirme que el directorio seleccionado en el portal de Custom Vision es el mismo que el de Azure Portal donde se encuentran los recursos de Custom Vision.Also, please confirm you have selected the same “Directory” in the Custom Vision portal as the directory in the Azure portal where your Custom Vision resources are located. En ambos sitios, puede seleccionar el directorio en el menú de cuentas desplegable de la esquina superior derecha de la pantalla.In both sites, you may select your directory from the drop down account menu at the top right corner of the screen.

  3. Seleccione Classification (Clasificación) en Project Types (Tipos de proyecto).Select Classification under Project Types. Después, en Classification Types (Tipos de clasificación), elija Multilabel (Multietiqueta) o Multiclass (Multiclase) según su caso de uso.Then, under Classification Types, choose either Multilabel or Multiclass, depending on your use case. La clasificación multietiqueta aplica un número cualquiera de etiquetas a una imagen (cero o más), mientras que la clasificación multiclase ordena las imágenes en categorías únicas (cada imagen que envíe se clasificará en la etiqueta más probable).Multilabel classification applies any number of your tags to an image (zero or more), while multiclass classification sorts images into single categories (every image you submit will be sorted into the most likely tag). Puede cambiar el tipo de clasificación más adelante si lo desea.You will be able to change the classification type later if you wish.

  4. A continuación, seleccione uno de los dominios disponibles.Next, select one of the available domains. Cada dominio optimiza el clasificador para determinados tipos de imágenes, como se describe en la tabla siguiente.Each domain optimizes the classifier for specific types of images, as described in the following table. Puede cambiar el dominio más adelante si lo desea.You will be able to change the domain later if you wish.

    DominioDomain PropósitoPurpose
    GenéricoGeneric Optimizado para una amplia gama de tareas de clasificación de imágenes.Optimized for a broad range of image classification tasks. Si ninguno de los otros dominios es adecuado, o no está seguro de qué dominio elegir, seleccione el dominio genérico.If none of the other domains are appropriate, or you are unsure of which domain to choose, select the Generic domain.
    AlimentosFood Optimizado para fotos de platos tal y como los vería en el menú de un restaurante.Optimized for photographs of dishes as you would see them on a restaurant menu. Si quiere clasificar fotos de frutas o verduras individuales, use el dominio de alimentos.If you want to classify photographs of individual fruits or vegetables, use the Food domain.
    Puntos de referenciaLandmarks Optimizado para puntos de referencia reconocibles, tanto naturales como artificiales.Optimized for recognizable landmarks, both natural and artificial. Este dominio funciona mejor cuando el punto de referencia es claramente visible en la foto.This domain works best when the landmark is clearly visible in the photograph. Este dominio funciona incluso si hay gente delante del punto de referencia que obstruye parcialmente su visión.This domain works even if the landmark is slightly obstructed by people in front of it.
    MinoristasRetail Optimizado para imágenes que se encuentran en un catálogo de compra o un sitio web de compras.Optimized for images that are found in a shopping catalog or shopping website. Si quiere una clasificación de alta precisión entre vestidos, pantalones y camisas, use este dominio.If you want high precision classifying between dresses, pants, and shirts, use this domain.
    Dominios compactosCompact domains Optimizados para las restricciones de clasificación en tiempo real en dispositivos móviles.Optimized for the constraints of real-time classification on mobile devices. Los modelos generados por los dominios compactos se pueden exportar para ejecutarse localmente.The models generated by compact domains can be exported to run locally.
  5. Por último, seleccione Create project (Crear proyecto).Finally, select Create project.

Elección de las imágenes de entrenamientoChoose training images

Como mínimo, se recomienda que use 30 imágenes por etiqueta en el conjunto de entrenamiento inicial.As a minimum, we recommend you use at least 30 images per tag in the initial training set. También conviene recopilar algunas imágenes adicionales para probar el modelo una vez que está entrenado.You'll also want to collect a few extra images to test your model once it is trained.

Para entrenar el modelo de forma eficaz, use imágenes con variedad visual.In order to train your model effectively, use images with visual variety. Seleccione imágenes con esa variedad de:Select images with that vary by:

  • ángulos de cámaracamera angle
  • iluminaciónlighting
  • backgroundbackground
  • estilo visualvisual style
  • sujetos individuales o gruposindividual/grouped subject(s)
  • sizesize
  • Tipotype

Además, asegúrese de que todas las imágenes de entrenamiento cumplen los criterios siguientes:Additionally, make sure all of your training images meet the following criteria:

  • tienen el formato .jpg, .png o .bmp.jpg, .png, or .bmp format
  • tienen menos de 6 MB de tamaño (4 MB en el caso de imágenes de predicción)no greater than 6MB in size (4MB for prediction images)
  • tienen más de 256 píxeles en el borde más corto. Custom Vision Service escalará verticalmente y de forma automática todas las imágenes que sean más cortasno less than 256 pixels on the shortest edge; any images shorter than this will be automatically scaled up by the Custom Vision Service

Carga y etiquetado de imágenesUpload and tag images

En esta sección cargará y etiquetará manualmente las imágenes para ayudar a entrenar el clasificador.In this section you will upload and manually tag images to help train the classifier.

  1. Para agregar imágenes, haga clic en el botón Add images (Agregar imágenes) y seleccione Browse local files (Examinar archivos locales).To add images, click the Add images button and then select Browse local files. Seleccione Open (Abrir) para empezar a etiquetar.Select Open to move to tagging. La selección de etiquetas se aplicará a todo el grupo de imágenes que ha seleccionado para cargar, por eso es más fácil cargar imágenes en grupos independientes según sus etiquetas deseadas.Your tag selection will be applied to the entire group of images you've selected to upload, so it is easier to upload images in separate groups according to their desired tags. También puede cambiar las etiquetas de las imágenes individuales después de haberlas cargado.You can also change the tags for individual images after they have been uploaded.

    El control para agregar imágenes se muestra en la parte superior izquierda y como un botón en la parte inferior central.

  2. Para crear una etiqueta, escriba texto en el campo My Tags (Mis etiquetas) y pulse ENTRAR.To create a tag, enter text in the My Tags field and press Enter. Si la etiqueta ya existe, aparecerá en un menú desplegable.If the tag already exists, it will appear in a dropdown menu. En un proyecto multietiqueta, puede agregar más de una etiqueta a las imágenes, pero en un proyecto multiclase solo puede agregar una.In a multilabel project, you can add more than one tag to your images, but in a multiclass project you can add only one. Para terminar la carga de las imágenes, use el botón Upload [number] files (Cargar [número] archivos).To finish uploading the images, use the Upload [number] files button.

    Imagen de la página de etiqueta y carga

  3. Una vez cargadas las imágenes, seleccione Done (Hecho).Select Done once the images have been uploaded.

    La barra de progreso muestra todas las tareas completadas.

Para cargar otro conjunto de imágenes, vuelva a la parte superior de esta sección y repita los pasos.To upload another set of images, return to the top of this section and repeat the steps.

Entrenamiento del clasificadorTrain the classifier

Para entrenar al clasificador, seleccione el botón Train (Entrenar).To train the classifier, select the Train button. El clasificador usa todas las imágenes actuales para crear un modelo que identifica las calidades visuales de cada etiqueta.The classifier uses all of the current images to create a model that identifies the visual qualities of each tag.

Botón Train (Entrenar) en la parte superior derecha de la barra de herramientas del encabezado de la página web

El proceso de entrenamiento solo debe llevar unos minutos.The training process should only take a few minutes. Durante este tiempo, se muestra información sobre el proceso de entrenamiento en la pestaña Performance (Rendimiento).During this time, information about the training process is displayed in the Performance tab.

Ventana del explorador con un cuadro de diálogo de entrenamiento en la sección principal

Evaluación del clasificadorEvaluate the classifier

Una vez finalizado el entrenamiento, se calcula el rendimiento del modelo y se muestra.After training has completed, the model's performance is estimated and displayed. Custom Vision Service usa las imágenes que ha enviado para entrenamiento para calcular la precisión y la coincidencia, mediante un proceso denominado validación cruzada de k iteraciones.The Custom Vision Service uses the images that you submitted for training to calculate precision and recall, using a process called k-fold cross validation. La precisión y la coincidencia constituyen dos medidas diferentes de la eficacia de un clasificador:Precision and recall are two different measurements of the effectiveness of a classifier:

  • La precisión indica la fracción de las clasificaciones identificadas que fueron correctas.Precision indicates the fraction of identified classifications that were correct. Por ejemplo, si el modelo identificó 100 imágenes como perros y 99 de ellas eran realmente de perros, la precisión sería del 99 %.For example, if the model identified 100 images as dogs, and 99 of them were actually of dogs, then the precision would be 99%.
  • La coincidencia indica la fracción de las clasificaciones reales que se identificaron correctamente.Recall indicates the fraction of actual classifications that were correctly identified. Por ejemplo, si había realmente 100 imágenes de manzanas y el modelo identificó 80 como manzanas, la coincidencia sería del 80 %.For example, if there were actually 100 images of apples, and the model identified 80 as apples, the recall would be 80%.

Los resultados de entrenamiento muestran la precisión y recuperación globales, junto con la precisión y recuperación de cada etiqueta en el clasificador.

Probability Threshold (Umbral de probabilidad)Probability Threshold

Observe el control deslizante Probability Threshold (Umbral de probabilidad) situado en el panel izquierdo de la pestaña Performance (Rendimiento). Este es el umbral para que una probabilidad predicha se considere correcta al calcular la precisión y la coincidencia.Note the Probability Threshold slider on the left pane of the Performance tab. This is the threshold for a predicted probability to be considered correct when computing precision and recall.

La interpretación de las llamadas de predicción con un umbral de alta probabilidad tiende a devolver resultados con alta precisión a costa del índice de coincidencia (las clasificaciones encontradas son correctas, pero muchas no se han encontrado). Por el contrario, un umbral de baja probabilidad hace lo contrario (se encontraron la mayoría de las clasificaciones reales pero había falsos positivos en el conjunto).Interpreting prediction calls with a high probability threshold tends to return results with high precision at the expense of recall (the found classifications are correct, but many were not found); a low probability threshold does the opposite (most of the actual classifications were found, but there are false positives within that set). Teniendo esto en cuenta, debe establecer el umbral de probabilidad según las necesidades específicas de su proyecto.With this in mind, you should set the probability threshold according to the specific needs of your project. Posteriormente, en el lado cliente, debe usar el mismo valor de umbral de probabilidad como filtro al recibir los resultados de predicción del modelo.Later, on the client side, you should use the same probability threshold value as a filter when receiving prediction results from the model.

Administración de iteraciones de entrenamientoManage training iterations

Cada vez que entrena al clasificador, se crea una nueva iteración con sus propias métricas de rendimiento actualizadas.Each time you train your classifier, you create a new iteration with its own updated performance metrics. Puede ver todas las iteraciones en el panel izquierdo de la pestaña Performance (Rendimiento). En el panel izquierdo encontrará también el botón Delete (Eliminar), que puede usar para eliminar una iteración si está obsoleta.You can view all of your iterations in the left pane of the Performance tab. In the left pane you will also find the Delete button, which you can use to delete an iteration if it's obsolete. Cuando se elimina una iteración, elimina las imágenes que están asociadas exclusivamente a ella.When you delete an iteration, you delete any images that are uniquely associated with it.

Pasos siguientesNext steps

En esta guía, ha aprendido a crear y entrenar un modelo de clasificación de imágenes mediante el sitio web de Custom Vision.In this guide, you learned how to create and train an image classification model using the Custom Vision website. A continuación, obtenga más información sobre el proceso iterativo de mejora del modelo.Next, get more information on the iterative process of improving your model.

Prueba y reentrenamiento del modeloTest and retrain a model