python - redes - tensorflow reconocimiento de imagen
TensorFlow: ¿Cómo manejar los datos etiquetados como vacíos en la segmentación de imágenes? (2)
Me preguntaba cómo manejar partes no etiquetadas de una imagen en la segmentación de imagen usando TensorFlow. Por ejemplo, mi entrada es una imagen de altura * ancho * canales. Las etiquetas también tienen el tamaño alto * ancho, con una etiqueta por cada píxel.
Algunas partes de la imagen están anotadas, otras partes no. Me gustaría que esas partes no tuvieran ninguna influencia en el cálculo del gradiente. Además, no estoy interesado en la red que predice esta etiqueta "nula".
¿Hay una etiqueta o una función para esto? En este momento estoy usando tf.nn.sparse_softmax_cross_entropy_with_logits
.
No estoy 100% familiarizado con TF. Sin embargo, ¿ha considerado usar el parámetro de weights
de la pérdida?
Mirando tf.loses.sparse_softmax_cross_entropy
tiene un weights
parámetros
weights
: Coeficientes para la pérdida. Esto debe ser escalar o del mismo rango que las etiquetas.
Puede establecer el weight
de los píxeles "nulos" en cero, haciendo que la pérdida los ignore.
También puede eliminar la reducción de tf.nn.sparse_softmax_cross_entropy_with_logits
y usar tf.losses.compute_weighted_loss
para realizar la ponderación.
Si comprendo correctamente, tiene una parte de cada imagen con una etiqueta vacía en la que no está interesado en absoluto. Ya que no hay una manera fácil de obtener el valor real detrás de estos espacios vacíos, ¿por qué no asigna estos puntos a la etiqueta de fondo y trata de obtener resultados para su modelo? Intentaría en un estado de preprocesamiento borrar las etiquetas de datos de esta etiqueta vacía y sustituirlas por una etiqueta de fondo.
Otra estrategia posible, si simplemente no desea asignar etiquetas de vacío al fondo, es ejecutar una máscara (con un movimiento continuo de arriba a abajo de derecha a izquierda) para verificar los píxeles de neigthbooring desde un píxel de vacío (digamos un área de 5x5 píxeles) y asigne a los píxeles nulos la etiqueta más común además de la nula.
Además, siempre puede mantener un mejor subconjunto de los datos, filtrando los datos donde el porcentaje de etiquetas vacías supera el umbral. Puede mantener solo imágenes sin etiquetas vacías, o más probablemente puede mantener imágenes que tienen solo un umbral (por ejemplo, 5%) de puntos no etiquetados. En estas imágenes puede implementar las estrategias antes mencionadas para reemplazar las etiquetas vacías.