leaguilar / election_count_helper

4 stars 2 forks source link

Algunas preguntas #4

Closed juanmed closed 5 years ago

juanmed commented 5 years ago

Qué tal @leaguilar,

Gracias por compartir tu código.

Revisando el nb de AnalysisData_PresidenteyVice.ipynb, observé que las coordenadas del bounding box que contiene todos los totales son siempre:

p1d=(380,720)
p2d=(600,1950)

Y por tanto el diccionario que se obtiene en ExtractData(img) usando pytesseract.image_to_data no se utiliza en ningún momento. Me preguntaba si es correcto y, si sí, ¿cuál era la idea original con el diccionario devuelto por pytesseract y por qué ya no se utilizó?

Por otro lado, para analizar actas de otro tipo (alcaldes, diputados, etc), supongo entonces sería suficiente con cambiar las coordenadas de p1d y p2d para que se ajusten a la ubicación de los datos, ¿cierto?

Y como último tema, las images almacenadas en el directorio ./results continen los bounding boxes de los dígitos que...

a. ¿...que la red neuronal no puede identificar correctamente? o b.¿...que nocoinciden con el dígito en el .json proporcionado por el tse para dicha acta?

Creo que la respuesta es b, pero entendí lo contrario de nuestra conversación previa por skype. Observando las imagenes en dicho directiorio, muchos de los dígitos fueron correctamente identificados (p.ej. a mano hay un 8 y la etiqueta es 8) y me causa duda.

Gracias!

leaguilar commented 5 years ago

@juanmed, hola y gracias por tus preguntas.

Todavia tengo que limpiar el codigo. Este codigo comenzo con proposito general, y por ultimo solo le deje los defaults para presidente y vicepresidente.

¿cuál era la idea original con el diccionario devuelto por pytesseract y por qué ya no se utilizó?

La idea de p1d y p2d es tener defaults para el bounding box y usar el texto encontrado por tesseract para tener un mejor estimado.

Esto esta mejor implementado en: https://github.com/leaguilar/election_count_helper/blob/master/mt/PrepareData.ipynb (donde segui trabajando en esa funcion con proposito general)

La idea principal es utilizar palabras faciles de encontrar en el acta para mejorar el estimado del bounding box, o incluso para determinar si esta en la orientacion correcta (mira PrepareData.ipynb)

Es mas valioso cuando no podes usar un estimado fijo para la mayoria de boletas, para las de Presi y vice era un poco de overkill pero igual puede ser util para digamos determinar orientacion.

Por otro lado, para analizar actas de otro tipo (alcaldes, diputados, etc), supongo entonces sería suficiente con cambiar las coordenadas de p1d y p2d para que se ajusten a la ubicación de los datos, ¿cierto?

Ese es el problema principal, la variacion entre todos los cientos de tipos de boleta, cada municipalidad tiene un distinto numero de alcaldes, y los scans estan movidos, etc.

Y como último tema, las images almacenadas en el directorio ./results continen los bounding boxes de los dígitos que... a. ¿...que la red neuronal no puede identificar correctamente? o b.¿...que nocoinciden con el dígito en el .json proporcionado por el tse para dicha acta?

Estrictamente marca los rectangulos donde la prediccion de la ANN no coincide con el digito en el .json. Hay 2 formas en las que esto puede pasar ("error types" en terminos estadisticos). Uno, que la ANN reconozca mal la imagen del digito (o basura) y por tanto aunque el digito en el JSON fuese correcto, no le pega. Dos, que la ANN haya reconocido bien el digito y el digito del JSON este mal.

La idea principal del proyecto es solo observar los errores, y que humanos determinen el tipo de error y lo corrijan. Para ser explicito en la respuesta a tu pregunta (a y b) .

juanmed commented 5 years ago

@leaguilar gracias por las respuestas, queda más claro. Voy a ver el otro notebook que me recomiendas. Por último he visto que los scripts analizan los totales del lado izquierdo de las actas, pero no los que se encuentran en el lado derecho (algunos partidos, votos nulos, validos, inválidos, etc). Me preguntaba si esto es intencional y si sí, si hay algun plan para obtener los totales del lado derecho.

Gracias!

leaguilar commented 5 years ago

@juanmed el plan original era primero tener una solucion robusta para los digitos de los partidos. Ya eso te daria un buen "heuristic" para determinar que actas fueron potencialmente mal digitadas, que era la intencion de este proyecto.