Ανίχνευση Πίνακα & Εξαγωγή Πληροφοριών με χρήση Βαθιάς Μάθησης

Κόμβος πηγής: 1325422

Εισαγωγή στην Εξαγωγή Πίνακα

Ο όγκος των δεδομένων που συλλέγονται αυξάνεται δραστικά μέρα με τη μέρα με αυξανόμενους αριθμούς εφαρμογών, λογισμικού και διαδικτυακών πλατφορμών.

Για τον παραγωγικό χειρισμό/πρόσβαση σε αυτά τα τεράστια δεδομένα, είναι απαραίτητο να αναπτυχθούν πολύτιμα εργαλεία εξαγωγής πληροφοριών.

Ένας από τους υποτομείς που απαιτεί προσοχή στο πεδίο Εξαγωγή πληροφοριών είναι η εξαγωγή πινάκων από εικόνες ή η ανίχνευση πινάκων δεδομένων από φόρμες, αρχεία PDF και έγγραφα.

Εξαγωγή πίνακα είναι το καθήκον του εντοπισμού και της αποσύνθεσης πληροφοριών πίνακα σε ένα έγγραφο.

Table OCR - Νανοδίκτυα εξάγουν δεδομένα πίνακα από μια εικόνα!
Table OCR – Νανοδίκτυα εξάγουν δεδομένα πίνακα από μια εικόνα!

Φανταστείτε ότι έχετε πολλά έγγραφα με δεδομένα σε πίνακα που πρέπει να εξαγάγετε για περαιτέρω επεξεργασία. Συμβατικά, μπορείτε να τα αντιγράψετε χειροκίνητα (σε χαρτί) ή να τα τοποθετήσετε σε φύλλα excel.

Ωστόσο, με το λογισμικό πίνακα OCR, μπορείτε να ανιχνεύσετε αυτόματα πίνακες και να εξαγάγετε όλα τα δεδομένα πινάκων από έγγραφα με μία κίνηση. Αυτό εξοικονομεί πολύ χρόνο και επανεπεξεργασία.

Σε αυτό το άρθρο, θα δούμε πρώτα πώς τα Nanonets μπορούν να εξάγουν αυτόματα πίνακες από εικόνες ή έγγραφα. Στη συνέχεια, θα καλύψουμε μερικές δημοφιλείς τεχνικές DL για τον εντοπισμό και την εξαγωγή πινάκων σε έγγραφα.


Θέλετε να εξαγάγετε δεδομένα σε πίνακα από τιμολόγια, αποδείξεις ή οποιοδήποτε άλλο είδος εγγράφου; Ρίξτε μια ματιά στο Nanonets' Εξαγωγέας πίνακα PDF για εξαγωγή δεδομένων σε πίνακα. Προγραμματίστε μια επίδειξη για να μάθετε περισσότερα σχετικά με την αυτοματοποίηση εξαγωγή τραπεζιού.


Πίνακας περιεχομένων

Εξαγωγή πίνακα από εικόνα με OCR πίνακα Nanonets

  • Εγγραφή για έναν δωρεάν λογαριασμό Nanonets

    • Μεταφορτώστε εικόνες/αρχεία στο μοντέλο OCR πίνακα Nanonets
    • Το Nanonets εντοπίζει και εξάγει αυτόματα όλα τα δεδομένα σε πίνακα
    • Επεξεργαστείτε και ελέγξτε τα δεδομένα (εάν απαιτείται)
    • Εξάγετε τα επεξεργασμένα δεδομένα ως Excel, csv ή JSON

Εξαγωγή πίνακα από την εικόνα με Nanonets

Θέλετε να απόξεση δεδομένων από PDF έγγραφα, μετατροπή πίνακα PDF σε Excel or αυτοματοποιημένη εξαγωγή τραπεζιού? Βρίσκω πώς Nanonets Ξύστρα PDF or Αναλυτής PDF μπορεί να δώσει δύναμη στην επιχείρησή σας να είναι πιο παραγωγική.


Nanonets Table OCR API

Επιτραπέζιο OCR με Nanonets
Επιτραπέζιο OCR με Nanonets

Η API OCR Nanonets σας επιτρέπει να δημιουργήσετε μοντέλα OCR με ευκολία. Δεν χρειάζεται να ανησυχείτε για την προεπεξεργασία των εικόνων σας ή να ανησυχείτε για την αντιστοίχιση προτύπων ή για τη δημιουργία μηχανών βάσει κανόνων για να αυξήσετε την ακρίβεια του μοντέλου σας OCR.

Μπορείτε να ανεβάσετε τα δεδομένα σας, να τα σχολιάσετε, να ρυθμίσετε το μοντέλο να εκπαιδεύεται και να περιμένετε να λάβετε προβλέψεις μέσω μιας διεπαφής χρήστη που βασίζεται σε πρόγραμμα περιήγησης χωρίς να γράψετε ούτε μια γραμμή κώδικα, να ανησυχείτε για τις GPU ή να βρείτε τις κατάλληλες αρχιτεκτονικές για τον εντοπισμό του πίνακα χρησιμοποιώντας μοντέλα βαθιάς εκμάθησης.

Μπορείτε επίσης να αποκτήσετε τις αποκρίσεις JSON κάθε πρόβλεψης για να την ενσωματώσετε με τα δικά σας συστήματα και να δημιουργήσετε εφαρμογές μηχανικής εκμάθησης βασισμένες σε αλγόριθμους τελευταίας τεχνολογίας και ισχυρή υποδομή.

https://nanonets.com/documentation/


Η επιχείρησή σας ασχολείται με την αναγνώριση δεδομένων ή κειμένου σε ψηφιακά έγγραφα, PDF ή εικόνες; Έχετε αναρωτηθεί πώς να εξαγάγετε δεδομένα σε πίνακα, εξαγωγή κειμένου από εικόνες , εξαγωγή δεδομένων από PDF or εξαγωγή κειμένου από PDF με ακρίβεια & αποτελεσματικότητα;


Ποιος θα βρει χρήσιμη την εξαγωγή πίνακα

Όπως συζητήθηκε στην προηγούμενη ενότητα, οι πίνακες χρησιμοποιούνται συχνά για την αναπαράσταση δεδομένων σε καθαρή μορφή. Μπορούμε να τα δούμε τόσο συχνά σε διάφορους τομείς, από την οργάνωση της εργασίας μας με τη διάρθρωση δεδομένων σε πίνακες έως την αποθήκευση τεράστιων περιουσιακών στοιχείων εταιρειών. Υπάρχουν πολλοί οργανισμοί που έχουν να αντιμετωπίσουν εκατομμύρια τραπέζια κάθε μέρα. Για να διευκολύνουμε τέτοιες επίπονες εργασίες να κάνουμε τα πάντα με το χέρι, πρέπει να καταφύγουμε σε πιο γρήγορες τεχνικές. Ας συζητήσουμε μερικές περιπτώσεις χρήσης όπου εξαγωγή πινάκων μπορεί να είναι απαραίτητο:

πηγή: Πάτρικ Τομάσο, Ξεβιδώστε

Προσωπικές περιπτώσεις χρήσης

Η εξαγωγή τραπεζιού Η διαδικασία μπορεί να είναι χρήσιμη και για μικρές περιπτώσεις προσωπικής χρήσης. Μερικές φορές καταγράφουμε έγγραφα στο κινητό τηλέφωνο και αργότερα τα αντιγράφουμε στους υπολογιστές μας. Αντί να χρησιμοποιούμε αυτή τη διαδικασία, μπορούμε να καταγράψουμε απευθείας τα έγγραφα και να τα αποθηκεύσουμε ως επεξεργάσιμες μορφές στα προσαρμοσμένα πρότυπά μας. Παρακάτω είναι μερικές περιπτώσεις χρήσης για το πώς μπορούμε να εντάξουμε την εξαγωγή τραπεζιού στην προσωπική μας ρουτίνα –

Σάρωση εγγράφων στο τηλέφωνο: Συχνά τραβάμε εικόνες σημαντικών πινάκων στο τηλέφωνο και τις αποθηκεύουμε, αλλά με την τεχνική εξαγωγής πίνακα, μπορούμε να τραβήξουμε τις εικόνες των πινάκων και να τις αποθηκεύσουμε απευθείας σε μορφή πίνακα, είτε σε φύλλα Excel είτε σε φύλλα Google. Με αυτό, δεν χρειάζεται να ψάχνουμε για εικόνες ή να αντιγράφουμε το περιεχόμενο του πίνακα σε νέα αρχεία, αντ 'αυτού, μπορούμε να χρησιμοποιήσουμε απευθείας τους εισαγόμενους πίνακες και να αρχίσουμε να δουλεύουμε πάνω στις εξαγόμενες πληροφορίες.

Έγγραφα σε HTML: Στις ιστοσελίδες, βρίσκουμε πολλές πληροφορίες που παρουσιάζονται χρησιμοποιώντας πίνακες. Μας βοηθούν σε σύγκριση με τα δεδομένα και μας δίνουν μια γρήγορη σημείωση σχετικά με τους αριθμούς με οργανωμένο τρόπο. Χρησιμοποιώντας τη διαδικασία εξαγωγής πίνακα, μπορούμε να σαρώσουμε έγγραφα PDF ή εικόνες JPG / PNG και να φορτώσουμε τις πληροφορίες απευθείας σε μια προσαρμοσμένη αυτο-σχεδιασμένη μορφή πίνακα. Μπορούμε περαιτέρω να γράψουμε σενάρια για να προσθέσουμε επιπλέον πίνακες με βάση τους υπάρχοντες πίνακες και έτσι να ψηφιοποιήσουμε τις πληροφορίες. Αυτό μας βοηθά στην επεξεργασία του περιεχομένου και επιταχύνει τη διαδικασία αποθήκευσης.


Βιομηχανικές περιπτώσεις χρήσης

Υπάρχουν αρκετές βιομηχανίες σε ολόκληρο τον κόσμο που ασκούν τεράστια γραφειοκρατία και έγγραφα, ειδικά στον τραπεζικό και ασφαλιστικό τομέα. Από την αποθήκευση των στοιχείων των πελατών έως την κάλυψη των αναγκών των πελατών, οι πίνακες χρησιμοποιούνται ευρέως. Αυτές οι πληροφορίες διαβιβάζονται ξανά ως έγγραφο (έντυπο αντίγραφο) σε διαφορετικούς κλάδους για έγκριση, όπου μερικές φορές, η εσφαλμένη επικοινωνία μπορεί να οδηγήσει σε σφάλματα κατά την κατάκτηση πληροφοριών από πίνακες. Αντ 'αυτού, η χρήση αυτοματισμού εδώ, κάνει τη ζωή μας πολύ πιο εύκολη. Μόλις τα αρχικά δεδομένα καταγραφούν και εγκριθούν, μπορούμε να σαρώσουμε άμεσα αυτά τα έγγραφα σε πίνακες και να επεξεργαστούμε περαιτέρω τα ψηφιοποιημένα δεδομένα. Ακόμη και η μείωση της κατανάλωσης χρόνου και των βλαβών, μπορούμε να ενημερώσουμε τους πελάτες σχετικά με το χρόνο και την τοποθεσία όπου γίνεται η επεξεργασία των πληροφοριών. Αυτό, επομένως, διασφαλίζει την αξιοπιστία των δεδομένων και απλοποιεί τον τρόπο αντιμετώπισης των λειτουργιών. Ας δούμε τώρα τις άλλες πιθανές περιπτώσεις χρήσης:

Ποιοτικός έλεγχος: Ο ποιοτικός έλεγχος είναι μια από τις βασικές υπηρεσίες που παρέχουν οι κορυφαίες βιομηχανίες. Συνήθως γίνεται εσωτερικά και για τα ενδιαφερόμενα μέρη. Ως μέρος αυτού, υπάρχουν πολλές φόρμες ανατροφοδότησης που συλλέγονται από τους καταναλωτές για να εξαχθούν σχόλια σχετικά με την παρεχόμενη υπηρεσία. Σε βιομηχανικούς τομείς, χρησιμοποιούν πίνακες για να καταγράφουν καθημερινές λίστες ελέγχου και σημειώσεις για να δουν πώς λειτουργούν οι γραμμές παραγωγής. Όλα αυτά μπορούν να τεκμηριωθούν σε ένα μόνο μέρος χρησιμοποιώντας εξαγωγή τραπεζιού με ευκολία.

Διαδρομή περιουσιακών στοιχείων: Στις μεταποιητικές βιομηχανίες, οι άνθρωποι χρησιμοποιούν πίνακες με σκληρό κώδικα για να παρακολουθούν τις κατασκευασμένες οντότητες όπως χάλυβα, σίδερο, πλαστικό κ.λπ. Κάθε κατασκευασμένο είδος φέρει ετικέτα με έναν μοναδικό αριθμό όπου χρησιμοποιεί πίνακες για να παρακολουθεί τα αντικείμενα που κατασκευάζονται και παραδίδονται καθημερινά. Ο αυτοματισμός μπορεί να σας βοηθήσει να εξοικονομήσετε πολύ χρόνο και περιουσιακά στοιχεία σε σχέση με εσφαλμένες τοποθετήσεις ή ασυνέπεια δεδομένων.


Επιχειρησιακές περιπτώσεις χρήσης

Υπάρχουν αρκετές επιχειρηματικές βιομηχανίες που λειτουργούν με φύλλα excel και φόρμες εκτός σύνδεσης. Αλλά σε μια στιγμή, είναι δύσκολο να αναζητήσετε αυτά τα φύλλα και τις φόρμες. Εάν εισάγουμε χειροκίνητα αυτούς τους πίνακες είναι χρονοβόρα και η πιθανότητα εσφαλμένης εισαγωγής δεδομένων θα είναι υψηλή. Ως εκ τούτου, η εξαγωγή τραπεζιού είναι μια καλύτερη εναλλακτική λύση για την επίλυση περιπτώσεων επιχειρηματικής χρήσης, καθώς οι παρακάτω είναι λίγες.

Τιμολόγιο Αυτοματισμοί: Υπάρχουν πολλές βιομηχανίες μικρής και μεγάλης κλίμακας των οποίων τιμολόγια εξακολουθούν να δημιουργούνται σε μορφές πίνακα. Αυτά δεν παρέχουν σωστά ασφαλισμένες φορολογικές δηλώσεις. Για να ξεπεράσουμε τέτοια εμπόδια, μπορούμε να χρησιμοποιήσουμε την εξαγωγή πίνακα για τη μετατροπή όλων τιμολόγια σε επεξεργάσιμη μορφή και ως εκ τούτου, αναβαθμίστε τα σε νεότερη έκδοση.

Αυτοματοποίηση φόρμας: Οι διαδικτυακές φόρμες διακόπτουν αυτή τη δοκιμασμένη μέθοδο, βοηθώντας τις επιχειρήσεις να συλλέγουν τις πληροφορίες που χρειάζονται και ταυτόχρονα συνδέοντάς τις με άλλες πλατφόρμες λογισμικού ενσωματωμένες στη ροή εργασίας τους. Εκτός από τη μείωση της ανάγκης για χειροκίνητη εισαγωγή δεδομένων (με αυτοματοποιημένη εισαγωγή δεδομένων) και τα επακόλουθα email, η εξαγωγή πίνακα μπορεί να εξαλείψει το κόστος εκτύπωσης, αποστολής, αποθήκευσης, οργάνωσης και καταστροφής των παραδοσιακών εναλλακτικών λύσεων χαρτιού.


Έχετε κατά νου κάποιο πρόβλημα OCR; Θέλετε να ψηφιοποιήσετε τιμολόγια, PDF ή πινακίδες; Κατευθυνθείτε προς Νανοδίκτυα και δημιουργήστε δωρεάν μοντέλα OCR!


Βαθιά μάθηση σε δράση

Η βαθιά μάθηση είναι μέρος της ευρύτερης οικογένειας μεθόδων μηχανικής μάθησης που βασίζονται σε τεχνητά νευρικά δίκτυα.

