44
Livnat zahav & Nir golan Line segmentation for degraded handwritten historical documents Itay Bar-Yosef, Nate Hagbi, Klara Kedem

Livnat zahav & Nir golan Line segmentation for degraded handwritten historical documents Itay Bar-Yosef, Nate Hagbi, Klara Kedem

  • View
    218

  • Download
    2

Embed Size (px)

Citation preview

Livnat zahav & Nir golan

Line segmentation for degraded

handwritten historical documents

Line segmentation for degraded

handwritten historical documents

Itay Bar-Yosef, Nate Hagbi, Klara Kedem

הקדמההקדמה

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

חלק גדול מהמסמכים סובלים מבלאי קשה, אם מדובר בדפים קרועים, מחיקה של חלק

.מהכתוב או כתמי דיו

הקדמההקדמה

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

היסטוריים.

וניגע בחסרונות של כל אחד מהאלגוריתמים הללו.

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

שנציג, האלגוריתם שנדון בו יעבוד על המסמך ישירות ולא על העיבוד הבינארי שלו

)0-255 לשחור או להפך(. כלומר ינתח את המסמך בגווני אפור )תחום בין 1 ללבן ו-0)

.LPP-Local projection profile analysis,זאת בעזרת שיטה הנקראת

LPP-Local Projection ProfileLPP-Local Projection Profile

, או בעברית LPPלפני שנעסוק בהבנת האלגוריתמים יש צורך בהבנת שיטת ה-

פרופיל הטלה מקומי.

ע"י מעבר על הציר האופקי של תמונת המסמך נסכום את ערכי הפיקסלים ונבנה

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

האופקי בהטלה לציר האנכי.

נקודות השיא בגרף מייצגות שורות טקסט ואילו נקודות המינימום הקרויות "עמקים"

מייצגות

את הרווח בין השורות.

LPPיתרונות וחסרונות של שיטת ה - LPPיתרונות וחסרונות של שיטת ה-

:יש כמה יתרונות בשיטת פרופיל ההטלה

אין צורך להפוך את התמונה לבינארית. מה שהופך את השיטה למאוד מתאימה .1

.לעבודה ישירה על התמונה בגווני אפור

.השיטה עמידה בפני רעשים והפרעות.2

LPPיתרונות וחסרונות של שיטת ה - LPPיתרונות וחסרונות של שיטת ה-

החיסרון המרכזי של השימוש בהטלה הוא הרגישות הגבוהה לנטיית השורות

.במסמך. אפילו זווית מזערית יכולה להפוך את ההטלה ללא יעילה

סיבוב המסמך כך שהשורות תהיינה ישרות יכולה להוות פתרון טוב אך זו לא תמיד

.קיימת וזאת כיוון שלרוב לכל אחת מן השורות במסמך יש זווית שונה

אלגוריתמים קיימים לפתרוןבעיית השורות הנטויות

אלגוריתמים קיימים לפתרוןבעיית השורות הנטויות

" חלוקת י ע השורות של הנטייה בעיית את פותרים מהאלגוריתמים חלק

וביצוע חופפות לא אנכיות לרצועות הרצועות LPPהמסמך מן אחת כל על

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

הטקסט.

. " מוגדרים" לחוקים בהתאם ביחד מחוברים רצופות רצועות שתי של עמקים

" מכיוון " זאת מדרגות בצורת היא המתקבלת ההפרדה כי לראות ניתן

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

אלגוריתמים קיימים לפתרוןבעיית השורות הנטויות

אלגוריתמים קיימים לפתרוןבעיית השורות הנטויות

(blurredאלגוריתם נוסף יוצר תמונה מטושטשת )

(.d.1 )תמונה ALCM-Adaptive Local Connectivity Map שנקראת

ALCM היא תמונה בגווני אפור אשר בה כל ערך של פיקסל מחושב בהתאם לערכי

לתמונה בינארית ALCMהפיקסלים השכנים לו בתמונה המקורית. ממירים את תוצאת ה-

. בעקבות פעולה זו מתגלות תבניות ברורות של שורות טקסט thresholdingע"י ביצוע

(.c.1שמהן ניתן להפיק את ההפרדה בין השורות. )תמונה

אלגוריתמים קיימים לפתרוןבעיית השורות הנטויות

אלגוריתמים קיימים לפתרוןבעיית השורות הנטויות

ישנן שתי מגבלות לשיטה זו, הראשונה היא שניתן לתמוך רק בזווית מסוימת של

שורות הטקסט. והשנייה היא שהתמונה המטושטשת שמתקבלת )תמונת ה-

ALCM תלויה באופן ישיר בבלאי שממנו סובל המסמך שאותו מעבדים. כתוצאה )

מכך הפיכת המסמך לתמונה בינארית קשה לא פחות מהפיכת המסמך המקורי

לתמונה בינארית.

1.d 1.c1.a

האלגוריתם בו עוסק המאמרהאלגוריתם בו עוסק המאמר

האלגוריתם פותר את הבעיות שבהם נתקלו האלגוריתמים הקודמים שהצגנו.

נחלק את האלגוריתם לשני שלבים:

LPP. חישוב 1

. מציאת מינימום )מציאת עמקים(2

שלב ראשון של האלגוריתםשלב ראשון של האלגוריתם

לרצועה הכי שמאלית של המסמך. )מדובר בכתב לטיני. אם היה מדובר LPPחישוב

בעברית או ערבית היינו מבצעים את הפעולה על הרצועה הימנית ביותר במסמך(.

ע"י הוספת עמודה נוספת לימין LPPבמהלך ביצוע האלגוריתם נעדכן את ה-

LPPהרצועה המוזזת והורדת העמודה השמאלית ביותר ברצועה, תוך כדי ביצוע ה-

לכל פיקסל.

שלב שני של האלגוריתםשלב שני של האלגוריתם

למצוא מינימום מקומי )מציאת "העמקים"( לכל פרופיל הטלה.

, וכעת בהינתן פרופיל ההטלה נבצע החלקה LPPבשלב הקודם ביצענו חישוב

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

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

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

.לרווח בין שתי שורות טקסט שכנות

, לידי בא הרעש שלנו במקרה לתמונה מתווסף אשר רעש ישנו תמונה בכל

" . פרופיל לחישוב מתווסף ל הנ הרעש המסמך של ובלאי דיו ככתמי ביטוי

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

. ההטלה בפרופיל המינימום נקודות לגבי גם אופן באותו רעש .ללא

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

. כאשר מקומי מינימום ולא גלובלי מינימום לקבל מנת על מבצעים ההחלקה

" רעש " ללא הפונקציה של אמיתי מינימום מתאר הגלובלי .המינימום

נגזרת ראשונה של גאוסנגזרת ראשונה של גאוס

פונקציה עם רעש

נגזרת ראשונה של

גאוס

הפונקציה המוחלקת

סקירה מעמיקה של האלגוריתםסקירה מעמיקה של האלגוריתם

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

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

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

חשובים שמשפיעים על רוחב הרצועה אשר משפיעים מאוד על הביצועים של

. LPPגישת ה-

סקירה מעמיקה של האלגוריתםסקירה מעמיקה של האלגוריתם

H את המרווח האנכי בין שתי שורות הטקסט ו-∆L∆נסמן ב- את זווית הנטייה,

.Lאת הקו המאונך ל-∆

סקירה מעמיקה של האלגוריתםסקירה מעמיקה של האלגוריתם

תוצאה טובה של רוחב הרצועה המקומית תתקבל ע"י גילוי נכון של "העמק" בין

שתי השורות. כפי שמתואר בתמונה בשקופית הקודמת.

כרוחב הרצועה יפיק ערך מינימום יחיד של פרופיל ההטלה.H∆בחירת

: עדין יופקו ערכי מינימום בטווח הנכון, אבל ערכים אלו Hבחירת רצועה קטנה מ-∆

יהיו מועדים לשגיאות של מינימום מקומי הנובעות לדוגמא מרווח בין מילים.

: לא תספק מיקום נכון של נקודת המינימום של פרופיל Hבחירת רצועה רחבה מ-∆

ההטלה.

סקירה מעמיקה של האלגוריתםסקירה מעמיקה של האלגוריתם

המשוואה מסבירה את התלות של רוחב הרצועה

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

הרוחב של הרצועה אמור להיות קטן יותר.

למרות שהשיטות שמופיעות באלגוריתמים בהם דנו משמשות לעבודה על מסמכים

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

מועדת לשגיאות כאשר מדובר בנטיות גדולות של LPPהמשמעות היא ששיטת ה-

התמונה או שורות טקסט עם מרווחים קטנים.

סקירה מעמיקה של האלגוריתםסקירה מעמיקה של האלגוריתם

ישירות על תמונה בלויה LPPעניין חשוב נוסף היא ההשפעה של הפעלת שיטות

בגווני אפור.

כתמי דיו, חלקים דהויים ומעבר של הכתב בין צידי הדף, כולם מסבכים את 1.

הניתוח של נקודת המינימום של פרופיל ההטלה. במקרה זה ההשלכה הנגזרת

מרצועות צרות מדי או רחבות מדי היא יותר גדולה.

. יש חשיבות גדולה לשימוש ברצועות רחבות כאשר מדובר במסמכים בלויים 2

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

כתמי דיו וחלקים דהויים הדבר יכול להוביל לשגיאה בחישוב המינימום של

פרופיל ההטלה.

התמודדות של האלגוריתם עם רוחב הרצועההתמודדות של האלגוריתם עם רוחב הרצועה

בנושא זה,LPPעל מנת להתגבר על בעיית רוחב הרצועה והמגבלה של ה-

בצורה LPPועל מנת לאפשר רצועות רחבות יותר, האלגוריתם מממש את שיטת ה-

אינקרמנטלית )מצטברת( בהתאם לכיוון של שורות הטקסט, במקום לבצע הטלה

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

בצורה מצטברת, כלומר רצועה אחר LPPבאופן תדיר, הרעיון הוא לממש את שיטת ה-

רצועה.

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

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

מהרצועה הנוכחית.

נחלק את תהליך זה לשני שלבים:

. פרופיל הטיה מכוון.2אומדן נטייה מקומית. 1.

אומדן נטייה מקומיאומדן נטייה מקומי

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

תואם לרווח בין שורות הטקסט .

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

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

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

יכולה להתמודד עם זוויות נטייה קטנות ) (, שורות טקסט LPP מאחר ושיטת ה-

אשר

שונות האחת מהשנייה בעד מקובצות יחדיו. בכך אנחנו מתארים איך ליישם את

שיטת

על קבוצה מסוימת של שורות שלהן יש בקירוב את אותו הכיוון. התהליך LPP ה-

מיושם

באופן בלתי תלוי על כל אחת מהקבוצות הללו.

פרופיל הטיה מכווןפרופיל הטיה מכוון

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

הנטייה הממוצעת של הרצועה הקודמת ואז להטיל את הרצועה החדשה לכיוון הנטייה

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

ע"י קו מקווקו, כאשר הרצועה השמאלית ביותר כבר חושבה.

פרופיל הטיה מכווןפרופיל הטיה מכוון

תחילה אנו מחשבים את נקודות הבקרה של קווי ההפרדה ברצועה הראשונה,

נקודות הבקרה הן נקודות החיתוך של שורת ההפרדה העליונה והתחתונה עם הקווים

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

נשים לב שבמטרה ליישם את אלגוריתם ההפרדה לרצועה הבאה יש צורך גם ברצועה

העוקבת. לשם כך אנחנו מחשבים את נקודות הבקרה של התמונה

המכילה את שתי הרצועות העוקבות.

CP2( מחושב ע"י הרחבה של קו ההפרדה דרך הנקודות T1,T2 עד שהוא מגיע לסוף )

)התמונה בדף הבא(B3( . באופן דומה אנחנו מחשבים את T3הרצועה השלישית )

פרופיל הטיה מכווןפרופיל הטיה מכוון

פרופיל הטיה מכווןפרופיל הטיה מכוון

CP2אשר ממפה את T spatial transformationבשלב הבא אנחנו מחשבים ומיישמים

לפינות של תמונה מלבנית בעלת מידות .

כאשר

T2

B2

T3

B3

T2 T3

B3B2

M

Spatial transformation TN

פרופיל הטיה מכווןפרופיל הטיה מכוון

(, B2,B3( הוא לא בהכרח מקביל לקו העובר דרך )T2,T3)מאחר והקו העובר דרך

spatial שהיא צורה מסוימת של projective transformationמשתמשים ב-

transformation .

( שבו שורות c.4התוצאה של הטרנספורמציה הזו היא תמונה של מלבן מתוקן )בתמונה

על LPPהטקסט הן כמעט אופקיות. בשלב זה אנחנו יכולים ליישם את שיטת ה-

הרצועה.

% Set up an input coordinate system so that the input image % fills the unit square with vertices (0 0),(1 0),(1 1),(0 1).I = imread('cameraman.tif');udata = [0 1]; vdata = [0 1];

% Transform to a quadrilateral with vertices (-4 2),(-8 3),% (-3 -5),(6 3).tform = maketform('projective',[ 0 0; 1 0; 1 1; 0 1],... [-4 2; -8 -3; -3 -5; 6 3]);

% Fill with gray and use bicubic interpolation. % Make the output size the same as the input size.

[B,xdata,ydata] = imtransform(I, tform, 'bicubic', ... 'udata', udata,... 'vdata', vdata,... 'size', size(I),... 'fill', 128);subplot(1,2,1), imshow(udata,vdata,I), axis onsubplot(1,2,2), imshow(xdata,ydata,B), axis on

Projective transformationProjective transformation

Projective transformationProjective transformation

פרופיל הטיה מכווןפרופיל הטיה מכוון

4.d4.c

פרופיל הטיה מכווןפרופיל הטיה מכוון

לתוצאה המתקבלת לשם inverse transformationהשלב האחרון הוא ליישם

. בעמוד הקודםd.4קבלת התוצאה הסופית הנראית בתמונה

ע"י התקדמות רצועה אחר רצועה ועדכון נקודות הבקרה המתאימות, אנחנו דואגים כי

תמיד מיושם על שורות טקסט אופקיות יחסית. ע"י כך אנחנו לא LPPאלגוריתם ה-

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

הרוחב של כל רצועה מוגדר בהתאם ליחס .

יכול להתמודד ביעילות עם זוויות נטייה של הוגדרה LPPמאחר ואלגוריתם ה-

,כאשר מקורב מפרופיל ההטלה של הרצועה המשוואה

הראשונה.

התוצאה של הפעלת האלגוריתם היא הפרדת שורות ברורה, אשר מבטאת את .1

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

קודם שבו התקבלה הפרדת שורות במראה של מדרגות. מראה המדרגות הוא הפרדה

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

שייכת כל שורת טקסט.

אבל כאשר מדובר בתמונה בגווני אפור שלא עברה עיבוד בינארי יש צורך בניתוח מדויק

של שורות הטקסט מפני שלא ניתן להפעיל תהליך שמשייך את השורות לרכיבים.

)התהליך הזה פועל על מידע בינארי בלבד(

יתרונות האלגוריתםיתרונות האלגוריתם

. שיוך "העמקים" הנוצרים מפרופילי הטלה שכנים. 2

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

2.b לעומת איחוד בין שני "עמקים" שכנים שנעשה ע"י חיבור של כל נקודת שיא .)

( כפי שניתן לראות חוק זה של חיבור a.2לנקודת השיא של הרצועה השכנה לו. )תמונה

שתי נקודות השיא לא תמיד מפיק את התוצאה הרצויה.

יתרונות האלגוריתםיתרונות האלגוריתם

2.a 2.b

20-30 מסמכים בלויים. כל אחד מהמסמכים הכיל 30נערכו שני סטים של ניסויים על

מהמסמכים הכילו שורות טקסט נטויות בעלות זוויות שונות.50%שורות טקסט, ו-

תוצאות הניסוי של האלגוריתםתוצאות הניסוי של האלגוריתם

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

אפור, ההערכה נעשתה בעזרת תצפית ויזואלית.

זוויות שונות8בניסוי השני נוצר עוד סט ע"י סיבוב ידני של כל אחד מהמסמכים ב-

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

האלגוריתם לכמות גדולה של זוויות נטייה. התוצאות היו מבטיחות מאוד.

טעות הייתה זיהוי 2% משורות הטקסט הופרדו נכון. הסיבה העיקרית ל-98%בניסוי הראשון

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

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

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

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

המסמכים בניסוי הראשון.

תוצאות הניסוי של האלגוריתםתוצאות הניסוי של האלגוריתם

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

( שמתאים למסמכים ישנים בעלי עקמומיות ונטייה מתונה(.LPPהצענו אלגוריתם מהיר

בצורה LPPהחלק השני של הגישה שלנו והחידוש העיקרי בה הוא יישום אלגוריתם ה-

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

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

שונות.

 

:מסקנות וסיכום:מסקנות וסיכום

סוף

חזרה לשקופית

חזרה לשקופית