GPT
T

trocr-large-handwritten

קוד פתוח

microsoftרישיון לא דווח2022-03-02

  • transformers
  • pytorch
  • vision-encoder-decoder
  • image-text-to-text
  • trocr

microsoft עומדים גם מאחורי Sho, ויש עליו סקירה כאן.

מודל ראייה ושפה שמתמחה בפענוח של שורות טקסט בכתב יד מתוך תמונות. הוא מחבר מקודד תמונה של BEiT עם מפענח טקסט של RoBERTa כדי להמיר כתב יד למחרוזת נקייה.

  • 2.1 GBמשקל הקבצים
  • 70,168הורדות בחודש
  • 166לייקים

מה זה

מדובר במודל שמבוסס כולו על ארכיטקטורת שנאי, מקודד ומפענח, בלי רכיבי ראייה ממוחשבת קלאסיים כמו רשתות קונבולוציה. החלק של הראייה חותך את התמונה לחתיכות קבועות של 16 על 16 פיקסלים, ממיר אותן לווקטורים, ומעביר אותן למפענח הטקסט שמייצר אותיות ומילים באופן רציף.

המשקלים אומנו מראש ועברו כוונון עדין על בסיס הנתונים IAM, שכולל דוגמאות של כתב יד באנגלית. השילוב בין מפענח מבוסס שפה לבין מנתח תמונה גורם לו לנסות לנחש מילים שלמות בהקשר תחבירי, ולא רק לזהות צורות של אותיות בודדות.

מתאים ל

  • פענוח פתקים ומחברות

    קריאת משפטים מתוך שורות שנגזרו מפתקים סרוקים באנגלית, בזכות האימון על כתב יד אנושי.

  • סריקת טפסים עם שדות כתובים

    שליפת טקסט משדות ייעודיים בטפסים באנגלית, אחרי שחתכתם את השדה המדויק מתוך הטופס.

  • בסיס לכוונון עדין נוסף

    נקודת מוצא טובה לאימון על סגנונות כתב יד ייחודיים או שפות נוספות שמשתמשות באלפבית לטיני.

איפה זה נופל

המגבלה הכי קריטית כאן היא שהוא יודע לקרוא אך ורק שורת טקסט בודדת בכל פעם. אם תזרקו עליו מסמך מלא, פסקה או עמוד סרוק, הוא ייכשל. אתם חייבים לבנות צינור עיבוד מקדים שגוזר את השורות מראש ומאכיל אותו אחת אחרי השנייה. בנוסף, הוא כוונן על כתב יד באנגלית מתוך מאגר IAM, כך שאין כאן שום תמיכה מובנית בעברית.

שאלות
נפוצות

אפשר להעלות אליו תמונה של דף שלם?

לא. המודל תוכנן לעבוד על שורות בודדות בלבד. כדי להשתמש בו על עמוד שלם, אתם צריכים כלי נפרד שמזהה את מיקומי השורות וגוזר אותן לתמונות נפרדות.

הוא עובד על כתב יד בעברית?

לא מחוץ לקופסה. המודל אומן על IAM באנגלית והמפענח שלו מבוסס על RoBERTa, כך שהוא מיועד לאותיות לטיניות בלבד ולא יזהה אותיות בעברית.

איך מריצים

אתם מריצים אותו ישירות דרך ספריית transformers בפייתון עם VisionEncoderDecoderModel ו־TrOCRProcessor. קבצי המודל שוקלים 2.1 גיגה בייט בדיוק של float32, כך שכרטיס מסך בסיסי עם 6 עד 8 גיגה זיכרון יחזיק אותו בלי בעיה לצורך הסקה.

אם אתם צריכים לפענח שורות בודדות בקצב נמוך, אפשר להריץ אותו מקומית על מעבד רגיל, אבל ברגע שיש עומס של עמודים שלמים עדיף GPU ייעודי כדי שההסקה הרציפה של הטקסט לא תתקע את השרת.

from transformers import pipeline

pipe = pipeline("image-to-text", model="microsoft/trocr-large-handwritten")
print(pipe("שלום"))

הרישיון

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

הרישיון המלא בעמוד המודל ↗