Το Νευρωνικό Δίκτυο είναι ένα πλαίσιο που αναγνωρίζει τις υποκείμενες σχέσεις στα δεδομένα δεδομένα μέσω μιας διαδικασίας που μιμείται τον τρόπο λειτουργίας του ανθρώπινου εγκεφάλου. Έχουν διαφορετικά τεχνητά στρώματα από τα οποία περνούν τα δεδομένα, όπου μαθαίνουν για τα χαρακτηριστικά. Υπάρχουν διαφορετικές αρχιτεκτονικές όπως Convolution NNs, Recurrent NNs, Autoencoders, Generative Adversarial NNs για την επεξεργασία διαφορετικών ειδών δεδομένων. Αυτά είναι πολύπλοκα αλλά απεικονίζουν υψηλή απόδοση για την αντιμετώπιση προβλημάτων σε πραγματικό χρόνο. Ας δούμε τώρα την έρευνα που πραγματοποιήθηκε στο πεδίο εξαγωγής πίνακα χρησιμοποιώντας Neural Networks και επίσης, ας τα αναθεωρήσουμε εν συντομία.


TabletNet

Χαρτί: TableNet: Μοντέλο βαθιάς μάθησης για ανίχνευση πίνακα από άκρη σε άκρη και εξαγωγή δεδομένων πίνακα από σαρωμένες εικόνες εγγράφων

Εισαγωγή: Το TableNet είναι μια σύγχρονη αρχιτεκτονική βαθιάς μάθησης που προτάθηκε από μια ομάδα από το έτος έρευνας TCS το έτος 2019. Το κύριο κίνητρο ήταν η εξαγωγή πληροφοριών από σαρωμένους πίνακες μέσω κινητών τηλεφώνων ή φωτογραφικών μηχανών.

Πρότειναν μια λύση που περιλαμβάνει την ακριβή ανίχνευση της περιοχής του πίνακα σε μια εικόνα και στη συνέχεια τον εντοπισμό και την εξαγωγή πληροφοριών από τις σειρές και τις στήλες του πίνακα που ανιχνεύτηκε.

Σύνολο δεδομένων: Το σύνολο δεδομένων που χρησιμοποιήθηκε ήταν το Marmot. Έχει 2000 σελίδες σε μορφή PDF που συλλέχθηκαν με τις αντίστοιχες αλήθειες εδάφους. Αυτό περιλαμβάνει κινεζικές σελίδες επίσης. Σύνδεσμος - http://www.icst.pku.edu.cn/cpdp/sjzy/index.htm

Αρχιτεκτονική: Η αρχιτεκτονική βασίζεται στο Long et al., ένα μοντέλο κωδικοποιητή-αποκωδικοποιητή για σημασιολογική κατάτμηση. Το ίδιο δίκτυο κωδικοποιητή/αποκωδικοποιητή χρησιμοποιείται ως αρχιτεκτονική FCN για την εξαγωγή πίνακα. Οι εικόνες υποβάλλονται σε προεπεξεργασία και τροποποιήσεις χρησιμοποιώντας το Tesseract OCR.

Το μοντέλο παράγεται σε δύο φάσεις υποβάλλοντας την εισαγωγή σε τεχνικές βαθιάς μάθησης. Στην πρώτη φάση, έχουν χρησιμοποιήσει τα βάρη ενός προκατασκευασμένου δικτύου VGG-19. Αντικατέστησαν τα πλήρως συνδεδεμένα επίπεδα του χρησιμοποιημένου δικτύου VGG από 1 × 1 Convolutional στρώματα. Όλα τα συνελικτικά επίπεδα ακολουθούνται από την ενεργοποίηση του ReLU και ένα επίπεδο εγκατάλειψης πιθανότητας 0.8. Ονομάζουν τη δεύτερη φάση ως το αποκωδικοποιημένο δίκτυο που αποτελείται από δύο κλάδους. Αυτό είναι σύμφωνα με τη διαίσθηση ότι η περιοχή της στήλης είναι ένα υποσύνολο της περιοχής του πίνακα. Έτσι, το μονό δίκτυο κωδικοποίησης μπορεί να φιλτράρει τις ενεργές περιοχές με καλύτερη ακρίβεια χρησιμοποιώντας χαρακτηριστικά τόσο των περιοχών πίνακα όσο και των στηλών. Η έξοδος από το πρώτο δίκτυο κατανέμεται στους δύο κλάδους. Στον πρώτο κλάδο, εφαρμόζονται δύο λειτουργίες συνέλιξης και ο τελικός χάρτης χαρακτηριστικών αναβαθμίζεται για να ανταποκρίνεται στις αρχικές διαστάσεις της εικόνας. Στον άλλο κλάδο για την ανίχνευση στηλών, υπάρχει ένα επιπλέον επίπεδο συνέλιξης με συνάρτηση ενεργοποίησης ReLU και ένα στρώμα εγκατάλειψης με την ίδια πιθανότητα εγκατάλειψης όπως αναφέρθηκε προηγουμένως. Οι χάρτες χαρακτηριστικών είναι δειγματοληψίες χρησιμοποιώντας κλασματικά περιελίξεις μετά από ένα στρώμα συνελεύσεων (1 × 1). Παρακάτω είναι μια εικόνα της αρχιτεκτονικής:

Η αρχιτεκτονική του TableNet

Έξοδοι: Μετά την επεξεργασία των εγγράφων χρησιμοποιώντας το μοντέλο, δημιουργούνται οι μάσκες πινάκων και στηλών. Αυτές οι μάσκες χρησιμοποιούνται για να φιλτράρετε τον πίνακα και τις περιοχές στηλών από την εικόνα. Τώρα χρησιμοποιώντας το Tesseract OCR, οι πληροφορίες εξάγονται από τις τμηματοποιημένες περιοχές. Ακολουθεί μια εικόνα που δείχνει τις μάσκες που δημιουργούνται και αργότερα εξάγονται από τους πίνακες:

Πρότειναν επίσης το ίδιο μοντέλο που είναι προσαρμοσμένο με το ICDAR το οποίο είχε καλύτερη απόδοση από το αρχικό μοντέλο. Το Recall, Precision και F1-Score του μοντέλου είναι 0.9628, 0.9697, 0.9662 αντίστοιχα. Το αρχικό μοντέλο έχει τις καταγεγραμμένες μετρήσεις 0.9621, 0.9547, 0.9583 με την ίδια σειρά. Ας δούμε τώρα μια ακόμη αρχιτεκτονική.


DeepDeSRT

Χαρτί: DeepDeSRT: Βαθιά μάθηση για ανίχνευση και αναγνώριση δομής πινάκων σε εικόνες εγγράφων

Εισαγωγή: Το DeepDeSRT είναι ένα πλαίσιο Neural Network που χρησιμοποιείται για τον εντοπισμό και την κατανόηση των πινάκων στα έγγραφα ή τις εικόνες. Έχει δύο λύσεις όπως αναφέρονται στον τίτλο:

  1. Παρουσιάζει μια βαθιά μαθησιακή λύση για την ανίχνευση πίνακα σε εικόνες εγγράφων.
  2. Προτείνει μια νέα προσέγγιση βάσης μάθησης για την αναγνώριση της δομής του πίνακα, δηλαδή τον προσδιορισμό σειρών, στηλών και θέσεων κελιών στους πίνακες που εντοπίστηκαν.

Το προτεινόμενο μοντέλο βασίζεται πλήρως σε δεδομένα, δεν απαιτεί ευρετικές ή μεταδεδομένα των εγγράφων ή των εικόνων. Ένα βασικό πλεονέκτημα σε σχέση με την εκπαίδευση είναι ότι δεν χρησιμοποίησαν μεγάλα σύνολα δεδομένων εκπαίδευσης, αντίθετα χρησιμοποίησαν την έννοια της μεταφοράς μάθησης και προσαρμογής τομέα τόσο για την ανίχνευση πίνακα όσο και για την αναγνώριση δομής πίνακα.

Σύνολο δεδομένων: Το σύνολο δεδομένων που χρησιμοποιείται είναι ένα σύνολο δεδομένων πίνακα ανταγωνισμού ICDAR 2013 που περιέχει 67 έγγραφα με συνολικά 238 σελίδες.

