Λίγα λόγια για την αναγνώριση προτύπων. Εικόνα εικόνας ράστερ ως δισδιάστατος πίνακας δεδομένων Παράδειγμα ψηφιακής αναγνώρισης τριγώνου

Όταν κοιτάμε μια δισδιάστατη εικόνα μιας τρισδιάστατης σκηνής (σε πίνακα ζωγραφικής, φωτογραφίας, οθόνης), μας φαίνεται ότι όλα τα αντικείμενα που θα μπορούσαμε να δούμε αν παρατηρούσαμε απευθείας την ίδια σκηνή στη ζωή είναι άμεσα παρόντα εκεί. Εν τω μεταξύ, το μόνο που μας δίνεται πραγματικά σε μια δισδιάστατη εικόνα είναι ορατό πεδίο, που αντιπροσωπεύει μόνο μερικά λειτουργία κατανομής φωτεινότηταςή χρωματιστάσε δισδιάστατο επίπεδο: φά(Χ, y) , Οπου ΧΚαι y– Καρτεσιανές συντεταγμένες που περιγράφουν το επίπεδο εικόνας.

Επιπλέον, εάν πλησιάσετε την οθόνη μιας οθόνης υπολογιστή, μπορείτε να δείτε ότι η εικόνα στην οθόνη δεν είναι στην πραγματικότητα ομαλή και συνεχής, αλλά είναι ένα διακριτό «μωσαϊκό» που αποτελείται από μεμονωμένα έγχρωμα ορθογώνια διατεταγμένα σε μια κανονική ορθογώνια μήτρα. Αυτή είναι μια ψηφιακή εικόνα. Από μαθηματική άποψη ψηφιακή εικόναείναι ένας δισδιάστατος πίνακας μεγέθους Im (DimXDimY), όπου x είναι ακέραιος από το 0 έως το DimX– 1, που περιγράφει τον αριθμό του στοιχείου στη σειρά του πίνακα, το y είναι ένας ακέραιος από το 0 έως το DimY– 1, που περιγράφει τον αριθμό της γραμμής μήτρας στην οποία βρίσκεται αυτό το στοιχείο. Σε αυτή την περίπτωση, καλείται το ίδιο το στοιχείο της ψηφιακής εικόνας (ένα κελί μιας ορθογώνιας μήτρας). εικονοκύτταρο(pixel, στοιχείο εικόνας). Στην απλούστερη περίπτωση, κάθε pixelIm έχει μια κλιμακωτή ακέραια τιμή ανάλογη με την τιμή της συνάρτησης κατανομής φωτεινότητας φά(Χ, y) σε ένα δεδομένο σημείο του επιπέδου.

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

@Ρύζι. 1.1.1 Ψηφιακή εικόνα ως δισδιάστατη μήτρα έντασης

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

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

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

Προκειμένου να πειστούμε τελικά για την πολυπλοκότητα του έργου που έχουμε να αναλύσουμε μια εικόνα, η οποία είναι μια δισδιάστατη διάταξη αριθμητικών δεδομένων, ας προσπαθήσουμε να μπούμε στη θέση ενός προγράμματος υπολογιστή που ασχολείται με αφηρημένους αριθμούς. Για να το κάνουμε αυτό, ας αλλάξουμε διανοητικά τον τρόπο αντίληψης της εικόνας – να τη μεταφέρουμε από την οπτική στην απτική περιοχή. Ας φανταστούμε έναν δισδιάστατο πίνακα τιμών έντασης ως σκακιέρα, το μέγεθος της οποίας είναι ίσο με το μέγεθος της εικόνας (DimXDimY), και μια στήλη εισάγεται στο κέντρο κάθε κελιού, το ύψος της οποίας είναι ανάλογη με την τιμή του αντίστοιχου pixel στην εικόνα. Με άλλα λόγια, ας θεωρήσουμε μια δισδιάστατη εικόνα ως ένα είδος τρισδιάστατης επιφάνειας υπό όρους. Στο Σχ. 1.1.2 στα αριστερά είναι ένα θραύσμα από το πρόσωπο μιας γυναίκας που εμφανίζεται ως εικόνα και στα δεξιά εμφανίζεται ως ψευδο-3D ανάγλυφο.

@Ρύζι. 1.1.2. Ψηφιακή εικόνα ως ψευδο-3D ανάγλυφο

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

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

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

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

  • Όταν λύνετε ένα πρόβλημα, πηγαίνετε πάντα από το πιο απλό. Είναι πολύ πιο εύκολο να βάλεις μια πορτοκαλί ετικέτα σε ένα άτομο από το να ακολουθήσεις ένα άτομο, τονίζοντας τον σε καταρράκτες. Είναι πολύ πιο εύκολο να πάρετε μια κάμερα με υψηλότερη ανάλυση παρά να αναπτύξετε έναν αλγόριθμο υπερ-ανάλυσης.
  • Μια αυστηρή διατύπωση του προβλήματος στις μεθόδους οπτικής αναγνώρισης είναι τάξεις μεγέθους πιο σημαντική από ό,τι στα προβλήματα προγραμματισμού συστήματος: μια επιπλέον λέξη στις τεχνικές προδιαγραφές μπορεί να προσθέσει το 50% της εργασίας.
  • Δεν υπάρχουν καθολικές λύσεις στα προβλήματα αναγνώρισης. Δεν μπορείτε να φτιάξετε έναν αλγόριθμο που απλώς θα "αναγνωρίζει οποιαδήποτε επιγραφή". Μια πινακίδα στο δρόμο και ένα φύλλο κειμένου είναι θεμελιωδώς διαφορετικά αντικείμενα. Είναι πιθανώς δυνατό να δημιουργηθεί ένας γενικός αλγόριθμος (εδώ είναι ένα καλό παράδειγμα από την Google), αλλά θα απαιτήσει πολλή δουλειά από μια μεγάλη ομάδα και θα αποτελείται από δεκάδες διαφορετικές υπορουτίνες.
  • Το OpenCV είναι μια Βίβλος που έχει πολλές μεθόδους και μπορεί να λύσει το 50% σχεδόν κάθε προβλήματος, αλλά το OpenCV είναι μόνο ένα μικρό μέρος του τι μπορεί πραγματικά να γίνει. Σε μια μελέτη, τα συμπεράσματα γράφτηκαν: «Το πρόβλημα δεν μπορεί να λυθεί χρησιμοποιώντας μεθόδους OpenCV, επομένως είναι άλυτο». Προσπαθήστε να το αποφύγετε, μην είστε τεμπέλης και αξιολογήστε νηφάλια την τρέχουσα εργασία από την αρχή κάθε φορά, χωρίς να χρησιμοποιείτε πρότυπα OpenCV.
Είναι πολύ δύσκολο να δώσετε οποιαδήποτε καθολική συμβουλή ή να πείτε πώς να δημιουργήσετε κάποιο είδος δομής γύρω από την οποία μπορείτε να δημιουργήσετε μια λύση σε αυθαίρετα προβλήματα όρασης υπολογιστή. Ο σκοπός αυτού του άρθρου είναι να δομήσει τι μπορεί να χρησιμοποιηθεί. Θα προσπαθήσω να χωρίσω τις υπάρχουσες μεθόδους σε τρεις ομάδες. Η πρώτη ομάδα είναι το προκαταρκτικό φιλτράρισμα και η προετοιμασία εικόνας. Η δεύτερη ομάδα είναι η λογική επεξεργασία των αποτελεσμάτων φιλτραρίσματος. Η τρίτη ομάδα είναι οι αλγόριθμοι λήψης αποφάσεων που βασίζονται στη λογική επεξεργασία. Τα όρια μεταξύ των ομάδων είναι πολύ αυθαίρετα. Για να λυθεί ένα πρόβλημα, δεν είναι πάντα απαραίτητο να χρησιμοποιείτε μεθόδους από όλες τις ομάδες μερικές φορές αρκούν δύο και μερικές φορές ακόμη και μία.

Ο κατάλογος των μεθόδων που δίνονται εδώ δεν είναι πλήρης. Προτείνω να προσθέσω κριτικές μεθόδους στα σχόλια που δεν έγραψα και να αποδώσω 2-3 συνοδευτικές λέξεις στο καθένα.

Μέρος 1. Διήθηση

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




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

