Cómo hacer un clasificador de imágenes sin programar. Parte 3
Este es el tercer artículo de una serie de tres artículos que explica cómo construir un clasificador de imágenes sin programar. Haz clic aquí para leer la parte 1 y haz clic aquí para leer la parte 2.
Ahora que tenemos un dataset limpio de imágenes, podemos entrenar nuestro clasificador de imágenes. Para esto, utilizaremos un increíble nuevo servicio de Google Cloud, llamado AutoML Vision. Ten en cuenta que para el momento en que se escribe este artículo, este servicio está en versión Beta. Esto significa que el producto puede cambiar sin previo aviso y debe usarse para pruebas y no para aplicaciones en producción.
Google Cloud AutoML Vision es una plataforma de aprendizaje automático automatizada y completamente administrada que se lanzó recientemente. Hasta donde sabemos, actualmente es el único servicio de este tipo y en el Machine Learning Lab estábamos ansiosos por probarlo desde que se anunció por primera vez a principios de este año.
AutoML Vision permite entrenar un modelo de machine learning para que pueda clasificar imágenes. Es muy simple de usar y no requiere absolutamente ningún conocimiento de programación. Seguimos los tutoriales oficiales de Google, pero pensamos que eran un poco confusos para los no desarrolladores, así que decidimos escribir el nuestro.
Tutorial de Google Cloud AutoMl Vision
Lo primero que necesitarás es crear una cuenta de Google cloud.
Haz clic aquí e inicia sesión con tu cuenta de Gmail (si tienes una) o crea una cuenta nueva. Google ofrece $ 300 en crédito para que puedas jugar con sus productos y APIs. Puedes activar este crédito si lo deseas.
Deberás aceptar los términos y condiciones
Y deberás completar tu información de contacto y proporcionar una tarjeta de crédito válida para continuar. Tu tarjeta de crédito solo se cobrará si gastas más de $ 300 de crédito. El resto de este tutorial supone que estás creando una cuenta como individuo. Si creas una cuenta como empresa, algunas características y opciones probablemente sean diferentes
Ten en cuenta que probablemente un representante de ventas de Google en Irlanda te contactará (si te encuentra en Europa). Su equipo es fantástico y pueden responder todas tus preguntas sobre Google cloud. Diles que Camilo Rodriguez del Machine Learning Lab dijo ¡hola!
Si todo salió bien y tu tarjeta de crédito fue aceptada, deberías ver una pantalla de bienvenida y el panel de la consola de Google Cloud.
Ahora, antes de comenzar, necesitas crear un nuevo proyecto.haz clic aquí
Crea un nuevo proyecto.
Dale un nombre. Solo puedes usar letras y números. Decidí nombrar mi proyecto "can-i-hug-it", ya que es representativo de lo que quiero lograr.
Tu nuevo proyecto ahora debería estar visible en el tablero del administrador de recursos. Si no es así, espera unos momentos y actualiza tu navegador.
Ahora necesitas habilitar la facturación para tu proyecto. Normalmente, este paso se realiza automáticamente si solo tienes una cuenta de facturación y eres el administrador de facturación, pero solo verifica nuevamente para asegurarte.
Recuerda que solo se te cobrará si superas el crédito gratuito de $ 300.
Para esto, haz clic en el menú derecho del proyecto. Haz clic en "facturación".
Tu proyecto debería aparecer aquí, si no, ve a esta página de Google para leer las instrucciones sobre cómo habilitar la facturación para tus proyectos.
Recuerda que, en cualquier momento, puedes deshabilitar la facturación de tu proyecto, pero es probable que lo rompas y no `puedas volver a utilizar las funcionalidades hasta que vuelvas a habilitar la facturación.
Si todo está bien, haz clic en el botón grande de la parte superior izquierda "Google Cloud Platform" para volver al panel de inicio.
Ahora, deberás asegurarse de que se activaron un par de APIs necesarias para construir tu clasificador de imágenes.
Normalmente, estas API ya están activadas cuando creaste el proyecto, pero para asegurarte de que lo están, haz clic en "Ir a la descripción general de APIs".
Es posible que recibas un mensaje que dice que no tienes permiso para ver los servicios habilitados en este proyecto, aunque seas el administrador.
Esto es definitivamente un error de Google Cloud en Internet Explorer, pero no le prestes mucha atención. Cambié mi navegador a Chrome y de repente funcionó.
Normalmente, las tres API que necesitas ya están habilitadas como en la captura de pantalla anterior. Pero si este no es el caso, puedes habilitarlas haciendo clic en el botón "habilitar API y servicios".
Deberías ver una biblioteca de APIs. Escribe los nombres de estas APIs una por una.
La biblioteca completará automáticamente los nombres.
- Google Cloud Storage
- Google AutoML
- Google Cloud storage json
Asegúrate de que las tres APIs mencionadas anteriormente estén activadas o actívalas ahora.
Ahora que estás listo, finalmente puedes comenzar a construir tu clasificador de imágenes.
Pero primero, deberás subir tus imágenes a google cloud. Vuelve al panel y haz clic en "storage" y luego en "browser"
Deberás crear un "bucket". Un bucket es simplemente una carpeta en Google Cloud donde puedes almacenar archivos y documentos. Un poco como Dropbox. Hazclic en "crear bucket"
Dale un nombre (debe ser único), selecciona tu región y deja intactas todas las otras opciones. Haz clic en "crear"
Ahora que tienes tu bucket, puedes subir las imágenes que descargaste en tu computadora en el artículo anterior de este tutorial. Te recomiendo que crees dos carpetas. Uno para el conjunto de datos "hug" y otro para el conjunto de datos "not_hug".
Ahora simplemente ve a la carpeta "hug" y carga tus imágenes de "hug" haciendo clic en "cargar archivos".
Puedes subir varias imágenes al mismo tiempo, haciendo clic en CTRL + E en tu explorador y luego haciendo clic en "abrir".
Si tienes 1000 imágenes en tu dataset "hug", dependiendo de tu conexión a Internet, este proceso puede demorar aproximadamente de 5 a 20 minutos. Verás una imagen en la parte inferior de tu navegador que muestra el proceso de la operación.
Si por alguna razón, la operación se interrumpe, no te preocupes. Regresa a la carpeta del bucket y verifica que el nombre del archivo que fue importado de último, afortunadamente, todos tienen números del 1 al 1000. Continúa desde ese punto.
Cuando hayas terminado de subir las imágenes a la carpeta "hug", repite el mismo proceso nuevamente en la carpeta "not_hug" con las imágenes "not_hug".
Y ve a tomar una taza de café mientras esperas que las imágenes se suban al cloud.
¡¡Buen trabajo!! Tu dataset ahora está en la nube.
Ahora que tus imágenes están en Google Cloud, puedes entrenar tu modelo. Para esto, deberás acceder a AutoML. Google tiene una buena interfaz de usuario a la que puedes acceder haciendo clic aquí.
Tendrás que proporcionar AutoML algunos permisos, antes de usarlo.
Selecciona tu proyecto y haz clic en "continuar".
Es probable que se te vuelva a solicitar que habilites la facturación y actives las APIs. Simplemente haz clic en el botón de facturación. Abrirá una nueva pestaña en tu navegador que luego podrás cerrar.
Si haces clic en el segundo botón, podrás continuar.
Crea un dataset, asígnale un nombre y marca la opción que dice que importarás las imágenes más adelante.
Esta interfaz de usuario de Google todavía está en Beta y tiene algunas fallas. Por ejemplo, creó automáticamente un segundo "bucket" de almacenamiento en el cloud de google, diferente al que usamos antes y vinculó el proyecto clasificador a ese nuevo bucket. No te preocupes, transferiremos las imágenes de un bucket a otro y te sentirás como un experto ingeniero devops :)
Abre una nueva pestaña y ve al panel de control en el menú de almacenamiento, haz clic en el botón "transferir".
Ahora haz clic en "crear transferencia"
Ahora debes especificar que deseas mover los archivos del bucket anterior al bucket recién creado. Entonces debes seleccionar el origen y el destino.
También asegúrate de eliminar los datos del origen una vez que se transfieran a su destino (para evitar duplicados) y ejecuta la tarea ahora.
En mi caso, la operación duró menos de 45 segundos. Eso es bastante impresionante, ya que Google estaba moviendo 2000 archivos de un datacenter en Europa a un datacenter en los Estados Unidos. ¡Muy rápido si me preguntas!
Si quiere asegurarte de que la operación fue exitosa, simplemente ve y explore el nuevo bucket. Verás las dos carpetas con las imágenes allí.
De acuerdo, tus imágenes están en el buen bucket, pero el modelo aún no sabe que están allí. Ahora necesitarás crear un archivo .csv donde especificarás la ubicación de cada imagen, junto con la etiqueta que tiene.
Abre Microsoft Excel o incluso mejor, Google sheets y crea un documento nuevo.
Deja ese documento abierto por el momento y ve a la carpeta en tu computadora donde tienes las imágenes de "hug".
Asegúrate de ver los archivos como una lista y no sus miniaturas.
Ahora selecciona todos los archivos con CTRL + E, presione SHIFT y haz clic en el botón derecho del mouse. Deberías ver una opción "copiar como ruta de acceso" como a continuación.
Regresa a tu archivo de Excel y pega los nombres de tus archivos.
Deberías tener 1000 filas en tu archivo y si haces lo mismo con los archivos "not_hug" terminarás con 2000 filas en tu archivo Excel.
Ahora debes reemplazar el nombre de las rutas de las imágenes en tu computadora con la ruta desde el bucket en el cloud.
La ruta en el cloud comienza con "gs: //" y luego tiene el nombre del bucket y luego el nombre de la carpeta separados por "/"
en mi caso específico, el camino donde están las imágenes de "hug" es así:
"gs://can-i-hug-it-215408-vcm/hug/"
Entonces, en el archivo Excel, escribe CTRL + F y luego "más opciones".
Busca y reemplaza todas las rutas locales de tu computadora con las rutas de bucket en la nube.
El objetivo es reemplazar todas las filas de esta manera:
C:\Users\Camilo\Documents\MLAB\programas\can_i_hug_it\dataset\hug\sample(14).jpg
en algo como esto:
gs://can-i-hug-it-215408-vcm/abrazo/muestra(14).jpg
que representa la ubicación del archivo en google cloud.
Por ahora, tu archivo de Excel debería verse así:
Ahora, escribe el nombre de las etiquetas en la segunda columna y cópialo en todas las filas. En mi ejemplo, la etiqueta de todas estas imágenes es "hug"
Ahora, en el mismo archivo justo después de la última línea, repite el mismo proceso con las imágenes "not_hug". Recuerda que están en una ruta diferente, tanto en tu computadora como en el bucket de Google. Además, asígnales a todos los archivos la etiqueta "not_hug".
Por ahora, si hiciste todo correctamente, tu archivo Excel debería verse así y deberías tener 2000 filas en tu archivo:
Ahora necesitas exportar tu archivo de Excel como un archivo .csv. Haz clic en "archivo" y luego "exportar a csv".
Una vez que hayas creado el archivo, ve a la carpeta de descargas en tu computadora y cambia el nombre del archivo a "labels.csv".
Ahora ve a tu bucket e importa el archivo que acabas de crear, ya deberías saber cómo subir archivos al bucket.
Una vez que hagas eso, el archivo debería estar visible en tu bucket.
Bien, ahora que tiene tus imágenes y el archivo con las rutas de cada imagen, junto con las etiquetas, regresa a la interfaz de usuario de AutoML Vision y haz clic en "agregar imágenes" y "seleccionar el archivo csv en el cloud storage"
Selecciona la ruta en la que guardaste tu archivo .csv y haz clic en "Aceptar".
Esto importará las imágenes en el proyecto AutoML.
Esta operación probablemente demorará unos minutos, ya que google está escaneando tu archivo .csv, importando cada imagen que tiene en tu bucket y asignándole la etiqueta que decidiste darle.
Aprovecha la oportunidad para ir y tomarte otro café :)
Una vez completado, deberías verse algo como esto ...
Como puedes ver, no todas mis imágenes fueron importadas, faltan algunas.
Esto no es importante, como expliqué antes, este servicio todavía está en Beta.
Ok, ahora que tienes todas las imágenes con las etiquetas correctas importadas en AutoML, ahora necesitas entrenar el modelo. Normalmente, este es el paso más difícil en el proceso y los profesionales de machine learning pueden pasar semanas o incluso meses haciendo esta parte. Pero gracias a Google Cloud AutoML, ahora puedes entrenar tu modelo simplemente haciendo clic en el botón "entrenar"
En este punto, tienes la opción de asignar un presupuesto de entrenamiento a tu modelo.
Cuanto más tiempo dediques a entrenar a tu modelo, más preciso será.
Para esta cantidad de imágenes, sin embargo, 10 minutos deberían ser más que suficientes. Además, la primera hora de entrenamiento es de hecho gratis :)
Haz clic en iniciar entrenamiento.
Google te dirá que está entrenando tu modelo y que puedes cerrar la ventana si lo deseas.
¡Dice que te enviará un correo electrónico tan pronto como se complete el entrenamiento!
Una vez que se complete el entrenamiento, puedes regresar a tu modelo y ver los resultados del entrenamiento en la pestaña "evaluar". En mi caso, los resultados son bastante impresionantes !!
No voy a entrar en detalles explicando estos resultados, lo dejaré para otro artículo, pero mi modelo es preciso hasta el 98,5%, esto es realmente increíble ...
Ahora a la parte buena. ¡Debes probar tu modelo!
Encuentra una imagen en Internet de algo que puedas abrazar y algo que no debas abrazar. Obviamente, usa imágenes que NO HAS USADO en tu dataset de entrenamiento.
Puedes probar tu modelo "prediciendo" qué etiqueta le dará tu modelo a la nueva imagen.
Ahora pruebalo con algo que no puedes abrazar.
Funcionó, ¡bien hecho!
Creaste un programa funcional que utiliza inteligencia artificial para analizar imágenes y decirte si deberían abrazarse o no. ¡Y lo mejor de todo es que hiciste todo sin programar!
Ahora puedes vender esta tecnología a los fabricantes de cámaras para bebés de todo el mundo, convertirte en millonario y luego invitarme a tu isla privada :)
El machine learning es un campo increíble en el que se progresa mucho todos los días. Si te interesa comprender cómo funciona el machine learning y qué está haciendo google en detalle, por favor contáctame o simplemente déjame un comentario a continuación.
Muchas gracias por leer todo este tutorial, espero que lo hayas disfrutado tanto como yo.
- Inicie sesión para enviar comentarios