--- license: other license_name: university-of-warwick-tsam-license license_link: LICENSE pipeline_tag: video-classification tags: - emotion-recognition - video-ads - temporal-shift - multimodal - audio-visual - resnet50 - tsam datasets: - dnamodel/adcumen-viewer-emotions language: - en library_name: pytorch --- # TSAM — Temporal Shift Audio-Visual Model for Viewer Emotion Recognition Pre-trained model weights for the paper ["Decoding Viewer Emotions in Video Ads"](https://www.nature.com/articles/s41598-024-76968-9) by Alexey Antonov, Shravan Sampath Kumar, Jiefei Wei, William Headley, Orlando Wood, and Giovanni Montana, published in _Nature Scientific Reports_. **Code:** [github.com/gmontana/DecodingViewerEmotions](https://github.com/gmontana/DecodingViewerEmotions) **Dataset:** [dnamodel/adcumen-viewer-emotions](https://huggingface.co/datasets/dnamodel/adcumen-viewer-emotions) ## Model Description TSAM (Temporal Shift Augmented Module) is a deep learning model that predicts viewer emotional responses to video advertisements. It processes both visual frames and audio tracks from 5-second video clips to classify emotional reactions across seven categories. ### Architecture - **Backbone**: ResNet50 pre-trained on ImageNet-21K - **Temporal modeling**: Temporal Shift Module (TSM) for efficient video understanding - **Audio-visual fusion**: Multimodal fusion of visual and audio features - **Output**: 7-class emotion classification ### Emotion Classes | ID | Emotion | |----|-----------| | 0 | Anger | | 1 | Contempt | | 2 | Disgust | | 3 | Fear | | 4 | Happiness | | 5 | Sadness | | 6 | Surprise | ## Files | File | Description | |------|-------------| | `backbone_weights.tar` | ResNet50 backbone pre-trained on ImageNet-21K | | `tsam_weights.tar` | Trained TSAM model checkpoint (best balanced accuracy) | ## Usage ### Download weights ```python from huggingface_hub import snapshot_download snapshot_download( repo_id="dnamodel/tsam-viewer-emotions", local_dir="./tsam-weights" ) ``` ### Inference See the [code repository](https://github.com/gmontana/DecodingViewerEmotions) for full training and inference instructions. ```bash # 1. Clone the code repo git clone https://github.com/gmontana/DecodingViewerEmotions.git cd DecodingViewerEmotions # 2. Install dependencies pip install -r requirements.txt # 3. Download dataset and model weights # 4. Run setup_data.py to extract frames and audio # 5. Run predict.py for inference python predict.py ``` ### Requirements - Python 3.10+ - PyTorch 2.5+ - FFmpeg - CUDA-capable GPU ## Training Details - **Training data**: 21,392 five-second video clips from video advertisements - **Validation data**: 2,856 clips - **Test data**: 2,387 clips - **Annotation**: Each original advertisement annotated by ~75 viewers using System1's "Test Your Ad" tool - **Selection criterion**: Best balanced accuracy on the validation set ## Citation ```bibtex @article{antonov2024decoding, title={Decoding viewer emotions in video ads}, author={Antonov, Alexey and Kumar, Shravan Sampath and Wei, Jiefei and Headley, William and Wood, Orlando and Montana, Giovanni}, journal={Scientific Reports}, volume={14}, pages={25680}, year={2024}, publisher={Nature Publishing Group}, doi={10.1038/s41598-024-76968-9} } ``` ## License The TSAM software and associated weights are provided under a custom license from the University of Warwick. Use is permitted solely for academic research and non-commercial evaluation. See the [LICENSE](LICENSE) file for full terms. ## Contact - Questions or collaborations: Giovanni Montana — [g.montana@warwick.ac.uk](mailto:g.montana@warwick.ac.uk) - Commercial licensing: Warwick Ventures — [ventures@warwick.ac.uk](mailto:ventures@warwick.ac.uk)