Η δυαδοποίηση μπορεί να δώσει πολύ ενδιαφέροντα αποτελέσματα κατά την εργασία με ιστογράμματα, συμπεριλαμβανομένης της κατάστασης όπου θεωρούμε μια εικόνα όχι σε RGB, αλλά σε HSV. Για παράδειγμα, τμηματοποιήστε τα χρώματα ενδιαφέροντος. Με βάση αυτή την αρχή, μπορείτε να δημιουργήσετε τόσο έναν ανιχνευτή ετικετών όσο και έναν ανιχνευτή ανθρώπινου δέρματος.
Κλασικό φιλτράρισμα: Fourier, φίλτρο χαμηλής διέλευσης, φίλτρο υψηλής διέλευσης
Οι κλασικές μέθοδοι φιλτραρίσματος ραντάρ και επεξεργασίας σήματος μπορούν να εφαρμοστούν με επιτυχία σε μια ποικιλία εργασιών αναγνώρισης προτύπων. Μια παραδοσιακή μέθοδος στο ραντάρ, η οποία σχεδόν ποτέ δεν χρησιμοποιείται σε καθαρές εικόνες, είναι ο μετασχηματισμός Fourier (πιο συγκεκριμένα, ο FFT). Μία από τις λίγες εξαιρέσεις στις οποίες χρησιμοποιείται ο μονοδιάστατος μετασχηματισμός Fourier είναι η συμπίεση εικόνας. Για την ανάλυση εικόνας, συνήθως δεν αρκεί ένας μονοδιάστατος μετασχηματισμός.

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


Τα πιο απλά παραδείγματα φίλτρων που δίνουν έμφαση στις χαμηλές συχνότητες (φίλτρο Gaussian) και στις υψηλές συχνότητες (φίλτρο Gabor).
Για κάθε σημείο εικόνας, επιλέγεται ένα παράθυρο και πολλαπλασιάζεται με ένα φίλτρο ίδιου μεγέθους. Το αποτέλεσμα μιας τέτοιας συνέλιξης είναι μια νέα τιμή πόντων. Κατά την εφαρμογή φίλτρων χαμηλής διέλευσης και φίλτρων υψηλής διέλευσης, λαμβάνονται εικόνες του ακόλουθου τύπου:



Κυματίδια
Τι γίνεται όμως αν χρησιμοποιήσουμε κάποια αυθαίρετη χαρακτηριστική συνάρτηση για συνέλιξη με το σήμα; Τότε θα ονομάζεται "Μετασχηματισμός κυματιδίων". Αυτός ο ορισμός των κυματιδίων δεν είναι σωστός, αλλά παραδοσιακά, σε πολλές ομάδες, η ανάλυση κυματιδίων είναι η αναζήτηση ενός αυθαίρετου σχεδίου σε μια εικόνα χρησιμοποιώντας συνέλιξη με ένα μοντέλο αυτού του σχεδίου. Υπάρχει ένα σύνολο κλασικών συναρτήσεων που χρησιμοποιούνται στην ανάλυση κυματιδίων. Αυτά περιλαμβάνουν το κυματίδιο Haar, το κυματίδιο Morlet, το κυματίδιο μεξικανικού καπέλου κ.λπ. Τα πρωτόγονα Haar, για τα οποία υπήρχαν αρκετά από τα προηγούμενα άρθρα μου (,), σχετίζονται με τέτοιες λειτουργίες για το δισδιάστατο χώρο.


Παραπάνω είναι 4 παραδείγματα κλασικών κυματιδίων. Τρισδιάστατο κυματίδιο Haar, 2-διάστατο κυματίδιο Meyer, κυματίδιο Mexican Hat, κυματίδιο Daubechies. Ένα καλό παράδειγμα χρήσης της εκτεταμένης ερμηνείας των κυματιδίων είναι το πρόβλημα της εύρεσης λάμψης στο μάτι, για το οποίο το κυματίδιο είναι η ίδια η λάμψη:

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

Λειτουργίες φιλτραρίσματος
Μια ενδιαφέρουσα κατηγορία φίλτρων είναι το φιλτράρισμα συναρτήσεων. Πρόκειται για καθαρά μαθηματικά φίλτρα που σας επιτρέπουν να ανιχνεύσετε μια απλή μαθηματική συνάρτηση σε μια εικόνα (γραμμή, παραβολή, κύκλος). Κατασκευάζεται μια συσσωρευτική εικόνα, στην οποία για κάθε σημείο της αρχικής εικόνας σχεδιάζεται ένα σύνολο συναρτήσεων που τη δημιουργούν. Ο πιο κλασικός μετασχηματισμός είναι ο μετασχηματισμός Hough για γραμμές. Σε αυτόν τον μετασχηματισμό, για κάθε σημείο (x;y), σχεδιάζεται ένα σύνολο σημείων (a;b) της ευθείας y=ax+b για τα οποία ισχύει η ισότητα. Παίρνετε όμορφες φωτογραφίες:


(το πρώτο συν είναι σε αυτόν που είναι ο πρώτος που θα βρει ένα πιάσιμο στην εικόνα και αυτόν τον ορισμό και θα το εξηγήσει, το δεύτερο συν είναι σε αυτόν που είναι ο πρώτος που θα πει αυτό που φαίνεται εδώ)
Ο μετασχηματισμός Hough σάς επιτρέπει να βρείτε οποιεσδήποτε παραμετροποιήσιμες συναρτήσεις. Για παράδειγμα κύκλοι. Υπάρχει ένας τροποποιημένος μετασχηματισμός που σας επιτρέπει να αναζητήσετε οποιαδήποτε σχήματα. Οι μαθηματικοί λατρεύουν τρομερά αυτόν τον μετασχηματισμό. Αλλά κατά την επεξεργασία εικόνων, δυστυχώς, δεν λειτουργεί πάντα. Πολύ χαμηλή ταχύτητα λειτουργίας, πολύ υψηλή ευαισθησία στην ποιότητα της δυαδοποίησης. Ακόμη και σε ιδανικές καταστάσεις, προτιμούσα να αρκούμαι με άλλες μεθόδους.
Ένα ανάλογο του μετασχηματισμού Hough για ευθείες γραμμές είναι ο μετασχηματισμός ραδονίου. Υπολογίζεται μέσω του FFT, το οποίο δίνει κέρδος απόδοσης σε μια κατάσταση όπου υπάρχουν πολλοί πόντοι. Επιπλέον, μπορεί να εφαρμοστεί σε μια μη δυαδική εικόνα.
Φιλτράρισμα περιγράμματος
Μια ξεχωριστή κατηγορία φίλτρων είναι το φιλτράρισμα περιγράμματος και περιγράμματος. Τα περιγράμματα είναι πολύ χρήσιμα όταν θέλουμε να περάσουμε από την εργασία με μια εικόνα στην εργασία με τα αντικείμενα αυτής της εικόνας. Όταν ένα αντικείμενο είναι αρκετά περίπλοκο, αλλά ξεκάθαρα διακρίνεται, τότε συχνά ο μόνος τρόπος για να δουλέψετε μαζί του είναι να επιλέξετε τα περιγράμματα του. Υπάρχουν διάφοροι αλγόριθμοι που λύνουν το πρόβλημα του φιλτραρίσματος περιγραμμάτων:

Τις περισσότερες φορές χρησιμοποιείται το Canny, το οποίο λειτουργεί καλά και του οποίου η εφαρμογή είναι στο OpenCV (το Sobel είναι επίσης εκεί, αλλά ψάχνει για περιγράμματα χειρότερα).



Άλλα φίλτρα
Παραπάνω υπάρχουν φίλτρα των οποίων οι τροποποιήσεις βοηθούν στην επίλυση του 80-90% των προβλημάτων. Αλλά εκτός από αυτά, υπάρχουν πιο σπάνια φίλτρα που χρησιμοποιούνται σε τοπικές εργασίες. Υπάρχουν δεκάδες τέτοια φίλτρα, δεν θα τα απαριθμήσω όλα. Ενδιαφέροντα είναι τα επαναληπτικά φίλτρα (για παράδειγμα, ένα μοντέλο ενεργής εμφάνισης), καθώς και οι μετασχηματισμοί κορυφογραμμής και καμπυλότητας, που είναι μια συγχώνευση κλασικού φιλτραρίσματος κυματιδίων και ανάλυσης στο πεδίο μετασχηματισμού ραδονίου. Ο μετασχηματισμός beamlet λειτουργεί όμορφα στο όριο του μετασχηματισμού wavelet και της λογικής ανάλυσης, επιτρέποντάς σας να τονίσετε τα περιγράμματα:

Αλλά αυτοί οι μετασχηματισμοί είναι πολύ συγκεκριμένοι και προσαρμοσμένοι για σπάνιες εργασίες.

Μέρος 2. Λογική επεξεργασία των αποτελεσμάτων φιλτραρίσματος

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

