Luego de un largo proceso de adquisición, etiquetado y curado, quedó pronta una nueva versión del que he bautizado como Clean-Dirty Conteiners in Montevideo, y está disponible en @kaggle !
Sale 🧵contando su génesis, proceso y futuros pasos 👇
Todo comenzó en abril de este año: un vecino compartió una foto del contenedor preguntando qué se podía hacer. Reenvié la queja a la @montevideoIM y en pocas horas la situación se había regularizado. Sin embargo, es algo que pasa seguido...
En ese momento se me ocurrió que este proceso se puede automatizar: verificar el estado del contenedor y si requiere atención, avisar a la Intendencia.
Tomar imágenes del contenedor y twitear de forma automática es un problema sencillo. La parte difícil es saber si el contenedor está sucio o no. Para este punto, se debe entrenar un clasificador de imágenes que requiere datos etiquetados de entrenamiento, algo que no tenía.
Así que comencé a buscar fotos de contenedores en Google Imágenes, Redes Sociales y de noticias. Una búsqueda a mano: la biblioteca que solía usar para imágenes de Google, google-images-download, quedó desactualizada 😖😖😖github.com/hardikvasa/goo…
Con eso conseguí menos de 200 ejemplos: muy pocos. En su mayoría eran casos extremos poco cotidianos: en general cuando la gente se queja o es noticia, la situación es extrema. Conseguí unos pocos limpios de cuando la @montevideoIM muestra cómo quedaron tras una queja.
El siguiente paso fue pedirle a mis amigos y familiares que me pasen fotos de sus contenedores. En pleno #QuedateEnCasa@Diego76978770 tuvo tremenda idea: ¿por qué ir hasta el contenedor, si puedo "caminar" en Google Street View?
Un detalle es que la ubicación es una esquina, y el contenedor puede estar en cualquier parte de la esquina, e incluso puede no estar, los contenedores se cambian de lugar.
Por tanto, hice un pequeño dataset para encontrar contenedores, que también quedó disponible: kaggle.com/rodrigolaguna/…
Con esto, el dataset creció bastante. Sin embargo, la mayoría de las fotos no contenían contenedores, eran de un ángulo malo y eran de contenedores limpios. Además, son muy particulares, contienen blur en ciertas partes y marcas de agua. Por tanto continué la recolección normal.
Con esto llegué a la versión inicial: unas 600 imágenes de contenedores limpios y unas 450 de contenedores sucios. El clasificador inicial que entrené no funcionaba suficientemente bien, así que decidí continuar con la recolección manual: tomar fotos durante paseos/mandados...
Este fin de semana llegué a la versión actual: 1133 imágenes de contenedores limpios y 746 contenedores sucios, separados en entrenamiento y test de forma independiente.
Algunas particularidades: el etiquetado binario hace que un montón de grises vayan a blanco o negro, limpio o sucio. ¿Qué pasa si hay apenas una bolsa fuera del contenedor? O un sillón? O una caja? No es lo correcto, pero ¿amerita un reclamo?.
En principio, todo surgió como un pasatiempo de cuarentena. Poner una cámara frente a cada contenedor no es muy viable a gran escala. La ventaja de tener una cámara dedicada a un contenedor es que apenas se ensucia, automáticamente se reporta.
Conversando sobre el tema, fueron surgiendo otras opciones: se podrían utilizar las cámaras de los autos que recorren la ciudad multando vehículos subrayado.com.uy/asi-funcionan-… Con una misma cámara se pueden fiscalizar múltiples contenedores de manera automática
Otra posibilidad sería desarrollar una aplicación que permita a los vecinos reportar el estado de los contenedores de su barrio mediante imágenes. Esto ya existe:
Se llama Por mi barrio, de @DATAuy , permite reportar problemas en general por parte de los ciudadanos, en particular, sobre el estado de contenedores. Se genera un reporte que va derecho a la @montevideoIM . pormibarrio.uy
Sería interesante acceder a esa base de imágenes para incrementar el dataset. En ese sentido, un clasificador podría ayudar a priorizar las denuncias, aunque desconozco si el volumen de datos recibido amerita.
Por último, ¿es útil denunciar contenedores sucios?
Según Eduardo Fernandez, director de limpieza de la IMM, cuando reciben denuncias las resuelven en menos de 24hs, pero muchas veces "nadie denuncia". "A nosotros los reclamos nos sirven porque nos podemos enterar de lo que está pasando". elobservador.com.uy/nota/otro-efec…
Como comentario final, no creo que esto sea la panacea, pero quizá sea útil. Por lo pronto comparto el dataset. En breve espero seguir con los siguientes pasos y antes de fin de año quizá tener el bot corriendo 🤖🏃♂️💨
Un detalle que olvidé mencionar, pero creo importante: todo eldataset está público bajo licencia @creativecommons 4.0 cc BY: cualquiera puede usarlo con cualquier propósito, incluso comercial, sin siquiera avisarme... la magia de los #DatosAbiertos
de más está decirlo: si quieren contribuir al dataset, no duden en contactarme. No tiene por qué ser una base de datos entera, recibo de a pocas fotos igual 😁😁
El dataset va a seguir creciendo 🤓
Muchas gracias a @ObservadorUY por la posibilidad de difundir el trabajo!
Como soy muy ansioso 🙈, hice un breve script para chequear cómo va cambiando la cantidad de apoyos 📨📨 en cada propuesta 🤖🤖
Para poner un 'orden', absolutamente arbitrario, voy a compartirlas ordenadas según la cantidad de apoyos nuevos que han recibido desde el 10/6 a las 17hs, al 15/6 11hs.
Este "reporte" perfectamente podría automatizarse, pero mi ansiedad no llega a tanto... 😅
Hoy hace 76 días que pisé por ultima vez @Pyxisportal edificio. Ese Viernes 13 fue el último en que fui a trabajar, almorcé con mis compañeros y terminó la jornada con un #AsadoDeLosNuevos #WinterIsComing y con ello las naranjas. Y qué tiene que ver?
La 🍊 es de mis frutas favoritas, y pelaras sin enchastrarme las manos es de las habilidades más elogiadas en el piso 10, así que decidí escribir un hilo 🧵 sobre cómo pelar una y no hacer un desastre en el camino, para los compas con los que hace 76 días no almorzamos juntos
Lo fundamental para esto es no cortar los gomos: cortar los gomos libera el jugo y asegura el enchastre. Es por esto que preferimos las naranjas de mesa: una cáscara gruesa facilita el trabajo.
El primer paso es cortar arriba y abajo los "polos" de la naranja
Según la @montevideoIM "Se consideran ruidos molestos los que superen 45 dB(A) en el interior de la vivienda denunciante, entre las 7.00 y las 22.00 horas, y 39 dB(A) entre las 22.00 y las 7.00 horas"... Pero pero pero...
Esto viene de hace tiempo: largas jornadas de #homeoffice con oídos taladrados por la bendita obra de la rambla. En particular lo notamos luego que volvió la construcción de la cuarentena, el contraste fue terrible.
Sin embargo...
Hoy es el tercer día consecutivo que empezaron a laburar de noche. Si, a estas horas. Hicimos la denuncia al servicio de convivencia departamental, 29010006. Nos dijeron que tenían permiso para trabajar por las noches porque estaban atrasados...
Entiendo que la idea es eliminar esa parada para facilitar el tránsito. Sin embargo, somos unos cuantos que vamos hasta ahí cada día a tomar el bus. Esa medida nos perjudica. (Sigue)
Se me ocurre que en vez de suprimir la parada esa, se pueden tomar otras medidas para mejorar el tránsito en la zona, que no desinsentiven el transporte colectivo, ejemplos: (sigue)
And finally, after finding many different ways on how not to do this.... some characters start to appear! Much more things to prove yet but at least there are some of them :D #Khipu2019@DelCruzar
@DelCruzar Well, I could submit my first (baseline?) model and it scores 1.0. What does it exactly means? not really sure, 0 is a perfect match, so the lower, the better. The score is the average *error* among each of the evaluation samples...
@DelCruzar ... where *error* is the levenshtein distance between both strings (predicted and real) divided by the number of chars in the real string.
But, what is levenshtein distance?