Cómo agregar Machine Learning a tus aplicaciones de Android

Autor: Peter Berry
Fecha De Creación: 16 Agosto 2021
Fecha De Actualización: 1 Mes De Julio 2024
Anonim
Cómo agregar Machine Learning a tus aplicaciones de Android - Aplicaciones
Cómo agregar Machine Learning a tus aplicaciones de Android - Aplicaciones

Contenido


El aprendizaje automático (ML) puede ayudarlo a crear experiencias innovadoras, convincentes y únicas para sus usuarios móviles.

Una vez que haya dominado ML, puede usarlo para crear una amplia gama de aplicaciones, incluidas las aplicaciones que organizan automáticamente las fotos en función de su tema, identifican y rastrean la cara de una persona a través de una transmisión en vivo, extraen texto de una imagen y mucho más .

¡Pero ML no es exactamente amigable para principiantes! Si desea mejorar sus aplicaciones de Android con potentes capacidades de aprendizaje automático, ¿dónde exactamente comienza?

En este artículo, proporcionaré una descripción general de un SDK (Kit de desarrollo de software) que promete poner el poder de ML a su alcance, incluso si tiene cero Experiencia de ML. Al final de este artículo, tendrá la base que necesita para comenzar a crear aplicaciones inteligentes, con tecnología ML, que sean capaces de etiquetar imágenes, escanear códigos de barras, reconocer rostros y puntos de referencia famosos, y realizar muchas otras tareas poderosas de ML.


Conozca el kit de aprendizaje automático de Google

Con el lanzamiento de tecnologías como TensorFlow y CloudVision, ML se está utilizando cada vez más, ¡pero estas tecnologías no son para los débiles de corazón! Por lo general, necesitará una comprensión profunda de las redes neuronales y el análisis de datos, solo para obtener empezado con una tecnología como TensorFlow.

Incluso si tú hacer tener cierta experiencia con ML, crear una aplicación móvil impulsada por el aprendizaje automático puede ser un proceso lento, complejo y costoso, que requiere que obtenga suficientes datos para entrenar sus propios modelos de ML y luego optimizar esos modelos de ML para que se ejecuten eficientemente en el entorno móvil Si usted es un desarrollador individual o tiene recursos limitados, puede que no sea posible poner en práctica sus conocimientos de ML.


ML Kit es el intento de Google de llevar el aprendizaje automático a las masas.

Bajo el capó, ML Kit agrupa varias potentes tecnologías de ML que normalmente requerirían un amplio conocimiento de ML, incluidas Cloud Vision, TensorFlow y la API de redes neuronales de Android. ML Kit combina estas tecnologías de ML especializadas con modelos pre-entrenados para casos de usos móviles comunes, que incluyen extraer texto de una imagen, escanear un código de barras e identificar el contenido de una foto.

Independientemente de si tiene algún conocimiento previo de ML, puede usar ML Kit para agregar potentes capacidades de aprendizaje automático a su Android y Aplicaciones de iOS: simplemente pase algunos datos a la parte correcta de ML Kit, como la API de reconocimiento de texto o identificación de idioma, y ​​esta API utilizará el aprendizaje automático para devolver una respuesta.

¿Cómo uso las API de ML Kit?

ML Kit se divide en varias API que se distribuyen como parte de la plataforma Firebase. Para usar cualquiera de las API de ML Kit, deberá crear una conexión entre su proyecto de Android Studio y el proyecto de Firebase correspondiente, y luego comunicarse con Firebase.

La mayoría de los modelos ML Kit están disponibles como modelos en el dispositivo que puede descargar y usar localmente, pero algunos modelos también están disponibles en la nube, lo que permite que su aplicación realice tareas basadas en ML a través de la conexión a Internet del dispositivo.

Cada enfoque tiene su propio conjunto único de fortalezas y debilidades, por lo que deberá decidir si el procesamiento local o remoto tiene más sentido para su aplicación en particular. Incluso podría agregar soporte para ambos modelos y luego permitir que sus usuarios decidan qué modelo usar en tiempo de ejecución. Alternativamente, puede configurar su aplicación para seleccionar el mejor modelo para las condiciones actuales, por ejemplo, solo usando el modelo basado en la nube cuando el dispositivo está conectado a Wi-Fi.

Si opta por el modelo local, las funciones de aprendizaje automático de su aplicación siempre estarán disponibles, independientemente de si el usuario tiene una conexión a Internet activa. Dado que todo el trabajo se realiza localmente, los modelos en el dispositivo son ideales cuando su aplicación necesita procesar grandes cantidades de datos rápidamente, por ejemplo, si está utilizando ML Kit para manipular una transmisión de video en vivo.

Mientras tanto, los modelos basados ​​en la nube suelen proporcionar una mayor precisión que sus homólogos en el dispositivo, ya que los modelos en la nube aprovechan el poder de la tecnología de aprendizaje automático de Google Cloud Platform. Por ejemplo, el modelo en el dispositivo de la API de etiquetado de imágenes incluye 400 etiquetas, pero el modelo de nube presenta más de 10,000 etiquetas.

Dependiendo de la API, también puede haber alguna funcionalidad que solo esté disponible en la nube, por ejemplo, la API de reconocimiento de texto solo puede identificar caracteres no latinos si usa su modelo basado en la nube.

Las API basadas en la nube solo están disponibles para proyectos de Firebase de nivel Blaze, por lo que deberá actualizar a un plan Blaze de pago por uso, antes de poder usar cualquiera de los modelos en la nube de ML Kit.

Si decide explorar los modelos en la nube, en el momento de la redacción, había una cuota gratuita disponible para todas las API de ML Kit. Si solo desea experimentar con el etiquetado de imágenes basado en la nube, puede actualizar su proyecto Firebase al plan Blaze, probar la API en menos de 1,000 imágenes y luego volver al plan Spark gratuito, sin que se le cobre. Sin embargo, los términos y condiciones tienen el desagradable hábito de cambiar con el tiempo, así que asegúrese de leer la letra pequeña antes de actualizar a Blaze, ¡solo para asegurarse de que no se vea afectado por facturas inesperadas!

Identifique texto en cualquier imagen, con la API de reconocimiento de texto

La API de reconocimiento de texto puede identificar, analizar y procesar texto de manera inteligente.

Puede usar esta API para crear aplicaciones que extraigan texto de una imagen, para que sus usuarios no tengan que perder el tiempo en la tediosa entrada manual de datos. Por ejemplo, puede usar la API de reconocimiento de texto para ayudar a sus usuarios a extraer y registrar la información de recibos, facturas, tarjetas de visita o incluso etiquetas nutricionales, simplemente tomando una foto del artículo en cuestión.

Incluso podría usar la API de reconocimiento de texto como el primer paso en una aplicación de traducción, donde el usuario toma una foto de un texto desconocido y la API extrae todo el texto de la imagen, listo para pasar a un servicio de traducción.

La API de reconocimiento de texto en el dispositivo de ML Kit puede identificar texto en cualquier idioma latino, mientras que su contraparte basada en la nube puede reconocer una mayor variedad de idiomas y caracteres, incluidos los caracteres chinos, japoneses y coreanos. El modelo basado en la nube también está optimizado para extraer texto escaso de imágenes y texto de documentos densamente empaquetados, lo que debe tener en cuenta al decidir qué modelo usar en su aplicación.

¿Quieres un poco de experiencia práctica con esta API? Luego, consulte nuestra guía paso a paso para crear una aplicación que pueda extraer el texto de cualquier imagen, utilizando la API de reconocimiento de texto.

Comprender el contenido de una imagen: la API de etiquetado de imágenes

La API de etiquetado de imágenes puede reconocer entidades en una imagen, incluidas ubicaciones, personas, productos y animales, sin la necesidad de metadatos contextuales adicionales. La API de etiquetado de imágenes devolverá información sobre las entidades detectadas en forma de etiquetas. Por ejemplo, en la siguiente captura de pantalla, proporcioné a la API una foto de la naturaleza y respondió con etiquetas como "Bosque" y "Río".

Esta capacidad de reconocer el contenido de una imagen puede ayudarlo a crear aplicaciones que etiqueten fotos en función de su tema; filtros que identifican automáticamente el contenido inapropiado enviado por el usuario y lo eliminan de su aplicación; o como base para la funcionalidad de búsqueda avanzada.

Muchas de las API de ML Kit devuelven múltiples resultados posibles, junto con los puntajes de confianza que lo acompañan, incluida la API de etiquetado de imágenes. Si pasa Image Labeling una foto de un caniche, entonces podría devolver etiquetas como "caniche", "perro", "mascota" y "animal pequeño", todo con puntajes variables que indican la confianza de la API en cada etiqueta. ¡Con suerte, en este escenario, el "caniche" tendrá el puntaje de confianza más alto!