Για να είμαι ειλικρινής, δεν μπόρεσα ποτέ να εφαρμόσω ανάλυση περιγράμματος σε πραγματικά προβλήματα. Απαιτούνται υπερβολικά ιδανικές συνθήκες. Είτε δεν υπάρχει όριο, είτε υπάρχει πολύς θόρυβος. Αλλά, εάν πρέπει να αναγνωρίσετε κάτι υπό ιδανικές συνθήκες, τότε η ανάλυση περιγράμματος είναι μια εξαιρετική επιλογή. Λειτουργεί πολύ γρήγορα, όμορφα μαθηματικά και καθαρή λογική.
Ειδικά σημεία
Τα μοναδικά σημεία είναι μοναδικά χαρακτηριστικά ενός αντικειμένου που επιτρέπουν τη σύγκριση του αντικειμένου με τον εαυτό του ή με παρόμοιες κατηγορίες αντικειμένων. Υπάρχουν πολλές δεκάδες τρόποι εντοπισμού τέτοιων σημείων. Ορισμένες μέθοδοι εντοπίζουν ειδικά σημεία σε παρακείμενα καρέ, ορισμένες μετά από μεγάλο χρονικό διάστημα και όταν αλλάζει ο φωτισμός, ορισμένες σας επιτρέπουν να βρείτε ειδικά σημεία που παραμένουν έτσι ακόμα και όταν το αντικείμενο περιστρέφεται. Ας ξεκινήσουμε με μεθόδους που μας επιτρέπουν να βρίσκουμε ειδικά σημεία, τα οποία δεν είναι τόσο σταθερά, αλλά υπολογίζονται γρήγορα, και στη συνέχεια θα προχωρήσουμε σε αυξανόμενη πολυπλοκότητα:
Πρώτη τάξη. Ειδικά σημεία που είναι σταθερά σε διάστημα δευτερολέπτων.Τέτοια σημεία χρησιμοποιούνται για την καθοδήγηση ενός αντικειμένου μεταξύ γειτονικών καρέ βίντεο ή για το συνδυασμό εικόνων από γειτονικές κάμερες. Τέτοια σημεία περιλαμβάνουν τοπικά μέγιστα της εικόνας, γωνίες στην εικόνα (ο καλύτερος ανιχνευτής είναι, ίσως, ο ανιχνευτής Charis), σημεία στα οποία επιτυγχάνεται η μέγιστη διασπορά, ορισμένες κλίσεις κ.λπ.
ΔΕΥΤΕΡΗ ταξη. Ειδικά σημεία που είναι σταθερά όταν αλλάζει ο φωτισμός και μικρές κινήσεις του αντικειμένου.Τέτοια σημεία χρησιμεύουν κυρίως για εκπαίδευση και επακόλουθη ταξινόμηση τύπων αντικειμένων. Για παράδειγμα, ένας ταξινομητής πεζών ή ένας ταξινομητής προσώπου είναι το προϊόν ενός συστήματος χτισμένου ακριβώς σε τέτοια σημεία. Μερικά από τα προαναφερθέντα κυματίδια μπορεί να είναι η βάση για τέτοια σημεία. Για παράδειγμα, Haar primitives, αναζήτηση για επισημάνσεις, αναζήτηση για άλλες συγκεκριμένες λειτουργίες. Αυτά τα σημεία περιλαμβάνουν σημεία που βρέθηκαν με τη μέθοδο ιστόγραμμα κατευθυντικών κλίσεων (HOG).
Τρίτης τάξεως. Σταθερά σημεία.Ξέρω μόνο για δύο μεθόδους που παρέχουν πλήρη σταθερότητα και για τις τροποποιήσεις τους. Αυτά είναι το SURF και το SIFT. Σας επιτρέπουν να βρείτε ειδικά σημεία ακόμα και όταν περιστρέφετε την εικόνα. Ο υπολογισμός τέτοιων σημείων διαρκεί περισσότερο σε σύγκριση με άλλες μεθόδους, αλλά ο χρόνος είναι αρκετά περιορισμένος. Δυστυχώς, αυτές οι μέθοδοι είναι πατενταρισμένες. Αν και στη Ρωσία είναι αδύνατο να κατοχυρώσετε αλγόριθμους με δίπλωμα ευρεσιτεχνίας, επομένως χρησιμοποιήστε το για την εγχώρια αγορά.

Μέρος 3. Εκπαίδευση

Το τρίτο μέρος της ιστορίας θα είναι αφιερωμένο σε μεθόδους που δεν λειτουργούν άμεσα με την εικόνα, αλλά σας επιτρέπουν να λαμβάνετε αποφάσεις. Βασικά πρόκειται για διάφορες μεθόδους μηχανικής μάθησης και λήψης αποφάσεων. Πρόσφατα η Yandyx δημοσίευσε ένα μάθημα για αυτό το θέμα στο Habr, υπάρχει μια πολύ καλή επιλογή εκεί. Εδώ είναι στην έκδοση κειμένου. Για μια σοβαρή μελέτη του θέματος, συνιστώ ανεπιφύλακτα να τα παρακολουθήσετε. Εδώ θα προσπαθήσω να περιγράψω διάφορες κύριες μεθόδους που χρησιμοποιούνται ειδικά στην αναγνώριση προτύπων.
Στο 80% των περιπτώσεων, η ουσία της μάθησης στην εργασία αναγνώρισης είναι η εξής:
Υπάρχει ένα δείγμα δοκιμής που περιέχει πολλές κατηγορίες αντικειμένων. Ας είναι η παρουσία/απουσία ενός ατόμου στη φωτογραφία. Για κάθε εικόνα υπάρχει ένα σύνολο χαρακτηριστικών που έχουν επισημανθεί από κάποιο χαρακτηριστικό, είτε είναι Haar, HOG, SURF ή κάποιο wavelet. Ο αλγόριθμος εκμάθησης πρέπει να δημιουργήσει ένα μοντέλο έτσι ώστε να μπορεί να αναλύσει μια νέα εικόνα και να αποφασίσει ποιο αντικείμενο βρίσκεται στην εικόνα.
Πώς γίνεται; Κάθε μία από τις δοκιμαστικές εικόνες είναι ένα σημείο στο χώρο χαρακτηριστικών. Οι συντεταγμένες του είναι το βάρος καθενός από τα χαρακτηριστικά της εικόνας. Ας είναι τα ζώδια μας: «Παρουσία ματιών», «Παρουσία μύτης», «Παρουσία δύο χεριών», «Παρουσία αυτιών» κλπ... Όλα αυτά τα σημάδια θα τα αναδείξουμε χρησιμοποιώντας τους υπάρχοντες ανιχνευτές μας, οι οποίοι είναι εκπαιδευμένοι σε μέρη του σώματος παρόμοια με του ανθρώπου Για ένα άτομο σε έναν τέτοιο χώρο, το σωστό σημείο θα ήταν . Για τη μαϊμού, τελεία για το άλογο. Ο ταξινομητής εκπαιδεύεται χρησιμοποιώντας ένα δείγμα παραδειγμάτων. Αλλά δεν έδειχναν όλες οι φωτογραφίες χέρια, άλλες δεν είχαν μάτια και στην τρίτη, ο πίθηκος είχε ανθρώπινη μύτη λόγω σφάλματος ταξινομητή. Ένας εκπαιδευμένος ανθρώπινος ταξινομητής χωρίζει αυτόματα τον χώρο χαρακτηριστικών με τέτοιο τρόπο ώστε να λέει: εάν το πρώτο χαρακτηριστικό βρίσκεται στην περιοχή 0,5 Ουσιαστικά, ο στόχος του ταξινομητή είναι να σχεδιάσει περιοχές στον χώρο χαρακτηριστικών που είναι χαρακτηριστικά των αντικειμένων ταξινόμησης. Έτσι θα μοιάζει μια διαδοχική προσέγγιση της απάντησης για έναν από τους ταξινομητές (AdaBoost) σε δισδιάστατο χώρο:


Υπάρχουν πολλοί ταξινομητές. Κάθε ένα από αυτά λειτουργεί καλύτερα σε κάποια συγκεκριμένη εργασία. Το έργο της επιλογής ενός ταξινομητή για μια συγκεκριμένη εργασία είναι σε μεγάλο βαθμό μια τέχνη. Εδώ είναι μερικές όμορφες εικόνες σχετικά με το θέμα.
Απλή θήκη, μονοδιάστατος διαχωρισμός
Ας δούμε ένα παράδειγμα της απλούστερης περίπτωσης ταξινόμησης, όταν ο χώρος χαρακτηριστικών είναι μονοδιάστατος και πρέπει να διαχωρίσουμε 2 κλάσεις. Η κατάσταση εμφανίζεται πιο συχνά από όσο νομίζετε: για παράδειγμα, όταν πρέπει να διακρίνετε δύο σήματα ή να συγκρίνετε ένα μοτίβο με ένα δείγμα. Ας έχουμε ένα δείγμα προπόνησης. Αυτό παράγει μια εικόνα όπου ο άξονας Χ είναι το μέτρο της ομοιότητας και ο άξονας Υ είναι ο αριθμός των γεγονότων με ένα τέτοιο μέτρο. Όταν το επιθυμητό αντικείμενο είναι παρόμοιο με τον εαυτό του, προκύπτει ένα αριστερό Gaussian. Όταν δεν φαίνεται, είναι το σωστό. Η τιμή X=0,4 διαχωρίζει τα δείγματα έτσι ώστε μια λανθασμένη απόφαση ελαχιστοποιεί την πιθανότητα λήψης οποιασδήποτε λανθασμένης απόφασης. Είναι η αναζήτηση ενός τέτοιου διαχωριστή που είναι το καθήκον της ταξινόμησης.


