Ποιο γράμμα είναι κρυμμένο; Αναγνώριση γραμμάτων αλφαβήτου Νευρωνικά δίκτυα αναγνώρισης γραμμάτων γ

24.10.2020

Ας έχουμε μια οθόνη μπροστά μας, χωρισμένη σε δώδεκα κελιά, 4 x 3. Τα κελιά αντικατοπτρίζουν τη διακριτικότητα των στοιχείων της εικόνας. Κατά την εστίαση της εικόνας, το κελί είτε φωτίζεται είτε όχι. Ο "Φωτισμός" ορίζει μια ενιαία τιμή του μεγέθους της διέγερσής του, "μη έκθεση" - μηδέν. Έτσι, το γράμμα Ο καθορίζει τον φωτισμό των κυψελών, που προσδιορίζεται στο Σχ. 2.1. Το γράμμα Α φωτίζει την οθόνη, όπως φαίνεται στην Εικ. 2.2.

Τι πρέπει να γίνει ώστε κάποια συσκευή που σχεδιάζουμε να μπορεί να πει ποιο γράμμα είναι;

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


Ρύζι. 2.1.Διδασκαλία του γράμματος «Ο»


Ρύζι. 2.2.Διδασκαλία του γράμματος «Α»

Το ίδιο πρέπει να γίνει και για το γράμμα Α.

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

Αυτά τα κατηγορήματα καθορίζουν την «ηλεκτρονική» υλοποίηση χρησιμοποιώντας μεθόδους σχεδίασης κυκλώματος.

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

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

Έτσι, μπορούμε να πούμε ότι έχουμε δημιουργήσει ένα σύστημα για την αναγνώριση δύο «σωστά» γραμμάτων.

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

Ας εξετάσουμε τη δυνατότητα αναγνώρισης του γράμματος Ο, επιτρέποντας τη δυνατότητα φωτισμού των κελιών (1,1), (1,3), (4,1), (4,3). Τότε το κατηγόρημα που κατασκευάστηκε προηγουμένως θα πάρει τη μορφή:

Ομοίως, για το γράμμα Α, ας επιτρέψουμε να φωτιστούν τα κελιά (4,1) και (4,3):


Ρύζι. 2.3.Κοινή διδασκαλία των γραμμάτων «Ο» και «Α»

Συνδυάζοντας και τα δύο κατηγορήματα, παίρνουμε το διάγραμμα στο Σχ. 2.3.

Έτσι, έχουμε εφαρμόσει μια προσέγγιση «κυκλώματος» για μάθηση και αναγνώριση, βασισμένη στη χρήση συναρτήσεων Boolean και στη λειτουργία Boolean μεταβλητές 0, 1.

Κατασκευή ενός λογικού νευρωνικού δικτύου εκπαιδευμένου να αναγνωρίζει γράμματα

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

Η φύση και εμείς, ως μέρος της, δεν έχουμε ποτέ ακριβείς, σαφείς και αξιόπιστες πληροφορίες. Ο φωτισμός των κυψελών της οθόνης, όπως και οι υποδοχείς του ματιού μας, δεν είναι ποτέ πλήρης, η εικόνα δεν είναι ποτέ σωστή, υπάρχουν θόρυβοι, παραλείψεις κ.λπ. Τότε οι έννοιες της ομοιότητας και των συσχετισμών αποκτούν ζωτική σημασία. «Ποια είναι η πιο παρόμοια με την «εμφανιζόμενη» εικόνα, η κατάσταση που έχει προκύψει και ποιες ενέργειες ανταπόκρισης δικαιολογούνται περισσότερο; - αυτό είναι το ερώτημα που καθορίζει την αρχή της ζωής μας ανάμεσα σε πολλούς κινδύνους και επιτεύγματα. Η συνειρμικότητα της σκέψης μας είναι απόλυτη.

Αυτό σημαίνει ότι πρέπει να απομακρυνθούμε από τις καλά καθορισμένες μεταβλητές Boolean (0, 1, «ναι - όχι», «λευκό - μαύρο» κ.λπ.) προς την αβεβαιότητα, την αξιοπιστία ή άλλες εκτιμήσεις πληροφοριών - προς πραγματικές μεταβλητές.

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

Ας μετατρέψουμε το εκπαιδευμένο κύκλωμα που λάβαμε σε νευρωνικό δίκτυο (Εικ. 2.4).

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

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


Ρύζι. 2.4.Νευρωνικό δίκτυο για την αναγνώριση των γραμμάτων "Ο" και "Α"

Αφού το έργο του εγκεφάλου μιμείται από λογικό επίπεδο, λειτουργία ενεργοποίησηςη επιλογή είναι αρκετά απλή. Άρα, στο παράδειγμά μας αρκεί να επιλέξουμε το εξής λειτουργία ενεργοποίησηςγια να βρείτε την τιμή διέγερσης του i-ου νευρώνα:

Αρχικά βρίσκουμε

Μετά βάζουμε

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

Εισαγωγή στο χαρακτηριστικό Euler μιας εικόνας.

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

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


ΣΧΟΛΙΟ:Στην πράξη, η τιμή F0 (για την αρχική εικόνα αυτή η τιμή είναι 8) δεν χρησιμοποιείται, καθώς είναι το φόντο της εικόνας. Επομένως, θα χρησιμοποιηθούν 15 τιμές, ξεκινώντας από το F1 έως το F15.

