Primeros pasos con Firebase ML Kit para Android  

  RSS
admin
(@admin)
Miembro Admin

Gracias a TensorFlow Mobile y TensorFlow Lite, incrustar y usar modelos profundos dentro de las aplicaciones de Android se ha vuelto muy fácil. Sin embargo, diseñar y entrenar los modelos aún requiere mucha habilidad, tiempo y esfuerzo, por no mencionar el poder de la computación. Por esta razón, la mayoría de los desarrolladores informales no están entusiasmados con la adición de capacidades de aprendizaje automático a sus aplicaciones. Con el kit Firebase ML, Google espera cambiar eso.

Firebase ML Kit es una biblioteca que le permite sin esfuerzo, y con un código mínimo, usar una variedad de modelos profundos altamente precisos y pre-entrenados en sus aplicaciones de Android. La mayoría de los modelos que ofrece están disponibles localmente y en Google Cloud.

Actualmente, los modelos están limitados solo a tareas relacionadas con la visión artificial, como el reconocimiento óptico de caracteres, el escaneo de códigos de barras y la detección de objetos.

En este tutorial, te mostraré cómo agregar Firebase ML Kit a un proyecto de Android Studio y usar algunas de sus API básicas.

Prerrequisitos

Antes de continuar, asegúrese de tener acceso a lo siguiente:

  • La última versión de Android Studio
  • Un dispositivo o emulador que ejecuta la API de Android
  • Una cuenta Firebase
  • Una cuenta de Google Cloud

1. Crea un Proyecto Firebase

Para habilitar los servicios Firebase para su aplicación, debe crear un proyecto Firebase para ella. Así que inicie sesión en la consola Firebase y, en la pantalla de bienvenida, presione el botón Add project.

En el cuadro de diálogo que aparece, asigne al proyecto un nombre que sea fácil de recordar y presione el botón CREATE PROJECT.

Después de varios segundos, debería ver una notificación que le indica que el nuevo proyecto está listo. Pulse el botón Continue para continuar.

En la siguiente pantalla, vaya a la sección Develop y haga clic en el enlace del Kit ML para ver todos los servicios que ofrece el Kit ML.

En este tutorial, usaremos tres servicios: reconocimiento de texto, detección de rostros y etiquetado de imágenes. No tiene que seguir ningún paso para habilitarlos explícitamente si desea trabajar solo con los modelos locales que vienen con el Kit ML. En este tutorial, sin embargo, usaremos modelos locales y basados en la nube. Entonces haga clic en el enlace de Cloud API usage a continuación.

Ahora será llevado a la consola de Google Cloud, donde puede simplemente presionar el botón Enable que se muestra en la sección de API de Cloud Vision para activar los modelos basados en la nube. Sin embargo, tenga en cuenta que esto solo funcionará si tiene la facturación habilitada para su cuenta de Google Cloud.

2. Configure su proyecto de Android Studio

Antes de comenzar a utilizar las API del kit Firebase ML, debe establecer una conexión entre su proyecto de Android Studio y el proyecto de Firebase que creó en el paso anterior. Para hacerlo, abra el panel del Asistente de Firebase yendo a Tools > Firebase.

El Asistente de Firebase no tiene soporte para el Kit ML actualmente. Sin embargo, al usarlo para agregar Firebase Analytics, aún puede evitar establecer la conexión manualmente. Por lo tanto, expanda la sección Analytics, haga clic en el enlace Log an Analytics event y presione el botón Connect to Firebase.

En el cuadro de diálogo que aparece, asegúrate de seleccionar la opción Choose an existing Firebase or Google project y elige el proyecto Firebase que creaste:

Presione el botón Connect to Firebase a continuación. En este punto, el Asistente descargará automáticamente un archivo google-services.json, que contiene claves de API e ID de proyectos, y lo agregará al app módulo.

Una vez que la conexión se haya establecido correctamente, asegúrese de presionar el botón Add Analytics to your app para agregar varias dependencias básicas de Firebase al archivo build.gradle de su app módulo.

A continuación, para agregar la biblioteca del kit ML, abra el archivo build.gradle y escriba las siguientes dependencias implementation:

implementation 'com.google.firebase:firebase-ml-vision:16.0.0'
implementation 'com.google.firebase:firebase-ml-vision-image-label-model:15.0.0'

Para simplificar el proceso de descarga de imágenes de Internet y mostrarlas en su aplicación, le sugiero que también agregue una dependencia para la biblioteca de Picasso.

implementation 'com.squareup.picasso:picasso:2.5.2'

Además, agregue Anko como una dependencia para asegurarse de que su código Kotlin sea conciso e intuitivo.

implementation 'org.jetbrains.anko:anko-commons:0.10.5'

De forma predeterminada, los modelos locales de Firebase ML Kit se descargan automáticamente en los dispositivos de sus usuarios solo cuando es necesario. Sin embargo, si desea que se descarguen en cuanto se instale la aplicación, agregue el siguiente código al archivo AndroidManifest.xml:

<meta-data
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
android:value="text,face,label" />

3. Definir un diseño

En este tutorial, crearemos una aplicación que permita a los usuarios escribir URL de imágenes y realizar operaciones de reconocimiento de texto, detección de rostros y etiquetado de imágenes en ellos. Por lo tanto, el diseño de la aplicación debe tener un EditText widget, donde los usuarios pueden escribir las URL, y tres Button widgets, que les permiten elegir qué operación desean realizar.

Opcionalmente, puede incluir un ImageView widget para mostrar las imágenes.

Si coloca todos los widgets anteriores utilizando un RelativeLayout widget, su archivo XML de diseño debería tener este aspecto:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Image URL"
android:id="@+id/image_url_field"
android:imeOptions="actionDone"
android:inputType="textUri"/>

<ImageView
android:layout_width="match_parent"
android:layout_height="300dp"
android:id="@+id/image_holder"
android:layout_below="@+id/image_url_field"
android:layout_marginTop="10dp"
android:scaleType="centerInside"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.33"
android:text="Text"
android:onClick="recognizeText"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.33"
android:text="Faces"
android:onClick="detectFaces"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.33"
android:text="Labels"
android:onClick="generateLabels"/>
</LinearLayout>

</RelativeLayout>

Aquí hay una representación más visual del diseño:

Para continuar viendo el resto de contenido por favor Regístrate o Inicia Sección

This topic was modified hace 4 meses 7 times by admin
This topic was modified hace 2 meses by admin
ResponderCitar
Respondido : 05/10/2018 6:00 pm
Armando
(@armando)
Active Member

Buen tutorial...

¿Puedes hacer uno enfocado a tecnologías web?

ResponderCitar
Respondido : 05/10/2018 6:10 pm
admin
(@admin)
Miembro Admin

Hola @armando, mas adelante considerare la posibilidad de realizar un tutorial enfocado a tecnologías web.

Gracias por tu comentario.

ResponderCitar
Respondido : 06/10/2018 2:41 am
admin
(@admin)
Miembro Admin
Respondido por: Armando

Buen tutorial...

¿Puedes hacer uno enfocado a tecnologías web?

En unos días voy a desarrollar un para web.

ResponderCitar
Respondido : 13/10/2018 1:20 am
Share:
  
Trabajando

Por favor Iniciar Sesión o Registro