====== Assignment: EM Algorithm ======
==== For Noisy Image Reconstruction ====
**📅 Deadline:** 8.1.2026 21:59
**🏦 Points:** 5
===== Task Description =====
In this assignment, you are tasked with implementing the EM algorithm for image reconstruction from a sequence of shifted noisy images. You can find the complete description of the assignment in the Assignment {{ :courses:be4m33ssu:homeworks:em_image_reconstruction.pdf | }}.
You are provided with a {{ :courses:be4m33ssu:homeworks:hw_em_image_reconstruction_template.zip |template}} containing the following files:
* **main.py**: This file includes the functions that you are required to implement.
* **utils.py**: Contains helper functions for loading and saving data. You do not need to modify this file.
* **test-cases**: A folder containing public test cases to help you verify your implementation before submitting to [[https://cw.felk.cvut.cz/brute/student/course/BE4M33SSU/em|BRUTE]].
All python files must be stored in the root of the .zip sent for submission.
The expected runtime of the evaluation is about 2 minutes.
Go make yourself a coffee while you wait.
===== How to Test =====
After completing your implementation, you can test your solution using the following commands before submitting it to BRUTE:
----
== Test Case 1 ==
python main.py test-cases/public/instances/instance_1.npz
----
== Test Case 2 ==
python main.py test-cases/public/instances/instance_2.npz
----
== Test Case 3 ==
python main.py test-cases/public/instances/instance_3.npz
----
== Test Case 4 ==
python main.py test-cases/public/instances/instance_4.npz
===== Submission Guidelines =====
* Submit the completed code as a .zip via BRUTE.
* All python files must be stored in the root of the .zip sent for submission.
* Make sure your implementation passes the test cases provided above. Good luck! 😊