indra

Activity, over time

Daily observations from the public event archive.

Attention

Daily stars & forks

Loading attention chart

Star accumulation

Cumulative stars

Loading star accumulation chart

Pull requests

Daily opens & merges

Loading pull requests chart

Conversations

Daily issues & comments

Loading conversations chart

Community

Daily accounts & reviews

Loading community chart

Releases

Daily releases

Loading releases chart

Mentions

34posts · 30d
Nov 41 post
  1. DEV · · @dedupedai

    A faster Tesseract alternative: OCR PDFs to markdown on CPU with Indra OCR Tesseract is still the default OCR engine in a lot of pipelines, mostly because it is free, local and needs no GPU. Indra OCR from Datalab keeps all three of those properties and adds layout, reading order and handwriting. This post shows how to install it, convert PDFs to markdown or JSON, and use it from Python. datalab-to/indra describes Indra OCR as a 1M-parameter OCR model that runs on CPU. It turns PDFs and images into markdown, text, or JSON with boxes, and reads handwriting, 80+ languages and pages at any angle. It runs on ONNX Runtime, with no PyTorch and no GPU. The numbers from the README - Accuracy: 66.7 on OmniParseBench (71.4 with --math), ahead of PaddleOCR's full PP-StructureV3 pipeline at 58.4. Its text score of 46.7 is ahead of PaddleOCR's PP-OCR text models (35.8) and Tesseract (19.3). - Speed: about 44 pages per second on 32 CPU cores, which the README puts at 15x Tesseract and 10x PaddleOCR's PP-OCR text models on the same machine type and pages, and about 210 ms per page on 4 cores. - Size: the default models are about 76 MB, 30 MB of networks and 46 MB of language models for unsure lines. These are the project's own benchmarks, so treat them as a reason to test on your documents, not as a guarantee. Step 1: install You need Python 3.10 or newer. The README lists testing on Linux (x86_64 and aarch64) and macOS on Apple silicon. pip install indra-ocr The first run downloads the models from Hugging Face and caches them. To use a local copy, set INDRA_OCR_MODEL_DIR or pass --model-dir, which is what you want on an air-gapped server. Step 2: convert PDFs from the command line indra-ocr paper.pdf # markdown to stdout indra-ocr *.pdf --out results/ # one .md per input, all cores indra-ocr scan.png --format json # lines, boxes, layout blocks, confidences indra-ocr paper.pdf --format text # plain text, one line per detected line indra-ocr paper.pdf --mode ocr --timings # ignore the text layer, OCR every page indra-ocr paper.pdf --math # write math as LaTeX The default --mode auto is the part that saves time on mixed archives: it reads the PDF text layer where it passes the checks and only OCRs what is missing. Use --mode ocr when a text layer is present but garbage, which happens a lot with old scans. Page headers and footers are left out of the markdown unless you pass --keep-furniture. The CLI keeps going past files it cannot read and exits with 1 if any failed, so it is safe to point at a big folder. Step 3: check results in the viewer indra-ocr-viewer --port 8765 Open localhost and drop in a PDF or image. Each page shows its lines, layout blocks and reading order drawn over the page, with the rendered markdown, the lines with their confidences and the JSON. Files stay on your machine. Install pip install "indra-ocr[tesseract]" plus a Tesseract binary and the viewer can compare the two side by side, which is the fastest way to decide whether to switch. Step 4: use it from Python import indra_ocr conv = indra_ocr.load(threads=4) # mode="auto" | "ocr" | "text" for i, page in conv.convert("paper.pdf"): print(page.source, page.timings["total_ms"]) print(page.markdown) # headings, lists, tables as HTML page.blocks # [{"label", "bbox", "text"}] in reading order page.lines # [Line(box, text, conf)] in reading order For batches, convert_many runs one single-threaded worker per core and returns results in input order. Keep the if __name__ == "__main__": guard on macOS and Windows: import indra_ocr if __name__ == "__main__": for path, result in indra_ocr.convert_many(["a.pdf", "b.pdf"], cores=None): if isinstance(result, indra_ocr.InputError): continue # unreadable or locked file for i, page in result: print(path, i, page.source) Every block carries a label (Text, Section-Header, Table, Caption, Footnote, Form and more) and a bounding box, so feeding clean chunks to an LLM or a search index is a filter, not a regex project. What people have built on it The builds collected on the Indra page are mostly about replacing Tesseract in existing tools: - An OCRmyPDF engine plugin that runs Indra OCR instead of Tesseract and ships in a Paperless-ngx image, so Paperless keeps its skip, redo and force modes and only the recognition engine changes. - A Paperless-ngx 3.x parser plugin that runs Indra on ONNX Runtime on the CPU and produces searchable PDF/A archives with a text layer, with no extra service. - A WebAssembly port with a TypeScript API on npm that does the whole thing in the browser with no server. - A C# and .NET port on NuGet that keeps the same command line, viewer and output, with no Python needed. If you run Paperless-ngx at home, those two plugins are the quickest real-world win. When to reach for something else Indra is built for speed on CPUs. For very long documents, Baidu's Unlimited OCR is an open OCR model aimed at parsing documents of any length within a finite context window, and it is worth comparing on that kind of input. The Indra README itself points to Datalab's larger Chandra model for the hardest handwriting, math, complex tables and degraded scans. Caveats - Handwriting works but is the weak spot: the README reports 25.2% on the OmniParseBench handwriting tests. - The code is Apache 2.0, but the model weights use a modified OpenRAIL-M license: free for research, personal use and startups under $20M funding or revenue, and not for use that competes with Datalab's API. Check that before you ship it in a product. - This walkthrough follows the README and has not been run end to end by us. Source repo: datalab-to/indra. Want the setup commands for 50 AI repos people actually ship with? Get the free AI Repos That Actually Ship pack: dedupedai.com

  2. Reddit · · r/LocalLLaMA · u/YogurtExternal7923

    They released a tesseract successor (datalab-to/indra) Haven't tried it yet but we all know how tesseract is and the benchmarks show a beautiful spike in quality and speed. It's a 1M parameter model! I thought we'd never see the day but sub B parameter models are popping up left and right now. datalab-to/indra

    42 points · 6 comments
  3. Reddit · · r/LovingAIAgents · u/Koala_Confused

    "Indra OCR is a 1M-parameter OCR model that runs on CPU. It turns PDFs and images into markdown, text, or JSON with boxes, and it reads handwriting, 80+ languages, and pages at any angle. ➡️ 1M param OCR model - runs on CPU, 15x faster than tesseract, close to 1B+ param models in accuracy" datalab-to/indra Community Overview: lifehubber.com Resources are shared for discovery and are not independently vetted—please do your own due diligence. New resources are added regularly — feel free to join the sub for updates. Full searchable archive of all resources posted so far on our community site, LifeHubber: lifehubber.com 300+ open-ish AI models, agents, tools, datasets, and related resources, with filtering and sorting.

    2 points
  4. Reddit · · r/LovingOpenSourceAI · u/Koala_Confused

    "Indra OCR is a 1M-parameter OCR model that runs on CPU. It turns PDFs and images into markdown, text, or JSON with boxes, and it reads handwriting, 80+ languages, and pages at any angle. ➡️ 1M param OCR model - runs on CPU, 15x faster than tesseract, close to 1B+ param models in accuracy" datalab-to/indra Community Overview: lifehubber.com Resources are shared for discovery and are not independently vetted—please do your own due diligence. New resources are added regularly — feel free to join the sub for updates. Full searchable archive of all resources posted so far on our community site, LifeHubber: lifehubber.com 300+ open-ish AI models, agents, tools, datasets, and related resources, with filtering and sorting.

    213 points · 4 comments
  5. YouTube · · YouTube description · Eddwan Hallen

    Open source do GitHub: #10 a #6 | Vol. 13 #shorts Os projetos #10 a #6 do Top 15 open source do GitHub, Vol. 13, 10 segundos para cada um. #10 House Control: 0xProbabillity/house-control #9 Talorys: rociiu/talorys #8 Indra OCR: datalab-to/indra #7 net-merge: rohit267/net-merge #6 opendesk: useopendesk/opendesk Vídeo completo com os 15: youtu.be Oferecimento: Hallen Tech, hallentech.com #shorts #opensource #github

    12 likes · 292 views
  6. YouTube · · YouTube description · Eddwan Hallen

    Mais 15 projetos open source do GitHub que valem o seu tempo | Vol. 13 Mais 15 projetos open source do GitHub que valem o seu tempo, em contagem regressiva e com 10 segundos para cada um: um conversor de 255 formatos que funciona arrastando, uma TV sem anúncios, o Figma offline, janelas do Mac no iPad e muito mais. 📺 Décimo terceiro volume da série Open source do GitHub. Escolhidos pela análise da lista inteira (estrelas, frequência de commits, último commit, README, documentação, capturas e site), conferida em 23/10/2026. Qual desses você vai testar primeiro? Conta nos comentários! ⏱️ CAPÍTULOS E LINKS 0:00 Abertura 0:10 #15 HQTUI: painéis de terminal no estilo btop em 10 linguagens, sem dependências profullstack/hqtui 0:20 #14 Amagine3D: descreva o aparelho e as medidas e ganhe a caixa em 3D editável, em STEP, STL ou 3MF (6,3 mil estrelas) amagine-ai/Amagine3D 0:30 #13 slides-grab: o agente cria slides em HTML e você seleciona uma área para pedir o ajuste; exporta em PDF (1,2 mil estrelas) NomaDamas/slides-grab 0:40 #12 Snitch: monitor de rede em tempo real com firewall de saída: veja e bloqueie cada conexão aixisstudio/Snitch 0:50 #11 Glide: gravador de tela open source para macOS no estilo Screen Studio, com zoom automático nos cliques michaelshimeles/glide 1:00 #10 House Control: a sua casa em 3D na barra do Mac e no iPhone, controlando luzes e ar-condicionado 0xProbabillity/house-control 1:10 #9 Talorys: agente pessoal de IA que roda na sua conta da Cloudflare, com memória, tarefas e lembretes (1,4 mil estrelas) rociiu/talorys 1:20 #8 Indra OCR: modelo de OCR minúsculo que roda na CPU, em mais de 80 idiomas e até letra de mão datalab-to/indra 1:30 #7 net-merge: usa Wi-Fi, cabo e celular ao mesmo tempo, somando a velocidade das conexões (1,8 mil estrelas) rohit267/net-merge 1:40 #6 opendesk: central de atendimento open source com e-mail, chat do site e base de ajuda numa caixa só useopendesk/opendesk 1:50 #5 editonny: skill para Claude Code e Codex que edita vídeo por conversa: corta pausas, legenda e arruma o áudio soumatheusgomes/editonny 2:00 #4 Desigma: alternativa gratuita e offline ao Figma, feita em Rust, que importa arquivos do Figma deepfounder-ai/desigma 2:10 #3 Sill: qualquer janela do Mac no iPhone ou iPad, com toque, teclado e Apple Pencil, sem conta nem servidor (3,9 mil estrelas) Saffsanity/sill 2:20 #2 cleanyourtv: tira anúncios e apps de fábrica da TV pelo Wi-Fi, de forma reversível (24,8 mil estrelas) Gathin23/cleanyourtv 2:30 Oferecimento Hallen Tech 2:44 #1 Filee: conversor de arquivos offline: segure uma tecla, arraste e converta entre 255 formatos (10,3 mil estrelas) KnifeLemon/Filee 2:54 Encerramento 🧡 Oferecimento: Hallen Tech, liderança de tecnologia sob demanda, software, cloud e segurança para a sua empresa. Site: hallentech.com E-mail: contato@hallentech.com Instagram: instagram.com LinkedIn da Hallen Tech: linkedin.com LinkedIn do Eddwan: linkedin.com Se curtiu, deixa o like, segue o canal e ativa as notificações para a próxima lista. #opensource #github #programacao #ferramentas

    294 likes · 6 comments · 9,142 views
  7. 15x Tesseract's speed, same machine and pages! indra's code is open source. No GPU needed. Weights limit commercial use. Source: datalab-to/indra What are you still running your OCR through? #OCR #OpenSource

    2 likes
  8. Zenn · · @mskbhd

    CPUだけのIndra OCRを日本語で測る:遅さの正体は出力層 Datalab が出した OCR「Indra OCR」は、認識モデルが約 1M パラメータで、ONNX Runtime を使って CPU だけで動きます。PyTorch も GPU も要りません。公称速度は 4 コアで 6.2 ページ/秒、32 コアで 44 ページ/秒です(発表時のツイートでは 7.3 / 49.4)。 日本語にも対応しているので、手元の非力な Linux 機で日本語の精度と速度を測りました。結論を先に書きます。 日本語のきれいな横書き印刷物(200dpi)は 文字一致率 99.7%。Tesseract(98.5%)より良い 速度は 4 コアで 0.44 ページ/秒。公称より一桁遅い。このうち日本語が原因の分は 2.4 倍で、行検出ではなく、日本語用認識器の出力層(11,750 クラス)が原因だった 出力層を JIS 第1・第2水準に絞ったら、精度はそのままで 1.37 倍速く、メモリは 1.9GB 減った 100dpi のスキャンで点ノイズがあると 39% まで崩れる。3x3 のメディアンフィルタを1回かければ 99% に戻る 縦書きの画像は 57〜60% で、実用には届かない(Tesseract の jpn_vert は 98%) 環境 CPU: Intel Celeron N5100(4 コア 4 スレッド、1.1GHz)。AVX も AVX2 も無い(SSE4.2 まで) RAM 14GB、Ubuntu、Python 3.12 indra-ocr 1.1.2(モデルは Hugging Face の datalab-to/indra-ocr v1.1.0)、onnxruntime 1.31.0 比較対象: Tesseract 5.5.1(tesserocr の wheel、tessdata の jpn / jpn_vert / eng)、RapidOCR 3.10.0(PP-OCRv5 mobile) 公式の数字は AMD EPYC 9004(Genoa、AVX-512 あり)で、1 コアに 1 ワーカー、モデル読み込みとウォームアップの 1 ページは計時に含めない条件です。この記事のマシンとは CPU が大きく違うので、絶対値の比較は参考程度にしてください。 pip install indra-ocr indra-ocr page.pdf --mode ocr --format text # テキスト層を使わず OCR だけ テストデータ 条件をそろえるため、英語と日本語で同じレイアウトのページを合成しました。 A4・200dpi、本文 29px(10.5pt 相当)、1 ページ 30 行で、行幅いっぱいに文字を詰める 日本語: 青空文庫『こころ』(Noto Serif CJK JP)で 1 ページ 1,380 字 英語: Project Gutenberg『Pride and Prejudice』(Liberation Serif)で 1 ページ 3,384 字 各 20 ページ。テキスト層の無い画像 PDF にした ほかに縦書き 2 ページ、ルビ付き 1 ページ、罫線付きの表 1 ページを作りました。実在の文書としては、総務省の令和6年版情報通信白書から 1 節(10 ページ)を使っています。 採点は、空白を除いて NFKC で正規化したあと「1 − 編集距離 ÷ 正解の文字数」で計算しました。 速度:日本語は英語の 2.2 倍遅い 1 スレッドで 1 ページずつ処理し、ONNX の各セッションにかかった時間を横取りして計りました。 英語(3,384字) 日本語(1,380字) 認識(rec / rec_cjk) 2,034 ms 5,095 ms 行検出(det) 146 ms 153 ms 文字種の分類(script) 87 ms 80 ms 向きの判定(orient) 45 ms 46 ms 読み順(order) 6 ms 5 ms 言語モデルのビームサーチ 0 ms 1 ms 1ページの合計 2.46 s 5.52 s 行検出の時間は英語も日本語も同じです。差は全部「認識」に出ています。日本語は文字数が英語の 4 割なのに、時間は 2.2 倍かかっています。 4 コアで 20 ページの PDF を CLI に通すと(モデル読み込み込みの壁時計時間)、次のとおりでした。 1コア 4コア ページ/秒(4コア) 合計メモリのピーク 英語 20 ページ 51.8 s 18.9 s 1.06 2.6 GB 日本語 20 ページ 114.8 s 45.6 s 0.44 6.3 GB 公称 6.2 ページ/秒と比べると、英語でもまず 6 倍ほど遅く、日本語ではさらに 2.4 倍遅くなります。前者は CPU(AVX の有無)、ページの密度、計時の条件が混ざった差で、このマシンだけでは切り分けられません。後者の 2.4 倍が、日本語であることによる差です。 ちなみに、1 ページを 4 スレッドで処理させると 1 スレッドより遅くなりました(英語 3.6〜4.5 秒)。CLI の既定のように 1 コアに 1 ワーカーを割り当てるのが、この CPU では正解です。 遅さの正体:日本語用認識器の出力層 ONNX ファイルを開いて、パラメータを数えました。 モデル パラメータ 出力層(rec.head.weight) 語彙 rec.onnx(ラテン文字ほか) 1.25M 1698×128 = 0.22M 1,697 rec_cjk.onnx(中日韓) 2.54M 11750×128 = 1.50M 11,749 「1M パラメータ」はラテン文字用の認識器の話でした。日本語を読む rec_cjk.onnx は 2.54M あり、その 59% が CTC の出力層です。本体の畳み込みブロックは同じ構造で、語彙の数だけが違います。 出力層が本当に遅さの原因なのかを確かめるため、実ページで rec_cjk に渡る入力テンソル(30 行 × 32 × 1088)を横取りし、出力層の行数だけを切り詰めたモデルで同じ入力を処理させました。精度は無視して、速度だけを見ています。 出力層のクラス数 1ページ分の認識時間 11,750(元のまま) 4,547 ms 6,000 2,751 ms 1,698(英語と同じ) 1,505 ms 200 1,102 ms クラス数にほぼ比例して時間が減りました。日本語の認識時間の約 4 分の 3 は出力層でかかっています。英語の認識が 1.9 秒かかるのは別の理由で、ラテン文字用の認識器は行の切り出しを縦 3 倍(96px)で読んでいるためです。 精度:きれいな印刷物なら 99.7% 文字一致率 1ページの時間(1スレッド) Indra 英語 20 ページ 99.99%(56,128 字中 7 字) 2.4 s Indra 日本語 20 ページ 99.74%(27,637 字中 72 字) 5.5 s Tesseract jpn 日本語 20 ページ 98.50% 6.4 s Tesseract eng 英語 20 ページ 99.98% 5.5 s RapidOCR 日本語 5 ページ 99.87%(Indra は同じ 5 ページで 99.57%) 38.7 s Indra の日本語の誤りは「拵」「蔑」「戟」「憚」「燻」のような画数の多い漢字と、「ぽ→ぼ」のような半濁点がほとんどです。語彙に字が無いせいではありません。rec_cjk の語彙には JIS 第1・第2水準の漢字がすべて入っており、テキストに出てくる 1,203 種類の文字もすべて含まれていました。 Tesseract の誤りの大半は「「」を「`」と読む系統的なもの(229 回)でした。 注目したいのは速度の比較です。この CPU では Indra と Tesseract の日本語の速度差は 1.2 倍しかありません(公称は 15 倍)。AVX の無い CPU では、Indra の売りである速度の優位はかなり縮みます。精度では勝っています。RapidOCR は精度が一番良いものの、1 ページに 39 秒かかりました。 ! Tesseract を tesserocr から使い、PIL で保存した PNG を渡すと、解像度情報が無いため 70dpi として扱われ、日本語の精度が 53% まで落ちました。SetSourceResolution(200) を呼んで解像度を指定すると直ります。上の数字はすべて指定済みのものです。 実在の電子 PDF:情報通信白書 令和6年版 情報通信白書の第I部第1章第2節(10 ページ)を使いました。本文、棒グラフ、表、脚注、縦書きの章タブが混ざった、典型的な官公庁の PDF です。正解には pdftotext で取り出したテキスト層を使い、読み順に依存しない文字単位の F1 と、テキスト層の文字をどれだけ拾えたか(再現率)で評価しました。 1ページ 文字F1 再現率 Indra auto(テキスト層+OCR) 1.42 s 97.9% 99.5% Indra OCR のみ 4.56 s 97.5% 99.0% Tesseract jpn(200dpi 画像) 4.77 s 92.9% 95.2% 適合率が 96% 前後にとどまるのは、グラフの軸ラベルなど、テキスト層には無いが画像には見えている文字を OCR が読むためです。 面白かったのは、この PDF のテキスト層に画面には表示されない「令令令…」という文字列が 210 字も埋め込まれていたことです。Indra の auto モードは 3 ページでこれに気づき、19% of text runs have no ink(テキストの 19% に対応するインクが無い)と判断して、そのページだけ OCR に切り替えていました。正解のテキストからは、この文字列を除いて採点しています。 スキャン劣化:100dpi+点ノイズで崩れ、メディアンで戻る 合成ページを 5 段階で劣化させました。 段階 内容 Indra 日本語 Indra 英語 Tess 日本語 L1 JPEG q75+地色ムラ 99.5% 100% 98.5% L2 傾き1度+ぼかし+点ノイズ0.2% 99.5% 99.99% 98.7% L3 150dpi+傾き1度+ぼかし+点ノイズ0.5% 99.1% 99.8% 95.0% L4 100dpi+傾き1.5度+ぼかし+点ノイズ1% 39.0% 96.4% 33.7% L5 75dpi+傾き2.5度+ぼかし+点ノイズ2% 0% 39.4% 0.4% L4 で日本語だけが崩れました。原因を探るため、劣化の要因を 1 つずつ加えて測りました(日本語 3 ページ)。 条件 文字一致率 100dpi に縮小しただけ 99.52% 100dpi+傾き1.5度 99.59% 100dpi+ぼかし 99.49% 100dpi+JPEG q50 99.52% 100dpi+点ノイズ1% 78.91% 200dpi+ぼかし+点ノイズ1%+JPEG 99.18% 解像度を 100dpi(字の高さ約 14px)に下げても、傾けても、単独では精度が落ちません。効いているのは点ノイズです。200dpi なら同じ量のノイズがあっても平気ですが、100dpi だと点 1 つが漢字の線と同じ太さになり、崩れてしまいます。 Indra のパイプラインにはノイズ除去の処理がありません。そこで 3x3 のメディアンフィルタを 1 回かけてから渡してみました。 import numpy as np, indra_ocr from PIL import Image, ImageFilter conv = indra_ocr.load(threads=1, mode="ocr") im = Image.open("scan.png").convert("L").filter(ImageFilter.MedianFilter(3)) page = conv.ocr(np.array(im)) 前処理なし メディアン 3x3 L4 日本語 38.99% 99.13% L4 英語 96.43% 98.98% L5 日本語 0% 64.24% L4 の日本語は 99% まで戻りました。75dpi 相当の L5 は、前処理をしても実用にはなりません。 ちなみに、信頼度が 0.5 未満の行は黙って空文字にされます(pipeline.MIN_CONF)。L4 では 33 行中 19 行が空でしたが、閾値を 0 にしても中身がゴミの行が出てくるだけで、精度は上がりませんでした。 縦書き・ルビ・表 ページ 結果 表(12行×5列) Markdown 出力の <table> が 60/60 セルすべて一致 ルビ付き 98.1%。ルビが b2<L や 166 のようなゴミ行として本文の間に混ざる 縦書き 2 ページ 57〜60%。同じ画像で Tesseract jpn_vert は 98〜99% 単純な罫線表は、数値・符号・カンマまで完璧でした。ただし --format text は列ごとの読み順で出力するので、表は Markdown で受け取るべきです。 縦書きは、ページを縦組みと正しく判定しているのに、手を掛けさせようとしても が 千寧わもヤようとして のように崩れます。読み順に依存しない文字 F1 でも 70% 前後なので、読み順の問題ではなく認識そのものの問題です。README の制限事項にも「縦書きのスキャンは横書きより読めない」とあります。今回の縦書き画像は 1 字ずつ配置して合成したもので、実物の縦組みでは結果が変わるかもしれません(未検証)。 おまけ:出力層を日本語用に削る 出力層が重いと分かったので、日本語の文書で使わないクラスを削った版を作りました。 残すもの: CTC の blank、漢字以外の文字(かな・記号・英数字)、JIS 第1・第2水準の漢字 削るもの: それ以外の漢字(簡体字・繁体字の多く)とハングル 方法: rec_cjk.onnx の rec.head.weight と rec.head.bias から該当する行を抜き出し、meta.json の vocab_cjk を差し替える。本体の重みには手を付けない lm_cjk.npz(言語モデル)は語彙の番号に依存するので外す。外すだけなら精度も速度も変わらないことを確認済み idx = [0] + [i + 1 for i, c in enumerate(chars) if keep(c)] # 0 は blank for t in model.graph.initializer: if t.name in ("rec.head.weight", "rec.head.bias"): a = numpy_helper.to_array(t)[idx] t.CopyFrom(numpy_helper.from_array(np.ascontiguousarray(a), t.name)) クラス数は 11,749 から 7,675 になりました。 元のモデル JIS に絞った版 合成日本語 20 ページ(1スレッド) 5.60 s/ページ、99.73% 4.10 s/ページ、99.73% 白書 10 ページ(OCR のみ) 4.32 s/ページ、F1 97.25% 3.20 s/ページ、F1 97.31% 4 コアで 20 ページ 46.3 s、合計メモリ 6.3GB 32.0 s、4.4GB 精度は変わらず、1.37 倍速くなり、メモリは 1.9GB 減りました。メモリが減るのは、「30 行 × 約 270 ステップ × クラス数」の出力テンソルが小さくなるためです。 代わりに、JIS 外の漢字は読めなくなります。また、モデルの重みは修正版 OpenRAIL-M ライセンスです(研究・個人・資金調達額か売上が 2,000 万ドル未満のスタートアップは無料、Datalab の API と競合する用途は不可)。削った版も重みの派生物なので、同じ条件がかかると考えるべきです。この記事では作り方だけを紹介し、モデルファイルは配布しません。コードは Apache 2.0 です。 まとめ:日本語で使うならこの条件まで 横書きの印刷物を 150dpi 以上でスキャンしたもの、または画像化したもの: そのまま使える(99%台)。点ノイズが多いならメディアンフィルタを 1 回かける 電子 PDF: auto モードで 1 ページ 1.4 秒、テキスト層の 99.5% を回収できる。怪しいテキスト層があれば自動で OCR に切り替える 単純な表: Markdown 出力で受け取れば正確 ルビ付き: 本文は読めるが、ルビのゴミ行を後処理で落とす必要がある 縦書きの画像、75dpi 以下: 使えない 速度: AVX の無い 4 コア CPU では、公称 6.2 ページ/秒に対して英語で約 1/6、日本語で約 1/14。Tesseract との差もほとんど無くなる。日本語で遅くなる原因は出力層で、語彙を絞れば 1.4 倍取り戻せる 「1M パラメータで CPU だけ」という触れ込みはラテン文字用の認識器の話で、日本語を読むのは 2.5M のモデルです。しかも、その 6 割は文字の種類を当てるための出力層でした。文字の種類が多い言語ほど、小さいモデルでも出力層が支配的になります。数字を見るときは、どの言語の、どの認識器の話なのかを確かめる必要があります。

    1 like
  9. indra OCR でゲーム画面のOCRを試してみた datalab-to/indra: Fast CPU OCR datalab-to/indra ツールに組み込んで200ms程度でOCR出来るのは嬉しいが、精度が今ひとつ。ゲーム翻訳に使うにはかなり工夫が必要そう🤔 この画像で試したけど、Humanの部分が分割されたり、mがnと誤認・・・ t.co

    4 likes · 257 views
  10. Get it here - huggingface.co Code at datalab-to/indra Read more at datalab.to

    29 likes · 3 reposts · 1,361 views

Latest stargazers

The last 10 distinct accounts we observed this year.

Most active participants

PR, issue, comment & review events in the past year.

Packages

Scan pending.

Live mentions badge

Show how many posts mention your project in the last 30 days.

Live mentions · last 30 days
datalab-to/indra mentions in the last 30 days