תוכנות לזיהוי תווים אופטי, מתמודדות על פי רוב בהצלחה עם המרה של תמונה בה מצולם או סרוק מסמך מודפס אך רק לעיתים נדירות גם בכתב יד. התהליך כרוך בזיהוי תו אחרי תו מבין התווים השונים המרכיבים את הטקסט. אולם, שיפור הברירה בין תווים שונים נעשה לרוב גם בעזרת שני כללים הקשורים להקשר התווים: הגבלת קטעי תמליל שונים לכאלה הכוללים רק תווים מקבוצה מסוימת (אותיות עבריות, אותיות לטיניות, אותיות ערביות וכיוצא בזה) והגדרת מילים ושפה לשם העדפת תווים היוצרים מילים בעלות כתיב מוכר (למשל, בקטע תמליל המוגדר ככתוב אנגלית יועדפו תווים היוצרים מילים עם כתיב אנגלי תקין אך בקטע תמליל המוגדר ככתוב בספרדית יועדפו תווים היוצרים מילים בעלות כתיב ספרדי תקין).
שיטות של זיהוי תווים אופטי.
את הזיהוי ניתן לבצע בשתי צורות שונות:
כדי למזער את כמות התווים השגויים שנוצרים בתהליך, מפעילה התוכנה לפעמים בדיקה מול מילון. במקרה זה התוכנה מכילה רובד נוסף שמרכיב את התווים המזוהים למילים שלמות, מחפש כל מילה במילון, ובמקרה שאינו מוצא אותה, מנסה לשנות תווים מסוימים (אלה שבהם ודאות הזיהוי נמוכה) עד שהמילה המזוהה נמצאת באוצר המילים של המילון.
שימושים.
שימוש בטכנולוגיה של זיהוי תווים אופטי, והמרת קובץ גרפי טקסטואלי לקובץ המורכב מתווים, נעשים בדרך כלל לשם המטרות הבאות:
שלבי התהליך.
חלק ממאפייני האותיות הם פשוטים, כדוגמת מיקומי קווים אופקיים ואנכיים, או משקל השחור בתתי האזורים השונים בתוך הריבוע המכיל את האות, רוחב האות וגובהה, חריגה מעל או מתחת לקו השורה וכדומה. במקרים בהם המרחק בין מאפייני אותיות דומות הוא גדול יחסית, ההפרדה היא אופטימלית.
במקרים בהם התוכנה היא כזו שמזהה מילים, ניתן להקטין את כמות השגיאות בתהליך אם ניתן לבדוק האם המילה הנבחרת מתאימה לתוכן, כלומר האם במיקום בו היא זוהתה, היא בהקשר סביר לטקסט. הבנת ההקשר היא מורכבת ונעשית על ידי בדיקה האם המילה ממלאת תפקיד חיבורי הגיוני במשפט, או בשיטות סטטיסטיות – האם המילים בקרבתה מופיעות במקום אחר או במסמכים אחרים ובאיזו הסתברות.
תוכנות זיהוי מתוחכמות בנויות כרשת עצבית, שהיא תהליך תכנותי המבוסס על התנסות ולמידה. תוכנה כזו מציגה את הטקסט המזוהה למשתמש, שמתקן שגיאות בזיהוי, והתוכנה לומדת את השגיאות ומנסה להקטין את הסיכוי שתחזורנה בעתיד. ליכולת זו שימוש רק אם סוג הטקסטים שעוברים זיהוי הם דומים מבחינות שונות – גופן הדפסה, גודל אות, אוצר מילים ועוד.
זיהוי כתב יד בשיטות המסורתיות.
בזיהוי כתב יד אי אפשר להשתמש באלגוריתם המשווה את מאפייני האות לגופן ולכן משתמשים בשיטות זיהוי אחרות. אחת מהשיטות היא יצירת תמונה בצורת מלבן (בשחור לבן) של מופעים שונים של אותה אות כתב, לדוגמה: כל שורה מכילה 10 מופעים שונים (תמונות) של אותה אות, וכל שורה מתאימה לאות שונה. כל מופע של אות חסום במלבן (או במעגל),ומתוח לגובה ולרוחב כך שהוא יתאים בדיוק לגודל מלבן המופע. כל המלבנים בשורה גודלם קבוע, והם נמצאים במקום קבוע בתמונה. צבע מופע האות במלבן: שחור, צבע המלבן: לבן, וצבע הרקע: שחור. כדי למצוא מה מאפיין כל אות, התוכנה מחשבת בזמן הלימוד (השלב האיטי), כמה פעמים נחתכת האות על ידי קו ישר העובר בין שתי נקודות על מלבן החוסם את האות. התוכנה בונה קובץ של מספרים שלמים, המכיל את התכונות הטובות ביותר להבדלה בין אות אחת לשנייה. לדוגמה: תכונה מספר 1234 הוא קו החותך את כל מופעי האות שמספרה 15, 3 פעמים, ואת מופעי האות שמספרה 7, 0 פעמים. בזמן הזיהוי (השלב המהיר) התוכנה יוצרת מלבן חוסם סביב תמונת אות המיועדת לזיהוי, קוראת את קובץ התכונות הטובות ביותר, טוענת את תוכנו במערך, ובודקת כמה פעמים נחתכת האות על ידי הקווים המגדירים את התכונות הטובות ביותר, ולפי הנתונים הללו בודקת לאיזו אות התמונה הזאת מתאימה ביותר.
הערות:
formula_1 = הממוצע
אבל להגיד שאם במקרה אחד האות לא נחתכה היא לא תיחתך אף פעם זו שגיאה משמעותית. לכן במקרה זה מעגלים למעלה והתוצאה יוצאת:
formula_2 = הממוצע
התוצאה מלמדת שלא מתחשבים במקרה אחד חריג. אבל בכל זאת זה לא טוב, כי נראה שהתוכנה תיכשל בזיהוי של אחד מתוך עשרה מקרים!
במציאות הזיהוי הרבה יותר מדויק ממה שנדמה. כי יש עוד תכונות המגבות במקרה שגוי. ובנוסף לכך החישוב מדמה את הקריאה של האדם,
כי כשאנו קוראים אנו בהכרתנו מעגלים.
זיהוי אות ביחס לשורה.
הזיהוי הצורני לא עובד על כל האותיות, למשל הוא לא עוזר להבחין בין האותיות במילה "יון". לכן יוצרים תמונת מופעי אותיות נוספת, כמו בתמונת מופעי האותיות לזיהוי צורת האות. בשונה מתמונת המופעים לזיהוי צורה, כל מופע הוא מילה בת 3 אותיות. כדי שהמחשב יוכל להבחין בין 3 האותיות, האות הנלמדת מוקפת בקו עקום צהוב, ושתי האותיות הנלוות, כל אחת בנפרד, מוקפת בקו עקום כחול. שלוש האותיות נמתחות בתוך מלבן המופע, כך שהוא יתחלק ל־3 חלקים מבחינת גובהו: בשליש העליון ימצאו חלקי האותיות מעל השורה, באמצע ימצאו חלקי האותיות שבתוך השורה, ובחלק התחתון חלקי האותיות שמתחת השורה. בשלב הלימוד המחשב יוצר קובץ התכונות הטובות ביותר ביחס לשורה. התכונות הן:
זיהוי ממוחשב של כתב יד
זיהוי כתב הוא טכנולוגיה המאפשרת למחשב לזהות תווים שנכתבו בכתב יד אנושי ולתרגמם לתווים דיגיטליים. במחשבי כף היד של חברת פאלם תכונה זו ידועה בשם "גרפיטי".
ההמרה מתבצעת באמצעות מעקב אחר תנועה של מצביע מיוחד (בדרך כלל בצורת עט) על גבי המסך או משטח אחר, האלגוריתם המשמש להמרה דומה לזה המשמש ב-OCR (זיהוי תווים אופטי), אך משתמש גם בסדר הכתיבה של האות - מידע שלא קיים בביצוע OCR. מצד שני זיהוי כתב יד (בניגוד לדפוס במקרה של OCR) מקשה את הזיהוי. רוב התוכנות שמיישמות את זיהוי הכתב מצפות שהמשתמש יתאים עצמו לצורות המוגדרות מראש בתוכנה, ומיעוטן משתמשות במערכת לומדת על מנת ללמוד את המורפולוגיה של כל משתמש לגופו - ובכך מקלות על המשתמש והופכות את התהליך לשוטף יותר.
הטכנולוגיה קשה ליישום בשל העובדה שבני אדם כותבים בצורות שונות מאוד, והתוכנה לזיהוי כתב היד נדרשת למצוא מאפיינים משותפים לאותן אותיות הנכתבות בידי בני אדם שונים.
שיטות לזיהוי כתב:
מבוא.
שימוש בכתב יד.
גם בשנים האחרונות לאחר מהפכת המחשוב מידע רב מאוד נכתב בכל רחבי העולם בכתב יד. רשימות, הערות, טפסים, מחברות, חוזים, דו"חות ומרשמים נכתבים לעיתים ביד ולא על גבי מחשב. כתיבה ידנית נפוצה עדיין גם במוסדות, בחברות ובארגונים המתקדמים ביותר, עקב מספר סיבות: הנוחות שבכתיבה ראשונית של טיוטה ביד, רישום בצורה לא שגרתית, פרטיות בכתיבה, כתיבה שקטה יותר מאשר מקלדת, כתיבה בשפות שאינן מוכרות על ידי המחשב או שבלתי אפשרי להזין אותן באמצעות מקלדת ועוד.
כתיבה ידנית נפוצה גם במחשבי כף יד, בהם נוח יותר להשתמש בעט סימון ומסך מגע מאשר לחבר מקלדת או להשתמש במקלדת וירטואלית המוצגת על המסך.
בנוסף, חומר יקר ועתיק עדיין טמון בספרים עתיקים הכתובים בכתב יד ולא בדפוס.
הצורך בזיהוי.
המגמה בעולם היא להשתמש במידע בפורמט דיגיטלי על מנת לשתף לאפשר גישה לחומר כמעט מכל מקום בעולם, לשתף אותו בקלות עם אנשים אחרים ולאפשר גישה נוחה יותר אליו.
לצורך כך במקרים בהם עושים שימוש בכתב יד יש להמיר אותו תחילה לפורמט דיגיטלי.
ניתן אמנם לסרוק לקובץ תמונה כל כתב יד בצורה פשוטה, אך לא ניתן יהיה לערוך את הטקסט או לחפש בתוכן שבו. לכן יש צורך בטכנולוגיה שתאפשר להמיר את הסימנים הכתובים לסימנים שמחשב ידע לזהות.
יישום.
קיים תחום גדול ומתפתח של מחקר ליצירת תוכנות המזהות כתב יד.
בשונה מזיהוי אוטומטי של דפוס, הנחשב קל יחסית לביצוע ואכן הביא כבר לתוצאות טובות רבות בעולם, הרי שזיהוי אוטומטי של כתב יד מהווה עדיין אתגר גדול בפני המפתחים. חברות גדולות עמלות שנים כדי לבנות אלגוריתם יעיל, ועד כה הן נחלו תוצאות חלקיות בלבד. הבעיות הגדולות שמציב זיהוי של כתב יד בפני המפתחים הן השינוי של הכתב מאדם לאדם, יישור טקסט שנכתב תוך שינוי זווית הכתיבה בהתאם לעמדת הכותב, השוני הקל ולעיתים הרב בין אותן אותיות אצל הכותב האנושי ועוד.
זיהוי כתב יד מתחלק לשתי טכנולוגיות עיקריות:
זיהוי מקוון.
היסטוריית זיהוי הכתב המקוון.
זיהוי כתב יד מקוון החל במחשבי כף היד הראשונים. תחילה הוציאה חברת אפל מחשב כף יד עם יכולת זיהוי כתב מקוונת, שיצרה רושם ראשוני רע, וגם הגרסה הבאה והמשופרת מאוד שלה, שכללה תיקון שגיאות כתיב, לא הצליחה לתקן את הרושם הראשוני. מאוחר יותר במערכת ההפעלה PenPoint (שפעלה במחשבי לוח של IBM ושל NCR), נכללה צורת זיהוי שהועברה גם לחלונות של מיקרוסופט, אך גם תוכנות אלו לא הצליחו.
ההצלחה היחסית הראשונה הייתה של מחשבי פאלם, עם תוכנת ה- Graffiti שלהם, שאפיינה סדרת משיכות עט לכל תו בהתאם למשתמש, דבר שהקטין את השגיאות, אך הגדיל את עקומת הלמידה של המכשיר.
צורה מוצלחת יותר, לדעתם רבים, קיימת בגרסה של מיקרוסופט לזיהוי כתב יד במחשבים ניידים בעלי לוח כתיבה ועט המצוידים בחלונות XP, חלונות ויסטה, ו- חלונות 7, כאשר השינוי המרכזי שהפך את התוכנה לטובה יותר, הוא שהיא אינה מנסה ללמוד את הצורה בה המשתמש כותב, אלא משווה את הכתיבה לבסיס נתונים המכיל בתוכו אלפי צורות כתיבה של כל אות בנפרד. צורה זו, אינה דומה לגרסה המותקנת במחשבי כף היד המבוססים על חלונות. למרות אלו, חוסר של רווחים שווים, כתיבה מחוץ לקו, כתיבה בכתב מחובר ואותיות בעלות גדלים לא שווים מבלבלים את התוכנה.
דרך זיהוי הכתב המקוון.