background image

μένου. Για παράδειγμα, εάν το κατά προσέγγιση περίγραμμα έχει τρεις κορυφές,

τότε πρέπει να είναι ένα τρίγωνο. Εάν ένα περίγραμμα έχει τέσσερις κορυφές, τότε

πρέπει να είναι είτε τετράγωνο είτε ορθογώνιο. Για να προσδιοριστεί ποιό από τα

δύο είναι, υπολογίζεται η αναλογία διαστάσεων του σχήματος, που είναι το πλάτος

του πλαισίου οριοθέτησης του περιγράμματος διαιρούμενο με το ύψος. Εάν ο λόγος

διαστάσεων είναι περίπου 1.0 τότε είναι τετράγωνο (αφού όλες οι πλευρές έχουν

περίπου ίσο μήκος) αλλιώς το σχήμα είναι ορθογώνιο. Εάν ένα περίγραμμα έχει

πέντε κορυφές, τότε θεωρείται ως πεντάγωνο. Διαφορετικά, με τη διαδικασία της

εις άτοπον επαγωγής το σχήμα που εξετάζεται είναι ένας κύκλος. Στο τέλος της

διαδικασίας στο παράθυρο εντοπισμού των αντικειμένων σχεδιάζεται το πλαίσιο

οριοθέτησης συνοδευόμενο από το όνομα του σχήματος, τις συντεταγμένες κέντρου

και τη γωνία που σχηματίζεται.

3.2.3

Εντοπισμός και αναγνώριση των αντικειμένων με τον αλγόριθμο Yolo

Η λειτουργία που ακολουθεί στον σενάριο του κώδικα μηχανικής όρασης είναι

η αναγνώριση του είδους των αντικειμένων. Όπως έχει προαναφερθεί αυτό επιτυγ-

χάνεται με τη χρήση του αλγόριθμου αναγνώρισης αντικειμένων YOLO v3. Για την

εκτέλεσή του δεν απαιτείται κάποιου είδους εγκατάσταση του αλγόριθμου στο σύ-

στημα παρόλα αυτά, θα πρέπει να υπάρχει ένα framework στο οποίο θα εκτελεστεί.

Μερικά από τα ευρύτερα χρησιμοποηθέντα frameworks που είναι συμβατά με

τον αλγόριθμό είναι το Darknet, το Darflow και η OpenCV. Στη παρούσα υλοποί-

ηση, επιλέχθηκε να χρησιμοποιηθεί η OpenCV. Η επιλογή αυτή προέκυψε διότι, η

χρήση της είναι απαραίτητη από όλες τις υπόλοιπες λειτουργίες εντοπισμού και

αναγνώρισης αντικειμένων που έχουν αναπτυχθεί. Παράλληλα, καλύπτει επαρκώς

τις απαιτήσεις του συστήματος όσο αφορά το χρόνο αναγνώρισης αντικειμένων και

τέλος υποστηρίζει απευθείας τη Python χωρίς τη ανάγκη ενδιάμεσων Python ports.

Έτσι, επιτυγχάνεται η ύπαρξη ενός καθολικού framework για το σενάριο του κώ-

δικα μηχανικής όρασης αποφεύγοντας περαιτέρω εγκατάσταση νέων frameworks

αποκλειστικού σκοπού.

Προκειμένου να εκτελεστεί ο αλγόριθμός απαιτείται αρχικά να φορτωθούν τρία αρ-

χεία. Τα αρχεία αυτά είναι το yolov3.weights, το yolov3.cfg και το coco.names. Το

111