Αρχιτεκτονική:

  • Ανίχνευση πίνακα Το προτεινόμενο μοντέλο χρησιμοποίησε το Fast RCNN ως το βασικό πλαίσιο για την ανίχνευση των πινάκων. Η αρχιτεκτονική χωρίζεται σε δύο διαφορετικά μέρη. Στο πρώτο μέρος, δημιούργησαν προτάσεις περιοχής βάσει της εικόνας εισαγωγής από το λεγόμενο δίκτυο πρότασης περιοχής (RPN). Στο δεύτερο μέρος, ταξινόμησαν τις περιοχές χρησιμοποιώντας το Fast-RCNN. Για να υποστηρίξουν αυτήν την αρχιτεκτονική, χρησιμοποίησαν ZFNet και τα βάρη του VGG-16.
  • Αναγνώριση δομής Μετά την επιτυχή ανίχνευση ενός πίνακα και τη θέση του είναι γνωστή στο σύστημα, η επόμενη πρόκληση στην κατανόηση του περιεχομένου του είναι η αναγνώριση και εντοπισμός των σειρών και των στηλών που αποτελούν τη φυσική δομή του πίνακα. Ως εκ τούτου, έχουν χρησιμοποιήσει ένα πλήρως συνδεδεμένο δίκτυο με τα βάρη του VGG-16 που εξάγει πληροφορίες από τις σειρές και τις στήλες. Ακολουθούν οι έξοδοι του DeepDeSRT:

Έξοδοι:

Έξοδοι ανίχνευσης πίνακα
Αποτελέσματα Αναγνώρισης Δομής [6]

Τα αποτελέσματα της αξιολόγησης αποκαλύπτουν ότι το DeepDeSRT ξεπερνά τις σύγχρονες μεθόδους για την ανίχνευση πίνακα και την αναγνώριση δομής και επιτυγχάνει μετρήσεις F1 96.77% και 91.44% για ανίχνευση πίνακα και αναγνώριση δομής, αντίστοιχα έως το 2015.


Γράφημα Neural Networks

Χαρτί: Επανεξετάζοντας την Αναγνώριση Πίνακα χρησιμοποιώντας Graph Neural Networks

Εισαγωγή: Σε αυτήν την έρευνα, οι συγγραφείς από το Deep Learning Laboratory, National Center of Artificial Intelligence (NCAI) πρότειναν το Graph Neural Networks για την εξαγωγή πληροφοριών από πίνακες. Υποστήριξαν ότι τα δίκτυα γραφημάτων είναι μια πιο φυσική επιλογή για αυτά τα προβλήματα και διερεύνησαν περαιτέρω δύο νευρωνικά δίκτυα γραφημάτων με βάση την κλίση.

Αυτό το προτεινόμενο μοντέλο συνδυάζει τα οφέλη και των δύο, συνελικτικών νευρωνικών δικτύων για εξαγωγή οπτικών χαρακτηριστικών και δικτύων γραφημάτων για την αντιμετώπιση της δομής του προβλήματος.

Σύνολο δεδομένων: Οι συγγραφείς πρότειναν ένα νέο μεγάλο σύνολο δεδομένων που δημιουργήθηκε συνθετικά 0.5 εκατομμύρια πίνακες χωρισμένο σε τέσσερις κατηγορίες.

  1. Οι εικόνες είναι απλές εικόνες χωρίς συγχώνευση και με γραμμές κυβερνήσεων
  2. Οι εικόνες έχουν διαφορετικούς τύπους περιγράμματος, συμπεριλαμβανομένης της περιστασιακής απουσίας κυρίαρχων γραμμών
  3. Εισάγει τη συγχώνευση κελιών και στηλών
  4. Η κάμερα κατέγραψε εικόνες με τον γραμμικό προοπτικό μετασχηματισμό

Αρχιτεκτονική: Χρησιμοποίησαν ένα ρηχό συνελικτικό δίκτυο που δημιουργεί τα αντίστοιχα συνελικτικά χαρακτηριστικά. Εάν οι χωρικές διαστάσεις των δυνατοτήτων εξόδου δεν είναι ίδιες με την εικόνα εισόδου, συλλέγουν θέσεις που είναι γραμμικά μειωμένες ανάλογα με την αναλογία μεταξύ των διαστάσεων εισόδου και εξόδου και τις στέλνουν σε ένα δίκτυο αλληλεπίδρασης που έχει δύο δίκτυα γραφημάτων γνωστά ως DGCNN και GravNet. Οι παράμετροι του δικτύου γραφημάτων είναι ίδιες με το αρχικό CNN. Στο τέλος, έχουν χρησιμοποιήσει μια δειγματοληψία ζευγών χρόνου εκτέλεσης για να ταξινομήσουν το περιεχόμενο που εξάγεται το οποίο χρησιμοποίησε εσωτερικά τον αλγόριθμο που βασίζεται στο Μόντε Κάρλο. Παρακάτω είναι οι έξοδοι:

Έξοδοι:

Έξοδοι που δημιουργούνται από το Graph Neural Networks

Παρακάτω είναι οι αριθμοί ακρίβειας σε πίνακα που δημιουργούνται από τα δίκτυα για τέσσερις κατηγορίες του δικτύου όπως παρουσιάζονται στο Σύνολο δεδομένων Ενότητα:


CGAN και γενετικοί αλγόριθμοι

Χαρτί: Εξαγωγή πινάκων από έγγραφα που χρησιμοποιούν υπό όρους γενετικά παράγωγα δίκτυα και γενετικούς αλγόριθμους

Εισαγωγή: Σε αυτήν την έρευνα, οι συγγραφείς χρησιμοποίησαν μια προσέγγιση από πάνω προς τα κάτω αντί να χρησιμοποιούν μια προσέγγιση από κάτω προς τα πάνω (ενσωμάτωση γραμμών σε κελιά, σειρές ή στήλες).

Σε αυτήν τη μέθοδο, χρησιμοποιώντας ένα δημιουργικό δίκτυο αντιπαραθέσεων, χαρτογράφησαν την εικόνα του πίνακα σε μια τυποποιημένη μορφή πίνακα «σκελετού». Αυτός ο πίνακας σκελετού υποδηλώνει τα κατά προσέγγιση σύνορα γραμμών και στηλών χωρίς το περιεχόμενο του πίνακα. Στη συνέχεια, ταιριάζουν με την απόδοση των υποψηφίων λανθάνουσας δομής πίνακα στη δομή του σκελετού χρησιμοποιώντας ένα μέτρο απόστασης βελτιστοποιημένο από έναν γενετικό αλγόριθμο.

Σύνολο δεδομένων: Οι συγγραφείς χρησιμοποίησαν το δικό τους σύνολο δεδομένων που έχει 4000 πίνακες.

Αρχιτεκτονική: Το προτεινόμενο μοντέλο αποτελείται από δύο μέρη. Στο πρώτο μέρος, οι εικόνες εισόδου αφαιρούνται σε πίνακες σκελετών χρησιμοποιώντας ένα υπό όρους γενετικό αντιθετικό νευρικό δίκτυο. Ένα GAN έχει και πάλι δύο δίκτυα, η γεννήτρια που δημιουργεί τυχαία δείγματα και διακριτικό που λέει εάν οι παραγόμενες εικόνες είναι ψεύτικες ή πρωτότυπες. Το Generator G είναι ένα δίκτυο κωδικοποιητή-αποκωδικοποιητή όπου μια εικόνα εισόδου περνά μέσω μιας σειράς σταδιακά κάτω δειγματοληψίας στρώσεων μέχρι ένα επίπεδο συμφόρησης όπου η διαδικασία αντιστρέφεται. Για να περάσετε επαρκείς πληροφορίες στα επίπεδα αποκωδικοποίησης, χρησιμοποιείται αρχιτεκτονική U-Net με συνδέσεις παράλειψης και προστίθεται σύνδεση παράλειψης μεταξύ των επιπέδων i και n - i μέσω συνένωσης, όπου n είναι ο συνολικός αριθμός επιπέδων και i είναι ο αριθμός επιπέδου στον κωδικοποιητή. Μια αρχιτεκτονική PatchGAN χρησιμοποιείται για τον διακριτή D. Αυτό τιμωρεί τη δομή εικόνας εξόδου στην κλίμακα των επιδιορθώσεων. Αυτά παράγουν την έξοδο ως πίνακα σκελετού.

