
Cropilot je nástroj, který pomáhá zrychlit jednu z časově nejnáročnějších částí digitalizace, a to zpracování skenů. Pomocí AI automaticky rozpozná stránky, navrhne jejich ořez i natočení a umožní uživateli jednoduše zkontrolovat nebo upravit jen ty výsledky, které to skutečně potřebují. Díky tomu šetří čas, snižuje množství ruční práce a usnadňuje zpracování rozsáhlých digitalizačních dávek.

Digitalizace současných i historických dokumentů, jako jsou knižní tituly, rukopisy a noviny, pomáhá chránit fyzické originály před poškozením a zároveň zpřístupňuje knihovní zdroje vědcům, studentům a široké veřejnosti. Díky digitalizaci si mohou lidé prohlížet vzácné dokumenty odkudkoli, bez nutnosti manipulovat s originály.


Proces digitalizace má jedno výrazné úzké hrdlo: převedení samotných skenů do podoby, ve které je chceme uchovat. Tím se rozumí například ořezání okrajů nebo rozdělení skenu na jednotlivé stránky. Některé sbírky mohou čítat i statisíce skenů a jejich ruční ořezávání stránku po stránce představuje obrovské množství času, který by bylo možné využít jinde.
Právě toto úzké hrdlo jsme se pokusili odstranit vývojem nástroje Cropilot.
Cropilot je systém pro plně automatické ořezávání skenů s využitím pokročilých AI vision modelů. Pomocí umělé inteligence automaticky hledá správný výřez stran, umí predikovat počet stran ve skenu, jejich umístění i natočení.
Výsledky následně zobrazuje v přehledném editoru, kde s nimi může uživatel dále pracovat – výřezy posouvat, upravovat nebo kontrolovat. Během několika minut tak dokáže zpracovat i sbírky o tisíci stranách.
Výstupem z aplikace je seznam instrukcí pro ořez, které umí Cropilot aplikovat na skenovací data ve standardních obrazových formátech, jako jsou JPG, PNG nebo TIFF.

Aplikace umožňuje práci v několika režimech podle toho, jak velkou míru kontroly nebo automatizace uživatel potřebuje.
Nejčastějším způsobem využití je kontrola automaticky navržených výřezů ve webovém editoru.
Cropilot nahraje všechny skeny a pomocí AI modelu vykreslí pozice stran. Pokud si model není výsledkem jistý, označí danou stranu štítkem pro kontrolu. Uživatel si potom může v aplikaci zobrazit pouze tyto nejisté strany a případné chyby opravit.
Po kontrole stačí výsledek uložit a aplikace může vygenerovat ořezané dokumenty.
Naše modely byly trénované především na detekci knih a novin. Aplikace si ale dokáže poradit i s jinými typy dat, například se specifickými sbírkami nebo s odlišnými požadavky na ořez.
Cropilot umožňuje natrénování a použití vlastních modelů. Nejprve je potřeba nahrát trénovací data. Uživatel potom v editoru označí správnou pozici a natočení stran pro každý sken. Na základě jeho preferencí se natrénuje model, který je možné použít pro další zpracování dat.
Nový model se tak učí napodobovat styl ořezu, který uživatel v trénovacích datech nastavil. Z našich dosavadních zkušeností stačily pro dotrénování nižší stovky dat.
Cropilot je možné používat i bez nutnosti otevírat editační rozhraní.
Po nahrání a zpracování dat aplikace rovnou vytvoří složku souborů s hotovými stránkami. Tento režim lze zapojit jako jeden z kroků do rozsáhlejších automatizačních procesů.
Cropilot je navržený tak, aby zapadl do reálného procesu digitalizace – je možné v něm kontrolovat automaticky navržené ořezy, také spravovat skupiny a uživatelé.
Samotný editor je postavený na principu, že co největší část práce má proběhnout automaticky.
AI model pro každý sken navrhne počet stran, jejich polohu, velikost a natočení. Uživatel tak nemusí ručně procházet všechny stránky jednu po druhé. Soustředí se hlavně na místa, kde si model není jistý nebo kde se výsledek odchyluje od očekávaného ořezu.
Rozhraní proto filtruje skeny pomocí štítků, jako je například podezřelý tvar, nízká důvěra, chybějící strana nebo upraveno.
V levé části editoru je seznam skenů a filtrů, uprostřed velký náhled originálního skenu s vyznačenými výřezy a vpravo panel s parametry aktuálně vybraného výřezu.
Manuální zásah je v Cropilotu chápán spíše jako korekce výjimek než jako běžný pracovní postup. Pokud je to potřeba, uživatel může výřez posunout, změnit jeho velikost, upravit natočení, přidat další stránku nebo výřez odebrat.
Interakce probíhá přímo nad obrazem pomocí editačních úchytů, zoomu, klávesových zkratek a vizuálního zvýraznění aktivního výřezu.

V administračním rozhraní je seznam skupin dokumentů určených ke zpracování, přehled titulů a uživatelská oprávnění. Podle nastavených práv může spravovat skupiny, přidávat tituly, upravovat metadata nebo pouze prohlížet a kontrolovat průběh zpracování. Administrátor má nejvyšší oprávnění a může spravovat i upravovat všechny části systému.

Po výběru konkrétní skupiny se dostává k jednotlivým titulům a odtud otevírá editační rozhraní pro daný dokument nebo dávku skenů.
Uživatelské rozhraní je záměrně jednoduché a minimalistické. Bylo navrženo v nástroji Figma. Jednotlivé prvky vychází z našeho interního design systému, který nám šetří čas při návrhu i vývoji a drží vizuální konzistenci. Zároveň ale nejde o univerzální šablonu aplikovanou bez rozmyslu.
Každé rozhraní optimalizujeme pro konkrétní projekt, jeho uživatele a pracovní kontext. U Cropilotu to znamená důraz na interakční design, rychlou orientaci ve stavech zpracování a co nejmenší množství rušivých prvků.
Rozhraní průběžně testujeme interně i s našimi partnery a reálnými uživateli. Na základě zpětné vazby iterujeme jednotlivé kroky flow, popisky, stavy i chování editoru a odstraňujeme UX nedostatky, které se projeví až při skutečné práci s daty.
Cílem návrhu není vytvořit další ruční nástroj na ořezávání, ale editor pro dohled nad automatizací. Ideální stav a vize je taková, že Cropilot zpracuje celou dávku bez zásahu uživatele. Aktuálně člověk do procesu vstupuje tehdy, když je potřeba potvrdit nebo opravit nejistý výsledek.

Z pohledu vývoje jde o Python aplikaci nasazenou v cloudu, která je škálovatelná a orchestrovaná pomocí task management systému Hatchet. Cropilot tedy umí asynchronně zpracovat stovky stran za minutu.
Detekce výřezů je řešena využitím umělé inteligence. Aplikace používá dva námi natrénované vision modely. Na sken je nejprve použit model YOLO, tedy You Only Look Once, který se používá například pro realtime detekci objektů v oblasti autonomního řízení nebo pro kontrolu kvality ve výrobě.
Model si uloží počet a umístění stran a tato data předá druhému modelu. Tím je konvoluční síť typu ResNET, která v každém výřezu predikuje úhel, o který je nutné výřez otočit, aby obsahoval rovný text.
Oba modely jsou trénované na obrazových datech z několika typů poloautomatických a automatických skenerů. Datová sada obsahuje skeny knih, novin, časopisů nebo spisů z období od 19. do 21. století.

Editační rozhraní je napsané v Angularu a TypeScriptu. Interakce s výřezy je zajištěna přímou manipulací s canvasem.
Celý projekt je open source a je dostupný na GitHubu:
https://github.com/moravianlibrary/orezy-backend
https://github.com/moravianlibrary/orezy-frontend
Aplikace obsahuje API, díky kterému ji lze integrovat do dalších procesů. Součástí GitHub repozitáře jsou také skripty, které prostřednictvím API umožňují hromadný upload a ořez vlastních sbírek.

Cropilot vyvíjíme pro Moravskou zemskou knihovnu jako efektivní nástroj, který má být začleněn do digitalizační linky. Nástroj je stále v aktivním vývoji a dál hledáme způsoby, jak digitalizaci dokumentů zjednodušit. Máte nápad, jak by se dal tento nástroj využít i u vás? Dejte nám vědět.



