GPT
T

table-transformer-structure-recognition

קוד פתוח

microsoftmit2022-10-14

  • transformers
  • pytorch
  • safetensors
  • table-transformer
  • object-detection

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

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

  • 29Mפרמטרים
  • 1,024טוקנים בהקשר
  • 220 MBמשקל הקבצים
  • 1,164,999הורדות בחודש

מה זה

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

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

מתאים ל

  • פירוק דוחות כספיים

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

  • חילוץ נתונים ממסמכי סריקה

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

  • עיבוד אוטומטי של מאמרים

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

איפה זה נופל

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

שאלות
נפוצות

האם המודל הזה מחלץ את הטקסט מתוך הטבלה?

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

האם הוא מסוגל לאתר את מיקום הטבלה בדף שלם?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("object-detection", model="microsoft/table-transformer-structure-recognition")
print(pipe("שלום"))

הקבצים

6 קבצים במאגר, 220 MB סך הכול. הקישורים מובילים ישירות ל־Hugging Face.

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

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