Amazon SageMaker Ground Truth: Creación de trabajos de etiquetado

Amazon SageMaker Ground Truth te ayuda a crear conjuntos de datos de entrenamiento altamente precisos para el aprendizaje automático.

Ofrece fácil acceso a etiquetadores humanos públicos y privados, y les proporciona flujos de trabajo e interfaces incorporados para tareas comunes de etiquetado.

Ground Truth puede reducir sus costos de etiquetado hasta en un 70% con el etiquetado automático. Funciona formando Ground Truth a partir de datos etiquetados por humanos, de modo que el servicio aprende a etiquetar datos de forma independiente.

Además de los flujos de trabajo integrados, Ground Truth le ofrece la opción de cargar flujos de trabajo personalizados. Un flujo de trabajo personalizado consiste en una interfaz HTML que proporciona a las etiquetadoras humanas todas las instrucciones y herramientas necesarias para completar las tareas de etiquetado. También crea funciones de preprocesamiento y posprocesamiento AWS Lambda :

  • La función de preprocesamiento de Lambda ayuda a personalizar la entrada a la interfaz HTML.
  • La función de posprocesamiento de Lambda ayuda a procesar los datos . Por ejemplo, uno de sus usos principales es alojar un algoritmo de mejora de la precisión para decirle a Ground Truth cómo debe evaluar la calidad de las etiquetas proporcionadas por el hombre.

Un algoritmo se utiliza para encontrar un consenso sobre qué es “correcto” cuando el mismo Los datos se proporcionan a múltiples etiquetadores humanos. También identifica y quita énfasis a aquellos etiquetadores que tienden a proporcionar datos de baja calidad. Puede cargar la interfaz HTML y las funciones Lambda de procesamiento previo y posterior mediante la consola de Amazon SageMaker.

Para integrarse correctamente con la interfaz HTML, las funciones de Lambda de procesamiento previo y posterior deben cumplir las especificaciones de entrada / salida. establecido en Creación de flujos de trabajo de etiquetado personalizados . Configurar todas las piezas en movimiento y hacer que se comuniquen entre sí con éxito puede requerir algunas iteraciones.

En esta publicación, te guío en el proceso de configuración de un flujo de trabajo personalizado con una plantilla HTML personalizada y funciones Lambda de muestra. Las funciones Lambda de muestra se pueden encontrar en el Repositorio de aplicaciones sin servidor de AWS. Estas funciones de Lambda se pueden implementar fácilmente en su cuenta de AWS y se pueden modificar directamente en la Consola de AWS Lambda. El código fuente está disponible en GitHub repo.

Para esta publicación, creas un trabajo de etiquetado personalizado para la segmentación de la instancia. Pero primero, implemente las funciones Lambda del Repositorio de aplicaciones sin servidor de AWS a su cuenta de AWS.

Importe las funciones de Lambda

En la página de inicio del Servidor de aplicaciones sin servidor seleccione “Aplicaciones disponibles” en la parte izquierda menú y búsqueda de Verdad en tierra . Elija aws-sagemaker-ground-truth-recipe .

En la página de detalles de la aplicación, elija Deploy . Asegúrese de que el usuario tenga permisos para crear roles IAM. Si el usuario no tiene permisos, esta implementación falla.

La implementación de esta aplicación puede demorar unos minutos. Espere hasta que vea la pantalla de estado, que muestra que se han creado cuatro recursos de AWS (dos funciones de Lambda y dos funciones de IAM).

Ahora, ha importado con éxito las funciones de Lambda utilizadas en el trabajo de etiquetado en su cuenta. Para modificar estas funciones de Lambda, selecciónelas y modifique el código Python.

Cree un trabajo de etiquetado personalizado

Suponga que hay millones de imágenes tomadas de cámaras montadas en automóviles que conducen las carreteras públicas. Estas imágenes se almacenan en una ubicación de depósito de Amazon S3 llamada s3: // mybucket / datasets / streetscenes / . Para iniciar un trabajo de etiquetado para la segmentación de la instancia, primero cree un manifiesto que se enviará a Ground Truth.

El siguiente ejemplo de código muestra el contenido de muestra de un archivo de manifiesto con un conjunto de imágenes. Para obtener más información, consulte Datos de entrada .

 {"source-ref": "Ubicación de S3 para la imagen 1"}
{"source-ref": "ubicación S3 para la imagen 2"}
   ...
{"source-ref": "Ubicación de S3 para la imagen n"} 

