/ Модель

Характеристики

Лицензия
Apache 2.0
Архитектура
pp_ocrv6_small_rec · dense
Опубликована
29 сен 2026

Qota-OCR

Описание изображенийИзображение → текст6 профессий

Qota-OCR распознаёт печатный текст в обрезанных строках документов, в том числе смешанный корейский, китайский, японский и английский.

379скачиваний за 30 дней5лайковвеса обновлены29 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Qota-OCR — модель распознавания текста в строках, разработанная на основе PP-OCRv6_small_rec с добавлением корейского языка. Она предназначена для печатных документов, где корейский смешан с китайским, японским или английским, а также для корейского вертикального текста. Модель принимает обрезанную строку изображения, использует архитектуру PP-LCNetV4 со SVTR-энкодером и CTC-головой и содержит 6,7 млн параметров. Выходной словарь включает 30 244 символа и пробел. Доступны веса safetensors и варианты ONNX в float32, FP16, INT8 и UINT8; лицензия — Apache-2.0.

Модель показывает высокие результаты на SynthDoG для корейского, японского, английского и китайского текста. Она распознаёт строки после детектора текста, поэтому сама по себе не выполняет поиск и выделение строк на странице. Качество на чеках, фотографиях, рукописном тексте и очень длинных строках отдельно не измерялось; модель слабо распознаёт математические символы и греческие буквы.

Сценарии применения

  • распознавание корейского текста в государственных документах и формах
  • чтение строк со смешанным корейским, китайским, японским и английским текстом
  • распознавание вертикального корейского текста
  • извлечение текста из строк книг и отчётов после детектора текста

Ограничения

Модель распознаёт обрезанные строки и требует предварительного детектора текста. Качество на чеках, фотографиях, рукописи и длинных строках отдельно не измерено; математические символы и греческие буквы распознаются слабо.

Для каких профессий подходит6

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Qota-OCR

A text-line recognizer for documents where Korean is mixed with Chinese, Japanese and English on the same line, such as 한국어(中文) or 日本語(한국어). It also reads Korean vertical text. It was trained from PP-OCRv6_small_rec with Korean added.

Highlights

  • One model reads Korean, Japanese, English and Chinese. Character F1 on SynthDoG is 0.96–0.99 in all four languages.
  • It also reads scanned Korean public documents, and Korean vertical text with word spacing.
  • The weights come as safetensors for transformers (PyTorch) and as ONNX in float32, FP16, INT8 and UINT8, which run with onnxruntime alone.

Model details

  • Task: text-line recognition with CTC decoding.
  • Architecture: the same as PP-OCRv6_small_rec. PP-LCNetV4 backbone, SVTR encoder (2 blocks, width 120) and CTC head.
  • Output: 30,244 characters plus space. That is the 18,708 characters of the PP-OCRv6 dictionary plus 11,536 characters (Hangul and others) that only the korean_PP-OCRv5_mobile_rec dictionary has.
  • Parameters: 6.7M. model.safetensors is 26.8 MB and onnx/model.onnx 26.7 MB (both float32). The FP16, INT8 and UINT8 ONNX are 13.4–15.4 MB.
  • Input: one cropped line, resized to height 48 with its aspect ratio kept (width up to 3,200).

Intended use

  • Printed documents where Korean is mixed with Chinese, Japanese or English: public documents, forms, books and reports, including Korean vertical text.
  • It reads line crops, so use it after a text detector.
  • Not measured: receipts, photos, handwriting and long lines. It is weak on math symbols and Greek letters, so it is not a good fit for formulas.

Performance

All numbers were measured directly. Every model except Nemotron OCR v2 used the same detector, PP-OCRv6_small_det, and only the recognizer was changed. Nemotron OCR v2 ran its own detection and recognition.

SynthDoG — Korean, Japanese, English, Chinese

Character F1, order-independent, page_avg (higher = better).

ModelKoreanJapaneseEnglishChinese
Qota-OCR0.9760.9770.9910.964
Nemotron OCR v2 (multilingual)0.9450.9590.9530.943
PP-OCRv6_small_rec0.1070.9710.9920.973
PP-OCRv5_server_rec0.1180.9260.9860.960
korean_PP-OCRv5_mobile_rec0.9620.1170.9890.179

