This repository contains the Jupyter notebooks and related files used in the Python programming exercises for the CS-E4850 - Computer Vision course 2024 at Aalto University, including (1) the actual weekly homework assignments and (2) all test images. Please, see the notebooks for more details on, e.g., submission guideline. If you need to clone this repository read the instructions in option 2 (personal Docker container) on how to clone and update a repository containing Git submodules.
For more information, or bug reporting, feel free to contact Iaroslav Melekhov at the standard Aalto email.
We have added the course to Aalto JupyterHub which you can access here: Aalto JupyterHub. JupyterHub detailed instructions:
- Select the Computer Vision course and click Spawn.
- Select the Assignments tab and click Fetch on the visible assignments. Once new assignments are released, you have to fetch them here.
- The assignments are now visible under your Files tab (you might have to wait a moment for them to appear and/or click refresh). You can start working on the assignments by opening a Jupyter Notebook by clicking the .ipynb file inside the exercise folder.
- JupyterLab is also available and we have added a useful variable inspector extension to help you out. You can switch to JupyterLab by adding "lab/" option to your URL:
- change ...jupyter.cs.aalto.fi/user/your_username/tree/notebooks?
- to ...jupyter.cs.aalto.fi/user/your_username/lab/tree/notebooks?.
- Activate the variable inspector extension by opening a Notebook, right-click with your mouse and choose "Open Variable Inspector." You can then drag the inspector to one side of the screen. NB: The extension is still experimental and might not work perfectly. If you experience serious problems, for example, performance issues, kindly report them through MyCourses Forums or at the exercise sessions.
- More information on, for example, how to access your JupyterHub data and JupyterHub, in general, can be found here.
- When you're ready to submit your solution, export the assignment to pdf and Jupyter Notebook format (.ipynb) and submit them both, the pdf and the Notebook, through MyCourses.
- If you accidentally select a wrong environment or if you use JupyterHub for another course and the wrong environment persists, click "Control Panel" in the upper right corner, select "Stop My Server" and start from the beginning.
Your JupyterLab environment should look approximately like this:
This option will result in the same environment as option 1 above, but you'll now also be able to work on the assignments offline. If you have a basic understanding of Git and Docker, this is an option.
- Download Docker.
- Clone this repo and update the submodules using the following commands:
git clone --recurse-submodules https://github.com/AaltoVision/CV-course-py
cd CV-course-py
git submodule update --remote
- Once new assignments are released, you can pull them using:
git submodule update --remote
- NB: Remember to use the above commands and not, for example,
git pull
. This repo uses Git submodules that collect the separated repositories, notebooks and data, into this single repository, so you don't have to update and clone two repositories. They are separated because it's more convenient for managing JupyterHub. - Download the Docker image. Note: the compressed filesize is about 4GB.
docker pull apparvi/cv2020
- Inside the folder CV-course-py that you cloned create a Docker container by running this bit of a monster command. The command is explained here:
docker run -it --name cvcourse --user $(id -u):$(id -g) --group-add users -v "$(pwd)":/home/jovyan/work -p 8888:8888 apparvi/cv2020 start.sh jupyter lab --NotebookApp.custom_display_url='http://127.0.0.1:8888' --notebook-dir=/home/jovyan/work
- To start JupyterLab copy & paste the created URL to your browser.
- In the future start the container with a more simple command by calling its name:
docker start -i cvcourse
- When you're ready to submit your solution, export the assignment to pdf and Jupyter Notebook format (.ipynb) and submit them both, the pdf and the Notebook, through MyCourses.