GenLie is a deep learning framework for video-based deception detection. It leverages the VideoMAEv2 model to extract features from video frames and employs a combination of classification, identity-adversarial, and triplet loss to detect deceptive behavior in videos. The framework supports multiple datasets, including MDPE, SEUMLD, and Real Life Trialdatasets.
- Video feature extraction using VideoMAEv2-Base model
- Multi-modal deception detection
- Identity-adversarial training to reduce person-specific biases
- Triplet loss for better feature representation
- Support for multiple datasets (MDPE, SEUMLD, Real Life Trial)
- Comprehensive evaluation metrics (accuracy, F1 score, AUC)
├── config/ # Configuration files for different datasets
│ ├── common.py # Common configuration settings
│ ├── mdpe.py # MDPE dataset configuration
│ ├── real_life.py # Real Life dataset configuration
│ └── seumld.py # SEUMLD dataset configuration
├── dataloaders/ # Data loading modules
│ ├── cached_dataset.py # Dataset for cached features
│ ├── mdpe_dataloader.py # MDPE dataset loader
│ ├── real_life_dataloader.py # Real Life dataset loader
│ ├── seumld_dataloader.py # SEUMLD dataset loader
│ ├── tools.py # Data loading utilities
│ └── video_dataset.py # Video frame dataset loader
├── main_mdpe.py # Main script for MDPE dataset
├── main_real_life.py # Main script for Real Life dataset
├── main_seumld.py # Main script for SEUMLD dataset
├── models/ # Model definitions
│ └── gen_lie.py # GenLie model implementation
├── utils/ # Utility functions
│ ├── eval.py # Evaluation metrics
│ ├── logger.py # Logging utilities
│ ├── tools.py # General utilities
│ └── utils.py # Miscellaneous utilities
└── requirements.txt # Project dependencies
- Clone the repository:
git clone <repository-url>
cd GenLie- Install the required dependencies:
pip install -r requirements.txt- Download the pretrained VideoMAEv2 model and update the path in
config/common.py.
The framework supports three main modes of operation:
Extract and cache CLS features from video frames:
python main_mdpe.py --mode extract
# or
python main_seumld.py --mode extract
# or
python main_real_life.py --mode extractTrain the classifier with identity-adversarial and triplet loss on cached features:
python main_mdpe.py --mode train
# or
python main_seumld.py --mode train
# or
python main_real_life.py --mode trainThe GenLie model consists of three main components:
- Feature Re-embedding: Transforms the extracted video features into a more discriminative embedding space.
- Classification Head: Predicts whether the input video contains deceptive behavior (lie=1) or truthful behavior (truth=0).
- Identity-Adversarial Head: Reduces person-specific biases by adversarially training against person identity.
The model is trained with a combination of:
- Classification loss (Cross-Entropy)
- Identity-adversarial loss
- Triplet loss for better feature representation
The framework supports three datasets:
- MDPE: A deception detection dataset with structured interviews.
- SEUMLD: Southeast University Multimodal Lie Detection dataset.
- Real Life: A dataset with real-life deception scenarios.
The model's performance is evaluated using multiple metrics:
- Accuracy
- F1 Score
- Area Under the ROC Curve (AUC)
[Specify the license here]
[Provide citation information if applicable]
- VideoMAEv2 for video feature extraction
- [Add other acknowledgements as needed]