OmniDocBench — test split

NED, sample_avg (lower = better). Block counts are in parentheses.

ModelEnglish (7,837)Chinese (9,374)English–Chinese mixed (1,458)Traditional Chinese (83)
Qota-OCR0.0250.0480.0680.091
PP-OCRv6_small_rec0.0220.0400.0350.034
PP-OCRv5_server_rec0.0280.0450.0580.055
korean_PP-OCRv5_mobile_rec0.0310.8030.3760.885

Usage

transformers (PyTorch)

pip install "transformers>=5.17" torch torchvision pillow opencv-python-headless huggingface_hub
import torch
from huggingface_hub import hf_hub_download
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForObjectDetection, AutoModelForTextRecognition

det_proc = AutoImageProcessor.from_pretrained("PaddlePaddle/PP-OCRv6_small_det_safetensors")  # text-line detector
det = AutoModelForObjectDetection.from_pretrained("PaddlePaddle/PP-OCRv6_small_det_safetensors").eval()
proc = AutoImageProcessor.from_pretrained("atonlee/Qota-OCR")
model = AutoModelForTextRecognition.from_pretrained("atonlee/Qota-OCR").eval()

page = Image.open(hf_hub_download("atonlee/Qota-OCR", "examples/document.png")).convert("RGB")
with torch.no_grad():
    inputs = det_proc(images=page, return_tensors="pt")
    boxes = det_proc.post_process_object_detection(det(pixel_values=inputs["pixel_values"]), target_sizes=inputs["target_sizes"],
                                                   threshold=0.2, box_threshold=0.45, unclip_ratio=1.4)[0]["boxes"].tolist()
    for box in sorted(boxes, key=lambda b: (round(b[0][1] / 10), b[0][0])):  # 4 corners per line, top to bottom
        xs, ys = [x for x, _ in box], [y for _, y in box]
        line = page.crop((min(xs), min(ys), max(xs), max(ys)))
        if line.height >= 1.5 * line.width:  # vertical text
            line = line.rotate(90, expand=True)
        print(proc.post_process_text_recognition(model(**proc(images=line, return_tensors="pt")))[0]["text"])
시립 문화재단 공고 제2026-37호
「전통 한지(韓紙) 공예 특별전」 개최를 아래와 같이 알립니다.
1. 기간: 2026년 10월 12일(월)부터 10월 25일(일)까지, 10:00-18:00
2. 장소: 시립미술관 2층 제3전시실 (Gallery 3, 2F)
3. 관람료: 성인 3,000원, 청소년 1,500원, 65세 이상 무료
4. 해설: 매일 14:00 한국어·English, 16:00 日本語·中文
展示の詳しいご案内は受付でお配りしています。
请在入口处领取中文导览手册。
5. 문의: 전시팀 02-000-0000, exhibit@example.org
2026년 9월 29일
시립 문화재단 이사장

ONNX

ONNX models are included in onnx/.

FileSizeSame text as float32 (29 lines)
onnx/model.onnx (float32)26.7 MB29
onnx/model_fp16.onnx13.4 MB28
onnx/model_int8.onnx15.3 MB27
onnx/model_uint8.onnx15.4 MB26
  • FP16 keeps weights and computation in FP16. INT8 and UINT8 quantize the MatMul layers that have weights and keep the convolutions in float32.
  • Compared on 29 lines, not on the full test sets above.
  • Input x is one cropped line in BGR, resized to height 48 with its aspect ratio kept (width 320–3,200, padded with 0) and scaled to [-1, 1]. The output is per-position character probabilities; decode them with CTC using character_list in preprocessor_config.json.

Input and behavior

  • Rotate tall lines (height/width ≥ 1.5) 90 degrees counterclockwise before recognition. This is how vertical text is read.
  • Lines longer than 25 characters are read too, but were not measured separately.

Data attribution

This model used datasets from The Open AI Dataset Project (AI-Hub, S. Korea). All data information can be accessed through AI-Hub (www.aihub.or.kr).

License

Apache-2.0

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Для архитектуры pp_ocrv6_small_rec нет загрузчика под задачу ocr.

Ревизия весов
b3e644a

0 моделей