Start here!
Projects
Students will work on machine learning projects (in groups of 2) to demonstrate their programming and deep learning skills mastered throughout the course. During the final labs, a class competition will be held and students will present projects in front of a committee. The winning team will be eligible for prize.
Instruction and evaluation:
You can get maximum 100 points. Team with the highest score receives the prize. Final projects will be evaluated accordingly:
Idea (0-40 points): Projects can utilize any machine learning concept. An original idea earns a base of 20 points, with up to 20 additional points for its expansion and formulation. If we supply the idea, it consumes the base 20 points, leaving only additional points for how you develop it.
Implementation (0-30 points): Upload your code (preferably in Python) on GitHub. Include a working demo in Colab that clearly demonstrates your results. The demonstration should be well-documented and MUST include the following:
Title: A concise and descriptive title of your project.
Authors: The names of the students who worked on the project.
Abstract: A brief summary of the project, including the goal, methodology and results.
Methodology: A short introduction and description of the machine learning or deep learning techniques used and why they were chosen.
Code & Results: Comment your code to clarify its purpose and functionality. You can load external code into the Colab demo file, but ensure that important parts of the code in the project repository are also well-commented.
Showcase the results obtained from your model, including figures, tables, or other visual aids if necessary. Include an interpretation of these results.Conclusions: Summarize your findings, potential applications, and any limitations encountered.
References: If you have used any external resources, make sure to cite them properly.
Presentation (0-30 points): Present your project during the last Lab session. The presentation should last 15 minutes and can be supported by tools like PowerPoint/Beamer.
Deadlines:
All projects must be submitted by Dec 13, 2024, at 23:59. The presentations will be held during the last Lab session in December 2024.
Prize:
1st prize: Voucher in the amount of 20 000,-CZK,
2nd prize: Voucher in the amount of 10 000,-CZK,
Winners from previous years:
2023 - 1st prize: Jiří Nábělek and David Rendl
Project: Sign Language Recognition in Video
2023 - 2nd prize: Soňa Drocárová and Tereza Fucsiková
Project: Golf Swing Analyzer
2022 - 1st prize: Frátrik Emanuel, Thi Thu Hien Nguyenová,
Project: Prediction of prices of apartments in Prague
2021 - 1st prize: Anežka Lhotáková and Erik Dolejší
Project: Character recognition in CAPTCHA images
2021 - 2nd prize: Michaela Mašková and Vít Pánek
Project: Ventilator Pressure Prediction
Note: Starting from 2023, we have introduced a new requirement for the structure of the Colab demo file. Please refer to the Implementation section above for the detailed structure required.
Some other past projects for inspiration:
Acoustic Emission classification, Barcode Image Enhancer, Face Drawing Guide, Sudoku Solver, Handwritten Text Recognition, Image Colorisation Using Unet, Traffic Signs Recognitions, Vehicle classification, Deep-learning Models on Signal Data, BTC Prediction Using Sentiment Analysis, ML Based Chess Engine.
Lab 0 – Introduction to Python and Basic Machine Learning Tools
This introductory lab provides a comprehensive grounding in essential tools and techniques needed for subsequent labs. Participants will learn to use Google Colab, Github, and ChatGPT, exploring fundamental Python coding and machine learning algorithms. In addition, we will familiarize ourselves with various machine learning libraries, ensuring a solid foundation for future labs.
The assignment for this lab can be found at
classroom.github.com/a/9iPymQEV
Lab 1 – Fundamentals of Deep Learning with PyTorch
In this lab, we delve into the core concepts of deep learning using the PyTorch library. Initially, we start by exploring linear regression models using Python's Numpy library to establish a foundational understanding. Gradually, we transition these concepts into the PyTorch framework, introducing topics such as tensors, backpropagation, and automatic differentiation. Participants will learn about optimization techniques, data loading, and validation. They will also gain experience with saving and loading models in PyTorch. Additionally, we will touch on the practical application of Weights & Biases, a tool for tracking and visualizing models and experiments, contributing to a more in-depth comprehension of deep learning principles.
The assignment for this lab can be found at
https://classroom.github.com/a/ag1xzsAd
Lab 2 – Image Classification, Transfer Learning, and Face Detection
This lab provides an extensive exploration of image classification leveraging the power of Convolutional Neural Networks (CNNs) and the Rock Paper Scissors dataset. The key topics covered include data preparation, normalization, and model evaluation. Building on the previous knowledge of PyTorch, we will use PyTorch Lightning, a lightweight PyTorch wrapper, to simplify and optimize our deep learning models. We will also explore the concept of transfer learning with benchmark models like Alexnet, VGG, and ResNet, as well as delve into face detection technique. A significant focus will be on understanding and preventing overfitting in deep learning models.
The assignment for this lab can be found at
https://classroom.github.com/a/cXHnnNlR
Lab 3 – Image Processing and Recognition
This lab delves deeper into the realm of image processing and recognition, harnessing the capabilities of neural networks for tasks like image segmentation and object detection. We will explore the Unet architecture for segmentation and learn about training YOLO models for object detection, including the intricacies of custom data preparation and annotation with tools like CVAT. Furthermore, we'll examine image retrieval utilizing the renowned ResNet architecture and delve into the nuances of face recognition employing MTCNN and Arcface models. The curriculum is designed to build on your existing knowledge of neural network frameworks and will provide hands-on experience with these advanced techniques.
The assignment for this lab can be found at
https://classroom.github.com/a/VOkhbyXw
Lab 4 – Sequence Models and NLP
This lab introduces sequence models and natural language processing (NLP). Participants will learn about Recurrent Neural Networks (RNNs), Gated Recurrent Units (GRUs), Long Short-Term Memory (LSTMs) networks, and Sequence-to-sequence models. We will also cover attention mechanisms, self-attention, and transformer models, providing a comprehensive overview of sequence data and NLP.
Lab 5 – Advanced Vision and Generative Models
In this lab, we focus on more advanced deep learning topics, including Vision Transformers and generative models. Participants will have an opportunity to delve into Generative Adversarial Networks (GANs) and diffusion models, exploring how these powerful techniques can be used to generate new data that is similar to the input data.
Lab 6 – Project Presentation
This concluding lab provides an opportunity for participants to present their projects, demonstrating the skills and knowledge acquired throughout the course. This will be a competitive session, where participants showcase their individual or group projects. Recognition will be given to outstanding work, fostering a spirit of excellence and peer-learning.
The winners of the last year: