Porovnanie nástrojov OCR: ako vybrať najlepší nástroj pre váš projekt

Optické rozpoznávanie znakov (krátke: OCR) je úloha automatického extrahovania textu z obrázkov. V súčasnej dobe je k dispozícii celý rad nástrojov a služieb, ktoré sa ľahko používajú a robia z tejto úlohy nevhodný obraz. V tomto blogovom príspevku porovnám štyri z najpopulárnejších nástrojov:

  1. Tesseract OCR
  2. ABBYY FineReader
  3. Google Cloud Vision
  4. Amazonský text

Ukážem, ako ich použiť a zhodnotiť ich silné a slabé stránky na základe ich plnenia pri viacerých úlohách. Po prečítaní tohto článku si budete môcť vybrať a použiť nástroj OCR vyhovujúci potrebám vášho projektu.

Upozorňujeme, že naše zameranie na OCR obmedzujeme iba na obrázky dokumentov, na rozdiel od akýchkoľvek obrázkov obsahujúcich náhodne.

Toto nie je obrázok dokumentu.

Teraz sa pozrime na obrázky dokumentov, ktoré použijeme na hodnotenie OCR motorov.

Naše testovacie obrázky

Obrázky dokumentov majú rôzne tvary a vlastnosti. Niekedy sú skenované, inokedy sú zachytené vreckovými zariadeniami. Okrem tlačeného textu môžu obsahovať aj rukopis a štrukturálne prvky, ako sú škatule a tabuľky. Ideálny nástroj OCR by teda mal byť

  • spoľahlivo rozpoznať dobre naskenovaný text,
  • byť odolný voči zlej kvalite obrazu a písaniu rukou,
  • výstupné informácie o formátovaní a štruktúre dokumentu.

S ohľadom na tieto predpoklady otestujeme nástroje OCR na nasledujúcich štyroch obrázkoch:

Naskenovaný e-mail, naskenovaný rukou písaný list.Naskenovaná tabuľka zachytená pomocou smartfónu.

Všetky obrázky pochádzajú z veľkého súboru dokumentov tabakového priemyslu. Tretí bol vytlačený a potom zachytený pomocou smartfónu, ktorý spôsobil typický šum.

Najprv preskúmame spôsob, akým sa spoločnosti Tesseract OCR darí v súvislosti s týmito úlohami.

Tesseract OCR

Najlepšie na Tesseracte je, že je zadarmo a ľahko sa používa. V podstate ide o nástroj príkazového riadku, ale existuje aj balík Python s názvom pytesseract a rozhranie GUI frontend gImageReader, takže si môžete vybrať ten, ktorý najlepšie vyhovuje vašim účelom.

Používanie nástroja príkazového riadku je také jednoduché ako

tesseract imagename outputbase [outputformat]

Ak nezadáme výstupný formát, predvolený je textový súbor obsahujúci rozpoznané znaky. Prípadne bude výstupom súboru PDF, ktorý je možné prehľadávať, a súborov formátu XML a hociktorých a ďalších, ktoré obsahujú ďalšie informácie, ako sú polohy znakov (v štandarde XML, ktorý má rovnaký názov). Viac voliteľných argumentov nájdete tu.

Tu je to, čo Tesseract nachádza v našich testovacích obrázkoch:

Tesseract: naskenovaný e-mail, vlastnoručný list.Tesseract: e-mail zachytený smartfónom - vôbec žiadny výstup, naskenovaná tabuľka.

Ako si všimnete, Tesseract OCR rozpoznáva text v dobre naskenovanom e-maile celkom dobre. Pokiaľ však ide o ručne písaný list a dokument zachytený smartfónom, nevysiela sa ani nezmysel alebo doslova nič.

Na výstup z obrázku tabuľky som použil gImageReader, rozhranie GUI uvedené vyššie. Ukazuje sa, že Tesseract vydá ohraničovacie políčka pre oblasti obrázka, ktoré obsahujú text, ale to sa ani nepribližuje k správnej extrakcii tabuľky. Výstup Tesseractu môžete samozrejme spracovať pomocou vlastného nástroja na extrahovanie tabuliek. Naše príspevky na blogu o použití OCR na technické výkresy a vyťaženie dátumov z písmen dávajú predstavu ako.

ABBYY FineReader

ABBYY ponúka celý rad produktov súvisiacich s OCR. Budem používať rozhranie ABBYY Cloud OCR SDK API. Táto cloudová služba používa OCR modul ABBYY FineReader, ktorý sa dá nainštalovať aj lokálne. Na rozdiel od Tesseract, ABBYY Cloud OCR nie je zadarmo (ceny).

Ak sa chcete naučiť, ako používať rozhranie API, nájdete v týchto rýchlych príručkách všetko, čo potrebujete vedieť.

