אימון נוסף של מודלים ל-OCR עבור גופנים ושפות ספציפיים

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

תחומי פיתוח AI

שאלות נפוצות

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

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

אימון OCR: כשלים בגופנים ובשפות נדירים

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

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

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

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

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

מה נותנת התאמת המודל: אפקטים מדידים

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

דיוק חילוץ השדות

אימון נוסף על דוגמאות מסומנות של המסמכים שלכם מעלה את הדיוק בשדות ספציפיים — מספר חשבון, תאריך, סכום במילים, קוד יחידה. את המדד אנחנו מחשבים לא לפי המסמך כולו, אלא לפי כל שדה בנפרד: היכן תו מתבלבל עם דומה לו (0/O, 1/l, 3/Z), והיכן גבול הבלוק הולך לאיבוד והערך נודד לתא שכן.

צמצום התיקון הידני

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

יציבות בסוגי טפסים חדשים

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

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

גישות לאימון OCR: השוואת אפשרויות

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

האפשרויות אינן סותרות זו את זו — משווים אותן לפי מאמץ ההכנה ולפי סוג השגיאה שכל אחת סוגרת.

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

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

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

כיצד מתנהלת העבודה: שלבים מהביקורת ועד המסירה

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

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

  2. סכימת הסימון. קובעים את רמת הפירוט (שורות, מילים, בלוקים), את פורמט ההערות ואת הכללים למקומות שנויים במחלוקת: מעברי שורה, חותמות, טקסט מחוק. מסכמים על כך לפני ההתחלה.

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

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

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

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

ערכת המסירה: מודל, סימון, תיעוד

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

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

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

מקרה בוחן: ארכיון חוזים בשלוש שפות

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

‏Tesseract הבסיסי בלי אימון נוסף נתן 11–16% שגיאות לתו דווקא בשדות עם המספר והסכום. עבור מסמך בעל תוקף משפטי משמעות הדבר היא בדיקה ידנית של כל עמוד: שיעור העמודים שהמפעיל תיקן ביד עמד על 30–35%, וזרם הסריקות גדל מהר יותר מסגל הבודקים.

מה שינו

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

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

מה היה בסוף

על מערך ביקורת של 20 אלף עמודים, שגיאות התו ירדו מ-13% ל-1.2–1.8% בהתאם לשפה. שיעור העמודים שעברו לתיקון ידני הצטמצם מ-33% ל-4%, ודיוק חילוץ פרטי הזיהוי — מספר, תאריך, צד, סכום — הגיע ל-97–99%. מעבר מלא על הארכיון ארך שבועות במקום חודשים של הזנה ידנית.

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

מה לעשות אם המודל כבר פועל במעגל שלכם

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

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

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

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

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

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

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

ספקות טכניים: סימון, שפות, פרטיות

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

כמה נתונים צריך לסמן?

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

מה עם נתונים אישיים במסמכים?

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

כיצד מוסיפים שפה חדשה?

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

מה קורה למודל לאחר ההפעלה?

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

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

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

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

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