Paso 1: descargue el conjunto de datos de ejemplo

Si ya tiene un archivo de manifiesto para la segmentación de la instancia, omita esta sección.

Para este ejemplo, Uso el conjunto de datos CBCL StreetScenes . Este conjunto de datos tiene más de 3000 imágenes, pero utilizo una selección de solo 10 imágenes. El conjunto de datos completo es de aproximadamente 2 GB. Puede elegir cargar todas las imágenes a S3 para etiquetarlas o simplemente seleccionarlas.

    • Descargue el archivo zip y extráigalo en una carpeta. De forma predeterminada, la carpeta es Salida.
    • Cree un pequeño conjunto de datos de muestra con el que trabajar:
       mkdir streetscenes
      cp Original / SSDB00010.JPG ./streetscenes/
      cp Original / SSDB00017.JPG ./streetscenes/
      cp Original / SSDB00019.JPG ./streetscenes/
      cp Original / SSDB00025.JPG ./streetscenes/
      cp Original / SSDB00038.JPG ./streetscenes/
      cp Original / SSDB00016.JPG ./streetscenes/
      cp Original / SSDB00018.JPG ./streetscenes/
      cp Original / SSDB00021.JPG ./streetscenes/
      cp Original / SSDB00029.JPG ./streetscenes/
      cp Original / SSDB00039.JPG ./streetscenes/[19459018◆◆19459023]
        

 

 

En la consola S3, crea la carpeta / streetscenes en tu cubo . S3 es un almacén de valores clave, por lo que no hay concepto de carpetas. Sin embargo, la consola S3 le da una idea de la estructura de carpetas mediante el uso de barras diagonales en la tecla. Utiliza la consola para crear la clave.

 

Sube los siguientes archivos a tu grupo de S3, s3: // mybucket / datasets / streetscenes / . Puede usar la consola S3 o el siguiente comando AWS CLI :

 

 

 aws s3 sync streetscenes / s3: // gt-recipe-demo / datasets / streetscenes /
subir: streetscenes / SSDB00010.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00010.JPG
subir: streetscenes / SSDB00017.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00017.JPG
subir: streetscenes / SSDB00018.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00018.JPG
subir: streetscenes / SSDB00021.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00021.JPG
subir: streetscenes / SSDB00025.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00025.JPG
subir: streetscenes / SSDB00038.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00038.JPG
subir: streetscenes / SSDB00029.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00029.JPG
subir: streetscenes / SSDB00016.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00016.JPG
subir: streetscenes / SSDB00039.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00039.JPG
subir: streetscenes / SSDB00019.JPG a s3: //gt-recipe-demo/datasets/streetscenes/SSDB00019.JPG 

Paso 2: Crear un manifiesto de entrada

Si ya tiene un archivo de manifiesto para la segmentación de instancia, omita esta sección.

En la consola de Amazon SageMaker, inicie el proceso creando un trabajo de etiquetado .

En ubicación de conjunto de datos de entrada elija Crear archivo de manifiesto ]. Esta herramienta lo ayuda a crear el manifiesto al rastrear una ubicación S3 que contiene datos sin procesar (imágenes o texto).

Para las imágenes, el rastreador ingresa un Preferencias de S3 y rastrea todos los archivos de imágenes con extensiones .jpg, .jpeg y. png en ese prefijo. A continuación, crea un manifiesto con cada línea de la siguiente manera:

 {"source-ref": ""} 

El enlace Crear archivo de manifiesto abre una ventana modal. Ingrese la ruta S3 a la que cargó los archivos de imágenes y asegúrese de incluir la barra diagonal . A continuación, elija Crear . Cuando se complete el proceso de creación, elija Usar este manifiesto . Se tarda unos segundos en crear el manifiesto.

En este ejemplo, los objetos son imágenes en S3, por lo que puede usar la herramienta de rastreo para crear el manifiesto inicial. Cada línea de JSON contiene un campo llamado source-ref que apunta al valor s3Uri de una imagen. El contenido del archivo de manifiesto creado debe tener el siguiente aspecto:

 {"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00010.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00016.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00017.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00018.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00019.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00021.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00025.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00029.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00038.JPG"}
{"source-ref": "s3: //gt-recipe-demo/datasets/streetscenes/SSDB00039.JPG"} 

