CEEU-lab / city_modeller

Urban dynamics performance assessment with data-driven modelling templates
GNU General Public License v3.0
0 stars 0 forks source link

Algoritmos de segmentación y métodos de thersholding #20

Open PyMap opened 1 year ago

PyMap commented 1 year ago
  1. Hoy el city modeller tiene la capacidad de consultar vistas panorámicas en GSV y acceder a sus imágenes. Concretamente aca.

Las imagenes se segmentan aca utilizando esta librería. Para nuestro caso de uso funciona bastante bien ya que trabajamos con vistas panorámicas y no con imagenes aéreas (al respecto, sería de gran utilidad conocer un poco más sobre este recurso para segmentar imagenes satelitales).

De todas maneras, esta librería no se distribuye en pip y si bien el último commit es de 2020, no estaría mal hacer una exploración más exhaustiva para conocer otras alternativas en python.

  1. Una vez que la imagen está segmentada, es posible contar con las bandas RGB en pixeles. En este caso se calcula la diferencia entre los rojos y azules contra la banda verde. El método que nosotros estamos usando multiplica la diferencia del rojo con el verde y del azul con el verde.

También podrían haber otras maneras de establecer esa diferencia. Por ejemplo,

# busco celdas con mayor intensidad de reflactancia en las bandas del Green
barrio_img <- caballito[[1]]
prom_RB <- mean(barrio_img$Red, barrio_img$Blue)
G_RB <- barrio_img$Green/prom_RB # relacion entre el verde y las otras bandas
hist(terra::values(G_RB),100)

image

Otra cosa muy interesante aca es que incluye las sombras. Lo que habría que ver es cuál es el criterio de los tres thresholds (0.6, 0.9, 0.6). También sería interesante entender un poco mejor cómo funciona OTSU

PyMap commented 1 year ago

Este recurso es interesante para revisar el tema de pymeanshift/OTSU

https://scikit-image.org/docs/dev/auto_examples/segmentation/plot_thresholding.html

Parecería usarse así:

from skimage.filters import threshold_otsu

threshold = threshold_otsu(img pixel values)
print(round(threshold, 2))

Acá un ejemplo de uso https://docs.digitalearthafrica.org/en/latest/sandbox/notebooks/Real_world_examples/Urban_change_detection.html

(cc @NMonnerSans )