Jak to bylo s OCRMinion?

Co OCRMinion je a jak funguje?

OCRMinion je .NET Core aplikace, která spouští Tesseract. Běží na Alpine Linux a celé je to zabalené v Docker Image.

Docker image OCRMinion vypadá následovně:
velikost downloadu: cca 95 MB
velikost na disku: cca 225 MB
z toho:
– cca 6 MB system
– cca 80 MB dotnet runtime
– cca 136 MB tesseract + jeho jazykové sady
– cca 2 MB aplikace samotná + závislosti (knihovny)

Princip fungování OCRMinion není žádné raketové inženýrství. Prakticky se dokola pořád opakují následující kroky:
1) Ze serveru pro OCR si stáhne obrázek.
2) Jakmile je obrázek stažený, spustí se Tesseract a předá mu obrázek pro parsování.
3) Po zpracování Tesseractem, pošle jeho text zpátky na server.

Raketový start

Možná jste už slyšeli o té smršti na Hlídači státu. O co šlo? Před pár dny jsme představili nový nástroj pro dobrovolníky – OCRMinion. Jak to s ním vlastně bylo?

Všechno začalo 16. 10. 2019, kdy jsme se dohodli, co vytvořit.

Veškerou práci včetně “jakéhosi” (jsme pouze programátoři) testování, jsme měli hotovou 24. 10. 2019. Všehovšudy jsme tím strávili přibližně 5 dní.

Michal vše odstartoval v sobotu 16. 11. 2019 svou přednáškou “Hlídač státu – infrastruktura pro TB dat a OCR peklo” na konferenci Devel.cz 2019. Zdá se, že přednáška měla úspěch, neboť ohlas na sebe nenechal dlouho čekat.

Jako první jsme zaznamenali tweety od Michala Illicha. Následně pak od Ondřeje Šiky a spolu s jeho tweetem se spustila lavina. Co udělal Ondra? Byl vlastně prvním, kdo spustil naší kontejnerizovanou aplikaci OCRMinion pro vytěžování textu z obrázků (OCR).

Poté už jsme nestíhali odpovídat na dotazy. Zájemci mezi s sebou vyhlásili soutěž, kdo toho zpracuje víc a Michal zatopil pod kotlem, když spustil žebříček zpracovatelů. Během šesti hodin od ohlášení OCRMinion se zaregistrovalo 15 účtů a 14 z nich trvale zpracovávalo data – dobrovolníci zvládli zpracovat text z 10 800 stránek dokumentů. A z původně naplánovaného víkendového odpočinku jsme se věnovali našemu hobby (práce). Michal šel spát až v neděli ve 4 ráno a Petr pro jistotu dostal virózu. Proto v neděli, když mu to stav dovolil, zvládal odpovídat jen na nejdůležitější dotazy.

Už 24 hodin po spuštění běželo přes 1000 instancí, jež nám zároveň pomohly odkrýt slabá místa v naši infrastruktuře, která se v následujících dnech chystáme doladit. Především šlo o pro uživatele nesrozumitelné logování, slabou dokumentaci, drobné chybky na serveru a zatím nízký počet obrázků, připravených pro parsování. Také jsme během celého náporu zaregistrovali pokus o shození infrastruktury, proto Michal ještě dodatečně vytvářel blacklist.

Naše prosba uživatelům

Pěkně prosíme a smutně koukáme:

  • Jakékoliv chyby primárně hlaste sem.
  • Velké množství instancí na jednom počítači nezaručí velké množství zpracovaných dat. Jednoduché pravidlo (rule of thumb), kterým se dá řídit, je: „Můžu spustit tolik instancí OCRMinion, kolik mám volných logických procesorů“.

Na závěr malé shrnutí a velké poděkování

Celá událost okolo OCRMinion v číslech:

začátek programování – 16. 10. 2019
první verze aplikace – 24. 10. 2019
využité zdroje – jeden člověk 5 dní práce, dva lidi pár hodin testování a pár hodin konzultací
první prezentace světu – 16. 11. 2019
6 hodin po spuštění – 15 registrovaných účtů a 10 800 zpracovaných stránek
24 hodin po spuštění – 130 registrovaných účtů a přes 100 000 zpracovaných stránek a přes 1000 instancí OCRMinion
naše radost z vaší účasti – k nezaplacení!

Tímto článkem děkujeme všem, kteří nám pomáhají a spolu s námi Hlídají stát, aby nám ho nikdo neukradl. Jste skvělí ?

Tým Hlídače státu