This repository contains my Final Project for the course:
“Introduction to Deep Learning & Neural Networks with Keras”
The project has two major components:
- Aircraft Damage Classification – A Convolutional Neural Network (CNN) with Transfer Learning (VGG16) to classify aircraft damages into Cracks vs. Dents.
- Image Caption Generation – Using BLIP (Bootstrapping Language-Image Pretraining) to generate meaningful captions for unseen images.
- ✅ Built and trained a CNN for aircraft damage classification with >81% test accuracy.
- ✅ Classified type of damage (Crack / Dent) instead of just binary damaged vs. normal.
- ✅ Applied Transfer Learning (VGG16) with data augmentation and callbacks (EarlyStopping, ReduceLROnPlateau).
- ✅ Implemented BLIP for image captioning that generates human-like captions.
- ✅ Explored both computer vision (classification) and vision-language (captioning) tasks in one project.
- Frameworks: TensorFlow, Keras, PyTorch
- Models: CNN, VGG16 (Transfer Learning), BLIP
- Languages: Python
- Tools: Jupyter Notebook
├──aircraft_damage_dataset_v1/ | ├── train/ | │ ├── dent/ | │ └── crack/ | ├── valid/ | │ ├── dent/ | │ └── crack/ | └── test/ | ├── dent/ | └── crack/ ├── aircraft_damage_dataset_v1.tar ├── Damage_Detection_and_BLIP_Captioning # BLIP caption generation ├── download_dataset.py # Download the dataset ├── requirements.txt # Required dependencies ├── .gitignore # Avoid venv and dataset └── README.md # Project documentation
- Clone this repo:
git clone https://github.com/buildwithmehul/Aircraft-Damage-Detection-and-BLIP-Captioning.git cd Aircraft-Damage-Detection-and-BLIP-Captioning - Install dependencies:
pip install -r requirements.txt
- Download the dataset:
python download_dataset.py
- Run the Jupyter notebook:
- Damage_Detection_and_BLIP_Captioning.ipynb
- Training Accuracy: ~85%
- Test Accuracy: ~81%
- Model Used: VGG16 (frozen base + fine-tuned dense layers)
📊 Example:
| Image | Prediction |
|---|---|
![]() |
Crack |
![]() |
Dent |
BLIP generates captions for unseen images:
-
Input: 🖼️ Aircraft flying in cloudy sky
-
Output: "an airplane flying through the clouds"
-
Input: 🖼️ Damaged aircraft
-
Output: "a damaged airplane parked on the runway"
This project was submitted as part of my completion for Introduction to Deep Learning & Neural Networks with Keras (IBM).
🎓 Certificate available here → Introduction to Deep Learning & Neural Networks with Keras
- IBM Skills Network : Introduction to Deep Learning & Neural Networks with Keras
- BLIP (Bootstrapping Language-Image Pretraining) by Salesforce
- Aircraft damage dataset (publicly available)
Mehul Khanna 🔗 Linkedin 🔗 Github
This project is licensed under the MIT License. — see the LICENSE file for details.

