
Hola, mi nombre es Roman Lapin, soy estudiante de segundo año de la facultad de la Escuela Superior de Física General y Aplicada de la UNN. Este año logré completar la selección y participar en el trabajo de Intel Summer School en Nizhny Novgorod. Mi tarea consistía en determinar el color del automóvil utilizando la biblioteca Tensorflow, en la que trabajé con mi mentor e ingeniero del equipo de ICV Alexei Sidnev.
Y esto es lo que tengo.
Hay varios aspectos de esta tarea:
- El automóvil se puede pintar en varios colores, como en KDPV. Y en uno de los conjuntos de datos, por ejemplo, teníamos un automóvil camuflado.
- Dependiendo de la iluminación y la cámara que tome fotos de lo que está sucediendo en la carretera, los autos del mismo color se verán muy diferentes. Los automóviles "iluminados" pueden tener una parte muy pequeña que corresponde al color "verdadero" del automóvil.
Detección de color del automóvil
El color del automóvil es una sustancia bastante extraña. El fabricante tiene una clara comprensión de qué color producen el automóvil, por ejemplo: fantasma, hielo, perla negra, plutón, lima, criptón, angkor, cornalina, platino, azul. La policía de tránsito tiene una opinión sobre los colores de los automóviles bastante conservadores y muy limitados. Cada persona individual tiene una percepción subjetiva del color (puede recordar la historia popular sobre el color del vestido). Por lo tanto, decidimos marcar de la siguiente manera.
En cada imagen, se marcaron las coordenadas de los vértices de los rectángulos aledaños alrededor de los automóviles (en adelante usaré la versión en inglés -
cuadro delimitador del automóvil ) y dentro de ellas se encuentran las áreas que mejor describen el color de los vehículos (
cuadro de color ). El número de este último es igual al color del automóvil (
n x
caja de color - automóvil n-color).
En lo sucesivo, los números de los automóviles se ven borrosos por la posibilidad de publicar fotos en el dominio público.
Marcado del conjunto de datos de automóvilesEn el futuro, trabajamos con dos espacios de color: RGB y LAB, con las clases 8 y 810/81, respectivamente. Para comparar los resultados de diferentes enfoques, utilizamos 8 clases en RGB para determinar el color, que se obtienen dividiendo el cubo BGR en 8 cubos pequeños iguales. Pueden llamarse fácilmente nombres comunes: blanco, negro, rojo, verde, azul, rosa, amarillo, cian. Para evaluar el error de cualquier método, ya hemos utilizado el espacio de color LAB, en el que se determina la
distancia entre los colores.
Hay dos formas intuitivas de determinar el color por
cuadro de color :
color medio o mediano. Pero en el
cuadro de color hay píxeles de varios colores, por lo que quería saber con qué precisión funciona cada uno de estos dos enfoques.
Para 8 colores RGB para cada
cuadro de color de cada máquina en el conjunto de datos, determinamos el color de píxel promedio y la mediana, los resultados se muestran en las siguientes figuras. Los colores "verdaderos" están marcados en las líneas, es decir, los colores definidos respectivamente como promedio o como la mediana, en las columnas, colores que se encuentran en principio. Al agregar una máquina a la tabla, el número de píxeles de cada color se normalizó a su número, es decir, la suma de todos los valores agregados a la fila era igual a uno.
Investigación de la precisión de determinar el color de una máquina como el color promedio de píxeles color 'abox. Precisión media: 75%Investigación de la precisión de determinar el color de una máquina como el color medio de los píxeles en un cuadro de color. Precisión media: 76%Como puede ver, no hay una diferencia particular entre los métodos, lo que indica un buen marcado. En el futuro, usamos la mediana, porque mostró el mejor resultado.
El color del automóvil se determinará en función del área dentro del
cuadro delimitador del
automóvil .
¿Necesitas redes?
La pregunta es inevitable: ¿son realmente necesarias las redes neuronales para resolver una tarea intuitivamente simple? ¿Quizás pueda tomar el color medio o medio de los píxeles en un
cuadro delimitador de un
automóvil de la misma manera? Las siguientes figuras muestran el resultado de este enfoque. Como se mostrará más adelante, es peor que el método que usa redes neuronales.
La distribución de la proporción de automóviles con el valor de error L2 en el espacio LAB entre el color del cuadro de color definido como el promedio y el color del cuadro delimitador del valor del errorDistribución de la proporción de automóviles con el valor de error L2 en el espacio LAB entre el cuadro de color definido como la mediana y el color del cuadro delimitador del automóvil a partir del valor de este errorDescripción del enfoque de la tarea.
En nuestro trabajo, utilizamos la arquitectura Resnet-10 para resaltar características. Para resolver una etiqueta y problemas de múltiples etiquetas, se eligieron las funciones de activación de
softmax y
sigmoide, respectivamente.
Una cuestión importante fue la elección de la métrica por la cual pudimos comparar nuestros resultados. En el caso de las tareas de una etiqueta, puede seleccionar la clase que corresponde a la
respuesta máxima . Sin embargo, una solución de este tipo obviamente no funcionará en el caso de máquinas multilabel / multicolores, ya que argmax produce un color muy probable. La métrica
L1 depende del número de clases, por lo tanto, tampoco podría usarse para comparar todos los resultados. Por lo tanto, se decidió detenerse en el área métrica bajo la
curva ROC (ROC AUC - área bajo la curva) como universal y universalmente reconocida.
Trabajamos en dos espacios de color. El primero es el
RGB estándar, en el que elegimos 8 clases: dividimos el cubo RGB en 8 subcubos idénticos: blanco, negro, rojo, verde, azul, rosa, amarillo, cian. Tal partición es muy cruda, pero simple.
Divida el espacio de color RGB en 8 áreasAdemás, realizamos estudios con el espacio de color LAB, que utilizó la partición en 810 clases. ¿Por qué tanto? LAB se introdujo después de que el científico estadounidense
David MacAdam estableciera que hay áreas de colores que no son visibles para el ojo humano (
elipses de MacAdam ). LAB se construyó de modo que en él estas elipses parecían círculos (en la sección de brillo L constante).
Elipses de MacAdam y espacio de color LAB ( fuente )En total, hay 81 círculos en la sección de dichos círculos. Tomamos el paso 10 con respecto al parámetro L (de 0 a 100), obteniendo 810 clases. Además, realizamos un experimento con una clase L constante y, en consecuencia, 81.
RGB y LAB
Se obtuvieron los siguientes resultados para el problema de 8 clases y el espacio RGB:
Función de activación | Tarea multicabel | ROC AUC |
---|
softmax | - | 0,97 |
sigmoide | ✓ | 0,88 |
Tabla de resultados de reconocimiento de color para máquinas en un problema de 8 clasesParece que el resultado para la tarea de múltiples etiquetas ya es bastante bueno. Para verificar este supuesto, construimos una matriz de error, tomando 0.55 como el valor umbral para la probabilidad. Es decir Si se supera la probabilidad de este valor para el color correspondiente, suponemos que la máquina está pintada en este color. A pesar de que el umbral se elige lo suficientemente bajo, se pueden ver errores típicos en la determinación del color del automóvil y sacar conclusiones.
Tabla de resultados de reconocimiento de color para automóviles en problemas de 8a claseSolo mira las líneas correspondientes a los colores verde o rosa para asegurarte de que el modelo está lejos de ser perfecto. Sobre la pregunta de por qué, con un gran valor métrico, se obtiene un resultado tan infructuoso tan extraño, volveremos e indicaremos de inmediato: cuando consideramos solo 8 clases, una gran cantidad de colores cae en las clases "blanco" y "negro", por lo tanto, tal resultado .
Por lo tanto, pasaremos al espacio de color LAB y realizaremos investigaciones allí.
Función de activación | Tarea multicabel | ROC AUC |
---|
softmax | - | 0.915 |
sigmoide | ✓ | 0.846 |
Tabla de resultados de reconocimiento de color de máquina en el problema de clase 810El resultado es menor, lo cual es lógico, ya que el número de clases ha aumentado en dos órdenes de magnitud. Tomando el resultado sigmoideo como punto de partida, intentamos mejorar nuestro modelo.
LAB: experimentos con diferentes pesos
Antes de esto, todos los experimentos se realizaron con pesos unitarios en la función de
pérdida (
pérdida ):
Aquí GT es verdad fundamental, W es pesas.
Puede ingresar una
distancia en el espacio de color LAB. Digamos que tenemos una unidad en GT. Entonces corresponde a algún paralelepípedo rectangular en el espacio de color LAB. Este paralelepípedo (más precisamente, su centro) se elimina a una distancia diferente de todos los demás paralelepípedos (nuevamente, sus centros). Dependiendo de esta distancia, puede experimentar con las siguientes escalas:
a) Cero en lugar de una unidad en GT, y al alejarse de él, un aumento en los pesos;
b) Por el contrario, en lugar de una unidad en GT, es uno; cuando se retira, es una caída de peso;
c) Opción a) más un pequeño aditivo gaussiano con una amplitud de ½ en lugar de una unidad en GT;
d) Opción a) más un pequeño aditivo gaussiano con una amplitud de 1 en lugar de una unidad en GT;
e) Opción b) con un pequeño aditivo a la máxima distancia de la unidad en GT.
La última versión de las escalas con las que realizamos experimentos es, como la llamamos, triple Gauss, es decir, tres distribuciones normales con centros en lugar de unidades en el GT, así como a la mayor distancia de ellos.
Tres distribuciones normales centradas en las unidades en el GT y a la mayor distancia de ellasTendrá que explicarse con más detalle. Puede seleccionar los dos paralelepípedos más distantes y, por lo tanto, las clases, y compararlos en la lejanía del original. Para la clase correspondiente a la lejana, la amplitud de distribución se establece igual a 0,8, y para la segunda es m veces menor, donde m es la relación de la distancia desde la fuente al remoto lejano a la distancia entre la fuente y la cercana.
Los resultados se muestran en la tabla. Debido al hecho de que en la escala de la opción a) había cero pesos, solo para las unidades en GT, el resultado en ellas resultó incluso peor que el punto de partida, ya que la red no tuvo en cuenta las definiciones de color exitosas, aprendiendo peor. Las variantes de los pesos b) ye) prácticamente coincidieron, por lo tanto, el resultado en ellas coincidió. El mayor incremento en puntos porcentuales en comparación con el resultado inicial se mostró por la variante de pesos f) - triple gauss.
Función de activación | Numero de clases | Tipo de pesos | ROC AUC |
---|
sigmoide | 810 | a) | 0.844 |
b), e) | 0.848 |
c) | 0,888 |
d) | 0.879 |
f) | 0,909 |
Resultados de reconocimiento de color de máquinas con problemas de clase 810 con diferentes opciones de pesoLAB: experimentando con nuevas etiquetas
Entonces, realizamos experimentos con diferentes pesos en
pérdida . Luego decidimos intentar dejar los pesos como uno solo, y cambiar las etiquetas, que se transfieren a la función de pérdida y se utilizan para optimizar la red. Si antes de eso las etiquetas coincidían con GT, ahora decidieron usar nuevamente distribuciones gaussianas con centros en el lugar de las unidades en GT:
La motivación para esta decisión es la siguiente. El hecho es que con las etiquetas ordinarias todos los automóviles en los conjuntos de datos se dividen en un número fijo de clases, menos de 810, por lo que la red aprende a determinar el color de los automóviles de solo estas clases. Con nuevas etiquetas, los valores distintos de cero caen en todas las clases, y podemos esperar un aumento en la precisión para determinar el color del automóvil. Experimentamos con dos sigma (desviaciones estándar) para las distribuciones gaussianas anteriores: 41.9 y 20.9. Por qué La primera sigma se elige de la siguiente manera: se toma la distancia mínima entre clases (28) y la sigma se determina a partir de la condición de que la distribución disminuye dos veces en la clase adyacente al GT'nom. Y la segunda sigma es solo dos veces más pequeña que la primera.
Distribución de conjuntos de datos de entrenamiento de automóviles por clases con diferentes etiquetas en pérdidaDe hecho, fue posible mejorar aún más el resultado utilizando dicho truco, como se muestra en la tabla. Como resultado, la precisión de la determinación alcanzó 0.955.
Función de activación | Numero de clases | Tipo de etiqueta | Tipo de pesos | ROC AUC |
---|
sigmoide | 810 | de costumbre | unos | 0.846 |
de costumbre | tres gauss | 0,909 |
nuevo, σ 1 | tres gauss | 0.955 |
nuevo, σ 2 | 0.946 |
Resultados de reconocimiento de color para máquinas en el problema de la clase 810: con etiquetas ordinarias y pesos unitarios, con etiquetas y pesos ordinarios en forma de triple Gauss, con nuevas etiquetas y pesos unitariosLABORATORIO: 81
Si hablamos de experimentos fallidos, debemos mencionar el intento de entrenar una red con 81 clases y un parámetro constante L. Notamos durante experimentos anteriores que el brillo está determinado por la red con bastante precisión, y decidimos entrenar solo los parámetros ayb (entonces llamado las otras dos coordenadas en LAB). Desafortunadamente, a pesar del hecho de que la red pudo entrenar perfectamente en el avión, mostrando un mayor valor en términos de métrica, la idea de establecer el parámetro L en la salida de la red como promedio para el
cuadro delimitador del
automóvil se estrelló y el color real y, por lo tanto, definidos fueron muy diferentes.
Comparación con la resolución de un problema sin usar redes neuronales
Ahora volvamos al principio y comparemos lo que nos pasó con el reconocimiento del color del automóvil sin el uso de redes neuronales.
Los resultados se muestran en las siguientes figuras. Se puede ver que el pico se ha vuelto 3 veces más, y la cantidad de autos con un gran error entre el verdadero y un cierto color ha disminuido significativamente.
La distribución de la proporción de automóviles con el valor de error L2 en el espacio LAB entre el cuadro delimitador del color definido como la mediana y el color del cuadro delimitador del valor del errorDistribución de la proporción de automóviles con el valor de error L2 en el espacio LAB entre el color en la salida de la red neuronal y el color del cuadro delimitador del automóvil del valor de este errorEjemplos
Los siguientes son ejemplos de reconocimiento de color de automóviles. La primera es que la máquina negra (un caso típico) se reconoce como negra, y la distancia en el espacio LAB entre el color verdadero y el específico (18.16) es menor que la distancia mínima entre las clases (28). En la segunda figura, la red no solo pudo determinar que el automóvil estaba iluminado (hay una alta probabilidad que corresponde a una de las clases de colores blancos), sino también su color real (plata). Sin embargo, la máquina de la siguiente figura, también iluminada, no fue detectada por la red como roja. La red no pudo determinar el color del automóvil que se muestra en la figura a continuación, que se deduce del hecho de que las probabilidades para todos los colores son demasiado pequeñas.
En muchos sentidos, la tarea se debió a la necesidad de reconocer los automóviles multicolores. La última figura representa un automóvil negro y amarillo de dos tonos. Es muy probable que la red reconozca el color negro, lo que probablemente se deba al predominio de máquinas de este y otros colores similares en el conjunto de datos de entrenamiento, y el color amarillo, que es casi verdadero, entró en el top 3.
Curva ROC: visualización y problemas.
Entonces, en la salida obtuvimos un resultado métrico bastante alto. La siguiente figura muestra curvas ROC para resolver un problema con 8 clases, y para un problema con 810 clases, así como soluciones sin usar redes neuronales. Se puede ver que el resultado es ligeramente diferente al que se escribió anteriormente. Los resultados anteriores se obtuvieron usando TensorFlow, los gráficos a continuación se obtuvieron usando el paquete scikit-learn.
Curva ROC para varias opciones para resolver el problema. A la derecha está la esquina superior izquierda del gráfico izquierdoPuede tomar cualquier número fijo como valores de umbral (por ejemplo, Tensorflow, cuando establece el parámetro correspondiente en 50, toma el mismo número de umbrales de 0 a 1 a intervalos iguales), puede usar los valores en la salida de la red, o puede limitarlos desde la parte inferior para no tener en cuenta valores del orden de 10
-4 , por ejemplo. El resultado de este último enfoque se muestra en la siguiente figura.
Curva ROC para varias opciones para resolver el problema con un umbral de 10 -4Se puede ver que todas las curvas correspondientes a la solución del problema utilizando redes neuronales son característicamente mejores (más altas) que la solución del problema sin ellas, pero no se puede elegir la mejor curva entre las primeras. Según el umbral que elija el usuario, las diferentes curvas corresponderán a las diferentes soluciones óptimas para el problema. Por lo tanto, por un lado, encontramos un enfoque que nos permite determinar con precisión el color de la máquina y muestra una métrica alta, por otro lado, hemos demostrado que el límite aún no se ha alcanzado y la métrica del área bajo la curva ROC tiene sus inconvenientes.
Listo para responder preguntas y escuchar comentarios en los comentarios.