trOCR: מהפכה בזיהוי טקסט עם טרנספורמרים

השג דיוק ברמת אנוש בחילוץ טקסט מתוכן מודפס, כתב יד ורב-לשוני.

מהו API trOCR?

trOCR (זיהוי תווים אופטי מבוסס טרנספורמר) הוא מודל OCR פורץ דרך של מיקרוסופט שמנצל את כוח ארכיטקטורות הטרנספורמר כדי לספק דיוק חסר תקדים בזיהוי טקסט. בניגוד למערכות OCR מסורתיות שמסתמכות רק על רשתות קונבולוציה, trOCR משלב vision transformers (ViTs) עם מודלינג רצף-לרצף, מה שמאפשר לו להבין הקשר ויחסים מרחביים בטקסט - אפילו עבור קלט מאתגר כמו הערות בכתב יד, סריקות ברזולוציה נמוכה או סקריפטים מורכבים.

יתרונות עיקריים של trOCR:

  • זיהוי אנושי: מצטיין בקריאת כתב יד וטקסט מעוות
  • תמיכה רב-לשונית: מודלים מאומנים מראש לאנגלית, צרפתית, גרמנית ועוד
  • תהליך משולב: משלב זיהוי טקסט והכרת תווים
  • אינטגרציה קלה: בנוי על ספריית Transformers של Hugging Face
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 שטח אחסון לגרסה (מודפס/כתב יד). ודא שיש מספיק אחסון וזיכרון (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_handwritten.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("document.png").convert("RGB")
results = ocr(image)

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

טיפים מתקדמים

  • שפר תמונות עם OpenCV לפני עיבוד
  • התאם את המודל לצרכים ספציפיים

יישומים

  • דיגיטציה של ארכיונים היסטוריים
  • עיבוד אוטומטי של חשבוניות
  • טכנולוגיות נגישות

מוצרים דומים

 Hebrew