Projects
The project aims to demonstrate the knowledge you gained during the semester. All topics are open problems that do not have only one correct solution. You should choose a topic that you are interested in and which also fits your skills.
None of the topics are new to the machine learning community, and there are several ways to solve them. A crucial part of your task will be to research at least some of these approaches and summarize them. Be sure that you fully understand the techniques you use because one of the main factors influencing your final grade will be how well-justified your approach is. Once you have decided on a method, you will have to prepare your training data, build a model, train it as well as you can, then evaluate its performance. Afterward, you will be expected to write a short report about your experiences and also the knowledge you gained over the course of the project.
Remember that the aim of the project is not to train a perfect NN model that can beat all other methods. Rather, you should show that you are capable of solving an image-processing task with machine-learning techniques.
Objectives:
- Study state-of-the-art approaches related to your task. Cite at least three ML IP papers on this topic, and introduce the basic ideas behind each method.
- Implement one of the methods you found. You can improve an existing implementation of the method you choose. Remember the faculty's code of conduct and list all your resources and collaborations.
- Train a model and evaluate its performance, then compare the results to another non-trivial model. Show that your model is appropriately trained. If you made any improvements to standard techniques, do not forget to validate the benefits.
- Write a report of your experiences with the task. List what difficulties you encountered and how you might improve upon your work in the future. The report can be submitted as a Jupyter Notebook or as formatted text.
Deadlines:
Project enrollment - 21.3.2023 (tutorial 06).
- Enroll in your topic by sending an email to xlux@fi.muni.cz.
- In the email, include the topic name and attach an academic
paper or another relevant source showcasing an approach you would like to implement.
- You can also choose your own topics, but the tutors reserve the right to reject any proposals that would be trivial or, conversely, too demanding.
Project submission - 5.5.2023.
- Submit your code. Ensure it is well documented, legible, and focuses only on solving the task.
- The project has to follow all the objectives.
Final presentation - 16.5 2023
- Defend a project in a final presentation.
- Your presentation should be only 3 minutes long. Also, please ensure your presentation can be delivered to the computer lab.
Presentation guidelines:
- The presentation should be submitted in .pdf format in advance.
- It should contain only three slides:
- Methodology - Briefly explain the method you used. It is not necessary to provide a detailed explanation of the model, focus only on its crucial parts.
- Results - Provide an example of the model's output and an objective metric measuring the model's performance (if the task allows for it).
- Conclusion - Share your experiences related to the project. What was the most challenging part for you? Suggest what could be added to improve results.
- Methodology - Briefly explain the method you used. It is not necessary to provide a detailed explanation of the model, focus only on its crucial parts.
- You will have 3 minutes to present and one extra minute to answer questions from the audience.
Consultations:
If you have any questions regarding the project, you may ask us at the tutorial or write an email to any of the tutors.
Topics:
Image classification:
- 1. Amazon forest
- This task is to sort satellite images into classes according to the type of surface they display.
Medical image segmentation:
- 2. Brain Tumor Segmentation
- http://braintumorsegmentation.org/
- Build and train a network to segment brain tumors in MRI images.
- 3. Instance segmentation
- http://celltrackingchallenge.net/2d-datasets/
- The task is to build a network capable of segmenting cells in microscopy images. You can choose any of the 2D+t datasets, but real (non-simulated) datasets are preferred.
Image description:
- 4. Detection of small objects
- This project's objective is to maximize recall when detecting objects of various sizes. Your technique should not miss any small objects.
- 5. Image captioning
- https://www.kaggle.com/datasets/hsankesara/flickr-image-dataset
- Implement a method to describe the contents of natural images in writing.
Image generation:
- 6. Generate human faces
- Create artificial faces that are indistinguishable from real ones.
- 7. Colorize grayscale images
- https://deepai.org/machine-learning-model/colorizer
- Train a model capable of transforming a grayscale image into a color one. Your results can look artistic, but they must have realistic colors.
TUTORIALS:
1. Move data to the server using WinSCP
- download and install WinSCP
- login to the server using the faculty name and password
- copy the data by dragging and drop
- login to alfa.fi.muni.cz using ssh and check if the data are on the server.
2. Run notebook remotely when not using GPU
- check the GPU usage by 'nvitop --monitor'
- log to alfa.fi.muni.cz via ssh
- set CUDA_VISIBLE_DEVICES to None
- check if CUDA is available
- set jupyter server password
- run jupyter lab
- connect server port, where the jupyter is running, with an arbitrary port of your local machine by ssh -L XXXX:localhost:YYYY user@server_name where XXXX is a remote port and YYYY is a local port
- in local browser, run localhost:YYYY to connect to jupyter
- check if jupyter is not using GPU
3. Run python script using reserved GPU
- connect to the alfa.fi.muni.cz server
- reserve a GPU partition
- set CUDA_VISIBLE_DEVICES variable
- run the python script