<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Atviro kodo OCR API on File Format Blog</title>
    <link>https://blog.fileformat.com/lt/tag/atviro-kodo-ocr-api/</link>
    <description>Recent content in Atviro kodo OCR API on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>lt</language>
    <lastBuildDate>Fri, 23 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/lt/tag/atviro-kodo-ocr-api/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Palyginkite atviro kodo OCR API: Kuri priemonė suteikia geriausią išvesties kokybę?</title>
      <link>https://blog.fileformat.com/lt/ocr/comparing-open-source-ocr-apis-based-on-output-quality/</link>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/lt/ocr/comparing-open-source-ocr-apis-based-on-output-quality/</guid>
      <description>Mes lyginame geriausius atviro kodo OCR įrankius – Tesseract, PaddleOCR, EasyOCR ir Surya – vertindami jų išvesties formatus: paprastą tekstą, hOCR, ALTO XML, JSON ir Markdown.</description>
      <content:encoded><![CDATA[<p><strong>Paskutinį kartą atnaujinta</strong>: 2026 m. rugpjūčio 20 d.</p>
<figure class="align-center ">
    <img loading="lazy" src="images/comparing-open-source-ocr-apis-based-on-output-quality.png#center"
         alt="Compare Open-Source OCR APIs: Which Tool Offers the Best Output Quality?"/> 
</figure>

<h2 id="atviro-kodo-ocr-api-palyginimas-pagal-išvesties-formato-kokybę">Atviro kodo OCR API palyginimas pagal išvesties formato kokybę</h2>
<p>Kai inžinieriai vertina optinio simbolių atpažinimo (OCR) variklius, dažniausiai matavimus lemia simbolių klaidos rodiklis (CER) ir žodžių klaidos rodiklis (WER). Nors atpažinimo tikslumas yra būtinas, jis išsprendžia tik pusę problemos gamyboje.</p>
<p>Jei analizuojate sudėtingus daugiastulpelius PDF failus, ištraukiate eilutės elementus iš kvitų arba įkeliates baltuosius dokumentus į LLM įterpimo kanalą, neapdoroti teksto išklotiniai sukelia didelį inžinerinį krūvį. Simbolių eilutė be išdėstymo suvokimo, loginės skaitymo tvarkos ar koordinatės duomenų priverčia jūsų komandą rašyti trapius heuristinius analizatorius.</p>
<p>Tikrasis skirtumas šiuolaikiniams dokumentų darbo srautams yra <strong>išvesties formato kokybė</strong>: kaip nuosekliai ir švariai variklis pateikia koordinates, skaitymo tvarką, struktūrinę hierarchiją ir lentelių duomenis.</p>
<p>Žemiau pateikiamas inžinerijos požiūriu atliktas keturių pirmaujančių <a href="https://products.fileformat.com/ocr/">atviro kodo OCR</a> variklių palyginimas—<strong>Tesseract</strong>, <strong>PaddleOCR</strong>, <strong>EasyOCR</strong> ir <strong>Surya OCR</strong>—vertinant, kaip jų išvestys veikia automatizuotose konvejerėse.</p>
<h2 id="įprasti-išvesties-formatai-ko-iš-tiesų-reikia-inžinieriams">Įprasti išvesties formatai: Ko iš tiesų reikia inžinieriams</h2>
<p>Kiekviena OCR API skirtingai supakuoja aptiktą tekstą. Šių formatų supratimas padeda nustatyti, kiek papildomo apdorojimo jūsų duomenų srautas reikalauja:</p>
<ul>
<li><strong>Plain Text (<code>.txt</code>):</strong> Paprasčiausia reprezentacija. Ji pašalina visą pozicinius metaduomenis ir suskleidžia daugiastulpelių išdėstymus į horizontalius skaitymus, kas gali sutrikdyti pastraipas.</li>
<li><strong>Archival Standards (<code>hOCR</code>, <code>ALTO XML</code>):</strong> XML/HTML pagrindu sukurti formatai, standartiniai bibliotekų archyvavime. Jie įterpia koordinates, šrifto įvertinimus ir pasitikėjimo įvertinimus į DOM mazgus. Ypač patikimi dokumentų rekonstrukcijai, tačiau dideli mikroservisams.</li>
<li><strong>Structured JSON:</strong> Numatytoji pasirinkimo galimybė šiuolaikiniams žiniatinklio serverio galiniams. Pateikia koordinatų masyvus (ribinius laukus arba poligonus), pasitikėjimo įvertinimus ir hierarchines blokų/eilučių/žodžių struktūras.</li>
<li><strong>Markdown (<code>.md</code>) / HTML Tables:</strong> Šiuolaikinis standartas Retrieval-Augmented Generation (RAG). Išlaiko semantines sekcijas (antraštes, sąrašus, paryškintą tekstą) ir lentelių matricas nereikalaujant vėlesnės erdvinės rekonstrukcijos.</li>
</ul>
<h2 id="1-tesseract-ocr17">1. <a href="https://products.fileformat.com/ocr/net/tesseract/">Tesseract OCR</a></h2>
<p>Google prižiūrimas, Tesseract išlieka pagrindiniu atviro kodo OCR varikliu. Jo architektūra stipriai remiasi tradiciniais puslapio segmentavimo algoritmais, papildytais LSTM pagrindu veikiančiu simbolių varikliu.</p>
<h3 id="gimtiniai-išvesties-formatai">Gimtiniai išvesties formatai</h3>
<ul>
<li><strong>Pagrindiniai išvesties formatai:</strong> Paprastas tekstas, hOCR (HTML), ALTO XML, TSV (Tabulių atskirtų reikšmių), ir ieškoma PDF/A.</li>
<li><strong>Išdėstymo suvokimas:</strong> Taisyklėmis pagrįstos heuristikos per puslapio segmentavimo režimus (PSM).</li>
</ul>
<h3 id="išvesties-formato-analizė">Išvesties formato analizė</h3>
<ul>
<li><strong>Kur jis išsiskiria:</strong> Tesseract <code>TSV</code> ir <code>hOCR</code> eksporto formatai yra standartizuoti ir prognozuojami. Vienas TSV eksportas grąžina struktūruotas stulpelius: <code>level</code>, <code>page_num</code>, <code>block_num</code>, <code>par_num</code>, <code>line_num</code>, <code>word_num</code>, <code>left</code>, <code>top</code>, <code>width</code>, <code>height</code> ir <code>conf</code>. Jei konvertuojate popierinius archyvus į ieškomus PDF arba reikia griežto atitikimo institucinių standartų, Tesseract tai tvarko natūraliai be papildomo sujungimo kodo.</li>
<li><strong>Kur jis trūksta:</strong> Tesseract neturi natūralios JSON API. Jo išvesties naudojimas Python arba Node.js reikalauja XML/TSV failų analizės arba apvalkalo, pvz., <code>pytesseract</code>, naudojimo. Jo išdėstymo variklis taip pat susiduria su problemomis neįprasto stulpelių srauto atveju, dažnai maišydamas tekstą iš gretimų stulpelių, jei nepateikiami rankiniai ribų apkarpymo duomenys.</li>
</ul>
<pre tabindex="0"><code>Tesseract Output Profile:
├── Plain Text: Clean for standard single-column pages
├── XML / hOCR: First-class, rock-solid support
├── JSON: Requires custom wrappers or TSV-to-JSON transforms
└── Markdown / Tables: Poor (requires custom reconstruction)
</code></pre><h2 id="2-paddleocr18">2. <a href="https://products.fileformat.com/ocr/python/paddleocr/">PaddleOCR</a></h2>
<p>Remdamas Baidu PaddlePaddle karkasu, PaddleOCR įgijo plačiai paplitusią naudojimą dėl savo lengvų modelių, plačios daugiakalbės aprėpties ir specializuoto dokumentų analizės įrankių rinkinio (<strong>PP-Structure</strong>).</p>
<h3 id="gimtiniai-išvesties-formatai-1">Gimtiniai išvesties formatai</h3>
<ul>
<li><strong>Pagrindiniai išvesties duomenys:</strong> Python sąrašai/žodynai, neapdorotas JSON, vizualizacijos perdangos ir struktūruotas HTML per PP-Structure.</li>
<li><strong>Išdėstymo suvokimas:</strong> Aukštas (naudojant giluminio mokymosi modelius išdėstymo analizavimui, orientacijos klasifikavimui ir lentelių atkūrimui).</li>
</ul>
<h3 id="išvesties-formato-analizė-1">Išvesties formato analizė</h3>
<ul>
<li><strong>Kur jis išsiskiria:</strong> Standartinis PaddleOCR grąžina 4 taškų daugiakampio koordinates (<code>[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]</code>) kartu su teksto eilutėmis ir pasitikėjimo balais. Tai tvarko pasvirusią arba kreivinę tekstą sklandžiai. Tačiau tikroji jo stiprybė slypi <strong>PP-Structure</strong> rinkinyje, kuris aptinka išdėstymo sritis (pavadinimą, tekstą, lentelę, paveikslą) ir tiesiogiai išskaito lenteles į galiojančias HTML eilutes (<code>&lt;table&gt;...&lt;/table&gt;</code>). Tai pašalina poreikį rankiniu būdu apskaičiuoti langelių apimtis iš ribinių dėžių.</li>
<li><strong>Kur jis trūksta:</strong> Bazinis API grąžina įdėtus masyvus, kuriuose trūksta standartinių savybių raktų skirtingose versijose. Struktūruotoms programoms kūrėjai dažniausiai rašo tarpinį adapterį, kad standartizuotų laukų pavadinimus (<code>bbox</code>, <code>text</code>, <code>confidence</code>).</li>
</ul>
<pre tabindex="0"><code>PaddleOCR Output Profile:
├── Plain Text: Clean across multiple orientations
├── XML / hOCR: Limited (JSON is the preferred interchange format)
├── JSON: Highly detailed with 4-point polygons
└── Markdown / Tables: Excellent (direct HTML table generation via PP-Structure)
</code></pre><h2 id="3-easyocr19">3. <a href="https://products.fileformat.com/ocr/python/easyocr/">EasyOCR</a></h2>
<p>Sukurtas ant PyTorch, kurį sukūrė JaidedAI, EasyOCR yra sukurtas greitam kūrėjų priėmimui. Jis supakuoja CRAFT (Character Region Awareness for Text Detection) kartu su giluminio mokymosi atpažinimo tinklais į minimalų API.</p>
<h3 id="gimtiniai-išvesties-formatai-2">Gimtiniai išvesties formatai</h3>
<ul>
<li><strong>Pagrindiniai išvesties duomenys:</strong> Python sąrašai, kuriuose yra koordinatų, atpažintų eilučių ir pasitikėjimo verčių kortežų.</li>
<li><strong>Išdėstymo suvokimas:</strong> Nuo žemo iki vidutinio (tik teksto eilučių aptikimas; nėra dokumento lygio struktūrinės analizės).</li>
</ul>
<h3 id="išvesties-formato-analizė-2">Išvesties formato analizė</h3>
<ul>
<li><strong>Kur jis išsiskiria:</strong> Grąžinamo objekto paprastumas yra neprilygstamas:
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>[
</span></span><span style="display:flex;"><span>    (
</span></span><span style="display:flex;"><span>        [[x1, y1], [x2, y2], [x3, y3], [x4, y4]],
</span></span><span style="display:flex;"><span>        <span style="color:#e6db74">&#34;Total Balance Due&#34;</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#ae81ff">0.9842</span>,
</span></span><span style="display:flex;"><span>    )
</span></span><span style="display:flex;"><span>]
</span></span></code></pre></div></li>
</ul>
<p>Šio išvesties duomenų susiejimas su standartiniu REST atsakymu arba tiesioginis serializavimas į GeoJSON/pasirinktines schemas reikalauja tik kelių kodo eilučių. Jis veikia patikimai natūralių scenų tekste, numerių lentelėse ir atskiruose dokumentų iškarpose.</p>
<ul>
<li><strong>Kur trūksta:</strong> EasyOCR neatlieka visapusiškos dokumento išdėstymo analizės. Jis neatpažįsta lentelių, antraščių hierarchijų ar skaitymo tvarkų sudėtinguose stulpeliuose. Naudojant EasyOCR dviejų stulpelių akademiniame darbe dažnai gaunami susipynę teksto fragmentai, nebent jis būtų sujungtas su ankstesniu išdėstymo aptikimo modeliu (pvz., YOLO arba LayoutLM).</li>
</ul>
<pre tabindex="0"><code>EasyOCR Output Profile:
├── Plain Text: Good for isolated text blocks
├── XML / hOCR: Not supported natively
├── JSON: Trivial to generate from Python tuples
└── Markdown / Tables: None (requires external layout pipelines)
</code></pre><h2 id="4-surya-ocr">4. Surya OCR</h2>
<p><a href="https://github.com/datalab-to/surya">Surya</a> yra moderni giliojo mokymosi OCR sistema, sukurta specialiai sudėtingam dokumentų supratimui ir LLM įsisavinimo konvejeriams.</p>
<h3 id="natūralūs-išvesties-formatai">Natūralūs išvesties formatai</h3>
<ul>
<li><strong>Pagrindiniai išvesties duomenys:</strong> Pydantic modeliuotos JSON struktūros, loginiai skaitymo tvarkos indeksai, išdėstymo ribų regionai ir eilučių aptikimo daugiakampiai.</li>
<li><strong>Išdėstymo suvokimas:</strong> Ypač aukštas (giliosios mokymosi pagrindu veikianti išdėstymo analizė ir skaitymo tvarkos rūšiavimas).</li>
</ul>
<h3 id="išvesties-formato-analizė-3">Išvesties formato analizė</h3>
<ul>
<li><strong>Kur jis išsiskiria:</strong> Surya tiesiogiai sprendžia šiuolaikinio AI inžinerijos iššūkius. Vietoj to, kad manytų, jog dokumentai skaitomi iš viršaus į apačią, iš kairės į dešinę, Surya naudoja specialų modelį, prognozuojantį <strong>skaitymo tvarką</strong>. Ji grupuoja eilutes į loginius semantinius blokelius, natūraliai tvarko daugelio stulpelių išsiplėtimus ir išveda tipizuotas struktūras per Pydantic. Tai leidžia tiesiogiai ir patikimai įkelti duomenis į vektorines duomenų bazes ir Markdown konvertuotojus.</li>
<li><strong>Kur jis trūksta:</strong> Kadangi tai yra naujesnė, sunkesnė PyTorch pagrindu sukurta sistema, Surya reikalauja dedikuoto GPU skaičiavimo, kad pasiektų optimizuotų C++ variklių, tokių kaip Tesseract, ar kvantizuotų Paddle modelių, pralaidumą. Ji nesiekia palaikyti senų archyvavimo standartų, tokių kaip hOCR ar ALTO.</li>
</ul>
<pre tabindex="0"><code>Surya Output Profile:
├── Plain Text: Naturally ordered according to human reading flow
├── XML / hOCR: Not supported
├── JSON: Fully typed, modern Pydantic schemas
└── Markdown / Tables: Clean semantic blocks ideal for Markdown synthesis
</code></pre><h2 id="matrica-galva-prie-galvos-palyginimui">Matrica „galva prie galvos“ palyginimui</h2>
<table>
<thead>
<tr>
<th style="text-align:left">Funkcionalumas / Formatų</th>
<th style="text-align:left">Tesseract OCR</th>
<th style="text-align:left">PaddleOCR (PP-Structure)</th>
<th style="text-align:left">EasyOCR</th>
<th style="text-align:left">Surya OCR</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>Vietinis hOCR / ALTO XML</strong></td>
<td style="text-align:left"><strong>Vietinis palaikymas</strong></td>
<td style="text-align:left">Tik trečiosios šalies</td>
<td style="text-align:left">Nėra</td>
<td style="text-align:left">Nėra</td>
</tr>
<tr>
<td style="text-align:left"><strong>Ribų dėžutės geometrija</strong></td>
<td style="text-align:left">Ašies lygi (<code>x, y, w, h</code>)</td>
<td style="text-align:left">4 taškų daugiakampis</td>
<td style="text-align:left">4 taškų daugiakampis</td>
<td style="text-align:left">Daugiakampis + išdėstymo blokai</td>
</tr>
<tr>
<td style="text-align:left"><strong>Lentelių analizė</strong></td>
<td style="text-align:left">Tik koordinatinė TSV</td>
<td style="text-align:left"><strong>HTML lentelių eilutės</strong></td>
<td style="text-align:left">Nėra</td>
<td style="text-align:left">Ląstelių koordinatų tinkleliai</td>
</tr>
<tr>
<td style="text-align:left"><strong>Skaitymo tvarkos aptikimas</strong></td>
<td style="text-align:left">Remiantis taisyklėmis (pertraukia daugelio stulpelių atveju)</td>
<td style="text-align:left">ML išdėstymo analizė</td>
<td style="text-align:left">Pagrindinis eilučių grupavimas</td>
<td style="text-align:left"><strong>Dedikuotas skaitymo tvarkos modelis</strong></td>
</tr>
<tr>
<td style="text-align:left"><strong>Tiesioginės JSON schemos</strong></td>
<td style="text-align:left">Reikalauja konvertavimo</td>
<td style="text-align:left">Python žodynas / JSON</td>
<td style="text-align:left">Python sąrašas / JSON</td>
<td style="text-align:left"><strong>Tipizuoti Pydantic modeliai</strong></td>
</tr>
<tr>
<td style="text-align:left"><strong>Idealus galutinis tikslas</strong></td>
<td style="text-align:left">Archyviniai PDF, senoji DMS</td>
<td style="text-align:left">Formų/kvitų duomenys, ERP sistemos</td>
<td style="text-align:left">Greiti skriptai, scenos tekstas</td>
<td style="text-align:left">LLM įsisavinimas, RAG architektūros</td>
</tr>
</tbody>
</table>
<h2 id="apdorojimo-grandinės-rekomendacijos-kurį-pasirinkti">Apdorojimo grandinės rekomendacijos: kurį pasirinkti?</h2>
<ul>
<li><strong>Pasirinkite Tesseract</strong> jei jūsų atitikties reikalavimai reikalauja standartizuotų <code>hOCR</code>, <code>ALTO XML</code> arba peržiūrimo PDF/A rezultatų vyriausybinėms ar archyvų įrašams.</li>
<li><strong>Pasirinkite PaddleOCR</strong> jei apdorojate operacinius finansinius dokumentus (sąskaitas faktūras, kvitus, mokesčių formas), kuriuose yra sudėtingos, be rėmelių lentelės, kurias reikia konvertuoti į HTML arba skaičiuoklių lapus.</li>
<li><strong>Pasirinkite EasyOCR</strong> jei jums reikia lengvos, Python kalbos bibliotekos, skirto aptikti ir išgauti tekstą iš natūralių vaizdų, gatvės ženklų arba apkarpytų vartotojo sąsajos elementų be konfigūracijos vargo.</li>
<li><strong>Pasirinkite Surya OCR</strong> jei įkeliates nestruktūruotus verslo ataskaitas, mokslinius darbus ir technines gaires į LLM arba vektorinę paieškos sistemą, kur logiška skaitymo tvarka ir švarios struktūrinės ribos yra esminės.</li>
</ul>
<h1 id="dažnai-užduodami-klausimai-duk">Dažnai užduodami klausimai (DUK)</h1>
<h3 id="1-kuris-atviro-kodo-ocr-išvesties-formatas-yra-lengviausiai-įkeliamas-į-didelius-kalbos-modelius">1. Kuris atviro kodo OCR išvesties formatas yra lengviausiai įkeliamas į didelius kalbos modelius?</h3>
<p>Surya OCR skaitymo tvarką atsižvelgiantis JSON ir PaddleOCR PP-Structure HTML lentelės suteikia švariausius atvaizdus LLM užklausų kontekstuose ir RAG indeksavimui.</p>
<h3 id="2-ar-tesseract-gali-natūraliai-generuoti-json-atsakymus-be-trečiųjų-šalių-įrankių">2. Ar Tesseract gali natūraliai generuoti JSON atsakymus be trečiųjų šalių įrankių?</h3>
<p>Ne, Tesseract natūraliai išveda tekstą, TSV, PDF ir hOCR/ALTO XML; JSON generavimas reikalauja konvertuoti jo TSV arba hOCR išvestį naudojant tarpinį analizatorių.</p>
<h3 id="3-kaip-4-taškų-daugiakampio-koordinatės-skiriasi-nuo-ašimis-lygių-ribinių-dėžių">3. Kaip 4 taškų daugiakampio koordinatės skiriasi nuo ašimis lygių ribinių dėžių?</h3>
<p>Ašies lygiuoti stačiakampiai naudoja <code>[x, y, width, height]</code>, remdamiesi plokščiu tekstu, o 4 taškų daugiakampiai suteikia keturias koordinatų poras, kad tiksliai apgaubtų pasuktas, iškreiptas arba kreivias teksto eilutes.</p>
<h3 id="4-kuri-variklis-tiesiogiai-išveda-lentelių-struktūras-į-kodą-o-ne-į-laisvas-koordinates">4. Kuri variklis tiesiogiai išveda lentelių struktūras į kodą, o ne į laisvas koordinates?</h3>
<p>PaddleOCR PP-Structure modulis rekonstruoja aptiktas lentelės ribas į pilnas HTML lentelės žymas (<code>&lt;table&gt;</code>, <code>&lt;tr&gt;</code>, <code>&lt;td&gt;</code>), išvengdamas individualios erdvės matematikos.</p>
<h3 id="5-kodėl-standartinis-easyocr-išvestis-susiduria-su-sunkumais-daugiastulpeliuose-moksliniuose-straipsniuose">5. Kodėl standartinis EasyOCR išvestis susiduria su sunkumais daugiastulpeliuose moksliniuose straipsniuose?</h3>
<p>EasyOCR identifikuoja teksto eilutes remdamasis vietine artumu, o ne globalia išdėstymo hierarchija, todėl šalia esančių stulpelių tekstas susipina, nebent jį ribotų išorinis išdėstymo variklis.</p>
<h2 id="taip-pat-žiūrėkite">Taip pat žiūrėkite</h2>
<ul>
<li><a href="https://blog.fileformat.com/en/ocr/ocr-output-formats-compared-txt-pdf-pdfa-xml-and-json/">OCR išvesties formatų palyginimas: TXT, PDF, PDF/A, XML, JSON</a></li>
<li><a href="https://blog.fileformat.com/ocr/understanding-ocr-file-formats-hocr-vs-alto-vs-pdfa-explained/">OCR failų formatų supratimas – HOCR vs ALTO vs PDF/A paaiškinta</a></li>
<li><a href="https://blog.fileformat.com/pdf/what-is-the-difference-between-pdf-and-fdf/">Kuo skiriasi PDF ir FDF?</a></li>
<li><a href="https://blog.fileformat.com/file-formats/pdf-vs-word-which-one-should-you-use-and-when/">PDF vs Word: Kurį naudoti ir kada?</a></li>
<li><a href="https://docs.fileformat.com/pdf/a/">Kaip pasirinkti tinkamą failo formatą ranka rašytų tekstų atpažinimui (HTR)</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
