Ιδρυματικό Αποθετήριο [SANDBOX]
Πολυτεχνείο Κρήτης
EN  |  EL

Αναζήτηση

Πλοήγηση

Ο Χώρος μου

Ανίχνευση κίνησης και αντικειμένων από ροές βίντεο στο περιβάλλον Apache Flink

Banelas Dimitrios

Πλήρης Εγγραφή


URI: http://purl.tuc.gr/dl/dias/241E662D-CBF7-4647-9786-CB3D1227C812
Έτος 2023
Τύπος Διπλωματική Εργασία
Άδεια Χρήσης
Λεπτομέρειες
Βιβλιογραφική Αναφορά Δημήτριος Μπανέλας, "Ανίχνευση κίνησης και αντικειμένων από ροές βίντεο στο περιβάλλον Apache Flink", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2023 https://doi.org/10.26233/heallink.tuc.97992
Εμφανίζεται στις Συλλογές

Περίληψη

Στην παρούσα διπλωματική εργασία, παρουσιάζουμε ένα κατανεμημένο σύστημα για επεξεργασία βίντεο, με τη χρήση του Apache Flink και του Apache Kafka, εγκατεστημένο σε cloud υποδομή, με τη βοήθεια του Kubernetes ως πλατφόρμα ενορχήστρωσης. Το παρόν σύστημα πραγματοποιεί παρακολούθηση πολλαπλών αντικειμένων, καθώς και τη δημιουργία και εξαγωγή των μοτίβων κίνησης τους σε μορφή τροχιών, από πολλαπλές ροές βίντεο. Οι στόχοι αυτής της υλοποίησης είναι να συμπεράνουμε εάν ένα τέτοιο σύστημα είναι εφικτό με τη χρήση του Apache Flink. Ακόμη, στοχεύουμε να εξερευνήσουμε την απόδοση, τόσο σύμφωνα με τις θεωρητικές προσδοκίες όσο και με πρακτικά benchmarks. Η ακρίβεια των αποτελεσμάτων, η ταχύτητα και η δυνατότητα κλιμάκωσης του συστήματος, είναι σημαντικά αποτελέσματα αυτής της εργασίας. Αξιοποιώντας τις δυνατότητες κατανεμημένης επεξεργασίας ροών του Apache Flink, και το Apache Kafka ως μεσάζοντα μηνυμάτων, το σύστημα χρησιμοποιεί ένα συνδυασμό αλγορίθμων μηχανικής όρασης, συμπεριλαμβανομένης της αφαίρεσης φόντου, της αναγνώρισης συνδεδεμένων στοιχείων και της παρακολούθησης με βάση το κέντρο του αντικειμένου. Οι αλγόριθμοι αυτοί υλοποιούνται με βάση το datalflow μοντέλο το οποίο υπαγορεύει το Apache Flink. Αυτό σημαίνει ότι κάθε αλγόριθμός υπάρχει σε έναν τελεστή του Flink, ο οποίος μπορεί να κλιμακωθεί ανεξάρτητα, ανάλογα με το φόρτο του. Με στόχο να αξιοποιηθεί πλήρως η κατανεμημένη αρχιτεκτονική που προτείνουμε, κάθε καρέ χωρίζεται σε μικρότερα κομμάτια, τα οποία μπορούν να διαμοιραστούν και να επεξεργαστούν στους διάφορους τελεστές του Flink. Αρχικά, όλα τα κομμάτια ενός βίντεο διανέμονται ομοιόμορφα στα partitions του Kafka. Στη συνέχεια, όλοι οι κόμβοι του Flink διαβάζουν παράλληλα αυτά τα κομμάτια. Στο πρώτο στάδιο της επεξεργασίας, κάθε κομμάτι υφίσταται αφαίρεση φόντου και αναγνώριση συνδεδεμένων στοιχείων. Αυτή η διαδικασία παράγει το κέντρο και το ορθογώνιο οριοθέτησης του κάθε συνδεδεμένου στοιχείου που υπάρχει σε κάθε κομμάτι. Σε δεύτερο στάδιο, τα συνδεδεμένα στοιχεία από κάθε καρέ συγκεντρώνονται σε έναν τελεστή, ο οποίος συγχωνεύει αυτά τα οποία πληρούν κάποιες προϋποθέσεις συγχώνευσης. Η διαδικασία αυτή παράγει τα αντικείμενα του κάθε καρέ. Τέλος, τα αντικείμενα από όλα τα καρέ συγκεντρώνονται στον τελευταίο τελεστή, ο οποίος σχηματίζει τις τροχιές του κάθε αντικειμένου ανάλογα με τη θέση του κέντρο τους. ΄Οταν όλα τα καρέ του βίντεο έχουν επεξεργαστεί, οι τελικές τροχιές ανακοινώνονται σε άλλο ένα Kafka topic. Η εφαρμογή εγκαταστάθηκε ως ένα Flink cluster πάνω από ένα Kubernetes cluster με τη βοήθεια του Flink Kubernetes Operator. Πραγματοποιώντας πειράματα σε ένα περιβάλλον με 7 μηχανές, παρατηρήσαμε ότι το προτεινόμενο σύστημα και έχει τη δυνατότητα κλιμάκωσης, και ξεπερνά σε απόδοση ένα μονολιθικό σύστημα, ενώ παράγει ακριβείς τροχιές για τα αντικείμενα των βίντεο. Πράγματι, η εφαρμογή στο Flink με παραλληλισμό 7 είναι έως και 6 φορές καλύτερη σε απόδοση σε σχέση με ένα μονολιθικό σύστημα και έως 4.9 φορές πιο αποδοτική από την εφαρμογή στο Flink με παραλληλισμό 1.

Διαθέσιμα αρχεία

Υπηρεσίες

Στατιστικά