¿Cuál es la mejor manera de ejecutar el aprendizaje automático en dispositivos Android?

Aunque puede desarrollar aplicaciones de Android en una amplia variedad de idiomas, para cosas como ejecutar algoritmos de aprendizaje automático, es recomendable trabajar en Java.

Trabajar en Java le permite tener acceso a prácticamente todas las herramientas diseñadas para desarrolladores de aplicaciones, en lugar de trabajar detrás de un marco o biblioteca. Las aplicaciones nativas tienden a tener el mejor rendimiento y hay muchas plantillas y proyectos de ejemplo disponibles si no está dispuesto a invertir el tiempo en aprender Java. Aunque otros modos de desarrollo de aplicaciones están alcanzando el rendimiento, es probable que nunca superen el desarrollo nativo en términos de acceso a hardware y API, especialmente para áreas específicas como ejecutar algoritmos de aprendizaje automático.

Tensorflow es una de las bibliotecas de aprendizaje automático más populares en este momento, por lo que probablemente desee trabajar en ella para aprovechar los recursos disponibles y la comunidad. También es compatible con la mayoría de las arquitecturas de aprendizaje profundo, como las redes neuronales convolucionales, que generalmente se utilizan en la detección de objetos.

Afortunadamente, Tensorflow se ejecuta en Android además de Raspberry Pi e iOS y tiene tutoriales y proyectos de demostración para que comiences. En una de sus demostraciones, ejecutan el modelo Inception, que fue entrenado en ImageNet para reconocer 1000 objetos diferentes, desde cebras hasta carros de golf, en un teléfono Android en tiempo real. Puede entrenar aún más el modelo para reconocer objetos específicos que desee, como se muestra aquí.

Puede codificar en Python en su PC, construir un modelo y transferirlo a su aplicación de Android en Java para que se ejecute en su teléfono.

Básicamente, TensorFlow es genial, y deberías echarle un vistazo. Aquí hay algunos videos que presentan el concepto de ejecutar modelos en dispositivos móviles.

Alternativamente, puede usar OpenCV para realizar tareas similares. Tiene proyectos de muestra que puedes usar. Su instalación puede ser una molestia como principiante, pero se vuelve más fácil una vez que la configura. Hay muchos videos y tutoriales de youtube para ayudar con eso. Puede buscar opencv en Play Store para encontrar algunas aplicaciones de demostración para cosas como el reconocimiento facial. También puede generar cascadas de haar o usar una existente para realizar la detección. Tiene muchas otras herramientas útiles.

Bueno, afortunadamente, hay personas que han hecho todas las matemáticas y ciencias, y que también se encargan de alojar y mantener todos los algoritmos, para usted y para cualquier persona que necesite usar el aprendizaje automático para cualquiera de sus proyectos. Si sabe cómo usar una API de Android, entonces no debería tener problemas para usar las API de aprendizaje automático disponibles a través de REST. No necesita escribir ningún algoritmo usted mismo. A partir de una búsqueda rápida en Google, aquí hay una lista de API que puede probar: más de 50 API útiles de aprendizaje automático y predicción, actualizadas

Android es solo un sistema operativo y, como todos los sistemas operativos buenos, admite varios idiomas. Google acaba de hacer que sea increíblemente fácil crear aplicaciones en Java cuando tiene la intención de escribir para Android.

Diría que Python porque soy parcial hacia él (es posible que desee considerar Kivy: Marco de Python multiplataforma para NUI y scikit-learn: aprendizaje automático en Python).

Sin embargo, de buen gusto, buscaría qué idioma utiliza el reconocimiento de voz de Google porque esas son las personas que ejecutan ML en el teléfono.

Puede usar TensorFlow de inmediato para esto. También tienen ejemplos de Android e iOS.

Debe intentar entrenar el modelo en una máquina x86 o en la nube y luego ejecutar el modelo en su dispositivo. Puede usar tanto el SDK como el NDK para Android.