HEAL DSpace

Ship Detection in Satellite Images With Deep Learning and a Pythonic Interface on a Hadoop HDFS Platform

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Πεππές, Νικόλαος el
dc.contributor.author Peppes, Nikolaos en
dc.date.accessioned 2019-03-12T10:22:26Z
dc.date.available 2019-03-12T10:22:26Z
dc.date.issued 2019-03-12
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/48420
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.9229
dc.description Εθνικό Μετσόβιο Πολυτεχνείο--Μεταπτυχιακή Εργασία. Διεπιστημονικό-Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών (Δ.Π.Μ.Σ.) “Γεωπληροφορική” el
dc.rights Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ *
dc.subject Artificial Intelligence, en
dc.subject Convolutional Neural Networks (CNN ) en
dc.subject Big Data en
dc.subject Hadoop HDFS Platform en
dc.subject Τεχνητή Νοημοσύνη el
dc.subject Δεδομένα Μεγάλης Κλίμακας el
dc.subject Συνελικτικά Νευρωνικά Δίκτυα el
dc.subject Βαθειά Μάθηση el
dc.title Ship Detection in Satellite Images With Deep Learning and a Pythonic Interface on a Hadoop HDFS Platform en
heal.type masterThesis
heal.classification Big Data and Machine Learning en
heal.language en
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2018-09-26
heal.abstract Big Data terminology indicates the massive or complex sets of data, in comparison with conventional “small” datasets, in a way that trditional processing operations are inefficient to manage them. Big Data ecosystems help making more accurate analysis, higher quality decision-making, higher operational effectiveness, cost minimizations and decreased risks for the infrastructures. Big Data combines extremely large volume, great velocity of changes and diversity of data and forms, offering greater capability of extensions. Hadoop is an open-source framework that permits processing over big data as well as archiving them in a distributed environment across computer complex using programming models in an understandable way. It is constructed to be escalated from a single server to thousands of them or computer machines, where regional computation and storage processes comes forward. Hadoop is a Java Software that operates with thousands of nodes with gigabyres or even petabytes of data maintaining data-intensive distributed applications. Hadoop is composed of two crucial components: HDFS (Hadoop Distributed File System) which is located on top of the filesystems of the fundamental operating systems, and MapReduce, a framework that offers the capability of distributed processes, by splitting the application into smaller operational chunks, in such a way that any node in the cluster can execute (or re-execute each of) them. Convolutional Neural Networks (CNN) are the leading architecture in Deep Learning that are used for Image Processing Techniques. Convolutional Neural Networks are a category of Neural Networks seen to be more promising when working on image data. They work on images in a manner similar to the human brain: by finding smaller details and then working their way up to more abstract features. The objective of the present master thesis is the deployment of a Hadoop Distributed File System Interface using the Python Programming Language to highlight the advantages of Big Data Technology. Following this scope, we develop an Artificial Intelligence Application using Deep Learning Technology, which detects ships in satellite images, using all the fundamental tools of Hadoop Ecosystem, in a user-friendly manner. Chapter 1 provides an introduction to Big Data and the Hadoop Ecosystem. Chapter 2 presents a revision of the theoretical framework that is used for the processing of Hadoop, Hbase and Deep Learning Applications. In Chapter 3 and Chapter 4 described is the development procedure of a pythonic interface for interaction with the Hadoop Distributed File System (HDFS) and the Hbase environment, respectively. Chapter 5 presents a deep learning framework, capable of detecting ships in satellite images. The thesis is concluded in Chapter 6, where some proposals for future research, based on the state of the art at this research field, are suggested. en
heal.abstract Τα μεγάλα δεδομένα έχουν γίνει ιδιαίτερα διαδεδομένα στις καθημερινές δραστηριότητες μεγάλων οργανισμών κι επιχειρήσεων. Το μέγεθος των μεγάλων δεδομένων και του ρυθμού αύξησής τους είναι τεράστιο. Η τεχνολογία μεγάλων δεδομένων είναι βέβαιο ότι θα χτυπήσει σύντομα την πόρτα κάθε επιχείρησης και οργανισμού σε κάθε τομέα. Η ορολογία των μεγάλων δεδομένων αφορά μεγάλες ή πολύπλοκες δομές δεδομένων τέτοιες ώστε οι παραδοσιακές εφαρμογές επεξεργασίας δεδομένων είναι ανεπαρκείς για την αντιμετώπισή τους. Τα οικοσυστήματα μεγάλων δεδομένων δύναται να βοηθήσουν στην ακριβέστερη ανάλυση, τη λήψη καλύτερων αποφάσεων, στη βελτίωση της λειτουργικής αποτελεσματικότητας, την ελαχιστοποίηση του κόστους και των απειλών για την εκάστοτε μορφή επιχείρησης. Περιλαμβάνουν τεράστιο όγκο, υψηλή ταχύτητα και εκτάσιμη ποικιλία δεδομένων και μορφών. Τα Συνελικτικά Νευρωνικά Δίκτυα (Convolutional Neural Networks ή CNN) είναι η κορυφαία αρχιτεκτονική στη βαθιά μάθηση που χρησιμοποιείται για τις τεχνικές επεξεργασίας εικόνων. Δουλεύουν σε εικόνες με τρόπο παρόμοιο με τον ανθρώπινο εγκέφαλο: με την εξεύρεση μικρότερων λεπτομερειών και έπειτα σε υψηλότερα επίπεδα προς πιο αφηρημένα χαρακτηριστικά. Σκοπός της παρούσας διπλωματικής εργασίας για το ‘Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών (ΔΠΜΣ) Γεωπληροφορικής’ αποτελεί η εγκατάσταση και η ανάπτυξη ενός συστήματος NoSQL (Not Only SQL) βάσεων δεδομένων. Το σύστημα αυτό είναι ένα διασυνδεδεμένο σύστημα αρχείων, με την ονομασία Hadoop Ecosystem, που αποσκοπεί στην ανάδειξη ενός framework ανοιχτού λογισμικού (open source) το οποίο διαχειρίζεται την επεξεργασία και την αποθήκευση εφαρμογών μεγάλων δεδομένων (big data applications) σε συστήματα τύπου συμπλέγματος (cluster). Η Hadoop μπορεί να διαχειριστεί πολυποίκιλους τύπους-δομημένων και μη-δεδομένων-και αποτελεί το κέντρο των τεχνολογιών μεγάλων δεδομένων, οι οποίες υποστηρίζουν πληθώρα εφορμογών συμπεριλαμβανομένων της εξόρυξης δεδομένων, αναλύσεων με πρόβλεψη και μηχανικής μάθησης (data mining, predictive analytics and machine learning). Το οικοσύστημα Hadoop είναι το πιο ευρέως αποδεκτό και χρησιμοποιούμενο πλαίσιο ανοιχτού κώδικα για τον υπολογισμό μεγάλων αναλυτικών δεδομένων σε ένα εύκολα κλιμακώσιμο περιβάλλον, που επιτρέπει την αποθήκευση και επεξεργασία μεγάλων δεδομένων σε ένα κατανεμημένο περιβάλλον συμπλεγμάτων υπολογιστών χρησιμοποιώντας απλά μοντέλα προγραμματισμού. Έχει σχεδιαστεί για να επεκτείνεται από ένα διακομιστή σε χιλιάδες μηχανές, το καθένα από τα οποία προσφέρει τοπικούς υπολογισμούς και αποθήκευση. Το Hadoop είναι ένα λογισμικό Java που υποστηρίζει κατανεμημένες εφαρμογές με μεγάλη ένταση δεδομένων και λειτουργεί με χιλιάδες κόμβους έως και petabytes δεδομένων. Τα δύο μεγάλα κομμάτια του Hadoop είναι το HDFS, το σύστημα του Hadoop που τρέχει πάνω από τα συστήματα αρχείων των υποκείμενων λειτουργικών συστημάτων και το MapReduce, ένα κατανεμημένο πλαίσιο επεξεργασίας, όπου η εφαρμογή διαιρείται σε πολλά μικρά κομμάτια εργασίας, καθένα από τα οποία μπορεί να εκτελείται ή εκτελείται εκ νέου σε οποιονδήποτε κόμβο του συμπλέγματος. Διαχειρίζεται πολύ καλά την αποθήκευση και την ανάλυση μη δομημένων δεδομένων. Το Hadoop είναι μια δοκιμασμένη λύση στο περιβάλλον παραγωγής και έχει εγκριθεί από κορυφαίους οργανισμούς όπως το Google, το Yahoo και το Facebook. 60 Για την ανάπτυξη της απαραίτητης διεπαφής γίνεται χρήση της γλώσσας προγραμματισμού Python προκειμένου να αναδειχθούν τα πλεονεκτήματα της Τεχνολογίας Μεγάλης Κλίμακας (Big Data Technology). Στη συνέχεια, αναπτύσσουμε μια εφαρμογή Τεχνητής Νοημοσύνης που χρησιμοποιεί τεχνολογία Βαθειάς Μάθησης (Deep Learning), η οποία ανιχνεύει πλοία σε δορυφορικές εικόνες, χρησιμοποιώντας όλα τα βασικά εργαλεία του οικοσυστήματος Hadoop (Hadoop Ecosystem), με φιλικό προς το χρήστη τρόπο. Στην παρούσα εργασία έγινε ανάπτυξη ενός αλγορίθμου βαθιάς μάθησης (deep learning), που ανήκει στην κατηγορία των εφαρμογών μηχανικής μάθησης (machine learning) και αναγνωρίζει την ύπαρξη πλοίων από δορυφορικές εικόνες λιμανιών. Προς το σκοπό αυτό έγινε χρήση μιας βιβλιοθήκης υψηλού επιπέδου γραμμένη σε Python, την Keras. Οι πηγές δεδομένων (data sources), για την εφαρμογή του αλγορίθμου, αποθηκέυονται σε ένα κατανεμημένο σύστημα αρχείων του Hadoop, γνωστό ως HDFS (Hadoop Distributed File System), το οποίο αποτελεί υποπρόγραμμα αυτού. Το HDFS δύναται να διατηρεί πολυ μεγάλο όγκο δεδομένων προσφέροντας ευκολότερη πρόσβαση. Η αποθήκευση αυτού του όγκου γίνεται σε πολλές μηχανές (servers) ‘in redudant fashion’, ώστε να μπορεί να γίνει η διάσωση του συστήματος από ενδεχόμενες απώλειες σε περίπτωση βλάβης. Επιπλέον γίνεται χρήση μιας ανοιχτής, μη σχεσιακής, κατανεμημένης βάσης δεδομένων γραμμένης σε Java, η οποία διαμορφώθηκε μετά το Bigtable της Google, αναπτύχθηκε ως μέρος του έργου Apache Software Foundation, του Apache Hadoop, και λειτουργεί πάνω από το HDFS παρέχοντας δυνατότητες Bigtable για Hadoop. Η βάση αυτή είναι η Hbase. Σε αυτήν, αποθηκεύονται πολλά δεδομένα των data sources, που χρησιμοποιούνται πριν και κατα την ανάπτυξη του προαναφερθέντος Deep Learning Algorithm, όπως labels infos, longitudes,latitudes, scene id’s των εικόνων, καθώς και κατόπιν της υλοποίησης αυτού, όπως πίνακες που περιέχουν τα αποτελέσματα της πρόβλεψης και τα βάρη κατανομής για κάθε pixel των εικόνων. Πιο συγκεκριμένα, η διπλωματική εργασία αποτελείται από τα παρακάτω μέρη: Κατόπιν της εγκατάστασης του Hadoop Ecosystem, σε ψευδο-κατανεμημένη λειτουργία (pseudodistributed mode), σε έναν εικονικό διακομιστή (server), που τρέχει σε μια εικονική μηχανή (virtualbox), με λειτουργικό σύστημα Ubuntu 16.04, κάνουμε τις κατάλληλες παραμετροποιήσεις και την αρχικοποιούμε θέτοντας το σε λειτουργία με IP 192.168.0.10. Στη συνέχεια έχει γίνει ανάπτυξη κατάλληλων συναρτήσεων προγράμματος (scripts), με σκοπό την διεπαφή, τόσο με το HDFS, όσο και την Ηbase. Η ανάπτυξη των scripts έγινε σε μια από τις πλέον ανερχόμενες γλώσσες προγραμματισμού, την Python, με την χρήση κατάλληλων βιβλιοθηκών. Πιο συγκεκριμένα: Για την αλληλεπίδραση και την διαχείριση του HDFS, τόσο μέσω του διακομιστή (server), όσο κι απομακρυσμένα μέσω ενός χρήστηπελάτη (client), έγινε χρήση της βιβλιοθήκης hdfs3 (open source), με την δημιουργηθείσα εφαμοργή να δίνει πληθώρα επιλογών, όπως:  Σύνδεση στο HDFilesystem, με χρήση της κατάλληλης IP και Port Απεικόνιση των περιεχομένων του root (/), των φακέλων (destination folders) αυτού και των περιεχομένων τους  Απόδοση συγκεκριμένων δικαιωμάτων (permissions) σε χρήστες (users) κι ομάδες (groupusers), ώστε να έχουν συγκεκριμένες δυνατότητες ανάγνωσης, εγγραφής ή εκτέλεσης (read, write, execute) 61  Δυνατότητα δημιουργίας νέων διαδρομών/φακέλων εντός του HDFS, αμφίδρομη μεταφορά ολόκληρων φακέλων ή αρχείων από τον server στον client (κι αντιστρόφως), ώστε να πραγματοποιηθούν τα ζήτουμενα tasks (πάντα λαμβάνονται υπόψη τα permissions που έχουν δοθεί στον εκάστοτε user)  Δυνατότητα ανάγνωσης αρχείων, απευθείας από την HDFS, με σκοπό την πραγματοποίηση συγκεκριμένων αναλύσεων Εντός του HDFS δημιουργούνται ξεχωριστοί φάκελοι προορισμού, που περιέχουν:  Τις εικόνες που θα χρησιμοποιηθούν για την εκπαίδευση (training) του μοντέλου αναγνώρισης πλοίων σε δορυφορικές εικόνες  Αρχεία JSON (JSON Files), που περιέχουν τις μαζικές πληροφορίες του μοντέλου, τα οποία αποθηκεύονται στην συνέχεια σε πίνακες εντός της Hbase  Αποτελέσματα της ταξινόμησης (classification) των εικόνων, που προκύπτουν ως απόρροια του αλγόριθμου (εικόνες που εισάγουμε στον αλγόριθμο κι αποφαίνεται εάν είναι ή οχι πλοίο, εν προκειμένω)  Δορυφορικές εικόνες λιμανιών, που έχουν ‘σαρωθεί ανά pixel κι έχουν αποτυπωθεί τα πιθανά σημεία, που βρίσκονται πλοία, εντός αυτών, με την εφαρμογή του αλγόριθμου Αντίστοιχα, με το προηγούμενο, έγινε ανάπτυξη ενός application script, με σκοπό την αλληλεπίδραση και την διαχείριση με την NoSQL βάση δεδομένων Hbase. Χρησιμοποιήθηκε ξανά μια open source library, η happybase v0.98, η οποία δίνει αντίστοιχα:  Δυνατότητα σύνδεσης στην Hbase, που βρίσκεται εγκατεστημένη στην πλευρά του διακομιστή (server)  Απεικόνιση των περιεχομένων πινάκων (tables) αυτής  Δυνατότητα απόδοσης συγκεκριμένων δικαιωμάτων, στον εκάστοτε χρήστη, για τον εκάστοτε πίνακα  Δημιουργία και διαγραφή πινάκων, εισαγωγή και διαγραφή τιμών σε αυτούς, καθώς και η δυνατότητα μαζικής απόδοσης (batches) τιμών δεδομένων, για διαφορετικά column families, ακόμα κι εντός του ίδιου πίνακα  Σάρωση και δυνατότητα ανάκτησης των δεδομένων, βάση συγκεκριμένων κριτηρίων (rows, columns, column families, timestamps) Το τελευταίο τμήμα της διπλωματικής εργασίας. όπως αναφέρθηκε και προηγουμένως, περιέχει έναν αλγόριθμο αναγνώρισης εικόνων πλοίων σε δορυφορικές εικόνες, καθώς και την πιθανότητα ύπαρξης πλοίων σε εικόνες λιμανιών. Για την υλοποίηση του μοντέλου έγινε χρήση κατάλληλων datasets από εικόνες που έχουν ληφθεί από δορυφόρους κι απεικονίζουν πλοία εντός λιμανιών και κόλπων. 62 Κατόπιν της δημιουργίας του μοντέλου Βαθιάς Μάθησης (deep learning) αποθηκεύουμε τα αποτελέσματα εντός της Hbase, για πιθανή περαιτέρω ανάλυση και χρησιμοποιούμε εικόνες πλοίων, ώστε να γίνει επαλήθευση των αποτελεσμάτων. Τα αποτελέσματα δύναται να αποθηκευθούν σε ειδικές διαδρομές, εντός του HDFS. Τέλος, κάνουμε εισαγωγή κάποιων δορυφορικών εικόνων λιμανιών και κόλπων, όπου με τη χρήση κατάλληλων αλγορίθμων σάρωσης της εικόνας, εφαρμόζουμε τα αποτελέσματα του Αλγόριθμου Βαθειάς Μάθησης (deep learning algorithm) και απεικονίζουμε πιθανές προβλέψεις. Το κεφάλαιο 1 παρέχει μια εισαγωγή στα Μεγάλα Δεδομένα και στο Οικοσύστημα της Hadoop. Στο 2ο κεφάλαιο αναπτύσσεται μια επισκόπηση του θεωρητικού υποβάθρου που χρησιμοποιείται για τις διεργασίες των εφαρμογών των Hadoop, HBase και Βαθιάς Μάθησης (Deep Learning). Στα κεφάλαια 3 και 4 περιγράφονται οι διεργασίες ανάπτυξης μια πλατφόρμας διεπαφής με τα περιβάλλοντα των Hadoop και HBase αντίστοιχα, με τη χρήση της γλώσσας προγραμματισμού Python. Το κεφάλαιο 5 προτείνει την δημιουργία ενός πλαισίου βαθειάς μάθησης, με την δυνατότητα εντοπισμού πλοίων σε δορυφορικές εικόνες, με σκοπό την αλληλεπίδραση και την ανάδειξη της εφαρμοστικότητας των διεπαφών που αναπτύχθηκαν στα κεφάλαια 4 και 5. Η παρούσα μεταπτυχιακή διπλωματική εργασία συμπυκνώνεται στο κεφάλαιο 6, όπου δίνονται κάποιες προτάσεις για μελλοντική έρευνα, βασισμένες στην εξέλιξη των τεχνολογιών, στους άνωθεν τομείς. el
heal.advisorName Μήτρου, Νικόλαος el
heal.committeeMemberName Αργιαλάς, Δημήτρης el
heal.committeeMemberName Κάβουρας, Μαρίνος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 68 σ. el
heal.fullTextAvailability true


Αρχεία σε αυτό το τεκμήριο

Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα Εκτός από όπου ορίζεται κάτι διαφορετικό, αυτή η άδεια περιγράφεται ως Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα