Master's Thesis

Intelligent integration of paper documents into an ERP system

Final Thesis 1.79 MB

Author of thesis: Ing. Marek Krúpa

Acad. year: 2025/2026

Supervisor: doc. Ing. Radek Burget, Ph.D.

Reviewer: RNDr. Marek Rychlý, Ph.D.

Abstract:

This diploma thesis presents the design and implementation of a system for automated extraction of structured data from printed invoices and their integration into the K2 enterprise resource planning system. The theoretical part surveys current document data extraction methods– from traditional OCR technologies through end-to-end neural models to visionlanguage models (VLMs). Based on the analysis, the Qwen3.5 model was selected, which processes documents directly from their visual representation without external OCR. The implemented system is realized as a containerized microservice with a REST API supporting both synchronous and asynchronous processing via the RabbitMQ message broker. The solution includes a model confidence estimation mechanism based on log-probabilities of generated tokens for Human-in-the-loop process control and optional output generation in the ISDOC 6.0.2 format with XSD schema validation. The system was deployed and tested on an NVIDIA DGX Spark server within the K2 corporate network.

Keywords:

Intelligent Document Processing, IDP, data extraction, vision-language model, Qwen, deep learning, Human-in-the-loop, ERP system, invoice automation, ISDOC

Date of defence

24.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaDznamka

Grading

D

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

Topics for thesis defence

  1. V kap. 6.2.3 na str. 50 uvádíte, že mechanismus odhadu jistoty je geometrický průměr log-pravděpodobnosti jednotlivých tokenů, a zároveň odkazujete na přehled ostatních přístupů v kap. 5.2.2. Proč byl zvolen uvedené mechanismus? Byly vyzkoušeny i jiné přístupy a s jakými výsledky?
  2. V popisu návrhu v technické zprávě zmiňujete možnost výměny jazykového modelu vzhledem k jeho schování za dané API. Zároveň volba Qwen3.5-122B-A10B v kvantizaci NVFP4 není moc zdůvodněna. Bylo testováno i jiné nastavení použitého modelu či jiné modely? S jakými výsledky? Zejména vzhledem ke kap. 8.4 Zjištěná omezení.
  3. Jakým způsobem byla ověřena úspěšnost extrakce (dle bodu 5 zadání) a s jakými výsledky?
  4. Vysvětlete nesrovnalosti v práci s literaturou.

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Software Engineering (NSEN)

Composition of Committee

doc. Ing. Petr Matoušek, Ph.D., M.A. (předseda)
doc. RNDr. Jitka Kreslíková, CSc. (místopředseda)
doc. Ing. Vladimír Janoušek, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Jan Pluskal, Ph.D. (člen)
Ing. Matěj Grégr, Ph.D. (člen)

Supervisor’s report
doc. Ing. Radek Burget, Ph.D.

Pan Krúpa řešil svoji práci po celou dobu velmi zodpovědně, postup průběžně konzultoval a řešení dovedl k výsledku, který je prakticky použitelný a užitečný. Navrhuji proto hodnotit práci stupněm A.

Evaluation criteria Verbal classification
Informace k zadání

Cílem práce byl návrh a implementace řešení pro převod digitalizovaných účetních dokladů do strukturovaného popisu vhodného pro začlenění do existujícího ERP systému. Jedná se o vlastní iniciativu studenta. Zadání považuji za splněné.

Aktivita při dokončování

Práce byla dokončena v dostatečném předstihu a výsledná podoba realizačního výstupu i technické zprávy byly řádně konzultovány.

Publikační činnost, ocenění
Práce s literaturou

Student využíval literaturu doporučenou v rámci konzultací a samostatně vyhledával další relevantní zdroje.

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

Student řešil svoji diplomovou práci po celou dobu aktivně a zodpovědně. Prostudoval řadu existujících přístupů a na základě provedených experimentů zvolil nejvhodnější řešení, které implementoval. Svůj postup průběžně konzultoval.

Points proposed by supervisor: 94

Grade proposed by supervisor: A

Reviewer’s report
RNDr. Marek Rychlý, Ph.D.

Výsledkem diplomové práce je přehledná a informačně bohatá technická zpráva a dobře navržené a funkční programové řešení, vše s drobnou výtkou ke splnění bodu 5 zadání. Kvalitu dokumentace výrazně snižuje nedůvěryhodné použití vykazované literatury (nedohledatelné zdroje). Navrhuji hodnocení stupněm uspokojivě (D).

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno s drobnými výhradami

