Investigación
Semana 8
El 4 de Marzo del 2014 llevé a cabo la octava reunión con mi asesora de tesis donde se dio revisión a mi trabajo con el avance que tenía en cuanto a redacción y código. En esa entrega me falto completar los primeros capítulos y tuve poco avance en lo que era parte de esa semana, por lo que perdí un par de puntos en mi calificación de la semana. La asesora me mencionó muchas correcciones que había que hacer y se explicó el avance de redacción que debería presentar para esta semana.
Tareas realizadas
De forma general las tareas realizadas fueron las que se listan a continuación:
- Añadir en los agradecimientos a los revisores.
- Mejora de algunos párrafos para evitar que parezca lista.
- Añadir subsecciones a donde sólo hay una subsección huérfana.
- Corregir problema con nombre de autores.
- Agregar más contenido a los capítulos 4 y 5.
- Diseñar la prueba de experimentos.
- Prueba para determinar proporción de texto recuperado.
- Reutilización de funciones en el código.
Redacción de la tesis
El objetivo de la semana en la redacción de la tesis fue diseñar experimentos. En esta se nos pidió que explicáramos qué se va a probar, con que hardware, con cuántos usuarios y con que datos.
En otras palabras lo que se realizó fue plantear las pruebas que se harán al programa/sistema que estamos desarrollando, esto para cuando se tenga una versión terminada o prototipo disponible.
En mi caso los experimentos los divido en dos secciones, la relacionada a pruebas de desempeño computacional, y la relacionada a pruebas de usabilidad con el usuario.
Para las medidas de desempeño computacional tome en cuenta los tiempo de ejecución, memoria necesaria, porcentaje de texto recuperado.
Mientras que para las pruebas de usabilidad, se tomó en cuenta métodos como el "grupo focal", con por lo menos 5 personas de diferentes sexos y edades.
Proporción de texto recuperado con diferentes técnicas usadas
Utilizando la librería
difflib que provee métodos para determinar la proporción con que una palabra, frase o texto, tiene en similitud con otro parecido o casi idéntico, realicé una prueba para poder comparar la efectividad de diferentes técnicas que he usado hasta el momento en el preprocesamiento de a imagen, lo cual afecta directamente en el desempeño que la herramienta para reconocimiento de texto ofrece.
Para esta prueba, usando una imagen, se copió todo el texto original de un cierto empaque de producto en un archivo de texto plano. Luego se ejecutó el programa que realiza pruebas con ciertas combinaciones de técnicas y se agregó la función que se encarga de comparar el texto recuperado con el texto original.
Se muestra el resultado que se generó después de la ejecución para cada prueba en la imagen, y se menciona la técnica que se utilizó en la imagen.
Imagen en escala de grises.
Uso de escala de grises y binarización invertida.
Difuminado Gaussiano y umbral de Otsu.
Difuminado medio y umbral adaptativo.
Mientras que en el terminal se puede observar el valor de la proporción obtenida de la comparación del texto original y del recuperado.
Los resultados que se obtuvieron desde el terminal están en el mismo orden en que se muestran anteriormente las técnicas usadas en las imágenes.
$ python main.py images/text-sample-3.jpg
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
### Similarity Ratio ###
0.826848249027
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
### Similarity Ratio ###
0.764598540146
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
### Similarity Ratio ###
0.836935166994
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
### Similarity Ratio ###
0.442250740375
Como podemos observar en los resultados la primer y tercera prueba obtuvieron un buen resultado, recuperando hasta un 83% del texto original. Y con lo cual para este caso particular podríamos descartar el uso de la cuarta técnica debido a que la cantidad de texto recuperado fue menos de la mitad.
Es necesario realizar más pruebas con otras imágenes para poder determinar si la variación en los colores, contraste o calidad en la imagen parece afectar en los resultados con dichas técnicas, o si ciertas técnicas mejoran el reconocimiento de texto dependiendo de las características de la imagen.
Avances para la siguiente semana
- Realizar una prueba de los experimentos planteados.
- Continuar con correcciones y redacción.
- Continuar con la implementación de la API.