Iniciar Sesion

Planet

Infant se reescribirá a si mismo

Esto es algo en lo que ya había pensado hace tiempo y que ahora voy a poner en práctica ya que para desarrollar la parte que generará las reglas inductivas de aprendizaje\reconocimiento de objetos voy a tratar de implementar en Infant un sistema para la generación de código y que ese código generado sea usuado, mejorado y completado según aumente el conocimento acumulado por el sistema.Para ello Infant generará un script en Lua en el que se defina una función que decidirá si un deterinado objeto pertenece o no a una determinada categoría, código que será generado según las propiedades y características comunes y no cumunes de todos los objetos pertenecientes a esa categoría, lo precompilará (para mayor velocidad) y después utilizará ese script para decidir si un objeto nuevo, desconocido en principio, pertenece o no a esa categoría.Por supuesto aun esta todo por hacer pero ya os iré contando.

Colabora en el proyecto

¿Te gustaría colaborar en YakiTo? No necesitas ningún conocimiento de programación. YakiTo facilita la ayuda al desarrollo por terceros sin conocimientos de informática. ¿Cómo? Pues de una forma muy sencilla, llevando a cabo una de las siguientes dos tareas:

  • Crear un idioma para la interfaz. Es tan sencillo como coger un archivo XML de idioma existente, traducir todas las cadenas de texto a otro idioma y guardar al archivo resultante con el nombre de ese nuevo idioma.
  • Crear un perfil de conversión. Sólo tienes que encontrar los parámetros de conversión adecuados para el perfil que deseas crear, y generar dicho perfil mediante la interfaz, para compartir el archivo resultante con toda la comunidad, y que todos podamos usar ese perfil.

Si os interesa estad atentos al desarrollo de YakiTo, porque más adelante daré más detalles en la sección dedicada a ello.

Ciclo #2 : decisiones de implementación

Tras bastante tiempo sin escribir, vuelvo para comentar algunas decisiones tomadas en el desarrollo y que influyen profundamente en el diseño del proyecto. En el ciclo 2 de la iteración estoy dedicando el tiempo a implementar la creación de las …

Detectando las lineas del tablero

Para detectar las lineas del tablero uso la transformada de Hough, se detectan muchas lineas, ahora lo que queda es tratar las lineas y buscar las intersecciones entre ellas para detectar las intersecciones del tablero.
Os dejo una imagen de la salida de las lineas que se detectan:

Un saludo !!

Estableciendo imágenes

Probando con el módulo pyGame, es bastante sencillo poner objetos y demás en pantalla. Aunque todavía no logre hacer nada, pero por lo menos se ve algo ahí.
Seguiré informando de los cambios. Un saludo!

Dejanos tu opinión

Con el avance en el desarrollo del proyecto, hemos decidido darle un cambio al aspecto visual de nuestra aplicación, haciendola a nuestro parecer bastante mas atractiva para el usuario, pero no nos conformamos con eso, queremos saber que opinas tu.
Aqui te dejamos una imagen del aspecto de la aplicacion en su version 0.0.1 y el aspecto que tendra la 0.0.2
V0.0.1
V0.0.2


Responde ahora a la siguiente encuesta:
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.

Hello World!

¡Hola Mundo!

Sistema de coordendas de objeto

IntroducciónUno de los elementos clave en los que se basará Infant es el Sistema de Coordenadas de Obejeto y que consiste basicamente en que una vez vectorializados los bordes de un determinado objeto estos se convertiran a un sistema propio de coordendas.Origen de la ideaEsto va ha sonar un poco raro... pero cerrar los ojos e imaginaros primero una manzana cualquiera y después borrar esa imagen de la manzana e imaginaros la Torre Eiffel. En esas imagenes que se os presentan, por lo menos en mi caso, aparece la manzana en la misma escala que la torre es decir que si suporponeis esas dos imagenes las dos tendran el mismo tamaño y la manzana tapará a la Torre Effiel. Es juesto en esa idea de mantener las proporciones en referencia al total de la dimensiones de cada objeto en la que se basa el sistema. Sistema de coordendas de objetoPara desarrollar las ideas anteriormente descritas nace la necesidad del sistema de coordendas unico para todos los elementos y surge a raiz de querer comparar estos objetos entre si, para lo que debe garantizarse que:

  • Todos los objetos estan en la misma escala, es decir que si se compara un determinado simbolo que ocupa 1000x1000 px. y el mismo simbolo pero en una de 100x100 se sigan podiendo comparar los vectores de ambos.
  • La posicion relativa entre estos vectores es la misma, es decir que siempre se realizen las mismas transformaciones en objetos similares.
  • Que no haya deformaciones o si las hay que sean iguales en todos los objetos (en nuestro caso las habrá).

Para lograr estos objetivos en Infant se ha implementado un sistema en el que la unidad viene definida por las dimensiones totales del objeto (en realidad del nivel), en nuestro caso se define y se compara con el 100% que componen los limites del objeto (del nivel) (Bounding Box) por lo que el resto de los vectores vendrán determinados en este nuevo sistema como un porcentaje del ancho y alto total de la imagen original. Matematicamente simplemente se define un sistema ortonormal en el que el origen de coordenadas es la coordenda menor (inferior izquierda) de la imagen y los vectores directores (aunque en nuetro caso su módulo no es la unidad sino el 100%) son los compuestos por el ancho y el largo del bounding box que contiene el objeto despues para transformar el objeto a ese sistema de coordenadas lo que hacemos es simplemente, sobre cada vector aplicaicar una traslacion y escalarlos segun el porcentaje en relacion al nuevos ejes de coordendas por lo que la operacion matematica es simplemnte suma y multiplicacion de vectores. Como imagino que será mucho mas fácil verlo graficamente un ejemplo sencillo sería el siguiente en el que la letra J pasa a convertirse en la letra J en el sistema de coordendas de objeto (aplicando también una simplificación a la imagen vectorializada de la que ya hablaremos):

Roadmap Para Vidali

Me estoy dando cuenta que mi sistema de actualizaciones es muy irregular, por lo que a partir de ahora, dejaré un roadmap sujeto a modificaciones de las actualizaciones para vidali. Hay que tener en cuenta, que este roadmap es la previsión hasta el lanzamiento de la fase alpha, por lo que si se retrasa en algo el proyecto, este roadmap será modificado.
Sin más, dejo aquí el roadmap hasta el lanzamiento de Vidali alpha:
Roadmap Vidali Pre-Alpha:
5-12-2010Version 0.4.0 (Implementación del sistema multimedia, mejoras menores)
19-12-2010 -Version 0.4.5 (Arreglos menores,cambio de comentarios y documentación a español/inglés)
30-01-2011Version 0.5.0 (Implementación del sistema de redes, arreglos y parcheos)
15-02-2011 – Version 0.5.5 (Implementacion de la coneccion entre usuarios, limpieza de codigo, arreglos, parches, mejora en traducción)
03-03-2010Version 0.6.0 (Limpieza de codigo, mejora de la estructura del código, mejora de encapsulamiento) VIDALI ALPHA (Codename: GEO)
En fin, es esto lo que queda fijado de momento para la Pre-Alpha de vidali. Y mas o menos a ojimetro (esa unidad de medida tan maja que me permite tener un margen de error superior al 50%), podría decir que el roadmap del proyecto en general sería de la siguiente manera:
Marzo 2011: Vidali Alpha
Abril 2011: Vidali Alpha2
Mayo 2011: Vidali Beta
Junio 2011: Vidali 1.0 Estable
Pero esto, esta solo sobre tintero… por lo que de momento son solo supocisiones
Saludos!

Distribuir contenido

Colabora