Optičko prepoznavanje teksta

30
Optičko prepoznavanje teksta Decembar, 2015

Transcript of Optičko prepoznavanje teksta

Page 1: Optičko prepoznavanje teksta

Optičko prepoznavanje teksta

Decembar, 2015

Page 2: Optičko prepoznavanje teksta

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

Page 3: Optičko prepoznavanje teksta

Mali broj pretpostavki: Tekst je štampan, slične boje Tekst se nalazi u linijama

Bitne performance (demo)

Pregled

OCR Engine TekstLayout info

Slika

Page 4: Optičko prepoznavanje teksta

Pregled

Detekcija Reči

Prepoznavač Reči

Page 5: Optičko prepoznavanje teksta

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

Page 6: Optičko prepoznavanje teksta

RGB u Grayscale Grayscale u WoB I BoW

Binarizacija

Page 7: Optičko prepoznavanje teksta

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

Page 8: Optičko prepoznavanje teksta

Globalna Binarizacija

Lako i efikasno za implementaciju Ne radi dobro u određenim

slučajevima

Page 9: Optičko prepoznavanje teksta

Lokalna Binarizacija

Bolje rezultate od globalne binarizacije

Kako implementirati da bude efikasno?

Page 10: Optičko prepoznavanje teksta

Implementacija

Page 11: Optičko prepoznavanje teksta

Implementacija

Page 12: Optičko prepoznavanje teksta

Implementacija

Page 13: Optičko prepoznavanje teksta

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

Page 14: Optičko prepoznavanje teksta

Kumulativna Suma

Page 15: Optičko prepoznavanje teksta

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

Page 16: Optičko prepoznavanje teksta

Horizontalna projekcija za sve uglove

Projektovati centre povezanihkomponenti

„Nazubljeni obrazac“ linija

Ugao

Page 17: Optičko prepoznavanje teksta

Formiranje linija

Page 18: Optičko prepoznavanje teksta

Filtriranje linija

Page 19: Optičko prepoznavanje teksta

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

Page 20: Optičko prepoznavanje teksta

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

Page 21: Optičko prepoznavanje teksta

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

Page 22: Optičko prepoznavanje teksta

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

Page 23: Optičko prepoznavanje teksta

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

Page 24: Optičko prepoznavanje teksta

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

Page 25: Optičko prepoznavanje teksta

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

Page 26: Optičko prepoznavanje teksta

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

Page 27: Optičko prepoznavanje teksta

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

Page 28: Optičko prepoznavanje teksta

Hiper-ravni nisu dovoljne

Page 29: Optičko prepoznavanje teksta

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

Page 30: Optičko prepoznavanje teksta

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