Zadání je splněno s drobnou výhradou k testování implementovaného řešení na reálných dokumentech (bod 5 zadání), které mohlo být provedeno a zejména zdokumentováno podrobněji (kap. 8).

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Rozsahem je technická zpráva v obvyklém rozmezí, od úvodu po závěr obsahuje 71 vysázených stran (83 normostran). Všechny části technické zprávy jsou informačně bohaté a pro práci skutečně nezbytné.

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

Technická zpráva má logickou strukturu, kdy v první části popisuje jednotlivé postupy, technologie a aplikační prostředí a v druhé pak vlastní návrh, implementaci a vyhodnocení výsledného programového řešení. Oceňuji srozumitelný a čtivý popis existujících přístupů v první části práce. Některé číslované plovoucí objekty (např. výpisy kódů a tabulky v podkap. 7.6) nejsou odkazovány v doprovodném textu, přestože je z jejich umístění patrný způsob použití. V kap. 8 chybí důkladnější vyhodnocení úspěšnosti extrakce, např. metodami a metrikami popsanými v kap. 2.3.3.

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

Po typografické stránce je text až na drobné nedostatky v pořádku (např. nerovnoměrné rozestupy slov na začátku str. 15, ukončení 1. odst. na str. 19, či použití spojovníku místo pomlčky na str. 20).

85
Práce s literaturou

Práce s literaturou vykazuje vážené nedostatky. Rozsáhlý seznam literatury obsahuje 40 položek, z nichž téměř všechny jsou odborné zdroje. Jednotlivé prameny jsou většinou popsány dle zvyklostí a v textu práce hojně odkazovány. U některých odkazů však není jasný způsob a rozsah použití (např. odkaz 27 na str. 41) a jsou spíše pro zvýšení počtu zdrojů, než pro svou relevanci vzhledem k textu. Důvěryhodnost uvedených pramenů dále vážně narušují následující nedostatky: zdroj uvedený jako pol. 27 s daným názvem neexistuje; odkaz zdroje 32 je nedostupný a zdroj ani nelze dle jeho popisu dohledat; odkazy u pol. 26 a 27 vedou na zcela jiné zdroje, než je uvedeno; u pol. 8, 23, 25 a 32 online zdrojů chybí datum citace. Přestože seznam použité literatury je obsáhlý, technická zpráva zmiňuje (avšak necituje) některé pojmy, kde by bylo vhodné relevantní literaturu doplnit (např. "princip dvanáctifaktorové aplikace" na str. 62).

55
Realizační výstup

Realizačním výstupem je funkční systém pro extrakci údajů z obrázků faktur, který je připraven pro integraci do ERP systému K2. Navržená architektura je vhodná pro dané zadání a i implementace je v pořádku. Zdrojový kód programového řešení je vhodně členěn, komentován, testován a je udržovatelný. Vytknout lze použití "print" místo logger v produkčním kódu (extraction_engine/processor_utils.py) a pozůstatky po úpravách kódu AI agenty (např. komentáře v souboru docker-compose.yml, ukončení init a duplicitní kód v extraction_engine/Document_parser.py, podrobné komentáře triviálních funkcí v api/auth_service.py, Ascii art, atp.).

90
Využitelnost výsledků

Lze očekávat dobrou využitelnost výsledků, přestože úspěšnost extrakce nebyla důkladně vyhodnocena (navzdory očekávání dle bodu 5 zadání).

Náročnost zadání

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

Jedná se o průměrně obtížné zadání. Potřebné postupy a nástroje již existují a cílem zadání je především jejich analýza a aplikace.

Topics for thesis defence:
  1. V popisu návrhu v technické zprávě zmiňujete možnost výměny jazykového modelu vzhledem k jeho schování za dané API. Zároveň volba Qwen3.5-122B-A10B v kvantizaci NVFP4 není moc zdůvodněna. Bylo testováno i jiné nastavení použitého modelu či jiné modely? S jakými výsledky? Zejména vzhledem ke kap. 8.4 Zjištěná omezení.
  2. Vysvětlete nesrovnalosti v práci s literaturou.
  3. V kap. 6.2.3 na str. 50 uvádíte, že mechanismus odhadu jistoty je geometrický průměr log-pravděpodobnosti jednotlivých tokenů, a zároveň odkazujete na přehled ostatních přístupů v kap. 5.2.2. Proč byl zvolen uvedené mechanismus? Byly vyzkoušeny i jiné přístupy a s jakými výsledky?
  4. Jakým způsobem byla ověřena úspěšnost extrakce (dle bodu 5 zadání) a s jakými výsledky?
Points proposed by reviewer: 65

Grade proposed by reviewer: D

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