OCR - Rozeznávání čísel na komplexních obrazech rubrika: Návrh

5 Petr Konůpek
položil/-a 11.5.2016

Dostal se nám na stůl technicky zajímavý problém.
Několik fotografů stojí podél závodní trati a zběsile fotí všechno co se hne.
Na konci dne každý z nich nahraje svoje fotky na server.

Každý závodník na sobě má přilepené číslo. My máme k dispozici databázi těchto čísel, přiřazených ke konkrétním jménům.

Po nás se chce následující:
Prohnat tyto fotky nějakým systémem, který z komplexních fotografií rozezná čísla závodníků a bude schopný na fotkách označovat lidi.

Než se pusíme do vlastního "výzkumu" Řešil někdo něco podobného? Jaké nástroje případně doporučíte? Také mi to příjde jako zajímavá možnost vyzkoušet si machine learning, ale zatím mám poměrně nejasné představy co to bude obnášet.

Předem děkuji za reakce

odkaz
1 sweetree
odpověděl/-a 20.5.2016
 
upravil/-a 20.5.2016

Ahoj, před pár lety jsem byl na straně těch fotografů, první pražský maraton ;)
Pokud jde o obdobnou situaci a máme zadání, kde si nelze vymýšlet, jak to mělo být připraveno lépe ;), jsou fotografie dvou kategorií: nerozpoznatelné číslo (houfy namačkaných těl) a rozpoznatelné.

Ty, kde je prostor čísla vizuálně rozpoznatelný, mají buď charakter:
a - čitelný bez obtíží pomocí OCR
b - čitelný s dopomocí knihovny (odstranění šumů numeriky, pokud nesmí být obsahem alfa...)
c - nečitelný pro stroj / ocr, ale mozek operátora dedukuje stále spolehlivě
d - nečitelný (například ruka před částí čísla, zvarhánkovatělé upnutí, prdlá mašle a plandající číslo...)

Hračky jsou fajn, ale neuronová síť, která se musí učit, takže potřebuje "c", popř. "b", kde je spíš plýtváním.
Pro "d" zůstane dumb, pokud nepřidáme logiku zahrnující jedinečnost rozdaných čísel (nebyla zmíněna a může být startováno více závodů, na kartě pak mezi fotkami bude výběr s opakováním!) a postupné úžení množiny na čísla ještě nevyužitá (lze i pro ta opakování, pokud znám jejich počet).

Když to shrnu: nasypu ti fotky do SW typu KodakCapturePro (jestli se tu nesmí názvy, tak ať si to admin nahradí hvězdičkami ;) ) a posadím ke stroji operátora.
Při správně volené velikosti náhledu ti sjede = zaindexuje 3-4 tisíce fotografií za směnu a jeho chybovost je zpravidla pod 2 %, lze dělat paralelně a chybovost výrazně snížit. (pokud si předem uděláš previw optimalizované na rozlišení obrazovky, importovat 32 megapixlové rawy je trochu úchylné).

Záleží jen na ceně, tohle udělat umím po nastavení úlohy do 24 hodin po obdržení dat na objemu cca 40 tisíc fotek / den :)

Tesserakt: pro b-d je ztráta času o tom jen přemýšlet. Pokud bych doporučil, tak knihovnu Abbyy pro Lingua rozpoznávání v mobilech, ale protože OCR dělám, tak pro tento účel vím, že by to byla proti použití operátora jen hra. Pro akci cca 10-15x do roka je popsaný postup "strašně trapně normální a jednoduchej a používá člověka", ale nás zajímá cena / výkon s tím, co fakticky světová produkce rozpoznávání nabízí, a pak zatím není o čem. ;)

Jen ještě k automobilovým značkám: tam funguje podmínka, že není zašpiněná, a pak lze staticky nasadit algoritmus shodný se čtením a překladem. Pro dynamicky jedoucí auto je situace mnohem snazší, pokud zafokusuje optika, má záznam trackovaný a vybere nejlepší obraz z několika políček jako u filmu, pak na něj může aplikovat obdobný mechanismus jako na statiku s dobře vymezeným rámečkem... Záleží na technice, ale na konci stejně vychází vše z čitelnosti samotného textu, nalezení plochy a aplikování následného rozpoznání jsou odlišné úlohy.

Pro zobrazení všech 11 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.