OCR neboli optické rozpoznávání znaků (z anglického Optical Character Recognition) je metoda, která pomocí scanneru umožňuje digitalizaci tištěných textů, s nimiž pak lze pracovat jako s normálním počítačovým textem. Počítačový program převádí obraz buď automaticky, nebo se musí naučit rozpoznávat znaky.
Převedený text je téměř vždy v závislosti na kvalitě předlohy třeba podrobit důkladné korektuře, protože OCR program nemusí rozeznat všechna písmena správně. OCR – zpracování textu z tištěné do elektronické podoby je použitelné pro všechny tištěné výstupy z laserových, inkoustových, termosublimačních a jehličkových tiskáren a samozřejmě pro předlohy vytištěné knihtiskem.
U nevhodných předloh, např. slabě vytištěných jehličkových výtisků nebo dohromady slitých písmen, se z časového hlediska vyplatí spíše přepis textu. wikipedia
Kvalitní OCR aplikace jsou tesseract s grafickou nadstavbou YAGF a online OCR.
Gocr je zástupce OCR programů dostupných zadarmo, který zvládá rozpoznávání diakritiky a je použitelný pro česky psané texty (umí zpracovat naskenované texty do kódování UTF-8). Má úspěšnost asi 85%. Kvůli této úspěšnosti je dobré využít vhodný nástroj ke kontrole správnosti zpracovaného textu, např. OpenOffice, nebo aspell.
Program podporuje užití databáze známých znaků, nebo vytváření („učení“) nové databáze přímo při rozpoznávání. Tato funkce je ale zatím ve vývojové verzi. Na program existuje několik grafických nadstaveb (např. Kooka,gocr-Gtk - ubuntu 8.0.4)
Příklad použití:
Po mých pokusech s nastavením skeneru jsem zůstal u volby „binary“ s rozlišením 500 dpi. Vyšší rozlišení už se mi jevilo nevhodné. Skenuji v programu xsane, který je počeštěn. Celkem zajímavý je i xscanimage. Gocr podporuje celkem hodně grafických formátů (viz man gocr).
Přejdeme do adresáře kde máme naskenované dokumenty v některém z podporovaných grafických formátů:
cd /cesta/k_nasim/obrazkum/ Enter
ls Enter
(skeny jsou ve formátu png, ale můžete použít i jiné formáty viz man gocr) Např.:
002.png 006.png 012.png 016.png 020.png 024.png 028.png 000.png 003.png 007.png 010.png 013.png 017.png 021.png 025.png 029.png 001.png 004.png 008.png 014.png 018.png 022.png 026.png 030.png 005.png 009.png 011.png 015.png 019.png 023.png 027.png 10_600.png
gocr -f UTF8 -i 001.png -o 001.txt
potom pokračujeme i s dalšími soubory až převedeme všechny soubory. Gocr je celkem rychlý.
gocr -f UTF8 -i 001.png -o 001.txt
atd. Čímž se vytvoří soubory s rozpoznaným textem 001.txt, 002.txt atd.
Můžete také použít jednoduchý příkaz, který rozpozná všechny PNG soubory v adresáři:
for f in `ls *.png`; do gocr -f UTF8 -i "$f" -o "$f.txt"; done
-f UTF8 = výstup bude v kódování UTF8\ -i 001.png = input tj. vstupní soubor\ -o 001.txt = output, výstupní soubor - takto se bude jmenovat náš elektronický dokument
Pokud potřebujete výsledné textové soubory převést do jiného kódování, můžete využít například program recode. Pro převod do kódování ISO-8859-2 můžete použít např.:
recode UTF-8..ISO-8859-2 001.txt
(soubor se překóduje na ISO-8859-2)
recode UTF-8..ISO-8859-2 *.txt
(překóduje všechny txt soubory ve složce)
Pokud program recode upozorní na špatné konce řádků, můžete použít parametr -f.
recode -f UTF-8..ISO-8859-2 *.txt
GOCR(1)                        Uživatelský manuál                      GOCR(1)
JMÉNO
       gocr - konzolový program pro optické zpracování znaků (OCR)
SYNTAXE
       gocr [OPTION] [-i] pnm-file
POPIS
       gocr je program pro optické rozpoznávání znaků, který může být použit z
       příkazové řádky. Jako vstup přijímá PNM, PGM, PBM, PPM nebo PCX  formát
       a rozpoznaný text vypisuje na standardní výstup. Pokud je namísto názvu
       pnm souboru použita pomlčka, jsou data čtena  ze  standardního  vstupu.
       Pokud  jsou  nainstalovány  programy  gzip,  bzip2 a netpbm-progs a váš
       systém podporuje popen(3) tak jsou jako  vstupní  soubory  (ne  stream)
       podporovány  také  pnm.gz,  pnm.bz2, png, jpg, jpeg, tiff, gif, bmp, ps
       (pouze jednostránkové) a eps, kde pnm může být nahrazeno jedním z  ppm,
       pgm nebo pbm souborem.
