אוטומציה של דיגיטציה של קבלות עם OCR ו-Deep Learning PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

רוצה לבצע אוטומציה של חילוץ נתונים מקבלות? בדוק את ההכשרה המוקדמת של Nanonets OCR קבלה or בנה אחד משלך OCR קבלה מותאם אישית. אתה יכול גם קבע הדגמה כדי ללמוד עוד על מקרי השימוש שלנו ב-AP!


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

מהי דיגיטציה של קבלה?

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

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

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

צריך חזק קבלת OCR or סורק קבלות להוציא נתונים מקבלות? בדוק את Nanonets קבלה OCR API!


מי ימצא את הדיגיטציה של הקבלה מועילה?

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

חשבונות חייבים ואוטומציה חייבים

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

מיטוב שרשרת האספקה

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

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


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


מדוע זו בעיה קשה?

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

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

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

צינור דיגיטציה לקבלה מסורתית

צינור אופייני לגישה מסוג זה מקצה לקצה כוללת:

  • עיבוד מוקדם
  • זיהוי תווים אופטי
  • הפקת מידע
  • Dump נתונים
אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

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

עיבוד מוקדם

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

גווני אפור הם פשוט המרת תמונה RGB לתמונה בגווני אפור.

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

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

OpenCV מספק אפשרויות סף שונות - סף פשוט, סף אדפטיבי

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

זיהוי תווים אופטי

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

ישנן מספר גישות ל- OCR. הגישה המקובלת לראיית מחשב היא

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

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

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

CRNN ו STN-OCR (רשתות שנאי מרחבי) הם מאמרים פופולריים אחרים המבצעים OCR.

הפקת מידע

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

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

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

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

מזבלה של נתונים

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

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

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

עיבוד מוקדם

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

נצטרך להתקין את OpenCV תחילה.

pip install opencv-python

להלן הקוד לסף.

import cv2
import numpy as np
from matplotlib import pyplot as plt # Read the image
img = cv2.imread('receipt.jpg',0)
# Simple thresholding
ret,thresh1 = cv2.threshold(img,210,255,cv2.THRESH_BINARY)
cv2.imshow(thresh1,’gray’)

כך נראה הפלט.

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

זיהוי טקסט

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

ראשית, בואו נתקין את הגרסה האחרונה של Tesseract.

לאובונטו

sudo apt install tesseract-ocr

עבור macOS

brew install tesseract --HEAD

עבור Windows, אתה יכול להוריד את הקבצים הבינאריים מכך עמוד

אמת את גרסתך הקטנה.

tesseract -v

תפוקה -

tesseract 4.0.0-beta.3
leptonica-1.76.0
libjpeg 9c : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11
Found AVX512BW
Found AVX512F
Found AVX2
Found AVX
Found SSE

התקן את הכריכות שלך Tesseract + Python

כעת, לאחר שהותקנו בו הבינארי של Tesseract, כעת עלינו להתקין את הכריכות של Tesseract + Python כך שתסקרי הפיתון שלנו יוכלו לתקשר עם Tesseract. עלינו להתקין את חבילת השפה הגרמנית מאחר והקבלה בגרמנית.

pip install pytesseract
sudo apt-get install tesseract-ocr-deu

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

import pytesseract
from pytesseract import Output
import cv2 img = cv2.imread('receipt.jpg')
d = pytesseract.image_to_data(img, output_type=Output.DICT)
n_boxes = len(d['level'])
for i in range(n_boxes): (x, y, w, h) = (d['left'][i], d['top'][i], d['width'][i], d['height'][i]) img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2) cv2.imshow(img,'img')

להלן פלט קוד זיהוי הטקסט.

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

זיהוי טקסט

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

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

extracted_text = pytesseract.image_to_string(img, lang = 'deu')

להלן התפוקה הגולמית.

'BerghotelnGrosse Scheideggn3818 GrindelwaldnFamilie R.MüllernnRech.Nr. 4572 30.07.2007/13:29: 17nBar Tisch 7/01n2xLatte Macchiato &ä 4.50 CHF 9,00n1xGloki a 5.00 CH 5.00n1xSchweinschnitzel ä 22.00 CHF 22.00nIxChässpätz 1 a 18.50 CHF 18.50nnTotal: CHF 54.50nnIncl. 7.6% MwSt 54.50 CHF: 3.85nnEntspricht in Euro 36.33 EURnEs bediente Sie: UrsulannMwSt Nr. : 430 234nTel.: 033 853 67 16nFax.: 033 853 67 19nE-mail: grossescheidegs@b luewin. ch'

להלן הפלט המעוצב

Berghotel
Grosse Scheidegg
3818 Grindelwald
Familie R.Müller Rech.Nr. 4572 30.07.2007/13:29: 17
Bar Tisch 7/01
2xLatte Macchiato &ä 4.50 CHF 9,00
1xGloki a 5.00 CH 5.00
1xSchweinschnitzel ä 22.00 CHF 22.00
IxChässpätz 1 a 18.50 CHF 18.50 Total: CHF 54.50 Incl. 7.6% MwSt 54.50 CHF: 3.85 Entspricht in Euro 36.33 EUR
Es bediente Sie: Ursula MwSt Nr. : 430 234
Tel.: 033 853 67 16
Fax.: 033 853 67 19
E-mail: grossescheidegs@b luewin. ch

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


