PaleoNet is an advanced dinosaur species classification system built using deep learning. The application can identify 15 different dinosaur species from images with high accuracy, using a convolutional neural network (CNN) based on EfficientNetB0 architecture.
Explore prehistoric creatures through the power of artificial intelligence! 🔍
- Image Classification - Upload your own dinosaur images for instant species identification
- Interactive Gallery - Explore sample images from the test dataset
- Species Encyclopedia - Learn fascinating facts about each dinosaur species
- Model Insights - Visualize the model architecture and performance metrics
- Tabbed Navigation - Switch easily between Home, Upload Image, and Sample Gallery sections
Main Classification Page: Upload and classify dinosaur images
Dinosaur Encyclopedia: Learn about different dinosaur species
Model Information: Visualize the model architecture and performance
Install requirements
pip install -r requirements.txtRun the Streamlit app
streamlit run PaleoNet.pyOnce started, the application will be available at http://localhost:8501
PaleoNet can classify the following 15 dinosaur species:
| 🦖 Ankylosaurus | 🦕 Brachiosaurus | 🦎 Compsognathus |
| 🦖 Corythosaurus | 🦖 Dilophosaurus | 🦎 Dimorphodon |
| 🦖 Gallimimus | 🦎 Microceratus | 🦖 Pachycephalosaurus |
| 🦖 Parasaurolophus | 🦖 Spinosaurus | 🦕 Stegosaurus |
| 🦕 Triceratops | 🦖 Tyrannosaurus Rex | 🦖 Velociraptor |
PaleoNet/
├── app/ # Application code
│ ├── app.py # Main Streamlit application
│ ├── utils.py # Utility functions
│ └── pages/ # Additional app pages
│ ├── 01_Model_Info.py
│ └── 02_Dinosaur_Encyclopedia.py
├── assets/ # Images and static assets
├── data/ # Dataset directory
│ └── dinosaur_dataset_split/
│ ├── train/ # Training data (70%)
│ ├── val/ # Validation data (15%)
│ └── test/ # Test data (15%)
├── docs/ # Documentation
├── model/ # Saved model files
│ ├── dinosaur_classifier_transfer_learning.keras
│ ├── dinosaur_class_mapping.json
│ └── dinosaur_model_performance.json
├── notebooks/ # Jupyter notebooks
│ └── opdracht_CNN_stijnen_simon.ipynb # Model training notebook
├── requirements.txt # Project dependencies
├── README.md # Main documentation
└── LICENSE # MIT License
PaleoNet uses a transfer learning approach based on EfficientNetB0:
- Base Model: EfficientNetB0 pre-trained on ImageNet
- Feature Extraction: Global Average Pooling to reduce spatial dimensions
- Classification Head:
- Dense layers (512 & 256 neurons) with ReLU activation
- Batch Normalization for training stability
- Dropout (0.4) for regularization
- Output layer with 15 neurons and softmax activation
- Training Enhancement: Data augmentation to improve generalization
The model achieves over 70% accuracy on the test set, with especially strong performance on distinctive species.
Visit the docs directory for detailed documentation:
PaleoNet uses Streamlit to create an interactive web application for dinosaur image classification. The application includes:
- Main Page: Upload your own images or try sample images for classification
- Model Info Page: Visualize the model architecture and performance metrics
- Dinosaur Encyclopedia: Learn fascinating facts about each dinosaur species
- Real-time classification with confidence scores
- Top-3 prediction display
- Interactive sample gallery with random test images
- Performance metrics visualization
- Detailed dinosaur information cards
This project is licensed under the MIT License - see the LICENSE file for details.
- Dataset: Dinosaur Image Dataset from Kaggle
- Technologies:
- TensorFlow and Keras for deep learning
- EfficientNetB0 architecture by Google
- Streamlit for the web application interface
- Matplotlib and Seaborn for visualizations
- Paleontological Information: Various academic sources for dinosaur facts and information
- Development: Simon Stijnen for the AI Deep Learning course at VIVES University of Applied Sciences (2025)
