GPT
T

trocr-large-printed

קוד פתוח

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

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

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

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

  • 608Mפרמטרים
  • 4.5 GBמשקל הקבצים
  • 52,761הורדות בחודש
  • 181לייקים

מה זה

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

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

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

מתאים ל

  • זיהוי שורות בקבלות באנגלית

    הוא אומן על מאגר SROIE ולכן קורא מצוין פריטים ומחירים מודפסים.

  • קריאת טקסט ממסמכים סרוקים

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

  • חילוץ פרטים מתגיות וחשבוניות

    ארכיטקטורת הטרנספורמר מפצה על איכות הדפסה בינונית בעזרת מודל שפה.

איפה זה נופל

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

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

שאלות
נפוצות

האם אפשר להשתמש בו לזיהוי טקסט בעברית?

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

האם המודל מסוגל לקרוא מסמך שלם בעצמו?

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

איך מריצים

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

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

from transformers import pipeline

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

הרישיון

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

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