Ιδιότητες του Euler χαρακτηριστικές μιας εικόνας.

  1. Η αξία του χαρακτηριστικού συνόλου είναι μοναδική, με άλλα λόγια, δεν υπάρχουν δύο εικόνες με το ίδιο χαρακτηριστικό Euler.
  2. Δεν υπάρχει αλγόριθμος για τη μετατροπή από ένα χαρακτηριστικό σύνολο στην αρχική εικόνα, ο μόνος τρόπος είναι η ωμή δύναμη.

Τι είναι ο αλγόριθμος αναγνώρισης κειμένου;

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

Στάδια αναγνώρισης:

  1. Η εικόνα μπορεί να είναι είτε ασπρόμαυρη είτε έγχρωμη, επομένως το πρώτο στάδιο είναι η προσέγγιση της εικόνας, δηλαδή η λήψη ασπρόμαυρου από αυτήν.
  2. Κάνουμε ένα πέρασμα pixel-pixel σε ολόκληρη την εικόνα για να βρούμε μαύρα pixel. Όταν ανιχνεύεται ένα σκιασμένο εικονοστοιχείο, εκκινείται μια επαναλαμβανόμενη λειτουργία για αναζήτηση όλων των σκιασμένων εικονοστοιχείων που βρίσκονται δίπλα σε αυτό που βρέθηκε και σε επόμενα. Ως αποτέλεσμα, θα λάβουμε ένα θραύσμα της εικόνας, το οποίο μπορεί να είναι είτε ολόκληρος χαρακτήρας είτε μέρος της, είτε «σκουπίδια» που πρέπει να απορριφθούν.
  3. Αφού βρεθούν όλα τα μη συνδεδεμένα μέρη της εικόνας, υπολογίζεται το χαρακτηριστικό Euler για καθένα.
  4. Στη συνέχεια, ο αναλυτής μπαίνει σε λειτουργία και, περνώντας από κάθε τμήμα, καθορίζει εάν η τιμή του χαρακτηριστικού του Euler βρίσκεται στη βάση γνώσεων. Αν βρούμε την τιμή, θεωρούμε ότι είναι ένα αναγνωρισμένο κομμάτι της εικόνας, διαφορετικά το αφήνουμε για περαιτέρω μελέτη.
  5. Τα μη αναγνωρισμένα μέρη της εικόνας υπόκεινται σε ευρετική ανάλυση, δηλαδή προσπαθώ να βρω τα περισσότερα κατάλληλη τιμήστη βάση γνώσεων. Εάν δεν ήταν δυνατό να βρεθεί, τότε γίνεται προσπάθεια να «κολληθούν» κοντινά θραύσματα και να αναζητηθεί ένα αποτέλεσμα στη βάση γνώσεων για αυτά. Σε τι γίνεται το «κόλλημα»; Το γεγονός είναι ότι δεν αποτελούνται όλα τα γράμματα από μία συνεχή εικόνα, για παράδειγμα "!" Το θαυμαστικό περιέχει 2 τμήματα (ένα ραβδί και μια τελεία), επομένως πριν το αναζητήσετε στη βάση γνώσεων, πρέπει να υπολογίσετε τη συνολική τιμή του χαρακτηριστικού Euler και από τα δύο μέρη. Εάν, ακόμη και μετά από κόλληση με παρακείμενα τμήματα, δεν μπορούσε να βρεθεί ένα αποδεκτό αποτέλεσμα, τότε θεωρούμε το θραύσμα ως σκουπίδια και το παραλείπουμε.

Σύνθεση συστήματος:

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

ClearType και anti-aliasing.

Έτσι, ως είσοδος έχουμε μια αναγνωρίσιμη εικόνα, και στόχος είναι να την κάνουμε ασπρόμαυρη, κατάλληλη για την έναρξη της διαδικασίας αναγνώρισης. Φαίνεται ότι τι θα μπορούσε να είναι πιο απλό, μετράμε όλα τα λευκά pixel ως 0 και όλα τα υπόλοιπα ως 1, αλλά δεν είναι όλα τόσο απλά. Το κείμενο σε μια εικόνα μπορεί να είναι anti-aliased ή non-anti-aliased. Οι χαρακτήρες κατά του ψευδώνυμου φαίνονται ομαλοί και χωρίς γωνίες, ενώ οι μη λείοι θα φαίνονται σε σύγχρονες οθόνες με εικονοστοιχεία ορατά κατά μήκος του περιγράμματος. Με την εμφάνιση των οθονών LCD (υγρού κρυστάλλου), δημιουργήθηκαν το ClearType (για Windows) και άλλοι τύποι anti-aliasing, οι οποίοι εκμεταλλεύτηκαν τα χαρακτηριστικά της μήτρας οθόνης. Τα pixel της εικόνας κειμένου αλλάζουν χρώματα, μετά από τα οποία φαίνεται πολύ πιο "μαλακό". Για να δείτε το αποτέλεσμα της εξομάλυνσης, μπορείτε να πληκτρολογήσετε κάποιο γράμμα (ή κείμενο), για παράδειγμα in mspaint, μεγεθύνετε και το κείμενό σας έχει μετατραπεί σε κάποιου είδους πολύχρωμο μωσαϊκό.

Τι συμβαίνει;Γιατί βλέπουμε ένα συνηθισμένο σύμβολο σε μικρή κλίμακα; Μας εξαπατούν τα μάτια μας; Το γεγονός είναι ότι το εικονοστοιχείο μιας οθόνης LCD δεν αποτελείται από ένα μόνο pixel που μπορεί να λάβει το επιθυμητό χρώμα, αλλά από 3 υποπίξελ των 3 χρωμάτων, τα οποία είναι αρκετά για να αποκτήσετε επιθυμητό χρώμα. Επομένως, ο στόχος του ClearType είναι να αποκτήσει το πιο ευχάριστο οπτικά κείμενο χρησιμοποιώντας τη δυνατότητα της μήτρας οθόνης LCD, και αυτό επιτυγχάνεται με την απόδοση υποπίξελ. Όποιος έχει "Μεγεθυντικό φακό" μπορεί, για πειράματα, να μεγεθύνει οποιοδήποτε σημείο στην οθόνη που είναι ενεργοποιημένο και να δει τη μήτρα όπως στην παρακάτω εικόνα.

Το σχήμα δείχνει ένα τετράγωνο 3x3 pixel της μήτρας LCD.

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


Λήψη ασπρόμαυρης εικόνας.

Δεν έμεινα ικανοποιημένος με την ποιότητα των αλγορίθμων μετατροπής χρώματος σε ασπρόμαυρο που βρέθηκαν στο Διαδίκτυο. Μετά την εφαρμογή τους, οι εικόνες των χαρακτήρων που υποβλήθηκαν σε απόδοση sublepixel έγιναν διαφορετικές σε πλάτος, εμφανίστηκαν σπασίματα στις γραμμές των γραμμάτων και ακατανόητα σκουπίδια. Ως αποτέλεσμα, αποφάσισα να αποκτήσω ασπρόμαυρες εικόνες αναλύοντας τη φωτεινότητα του pixel. Όλα τα εικονοστοιχεία φωτεινότερα (μεγαλύτερα από την τιμή) 130 μονάδες θεωρήθηκαν μαύρα, τα υπόλοιπα ήταν λευκά. Αυτή η μέθοδος δεν είναι ιδανική και εξακολουθεί να οδηγεί σε ένα μη ικανοποιητικό αποτέλεσμα εάν αλλάξει η φωτεινότητα του κειμένου, αλλά τουλάχιστον έλαβε εικόνες παρόμοιες με τις τιμές στη βάση γνώσεων. Η υλοποίηση μπορεί να φανεί στην κλάση LuminosityApproximator.

Βάση γνώσεων.

Η αρχική ιδέα της πλήρωσης της βάσης γνώσεων ήταν τέτοια ώστε για κάθε γράμμα της γλώσσας θα υπολόγιζα το χαρακτηριστικό Euler της εικόνας συμβόλου που προκύπτει για 140 γραμματοσειρές που είναι εγκατεστημένες στον υπολογιστή μου (C:\Windows\Fonts), προσθέτω όλα οι επιλογές για τους τύπους γραμματοσειρών (Κανονικό, Λιπαρός, Κυρτά γράμματα) και μεγέθη από 8 έως 32, καλύπτοντας έτσι όλες, ή σχεδόν όλες, τις παραλλαγές των γραμμάτων και η βάση θα γίνει καθολική, αλλά δυστυχώς αυτό δεν ήταν τόσο καλό όσο φαίνεται. Με αυτές τις προϋποθέσεις, αυτό είναι που πήρα:

  1. Το αρχείο βάσης γνώσεων αποδείχθηκε αρκετά μεγάλο (περίπου 3 megabyte) για ρωσικά και Αγγλική γλώσσα. Παρά το γεγονός ότι το χαρακτηριστικό Euler αποθηκεύεται ως μια απλή συμβολοσειρά 15 ψηφίων και το ίδιο το αρχείο είναι ένα συμπιεσμένο αρχείο (DeflateStream), το οποίο στη συνέχεια αποσυσκευάζεται στη μνήμη.
  2. Μου παίρνει περίπου 10 δευτερόλεπτα για να απελευθερώσω τη βάση γνώσεων. Ταυτόχρονα, υπέφερε ο χρόνος σύγκρισης χαρακτηριστικών συνόλων. Δεν ήταν δυνατό να βρω μια συνάρτηση για τον υπολογισμό του GetHashCode(), γι' αυτό έπρεπε να συγκρίνω κομμάτι προς κομμάτι. Και σε σύγκριση με μια βάση γνώσεων 3-5 γραμματοσειρών, ο χρόνος για ανάλυση κειμένου με βάση δεδομένων 140 γραμματοσειρών αυξήθηκε κατά 30-50 φορές. Ταυτόχρονα, τα ίδια σύνολα χαρακτηριστικών δεν αποθηκεύονται στη βάση γνώσεων, παρά το γεγονός ότι ορισμένοι χαρακτήρες σε διαφορετικές γραμματοσειρές μπορεί να φαίνονται ίδιοι και να είναι παρόμοιοι, ακόμη και υπάρχουν, για παράδειγμα, γραμματοσειρές 20 και 21.

Ως εκ τούτου, έπρεπε να δημιουργήσω μια μικρή βάση γνώσεων που μπαίνει μέσα στη μονάδα Core και καθιστά δυνατό τον έλεγχο της λειτουργικότητας. Υπάρχει ένα πολύ σοβαρό πρόβλημα κατά την πλήρωση της βάσης δεδομένων. Δεν εμφανίζουν όλες οι γραμματοσειρές σωστά μικρούς χαρακτήρες. Ας πούμε ότι ο χαρακτήρας "e" όταν αποδίδεται σε γραμματοσειρά μεγέθους 8 με το όνομα "Franklin Gothic Medium" αποδεικνύεται ότι είναι:

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

Αλγόριθμος αναζήτησης χαρακτήρων.

Θα πω αμέσως ότι αρχικά υποτίμησα αυτό το πρόβλημα με την αναζήτηση και ξέχασα ότι τα σύμβολα μπορούν να αποτελούνται από πολλά μέρη. Μου φάνηκε ότι κατά τη διάρκεια ενός περάσματος pixel-pixel θα συναντούσα ένα σύμβολο, θα έβρισκα τα μέρη του, εάν υπάρχουν, θα τα συνδύασα και θα τα ανέλυα. Ένα τυπικό πάσο θα μοιάζει με αυτό: Ψάχνω το γράμμα "H" (Στη βάση γνώσεων) και θεωρώ ότι όλοι οι χαρακτήρες κάτω από την επάνω κουκκίδα και πάνω από την κάτω κουκκίδα ανήκουν στην τρέχουσα γραμμή και πρέπει να ονομάζονται ψευδώνυμο:

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


Αυτή η εικόνα της λέξης «ναι» θα προσπαθήσει να εξηγήσει την πολυπλοκότητα της ανάλυσης. Θα υποθέσουμε ότι πρόκειται για μια πλήρη συμβολοσειρά, αλλά τα b13 και i6 είναι θραύσματα σκουπιδιών ως αποτέλεσμα προσέγγισης. Ο χαρακτήρας "y" λείπει μια τελεία και κανένας από τους χαρακτήρες δεν είναι παρών στη γνωσιακή βάση για να πούμε με βεβαιότητα ότι έχουμε να κάνουμε με μια γραμμή κειμένου από τη γραμμή "c" έως τη γραμμή "i". Και το ύψος της γραμμής είναι πολύ σημαντικό για εμάς, αφού για την κόλληση πρέπει να γνωρίζουμε πόσο κοντά πρέπει να "κολληθούν" και να αναλυθούν τα θραύσματα. Εξάλλου, μπορεί να υπάρξει μια κατάσταση όπου κατά λάθος αρχίσουμε να κολλάμε χαρακτήρες από δύο χορδές και τα αποτελέσματα μιας τέτοιας αναγνώρισης δεν θα είναι ιδανικά.

Ευρετική στην ανάλυση εικόνας.


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

  1. Βρίσκω όλα τα χαρακτηριστικά σύνολα στη βάση γνώσεων που έχουν μεγαλύτερος αριθμόςαξίες θραύσματα Fταιριάζει με την αναγνωρισμένη εικόνα.
  2. Στη συνέχεια, επιλέγω μόνο εκείνα τα χαρακτηριστικά σύνολα στα οποία, με την αναγνωρισμένη εικόνα που βασίζεται σε άνισες τιμές F του θραύσματος, η διαφορά δεν είναι μεγαλύτερη από +- 1 μονάδα: -1< F < 1. И это все подсчитывается для каждой буквы алфавита.
  3. Τότε βρίσκω ένα σύμβολο που έχει μεγαλύτερος αριθμόςπεριστατικά. Θεωρώντας το αποτέλεσμα μιας ευρετικής ανάλυσης.
Αυτός ο αλγόριθμος δεν δίνει τα καλύτερα αποτελέσματα σε εικόνες μικρών χαρακτήρων (μέγεθος γραμματοσειράς 7 - 12) . Αλλά μπορεί να οφείλεται στο γεγονός ότι η βάση γνώσεων περιέχει χαρακτηριστικά σύνολα για παρόμοιες εικόνες διαφορετικών συμβόλων.

Ένα παράδειγμα χρήσης σε C#.

Ένα παράδειγμα της αρχής της εικόνας αναγνώρισης εικόνας. Η μεταβλητή αποτελέσματος θα περιέχει το κείμενο:

var αναγνωριστικό = νέο TextRecognizer(container); var report = αναγνωριστής.Αναγνώριση(εικόνα); // Ακατέργαστο κείμενο. var result = report.RawText();// Λίστα όλων των τμημάτων και κατάσταση αναγνώρισης για κάθε ένα.

var fragments = αναφορά.Σύμβολα;

Έργο επίδειξης. Για μια οπτική επίδειξη του έργου έγραψα WPF εφαρμογή. Ξεκινά από ένα έργο που ονομάζεται " Qocr.Application.Wpf

Ένα παράδειγμα παραθύρου με το αποτέλεσμα αναγνώρισης είναι παρακάτω:

  • Για να αναγνωρίσετε μια εικόνα θα χρειαστείτε: πρέσες"Νέα εικόνα"
  • επιλέγει μια εικόνα για αναγνώριση Χρησιμοποιώντας το "Γραπτώς
  • "Μπορείτε να δείτε ποια εικόνα θα αναλυθεί. Εάν δείτε μια εικόνα εξαιρετικά χαμηλής ποιότητας, τότε μην περιμένετε καλά αποτελέσματα. Για να βελτιώσετε τα αποτελέσματα, μπορείτε να δοκιμάσετε να γράψετε μόνοι σας μια έγχρωμη εικόνα σε ασπρόμαυρο μετατροπέα. Επιλογή γλώσσας.
  • "Γλώσσα" Τα κλικ αναγνωρίζονται.
"Αναγνωρίζω"
Όλα τα θραύσματα εικόνας πρέπει να επισημαίνονται με πορτοκαλί ή πράσινο πλαίσιο.

Ένα παράδειγμα αναγνώρισης κειμένων στην αγγλική γλώσσα: και με πιθανότητα 0,1 – στην κατηγορία C 2. Το αναφερόμενο πρόβλημα μπορεί να λυθεί χρησιμοποιώντας μια ΜΜΕ με Ν εισόδους και Μ εξόδους, εκπαιδευμένη να παράγει ένα διάνυσμα στην έξοδοντο , όταν δίνεται η είσοδος.

σελ Κατά τη διάρκεια της μαθησιακής διαδικασίας, το δίκτυο δημιουργεί μια αντιστοίχιση P → C. Δεν είναι δυνατό να ληφθεί αυτή η αντιστοίχιση στο σύνολό της, αλλά είναι δυνατό να ληφθεί ένας αυθαίρετος αριθμός ζευγών ( p → c) , όταν δίνεται η είσοδος, συνδεδεμένο μέσω οθόνης. Για ένα αυθαίρετο διάνυσμα

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

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

Υπάρχουν και άλλοι τρόποι επισημοποίησης.

Θα αναπαραστήσουμε γράμματα με τη μορφή εικόνων με τελείες (Εικ.).

Ρύζι. . Spot εικόνα. Το σκοτεινό κελί pixel στην εικόνα αντιστοιχεί σε I ij = Το σκοτεινό κελί pixel στην εικόνα αντιστοιχεί σε 0 . Το καθήκον είναι να προσδιορίσετε από την εικόνα το γράμμα που παρουσιάστηκε.

Ας φτιάξουμε μια ΜΜΕ με N iΧ N jεισόδους, όπου κάθε είσοδος αντιστοιχεί σε ένα pixel: x k = I ij .Οι φωτεινότητες των εικονοστοιχείων θα είναι στοιχεία του διανύσματος εισόδου.

Ως σήματα εξόδου, επιλέγουμε τις πιθανότητες η παρουσιαζόμενη εικόνα να αντιστοιχεί σε ένα δεδομένο γράμμα:

Το δίκτυο υπολογίζει την έξοδο:

που είναι η έξοδος και με πιθανότητα 0,1 – στην κατηγορία C 2. Το αναφερόμενο πρόβλημα μπορεί να λυθεί χρησιμοποιώντας μια ΜΜΕ με Ν εισόδους και Μ εξόδους, εκπαιδευμένη να παράγει ένα διάνυσμα στην έξοδο 1 = 0,9 σημαίνει, για παράδειγμα, ότι παρουσιάζεται μια εικόνα του γράμματος "A" και το δίκτυο είναι 90% σίγουρο για αυτό, η έξοδος και με πιθανότητα 0,1 – στην κατηγορία C 2. Το αναφερόμενο πρόβλημα μπορεί να λυθεί χρησιμοποιώντας μια ΜΜΕ με Ν εισόδους και Μ εξόδους, εκπαιδευμένη να παράγει ένα διάνυσμα στην έξοδο 2 = 0,1 - ότι η εικόνα αντιστοιχεί στο γράμμα "B" με πιθανότητα 10%, κ.λπ.

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



(I ij) → m

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

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

Διδάσκοντας τα παιδιά να διαβάζουν και γράμματα του ρωσικού αλφαβήτου. Ποιο γράμμα εμφανίζεται; Επιλέξτε τη σωστή απάντηση στα δεξιά.

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

Πώς να μάθετε γράμματα του ρωσικού αλφαβήτου

Συχνά τα γράμματα του ρωσικού αλφαβήτου αρχίζουν να διδάσκονται με τη σειρά, όπως είναι γραμμένα στο αστάρι. Μάλιστα, τα γράμματα θα πρέπει να διδάσκονται με σειρά συχνότητας χρήσης. Θα σας δώσω μια μικρή υπόδειξη - τα γράμματα στο κέντρο του πληκτρολογίου χρησιμοποιούνται πιο συχνά από αυτά στην περιφέρεια. Επομένως, πρώτα πρέπει να απομνημονεύσετε τα A, P, R, O... και να αφήσετε τέτοια όπως Y, X, F, Shch για ένα σνακ...

Τι είναι καλύτερο - να διδάξετε ένα παιδί να διαβάζει γράμματα ή συλλαβές;

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

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

Τα βιβλία ABC σας βοηθούν να μάθετε γράμματα; Γιατί τα χάρτινα αστάρια εξακολουθούν να χρησιμοποιούνται στη διδακτική πράξη

Παραδοσιακά, τα χάρτινα βιβλία ABC χρησιμοποιούνται για τη διδασκαλία γραμμάτων. Τα πλεονεκτήματά τους είναι αναμφισβήτητα. Εάν ρίξετε την χάρτινη έκδοση στο πάτωμα, δεν χρειάζεται να ανησυχείτε μήπως σπάσει η συσκευή. Τα Primer μπορούν να ανοίξουν σε μια συγκεκριμένη σελίδα και να τοποθετηθούν σε εμφανές σημείο. Όλα αυτά δεν βρίσκονται σε ηλεκτρονικές συσκευές.

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

Σας βοηθούν οι διαδικτυακές ασκήσεις να θυμάστε τα γράμματα;

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

Σε ποια ηλικία πρέπει να στέλνεται ένα παιδί σε εκπαιδευτικά κέντρα;

Η ταχύτητα ωρίμανσης είναι διαφορετική. Συνήθως. Τα κορίτσια μέχρι μια ορισμένη ηλικία είναι μπροστά από τα αγόρια στην ανάπτυξη. Τα κορίτσια αρχίζουν να μιλούν νωρίτερα, είναι πιο κοινωνικά προσανατολισμένα και πιο επιδεκτικά στη μάθηση. Τα αγόρια, αντίθετα, είναι συχνά πολύ αυτιστικά - που περπατούν μόνα τους. Από αυτό μπορούμε να συμπεράνουμε ότι τα κορίτσια μαθαίνουν να διαβάζουν λίγο νωρίτερα από τα αγόρια. Αλλά αυτό είναι μόνο ένα εξωτερικό διάγραμμα. Κάθε παιδί είναι ατομικό και η ετοιμότητά του για μάθηση μπορεί να δοκιμαστεί στην πράξη. Απολαμβάνει το παιδί σας να παρακολουθεί μαθήματα; μένει κάτι στο μυαλό του αφού το έχει ξεμάθει;

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

Τι να κάνετε εάν το παιδί σας δεν θυμάται γράμματα

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

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

Μπορεί να γίνει γραφικές υπαγορεύσεις, μπορείτε να παίξετε ισοπαλία και να επαναλάβετε.

Τι να κάνετε εάν το μωρό σας μπερδεύει τα γράμματα, για παράδειγμα, D και T

Εάν ένα παιδί μπερδεύει τα γράμματα, αυτό σημαίνει ότι είναι πολύ νωρίς για να προχωρήσουμε στην ανάγνωση λέξεων. Πηγαίνετε πίσω και επαναλάβετε τα γράμματα. Τα παιδιά συχνά μπερδεύουν φωνητικά και χωρίς φωνή γράμματα ή παρόμοια ορθογραφία, για παράδειγμα, P και R. Η πρακτική επανάληψης μπορεί να βοηθήσει. Για παράδειγμα, μπορείτε να σμιλέψετε γράμματα μαζί, μπορείτε να κάνετε γράμματα από το σώμα, για παράδειγμα, τοποθετώντας τα χέρια σας στα πλάγια για να απεικονίσετε το γράμμα Τ.

Πώς να διδάξετε ένα παιδί να απομνημονεύει γράμματα αν δεν το θέλει

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

Γιατί δεν μπορεί να προφέρει σωστά τα γράμματα; Πώς να διδάξετε ένα παιδί να προφέρει γράμματα καθαρά και καθαρά;

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

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

Αυτό που πρέπει επίσης να σημειωθεί είναι ότι πρέπει να αγαπάτε τα παιδιά και να εργάζεστε μαζί τους περιοδικά. Μην ξεκινήσετε διαδικασίες.

Πώς να μάθετε στο παιδί σας το αλφάβητο για να προετοιμαστεί για το σχολείο

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

Με ποια γράμματα πρέπει να αρχίσετε να απομνημονεύετε το αλφάβητο;

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

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

Χρειάζεται το μωρό σας να απομνημονεύει τα γράμματα του αγγλικού αλφαβήτου;

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

Είναι δυνατόν να μάθουμε ένα παιδί να διαβάζει αμέσως με λέξεις;

Τα γραπτά ρωσικά είναι ίδια με τα προφορικά ρωσικά, σε αντίθεση με τα αγγλικά ή τα γαλλικά, γι' αυτό θυμηθείτε τις λέξεις

Πώς να θυμάστε αριθμούς για ένα παιδί προσχολικής ηλικίας

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

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

Γιατί ένα παιδί προσχολικής ηλικίας ξεχνά τα γράμματα; Διδασκαλία της ανάγνωσης μέσα από παιχνίδια

Γιατί ένα μωρό ξεχνά γράμματα παρόλο που τα έμαθε χθες;

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

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

Ο Ebbinghaus (διαβάστε περισσότερα σχετικά στη Wikipedia) μελέτησε πόσο γρήγορα ξεχνιούνται πληροφορίες που δεν έχουν νόημα για ένα άτομο και κατέληξε στο συμπέρασμα ότι το 40% των πληροφοριών ξεχνιέται στα πρώτα είκοσι λεπτά. Και, αν είναι αδύνατο να πούμε ακριβώς τι σημαίνει ένα συγκεκριμένο γράμμα, τότε αυτό ισοδυναμεί με το γεγονός ότι το γράμμα είναι εντελώς άγνωστο. Πρέπει να υπάρχει μια σαφής 100% αναγνώριση.

Επαναλάβετε, επαναλάβετε, επαναλάβετε

Για παράδειγμα, εκπαιδεύετε αποθήκες (συλλαβή, συνδυασμός γραμμάτων) ΕΠΙ, και το παιδί λίγο πολύ έμαθε να αναγνωρίζει και να διαβάζει τον συνδυασμό. Προσθέστε τη συλλαβή ΑΛΛΑ στις εργασίες και ζητήστε τους να διαβάσουν τις λέξεις, βοηθώντας τους να διαβάσουν γράμματα που είναι ακόμα άγνωστα στο παιδί. Ωστόσο, το παιδί μπορεί να κάνει κλικ μόνο του στις συλλαβές και να ακούσει τον υπολογιστή να διαβάζει.

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

Ρύζι. 2.22. Αναπαράσταση συμβόλου

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

Το MATLAB έχει μια λειτουργία prprob, που επιστρέφει έναν πίνακα, κάθε στήλη του οποίου αντιπροσωπεύει έναν πίνακα γραμμένο ως διάνυσμα που περιγράφει το αντίστοιχο γράμμα (η πρώτη στήλη περιγράφει το γράμμα Α, η δεύτερη το γράμμα Β κ.λπ.). Λειτουργία prprobεπιστρέφει επίσης έναν πίνακα στόχο μεγέθους , κάθε στήλη του οποίου περιέχει ένα 1 στη σειρά που αντιστοιχεί στον αριθμό γράμματος με τα υπόλοιπα στοιχεία της στήλης να είναι μηδέν. Για παράδειγμα, η πρώτη στήλη που αντιστοιχεί στο γράμμα Α περιέχει ένα 1 στην πρώτη σειρά.

Παράδειγμα. Ας ορίσουμε ένα πρότυπο για το γράμμα Α (πρόγραμμα Πρότυπο_Α.μ).

% Παράδειγμα σχηματισμού προτύπου για το γράμμα Α

Prprob;

i=1; % αριθμός γράμματος Α

v=alphabet(:,i); % διάνυσμα που αντιστοιχεί στο γράμμα Α

template=reshape(v, 5,7)";

Εκτός από την ήδη περιγραφείσα λειτουργία prprobτο πρόγραμμα χρησιμοποιεί λειτουργίες αναπλάσσω, που σχηματίζει τον πίνακα , και μετά τη μεταφορά - (βεβαιωθείτε ότι δεν είναι δυνατός ο αμέσως σχηματισμός του πίνακα ) και η συνάρτηση plotchar, το οποίο σχεδιάζει 35 διανυσματικά στοιχεία σε μοτίβο πλέγματος. Μετά την εκτέλεση του προγράμματος Πρότυπο_Α.μπαίρνουμε μια μήτρα περίγραμμακαι το πρότυπο γράμματος Α όπως φαίνεται στο Σχ. 2.23.

Ρύζι. 2.23. Σχηματισμένο γράμμα Α πρότυπο

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



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

Εξετάστε ένα πρόγραμμα για την αναγνώριση των γραμμάτων του λατινικού αλφαβήτου Χαρ_αναγνώριση.μ

% Πρόγραμμα αναγνώρισης γραμμάτων λατινικού αλφαβήτου

Prprob; % Σχηματισμός διανυσμάτων εισόδου και στόχου

Μέγεθος (αλφάβητο);

Μέγεθος (στόχοι);

% Δικτύωση

Τρένο (καθαρό, P, T);

% Μάθηση παρουσία θορύβου

P = ;

Τρένο (netn,P,T);

Τρένο (netn,P,T);

% Δοκιμή δικτύου

θόρυβος_οργή=0:0.05:0.5; % Συστοιχία επιπέδων θορύβου (τυπικές αποκλίσεις θορύβου

για noiselevel=noise_rage

για i=1:max_test

% Δοκιμή για το δίκτυο 1

% Δοκιμή για το δίκτυο 2

title("Σφάλμα δικτύου");

xlabel ("Επίπεδο θορύβου");

ylabel("Ποσοστό σφάλματος");

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

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

Το ακόλουθο τμήμα του προγράμματος εκπαιδεύεται χωρίς θόρυβο :

% Εκπαίδευση δικτύου απουσία θορύβου

Τρένο (καθαρό, P, T);

disp("Η εκπαίδευση δικτύου σε περίπτωση απουσίας θορύβου έχει ολοκληρωθεί. Πατήστε Enter");

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

% Μάθηση παρουσία θορύβου

netn = καθαρό; % εξοικονόμηση του εκπαιδευμένου δικτύου

T = ;

P = ;

Τρένο (netn,P,T);

disp("Η εκπαίδευση δικτύου παρουσία θορύβου ολοκληρώθηκε. Πατήστε Enter");

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

% Επανεκπαίδευση απουσία θορύβου

Τρένο (netn,P,T);

disp("Η επανεκπαίδευση του δικτύου απουσία θορύβου ολοκληρώθηκε. Πατήστε Enter");

Πραγματοποιήθηκε δοκιμή δικτύου για δύο δομές δικτύου: το δίκτυο 1, εκπαιδευμένο σε ιδανικά διανύσματα και το δίκτυο 2, εκπαιδευμένο σε θορυβώδεις ακολουθίες. Θόρυβος με μέσο όρο 0 και τυπική απόκλιση 0 έως 0,5 σε βήματα 0,05 προστέθηκε στα διανύσματα εισόδου. Για κάθε επίπεδο θορύβου, δημιουργήθηκαν 10 θορυβώδη διανύσματα για κάθε σύμβολο και υπολογίστηκε η έξοδος του δικτύου (είναι επιθυμητό να αυξηθεί ο αριθμός των θορυβωδών διανυσμάτων, αλλά αυτό θα αυξήσει σημαντικά τον χρόνο εκτέλεσης του προγράμματος). Το δίκτυο εκπαιδεύεται να σχηματίζει ένα στο μοναδικό στοιχείο του διανύσματος εξόδου, η θέση του οποίου αντιστοιχεί στον αριθμό του αναγνωρισμένου γράμματος και να γεμίζει το υπόλοιπο διάνυσμα με μηδενικά. Η έξοδος δικτύου δεν θα δημιουργήσει ποτέ ένα διάνυσμα εξόδου που να αποτελείται ακριβώς από 1 και 0. Επομένως, υπό συνθήκες θορύβου, το διάνυσμα εξόδου επεξεργάζεται από τη συνάρτηση ανταγωνίζονται, το οποίο μετασχηματίζει το διάνυσμα εξόδου έτσι ώστε το μεγαλύτερο σήμα εξόδου να λαμβάνει την τιμή 1 και όλα τα άλλα σήματα εξόδου λαμβάνουν την τιμή 0.

Το αντίστοιχο τμήμα του προγράμματος μοιάζει με:

% Εκτελέστε μια δοκιμή για κάθε επίπεδο θορύβου

για noiselevel=noise_rage

για i=1:max_test

P=alphabet+randn(35, 26)*noiselevel;

% Δοκιμή για το δίκτυο 1

errors1=errors1+sum(sum(abs(AA-T)))/2;

% Δοκιμή για το δίκτυο 2

errors2=errors2+sum(sum(abs(AAn-T)))/2;

% Μέσες τιμές σφάλματος (μέγιστες_ακολουθίες δοκιμής 26 διανυσμάτων στόχου)

δίκτυο1=;

δίκτυο2=;

plot(noise_rage, network1*100, noise_rage, network2*100);

title("Σφάλμα δικτύου");

xlabel ("Επίπεδο θορύβου");

ylabel("Ποσοστό σφάλματος");

legend("Ideal input vectors","Noisy input vectors");

disp("Ολοκληρώθηκε η δοκιμή");

Κατά τον υπολογισμό του σφάλματος αναγνώρισης, για παράδειγμα, errors1=errors1+sum(sum(abs(AA-T)))/2, λαμβάνεται υπόψη ότι σε περίπτωση εσφαλμένης αναγνώρισης δύο στοιχεία του διανύσματος εξόδου και του διανύσματος στόχου κάνουν Δεν συμπίπτει, επομένως, κατά τον υπολογισμό του σφάλματος, η διαίρεση με το 2 πραγματοποιείται άθροισμα (abs(AA-T)) για τον υπολογισμό του αριθμού των μη αντιστοιχισμένων στοιχείων. Το άθροισμα άθροισμα(άθροισμα(abs(AA-T))) υπολογίζει τον αριθμό των μη αντιστοιχισμένων στοιχείων σε όλα τα παραδείγματα.

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

Ρύζι. 2.24. Σφάλματα δικτύου ανάλογα με το επίπεδο θορύβου

Ας ελέγξουμε τη λειτουργία του εκπαιδευμένου δικτύου (το εκπαιδευμένο δίκτυο πρέπει να υπάρχει στον χώρο εργασίας του MATLAB). Πρόγραμμα Αναγνώριση_J.mδημιουργεί ένα θορυβώδες διάνυσμα για το γράμμα J και αναγνωρίζει το γράμμα. Λειτουργία randnδημιουργεί έναν ψευδοτυχαίο αριθμό που κατανέμεται σύμφωνα με έναν κανονικό νόμο με μηδενική μαθηματική προσδοκία και μοναδιαία τυπική απόκλιση. Τυχαίος αριθμός με μαθηματική προσδοκία mκαι τυπική απόκλιση ρεπου λαμβάνεται με τον τύπο m+randn*d(στο πρόγραμμα m=0, d=0,2).

NoisyJ = alphabet(:,10)+randn(35,1) * 0,2;

plotchar(noisyJ);

disp("Θορυβώδης χαρακτήρας. Πατήστε Enter");

A2 = netn(noisyJ);

A2 = compet(A2);

ns = find(A2 == 1);

disp("Αναγνωρισμένο σύμβολο");

plotchar(alphabet(:,ns));

Το πρόγραμμα εμφανίζει τον αριθμό του αναγνωρισμένου γράμματος, το θορυβώδες μοτίβο του γράμματος (Εικ. 2.25) και το μοτίβο του αναγνωρισμένου γράμματος (2.26).

Ρύζι. 2.25. Πρότυπο θορυβώδους επιστολής

Ρύζι. 2.26. Αναγνωρισμένο μοτίβο γραμμάτων

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

αποστολές

1. Κάντε όλα τα παραδείγματα που δίνονται.

2. Εμπειρία στην αναγνώριση διαφορετικών γραμμάτων

3. Διερευνήστε την επίδραση του θορύβου στα προγράμματα στην ακρίβεια της αναγνώρισης χαρακτήρων.

Προσέγγιση συνάρτησης

Σχετικά άρθρα
 
Κατηγορίες