trOCR: انقلابی در تشخیص متن با ترنسفورمرها

به دقت سطح انسانی در استخراج متن از محتوای چاپی، دستنویس و چندزبانه دست یابید.

API trOCR چیست؟

trOCR (تشخیص نوری کاراکتر مبتنی بر ترنسفورمر) یک مدل OCR پیشگامانه از مایکروسافت است که از قدرت معماری‌های ترنسفورمر برای ارائه دقت بی‌نظیر در تشخیص متن استفاده می‌کند. برخلاف سیستم‌های OCR سنتی که صرفاً به شبکه‌های کانولوشنی متکی هستند، trOCR ترنسفورمرهای بینایی (ViTs) را با مدل‌سازی دنباله به دنباله ترکیب می‌کند و به آن امکان می‌دهد تا زمینه و روابط فضایی در متن را درک کند - حتی برای ورودی‌های چالش‌برانگیز مانند یادداشت‌های دستنویس، اسکن‌های با وضوح پایین یا اسکریپت‌های پیچیده.

مزایای کلیدی trOCR:

  • تشخیص شبه‌انسانی: عالی در خواندن دستنویس و متن تحریف‌شده
  • پشتیبانی چندزبانه: مدل‌های از پیش آموزش‌دیده برای انگلیسی، فرانسوی، آلمانی و بیشتر
  • فرآیند یکپارچه: تشخیص و شناسایی متن را ترکیب می‌کند
  • ادغام آسان: مبتنی بر کتابخانه Transformers هگینگ فیس
GitHub

آمار GitHub

نام:
زبان:
ستاره ها:
چنگال:
مجوز:
آخرین به روز رسانی مخزن در

چرا trOCR را انتخاب کنیم؟

  • 15-20% دقت بالاتر از مدل‌های مبتنی بر CNN
  • بیش از 90% دقت برای متن دستنویس
  • پیش‌پردازش حداقلی: مقاوم در برابر تغییرات فونت و نویز
  • پردازش کارآمد: بهینه‌شده برای GPU

نصب

trOCR به PyTorch یا TensorFlow و کتابخانه Hugging Face Transformers نیاز دارد:

نصب با PyTorch (GPU توصیه می‌شود)


pip install transformers torch torchvision
pip install datasets  # اختیاری برای تنظیم دقیق

توجه: مدل‌های microsoft/trocr-base به ~1.5GB فضای ذخیره‌سازی در هر نوع (چاپی/دستنویس) نیاز دارند. اطمینان حاصل کنید که فضای ذخیره‌سازی و RAM کافی (8GB+ برای پردازش دسته‌ای) دارید.

نمونه کدها

تشخیص متن دستنویس

تشخیص دستنویس


from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image

processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-handwritten")
model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-handwritten")

image = Image.open("note_dastnevis.jpg").convert("RGB")
pixel_values = processor(image, return_tensors="pt").pixel_values

generated_ids = model.generate(pixel_values)
text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]

print(f"متن استخراج شده: {text}")

پردازش اسناد چاپی

استخراج متن چاپی


from transformers import pipeline
from PIL import Image

ocr = pipeline("image-to-text", model="microsoft/trocr-base-printed")
image = Image.open("sanad.png").convert("RGB")
results = ocr(image)

for item in results:
    print(item['generated_text'])

نکات پیشرفته

  • پیش‌پردازش تصاویر با OpenCV
  • تنظیم مدل برای نیازهای خاص

کاربردها

  • دیجیتالی‌سازی آرشیوهای تاریخی
  • پردازش خودکار فاکتورها
  • فناوری‌های دسترسی‌پذیری

محصولات مشابه

 فارسی