Logo
Published on

Waspr Project - Recognising Legos

Authors

März 16 - Recognising Legos


TODO Translate this!

De momento he logrado avances en la parte mecánica del invento. Pero el objetivo final de todo esto es poder distinguir avispas de abejas para disparar únicamente a las avispas. En ese aspecto lo máximo que he conseguido es el seguimiento de mi figura geométrica naranja.

Como no tengo forma de hacer pruebas fáciles con avispas y abejas reales, se me ocurre que primero podría intentar diferenciar objetos de un tamaño similar al de los bichos, y que sean ligeramente distintos entre sí. He pasado por una tienda de jueguetes, y me he encontrado con dos voluntarios: Fulinito y Menganito.

Fulinito es el de la camisa roja. Menganito el del mono naranja.

Invierto unas buenas horas en aprender sobre reconocimiento de objetos en imágenes. Veo que necesito como mínimo unas 200 fotos de cada lego para poder entrenar un sistema que los diferencie. Hago 200 fotos de Fulinito, y otras 200 de Menganito. Aprendo a crear, y creo, una base de datos donde queda etiquetado, con su nombre, cada uno de los legos en cada una de las fotos. Aprendo a entrenar redes neuronales especializadas en reconocimiento de imágenes. Entreno una red neuronal con las fotos de Fulinito y Menganito. El entrenamiento necesita bastante tiempo de cálculo. Dejo el portátil entrenando la red durante 10 horas. Estudio cómo utilizar redes neuronales entrenadas. Pruebo a ver si funciona mi red entrenada. Debería reconocer los legos en las imágenes, y cual es cual. El sistema dice que Menganito es una bicicleta. Mal empezamos.

Entrenar redes neuronales es una operación muy costosa en recursos de computación, y mi portátil tampoco es demasiado pepino. Quizás el problema es que no he dejado que la red se acabase de entrenar del todo. Se me ocurre probar a entrenar la red en uno de los servidores de Versus. Versus tiene un servidor bastante tocho que no estamos utilizando más que para conservar sus datos. Igual ahí el entrenamiento va más rápido.

Subo los datos y el programa de entrenamiento al servidor tocho. Continúo el entrenamiento desde donde lo había dejado. Quizás parece un poco más rápido, pero no mucho más. Es bastante decepcionante. Leo que para hacer bien estas cosas hace falta una tarjetas gráficas potentilla. Incluso si no es muy potente, una tarjeta gráfica es como diez veces más rápidas que una CPU del mismo rango a la hora de realizar el tipo de cálculos necesarios para el entrenamiento. El servidor tocho no tiene tarjeta gráfica. Pues nada, habrá que tener paciencia.

Dejo el servidor de versus entrenando durante todo el día. Vuelvo a probar si ahora funciona. Nada. Ahora ya no reconoce nada. Ni siquiera bicicletas. Qué bajón. Todo este tiempo entrenando para nada. En fín, un fracaso más a la lista. Dejo el programa de entrenamiento en el servidor, quizás sólo necesite aún más tiempo...