From 205b51e3ce2f8aebdb77ec35ec71cc569f16b4fd Mon Sep 17 00:00:00 2001 From: franksim Date: Mon, 13 Oct 2025 10:55:40 +0000 Subject: [PATCH 01/13] assignment-a1: init --- a1/main.py | 0 a1/requirements.txt | 3 +++ 2 files changed, 3 insertions(+) create mode 100644 a1/main.py create mode 100644 a1/requirements.txt diff --git a/a1/main.py b/a1/main.py new file mode 100644 index 0000000..e69de29 diff --git a/a1/requirements.txt b/a1/requirements.txt new file mode 100644 index 0000000..ea3956e --- /dev/null +++ b/a1/requirements.txt @@ -0,0 +1,3 @@ +torch +torchvision +--index-url https://download.pytorch.org/whl/cu129 \ No newline at end of file From cd608ce4e6cc7ba13623eb5aa141896f5d09a7b3 Mon Sep 17 00:00:00 2001 From: franksim Date: Mon, 13 Oct 2025 12:45:02 +0000 Subject: [PATCH 02/13] assignment-a1: adapts gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d5f06fa..7a0e0b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .venv/ +.data *.code-workspace \ No newline at end of file From c88ba5f1eb67c0010a0037031cd7e9bd7f3eb0f7 Mon Sep 17 00:00:00 2001 From: franksim Date: Mon, 13 Oct 2025 12:45:39 +0000 Subject: [PATCH 03/13] assignment-a1: adds build_batch and get_model function --- a1/main.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/a1/main.py b/a1/main.py index e69de29..02462de 100644 --- a/a1/main.py +++ b/a1/main.py @@ -0,0 +1,35 @@ +import os +from PIL import Image +import torch +from torchvision import transforms, datasets, models +from torchvision.transforms import functional as F + + +def pad_to_square(img): + w, h = img.size + max_wh = max(w, h) + pad = ((max_wh - w) // 2, (max_wh - h) // 2) + padding = (pad[0], pad[1], max_wh - w - pad[0], max_wh - h - pad[1]) + return F.pad(img, padding, fill=0, padding_mode='constant') + + +def build_batch(paths, size=224): + preprocess = transforms.Compose([ + transforms.Lambda(pad_to_square), + transforms.Resize((size, size)), + transforms.ToTensor(), + transforms.Normalize(mean=[0.485, 0.456, 0.406], + std=[0.229, 0.224, 0.225]), + ]) + imgs = [] + for path in paths: + img = Image.open(path).convert('RGB') + img = preprocess(img) + imgs.append(img) + batch = torch.stack(imgs) + return batch + + +def get_model(): + model = models.resnet18(weights=models.ResNet18_Weights.DEFAULT) + return model From ddec9d30770305a52441fd2e03db5ec0fc9694ea Mon Sep 17 00:00:00 2001 From: franksim Date: Mon, 13 Oct 2025 13:04:11 +0000 Subject: [PATCH 04/13] assignment-a1: adapts to template code --- a1/main.py | 35 ----------------------------------- a1/requirements.txt | 3 --- mmp/a1/main.py | 30 ++++++++++++++++++++++++++++-- 3 files changed, 28 insertions(+), 40 deletions(-) delete mode 100644 a1/main.py delete mode 100644 a1/requirements.txt diff --git a/a1/main.py b/a1/main.py deleted file mode 100644 index 02462de..0000000 --- a/a1/main.py +++ /dev/null @@ -1,35 +0,0 @@ -import os -from PIL import Image -import torch -from torchvision import transforms, datasets, models -from torchvision.transforms import functional as F - - -def pad_to_square(img): - w, h = img.size - max_wh = max(w, h) - pad = ((max_wh - w) // 2, (max_wh - h) // 2) - padding = (pad[0], pad[1], max_wh - w - pad[0], max_wh - h - pad[1]) - return F.pad(img, padding, fill=0, padding_mode='constant') - - -def build_batch(paths, size=224): - preprocess = transforms.Compose([ - transforms.Lambda(pad_to_square), - transforms.Resize((size, size)), - transforms.ToTensor(), - transforms.Normalize(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225]), - ]) - imgs = [] - for path in paths: - img = Image.open(path).convert('RGB') - img = preprocess(img) - imgs.append(img) - batch = torch.stack(imgs) - return batch - - -def get_model(): - model = models.resnet18(weights=models.ResNet18_Weights.DEFAULT) - return model diff --git a/a1/requirements.txt b/a1/requirements.txt deleted file mode 100644 index ea3956e..0000000 --- a/a1/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -torch -torchvision ---index-url https://download.pytorch.org/whl/cu129 \ No newline at end of file diff --git a/mmp/a1/main.py b/mmp/a1/main.py index c1d0eda..fd807bf 100644 --- a/mmp/a1/main.py +++ b/mmp/a1/main.py @@ -1,5 +1,16 @@ from typing import Sequence import torch +from torchvision.transforms import functional as F +from torchvision import transforms, models +from PIL import Image + + +def pad_to_square(img): + w, h = img.size + max_wh = max(w, h) + pad = ((max_wh - w) // 2, (max_wh - h) // 2) + padding = (pad[0], pad[1], max_wh - w - pad[0], max_wh - h - pad[1]) + return F.pad(img, padding, fill=0, padding_mode='constant') def build_batch(paths: Sequence[str], transform=None) -> torch.Tensor: @@ -9,7 +20,20 @@ def build_batch(paths: Sequence[str], transform=None) -> torch.Tensor: @param transform: One or multiple image transformations for augmenting the batch images. @return: Returns one single tensor that contains every image. """ - raise NotImplementedError() + preprocess = transforms.Compose([ + transforms.Lambda(pad_to_square), + transforms.Resize((224, 224)), + transforms.ToTensor(), + transforms.Normalize(mean=[0.485, 0.456, 0.406], + std=[0.229, 0.224, 0.225]), + ]) + imgs = [] + for path in paths: + img = Image.open(path).convert('RGB') + img = preprocess(img) + imgs.append(img) + batch = torch.stack(imgs) + return batch def get_model() -> torch.nn.Module: @@ -17,7 +41,9 @@ def get_model() -> torch.nn.Module: @return: Returns a neural network, initialised with pretrained weights. """ - raise NotImplementedError() + model = models.resnet18( + weights=models.ResNet18_Weights.DEFAULT) + return model def main(): From 142b93a119cdb620aa0fbfde797acc4e1ba2a10f Mon Sep 17 00:00:00 2001 From: franksim Date: Tue, 14 Oct 2025 06:44:18 +0000 Subject: [PATCH 05/13] assignment-a1: adds IDE folders to .gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d9dab01..6a15bf1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .venv/ .data __pycache__/ -*.code-workspace \ No newline at end of file +*.code-workspace +.vscode/ +.idea/ \ No newline at end of file From 19ea10dbe7c2997cc6009cd624e3dd68047ff077 Mon Sep 17 00:00:00 2001 From: franksim Date: Tue, 14 Oct 2025 07:45:19 +0000 Subject: [PATCH 06/13] assignment-a1: adds forward pass --- mmp/a1/main.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/mmp/a1/main.py b/mmp/a1/main.py index fd807bf..e134645 100644 --- a/mmp/a1/main.py +++ b/mmp/a1/main.py @@ -1,5 +1,6 @@ from typing import Sequence import torch +import torchvision from torchvision.transforms import functional as F from torchvision import transforms, models from PIL import Image @@ -51,7 +52,31 @@ def main(): Put all your code for exercise 1.3 here. """ - raise NotImplementedError() + + paths = [ + "./images/golden retriever.jpg", + "./images/koala.jpg", + "./images/pacifier.jpg", + "./images/rubber duck sculpture.jpg", + "./images/rubber ducks.jpg", + "./images/shoehorn.jpg", + "./images/zoo.jpg", + ] + batch = build_batch(paths) + model = get_model() + + with torch.no_grad(): + outputs = model(batch) + + max_scores, preds = outputs.max(dim=1) + + class_names = torchvision.models.ResNet18_Weights.DEFAULT.meta["categories"] + + for i, (p, s) in enumerate(zip(preds, max_scores)): + print(f"Image: {paths[i]}") + print(f" Model output score: {s.item():.4f}") + print(f" Predicted class: {class_names[p.item()]}") + print() if __name__ == "__main__": From 89faa2649bc5c4c2b7df4d500b25e59ca605d971 Mon Sep 17 00:00:00 2001 From: franksim Date: Tue, 14 Oct 2025 08:53:19 +0000 Subject: [PATCH 07/13] assignment-a1: adds different batches for different transforms --- mmp/a1/main.py | 55 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/mmp/a1/main.py b/mmp/a1/main.py index e134645..c9eb169 100644 --- a/mmp/a1/main.py +++ b/mmp/a1/main.py @@ -2,7 +2,7 @@ from typing import Sequence import torch import torchvision from torchvision.transforms import functional as F -from torchvision import transforms, models +from torchvision import models, transforms from PIL import Image @@ -14,7 +14,7 @@ def pad_to_square(img): return F.pad(img, padding, fill=0, padding_mode='constant') -def build_batch(paths: Sequence[str], transform=None) -> torch.Tensor: +def build_batch(paths: Sequence[str], size=(224, 224), additional_transforms=[]) -> torch.Tensor: """Exercise 1.1 @param paths: A sequence (e.g. list) of strings, each specifying the location of an image file. @@ -23,12 +23,15 @@ def build_batch(paths: Sequence[str], transform=None) -> torch.Tensor: """ preprocess = transforms.Compose([ transforms.Lambda(pad_to_square), - transforms.Resize((224, 224)), - transforms.ToTensor(), - transforms.Normalize(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225]), - ]) + transforms.Resize(size)] + + additional_transforms + + + [transforms.ToTensor(), + transforms.Normalize(mean=[0.485, 0.456, 0.406], + std=[0.229, 0.224, 0.225]), + ]) imgs = [] + for path in paths: img = Image.open(path).convert('RGB') img = preprocess(img) @@ -47,6 +50,21 @@ def get_model() -> torch.nn.Module: return model +def forward_pass(paths, batch, model): + with torch.no_grad(): + outputs = model(batch) + + max_scores, preds = outputs.max(dim=1) + + class_names = torchvision.models.ResNet18_Weights.DEFAULT.meta["categories"] + + for i, (p, s) in enumerate(zip(preds, max_scores)): + print(f"Image: {paths[i]}") + print(f"Model output score: {s.item():.4f}") + print(f"Predicted class: {class_names[p.item()]}") + print() + + def main(): """Exercise 1.3 @@ -62,22 +80,19 @@ def main(): "./images/shoehorn.jpg", "./images/zoo.jpg", ] - batch = build_batch(paths) + batch_a = build_batch(paths) model = get_model() + print("Batch A:") + forward_pass(paths, batch_a, model) - with torch.no_grad(): - outputs = model(batch) - - max_scores, preds = outputs.max(dim=1) - - class_names = torchvision.models.ResNet18_Weights.DEFAULT.meta["categories"] - - for i, (p, s) in enumerate(zip(preds, max_scores)): - print(f"Image: {paths[i]}") - print(f" Model output score: {s.item():.4f}") - print(f" Predicted class: {class_names[p.item()]}") - print() + print("Batch B:") + batch_b = build_batch(paths, (400, 400)) + forward_pass(paths, batch_b, model) + print("Batch C:") + batch_c = build_batch(paths, additional_transforms=[ + transforms.RandomVerticalFlip(1)]) + forward_pass(paths, batch_c, model) if __name__ == "__main__": main() From b7825b08311e8dcbffe0ac5bf99ee37fef44119d Mon Sep 17 00:00:00 2001 From: franksim Date: Tue, 14 Oct 2025 09:37:51 +0000 Subject: [PATCH 08/13] assignment-a1: adds add_matrix_vector and avg_color --- mmp/a1/tensors.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mmp/a1/tensors.py b/mmp/a1/tensors.py index 4574de1..0c7c329 100644 --- a/mmp/a1/tensors.py +++ b/mmp/a1/tensors.py @@ -1,10 +1,17 @@ import torch +from PIL import Image +from torchvision.transforms import ToTensor + def avg_color(img: torch.Tensor): - raise NotImplementedError() + result = img.mean(dim=(1, 2)).tolist() + return tuple(result) + def mask(foreground: torch.Tensor, background: torch.Tensor, mask_tensor: torch.Tensor, threshold: float): raise NotImplementedError() + def add_matrix_vector(matrix: torch.Tensor, vector: torch.Tensor): - raise NotImplementedError() + return matrix.add(vector) + From 9372abd0a3482c27cefe66a4613fa72e491d6bec Mon Sep 17 00:00:00 2001 From: franksim Date: Thu, 16 Oct 2025 14:12:01 +0000 Subject: [PATCH 09/13] assignment-a1: implements mask function --- mmp/a1/tensors.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mmp/a1/tensors.py b/mmp/a1/tensors.py index 0c7c329..4669751 100644 --- a/mmp/a1/tensors.py +++ b/mmp/a1/tensors.py @@ -1,6 +1,4 @@ import torch -from PIL import Image -from torchvision.transforms import ToTensor def avg_color(img: torch.Tensor): @@ -9,9 +7,9 @@ def avg_color(img: torch.Tensor): def mask(foreground: torch.Tensor, background: torch.Tensor, mask_tensor: torch.Tensor, threshold: float): - raise NotImplementedError() + mask = mask_tensor > threshold + return torch.where(mask, foreground, background) def add_matrix_vector(matrix: torch.Tensor, vector: torch.Tensor): return matrix.add(vector) - From caad6dc77962d4cbfa7fdc2800b3f0da5dcfbecb Mon Sep 17 00:00:00 2001 From: franksim Date: Thu, 16 Oct 2025 14:15:40 +0000 Subject: [PATCH 10/13] assignment-a1: fix --- mmp/a1/tensors.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mmp/a1/tensors.py b/mmp/a1/tensors.py index 4669751..f96fbac 100644 --- a/mmp/a1/tensors.py +++ b/mmp/a1/tensors.py @@ -2,8 +2,7 @@ import torch def avg_color(img: torch.Tensor): - result = img.mean(dim=(1, 2)).tolist() - return tuple(result) + return img.mean(dim=(1, 2)).tolist() def mask(foreground: torch.Tensor, background: torch.Tensor, mask_tensor: torch.Tensor, threshold: float): From fe329b636d71c0c5099a618426360c91cfd63fe9 Mon Sep 17 00:00:00 2001 From: franksim Date: Thu, 16 Oct 2025 14:17:54 +0000 Subject: [PATCH 11/13] assignment-a1: fix --- mmp/a1/tensors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmp/a1/tensors.py b/mmp/a1/tensors.py index f96fbac..3d87203 100644 --- a/mmp/a1/tensors.py +++ b/mmp/a1/tensors.py @@ -2,7 +2,7 @@ import torch def avg_color(img: torch.Tensor): - return img.mean(dim=(1, 2)).tolist() + return img.mean(dim=(1, 2)) def mask(foreground: torch.Tensor, background: torch.Tensor, mask_tensor: torch.Tensor, threshold: float): From c68f30b15970dafd87e842f67347933d290520ea Mon Sep 17 00:00:00 2001 From: franksim Date: Thu, 16 Oct 2025 14:39:25 +0000 Subject: [PATCH 12/13] assignment-a1: adapts build batch --- mmp/a1/main.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/mmp/a1/main.py b/mmp/a1/main.py index c9eb169..cb10388 100644 --- a/mmp/a1/main.py +++ b/mmp/a1/main.py @@ -14,7 +14,7 @@ def pad_to_square(img): return F.pad(img, padding, fill=0, padding_mode='constant') -def build_batch(paths: Sequence[str], size=(224, 224), additional_transforms=[]) -> torch.Tensor: +def build_batch(paths: Sequence[str], transform=None) -> torch.Tensor: """Exercise 1.1 @param paths: A sequence (e.g. list) of strings, each specifying the location of an image file. @@ -23,15 +23,13 @@ def build_batch(paths: Sequence[str], size=(224, 224), additional_transforms=[]) """ preprocess = transforms.Compose([ transforms.Lambda(pad_to_square), - transforms.Resize(size)] - + additional_transforms - + - [transforms.ToTensor(), - transforms.Normalize(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225]), - ]) + transforms.Resize((224, 224)), + *([transform] if transform is not None else []), + transforms.ToTensor() + ] + ) imgs = [] - + for path in paths: img = Image.open(path).convert('RGB') img = preprocess(img) @@ -86,13 +84,13 @@ def main(): forward_pass(paths, batch_a, model) print("Batch B:") - batch_b = build_batch(paths, (400, 400)) + batch_b = build_batch(paths, transforms.Resize((100, 100))) forward_pass(paths, batch_b, model) print("Batch C:") - batch_c = build_batch(paths, additional_transforms=[ - transforms.RandomVerticalFlip(1)]) + batch_c = build_batch(paths, transforms.RandomVerticalFlip(1)) forward_pass(paths, batch_c, model) + if __name__ == "__main__": main() From 884e9509528addfff224612bc765eef4dce5834f Mon Sep 17 00:00:00 2001 From: franksim Date: Sat, 18 Oct 2025 09:05:44 +0000 Subject: [PATCH 13/13] assignment-a1: adds document --- .gitignore | 7 ++- mmp/a1/document.pdf | Bin 0 -> 88677 bytes mmp/a1/document.tex | 125 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 mmp/a1/document.pdf create mode 100644 mmp/a1/document.tex diff --git a/.gitignore b/.gitignore index 6a15bf1..c5ee606 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,9 @@ __pycache__/ *.code-workspace .vscode/ -.idea/ \ No newline at end of file +.idea/ +*.aux +*.fdb_latexmk +*.fls +*.log +*.synctex.gz \ No newline at end of file diff --git a/mmp/a1/document.pdf b/mmp/a1/document.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1e95e57b3d1a6c014cd4a6e9be6e5a1eb72f79c1 GIT binary patch literal 88677 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 Dmw?__ literal 0 HcmV?d00001 diff --git a/mmp/a1/document.tex b/mmp/a1/document.tex new file mode 100644 index 0000000..8d0df3d --- /dev/null +++ b/mmp/a1/document.tex @@ -0,0 +1,125 @@ +\documentclass[11pt,a4paper]{article} + +% Language and encoding settings +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[english]{babel} + +% Page formatting +\usepackage[left=1in, right=1in, top=1in, bottom=1in]{geometry} +\usepackage{setspace} +\onehalfspacing + +% Header/Footer +\usepackage{fancyhdr} +\pagestyle{fancy} +\fancyhf{} % clear all header and footer fields +\fancyhead[L]{\textbf{\course}} +\fancyhead[C]{Assignment \assignmentnumber} +\fancyhead[R]{\name} +\fancyfoot[C]{\thepage} + +% Other packages +\usepackage{enumitem} + +% Custom commands for easy detail insertion +\newcommand{\assignmentnumber}{01} % <-- CHANGE Assignment Number +\newcommand{\name}{Simon Franken} % <-- CHANGE YOUR NAME +\newcommand{\course}{Multimedia Project WiSe 2526} % <-- CHANGE COURSE NAME +\newcommand{\duedate}{2025-10-22} % <-- CHANGE DUE DATE + +% Title formatting +\usepackage{titling} +\pretitle{ + \vspace*{2cm} + \begin{center} + \LARGE\bfseries +} +\posttitle{\par\end{center}\vspace{1cm}} + +\begin{document} + +\title{Assignment \assignmentnumber} +\author{\name} +\date{\duedate} + +\maketitle + +\begin{center} + \textbf{Course:} \course +\end{center} +\vspace{0.5cm} + +%------------------ START OF ASSIGNMENT ----------------------- + +% Write your solutions below + +\section*{Excercise 1.3 Forward Pass} + +\begin{enumerate}[label=\alph*)] + \item + Two of the results were entirely correct. Some of the incorrect results were at least in the right direction, such as “llama” for “zoo.jpg” and “bathing cup” for “rubber duck sculpture.jpg”. \\ + \begin{tabular}{|c|c|c|} + \hline Image & Model Output & Result \\ + \hline + \hline + "golden retriever.jpg" & golden retriever & Correct \\ + \hline + "koala.jpg" & koala & Correct \\ + \hline + "pacifier.jpg" & Petri dish & Incorrect \\ + \hline + "rubber duck sculpture.jpg" & bathing cup & Incorrect \\ + \hline + "rubber ducks.jpg" & frying pan & Incorrect \\ + \hline + "shoehorn.jpg" & wine bottle & Incorrect \\ + \hline + "zoo.jpg" & llama & Incorrect, but close \\ + \hline + \end{tabular} + \item The resizing to a lower resolution resulted in none of the answers being entirely accurate. However, for the animals, the answers were quite close. This can be attributed to the loss of detail during the downsizing process.\\ + \begin{tabular}{|c|c|c|} + \hline Image & Model Output & Result \\ + \hline + \hline + "golden retriever.jpg" & Saluki & Incorrect, but close \\ + \hline + "koala.jpg" & Madagascar cat & Incorrect, but close \\ + \hline + "pacifier.jpg" & maze & Incorrect \\ + \hline + "rubber duck sculpture.jpg" & goldfinch & Incorrect \\ + \hline + "rubber ducks.jpg" & confectionery & Incorrect \\ + \hline + "shoehorn.jpg" & banana & Incorrect \\ + \hline + "zoo.jpg" & fountain & Incorrect \\ + \hline + \end{tabular} + \item The vertical flip posed a significant challenge to the model. While none of the results were entirely accurate, a few were moving in the right direction. It’s likely that the model was trained using images that were not upside down, which lead to those results.\\ + \begin{tabular}{|c|c|c|} + \hline Image & Model Output & Result \\ + \hline + \hline + "golden retriever.jpg" & fox squirrel & Incorrect, right direction \\ + \hline + "koala.jpg" & Madagascar cat & Incorrect, but close \\ + \hline + "pacifier.jpg" & nipple & Incorrect \\ + \hline + "rubber duck sculpture.jpg" & stage & Incorrect \\ + \hline + "rubber ducks.jpg" & frying pan & Incorrect \\ + \hline + "shoehorn.jpg" & punching bag & Incorrect \\ + \hline + "zoo.jpg" & shield & Incorrect \\ + \hline + \end{tabular} +\end{enumerate} + +%------------------ END OF ASSIGNMENT ----------------------- + +\end{document} \ No newline at end of file