Puede usar este puntaje de confianza para crear un umbral que debe cumplirse, antes de que su aplicación actúe en una etiqueta en particular, por ejemplo, mostrándola al usuario o etiquetando una foto con esta etiqueta.

El etiquetado de imágenes está disponible tanto en el dispositivo como en la nube, aunque si opta por el modelo de nube, obtendrá acceso a más de 10,000 etiquetas, en comparación con las 400 etiquetas incluidas en el modelo en el dispositivo.

Para obtener una visión más detallada de la API de etiquetado de imágenes, consulte Determinar el contenido de una imagen con aprendizaje automático. En este artículo, creamos una aplicación que procesa una imagen y luego devuelve las etiquetas y los puntajes de confianza para cada entidad detectada dentro de esa imagen. También implementamos modelos en el dispositivo y en la nube en esta aplicación, para que pueda ver exactamente cómo difieren los resultados, dependiendo del modelo que elija.

Comprensión de expresiones y seguimiento de caras: la API de detección de caras

La API de detección de rostros puede localizar rostros humanos en fotos, videos y transmisiones en vivo, y luego extrae información sobre cada rostro detectado, incluida su posición, tamaño y orientación.

Puede usar esta API para ayudar a los usuarios a editar sus fotos, por ejemplo, recortando automáticamente todo el espacio vacío alrededor de su último tiro en la cabeza.

La API de detección de rostros no se limita a las imágenes: también puede aplicar esta API a los videos, por ejemplo, puede crear una aplicación que identifique todas las caras en un video y luego borre todo excepto esas caras, similares a la función de desenfoque de fondo de Skype.

La detección de rostros es siempre realizado en el dispositivo, donde es lo suficientemente rápido como para usarse en tiempo real, por lo que, a diferencia de la mayoría de las API de ML Kit, la detección facial no Incluir un modelo de nube.

Además de detectar caras, esta API tiene algunas características adicionales que vale la pena explorar. En primer lugar, la API de detección de rostros puede identificar puntos de referencia faciales, como ojos, labios y oídos, y luego recupera las coordenadas exactas de cada uno de estos puntos de referencia. Esta reconocimiento de hito le proporciona un mapa preciso de cada rostro detectado, perfecto para crear aplicaciones de realidad aumentada (AR) que agregan máscaras y filtros de estilo Snapchat a la alimentación de la cámara del usuario.

La API de detección de rostros también ofrece tratamientos faciales clasificación. Actualmente, ML Kit admite dos clasificaciones faciales: ojos abiertos y sonrisas.

Puede utilizar esta clasificación como base para los servicios de accesibilidad, como los controles manos libres, o para crear juegos que respondan a la expresión facial del jugador. La capacidad de detectar si alguien está sonriendo o tiene los ojos abiertos también puede ser útil si está creando una aplicación de cámara; después de todo, no hay nada peor que tomar un montón de fotos, solo para descubrir más tarde que alguien tenía los ojos cerrados en cada disparo

Finalmente, la API de detección de rostros incluye un componente de seguimiento de rostros, que asigna una identificación a un rostro y luego rastrea ese rostro a través de múltiples imágenes consecutivas o cuadros de video. Tenga en cuenta que esto es cara rastreo y no es cierto facial reconocimiento. Detrás de escena, la API de detección de rostros está rastreando la posición y el movimiento de la cara y luego infiere que esta cara probablemente pertenece a la misma persona, pero en última instancia no es consciente de la identidad de la persona.

¡Prueba la API de detección de rostros por ti mismo! Descubre cómo crear una aplicación de detección de rostros con aprendizaje automático y el kit Firebase ML.

Escaneo de código de barras con Firebase y ML

Es posible que el escaneo de códigos de barras no suene tan emocionante como algunas de las otras API de aprendizaje automático, pero es una de las partes más accesibles de ML Kit.

El escaneo de un código de barras no requiere ningún hardware o software especializado, por lo que puede utilizar la API de escaneo de códigos de barras al tiempo que garantiza que su aplicación sea accesible para la mayor cantidad de personas posible, incluidos los usuarios de dispositivos más antiguos o económicos. Mientras un dispositivo tenga una cámara en funcionamiento, no debería tener problemas para escanear un código de barras.

La API de escaneo de códigos de barras de ML Kit puede extraer una amplia gama de información de códigos de barras impresos y digitales, lo que lo convierte en una forma rápida, fácil y accesible de pasar información del mundo real a su aplicación, sin que los usuarios tengan que realizar ninguna entrada de datos manual tediosa .