OPTIONS
       -h     vypíše informace o použití
       -i file
              čte  vstup ze souboru "file" (nebo ze standardního vstupu, pokud
              je jako název souboru uvedena jednoduchá pomlčka)
       -o file
              uloží výstup do souboru  "file"  namísto  výpisu  na  standardní
              výstup
       -e file
              odešle  chyby  do  souboru  "file" namísto na standardní chybový
              výstup, nebo na standardní výstup, pokud je namísto "file"  uve‐
              dena pomlčka
       -x file
              tato  možnost  bude  vypisovat do souboru "file" aktuální postup
              zpracovávání. "file" může být název souboru,  název  pojmenované
              roury  (viz  man mkfifo), nebo deskriptor souboru 1...255.  Tato
              volba  je  užitečná  pro  GUI  vývojáře,  aby  mohli  zobrazovat
              aktuální  postup  OCR  zpracovávání.  Deskriptor souboru je dos‐
              tupný pouze, pokud bylo gocr zkompilování s definovanou konstan‐
              tou __USE_POSIX.
       -p path
              cesta k databázi včetně ukončovacího lomítka (výchozí je ./db/).
              Zde budou umístěny obrázky s naučenými znaky
       -f format
              výstupní formát rozpoznaného textu (ISO8859_1 TeX HTML XML  UTF8
              ASCII).   Do  XML  budou  uvedena  také  data  o  pozici znaku a
              pravděpodobnosti úspěšnosti rozpoznání daného znaku
       -l level (úroveň)
              nastavit úroveň šedé na úroveň "level" (0<160<=255,  default:  0
              pro  autodetekci), tmavší pixely přísluší znakům, světlejší pix‐
              ely jsou interpretovány jako pozadí vstupního souboru
       -d size
              nastavit velikost prachu v pixelech  (částečky  menší  než  tato
              hodnota  budou  odstraněny), 0 znamená autodetekci, výchozí hod‐
              nota je -1 pro autodetekci
       -s num nastavit   šířku   mezery   mezi   slovy   v   jednotkách   bodů
              (typografických terčíků). Výchozí hodnotou je 0 pro autodetekci.
              Širší mezery jsou chápány jako mezery mezi slovy, užší jako mez‐
              ery mezi znaky.
       -v verbosity
              upovídaný  režim  s výstupem na standardní chybový výstup; "ver‐
              bosity" je bitové pole (specifikace viz. níže)
       -c string
              výpis upovídaných znaků pouze pro znaky z řetězce "string".  Pro
              tyto  znaky  je  generováno  více  informací. Podtržítko znamená
              neznámé znaky. Tato možnost je vhodná k omezení výstupu ladících
              informací pouze na potřebné.
       -C string
              rozpoznávat  pouze  znaky z řetězce "string". Toto je filtrovací
              funkce, která umožní omezení  zpracovávaného  řetězce  pouze  na
              určité  znaky.  Je možno použít rozmezí 0-9 nebo a-z, pro znak -
              je potřeba použít --
       -a certainty
              nastavit hodnotu spolehlivosti  (0..100;  výchozí  hodnota  95).
              Znaky  s  větší  hodnotou  spolehlivosti,  než  "certainty" jsou
              přijaty, znaky s  menší  hodnotou  jsou  považovány  za  neznámé
              (nerozpoznané).   Nastavte  vyšší  hodnotu,  pokud chcete vypsat
              pouze znaky s větší spolehlivostí na správnost.
       -m mode
              nastavit režim operace; "mode" je bitové pole  (výchozí  hodnota
              je 0)
       -n bool
              pokud  je "bool" nenulový, rozpoznávej pouze čísla. Tato možnost
              je nyní zastaralá, použijte -C "0123456789"
       Úroveň upovídanosti je specifikován jako bitové pole:
       1         výpis více informací
       2         výpis tvarů z oblastí (viz -c)
       4         výpis vzorů z oblastí (viz -c)
       8         výpis vzorů po rozpoznání (pro ladění)
       16        výpis ladících informací o rozpoznání jednotlivých  řádků  na
                 standardní chybový výstup
       32        vytvoří  outXX.png  s  rámečky (okolo rozpoznávaných znaků) a
                 jednotlivými rozpoznávanými řádky při každém OCR kroku
       Operační režimy jsou následující:
       2         použij databázi pro znaky, které nejsou rozpoznány předešlými
                 algoritmy (funkce je v raném vývoji)
       4         přepínání mezi analýzou rozvržení, nebo zónováním (ve vývoji)
       8         neporovnávat nerozpoznané znaky s rozpoznanými
       16        nesnažit  se  rozdělit překrývající se znaky na 2 nebo 3 jed‐
                 notlivé znaky
       32        neprovádět opravy kontextu
       64        balení znaků: před začátkem rozpoznání jsou prohledány stejné
                 znaky  a  pouze jeden z těchto znaků je zaslán k analýze. (ve
                 vývoji)
       130       rozšířit databázi, zeptá se uživatele na nerozpoznané znaky a
                 rozšíří  databázi  podle  odpovědi uživatele (128+2, funkce v
                 raném vývoji)
       256       vypnout rozpoznávací engine (má smysl spolu s  parametrem  -m
                 2)
