Rozpoznávání captcha obrázků



Podobné dokumenty
Jak bude zítra? Skoro jako dneska. Dan Lessner

2. RBF neuronové sítě

Studentská tvůrčí a odborná činnost STOČ 2015

Typy umělých neuronových sítí




Neuropočítače. podnět. vnímání (senzory)

přetrénování = ztráta schopnosti generalizovat vlivem přílišného zaměření klasifikátorů na rozeznávání pouze konkrétních trénovacích dat

PREDIKCE DÉLKY KOLONY V KŘIŽOVATCE PREDICTION OF THE LENGTH OF THE COLUMN IN THE INTERSECTION

ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE

Získávání znalostí z dat

Implementace numerických metod v jazyce C a Python

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

PŘEDNÁŠKA KURZU MPOV

N-trophy. kvalifikace KVÍK! Soòa Dvoøáèková - Kristýna Fousková - Martin Hanžl. Gymnázium, Brno-Øeèkovice.

5. Maticová algebra, typy matic, inverzní matice, determinant.

Hardwarová akcelerace HD videa v návaznosti na architektury čipu grafických karet

KLASIFIKÁTOR IZOLOVANÝCH SLOV NA BÁZI UMĚLÉ NEURONOVÉ SÍTĚ

1. Úvod do genetických algoritmů (GA)

1. HDR. 2. Test Práce ve Windows. 3. Tilt-shift efekt. 4. Excel tisk a tvorba grafů. Informatika Ditta Kukaňová

Grafická data jsou u 2D vektorové grafiky uložena ve voxelech NEPRAVDA Grafická data jsou u rastrové grafiky uložena v pixelech PRAVDA Grafická data

Kombinatorická optimalizace

Algoritmy a struktury neuropočítačů ASN - P11

Řešení problému vážené splnitelnosti booleovské formule pokročilou iterativní metodou

LASEROVÉ SVAZKY PRO OPTICKÉ MANIPULACE

Trénování sítě pomocí učení s učitelem

HMOTNÝ BOD, POHYB, POLOHA, TRAJEKTORIE, DRÁHA, RYCHLOST

Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby

Neuronové sítě Ladislav Horký Karel Břinda

v Praze mezi kanály EEG Ondřej Drbal 5. ročník, stud. sk. 9

Prognóza poruchovosti vodovodních řadů pomocí aplikace Poissonova rozdělení náhodné veličiny

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

Břetislav Fajmon, UMAT FEKT, VUT Brno. Poznámka 1.1. A) první část hodiny (cca 50 minut): představení všech tří metod při řešení jednoho příkladu.

Text úlohy. Kolik je automaticky generovaných barev ve standardní paletě 3-3-2?

Modely diskrétní náhodné veličiny. Jiří Neubauer. Katedra ekonometrie, FVL, UO Brno kancelář 69a, tel

Pokročilé metody učení neuronových sítí. Tomáš Řehořek

2. Matice, soustavy lineárních rovnic

Významná diskrétní rozdělení pravděpodobnosti

Přednáška 13 Redukce dimenzionality

Statistické metody v digitálním zpracování obrazu. Jindřich Soukup 3. února 2012

NG C Implementace plně rekurentní

KONTROLA PŘESNOSTI VÝROBY S VYUŽITÍM MATLABU

1.0 Lekce 1: Seznámení s prostøedím. 2.0 Lekce 2: Základní opravy fotografie

Algoritmy a struktury neuropočítačů ASN - P10. Aplikace UNS v biomedicíně

Setting up Spark Ignition Engine Control Unit Nastavování řídicích jednotek zážehových motorů automobilů

Několik poznámek na téma lineární algebry pro studenty fyzikální chemie

6. T e s t o v á n í h y p o t é z

Laboratorní zdroj - 6. část

Elektrotechnické znač Elektrotechnické zna k č y k transformátor ů v jednopólových schématech Značky ve schématech El kt e ro kt t h ec ni k c á kká

Úvod do mobilní robotiky AIL028

Detekce obličeje v obraze s využitím prostředí MATLAB

Přepočet provozních stavů sítě daných: Výpočet ztrát a kapacitních proudů v síti: Výpočet zkratových poměrů v síti:

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Metodika. Architecture First. Rudolf Pecinovský

vzorek vzorek

VYBRANÉ PROBLÉMY ČASOVÉ OPTIMALIZACE ZDROJOVÉHO KÓDU V PROSTŘEDÍ MATLAB

Filtrace snímků ve frekvenční oblasti. Rychlá fourierova transformace

Otočný stůl nové koncepce pro multifunkční obráběcí centrum

Dálkový průzkum Země. Ústav geoinformačních technologií Lesnická a dřevařská fakulta MENDELU

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Podmínky pro hodnocení žáků v předmětu informatika

