alakxender's picture
Update README.md
5607c4a verified
metadata
library_name: transformers
tags:
  - dhivehi
  - ocr
  - labels
license: mit
language:
  - dv
base_model:
  - microsoft/trocr-large-handwritten
pipeline_tag: image-to-text

TROCR Finetuned for Dhivehi Text Recognition

Model: microsoft/trocr-large-handwritten

  • dataset size: 10k samples
  • vocab size: 8k
  • language: Dhivehi

This model has been finetuned for recognizing Dhivehi handwritten text that closely resembles printed or standardized fonts. The model was trained on a specialized dataset of 10,000 samples with an 8,000 word vocabulary focused on this specific use case.

Key points:

  • Optimized for clean, standardized Dhivehi handwriting
  • May have reduced accuracy on irregular handwriting styles
  • Not recommended for general Dhivehi OCR tasks
  • Consider additional finetuning or alternative models for different applications

While the model achieves high accuracy on the use case it was trained on, it may not perform well on general Dhivehi text or other use cases. For different applications, further finetuning on relevant data or using an alternative model may be necessary.

Usage

from PIL import Image import torch from transformers import TrOCRProcessor, VisionEncoderDecoderModel

def load_model():
    model_dir = "alakxender/dv-trocr-large-handwritten-syn-10k"
    processor = TrOCRProcessor.from_pretrained(model_dir)
    model = VisionEncoderDecoderModel.from_pretrained(model_dir)
    device = "cuda" if torch.cuda.is_available() else "cpu"
    model = model.to(device)
    return model, processor, device

# load
model, processor, device = load_model()

# predict
image = Image.open("example.jpg")
inputs = processor(image, return_tensors="pt").to(device)
outputs = model.generate(**inputs, max_new_tokens=256)
predicted_text = processor.decode(outputs[0], skip_special_tokens=True)
print(predicted_text)

Evaluation Results

