 |
Penguin
|
 |
 |
Hosted Sites
|
 |
 |
Vyhledávání
|
 |
 |
Novinky
|
 |
|
|
 |
Neziskový server pro podporu Linuxu, UNIXu a free softwaru. |
 |
|
MULTIFUNKČNÍ TISKÁRNY
 |
OCR v Linuxu: Cuneiform a YAGF
jirka (13.05.2010 20:23:13, 21158/16)
Krátká recenze asi méně známého OCR programu pro Linux
Úvod
Jednou z věcí, kterou uživatele od počítačů občas chtějí je
převod naskenovaného textu do nějaké editovatelné podoby.
Skenování není v Linuxu problém už hodně dlouho (bylo-li někdy
vůbec problémem), složitější už je to s rozpoznáváním textu (
Optical Recognition - OCR).
Ale situace se postupně zlepšuje. Dnes se podíváme na program
Cuneiform, který je možná mezi linuxáři méně známý, ale mě se
docel osvědčil.
Pro Linux samozřejmě existuje celá řada OCR programů - některé vznikly
jako open source (třeba gocr), jiné byly uvolněny
komerčními firmami po skončení uzavřeného vývoje (jako třeba
Tesseract od
HP). Do druhé skupiny patří také program Cuneiform,
který je předmětem dalšího textu. Vyzkoušel jsem i některé další, ale
výsledky na mých materiálech vesměs neodpovídaly mým představám a
zrovna Cuneiform se mi osvědčil výrazně nejlépe.
Cuneiform byl původně komerčním produktem a ani nebyl určen pro pro
unixové operační systémy. Před několika lety však byly uvolněny
zdrojové kódy OCR jádra programu a postupným vývojem se jej podařilo
dostat na Linux. Program pochází z Ruska (autoři uvádí, že v 90.
letech patřil ke špičce na tamním trhu), což samo o sobě dává naději,
že se při návrhu programu a algoritmů počítalo s lokálními abecedami
a jejich specifiky. A je tomu opravdu tak - kromě očekávané angličtiny
a samozřejmě ruštiny si program poradí s pěknou řadou dalších jazyků
(celkem je jich kolem 20) a nechybí ani čeština.
Možnosti
Samotný Cuneiform je programem spouštěným z příkazového řádku a nemá
žádné uživatelské rozhraní. To se taky hodí (třeba do různých
skriptů). Po startu vypadá asi takto:
Cuneiform for Linux 0.9.0
Usage: cuneiform [-l languagename -f format --dotmatrix --fax -o result_file] imagefile
Je tedy možné nastavit skenovaný jazyk (pro češtinu je zkratka
cze), výstupní formát (výchozí je čistý text, alternativou je
HTML - zkratka html), další parametry pak nastaví použití
různých triků pro vytažení použitelných výstupů z faxu nebo jehličkové
tiskárny (do jisté míry to funguje i na nekvalitní tisk z různých typů
tiskáren). Výsledky jsou dle mého názoru slušné - český text dokázal
převést i bez chyby (vytištěný na laserové tiskárně a naskenovaný na
300 dpi). Vstupním formátem může být kde co (výchozí je BMP, ale
dovede i normálnější formáty, používá k tomu knihovny z projektu
ImageMagick).
Samozřejmě, některé věci program Cuneiform nedovede. Je určen jen k
rozpoznávání tištěného písma (patkového nebo bezpatkového - kurzíva
ani tučné písmo mu však nevadí a dokáže je i rozpoznat a patřičně
zobrazit v HTML výstupu),
nezvládá písmo psané a nepřelouská ani různé speciální a umělecké fonty
(takže na švabach ani na runy ho nepoužívejte - je to zbytečné).
Grafická nadstavba YAGF
Ne každý se ovšem smíří s používáním OCR programu z příkazové řádky.
Navíc, někdy může být praktické vizuálně vybrat jen část stránky a
tu dále zpracovávat v OCR programu. Pro Cuneiform byste našli i další
možnosti, ale asi nepřímočařejší variantou je použití programu YAGF
který byl vytvořen přímo pro spolupráci s programem Cuneiform.
A co YAGF uživateli nabízí? Kromě zobrazení výchozího obrázku a výsledného
textu je to jednoduché nastavování jazyka i formátu výstupního souboru
a možnost kontroly pravopisu
(k tomu musí být nainstalován program Aspell a slovníky pro příslušný
jazyk). Obrázků je možné načíst více a zpracovávat je jednotlivě nebo
naráz. Náhled obrázku je pochopitelně možné zvětšovat, zmenšovat i
posouvat, aby se vybíralo pohodlně. Také je možné označit obdélníkovou
oblast, která se bude zpracovávat a zbytek stránky ignorovat. Pokud je
text v obrázku otočený o 90 stupňů nebo je vzhůru nohama, je možné jej
nejprve otočit do "správné polohy".
Vytvořený text je možné buď ukládat do souboru nebo zkopírovat do
systémové schránky pro další použití.
Dokonce by mělo být možné z YAGF i skenovat (zavolá si XSane), ale
tuto funkci jsem neměl možnost ovšřit, nemaje u linuxového počítače
připojený skener.
Technické detaily a instalace
Cuneiform je k dispozici v novějších Ubuntu a nejspíš i v dalších
distribucích (aktuální Fedora a podobně). YAGF se dá stáhnou z domácí
stránky programu, k dispozici je balíček ve formátu RPM pro
Fedora Core 11 a "samoinstalační" archív (na Ubuntu 10.04 fungoval bez
problémů - postačilo v terminálu spustit pomocí "sh název_balíčku" a
všechny dva dotazy kladně zodpovědět pomocí "Y"). Celá "samoinstalace"
spočívá ve vytvoření adresáře s programem.
Pokud používáte něco staršího (v mém případě šlo o instalaci na Ubuntu
8.04), možná se nevyhnete kompilaci ze zdrojových kódů. V takovém
případě se hodí vědět, že Cuneiform vyžaduje relativně novou verzi
programu Cmake (tak 2.6) a vývojové knihovny ImageMagick++ (pokud
ty nejsou, nevadí, ale bude možné načítat jen z obrázků ve formátu
BMP). V uvedeném Ubuntu to znamenalo povolit Ubuntu Backports
(například v nastavení zdrojů v programu Synaptic) a nainstalovat
novou verzi Cmake. Pak stačí: cmake . ; make ; sudo make install
(a spustitelný soubor "cuneiform" se objeví v "/usr/local/bin").
Pro YAGF to bylo podobné (vlastně stejné), jen bylo třeba mít ještě
vývojářské knihovny Qt verze 4 (taky Ubuntu Backports).
Závěr
Pokud hledáte vhodný OCR pro Linux, vyzkoušejte i Cuneiform (a k němu
YAGF). Není vyloučeno, že vám bude také vyhovovat. Mě se zatím líbí
moc.
P.S. Konečně jsem začal ve Vimu 7 používat integrovanou kontrolu
pravopisu. Snad to bude poznat.
[Tiskni] [Přidat komentář] [Skrýt komentáře] Napsal mjablko 13. 5. 2010 v 20:53 Téma: getdebDíky za tip!
Pro Ubuntu 10.04 je možné nastavit repositor GetDeb a vše potřebné (YAGF, atd.) je pak již ve zdrojích.
/etc/apt/sources.list
#### GetDeb - http://www.getdeb.net
## Run this command: wget -q -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
deb http://archive.getdeb.net/ubuntu lucid-getdeb apps [Reagovat]
| Napsal Alf 14. 5. 2010 v 17:10 Téma: ProblémekCuneiform v konzoli jede. Yagf jede. Při pokusu o překlad hláška The system said: cuneiform: symbol lookup error: cuneiform: undefined symbol: _ZN6Magick5Image4typeEv. Nekamenujte mě, nevím co s tím.
Cmake verze 2.8 nainstalován, knihovny ImageMagick také :-(. Díky za kždou rozumnou pomoc.
Ubuntu 10.04 [Reagovat]
| - Napsal jirka 14. 5. 2010 v 18:21
Téma: re:Problémek> Cuneiform v konzoli jede. Yagf jede. Při pokusu o překlad hláška The system said: cuneiform: symbol lookup error: cuneiform: undefined symbol: _ZN6Magick5Image4typeEv. Nekamenujte mě, nevím co s tím.
> Cmake verze 2.8 nainstalován, knihovny ImageMagick také :-(. Díky za kždou rozumnou pomoc.
> Ubuntu 10.04
Při překladu Cuneiformu? je nainstalováno něco jako libmagick++-***-dev? (nebo libimagemagick++ - teď nevím, překládal jsem to doma)? [Reagovat]
- Napsal Alf 14. 5. 2010 v 18:44
Téma: re:re:Problémek> > Cuneiform v konzoli jede. Yagf jede. Při pokusu o překlad hláška The system said: cuneiform: symbol lookup error: cuneiform: undefined symbol: _ZN6Magick5Image4typeEv. Nekamenujte mě, nevím co s tím.
> > Cmake verze 2.8 nainstalován, knihovny ImageMagick také :-(. Díky za kždou rozumnou pomoc.
> > Ubuntu 10.04
>
> Při překladu Cuneiformu? je nainstalováno něco jako libmagick++-***-dev? (nebo libimagemagick++ - teď nevím, překládal jsem to doma)?
Zřejmě jsme se nepochopili, nebo spíš nechápu. Spustím yagf ten zavolá xsane naskenuje potud vše v pořádku. Označím text, nastavím výstup češtinu a *.txt zmáčknu tlačítko OCR a výsledkem je ta hláška. V konzoli se zdá, že cuneiform jede. V linuxu jsem nováček, tak se trápím. Díky za snahu. [Reagovat]
- Napsal jirka 14. 5. 2010 v 19:15
Téma: re:re:re:Problémek> Zřejmě jsme se nepochopili, nebo spíš nechápu. Spustím yagf ten zavolá xsane naskenuje potud vše v pořádku. Označím text, nastavím výstup češtinu a *.txt zmáčknu tlačítko OCR a výsledkem je ta hláška. V konzoli se zdá, že cuneiform jede. V linuxu jsem nováček, tak se trápím. Díky za snahu.
Aha, tak to jme se nepochopili. Co vypíše příkaz:
ldd `which cuneiform`
Tedy napsaný v konzoli?
Cuneiform je verze 0.7 (výchozí z Ubuntu) nebo nějaký jiný (z GetDeb apod)?
Jinak mám nainstalované balíčky libmagick++2 a libmagick++10 (přes Synaptic). [Reagovat]
|
|
|
| [Tiskni] [Přidat komentář] [Skrýt komentáře]
|
|
 |
Nastavení & Info
|
 |
 |
On-Line DOC
|
 |
 |
Zajímavá místa
|
 |
 |
Linuxová komunita
|
 |
 |
Staré dobré sajty
|
 |
 |
Mirror
|
 |
 |
Počitadlo
|
 |
|
|