Institutional Repository
Technical University of Crete
EN  |  EL

Search

Browse

My Space

Real-time video processing in Apache Flink and the Cloud

Kastrinakis Dimitrios

Simple record


URIhttp://purl.tuc.gr/dl/dias/55DBF78E-08BB-4207-9F2B-6857F5BE3B09-
Identifierhttps://doi.org/10.26233/heallink.tuc.92728-
Languageen-
Extent64 pagesel
TitleReal-time video processing in Apache Flink and the Clouden
TitleΕπεξεργασία βίντεο σε πραγματικό χρόνο σε περιβάλλον Apache FLINK στο Υπολογιστικό Νέφοςel
CreatorKastrinakis Dimitriosen
CreatorΚαστρινακης Δημητριοςel
Contributor [Thesis Supervisor]Petrakis Evripidisen
Contributor [Thesis Supervisor]Πετρακης Ευριπιδηςel
Contributor [Committee Member]Zervakis Michailen
Contributor [Committee Member]Ζερβακης Μιχαηλel
Contributor [Committee Member]Deligiannakis Antoniosen
Contributor [Committee Member]Δεληγιαννακης Αντωνιοςel
PublisherΠολυτεχνείο Κρήτηςel
PublisherTechnical University of Creteen
Academic UnitTechnical University of Crete::School of Electrical and Computer Engineeringen
Academic UnitΠολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώνel
Content SummaryIn 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
Content SummaryΣε αυτό το έργο παρουσιάζουμε ένα κατανεμημένο σύστημα επεξεργασίας ροής μέσω 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
Type of ItemΔιπλωματική Εργασίαel
Type of ItemDiploma Worken
Licensehttp://creativecommons.org/licenses/by/4.0/en
Date of Item2022-07-13-
Date of Publication2022-
SubjectDistributed systemsen
SubjectΚατανεμημένα συστήματαel
SubjectVideo processingen
SubjectΕπεξεργασία βίντεοel
SubjectΝέφοςel
SubjectClouden
SubjectApache Flinken
SubjectApache Kafkaen
Bibliographic CitationDimitrios 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
Bibliographic CitationΔημήτριος Καστρινάκης, "Επεξεργασία βίντεο σε πραγματικό χρόνο σε περιβάλλον Apache FLINK στο Υπολογιστικό Νέφος", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2022el

Available Files

Services

Statistics