[
  {
    "file_name": "data/images/DV01-04/DV01-04_140.jpg",
    "predicted_text": "ޤާނޫނުގެ 42 ވަނަ މާއްދާގައި ލާޒިމްކުރާ މި ރިޕޯޓު ތައްޔާރުކޮށް ފޮނުވުމުގެ ޒިންމާއަކީ ޤާނޫނުން އިދާރާގެ އިންފޮމޭޝަން އޮފިސަރު ކުރައްވަންޖެހޭ ކަމެކެވެ .",
    "true_text": "ޤާނޫނުގެ 42 ވަނަ މާއްދާގައި ލާޒިމްކުރާ މި ރިޕޯޓު ތައްޔާރުކޮށް ފޮނުވުމުގެ ޒިންމާއަކީ ޤާނޫނުން އިދާރާގެ އިންފޮމޭޝަން އޮފިސަރު ކުރައްވަންޖެހޭ ކަމެކެވެ."
  },
  {
    "file_name": "data/images/DV01-01/DV01-01_163.jpg", 
    "predicted_text": "ކަމުގައިވާ އޯގާވެރި ކަމާއި އަރާރުންވާ ކަމެއް : ހުކުރު ޚުތުބާ ނޮވެމްބަރ 25 , 2021 ކޮވިޑް19 : މިއަދު ފައްސިވި ޢަދަދު 100 އިން ދަށް ނޮވެމްބަރ 21 , 2021 ށ .",
    "true_text": "ކަމުގައިވާ އޯގާވެރި ކަމާއި އަރާރުންވާ ކަމެއް: ހުކުރު ޚުތުބާ ނޮވެމްބަރ 25, 2021 ކޮވިޑް19: މިއަދު ފައްސިވި ޢަދަދު 100 އިން ދަށް ނޮވެމްބަރ 21, 2021 ށ."
  },
  {
    "file_name": "data/images/DV01-04/DV01-04_147.jpg",
    "predicted_text": ", ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް - ކުޅިވަރު ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް ސާއިފް ޝިޔާދު 1 , 2020 45 0 އިނގިރޭސި ޕްރިމިއަރ ލީގުގައި ކުޅުނު މެޗުތައް .",
    "true_text": ", ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް - ކުޅިވަރު ޗެލްސީ އަދި ސިޓީ މޮޅުވިއިރު ތާވަލުގެ އެއްވަނައަށް ލިވަޕޫލް ސާއިފް ޝިޔާދު 1, 2020 45 0 އިނގިރޭސި ޕްރިމިއަރ ލީގުގައި ކުޅުނު މެޗުތައް."
  },
  {
    "file_name": "data/images/DV01-10/DV01-10_126.jpg",
    "predicted_text": "ހިއްސާކޮށްލައްވާ ފަހުގެ ލިޔުންތައް އިހުގެ ލިޔުންތައް ފާހަގަކޮށްލެވޭ ބައެއް ލިޔުން މަޖިލީސް މެންބަރުންގެ މުސާރަ އިތުރަށް ބޮޑުކުރުމުގެ ދޮރު ބަންދުކުރަންޖެހޭ މަޖިލީހުގެ ޖަލްސާއެއް ނުބާއްވާތާ ދެމަސްވީއެވެ .",
    "true_text": "ހިއްސާކޮށްލައްވާ ފަހުގެ ލިޔުންތައް އިހުގެ ލިޔުންތައް ފާހަގަކޮށްލެވޭ ބައެއް ލިޔުން މަޖިލީސް މެންބަރުންގެ މުސާރަ އިތުރަށް ބޮޑުކުރުމުގެ ދޮރު ބަންދުކުރަންޖެހޭ މަޖިލީހުގެ ޖަލްސާއެއް ނުބާއްވާތާ ދެމަސްވީއެވެ."
  },
  {
    "file_name": "data/images/DV01-04/DV01-04_100.jpg",
    "predicted_text": "އެކަން ކަމަކީ ޤާނޫނު އަސާސީ އިން އެކަން ކަނޑައަޅާފައިވާ ގޮތަށް ވާ ހިނދު ރައްޔިތުން ތަމްސީލު ކުރުމުގެ ސިފަ އަށް އުނި އިތުރު ގެނައުމެއް ނެތެވެ .",
    "true_text": "އެކަން ކަމަކީ ޤާނޫނު އަސާސީ އިން އެކަން ކަނޑައަޅާފައިވާ ގޮތަށް ވާ ހިނދު ރައްޔިތުން ތަމްސީލު ކުރުމުގެ ސިފަ އަށް އުނި އިތުރު ގެނައުމެއް ނެތެވެ."
  },
  {
    "file_name": "data/images/DV01-04/DV01-04_112.jpg",
    "predicted_text": "އާންމު އިޖުތިމާއީ އަދި އިޤުތިޞާދީ ހަރަކާތްތަކަށާއި އިންތިހާބީ ދާއިރާތަކަށާއި ސިޔާސީ މަޤާމުތަކަށް މީހުން ތައްޔާރުކުރުމާއި ކަނޑައަޅައިދިނުމާއި ހޭލުންތެރިކަން އިތުރުކުރުމަށް މަސައްކަތްކުރުމުގެ އިތުރުން ސިޔާސީ .",
    "true_text": "އާންމު އިޖުތިމާއީ އަދި އިޤުތިޞާދީ ހަރަކާތްތަކަށާއި އިންތިހާބީ ދާއިރާތަކަށާއި ސިޔާސީ މަޤާމުތަކަށް މީހުން ތައްޔާރުކުރުމާއި ކަނޑައަޅައިދިނުމާއި ހޭލުންތެރިކަން އިތުރުކުރުމަށް މަސައްކަތްކުރުމުގެ އިތުރުން ސިޔާސީ."
  },
  {
    "file_name": "data/images/DV01-01/DV01-01_4.jpg",
    "predicted_text": "އެމެރިކާގެ ޑްރޯނެއް އިރާނުގެ ވައިގެ ސަރަހައްދުން ވައްޓާލާފައި ވޭތޯ އެމެރިކާގެ އަސްކަރިއްޔާގެ ސެންޓްރަލް ކޮމާންޑްގެ ތަރުޖަމާން ކެޕްޓަން ބިލް އާބަންއާއި އަލްޖަޒީރާއިން ސުވާލު ކުރެއްވުމުން އެފަރާތުން އެއްވެސް .",
    "true_text": "އެމެރިކާގެ ޑްރޯނެއް އިރާނުގެ ވައިގެ ސަރަހައްދުން ވައްޓާލާފައި ވޭތޯ އެމެރިކާގެ އަސްކަރިއްޔާގެ ސެންޓްރަލް ކޮމާންޑްގެ ތަރުޖަމާން ކެޕްޓަން ބިލް އާބަންއާއި އަލްޖަޒީރާއިން ސުވާލު ކުރެއްވުމުން އެފަރާތުން އެއްވެސް."
  },
  {
    "file_name": "data/images/DV01-03/DV01-03_36.jpg",
    "predicted_text": "ސިފައިންގެ ޢާއިލާއާ މިއަދު އަލަށް ގުޅިވަޑައިގެންނެވި ހުރިހާ ސިފައިންނަށްވެސް ވަރަށް ކާމިޔާބު ވަރަށް ބާއްޖަވެރި ދުވަސްތަކަކަށް އެދެން .",
    "true_text": "ސިފައިންގެ ޢާއިލާއާ މިއަދު އަލަށް ގުޅިވަޑައިގެންނެވި ހުރިހާ ސިފައިންނަށްވެސް ވަރަށް ކާމިޔާބު ވަރަށް ބާއްޖަވެރި ދުވަސްތަކަކަށް އެދެން."
  },
  {
    "file_name": "data/images/DV01-08/DV01-08_13.jpg",
    "predicted_text": "66 ވަނަ އަސާސީ ތަމްރީން ފުރިހަމަކުރި ސިފައިން ހުވާކުރުމުގެ ރަސްމިއްޔާތުގައި ވާހަކަފުޅުދައްކަވަމުން ރައީސް އިބްރާހީމް މުޙައްމަދު ޞާލިޙް ވިދާޅުވިއެވެ .",
    "true_text": "66 ވަނަ އަސާސީ ތަމްރީން ފުރިހަމަކުރި ސިފައިން ހުވާކުރުމުގެ ރަސްމިއްޔާތުގައި ވާހަކަފުޅުދައްކަވަމުން ރައީސް އިބްރާހީމް މުޙައްމަދު ޞާލިޙް ވިދާޅުވިއެވެ."
  },
  {
    "file_name": "data/images/DV01-10/DV01-10_194.jpg",
    "predicted_text": "ނެއްލައިދޫ ބަނދަރު މަސައްކަތުގެ % 91 ނިމިއްޖެ ނޮވެމްބަރ 15 , 2021 ލާމަސީލު ޒުވާނާ ކޭމްޕް އިފްތިތާހު ކޮށްފި ނޮވެމްބަރ 14 , 2021 އެކްސިޑެންޓް ވުމުން އެމް .",
    "true_text": "ނެއްލައިދޫ ބަނދަރު މަސައްކަތުގެ %91 ނިމިއްޖެ ނޮވެމްބަރ 15, 2021 ލާމަސީލު ޒުވާނާ ކޭމްޕް އިފްތިތާހު ކޮށްފި ނޮވެމްބަރ 14, 2021 އެކްސިޑެންޓް ވުމުން އެމް."
  }
]