Έμβλημα Πολυτεχνείου Κρήτης
Το Πολυτεχνείο Κρήτης στο Facebook  Το Πολυτεχνείο Κρήτης στο Instagram  Το Πολυτεχνείο Κρήτης στο Twitter  Το Πολυτεχνείο Κρήτης στο YouTube   Το Πολυτεχνείο Κρήτης στο Linkedin

Νέα / Ανακοινώσεις / Συζητήσεις

Παρουσίαση Διπλωματικής Εργασίας κας Όλγας Τσίρου - Σχολή ΗΜΜΥ
Αναγνώσεις: 144 / Συνδρομές: 0

  • Συντάχθηκε 28-01-2026 07:49 Πληροφορίες σύνταξης

    Ενημερώθηκε: -

    Τόπος:
    Σύνδεσμος τηλεδιάσκεψης
    Έναρξη: 04/02/2026 15:00
    Λήξη: 04/02/2026 16:00

    ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ
    Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
    Πρόγραμμα Προπτυχιακών Σπουδών

    ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ

    Όλγας Τσίρου

    με θέμα

    Αναγνώριση αντικειμένων σε ροές βίντεο
    Object detection in video streams

    Εξεταστική Επιτροπή
    Καθηγητής Ευριπίδης Πετράκης (επιβλέπων)
    Καθηγητής Μιχάλης Ζερβάκης
    Καθηγητής Μιχαήλ Λαγουδάκης

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

    Abstract 
    In this thesis, we present a distributed video processing system, built with Apache Flink and Apache Kafka, and deployed on the cloud using the Kubernetes orchestration platform. The system performs object detection using the YOLOv5 model and defines object trajectories for multiple streaming or batch video sources. The goal of implementing this system is to observe whether such a system is feasible on Apache Flink. Additionally, we aim to explore the performance, both in terms of theoretical expectations and practical benchmarks. Our focus will be on assessing the accuracy of the results and evaluating the speed of the system. Leveraging the distributed stream processing capabilities of Apache Flink and Apache Kafka as an intermediate message broker, this system uses the object detection model alongside simple computer vision algorithms for merging detections across blocks and centroid-based tracking to assign objects to trajectories. These are all implemented using the dataflow model that Flink provides. Hence, both the model and the algorithms are implemented within a Flink operator. In order to achieve the full utilization of the distributed architecture, each frame is split into fixed sized blocks, which are distributed and processed by a number of different Flink operators. Initially, the blocks are almost evenly distributed to multiple partitions of an input topic in Kafka. Then equal number of Flink pipelines consume the blocks in parallel. In the first stage, each block is processed by the YOLOv5 model, in order to extract the detected object data. This process results in the bounding box coordinates, centroid, class id and probability of each object detected in the blocks. Then, all detected components from blocks belonging to the same frame are grouped, and merged into frame-level objects. In the last stage of the pipeline, all objects from each frame are concentrated in an operator responsible for creating the trajectory of each object present in the video. When every frame of the video has been processed, the extracted trajectories are announced to another Kafka topic. The application is deployed as a Flink cluster on top of a Kubernetes one, using the Flink Kubernetes Operator. Experimenting in a 7 machine environment, we observed that the system both scales and outperforms a single machine monolith implementation, while providing accurate motion patterns for each video. In fact, the Flink application, configured with a parallelism setting of 7, attained a speedup of 4.7x compared to the Flink application with a parallelism setting of 1, which simulates a serial implementation with accurate trajectory extraction.

    Meeting ID: 613 764 0471
    Password: 582678



© Πολυτεχνείο Κρήτης 2012