Paso 3: Cree un trabajo de etiquetado personalizado

Configure las siguientes configuraciones de trabajo:

  • Etiquetado nombre del trabajo— Este nombre debe ser único en su cuenta dentro de una Región AWS.
  • Entrada de datos S3et ubicación: La ubicación del archivo de manifiesto de entrada que creó en el Paso 2.
  • Ubicación del conjunto de datos de salida S3— La ubicación en la que se escriben los datos de salida .
  • Rol de IAM – Establece permisos usando una política IAM. Tome nota de este rol, ya que lo necesita en el Paso 4.

Seleccione el tipo de tarea personalizada y elija Siguiente .

Para Trabajadores elija Privado . Para obtener más información sobre las diferentes opciones de fuerza laboral, consulte Administración de su fuerza laboral .

Hay una serie de plantillas de IU de etiquetado que puede usar para configurar sus propios flujos de trabajo personalizados. En este caso, utilice la UI de segmentación de instancia. Para Plantillas elija Segmentación de instancia .

Modifique el código HTML para que tenga el siguiente aspecto. En la plantilla original, tenía tres marcadores de posición: src encabezado y etiquetas . Cambié los campos encabezado y etiquetas . Cuando se crean tareas para los trabajadores que utilizan esta plantilla, Ground Truth proporciona los datos para completar el campo del marcador de posición src .

    1. Lea la tarea con cuidado e inspeccione la imagen.

 

    1. Lea las opciones y revise los ejemplos proporcionados para comprender mejor las etiquetas.

 

    1. Elija la etiqueta apropiada que mejor se adapte a la imagen.

 

 

Use las herramientas para etiquetar todas las instancias de los elementos solicitados en la imagen

 


  
 

A continuación, para los campos de función Lambda de la tarea de preprocesamiento y postprocesamiento, seleccione las funciones de Lambda que importó anteriormente.

En Configuración de tarea de etiquetado personalizado elija Vista previa . Recuerde permitir las ventanas emergentes antes de intentar obtener una vista previa de la interfaz de usuario. Si la página se carga correctamente sin errores, sabe que la función Lambda de la tarea de preprocesamiento y la plantilla HTML personalizada funcionan bien juntas.

Paso 4: conceda permisos de ejecución a la función de Amazon SageMaker

En el paso anterior, al crear un trabajo de etiquetado de Ground Truth, creó un rol IAM. Ground Truth usa este rol de IAM para ejecutar su trabajo de etiquetado. Esta función debe confiar en la función de ejecución de la función Lambda de procesamiento posterior.

En la consola Lambda, seleccione la función Lambda que importó anteriormente. En la parte superior de la página o en la sección Etiquetas anote el Nombre de recurso de Amazon (ARN). Debe parecerse a lo siguiente:

 arn: aws: lambda: us-east-1: 919226420625: function: serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-xxxxxxx 

Choose Execution role ] Use un rol existente y vea el rol.

Copie el rol IAM ARN.

En la consola IAM, encuentre el rol de ejecución de Amazon SageMaker que creó. Elija Relaciones de confianza Editar relación de confianza . Agregue el rol de ejecución de Lambda copiado a la relación de confianza. El siguiente ejemplo de código muestra el contenido de la relación de confianza.

 {
  "Versión": "2012-10-17",
  "Declaración": [
    {
      "Efecto": "Permitir",
      "Director de escuela": {
        "AWS": [
          "arn: aws: iam :: : role / serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-xxxxx"
        ]
        "Servicio": [
          "lambda.amazonaws.com",
          "sagemaker.amazonaws.com"
        ]
      }
      "Acción": "sts: AssumeRole"
    }
  ]
} 

Elija Permisos Adjunte políticas . Seleccione AWSLambdaFullAccess y elija Adjuntar política . Después de adjuntar la política, su pestaña Permisos debería parecerse a la siguiente captura de pantalla:

Cerrar la pestaña actual.

Paso 5: Enviar el trabajo de etiquetado

pestaña principal del navegador, que tiene su trabajo de etiquetado abierto, seleccione Enviar . El trabajo de etiquetado está en curso. Espere a que se complete este trabajo.

