Bachelor's Thesis

Mobile Application for Price Conversion Recognized from Photograph

Final Thesis 3.14 MB

Author of thesis: Jan Osuský

Acad. year: 2025/2026

Supervisor: doc. Ing. Michal Španěl, Ph.D.

Reviewer: Ing. Petr Šilling

Abstract:

This thesis presents the development of a mobile application designed to convert prices recognized from photographs. The primary goal is to facilitate quick and accurate currency conversion by leveraging advanced image recognition technologies. The application employs the Flutter framework for cross-platform compatibility and integrates TensorFlow Lite for efficient on-device machine learning model execution. Key features include the use of state-of-the-art object detection models, such as YOLOv9 and SSD MobileNet V2, to accurately identify and extract price tags from images. The application also incorporates the Open Exchange Rates API to provide up-to-date currency conversion rates, ensuring accurate financial conversions. The user interface is intuitively designed using Flutter’s widget-based architecture to enhance user experience. This project demonstrates the practical integration of machine learning and mobile development frameworks, offering a robust solution for real-time price conversion from photographic inputs.

Keywords:

multiplatform app development, mobile application, Android, iOS Flutter, machine learning, deep learning, convolutional neural networks, object detection, TensorFlow lite, YOLO, SSD

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaEznamka

Grading

E

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 E.

Topics for thesis defence

  1. Jak konkrétně jste anotoval vaši datovou sadu? Zmiňujete nástroj Make Sense AI, ale z popisu nejsou zřejmé žádné detaily. Anotoval jste vše ručně? Nebo jste využíval nějaký pomocný model? A jaký formát anotací jste tedy použil?
  2. Trénoval jste celkem 4 detekční modely, přitom 2 z nich jste předem identifikoval jako nevhodné kvůli copyleft licencím. Proč jste je tedy vůbec trénoval?
  3. Jak byste řešil problém s konverzí v situacích, kdy je na cenovce více různých čísel?
  4. Jak jste anotoval? Co jsou anotace?
  5. Jaké nástroje jste použil?
  6. Proč máte na ilustračním obrázku převod z CZK do CZK?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. Lukáš Burget, Ph.D. (předseda)
doc. Mgr. Adam Rogalewicz, Ph.D. (místopředseda)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Michal Hradiš, Ph.D. (člen)
Ing. Martin Žádník, Ph.D. (člen)

Supervisor’s report
doc. Ing. Michal Španěl, Ph.D.

V hodnocení vedoucího reflektuji množství práce a aktivitu pana Osuského na rozšíření jeho v zahraničí obhájené práce. Téma práce měl velmi zajímavé a je pro mě mírným zklamáním, že nevyužil možnost ji dále vylepšit a aplikaci posunout až k reálným uživatelům. Nabyl jsem dojmu, že se raději vydal cestou mírného doplnění původní práce bez většího úsilí a nasazení.

Evaluation criteria Verbal classification
Informace k zadání

Téma navazuje na již obhájenou práci pana Osuského během jeho studia v Norsku na NTNU (Norwegian University of Science and Technology). V rámci odevzdání práce na FIT VUT jsme se dohodli na inkrementálním doplnění a vylepšení práce. Kromě vlastních nápadů studenta na úpravy aplikace, jsme uvažovali o aktualizaci použitého YOLO detektoru, rozšíření datasetu a realizaci uživatelského testování aplikace. Z rozšíření se podařilo realizovat méně než jsem doufal.

Práce s literaturou

S literaturou student pracoval samostatně. Stěžejní část studia literatury měl již za sebou a věnoval se zejména novinkám v oblasti detekce objektů a rodiny YOLO detektorů.

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

Po několika konzultacích během prvního semestru se student odmlčel a ve druhém semestru proběhla už jen jedna konzultace. Student pracoval samostatně a množství práce je pro mě těžké posoudit, protože kontakt s vedoucím byl minimální.

Aktivita při dokončování

Dokončení technické zprávy probíhalo na poslední chvíli. Příležitost se vyjádřit k jejímu finálnímu stavu jsem měl až těsně před odevzdáním.

Publikační činnost, ocenění

Není známa.

Points proposed by supervisor: 55

Grade proposed by supervisor: E

Reviewer’s report
Ing. Petr Šilling

Student nastudoval základní principy moderních detekčních metod a dokázal je spolu s OCR metodami aplikovat na vlastní datové sadě pro čtení cen z obrazu. Zároveň k metodě student implementoval jednoduché uživatelské rozhraní. I přes některé nedostatky, např. v oblasti detekce cen v supermarketech, je aplikace funkční a splňuje zadání. Technická zpráva je ovšem velmi nízké kvality a obsahuje spousty nadbytečné výplně. Práce jako celek navíc působí vcelku minimalisticky. Navrhuji proto hodnotit známkou D.

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

Evaluation level: obtížnější zadání

Zadání vyžadovalo pochopení moderních metod pro zpracování obrazu v oblastech detekce a OCR, včetně jejich trénování a přípravy vlastní datové sady. Student se navíc musel seznámit s vývojem multiplatformních mobilních aplikací a ovládáním mobilního fotoaparátu. I přes přesah nad rámec standardního bakalářského studia však vzhledem k rozsahu aplikace považuji zadání práce pouze jako mírně obtížnější.

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

