Mi trabajo es tener 2 semanas de código de desafío, que implica la producción de un algoritmo para reproducir 100 de la muestra de pinturas de Bob Ross tan estrechamente como sea posible con algunas restricciones:
- "Pinturas" se presentó como un archivo JSON que contiene un color de fondo y una serie de "pinceladas".
- Trazos de pincel tiene un punto de inicio, punto final, el radio y el color.
- Hay un 500 accidente cerebrovascular límite por la pintura.
- Todos los 100 referencia pinturas tienen exactamente el mismo tamaño y relación de aspecto: 450x337.
El servidor de la "pinta" de cada presentación y, a continuación, hace una per-pixel diff con la referencia de la pintura. Cada pixel en la presentación de la pintura se anotó en un escalar 0-1 intervalo basado en cuán similar es el valor de la fuente de píxeles y la partitura de la pintura es un promedio de todos los píxeles de las puntuaciones. La gente corriendo de la competencia se han publicado las bibliotecas tanto de la pintura y de la puntuación de imágenes que se pueden ejecutar en la línea de comandos en MacOS / Linux.
Siento que este problema debe ser susceptible de ML ya que tienen un mecanismo de grano fino de la puntuación de cada intento de que el algoritmo intenta. La generación y la puntuación de una pintura sólo se tarda unos 200ms. Por desgracia, yo soy todo sólo un ML fanboy (escucho muchos podcasts) y no sé cómo debo modelar el problema.
Dejar que el algoritmo de hacer 500 completamente al azar trazos y luego de clasificación de la salida iba a tener para siempre a converger en algo útil. Pensé acerca de cómo limitar el espacio de color de los trazos para un conjunto de 64 más frecuente de colores en cada cuadro (mediante la ejecución de un histograma antes de comenzar a pintar) y también limitar el algoritmo de tamaño de pincel de selección.
Para el registro, simplemente la presentación de una imagen que es un sólido campo de el color más común me valió un 65% de la puntuación. La actualidad de la ganancia de algoritmos son en su mayoría sólo la conversión de las pinturas en las redes y poner un punto de la media de color en cada sector en la parte superior de cada uno.