¿Cuántos recursos consumiría una aplicación de reconocimiento de patrones para Android?

Existen algoritmos simples que pueden ejecutarse directamente en los teléfonos (funciones simples y clasificadores lineales) y algoritmos de aprendizaje automático más complejos que toman el orden de minutos por imagen (generalmente prototipos académicos que intentan algo ambicioso como reconocer muchos objetos a la vez).

Primero debe preocuparse por obtener un algoritmo para hacer algo útil. Para esta primera etapa, querrás desarrollar en una computadora moderna. Una vez que tenga un algoritmo que reconozca los patrones que le interesan, determine si es lo suficientemente rápido como para transferirlo a un teléfono o iniciar un micro servicio basado en la nube para su procesamiento).

Si su algoritmo tarda de 1 a 3 segundos por imagen en un escritorio, debería poder realizar optimizaciones (muchos buenos gurús de la visión para ayudarlo) y hacerlo más rápido en un orden de magnitud.

No debe preocuparse por la optimización prematura. He visto a muchos estudiantes comenzar con Android / iOS para proyectos de visión, y se dedica mucho tiempo a hacerlo funcionar en lugar de mejorar el algoritmo de reconocimiento de patrones.

¡Buena suerte!

El reconocimiento de imagen es generalmente intensivo en CPU y RAM. Normalmente no me preocuparía por la velocidad hasta que hayas construido tu primer prototipo, pero en este caso haría el procesamiento de imágenes en la nube porque:

  • Se sabe que es un cerdo de recursos.
  • Es posible que desee utilizar una biblioteca que no esté en Java (como OpenCV o algo así).
  • A medida que realiza mejoras (¡ahora puede contar automóviles, bicicletas y latas de cerveza!) Todos sus usuarios obtienen esa funcionalidad sin actualizar su aplicación.