How to build smarter Android apps with on-device Machine Learning

[REPRODUCIENDO MÚSICA] THOMAS EZAN: Hola,
mi nombre es Thomas. Y soy un
ingeniero de relaciones con desarrolladores de Android que trabaja en el aprendizaje automático. Hoy, voy a hablar
sobre los últimos desarrollos de aprendizaje automático en Android. Le mostraré cómo
puede beneficiarse de nuestra última oferta. Y veremos
nuevas formas de aplicar el aprendizaje automático en el dispositivo
a medida que los dispositivos móviles se vuelvan más potentes. El aprendizaje automático en el dispositivo tiene
ventajas sobre el procesamiento de datos en la nube. En primer lugar, permite una latencia baja
al eliminar un viaje de ida y vuelta al servidor. También te permite procesar los
datos del usuario mientras los mantienes en el dispositivo. Y puede proporcionar
su función sin conexión, ya que no necesita una
conexión a un servidor para ejecutar la inferencia. Finalmente, al ejecutar
la inferencia localmente, reducirá su factura de la nube.

Echemos un vistazo a un
par de experiencias habilitadas por ML en el dispositivo. Primero, la nueva experiencia de Lens AR
Translate es un ejemplo perfecto de los
beneficios del aprendizaje automático en el dispositivo . Utiliza un modelo para predecir los
píxeles detrás del texto eliminado, lo que le permite
recrear la imagen. De modo que el texto traducido
aparece perfectamente integrado como si fuera parte de
la imagen original. Aquí, la baja latencia habilitada al
ejecutar la inferencia en el dispositivo es clave. En segundo lugar, el
equipo de Android en India está creando una solución para
digitalizar documentos importantes escaneando y extrayendo
su información clave. Aprovecha la API de
reconocimiento de texto en el dispositivo de ML Kit y otros
modelos de clasificación de ML en el dispositivo para clasificar los
documentos, por ejemplo, en este caso, un pasaporte
y extraer campos clave. Todo este procesamiento
se realiza en el dispositivo. Hoy, tiene
dos opciones para agregar aprendizaje automático en Android: primero, ML Kit. Es una gran manera de empezar. Ofrece una amplia
gama de casos de uso de ML empaquetados en API simples. Ahora, si tiene una experiencia de ML
y creó su propio modelo de ML personalizado
para su caso de uso, entonces puede usar la
pila de ML personalizada de Android.

Construido sobre
TensorFlow Lite, le permite implementar
funciones habilitadas para ML en Android y mantener el control sobre el
proceso de inferencia y la experiencia del usuario. Tenemos emocionantes actualizaciones para
compartir tanto para el ML Kit como para el ML Stack personalizado de Android. Comencemos con el Kit ML
y entreguémoslo a David. [REPRODUCIENDO MÚSICA] DAVID LLOPIS: Hola, soy David,
Product Manager ML Kit. Como dijo Thomas, ML Kit permite
funciones de ML llave en mano en su aplicación sin necesidad de experiencia en ML.

Echemos un vistazo a las
novedades de ML Kit. Durante el año pasado,
actualizamos algunas de nuestras API existentes mejorando el
rendimiento móvil, por ejemplo, aumentamos el
rendimiento de los códigos de barras en un 17 % al ofrecer muchas de estas
API a través de Google Play Services, para que no tenga que agruparlas
y aumenta el tamaño de tu APK. Por ejemplo, el
reconocimiento de texto ahora está disponible en cinco scripts
a través de Google Play Services. Y al agregar nuevas
funcionalidades, por ejemplo, la clasificación de gestos
en tinta digital, también trabajamos constantemente
en nuevas API. Lanzamos el año pasado, Face
Mesh Embedder, un modelo muy rápido optimizado para la captura de estilo selfie
para aplicaciones como videoconferencias,
AR o flujos de carga de selfies. Y estamos trabajando en una
nueva API de escaneo de documentos. Echemos un vistazo más de cerca
a algunas de estas API.