Pokiaľ ide o výstupný formát OCR, máme opäť rôzne možnosti. Okrem tých, ktoré poskytuje aj Tesseract, môžeme navyše požiadať spoločnosť ABBYY o výstup tabuliek XLSX. Túto možnosť použijem pre náš obrázok stola.

ABBYY: naskenovaný e-mail, vlastnoručný list.ABBYY: e-mail zachytený smartfónom, naskenovaná tabuľka.

Aplikácia ABBYY FineReader nemá problémy s dobre naskenovanou e-mailovou správou a v dokumentoch zachytených pomocou smartfónu to robí pomerne dobre. Na ručne písanom dokumente však úplne zlyhá.

Jeho hlavnou výhodou je kapacita extrakcie tabuľky: ako vidíte na poslednom obrázku, výstup zachováva tabuľkovú štruktúru. Bližší pohľad na výstup XML odhalí, že FineReader skutočne rozpoznáva oddiely tabuľky a jednotlivé bunky, a dokonca extrahuje podrobnosti, ako napríklad štýl písma (tu nájdete popis schémy XML spoločnosti ABBYY).

Google Cloud Vision

Ďalším riadkom je Google Cloud Vision, ktorý budeme používať prostredníctvom rozhrania API. Rovnako ako FineReader je to platená služba (tvorba cien).

Používanie rozhrania API Cloud Vision je trochu zložitejšie ako používanie rozhrania ABBYY API alebo Tesseract. Ak sa chcete dozvedieť, ako to funguje, nájdete tu a tu dobré východiskové body.

Získame nasledujúci výstup:

Google: naskenovaný e-mail, vlastnoručný list.Google: e-mail zachytený smartfónom, naskenovaná tabuľka.

Google si naskenovaný e-mail robí dobre a text v dokumente zachytenom smartfónom rozpoznáva podobne ako ABBYY. Je však oveľa lepšie ako rozpoznávanie rukopisu ako Tesseract alebo ABBYY, ako ukazuje druhý výsledný obrázok: stále nie je ani zďaleka dokonalý, ale aspoň má niektoré veci v poriadku. Na druhú stranu, Google Cloud Vision nezaobchádza s tabuľkami veľmi dobre: ​​extrahuje text, ale je to o tom.

V skutočnosti je pôvodným výstupom Cloud Vision súbor JSON obsahujúci informácie o pozíciách znakov. Rovnako ako v prípade Tesseract sa na základe týchto informácií mohol pokusiť zistiť tabuľky, ale táto funkcia nie je opäť zabudovaná.

Upozorňujeme, že v súčasnosti existuje aj verzia beta aplikácie AI s porozumením AI, ktorú sme v tomto bode netestovali.

Amazonský text

Náš posledný kandidát je tiež plateným cloudovým riešením (tvorba cien).

Na účely testovania môžete textové rozhranie pohodlne používať s rozhraním prehľadávača drag-and-drop, ale pre aplikácie pripravené na výrobu budete pravdepodobne pravdepodobne chcieť používať poskytované API.

Pomocou rozhrania prehliadača, Výstupy textov

  • odpoveď API ako súbor JSON,
  • surový text,
  • zistené tabuľky v samostatných súboroch CSV,
  • páry kľúč - hodnota (interpretácia vstupu ako forma), ako aj súbor CSV.

Poskytujú nám nasledujúce výsledky:

Amazon: naskenovaný e-mail, vlastnoručný list.Amazon: e-mail zachytený smartfónom, naskenovaná tabuľka.

Rovnako ako predtým, e-mail vyzerá dobre, ale zdá sa, že Textract nezvláda písané texty veľmi dobre. Okrem toho, hoci dokument zachytený smartfónom vyzerá na prvý pohľad v poriadku, podrobnejšia inšpekcia odhalí, že OCR spoločnosti Amazon zmiešalo čiary (kvôli zakriveniu obrázka dokumentu).

Pre tabuľkový dokument uvádzame iba jednu z troch tabuliek Identifikovaný text. Už je však zrejmé, že niektoré hlavičky stĺpcov chýbajú a niektoré čísla sú na nesprávnych miestach.

záver

V tejto tabuľke sú zhrnuté výsledky našich testov:

Hlavnými slovami:

  • Ak pracujete so strojom napísanými a dobre naskenovanými dokumentmi alebo možno so súbormi PDF bez metadát, prácu môže vykonať Tesseract OCR, hoci komerčné služby sú spoľahlivejšie.
  • Ak je pre vás dôležité rozpoznávanie rukou písaných znakov, k dnešnému dňu je medzi používateľmi testovaných služieb Google Cloud Vision vaša jediná realizovateľná alternatíva.
  • Ak je kvalita obrázka dokumentu zlá, ABBYY FineReader aj Google Cloud Vision stále vykonávajú dobrú prácu.
  • Ak je vaším cieľom extrahovať tabuľkové informácie, môžete zvoliť program ABBYY FineReader.

Pôvodne uverejnené na stránke https://dida.do 20. januára 2020.