Στο δεύτερο μέρος, βελτιστοποιούν την προσαρμογή των υποψηφίων λανθάνουσας δομής δεδομένων στην παραγόμενη εικόνα σκελετού χρησιμοποιώντας ένα μέτρο της απόστασης μεταξύ κάθε υποψηφίου και του σκελετού. Έτσι εξάγεται το κείμενο μέσα στις εικόνες. Ακολουθεί μια εικόνα που απεικονίζει την αρχιτεκτονική:

Γενικό σχήμα της προσέγγισης

Παραγωγή: Οι εκτιμώμενες δομές πίνακα αξιολογούνται συγκρίνοντας - Αριθμός σειράς και στήλης, Πάνω αριστερή γωνία θέση, Ύψος σειράς και πλάτη στήλης

Ο γενετικός αλγόριθμος έδωσε 95.5% ακρίβεια κατά σειρά και 96.7% ακρίβεια ανά στήλη, ενώ εξάγοντας πληροφορίες από τους πίνακες.


Ανάγκη ψηφιοποίησης εγγράφων, ΑΠΟΔΕΙΞΗ ΕΙΣΠΡΑΞΗΣ or τιμολόγια αλλά πολύ τεμπέλης για κωδικοποίηση; Κατευθυνθείτε προς Νανοδίκτυα και δημιουργήστε δωρεάν μοντέλα OCR!


[Κωδικός] Παραδοσιακές προσεγγίσεις

Σε αυτήν την ενότητα, θα μάθουμε τη διαδικασία για τον τρόπο εξαγωγής πληροφοριών από πίνακες χρησιμοποιώντας το Deep Learning και το OpenCV. Μπορείτε να σκεφτείτε αυτήν την εξήγηση ως εισαγωγή, ωστόσο, η κατασκευή μοντέλων τελευταίας τεχνολογίας θα χρειαστεί πολλή εμπειρία και πρακτική. Αυτό θα σας βοηθήσει να κατανοήσετε τις βασικές αρχές του πώς μπορούμε να εκπαιδεύσουμε υπολογιστές με διάφορες πιθανές προσεγγίσεις και αλγόριθμους.

Για να κατανοήσουμε το πρόβλημα με πιο ακριβή τρόπο, ορίζουμε μερικούς βασικούς όρους, οι οποίοι θα χρησιμοποιηθούν σε ολόκληρο το άρθρο:

  • Κείμενο: περιέχει μια συμβολοσειρά και πέντε χαρακτηριστικά (πάνω, αριστερά, πλάτος, ύψος, γραμματοσειρά)
  • γραμμή: περιέχει αντικείμενα κειμένου που θεωρείται ότι βρίσκονται στην ίδια γραμμή στο αρχικό αρχείο
  • Μονή γραμμή: αντικείμενο γραμμής με μόνο ένα αντικείμενο κειμένου.
  • Πολλαπλή γραμμή: αντικείμενο γραμμής με περισσότερα από ένα αντικείμενα κειμένου.
  • Πολλαπλή γραμμή Αποκλεισμός: ένα σύνολο συνεχών αντικειμένων πολλαπλών γραμμών.
  • Σειρά: Οριζόντια μπλοκ στον πίνακα
  • Στήλη: Κάθετα μπλοκ στον πίνακα
  • Κύτταρο: η τομή μιας σειράς και στήλης
  • Κελί - Επένδυση: η εσωτερική επένδυση ή ο χώρος μέσα στο κελί.

Ανίχνευση πίνακα με OpenCV

Θα χρησιμοποιήσουμε παραδοσιακές τεχνικές όρασης υπολογιστή για να εξαγάγουμε πληροφορίες από τους σαρωμένους πίνακες. Εδώ είναι ο αγωγός μας. Αρχικά καταγράφουμε τα δεδομένα (τους πίνακες από όπου πρέπει να εξαγάγουμε τις πληροφορίες) χρησιμοποιώντας κανονικές κάμερες και, στη συνέχεια, χρησιμοποιώντας την όραση του υπολογιστή, θα προσπαθήσουμε να βρούμε τα όρια, τα άκρα και τα κελιά. Θα χρησιμοποιήσουμε διαφορετικά φίλτρα και περιγράμματα και θα επισημάνουμε τα βασικά χαρακτηριστικά των πινάκων.

Χρειαζόμαστε μια εικόνα πίνακα. Μπορούμε να το καταγράψουμε σε τηλέφωνο ή να χρησιμοποιήσουμε οποιαδήποτε υπάρχουσα εικόνα. Ακολουθεί το απόσπασμα κώδικα,

file = r’table.png’
table_image_contour = cv2.imread(file, 0)
table_image = cv2.imread(file)

Εδώ, έχουμε φορτώσει την ίδια εικόνα εικόνας δύο μεταβλητές αφού θα χρησιμοποιήσουμε το table_image_contour όταν σχεδιάζουμε τα ανιχνευμένα περιγράμματά μας στην φορτωμένη εικόνα. Ακολουθεί η εικόνα του πίνακα που χρησιμοποιούμε στο πρόγραμμά μας:

Εικόνα του πίνακα

Θα χρησιμοποιήσουμε μια τεχνική που ονομάζεται Όριο αντίστροφης εικόνας που ενισχύει τα δεδομένα που υπάρχουν στη δεδομένη εικόνα.

ret, thresh_value = cv2.threshold( table_image_contour, 180, 255, cv2.THRESH_BINARY_INV)

Ένα άλλο σημαντικό βήμα προεπεξεργασίας είναι διαστολή εικόνας. Η διαστολή είναι μια απλή μαθηματική λειτουργία που εφαρμόζεται σε δυαδικές εικόνες (ασπρόμαυρες) που διευρύνει σταδιακά τα όρια των περιοχών των εικονοστοιχείων προσκηνίου (δηλαδή λευκά εικονοστοιχεία, συνήθως).

kernel = np.ones((5,5),np.uint8)
dilated_value = cv2.dilate(thresh_value,kernel,iterations = 1)

Στο OpenCV, χρησιμοποιούμε τη μέθοδο, βρείτεContours για να λάβετε τα περιγράμματα στην παρούσα εικόνα. Αυτή η μέθοδος παίρνει τρία ορίσματα, πρώτα είναι η διασταλμένη εικόνα (η εικόνα που χρησιμοποιείται για τη δημιουργία της διασταλμένης εικόνας είναι table_image_contour - η μέθοδος findContours υποστηρίζει μόνο δυαδικές εικόνες), η δεύτερη είναι η cv2.RETR_TREE που μας λέει να χρησιμοποιήσουμε τη λειτουργία ανάκτησης περιγράμματος, το τρίτο είναι το  cv2.CHAIN_APPROX_SIMPLE που είναι ο τρόπος προσέγγισης του περιγράμματος. ο βρείτεContours ξεπακετάρει δύο τιμές, επομένως θα προσθέσουμε μία ακόμη μεταβλητή με το όνομα ιεραρχία. Όταν οι εικόνες είναι ένθετες, τα περιγράμματα αποπνέουν αλληλεξάρτηση. Για την απεικόνιση τέτοιων σχέσεων, χρησιμοποιείται ιεραρχία.

