<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/a-34-5m-ocr-model-just-beat-a-235b-giant-fanktarr7" -->

---
title: A 34.5M OCR Model Just Beat a 235B Giant | daily.dev
description: PaddlePaddle released PP-OCRv6, a lightweight OCR model series with tiny (1.5M), small (7.7M), and medium (34.5M) parameter variants. The medium model achieves...
canonical: https://daily.dev/posts/a-34-5m-ocr-model-just-beat-a-235b-giant-fanktarr7
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: A 34.5M OCR Model Just Beat a 235B Giant | daily.dev
og:description: PaddlePaddle released PP-OCRv6, a lightweight OCR model series with tiny (1.5M), small (7.7M), and medium (34.5M) parameter variants. The medium model achieves...
og:url: https://daily.dev/posts/a-34-5m-ocr-model-just-beat-a-235b-giant-fanktarr7
og:image: https://api.daily.dev/og/posts/FankTaRR7.png
og:image:alt: A 34.5M OCR Model Just Beat a 235B Giant
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# A 34.5M OCR Model Just Beat a 235B Giant

**[bytefer](https://daily.dev/sources/fx5kjjichwjnx5totxmtp)** · [@bytefer](https://daily.dev/bytefer) · 3 min read · 1 upvotes · 0 comments

## Summary

PaddlePaddle released PP-OCRv6, a lightweight OCR model series with tiny (1.5M), small (7.7M), and medium (34.5M) parameter variants. The medium model achieves 86.2% detection Hmean and 83.2% recognition accuracy, outperforming large VLMs like Qwen3-VL-235B, Gemini-3.1-Pro, and GPT-5.5 on OCR benchmarks. It supports 50 languages, handles complex scenarios (rotated text, dense text, low resolution), and runs via Paddle Inference, ONNX Runtime, and Hugging Face Transformers. A JavaScript SDK (ppu-paddle-ocr) enables local deployment on Node.js, Bun, Deno, browser, and React Native with code examples provided.

## Content

The PaddlePaddle team recently released its latest OCR model series, **PP-OCRv6**, which includes three versions: tiny (1.5M parameters), small (7.7M parameters), and medium (34.5M parameters). In internal multi-scenario OCR benchmark tests, the PP-OCRv6_medium model achieved a detection Hmean of 86.2% and a recognition accuracy of 83.2%. It outperformed several large vision-language models — such as Qwen3-VL-235B, Gemini-3.1-Pro, and GPT-5.5 — on the corresponding OCR metrics.

![image.png](https://media.daily.dev/image/upload/s--3WAEcdFA--/f_auto/v1784002995/ugc/content_dd9eb8dd-cd55-4a84-926c-63e560192f51?_a=BAMAMicg0)

![image.png](https://media.daily.dev/image/upload/s--KpRixE1S--/f_auto/v1784003007/ugc/content_9c58b529-39bc-41d9-93f3-95ce63b4ff00?_a=BAMAMicg0)

#### PP-OCRv6 Features

- Supports 50 languages, including Simplified Chinese, Traditional Chinese, English, Japanese, and 46 Latin-script languages.
- Supports high-precision text detection and recognition, capable of handling scenarios involving complex backgrounds, small text, dense text, rotated text, and low-resolution text.
- Lightweight and cost-effective deployment; compared with large vision-language models, PP-OCRv6 features fewer parameters, lower inference costs, and faster response speeds.
- Supports multiple inference frameworks, including **Paddle Inference, ONNX Runtime, and Hugging Face Transformers**.

#### PP-OCRv6 Online Demo

Visit [PP-OCRv6 Online Demo ](https://batchtool.com/tools/ocr) in your browser, select a local image, choose a model from the configuration panel on the right, and click the “Recognize” button to experience the document parsing capabilities of the PP-OCRv6 model. The corresponding ONNX model will be downloaded automatically upon first use.

![da602a8f-7e0c-4e76-9651-58fe9d440f85.png](https://media.daily.dev/image/upload/s--P6p3Wzlo--/f_auto/v1784003255/ugc/content_dbb1ae88-105a-451b-b53b-959ed618b665?_a=BAMAMicg0)

You can also upload images containing tables; once successfully recognized, they can be exported in various formats such as **HTML, XLSX, CSV, and Markdown**.

#### Local Deployment

The official PP-OCRv6 documentation provides detailed instructions on running the model using PaddleOCR and Transformer; here, I will explain how to deploy the PP-OCRv6 model locally on macOS using the **ppu-paddle-ocr** SDK. This SDK supports a wide range of platforms, including Node.js, Bun, Deno, the browser, and React Native.

1. Create a  project

```
mkdir paddleocr-v6
cd paddleocr-v6
npm init -y
```

1. Install dependencies

```
pnpm add ppu-paddle-ocr onnxruntime-web # Browser
pnpm add ppu-paddle-ocr onnxruntime-node # Node or Bun
```

1. Run the PP-OCRv6 model

```
import { readFileSync } from "node:fs";
import { PaddleOcrService } from "ppu-paddle-ocr";

const service = new PaddleOcrService({
  debugging: {
    debug: false,
    verbose: true,
  },
});

async function main() {
  await service.initialize();

  try {
    const image = readFileSync("./assets/pp-ocrv6-models.jpg");
    const imageBuffer = image.buffer.slice(
      image.byteOffset,
      image.byteOffset + image.byteLength,
    );

    const result = await service.recognize(imageBuffer);
    console.log(result.text);
  } finally {
    await service.destroy();
  }
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});
```

The examples above demonstrate how to perform text recognition in Node.js or Bun. If you wish to run text recognition in a browser environment, you need to use the `PaddleOcrService` exported by `ppu-paddle-ocr/web`.

```
import { PaddleOcrService } from "ppu-paddle-ocr/web";

const service = new PaddleOcrService();
await service.initialize();

const file = document.getElementById("upload").files[0];

const img = new Image();
img.src = URL.createObjectURL(file);
await new Promise((r) => (img.onload = r));

const canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext("2d").drawImage(img, 0, 0);

const result = await service.recognize(canvas);
console.log(result.text);
```

In addition to supporting the latest PP-OCRv6 model, the ppu-paddle-ocr SDK also supports earlier PaddleOCR models, such as v5 and v4.

## Similar posts on daily.dev

- [PP-OCRv6 on Hugging Face: 50-Language OCR from 1.5M to 34.5M Parameters](https://daily.dev/posts/pp-ocrv6-on-hugging-face-50-language-ocr-from-1-5m-to-34-5m-parameters-b5jaxussj) · Hugging Face · 0 upvotes · 0 comments
- [Baidu’s PP-OCRv5 Released on Hugging Face, Outperforming VLMs in OCR Benchmarks](https://daily.dev/posts/baidu-s-pp-ocrv5-released-on-hugging-face-outperforming-vlms-in-ocr-benchmarks-ydw1ut7js) · InfoQ · 1 upvotes · 0 comments
- [OCR Showdown — Evaluating Three OCR Models](https://daily.dev/posts/ocr-showdown-evaluating-three-ocr-models-ch9qm0xde) · Medium · 0 upvotes · 0 comments

---

Tags: [#machine-learning](https://daily.dev/tags/machine-learning), [#nodejs](https://daily.dev/tags/nodejs), [#vlm](https://daily.dev/tags/vlm)

[View this post on daily.dev](https://daily.dev/posts/a-34-5m-ocr-model-just-beat-a-235b-giant-fanktarr7)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/a-34-5m-ocr-model-just-beat-a-235b-giant-fanktarr7","headline":"A 34.5M OCR Model Just Beat a 235B Giant","text":"PaddlePaddle released PP-OCRv6, a lightweight OCR model series with tiny (1.5M), small (7.7M), and medium (34.5M) parameter variants. The medium model achieves 86.2% detection Hmean and 83.2% recognition accuracy, outperforming large VLMs like Qwen3-VL-235B, Gemini-3.1-Pro, and GPT-5.5 on OCR benchmarks. It supports 50 languages, handles complex scenarios (rotated text, dense text, low resolution), and runs via Paddle Inference, ONNX Runtime, and Hugging Face Transformers. A JavaScript SDK (ppu-paddle-ocr) enables local deployment on Node.js, Bun, Deno, browser, and React Native with code examples provided.","url":"https://daily.dev/posts/a-34-5m-ocr-model-just-beat-a-235b-giant-fanktarr7","datePublished":"2026-07-14T04:31:19.052Z","dateModified":"2026-09-13T21:02:21.297Z","author":{"@type":"Person","name":"bytefer","url":"https://daily.dev/bytefer","image":"https://lh3.googleusercontent.com/a-/AFdZucqlbOI8UzgORH9IT5mtLClCpRPYl-bBI9zaDVVd=s100","description":"Focus on AI Agent and AI Automation.","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":2170}},"image":"https://media.daily.dev/image/upload/s--Uvk5Y4IN--/f_auto/v1784003480/posts/FankTaRR7?_a=BAMAMicg0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/fx5kjjichwjnx5totxmtp","name":"bytefer"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"bytefer","item":"https://daily.dev/sources/fx5kjjichwjnx5totxmtp"},{"@type":"ListItem","position":3,"name":"A 34.5M OCR Model Just Beat a 235B Giant"}]}
```