הפקת מידע

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

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

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

זהו מילון שאחסן בו את המידע שחולץ.

receipt _ocr = {}

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

splits = extracted_text.splitlines()
restaurant_name = splits[0] + '' + splits[1]

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


import re
# regex for date. The pattern in the receipt is in 30.07.2007 in DD:MM:YYYY date_pattern = r'(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)dd'
date = re.search(date_pattern, extracted_text).group()
receipt_ocr['date'] = date
print(date)

תפוקה -

‘30.10.2007’

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

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

# get lines with chf
lines_with_chf = []
for line in splits: if re.search(r'CHF',line): lines_with_chf.append(line) print(lines_with_chf)

תפוקה -

2xLatte Macchiato &ä 4.50 CHF 9,00
1xSchweinschnitzel ä 22.00 CHF 22.00
IxChässpätz 1 a 18.50 CHF 18.50
Total: CHF 54.50
Incl. 7.6% MwSt 54.50 CHF: 3.85

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

# get items, total, ignore Incl
items = []
for line in lines_with_chf: print(line) if re.search(r'Incl',line): continue if re.search(r'Total', line): total = line else: items.append(line) # Get Name, quantity and cost all_items = {}
for item in items: details = item.split() quantity_name = details[0] quantity = quantity_name.split('x')[0] name = quantity_name.split('x')[1] cost = details[-1] all_items[name] = {'quantity':quantity, 'cost':cost} total = total.split('CHF')[-1] # Store the results in the dict
receipt_ocr['items'] = all_items
receipt_ocr[‘total’] = total import json receipt_json = json.dumps(receipt_ocr)
print(receipt_json)

הדפסת פלט JSON שלנו -

{'date': '30.07.2007', 'items': {'Chässpätz': {'cost': '18.50', 'quantity': 'I'}, 'Latte': {'cost': '9,00', 'quantity': '2'}, 'Schweinschnitzel': {'cost': '22.00', 'quantity': '1'}}, 'total': ' 54.50'}

כל מידע המפתח חולץ ונזרק אל הקבלה_ז'ונסון ..

בעיות בגישה המקובלת

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

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

מדוע צינור Deep Learning מקצה לקצה טוב יותר?

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

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

למידה מעמיקה וחילוץ מידע

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

חמוד

CUTIE: למידה להבנת מסמכים עם חולץ מידע טקסט אוניברסלי מעורב

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

המודל המוצע, מתמודד עם בעיית מיצוי המידע העיקרי מאת

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

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

דוגמנית CUTIE

יש להם 2 דגמים CUTIE-A ו- CUTIE-B. ה- CUTIE-A המוצע הוא רשת עצבית מפותלת בעלת קיבולת גבוהה הממזגת תכונות ברזולוציה מרובה מבלי לאבד תכונות ברזולוציה גבוהה. CUTIE-B היא רשת מפותלת עם שחרור אטרקטיבי להגדלת שדה הראיה ומודול Atros Spamial Pyring Pooling (ASPP) לתפיסת הקשרים בהיקפים רבים. שניהם CUTIE-A וגם CUITE-B מבצעים קידוד משמעות סמנטית עם שכבת הטמעת מילים כבר בשלב ההתחלה.

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

מערך נתונים

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

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

מערך הנתונים הבנוי העצמי מכיל 4, 484 מסמכי קבלה ספרדים סרוקים, הכוללים קבלות על מוניות, קבלות על בידור ארוחות (ME) ותקבולי מלונות, עם 9 שיעורי מידע שונים על המפתח.

תוצאות

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

אתה יכול לראות את התוצאות בטבלה שלהלן.

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

GCNs עבור VRDs

שחרור גרפים לחילוץ מידע רב-מודאלי ממסמכים עשירים חזותית

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

בעיתון זה הם מכנים מסמך VRD ואני אעמוד בזה.

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

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

מספר סימוכין

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

מערך נתונים

משתמשים בשני מערכי נתונים מהעולם האמיתי. מדובר בחשבוניות מס ערך מוסף (VATI) ותקבולי רכישה בינלאומיים (IPR). מע"מ כולל 3000 תמונות שהועלו על ידי המשתמש ויש לו 16 ישויות לדייק. ישויות דוגמא הן שמות הקונה / מוכר, תאריך וסכום המס. החשבוניות הינן בסינית ויש לה תבנית קבועה מכיוון שהיא חשבונית סטנדרטית לאומית.

IPR הוא מערך נתונים של 1500 מסמכי קבלה סרוקים באנגלית שיש להם 4 ישויות לדייק (מספר חשבונית, שם ספק, שם משלם וסכום כולל). קיימות 146 תבניות עבור הקבלות.

