ffigari / rastreador-ocular

a study of web eye tracking applicability to remote clinical studies
MIT License
2 stars 1 forks source link

Consulta Facemesh #4

Open agustin-penas opened 1 year ago

agustin-penas commented 1 year ago

Buenas @ffigari , estoy trabajando sobre el proyecto tratando de agregar blink detection. Habia encontrado una manera simple usando el facemesh pero no estoy logrando que al cargar el facemesh me tome la opcion refineLandmarks en el codigo de webgazer. Por lo que veo usan una manera que no conosco de cargar los modulos asi que talves me estoy confundiendo por ahi.

Tenes idea como podria configurar esa opcion? Yo lo maximo que llegue fue a cuando crea un BlazeFaceModel

ffigari commented 1 year ago

Hola @agustin-penas, cómo va?

Cómo estás modificando webgazer? Es un poco engorroso cómo quedó todo armado... confirmame por las dudas que estés modificando el fork que cree para este proyecto, que es la versión que instala en script de este repo. Por otro lado, la opción refineLandmarks parece estar en la versión actual del modelo del facemesh pero no en la que este proyecto usa, que es la 0.0.3.

Supongo que para blink detection podría armarse algo usando la versión 0.0.3 del facemesh, pero lo ideal sería actualizar a la actual (la 1.0.2).

agustin-penas commented 1 year ago

Gracias por la pronta repuesta @ffigari! La verdad en este momento estoy modificando el repo que me clono al hacer el install en eye-tracker/webgazer, no me hice un fork propio todavia. A ese te referias? Gracias por la data de la version, ni me habia fijado en eso. Por lo pronto la voy a actualizar. En cuanto a que estoy modificando es lo siguiente en esta linea

  this.model = faceLandmarksDetection.load(
    faceLandmarksDetection.SupportedPackages.mediapipeFacemesh,
    { maxFaces: 1,  refineLandmarks: true}
  );
ffigari commented 1 year ago

estoy modificando el repo que me clono al hacer el install

Perfecto, a eso me refería.

Ahí estaba revisando un poco cómo se compila todo y resulta que no alcanza con correr node builder.js build para recompilar el webgazer. Para lograr eso tenés que pararte dentro de la carpeta eye-tracker/webgazer, ahí correr npm run build para recompilar y luego cp dist/webgazer.js ../../www/vendor para copiar el compilado al lugar que lo necesita rastoc.

Para actualizar el paquete habría que instalarlo con npm, cambiar el load de la versión vieja por el createDetector de la nueva y luego chequear que siga andando :sweat_smile: Avisame cualquier cosa si se complica

agustin-penas commented 1 year ago

@ffigari Estuve ocupado y recien hoy pude ponerme denuevo. Aca creo que me inexperiencia con js se muestra mas que nada. Actualice la version a 1.0.2, corri npm i @tensorflow-models/face-landmarks-detection. Luego de un npm run build parado en eye-tracker/webgazer no veo que la version se haya actualizado (fijandome en eye-tracker/webgazer/node_modules/@tensorflow-models/facel-landmarks-detection/dist/version.js). Ademas de eso diciendo bueno intentemos igual, no puedo hacer el createDetector y asumo que es por la version. (Copie el webgazer.js a www/vendor)

ffigari commented 1 year ago

Hola @agustin-penas, sii estas actualizaciones son medio bodrio a veces :sweat_smile: Justo esta semana estoy medio cargado pero el finde le doy una mirada y te hago el update de la versión así puedes seguir probando el tema del blink detection. Saludos!

agustin-penas commented 1 year ago

Mil gracias @ffigari! Si no es mucha molestia si le encontras la vuelta dejame aca algun coment de que era asi para la proxima no te estoy molestando. Saludos y gracias!

ffigari commented 1 year ago

Hola @agustin-penas, ahí quedó actualizada la versión del facemesh. Además de cambiar cómo se instanciaba el modelo cambiaba un cachito la estructura del output del modelo. La cantidad de keypoints y el orden en el cual quedaban exportados parecen ser iguales a la versión anterior. Explicité los cambios con este PR por si querés chusmear el diff.

El parámetro refineLandmarks probé agregarlo y a priori rastoc seguía andando. Sí parece ser más demandante en cuanto a recursos, qué en el playground se actualizaban menos fluido los recuadros de los ojos.

agustin-penas commented 1 year ago

Mil gracias @ffigari! Dale lo voy a ver. Saludos!