Μια μικρή σημείωση. Το βέλτιστο κριτήριο δεν είναι πάντα αυτό που ελαχιστοποιεί το σφάλμα. Το παρακάτω γράφημα είναι ένα γράφημα ενός πραγματικού συστήματος αναγνώρισης ίριδας. Για ένα τέτοιο σύστημα, το κριτήριο επιλέγεται για την ελαχιστοποίηση της πιθανότητας ψευδούς εισαγωγής ενός μη εξουσιοδοτημένου ατόμου στην εγκατάσταση. Αυτή η πιθανότητα ονομάζεται «σφάλμα τύπου Ι», «πιθανότητα ψευδούς συναγερμού», «ψευδώς θετική». Στην αγγλική βιβλιογραφία “False Access Rate”.
) Το AdaBusta είναι ένας από τους πιο συνηθισμένους ταξινομητές. Για παράδειγμα, ο καταρράκτης Haar είναι χτισμένος πάνω του. Συνήθως χρησιμοποιείται όταν απαιτείται δυαδική ταξινόμηση, αλλά τίποτα δεν εμποδίζει την εκπαίδευση για μεγαλύτερο αριθμό τάξεων.
SVM ( , , , ) Ένας από τους πιο ισχυρούς ταξινομητές, ο οποίος έχει πολλές υλοποιήσεις. Βασικά, στις μαθησιακές εργασίες που έχω συναντήσει, λειτούργησε παρόμοια με το Adabusta. Θεωρείται αρκετά γρήγορο, αλλά η εκπαίδευσή του είναι πιο δύσκολη από αυτή του Adabusta και απαιτεί την επιλογή του σωστού πυρήνα.

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

Και τελικά

Τι να διαβάσω;
1) Κάποτε μου άρεσε πολύ το βιβλίο “Digital Image Processing” του B. Yane, το οποίο είναι γραμμένο απλά και καθαρά, αλλά ταυτόχρονα δίνονται σχεδόν όλα τα μαθηματικά. Καλό για εξοικείωση με τις υπάρχουσες μεθόδους.
2) Κλασικό του είδους είναι οι R. Gonzalez, R. Woods “Digital Image Processing”. Για κάποιο λόγο ήταν πιο δύσκολο για μένα από τον πρώτο. Πολύ λιγότερα μαθηματικά, αλλά περισσότερες μέθοδοι και εικόνες.
3) «Επεξεργασία και ανάλυση εικόνας σε προβλήματα όρασης υπολογιστή» - γραμμένο με βάση ένα μάθημα που διδάσκεται σε ένα από τα τμήματα Φυσικής και Τεχνολογίας. Υπάρχουν πολλές μέθοδοι και οι λεπτομερείς περιγραφές τους. Αλλά κατά τη γνώμη μου, το βιβλίο έχει δύο μεγάλα μειονεκτήματα: το βιβλίο επικεντρώνεται έντονα στο πακέτο λογισμικού που συνοδεύει το βιβλίο, πολύ συχνά η περιγραφή μιας απλής μεθόδου μετατρέπεται σε μια μαθηματική ζούγκλα, από την οποία είναι δύσκολο να εξάγετε το δομικό διάγραμμα της μεθόδου. Αλλά οι συγγραφείς έχουν δημιουργήσει έναν βολικό ιστότοπο όπου παρουσιάζεται σχεδόν όλο το περιεχόμενο - wiki.technicalvision.ru
4) Για κάποιο λόγο, μου φαίνεται ότι ένα καλό βιβλίο που δομεί και συνδέει την εικόνα του κόσμου που προκύπτει κατά τη μελέτη της Αναγνώρισης Εικόνας και της Μηχανικής Μάθησης είναι το «On Intelligence» του Jeff Hawkins. Δεν υπάρχουν άμεσες μέθοδοι εκεί, αλλά υπάρχουν πολλά πράγματα που πρέπει να σκεφτούμε από πού προέρχονται οι μέθοδοι άμεσης επεξεργασίας εικόνας. Όταν το διαβάζεις, καταλαβαίνεις ότι έχεις ήδη δει τις μεθόδους του ανθρώπινου εγκεφάλου, αλλά σε εργασίες επεξεργασίας βίντεο.

UDC 004932:621.396

T.M. VLASOVA, V.G. ΚΑΛΜΥΚΟΦ

ΑΛΓΟΡΙΘΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑ ΑΝΑΓΝΩΡΙΣΗΣ ΠΕΡΙΓΡΑΜΜΑΤΩΝ ΕΙΚΟΝΑΣ ΩΣ ΑΚΟΛΟΥΘΙΑ ΤΜΗΜΑΤΩΝ ΨΗΦΙΑΚΗΣ ΓΡΑΜΜΗΣ

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

Λέξεις κλειδιά: εικόνα, περίγραμμα, ψηφιακά ευθύγραμμα τμήματα, αλγόριθμος, πρόγραμμα.

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

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

1. Εισαγωγή

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

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

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

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

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

2. Περίγραμμα ως ακολουθία τμημάτων ψηφιακών γραμμών

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

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

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

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

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

Τα εικονοστοιχεία είναι τα δισδιάστατα στοιχεία αυτού του κυτταρικού συμπλέγματος. Εκτός από τα pixel, υπάρχουν ρωγμές και τελείες. Οι ρωγμές είναι

πλευρές εικονοστοιχείων που είναι μονοδιάστατα στοιχεία. Τα σημεία είναι τα τελικά σημεία των ρωγμών και τα γωνιακά σημεία των pixel. Τα σημεία είναι στοιχεία μηδενικών διαστάσεων. Έτσι

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

περιορισμός των ρωγμών περιγράμματος. Όπως φαίνεται στο , που αντιπροσωπεύει το επίπεδο εικόνας ως

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

Στο Σχ. Το σχήμα 1 δείχνει ένα παράδειγμα του αρχικού περιγράμματος ενός αντικειμένου που σχηματίζεται από ένα τόξο καμπύλης και τμήμα ευθείας γραμμής, καθώς και το ψηφιακό του ισοδύναμο ως ακολουθία ρωγμών. Τα σημεία που ανήκουν σε ρωγμές διαφορετικών κατευθύνσεων είναι αριθμημένα. Όπως και στα έργα, με τον όρο L-στοιχείο εννοούμε μια συνδεδεμένη ακολουθία ρωγμών ίδιας κατεύθυνσης, που προέρχονται από ένα ορισμένο σημείο και τελειώνουν με μια ρωγμή ίδιας ή κάθετης διεύθυνσης. Στο Σχ. Το σχήμα 1 δείχνει ένα από τα πιθανά χωρίσματα του περιγράμματος σε στοιχεία β, τα οποία σχηματίζονται από ρωγμές μεταξύ των σημείων: (0-2), (2-4), (4-6), (6-8), (8 -9), (9 -11), (11-13), (13-15), (15-17), (17-19), (20-21), (21-23), (23-25 ), (25-27 ), (27-0). Κάθε στοιχείο b χαρακτηρίζεται από τις ακόλουθες παραμέτρους: κατεύθυνση σε σχέση με το αρχικό του σημείο g (αποδεκτό g = 0 - για την κατεύθυνση προς τα πάνω, 1 - προς τα δεξιά, 2 - προς τα κάτω, 3 - προς τα αριστερά). l - αριθμός ρωγμών προς την κατεύθυνση g (! = 1,2,...); η κατεύθυνση της τελευταίας ρωγμής q σε σχέση με την κατεύθυνση g των προηγούμενων ρωγμών (q = -1 - η τελευταία ρωγμή κατευθύνεται προς τα αριστερά σε σχέση με την κατεύθυνση g, +1 - προς τα δεξιά, 0 - συμπίπτει με την κατεύθυνση g) . Ο αριθμός των ρωγμών l θα ονομάζεται συμβατικά «μήκος» του στοιχείου b Για το στοιχείο b (0-2) g =0, !=3, q =+1. Για το στοιχείο β (27-0) g =3, =1, q =0.

