Bachelor's Thesis

Web Application for Photo Stitching

Final Thesis 9.77 MB

Author of thesis: Oleg Andriichuk

Acad. year: 2025/2026

Supervisor: Ing. Michal Hradiš, Ph.D.

Reviewer: Ing. Markéta Juránková, Ph.D.

Abstract:

This bachelor’s thesis focuses on the design and implementation of a web application for stitching partial photographs of a large document into a single high-resolution image. The
goal is to automatically align and merge overlapping images while preserving detail, eliminating visible seams, and unifying the lighting across individual photographs — all through
a clear, responsive, and user-friendly web interface without requiring local software installation. The application is based on a client-server architecture using FastAPI with asynchronous SQLAlchemy on the backend and Vue.js on the frontend. For the stitching
computation, an external CLI tool called Exposea is integrated, performing image merging.
Results are stored in AWS S3 and served as a tile pyramid in an interactive Leaflet-based
viewer in the browser. The system supports multi-user collaboration with role-based access
control, photo upload with preview generation, and full job lifecycle management including re-runs and failure log access. The result is a fully functional web platform enabling
users to manage projects, upload images, configure and submit stitching jobs, monitor their progress in real time, and inspect results in an interactive tile viewer with full-resolution
download support. The contribution of this work lies in delivering a practical architecture
for web applications that orchestrate computationally intensive external tools through a
message queue, making complex image processing pipelines accessible via a standard web browser.

Keywords:

Image stitching, web application, SQLAlchemy, REST API, Redis Streams, FastAPI, Vue.js,
AWS S3, tile pyramid, Leaflet, Exposea tool.

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Topics for thesis defence

  1. Jakým způsobem by bylo možné realizovat nasazení systému ve více organizacích a jaké technické překážky by bylo nutné při tomto nasazení řešit?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. Tomáš Martínek, Ph.D. (předseda)
doc. Ing. Michal Španěl, Ph.D. (místopředseda)
Ing. Jiří Hynek, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)
Ing. Vladimír Bartík, Ph.D. (člen)

Supervisor’s report
Ing. Michal Hradiš, Ph.D.

Student důsledně pracoval s cílem vytvořit kvalitní výsledek. Bylo sice náročnější, aby pochopil zamýšlené způsoby použití aplikace, tvorbu kvalitních uživatelských rozhraních a webových aplikací s výpočetně náročným zpracováním dat, ale jeho pochopení těchto témat a schopnosti se zlepšovaly. Byl jasně zřetelný jeho pokrok. Výsledkem je dostatečně kvalitní a použitelná aplikace.

Evaluation criteria Verbal classification
Informace k zadání

Cílem práce bylo vytvořit webovou aplikaci pro nástroje schopné sestavit obraz například velkoformátových map z fotografií nebo naskenovaných částí, které byly vytvořeny na FIT VUT v rámci výzkumného projektu Smart Digilinka. Bylo sice náročnější, aby student pochopil požadavky na aplikaci, plánovaný způsob použití a z toho vyplývající potřebné vlastnosti uživatelského rozhraní, ale výsledkem je funkční aplikace, kterou je možné používat pro cílový účel.

Práce s literaturou

Student si vyhledal a nastudoval zdroje potřebné pro řešení. Tato práce ale rozsáhlejší studium literatury nevyžadovala.

Aktivita během řešení, konzultace, komunikace

Student svou práci dostatečně konzultoval a konzultace byl připraven.

Aktivita při dokončování

Student aplikaci vytvářel průběžně. Finální verzi dokončil v předstihu a mohla být otestována uživateli. Text práce dobře konzultoval.

Publikační činnost, ocenění
Points proposed by supervisor: 78

Grade proposed by supervisor: C

Student v rámci bakalářské práce vytvořil plnohodnotnou webovou aplikaci využívající již existující software pro skládání fotografií specializovaný na dokumenty velkého formátu. Výsledná aplikace poskytuje komplexní správu projektů, uživatelů i historie zpracování. Student vhodně navrhl a implementoval architekturu systému tak, aby byla aplikace responzivní, přehledná a uživatelsky přívětivá. Již v aktuální podobě je aplikace připravena k praktickému využití. Z výše uvedených důvodů navrhuji hodnocení známkou A.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: průměrně obtížné zadání

Prezentační úroveň technické zprávy

Práce je vhodně strukturovaná, jednotlivé kapitoly na sebe přirozeně navazují a provázejí čtenáře od motivace přes teorii, návrh řešení a implementaci až po vyhodnocení systému.

95
Formální úprava technické zprávy

Typograficky a jazykově je práce na velmi vysoké úrovni. Obsahuje pouze minimální množství chyb.

95
Realizační výstup

Výstupem práce je aplikace vhodná k okamžitému použití. Validaci systému by však bylo vhodné vyhodnotit na větším vzorku respondentů a při širší škále úloh prováděných v aplikaci. Prezentovaných pět respondentů představuje poměrně malý vzorek, i když byli zvoleni vhodně různorodě a pro hrubou představu o práci se systémem to stačí.

85
Využitelnost výsledků

Výsledná aplikace slouží jako uživatelsky přívětivé rozhraní pro software vyvinutý v rámci projektu NAKI III na FIT VUT. Ačkoli práce nepřináší nové vědecké poznatky, významně rozšiřuje možnosti využití specializovaného softwaru i mezi méně technicky zaměřené uživatele, například archiváře. Práce tak má značný potenciál pro praktické využití a reálné nasazení.

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce je v obvyklém rozsahu, závěr je na straně 54.

Práce s literaturou

Student správně a vhodně cituje relevantní zdroje, převzaté prvky jsou řádně odlišeny a smysluplně využity ve vlastní práci.

95
Topics for thesis defence:
  1. Jakým způsobem by bylo možné realizovat nasazení systému ve více organizacích a jaké technické překážky by bylo nutné při tomto nasazení řešit?
Points proposed by reviewer: 90

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová