Optičko prepoznavanje teksta
-
Upload
startit -
Category
Technology
-
view
386 -
download
7
Transcript of Optičko prepoznavanje teksta
Optičko prepoznavanje teksta
Decembar, 2015
Projekat započet 2008, prekinut 2009 i opet oživeo 2010
Originalno radilo 7, trenutno 4 inžinjera Windows 10 Windows.Media.Ocr
namespace Windows 8 NuGet
Install-Package Microsoft.Windows.Ocr Project Oxford servis
Computer Vision APIs -> OCR
OCR projekat
• Bing Image Search• Windows 10• Office Lens
• Translator• OneNote• OneDrive
Mali broj pretpostavki: Tekst je štampan, slične boje Tekst se nalazi u linijama
Bitne performance (demo)
Pregled
OCR Engine TekstLayout info
Slika
Pregled
Detekcija Reči
Prepoznavač Reči
Pregled
Preprocessing
Binarization Oreintation & Angle
Line Formation
LineFiltering
Baseline & xHeight
Region Detection
Missed Connected
Components
Word Breaker
Image
Recognition
Chopper
Post-procesiranje
Lattice
ICR
BeamSearch
Text
RGB u Grayscale Grayscale u WoB I BoW
Binarizacija
Cilj: grupisati piksele slične boje Ideja: binarizovati sliku, i onda
odrediti koji pikseli su povezani Raditi binarizaciju na malim delovima
slike Računati parameter za binarizaciju
na većim delovima Srednja vrednost Devijacija
Sauvola binarization
Povezane komponente
Globalna Binarizacija
Lako i efikasno za implementaciju Ne radi dobro u određenim
slučajevima
Lokalna Binarizacija
Bolje rezultate od globalne binarizacije
Kako implementirati da bude efikasno?
Implementacija
Implementacija
Implementacija
Problemi Puno dupliranog računanja Memorija nije prostorno lokalna
Rešenje: predprocesiranje! Izračunati parametre za binarizaciju na
manjim delovima -i dalje nije prostorno lokalno, neke operacije se ponavljaju
Još bolje: računati kumulativnu sumu za srednju vresnost i devijaciju
Analiza
Kumulativna Suma
Orijentacija i ugao
Preprocessing
Binarization Oreintation & Angle
Line Formation
LineFiltering
Baseline & xHeight
Region Detection
Missed Connected
Components
Word Breaker
Image
Recognition
Chopper
Post-procesiranje
Lattice
ICR
BeamSearch
Text
Horizontalna projekcija za sve uglove
Projektovati centre povezanihkomponenti
„Nazubljeni obrazac“ linija
Ugao
Formiranje linija
Filtriranje linija
Osnovna linija, x-height
Preprocessing
Binarization Oreintation & Angle
Line Formation
LineFiltering
Baseline & xHeight
Region Detection
Missed Connected
Components
Word Breaker
Image
Recognition
Chopper
Post-procesiranje
Lattice
ICR
BeamSearch
Text
Definicija: osnovna linija je linija na kojoj većina slova „leže“, ali ispod koje se spuštaju descenti.
Ne postoji stroga matematička definicija
Aproksimacija: linija koja stoji ispod teksta i ima najveći kontrast
Osnovna linija
Tekst često nije ravan, što znači da i osnovna linije nije prava
Pristup: aproksimirati liniju koja se sastoji iz K pravih linija koje prolaze kroz K + 1 kontrolnih tačaka
Problem
Kontrolne tačke treba odrediti Imaju fiksiranu X kordinatu, dok Y kordinatu
treba odrediti
Za svaku kombinaciju tačaka može se izračunati kontrast, i bira se najbolja kombinacija
Implementacija
Problemi - broj kombinacija je previše veliki da bi se svaka kombinacija proverila
Primer: visina linije - 20px, kontrolnih tačaka – 6, kombinacija - 3,200,000
Rešenje: Koristiti dinamičko programiranje!
Primes: 20px, 6 tačaka, kombinacija 2000 prethodno 3,200,000
Implementacija
Slično matematičkoj indukciji Ideja: Ako nadjemo najbolje rešenje
za N, da li možemo da nađemo najbolje rešenje za N+1?
Dinamičko programiranje
Prvi korak: za svaku pixel u drugom sloju, izračunati minimalnu cenu putanje koja se u njemu završava i zapamtiti je
N-ti korak: za svaki pixel u N+1 sloju, izračunati minimalnu cenu putanje koja se u njemu završava i zapamtiti pixel iz kojeg dolazimo
Kad sve završimo: izabrati pixel sa najmanjom cenom i putanju kojom smo došli
Dinamičko programiranje
Verovatnoća i statistika – podaci sa šumom
Nadgledano učenje Regresija – predviđa sa neprekidnim
izlazom Cene automobila
Klasifikacija – izlaz je diskretan Email spam filter
Nenadgledano učenje Uglavnom klasterizanje
Mašinsko učenje
Množenje matrice vektorom i aktivaciona funkcija zbog nelinearnosti
Na izlazu soft-max dabi imali verovatnoće klasa
Optimizacija CPU SSE instrukcije int16_t – 4 bita ceo broj
i 12 bita decimalni deo
Neuronske mreže
Hiper-ravni nisu dovoljne
Cilj: predvideti da li je linija ili nije Postoji jako raznovrsan skup linija
Teško opisati šta čini liniju a šta ne čini liniju
Binarni klasifikator 22 svojstva
Debljina linije Broj razmaka Kompleksnost oblika ...
Klasifikator linija
Features - osobine Konvolucia sa Gabor filterima Širina / visina 197 ulaza ~200 neurona u skrivenom sloju ~100 izlaza za različite karaktere
Gabor filter Proizvod sinusoide i Gausove distribucije
O vs o vs 0 ili P vs p,
Prepoznavanje oblika karaktera