Η μέθοδος για την επιλογή τμημάτων ψηφιακών ευθειών σε ένα περίγραμμα χρησιμοποιεί την ακόλουθη ιδιότητα της ακολουθίας των στοιχείων L που σχηματίζουν το τμήμα. Μια τέτοια ακολουθία περιλαμβάνει b-στοιχεία με τις ίδιες τιμές g, q. τα μήκη τους παίρνουν τιμές!, +1. Εξάλλου

η εναλλαγή των b-στοιχείων μήκους!, +1 προσδιορίζεται από το συνεχιζόμενο κλάσμα που προκύπτει με τη διαίρεση των ακεραίων αριθμών n = Ax = |x1 - x2| και m = Ау = |у1 - у2\, όπου (х1зу1), (х2, у2) είναι οι συντεταγμένες του αρχικού

και τα τελικά σημεία του τμήματος: ή

Ας υποθέσουμε για βεβαιότητα ότι n > m Όπως προκύπτει από τον τύπο (1), το l - το ακέραιο τμήμα της διαίρεσης του n με το m - αντιστοιχεί σε ένα τμήμα της ψηφιακής ευθείας στον αριθμό των l διαδοχικών ρωγμών της ίδιας. κατεύθυνση. Μαζί με τη διπλανή κάθετη ρωγμή σχηματίζουν το β-στοιχείο του μήκους!. k1 διαδοχικά b-στοιχεία μήκους l και ένα b-στοιχείο μήκους!+1 (ή k1 συνεχόμενα b-στοιχεία μήκους +1 και ένα b-στοιχείο μήκους!) σχηματίζουν ένα K1-στοιχείο «μήκους» k1 (από αναλογία με «μήκος «β-στοιχείο). Ένα b-στοιχείο που διαφέρει σε μήκος κατά 1 από τα διαδοχικά b-στοιχεία θα ονομάζεται τροποποιημένο b-στοιχείο ενός δεδομένου K1-στοιχείου. Ομοίως, σχηματίζονται k2 διαδοχικά στοιχεία Κ1 «μήκους» k1 και ένα στοιχείο Κ1 «μήκους» k1 +1 (ή k2 διαδοχικά στοιχεία Κ1 «μήκους» k1 +1 και ένα στοιχείο Κ1 «μήκους» k1). K2- στοιχείο «μήκους» k1. Έτσι

k + k 2 + k z +... + kg

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

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

Στο περίγραμμα στο Σχ. 1, μπορούν να διακριθούν τα ακόλουθα τμήματα ψηφιακών ευθειών: 0-3, 3-9, 910, 10-17, 17-0.

3. Επιλογή τμημάτων ψηφιακής γραμμής σε περίγραμμα

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

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

1. Προσδιορισμός της αλληλουχίας των β-στοιχείων στην ακολουθία των ρωγμών. Αυτή η δράση ανταποκρίνεται στον ορισμό ενός ολόκληρου μέρους! συνεχιζόμενο κλάσμα (1).

2. Η απομόνωση μιας ακολουθίας Kr -στοιχείων με r = 1 σε μια ακολουθία b -στοιχείων και ένα από τα b -στοιχεία κάθε στοιχείου K1 πρέπει να περιέχει 1 ρωγμή περισσότερο ή λιγότερο από τα άλλα. Αυτή η ενέργεια αντιστοιχεί στον ορισμό του k1ου στοιχείου του συνεχιζόμενου κλάσματος (1). Μετά την εκτέλεσή του, η τιμή του r πρέπει να αυξηθεί κατά 1.

3. Προσδιορισμός της αλληλουχίας των στοιχείων Kr στην ακολουθία των στοιχείων Kr-1,

Επιπλέον, ένα από τα στοιχεία Kr-1 κάθε στοιχείου Kr πρέπει να περιέχει ένα στοιχείο Kr-2 περισσότερο ή λιγότερο από τα άλλα. Αυτή η ενέργεια αντιστοιχεί στον ορισμό του k(ο στοιχείου του συνεχιζόμενου κλάσματος (1). Μετά την εκτέλεσή του, η τιμή του r πρέπει να αυξηθεί κατά 1.

4. Το σημείο 3 επαναλαμβάνεται μέχρι να είναι ακόμα δυνατό

σχηματίζουν το στοιχείο Km.

5. Προσδιορίστε τα οριακά σημεία μεταξύ δύο γειτονικών b-στοιχείων που δεν περιλαμβάνονται στο ίδιο Kr-στοιχείο. Αυτά τα σημεία είναι τα τελικά σημεία των ψηφιακών γραμμικών τμημάτων που σχηματίζουν το περίγραμμα.

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

Έστω [b5(/5,gs,qs)); 5 = 0,1,...,£ - ακολουθία β-στοιχείων που σχηματίζουν το περίγραμμα. x5,y5 - συντεταγμένες της αρχής του β-στοιχείου. [hu, y y); y = ; r = 0,1,...,!; !< £ - множество

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

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

κλάσμα Κατά την αρχική στιγμή αναγνώρισης ενός ευθύγραμμου τμήματος, τα στοιχεία του αντίστοιχου συνεχιζόμενου κλάσματος είναι ίσα με 0. Το τμήμα μπορεί να θεωρηθεί αναγνωρισμένο εάν αναγνωρίζονται οι παράμετροι του στοιχείου Kr, συμπεριλαμβανομένης της τάξης του r και των τιμών του τα στοιχεία του αντίστοιχου συνεχιζόμενου κλάσματος.

1. Αρχικές συνθήκες.

Δίνονται αλληλουχίες [b5 (/5, gs, qs)) και (x5,y5) .

Είναι απαραίτητο να βρεθούν οι συντεταγμένες των σημείων διακοπής |x;.,y,).

k0р:= 0, к1р:= 0, к2р:= 0,..., кр:= 0 - τιμές εργασίας των στοιχείων του συνεχιζόμενου κλάσματος.

Ας πάρουμε το σημείο 5 =0 ως σημείο εκκίνησης του πρώτου τμήματος. i =0; i =0.

2. Πάρτε το πρώτο στοιχείο β στην ακολουθία ως αρχή του πρώτου ευθύγραμμου τμήματος. Η αφετηρία του είναι x5,y. Το μήκος /=/0 είναι επίσης η τιμή του πρώτου στοιχείου του συνεχιζόμενου κλάσματος.

5:=5+1; k1p:=k1p+1.

3. Ελέγξτε για το επόμενο στοιχείο β εάν μαζί με τα προηγούμενα σχηματίζουν ένα στοιχείο Κ0.

3.1. Αν ((d3 == d3-1) && (d3 == 73-1)&& (4 == /3-1)), τότε η συνέχεια του Kg-στοιχείου k0p:= k0p +1; 5:= 5 + 1; και συνέχιση ευθύγραμμου τμήματος. Μεταβείτε στο βήμα 3.

3.2. Αν ((d3 f d3-1) || (d3 f 73-1)11 (|/e - /є-1!>1)), τότε το άκρο του ευθύγραμμου τμήματος. Μεταβείτε στο βήμα 5.

3.3. Εάν ((&== 9з+1) && (%== 7з+1)&& ((/з+1== /з+1)1! (/з - 1 == /3+1))), τότε η ολοκλήρωση του στοιχείου K0. Ї = Ї+1.