Si tiene trabajadores asignados a su equipo de trabajo privado, indíqueles que trabajen en sus tareas. Si se ha agregado como trabajador, complete las tareas en el portal privado del equipo de trabajo. Para obtener más información, consulte Administración de una fuerza laboral privada .

Etiquetado de resultados

Después de que los trabajadores realicen el trabajo de etiquetado, su manifiesto de salida es similar al siguiente:

 {"source-ref": "s3: //gt-recipe-demo/dataset/streetscenes/SSDB00010.JPG", "gt-label": {"annotationsFromAllWorkers": [{"workerId":"public.us-east-1.M52TVGWFFYHS34QM3EHF3NMTKY","annotationData":{"content":"{"annotatedResult":{"inputImageProperties":{"height":960,"width":1280},"instances":[] "labelImage ": { "pngImageData ":  " iVBORw0KGgoAAAANSUhEUgAABQAAAAPAAQMAAABQEkY6AAAAAXNSR0IB2cksfwAAAANQTFRFAAAAp3o92gAAAAF0Uk5TAEDm2GYAAACsSURBVHic7cExAQAAAMKg9U / tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAN1veAAH / xLK9AAAAAElFTkSuQmCC  "}}}"}}, { "workerId": "public.us-este-1.JZUQXKHROY2DBQ2V2ZLEWEYCAE", "annotationData": { "contenido": "{" annotatedResult  ": { "inputImageProperties ": { "altura ": 960,  "ancho ": 1280},  "instancias ": [{"color":"#2ca02c","label":"Person"}] "etiquetadoImage ": { "pngImageData ":  "iVBORw0KGgoAAANSUhEUgAABQAAAA PAAQMAAABQEkY6AAAAAXNSR0IB2cksfwAAAAZQTFRFAAAALKAsCO / WQQAAAAJ0Uk5TAP9bkSK1AAABeklEQVR4nO3awWnEQAxAURsffHQJLsWlOaVtKVNCjjmEzGYbGMNqQTK8V8FHJyE0TQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8ac8OuLL / ZBdcOPojO2FMYNQpMKh8YBcYJDBo7r1lNwyVD1xuEPid3TD0H1h731pvEPib3TC09f6X3TBUPnDvvWc3DAmMOqoHlp / gK / ArO2JEYJTAqO0OgY / siBGBUQKj1jsEtuyIEYFRAqNegaWPMwKjbhHYsiNGBEYJjBIYJTBqqR44Vw + cBEad1QOP6oF79cBNYNBaPbD800L5t49JYNRZPfCoHrhVD5yrB05nyy64sLXsggtLyy640rIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPicJ / PI71EA2TUjAAAAAElFTkSuQmCC  "}}}"}}, { "workerId": "public.us-este-1.H7WTTAHGRYWYXEA7V7E7KOMOCE", "annotationData": { "contenido": "{" annotatedResult  ": {" inputImageProperties  ": {" height  ": 960, " width  ": 1280}, " instance  ": []" etiquetadoImage  ": {  "pngImageVata ":  "iVBORw0KGgoAAAAUAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA que que que queajes te salga en el sitio AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAN1veAAH / xLK9AAAAAElFTkSuQmCC  "}}}"}}]}, "GT-label-17-metadatos": { "type": "Groundtruth / encargo", "trabajo-name": "GT-label-17"," anotado por el hombre ":" sí "," fecha de creación ":" 2019-04-01T05: 21: 34 + 0000 "}}
{"source-ref": "s3: //gt-recipe-demo/dataset/streetscenes/SSDB00016.JPG", "gt-label": {"annotationsFromAllWorkers": [{"workerId":"public.us-east-1.H7WTTAHGRYWYXEA7V7E7KOMOCE","annotationData":{"content":"{"annotatedResult":{"inputImageProperties":{"height":960,"width":1280},"instances":[{"color":"#2ca02c","label":"Person"},{"color":"#1f77b4","label":"Person"}] "labelImage ": { "pngImageData ":  "iVBORw0KGgoAAAANSUhEUgAABQAAAAPAAgMAAAAXsjzqAAAAAXNSR0IB2cksfwAAAAlQTFRFAAAALKAsH3e00sbfdAAAAAN0Uk5TAP // RFDWIQAABI1JREFUeJzt3E2O4kgUhVGwhNTyqCdswqtgCTUo74elMGx5lV1JklWGWXP10u2IcxYQL / QJ / 2CEDwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaMhpnufL1pvYMwFDHwF / bL2JPRMw9BHw59ab2DMBQx8B5603sWcChu4BL1vvYscEDN0Duo95n4Che8CG72PG6gGtB5yuxQPuAdu9jxmWW / GExgOOyz / FEz4DXoqnbGZaluIJjQdcluVaO + EzYKv3McOvgLfaEZ8BWz0J / jqCq0 + + Cj4CX2ilbWT7UjngEbPNOcLgHvJbOeARs8yM43gPeSmd8BWzyMjLdA9aeBL8CtngZ TyCi0 + + C57ndj D4CHgtnHH86tfiZWR6BLwVzvh9BLd4GfmOgLOAkWPTAZf6gCcBM7OAkWPTAYf6gOc + + AtZ9FZkFjBzbDjiWBzwLmJkFjJwaDzhVBzwLmOkmYNUDwdYDLgJmBAwJmBkEzNQHnAXMNB5wFDCzCnitmSBgqPGAk4AZAUMChpbqgEcBMx0FvJUMaDzgIGBGwJCAoVHATH3Ak4AZAUMdBaz5YbjxgIOAIQFDAoYmATPlAc NBxwFzKzvY0oGt B5w8AkMVX8T6SjgtWT95gNOtUdwRwFvNes3H3CsPYJffxZuL + + Dvy3DR t0ErPqXQ / MBD7WnwH4CXouWbz / gVHoK7CbgN / 1Xs8WAY + kR / PqzcIMBh9IjuJeA3 / R // yYDHipvYroJeK1avIeAU + + EpsIuAY U7YzoJeCtbvIeAQ + XbK19 / Fm4zYOELaHsIePiuVwe2G / Bat3YXAafCtbsI + Ffh2l0ErCRgSMDQWcCMgCEBQwKGBAwJGBIw9NpPwP / q9SN42XpDu9P6a5DrNf4q + + HoChgQMCRgSMCRgSMCQgCEBQwKGBAwJGBIwJGBIwJCAIQFDAoYEDAkYEjAkYOg54Na72SEBQwKGBAwJGBIw9BTw59a72SEBQwKGBAydBMw8Bfyx9W52SMCQgCEBQwKGngJett7NDgkYEjAkYEjAkIChp4Bbb2aPBAwJGBIwJGBoHdDz1DcIGBIwJGBIwNA6oOepbxAwJGBIwJCAIQFD64CXrTezRwKGBAwJGBIwtA649V526SxgRsCQgCEBQ6uAnqe Q8CQgCEBQwKGBAytAnqe + + g4BQwKGBAwJGBIwtAp42XovuyRgSMCQgCEBQ6uAW29lnwQMCRgSMCRgSMDQn4AeSL9FwJCAIQFDAob BPQ89S0ChmYBMwKGBIyd9Usd9Yv9vfUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAID / t38Buw1HOPtmWvcAAAAASUVORK5CYII  u003d  "}} } "}}, {" workerId ":" public.us-east-1.M52TVGWFFYHS34QM3EHF3NMTKY "," annotationData ": {" content ":" { "annotatedResult ": { "inputImageProperties  ": {" Altura  ": 960, " anchura  ": 1280}, " instancias  ": []" labeledImage  ": {" pngImageData  ": " iVBORw0KGgoAAAANSUhEUgAABQAAAAPAAQMAAABQEkY6AAAAAXNSR0IB2cksfwAAAANQTFRFAAAAp3o92gAAAAF0Uk5TAEDm2GYAAACsSURBVHic7cExAQAAAMKg9U / tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAN1veAAH / xLK9AAAAAElFTkSuQmCC  "}}}"}}, {"workerId": "public.us-east-1.QUERNWRJ6HNNO5D6XDUVPMWTMA", "anotación de datos" : { "altura ": 960,  "anchura ": 1280},  "instancias ": [{"color":"#2ca02c","label":"Person"},{"color":"#1f77b4","label":"Person"}] "labeledImage ": { "pngImageData ":  "iVBORw0KGgoAAAANSUhEUgAABQAAAAPAAgMAAAAXsjzqAAAAAXNSR0IB2cksfwAAAAlQTFRFAAAALKAsH3e00sbfdAAAAAN0Uk5TAP // RFDWIQAABJZJREFUeJzt3EFuIjsUhtFUJKQW89oEq2AJb / BqPyyFYYtVdpMOCcms + + 9etUl2fswDb oRlMAUvLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEB3y3nrFezbImBiWgRM3PsJmBAwJGDoHvC / rRexZwKGBAwJGBIwJGBIwNA94P9bL2LPBAwJGBIwNAuYETAkYOgecNl6EXvWPuDrtXb89gGP19rx2we8 / awdv3vA4 + 1WO0H3gDcBI6 + / A15KZ5h7fy13 + h3wWjpD64D31191wKVxwONbv + JjWMDMJGDmIGCmdcDTCgHfDuGuX8utEXAZIGDpR5E / AZT + FFkh4PQe8Fw4x3ZWCHh4D9jzUv + 2XsCee3iFgPMjYMtjZIWAj3499 / Aj4KVuio + AHY + R1 / qA02fAhnt4hYCHz4ANj5GVA57LZtnKCgHnp4D9jpEVAi5L55fg8RHwWjbFl4DtjpFTecCp9yuwPuChd8CbgJHX + oCzgJmldcCPQ7juTr93wFN5wEnAzKF3wJuAkdf6gLOAmaV1wM9DuOxOv3fAU / krcBIw8 + 0M6XYlfRMwUx9w7h2wfgsLGGoe8Chgpv6NdPOA9Z + Fxwl4rZmge8CTgJmjgBkBQ + VfKnUPWP5oR / UAL + sG7Pd01scmvtYM3z / gYxNfakYfIOCLgKE / m7ho8BECvm3ilb7VFPBvDRPwWjT2MkrAS9HYAoaGCVg19igBV3q8UsC / NkrAa9XY3wK2 + 53Nm2PhD70EDI0SsGzsQQLW / W + RgKFBAl7Lxh4k4KVsbAFDgwSsG1vA0BgBC / 99UcDQGAGvdWN / C3ium2lDhQGb / 1Dp3fFSNrSAoUEC1g0tYGiMgD / qhhYwNEbAQgKGBAwJGBIwJGDoe8Ct17M7AoYEDAkYEjAkYEjAkICh5n + dvu / AkC0cEjAlYGj + 0q / nz0RKCRg6CJiZBMwImBIwNAuYETD05Rju + YRvrUnAjIAhAUMChgQMCRgSMCRg6EvA89ar2SEBUwKGBAwJGBIwJGBIwJCAoeeAW69llwQMCRgSMCRgSMCQgCEBQ0 / 9PNnxLwQMCRgSMCRgSMCQgC EBQ08BPZjwLwQMCRgSMCRg6Cngeeu17JKAIQFDAoaeAm69lH0SMCRgSMCQy5iQgCEBQwKGBAy5jAkJGBIwJGDIZUxIwJCAIQFDLmNCAoYEDAkYEjDkMiYkYEjAkIAhlzEhAUMChgQMCRhymxUSMCRgSMCQgCEBQwKGBAwJGBIwJGBIwNBHwK0XslcChgQMCRg6CBiaBcxMAoYOAoYEDB0EDM0CAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjOIXhsjo6mjj6oAAAAAASUVORK5CYII  u003d  "}}}"}}]}, "GT-label-17-metadatos": { "type": "Groundtruth / encargo", "trabajo-name": "GT-label-17"," anotado por el hombre ":" sí "," fecha de creación ":" 2019-04-01T05: 21: 34 + 0000 "}} 

Expanda una línea JSON para ver las anotaciones. Se puede ver que tres trabajadores trabajaron en la imagen y produjeron anotaciones:

  • source-ref : la ubicación de la imagen.
  • workerId : el ID del trabajador a a quien los annotationData en este caso, puede ver tres workerIds lo que significa que tres trabajadores anotaron esta imagen.
  • annotationData : El resultado de la anotación. 19659004] gt-label-17-metadata : los metadatos asociados con el trabajo de etiquetado del que forma parte esta imagen.
 {
   "source-ref": "s3: //gt-recipe-demo/dataset/streetscenes/SSDB00010.JPG",
   "gt-label-17": {
      "anotaciones de todos los trabajadores": [
         {
            "workerId": "public.us-east-1.M52TVGWFFYHS34QM3EHF3NMTKY",
            "annotationData": {
               "content": "{" annotatedResult  ": {" inputImageProperties  ": {" height  ": 960, " width  ": 1280}, " instance  ": []" labelImage  ": {" pngImageData  ": " iVBORw0KGgoAAAANSUhEUgAABQAAAAPAAQMAAABQEkY6AAAAAXNSR0IB2cksfwAAAANQTFRFAAAAp3o92gAAAAF0Uk5TAEDm2GYAAACsSURBVHic7cExAQAAAMKg9U / tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAN1veAAH / xLK9AAAAAElFTkSuQmCC  "}}}"
            }
         }
         {
            "workerId": "public.us-east-1.JZUQXKHROY2DBQ2V2ZLEWEYCAE",
            "annotationData": {
               "contenido": "{" annotatedResult  ": {" inputImageProperties  ": {" altura  ": 960, " ancho  ": 1280}, " instancias  ": [{"color":"#2ca02c","label":"Person"}]" etiquetadoImagen  ": {" pngImageData  ": " iVBORw0KGgoAAAANSUhEUgAABQAAAAPAAQMAAABQEkY6AAAAAXNSR0IB2cksfwAAAAZQTFRFAAAALKAsCO / WQQAAAAJ0Uk5TAP9bkSK1AAABeklEQVR4nO3awWnEQAxAURsffHQJLsWlOaVtKVNCjjmEzGYbGMNqQTK8V8FHJyE0TQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8ac8OuLL / ZBdcOPojO2FMYNQpMKh8YBcYJDBo7r1lNwyVD1xuEPid3TD0H1h731pvEPib3TC09f6X3TBUPnDvvWc3DAmMOqoHlp / gK / ArO2JEYJTAqO0OgY / siBGBUQKj1jsEtuyIEYFRAqNegaWPMwKjbhHYsiNGBEYJjBIYJTBqqR44Vw + cBEad1QOP6oF79cBNYNBaPbD800L5t49JYNRZPfCoHrhVD5yrB05nyy64sLXsggtLyy640rIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPicJ / PI71EA2TUjAAAAAElFTkSuQmCC  "}}}"
            }
         }
         {
            "workerId": "public.us-east-1.H7WTTAHGRYWYXEA7V7E7KOMOCE",
            "annotationData": {
               "content": "{" annotatedResult  ": {" inputImageProperties  ": {" height  ": 960, " width  ": 1280}, " instance  ": []" labelImage  ": {" pngImageData  ": " iVBORw0KGgoAAAANSUhEUgAABQAAAAPAAQMAAABQEkY6AAAAAXNSR0IB2cksfwAAAANQTFRFAAAAp3o92gAAAAF0Uk5TAEDm2GYAAACsSURBVHic7cExAQAAAMKg9U / tbwagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAN1veAAH / xLK9AAAAAElFTkSuQmCC  "}}}"
            }
         }
      ]
   }
   "gt-label-17-metadata": {
      "type": "groundtruth / custom",
      "nombre del trabajo": "gt-label",
      "anotado por el hombre": "sí",
      "fecha de creación": "2019-04-01T05: 21: 34 + 0000"
   }
} 

Limpieza

Para evitar incurrir en cargos futuros:

  1. Asegúrese de que su trabajo de etiquetado esté marcado como “Completo”, “Detenido” o “Fallido” en la Consola de Amazon SageMaker .
  2. Elimine la pila de S3 correspondiente “mybucket” en Amazon S3 .
  3. Borre la pila de “serverlessrepo-aws-sagemaker-ground-truth-recipe” de Amazon CloudFormation console .

Conclusión

En esta publicación, comencé a implementar las funciones Lambda anteriores y posteriores al procesamiento desde una aplicación de Ground Truth, utilizando el Repositorio de aplicaciones sin servidor de AWS. Luego creé un trabajo de etiquetado personalizado y lo configuré para usar las funciones Lambda importadas.

Estas funciones de Lambda de muestra lo ayudan a ejecutar un trabajo de etiquetado personalizado rápidamente. Puede agregarlos o modificarlos con su propia lógica, utilizando la Consola de AWS Lambda.

Visite su Consola de Administración de AWS para comenzar !

 

Dejá un comentario