TeamSerpentine / among-us-2021

Among Us - impostor detection
MIT License
8 stars 2 forks source link

Among Us 2021 Team

This is the repository of the Among Us team from E.S.A.I.V. Serpentine, and is complementary to the paper titled Automatically detecting player roles in Among Us, which is published at the IEEE CoG 2021. The repository contains the framework, data, and machine learning models that were used to produce the results of the paper.

Paper citation:

@inproceedings{tuin2021automatically,
  title={Automatically detecting player roles in Among Us},
  author={Tuin, Harro and Rooijackers, Martin},
  booktitle={2021 IEEE Conference on Games (CoG)},
  pages={1--5},
  year={2021},
  organization={IEEE}
}

Framework

The framework can extract data from videos with Among Us gameplay. The data used in the paper was extracted using the framework.

Setup:

For this project we used Pycharm for coding. But any python IDE will work as long as you can use pip to install the libraries needed.

You will need the .pb model for the EAST text detection:

https://www.dropbox.com/s/r2ingd0l3zt8hxs/frozen_east_text_detection.tar.gz?dl=1

You will also need tesseract. The (compiled) downloads for tesseract (windows/linux) can be found here:

https://digi.bib.uni-mannheim.de/tesseract/

5.0 was used, but any version 4 version should work as well (since no new 5.0 features are used)

Setting variables

After those two files are downloaded (and installed in the case of tesseract), you will need to set 3 variables in the settings.py

Tesseract_location : path to the install location of tesseract. Make sure to include the / at the end as well

model_detector : Path to a .pb file contains trained detector network:

video_location : folder which contains all the videos you want to analyze. Make sure to include the / at the end as well

Once all those are set properly, put the videos in your video location folder. When you run the framework.py it should now be analyzing the videos there. Subsequently, the framework will produce .json files that contain the in-game messages and their metadata.

Among Us dataset

The folder "data" contains the chatlogs of 59 games of Among Us gameplay processed by the framework.

Machine Learning models (classifiers)

The "Classifiers" folder contains the code needed to automatically detect player roles based on data extracted by the framework. The preprocessing_data.py is used to preprocess the data. The input for preprocessing are the .json files generated by the framework, the output are a dataframe with tf-idf values and a series with labels corresponding to the dataframe. Subsequently, the roc_auc_curve.py file can be used to produce the results of the paper. The other files can be used to experiment with gridsearch, SVM parameters, and a neural network. The neural network was not used in the paper due to a lack of data.