4. Έλεγχος της συνέχειας/ολοκλήρωσης του Κ(-στοιχείου.

4.1. Αν (k == 0), τότε k ^= k^; cr:= 0; k^1p:= k1+ 1p+1; 5:=5 +1; η αρχή του στοιχείου Km.

Μεταβείτε στο βήμα 3.

4.2. Αν ((k iФ 0)&&(k == k^)), τότε k^1p:= k^1p+1; 5:= 5+1; συνέχεια του στοιχείου Ki+1. Μεταβείτε στο βήμα 3.

4.3. Αν ((k (Ф 0)&&((k+1== k1p)11(k1-1 == k^))), τότε Ї := +1; τέλος του Km-στοιχείου.

Μεταβείτε στο βήμα 4.

4.4. Εάν ((^ф0)&&(|к - к1р|>1)), τότε το τέλος του τμήματος είναι μια άμεση μετάβαση στο βήμα 5.

5. Τέλος του τμήματος.

X] = Xs; y = Uz; k1р:= 0, к2р:= 0,., кір:= 0; k:= 0, k2:= 0,., k:= 0.

Αν (σ< S), то s:= s +1; переход к п. 2.

Διαφορετικά, το τέλος της ακολουθίας των L-στοιχείων. Το τέλος του αλγορίθμου.

Ουσιαστικά, ο προτεινόμενος αλγόριθμος βρίσκει τα στοιχεία του συνεχιζόμενου κλάσματος και για κάθε λαμβανόμενο Kt -στοιχείο και ελέγχει εάν το συνεχιζόμενο κλάσμα του νεοκατασκευασμένου στοιχείου Kt ταιριάζει με το ήδη κατασκευασμένο.

4. Πρόγραμμα επιλογής ψηφιακών τμημάτων γραμμής

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

είναι αδύνατο να προσδιοριστεί, αφού η μεταβλητή t δεν περιορίζεται εκ των προτέρων. Οριακή τιμή t

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

Ο προτεινόμενος αλγόριθμος υλοποιείται με τη μορφή του προγράμματος LINESEGM, το οποίο αποτελεί μέρος του εργαστηριακού πακέτου λογισμικού για την επεξεργασία εικόνας στο περιβάλλον Visual C++.

Ως αρχική πληροφορία, το πρόγραμμα LINESEGM χρησιμοποιεί ακολουθίες L-στοιχείων που έχουν κατασκευαστεί για κάθε ένα από τα περιγράμματα της επεξεργασμένης εικόνας.

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

Όπως φαίνεται από τον αλγόριθμο, οι πράξεις κατασκευής Kt -στοιχείων από Kt-l -στοιχεία

είναι ίδιες για όλες τις τιμές του t. Σημειώστε ότι η αρχική τιμή t = 0 και κατά τη λειτουργία του αλγορίθμου αυξάνεται κάθε φορά κατά 1. Η ειδική κλάση CKForLn περιλαμβάνει μεθόδους που αντιστοιχούν στις πράξεις του αλγορίθμου. Κατά τη λειτουργία ενός προγράμματος που υλοποιεί τον αλγόριθμο, με κάθε αύξηση του t κατά 1, δημιουργείται ένα νέο αντικείμενο που περιέχει συναρτήσεις που εκτελούν τις πράξεις του αλγορίθμου για κάθε τιμή του t.

Λαμβάνοντας υπόψη ότι στο μηδενικό επίπεδο K0 -στοιχεία σχηματίζονται όχι από K -στοιχεία, αλλά από L -

στοιχεία, για την υλοποίηση του αλγόριθμου στο μηδενικό επίπεδο, δημιουργήθηκε μια ειδική τροποποίηση της κλάσης CKForLn - η κλάση Cmini.

Η αρχή λειτουργίας του προγράμματος είναι ότι για κάθε τιμή του t, το πρόγραμμα υλοποιεί ένα αντικείμενο της κλάσης CKForLn του t-ου επιπέδου, που περιέχει συναρτήσεις που καθορίζουν τις παραμέτρους του στοιχείου Kt. Οι αρχικές παράμετροι του στοιχείου Kt είναι οι ήδη παράμετροι

ένα ολοκληρωμένο στοιχείο Kt-l, οι παράμετροι του οποίου προσδιορίστηκαν από ένα αντικείμενο της κλάσης CKForLn t-1

Ουάου επίπεδο.

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

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

Κατά την περιγραφή της λειτουργίας του προγράμματος, θα χρησιμοποιηθεί η έννοια του ολοκληρωμένου Kt -

στοιχείο. Κάθε ολοκληρωμένο στοιχείο Kt περιέχει στοιχεία kt Kt-l και ένα τροποποιημένο στοιχείο Kt-l, το οποίο περιέχει στοιχεία kt-l ±1 Kt-2, σε αντίθεση με ένα ατελές στοιχείο Kt, το οποίο δεν περιέχει ατελές Kt -στοιχείο.

Η κλάση CKForLn περιλαμβάνει τις ακόλουθες μεθόδους.

1. Μέθοδος DK(), (καθορισμός K-στοιχείου) - προσδιορίστε το K-στοιχείο.

Ο προσδιορισμός ενός στοιχείου Kt σημαίνει τον προσδιορισμό του αριθμού των στοιχείων Kt-1 που σχηματίζουν ένα δεδομένο στοιχείο Kt.

2. Μέθοδος VK§, (επαλήθευση K-στοιχείου) - ελέγξτε την ταυτότητα του εν λόγω στοιχείου K με ένα K-στοιχείο του ίδιου επιπέδου, που προηγουμένως καθορίστηκε από τη συνάρτηση της μεθόδου DK().

3. Μέθοδος DEO, (καθορίστε το τέλος του στοιχείου Κ) - προσδιορίστε το τέλος του στοιχείου Κ, δηλαδή, κατά τον ορισμό του στοιχείου Kt, βρείτε το τροποποιημένο στοιχείο Kt-1 του. Η συνάρτηση της μεθόδου DE() του επιπέδου t-1 καλείται από τη συνάρτηση της μεθόδου DK() του επιπέδου t.

4. Μέθοδος VE(), (επαλήθευση του τέλους του K-στοιχείου) - ελέγξτε την ταυτότητα του τέλους του θεωρούμενου στοιχείου K με το τροποποιημένο K-στοιχείο, που προσδιορίστηκε προηγουμένως από τη συνάρτηση της μεθόδου DE().

Η κλάση Cmini περιλαμβάνει τις ίδιες μεθόδους, που διαφέρουν από τις μεθόδους της κλάσης CKForLn στο ότι οι μέθοδοι της κλάσης Cmini λειτουργούν με τα στοιχεία L και προσδιορίζουν ή ελέγχουν τα στοιχεία K0.

Μέθοδοι κλάσης Cmini

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

Η συνάρτηση της μεθόδου DK() της κλάσης Cmini συγκρίνει τις παραμέτρους κάθε επόμενου στοιχείου L με τις παραμέτρους του αρχικού στοιχείου L έως ότου ταιριάζουν. Εάν οι παράμετροι δεν ταιριάζουν, η συνάρτηση DK() ελέγχει εάν το στοιχείο K0 είναι πλήρες και τελειώνει

δουλειά. Ένα στοιχείο K0 θεωρείται πλήρες εάν τελειώνει με ένα τροποποιημένο στοιχείο L, ένα του οποίου το μήκος διαφέρει από τα άλλα στοιχεία L του στοιχείου K0 κατά 1 (λειτουργία 3.1 για την αρχή του τμήματος - t = 0).

Η συνάρτηση μεθόδου VK() ελέγχει εάν οι παράμετροι των επόμενων k0 L -στοιχείων ταιριάζουν με τις παραμέτρους των στοιχείων L του στοιχείου K0 που ορίστηκαν προηγουμένως από τη συνάρτηση μεθόδου DK()

το ίδιο επίπεδο. Εάν οι παράμετροι του τρέχοντος στοιχείου K0 συμπίπτουν με τις προηγούμενες

ορίζεται, η συνάρτηση VK() σχηματίζει ένα σύμβολο συνέχειας τμήματος και ολοκληρώνει την εργασία (λειτουργία 3.1 για συνέχιση τμήματος - t > 0).

Διαφορετικά, η συνάρτηση VK() δημιουργεί ένα σύμβολο ολοκλήρωσης τμήματος και ολοκληρώνεται

Η συνάρτηση μεθόδου DE() συγκρίνει τις παραμέτρους του τρέχοντος στοιχείου Kci με τις παραμέτρους του στοιχείου K0 που καθορίστηκαν προηγουμένως από τη συνάρτηση DK() για να καθορίσει εάν το τρέχον στοιχείο K0 έχει τροποποιηθεί. Εάν οι άλλες παράμετροι είναι ίσες, ο αριθμός των L -στοιχείων k0

τροποποιημένο στοιχείο Κ0 σε σύγκριση με το στοιχείο Κ0 που καθορίστηκε προηγουμένως

Η συνάρτηση DK(), πρέπει να διαφέρει κατά 1 (λειτουργία 3.2, 3.3 για να προσδιοριστεί η ολοκλήρωση

το αρχικό στοιχείο K0 του τμήματος - t = 0). Αποτέλεσμα - παράμετροι του τροποποιημένου στοιχείου K0

χρησιμοποιούνται στη μέθοδο VE() της κλάσης Cmini.

Η συνάρτηση της μεθόδου VE() συγκρίνει τις παραμέτρους του τρέχοντος στοιχείου K0 με τις παραμέτρους του αλλαγμένου στοιχείου K0 που καθορίστηκε προηγουμένως από τη συνάρτηση DE() προκειμένου να προσδιορίσει

εάν συμπίπτουν (λειτουργία 3.2, 3.3 για τη συνέχιση του τμήματος - t > 0). Το αποτέλεσμα - σημάδι αντιστοίχισης ή αναντιστοιχίας - χρησιμοποιείται στη μέθοδο VК() της κλάσης CKForLn.

Μέθοδοι της κλάσης CKForLn

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

ήδη κατασκευασμένα Kt-l -στοιχεία.

Η συνάρτηση της μεθόδου DK() του επιπέδου t της κλάσης CKForLn, όταν ορίζει τις παραμέτρους ενός στοιχείου ^, καλεί τη συνάρτηση VK() του επιπέδου t-1 της κλάσης CKForLn, η οποία ελέγχει εάν ένα ήδη καθορισμένο στοιχείο Kt-l ακολουθείται από ένα στοιχείο Kt-l με τις ίδιες παραμέτρους. Εάν ναι, η κλήση της συνάρτησης VK() επαναλαμβάνεται. Σε αυτή την περίπτωση, μετράται ο αριθμός των επαναλήψεων, δηλαδή προσδιορίζεται η παράμετρος kt.

Διαφορετικά, η συνάρτηση επιπέδου t DK() καλεί τη συνάρτηση επιπέδου t-1 DE() για να προσδιορίσει το τροποποιημένο στοιχείο Kt-l και εξέρχεται. Στο τέλος της εργασίας, η συνάρτηση DK() του επιπέδου t της κλάσης CKForLn καθορίζει τις παραμέτρους και δημιουργεί σημάδια ενός ολοκληρωμένου ή ημιτελούς στοιχείου Kt (λειτουργία 4.1, 4.2 στην τρέχουσα μέγιστη τιμή t).

Η συνάρτηση της μεθόδου VK() του επιπέδου t της κλάσης CKForLn ελέγχει εάν οι παράμετροι των ακόλουθων kt Kt -στοιχείων ταιριάζουν με τις παραμέτρους του στοιχείου Kt που καθορίστηκε προηγουμένως

συνάρτηση της μεθόδου DK() του ίδιου επιπέδου. Αν οι παράμετροι του τρέχοντος στοιχείου Kt συμπίπτουν με

προκαθορισμένο από τη συνάρτηση DK() Kt -στοιχείο του ίδιου επιπέδου, συνάρτηση VK()

δημιουργεί ένα σύμβολο συνέχειας τμήματος και ολοκληρώνει την εργασία.

Διαφορετικά, η συνάρτηση VK() δημιουργεί ένα σύμβολο ολοκλήρωσης τμήματος και ολοκληρώνει την εργασία (λειτουργία 4.1,4.2 με την τρέχουσα τιμή του t να είναι μικρότερη από τη μέγιστη).

Kt -στοιχείο Η συνάρτηση της μεθόδου DE0 του επιπέδου t της κλάσης CKForLn, κατά τον προσδιορισμό των παραμέτρων ενός στοιχείου Kt, συγκρίνει τις παραμέτρους του τρέχοντος στοιχείου Kt με τις παραμέτρους του στοιχείου Kt που καθορίστηκαν προηγουμένως από το DK() συνάρτηση για να προσδιορίσει εάν το τρέχον στοιχείο Kt έχει τροποποιηθεί. Εάν οι άλλες παράμετροι είναι ίσες, οι τιμές kt-1 τους πρέπει να διαφέρουν κατά 1. Εάν πληρούται αυτή η συνθήκη, η συνάρτηση DE() δημιουργεί ένα σημάδι ενός αλλαγμένου στοιχείου Kt και

ολοκληρώνει την εργασία (λειτουργία 4.3, 4.4 στην τρέχουσα μέγιστη τιμή t).

Η συνάρτηση της μεθόδου VE() του επιπέδου t της κλάσης CKForLn συγκρίνει τις παραμέτρους του τρέχοντος στοιχείου Kt με τις παραμέτρους του τροποποιημένου στοιχείου Kt που είχε προηγουμένως εκχωρηθεί από τη συνάρτηση DE() για να καθορίσει εάν οι τιμές των παραμέτρων τους συμπίπτουν .

Εάν οι τιμές των παραμέτρων του τρέχοντος στοιχείου Kt συμπίπτουν με τις προηγούμενες

που ορίζεται από τη συνάρτηση DK() του ίδιου επιπέδου, η συνάρτηση VK() δημιουργεί ένα σημάδι σύμπτωσης των τιμών των παραμέτρων και ολοκληρώνει την εργασία (λειτουργία 4.3,4.4 με την τρέχουσα τιμή t μικρότερη από τη μέγιστη).

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

Στο βήμα 0, δημιουργήθηκε ένα αντικείμενο της κλάσης Stipi, το οποίο ορίζει τις παραμέτρους του στοιχείου K0.

Στο βήμα 10, ολοκληρώνεται ο προσδιορισμός των παραμέτρων του στοιχείου K0 και δημιουργείται το αντικείμενο 1 της κλάσης SKrogbn, το οποίο χρησιμοποιεί τις συναρτήσεις του αντικειμένου που δημιουργήθηκε προηγουμένως για να καθορίσει τις παραμέτρους του στοιχείου K1. Στο βήμα 19, ολοκληρώνεται ο προσδιορισμός των παραμέτρων του στοιχείου Κ1 και δημιουργείται το αντικείμενο 2 της κλάσης SKrogbn, το οποίο χρησιμοποιεί τις συναρτήσεις των αντικειμένων που δημιουργήθηκαν προηγουμένως για να καθορίσει τις παραμέτρους του στοιχείου Κ2. Στο βήμα 49, ολοκληρώνεται ο προσδιορισμός των παραμέτρων του στοιχείου Κ2 και δημιουργείται ένα αντικείμενο 3 της κλάσης SKrogbn, το οποίο χρησιμοποιεί τις συναρτήσεις των αντικειμένων που δημιουργήθηκαν προηγουμένως για να καθορίσει τις παραμέτρους του στοιχείου Κ3. Το βήμα 79 εκτελείται

προϋπόθεση για τον τερματισμό του τμήματος. Η λειτουργία του προγράμματος περιγράφεται αναλυτικά στο παράρτημα.

Στην ενότητα 0-6, δύο στοιχεία β σχηματίζουν ένα ατελές στοιχείο Κ0. Είναι προφανές ότι β-

Το στοιχείο 3-6 του μήκους 3 συμπληρώνει το ευθύγραμμο τμήμα, αφού το στοιχείο b 6-7 του μήκους 1 δεν μπορεί να είναι η συνέχειά του. Έτσι, το b-στοιχείο 6-7 είναι η αρχή ενός τμήματος της ψηφιακής γραμμής.

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

Η εργασία του προγράμματος έχει δοκιμαστεί σε σημαντικό αριθμό (πάνω από 2000) παραδειγμάτων και χρησιμοποιείται στη μελέτη δομικής ανάλυσης ημιτονικών εικόνων.

5. Λειτουργία του προγράμματος αναγνώρισης τμημάτων γραμμής

Ας δούμε τη λειτουργία του προγράμματος iYEBESM χρησιμοποιώντας το παράδειγμα του Σχ. 4. Το κάτω μέρος του σχήματος δείχνει ένα τμήμα μιας ψηφιακής γραμμής, που αποτελείται από β-στοιχεία ίδιας κύριας και βοηθητικής κατεύθυνσης και διαφορετικού μήκους. Στην ενότητα 0-6, δύο στοιχεία β σχηματίζουν ένα ημιτελές K0-

Ρύζι. 3. Παράδειγμα εργασίας προγράμματος δομικής ανάλυσης περιγράμματος - τμηματοποίηση περιγράμματος κατά τμήματα ψηφιακών γραμμών

στοιχείο. Προφανώς, το b-στοιχείο 3-6 του μήκους 3 συμπληρώνει το ευθύγραμμο τμήμα, αφού το b-στοιχείο 6-7 του μήκους 1 δεν μπορεί να είναι η συνέχειά του. Έτσι, το b-στοιχείο 6-7 είναι η αρχή ενός τμήματος της ψηφιακής γραμμής.

Η εργασία του προγράμματος για τον προσδιορισμό του επόμενου ευθύγραμμου τμήματος ξεκινά με τη συνάρτηση OK() μηδενικού επιπέδου, η οποία καθορίζει το ολοκληρωμένο K0 -στοιχείο 6-10, που αποτελείται από b -στοιχεία

μήκη 1,1,2; k0=2. Αυτό το στοιχείο K0 είναι το αρχικό στοιχείο για το στοιχείο K1. Το πρόγραμμα δημιουργεί ένα αντικείμενο πρώτου επιπέδου και μεταφέρει τον έλεγχο στη συνάρτηση OK() αυτού του αντικειμένου. Η συνάρτηση OK() στο επίπεδο 1 καλεί τη συνάρτηση VKQ στο επίπεδο 0. Η συνάρτηση VKQ συγκρίνει τις παραμέτρους των b-στοιχείων του K0-στοιχείου 6-10 με τα επόμενα b-στοιχεία και επιβεβαιώνει την παρουσία του K0-στοιχείου 10 -14,

πανομοιότυπο με το Κ0 -στοιχείο 6-10. Συνεχίζοντας την εργασία της, η συνάρτηση VKQ ανιχνεύει ότι τα επόμενα στοιχεία b δεν σχηματίζουν το ίδιο στοιχείο K0, εξέρχεται και μεταφέρει τον έλεγχο στη συνάρτηση επιπέδου 1 OK() Η συνάρτηση επιπέδου 1 OK() καλεί τη συνάρτηση επιπέδου 0 OE(). Αυτό το τελευταίο, ξεκινώντας με το b-στοιχείο 6-7, καθορίζει την παρουσία ενός τροποποιημένου στοιχείου K0 14-19, που αποτελείται από στοιχεία b μήκους 1,1,1,2. k0=3, ολοκληρώνει την εργασία και μεταφέρει τον έλεγχο στη συνάρτηση OK() του επιπέδου 1. Αυτή η συνάρτηση καθορίζει την παρουσία ενός ολοκληρωμένου στοιχείου K1 6-19, που αποτελείται από δύο K0 -

στοιχεία 1,1,2, (k1=2) και ένα τροποποιημένο 1,1,1,2 (k0=3). Το πρόγραμμα δημιουργεί ένα αντικείμενο δεύτερου επιπέδου και μεταφέρει τον έλεγχο στη συνάρτηση OK() αυτού του αντικειμένου. Η συνάρτηση OK() του επιπέδου 2 καλεί τη συνάρτηση VKQ του επιπέδου 1, η οποία, με τη σειρά της, καλεί τη συνάρτηση VKQ του επιπέδου 0. Η συνάρτηση VKQ συγκρίνει τις παραμέτρους των στοιχείων b των στοιχείων K0 6-10 με τα επόμενα b -

στοιχεία και επιβεβαιώνει την παρουσία των στοιχείων K0 19-23, 23-27, πανομοιότυπων με το στοιχείο K0 6-10, δηλαδή τον ίδιο αριθμό τέτοιων στοιχείων K0 που περιέχονται στο στοιχείο K1 6-19. Στη συνέχεια, η συνάρτηση VKQ του επιπέδου 0 επιστρέφει τον έλεγχο με το σύμβολο της συνέχισης του τμήματος της συνάρτησης VKQ του επιπέδου 1. Η συνάρτηση VKQ καλεί τη συνάρτηση VE0 του επιπέδου 0, η οποία καθορίζει την παρουσία ενός αλλαγμένου K0 -

στοιχείο 27-32, πανομοιότυπο με το Κ0 -στοιχείο 14-19. Έτσι, ορίζεται το στοιχείο K1 19-32,

πανομοιότυπο με το Κ1-στοιχείο 6-19. Επιπλέον, η συνάρτηση VKQ του επιπέδου 1 δεν ορίζει το επόμενο στοιχείο Κ1, πανομοιότυπο με το στοιχείο Κ1 6-19, λόγω του γεγονότος ότι η συνάρτηση VE0 του επιπέδου 0 δεν καθορίζει το αλλαγμένο στοιχείο Κ1, πανομοιότυπο με το K1-στοιχείο 6-19, ξεκινώντας με το b-στοιχείο 40-41, και επιστρέφει τον έλεγχο στη συνάρτηση OK() του επιπέδου 2. Η συνάρτηση OK() του επιπέδου 2 καλεί τη συνάρτηση OE() του επιπέδου 1, η οποία καθορίζει την παρουσία ενός τροποποιημένου στοιχείου Κ1 32-49, που αποτελείται από στοιχεία Κ0 32-36, 36-40,

40-44, 44-49. Στη συνέχεια, προσδιορίζεται το στοιχείο Κ2 6-49, σχηματίζεται ένα αντικείμενο επιπέδου 3 και προσδιορίζεται το τροποποιημένο στοιχείο Κ2 49-79. Αυτά τα δύο στοιχεία Κ2 σχηματίζουν το στοιχείο Κ3 6-79. Αυτό ολοκληρώνει την κατασκευή του τμήματος, καθώς τα επόμενα b-στοιχεία 79-81 και 81-83 δεν σχηματίζουν ένα στοιχείο K0,

πανομοιότυπο με το K0 -στοιχείο 6-10 και η συνάρτηση VKQ του επιπέδου 0 δεν δημιουργεί πρόσημο συνέχειας

τμήμα. Στην ακολουθία των στοιχείων L, επισημαίνεται ένα τμήμα της ψηφιακής γραμμής 6-79. Το πρόγραμμα αρχίζει να προσδιορίζει το επόμενο τμήμα, ξεκινώντας με το στοιχείο b 80-82.

σι. συμπεράσματα

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

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

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

ΒΙΒΛΙΟΓΡΑΦΙΑ

1. Kovalevsky V.A. Applications of Digital Straight Segments to Economical Image Encoding, In Proceedings of the 7th International Workshop, DGCI"97, Montpellier. - France, 1997. - December 3-5. - P. 51-62.

2. Kalmykov V.G. Δομική μέθοδος περιγραφής και αναγνώρισης τμημάτων ψηφιακών γραμμών στα περιγράμματα δυαδικών εικόνων // Ευφυΐα κομματιού. - 2002. - Αρ. 4. - Σ. 450-457.

3. Kalmykov V.G., Vishnevsky V.V. Ανάλυση περιγραμμάτων αντικειμένων σε δυαδικές εικόνες // Μαθηματικές μηχανές και συστήματα. - 1997. - Αρ. 2. - Σ. 68 - 71.

4. Kalmikov V.G. Τόξο ψηφιακής καμπύλης - αποτιμημένη και στάσιμη // Επεξεργασία σημάτων και εμφάνιση και αναγνώριση μοτίβων. Πρακτικά αυτού του Παν-Ουκρανικού Διεθνούς Συνεδρίου. - Κίεβο. - 2004. - 11 - 15 zhovten.

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

Στόχος.Αναπτύξτε ένα πρόγραμμα για την ταξινόμηση των ορθογώνιων εξαρτημάτων σε ποιοτικά και ελαττωματικά.

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

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

Αφαίρεση– επιλογή των πιο ουσιαστικών χαρακτηριστικών του αντικειμένου από την άποψη της εργασίας.

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

Σε τι διαφέρει ένα ορθογώνιο από τα άλλα τετράπλευρα;

  • Ισότητα αντίθετων πλευρών.
  • Παραλληλισμός αντίθετων πλευρών.
  • Ισότητα διαγωνίων.
  • Όλες οι γωνίες είναι ορθές.

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

  • Ισότητα 2 απέναντι πλευρών + ισότητα διαγωνίων.
  • Παραλληλισμός 2 απέναντι πλευρών + ισότητα διαγωνίων.
  • Τρεις γωνίες είναι ορθές.

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

Μεθοδολογία για την υλοποίηση της εργασίας.

Ένα σχέδιο ενός ποιοτικού τμήματος (ορθογώνιο) ή ενός ελαττωματικού τμήματος (τετράγωνο) γίνεται από τμήματα (εντολή LINE) στο σύστημα γραφικών AutoCAD και εξάγεται στο . Το πρόγραμμα kntrs.lsp() διαβάζει δεδομένα σχετικά με τμήματα (συντεταγμένες κορυφής) από ένα αρχείο DXF και τα εγγράφει στο αρχείο κειμένου vrtks.txt με κυκλική σειρά διέλευσης των κορυφών.

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

Το πρόγραμμα rct.lsp που αναπτύχθηκε πρέπει να διαβάσει δεδομένα από το αρχείο vrtks.txt, να τα αναλύσει και να εξάγει μια εγγραφή στο αρχείο result.txt σχετικά με το εάν το εξάρτημα πληροί τις απαιτήσεις (ορθογώνιο ή όχι).

Επισημοποίηση χαρακτηριστικών

Ισότητα μηκών τμημάτων (πλευρές ή διαγώνιες): Το μήκος κάθε τμήματος προσδιορίζεται ως η υποτείνουσα ενός ορθογώνιου ορθογωνίου (σύμφωνα με το Πυθαγόρειο θεώρημα) μέσω της διαφοράς στις συντεταγμένες των τμημάτων:

(setq DX12 (abs (- X1 X2))) (setq DY12 (abs (- Y1 Y2))) (setq DA1 (sqrt (+ (* DX12 DX12) (* DY12 DY12))))

Παραλληλισμός ευθειών: Κ2= Κ1, Οπου ΠΡΟΣ ΤΗΝ– κλίση της ευθείας K=(Y2-Y1)/(X2-X1)

Πώς να επισημοποιήσετε την έννοια της «Ορθής γωνίας»; Στο πλαίσιο της εργασίας, η παρουσία μιας "Ορθής Γωνίας" μπορεί να προσδιοριστεί από την καθετότητα των τμημάτων: Κ2= -1/Κ1, Οπου ΠΡΟΣ ΤΗΝ– κλίση της ευθείας. K=(Y-Y0)/(X-X0).

Εμφάνιση του μοντέλου στον υπολογιστή

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

mob_info