Ligature

הכל אודות OCR


הכל אודות OCR
 

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

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

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

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

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

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

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

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

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

בפני שיטה זו ניצבו שתי בעיות :

1. 

בכל פעם שגודל האותיות או הגופן השתנה (ואפילו במעט) היה צורך ללמד את המחשב הכל שוב מבראשית. 
 

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

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


ניתוח טופולוגי

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

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

שתי הבעיות העקריות המתעוררות בשיטה זו הינן: 

1.  מבנה כל אות בפונטים השונים, שונה מבחינה טופולוגית מפונט לפונט בצורה מהותית.

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

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

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

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


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

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

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

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

אין אדם המסביר לתלמיד כיתה א' כי האות "א" מורכבת מקו אלכסוני המתחיל בצד שמאל למעלה, ויורד לצד ימין למטה
בזווית שבין 35־40 מעלות, עם קו אנכי שעולה משני השלישים התחתונים של האלכסון ועוד קו אנכי. 

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

הגיון מטושטש 

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

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


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

רשתות הניורונים 
עוצמתן של רשתות־הנוירונים מתבטאת בשתי נקודות: 

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


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

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

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

מודל מתמטי הסתברותי 

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

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

יחד עם זאת, רשתות אינן הכל.

חשוב להבין שמנוע טוב לזיהוי צורת האותיות אינו מספיק לתוכנת הזיהוי האופטי.
ישנם אותיות וסימנים שאין ביניהם כל הבדלי צורה, כמו למשל הספרה 1 והאות וו שבפונטים מסויימים הם זהים. כמו גם ה־"
o"
והספרה 0, או ה־" 
S" הקטנה והגדולה. עבור מקרים אלה נדרשים אלגוריתמים מורפולוגיים וטופולוגיים, על מנת להגיע להכרעה הנכונה. 

בודק איות סטוכסטי - הבעיה

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

בודק איות סטוכסטי -הפתרון

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

אחרי הכל, אין כמו העין האנושית 

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

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

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

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

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

ראשי | אודותינו | תמיכה | תקנון האתר | צור קשר | Ligature |
כל הזכויות שמורות LIGATURE