תוצאות

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

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

קו הבסיס I מיישם BiLSTM-CRF על כל קטע טקסט, כאשר כל קטע טקסט הוא משפט אינדיבידואלי.

Baseline II מיישם את מודל התיוג על מקטעי הטקסט המקושרים.

מהיר יותר-RCNN + AED

גישה למידה עמוקה להכרת קבלה

מאמר זה מציג גישה לימודית מעמיקה לזיהוי קבלות סרוקות. מערכת הזיהוי כוללת שני מודולים עיקריים: זיהוי טקסט המבוסס על רשת הצעות טקסט לחיבור וזיהוי טקסט המבוסס על קידוד-מפענח מבוסס תשומת לב. המערכת השיגה 71.9% מציון ה- F1 לצורך משימת איתור וזיהוי.

זיהוי טקסט

מבנה ה- CTPN דומה למהיר יותר R-CNN, עם תוספת של שכבת LSTM. דגם הרשת מורכב בעיקר משלושה חלקים: מיצוי תכונות על ידי VGG16, LSTM דו כיווני ורגרסיה של תיבת הגבלה

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

זיהוי טקסט

ה- AED משמש לזיהוי שורות טקסט. ל- AED שני מודולים עיקריים: DenseNet לחילוץ תכונות מתמונת טקסט ו- LSTM בשילוב מודל קשב לחיזוי טקסט הפלט.

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

מערך נתונים

נעשה שימוש בנתון הנתונים של SROIE 2019. הם חילקו את נתוני האימונים לאימונים, אימות ובדיקות ובחרו באופן אקראי 80% מהתקבולים לאימונים, 10% מהקבלות לאימות, והשאר לבדיקה. והתוצאה היא 500 קבלות לאימונים, 63 קבלות לאימות ו 63- לבדיקה.

תוצאות

לצורך איתור טקסט, הנייר משתמש בצמתים-על-איחוד מודע לאיתור (TIoU) לצורך זיהוי טקסט, הנייר השתמש ב- F1, Precision ו- Recall.

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

טבלה I מציגה את התוצאה של CTPN בשלושה תנאים: CTPN בתמונות מקוריות; עיבוד מקדים + CTPN, עיבוד מקדים + אימות CTPN + OCR. טבלה 2 מציגה את תוצאות רשת AED.

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

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


צריך חזק קבלת OCR להוציא נתונים מקבלות? בדוק את Nanonets קבלה OCR API!


OCR עם Nanonets

עדכון מס' 1: זה עתה פרסמנו את שלנו קבלת OCR דגם מאומן מראש. עבור אל https://app.nanonets.com והתחל לבדוק!

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

אל האני ממשק ה- API של Nanonets OCR מאפשר לך לבנות דגמי OCR בקלות. אינך צריך לדאוג מעיבוד מוקדם של התמונות שלך או לדאוג מתבניות תואמות או לבנות מנועים מבוססי כללים כדי להגדיל את הדיוק של דגם ה- OCR שלך.

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

באמצעות GUI: https://app.nanonets.com/

באפשרותך להשתמש בממשק ה- API של Nanonets-OCR על ידי ביצוע הצעדים הבאים:

שלב 1: שיבט את ה- Repo, התקן תלות

git clone https://github.com/NanoNets/nanonets-ocr-sample-python.git
cd nanonets-ocr-sample-python
sudo pip install requests tqdm

שלב 2: השג את מפתח ה- API החינמי שלך
השג את מפתח ה- API שלך בחינם http://app.nanonets.com/#/keys

אוטומציה של דיגיטציה של קבלה באמצעות OCR ולמידה מעמיקה

שלב 3: הגדר את מפתח ה- API כמשתנה לסביבה

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

שלב 4: צור דגם חדש

python ./code/create-model.py

הערה: זה מייצר MODEL_ID הדרוש לך לשלב הבא

שלב 5: הוסף מזהה מודל כמשתנה לסביבה

export NANONETS_MODEL_ID=YOUR_MODEL_ID

הערה: תקבל את YOUR_MODEL_ID מהצעד הקודם

שלב 6: העלה את נתוני ההדרכה
נתוני האימונים נמצאים ב- images (קבצי תמונות) ו- annotations (הערות לקבצי התמונה)

python ./code/upload-training.py

שלב 7: דגם הרכבת
לאחר העלאת התמונות, התחל לאמן את הדגם

python ./code/train-model.py

שלב 8: קבל מצב דגם
הדגם לוקח ~ שעתיים לאימונים. תקבל דוא"ל ברגע שהמודל יוכשר. בינתיים אתה בודק את מצב הדגם

python ./code/model-state.py

שלב 9: עשה חיזוי
ברגע שהמודל מאומן. אתה יכול לבצע תחזיות באמצעות המודל

python ./code/prediction.py ./images/151.jpg

לקריאה נוספת

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

בול זמן:

עוד מ AI & Machine Learning