contours, hierarchy = cv2.findContours( dilated_value, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

Το περίγραμμα επισημαίνει όπου ακριβώς υπάρχουν τα δεδομένα στην εικόνα. Τώρα, επαναλαμβάνουμε τη λίστα περιγραμμάτων που υπολογίσαμε στο προηγούμενο βήμα και υπολογίζουμε τις συντεταγμένες των ορθογώνιων κουτιών, όπως παρατηρείται στην αρχική εικόνα χρησιμοποιώντας τη μέθοδο,  cv2.boundingRect. Στην τελευταία επανάληψη, βάζουμε αυτά τα πλαίσια στην αρχική εικόνα_ πίνακας εικόνας χρησιμοποιώντας τη μέθοδο, cv2. ορθογώνιο ().

for cnt in contours: x, y, w, h = cv2.boundingRect(cnt) # bounding the images if y < 50: table_image = cv2.rectangle(table_image, (x, y), (x + w, y + h), (0, 0, 255), 1) 

Αυτό είναι το τελευταίο μας βήμα. Εδώ χρησιμοποιούμε τη μέθοδο ονομάζεται Window για να αποδώσουμε το τραπέζι μας με το εξαγόμενο περιεχόμενο και τα περιγράμματα που είναι ενσωματωμένα σε αυτό. Ακολουθεί το απόσπασμα κώδικα:

plt.imshow(table_image)
plt.show()
cv2.namedWindow('detecttable', cv2.WINDOW_NORMAL)

Έξοδοι

Αλλάξτε την τιμή του y σε 300 στο παραπάνω απόσπασμα κώδικα, αυτό θα είναι το αποτέλεσμα:

Μόλις εξαγάγετε τους πίνακες, μπορείτε να εκτελέσετε κάθε περικοπή περιγράμματος μέσω του κινητήρα Tesseract OCR, ο οδηγός για τον οποίο μπορείτε να βρείτε εδώ. Μόλις έχουμε κουτιά κάθε κειμένου, μπορούμε να τα ομαδοποιήσουμε με βάση τις συντεταγμένες x και y για να εξαγάγουμε ποια αντίστοιχη σειρά και στήλη ανήκουν.

Εκτός από αυτό, υπάρχει η επιλογή να χρησιμοποιήσετε το PDFMiner για να μετατρέψετε τα έγγραφά σας pdf σε αρχεία HTML που μπορούμε να αναλύσουμε χρησιμοποιώντας κανονικές εκφράσεις για να λάβουμε τελικά τους πίνακές μας. Δείτε πώς μπορείτε να το κάνετε.


Ανάλυση PDFMiner και Regex

Για να εξαγάγετε πληροφορίες από μικρότερα έγγραφα, είναι καιρός να διαμορφώσετε μοντέλα βαθιάς εκμάθησης ή να γράψετε αλγόριθμους όρασης υπολογιστή. Αντίθετα, μπορούμε να χρησιμοποιήσουμε κανονικές εκφράσεις στην Python για να εξαγωγή κειμένου από τα έγγραφα PDF. Επίσης, να θυμάστε ότι αυτή η τεχνική δεν λειτουργεί για εικόνες. Μπορούμε να το χρησιμοποιήσουμε μόνο για εξαγωγή πληροφοριών από αρχεία HTML ή έγγραφα PDF. Αυτό συμβαίνει επειδή, όταν χρησιμοποιείτε μια τυπική έκφραση, θα πρέπει να αντιστοιχίσετε το περιεχόμενο με την πηγή και να εξαγάγετε πληροφορίες. Με τις εικόνες, δεν θα μπορείτε να ταιριάξετε το κείμενο και οι κανονικές εκφράσεις θα αποτύχουν. Ας δουλέψουμε τώρα με ένα απλό έγγραφο PDF και ας εξαγάγουμε πληροφορίες από τους πίνακες σε αυτό. Παρακάτω είναι η εικόνα:

Στο πρώτο βήμα, φορτώνουμε το PDF στο πρόγραμμά μας. Μόλις γίνει αυτό, μετατρέπουμε το PDF σε HTML, ώστε να μπορούμε να χρησιμοποιούμε απευθείας κανονικές εκφράσεις και, ως εκ τούτου, να εξάγουμε περιεχόμενο από τους πίνακες. Για αυτό, η ενότητα που χρησιμοποιούμε είναι pdfminer. Αυτό βοηθά στην ανάγνωση περιεχομένου από PDF και τη μετατροπή του σε αρχείο HTML.

Ακολουθεί το απόσπασμα κώδικα:

from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.converter import HTMLConverter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
import re def convert_pdf_to_html(path): rsrcmgr = PDFResourceManager() retstr = StringIO() codec = 'utf-8' laparams = LAParams() device = HTMLConverter(rsrcmgr, retstr, codec=codec, laparams=laparams) fp = file(path, 'rb') interpreter = PDFPageInterpreter(rsrcmgr, device) password = "" maxpages = 0 #is for all caching = True pagenos=set() for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages,password=password,caching=caching, check_extractable=True): interpreter.process_page(page) fp.close() device.close() str = retstr.getvalue() retstr.close() return str

Συντελεστές κώδικα: zevross

Εισαγάγαμε πολλές ενότητες που περιλαμβάνουν βιβλιοθήκες που σχετίζονται με την Κανονική έκφραση και το PDF. Στη μέθοδο μετατροπή_pdf_to_html, στέλνουμε τη διαδρομή του αρχείου PDF που πρέπει να μετατραπεί σε αρχείο HTML. Η έξοδος της μεθόδου θα είναι μια συμβολοσειρά HTML όπως φαίνεται παρακάτω:

'<span style="font-family: XZVLBD+GaramondPremrPro-LtDisp; font-size:12px">Changing Echoesn<br>7632 Pool Station Roadn<br>Angels Camp, CA 95222n<br>(209) 785-3667n<br>Intake: (800) 633-7066n<br>SA </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> TX DT BU </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> RS RL OP PH </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> CO CJ n<br></span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> SF PI </span><span style="font-family: GDBVNW+Wingdings-Regular; font-size:11px">s</span><span style="font-family: UQGGBU+GaramondPremrPro-LtDisp; font-size:12px"> AH SPn<br></span></div>' 

Η κανονική έκφραση είναι μία από τις πιο δύσκολες και πιο δροσερές τεχνικές προγραμματισμού που χρησιμοποιούνται για την αντιστοίχιση μοτίβων. Αυτά χρησιμοποιούνται ευρέως σε πολλές εφαρμογές, για παράδειγμα, για μορφοποίηση κώδικα, απόξεση ιστού και επικύρωση. Προτού αρχίσουμε να εξάγουμε περιεχόμενο από τους πίνακες HTML, ας μάθουμε γρήγορα μερικά πράγματα σχετικά με τις κανονικές εκφράσεις.

Αυτή η βιβλιοθήκη παρέχει διάφορες ενσωματωμένες μεθόδους για αντιστοίχιση και αναζήτηση μοτίβων. Παρακάτω είναι μερικά:

import re # Match the pattern in the string
re.match(pattern, string) # Search for a pattern in a string
re.search(pattern, string) # Finds all the pattern in a string
re.findall(pattern, string) # Splits string based on the occurrence of pattern
re.split(pattern, string, [maxsplit=0] # Search for the pattern and replace it with the given string
re.sub(pattern, replace, string)

Οι χαρακτήρες / εκφράσεις που συνήθως βλέπετε σε κανονικές εκφράσεις περιλαμβάνουν:

  • [A-Z]  - οποιοδήποτε κεφαλαίο γράμμα
  • δ   - ψηφίο
  • w  - χαρακτήρας λέξης (γράμματα, ψηφία και κάτω παύλες)
  • s  - κενό διάστημα (κενά, καρτέλες και κενά)

Τώρα για να μάθουμε ένα συγκεκριμένο μοτίβο σε HTML, χρησιμοποιούμε κανονικές εκφράσεις και μετά γράφουμε μοτίβα ανάλογα. Αρχικά χωρίσαμε τα δεδομένα έτσι ώστε τα κομμάτια διευθύνσεων να διαχωρίζονται σε ξεχωριστά μπλοκ σύμφωνα με το όνομα του προγράμματος (ANGELS CAMP, APPLE VALLEY κ.λπ.):

pattern = '(?<=<span style="font-family: XZVLBD+GaramondPremrPro-LtDisp; font-size:12px">)(.*?)(?=<br></span></div>)' for programinfo in re.finditer(pattern, biginputstring, re.DOTALL): do looping stuff…

Αργότερα, βρίσκουμε το όνομα του προγράμματος, την πόλη, την πολιτεία και το φερμουάρ που ακολουθούν πάντα το ίδιο μοτίβο (κείμενο, κόμμα, διψήφια κεφαλαία γράμματα, 5 αριθμοί (ή 5 αριθμοί παύλα τέσσερις αριθμοί) - αυτοί υπάρχουν στο αρχείο PDF το οποίο θεωρήσαμε εισροές). Ελέγξτε το ακόλουθο απόσπασμα κώδικα:

# To identify the program name
programname = re.search('^(?!<br>).*(?=\n)', programinfo.group(0))
# since some programs have odd characters in the name we need to escape
programname = re.escape(programname) citystatezip =re.search('(?<=>)([a-zA-Zs]+, [a-zA-Zs]{2} d{5,10})(?=\n)', programinfo.group(0))
mainphone =re.search('(?<=<br>)(d{3}) d{3}-d{4}x{0,1}d{0,}(?=\n)', programinfo.group(0))
altphones = re.findall('(?<=<br>)[a-zA-Zs]+: (d{3}) d{3}-d{4}x{0,1}d{0,}(?=\n)(?=\n)', programinfo.group(0)) 

Αυτό είναι ένα απλό παράδειγμα που εξηγεί πώς εξάγουμε πληροφορίες από αρχεία PDF χρησιμοποιώντας μια κανονική έκφραση. Μετά την εξαγωγή όλων των απαιτούμενων πληροφοριών, φορτώνουμε αυτά τα δεδομένα σε ένα αρχείο CSV.

def createDirectory(instring, outpath, split_program_pattern): i = 1 with open(outpath, 'wb') as csvfile: filewriter = csv.writer(csvfile, delimiter=',' , quotechar='"', quoting=csv.QUOTE_MINIMAL) # write the header row filewriter.writerow(['programname', 'address', 'addressxtra1', 'addressxtra2', 'city', 'state', 'zip', 'phone', 'altphone', 'codes']) # cycle through the programs for programinfo in re.finditer(split_program_pattern, instring, re.DOTALL): print i i=i+1 # pull out the pieces programname = getresult(re.search('^(?!<br>).*(?=\n)', programinfo.group(0))) programname = re.escape(programname) # some facilities have odd characters in the name

Αυτό είναι λοιπόν ένα απλό παράδειγμα που εξηγεί πώς μπορείτε να προωθήσετε το εξαγόμενο HTML σε ένα αρχείο CSV. Αρχικά δημιουργούμε ένα αρχείο CSV, βρίσκουμε όλα τα χαρακτηριστικά μας και σπρώχνουμε ένα προς ένα στις αντίστοιχες στήλες τους. Ακολουθεί ένα στιγμιότυπο οθόνης:

Στιγμιότυπο οθόνης των αντικειμένων που εξάγονται από πίνακες χρησιμοποιώντας Κανονικές εκφράσεις

Μερικές φορές, οι παραπάνω τεχνικές φαίνονται περίπλοκες και δημιουργούν προκλήσεις για τους προγραμματιστές εάν σε όλα τα τραπέζια είναι ένθετα και περίπλοκα. Εδώ, η επιλογή ενός βιογραφικού ή ενός μοντέλου Deep learning εξοικονομεί πολύ χρόνο. Ας δούμε ποια μειονεκτήματα και προκλήσεις εμποδίζουν τη χρήση αυτών των παραδοσιακών μεθόδων.


Προκλήσεις με παραδοσιακές μεθόδους

Σε αυτήν την ενότητα, θα μάθουμε σε βάθος σχετικά με το πού ενδέχεται να αποτύχουν οι διαδικασίες εξαγωγής πίνακα και να κατανοήσουμε περαιτέρω τους τρόπους για να ξεπεράσουμε αυτά τα εμπόδια χρησιμοποιώντας σύγχρονες μεθόδους που γεννήθηκαν από τη Βαθιά Μάθηση. Αυτή η διαδικασία δεν είναι όμως ένα cakewalk. Ο λόγος είναι ότι οι πίνακες συνήθως δεν παραμένουν σταθεροί. Έχουν διαφορετικές δομές για να αντιπροσωπεύουν τα δεδομένα και τα δεδομένα μέσα στους πίνακες μπορεί να είναι πολυγλωσσικά με διάφορα στυλ μορφοποίησης (στυλ γραμματοσειράς, χρώμα, μέγεθος γραμματοσειράς και ύψος). Ως εκ τούτου, για να οικοδομήσουμε ένα ισχυρό μοντέλο, πρέπει να γνωρίζουμε όλες αυτές τις προκλήσεις. Συνήθως, αυτή η διαδικασία περιλαμβάνει τρία βήματα: ανίχνευση πίνακα, εξαγωγή και μετατροπή. Ας εντοπίσουμε τα προβλήματα σε όλες τις φάσεις, ένα προς ένα:


Ανίχνευση πίνακα

Σε αυτήν τη φάση, εντοπίζουμε πού βρίσκονται ακριβώς οι πίνακες στη δεδομένη είσοδο. Η εισαγωγή μπορεί να έχει οποιαδήποτε μορφή, όπως Εικόνες, έγγραφα PDF / Word και μερικές φορές βίντεο. Χρησιμοποιούμε διαφορετικές τεχνικές και αλγόριθμους για τον εντοπισμό των πινάκων, είτε κατά γραμμές είτε με συντεταγμένες. Σε ορισμένες περιπτώσεις, ενδέχεται να συναντήσουμε πίνακες χωρίς περιθώρια καθόλου, όπου πρέπει να επιλέξουμε διαφορετικές μεθόδους. Εκτός από αυτά, εδώ είναι μερικές άλλες προκλήσεις:

  • Μεταμόρφωση εικόνας: Ο μετασχηματισμός εικόνας είναι ένα πρωταρχικό βήμα στην ανίχνευση ετικετών. Αυτό περιλαμβάνει την ενίσχυση των δεδομένων και των περιγραμμάτων που υπάρχουν στον πίνακα. Πρέπει να επιλέξουμε κατάλληλους αλγόριθμους προεπεξεργασίας με βάση τα δεδομένα που παρουσιάζονται στον πίνακα. Για παράδειγμα, όταν εργαζόμαστε με εικόνες, πρέπει να εφαρμόσουμε ανιχνευτές κατωφλίου και άκρων. Αυτό το βήμα μεταμόρφωσης μας βοηθά να βρούμε το περιεχόμενο με μεγαλύτερη ακρίβεια. Σε ορισμένες περιπτώσεις, το περίγραμμα μπορεί να πάει στραβά και οι αλγόριθμοι δεν βελτιώνουν την εικόνα. Ως εκ τούτου, η επιλογή των σωστών βημάτων μετατροπής εικόνας και η προεπεξεργασία είναι ζωτικής σημασίας.
  • Ποιότητα εικόνας: Όταν σαρώνουμε πίνακες για εξαγωγή πληροφοριών, πρέπει να διασφαλίσουμε ότι αυτά τα έγγραφα σαρώνονται σε φωτεινότερα περιβάλλοντα που διασφαλίζουν εικόνες καλής ποιότητας. Όταν οι συνθήκες φωτισμού είναι κακές, οι αλγόριθμοι CV και DL ενδέχεται να μην εντοπίσουν πίνακες στις δεδομένες εισόδους. Εάν χρησιμοποιούμε βαθιά μάθηση, πρέπει να βεβαιωθούμε ότι το σύνολο δεδομένων είναι συνεπές και έχει ένα καλό σύνολο τυπικών εικόνων. Εάν χρησιμοποιήσουμε αυτά τα μοντέλα σε τραπέζια που υπάρχουν σε παλιά τσαλακωμένα χαρτιά, τότε πρώτα πρέπει να επεξεργαστούμε και να εξαλείψουμε τον θόρυβο σε αυτές τις εικόνες.
  • Ποικιλία δομικών διατάξεων και προτύπων: Όλοι οι πίνακες δεν είναι μοναδικοί. Ένα κελί μπορεί να εκτείνεται σε πολλά κελιά, είτε κάθετα είτε οριζόντια, και οι συνδυασμοί κελί έκτασης μπορούν να δημιουργήσουν μεγάλο αριθμό δομικών παραλλαγών. Επίσης, ορισμένα δίνουν έμφαση στα χαρακτηριστικά του κειμένου και οι γραμμές του πίνακα μπορούν να επηρεάσουν τον τρόπο με τον οποίο γίνεται κατανοητή η δομή του πίνακα. Για παράδειγμα, οι οριζόντιες γραμμές ή το έντονο κείμενο ενδέχεται να τονίζουν πολλές κεφαλίδες του πίνακα. Η δομή του πίνακα ορίζει οπτικά τις σχέσεις μεταξύ των κυττάρων. Οι οπτικές σχέσεις σε πίνακες δυσκολεύουν τον υπολογισμό των σχετικών κελιών και την εξαγωγή πληροφοριών από αυτά. Ως εκ τούτου, είναι σημαντικό να δημιουργηθούν αλγόριθμοι που είναι ισχυροί στο χειρισμό διαφορετικών δομών πινάκων.
  • Κυτταρική επένδυση, περιθώρια, σύνορα: Αυτά είναι τα βασικά στοιχεία οποιουδήποτε τραπεζιού - τα μαξιλάρια, τα περιθώρια και τα σύνορα δεν θα είναι πάντα τα ίδια. Ορισμένοι πίνακες έχουν πολλά παραγέμισμα μέσα σε κελιά και κάποιοι όχι. Η χρήση εικόνων καλής ποιότητας και τα βήματα προεπεξεργασίας θα βοηθήσουν την ομαλή διαδικασία της εξαγωγής πίνακα.

Εξαγωγή πίνακα

Αυτή είναι η φάση όπου οι πληροφορίες εξάγονται μετά την αναγνώριση των πινάκων. Υπάρχουν πολλοί παράγοντες σχετικά με το πώς είναι δομημένο το περιεχόμενο και τι περιεχόμενο υπάρχει στον πίνακα. Ως εκ τούτου, είναι σημαντικό να κατανοήσετε όλες τις προκλήσεις προτού δημιουργήσει ένας αλγόριθμος.

  • Πυκνό περιεχόμενο: Το περιεχόμενο των κελιών μπορεί να είναι αριθμητικό ή κείμενο. Ωστόσο, το περιεχόμενο κειμένου είναι συνήθως πυκνό, περιέχει διφορούμενα μικρά κομμάτια κειμένου με τη χρήση ακρωνύμων και συντομογραφιών. Για να κατανοήσουμε τους πίνακες, το κείμενο πρέπει να ξεκαθαριστεί και πρέπει να επεκταθούν οι συντομογραφίες και τα ακρωνύμια.
  • Διαφορετικές γραμματοσειρές και μορφές: Οι γραμματοσειρές έχουν συνήθως διαφορετικά στυλ, χρώματα και ύψη. Πρέπει να διασφαλίσουμε ότι αυτά είναι γενικά και εύκολα αναγνωρίσιμα. Λίγες οικογένειες γραμματοσειρών, ειδικά εκείνες που εμπίπτουν σε γραφή ή χειρόγραφες, είναι λίγο δύσκολο να εξαχθούν. Ως εκ τούτου, η χρήση καλής γραμματοσειράς και σωστής μορφοποίησης βοηθά τον αλγόριθμο να αναγνωρίζει τις πληροφορίες με μεγαλύτερη ακρίβεια.
  • Πολλαπλά αρχεία PDF και Διακοπή σελίδας: Η γραμμή κειμένου στους πίνακες είναι ευαίσθητη σε ένα προκαθορισμένο όριο. Επίσης, με τα κελιά που εκτείνονται σε πολλές σελίδες, καθίσταται δύσκολη η αναγνώριση των πινάκων. Σε μια σελίδα πολλαπλών πινάκων, είναι δύσκολο να διακρίνουμε διαφορετικούς πίνακες μεταξύ τους. Είναι δύσκολο να επεξεργαστούμε αραιά και ακανόνιστα τραπέζια. Επομένως, οι γραφικές γραμμές και η διάταξη περιεχομένου πρέπει να χρησιμοποιούνται μαζί ως σημαντικές πηγές για τον εντοπισμό περιοχών πίνακα.

Μετατροπή πίνακα

Η τελευταία φάση περιλαμβάνει τη μετατροπή των εξαγόμενων πληροφοριών από πίνακες σε συλλογή τους ως επεξεργάσιμο έγγραφο, είτε στο Excel είτε χρησιμοποιώντας άλλο λογισμικό. Ας μάθουμε για μερικές προκλήσεις.

  • Ορισμός διατάξεων: Όταν εξάγονται διαφορετικές μορφές πινάκων από σαρωμένα έγγραφα, πρέπει να έχουμε μια σωστή διάταξη πίνακα για να προωθήσουμε το περιεχόμενο. Μερικές φορές, ο αλγόριθμος δεν εξάγει πληροφορίες από τα κελιά. Ως εκ τούτου, ο σχεδιασμός μιας σωστής διάταξης είναι επίσης εξίσου σημαντικός.
  • Ποικιλία μοτίβων παρουσίασης αξίας: Οι τιμές στα κελιά μπορούν να παρουσιαστούν χρησιμοποιώντας διαφορετικά πρότυπα συντακτικής αναπαράστασης. Θεωρήστε ότι το κείμενο στον πίνακα είναι 6 ± 2. Ο αλγόριθμος ενδέχεται να αποτύχει να μετατρέψει τις συγκεκριμένες πληροφορίες. Ως εκ τούτου, η εξαγωγή αριθμητικών τιμών απαιτεί γνώση πιθανών προτύπων παρουσίασης.
  • Αναπαράσταση οπτικοποίησης: Οι περισσότερες από τις μορφές αναπαράστασης για πίνακες, όπως γλώσσες σήμανσης στις οποίες μπορούν να περιγραφούν πίνακες, έχουν σχεδιαστεί για οπτικοποίηση. Επομένως, είναι δύσκολο να επεξεργαστείτε αυτόματα πίνακες.

Αυτές είναι οι προκλήσεις που αντιμετωπίζουμε κατά τη διαδικασία εξαγωγής τραπεζιού χρησιμοποιώντας παραδοσιακές τεχνικές. Τώρα ας δούμε πώς να τα ξεπεράσουμε με τη βοήθεια της βαθιάς μάθησης. Διερευνάται ευρέως σε διάφορους τομείς.



Ανάγκη ψηφιοποίησης εγγράφων, αποδείξεων ή τιμολόγια αλλά πολύ τεμπέλης για κωδικοποίηση; Κατευθυνθείτε προς Νανοδίκτυα και δημιουργήστε δωρεάν μοντέλα OCR!


Χαρακτηριστικά

Σε αυτό το άρθρο, εξετάσαμε λεπτομερώς την εξαγωγή πληροφοριών από πίνακες. Είδαμε πώς οι σύγχρονες τεχνολογίες όπως το Deep Learning και το Computer Vision μπορούν να αυτοματοποιήσουν τις εγκόσμιες εργασίες δημιουργώντας ισχυρούς αλγόριθμους για την παραγωγή ακριβών αποτελεσμάτων. Στις αρχικές ενότητες, μάθαμε για τον ρόλο της εξαγωγής πινάκων στη διευκόλυνση των καθηκόντων των ατόμων, των βιομηχανιών και των επιχειρηματικών τομέων», και επίσης εξετάσαμε περιπτώσεις χρήσης που επεξεργάζονται την εξαγωγή πινάκων από αρχεία PDF/HTML, την αυτοματοποίηση φορμών, τιμολόγιο Αυτοματοποίηση, κ.λπ. Έχουμε κωδικοποιήσει έναν αλγόριθμο χρησιμοποιώντας το Computer Vision για να βρούμε τη θέση των πληροφοριών στους πίνακες χρησιμοποιώντας τεχνικές κατωφλίου, διαστολής και ανίχνευσης περιγράμματος. Συζητήσαμε τις προκλήσεις που ενδέχεται να αντιμετωπίσουμε κατά τις διαδικασίες ανίχνευσης, εξαγωγής και μετατροπής πίνακα κατά τη χρήση των συμβατικών τεχνικών και αναφέραμε πώς η βαθιά μάθηση μπορεί να μας βοηθήσει να ξεπεράσουμε αυτά τα ζητήματα. Τέλος, εξετάσαμε μερικές αρχιτεκτονικές νευρωνικών δικτύων και κατανοήσαμε τους τρόπους επίτευξης εξαγωγής πίνακα με βάση τα δεδομένα εκπαίδευσης.



Ενημέρωση:
‌ Προστέθηκε περισσότερο υλικό ανάγνωσης σχετικά με διαφορετικές προσεγγίσεις στον εντοπισμό πινάκων και την εξαγωγή πληροφοριών με τη χρήση βαθιάς μάθησης.

Σφραγίδα ώρας:

Περισσότερα από AI και μηχανική μάθηση