Neuronová síť. x 2 x 3. σ j. x 4. x 5. Menu: QCExpert Prediktivní metody

ENERGETICKÝ DISPEČINK. základní informace o službě

Směrovací protokoly, propojování sítí

Podmínky pro hodnocení žáků v předmětu informatika

VYUŽITÍ NEURONOVÝCH SÍTÍ PROSTŘEDÍ MATLAB K PREDIKCI HODNOT NÁKLADŮ PRO ELEKTRICKÉ OBLOUKOVÉ PECE

Měření průtoku kapaliny s využitím digitální kamery

Západočeská univerzita v Plzni. Fakulta aplikovaných věd. Katedra kybernetiky BAKALÁŘSKÁ PRÁCE

+ ω y = 0 pohybová rovnice tlumených kmitů. r dr dt. B m. k m. Tlumené kmity

5.1 Vyhledávací portál uživatelské rozhraní

ACTA UNIVERSITATIS AGRICULTURAE ET SILVICULTURAE MENDELIANAE BRUNENSIS SBORNÍK MENDELOVY ZEMĚDĚLSKÉ A LESNICKÉ UNIVERZITY V BRNĚ

Reference 10. Předpokládejme stavový popis spojitého, respektive diskrétního systému

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Fungování předmětu. Technologické trendy v AV tvorbě, stereoskopie 2

MI-PAA. úkol č.3. Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem

Zadání úloh. Úloha 2.1 Trojice. Úloha 2.2 Čerpadlo. (4b) (4b) matematicko-fyzikální časopis ročníkxiv číslo2

Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0

VÍTKOVICE ITS a.s. Ruská 60, Ostrava - Vítkovice

Programové vybavení počítače

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA

Rozpoznávání v obraze

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ. Katedra elektromechaniky a výkonové elektroniky. Regulace jednofázového napěťového střídače

LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015

ÚVOD DO PROBLEMATIKY PIV

Analýza spolehlivosti tlakové nádoby metodou Monte Carlo

Analýza rozptylu dvojného třídění

Přírodní zdroje. K přírodním zdrojům patří například:

Algoritmus sledování objektů pro funkční vzor sledovacího systému

Daniel Honc, František Dušek Katedra řízení procesů a výpočetní techniky, FCHT, Univerzita Pardubice

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Šablony, kontejnery a iterátory

Elektronická pošta... 3 Historie... 3 Technické principy... 3 Komunikační protokoly... 3 MBOX... 4 Maildir... 4 Jak funguje POP3...

Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě

Světlo vyzařující dioda, též elektroluminiscenční dioda či LED, je elektronická polovodičová součástka obsahující přechod P-N.

(n, m) (n, p) (p, m) (n, m)

Analýza dat pomocí systému Weka, Rapid miner a Enterprise miner

1.1.7 Rovnoměrný pohyb I

Transkript:

Rozpoznávání captcha obrázků Tomáš Pop tomas.pop@seznam.cz www.vanocnibesidka.wz.cz Lukáš Bajer bajeluk@matfyz.cz

Idea - cíl Captcha bezpečnostní kód, který se opisuje má zabránit automatizovanému využití webvé služby snaha o obecný nástroj každá typ captcha obrázků je jiný modulární stavba obrazové procesory, separátory písmen, rozpoznávací algoritmy => snadné učení jakýchkoli dalších typů captcha souborů učení z adresáře 2

Postup Příprava obrázku prahování (tresholding) převedení na černobílý obrázek ~ vektor 0, 1 aplikace různých filtrů před a po prahování oddělení jednotlivých písmen, která po prahování splývají separace písmen flat-fill po sloupcích Učení neuronové sítě backropagation mnoho volitelných parametrů které jsou asi ty správné? s počtem znaků prudce roste počet epoch nutných k naučení 3

Příprava obrázku filtry, prahování 4

Separace písmen, normalizace Podle největšího písmena je vybrána velikost na ní se pak ostatní písmena roztáhnou pro Telefonicu O2 je to 14 x 16 pixelů Vstupní vektory velikosti 288 5

Problémy písmena je někdy těžké oddělit překryvy písmen tečky, háčky,čárky co je šum, co tam patří ke kterému písmenu znaménko patří skoro se vším se jde vyrovnat ale znamená to hodně práce psaní speciálních filtrů pro typ obrázků ztráta původní myšlenky Obecné filtry a separátory písmen nemají vždy dobré výsledky flat-fill Telefonice uřeže tečky nad i 6

