Ir al contenido principal

Entradas

Mostrando las entradas de abril, 2017

Usando el narrador de Minecraft

Me encontraba jugando Minecraft en la nueva snapshot 17w14a y vi que implementaron una nueva funcionalidad la cual es un narrador, es decir una voz lee todo lo que parece en el chat y fue cuando me dije ¿Joder, cómo lo hicieron? generalmente este tipo de cosas utiliza muchos recursos. Lo primero fue ubicar que biblioteca utilizan, para eso explore la carpeta del juego y encontré algo. .minecraft/libraries/com/mojang/text2speech/1.5/text2speech-1.5.jar Al parecer es una biblioteca creada por Mojang. Bueno es hora de ver que tiene, al pasar por el descompilador obtuve lo siguiente: ¿Es todo? ¿Dónde esta el resto? Básicamente lo que hacen los de Mojang es invocar otro programa desde java, es decir un wrapper. ¿Pero que programa invocan? viendo las clases encontré que usan un jni para ejecutar una biblioteca en c llamada libfliteWrapper.so De nuevo descompilando libfliteWrapper.so obtenemos: Vemos que existe una función llamada "say" como parametro el tex

Clasificador de gatos y perros usando TensorFlow

El otro día estaba buscando información acerca de redes de convolución y encontré un estupendo video 1 en youtube, el cual explicaba como realizar un clasificador de imágenes en 5 min, así que dije ¿Por que no hago un clasificador de gatos y perros, pero a mi estilo?  - why not?. Configurando todo Básicamente es utilizar el ejemplo de TensorFlow llamado retrain.py que es un script de entrenamiento de una red de convolución Inception-v3 2 y entrenar nuestra red con las imágenes que queremos clasificar, en este caso gatos y perros. Vamos a necesitar muchas pero muchas imágenes de gatos y perros así que  para obtener las imágenes de nuestro entrenamiento tenemos dos posibles ideas. * Ir a Imagenet y obtener el archivo con todas las url de las imágenes y usando wget descargarlas. * Descargar las imágenes de google images utilizando un plugin para chrome o firefox.  Una vez obtenidas las imágenes para nuestro entrenamiento vamos a crear nuestro proyecto, primero tenemos qu