Para el código de barras, no
solo mejoramos el rendimiento de nuestro modelo en un 17 %, sino que
también agregamos una nueva opción para que use un flujo de interfaz de usuario proporcionado
por Google en lugar de tener que crear uno propio. Este es el escáner de código de Google. Y acabamos de pasarlo
de beta a GA. Con Google Code
Scanner, obtiene acceso a un flujo de alta calidad impulsado
por el modelo de código de barras de Google y una interfaz de usuario proporcionada
que es consistente en todo el ecosistema.

Este flujo se entrega
a través de Google Play Services, que tiene un bajo impacto en el tamaño de APK, y puede usarlo con
solo unas pocas líneas de código. Finalmente, este flujo ayuda a
aumentar la privacidad del usuario. Una vez que lo activa, el
usuario señala un código de barras. Y el flujo solo devuelve
el valor de escaneo del código de barras.

Dado que no está procesando
la imagen o la cámara, no necesita solicitar el
permiso de la cámara, lo que da como resultado una mayor privacidad
y seguridad para el usuario. También incorporamos una
mejora importante a nuestra API de reconocimiento de texto
y la lanzamos a través de Google Play Services. Ahora, puede extraer
texto de imágenes no solo en idiomas latinos,
sino también en cuatro nuevos alfabetos: chino, devanagari,
japonés y coreano. Juntos, estos scripts
cubren más de 100 idiomas. También mejoramos la
latencia y la precisión de los dispositivos móviles y agregamos algunas características nuevas.

Ahora puede obtener la
puntuación de confianza, la información de rotación y el reconocimiento a
nivel de símbolo o carácter, en lugar de anteriormente solo
a nivel de palabra. Esto puede ser útil, por
ejemplo, en chino, donde un carácter puede ser una palabra. Por último, pero no menos importante, quería
hablar sobre la nueva API de Android que estamos construyendo llamada
Escáner de documentos. La digitalización de documentos físicos
es un flujo de usuario muy común. Los usuarios recurren a su teléfono para
digitalizar, almacenar y recuperar documentos importantes, por ejemplo, escanear su
recibo de almuerzo, su tarjeta de vacunación, la tarea de sus hijos. Sin embargo, no había una
solución de Google para esto. Y cada aplicación tuvo que
crear la suya propia, lo que condujo a experiencias de usuario fragmentadas.

Es por eso que
creamos un flujo de alta calidad que se puede usar
de manera uniforme en Android con la interfaz de usuario proporcionada. Este flujo se entrega
a través de Google Play Services y es muy fácil de usar. Puede desencadenar el flujo. Y el usuario tendrá el control
de escanear sus documentos en modo automático o manual,
recortarlos, agregar filtros y luego enviarlos de
regreso a su aplicación. Y como se hace
en el dispositivo y el usuario decide qué archivos
devolver a la aplicación, no es necesario que pida
permiso a la cámara. Lanzaremos este
flujo a finales de este año en el cuarto trimestre, pero queríamos brindarle
una vista previa hoy para que pueda comenzar a pensar
cómo incluirlo en su aplicación. Con eso, se
lo devolveré a Thomas. [REPRODUCIENDO MÚSICA] THOMAS EZAN: Gracias, David. Hablemos ahora sobre cómo
integrar su propio modelo de aprendizaje automático personalizado
en su aplicación de Android. Escuchamos sus comentarios. Y sabemos que ejecutar la
inferencia de ML personalizada en Android a veces puede ser un desafío.

Tienes que lidiar con un
vasto ecosistema de dispositivos. E identificar la mejor
configuración de aceleración para su modelo puede ser difícil. Así que hoy voy a hablar
sobre el ML Stack personalizado de Android , un conjunto de componentes para
hacer que el desarrollo de características ML personalizadas sea más fácil y rápido. Primero, integramos TensorFlow
Lite en Google Play Services como el motor de inferencia oficial
para Android. En segundo lugar, invertimos en
delegados de aceleración de hardware para aprovechar fácilmente las GPU. Y finalmente,
creamos una nueva API para ayudarlo a encontrar la configuración de
aceleración de hardware óptima para su modelo
en tiempo de ejecución, el Servicio de aceleración. Estoy muy emocionado de compartir, en
detalle, el progreso que hicimos.

