מתקיים דיון בו מוצע לאחד ערך זה עם הערך זיהוי תווים אופטי.
| ||
מתקיים דיון בו מוצע לאחד ערך זה עם הערך זיהוי תווים אופטי. | |
זיהוי כתב הוא טכנולוגיה המאפשרת למחשב לזהות תווים שנכתבו בכתב יד אנושי ולתרגמם לתווים דיגיטליים. במחשבי כף היד של חברת פאלם תכונה זו ידועה בשם "גרפיטי".
ההמרה מתבצעת באמצעות מעקב אחר תנועה של מצביע מיוחד (בדרך כלל בצורת עט) על גבי המסך או משטח אחר, האלגוריתם המשמש להמרה דומה לזה המשמש ב-OCR (זיהוי תווים אופטי), אך משתמש גם בסדר הכתיבה של האות - מידע שלא קיים בביצוע OCR. מצד שני זיהוי כתב יד (בניגוד לדפוס במקרה של OCR) מקשה את הזיהוי. רוב התוכנות שמיישמות את זיהוי הכתב מצפות שהמשתמש יתאים עצמו לצורות המוגדרות מראש בתוכנה, ומיעוטן משתמשות במערכת לומדת על מנת ללמוד את המורפולוגיה של כל משתמש לגופו - ובכך מקלות על המשתמש והופכות את התהליך לשוטף יותר.
הטכנולוגיה קשה ליישום בשל העובדה שבני אדם כותבים בצורות שונות מאוד, והתוכנה לזיהוי כתב היד נדרשת למצוא מאפיינים משותפים לאותן אותיות הנכתבות בידי בני אדם שונים.
שיטות לזיהוי כתב:
גם בשנים האחרונות לאחר מהפכת המחשוב מידע רב מאוד נכתב בכל רחבי העולם בכתב יד. רשימות, הערות, טפסים, מחברות, חוזים, דו"חות ומרשמים נכתבים לעיתים ביד ולא על גבי מחשב. כתיבה ידנית נפוצה עדיין גם במוסדות, בחברות ובארגונים המתקדמים ביותר, עקב מספר סיבות: הנוחות שבכתיבה ראשונית של טיוטה ביד, רישום בצורה לא שגרתית, פרטיות בכתיבה, כתיבה שקטה יותר מאשר מקלדת, כתיבה בשפות שאינן מוכרות על ידי המחשב או שבלתי אפשרי להזין אותן באמצעות מקלדת ועוד.
כתיבה ידנית נפוצה גם במחשבי כף יד, בהם נוח יותר להשתמש בעט סימון ומסך מגע מאשר לחבר מקלדת או להשתמש במקלדת וירטואלית המוצגת על המסך.
בנוסף, חומר יקר ועתיק עדיין טמון בספרים עתיקים הכתובים בכתב יד ולא בדפוס.
המגמה בעולם היא להשתמש במידע בפורמט דיגיטלי על מנת לשתף לאפשר גישה לחומר כמעט מכל מקום בעולם, לשתף אותו בקלות עם אנשים אחרים ולאפשר גישה נוחה יותר אליו. לצורך כך במקרים בהם עושים שימוש בכתב יד יש להמיר אותו תחילה לפורמט דיגיטלי.
ניתן אמנם לסרוק לקובץ תמונה כל כתב יד בצורה פשוטה, אך לא ניתן יהיה לערוך את הטקסט או לחפש בתוכן שבו. לכן יש צורך בטכנולוגיה שתאפשר להמיר את הסימנים הכתובים לסימנים שמחשב ידע לזהות.
קיים תחום גדול ומתפתח של מחקר ליצירת תוכנות המזהות כתב יד. בשונה מזיהוי אוטומטי של דפוס, הנחשב קל יחסית לביצוע ואכן הביא כבר לתוצאות טובות רבות בעולם, הרי שזיהוי אוטומטי של כתב יד מהווה עדיין אתגר גדול בפני המפתחים. חברות גדולות עמלות שנים כדי לבנות אלגוריתם יעיל, ועד כה הן נחלו תוצאות חלקיות בלבד. הבעיות הגדולות שמציב זיהוי של כתב יד בפני המפתחים הן השינוי של הכתב מאדם לאדם, יישור טקסט שנכתב תוך שינוי זווית הכתיבה בהתאם לעמדת הכותב, השוני הקל ולעיתים הרב בין אותן אותיות אצל הכותב האנושי ועוד.
זיהוי כתב יד מתחלק לשתי טכנולוגיות עיקריות:
זיהוי כתב יד מקוון החל במחשבי כף היד הראשונים. תחילה הוציאה חברת אפל מחשב כף יד עם יכולת זיהוי כתב מקוונת, שיצרה רושם ראשוני רע, וגם הגרסה הבאה והמשופרת מאוד שלה, שכללה תיקון שגיאות כתיב, לא הצליחה לתקן את הרושם הראשוני[דרוש מקור]. מאוחר יותר במערכת ההפעלה PenPoint (שפעלה במחשבי לוח של IBM ושל NCR), נכללה צורת זיהוי שהועברה גם לחלונות של מיקרוסופט, אך גם תוכנות אלו לא הצליחו[דרוש מקור]. ההצלחה היחסית הראשונה הייתה של מחשבי פאלם, עם תוכנת ה- Graffiti שלהם, שאפיינה סדרת משיכות עט לכל תו בהתאם למשתמש, דבר שהקטין את השגיאות, אך הגדיל את עקומת הלמידה של המכשיר. צורה מוצלחת יותר, לדעתם רבים, קיימת בגרסה של מיקרוסופט לזיהוי כתב יד במחשבים ניידים בעלי לוח כתיבה ועט המצוידים בחלונות XP, חלונות ויסטה, ו- חלונות 7, כאשר השינוי המרכזי שהפך את התוכנה לטובה יותר, הוא שהיא אינה מנסה ללמוד את הצורה בה המשתמש כותב, אלא משווה את הכתיבה לבסיס נתונים המכיל בתוכו אלפי צורות כתיבה של כל אות בנפרד. צורה זו, אינה דומה לגרסה המותקנת במחשבי כף היד המבוססים על חלונות. למרות אלו, חוסר של רווחים שווים, כתיבה מחוץ לקו, כתיבה בכתב מחובר ואותיות בעלות גדלים לא שווים מבלבלים את התוכנה.
זיהוי מקוון מאפשר המרת טקסט בעזרת עט או לוח אלקטרוני מיוחד המזהים את תנועות הכלי בזמן הכתיבה עצמה. התנועות מסומנות על ידי המחשב בעזרת וקטור התנועה שלהן בכיווני X ו-Y, ווקטורים אלו נרשמים על ידי התוכנה, שמזהה מקטעים נפרדים של מילים ואותיות, ומנסה לנתח אותן - כל אחת בנפרד. את האותיות והמילים המתקבלות, התוכנה משווה בצורה סטטיסטית או ישירה למאגר נתונים שבו נרשמו המילים והאותיות של משתמש או משתמשים רבים שנדגמו, ולעיתים נעשה שימוש במילון המאפשר לגלות טעויות נפוצות.
זיהוי כתב יד מקוון אמנם מוכר כבר בציבור ואינו עוד תחום חדש, אך הוא עדיין לא תפס תאוצה, במיוחד במחשבים שניתן להשתמש בהם במקלדת, שהיא בטוחה ואמינה יותר. כמעט בכל מחשב כף יד ניתן כבר להשתמש בצורה זו או אחרת של זיהוי כתב יד, אך אמינות היא עדיין בעיה: גם מחשב שאמינות זיהוי כתב היד שלו היא 98%, עדיין דורש לתקן אות כל חמישים אותיות, בעוד שמקלדת דורשת לתקן אפס; מקלדת היא גם מהירה יותר לכל אחד שתרגל אותה מעט בחייו.
שיטת קריאה נוספת היא כתיבה בעזרת עט הכותב בעזרת דיו רגיל, אולם מכיל בתוכו גם שבב המזהה את התנועות שהוא מבצע. צורה זו עדיין בחיתוליה ואינה מסחרית עדיין.
פיתוח אלגוריתמים ושיטות שונות לזיהוי כתב יד הוא נושא מאוד מרכזי ומושקע בו מאמץ מחקרי ופיתוחי רב. קיימים גם ארגונים שונים לקידום הנושא, המקיימים כנסים מסוגים שונים כמו ה-International Workshop on Frontiers in Handwriting Recognition הנערך מדי שנה.
זיהוי לא מקוון של תמונה שלמה המכילה בתוכה טקסט, מורכב מניתוח התמונה וזיהוי המקטעים המכילים בתוכם מילים, ואחר כך המרתם לאותיות הניתנות לעריכה.
הבעיה כאן, כזכור, היא שהטקסט נייח ולא ניתן להשתמש בצורת הכתיבה של המשתמש לטובת הזיהוי והסיווג. עם זאת, בשל היכולת להשתמש בבלשנות ובסטטיסטיקות מתאימות, ניתן לפענח את הכתוב ביעילות גבוהה למדי.
השימוש בשיטה זו נעשה בעיקר על ידי חברות המשתמשות הרבה בכתיבה של לקוחות שונים (כמו בנקים, חברות ביטוח, דואר וכו').
המחקרים נעשים על ידי ארגונים כמו IAPR (The International Association for Pattern Recognition – האיגוד הבינ"ל לזיהוי תבניות), IWFHR (The International Workshop for Handwriting Recognition – האיגוד הבינ"ל לזיהוי כתב), IEEE ועוד.
זיהוי של כתב הוא למעשה סוג של זיהוי תבניות, ולכן אופיו דומה מאוד לזה של זיהוי תמונה בתוך תמונה אחרת. עם זאת, בשל האופי המיוחד של כתב היד והצורות השונות שכל אות יכולה להיכתב בה, זיהוי האותיות נעשה באופן כללי, בכמה שלבים שאינם כה דומים לנהוג:
סוג נוסף של ייצוג מחדש הוא ייצוג סטטיסטי. בשיטה זו מחשבים את ההיסטוגרמה של מיקום צמתים וקווים בצורות שונות באותיות, צורת הגבולות, פיצולים משולשים ועוד. מחושבת גם השכיחות של מעבר קווים מחוץ לגבול מסוים שנקבע מראש או שיפועים מיוחדים של האות. שכיחויות אלו נרשמות בווקטורים או מטריצות שעליהן ניתן לבצע פעולות הקשורות לניתוח האות.
הייצוג האחרון הוא ייצוג לפי טופולוגיה. תחילה מפעילים אלגוריתם הדקה (Thinning) ואז סופרים את הצמתים, העיקולים, הפיצולים ומודדים את המיקום היחסי שלהם, דבר היוצר אפיון ייחודי לכל אות. משתמשים גם ביחסי אורך – רוחב, שינוי בעיקול האות, יציאה מחוץ לשורה ועוד. ייצוג טופולוגיה נעשה גם בשיטה הנפוצה של קידוד שרשרת – זוהי בעצם חלוקה של האות לשרשרת של וקטורים בסיסיים, באורכים קבועים ובכיוונים שונים, לפי שושנת הרוחות. כך אות הופכת לשרשרת של מספרים, שכל אחד מציין וקטור אחר.
השיטות כיום עובדות ברובן על תמונות בינאריות, אך הכרה בחשיבות ההפרש בגווני האפור הנובע מלחצים שונים של היד בשעת הכתיבה מביאה לפיתוח מואץ של אלגוריתמים לניתוח של כתב היד בצורתו המקורית.
קיימות גם שיטות המעוותות את צורת האות בכמה אפשרויות, כדי לנסות להתאים אותה לבסיס נתונים קיים. יש להיזהר מעיוות יתר, שהרי עם מספיק עיוות נוכל להגיע לכל אות אחרת שהיא... לכן מגדירים מראש את כללי העיוות בצורה שתצמצם את שאר האפשרויות, ולא תגרום לאות אחת להפוך לשנייה.
קיימות שיטות המנתחות את המילה השלמה. שיטות אלו עוקפות את הבעיה של חלוקת המילה לאותיות, משימה קשה במיוחד ומבטיחה טעויות בכתב יד, אך הן תלויות בגודלו של אוצר המילים המוגבל בהכרח של בסיס הנתונים, ודורשות יכולת חישוב גבוהה, במיוחד במילים ארוכות. לשיטות אלו יש בדרך כלל אחוזי הצלחה נמוכים מאחוזי ההצלחה של השיטות המנתחות אות אחר אות.
השוואת תבניות מול השוואה ישירה: השוואת תבניות היא סוג של השוואה לפי וקטורים ופיקסלים הקיימים באות. השוואה מלאה היא השוואה שבה משווים כל פיקסל ופיקסל בתמונת המקור לפיקסלים המקבילים להם בתמונת היעד (או לחלק גדול מהם).
כאשר משתמשים בשיטות סטטיסטיות, מחפשים תכונות של האות או המילה המופיעים בהתפלגות אחידה, נורמלית או גאוסיאנית. נדרשת תכונה שיש מספיק מופעים ממנה (אחרת קשה להסתמך עליה) וכן תכונות המייצגות את האות כמה שיותר.
את התוכנה "מלמדים" (מראש וגם תוך כדי פעולתה) איך נראית כל אות באלפי דרכים שונות, והיא תיצור קשרים הדומים לקשרים עצביים בין הצורות הדומות של אותה אות. כאשר התוכנה תפגוש צורה חדשה של האות היא תשווה אותה לכל הצורות שיש בידה (כלומר, תעביר אותה דרך כל הצמתים לבדיקה של מה הם מכירים) ותקבע מה האותיות הדומות ביותר, ובנוסף, תוסיף את האות החדשה לאוסף של האותיות הקודמות בקשר חלש. ככל שהתוכנה תראה יותר אותיות דומות לכך, הקשרים שלה לאותן אותיות יתחזקו, כמו שקורה ברשתות של הנוירונים במוח. אגב, אם אות זוהתה בטעות, לא ניתן לגשת לקרבי התוכנה ולתקן זאת. יש להראות לתוכנה אותיות דומות לה הכתובות בצורה שדומה מעט יותר לאות האמיתית, וכך לחזק את הקשר לאות האמיתית. כלומר, הגישה החישובית היא מקבילית, מאחר שהאות תעבור דרך כל הצמתים, אך במשקלים שונים הניתנים לה על ידי כל צומת. ניתן להשוות זאת לווקטור העובר דרך כל הצמתים והוא משתנה לאחר מעבר בכל "עמודה" של הצמתים.
מורכבות הרשת תלויה במספר הצמתים הנמצאים בה, היוצרים מספר רב של עמודות. קיימים מחקרים המשתמשים גם ברשתות תלת־ממדיות, והם טוענים לעקומת למידה מהירה וכן לתוצאות טובות יותר. מחקרים נוספים הראו כי למעשה, למרות השוני בגישה, רשתות עצביות פועלות כמו שיטות לזיהוי מרקמים (מבחינת פעולתו הסופית של המחשב).
במחקרים מסוימים, שבהם נתגלה כי שיטת HMM לפעמים "קשוחה מדי" עם האותיות והיא אינה מזהה תווים שאינם דומים מאוד לדוגמאות שיש בידה, מחברים כמה מצבים ביחד ליצירת מצבים חדשים וכך מוסיפים גמישות מסוימת לשיטה. ניתוחים שנערכו מגלים כי אכן משתפרים בהרבה סיכויי ההצלחה של זיהוי התו. לא ניתן לחבר יותר מעשרים דוגמאות של תווים מבלי להגביר מאוד את כוח החישוב הנדרש, אך בדרך כלל לא צריך יותר מעשרה כדי לקבל תוצאות טובות מאוד (מעל 95%).
לימוד התוכנה לזהות תווים בצורה הטובה ביותר כולל בחירה של קבוצת דוגמאות מסוימת, המייצגת את התו בצורה הטובה ביותר. דוגמאות אלו ישמשו ליצירת הפונקציות בהם נשתמש בכל מצב.
בסיסי נתונים עולמיים קיימים כבר משנות ה-90. הם מאגדים בתוכם דוגמאות רבות לשיטות כתיבה שונות של אותיות משפות רבות. חוקרים, המבקשים לבדוק את האלגוריתמים שכתבו, יכולים להסתייע בבסיס הנתונים להשגת צורות רבות של אותיות כתובות בכתב יד. כמו כן ניתן להוריד חלק ממנו כבסיס נתונים של אלגוריתם מסוים. בסיסי הנתונים גדולים מאוד ולכן לא תמיד משתמשים בכולו כבסיס נתונים, אלא רק בחלק נבחר המייצג כמה שיותר צורות שונות. מגבלה זו של גודל קיימת בעיקר במחשבים ידניים, שאין להם הרבה מקום לבזבז ואין להם גם עצמת חישוב גבוהה.
בסיסי הנתונים מתחלקים לחלקים שונים, הכוללים ספרות, תווים באותיות גדולות, תווים באותיות קטנות, סימנים, צירופים של כל הנ"ל ועוד. כך ניתן לבדוק את התוכנה על סוגים שונים של תווים או על צירוף שלהם. דוגמה אחת לבסיס נתונים הוא UNIPEN. הוא מכיל שמונה סוגי מידע, ייחודי ומעורב, בשפה האנגלית. הוא מכיל דוגמאות רבות והוא מקובץ בצורה ייחודית הנקראת inkML (אשר משתנה לצורה אחרת, UPX, נכון לזמן כתיבת מסמך זה). נכון ל-2004, יש לו כ-15000 דוגמאות שונות לספרות בלבד.
לשפה העברית אין עדיין בסיס נתונים רציני משלה לכתב יד, אם כי הדבר בשלבי פיתוח בכמה מקומות (כמו תוכנת גרפיטי למשל). לשון הקודש מציבה אתגר רציני למפתחים, ובהדגמות הראשונות של חלונות ויסטה למשל נתברר כי לקח לה כמעט עשר דקות לנתח וללמוד מילה אחת למשתמש חדש (אם כי המצב השתפר בינתיים). ניתן גם להשתמש בתוכנות הלומדות את כתב היד וללמד אותן את התווים העבריים, אבל עדיין אין לתוכנה עצמה בקרה על התוצאות שלה, ומלבד זאת, התוכנה צריכה להיות אחת שיודעת לכתוב מימין לשמאל.
כחלק מעבודת הגמר לקורס כתבתי קריטריונים לא מחייבים לבחירת הדרך לזיהוי כתב יד. מאחר שכפי שראינו, קיימות דרכים רבות למימוש אלגוריתם לזיהוי כתב יד, נדרשת דרך כלשהי לבחור ביניהן. יש לקבוע קריטריונים גם למפתח, שרוצה לבחור אלגוריתם יעיל שיביא לתוצאות הטובות ביותר בזמן הקצר ביותר, בהתאם לכוח החישוב הנתון, וגם למשתמש, שרוצה לדעת איזו מערכת קיימת לקנות. זיהוי כתב יד – בחירת שיטה למפתח
מפתח הרוצה לבחור שיטה בה הוא ישתמש לזיהוי כתב יד, חייב לקבוע קודם כל את תכונות הזיהוי הכלליות:
נפרט כל אחד מהנושאים:
אם עצמת המחשוב גבוהה מאוד (הכוונה למחשב שולחני ומעלה), ניתן יהיה להשתמש ברשתות עצביות המבוססות על צמתים רבים, כך שהן יכולות להיעזר בבסיס נתונים רחב מאוד ובעצמת חישוב מסובכת. אם עצמת החישוב נמוכה, אפשר יהיה להתפשר על בסיס נתונים קטן יותר ועל אלגוריתם המבוסס על ניתוח הצורה.
כדי להשיג אחוזי הצלחה גבוהים (במיוחד במכשירים בעלי משאבים מועטים) כדאי להשתמש בתוכנה שתלמד את כתב היד של המשתמש. אם בסיס הנתונים של התוכנה הוא מוכוון משתמש, גם אלגוריתם פשוט יחסית יוכל לפענח את הכתב בקלות יחסית. לעומת זאת, אם משתמשים בבסיס נתונים מוכן מראש, נוכל אמנם להגיע למשתמשים רבים במהירות, אך נדרש לבסיס נתונים גדול ולמשאבים גדולים כדי להגיע לאחוזי הצלחה גבוהים. ככל שהתוכנה תתאים ליותר אנשים, היא תצטרך אלגוריתם חזק יותר (למשל, להגדיל את מספר הצמתים באלגוריתם HMM, או, אם האלגוריתם שלנו הוא אלגוריתם השוואה פשוט, להגדיל את מספר האפשרויות להגמשת ההשוואה).
כאן צריך להחליט אם דרך ההפעלה תהיה מקוונת או לא. אם ההפעלה מקוונת, בעצם צריך לפענח כל אות מיד עם כתיבתה. למעשה, זיהוי כתב יד מקוון שבו כל אות רשומה בנפרד אינו מסובך – הזמן שלוקח לנו לכתוב גדול מזה שלוקח לרוב האלגוריתמים לפענח אות אחת (0.3 שניות במחשב כף יד, נכון להיום). עם זאת, מפתחים רבים כיום רוצים לפענח מילה שלמה בבת אחת, כך שיוכלו להפעיל גם בדיקות דקדוקיות מסוימות (או אפילו תחביריות).
לזיהוי כתב יד בצורה מקוונת אפשרות להשתמש לא רק באות המוגמרת, אלא גם בצורת הכתיבה עצמה. כלומר, ניתן לדעת איך המשתמש כתב כל קו – מימין לשמאל, מלמטה למעלה, הפעיל לחץ חזק יותר על האזור הזה של האות וכו' (הפעלת לחץ חזק יותר על אזור מסוים בקו פירושה שהקו כאן יותר חשוב מהמשכו, שנכתב רק כדי לצאת ידי חובה. למשל, סוף הקו התחתון של "ך" (כ' סופית) לא חייבת להיגמר בנקודה מסוימת). יכולת זו יכולה לחולל פלאים באחוזי הזיהוי הנכון אם משתמשים בה בתבונה, ובלבד שמשתמשים בה בצורה נבונה. נראה שהצורה הטובה ביותר להשתמש ביכולת זו היא בתוכנות הלומדות את אופי הכתיבה של כל משתמש.
אין לשכוח כי תוכנה המשתמשת בקריאה כזו דורשת חומרה מיוחדת, המסוגלת לקלוט את הכתיבה בצורה מקוונת; חומרה כזו קיימת ונפוצה כבר, ולמפתח נותר אך ורק להשתמש בנתונים שבידו (ואיך משתמשים בחומרה, בהנחה שהוא לא רוצה לפתח אותה בעצמו על ידי תכנות מיקרו בקרים או אלטרות).
אם מפענחים מילים שלמות, הרי שבסיס הנתונים צריך להיות עצום בגודלו ואמור להכיל את כל המילים בשפה על הטיותיהן, אלא אם כן זהו מנגנון זיהוי כתב יד ייעודי לתפקיד מסוים. בסיס נתונים בגודל כזה רצוי מאוד לרכוש ולא לפתח בעצמנו, אלא אם יש לנו צוות שלם של קלדנים. בנוסף, הוא ידרוש עצמת חישוב גדולה שתצליח לזהות מילה גם כאשר היא כתובה בכמה דרכים שונות. במילים אחרות, אלא אם כן יש לנו מחשב טוב מאוד והרבה זמן לפענוח המילה, כדאי לבנות אלגוריתם המבוסס על זיהוי אותיות ולא מילים.
שפה בעלת כתב מחובר תעדיף אולי לזהות את המילה השלמה (או חלקי מילים נפוצים) ואילו שפה שבה אין כתב מחובר תעדיף לזהות כל אות בנפרד. שפה, המורכבת מתווים מסובכים הדומים זה לזה, כמו השפות האסיאתיות, נדרשת לאלגוריתם המייצג את האות מחדש בצורה שבה מאפייני כל אות ואות יגיעו לכדי מיצוי מקסימלי של ההבדלים. מציאת האלגוריתם המתאים דורשת מחקר מעמיק של אופי השפה.
פיתוח של אלגוריתם המבוסס על לימוד המשתמש, שבו העבודה כוללת השואה די פשוטה לבסיס הנתונים הנבנה, ייקח פחות זמן מאחד המבוסס על בסיס נתונים רחב. בנוסף, אלגוריתם מתמטי הכולל התמרה מתקדמת מסובך יותר לפיתוח מאשר אחד המכיל פירוק לווקטורים (אם כי ייתכן בהחלט שהעיבוד הנוסף יהיה מסובך אף יותר).
אם התוכנה תצטרך לעבוד עם יותר משפה אחת, כדאי מאוד למפתח לעבוד על אלגוריתם המפענח את האותיות ולא את המילים. הפענוח יהיה תואם לצורות שניתן יהיה להזין למחשב, כלומר, רצוי אלגוריתם בצורת רשת עצבית עם דחיסה לפי צורה ופירוק לווקטורים ולא דחיסה לפי דקדוק. כך יהיה קל יותר להוסיף שפות עתידיות.
בדרך כלל אין המשתמש מודע לשיטה שבה נכתבה תוכנת זיהוי הכתב, וגם החברה המוכרת את התוכנה אינה מספרת זאת, אלא בקווים כלליים. עם זאת, ניתן להצביע על מס' נקודות חשובות בבואנו לבחור תוכנה שכזו:
נעבור על כל אחד מהנושאים:
אם החומרה שברשותנו בעלת ביצועים בינוניים, לדוגמה מחשב כף יד, לא נשתמש בתוכנה המבטיחה לנו חישובים דקדוקיים רבים והדורשת משאבי חומרה גדולים מדי. תספיק לנו בהחלט תוכנה שהוכיחה את עצמה בעבודה על דגמים קודמים, ונשים לב למהירות החישוב יותר מאשר לכמות המילים בבסיס הנתונים. לעומת זאת, עבודה על מחשב שולחני תאפשר שימוש באלגוריתמים המתקדמים ביותר.
זיהוי מקוון, כמו בסעיף הקודם, דורש עבודה מהירה, ואילו זיהוי לא מקוון יאפשר לנו הסתייעות בתוכנה מתוחכמת בהרבה.
אם התוכנה מיועדת לאדם אחד בלבד, כמו במחשב כף יד אישי או במחשב נישא, כדאי לקנות תוכנה הלומדת את כתב היד שלנו. לתוכנה שמכירה את צורות האותיות האישיות שלנו יש יתרון רב על פני תוכנה שמנסה להשוות כל סימן לאלפי סימנים אחרים, ואחוז השגיאות בה קטן מאוד. בדרך כלל לא לוקח הרבה זמן ללמד תוכנה כזו (כעשר דקות על חצי שעה) וההשקעה משתלמת בחסכון בזמן תיקון השגיאות של התוכנה שיבוא אחר כך. עם זאת, תוכנה שאמורה לעבוד עם מספר כותבים רב, ייתכן שכדאי שתסתמך על בסיס נתונים משלה, במיוחד אם התוכנה אמורה לשמש כל אחד מספר זעום של פעמים ואם הכותב אינו נוכח, כמו במקרים של פענוח כתבי יד עתיקים.
אם משתמשים בתוכנה לפענוח סיכומים בתורת הקוונטים, לדוגמה, כדאי מאוד שהתוכנה תהיה בעלת בסיס נתונים טוב מאוד, או לפחות יכולת לפענח גם ספרות ואותיות לועזיות, אחרת יהיה קשה למצוא ולתקן את הטעויות. לעומת זאת, אם רק מעתיקים למחשב סיכומי דיונים, אין סיבה להשקיע בתוכנה מתוחכמת מדי ואחוז שגיאות לא גדול בדרך כלל ניתן לספיגה ולתיקון במהירות.
עם זאת, עקב היות התחום מתפתח ובחיתוליו, חברות רבות כן מדגישות את הדרך לפתרון הבעיה בה בחרו, ולו כדי להרשים את הצרכנים האפשריים בידע ובתחכום שלהם. הראיה לכך היא אתרי הבית של חברות רבות המציגות בפירוט רב את תהליך הזיהוי אצלן בתוכנה, ומדגישות את זמן הפיתוח הרב שעברו, אחרת לא יאמינו להן שהן מגיעות לתוצאות טובות.
העין האנושית זקוקה ל-70-80% זיהוי בלבד של האותיות כדי להבין כתב, מכיוון שהעין מגובה בעוצמת חישוב גבוהה מאוד. כך בני אדם מסוגלים לקרוא גם כתבים שבהם חלק מהאותיות לא ניתנות לזיהוי כלל, אם יעמדו בפני עצמן, ולמעשה ניתן להבין משפט גם אם מילים שלמות חסרות בו. למחשבים עדיין קשה מאוד להשלים משפטים או מילים בעצמם. לשם כך הם צריכים להבין דקדוק, תחביר ואף להבין את ההקשר שבו נכתב אותו משפט. למשל, כמעט כל בני האדם יבינו כי המילה החסרה במשפט "_____ שלי אמרה לי ללכת לסדר את החדר", היא כנראה אמא, אך שום מחשב לא יבין זאת, כיוון שהמחשב לא היה ילד קטן שביקשו ממנו ללכת לסדר את החדר. מאותה סיבה, מחשב גם לא יבין בדיחות. כלומר, מחשב, נכון לזמן זה, לא יכול להתגבר על האדם באחוזי זיהוי נכונים.
עם זאת, המחשב בהחלט יכול לעקוף את האדם במהירות שבה הוא מזהה את הכתוב. כל שיידרש מהאדם אז הוא לא לכתוב את כל כתב היד, אלא רק לקרוא ולבדוק אותו, פעולה מהירה בהרבה, ולתקן שגיאות פה ושם.