AUTOR
       Joerg Schulenburg (see http://jocr.sourceforge.net/ for EMAIL)
       First version of man page by Tim Waugh <twaugh@redhat.com>
INFORMACE O VERZI
       Tato stránka dokumentuje gocr, verze 0.41
DALŠÍ INFORMACE
       Více  informací  můžete  nalézt  v  /usr/share/doc/gocr-X.XX/gocr.html.
       Přečtěte si také /usr/share/doc/gocr-X.XX/README abyste  zjistili,  jak
       dosáhnout lepších výsledků
PŘÍKLADY
       gocr -v 33 text1.pbm
              výpis  upovídaných  informací,  out30.png  je  vytvořen, aby byl
              vidět postup rozpoznávání.
       gocr -v 7 -c _YV text1.pbm
              upovídaný výstup pro neznámé znaky Y and V
       djpeg -pnm -gray text.jpg | gocr -
              převést jpg obrázek do pnm formátu a použít jako vstup
Linux                             20 Aug 2006                          GOCR(1)
Domovská stránka http://jocr.sourceforge.net/
Grafická nástavba programu gocr gocr-gtk. Spouští se příkazem „gtk-ocr“
Ve složce Setting dopíšeme k příkazu /usr/bin/gocr kódování a uložíme:
/usr/bin/gocr -f UTF8
Lze vybrat postupně všechny naše naskenované obrázky a pak najednou konvertovat. Soubory, které se vytvoří, budou mít příponu .txt a budou se nacházet ve stejném adresáři jako naskenované obrázky. Jednoduše lze měnit velikost prachu odstín šedi a šířku mezery (přednastaveno je 10/160/0). Pokud potřebujeme překódovat. Např. na ISO-8859-2:
recode -f UTF-8..ISO-8859-2 *.txt
Je kompletní program pro skenování obrázků, využívající jako OCR právě program gocr. Jednoduše lze použít kontrolu pravopisu, která funguje dobře, ale musíme si nainstalovat slovník aspell-cs, který je v distribuci.
Zatím verze 0.1, je zdarma. http://www.math.northwestern.edu/~mlerma/locr/
Vypadá zajímavě. Umí i polské znaky, je grafický a autor píše, že ho bude rozšiřovat na další jazyky dle přání uživatelů. Tak pišme!!! http://lem.eui.upm.es/ocre.html
Rozpozná poezii a biblické texty v hebrejštině. http://www.claraocr.org/
Výborně vypadající grafický program, ale už se dlouho nevyvíjí. Nepodporuje české znaky, ale je možné naučit jej nové znaky (tip! c + háček = č!) http://www.claraocr.org/
Původně komerční OCR program od firmy HP, nyní vyvíjen společností Google pod licencí Apache. http://code.google.com/p/tesseract-ocr/
 Nainstalujte balík tesseract-ocr a tesseract-ocr-ces
 Nainstalujte balík tesseract-ocr a tesseract-ocr-ces
Grafické nadstavby YAGF, gImageReader
 Nainstalujte balík yagf
 Nainstalujte balík yagf
 Aplikaci můžete spustit z nabídky Aplikace → Kancelář → YAGF, případně příkazem
 Aplikaci můžete spustit z nabídky Aplikace → Kancelář → YAGF, případně příkazem yagf.
Nastavení YAGF Spusťte YAGF a ve sloupci Settings → OCR Settings vybrat tesseract
Grafická nadstavba teseractu freeware - online OCR
 - gocr, Clara, Ocre, Ocrad, Tesseract, Ocropus, Aspire OCR
 - gocr, Clara, Ocre, Ocrad, Tesseract, Ocropus, Aspire OCRRozšíření: Tento návod je příliš stručný. Pomozte Ubuntu Wiki tím, že jej rozšíříte. Více...
Grafická úprava: Tento návod potřebuje důležité grafické a stylistické úpravy. Více...
Konvence: Tento návod nesplňuje některé z na Wiki zavedených konvencí. Více...