Comencemos con TensorFlow
Lite en Google Play Services. TensorFlow Lite en
Google Play Services permite al desarrollador usar
TensorFlow Lite para Android sin tener que incluirlo
en su aplicación. Como beneficio, el
tamaño binario de la aplicación se reducirá hasta en
cinco megabytes. Y a medida que Google Play Services obtiene las nuevas
versiones estables de TensorFlow Lite
, los desarrolladores se beneficiarán de las
mejoras de rendimiento sin cambios en el código. Finalmente, TensorFlow Lite
en Google Play Services es el
motor de inferencia de aprendizaje automático oficial en Android, lo que
significa que se crearán nuevas API y servicios de la
pila ML personalizada de Android . Desde su lanzamiento en
septiembre del año pasado, hemos visto una fuerte adopción. Hoy, atiende a más de
mil millones de usuarios mensualmente. Y decenas de miles de
aplicaciones confían en él. Echemos un vistazo
a algunos de ellos. Internamente, Google está
aprovechando activamente TensorFlow Lite en Google Play Services para
resolver problemas técnicos que antes no tenían solución.

¿ Alguna vez ha
pedido un viaje compartido que llegó en el
lado equivocado de la calle? La
precisión del GPS del teléfono inteligente tiende a disminuir en
áreas urbanas densas donde el dispositivo no tiene
una línea de visión directa con los satélites. El proyecto Bluesky
utilizado en Android 8 y versiones posteriores utiliza aprendizaje automático
y representaciones de edificios en 3D para modelar los efectos
del reflejo y aumentar la precisión
del GPS en cañones urbanos y, por ejemplo, resolver el
problema del lado equivocado de la calle.

Los
desarrolladores de Android fuera de Google, como Wise, también utilizan TensorFlow Lite en Google Play Services. Wise es una empresa con sede en el Reino Unido que
opera a nivel mundial y permite pagos transfronterizos. Wise usa TensorFlow
Lite con Play Services para agilizar el
proceso de registro. A medida que los nuevos usuarios toman fotografías
de sus documentos de identidad para abrir una cuenta, el
modelo de aprendizaje automático personalizado de Wise puede evaluar la
calidad de las imágenes y proporcionar comentarios instantáneos a
los usuarios para enmarcarlas correctamente o tomar una foto menos borrosa
, por ejemplo.

Verificar la identidad de un usuario
es uno de los mayores costos para el negocio de Wise. Por lo tanto, garantizar que los usuarios se verifiquen
fácilmente y en el primer intento no solo brinda una
excelente experiencia, sino que también reduce
los costos para Wise. El equipo de ML Kit de Google también
usa TensorFlow Lite en Google Play Services internamente. Como consecuencia, muchos
desarrolladores de Android que usan SDK de ML Kit, como la
API de escaneo de código de barras, la identificación de idioma o
Smart Reply, también confían indirectamente en TensorFlow
Lite en Google Play Services. Por último, pero no menos importante,
también lo utiliza Stripe, una empresa de infraestructura de pago. Construyeron un SDK de código abierto
para la verificación de identidad. Stripe ejecuta dos
modelos de clasificación de imágenes diferentes, para verificar el documento de identidad del usuario
y para validar la calidad de una selfie que
confirma la identidad del usuario. Al cambiar a TensorFlow
Lite en Google Play Services, Stripe redujo el tamaño del
SDK ya muy bien optimizado en aproximadamente 1,2 megabytes.

