Nowadays, Digital Image Processing and Computer Vision have significantly evolved and have found their applications in almost every sector. Autonomous cars perceive the world around them through their optical sensors, medical imaging data are processed to extract conclusions about pathological conditions, the production line is monitored to detect abnormalities, and these are only a few examples of Computer Vision penetration in our everyday reality. At the same time, the distributed sensor networks in the concept of Internet of Things have an increasing presence in everyday life. However these devices usually don’t have sufficient computing power to execute complex and resource-demanding algorithms, such as Computer Vision ones. The classical approach for IoT systems is to create code flows and execute them on a remote host, but an automated approach would be even more interesting, using graphical building blocks, that will allow people of all specialties to create Machine Vision pipelines. In this diploma thesis, a system for developing digital image processing pipelines on a low code environment is created, that allows the pipelines to be executed remotely with the use of IoT protocols. For the graphical user interface of the application the Node-RED framework is selected, and a package is developed for it, in which each node requests the remote computation of a digital image processing algorithm. Furthermore, an image processing server is created, that executes the corresponding algorithms based on OpenCV and skimage libraries, and is also responsible for encoding and decoding the data between one form to be transmitted through the network and one form that is understood by the algorithms. The two entities communicate with each other through MQTT brokers, and can also be accessed externally. Finally, the system was tested through a number of pipelines of increasing size, that processed a single image, as well as a sequence of images. Also, a time analysis of the various processing stages was performed.
Static Analysis of Python code and Identification of Potential Security Vulne...
Development of a system for designing remote digital image processing pipelines in a graphical way
1. 1
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Ανάπτυξη υποδομής για
δημιουργία ροών απομακρυσμένης
επεξεργασίας εικόνας
με γραφικό τρόπο
Διπλωματική Εργασία
Εκπόνηση:
Θεοδώρα Μιχαηλίδου
9067
Επίβλεψη:
Ανδρέας Συμεωνίδης
Καθηγητής
Εμμανουήλ Τσαρδούλιας
Ερευνητής
2. 2
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Κίνητρο
• Μηχανική Όραση: Απαιτητικοί
αλγόριθμοι
• IoT: Συσκευές χωρίς ή με μικρή
υπολογιστική ισχύ
• Low-Code: Γραφικός
προγραμματισμός
3. 3
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Στόχος της διπλωματικής
• Δημιουργία pipelines επεξεργασίας εικόνας / μηχανικής όρασης
• Γραφικός τρόπος
• Απομακρυσμένη εκτέλεση, σε υπολογιστή με αρκετή υπολογιστική
ισχύ
• Επικοινωνία: Πρωτόκολλα IoT
4. 4
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Παρόμοια εργαλεία
• Thingsboard, StreamPipes, κ.α.
• Συλλογή, ανάλυση IoT δεδομένων, flow-based
• Όχι δεδομένα εικόνας
• JIPipe, Zebra Aurora Vision Studio, OpenCV-flow, κ.α.
• Ροές επεξεργασίας εικόνας σε γραφικό περιβάλλον
• Όχι απομακρυσμένη εκτέλεση
• Όχι είσοδος δεδομένων από εξωτερικές πηγές, πχ με πρωτόκολλα IoT
5. 5
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Τεχνολογίες που χρησιμοποιήθηκαν
6. 6
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Αρχιτεκτονική του συστήματος
• Node-RED
• Μεσίτης MQTT
• Server επεξεργασίας
εικόνας
• Εξωτερική πηγή
δεδομένων, πχ κάμερα
αυτόνομου αυτοκινήτου
Επικοινωνία
• Βασισμένη σε broker
• Με topics
• Request / Response
7. 7
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Διεπαφή χρήστη
8. 8
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Διεπαφή χρήστη
• Πακέτο κόμβων
• 15 κατηγορίες
• ~60 κόμβοι
• Υλοποίηση σε JS
και HTML
9. 9
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Διεπαφή χρήστη
Κάθε κόμβος
• Είναι παραμετροποιήσιμος
• Δημιουργεί το αίτημα προς
τον server
• Λαμβάνει την απάντηση
• Την προωθεί στον επόμενο
κόμβο
10. 10
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Server επεξεργασίας εικόνας
• Σύνδεση και επικοινωνία
με τον broker MQTT
(commlib)
• Από-/Κωδικοποίηση των
δεδομένων
• Εκτέλεση συναρτήσεων
επεξεργασίας εικόνας
11. 11
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Server επεξεργασίας εικόνας - Κωδικοποίηση
Εικόνες, 2D πίνακες
• Για συμπίεση των δεδομένων, αλλά χωρίς απώλειες, και
• Για να μπορεί να εμφανιστεί στο Node-RED
• Κωδικοποίηση με PNG
• Δεδομένα κωδικοποιήσιμα σε JSON, λόγω commlib
• => όχι δυαδικά, όπως οι εικόνες
• Κωδικοποίηση σε Base64
Contour, ευθείες, κύκλοι κ.α.
• Απευθείας σε JSON
12. 12
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Πειράματα - Ροή 1
• Προσθήκη και αφαίρεση θορύβου
13. 13
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Πειράματα - Ροή 2
• Αναγνώριση λωρίδας κυκλοφορίας, πχ σε αυτόνομο αυτοκίνητο
• Δυνητικά επεξεργασία ακολουθίας χρονικά συσχετισμένων εικόνων
14. 14
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Πειράματα
- Ροή 3
• Κατάτμηση
πνευμόνων σε
αξονική
τομογραφία
• Ροή που
σχεδιάστηκε σε
paper του 2022
15. 15
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Πειράματα
- Ροή 3
• Κατάτμηση
πνευμόνων σε
αξονική
τομογραφία
• Ροή που
σχεδιάστηκε σε
paper του 2022
*Automated detection and segmentation of non-small cell lung cancer
computed tomography images, Sergey P. Primakov et al
16. 16
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Πειράματα
- Ροή 3
• Επανάληψη για
12 φέτες της
CT
• Με επανάληψη
για όλες
δημιουργείται
3D κατάτμηση
των πνευμόνων
17. 17
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Πειράματα – Μετρικές
Για κάθε κόμβο
• netTime: μεταξύ αποστολής του μηνύματος και λήψης της απάντησης από
το node-RED
• pyTime: συνολικής επεξεργασίας του μηνύματος στον python server
• funcTime: που αφορά αποκλειστικά τη συνάρτηση επεξεργασίας εικόνας
Για κάθε ροή
• totalTime: ο συνολικός χρόνος από την έναρξή της μέχρι το τέλος της
Έκτέλεση: 15 επαναλήψεις
18. 18
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Πειράματα – Συνθήκες
Server
Επεξεργασίας
Εικόνας
LAN
19. 19
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Αποτελέσματα
Ροή 1 Ροή 2
20. 20
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Αποτελέσματα
Ροή 3
Συνολικά
21. 21
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Συμπεράσματα
• Επιτυχής εκτέλεση μικρών και μεγάλων ροών επεξεργασίας εικόνας,
αλλά και ακολουθίας εικόνων με μικρό ρυθμό αποστολής
• Εξαγωγή χρονικών στατιστικών => συγκριτικά συμπεράσματα για
κόμβους, ροές
• ποιες διεργασίες ήταν πιο χρονοβόρες στον server
• ποια δεδομένα χρειάστηκαν πιο πολύ χρόνο από-/κωδικοποίησης
• ποια δεδομένα χρειάστηκαν πιο πολύ χρόνο για αποστολή στο δίκτυο
• Ο χρόνος επεξεργασίας αυξάνεται όσο αυξάνονται τα layers της
εφαρμογής (επεξεργασία στο server, απο-/κωδικοποίηση, μεταφορά
στο δίκτυο)
22. 22
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Μελλοντικές επεκτάσεις
• Περισσότεροι κόμβοι
• με προεκπαιδευμένα μοντέλα μηχανικής μάθησης, πχ tiny-YOLO, MediaPipe
• για πράξεις μεταξύ των Ν προηγούμενων frame (χρονικά συσχετισμένα
frames)
• Αύξηση του ρυθμού επεξεργασίας ενός frame
• Πολλαπλά νήματα με νεότερη έκδοση της commlib
• Πολλαπλοί server και δυναμική κατανομή των μηνυμάτων
• Αποστολή όλου του γράφου επεξεργασίας μαζί
=> Μείωση του χρόνου δικτύου
• Προσαρμογή του Node-RED ώστε κάθε χρήστης να έχει το δικό του
περιβάλλον εργασίας
23. 23
Ανάπτυξη υποδομής για δημιουργία ροών απομακρυσμένης επεξεργασίας εικόνας
με γραφικό τρόπο
Μάρτιος 2023
Ευχαριστώ για την προσοχή σας!
Ερωτήσεις;
Θεοδώρα Μιχαηλίδου