Algoritmo para un dibujo y la pintura robot -Algoritmo para un robot de dibujo y pintura: ¿algún consejo?
Hola
Quiero escribir una pieza de software que analiza una imagen y, a continuación, produce una imagen que capta lo que percibe el ojo humano en la imagen original, usando un mínimo de objetos de camino de bezier de variación de color y opacidad.
A diferencia de la reciente concurso de Twitter súper compresión (see: stackoverflow.com/questions/891643/twitter-image-encoding-challenge), mi objetivo no es crear una réplica que es fiel a la imagen, pero en lugar de replicar la experiencia humana de mirar la imagen.
Como ejemplo, si la imagen original muestra un globo rojo en la esquina superior izquierda, y la reproducción tiene algo que parece un globo rojo en la esquina superior izquierda, entonces habrá alcanzado mi objetivo, incluso si el globo en la reproducción no está del todo en la misma posición y no tiene el mismo tamaño o color.
Cuando digo "como lo percibe un ser humano", me refiero a esto en un sentido muy limitado. No estoy intentando analizar el significado de una imagen, no necesito saber de qué es una imagen, solo me interesan las características visuales clave que un ojo humano notaría, en la medida en que esto pueda ser automatizado por una Algoritmo que no tiene la capacidad de conceptualizar lo que realmente está observando.
¿Por qué este criterio inusual de la percepción humana sobre la precisión fotográfica?
Este software se usaría para conducir un robot de dibujo y pintura, que colaborará con un artista humano ().
En lugar de tratar las marcas hechas por humanos que no son fotogénicamente perfectas como necesariamente errores, el algoritmo debería tratar de incorporar lo que ya está en el lienzo en la imagen final.
Por lo tanto, el brillo relativo, el tono, la saturación, el tamaño y la posición son mucho más importantes que ser fotográficamente idénticos al original. El mantenimiento de la topología de las características, el bloque de color, los degradados, la curva convexa y cóncava será más importante la forma y el color exactos de esas características
¿Seguirme?
Mi problema es que sufro un poco del síndrome de "cuando tienes un martillo, todo parece un clavo". Para mí, parece que la forma de hacerlo es usar un algoritmo genético con algo así como la comparación de las transformadas wavelet (ver: grail.cs.washington.edu/projects/query/) utilizado por retrievr (ver: labs.systemone.at/retrievr/) para seleccionar las soluciones adecuadas.
Pero la razón principal por la que veo esto como la respuesta, es porque estas son las técnicas que conozco, probablemente haya soluciones mucho más elegantes usando técnicas de las que ahora no sé nada.
Sería especialmente interesante tener en cuenta las formas en que el sistema de visión humano analiza una imagen, por lo que quizás deba prestarse especial atención a las líneas rectas y ángulos, bordes de alto contraste y grandes bloques de colores similares.
¿Tiene alguna sugerencia sobre cosas que debo leer sobre visión, algoritmos de imagen, algoritmos genéticos o proyectos similares?
Gracias
Mat
PS. Parte de la ortografía anterior puede parecer incorrecta para usted y su revisión ortográfica. Solo se trata de variaciones ortográficas internacionales que pueden diferir del estándar en su país: p. Estándar australiano: color contra estándar americano: color
Para el beneficio de los nuevos usuarios, quiero señalar que esta pregunta no se permitiría si se publicara hoy. Es muy amplio, pide recomendaciones generales y no tiene una respuesta definitiva. Es probable que todavía exista con fines históricos, así que no lo use como plantilla para una buena pregunta –