Hay nueve tipos de datos diferentes que la API de escaneo de código de barras puede reconocer y analizar a partir de un código de barras:

  • TYPE_CALENDAR_EVENT. Contiene información como la ubicación del evento, el organizador y su hora de inicio y finalización.Si está promocionando un evento, puede incluir un código de barras impreso en sus carteles o volantes, o incluir un código de barras digital en su sitio web. Los asistentes potenciales pueden extraer toda la información sobre su evento, simplemente escaneando su código de barras.
  • TYPE_CONTACT_INFO. Este tipo de datos cubre información como la dirección de correo electrónico, el nombre, el número de teléfono y el título del contacto.
  • TYPE_DRIVER_LICENSE. Contiene información como la calle, ciudad, estado, nombre y fecha de nacimiento asociada con la licencia de conducir.
  • TYPE_EMAIL. Este tipo de datos incluye una dirección de correo electrónico, además de la línea de asunto del correo electrónico y el texto del cuerpo.
  • TYPE_GEO. Contiene la latitud y la longitud de un punto geográfico específico, que es una manera fácil de compartir una ubicación con sus usuarios, o para que ellos compartan su ubicación con otros. Incluso podría utilizar códigos de barras geográficos para activar eventos basados ​​en la ubicación, como mostrar información útil sobre la ubicación actual del usuario o como base para juegos móviles basados ​​en la ubicación.
  • TYPE_PHONE. Contiene el número de teléfono y el tipo de número, por ejemplo, si se trata de un número de teléfono de trabajo o de casa.
  • TYPE_SMS. Contiene texto del cuerpo del SMS y el número de teléfono asociado con el SMS.
  • TYPE_URL. Este tipo de datos contiene una URL y el título de la URL. Escanear un código de barras TYPE_URL es mucho más fácil que confiar en que los usuarios escriban manualmente una URL larga y compleja, sin cometer errores tipográficos ni ortográficos.
  • TYPE_WIFI. Contiene el SSID y la contraseña de una red Wi-Fi, además de su tipo de cifrado, como OPEN, WEP o WPA. Un código de barras de Wi-Fi es una de las formas más fáciles de compartir credenciales de Wi-Fi, al tiempo que elimina por completo el riesgo de que sus usuarios ingresen esta información de manera incorrecta.

La API de escaneo de códigos de barras puede analizar datos de una variedad de códigos de barras diferentes, incluidos formatos lineales como Codabar, Code 39, EAN-8, ITF y UPC-A, y formatos 2D como Aztec, Data Matrix y códigos QR.

Para facilitar las cosas a sus usuarios finales, esta API escanea todos los códigos de barras compatibles simultáneamente, y también puede extraer datos independientemente de la orientación del código de barras, por lo que no importa si el código de barras está completamente al revés cuando el usuario lo escanea.

Aprendizaje automático en la nube: la API de reconocimiento de hitos

Puede usar la API de reconocimiento de puntos de referencia de ML Kit para identificar puntos de referencia naturales y construidos bien conocidos dentro de una imagen.

Si pasa a esta API una imagen que contiene un punto de referencia famoso, devolverá el nombre de ese punto de referencia, los valores de latitud y longitud del punto de referencia y un cuadro delimitador que indica dónde se descubrió el punto de referencia dentro de la imagen.

Puede usar la API Landmark Recognition para crear aplicaciones que etiqueten automáticamente las fotos del usuario o para proporcionar una experiencia más personalizada, por ejemplo, si su aplicación reconoce que un usuario está tomando fotos de la Torre Eiffel, entonces podría ofrecer algunos datos interesantes sobre este punto de referencia, o sugiera atracciones turísticas cercanas similares que el usuario quiera visitar a continuación.

Inusualmente para ML Kit, la API Landmark Detection solo está disponible como una API basada en la nube, por lo que su aplicación solo podrá realizar la detección de hitos cuando el dispositivo tenga una conexión a Internet activa.

La API de identificación de idiomas: desarrollo para una audiencia internacional

Hoy, las aplicaciones de Android se usan en todas partes del mundo, por usuarios que hablan muchos idiomas diferentes.

La API de identificación de idiomas de ML Kit puede ayudar a su aplicación de Android a atraer a una audiencia internacional, tomando una cadena de texto y determinando el idioma en el que está escrita. La API de identificación de idiomas puede identificar más de cien idiomas diferentes, incluido el texto romanizado para árabe, búlgaro, Chino, griego, hindi, japonés y ruso.

