All Projects → batra-mlp-lab → Visdial Amt Chat

batra-mlp-lab / Visdial Amt Chat

[CVPR 2017] AMT chat interface code used to collect the Visual Dialog dataset

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Visdial Amt Chat

Wechat
聊天系统、Vue.js、React.js、node.js、MongoDB、websocket、socket.io、前后端分离、毕业设计。
Stars: ✭ 188 (+176.47%)
Mutual labels:  chat, socket-io
SocketIO Chat APP
This is the simple Chat Application in which user can join the room and continue chatting with others.
Stars: ✭ 50 (-26.47%)
Mutual labels:  chat, socket-io
React Discord Clone
Discord Clone using React, Node, Express, Socket-IO and Mysql
Stars: ✭ 198 (+191.18%)
Mutual labels:  chat, socket-io
Kawachat2 Client
Angular 4 Chat App using Socket.IO 2.0
Stars: ✭ 100 (+47.06%)
Mutual labels:  chat, socket-io
Websocket Chat
Websocket based group chat app built with socket.io and react.
Stars: ✭ 689 (+913.24%)
Mutual labels:  chat, socket-io
Socket Chat Client
📲 Ionic Socket.IO chat client
Stars: ✭ 146 (+114.71%)
Mutual labels:  chat, socket-io
chat-app
💬 Real-time chat application with no history.
Stars: ✭ 21 (-69.12%)
Mutual labels:  chat, socket-io
Syntaxmeets
Syntaxmeets. Create rooms 🏠 Call your friends 👬🏼 Sip Chai, ☕ Chat, Create, and Code👨‍💻. A coding platform to code simultaneously 🚀 with your friends and design your algorithms on SyntaxPad.💫✨
Stars: ✭ 110 (+61.76%)
Mutual labels:  chat, socket-io
Laravel Video Chat
Laravel Video Chat using Socket.IO and WebRTC
Stars: ✭ 646 (+850%)
Mutual labels:  chat, socket-io
Darkwire.io
End-to-end encrypted instant web chat
Stars: ✭ 594 (+773.53%)
Mutual labels:  chat, socket-io
Chat Engine
Object oriented event emitter based framework for building chat applications in Javascript.
Stars: ✭ 87 (+27.94%)
Mutual labels:  chat, socket-io
Angular Chat
(IM App)Chat App built using Angular and Socket.io
Stars: ✭ 12 (-82.35%)
Mutual labels:  chat, socket-io
Chattt
❯❯❯ Chat without leaving your terminal
Stars: ✭ 239 (+251.47%)
Mutual labels:  chat, socket-io
Socket.io
NodeJS《你画我猜》游戏
Stars: ✭ 255 (+275%)
Mutual labels:  chat, socket-io
Ghchat
📱A chat application for GitHub. React + PWA + Node(koa2) + Typescripts + Mysql + Socket.io
Stars: ✭ 791 (+1063.24%)
Mutual labels:  chat, socket-io
Tyloo Chat
vue + nestjs IM即时通讯聊天室(仿wechat)
Stars: ✭ 54 (-20.59%)
Mutual labels:  chat, socket-io
Go Socket.io Client
socket.io client for golang
Stars: ✭ 62 (-8.82%)
Mutual labels:  socket-io
Android Java Chat App
Open-source Voice & Video Calling and Text Chat App for Java (Android)
Stars: ✭ 66 (-2.94%)
Mutual labels:  chat
Megachat
MEGA C++ SDK for chat-enabled apps
Stars: ✭ 61 (-10.29%)
Mutual labels:  chat
Gophergameserver
🏆 Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included!
Stars: ✭ 61 (-10.29%)
Mutual labels:  chat

VisDial AMT Chat

Source for the two-person chat interface used to collect the VisDial dataset (arxiv.org/abs/1611.08669) on Amazon Mechanical Turk. A demo is available here (open in two separate tabs to be paired for conversation).

VisDial AMT Interface

If you find this code useful, consider citing our work:

@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}
}

How things work

The real-time chat interface is built using Node.js and Socket.io. We use Redis to maintain a pool of images for live HITs and all data finally resides in a MySQL database.

A database table stores images from the COCO dataset each with a randomly picked caption. A batch of images from this table are then pushed to a Redis list for launching HITs. The web server corresponding to the chat interface pairs two AMT workers, assigns them roles (questioner or answerer) and shows corresponding interface, picks an image from the Redis list to collect data on and saves their conversation in the database, also marking that image as 'complete' once the HIT is done. This happens in parallel so workers aren't left waiting, and the server ensures workers have unique ids. Disconnects are handled gracefully — remaining worker is asked to continue asking questions or providing facts (captions) up to 10 messages. Once the HITs are complete, scripts in mturk_scripts/approve can be used to review, approve, reject HITs and pay workers.

Node.js

Pops images from the Redis list, retrieves relevant data from the MySQL tables, renders the chat interface and pairs workers on AMT, saves submitted data to MySQL tables

  • Install MySQL, Redis, Node
  • Install dependencies using npm install (from the nodejs folder)
  • Copy over example.config.js to config.js, and set MySQL and Redis credentials
  • Create a symbolic link from static/dataset to /path/to/mscoco/images/
  • Update app path (from vhost) in index.html line 276
  • Running node index.js should now serve the interface at 127.0.0.1:5000

MTurk Scripts

Scripts to set up MySQL database, populate Redis list, and approve/reject HITs

  • Copy over example.config.json to config.json, and set MySQL credentials. from_timestamp is unix timestamp before launching a batch of HITs
  • createDatabase.py and fillDatabase.py create MySQL tables, populate it with COCO images and captions and generate the Redis list for a batch of HITs
  • createHits.py launches HITs on AMT

Approving/Rejecting HITs (mturk_scripts/approve)

  • Copy over example.config.json to config.json, and set MySQL credentials
  • Copy over example.constants.py to constants.py, and set AMT credentials
  • reviewHits.py gets completed HITs and saves them to amthitsQues.csv and amthitsAns.csv for review
  • Once HITs have been reviewed in the CSV files (by changing 'notApprove' to 'reviewReject' or 'approve'), run approveHits.py to mark approved HITs for payment and reviewRejectedHits.py, rejectHits.py to reject HITs, and finally payWorkers.py to process payments

Contributors

Acknowledgements

Parts of this code (MTurk scripts) are adapted from @jcjohnson's simple-amt project.

License

BSD

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].