Cómo construir un reconocimiento de objetos basado en dispositivos móviles utilizando técnicas de aprendizaje automático

Su mejor opción sería escribir una aplicación móvil que use la cámara nativa para enviar imágenes a un servicio en la nube para su análisis. Esto puede hacerse automáticamente a intervalos fijos, o bajo demanda con solo presionar un botón. Para el servicio en la nube, usaría un modelo y pesos que han sido previamente entrenados en ImageNet [1]. ImageNet es un gran conjunto de imágenes que los humanos han clasificado y anotado en miles de categorías diferentes. Al usar un modelo ImageNet pre-entrenado, podrá clasificar muchos objetos cotidianos como una taza de café y un bate de béisbol, un elefante e incluso podrá distinguir entre diferentes razas de perros y gatos.

Si los objetos que desea clasificar son más específicos y ha recopilado suficientes datos etiquetados, es bastante fácil realizar una capacitación sobre su modelo ImageNet para refinar su sistema.

Keras [2] tiene modelos pre-entrenados para muchas arquitecturas diferentes con la arquitectura VGG-16, probablemente la más popular. Con la facilidad de uso de Keras, estará listo y funcionando en muy poco tiempo.

Recursos:

[1] ImageNet

[2] Modelo pre-entrenado VGG-16 para Keras

Puede usar la biblioteca MXNet y su API de predicción sin servidor, solo aplicación móvil.

Ejemplos de aplicaciones móviles con una implementación de clasificación de imágenes (código fuente): Android e iOS.

Debe cargar su modelo de red neuronal previamente entrenado (que incluye pesos de red) en el predictor mxnet y alimentar los datos de la red de entrada (alguna imagen en su caso) con la recepción de valores de salida de su red.

Es muy fácil y sin servidor de fondo. Pero tiene algunas desventajas: el tamaño de su modelo pre-entrenado debe ser menor a 50 MB.

Modelos MXNet pre-entrenados para la clasificación de imágenes: Índice de / mxnet / models

Creo que tengo una idea de cómo podría funcionar esto.

Front End: puede usar React Native para crear una interfaz de usuario simple que tenga acceso nativo a la cámara.

Computación del servidor: luego puede crear un servidor de back-end que funciona con Python y ejecuta un modelo de inclinación de máquina flexible previamente entrenado (es decir, Caffe, Google CloudVision, PyTorch) que puede analizar la alimentación de la cámara en busca de objetos.

Respuesta: Finalmente, al unir los dos, el servidor devolverá una cadena con la suposición más probable de cuál es el objeto actual y actualizará dinámicamente un elemento de la interfaz de usuario para contener dicha cadena.

  • Recoge y estudia algunas buenas referencias de Google
  • Master Machine Learning basado en técnicas de reconocimiento de imágenes.
  • Echa un vistazo a los inicios de TensorFlow.
  • Controle el desarrollo de aplicaciones de Android y iPhone.
  • Intenta intenta intenta …

La siguiente publicación puede funcionar para usted si busca un servicio de reconocimiento en la nube:

https://www.linkedin.com/pulse/5

More Interesting

¿Qué lenguaje es mejor para hacer big data y machine learning (en términos de rendimiento) Java o Python?

¿Cuál es la diferencia entre Deep Autoencoders y Deep Belief Networks?

¿Cómo se explica el aprendizaje automático y la inteligencia artificial a un niño de 5 años?

¿Se puede entrenar la imagen usando la función de activación?

¿Cuáles son los problemas interesantes en la 'automatización de big data'?

¿Puede una red neuronal LSTM aprender a reescribir un código C en C ++ sabiendo que lo entrené con un conjunto de datos equivalente a la instrucción C / C ++?

Kaggle: ¿Cuáles son las técnicas utilizadas para reducir el número de columnas antes de predecir la variable dependiente? Por favor vea la descripción

Cómo saber formalmente si una función objetivo es convexa o no convexa

¿Qué enfoque de aprendizaje automático recomendaría realizar OCR (reconocimiento de caracteres) en un sistema de reconocimiento automático de matrículas?

¿Por qué la regresión logística es generalmente resistente al sobreajuste en el aprendizaje automático?

¿Qué es el condicionamiento en el aprendizaje seq2seq?

Cómo aprender y construir un chatbot inteligente basado en inteligencia artificial como Google Allo desde cero, con un mayor enfoque en el modelo de dominio cerrado basado en la recuperación y el aprendizaje de ML y NLP

¿Cuáles son algunos proyectos increíbles bajo 100 líneas?

¿Cuál es una buena forma de buscar artículos en visión artificial y aprendizaje automático?

¿En qué se diferencia exactamente la generación del lenguaje natural de la comprensión del lenguaje natural?