5

Estoy pensando en escribir una pequeña biblioteca para adivinar el nombre de un color (valor RGB), de una lista predeterminada de candidatos.AI/Métodos estadísticos para determinar el nombre de un color

Mi primer intento se basó puramente en la distancia pitagórica dentro del espacio de color RGB tridimensional. Esto no fue un éxito masivo ya que la mayoría de los puntos de color nombrados estaban en los bordes del espacio (por ejemplo, azul en 0, 0, 255), entonces, para la mayoría de los colores en el medio del espacio, el color nombrado que estaba más cerca también era bastante arbitrario.

lo tanto, estoy pensando en mejores enfoques y han llegado con algunos candidatos

  • distancia cilíndrico dentro de un espacio de color HSV - que bien pueden tener problemas similares a los anteriores, sin embargo, parece VHS ser más significativo en una especie de sentido humano que RGB, que podría ser útil.

  • Cualquiera de los anteriores, pero con cada punto de color nombrado siendo ponderado con un valor arbitrario que denota la fuerza de su atracción a los puntos en el espacio circundante. ¿Hay un nombre para tal modelo? Me doy cuenta de que esto es un poco vago, pero me parece una idea bastante intuitiva.

  • Red bayesiana que examina las propiedades de un color HSV y devuelve el nombre de color más probable (imagino nodos similares, por ejemplo P (Negro | Saturación < 10), P (Rojo | Hue = 0) Sin embargo, esto parece menos que ideal: por ejemplo, la probabilidad de que un color determinado sea rojo es proporcional a qué tan cerca está su matiz a 0, en lugar de ser un valor discreto. ¿Hay alguna forma de adaptar las redes bayesianas para lidiar con las probabilidades? que son continuas en la variable que se está probando?

  • Finalmente, me preguntaba si existe algún tipo de clasificación basada en la máquina de vectores de soporte dentro del espacio de color HSV o RGB, pero no estoy masivamente familiarizado con estos, no estoy seguro si esto wil Ofrezco una ventaja particular sobre el enfoque basado en la distancia pitagórica que probé originalmente, especialmente porque solo estoy tratando con un espacio tridimensional.

Por lo tanto, me preguntaba, ¿alguno de ustedes tiene alguna experiencia con problemas similares, o sabe de cualquier recurso que podrían ser capaces de ayudarme a decidir sobre un enfoque? Si alguien pudiera señalarme en la dirección correcta (ya sea una de las anteriores, o algo completamente diferente) estaría extremadamente agradecido.

¡Salud!

Tim

Respuesta

5

Name that Color parece determinar el nombre de la base de valores tanto en el RGB y HSL, tal vez usted podría utilizar algo similar.

Después de echar un rápido vistazo al guión, parece elegir el color más cercano al color dado en términos de RGB y HSL. Básicamente es solo un gran mapa de colores predefinidos y no hace nada avanzado, como los valores ponderados, pero dada la gran cantidad de nombres de colores definidos, puede ser "lo suficientemente bueno", dependiendo de sus requisitos.

+0

Me encanta: "Siendo un chico típico, no tengo ni idea de cómo son los colores Lavender y Mauve. Así que hice esta pequeña aplicación ..." –

+0

Aah, ¡eso es interesante! Un buen punto para establecer una gran cantidad de nombres de colores para encontrar coincidencias más cercanas: ¡investigará! – mistertim

0

¿Hay alguna manera de adaptar las redes bayesianas para hacer frente a las probabilidades que son continuas en la variable que se prueba?

Sí.No soy la mejor persona para responder cómo hacer esto, pero debería haber información existente sobre cómo hacer esto. Simplemente use "continuo" durante su búsqueda.

0

Para mi respuesta, voy a pensar fuera de la caja de Baysian. Si tuviera que abordar este problema, probaría uno de estos tres enfoques:

1) Lógica difusa, quizás basada en datos empíricos recopilados de los usuarios. Es posible que la lógica difusa pueda capturar, y hacer más fácil inferir automáticamente, lo que las personas quieren decir cuando hablan sobre el color mejor que las medidas estadísticas nítidas. (También hay técnicas que combinan inferencia baysiana y lógica difusa, IIRC.)

2) Una vez jugué con la idea de usar redes Kohonen para clasificar colores automáticamente. No llegué muy lejos, pero los primeros resultados fueron prometedores en el sentido de que las redes tendían a converger en soluciones que eran agradables e intuitivas desde una perspectiva humana. Los nodos tendían a agruparse en patrones que parecían corresponder a etiquetas humanas como "rojo", "naranja" y tenían zonas de transición obvias como "rojo-naranja".

3) También realicé algunos experimentos que utilizaron algoritmos genéticos para desarrollar paletas optimizadas para imágenes particulares. De nuevo, no llegué muy lejos, pero las pruebas iniciales parecían prometedoras.

Cuestiones relacionadas