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

Αναζήτηση

Πλοήγηση

Ο Χώρος μου

Επεξεργασία βίντεο σε πραγματικό χρόνο σε περιβάλλον Apache FLINK στο Υπολογιστικό Νέφος

Kastrinakis Dimitrios

Απλή Εγγραφή


URIhttp://purl.tuc.gr/dl/dias/55DBF78E-08BB-4207-9F2B-6857F5BE3B09-
Αναγνωριστικόhttps://doi.org/10.26233/heallink.tuc.92728-
Γλώσσαen-
Μέγεθος64 pagesel
ΤίτλοςReal-time video processing in Apache Flink and the Clouden
ΤίτλοςΕπεξεργασία βίντεο σε πραγματικό χρόνο σε περιβάλλον Apache FLINK στο Υπολογιστικό Νέφοςel
ΔημιουργόςKastrinakis Dimitriosen
ΔημιουργόςΚαστρινακης Δημητριοςel
Συντελεστής [Επιβλέπων Καθηγητής]Petrakis Evripidisen
Συντελεστής [Επιβλέπων Καθηγητής]Πετρακης Ευριπιδηςel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Zervakis Michailen
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Ζερβακης Μιχαηλel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Deligiannakis Antoniosen
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Δεληγιαννακης Αντωνιοςel
ΕκδότηςΠολυτεχνείο Κρήτηςel
ΕκδότηςTechnical University of Creteen
Ακαδημαϊκή ΜονάδαTechnical University of Crete::School of Electrical and Computer Engineeringen
Ακαδημαϊκή ΜονάδαΠολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώνel
ΠερίληψηIn this work, we present a distributed stream-processing system built with Apache Flink on top of Kubernetes, fueled by the high-speed streaming platform Apache Kafka. Our system’s function will be processing high-resolution raw videos in order to detect camera shot changes. This work has two mains goals. Firstly, we want to make this system highly scalable, and able to efficiently utilize multiple processing nodes. Secondly, we want our system to be able to process a high input throughput of videos in as close to real-time as possible. Flink works by applying a series of operators in a pipeline to transform a video stream into meaningful data (i.e., shots in our case). These operators can be easily duplicated. This allows them to work in parallel by being distributed inside Flink-managed nodes. To allow fully distributed and scalable processing of video files, we suggest partitioning each video frame into smaller blocks. These can then be separately processed by all the distributed operators in parallel. The blocks of each frame are first evenly distributed to multiple Kafka topic partitions. Then, all Flink nodes read in parallel from those partitions. For the purposes of shot change detection, the histogram of the intensity of each separate block is calculated by an operator. Then, a second operator assembles all the histograms of a frame’s blocks into that same frame’s full histogram. In the next step, a third operator receives the full histograms of adjacent frames and calculates their differences. A final operator receives these histogram differences as a stream. If a difference exceeds a predefined threshold, then a camera cut shot change is announced. Otherwise, the operator looks for gradient fades among multiple sequential frames. We deployed our Flink application on a Flink cluster on top of a Kubernetes cluster. Up to 8 Flink nodes were used on the Google Cloud Platform, using Flink’s Native Kubernetes support. To determine the scalability of our system, we compare its performance against a non-distributed system. The experiments produced excellent speed-up results. An important improvement was detected in all tested video resolutions. The highest speedup however was observed in experiments with the videos of the highest resolutions. Up to 7 times better performance was reached compared to the non-distributed system.el
ΠερίληψηΣε αυτό το έργο παρουσιάζουμε ένα κατανεμημένο σύστημα επεξεργασίας ροής μέσω Apache Flink πάνω στο Kubernetes, που τροφοδοτείται από την πλατφόρμα ροής υψηλής ταχύτητας Apache Kafka. Η λειτουργία του συστήματός μας θα επεξεργάζεται ακατέργαστα βίντεο υψηλής ανάλυσης για τον εντοπισμό αλλαγών στη λήψη κάμερας. Ένας από τους κύριους στόχους αυτής της εργασίας είναι να καταστήσει αυτό το σύστημα εξαιρετικά επεκτάσιμο και ικανό να επεξεργαστεί μεγάλη ροή εισόδου βίντεο σε όσο το δυνατόν πιο κοντά στον πραγματικό χρόνο. Το Flink χρησιμοποιεί μια σειρά τελεστών για να μετατρέψει μια ροή βίντεο σε ουσιαστικά δεδομένα (δηλαδή, στην περίπτωσή μας διαφορετικές λήψης κάμερας). Αυτοί οι τελεστές μπορούν εύκολα να αντιγραφούν, δηλαδή να εργαστούν παράλληλα και να διανεμηθούν μεταξύ πολλαπλών κόμβων που διαχειρίζεται το Flink. Προκειμένου να καταστεί δυνατή η πλήρως κατανεμημένη και κλιμακούμενη επεξεργασία αρχείων βίντεο, προτείνουμε τη διαίρεση κάθε καρέ ενός βίντεο σε μικρότερα σύνολα ή ομάδες (blocks), τα οποία στη συνέχεια μπορούν να υποβληθούν σε χωριστή επεξεργασία από διάφορους κατανεμημένους τελεστές. Όλα τα blocks των καρέ ενός βίντεο διανέμονται πρώτα ομοιόμορφα σε topic partitions του Kafka. Στη συνέχεια, όλοι οι Flink κόμβοι διαβάζουν παράλληλα τα partitions. Για να μπορέσει να ανιχνευθεί αλλαγή λήψης μεταξύ καρέ, υπολογίζεται πρώτα το ιστόγραμμα έντασης του κάθε block από έναν τελεστή. Στην συνέχεια, μαζεύονται σε επόμενο τελεστή όλα τα blocks ενός καρέ και υπολογίζεται το συνολικό ιστόγραμμα έντασης του καρέ αυτού. Ένας τρίτος τελεστής έπειτα, υπολογίζει τις διαφορές των ιστογραμμάτων μεταξύ των διαφορετικών καρέ του βίντεο και εξάγει στη συνέχεια μια συνεχόμενη ροή διαφορών ιστογραμμάτων. Ένας τέταρτος τελεστής χρησιμοποιεί την ροή αυτήν και εάν εντοπίσει μια διαφορά που υπερβαίνει ένα προκαθορισμένο όριο, ανακοινώνεται μια αλλαγή λήψης κάμερας. Διαφορετικά, ο τελεστής αναζητά αλλαγές σκηνών “fade” μεταξύ πολλαπλών συνεχόμενων καρέ. Αναπτύξαμε την Flink εφαρμογή μας σε ένα Flink cluster το οποίο με την σειρά του ήταν πάνω σε ένα Kubernetes cluster. Χρησιμοποιήθηκαν έως και 8 Flink κόμβοι, μέσω της πλατφόρμας Google Cloud και χρησιμοποιώντας την εγγενή υποστήριξη του Flink για Kubernetes clusters. Για να καθορίσουμε την επεκτασιμότητα του συστήματός μας, συγκρίνουμε την απόδοσή του με ένα μη κατανεμημένο σύστημα. Τα πειράματα παρήγαγαν εξαιρετικά αποτελέσματα επιτάχυνσης. Σημαντική βελτίωση εντοπίστηκε σε όλες τις δοκιμασμένες αναλύσεις βίντεο. Ωστόσο, παρατηρήθηκε μεγαλύτερη επιτάχυνση σε πειράματα με βίντεο υψηλότερων αναλύσεων. Επιτεύχθηκε έως και 7 φορές καλύτερη απόδοση σε σύγκριση με το μη κατανεμημένο σύστημα.el
ΤύποςΔιπλωματική Εργασίαel
ΤύποςDiploma Worken
Άδεια Χρήσηςhttp://creativecommons.org/licenses/by/4.0/en
Ημερομηνία2022-07-13-
Ημερομηνία Δημοσίευσης2022-
Θεματική ΚατηγορίαDistributed systemsen
Θεματική ΚατηγορίαΚατανεμημένα συστήματαel
Θεματική ΚατηγορίαVideo processingen
Θεματική ΚατηγορίαΕπεξεργασία βίντεοel
Θεματική ΚατηγορίαΝέφοςel
Θεματική ΚατηγορίαClouden
Θεματική ΚατηγορίαApache Flinken
Θεματική ΚατηγορίαApache Kafkaen
Βιβλιογραφική ΑναφοράDimitrios Kastrinakis, "Real-time video processing in Apache Flink and the Cloud", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2022en
Βιβλιογραφική ΑναφοράΔημήτριος Καστρινάκης, "Επεξεργασία βίντεο σε πραγματικό χρόνο σε περιβάλλον Apache FLINK στο Υπολογιστικό Νέφος", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2022el

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

Υπηρεσίες

Στατιστικά