זיהוי תווים אופטי של נוסחאות מתמטיות: Pix2Tex, Mathpix, TrOCR

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

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מדוע זיהוי נוסחאות נכשל במסמכים אמיתיים

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

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

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

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

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

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

אפקט מדיד: דיוק, מהירות, שיעור תיקון ידני

דיוק הזיהוי נמדד לא לפי «מספר התווים שנוחשו», אלא לפי נוסחה שלמה: מנרמלים את הסימון ומשווים למדד ייחוס שהכין מתודיסט.

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

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

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

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

אפשרויות לניתוח נוסחאות: השוואה בין גישות ומצבים

בחירת מצב זיהוי הנוסחאות נקבעת לפי שלושה דברים: אופי המקורות (סדר מודפס, כתב יד, סריקות באיכות נמוכה), דרישות סודיות ושיעור השגיאות המותר בפלט. אי אפשר «לתקן נוסחאות לפי המשמעות» — אינדקס חזקה שאבד או גבול שבר משנים את התוצאה, ולכן המצב נבחר לפי המשימה, ולא «המדויק ביותר בכלל».

בנפרד אנחנו מקבעים את פורמט הפלט: LaTeX להטמעה בעורכים ו-MathML לרשת — ממנו תלוי מה הצינור עושה בהמשך.

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

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

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

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

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

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

  1. ביקורת קורפוס המסמכים. סופרים את שיעור העמודים עם נוסחאות, סוגי המקורות, גופנים, שפות של תצוגות. מקבעים מה מופיע: שברים, מטריצות, אינדקסים, פלטים רב-שורתיים. בפלט — מפה: היכן הניתוח עובד מיד, והיכן נדרש עיבוד מקדים.
  2. מדגם ייחוס. כמה מאות עמודים שתויגו ידנית, עם איזון לפי סוגי נוסחאות. המדד — שיעור התצוגות שזוהו במלואן ובמבנה נכון: דיוק לפי תווים מסווה אינדקס שאבד או קינון.
  3. תכנית ניתוח. קובעים סדר: איתור אזורי נוסחאות, חיתוך עם שוליים, נרמול קנה מידה וניגודיות, זיהוי, הרכבה חזרה לסימון המסמך. את המנוע בוחרים לפי תוצאה במדגם, ולא לפי תיאור.
  4. כוונון הניתוח. לקורפוס שלך: סף זיהוי אזורים, מילון פקודות, עיבוד לאחר — שחזור סוגריים ופקודות עזר, פתרון קונפליקטים עם שכבת הטקסט של העמוד.
  5. בדיקה על מדגם הייחוס. מריצים את הצינור כולו, מפרקים שגיאות לפי מחלקות: אינדקסים דבוקים, סימנים שאבדו, קינון שגוי. סט עיוור נפרד של עמודים שלא השתתפו בכוונון מפריד בין דיוק אמיתי לבין התאמה-יתר.
  6. מסירת הפתרון. מוסרים קוד, תצורה, מילונים ונהלי הפעלה: איך לחבר סוגי נוסחאות חדשים, מה לבדוק בירידת דיוק, היכן לראות יומנים ואיך לעדכן את המדגם.

מה נשאר אצל הלקוח: ארטיפקטים ונהלים

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

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

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

מקרה בוחן: הוצאה מדעית וזרימת מאמרים בכתב יד

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

מה הרכבנו

צינור זיהוי נוסחאות: איתור אזורים עם ביטויים בעמוד, זיהוי, המרה ל-LaTeX, ואז אימות מבני — איזון סוגריים, קינון שברים, זיווג אינדקסים, השוואת תווים למילון ולסריקה המקורית. להגהה ידנית נשארים רק קטעים שבהם המאמת לא תאם לתמונה.

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

מדדים לפני ואחרי

מדד לפני אחרי
זמן הגהה של ביטויים במאמר כ-6 שעות 40–50 דקות
שיעור נוסחאות עם תיקון ידני 100% 12–15%
שגיאות שצפות לאחר הפריסה כל נוסחה חמישית מקרים בודדים

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

במה שונה ניתוח נוסחאות מזיהוי טקסט רגיל?

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

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

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

השכבה השלישית — מילון סימנים ודקדוק הכתיבה. הסימנים שזוהו מותאמים לאופרטורים מוכרים, אותיות יווניות ופונקציות, משתנים מקושרים לאינדקסים שלהם, והמבנה שהורכב נבדק תחבירית. כך מוסרות אי-בהירויות קלאסיות: «l» לעומת אחת, האות x לעומת סימן הכפל, אפס לעומת O גדולה. המילון מגביל את מרחב ההשערות, והבדיקה חותכת ענפים שמורכבים פורמלית אך חסרי משמעות מתמטית.

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

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

ספקות טכניים: איכות, בדיקה, הטמעה

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

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

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

האם אפשר להסתפק בלי שירותים חיצוניים?

כן. המודל נפרס על שרת מבודד בלי יציאה לרשת, והתיוג והאימון הנוסף מתבצעים внутри ההיקף.

האם נדרשת הגהה ידנית מלאה?

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

מה לעשות כשהמודל טועה בנוסחאות חדשות?

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

נדון במשימה: מה להבהיר לפני תחילת העבודה

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

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

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