Εφαρμογές τεχνητών νευρωνικών δικτύων και μηχανικής όρασης
Keywords
Τεχνητά νευρωνικά δίκτυα ; Μηχανική όραση ; Νευρωνικά δίκτυα ; Python ; Γλώσσα προγραμματισμού PythonAbstract
Στην συγκεκριμένη πτυχιακή εργασία θα παρουσιαστούν τρόποι αξιοποίησης των θεωριών της Τεχνητής Νοημοσύνης και των τεχνητών νευρωνικών δικτύων. Σκοπός είναι με την χρήση διαφόρων λογισμικών προγραμμάτων και βιβλιοθηκών μέσω της γλώσσας προγραμματισμού Python, να μπορεί ο αναγνώστης να κατανοήσει σε γενικές γραμμές τον τρόπο με τον οποίο γίνεται η αντιστοίχιση θεωρίας με την πράξη. Στο πρώτο μέρος γίνεται αναφορά στο λογισμικό Keras και τον τρόπο να κατασκευάζουμε και να εκπαιδεύουμε τεχνητά νευρωνικά δίκτυα για την επίλυση προβλημάτων. Στο δεύτερο μέρος θα κατασκευάσουμε ένα σύστημα για στόχευση. Στην βασική οθόνη του προγράμματος θα υπάρχει η εικόνα που μας δίνει η κάμερα στην οποία θα μπορούμε να θέσουμε τον επιθυμητό στόχο, σκοπός θα είναι τα μοτέρ να στραφούν στις σωστές μοίρες έτσι ώστε η δέσμη λέιζερ να συμπέσει με τον επιθυμητό στόχο στην οθόνη. Αυτά θα επιτευχθούν χρησιμοποιώντας Raspberry Pi 3 Model B+, 2 servo κινητήρες σε διάταξη δεξιά-αριστερά και πάνω-κάτω,1 δέσμη λέιζερ, 1 κάμερα, και έναν υπερηχητικό αισθητήρα για μέτρηση αποστάσεων. Όλα αυτά θα είναι σε μια συγκεκριμένη χωροταξία μεταξύ τους. Θα χρησιμοποιήσουμε ένα τεχνητό νευρωνικό δίκτυο με το οποίο θα
καταφέρουμε να κάνουμε την γενίκευση, έτσι ώστε οπουδήποτε θέσουμε τον στόχο στην οθόνη να υπολογίζονται οι σωστές μοίρες καθώς και απαλοιφή των χωροταξικών παραμέτρων όπως απόσταση λέιζερ-κάμερας, λέιζερ-μεταλλική βάσης κτλ. που θα ήταν
σημαντικοί παράμετροι σε ένα σύστημα υπολογισμού με εξισώσεις. Το τεχνητό νευρωνικό δίκτυο θα έχει ως εισόδους τον στόχο που θέσαμε στην οθόνη συγκεκριμένα η πρώτη είσοδος θα είναι η θέση του στόχου στο Χ άξονα, η δεύτερη θα είναι η θέση του στόχου στο Y άξονα και η τρίτη η απόσταση του στόχου. Οι έξοδοι θα είναι δύο (μια για το κάθε μοτέρ) όπου θα είναι ένα σήμα από το μηδέν έως το ένα που μεταφράζονται στις μοίρες να πάρει το κάθε μοτέρ αντίστοιχα. Θα γίνει χρήση ενός συστήματος ασαφούς λογικής το οποίο εξυπηρετεί δυο σκοπούς. Ο πρώτος είναι ο υπολογισμός των αληθινών τιμών που θα θέλαμε να
υπολογίσει το νευρωνικό δίκτυο, έτσι ώστε να μπορεί να επιτεθεί η εκπαίδευση με εποπτεία. Ο δεύτερος είναι η γεφύρωση επικοινωνίας ανθρώπου με τη μηχανή με τους κανόνες γραμμένους σε ανθρώπινη γλώσσα, αλλά ταυτόχρονα υλοποιήσιμους από την μηχανή.
Abstract
In this dissertation will be presented ways to utilize the theories of Artificial Intelligent and Artificial Neural Networks. The aim is to enable the reader to understand in generalthe way in which the practice theory and practice are combined by using various software programs and libraries with the Python programming language. In the first part we refer to Keras software and how to construct and train artificial neural networks tosolve problems.On the second part we will construct an aiming system. At the main screen of the program there will be the frames of the camera in which the user will be able to set the desired target, the purpose of the system will be to make the motor rotate to the correct degrees, so that the point of the laser match the desired target of the screen. These will be achieved using a Raspberry Pi 3 Model B+, 2 Servo motors in formation left-right and up-down, 1 laser, 1 web camera and one ultrasonic sensor for distance measurement. All these components will be at a specific setup. We will use an artificial neural network in order to achieve generalization, so that regardless were the target will be set the neural network will compute the correct motor positions. With the neural network we also eliminate the hardware setup parameters like distance of laser-camera, laser with metal base etc. which would have a dominating effect in a system that uses equations. Neural network will have as inputs the desired target we set on the screen, in details the first input will be the position of the target on X axis, the second will be the position of the target on Y axis and the third the distance of the target. The outputs will be two (one for each motor) a signal fromzero to one indicating the degrees for each motor respectively. We will use a fuzzy system that serves two purposes, the first one is the calculation of the true values which is what we would like the neural network compute, so that we can achieve the supervised learning. The second is the bridging of human to machine communication with the fuzzy rules being written in human language, but at the same time implementable by the machines.