Etiquetación de datos desde la Onesait Platform
A la hora de trabajar con máquinas, inteligencia artificial o proyectos de aprendizaje, es necesario llevar a cabo una etiquetación lo más correcta posible, ya que como se suele decir, el resultado de los modelos entrenados es tan bueno como los datos que se utilizan para entrenarlos. Por tanto, esta labor de agregado de datos y etiquetado es muy importante.
En el mercado existen muchas soluciones Open Source para llevar a cabo el etiquetado, como puede ser LabelMe, YoLo Label, o similares. Sin embargo, estas soluciones implican en muchos casos clonarse el repositorio del proyecto, instalarse entornos requeridos (como Anaconda para LabelMe) y demás.
Para saltarse este punto intermedio cuando se trabaja con datasets de imágenes propios, hemos integrado una nueva herramienta en la Onesait Platform: Data Labeling Tool.
Data Labeling Tool
Con esta nueva herramienta, podrás llevar a cabo todo el etiquetado de tu proyecto en el propio entorno de la Plataforma.
Como ejemplo práctico, vamos a ver cómo crear un proyecto con Data Labeling Tool para generar datos etiquetados a partir de un vídeo, en el cual etiquetarás las expresiones que van apareciendo y cuyos datos te pueden servir por ejemplo para un proyecto de reconocimiento facial o de sentimientos.
Veamos cómo llevarlo a cabo y qué resultado obtenemos.
Creando el proyecto y cargando datos
En primer lugar, accede a la Plataforma con un usuario que tenga rol de tipo ANALYTICS o ADMINISTRATOR.
Una vez dentro, abre el menú de «Analytics Tools», y selecciona la opción de «My Data Labeling Tool».
Esta pantalla mostrará un listado con los proyectos ya existentes.
Pulsa en el icono de «+» para crear un nuevo proyecto.
Lo primero que tienes que hacer es asignar un nombre y una descripción a tu proyecto.
El siguiente paso que debes realizar es configurar un interfaz de etiquetado. En este paso, indicarás cómo etiquetar la información que llegue, implementando un formulario, para lo cual puedes usar las plantillas predefinidas que ayudan enormemente en esta tarea.
Con dichas plantillas puedes, de forma visual, seleccionar para el tipo de proyecto que hagas, cómo vas a querer la información de salida.
Para este ejemplo, selecciona la opción de «Videos»:
Y de las opciones disponibles, la de «Video Timeline Segmentation»:
Ahora, cambia las etiquetas que aparecen por defecto (kickflip, etc.) por las que te interesen: alegría, tristeza, miedo, ira, etc.
Pulsa en el botón de «Save» y desplázate al listado de tareas para etiquetar. Como verás, está vacío, por lo cual te vamos a enseñar un par de formas de traer tareas o datos de entrada.
La primera de ellas consiste en usar el File Repository de la Plataforma, que es la opción recomendada si se está trabajando en equipo con otras personas, o incluso si se piensa usar los mismos datos de entrada para más de un proyecto. Para usar esta opción, escoge «Source Cloud Storage».
Para ello, vuelve a la pantalla del listado de proyectos que vimos anteriormente:
Si te fijas, ahora aparecerá tu proyecto. Pulsa en el icono con tres puntos situado a la derecha del todo:
De las opciones que aparecerán, selecciona la de Source Cloud Storage.
En la pantalla que aparecerá, verás los Source Cloud Storages de este proyecto, aunque ahora mismo no hay ninguno todavía.
Para crear uno nuevo, pulsa el botón de «+»:
Se abrirá un formulario que tendrás que rellenar. El resumen de los campos a rellenar es:
- Cloud Storage Title: título descriptivo del cloud storage.
- Bucket: bucket donde se alojarán los ficheros.
- Prefix: prefijo o path donde se alojaran los ficheros.
- Regex File Filter: patrón regex que se seguirá para identificar que archivos deben cargarse.
- Treat each cube object as a source file: marca esta opción en caso por ejemplo de que los ficheros sean imágenes.
- Recursive Scan: hace la búsqueda recursiva en carpetas que estén anidadas dentro de la especificada en el prefix.
- Use Presigned URLs.
Tras rellenar el formulario y pulsar el botón «Create», aparecerá en el listado el Source Cloud Storage que se ha definido:
En el File Repository de la Plataforma, se habrá creado una entrada con este prefix, donde podrás subir los ficheros que quieras importar como tareas al proyecto.
Para hacer esto una forma sencilla, no tienes más que pulsar el icono del lápiz:
En las opciones de ese path que se ha creado con .metadata aparecerá el siguiente modal, desde el que podrás crear un archivo. Aquí busca en tu local el archivo de vídeo que quieres etiquetar.
Hecho esto, ya tienes subido tu video, el cual aparecerá listado:
El último paso sería sincronizar el proyecto para este Source Cloud Storage. Para ello, en la configuración del proyecto, puedes ver un origen definido si pulsas el botón «Sync Storage». Todos los ficheros que cumplan la condición del patrón regex serán cargados como tareas al proyecto.
Para este caso, se cargaría la imagen recién subida, la cual ya estaría disponible para poder etiquetarse:
Otra forma de subir datos o tareas al proyecto es pulsando el botón «Import»:
Aquí, seleccionarás los archivos que contengan las tareas que necesites etiquetar.
Al igual que creaste un Source Cloud Storage para obtener las tareas, crearás ahora un Target Cloud Storage para que se almacenen en forma de ficheros los resultados del etiquetado utilizando el gestor de ficheros de la Plataforma.
Para crear un Target Cloud Storage, desde la pantalla de gestión de proyectos, pulsa nuevamente en el icono de los tres puntos, y selecciona la opción de «Target Cloud Storage»:
Como es la primera vez que se accede para este proyecto, la tabla aparecerá vacía. Pulsa en el botón de «+»:
Nuevamente aparecerá un formulario que tendrás que rellenar:
- Cloud Storage Title: título descriptivo para diferenciarlo de otros Targets Clouds Storages del proyecto.
- Bucket: bucket del repositorio de ficheros donde se depositarán los archivos.
- Prefix: path o ruta de carpetas donde se guardarán los ficheros.
- It is allowed to delete objects from Storage: indica si se podrán eliminar o no objetos del almacén.
Una vez rellenado todo, pulsa el botón de Create, y si todo ha ido bien, en el listado anterior ahora aparecerá un elemento. Además, si vas a la configuración del proyecto, comprobarás que se ha asignado un Target Cloud Storage con su botón de sincronizar:
También puedes ver, en el gestor de archivos de la Plataforma, que se ha creado una entrada para los targets:
Al ir etiquetando tareas, los resultados se almacenarán aquí.
Etiquetado del video
Una vez subido el vídeo a la herramienta de etiquetado, procede a etiquetarlo clicando sobre la tarea con el vídeo:
Aparece el vídeo y una línea de tiempo sobre la que irás etiquetando secciones del vídeo, en función del sentimiento que se muestre.
Cuando termines de etiquetar, pulsa en el botón «Submit».
El resultado del etiquetado será un JSON similar a este:
Como tienes el Target Cloud Storage configurado, el resultado del etiquetado se añade al bucket especificado:
Y con esto, ya tendrías el etiquetado listo para proceder al entrenamiento.
Esperamos que os haya parecido interesante y, si tenéis cualquier duda o consulta, dejadnos un comentario.
Por último, recuerda que esta herramienta se encuentra disponible desde la versión 4.2.0-Predator de la Onesait Platform.
Imagen de cabecera: https://datawow.io/