Neuronové sítě - BackPropagation Vrstevnatá sít, zpětné šíření implementovaná s momentem učení a bez prahů neuronů použitá topologie 288 50 32, odzkoušeno 288 90 32, 288 60 40 32 pro několik vzorů se učí rychle a dobře pro 7 Telefonicy písmen po 200 epochách úspěšnost na učící množině 100%, na testovací okolo 95% hodně vzorů se učí pomalu a... pro 32 písmen Telefonicy je po 200 epochách úspěšnost asi 25%, po 600 epochách asi 50%, po 1000 epochách asi 72% na učící množině i po 1000 epochách se síť učí (na validační množině se zlepšuje) akorát se mi nechtělo čekat déle než přes noc 7

Neuronové sítě - BackPropagation Parametry jsou důležité experimentálně jde učení hodně zrychlit lambda = 0,2 moment učení = 1 parametr učení 0,5 velikost epochy okolo 30 vzorů Výběr pořadí vzorů k učení vzory nevolit náhodně ale tak, aby se střídali písmena jinak se síť naučí vzor, který dostane hodně krát na začátku a nasaturuje se Jde tomu zabránit malým parametrem učení ale pak se síť učí pomalu 8

Neuronové sítě - BackPropagation Zkušenosti, poučení Je lepší se učit pomalu a dlouho ale zas to nepřehnat, dojde k přeučení. jak dochází ke zhoršení na validační množiněčastěji než v každé 4 epoše, síť už se moc nezlepší Předzpracování vzorů je klíčové ostatní asi jako u všeho... Vektory, které jsou si podobné se síť učí špatně např: 2 x z, ale toho jsou si výrobci vědomi, většinou se nepoužívají znaky 1 l, 0 o, 3 8,... Inicializace vah je klíčová pro rychlost učení i výsledky experimentálně nejlepší random okolo 0, 001 0, 20 9

Neuronové sítě - BackPropagation Kam dál PCA analýza vzorů je obvykle 32, tj vektory délky 5 až 6 by mohly teoreticky stačit délka vstupního vektoru je 288 PCA analýza v Matlabu PCA analýza ignorující vektory přispívající >> [pn, ps1] = mapstd(p); >> [ptrans, ps2] = processpca(pn, 0.02); >> whos ptrans P Name Size Bytes Class P 288x340 783360 double array ptrans 13x340 35360 double array k celkovému rozptylu 2% a méně redukuje původních 288 na 14 bitů za cenu přijatelné ztráty přesnosti můžeme snížit i počet skrytých neuronů na 15 (bez PCA: MSE = 0.00008, zastavení pro MSE < 0.0001, s PCA: MSE = 0.0008, zastavení zhoršením validač. testů) nalezené normalizační a konverzní matice lze snadno použít v PHP 10

Neuronové sítě - BackPropagation Implementace v jiném jazyce a efektivněji PHP není pro několika hodinové výpočty stavěné implementace je školní snadno čitelná, snadno zkontrolovatelná, ale nepříliš efektivní trénink sítě např. v Matlabu (neděje se často), rozpoznávání sítí on-line v PHP již není výpočetně náročné Víc experimentovat s parametry a topologií topologii a parametry jsem vyčetl zčlánku o OCR přes NN měli o hodně rychlejší učení (na počet epoch)» => buď máme chybu v implementaci (spíš ne)» => měli jiné podmínky a možná by se jiná síť učila lépe Implementace dalších učících algoritmů učení s momentem (traingdm) dosahuje chyby MSE = 0.01 po cca 1000 epochách, MSE = 0.005 po cca 10 000 ep. Resilient Backpropagation (trainrp) se zastavuje po 22 epochách s chybou cca 10-6

Reálná data 12

Neuronové sítě - BackPropagation Výsledky a průběh učení Pro 7 písmen z Telefonicy ne zcela oddělená učící a validační množina ne stejná obsahovala asi ½ učících vzorů (jsou si hodně podobná) V tabulce je konečný výsledek učení 7 písmen se síť naučí spolehlivě během asi 500 epoch tj 250 sekund u mě na počítači (při vstupu 10x11px) Výsledek na dalších snímcích je po 900 epochách Na grafech je průběh učení Chyba stále klesá rozdíl chyby má celkem zajímavý průběh zpočátku občas záporná, což moc není vidět Grafy jsou upravené, tak aby byly pěkněčitelné 13

Reálná data - Výsledky 14

Reálná data Vývoj chyby 15

Reálná data Vývoj odpovědi 16

Reálná data - hodnocení Na Telefonice... věříme, že by po dost dlouhém učení by byla dostatečně velká síť reálně použitelná Na Wikipedii... věříme, že by po dost dlouhém učení by byla dostatečně velká síť reálně použitelná Úspěšnost je ale výrazně menší než na Telefonice ale pro několik (5) vzorů se to zdálo slibné Zde i na Telfonice není problém poznat, zda jsme uspěli => opakování pokusů :-) Na Google... mizerná úspěšnost hlavně předzpracování i učení nic moc Vyžadovalo by hodně práce, a úspech není rozhodně zaručen 17