Tesseract-OCR u Visual Studio - prepoznavanje stranice teksta. Treniramo Tesseract koji trebamo
Tesseract. - Besplatna platforma za optičko priznavanje teksta, izvori od kojih je Google predstavio zajednicu u 2006. godini. Ako napišete softver za prepoznavanje teksta, vjerojatno morate pristupiti uslugama ove moćne knjižnice. A ako se ne nosi s vašim tekstom, onda imate na jedan način lijevo - naučiti ga. Ovaj proces je prilično kompliciran i prepun očiglednih, a ponekad i izravno s čarobnim akcijama. Izvorni opis je. Trebala mi je gotovo cijeli dan da shvatim sve njegove dubine, pa želim spasiti, nadam se da je njegova razumljiva opcija. Tako da pomognete sebi i drugima prolaze kroz ovaj put sljedeći put brže.
0. Što nam je potrebno
- Tesseract zapravo.
gedit /etc/apt/sources.list.
deb http://notesalexp.net/debian/precise/ Precizan glavni
wget -o - http://notesalexp.net/debian/alexp_key.ast
apt-Key Dodaj alexp_key.asc
apt-get ažurirati
apt-get install Tesseract-OCR
- Slika s tekstom za obuku
1. Stvorite i uredite datoteku okvira
Za. Da biste označili znakove na slici i postavili njihove utakmice UTF-8 tekstualnih simbola su okvirne datoteke. To su uobičajene tekstualne datoteke u kojima svaki znak odgovara nizu sa simbolom i koordinatama pravokutnika u pikselima. U početku, generirate uslužni program iz paketa Tesseract:
tesseract ccc.eee.eee.exp0 batch.nochop mankbox
Primljena CCC.eee.exp0.box datoteka u trenutnom direktoriju. Pogledaj to. Simboli na početku linije u potpunosti odgovaraju znakovima u datoteci? Ako je tako, onda ne morate trenirati ništa, možete dobro spavati. U našem slučaju, najvjerojatnije se likovi neće poklapati bilo koji od bitnih u broju. Oni. Tesseract s zadanim rječnikom nije prepoznao ne samo likove, već se i neke od njih smatrali za dva ili više. Možda dio likova koje ćemo "držati", tj. će pasti u zajedničku kutiju i biti će prepoznati kao jedan. Sve treba popraviti prije nego što odeš dalje. Radite zamorni i mukotrpan, ali na sreću postoji niz usluga treće strane za to. Na primjer, koristio sam Pytestrainer-1.03. Otvorimo sliku s njima, okvir-datoteku s istim imenom i sam izvlači.
Pola dana prošao ... Vi s osjećajem dubokog zadovoljstva s piteseracttrainer (niste zaboravili spremiti rezultat, zar ne?) I imate ispravnu box datoteku. Sada možete ići na sljedeći korak.
2. Trening Tesseract
tesseract ccc.eee.eee.eee.eee.ee.ee.eee.eee.evp0 nosch0.train
Dobivamo mnogo pogrešaka, ali gledamo u nešto slično "pronađeno 105 dobrih mrlja". Ako je broj znatno veća od broja "proučavanih" znakova, to jest, mogućnost da je obuka u cjelini uspjela. Inače se vraćamo na početak. Kao rezultat ovog koraka, imate ccc.eee.eee.exp0.t datoteku
3. Uklonite skup simbola
unicharset_Extractor CCC.eee.exp0.box.
Primamo skup znakova kao Unicharset datoteku u trenutnom direktoriju, gdje se svaki lik i njegove karakteristike nalaze u zasebnoj liniji. Ovdje naš zadatak će provjeriti i ispraviti karakteristike znakova (drugi stupac u datoteci). Za mala slova abecede stavljamo znak 3 za veliki 5, za interpunkciju 10 za brojeve 8, sve ostalo (tip + \u003d -) označen 0. Kineski i japanske hijeroglife koje bilježimo 1. Obično su svi znakovi u pravu, Dakle, ova faza je puno vremena koje nećete uzeti.
4. Opišite stil fonta
Stvorite CCC.font_properties datoteku s jednim nizom: Eee 0 0 0 0 0. Ovdje prvi napišite naziv fonta, a zatim broj 1 ili 0 je označen kao prisutnost stilskih znakova (odnosno, kurziv bolan fiksni serif fraktur) , U našem slučaju nema stilova, pa ostavljamo sve u nulama.
5. Klasteri brojki, prototipova i druga magija
Za daljnje studije moramo izvesti još tri operacija. Možete pokušati razumjeti svoje značenje od službenog opisa, nisam bio prije :). Samo obaviti:
shapeclustering -f ccc.font_properties -u unicharset ccc.eee.exp0.tr
... datoteka smijeni
i onda:
mfreining -f ccc.font_properties -u Unicharset -O ccc.unicharset ccc.eee.exp0.tr
... dobiti datoteke ccc.unicharset, innttemp, pfftble
Konačno:
cntraining ccc.eee.exp0.t.
... dobivamo normuroto datoteku.
6. Rječnici
Teoretski punjenje rječnika često korištenih riječi (i riječi uopće) pomažu Tessact-U da se nosite sa svojim doodles. Razumijevanje rječnika, ali ako odjednom želite, napravite datotekeČetvrti_words_list i Words_list u kojem uđete (svaki iz novog retka), odnosno, često se koristi i jednostavno riječi jezika.
Da biste ove popise pretvorili u ispravan format, izvedite:
wordlist2Dawg chests_words_list ccc.freq-dawg ccc.unicharset
wordlist2Dawg Words_list ccc.word-Dawg ccc.unicharset
7. Posljednja tajanstvena datoteka
Njegovo ime je Unicharacmbigs. U teoriji mora obratiti pozornost na Tesseract na sličnim simbolima. Ova tekstualna datoteka u svakom retku s separatorima tab opisano je parovima žica koje se mogu zbuniti pri prepoznavanju. Potpuno format datoteke opisan je u dokumentaciji, nije bilo potrebno i ostavio sam ga prazan.
8. Posljednji tim
Sve datoteke moraju se preimenovati tako da njihova imena počinju s imenom jezika. Oni. Samo će datoteke ostati u direktoriju:
ccc.box.
ccc.inttemp
ccc.pfftble
ccc.tif.
ccc.font_properties.
ccc.normproto.
ccc.hapetable
ccc.tr.
ccc.unicharset.
I na kraju, nastupamo:
combine_tessdata ccc.
(!) Poanta je obavezna. Kao rezultat toga, dobivamo CCC.trableData datoteku, koja će nam omogućiti daljnje prepoznavanje našeg tajanstvenog novog jezika.
9. Provjeravamo je li to vrijedilo :)
Sada pokušajmo prepoznati naš uzorak koristeći već obučeni Tesseract-a:
sudo cp ccc.trableddata / usr / Share / Tesseract-OCR / TESSDATA /
tesseract ccc.tif izlaz -l ccc
Sada gledamo izlaz .txt i radujemo se (ili ustajanju, ovisno o rezultatu).
Ako postoje gotova rješenja, nema smisla izmisliti štake i bicikle. S posebnim cinizmom, ova izjava je dokazala autorima Cryptolockera, koji su koristili Cryptoapi za svoje svrhe :). Istina je za odluku našeg današnjeg zadatka - dekodiranje CAPPS (s obrazovnim ciljevima, naravno). Naprijed, pokrenite vizualni studio!
Uvod
Cijeli proces nadolazećeg rada može biti uvjetno podijeljen u nekoliko faza:
- preuzmite slike;
- uklonite zvukove i drugu umjetnu distorziju;
- označite područja povezanosti (simbola), spremite ih;
- podučavati neurallet ili stvoriti rječnik;
- prepoznati
To će nam pomoći:
- Aforgenet - knjižnice računalne vizije i umjetna inteligencija;
- Tesseract - Program za prepoznavanje teksta;
- Fanndotnetwrapper - wrapper.net neuraretas fann;
- algoritam za traženje CCLA-eve udruge od Omar Gamele Salem.
Izvor na DVD.Syt.
Ne zaboravite preuzeti Sabzh, bit će vam korisno prilikom čitanja ovog članka. Nema malvarija, bez ekstremizma je samo čista znanost, samo OCR tehnologija, samo hardcore!
Pripremna faza
Mi lansiramo Visual Studio i stvoriti novi prozor projekt u C #. Otvorite ga u Exploreru, kako biste tamo kopirali potrebne datoteke.
Za treniranje neuronske mreže FANN je koristio dio koda iz Tesseract, razlika je u tome što stvaramo jedan vlak .tr Text datoteku, u kojoj je prvi redak broj slika, broj bodova u svakoj (širini pomnoženom po visini) i broj izlaza (slova, koje tražimo). Obvezna binizacija sama, dodijeliti samo dva stanja svake točke (1 - crna, 0 - bijele boje) i uštedjeti dalje u istoj datoteci u svim sljedećim linijama. Za praktičnost i mogućnost korištenja različitih unaprijed stvorenih Ann datoteka, stvorena je dodatna tekstualna datoteka .txt. Sastoji se od jedne linije i označava broj bodova i izlaza sa svojim vrijednostima, slučajno početi provjeriti CAPTCHA na drugoj Ann datoteci neće raditi.
String a \u003d file.Raadaltxt (savefileškat + "config.txt"); String b \u003d a.split (""); Int supemp \u003d convert.Toint32 (b); INT OCEPT \u003d pretvoriti.Toint32 (B.Length); UINT slojevi \u003d ((UINT) superix, (UINT) slojevi, (UINT) izlaz); net.createstandarbarray (slojevi); Net.randomizeweghts (-0.1, 0.1); net.SetlearningRate (0.7f); Podaci o treninzima \u003d nova treningdata (); Data.Radainfromflile (savefilemat + "vlak .tr"); net.trainondata (podaci, 1000, 0, 0.001f); Net.save (savefilemat + "fannnearning.n");
Primamo konfiguraciju, čitamo parametre, broj slojeva (slojeva) na preporuku Wikipedije postavljeno je na 120, sve ostalo je odabrano nasumično ili vidljivo na mreži. Brzina učenja ovisi o snazi \u200b\u200bvašeg željeza i ono što je napisano gore. Na primjer, i7-4702MQ na 6500 slika s jednom jezgrom bila je zauzeta minuta 20-30.
Korak šest. Priznanje
U završnoj fazi su provedeni dva pristupa, ali obuka je provedena. Tesseract 3.02 i Fann se nalaze na dolje lijevo od glavnog prozora. Prvi može tražiti engleski (odabrati znakove s padajućeg popisa), ruski, matematički i korisnički rječnik. Pretraživanje za rječnik automatski se pojavljuje i prikazuju se svi dostupni u opisu alata. Drugi prepoznaje tekst na fannocrvu tipku i prikazuje (lijevi dio prozora) rezultat analize za svaki odabrani simbol. Vrlo je zgodno gledati zašto je neuronska mreža izabrala jedan ili drugi izlaz. Razmislite o tome kako radi u slučaju neuronske mreže.
Private String OCR (bitmap IMG) (... int whx \u003d img.widh * img.height; ako (sumpix! \u003d Whx) (/ * prikazati pogrešku, broj piksela * /) dvostruki ulaz \u003d getpix (img) ; Dvostruki rezultat \u003d net.run (unos); ako (tempanswer.length! \u003d Rezolucija) (/ * Prikaz pogreške, drugi broj izlaza * /) Int Maxn \u003d Findmax (Rezultat); Odgovor \u003d Convertu (Tempanswer); ako (tologevent! \u003d Null) tologevent (rezultat, tempanswer, odgovor); ...)
Primili su sliku iz javne metode, gdje je net.createfromfile (savefilemat + "fannlearning.ann") i čitanja datoteka konfiguracija, tempanswer je varijabla jednaka B, navodi slova koja tražimo. Usporedite broj piksela, napišite ih u niz i prođite kroz obučenu Ann, u potrazi za maksimalnim visokim postotkom slučajnosti, a zatim vodimo rezultat u događaju odabirom jednog izlaza i primili pismo popravljeno nakon njega.
Raspravljanja o rezultatima
Rezultati ispitivanja snažno ovisi o broju i kvaliteti slika za učenje, te u slučaju neuronske mreže FANN - i na broj ispašu. U prosjeku, captcha, podložan filtrima, imao je ~ 80% ispravnog prepoznavanja, onda mnogo ovisi o savršenstvu i želji - koje ćete podučavati, onda ćete ga dobiti. Glavna stvar je da radi.
Zaključak
Svi opisani u članku mogu se primijeniti za rješavanje mnogih drugih zadataka. Na primjer, ja, kada u potrazi za informacijama, detaljna analiza prepoznavanja slike automobila na parkiralištu je ispunjena. Uključite Fantasy i Visual Studio! 🙂
Trebalo mi je da dobijem vrijednosti začepljenih brojeva. Brojevi opljačkan S ekrana.
Mislio sam, i ne pokušavam isprobati OCR? Pokušao sam Tesseract.
U nastavku ću vam reći kako sam pokušao prilagoditi Tesseract, zašto sam ga trenirao i što se dogodilo iz njega. Projekt na Hitabeu leži CMD skriptu koja automatizira koliko je vremena proces treninga moguć i podaci na kojima sam proveo obuku. Jednom riječju, postoji sve što je potrebno za treniranje Tesseract trenirati nešto korisno.
Priprema
Kloniranje spremišta ili preuzimanje zip Arhiva (~ 6MB). Instalirajte Tesserator 3.01 s.Syta. Ako više ne postoji, onda iz poddirektorija ZIP arhive / distra.
Idite na mapu uzoraka, pokrenite montage_all.cmd.
Ova skripta će stvoriti konačnu sliku. uzorci / total.png., ne možete pokrenuti skriptu, jer Već sam ga stavio u korijensku mapu projekta.
Zašto trenirati?
Možda i bez treninga rezultat će biti dobar? Ček.
./Exp1 - kao i\u003e Tesseract ../total.png Ukupno
Postavite ispravljeni rezultat u datoteci model_total.txtUsporediti rezultate prepoznavanja. Zvjezdica označava pogrešne vrijednosti.
model_total.txt | Priznanje zadano |
---|---|
27 33 39 625.05 9 163 1,740.10 15 36 45 72 324 468 93 453 1,200.10 80.10 152.25 158.25 176.07 97.50 170.62 54 102 162 78 136.50 443.62 633.74 24 1,579.73 1,576.73 332.23 957.69 954.69 963.68 1,441.02 1,635.34 50 76 168 21 48 30 42 108 126 144 114 462 378 522 60 240 246 459.69 456.69 198 61 255 |
27 33 39 525 05* 9 153* 1,740 10* 15 35* 45 72 324 455* 93 453 1,200 10* 50 10* 152 25* 155 25* 175 07* 97 50* 170 52* 54 102 152* 75* 135 50* 443 52* 533 74* 24 1,579 73* 1,575 73* 332 23* 957 59* 954 59* 953 55* 1,441 02* 1,535 34* 50 75* 155* 21 45* 30 42 105* 125* 144 114 452* 375* 522 50* 240 245* 459 59* 455 59* 195* 51* 255 |
zadano pogreške prepoznavanja
Može se vidjeti da postoje mnoge pogreške. Ako pažljivo pogledate, možete vidjeti da decimalna točka se ne prepoznaje, brojevi 6 i 8 priznaju se kao 5. Hoće li vježbati pomoći riješiti se pogrešaka?
Vježbati
Trening Tesseract omogućuje vam da ga vozite na prepoznavanju slika tekstova u obliku u kojem ćete ga hraniti sličnim slikama u procesu prepoznavanja.
Vi prolazite Tesseract trening slike, ispravite pogreške prepoznavanja i prenose ove smjerove na Tesseract-y. I ispravlja koeficijente u svojim algoritmima da nastave sprječavati pogreške koje ste pronašli.
Za izvođenje vježbanja želite pokrenuti. / Exp2 - obučeni\u003e Train.cmd
Što je proces vježbanja? Iu činjenici da tesseract obrađuje sliku treninga i tzv. Kutije znakova - ističe pojedinačne znakove iz teksta stvarajući popis ograničavanja pravokutnika. U isto vrijeme, on stavlja nagađanje o tome kakav je simbol ograničen pravokutnikom.
Rezultati ovog rada piše na total.box datoteku, koji izgleda ovako:
2 46 946 52 956 0
7 54 946 60 956 0
3 46 930 52 940 0
3 54 930 60 940 0
3 46 914 52 924 0
9 53 914 60 924 0
6 31 898 38 908 0
2 40 898 46 908 0
5 48 898 54 908 0
0 59 898 66 908 0
…
Ovdje u simbolu stupca single, au 2 - 5 koordinata koordinata donjeg lijevog kuta pravokutnika, visinu i širinu.
Naravno, teško ga je urediti ručno i neugodno, tako da grafički programi olakšavaju ovaj rad stvorili su entuzijasti. Nekada sam bio napisan u Javi.
Nakon pokretanja. / Exp2 - Obučeno\u003e Java -Jar jtessBoxeditor-0.6jtesBoxeditor.JAR Morate otvoriti datoteku. / Exp2 - obučeni / TOTAL.PNG, datoteka će biti automatski otvorena. / Exp2 - obučeni / total.Box i pravokutnik Definiran u njemu će biti postavljen na sliku treninga.
Na lijevom dijelu sadržaj total.box datoteka se daje na desnoj strani postoji slika za vježbanje. Iznad slike je aktivna linija total.box datoteke
Plave prikazane kutije i crveno boks koji odgovara aktivnom retku.
Ispravio sam sve pogrešne 5-Ki na desnoj 6-KI i 8., dodao redove s definicijama svih decimalnih točaka u datoteci i spremljene total.box
Nakon uređivanja je dovršeno, potrebno je da skripta nastavlja raditi, morate zatvoriti Jtessboxeditor. Nadalje, sve radnje se automatski obavlja skriptom bez sudjelovanja korisnika. Skripta piše rezultate obuke pod kodom TTN
Da biste koristili ishode učenja prilikom prepoznavanja, morate pokrenuti Tesseract c tipku za tipke -l TTN
./Exp2 - obučeni /\u003e Tesseract ../total.png totalni trenirani -l TTN
Može se vidjeti da su se svi brojevi počeli ispravno prepoznati, ali decimalna točka još uvijek nije prepoznata.
model_total.txt | Priznanje zadano |
Priznanje Nakon vježbanja |
---|---|---|
27 33 39 625.05 9 163 1,740.10 15 36 45 72 324 468 93 453 1,200.10 80.10 152.25 158.25 176.07 97.50 170.62 54 102 162 78 136.50 443.62 633.74 24 1,579.73 1,576.73 332.23 957.69 954.69 963.68 1,441.02 1,635.34 50 76 168 21 48 30 42 108 126 144 114 462 378 522 60 240 246 459.69 456.69 198 61 255 |
27 33 39 525 05* 9 153* 1,740 10* 15 35* 45 72 324 455* 93 453 1,200 10* 50 10* 152 25* 155 25* 175 07* 97 50* 170 52* 54 102 152* 75* 135 50* 443 52* 533 74* 24 1,579 73* 1,575 73* 332 23* 957 59* 954 59* 953 55* 1,441 02* 1,535 34* 50 75* 155* 21 45* 30 42 105* 125* 144 114 452* 375* 522 50* 240 245* 459 59* 455 59* 195* 51* 255 |
27 33 39 625 05* 9 163 1,740 10* 15 36 45 72 324 468 93 453 1,200 10* 80 10* 152 25* 158 25* 176 07* 97 50* 170 62* 54 102 162 78 136 50* 443 62* 633 74* 24 1,579 73* 1,576 73* 332 23* 957 69* 954 69* 963 68* 1,441 02* 1,635 34* 50 76 168 21 48 30 42 108 126 144 114 462 378 522 60 240 246 459 69* 456 69* 198 61 255 |
pogreške prepoznavanja učenja
Uvećaj sliku
Možete se povećati na različite načine, pokušao sam dva načina: razmjera i mijenjati veličinu
total-Scaled.png (fragment) | total-Resized.png (fragment) |
---|---|
Pretvoriti total.png total-scaled.png -scale "208x1920" | pretvoriti totalg total-Resized.png -Resize "208x1920" |
Budući da su slike likova povećane sa samim slikama, podaci o obuci ispod koda TTN zastarjeli su. Stoga sam priznao bez ključa -l TTN-a.
Može se vidjeti da je u slici total-scaled.png Tesseract zbunjuje 7-ku s 2., i ne zbunjuje potpunu veličinu.png. Na obje slike, decimalna točka je ispravna. Priznavanje slike Total-Resized.png je gotovo savršeno. Postoje samo tri pogreške - jaz između brojeva u brojevima 21, 114 i 61.
Ali ova pogreška nije kritična, jer Lako ga je popraviti jednostavnim uklanjanjem iz linija prostora.
total-Scaled.png Pogreške prepoznavanja
pogreške totalne resizentirane pogreške
model_total.txt | Priznanje zadano |
Priznanje Nakon vježbanja |
total-Scaled.png. | total-Resized.png. |
---|---|---|---|---|
27 33 39 625.05 9 163 1,740.10 15 36 45 72 324 468 93 453 1,200.10 80.10 152.25 158.25 176.07 97.50 170.62 54 102 162 78 136.50 443.62 633.74 24 1,579.73 1,576.73 332.23 957.69 954.69 963.68 1,441.02 1,635.34 50 76 168 21 48 30 42 108 126 144 114 462 378 522 60 240 246 459.69 456.69 198 61 255 |
27 33 39 525 05* 9 153* 1,740 10* 15 35* 45 72 324 455* 93 453 1,200 10* 50 10* 152 25* 155 25* 175 07* 97 50* 170 52* 54 102 152* 75* 135 50* 443 52* 533 74* 24 1,579 73* 1,575 73* 332 23* 957 59* 954 59* 953 55* 1,441 02* 1,535 34* 50 75* 155* 21 45* 30 42 105* 125* 144 114 452* 375* 522 50* 240 245* 459 59* 455 59* 195* 51* 255 |
27 33 39 625 05* 9 163 1,740 10* 15 36 45 72 324 468 93 453 1,200 10* 80 10* 152 25* 158 25* 176 07* 97 50* 170 62* 54 102 162 78 136 50* 443 62* 633 74* 24 1,579 73* 1,576 73* 332 23* 957 69* 954 69* 963 68* 1,441 02* 1,635 34* 50 76 168 21 48 30 42 108 126 144 114 462 378 522 60 240 246 459 69* 456 69* 198 61 255 |
22*
33 39 625.05 9 163 1,240.10* 15 36 45 22* 324 468 93 453 1,200.10 80.10 152.25 158.25 126.02* 92.50* 120.62* 54 102 162 28* 136.50 443.62 633.24* 24 1,529.23* 1,526.23* 332.23 952.69* 954.69 963.68 1,441.02 1,635.34 50 26* 168 2 1* 48 30 42 108 126 144 1 14* 462 328* 522 60 240 246 459.69 456.69 198 6 1* 255 |
27 33 39 625.05 9 163 1,740.10 15 36 45 72 324 468 93 453 1,200.10 80.10 152.25 158.25 176.07 97.50 170.62 54 102 162 78 136.50 443.62 633.74 24 1,579.73 1,576.73 332.23 957.69 954.69 963.68 1,441.02 1,635.34 50 76 168 2 1* 48 30 42 108 126 144 1 14* 462 378 522 60 240 246 459.69 456.69 198 6 1* 255 |
Digitalizacija slika jedan po jedan
U redu, što ako trebate digitalizirati slike jedan za drugim u pravom načinu posteljine?
Pokušavam jedan po jedan.
./Exp5 - jedan po jedan\u003e za / r% I u (* .png) učiniti tesseract "% i" "% i"
Dva i troznamenkasti brojevi uopće nisu određeni!
625.05 | |
1740.10 | |
Digitalizacija malih paketa
A ako želite digitalizirati slike paketima nekoliko slika (6 ili 10 u pakiranju)? Deset vremena.
./Exp6 - deset u redu\u003e Tesseract Teninline.png Teninline
Prepoznat, pa čak i bez jaza među 61.
zaključci
Općenito, očekivao sam najgore rezultate, jer Mali rasterske fontove su granični slučaj zbog njihove male veličine, različita granularnost i postojanost - različite slike jednog simbola potpuno se podudaraju. A praksa je pokazala da su raspoređene umjetno nadahnute brojke bolje prepoznate.
Image za prediranje ima veći učinak od učenja. Povećanje s zaglađivanjem: pretvoriti -Resize ...
Priznavanje odvojenog "kratkog" dva i troznamenkasti broj nezadovoljavajućih brojeva treba prikupiti u paketima.
Ali općenito, Tesseract se gotovo nosio s zadatkom, unatoč činjenici da je izoštren za druge zadatke - prepoznavanje natpisa na fotografiji i videozapisu, skeniranje dokumenata.
U članku se raspravlja o postupku podučavanja ruskog jezika otvorenog OCR sustava Tesseract koji je razvio usporedbu Hewlett-Packard.
[Vlasov Igor (Igorvlassov u Narod dot ru)]
Tražio sam OCR divechu ovdje za jedan projekt koji govori engleski jezik. I jednostavno se upoznao sa stanjem stvari u odnosu na materinji jezik. Slobodan OCR sposoban prepoznati izvorni govor, nisam ga pronašao. Ali posrnuo na projektu Tesseract. Ovo je bivša komercijalna multi-platforma OCR, koju je razvio Havlet Packard. Sada se, prvo, primjenjuje se pod licencom Apache V.2. I drugo, može se pokušati podučiti neki novi jezik koji ćemo pokušati učiniti. Dakle, čitamo priručnik koji se zove treningtesseract:
prvi korak bi trebao biti definicija kompletnog skupa znakova koji će se koristiti i stvarati tekstualnu datoteku ili datoteku tekstualnog procesora s primjerima.
Kada pripremate datoteku treninga, morate zapamtiti sljedeće:
potreban je minimalni broj primjera svakog simbola. 10 - Dobro, ali 5 je dovoljno za rijetke likove, a za često pronađeno najmanje 20;
nemoguće je skupljati ne-zaljeve sve zajedno, morate učiniti tekst realnijim, na primjer:
u šikarama na jugu, postojala je agruma da, ali lažna kopija. 0123456789 [Zaštićeno e-poštom]#$%^&(),.{}<>/?
- strašno. Puno bolje:u šikara (jug) žive- (bio) citrus, da! ali?<фальшивый>
$3456.78
Primjer# 90 / rajčica "12,5%
bilo bi lijepo rastegnuti tekst povećanjem intersticijalnih i intervativnih intervala;
podaci o obuci trebaju biti prikladni na jednoj stranici;
nema potrebe za trenirati na nekoliko veličina, dovoljno na veličini fonta 10. Ali za visinu teksta, to je manje od 15 piksela za treniranje odvojeno ili povećati sliku prije prepoznavanja.
Zatim morate ispisati i skenirati ili koristiti neku drugu metodu za dobivanje slike na stranici za obuku. Može biti do 32 stranice. Najbolje je stvoriti stranice s fontovima i stilovima, uključujući masti i nagnute.
Pokušat ću to učiniti samo za Thorndale Amt Font, koji na svojoj desktopu ispod Suse10 u OpenOffice izgleda gotovo kao Times New Roman pod Windowsima. Dakle, ja napraviti zasebnu datoteku s gore navedenim tekstom o fontfile.odt Cytrus, ispisujem, skeniram i drži u crno-bijeli BMP fontfile.bmp.
Sljedeći korak je stvoriti datoteku s koordinatama pravokutnika, u kojima je svaki znak zaključen. Srećom, Tesseract može napraviti datoteku potrebnog formata, barem skup znakova i neće odgovarati našem. Stoga će biti potrebno ručno popraviti datoteku unosom ispravnih znakova. Do:
tesseract Fontfile.BMP Fontfile Batch.nochop Mankbox
Kao rezultat toga, ispalo je datoteku Fontfile.txt, koja se mora preimenovati u Fontfile.box
To je ono što imam tamo:
M 85 132 111 154
Z 114 137 130 154
X 133 137 150 154
{ 170 130 180 162
m 186 137 210 154
r 214 137 228 154
233 137 248 154
} 254 130 264 162
M 284 137 306 154
Sada najteži dio - morate urediti ovu datoteku u uredniku u kojem se mogu zamijeniti pogrešnim znakovima. Koristim Kate.
Čini se da se ops zamijeni 2 znaka:
M 85 132 111 154
u tom slučaju potrebno je kombinirati opisivanje pravokutnika kako slijedi:
Prvi broj (lijevo) mora biti minimalan od 2 retka (67)
Drugi broj (dolje) mora biti minimalan od 2 retka (132)
Treći broj (desno) mora biti najviše 2 linije (111)
Četvrti broj (vrh) trebao bi biti najviše 2 linije (154)
tako: SH 67 132 111 154
Napomena: Koordinatni sustav koji se koristi u ovoj datoteci počinje s (0,0) i usmjeren je od donjeg prema gore i lijevo na desno.
Čini se da je Fuh ispravljen. Sada vodimo Tesseract u načinu učenja:
tesseRact Fontfile.bmp bezvrijedne nosatch box.train
i gledati Sortrr (ili Tessact.log pod Windowsima). Ako postoje pogreške pri FAT-u,
to znači da Tesserator nije pronašao jedan uzorak simbola navedenog u koordinatnoj datoteci. Dao mi je pogrešku:
Apply_Boxes: Fatality - 0 označeni uzorci "%" - Cilj je 2
Kutije čitaju iz boxfile: 89
U početku označene mrlje: 87 u 3 reda
Otkrili su kvarovi okvira: 2
Dupred mrljica za rebalans: 0
"%" Ima nekoliko uzoraka: 0
Ukupno neobičenih riječi: 1
Konačne označene riječi: 87
Generiranje podataka o obuci.
Trening ... Naziv fonta \u003d Nesposobno.
Generirani podaci o treninzima za 87 blobs
Međutim, fontfile.tr generiran. U redu, učinit ću bez znakova%, općenito je bilo potrebno napraviti više od svih likova, barem ponoviti ovaj fraza peta vremena.
U teoriji moram ponoviti ovaj postupak za različite fontove i dobiti nekoliko različitih datoteka, a zatim stvoriti prototipove pomoću naredbi vrste:
mftrainy fontfile_1.tr fontfile_2.tr ...
kao rezultat toga, treba dobiti 2 datoteke: inttemp (prototipovi oblika) i pffmtble , zatim
cntreining fontfile_1.tr fontfile_2.tr ...
stvorite normuroto datoteku (prototipovi za normalizaciju znakova?).
Radim to preko jedne od moje datoteke. Nešto se ispostavilo. Sada trebate odrediti Tesseract "s mnogo znakova koje može izlaz. Koristimo naredbu Unicharset_Extractor za generiranje datoteke Unicharset:
unicharset_extractor Fontfile_1.box fontfile_2.box ...
Radimo. U rezultirajućoj datoteci morate odrediti vrstu simbola pomoću maske, takve maske: ako je slovo 1, ako je malo slovo 1, ako je veliko slovo 1, ako je znamenka -1, inače 0.
Na primjer,
b - malo slovo. Njezina maska \u200b\u200b0011 ili heksadecimalna 3
; - Ne pismo, a ne znamenka. Maska \u003d 0.
7 - samo znamenka. Maska 1000 ili heksadecimalno 8.
B je veliko slovo. Maska 0101 ili heksadecimalna 5
imam sva slova. Mijenjam masku do 3.
Sada je potrebno uzeti dva lista negdje, jedan - često pronašao riječi, druge - druge riječi i pretvoriti ih u Dawg format koristeći drugi uslužni program:
wordlist2Dawg Frent_words_List Freq-Dawg
wordlist2Dawg Words_list Word-Dawg
Za početak sam se jednostavno zaglavio u svakih 5 proizvoljnih riječi.
Treća datoteka, korisničke riječi obično su prazne.
Posljednja datoteka koja treba obaviti naziva se Dangambigs u njoj opisuje slučajeve pogrešne zamjene jedne datoteke u drugu, na primjer
prva znamenka je broj znakova u prvoj skupini, 2. - broj znakova u 2. godini.
Ova crta pokazuje da se 1. ponekad može biti pogrešno prepoznat kao sh.
Ova datoteka je također m. prazan.
Sada svi skupljamo zajedno. Spisi
freq-Dawg.
word-Dawg.
korisnik-riječi.
inttemp.
normProto.
pffmban
unicharset.
Dangambigs.
mi isporučujemo ruski prefiks i tamo, gdje se drugi rječnici, imam / usr / lokalni / share / Tempsdata
Sve!!!
Pokušavamo prepoznati bilo koju datoteku. Pokušat ću početi s citrusom:
tesseract Image.bmp izlaz -L rus
To je ono što sam učinio:
u Cheyah (jug), ZHVL- (bio) Tschtler, da! ali?
<(1ьалвьшвый> $ 3456,78 Kopiraj # 90
capelves / Ambere "12.5
Naravno, ne super, ali po prvi put, i tako oslabljeni uzorak i rječnik, mislim, ne loše!
Igor Vlasov (Igorvlassov u Narod dot ru) - Tesseract na ruskomTesseract-OCR je besplatna knjižnica za prepoznavanje teksta. Da biste je povezali s vama trebate preuzeti sljedeće komponente:
Leptonica - http://code.google.com/p/leptonica/downloads/detail?
Najnovija verzija Tesseract-OCR-a (u ovom trenutku je 3,02) - https://code.google.com/p/tesseract-cr/downloads/detail?name\u003dtesseract-3.02.02-win32-lib-include-dirs .zip i može \u003d 2 i q \u003d
Podaci o radu - https://tesstract-cr.googlecode.com/files/tesseract-cr-3.02.rus.tar.gz
Svatko se može prikupljati neovisno preuzimanjem izvornih kodova, ali to nećemo učiniti.
Stvaranjem novog projekta spojite putove do lib i h. I napišite jednostavan kod.
#Include.
Spojite lib datoteke:
libteSeratorAct302.lib.
liblept168.lib
Kompletan - program je uspješno izrađen. Kao primjer, uzmite sljedeću sliku:
Pokrećemo program tako da se informacije prikazuju u datoteci (budući da će UTF-8 u Capo konzoli biti):
Test\u003e A.txt.
Sadržaj datoteke u nastavku:
Tesseract-OCR verzija: 3.02
Leptonica verzija: Leptonica-1,68 (14. ožujak 2011, 10:47:28)
OCR izlaz:
, Zamjenjujući ovaj izraz u (63), to vidimo
Pod nazivom s jednim pojasom, signal je industrijski
i dubina modulacije jednaka je a.
7 omotnice ho) primarni signal izravno
Nemoguće je promatrati osciloskop, pa
Kako je ovaj signal uski i mi
"Slučaj" jasnoće "je odsutna, ali
S modulacijom s jednim pojasom, uske
'Losos signal s istim omotnicom, a onda ona
"I očituje se eksplicitno i ponekad (kao u OP-u
"Sunny Case) čini zbunjenost u umovima slabo
i istraživači ..
6.4. "Costa formula"
G u.
S dolaskom om u udžbenicima, kava `
Estatys i monografije promatrano pitanje
Kako dobivanje daje prijelaz iz amplitude
Modulacije na jednokratnu traku. Bilo je mnogo izraženo
Neuređena mišljenja. Na početku 60-ih
Rican znanstvenik J. Kostas je to napisao, vidi
Trebunirani časopis literatura o Ohmu, on
u svakom članku otkrivena procjena energije
"Očistite dobitke o am-dva
Višestruki desetak. Kao rezultat toga, instalirao je
- pobjeda, naznačeno u svakom članku,
Čini približno (Z-K-S!) DB, gdje je M-broj ko-'g
\u003e Autori ovog članka.
E, '11 ako je ova šala i netočna, to je još uvijek točno
"Glazba odražava tu zrelost koja je postojala
; U tim godinama. Osim činjenice da različiti autori
D popeo se u usporedbu u različitim uvjetima i jednom-m
, Nomu je utvrdio energetske dobitke, oni su tako- 1
- Isto je dopušteno mnogo različitih pogrešaka. četiri "
`Evo primjeri nekih razmišljanja. ",,
1. Uz uobičajeno, vjerujući da je prijevoznik snage