title: Οπτική αναγνώριση και γραφή με το ανθρωποειδές ρομπότ ΝΑΟ
title: Visual recognition and writing with the NAO humanoid robot
Creators: name: Καβρουλακης Δημητριος
Publisher: name: Technical University of Crete
Year: 2020

description: Η τεχνητή νοημοσύνη έχει ως στόχο τη δημιουργία συμπεριφορών, είτε από προγράμματα-πράκτορες, είτε από μηχανήματα-ρομπότ, οι οποίες επιδεικνύουν κάποια βασική ευφυΐα. Σήμερα, ο άνθρωπος μπορεί να κατασκευάζει διαφόρων ειδών ρομπότ με σκοπό να εκτελούν κάποιες ενέργειές του, ωστόσο κάθε τέτοιο ρομπότ χρειάζεται να εκπαιδευτεί κατάλληλα για να τις εκτελεί σωστά και κάποιες φορές ίσως να αποτυγχάνει. Η παρούσα διπλωματική εργασία παρουσιάζει την ανάπτυξη μιας «ανθρώπινης» συμπεριφοράς στο ανθρωποειδές ρομπότ ΝΑΟ, η οποία αφορά στην οπτική αναγνώριση ενός χειρόγραφου κειμένου (λέξης) από το ρομπότ και στη γραφή αυτού του ίδιου κειμένου σε έναν λευκό πίνακα με τη χρήση ενός μαρκαδόρου που κρατάει στο χέρι του. Πιο συγκεκριμένα, το ΝΑΟ έχει εκπαιδευτεί με συνελικτικά νευρωνικά δίκτυα (Convolution Neural Networks) και ένα σύνολο δεδομένων από εικόνες με κεφαλαία χειρόγραφα γράμματα του λατινικού αλφαβήτου για να αναγνωρίζει γράμματα. Επίσης, έγινε εκπαίδευση του ΝΑΟ στην γραφή κεφαλαίων χαρακτήρων του λατινικού αλφαβήτου μέσω μιας διαδικασίας χειροκίνητης καθοδήγησης των αρθρώσεων του βραχίονά του από τον άνθρωπο-εκπαιδευτή και καταγραφής των χρονισμένων τροχιών των αρθρώσεων μέσα από το εξειδικευμένο λογισμικό Choregraphe. Η ενοποίηση των επιμέρους τμημάτων της επιθυμητής συμπεριφοράς έγινε με χρήση της γλώσσας προγραμματισμού Python. Κατά την εκτέλεση της τελικής συμπεριφοράς, το ρομπότ ΝΑΟ λαμβάνει κάποια εικόνα από την κάμερά του, την επεξεργάζεται με κατάλληλους αλγορίθμους επεξεργασίας εικόνας από τη βιβλιοθήκη OpenCV, εφαρμόζει το εκπαιδευμένο νευρωνικό δίκτυο και ανιχνεύει ακολουθίες (λέξεις) από χειρόγραφα γράμματα που βλέπει γραμμένα στον πίνακα. Στη συνέχεια γράφει ένα-ένα τα γράμματα που έχει αναγνωρίσει στον λευκό πίνακα, εκτελώντας τις κατάλληλες κινήσεις με τον βραχίονα που κρατάει τον μαρκαδόρο, μετατοπίζοντας τη θέση του κάθε φορά, ώστε να αναπαραχθεί ορθά η ίδια ακολουθία γραμμάτων. Η προσέγγιση αυτή ολοκληρώθηκε με επιτυχία, εφόσον το ρομπότ ΝΑΟ σημειώνει υψηλά ποσοστά ακρίβειας στην ορθή οπτική αναγνώριση των χειρόγραφων γραμμάτων που του δίνονται, αλλά και στην ορθή, ευανάγνωστη καταγραφή τους με ανεπαίσθητες διαφοροποιήσεις. Η συμπεριφορά αυτή, η οποία προσομοιάζει σε προσφιλείς διαδικασίες μάθησης των παιδιών, μπορεί να αποτελέσει σημείο ενδιαφέροντος ως διαδραστική τεχνολογική επίδειξη σε εκδηλώσεις STEM για παιδιά. 
description: Artificial intelligence aims to create behaviors, either by software agents or by robotic machines, which exhibit some basic intelligence. Today, humans can build different types of robots in order to perform some of their actions; however, each such robot needs to be properly trained to perform them accurately and sometimes it may fail. This diploma thesis presents the development of a "human" behavior on the humanoid robot NAO, which involves the visual recognition of a handwritten text (word) by the robot and the writing of the same text on a whiteboard using a marker held in his hand. More specifically, the NAO has been trained with Convolution Neural Networks and a dataset of uppercase handwritten letters of the Latin alphabet to recognize letters. NAO was also trained in the writing of uppercase letters of the Latin alphabet through a process of manual guidance of the arm joints by the man-trainer and recording of the timed trajectories of the joints through the specialized Choregraphe software. The individual components of the target behavior were integrated using the Python programming language. During the execution of the final behavior, the NAO robot receives an image from its camera, processes it with appropriate image processing algorithms from the OpenCV library, applies the trained neural network and detects sequences (words) of handwritten letters that it sees written on the board. Then, the robot writes one by one the letters that have been identified on the whiteboard, performing the appropriate movements with the arm holding the marker, shifting its position each time, so that the same sequence of letters is reproduced correctly. This approach was completed successfully, since the NAO robot achieves high percentages of accuracy in the correct visual recognition of the handwritten letters given to it, but also in their correct, legible writing with subtle differences. This behavior, which resembles children's learning processes, can be a point of interest as an interactive technological demonstration at STEM events for kids.