Si desea integrar
TensorFlow Lite en Google Play Services, la API es casi
la misma que la versión incluida de TensorFlow Lite. Por lo tanto, la migración solo debería
requerir cambios menores en el código. Para obtener más información al respecto, consulte
la documentación de TensorFlow en tensorflow.org. Ahora, hablemos de la
aceleración de hardware. En general, los
desarrolladores de aplicaciones realmente no necesitan pensar en qué chip
ejecutará su código.

La mayor parte del procesamiento
ocurre en la CPU, con la excepción de la
representación de gráficos manejada por la GPU. Es diferente de las
funciones de aprendizaje automático. De hecho, la inferencia de ML se
beneficia enormemente al aprovechar los
chips especializados, como GPU, DSP o GPU para teléfonos Pixel. Lo llamamos
aceleración de hardware. Al probar un
modelo de detección de Pose en Pixel 6, notamos que la inferencia
era un 180 % más rápida en la GPU que en la CPU y hasta un 200 % más rápida
en la GPU de Pixel 6, lo que liberaba la CPU
para otras funciones.

Los delegados de TensorFlow Lite están
integrados con TensorFlow Lite en Google Play Services. Y son la mejor manera de
implementar la aceleración de hardware en su aplicación. Tanto los delegados de GPU
como los delegados de API [INAUDIBLE] para admitir algunos
DSP y Pixel TPU están disponibles a través de
Google Play Services. A diferencia de TensorFlow Lite
y Google Play Services, no tiene que
agruparlos en su aplicación y aumentar su tamaño binario. Y se beneficiará
de las actualizaciones de OTA, ya que se publican nuevas versiones de
los delegados sin cambios de código.

También estamos trabajando activamente
con socios de hardware para traer más delegados
a Google Play Services. Entonces, para obtener más información sobre los
delegados de aceleración y cómo integrarlos
a su aplicación, vaya a la
página de documentación en TensorFlow. Como vimos antes, la
aceleración de hardware puede mejorar drásticamente el
rendimiento de la inferencia, hasta 10 veces
más rápido en algunos casos. Y como consecuencia,
puede mejorar significativamente la experiencia del usuario de
su aplicación habilitada para ML. Sin embargo, identificar la configuración de
aceleración de hardware correcta para cada dispositivo
es un desafío dada la variedad de hardware en Android.

El
servicio de aceleración es una nueva API construida sobre TensorFlow Lite
en Google Play Services que le permite elegir la configuración de
aceleración de hardware óptima para cada dispositivo. Así es como funciona. Cuando el usuario abra su
aplicación por primera vez, llamará a la
API de Acceleration Service y pasará su modelo ML, algunos
datos de muestra y los resultados de inferencia esperados. El
servicio de aceleración luego ejecutará un
punto de referencia de inferencia de ML interno con su modelo y
muestra de datos en los chips disponibles en el dispositivo y
devolverá un informe de rendimiento y una
recomendación de configuración de hardware que puede aplicar directamente
a su intérprete de TensorFlow Lite . Hoy, admite la
inferencia en CPU y GPU. Y agregaremos soporte
para más chips en el futuro. Como se mencionó anteriormente,
el Servicio de Aceleración ya está disponible en versión beta. Entonces, si desea beneficiarse
de la aceleración de hardware sin tener que preocuparse por la
latencia, la variación de la estabilidad, le recomendamos
que lo pruebe.

Para obtener más información al respecto
e integrarlo a su aplicación, vaya
a la página de documentación en tensorflow.org. Cubrimos mucho hoy. Para resumir, si desea
agregar funciones de ML sin tener que preocuparse por entrenar su
propio modelo, comience con los kits de ML. Si tiene un
modelo de ML personalizado o desea controlar el
proceso de inferencia o la experiencia del usuario, eche un vistazo a la
pila de ML personalizada de Android. No podemos esperar a ver
lo que construirás. ML en Android está en
constante evolución. Entonces, para continuar aprendiendo
sobre esto y mantenerse actualizado, visite d.android.com/ml. Gracias. [REPRODUCIENDO MÚSICA].