Básicamente lo que intento hacer es una app que identifique que son frutas y que no son frutas, con la ayuda de Google Vision Cloud para analizar las imagenes y React Native como framework de la aplicación.
1- Es necesario instalar o ya tener instalado:
Node y npm ,necesario instalar módulo npm create-react-native-app fuera del shell de node.
Obtener Google Cloud platform Api key para desarrollador
Ademas para probar la app es necesario un movil Android o IOS.
Instalación módulo react native app
Investigando por la red supe que en las configuraciones previas para realizar una app como esta es necesario usar o generar React Native, instalamos Node junto con npm, npm ya viene en la instalación de Node por lo tanto no hace falta instalarlo, tanto Node como npm son necesarios para instalar unos paquetes llamados Gulp, tambien instalo Expo CLI (desde código QR) aunque tambien puedes usar e instalar Ignite.
Google Vision Cloud es un servicio de analisis de imagenes de la plataforma Google Cloud, todo ello funciona con algoritmos complejos, pero este trabajo lo facilita la API de Google Cloud Vision, desde el siguiente enlace puedes leer la documentación al respecto es super útil e interesante leer la sección llamada "Detecta varios objetos".
2- Usando el componente "Camera Expo":
He tenido que leer la documentación para comprender su uso y realizar algunas pruebas fallidas,
en este caso la documentación proporcionada es de gran ayuda para poder comprender como funciona cuando se quiere trabajar con fotografías . Leer documentación
La aplicación funcionará de la siguiente manera:
-Obtener permiso de acceso a la cámara del dispositivo por parte del usuario.
-Captura de la imagen, usando "Expo Camera" y convertirla en Base64(string)
-Enviar la solicitud (post) a Google Cloud Vision para que realize el analisis.
-Mostrar una pantalla al usuario (UI) si el resultado es exitoso o es fallido.
Para obtener permiso de la cámara, comenzamos importando lo siguiente:
El estado de la cámara lo establecemos como null solicitando al usuario el acceso
Si el usuario niega el acceso , mostramos un mensaje.
Captura de la imagen con "Expo Camera" y convertirla en Base64.
Primeramente se tiene que crear un método para capturar takePicture, esta función capturará una imagen y la convierte en un string el valor de ese string se le pasa a otra función que la llamamos detectLabels. La función detectLabels basicamente lo que hace es enviar una solicitud a Google Cloud Vision para que analize la imagen.
Expo tiene un conjunto de iconos de tipo vector que se instala por defecto cuando se crea la aplicación. Hay un icono llamado ios-radio-button-on que es el que elijo como botón de la cámara, pasamos el método o función takePicture al evento OnPress.
Envio de la solicitud a Google Vision Cloud para el análisis de la imágen, se detectarán etiquetas para la imágen capturada a través de la api rest, se estableze un tipo LABEL_DETECTION y maxResult en 10.
Cuando Google Vision termine de analizar la imágen la devuelve como objeto JSon con varias anotaciones de entidades.
Ahora es necesario mostrar al usuario el resultado obtenido en el análisis, el siguiente paso es crear una UI, donde se muestre si el alimento fotografiado es una fruta o no lo es. Saludos.
No hay comentarios:
Publicar un comentario