A collection of selected Computer Vision projects developed during the Computer Vision course at Warsaw University of Technology (WUT) as part of the 2025–2026 Erasmus+ academic year.
The repository includes three projects covering:
- camera geometry and calibration
- classical image processing and segmentation
- convolutional neural networks for image classification
The projects were selected to show a progression from geometric computer vision and traditional image processing to deep learning.
Folder:
camera-geometry/
This project focuses on the geometric foundations of computer vision, including:
- pinhole camera geometry
- camera calibration
- intrinsic and extrinsic parameters
- perspective projection
- 3D-to-2D coordinate transformations
The project includes saved MATLAB calibration data and a complete technical report.
Folder:
image-processing-segmentation/
This project implements a classical computer vision pipeline for detecting and tracking a colored object across image sequences.
Main techniques include:
- camera undistortion
- Gaussian smoothing
- color-based segmentation
- binary mask refinement
- object localization
- 2D trajectory extraction
- approximate 3D position estimation
- trajectory visualization
The implementation is written in MATLAB and uses saved camera calibration parameters.
Folder:
convolutional-neural-networks/
This is the deep-learning-focused project in the repository.
It explores neural-network-based image classification using TensorFlow/Keras on:
- MNIST
- Google Quick, Draw!
The project compares dense and convolutional architectures and includes model adaptation, data augmentation, evaluation and feature-map visualization.
The convolutional model achieved approximately:
MNIST test accuracy: 98.9%
Quick, Draw! test accuracy: 91.8%
The Quick, Draw! experiment uses 10 object classes:
pizza
cannon
ambulance
bulldozer
swing_set
baseball_bat
zebra
bridge
cactus
matches
The confusion matrix shows strong diagonal concentration across the selected classes, indicating generally consistent classification performance.
computer-vision/
├── camera-geometry/
│ ├── camera_calibration.mat
│ ├── camera_geometry_report.pdf
│ └── README.md
│
├── image-processing-segmentation/
│ ├── cameraParams.mat
│ ├── image_processing_segmentation.m
│ ├── seq_calib/
│ ├── seq_flat_many/
│ ├── seq_flat_single/
│ ├── seq_tex_many/
│ ├── seq_tex_single/
│ └── README.md
│
├── convolutional-neural-networks/
│ ├── cnn_image_classification.py
│ ├── cnn_results.png
│ ├── confusion_matrix.png
│ └── README.md
│
├── requirements.txt
├── .gitignore
└── README.md
- Python 3
- TensorFlow
- Keras
- NumPy
- Matplotlib
- scikit-learn
- Seaborn
- MATLAB
- Computer Vision Toolbox
- Image Processing Toolbox
- camera geometry
- perspective projection
- camera calibration
- intrinsic and extrinsic parameters
- image preprocessing
- filtering
- image segmentation
- morphology
- object tracking
- 2D and 3D geometric estimation
- neural networks
- convolutional neural networks
- image classification
- data augmentation
- confusion matrices
- feature-map visualization
Create and activate a virtual environment:
python3 -m venv .venv
source .venv/bin/activateInstall dependencies:
python3 -m pip install -r requirements.txtRun the CNN experiment:
python3 convolutional-neural-networks/cnn_image_classification.pyThe Quick, Draw! data is downloaded automatically when needed and is excluded from version control.
Developed for the Computer Vision course at Warsaw University of Technology (WUT) during the 2025–2026 Erasmus+ academic year.
Selected projects included in this repository:
- Task 1 — Camera Geometry
- Task 2 — Image Processing and Segmentation
- Task 7 — Convolutional Neural Networks
Álvaro Buendía Senise
- GitHub: alvaarobuendia
- LinkedIn: Álvaro Buendía Senise

