Inteligencia artificial y Selfy

Jefferson Licet
Jul 22, 2017 · 5 min read

Hace pocos años cualquier Startup que no hiciera uso de La Nube era considerado como un proyecto arcaico.

Por allí en 2014 yo afirmaba en una entrevista para el diario CaracasDigital: El móvil y la Nube son el futuro. Pero la realidad es otra. Por supuesto yo estaba equivocado y es que la nube y el móvil eran el presente en aquel momento. Errores cometemos todos, quizá yo queria expresar que era hora de que aquellos proyectos que no utilizaban estas tecnologías debían comenzar a hacerlo para así sobrevivir en el futuro. Dicen que la historia se repite, y aquí estamos de nuevo. Recuerdo cuando logré llevar la bandera de mi país a la final de Microsoft Imagine Cup, utilizando una tecnología casi desconocida para mi, ¿puedes adivinar qué?. Si, la respuesta es inteligencia artificial.

¿Inteligencia artificial?

En una de mis primeras clases de Organización del Computador veíamos las técnicas para almacenar números en una arquitectura de 32 y 64 bits, un amigo comentó que cada vez la computadora parecía menos inteligente. — Pues son el objeto más inservible sin la debida programación de un humano, replicó mi profesora.

La inteligencia artificial busca otorgar funciones cognitivas a las computadoras. Es un campo bastante amplio en el cual no me considero ni si quiera novato, quizá un aficionado al que le apasiona la tecnología. La pasión fue la que me llevó con 17 años a una entrevista privada con Steven Guggenheimer quien es ahora una pieza clave en la división de inteligencia artificial de Microsoft. Y fue en las oficinas de esta empresa donde tuve el honor de recibir elogios por parte de Steve sobre mi aplicación Food & Gram.

Food & Gram — Calorie estimation from a picture

El concepto era sencillo, yo necesitaba una aplicación para participar en la ImagineCup, luego de charlar un amigo sobre lo bueno que era controlar los alimentos que consumimos surgió esta idea, un Shazam para comida que con tan solo una foto podría otorgarle al usuario valores nutricionales, recetas y más. Fue todo un reto y es que la primera versión sólo podia diferenciar una manzana de una naranja. Si, algo tipo Not Hot Dog de la famosa serie Sillicon Valley.

Recordemos que la inteligencia artificial tiene muchos campos y la visión es uno de ellos. Pero también la clasificación, el primer paso era aplicar algún algoritmo que me permitiera obtener las características de la imagen, creo que utilicé Surf en aquel momento. OpenCV me permitio salvar esas características, estos eran mis Samples, yo le enseñé a mi aplicación a diferenciar entre una manzana y una pizza. Necesité muchas fotos de manzanas y de Pizza, esto se conoce como Aprendizaje Supervisado. Y efectivamente este funcionaba mucho mejor.

Resultados

La historia se repite y ahora toca a la Inteligencia Artificial, y no quiero equivocarme esta vez, así que afirmaré que la Inteligencia Artificial es el presente y que cualquier Startup que no la utilice tendrá una gran desventaja. Google lo afirmó, convirtiendose en una compañia AI-First. Y ya no necesitas ser un experto para poder usar los beneficios de la inteligencia artificial.

Selfy

Yo quise aprender más y por eso puse mis manos al fuego intentando revivir una aplicación que creé hace bastante, una red social para compartir selfies cuya distribución era exclusiva para Windows Phone. (Ese era el título de los artículos donde era destacada pero tambien era un suicidio)

Esta vez comencé programando en Java utilizando Android Studio. Y siguiendo con el concepto de las fotos quise agregarle algo más de dinámica a la aplicación:

Selfy es una red social para compartir fotos basada en retos, existen tres tipos de retos y para cumplirlos simplemente deberás subir una foto.

Duo

Duo image for Betalist

Estos retos consisten en que debes tomarte una foto con otra persona, usualmente suele ser con quien más interacciones tienes o amigos de Facebook.

Básicamente para ello debes escanear tu rostro la primera vez que utilizas la aplicación, los rostros pueden ser detectados utilizando diversas técnicas: Histogram of Oriented Gradients o Haar Cascades. Luego de detectarlo es necesario obtener las características para poder clasificarlo. En este caso Eigenfaces es lo que buscamos. Sin embargo yo no implementé esto por mi cuenta pero planeo hacerlo. Utilicé Microsoft Cognitive Services, una API que te permite consumir algoritmos de inteligencia artificial, desde OCR hasta Face Detection y Face Recognition. Si un usuario posee activado los retos Duo entonces en cada foto que él suba se detectan los rostros y en caso de tener dos y solo dos rostros se procede a el reconocimiento, donde debe por supuesto aparecer el rostro de la persona que subió la foto y el otro rostro debe pertenecer a la persona que formaba parte del reto creado por el sistema, digamos el amigo.

Spots

Spot image for Betalist

Estos retos son más simples a nivel de programación, utilizando la API de Foursquare para obtener sitios ‘chéveres’, he colocado algunos marcadores allí, así que cuando entras a la aplicación te aparecen esos sitios cerca de tí y eres retado a cumplir un Spot, básicamente deber ir al sitio y tomar una foto en ese lugar. Como supondrás aquí no hay inteligencia artificial, solo una comparación entre latitud y longitud.

Play

Play image for Betalist

Play, este tipo de reto es mi favorito y es el que utiliza el más puro reconocimiento de imágenes, mediante una serie de librerias y APIs he logrado armar algo genial e interesante. No he utilizado Microsoft Cognitive Services porque necesitaba información más detallada sobre los objetos detectados en las fotos. Los retos Play consisten en que debes tomarte fotos con objetos o atuendos específicos para poder cumplirlos.

Por ejemplo para cumplir el #DogChallenge debes tomarte una foto con tu perro. Mediante una máquina virtual alojada en Azure, una API que programé en Python utilizando Django y Keras potenciado por TensorFlow he logrado reconocer perfectamente cientos de objetos.

Selfy explore section

La aplicación ya está disponible en la tienda, pueden acceder a ella desde: https://play.google.com/store/apps/details?id=com.sparkly.selfy

Puedes conocer más sobre el proyecto en el sitio web: http://getselfy.net

Conclusión

Lo cierto es que hoy en día tengo un trabajo real utilizando OpenCV en una compañía que por supuesto no quiere quedarse atrás. Seguiré mejorando este proyecto personal y ansioso por ver cuando se repetirá la historia de nuevo donde cada Startup tenga que dar un paso o quedar atrás.

Jefferson Licet

Written by

Android & Web Apps.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade