|
|
|
# Índice
|
|
|
|
- [22 de noviembre 2022](#22-de-noviembre-2022)
|
|
|
|
- [26 de octubre 2022](#26-de-octubre-2022)
|
|
|
|
- [18 de octubre 2022](#18-de-octubre-2022)
|
|
|
|
- [12 de octubre 2022](#12-de-octubre-2022)
|
|
|
|
- [20 de setiembre 2022](#20-de-setiembre-2022)
|
|
|
|
- [6 de setiembre 2022](#6-de-setiembre-2022)
|
|
|
|
- [30 de agosto 2022](#30-de-agosto-2022)
|
|
|
|
- [9 de agosto 2022](#9-de-agosto-2022)
|
|
|
|
- [15 de julio 2022](#15-de-julio-2022)
|
|
|
|
- [17 de junio 2022](#17-de-junio-2022)
|
|
|
|
- [10 de junio 2022](#10-de-junio-2022)
|
|
|
|
- [3 de junio 2022](#3-de-junio-2022)
|
|
|
|
- [19 de mayo 2022](#19-de-mayo-2022)
|
|
|
|
- [21 de abril 2022](#21-de-abril-2022)
|
|
|
|
- [8 de abril 2022](#8-de-abril-2022)
|
|
|
|
- [31 de marzo 2022](#31-de-marzo-2022)
|
|
|
|
- [16 de marzo 2022](#16-de-marzo-2022)
|
|
|
|
- [2 de marzo 2022](#2-de-marzo-2022)
|
|
|
|
- [23 de diciembre 2021](#23-de-diciembre-2021)
|
|
|
|
- [9 de diciembre 2021](#9-de-diciembre-2021)
|
|
|
|
- [29 de noviembre 2021](#29-de-noviembre-2021)
|
|
|
|
- [4 de noviembre 2021](#4-de-noviembre-2021)
|
|
|
|
- [18 de octubre 2021](#18-de-octubre-2021)
|
|
|
|
- [23 de setiembre 2021](#23-de-setiembre-2021)
|
|
|
|
- [9 de setiembre 2021](#9-de-setiembre-2021)
|
|
|
|
- [26 de agosto 2021](#26-de-agosto-2021)
|
|
|
|
- [12 de agosto 2021](#12-de-agosto-2021)
|
|
|
|
- [29 de julio 2021](#29-de-julio-2021)
|
|
|
|
- [15 de julio 2021](#15-de-julio-2021)
|
|
|
|
- [1 de julio 2021](#1-de-julio-2021)
|
|
|
|
- [10 de junio 2021](#10-de-junio-2021)
|
|
|
|
- [27 de mayo 2021](#27-de-mayo-2021)
|
|
|
|
- [13 de mayo 2021](#13-de-mayo-2021)
|
|
|
|
|
|
|
|
# 22 de noviembre 2022
|
|
|
|
|
|
|
|
Se hicieron consultas con respecto a la presentación final del proyecto. Se resolvió:
|
|
|
|
- Considerar 2 o 3 cambios de locutor para la presentación final.
|
|
|
|
- Sobre las impresiones del documento, se recomienda que sean color, a doble faz, con tapa transparente y contratapa, y rulo.
|
|
|
|
- Tener un plan de respaldo por cualquier fallo que se pueda dar en el momento de la presentación. Por ejemplo, una computadora de respaldo, o los recursos descargados por si falla la internet.
|
|
|
|
- Sobre el video, que este sea autocontenido, e incluya textos que describan lo que se muestra. Antes de que este comience, introducirlo y explicar qué se puede esperar de él.
|
|
|
|
- Incorporar más tablas de resultados.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Realizar las correcciones provistas por los tutores en el documento final.
|
|
|
|
- Continuar con la elaboración de la presentación y las diapositivas.
|
|
|
|
|
|
|
|
# 26 de octubre 2022
|
|
|
|
|
|
|
|
Se conversó sobre el estado actual del documento final, y se discutieron algunas dudas planteadas por el equipo, donde se resolvió:
|
|
|
|
|
|
|
|
- Explicar el umbral de distancia de la mejor manera posible, pero sin la necesidad de que tenga una especificación metódica asociada.
|
|
|
|
- Explicar que se utilizó el conjunto de test de LFW de sklearn .
|
|
|
|
- Redactar un párrafo explicando el problema que se tiene con los promedios de resultados de los distintos experimentos, por haberse realizado con diferentes cantidades de ejecuciones, y enviarlo a los tutores para que lo evalúen en conjunto.
|
|
|
|
- Agregar a la leyenda de la tabla que compila los resultados de todos los experimentos una frase recordando que no todos los experimentos tienen la misma cantidad de ejecuciones.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Realizar los cambios mencionados sobre el documento final.
|
|
|
|
|
|
|
|
# 18 de octubre 2022
|
|
|
|
|
|
|
|
Se conversó sobre el estado actual del documento final, y se discutieron algunas dudas planteadas por el equipo, donde se resolvió:
|
|
|
|
|
|
|
|
- No incluir la cantidad de ejecuciones de las pruebas en cada tabla, dado que no se considera necesario.
|
|
|
|
- Sobre el diagrama que representa los pasos seguidos en la etapa de experimentación, se recomendó escribir una descripción a alto nivel de este, y explicar a qué corresponde cada color.
|
|
|
|
- Sobre el formato de las conclusiones, si bien actualmente se encuentran punteadas, este será determinado una vez los tutores hayan leído la sección.
|
|
|
|
- En cuanto a la imposibilidad de comparar el modelo de predicción de edad con otros de forma justa, se recomienda justificar si es recomendable o no utilizar dicho modelo matizando una vez más está situación de inconmensurabilidad.
|
|
|
|
- Incluir, en el inicio de cada capítulo, una breve descripción de su estructura y temas abordados.
|
|
|
|
- Sobre la manera de remarcar las decisiones importantes tomadas durante la etapa de experimentación, se plantea la posibilidad de - en vez de encuadrarlas y escribirlas en negrita -, describirlas todas juntas en una tabla al final del capítulo de experimentación.
|
|
|
|
- Se sugiere incluir las imágenes que componen algunos datasets en formato de matriz, para que el lector pueda tener un panorama general de las características de estos datasets En particular, hacerlo para los datasets confeccionados por el equipo, y evaluar hacerlo para el resto en caso de que sea posible.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Realizar los cambios mencionados sobre el documento final.
|
|
|
|
- Continuar con la elaboración de la sección de Solución.
|
|
|
|
- Luego continuar con el Resumen.
|
|
|
|
|
|
|
|
|
|
|
|
# 12 de octubre 2022
|
|
|
|
|
|
|
|
Primero, se conversó sobre el estado actual del documento final, y en base a eso se estableció el siguiente cronograma tentativo a seguir:
|
|
|
|
|
|
|
|
- Semana del 24 de octubre: Tener el documento terminado, pronto para ser revisado por Gonzalo Tejera
|
|
|
|
- Semana del 7 de noviembre: Entregar el documento al tribunal
|
|
|
|
- Semana del 28 de noviembre: Defensa del proyecto
|
|
|
|
|
|
|
|
El cronograma podría retrasarse hasta máximo dos semanas, ya que a partir de la tercera semana de Diciembre se dificulta coordinar un tribunal.
|
|
|
|
|
|
|
|
Luego, se discutieron algunas dudas planteadas por el equipo, donde se resolvió:
|
|
|
|
|
|
|
|
- Sobre la definición de las distintas métricas utilizadas para evaluar los métodos, se plantearon dos alternativas de redacción. Ambas resultaron válidas para los tutores, indicando una preferencia por las que empiezan por “proporción”. Sugirieron referenciar la ecuación correspondiente en cada una.
|
|
|
|
- Sobre el formato “negrita” de texto en las tablas para indicar los mejores resultados, se validó la forma en que se lo está utilizando, y se decidió aclarar en cada tabla el significado de utilizar este formato.
|
|
|
|
- Sobre los experimentos de predicción de características en escenarios reales - género y edad - que se especificaron pero no dio tiempo a realizarlos, se decidió incluirlos en un anexo pero no en la prosa, y hacer referencia a ellos en la sección de trabajo futuro.
|
|
|
|
- Sobre los resultados de las pruebas de predicción de características en datasets, se resolvió desistir de la inclusión de las tablas comparativas, dado que en realidad no sería una justa comparación por utilizar datasets distintos. En su lugar, se explicarán los resultados en la prosa, de tal manera que no se interprete como comparación sino como referencia.
|
|
|
|
- Dado que para algunas métricas - como el MAE - es mejor obtener valores pequeños, a diferencia de por ejemplo la precisión o exactitud, se decidió incorporar la notación utilizada en el paper [Deblurring via Stochastic Refinement](https://arxiv.org/pdf/2112.02475.pdf), donde una flecha indica si una métrica es mejor al ser ser mayor o menor.
|
|
|
|
- Sobre la inclusión de fotos de sujetos de prueba en el documento final del proyecto, para incluir este tipo de imágenes, se solicitará a los sujetos pertinentes una constancia de su consentimiento.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Realizar los cambios mencionados sobre el documento final.
|
|
|
|
- Continuar con la elaboración de la sección de Experimentación.
|
|
|
|
- Luego continuar con la Solución, Conclusiones y finalmente el Resumen.
|
|
|
|
|
|
|
|
# 20 de setiembre 2022
|
|
|
|
|
|
|
|
Se comentaron los avances sobre el documento final. Las secciones de introducción, marco teórico y estado del arte están en una primera versión, a excepción de ciertos cambios que surgieron en la reunión. El equipo quedó de efectuar dichos cambios y enviar una nueva versión del documento a los tutores para ser revisada.
|
|
|
|
|
|
|
|
Algunos puntos destacados que se trataron en la reunión son:
|
|
|
|
- Expresar las medidas en español, incluyendo su traducción al inglés la primera vez que se nombran. Por ejemplo: “(… ) exactitud (del inglés accuracy) (...)”.
|
|
|
|
- Ser consistente con los formatos utilizados para las medidas. Por ejemplo, escribir la exactitud siempre en porcentaje o como número del 0 al 1.
|
|
|
|
- Si bien los resultados de algunos trabajos fundacionales están evaluados sobre una variación de LFW distinta a la que se utiliza para evaluar el resto de los trabajos, se incluirán estos resultados aclarando la diferencia en el dataset.
|
|
|
|
- En cuanto a la diferencia entre objetivos y resultados esperados, “evaluar distintas redes neuronales en el contexto de la RoboCup@Home” sería un ejemplo de objetivo, y “se espera que al menos una de las redes cumpla con los requisitos necesarios y eventualmente poder diferenciar cuál de las dos es mejor para las tareas evaluadas” sería un ejemplo de resultado esperado.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Realizar los cambios mencionados sobre el documento final.
|
|
|
|
- Comenzar la sección de Experimentación.
|
|
|
|
- Luego continuar con la Solución, Conclusiones y finalmente el Resumen.
|
|
|
|
|
|
|
|
# 6 de setiembre 2022
|
|
|
|
|
|
|
|
Se discutió sobre la organización del documento final de tesis sección por sección. Ciertas secciones - el marco teórico, estado del arte y experimentación - estarán fuertemente basadas en documentos ya elaborados - documento de estado del arte y reporte de resultados obtenidos. En particular, se decidió para cada sección incluir lo siguiente:
|
|
|
|
|
|
|
|
*Introducción*
|
|
|
|
- Preguntas disparadoras.
|
|
|
|
- Breve - alrededor de 2 carillas -.
|
|
|
|
- Incluir conclusiones principales.
|
|
|
|
|
|
|
|
*Estado del arte*
|
|
|
|
- Trabajos relacionados más relevantes.
|
|
|
|
- En qué se diferencia nuestro trabajo con los demás.
|
|
|
|
- Incluir tabla comparativa de los distintos trabajos.
|
|
|
|
- Explicar sobre todo los métodos utilizados - FaceNet y MTCNN -.
|
|
|
|
|
|
|
|
*Marco teórico*
|
|
|
|
- Formalizar las herramientas utilizadas.
|
|
|
|
|
|
|
|
*Solución*
|
|
|
|
- Formalizar el problema y la solución propuesta.
|
|
|
|
- Incluir la arquitectura de la solución.
|
|
|
|
|
|
|
|
*Experimentación*
|
|
|
|
- Detallar métricas a utilizar.
|
|
|
|
- Describir las bases de datos utilizadas - tanto de entrenamiento como de evaluación -.
|
|
|
|
- Incluir imágenes que ayuden al lector.
|
|
|
|
|
|
|
|
*Conclusiones y trabajo futuro*
|
|
|
|
- Se abordará en una próxima reunión, dado que será de las últimas secciones en desarrollarse.
|
|
|
|
- Con respecto a trabajos futuros, se recomendó incluir hasta tres.
|
|
|
|
|
|
|
|
Se planteó una discusión de si poner cierta información en la sección de Solución o Experimentación, debido a que el proyecto se centra principalmente en la evaluación de redes, y no incluye un desarrollo de código extenso que pueda describirse como Solución. Se resolvió en principio incluir toda la información de experimentación y evaluación de las redes en la sección de Experimentación, y eventualmente evaluar mover alguna parte a la de Solución.
|
|
|
|
|
|
|
|
Por último, los tutores enviaron dos proyectos que pueden servir como referencia.
|
|
|
|
- [Super-Resolución en Imágenes](https://www.fing.edu.uy/~mmarzoa/tesis/tesis_maestria.pdf)
|
|
|
|
- [Control adaptativo de veleros autónomos](https://gitlab.fing.edu.uy/agustin.rieppi/pg_velero_autonomo)
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Comenzar a escribir el documento final. Se realizará primero la Introducción, Estado del arte, Marco teórico y Experimentación.
|
|
|
|
- Luego continuar con la Solución, Conclusiones y finalmente el Resumen.
|
|
|
|
|
|
|
|
|
|
|
|
# 30 de agosto 2022
|
|
|
|
|
|
|
|
Se recorrió el documento de reporte de resultados junto a los tutores, quienes realizaron algunas sugerencias a tener en cuenta para el documento final del proyecto. De estas sugerencias se destacan:
|
|
|
|
|
|
|
|
- Agregar diagrama de flujo incluyendo cada etapa y su objetivo, de forma que el lector pueda tener imagen global de todo lo que se hizo.
|
|
|
|
- Agregar imágenes sobre las distintas pruebas, para que la lectura sea más amena.
|
|
|
|
- Destacar las oraciones en las que se comunican decisiones tomadas de alguna forma.
|
|
|
|
- Agregar una explicación en la sección 2.4, donde aparece la tabla que resume los demás experimentos, donde se explicite la decisión final de qué método utilizar.
|
|
|
|
|
|
|
|
Luego de revisado el documento, se planteó la posibilidad de continuar con la escritura de un paper o del documento final de tesis. El equipo quedó en tomar la decisión de cuál elaborar primero, y comunicarla a los tutores en cuanto sea tomada.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Comenzar a elaborar el paper o el documento final considerando las sugerencias que se dieron sobre el reporte de resultados
|
|
|
|
|
|
|
|
# 9 de agosto 2022
|
|
|
|
|
|
|
|
Se presentaron los resultados obtenidos al ejecutar la prueba 2_1, que fue ejecutada con 3 y 5 personas en el mismo FOV (Field Of View). En particular, sobre las ejecuciones que incluían 5 personas en el mismo FOV, se aclaró que se produjo un batch extra para uno de los dos modelos. En otras palabras, para Esler se realizaron 10 ejecuciones, y para DeepFace 20. Esto fue así porque se consideró que los resultados que arrojó el segundo modelo podían ser mejorables, y se decidió darle una segunda oportunidad. Sin embargo, estos empeoraron. Se manejó descartar los resultados, pero estos son relevantes. Se evaluó también hacer una ejecución más de Esler - para tener la misma cantidad de ejecuciones -, pero las condiciones de la prueba cambiarían (iluminación, pelo, etc) por lo cual no serían comparables. Es por esto que se decidió conservar todas las ejecuciones y simplemente reportar el promedio, explicando lo expresado previamente.
|
|
|
|
|
|
|
|
Se presentaron los resultados obtenidos para la prueba 1_2 considerando distintas variaciones (uso de lentes, tapaboca, etc). Se observó que los resultados de accuracy de Esler superaron significativamente los de DeepFace, y como es tendencia, el tiempo de ejecución de este último es un orden de magnitud superior al primero.
|
|
|
|
|
|
|
|
Se decidió elaborar un documento resumiendo los resultados, el cual deberá contener para cada prueba su especificación, resultados y conclusiones. También se incluirán conclusiones globales de los resultados obtenidos. El documento comprenderá tanto las pruebas en escenarios reales, como con datasets. Los resultados podrán presentarse en tablas, gráficas, o lo que los represente de mejor manera.
|
|
|
|
|
|
|
|
**Los próximos pasos:**
|
|
|
|
|
|
|
|
- Elaborar el reporte de resultados, descrito anteriormente.
|
|
|
|
- Ejecutar las pruebas de detección de edad y género del método DeepFace cuando sea posible, teniendo está ejecución prioridad baja en comparación al punto anterior.
|
|
|
|
|
|
|
|
# 15 de julio 2022
|
|
|
|
|
|
|
|
Se presentaron los resultados de las pruebas 1_2 y 1_3, que indican para cada método y sujeto de prueba la accuracy y tiempos de ejecución. Dado que se incluye un promedio de estos datos, se sugirió incorporar la desviación en caso de incluir estas tablas en un documento más formal.
|
|
|
|
|
|
|
|
Se observó que la muestra de personas con la que se ejecutó la prueba 1_3 está formada mayoritariamente por familiares de las personas que componen la base de datos. Si bien esto implica un cierto sesgo, se debe recordar que el robot en el cuál se utilizará el sistema de reconocimiento tiene como propósito realizar tareas del hogar, por lo cuál tiene sentido que intente reconocer a gente de la misma familia con mucha frecuencia.
|
|
|
|
|
|
|
|
Se planteó confeccionar un documento informal intermedio de las pruebas con resultados, tablas y conclusiones, donde también se incluirían las pruebas que no fueron especificadas pero surgieron ante la necesidad cosas las variaciones. Este documento servirá como una suerte de bitácora ordenada que contenga todos los experimentos en escenarios reales realizados.
|
|
|
|
|
|
|
|
Se determinó que el threshold que filtra las detecciones obtenidas en función del tamaño de dicha detección sea una variable modificable. De esta manera, se podrá ajustar dependiendo del escenario en el cuál se esté intentando reconocer.
|
|
|
|
|
|
|
|
Dado que las pruebas 1_4 y 2_2 se realizan únicamente sobre DeepFace - estas son las que prueban el desempeño del modelo al detectar el género y edad de las personas -, sus resultados no definirán qué método utilizar. Por esto se ejecutará primero el resto de las pruebas, para así sacar conclusiones y determinar qué método es el más performante. Con respecto a estas otras pruebas, se decide volver a ejecutar la 1_2 incorporando variaciones con múltiples accesorios a la vez, ya que los resultados de esta prueba fueron casi perfectos con respecto a accuracy, y estas variaciones demostraron dificultar más el reconocimiento, por lo que podrían ayudar a determinar cuál tiene mejor desempeño.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Agregar desviaciones en tablas de comparaciones de pruebas si se van a poner en el informe.
|
|
|
|
- Ejecutar nuevamente la prueba 1_2 pero con variaciones, y ejecutar las pruebas 1_4, 2_1 y 2_2, dando prioridad a la 1_2 y 2_1.
|
|
|
|
|
|
|
|
# 17 de junio 2022
|
|
|
|
|
|
|
|
Se presentaron los resultados obtenidos. Si bien no hubo grandes diferencias, la variante de embedding por persona tuvo un desempeño levemente superior, tanto en accuracy como en tiempo. Además, se observó que al aumentar la cantidad de imágenes por persona se obtuvo una mejor accuracy, y el tiempo solo aumentó mínimamente.
|
|
|
|
|
|
|
|
En cuanto a la comparación de los métodos, Esler a priori tendría un mejor desempeño, pero la elección de cuál utilizar está sujeta a las próximas pruebas.
|
|
|
|
|
|
|
|
Tomando en cuenta todo esto, se decide trabajar con un embedding por persona, considerando 5 imágenes en su armado.
|
|
|
|
|
|
|
|
Se decide procesar los resultados obtenidos para determinar cuáles son los accesorios y variaciones que más afectan el desempeño de los modelos.
|
|
|
|
|
|
|
|
Luego, se repasó la especificación de las pruebas restantes. Con respecto a la 2.2 - en la cual se debe reconocer a varias personas en un mismo escenario - se propone realizar alguna ejecución incorporando variaciones del estilo de las mencionadas en el párrafo anterior. En particular, si se agrega alguna de estas variaciones, se agregarán aquellas que hayan causado más dificultades en la prueba 1.1.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Analizar los resultados de la prueba 1.1 para determinar qué variaciones introducen más complicaciones.
|
|
|
|
- Ejecutar las pruebas restantes (1.2, 1.3, 1.4, 2.1, 2.2).
|
|
|
|
|
|
|
|
|
|
|
|
# 10 de junio 2022
|
|
|
|
|
|
|
|
Se presentaron los resultados obtenidos en la ejecución de la prueba 1_1. Como no se obtuvieron grandes diferencias en los resultados, se decidió volver a ejecutar el flujo de la prueba pero introduciendo diversas variaciones, para poner a prueba la performance del modelo en condiciones no habituales. En lugar de utilizar imágenes en tiempo real, se suministrará un conjunto de imágenes ya tomadas. En particular, para las variaciones se considerarán accesorios - gorros, lentes, lentes de sol, bufanda, tapaboca, auriculares, entre otros -, distintos tipos de peinados y una fuente de luz lateral.
|
|
|
|
|
|
|
|
Se decide utilizar solo la base de datos con luz superior.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Ejecutar la prueba 1_1 con las variaciones mencionadas.
|
|
|
|
|
|
|
|
# 3 de junio 2022
|
|
|
|
|
|
|
|
Se presentaron los resultados de la nueva prueba implementada, cuyo objetivo es determinar la performance de los métodos de detección al momento de confeccionar la base de datos. Estas pruebas fueron ejecutadas utilizando las imágenes con luz frontal y con luz lateral, utilizando ambos modelos. Los resultados de recall y precisión no reflejan grandes diferencias entre ambos métodos. Se observa que en algunas imágenes se detectaron caras inesperadas, que surgían del fondo de la imagen - particularmente de rostros cuadros -. Se determinó descartar estas detecciones en el cálculo de las medidas, debido a que si bien es correcto que los métodos las hayan detectado, no eran los rostros principales de las imágenes, y en un caso de uso real hubieran sido descartados.
|
|
|
|
|
|
|
|
En particular sobre DeepFace, se descubrió y solucionó un bug relativo al uso de canales de colores incorrectos, lo cual mejoró la performance en la detección. Además, se detectó durante la reunión un error al momento de filtrar las detecciones por confianza, y es que se estaba usando el mismo threshold para ambos métodos, cuando en realidad se calculó un threshold por método.
|
|
|
|
|
|
|
|
Sobre la prueba 1_1, se decidió en base a sus resultados hacer gráficas ilustrativas que comparen las variables de accuracy, tiempo de reconocimiento, y cantidad de imágenes utilizadas por persona, para presentar en el informe del proyecto. Si bien esta prueba no fue ejecutada aún por completo, se observó que al utilizar un embedding por persona el tiempo de reconocimiento es significativamente menor que al utilizar un embedding por imagen - en los casos en los que se utilizan varias imágenes por persona - y sin comprometer la accuracy. En base a esto se planteó la posibilidad de intentar reconocer a la persona con una base de datos que tenga un embedding por persona, y en caso de que esto falle, intentar reconocerla con una base de datos que utilice un embedding por imagen. Sin embargo, para no agregar más complejidad al proyecto se decidió considerarlo como trabajo futuro.
|
|
|
|
|
|
|
|
Para no atrasar más la ejecución de las pruebas, se decide en caso de no poder ejecutarlas con los individuos de forma presencial, utilizar un video.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Ejecutar la prueba de detección nuevamente para el método Esler, pero con el threshold de confianza correcto.
|
|
|
|
- Continuar y finalizar la ejecución de la prueba 1_1.
|
|
|
|
|
|
|
|
# 19 de mayo 2022
|
|
|
|
|
|
|
|
Se presentaron resultados parciales de la ejecución de la Prueba 1_1, y dado que esta fue ejecutada únicamente con una variación (el sujeto a un metro de la cámara y mirando hacia ella), se decidió también ejecutar la prueba con uno o dos individuos a una distancia mayor, y de perfil. Con respecto a las distancias de las pruebas, se decidió cambiarlas de 3 y 5 metros a 1 y 2 respectivamente, considerando fotos tomadas a estas distancias.
|
|
|
|
|
|
|
|
Se observó que se presentaron algunos inconvenientes a la hora de armar la base de datos con las imágenes solicitadas a los sujetos de prueba. En el caso de DeepFace, no en todas las tomas se detectó una cara. En el caso de Esler, se detectaron caras donde no las había. Se debe resaltar que no se está filtrando las imágenes según la confianza, y realizar este filtro podría mejorar los resultados. Ante estos inconvenientes, se decide especificar una nueva prueba para registrar los valores de precisión y recall de cada modelo a la hora de generar los embeddings.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Especificar la prueba de detección mencionada.
|
|
|
|
- Tomar la decisión de cómo proseguir con respecto a la detección, en base a los resultados de la prueba especificada.
|
|
|
|
- Continuar con la ejecución de la Prueba 1_1.
|
|
|
|
|
|
|
|
|
|
|
|
# 21 de abril 2022
|
|
|
|
|
|
|
|
Se presentó la curva Precision-Recall graficada en base al dataset WIDER Face, y se discutió cuál sería el mejor punto de corte para la confianza en la tarea de detección. Sobre esto, se definió que utilizar el método del codo es la mejor alternativa. Se había planteado la posibilidad de sacrificar un poco la precisión para obtener mejor recall, pero como en el caso de uso de la RoboCup los rostros a detectar se encontrarán relativamente cerca de la cámara del robot, no debería haber problemas de recall, y es prioritario tener buena precisión para que el ruido no afecte la prueba. De todas formas, **esta discusión será plasmada en el informe final del proyecto**.
|
|
|
|
|
|
|
|
Sobre la ejecución de las pruebas, se resolvió construir un instructivo para entregarle a los sujetos de prueba, en el cual se ilustre las posiciones esperadas de los rostros en cada toma.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Elaborar el instructivo mencionado.
|
|
|
|
- Construir la base de datos para ejecutar las pruebas.
|
|
|
|
- Ejecutar las pruebas ya implementadas en un entorno nativo, comenzando por la 1_1.
|
|
|
|
|
|
|
|
# 8 de abril 2022
|
|
|
|
|
|
|
|
Se discutió con los tutores el inconveniente que surge de especificar una prueba en un escenario real para determinar el punto de corte de confianza para la detección: es imprevisible saber qué objetos serán erróneamente detectados como rostros. La solución que se determinó en conjunto con los tutores es utilizar el dataset WIDER Face para determinar el punto de corte, teniendo en cuenta que el equipo ya tiene el resultado de las ejecuciones de los modelos para dicho dataset. Es preciso entonces desarrollar un script que compare las detecciones esperadas con las reales, pero para ello se debe tener en cuenta que para cada imágen pueden existir múltiples detecciones. Entonces, es imperativo determinar qué detección se relaciona con qué anotación, para lo cual se considerará que una detección está asociada a una anotación cuando es la IoU mayor al 50% más coincidente. Una vez definidas estas asociaciones, se tendrá para cada predicción si esta era realmente un rostro o no, así como aquellos rostros para los cuales no hubo ninguna predicción. Con esta información se puede invocar la función _precision_recall_curve_ de _sklearn_ para obtener una asociación uno a uno entre puntos de corte para la confianza, y valores de precisión y recall, pudiendo finalmente determinar un punto de corte óptimo.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Implementar la prueba 2_2.
|
|
|
|
- Determinar el punto de corte de la confianza en base a lo definido.
|
|
|
|
- Ejecutar las pruebas ya implementadas en un entorno nativo, comenzando por la 1_1.
|
|
|
|
|
|
|
|
|
|
|
|
# 31 de marzo 2022
|
|
|
|
|
|
|
|
Se realizó una demo de las pruebas 1_1, 1_3 y 2_1. Surgió un inconveniente en la ejecución de la 1_3, que será revisado y corregido previo a su ejecución final. Además, se comentó que se utilizará la confianza que se obtiene en la detección para decidir si se ejecuta o no el reconocimiento.
|
|
|
|
|
|
|
|
Luego, se discutió sobre la incorporación de reintentos en las pruebas, y se decidió no utilizarlos.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Corregir el inconveniente de la prueba 1_3.
|
|
|
|
- Implementar las pruebas 1_4 y 2_2.
|
|
|
|
- Investigar sobre la determinación de un threshold para la detección en base a la confianza.
|
|
|
|
- Ejecutar las pruebas ya implementadas en un entorno nativo, comenzando por la 1_1.
|
|
|
|
|
|
|
|
# 16 de marzo 2022
|
|
|
|
|
|
|
|
Se planteó modificar la información retornada por las pruebas, agregando cifras significativas a la accuracy, e incorporando datos como la fecha de ejecución, nombre y género del sujeto de prueba.
|
|
|
|
|
|
|
|
Por otro lado, se plantearon algunas dudas sobre las limitaciones de la implementación. En primer lugar, las imágenes a ser procesadas a la hora de construir la base de datos de representaciones vectoriales deberán contener una única persona a representar (si hay más de una, será aquella cuyo cuadro delimitador sea mayor). En segundo lugar, la base de datos solo será actualizada con personas nuevas, no actualizando representaciones ya existentes. Por último, a la hora de reconocer una persona, se realizarán hasta dos reintentos en caso de que el reconocimiento retorne “Desconocido”. Previo a ejecutar los reintentos, se notificará de alguna manera al sujeto de prueba.
|
|
|
|
|
|
|
|
Con respecto a la posibilidad de almacenar los nombres de las personas con sus apellidos, se decidió no darle suma prioridad, ya que en la RoboCup solo se consideran los nombres de pila. De todas formas, podría implementarse más adelante.
|
|
|
|
|
|
|
|
Dado que la Prueba 1.1 es sumamente determinante, se decide ejecutarla para diez personas diferentes.
|
|
|
|
|
|
|
|
En relación a la posibilidad de evaluar los métodos con medidas alternativas a la accuracy, esto será tomado en cuenta en caso de evaluar los métodos con datasets populares, de forma de registrar su desempeño para ser comparado con otros métodos.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Modificar la información retornada por las pruebas de acuerdo a lo discutido.
|
|
|
|
- Continuar implementando las pruebas especificadas.
|
|
|
|
|
|
|
|
# 2 de marzo 2022
|
|
|
|
|
|
|
|
Se presentó una demo de lo trabajado hasta el momento, que incluyó el reconocimiento de rostros a tiempo real por parte de los modelos de la librería DeepFace y la implementación de FaceNet en PyTorch, utilizando ROS. Además, se mostró el reconocimiento de género y edad a tiempo real por parte de la librería DeepFace. Luego, se discutieron alternativas para la implementación de las pruebas, de lo que se concluyeron los siguientes puntos:
|
|
|
|
|
|
|
|
- Descartar rostros de tamaño menor a determinado porcentaje de la imagen, para evitar problemas causados por ruido.
|
|
|
|
- Evaluar qué da mejores resultados: almacenar un embedding por persona, promediando entre sus distintas imágenes, o almacenar un embedding por imagen.
|
|
|
|
- Investigar si es posible retornar un valor de confianza para el reconocimiento, así como para el análisis de género y edad.
|
|
|
|
|
|
|
|
Dado que la imagen no era lo suficientemente fluida, los tutores sugirieron fijar el tamaño de buffer del publicador a 1, y de está forma siempre trabajar con la imagen más actualizada. Además, para acelerar las pruebas, se planteó considerar utilizar Linux nativo y no mostrar imagen al momento de reconocer rostros.
|
|
|
|
|
|
|
|
Se revisaron las pruebas en escenarios reales previamente especificados, y los tutores realizaron comentarios y sugerencias sobre estas.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Agregar una prueba experimental para determinar qué variante de almacenamiento de los embeddings es la mejor, y la cantidad de imágenes óptima por persona. Para esto último, se consideran distintas cantidades de imágenes por persona, para ver cómo varían los resultados en función de la cantidad de imágenes. Se debe considerar que el rostro de dicha persona puede estar en distintas posiciones.
|
|
|
|
- Especificar con mayor exactitud los pasos del flujo de las pruebas.
|
|
|
|
- Investigar sobre otras posibles medidas de desempeño para las pruebas además de la *accuracy*, como por ejemplo la medida *mAP*. Considerar papers de métodos de reconocimiento populares.
|
|
|
|
|
|
|
|
# 23 de diciembre 2021
|
|
|
|
|
|
|
|
Se analizó el documento de especificación de las pruebas en escenarios reales, y se modificaron algunas de las variaciones que se habían planteado. También se tomó nota de algunas recomendaciones que hicieron los tutores a tener en cuenta más adelante con respecto a las pruebas.
|
|
|
|
|
|
|
|
**El próximo paso es:**
|
|
|
|
|
|
|
|
- Implementar las pruebas especificadas, ejecutarlas y registrar los resultados obtenidos.
|
|
|
|
|
|
|
|
|
|
|
|
# 9 de diciembre 2021
|
|
|
|
|
|
|
|
Se mostraron gráficas comparativas de los métodos de detección MTCNN que proveen la librería deepface y la implementación de Esler. Se observó que las diferencias eran pequeñas, por lo que se considera que lo mejor es decidir el método a utilizar luego de realizar pruebas en escenarios reales.
|
|
|
|
|
|
|
|
Con respecto a esto mismo, se observó que los métodos evaluados no se encuentran dentro de los que obtienen mejores resultados. Se considera que esto puede deberse al conjunto de entrenamiento utilizado, por lo que se investigará qué conjuntos utilizaron para entrenar tanto los métodos que se quieren evaluar, como aquellos contra los cuales se los compara.
|
|
|
|
|
|
|
|
Por otro lado, se comentó que al intentar configurar la Jetson Nano, a esta se le agotó rápidamente el espacio de almacenamiento. Se decide entonces probar con una tarjeta SD con mayor capacidad (32GB o 64GB).
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Configurar Jetson Nano.
|
|
|
|
- Investigar los conjuntos de entrenamiento de los métodos de detección utilizados.
|
|
|
|
- Especificar escenarios de prueba reales, de manera que estos sean fácilmente reproducibles. Para estos escenarios, se deben considerar las posibles variaciones de luz, posición del rostro y otras variantes que puedan afectar la escena. En particular, dado que el robot suele ser más pequeño que una persona, es de interés trabajar con rostros vistos desde abajo.
|
|
|
|
|
|
|
|
# 29 de noviembre 2021
|
|
|
|
|
|
|
|
Se mostraron las gráficas generadas al evaluar el método de detección de rostros MTCNN provisto por la implementación de FaceNet en PyTorch.
|
|
|
|
|
|
|
|
También, se mostró brevemente el documento de análisis de resultados obtenidos sobre la predicción de raza, género y edad, y los tutores sugirieron ciertos cambios y adiciones.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Ejecutar el script de evaluación con WIDER Face para los detectores que utiliza la biblioteca Deepface. Luego, comparar los resultados con los obtenidos al evaluar el otro método de detección.
|
|
|
|
- Configurar la placa Jetson Nano para poder trabajar con ella.
|
|
|
|
- Modificar el documento presentado según lo sugerido.
|
|
|
|
|
|
|
|
|
|
|
|
# 4 de noviembre 2021
|
|
|
|
|
|
|
|
Se mostró la distribución de edad, género y raza de los datasets con los que se entrenaron los modelos utilizados por la librería Deepface. Se obervó que la distribución de género es muy desbalanceada, teniendo la mitad de ejemplos correspondientes al sexo femenino de los que se tienen para el masculino. En cuanto a la edad, también se observa una concentración de ejemplos de edades entre 20 y 30 años.
|
|
|
|
|
|
|
|
Además, se mostró una tabla que compara los resultados experimentales obtenidos por el algoritmo que se está evaluando - enfocado a la predicción de edad, género y raza - con los reportados por el creador de la biblioteca DeepFace, y se compilaron algunos resultados interesantes. En general, los resultados obtenidos experimentalmente fueron menores, pero se cree que puede deberse a que el modelo fue entrenado en un dataset diferente al de evaluación, así como al desbalance del dataset de entrenamiento.
|
|
|
|
|
|
|
|
Se observaron las gráficas obtenidas al querer evaluar los métodos contra el dataset de WIDER Face. Dado que los resultados del método no fueron graficados como se esperaba, se analizará si es necesario cambiar algo en la forma de correr el script de evaluación. También se probará evaluar los métodos contra el dataset FDDB.
|
|
|
|
|
|
|
|
Por último, se conversó sobre la posibilidad de comenzar la adaptación de los métodos para que ejecuten sobre el framework ROS. Para facilitar esto, en las próximas semanas los tutores proveerán al equipo de dispositivos Jetson Nano.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Plasmar en un documento el análisis de resultados presentado.
|
|
|
|
- Trabajar en la compatibilización de los métodos con el framework de ROS, para poder hacer pruebas experimentales en un ambiente real.
|
|
|
|
- Analizar el script de evaluación de WIDER Face para lograr ejecutarlo correctamente.
|
|
|
|
|
|
|
|
# 18 de octubre 2021
|
|
|
|
|
|
|
|
Se discutió sobre una complicación que surgió al intentar evaluar los métodos de detección de rostros con el dataset WIDER Face, debido a que el script de evaluación está implementado en MATLAB. Dado que uno de los tutores tiene el programa, se le pasará el script junto a las predicciones a ser evaluadas para que lo ejecute.
|
|
|
|
|
|
|
|
En cuanto a los resultados de las pruebas realizadas sobre la función _analyze_ - que determina género, raza y edad de una persona -, estos serán comparados con los de una línea base para mejorar la forma en la que son evaluados. Además, se analizará la proporción de los datasets con los que se entrenaron los modelos que utilizan esta función, para tener un mejor entendimiento de los resultados.
|
|
|
|
|
|
|
|
También se plantearon dudas que surgieron sobre la revisión del documento del estado del arte.
|
|
|
|
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
- Enviar el script de MATLAB a los tutores para poder evaluar la detección de rostros.
|
|
|
|
- Investigar sobre otros datasets para la evaluación de detección de rostros, por si no es posible ejecutar el script correspondiente a WIDER Face.
|
|
|
|
- Analizar nuevamente las medidas retornadas por los métodos de la biblioteca Deepface.
|
|
|
|
- Modificar el estado del arte acorde a lo discutido.
|
|
|
|
|
|
|
|
# 23 de setiembre 2021
|
|
|
|
|
|
|
|
Se presentaron las tablas de resultados obtenidas al ejecutar las pruebas de verificación de rostros, y se comentaron brevemente los notebooks utilizados para obtener los resultados. Además, se discutió sobre las pruebas relativas al desempeño de la biblioteca para reconocer la edad, raza y género de una persona.
|
|
|
|
|
|
|
|
Sobre la detección de rostros, debido a que el conjunto de datos sobre el cual se evaluará (WIDER Face) no se encuentra etiquetado para su partición de testing, inicialmente se evaluará sobre su partición de validación. Una vez implementada la versión final de las pruebas, se establecerá contacto con Shuo Yang para evaluar los modelos con el conjunto de testing.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Investigar sobre métodos de evaluación utilizados para la detección de rostros, y aplicar uno de ellos.
|
|
|
|
- Seleccionar instancias del conjunto de datos UTK Face para realizar el testing. Se debe considerar mantener la proporción de personas masculinas y femeninas. Si bien el conjunto de datos tiene imágenes de 0 a más de 100 años, se acotará a un rango de edades de entre 15 a 65 años, dado que se cree que la edad de la mayor cantidad de asistentes a la RoboCup se encuentra en ese rango.
|
|
|
|
- Modificar el documento del estado del arte considerando la devolución que realizaron los tutores.
|
|
|
|
|
|
|
|
# 9 de setiembre 2021
|
|
|
|
|
|
|
|
Se presentaron ciertos cambios que se habían realizado sobre la especificación de las pruebas.
|
|
|
|
|
|
|
|
Se estableció que los datasets a utilizar en cada prueba son:
|
|
|
|
|
|
|
|
- WIDER Face para detección de rostros.
|
|
|
|
- LFW para identificación de rostros.
|
|
|
|
- UTK Face para la predicción de edad, género, etnia y emoción.
|
|
|
|
|
|
|
|
Se decidió trabajar con tres métricas de evaluación: accuracy, precision y recall. A su vez, se optó por hacer foco en las variaciones de posición del rostro, iluminación y gestos, dejando en segundo lugar el uso de lentes, el ruido y la posición del cabello. De todas formas, se decide priorizar la ejecución de las pruebas sin considerar estos aspectos, utilizando los datasets ya mencionados.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Realizar las pruebas especificadas.
|
|
|
|
- Registrar los resultados en las tablas definidas.
|
|
|
|
|
|
|
|
# 26 de agosto 2021
|
|
|
|
|
|
|
|
Se discutió la especificación de las pruebas experimentales. Se decide incorporar pruebas que abarquen la predicción de raza y emociones. Sin embargo, se decidió dejar tanto estas pruebas como las de predicción de edad y género para más adelante, priorizando las pruebas de reconocimiento y detección de rostros.
|
|
|
|
|
|
|
|
Es preciso que las pruebas experimentales abarquen los siguientes aspectos:
|
|
|
|
|
|
|
|
- Cantidad de imágenes requeridas por persona, incluyendo variaciones de robustez.
|
|
|
|
- Threshold y distancia entre embeddings a utilizar.
|
|
|
|
- Mantener un embedding por persona, o un embedding por imagen.
|
|
|
|
|
|
|
|
Se observa que estas pruebas se realizarán con sujetos que ya pertenecen a la base de datos. Eventualmente, también se quiere probar la capacidad del componente de agregar a una persona a la base de datos, es decir, cuál es su comportamiento al manejar un rostro que no se encuentra en dicha base de datos. Este comportamiento será probado sobre una aplicación que embeba al algoritmo y permita agregar personas a la base y asociarlas con diferentes conceptos, como abrigos y bebidas.
|
|
|
|
|
|
|
|
En cuanto a la librería Deepface, si bien esta ofrece una amplia variedad de métodos de reconocimiento de rostros, se decide probar con aquellos ya estudiados en el estado del arte (DeepFace, FaceNet, ArcFace, OpenFace).
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Definir la cantidad de personas diferentes que incluirá la base de datos a utilizar.
|
|
|
|
- Investigar qué métricas son las más utilizadas en los papers del estado del arte sobre reconocimiento de rostros, y evaluar incorporar alguna que no se haya considerado.
|
|
|
|
- Terminar de especificar las pruebas experimentales teniendo en cuenta los aspectos antes mencionados.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 12 de agosto 2021
|
|
|
|
|
|
|
|
Es importante definir experimentos para encontrar fortalezas y debilidades de los algoritmos seleccionados, y eventualmente considerar proponer mejoras. Se quieren tomar como base las pruebas previamente seleccionadas: Receptionist, Farewell y Serving the Drinks. En particular, para verificar la robustez del algoritmo se quiere que las pruebas consideren los siguientes aspectos que pueden variar en el reconocimiento de una persona:
|
|
|
|
|
|
|
|
- Posición del rostro: de perfil, rotado, visto desde arriba (considerando que la persona puede estar sentada).
|
|
|
|
- Cambios en el estilo de pelo: largo, recogido, etc.
|
|
|
|
- Uso o no de lentes.
|
|
|
|
- Diferencias de luz: natural y artificial.
|
|
|
|
- Gestos faciales y emociones.
|
|
|
|
|
|
|
|
Además, es necesario realizar pruebas con personas de distintas etnias, edades y géneros para evitar que los experimentos estén sesgados.
|
|
|
|
|
|
|
|
Se quiere que los experimentos sean tan específicos como sea posible, detallando sus datos de entrada y salidas esperadas. Esto facilita su ejecución y deja claro su objetivo. También deben definirse las métricas con las que se llevará a cabo su evaluación, tomando como base otros artículos del área.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Analizar la prueba Receptionist de la RoboCup y definir experimentos para ella.
|
|
|
|
- Expandir este conjunto de experimentos a las pruebas Farewell y Serving the Drinks.
|
|
|
|
- Validar los experimentos definidos y comenzar su ejecución.
|
|
|
|
|
|
|
|
# 29 de julio 2021
|
|
|
|
|
|
|
|
Se evacuaron algunas dudas que surgieron confeccionando el documento del estado del arte.
|
|
|
|
|
|
|
|
Para mantener el hilo conductor del documento, se resolvió incorporar una sección de Glosario al final de este en el que se definan brevemente algunos conceptos auxiliares.
|
|
|
|
|
|
|
|
Se continuará la elaboración del documento del estado del arte.
|
|
|
|
|
|
|
|
# 15 de julio 2021
|
|
|
|
|
|
|
|
Se presentó la biblioteca DeepFace, que incluye las siguientes funcionalidades:
|
|
|
|
|
|
|
|
- *Verify:* Compara dos rostros para determinar si pertenecen a la misma persona.
|
|
|
|
- *Find:* Compara un rostro dado con una base de datos con distintos rostros, y devuelve en una tabla aquellas imágenes cuyos rostros coinciden con el de la imagen dada, junto con la distancia entre ambas imágenes. En definitiva, consiste en utilizar la función verify para comparar una imagen con muchas otras imágenes.
|
|
|
|
- *Analyze:* Analiza un rostro para determinar sus características (edad, género, raza, emoción).
|
|
|
|
|
|
|
|
Se observa que cada una de estas funcionalidades incluye la detección y alineamiento del rostro en una imagen. Además, se pueden usar distintos modelos, que incluyen ArcFace, FaceNet y OpenFace, así como distintas distancias, como la distancia coseno y la euclídea.
|
|
|
|
|
|
|
|
Luego se presentó una implementación de FaceNet utilizando PyTorch, que dada una imagen es capaz de detectar una cara en ella y calcular un embedding que la represente. La detección se hace a través de una MTCNN, mientras que el embedding lo calcula una ResNet. Se utilizó un modelo pre-entrenado a partir del dataset VGGFace2. A partir de esta implementación se desarrolló un código simple que permite realizar la detección e identificación de rostros dada una imagen.
|
|
|
|
|
|
|
|
**El próximo paso es:**
|
|
|
|
|
|
|
|
- Elaborar el documento del estado del arte. Este documento incluirá al menos una sección de introducción, una donde se explique qué es la RoboCup y los métodos utilizados por los equipos previamente presentados, y otro capítulo que contenga los algoritmos de reconocimiento de rostros. Esta última sección, además de contener los últimos avances en la materia, puede incluir trabajos fundacionales.
|
|
|
|
|
|
|
|
# 1 de julio 2021
|
|
|
|
|
|
|
|
Se presentó una descripción general de ResNet, ArcFace, Circle-Loss y DeepFace, enfocándose en los aspectos centrales de cada uno. también, se mostraron sus resultados resumidos en una tabla explicativa.
|
|
|
|
|
|
|
|
Se discutió la posibilidad de comparar métodos basados en redes neuronales con métodos analíticos, para tener una baseline con la que se pueda comparar.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Realizar las modificaciones acordadas en las tablas presentadas.
|
|
|
|
- Descargar y probar el código asociado a ArcFace, Circle-Loss y FaceNet si estos están disponibles.
|
|
|
|
|
|
|
|
Con respecto al segundo paso, si bien estas pruebas se harán directamente sobre rostros, se debe tener en cuenta que en el futuro se deberá realizar un preprocesamiento de la imagen que incluya la detección de rostros.
|
|
|
|
|
|
|
|
# 10 de junio 2021
|
|
|
|
|
|
|
|
Se presentaron los mecanismos de reconocimiento y detección de rostros utilizados por los equipos con mejores resultados en las últimas ediciones de la RoboCup. En particular, dos de los equipos presentados tienen publicados los paquetes de ROS que utilizaron. Además, se comentaron algunos paquetes de ROS disponibles en la ROS wiki, considerando probarlos en un futuro. Los paquetes en cuestión son los siguientes:
|
|
|
|
|
|
|
|
- [Pumas](https://github.com/RobotJustina/JUSTINA/tree/master/catkin_ws/src/vision/face_recog)
|
|
|
|
- [TechUnited](https://github.com/tue-robotics/image_recognition/tree/master/image_recognition_openface)
|
|
|
|
- [Face Detector](http://wiki.ros.org/face_detector)
|
|
|
|
- [OpenFace 2](https://github.com/ditoec/openface2_ros)
|
|
|
|
|
|
|
|
**Se destaca el uso de:**
|
|
|
|
|
|
|
|
- Redes neuronales convolucionales
|
|
|
|
- MTCNN
|
|
|
|
- Redes siamesas
|
|
|
|
- FaceNet
|
|
|
|
- OpenFace
|
|
|
|
- Haar Cascades
|
|
|
|
|
|
|
|
Por último, se propuso considerar en un futuro concentrarse en un sistema que reconozca pocas personas pero de forma muy precisa, a diferencia de un sistema que pueda distinguir un gran número de personas. Esto se planteó dado que para las pruebas de la competencia no se requiere reconocer una gran cantidad de rostros nuevos.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Realizar una tabla indicando qué recursos utilizó cada equipo.
|
|
|
|
- Confirmar la necesidad de reconocer nuevos rostros.
|
|
|
|
- Investigar qué tan factible es incorporar nuevos rostros utilizando los mecanismos analizados, y qué costo tendría hacerlo. En particular, investigar si algún equipo trata este tema.
|
|
|
|
- Buscar comparaciones de los distintos métodos al entrenarse con los mismos datasets.
|
|
|
|
- Investigar mecanismos alternativos de reconocimiento y detección facial a los ya presentados.
|
|
|
|
|
|
|
|
# 27 de mayo 2021
|
|
|
|
|
|
|
|
Se presentaron las pruebas de la RoboCup haciendo foco en el reconocimiento de rostros, seguimiento de personas y reconocimiento de gestos. Estas pruebas fueron discutidas, y se seleccionaron tres que serán consideradas al momento de realizar las pruebas funcionales, pudiendo realizar modificaciones. Las pruebas seleccionadas son las siguientes:
|
|
|
|
|
|
|
|
- Farewell
|
|
|
|
- Receptionist
|
|
|
|
- Serving Drinks
|
|
|
|
|
|
|
|
En particular, para la prueba **Farewell** se podrían realizar las asociaciones entre abrigos e invitados al comienzo de la prueba. Para **Serving Drinks** se podrían simplificar las bebidas, para identificarlas más fácilmente, por ejemplo dándoles mismo color y forma. Esta modificación se realiza dado que el reconocimiento de objetos no está dentro del alcance del proyecto.
|
|
|
|
|
|
|
|
**Se estableció:**
|
|
|
|
|
|
|
|
- Enfocarse en el reconocimiento de rostros, dejando de lado por el momento el seguimiento de personas y reconocimiento de gestos. En particular, no solo se reconocerán rostros que ya se encuentren en el sistema, sino que también se deberá reconocer nuevos rostros, e integrarlos luego al sistema.
|
|
|
|
- Dar poca prioridad al reconocimiento de género y edad en los rostros, debido a la complejidad que esto implica.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Investigar el trabajo de los equipos ganadores de la RoboCup de los últimos cinco años, identificando los paquetes de ROS que hayan utilizado que puedan ser útiles para el proyecto.
|
|
|
|
- Indagar sobre paquetes de ROS existentes relacionados al reconocimiento de rostros.
|
|
|
|
- Realizar una búsqueda sobre el estado del arte del reconocimiento de rostros.
|
|
|
|
|
|
|
|
# 13 de mayo 2021
|
|
|
|
|
|
|
|
Se comunicó que el proyecto entra en el marco de la competencia RoboCup, enfocado en el aspecto de reconocimiento facial, y adaptado al contexto de las pruebas de dicha competencia. Además, el proyecto forma parte de uno más grande, llamado Alfred Z, cuyo objetivo es construir un robot que desempeñe tareas del hogar.
|
|
|
|
Se abarcaron las principales etapas del proyecto y sus salidas, que se presentan a continuación en forma resumida.
|
|
|
|
|
|
|
|
- **Estudio del estado del arte:** Documento del estado del arte.
|
|
|
|
- **Desarrollo:** Módulo ROS que implementa una propuesta o técnica estudiada.
|
|
|
|
- **Evaluación:** Análisis de los datos obtenidos.
|
|
|
|
- **Escritura de reporte técnico:** Resumen del trabajo realizado.
|
|
|
|
- **Escritura del documento final:** Documento de tesis de grado.
|
|
|
|
|
|
|
|
**Se estableció:**
|
|
|
|
|
|
|
|
- Escribir los documentos formales en LaTeX, específicamente utilizando la herramienta online Overleaf, ya que los integrantes del grupo tienen experiencia con ella.
|
|
|
|
- Actualizar semanalmente a los tutores del proyecto sobre el estado del proyecto y los avances realizados en la semana.
|
|
|
|
- Mantener reuniones quincenales con los tutores del proyecto.
|
|
|
|
- Realizar una presentación con diapositivas al finalizar cada etapa del proyecto.
|
|
|
|
|
|
|
|
**Los próximos pasos son:**
|
|
|
|
|
|
|
|
- Leer el manual de las pruebas de la RoboCup, y realizar un resumen de aquellas en donde se utilice el reconocimiento de rostros.
|
|
|
|
- Instalar ROS y realizar los tutoriales asociados.
|
|
|
|
- Crear un repositorio en GitLab Fing para el proyecto. Este deberá contener un nombre que resuma el proyecto, y deberá indicar los nombres de los integrantes y tutores. |
|
|
\ No newline at end of file |