Extract Printed Korean, Japanese, Chinese or English Text from Photos
Extracts printed text from any image (photos, menus, signs, ID cards, documents, screenshots). Pick one recognition language per node with the lang parameter — Korean (default), Japanese, Chinese or English. Printed text only.
What it does
PaddleOCR reads printed text from images and extracts it as searchable, copyable text. Point it at any photo with text — a menu, sign, ID card, document, screenshot — and it automatically finds the text and converts it to digital characters.
It recognizes one language at a time, not all four at once. Set the lang parameter to the script in your image before you run it; the default is Korean. Fast on CPU, no GPU required, lightweight enough for mobile and edge devices. 92-95% accuracy on standard printed documents.
Not the right model for: handwriting, vertical Japanese text, tables, or layout-aware extraction. See Choosing an OCR model below.
Problem it solves
Read menus & signs | Extract text from menus, street signs, advertisements |
Digitize documents | Convert ID cards, invoices, forms, contracts to searchable text |
Translate text | Extract text to send for translation (no manual retyping needed) |
Screenshot text extraction | Copy text from screenshots, videos, or images |
Document processing | Batch process hundreds of documents automatically |
Input/Output
- Input: Any image containing printed text
- Format: JPG, PNG, WEBP, AVIF
- Resolution: Any size (optimized for 800×1200 to 2048×2048)
- Content: Photos, menus, signs, documents, screenshots, IDs, forms
- Text type: Printed text only — handwriting is not supported for any language
- Output: Extracted text, plus per-line region data
- Text content: the recognized characters in the language you selected
- Region Data: JSON — one record per detected line with its text, recognition score, 4-point polygon, and bounding box. Connect this when you need coordinates (masking, cropping, redaction) rather than just the text.
Parameters
lang | Recognition language for this node. Printed text only for every value. |
Korean (default) | 한국어 / 한글 — Hangul plus alphanumerics, using the Korean-tuned recognizer |
Japanese | 일본어 — kanji and kana plus alphanumerics |
Chinese | 중국어 — Chinese plus alphanumerics |
English | 영어 — Latin letters and digits only. It will not read Hangul, Japanese or Chinese |
Japanese and Chinese share PaddleOCR's multilingual server recognizer, so the two values behave identically.
Set this to match the script in your image. Running a Korean document through English, or the reverse, returns little or nothing — a wrong lang is the most common cause of an empty result.
Choosing an OCR model
Your input | Use |
Printed Korean, Japanese, Chinese or English — high volume, speed matters | PaddleOCR |
Japanese documents with vertical text, tables, or formulas | Sarashina2.2-OCR |
Full-page layout understanding, tables, general multi-language documents | GLM-OCR |
Handwriting | DeepSeek OCR |
Performance
- Accuracy by Text Type:
- Printed text: 92-95% accuracy (excellent)
- Clear, clean documents: 95%+ accuracy
- Poor quality/blurry images: 70-85% accuracy
- Mixed-language images: reads whatever matches the selected
lang; text in the other scripts is skipped
- Real-World Scenarios:
- Restaurant menus: Excellent (printed, clear text)
- Street signs: Excellent (large, printed text)
- ID cards/documents: Excellent (official, standard format)
- Screenshots: Very good (digital text, crisp)
- Old/faded documents: Fair (may need post-processing)
- Blurry photos: Fair (depends on blur severity)
- Handwritten forms: Not supported — use DeepSeek OCR
Technical Details
Architecture | PP-OCRv5 |
Key Components | • Text Detection (DBNet): 3.6M parameters, outputs text bounding boxes via differentiable binarization
• Text Recognition (SVTR): 12M parameters, spatial vision transformer that decodes characters
• Orientation Classifier: 1.4M parameters (PP-LCNet), corrects rotated text |
Inference Pipeline | Detect text regions → Extract text lines → Classify orientation → Recognize characters → Map to image coordinates |
Training | • Framework: PaddlePaddle
• Optimizer: SGD with momentum + warmup/cosine decay
• Batch size: 256 (distributed)
• Data augmentation: RandAugment, elastic deformation |
Framework | • PaddlePaddle framework
• No GPU required — runs on CPU, which is what makes it cheap at batch scale |
Compliance & Provenance
Provider | Open-source |
Provider type | Specialized |
License | Apache 2.0 |
EU AI Act risk class | Minimal Risk |
Art. 50 transparency | Not applicable |
Region availability | Available globally |
Training data summary | Pending — provider has not yet published per Art. 53(d) |
For more on how we classify models and mark outputs, see our AI Policy.
Model Source
- GitHub: https://github.com/PaddlePaddle/PaddleOCR
- Paper: "PaddleOCR: A Practical Ultra Lightweight OCR System" (Baidu Research)
- License: apache-2.0