An AI-powered image captioning system that combines Vision Transformers (ViT-B/16) for visual feature extraction with a Transformer-based Decoder for natural language generation. The model is trained on the Flickr30k dataset and generates contextually relevant captions for images.
- Extracts image embeddings using Vision Transformer (ViT-B/16).
- Uses a Transformer Decoder with Beam Search for caption generation.
- Trained on the Flickr30k dataset containing 31,000+ images and 158,000+ captions.
- Evaluates model performance using BLEU scores.
- Implements Early Stopping and Cosine Annealing Learning Rate Scheduling.
- Supports feature extraction using both ViT and ResNet-50.
- Python
- PyTorch
- Vision Transformer (ViT)
- Transformer Architecture
- Hugging Face Transformers
- NumPy
- NLTK
- spaCy
- Flickr30k Dataset
This project uses the Flickr30k dataset:
- ~31,000 Images
- ~158,000 Human-Written Captions
- Rich Visual and Textual Annotations
Dataset Source: https://www.kaggle.com/datasets/hsankesara/flickr-image-dataset
- Image Preprocessing
- Feature Extraction using ViT-B/16
- Caption Tokenization and Vocabulary Building
- Transformer Decoder Training
- Beam Search Caption Generation
- BLEU Score Evaluation
- ViT-B/16
- ResNet-50 (Optional)
- Transformer Decoder
- Positional Encoding
- Multi-Head Self-Attention
- Early Stopping
- Cosine Annealing Scheduler
- Batch Processing
- Teacher Forcing
image-caption-transformer/
├── README.md
├── LICENSE
├── requirements.txt
├── gen.ipynb
├── testing.ipynb
├── preprocess.py
├── model.py
├── dataset.py
├── train.py
├── evaluate.py
├── utils.py
└── main.py
The model performance is measured using:
- BLEU-1
- BLEU-2
- BLEU-3
- BLEU-4
- CLIP-based Feature Extraction
- Attention Visualization
- Web Application Deployment
- Real-Time Image Caption Generation
- Multilingual Captioning
Contributions are welcome.
- Fork the repository
- Create a new branch
- Commit your changes
- Push the branch
- Open a Pull Request
This project is licensed under the MIT License.
- Flickr30k Dataset
- PyTorch
- Hugging Face Transformers
- spaCy
- NLTK