Práce začíná úvodem do problematiky mobilních operačních systémů a mobilního vývoje. Úvod je rozsáhlý, nicméně relevance některých pasáží pro samotnou práci je sporná. Následný přehled již existujících alternativních aplikací by naopak mohl být detailnější.

Dále práce popisuje základy počítačového vidění, detekce objektů a OCR, a to v úzkém zaměření na metody hlubokého učení. Obsahově jde o relevantní kapitolu, ovšem vysvětlení prezentovaných metod je místy zmatečné a opět obsahuje nadbytečné informace (např. celou tabulku 3.1 či rozbor všech variant modelů YOLO a jejich licencí). Popis OCR metod se zaměřuje pouze na knihovny a nijak se nedotýká principů metod samotných, což rovněž hodnotím negativně.

Následuje popis vytvořené datové sady. Ten však opět obsahuje řadu nadbytečných informací a není z něj ani zřejmé, jak konkrétně byla data anotována.

Design aplikace není přehledně popsán a silně se prolíná s implementačními detaily. Toto bych vzhledem k charakteru práce nehodnotil negativně, kdyby se v implementačních detailech student více zabýval obecným popisem architektury a méně pak detaily zvolených frameworků a signaturami jednotlivých, často nepříliš důležitých funkcí.

Z textu není jasné, jak přesně probíhalo trénování a vyhodnocení, z velké části kvůli různým variantám anotací v připravené datové sadě. Zároveň není zřejmé, jaký byl protokol uživatelského testování ani kdo konkrétně byli testovaní uživatelé. Chybí podrobné ukázky snímků, na kterých metoda selhává.

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

Práce je psána v relativně jednoduché angličtině a obsahuje viditelné překlepy a gramatické chyby (např. zcela chybějící podměty vět). Obrázky jsou ve velmi špatné kvalitě a z velké části není možné je vůbec přečíst, což je např. v případě grafů velmi problematické. Popisky obrázků by rovněž mohly být detailnější.

60
Realizační výstup

Student pro svoji datovou sadu nasbíral 1475 snímků obsahujících ceny a cenovky z různých zemí a situací, od obchodů po menu z restaurací. Na datové sadě student natrénoval celkem 4 modely pro detekci cen v obraze, přitom 2 z nich již předem identifikoval jako nevhodné. Na detekované ceny jsou následně aplikovány metody OCR skrze existující OCR frameworky. Student ve svém řešení nicméně opomenul případy, kdy se na cenovkách nachází více čísel, než pouze samotné ceny (např. cenovky v supermarketech). Za těchto situací řešení funguje pouze z poloviny.

Rozhraní aplikace je založené na frameworku Flutter. Aplikace je vizuálně minimalistická (má pouze 2 základní pohledy), což je ale vzhledem k tématu práce v pořádku. Odsazení některých UI elementů však není adekvátní. Boxy s převedenými měnami mají jednotnou velikost a často se překrývají, což činí převedené ceny stěží čitelnými. Zdrojové kódy jsou vhodně oddělené, ale obsahují pouze minimum komentářů.

Vyhodnocení detekcí a OCR je smysluplné, i když by bylo vhodné např. i rozdělení dle obtížnosti vstupních snímků. Uživatelský dotazník zaměřený na UI je složen z velmi obecných a jednoduchých otázek. Není zřejmé, proč testování neprobíhalo již v době návrhu rozhraní, kdy bylo možné ještě získanou zpětnou vazbu efektivně zapracovat do samotné aplikace. Pozoruhodné je i velmi kladné hodnocení přesnosti konverze z fotografií, když podle kvantitativních výsledků není až každá druhá cenovka přečtena správně.

65
Využitelnost výsledků

Vytvořené řešení má s úpravami a vylepšeními potenciál pro vydání ve formě veřejně dostupné mobilní aplikace.

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

Evaluation level: zadání splněno

Zadání bylo splněno.

Rozsah technické zprávy

Evaluation level: přesahuje obvyklé rozmezí

Technická zpráva je na bakalářskou práci velice obsáhlá (závěr se nachází na straně 59). Text práce obsahuje mnoho nadbytečných informací, které by šlo z práce bez problému vyjmout (např. historii a popis mobilních operačních systémů).

Práce s literaturou

Práce cituje celkem 47 zdrojů. Částečně se jedná o vědecké články, nicméně velká část referencí se odkazuje pouze na webové stránky různorodé kvality, licence, aplikace apod. Nebyla dodržena řádná citační etika. Např. citace článků často obsahují pouze jména autorů, název a rok vydání. Použité zdroje jsou nicméně relevantní a jsou v textu správně použity i citovány.

55
Topics for thesis defence:
  1. Jak byste řešil problém s konverzí v situacích, kdy je na cenovce více různých čísel?
  2. Jak konkrétně jste anotoval vaši datovou sadu? Zmiňujete nástroj Make Sense AI, ale z popisu nejsou zřejmé žádné detaily. Anotoval jste vše ručně? Nebo jste využíval nějaký pomocný model? A jaký formát anotací jste tedy použil?
  3. Trénoval jste celkem 4 detekční modely, přitom 2 z nich jste předem identifikoval jako nevhodné kvůli copyleft licencím. Proč jste je tedy vůbec trénoval?
Points proposed by reviewer: 60

Grade proposed by reviewer: D

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