"זיהוי כתב" היא טכנולוגיה שמאפשרת למחשב לזהות תווים שנכתבו בכתב יד ולהפוך אותם לטקסט דיגיטלי. זוהי טכנולוגיה קרובה ל-OCR. OCR הוא זיהוי תווים אופטי, כלומר זיהוי טקסט מתוך תמונה.
כמעט בכל מקום נכתב מידע בכתב יד: רשימות, טפסים, מחברות וחוזים. גם בעולם הממוחשב משתמשים בכתב יד במכשירי כף יד ובמחשבים עם מסכי מגע.
כדי לשתף ולערוך טקסטים דיגיטליים צריך להמיר כתב יד לתווים שחומרה ותוכנה יבינו. סריקה יוצרת תמונה בלבד, שלא ניתנת לעריכה או לחיפוש.
זיהוי כתב קשה יותר מזיהוי דפוס. אנשים כותבים בדרכים שונות, בגבהים ובזוויות שונות. מפתחים משתמשים בשיטות שונות, חלקן דורשות שהתוכנה 'תלמד' כל משתמש, וחלקן מתבססות על מאגר גדול של דוגמאות.
זיהוי מקוון קולט את תנועת העט בזמן הכתיבה. המחשב רושם וקטורים של תנועה בכיווני X ו-Y. הנתונים האלו עוזרים להבנת סדר ומבנה הכתיבה.
מחשבי כף יד הראשונים ניסו לזהות כתב מקוון. Apple הוציאה גרסה שלא התקבלה היטב. הצלחה ראשונית הגיעה עם מחשבי Palm ותוכנת Graffiti, שבה כל משיכה מייצגת תו.
מיקרוסופט פיתחה שיטה שמשווה כתיבה לבסיס נתונים רחב של צורות כתיבה.
כתיבה מקוונת מאפשרת להשוות את האותות למאגר דוגמאות או למילון, ולתקן טעויות נפוצות. אמנם יש מערכות מדויקות, אבל מקלדת עדיין מהירה ובטוחה יותר לרוב המשתמשים.
בזיהוי לא מקוון מזהים טקסט מתוך תמונה סרוקה. כאן אין מידע על אופן הכתיבה, ולכן משתמשים בבלשנות ובסטטיסטיקה כדי לשפר את התוצאות. שיטה זו נפוצה בבנקים ובחברות ביטוח.
זיהוי כתב הוא סוג של זיהוי תבניות. בדרך כלל העבודה מתחלקת לשלבים ברורים:
- פירוק לחלקים (Dissection): מציאת אזורי טקסט, שורות, מילים ואותיות.
- יישור שורות: זיהוי הקו שעליו נכתבה כל שורה, ותיקון עקומות.
- הפרדת מילים ואותיות לפי רווחים או חיפוש קו מפריד בכתב מחובר.
- נרמול: שינוי גודל האותיות להשוואה למאגר.
- ניקוי והחלקת גבולות: הסרת רעשים ושיפור צורת הקווים.
- ייצוג מחדש: המרת האות לתכונות ניתנות לעיבוד, למשל באמצעות התמרות כמו פורייה או wavelet. התמרה היא שינוי צורת הנתונים כדי להדגיש תכונות.
מבחינת זיהוי האותיות קיימות שיטות עיקריות:
- השוואת תבניות: השוואת האותות למאגר דוגמאות מוכנות. חסרון: קשה להכיל את כל הצורות האפשריות.
- ניתוח טופולוגי: בחינת צמתים, פיצולים ועיקולים באות.
- רשתות עצביות: מודלים שמחקים חלקית את אופן הפעולה של המוח. רשת עצבית היא מערכת חישובית שמותאמת ללמוד דוגמאות ולהכליל עליהן.
- HMM (Hidden Markov Model): מודל מכונת מצבים, שבו כל מצב מייצג צורה או תו מסוים. מודל זה פועל בשלבים ומספק הסתברויות לזיהוי.
- לוגיקה מעורפלת: נותנים הסתברות לכל אפשרות וזה עוזר בקבלת החלטות כשיש חוסר ודאות. לוגיקה מעורפלת היא שיטה שמטפלת בחוסר ודאות על ידי ציוני הסתברות.
באלגוריתמים מסוימים נשמרת לא רק האופציה הטובה ביותר לאות, אלא רשימת אופציות שממשיכים לבדוק ביחד.
קיימים מאגרים עולמיים של דוגמאות כתב יד מאז שנות ה-90. דוגמה בולטת היא UNIPEN, הכוללת אלפי דוגמאות ואחסון בפורמט inkML. לשפה העברית עדיין אין בסיס נתונים רחב ומסודר.
מפתח המחליט על שיטה צריך לבדוק קריטריונים טכניים:
מהי עצמת המחשוב הזמינה? מחשב חזק מאפשר מודלים כבדים כמו רשתות עצביות גדולות.
האם התוכנה תלמד את כתב היד של המשתמש (ממוקדת משתמש) או תהיה כללית? למידה אישית מקטינה דרישות החישוב.
האם הזיהוי יצטרך להתבצע בזמן הכתיבה (מקוון) או לאחר סריקה (לא מקוון)? במצב מקוון אפשר להשתמש במידע על סדר וקצב הכתיבה.
האם לזהות אותיות תחילה ואז להרכיב מילים, או להכיר מילים שלמות? זיהוי מילים דורש מאגר מילים גדול וחישוב מסיבי.
שפות בכתב מחובר עשויות להתאים לשיטות שמזהות מילים שלמות. שפות עם תווים דומים זקוקות לייצוגים שמדגישים הבדלים קטנים.
פיתוח מערכת תלוי בזמן וכוח האדם שהוקצו. פתרון מבוסס למידת משתמש ידרש פחות זמן מאחד מבוסס מאגר ענק.
אם רוצים לתמוך בכמה שפות, מומלץ לעבוד על זיהוי תווים ולא על מילים.
כשבוחרים מוצר צריכים לשקול:
- החומרה שברשותכם: כף יד או מחשב שולחני.
- אופי השימוש: מקוון או לא.
- מספר הכותבים: אדם אחד או רבים.
- סוג המסמכים: רשימות קצרות או טקסטים ארוכים ומורכבים.
מכשירים חלשים ידרשו אלגוריתמים פשוטים ומהירים. מחשב חזק המאפשר מערכות מתקדמות.
זיהוי בזמן כתיבה דורש תגובה מהירה. זיהוי מאוחר יכול להיעזר בחישובים כבדים.
תוכנה הלומדת משתמש אחד עובדת טוב יותר במכשיר אישי. למערכות של משתמשים רבים נדרש מאגר רחב.
מסמכים מקצועיים או טכניים דורשים תמיכה בתווים מיוחדים ומספרים.
העין האנושית יכולה להשלים מילים גם עם זיהוי חלקי. מחשב עדיין מתקשה למלא חוסרים בהקשר תרבותי. לכן בדרך כלל נדרש אדם שיבדוק ויתקן את תוצאות זיהוי הכתב, אך המחשב יכול לחסוך זמן רב על ידי המרה מהירה של הכתוב.
זיהוי כתב עוזר למחשב לקרוא כתב יד ולהפוך אותו לטקסט שניתן לערוך.
OCR הוא זיהוי תווים מתוך תמונה. זה דומה, אבל לא אותו דבר.
עוד הרבה דברים נכתבים ביד, כמו רשימות, טפסים וספרים ישנים.
לפעמים נוח יותר לכתוב ביד מאשר במקלדת.
כדי לחפש או לערוך טקסט שסרקו, צריך להמיר כתב יד לטקסט דיגיטלי.
סריקה נותנת תמונה, אבל לא טקסט לעריכה.
בזיהוי מקוון המחשב עוקב אחרי התנועה של העט בזמן הכתיבה.
הוא רושם את התנועה כקווים X וY.
כך המחשב יודע באיזה סדר נכתבו הקווים.
מחשבי כף יד ניסו לזהות כתב. Palm הצליחה עם Graffiti.
חברות כמו מיקרוסופט השתמשו בבסיס נתונים גדול לשיפור הזיהוי.
בזיהוי לא מקוון קוראים טקסט מתוך תמונה סרוקה.
שיטה זו שימושית בבנקים ובמקומות שעובדים עם נייר רב.
התהליך עובד בשלבים ברורים:
- מוצאים שורות ומילים.
- מיישרים שורות שעקומות.
- מנרמלים גודל אותיות כדי להשוות אותן.
- מנקים רעשים כדי לשפר את הצורה.
כדי לזהות אותיות משתמשים בדרכים שונות:
- השוואת תבניות: להשוות אות לאות שמורות.
- רשת עצבית: מערכת של חישובים שלומדת דוגמאות.
- HMM: מערכת של מצבים שעוזרת לבחור את האות הנכונה.
יש מאגרים גדולים של דוגמאות כתב יד בעולם. UNIPEN הוא דוגמה כזו.
לשפה העברית אין עדיין מאגר גדול כזה.
אם המחשב חלש, צריכים שיטה פשוטה.
אם יש משתמש אחד, כדאי שהתוכנה תלמד את הכתב שלו.
המחשב יכול להמיר הרבה במהירות, אבל לפעמים צריך אדם שיתקן טעויות.
תגובות גולשים