Esta API puede ser una valiosa adición a cualquier aplicación que procese texto proporcionado por el usuario, ya que este texto rara vez incluye información sobre el idioma. También puede usar la API de identificación de idioma en aplicaciones de traducción, como el primer paso para traducir cualquier cosa, es saber con qué idioma estás trabajando! Por ejemplo, si el usuario apunta la cámara de su dispositivo a un menú, entonces su aplicación podría usar la API de identificación del idioma para determinar que el menú está escrito en francés y luego ofrecer traducir este menú usando un servicio como la API de traducción de la nube ( ¿quizás después de extraer su texto, utilizando la API de reconocimiento de texto?)

Dependiendo de la cadena en cuestión, la API de identificación de idioma puede devolver múltiples idiomas potenciales, acompañada de puntajes de confianza para que pueda determinar qué idioma detectado es más probable que sea correcto. Tenga en cuenta que, al momento de escribir este artículo, ML Kit no podía identificar varios idiomas diferentes dentro de la misma cadena.

Para garantizar que esta API proporcione la identificación del idioma en tiempo real, la API de identificación del idioma solo está disponible como modelo en el dispositivo.

Próximamente: respuesta inteligente

Google planea agregar más API a ML Kit en el futuro, pero ya sabemos acerca de una API prometedora.

Según el sitio web de ML Kit, el próximo API de respuesta inteligente le permitirá ofrecer respuestas de mensajes contextuales en sus aplicaciones, sugiriendo fragmentos de texto que se ajusten al contexto actual. Según lo que ya sabemos sobre esta API, parece que Smart Reply será similar a la función de respuesta sugerida que ya está disponible en la aplicación de Android, Wear OS y Gmail.

La siguiente captura de pantalla muestra cómo se ve actualmente la función de respuesta sugerida en Gmail.

¿Que sigue? Uso de TensorFlow Lite con ML Kit

ML Kit proporciona modelos preconstruidos para casos de uso móvil comunes, pero en algún momento es posible que desee ir más allá de estos modelos listos para usar.

Es posible crear sus propios modelos ML con TensorFlow Lite y luego distribuirlos con ML Kit. Sin embargo, tenga en cuenta que, a diferencia de las API listas para usar de ML Kit, trabajar con sus propios modelos de ML requiere un significativo cantidad de experiencia en ML.

Una vez que haya creado sus modelos TensorFlow Lite, puede subirlos a Firebase y Google gestionará el alojamiento y la entrega de esos modelos a sus usuarios finales. En este escenario, ML Kit actúa como una capa API sobre su modelo personalizado, lo que simplifica parte del trabajo pesado que implica el uso de modelos personalizados. En particular, ML Kit enviará automáticamente la última versión de su modelo a sus usuarios, por lo que no tendrá que actualizar su aplicación cada vez que desee modificar su modelo.

Para proporcionar la mejor experiencia de usuario posible, puede especificar las condiciones que deben cumplirse, antes de que su aplicación descargue nuevas versiones de su modelo TensorFlow Lite, por ejemplo, solo actualizar el modelo cuando el dispositivo está inactivo, cargando o conectado a Wi- Fi. Incluso puede usar ML Kit y TensorFlow Lite junto con otros servicios de Firebase, por ejemplo, usando Firebase Remote Config y Firebase A / B Testing para servir diferentes modelos a diferentes conjuntos de usuarios.

Si desea ir más allá de los modelos prefabricados, o los modelos existentes de ML Kit no satisfacen sus necesidades, puede obtener más información sobre cómo crear sus propios modelos de aprendizaje automático, en los documentos oficiales de Firebase.

Terminando

En este artículo, analizamos cada componente del kit de aprendizaje automático de Google y cubrimos algunos escenarios comunes en los que es posible que desee utilizar cada una de las API de ML Kit.

Google planea agregar más API en el futuro, entonces, ¿qué API de aprendizaje automático le gustaría que se agreguen al Kit ML a continuación? ¡Háganos saber en los comentarios a continuación!

La privacidad e un gran problema en eto día. Facebook etá por toda parte con el Congreo y todo el aunto de Cambridge Analytica. La perona on má conciente de u privacidad (o falta de el...

La razón por la que exiten lo teléfono inteligente e para que podamo er má productivo. on como pequeña upercomputadora que guardamo en nuetro bolillo. e conectan a la web, no perm...

Asegúrate De Leer