Fuente de la interfaz de chat de dos personas utilizada para recopilar el conjunto de datos Visdial (arxiv.org/abs/1611.08669) en Amazon Mechanical Turk.
Si encuentra útil este código, considere citar nuestro trabajo:
@inproceedings{visdial,
title={{V}isual {D}ialog},
author={Abhishek Das and Satwik Kottur and Khushi Gupta and Avi Singh
and Deshraj Yadav and Jos'e M.F. Moura and Devi Parikh and Dhruv Batra},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year={2017}
}
La interfaz de chat en tiempo real se crea usando Node.js y Socket.io. Utilizamos Redis para mantener un grupo de imágenes para éxitos en vivo y todos los datos finalmente residen en una base de datos MySQL.
Una tabla de bases de datos almacena imágenes del conjunto de datos de Coco, cada una con una leyenda seleccionada al azar. Luego, un lote de imágenes de esta tabla se lleva a una lista de Redis para lanzar golpes. El servidor web correspondiente a la interfaz de chat combina a dos trabajadores de AMT, les asigna roles (interrogador o respondedor) y muestra la interfaz correspondiente, elige una imagen de la lista de Redis para recopilar datos y guarda su conversación en la base de datos, también marca esa imagen como 'completa' una vez que se realiza el golpe. Esto sucede en paralelo, por lo que los trabajadores no esperan, y el servidor asegura que los trabajadores tengan identificaciones únicas. Las desconexiones se manejan con gracia: se solicita al trabajador restante que continúe haciendo preguntas o proporcionando datos (subtítulos) hasta 10 mensajes. Una vez que se completan los golpes, los scripts en mturk_scripts/approve pueden usarse para revisar, aprobar, rechazar hits y pagar a los trabajadores.
Imágenes POP de la lista de Redis, recupera datos relevantes de las tablas MySQL, ofrece la interfaz de chat y combina a los trabajadores en AMT, guarda datos enviados a las tablas MySQL
npm install (desde la carpeta nodejs )example.config.js a config.js y establecer credenciales de mysql y redisstatic/dataset a /path/to/mscoco/images/index.html Line 276node index.js ahora debería servir la interfaz en 127.0.0.1:5000Scripts para configurar la base de datos MySQL, completar la lista Redis y aprobar/rechazar golpes
example.config.json a config.json y establezca credenciales de MySQL. from_timestamp es una marca de tiempo de unix antes de lanzar un lote de éxitoscreateDatabase.py y fillDatabase.py Cree tablas MySQL, lléntelo con imágenes y subtítulos de Coco y genere la lista Redis para un lote de éxitoscreateHits.py inicia éxitos en AMT mturk_scripts/approve )example.config.json a config.json y establecer credenciales de MySQLexample.constants.py a constants.py , y establezca credenciales de AMTreviewHits.py recibe golpes y los guarda a amthitsQues.csv y amthitsAns.csv para su revisiónreviewRejectedHits.py a payWorkers.py ReviewRject rejectHits.py o 'aprobar'), ejecute approveHits.py .Las partes de este código (scripts mTurk) están adaptadas del proyecto simple-AMT de @Jcjohnson.
BSD