OCR למסמכי PDF

צומת המקור: 879686

מבוא

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

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


מחפש פתרון OCR לחילוץ מידע מקובצי PDF? תן ננונטיםסיבוב לדיוק גבוה יותר, גמישות רבה יותר, עיבוד לאחר, ומערך רחב של שילובים!


התקדמות בפתרונות OCR

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

OCR מסורתי

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

  1. אסוף מסד נתונים של תווים ידועים.
  2. השתמש בחיישני פוטו כדי לאסוף ולהפריד אותיות בודדות ממסמכים סרוקים.
  3. השווה את מערך התכונות שאוחזר מחיישני הפוטו עם תכונות פיזיות ממסד הנתונים.
  4. המר כל סט של תכונות בהתאם לדמות הידועה עם הדמיון הגבוה ביותר.

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

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

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

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

מנועי OCR מבוססי למידה עמוקה

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

אדריכלות רשת עצבית

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

  • רשתות עצביות קונבולוציוניות (CNN) - רשתות CNN הן אחת מקבוצות הרשתות הדומיננטיות ביותר המשמשות כיום במיוחד בתחום הראייה הממוחשבת. הוא כולל גרעינים קונבולוציוניים מרובים המחליקים דרך התמונה כדי לחלץ תכונות. בליווי שכבות רשת מסורתיות בסוף, רשתות CNN מצליחות מאוד לאחזר תכונות מתמונה נתונה כדי לבצע תחזיות. תהליך זה יכול לעבור עוד למשימה של מציאת תיבות תוחמות וזיהוי תכונות של תווים לסיווג נוסף בתהליך ה-OCR.
  • זיכרונות לטווח קצר ארוך (LSTMs) - LSTMs הם משפחה של רשתות המיושמות בעיקר על כניסות רצף. האינטואיציה פשוטה - עבור כל נתונים עוקבים (כלומר, מזג אוויר, מניות), תוצאות חדשות עשויות להיות תלויות במידה רבה בתוצאות קודמות, ולפיכך יהיה זה מועיל להעביר כל הזמן תוצאות קודמות כחלק מתכונות הקלט בביצוע תחזיות חדשות . במקרה של OCR, אותיות שזוהו בעבר עשויות להיות לעזר רב כדי לחזות את הבא, שכן קבוצת תווים אמורה להיות הגיונית בדרך כלל כאשר מרכיבים אותן יחד (למשל, סביר יותר שאות באנגלית "g" תבוא אחרי "do" מאשר מספר "9", למרות התכונות הדומות שלהם).

מלבד המשימות העיקריות ב-OCR המשלבות למידה עמוקה, שלבי עיבוד מקדים רבים לביטול גישות מבוססות כללים נהנו גם מטכנולוגיות הרשת העצבית המשגשגת:

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

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


מחפש פתרון OCR לחילוץ מידע מקובצי PDF? תן ננונטיםסיבוב לדיוק גבוה יותר, גמישות רבה יותר, עיבוד לאחר, ומערך רחב של שילובים!


יישומים של תוכנת PDF OCR

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

ניתוח נתונים מספרי

כאשר קובצי PDF מכילים נתונים מספריים, OCR עוזר לחלץ אותם כדי לבצע ניתוח סטטיסטי. באופן ספציפי, ניתן ליישם OCR בעזרת חילוצי טבלה או צמדי מפתח-ערך (KVPs) כדי למצוא מספרים משמעותיים מאזורים שונים של טקסט נתון אחד. לאחר מכן נוכל לאמץ שיטות סטטיסטיות או אפילו למידת מכונה (כלומר, KNN, K-Means, רגרסיה לינארית/לוגיסטית) למודלים של יישומים שונים

פירוש נתוני טקסט

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

היתרונות של PDF OCR

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

מקרים לשימוש אישי

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

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

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

מקרים לשימוש עסקי

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

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

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


מחפש פתרון OCR לחילוץ מידע מקובצי PDF? תן ננונטיםסיבוב לדיוק גבוה יותר, גמישות רבה יותר, עיבוד לאחר, ומערך רחב של שילובים!


הדרכה פשוטה

ניתן למעשה לתכנת בקלות קובצי OCR של PDF באופן אישי. להלן צינור פשוט לביצוע OCR בקובצי PDF.

המרת PDF לתמונות

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

אחת הספריות הנפוצות ביותר לעשות זאת היא pdf2 תמונה ספרייה עבור Python, אותה ניתן פשוט להתקין באמצעות הפקודה הבאה:

pip install pdf2image

לאחר מכן, אפשר לייבא את הספרייה ולהשתמש בכל אחת משתי שורות הקוד כדי לקבל תמונה בפורמט PIL כדלקמן:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

למידע נוסף על הקוד, אתה יכול לעיין בתיעוד הרשמי ב https://pypi.org/project/pdf2image/

תמונה OCR

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

כל ה-API של Google Vision הוא פשוט להגדרה, אפשר לעיין בהנחיות הרשמיות שלו https://cloud.google.com/vision/docs/quickstart-client-libraries להליך ההגדרה המפורט.

לאחר מכן נוכל להשתמש בקודים הבאים לאחזור OCR:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

לחלופין, Google Vision API תומך גם במספר שפות, כגון Java ו-Go. ניתן לאחזר קודים נוספים לגבי השימוש ב-Google API כאן: https://cloud.google.com/vision  

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


מחפש פתרון OCR לחילוץ מידע מקובצי PDF? תן ננונטיםסיבוב לדיוק גבוה יותר, גמישות רבה יותר, עיבוד לאחר, ומערך רחב של שילובים!


השוואה

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

קובצי PDF OCR מקוונים

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

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

תוכנה לא מקוונת

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

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

  • אביבי – ABBYY FineReader PDF הוא OCR שפותח על ידי ABBYY. לתוכנה יש ממשק משתמש ידידותי המשמש לקריאת PDF והמרת טקסט. עם זאת, עם אופיו הלא הנדסי (לקוחות היעד הם מומחים שאינם טכנולוגיים בתחומים אחרים הזקוקים ל-PDF OCR), יהיה קשה יותר לשלב אותו בתוכנות אחרות לעיבוד נוסף.
  • קופקס – בדומה ל-ABBYY, Kofax הוא קורא PDF ידידותי הדורש רכישה. המחיר קבוע לשימוש אישי, עם הנחות לתאגידים גדולים. סיוע 24/7 זמין גם במקרה של קשיים טכניים כלשהם.
  • קורא עמוק – Deep Reader היא עבודת מחקר שפורסמה ב-ACCV Conference 2019. היא משלבת ארכיטקטורות רשת מתקדמות מרובות לביצוע משימות כגון התאמת מסמכים, אחזור טקסט והשחתת תמונות. ישנן תכונות נוספות כגון טבלאות וחילוצי מפתח-ערך-זוג המאפשרים לאחזר ולשמור נתונים בצורה מסודרת.
  • Nanonets ™ - Nanonets™ PDF OCR משתמש בלמידה עמוקה ולכן הוא עצמאי לחלוטין של תבנית וכללים. לא רק שננונטים יכולים לעבוד על סוגים ספציפיים של קובצי PDF, הם יכולים גם להיות מיושמים על כל סוג מסמך לצורך אחזור טקסט.

סיכום

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

מקור: https://nanonets.com/blog/pdf-ocr/

בול זמן:

עוד מ AI & Machine Learning