Model reference · open weights
thai-trocr is an open-weight language model from openthaigpt. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | openthaigpt |
|---|---|
| Type | Language models |
| Task | Image→text |
| Parameters (lead) | 103M |
| Runs with | transformers |
| Released | 2024-09-29 |
| Popularity | 638 downloads / month |
| Licence | Open weights |
About
ThaiTrOCR is a fine-tuned version of the TrOCR base handwritten model, specifically crafted for Optical Character Recognition (OCR) in both Thai and English. This multilingual model adeptly processes handwritten text-line images in both languages, leveraging the TrOCR architecture, which combines a Vision Transformer encoder with an Electra-based text decoder. Designed to be compact and lightweight, ThaiTrOCR is optimized for efficient deployment in resource-constrained environments while achieving high accuracy in character recognition.
Here’s how to use this model in PyTorch:
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
import requests
# Load processor and model
processor = TrOCRProcessor.from_pretrained('openthaigpt/thai-trocr')
model = VisionEncoderDecoderModel.from_pretrained('openthaigpt/thai-trocr')
# Load an image
url = 'your_image_url_here'
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
# Process and generate text
pixel_values = processor(images=image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(generated_text)
This section details the performance comparison between the open-source ThaiTrOCR model and other widely-used OCR systems, namely EasyOCR and Tesseract. The table below highlights their respective performance across various document types based on the average Character Error Rate (CER).
| Document Type | ThaiTrOCR | EasyOCR | Tesseract |
|---|---|---|---|
| Handwritten | 0.190034 | 0.410738 | 1.032375 |
| PDF Document | 0.057597 | 0.085937 | 0.761595 |
| PDF Document (EN-TH) | 0.053968 | 0.308075 | 1.061107 |
| Real Document | 0.147440 | 0.293482 | 0.915707 |
| Scene Text | 0.134182 | 0.390583 | 2.408704 |
| Adjusted Mean | 0.123600 | 0.298474 | 1.269101 |
Disclaimer: The test dataset at https://huggingface.co/datasets/openthaigpt/thai-ocr-evaluation includes only 104 images, which may limit the generalizability of these results. We are increasing the number of the test dataset.
From the published model card. Full card on the HuggingFace links in the sidebar.
How it works
Using it via the API
Once AxForge deploys thai-trocr for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (thai-trocr below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"thai-trocr","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.