• Nenhum resultado encontrado

ΑΝΑΛΥΣΗ, ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗΝ ΑΝΙΧΝΕΥΣΗ ΤΥΧΑΙΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΤΗ ΒΟΗΘΕΙΑ ΤΩΝ ΕΙΚΟΝΩΝ ΠΟΥ ΛΑΜΒΑΝΟΝΤΑΙ ΑΠΟ ΣΥΣΤΗΜΑ ΟΡΑΣΗΣ

N/A
N/A
Protected

Academic year: 2023

Share "ΑΝΑΛΥΣΗ, ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗΝ ΑΝΙΧΝΕΥΣΗ ΤΥΧΑΙΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΤΗ ΒΟΗΘΕΙΑ ΤΩΝ ΕΙΚΟΝΩΝ ΠΟΥ ΛΑΜΒΑΝΟΝΤΑΙ ΑΠΟ ΣΥΣΤΗΜΑ ΟΡΑΣΗΣ"

Copied!
186
0
0

Texto

(1)

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι.) ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΜΕΑΣ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΑΝΑΛΥΣΗ, ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗΝ ΑΝΙΧΝΕΥΣΗ ΤΥΧΑΙΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΤΗ ΒΟΗΘΕΙΑ ΤΩΝ ΕΙΚΟΝΩΝ ΠΟΥ ΛΑΜΒΑΝΟΝΤΑΙ ΑΠΟ ΣΥΣΤΗΜΑ ΟΡΑΣΗΣ

Πτυχιακή Εργασία Ξενιτίδη Παρασκευά (ΑΕΜ: 381)

Επιβλέπων: Δρ. Θεόδωρος Παχίδης, Επίκουρος Καθηγητής

ΚΑΒΑΛΑ, ΑΠΡΙΛΙΟΣ 2012

(2)

2

(3)

3

Ευχαριστίες

Θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή της πτυχιακής μου εργασίας, Δρ.

Θεόδωρο Παχίδη, τόσο για την ανάθεση του θέματος όσο και για την εμπιστοσύνη και βοήθειά του κατά την εκπόνηση της πτυχιακής εργασίας. Τον ευχαριστώ για όλες τις χρήσιμες συμβουλές του και για την εύστοχη καθοδήγηση σε όλα τα θέματα που προέκυψαν καθ’ όλη τη διάρκεια

εκπόνησης της πτυχιακής εργασίας.

Θα ήθελα επίσης να ευχαριστήσω την Ελένη Χριστοδούλου, για την υποστήριξη και βοήθειά της.

Τέλος, ευχαριστώ τους ανθρώπους της οικογένειας μου για την υπομονή, την εμπιστοσύνη

και τη στήριξή τους όλα αυτά τα χρόνια.

(4)

4

(5)

5

Πίνακας Περιεχομένων

Περίληψη ... 13

Abstract ... 15

Κεφάλαιο 1 Εισαγωγή ... 17

Κεφάλαιο 2 Προηγούμενη έρευνα ... 19

Κεφάλαιο 3 Μηχανική όραση ... 23

3.1 Χρήση ... 24

3.2 Εφαρμογές και συστήματα ... 25

Κεφάλαιο 4 Λογισμικό μηχανικής όρασης ... 27

4.1 Τεχνικές τμηματοποίησης εικόνων ... 33

4.1.1 Κατωφλίωση ιστογράμματος ... 34

4.1.2 Αναγνώριση ακμών ... 35

4.1.3 Μεγέθυνση περιοχής ... 38

4.1.4 Τμηματοποίηση με χρήση νευρωνικών δικτύων ... 39

4.2 Μέθοδος τμηματοποίησης για την ανάπτυξη λογισμικού εύρεσης αντικειμένων ... 39

Κεφάλαιο 5 OpenCV ... 41

5.1 Γενικά... 41

5.2 Προέλευση ... 42

5.3 Χρήση ... 43

(6)

6

5.4 Αρχιτεκτονική ... 44

5.5 Emgu ... 46

Κεφάλαιο 6 Λογισμικό εντοπισμού αντικειμένων ... 47

6.1 Γενικές Προδιαγραφές ... 47

6.2 Μέθοδος τμηματοποίησης και αναγνώρισης αντικειμένων ... 47

6.3 Τεχνικά χαρακτηριστικά ... 49

6.4 Εγκατάσταση και ρύθμιση του OpenCV ... 50

6.5 Εγκατάσταση Emgu ... 55

6.6 Ρύθμιση Visual Studio .NET. ... 60

6.7 Δημιουργία εφαρμογής ... 61

6.8 Χρήση ... 64

6.9 Λειτουργία ... 71

6.10 Αποτελέσματα ... 79

6.11 Αρχιτεκτονική ... 87

Κεφάλαιο 7 Συμπεράσματα ... 93

7.1 Γενικά... 93

7.2 Μελλοντική εργασία ... 94

Βιβλιογραφία – Πηγές ... 97

ΠΑΡΑΡΤΗΜΑ 1 – Εγχειρίδιο εγκατάστασης εφαρμογής ... 101

(7)

7

ΠΑΡΑΡΤΗΜΑ 2 - Εγχειρίδιο χρήσης ... 107

ΠΑΡΑΡΤΗΜΑ 3 - Πηγαίος κώδικας ... 123

Form1.h : ... 123

help.h :... 146

about.h :... 148

ImageProcessor.h : ... 150

ImageProcessor.cpp : ... 152

Imcap.h : ... 174

Imcapwiz.h : ... 179

xmlwriter.h : ... 183

(8)

8

Ευρετήριο Εικόνων

Εικόνα 1 - Πεδία εφαρμογής. ... 24

Εικόνα 2 – Συγκριτική απόδοση της βιβλιοθήκης VXL [9]. ... 27

Εικόνα 3 – Η αρχιτεκτονική του VIRAT... 28

Εικόνα 4 – Δημιουργία εφαρμογής με το MeVisLab [19]. ... 29

Εικόνα 5 – Εντοπισμός γραμμών με την χρήση μετασχηματισμού Hough της βιβλιοθήκης IVT. ... 30

Εικόνα 6 – Χρησιμοποιώντας το Mocolo. ... 33

Εικόνα 7 – Βαθμίδα και κατεύθυνση μιας ακμής. ... 36

Εικόνα 8 – Τυπικά προφίλ ακμών. ... 36

Εικόνα 9 – Αναπαράσταση (α) μιας ακμής, (β) της πρώτης και (γ) δεύτερης παραγώγου της. ... 37

Εικόνα 10 – Αναγνώριση ακμών σε φωτογραφία. ... 37

Εικόνα 11 - Αρχιτεκτονική ... 41

Εικόνα 12 – Συστατικά. ... 45

Εικόνα 13 – Ιεραρχία κλάσεων Emgu. ... 46

Εικόνα 14 – Εκκίνηση οδηγού εγκατάστασης. ... 50

Εικόνα 15 – Άδεια χρήσης. ... 51

Εικόνα 16 – Συντομεύσεις και μεταβλητές περιβάλλοντος. ... 51

Εικόνα 17 – Επιλογή φακέλου εγκατάστασης. ... 52

Εικόνα 18 – Μενού «Έναρξη»... 52

(9)

9

Εικόνα 19 – Επιλογή συστατικών. ... 53

Εικόνα 20 – Εξέλιξη εγκατάστασης. ... 54

Εικόνα 21 – Ολοκλήρωση οδηγού εγκατάστασης. ... 54

Εικόνα 22 – Εκκίνηση οδηγού εγκατάστασης. ... 55

Εικόνα 23 – Αποδοχή άδειας χρήσης. ... 55

Εικόνα 24 – Επιλογή φακέλου εγκατάστασης. ... 56

Εικόνα 25 – Επιλογή εγγραφής στο μενού «Έναρξη»... 56

Εικόνα 26 – Επιλογή συστατικών. ... 57

Εικόνα 27 – Εγκατάσταση αρχείων. ... 57

Εικόνα 28 – Εκκίνηση εγκατάστασης C++ runtime. ... 58

Εικόνα 29 – Αποδοχή άδειας χρήσης. ... 58

Εικόνα 30 – Ολοκλήρωση εγκατάστασης του C++ runtime. ... 59

Εικόνα 31 – Ολοκλήρωση οδηγού εγκατάστασης. ... 59

Εικόνα 32 – Ρύθμιση Visual Studio .NET. ... 60

Εικόνα 33 – Ρύθμιση Visual Studio .NET (Βήμα 2). ... 60

Εικόνα 34 – Δημιουργία νέας εφαρμογής. ... 61

Εικόνα 35 – Επιλογή τύπου εφαρμογής. ... 62

Εικόνα 36 – Solution Explorer... 62

Εικόνα 37 – Ρυθμίσεις εφαρμογής. ... 63

(10)

10

Εικόνα 38 – Σύνδεση εφαρμογής με βιβλιοθήκες. ... 63

Εικόνα 39 – Ορισμός τύπου εκτελέσιμου. ... 64

Εικόνα 40 – Εγκατάσταση (Βήμα 1). ... 65

Εικόνα 41 – Εγκατάσταση (Βήμα 2). ... 65

Εικόνα 42 – Επιλογή φακέλου εγκατάστασης. ... 66

Εικόνα 43 – Εγγραφή μενού «Έναρξη». ... 66

Εικόνα 44 – Δημιουργία συντομεύσεων. ... 67

Εικόνα 45 – Επισκόπηση επιλογών εγκατάστασης. ... 67

Εικόνα 46 – Μεταφόρτωση εξαρτήσεων (Βήμα 1). ... 68

Εικόνα 47 – Μεταφόρτωση εξαρτήσεων (Βήμα 2). ... 68

Εικόνα 48 – Ολοκλήρωση εγκατάστασης. ... 69

Εικόνα 49 – Εκκίνηση εφαρμογής. ... 69

Εικόνα 50 – Άνοιγμα εφαρμογής. ... 70

Εικόνα 51 – Επιλογή solution file... 70

Εικόνα 52 – Μεταγλώττιση εφαρμογής. ... 71

Εικόνα 53 – Επιφάνεια εργασίας της εφαρμογής. ... 72

Εικόνα 54 – Επιλογή «Αρχείο». ... 73

Εικόνα 55 – Φόρτωση εικόνας. ... 73

Εικόνα 56 – Προεπισκόπηση εικόνας. ... 74

(11)

11

Εικόνα 57 – Μετρητές ελέγχου . ... 75

Εικόνα 58 – Λίστα γεωμετρικών χαρακτηριστικών. ... 75

Εικόνα 59 – Λήψη εικόνας από κάμερα. ... 76

Εικόνα 60 – Λήψη εικόνας. ... 76

Εικόνα 61 – Αναπαραγωγή του οπτικού πεδίου της κάμερας. ... 77

Εικόνα 62 – Αποθήκευση εικόνας. ... 78

Εικόνα 63 – Αυτόματη φόρτωση εικόνας από κάμερα. ... 78

Εικόνα 64 – Log Dialog. ... 79

Εικόνα 65 – Αποτελέσματα. ... 80

Εικόνα 66 – Αρχείο αποτελεσμάτων XML. ... 81

Εικόνα 67 – Αποτέλεσμα επεξεργασίας. ... 82

Εικόνα 68 – Επιλογή αντικειμένων. ... 83

Εικόνα 69 – Δείκτης Συντεταγμένων. ... 84

Εικόνα 70 – Σχεδίαση περιγραμμάτων. ... 84

Εικόνα 71 – Νέο αποτέλεσμα. ... 85

Εικόνα 72 – Αποτελέσματα. ... 86

Εικόνα 73 – Αποθήκευση αποτελεσμάτων. ... 86

Εικόνα 74 – Διάγραμμα συστατικών της εφαρμογής. ... 87

(12)

12

(13)

13

Περίληψη

Με τον όρο «μηχανική όραση» ή «όραση υπολογιστών» (computer vision) ονομάζεται η τεχνολογία που επιτρέπει την μετατροπή των δεδομένων από μια συσκευή όρασης (φωτογραφικές μηχανές, βιντεοκάμερες, σαρωτές και άλλες συσκευές), σε δυαδικά, ψηφιακά δεδομένα. Η μηχανική όραση ή όραση υπολογιστών είναι η τεχνολογία που, ουσιαστικά, επιτρέπει σε μηχανές να «βλέπουν», αφού από την στιγμή της αναπαράστασης μιας εικόνας με ψηφιακό τρόπο, είναι δυνατή η αλγοριθμική επεξεργασία και η εξαγωγή πληροφορίας και μετρικών. Εφαρμογές μηχανικής όρασης μπορούν να χρησιμοποιηθούν σε πληθώρα προβλημάτων της επιστήμης, της καθημερινής ζωής και τις βιομηχανικής παραγωγής. Η παρούσα εργασία αφορά τη θεωρητική και πρακτική μελέτη των δυνατοτήτων και των μεθόδων που έχουν προταθεί από την επιστημονική κοινότητα για την ανίχνευση τυχαίων αντικειμένων (τμηματοποίηση) από μια εικόνα απλή ή σύνθετη, μονόχρωμη ή έγχρωμη που λαμβάνεται με τη βοήθεια ενός συστήματος όρασης. Στα πλαίσια της μελέτης αυτής, αναπτύσσεται μια εφαρμογή λογισμικού που είναι σε θέση να χρησιμοποιήσει μεθόδους της ανοικτής βιβλιοθήκης OpenCV (μέσα σε μια εφαρμογή MS Visual C++ .NET) για την αναγνώριση και επεξεργασία των αντικειμένων μιας τέτοιας, ψηφιακής εικόνας.

Λέξεις – κλειδιά: OpenCV, μηχανική, τεχνητή όραση, ανίχνευση, τμηματοποίηση, MS, Visual,

C++, .NET

(14)

14

(15)

15

Abstract

Machine or Computer Vision is called the technology that converts data captured by a device such as camcorders, scanners etc, in binary, digital data. The machine vision or computer vision, essentially, allows machines to "see". A digital representation of an image is suitable for algorithmic processing and information retrieval. Machine vision applications can be used in many problems of science, everyday life and industry. This thesis involves the theoretical and practical study of the possibilities and methods have been proposed by the scientific community for the detection of random objects (segmentation) from a simple or complex image, monochrome or color obtained by using a vision system. As part of this study, a software application is developed that is able to use methods of open OpenCV library (in a MS Visual C++ .NET application) for recognition and processing of such items recognized in a digital image.

Keywords: OpenCV, machine, computer, artificial vision, detection, segmentation, MS, Visual,

C++, .NET

(16)

16

(17)

17

Κεφάλαιο 1 Εισαγωγή

Με τον όρο «μηχανική όραση» ή «όραση υπολογιστών» (computer vision) ονομάζεται η τεχνολογία που επιτρέπει την μετατροπή των δεδομένων από μια συσκευή όρασης (φωτογραφικές μηχανές, βιντεοκάμερες, σαρωτές και άλλες συσκευές), σε δυαδικά, ψηφιακά δεδομένα. Η μηχανική όραση ή όραση υπολογιστών είναι η τεχνολογία που, ουσιαστικά, επιτρέπει σε μηχανές να «βλέπουν», αφού από την στιγμή της αναπαράστασης μιας εικόνας με ψηφιακό τρόπο, είναι δυνατή η αλγοριθμική επεξεργασία και η εξαγωγή πληροφορίας και μετρικών. Εφαρμογές μηχανικής όρασης μπορούν να χρησιμοποιηθούν σε πληθώρα προβλημάτων της επιστήμης, της καθημερινής ζωής και τις βιομηχανικής παραγωγής.

Η παρούσα εργασία αφορά την θεωρητική και πρακτική μελέτη των δυνατοτήτων και των μεθόδων που έχουν προταθεί από την επιστημονική κοινότητα για την ανίχνευση τυχαίων αντικειμένων (τμηματοποίηση) από μια εικόνα απλή ή σύνθετη, μονόχρωμη ή έγχρωμη που λαμβάνεται με τη βοήθεια ενός συστήματος όρασης. Στα πλαίσια της μελέτης αυτής, αναπτύσσεται μια εφαρμογή λογισμικού που είναι σε θέση να χρησιμοποιήσει μεθόδους της ανοικτής βιβλιοθήκης OpenCV (μέσα σε μια εφαρμογή MS Visual C++ .NET) για την αναγνώριση και επεξεργασία των αντικειμένων μιας τέτοιας, ψηφιακής εικόνας.

Στο επόμενο κεφάλαιο, παρουσιάζονται συνοπτικά, σημαντικές επιστημονικές μελέτες πάνω στο ζήτημα της λήψης μιας ψηφιακής εικόνας με την χρήση ψηφιακών συσκευών και της επεξεργασίας της ώστε να αναγνωριστούν αντικείμενα πάνω σε αυτήν. Στο πέρασμα των χρόνων, έχει αναπτυχθεί μια πληθώρα μαθηματικών τεχνικών και ανάλογων αλγορίθμων που τις χρησιμοποιούν ώστε να αναγνωρίζονται αντικείμενα της φύσης μέσα σε μια ψηφιακή εικόνα. Κάθε τεχνική έχει τα ιδιαίτερα χαρακτηριστικά της, τους περιορισμούς αλλά και τα πλεονεκτήματα της.

Στο τρίτο κεφάλαιο, προσδιορίζεται το πεδίο μελέτης της μηχανικής όρασης και παρουσιάζονται οι βασικές έννοιες και αρχές που ακολουθούν όλες οι μέθοδοι επεξεργασίας.

Στο τέταρτο κεφάλαιο, παρουσιάζεται μια σειρά λογισμικών, που προσανατολίζονται, όπως και στην

OpenCV, στην ανάπτυξη εφαρμογών μηχανικής όρασης. Και εδώ παρουσιάζεται μια ποικιλία από

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

επιστημονικών μεθόδων επεξεργασίας της εικόνας. Επίσης, άλλα λογισμικά αναπτύσσονται από

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

(18)

18

προϊόντα που υποστηρίζονται από ομάδες ανάπτυξης μεγάλων εταιριών πληροφορικής. Αυτό έχει σαν αποτέλεσμα τις διαφοροποιήσεις που παρατηρούνται στην απόδοση και στην αρχιτεκτονική πολλών από αυτά τα λογισμικά. Στη τελευταία ενότητα του κεφαλαίου (4.2) αναφέρεται περιληπτικά η μέθοδος τμηματοποίησης που θα χρησιμοποιηθεί στο προς ανάπτυξη λογισμικό εντοπισμού αντικειμένων.

Στο πέμπτο κεφάλαιο, θα παρουσιαστεί η βασική πλατφόρμα ανάπτυξης που χρησιμοποιήθηκε στα πλαίσια αυτής της εργασίας. Πρόκειται για την εργαλειοθήκη OpenCV που αποτελεί μια από τις πιο δημοφιλείς και σημαντικές ανοικτές λύσεις λογισμικού για ανάπτυξη εφαρμογών τύπου Computer Vision.

Στο έκτο κεφάλαιο, θα παρουσιαστεί η ανάπτυξη μιας εφαρμογής που χρησιμοποιεί το λογισμικό OpenCV για τον εντοπισμό αντικειμένων σε μια εικόνα που ανακτήθηκε με την χρήση ενός συστήματος όρασης. Θα παρουσιαστούν οι γενικές προδιαγραφές, τα τεχνικά χαρακτηριστικά, η μέθοδος τμηματοποίησης, ο τρόπος χρήσης, λειτουργίας και εγκατάστασης καθώς και η αρχιτεκτονική της.

Στο έβδομο κεφάλαιο, γίνεται μια ανασκόπηση της θεωρητικής μελέτης καθώς και της πρακτικής

εφαρμογής στο περιβάλλον των τεχνολογιών OpenCV και MS Visual C++ .NET.

(19)

19

Κεφάλαιο 2 Προηγούμενη έρευνα

Στο [13] παρουσιάζεται ένα γενικευμένο πλαίσιο εργασίας (framework), με δυνατότητες εκπαίδευσης για την αναγνώριση σχημάτων από στατικές εικόνες υψηλής πολυπλοκότητας και ενδεχομένως με την παρουσία θορύβου ή παρεμβολών (cluttered). Η τεχνική εντοπισμού που χρησιμοποιείται στηρίζεται στην αναπαράσταση κυματομορφών (wavelet representation) ενός αντικειμένου του οποίου τα χαρακτηριστικά προκύπτουν από στατιστική ανάλυση ενός συνόλου από στιγμιότυπα αντικειμένων.

Το αντικείμενο εκπαιδεύεται με τη χρήση ενός λεξικού και συγκεκριμένα υποσυνόλων αυτού, με κυματομορφές βάσης. Αυτό με τη σειρά του δίνεται σαν είσοδος σε έναν ταξινομητή (classifier) τύπου support vector machine (SVM

1

). Η τεχνική αυτή έχει την δυνατότητα επέκτασης ώστε να μπορεί να εφαρμοστεί και σε ακολουθίες εικόνων, δηλαδή video.

Στο [1] μελετάται το πρόβλημα της ακριβούς αναγνώρισης σχημάτων σε πρακτικές εφαρμογές.

Προτείνεται ένας νέος αλγόριθμος που ονομάζεται «divide and conquer noise fuzzy c-shells clustering» (D&C-NFCS), και δοκιμάζεται η εφαρμογή του σε εφαρμογές που απαιτούν εντοπισμό κυκλικών και ελλειπτικών σχημάτων σε εικόνες που εμπεριέχουν θόρυβο και χωρίς την απαίτηση προηγούμενης γνώσης όσον αφορά τον ακριβή αριθμό από clusters.

Ο αλγόριθμος αυτός ανήκει στην κατηγορία των λεγόμενων unsupervised αλγορίθμων μάθησης και βασίζεται στον μετασχηματισμό Hough (HT), ο οποίος παρέχει αδρές αρχικές εκτιμήσεις των cluster prototypes και τα οποία στην συνέχεια χρησιμοποιούνται από τον fuzzy c-shells (FCS) αλγόριθμο.

Τα αποτελέσματα του HT μπορούν επίσης να χρησιμοποιηθούν ώστε τα απλά δεδομένα (raw data) να τμηματοποιηθούν και ο αλγόριθμος FCS να εφαρμοστεί και να εντοπίσει ένα cluster τη φορά.

Ο αλγόριθμος καταφέρνει να είναι αρκετά εύρωστος και να αντιπαρέρχεται τον θόρυβο που μπορεί να υπεισέρχονται στις εικόνες εισόδου. Αυτό επιτυγχάνεται με έναν άλλον μηχανισμό, τον

1 Support Vector Machine: Ένα support vector machine (SVM) είναι μια έννοια της στατιστικής και της επιστήμης των υπολογιστών, που περιλαμβάνει ένα σύνολο σχετιζόμενων, supervised μεθόδων μάθησης. Συνίστανται στην ανάλυση δεδομένων και στην αναγνώριση προτύπων, ώστε να χρησιμοποιηθούν στην ταξινόμηση και στην ανάλυση αναδρομών (regression analysis). Ένα τυπικό SVM παίρνει σαν είσοδο ένα σύνολο από δεδομένα εισόδου και προβλέπει, για κάθε είσοδο, την μια εκ των δύο πιθανών κατηγοριών που μπορεί να ανήκει το στοιχείο εισόδου. Αυτό σημαίνει πως ένα SVM μπορεί να είναι ένας μη-πιθανοτικός, δυαδικός, γραμμικός ταξινομητής.

(20)

20

αλγόριθμο ομαδοποίησης θορύβου (noise clustering algorithm). Πειράματα τα οποία διεξήχθησαν προκειμένου να μετρηθεί η αποτελεσματικότητα του αλγορίθμου έδειξαν πως είναι πολύ καλύτερος από τον απλό ΗΤ.

Στο [2] αναλύονται και συγκρίνονται τρείς μέθοδοι για αναγνώριση σχημάτων, που χρησιμοποιούνται στο πραγματικό πρόβλημα του εντοπισμού ναρκών. Αποδεικνύεται ότι εξαιτίας της ποικιλομορφίας και της πολυπλοκότητας του προβλήματος καμία από τις τρείς μεθόδους δεν μπορεί να επικρατήσει πλήρως των υπολοίπων, και συνεπώς καμία δεν μπορεί να απορριφθεί πλήρως.

Στο [3] μελετάται επίσης το πρόβλημα της αυτόματης, υπολογιστικής εκτίμησης της παρουσίας βασικών σχημάτων σε μια εικόνα. Αυτή τη φορά, χρησιμοποιείται όμως ένας γενετικός αλγόριθμος και συγκεκριμένα μια παραλλαγή ενός υπάρχοντος. Η μελέτη δείχνει πως η χρήση ενός γενετικού αλγορίθμου μειώνει κατά πολύ τον χρόνο που απαιτείται για την σάρωση ενός χώρου. Τα σχήματα- στόχοι που αναζητήθηκαν ήταν κυρίως κύκλοι και ελλείψεις circle.

Στο [4] παρουσιάζεται ένα καινοτόμο σύνολο από γνωρίσματα τύπου haar, τα οποία εμπλουτίζουν το βασικό σύνολο γνωρισμάτων και τα οποία μπορούν να υπολογιστούν αποδοτικά. Με την χρήση αυτών των γνωρισμάτων, ο εντοπισμός προσώπου που αναπτύχθηκε στα πλαίσια αυτής της μελέτης, παρατηρήθηκε μια μείωση της τάξης του 10% σε false alarm. Επίσης, παρουσιάζεται μια καινοτόμα διαδικασία βελτιστοποίησης, που ελαττώνει τα false alarm κατά 12.5% επιπλέον. Χρησιμοποιώντας και τις δύο τεχνικές, επιτυγχάνεται ποσοστό αναγνώρισης προσώπου της τάξης του 82.3%.

Στο [5] παρουσιάζεται μια μέθοδος μηχανικής μάθησης (machine learning) για τον εντοπισμό

οπτικών αντικειμένων. Η μέθοδος αυτή είναι σε θέση να επεξεργάζεται εικόνες ταχύτατα και να

επιτυγχάνει υψηλά ποσοστά επιτυχίας. Αυτή η αποδοτικότητα οφείλεται κυρίως σε τρεις

παράγοντες. Ο πρώτος είναι η εισαγωγή ενός νέου τύπου αναπαράστασης της εικόνας που

ονομάζεται από τους μελετητές «ολοκληρωματική εικόνα (Integral Image)». Αυτό το πρότυπο

επιτρέπει τα γνωρίσματα που χρησιμοποιεί ο αλγόριθμος εντοπισμού να υπολογίζονται πολύ

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

AdaBoost. Αυτός ο αλγόριθμος έχει την ιδιότητα να επιλέγει ένα μικρό αριθμό από κρίσιμα οπτικά

γνωρίσματα και να εκτελεί εξαιρετικά αποδοτικούς ταξινομητές.

(21)

21

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

ταξινομητές σε παράταξη (cascade) και η οποία επιτρέπει σε περιοχές φόντου της εικόνας να

αποβάλλονται τάχιστα από τους υπολογισμούς. Το cascade αυτό μπορεί να θεωρηθεί σαν ένας

μηχανισμός focus-of-attention που σε αντίθεση με άλλους παρόμοιους μηχανισμούς, μας παρέχει

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

κάποιο ενδιαφέρον αντικείμενο. Όσον αφορά τον εντοπισμό προσώπου, ο αλγόριθμος είναι

εξαιρετικά αποδοτικός.

(22)

22

(23)

23

Κεφάλαιο 3 Μηχανική όραση

Με τον όρο «μηχανική όραση» ή «όραση υπολογιστών» (computer vision) ονομάζεται η τεχνολογία που επιτρέπει την μετατροπή των δεδομένων από μια συσκευή όρασης (φωτογραφικές μηχανές, βιντεοκάμερες, σαρωτές και άλλες συσκευές), σε δυαδικά, ψηφιακά δεδομένα [6,7]. Η μηχανική όραση ή όραση υπολογιστών είναι η τεχνολογία που, ουσιαστικά, επιτρέπει σε μηχανές να

«βλέπουν», αφού από τη στιγμή της αναπαράστασης μιας εικόνας με ψηφιακό τρόπο, είναι δυνατή η αλγοριθμική επεξεργασία και η εξαγωγή πληροφορίας και μετρικών. Εφαρμογές μηχανικής όρασης μπορούν να χρησιμοποιηθούν σε πληθώρα προβλημάτων της επιστήμης, της καθημερινής ζωής και τις βιομηχανικής παραγωγής, όπως:

 Στον έλεγχο διαδικασιών (π.χ. ένα βιομηχανικό ρομπότ ή ένα αυτόνομο όχημα).

 Στην ανίχνευση συμβάντων (π.χ. επιτήρηση χώρων).

 Οργάνωση πληροφοριών (π.χ. ευρετηριοποίηση βάσεων δεδομένων και ακολουθιών εικόνων).

 Εξομοίωση αντικειμένων και περιβαλλόντων (π.χ. βιομηχανική επιθεώρηση, ιατρική ανάλυση εικόνας ή τοπογραφική εξομοίωση).

 Αλληλεπίδραση (π.χ. ως είσοδος σε μια συσκευή επικοινωνίας ανθρώπου / μηχανής).

Η μηχανική όραση μπορεί επίσης να περιγραφεί ως συμπλήρωμα (αλλά όχι απαραιτήτως αντίθετο) της βιολογικής όρασης. Στην τελευταία, μελετώνται η οπτική αντίληψη στους ανθρώπους και τα ζώα και καθορίζονται μοντέλα για το πώς αυτά τα συστήματα λειτουργούν υπό το πρίσμα των φυσιολογικών διαδικασιών. Η μηχανική όραση από την άλλη μελετά και περιγράφει το τεχνητά συστήματα όρασης που εφαρμόζονται σε λογισμικό ή/και σε υλικό υπολογιστών.

Η διεπιστημονική ανταλλαγή μεταξύ της βιολογικής και μηχανικής όρασης αποδεικνύεται όλο και

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

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

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

(24)

24

Ο ανθρώπινος εγκέφαλος διαχωρίζει το σήμα της όρασης σε πολλά κανάλια, τα οποία δίνουν διαφορετικά είδη πληροφοριών. Έχει ένα σύστημα αναγνώρισης το οποίο αναδεικνύει πια είναι τα σημαντικά τμήματα της εικόνας για εξέταση και μειώνει την σημασία των άλλων τμημάτων. Αυτό που είναι δεδομένο είναι ότι η διαδικασία της όρασης αποτελείται από πολύ σύνθετες παραμέτρους οι οποίες, μέχρι στιγμής, είναι ελάχιστα κατανοητές.

Εικόνα 1 - Πεδία εφαρμογής.

3.1 Χρήση

Η μηχανική όραση χρησιμοποιείται σε ένα πλήθος εφαρμογών στην επιστήμη και στην παραγωγή

αγαθών και υπηρεσιών. Μια από τις πιο πολλά υποσχόμενες εφαρμογές είναι στην ιατρική, με την

ψηφιακή επεξεργασία εικόνων ιατρικής φύσης (medical image processing). Αφορά την εξαγωγή

πληροφορίας από εικόνες που προέρχονται από ασθενείς, ώστε να υποβοηθηθεί η διάγνωση και η

θεραπεία ασθενειών. Γενικά, τα δεδομένα είναι εικόνες από μικροσκόπια, ακτινογραφίες,

αγγειογραφήματα, υπερηχογραφήματα και τομογραφίες.

(25)

25

Στην βιομηχανία, η μηχανική όραση βρίσκει άλλη μια εφαρμογή. Η πληροφορία εξάγεται με σκοπό την υποβοήθηση της παραγωγικής διαδικασίας σε μια γραμμή παραγωγής. Για παράδειγμα, στον έλεγχο ποιότητας (quality control), οι λεπτομέρειες του τελικού προϊόντος εξετάζονται με σκοπό να εντοπιστούν τυχόν ατέλειες.

Η μηχανική όραση πλέον χρησιμοποιείται κατά κόρον στα στρατιωτικά συστήματα. Η πλέον προφανής χρήση είναι στις περιπτώσεις εντοπισμού αντίπαλων στρατευμάτων και στην καθοδήγηση πυραύλων. Τα πλέον προηγμένα πυραυλικά συστήματα στέλνουν το πολεμικό υλικό όχι σε έναν συγκεκριμένο στόχο αλλά σε μια περιοχή, της οποίας η επιλογή γίνεται με βάση δεδομένα εικόνας που λαμβάνονται πριν την αποστολή του πολεμικού υλικού.

Πρόσφατα, η μηχανική όραση ξεκίνησε να εφαρμόζεται στην περίπτωση των αυτόματα κινούμενων οχημάτων, όπως φορτηγά, κινούμενα robot και αεροσκάφη (unmanned aerial vehicles - UAV). Ο βαθμός αυτονομίας αυτών των οχημάτων ποικίλει από ολοκληρωτικά αυτόνομα μέχρι οχήματα όπου το σύστημα όρασης λειτουργεί βοηθητικά ως προς τον οδηγό του οχήματος.

3.2 Εφαρμογές και συστήματα

Ένα σύστημα μηχανικής όρασης σχεδιάζεται κατά κύριο λόγο λαμβάνοντας υπόψη το πεδίο εφαρμογής της. Δηλαδή δεν υπάρχουν γενικού σκοπού εφαρμογές μηχανικής όρασης. Κάποια συστήματα είναι αυτόνομες εφαρμογές λογισμικού που επιλύουν ένα συγκεκριμένο πρόβλημα μέτρησης ή εντοπισμού κάποιου χαρακτηριστικού ενώ κάποιες άλλες αποτελούν υποσυστήματα μιας ευρύτερης κατασκευής.

Επίσης, έχει σημασία εάν η λειτουργικότητα του συστήματος είναι καθορισμένη εκ των προτέρων ή αν δύναται να μαθαίνεται από το σύστημα καθώς αυτό λειτουργεί. Κάποιες λειτουργίες απαντώνται σε ένα και μόνο σύστημα/εφαρμογή ενώ κάποιες άλλες μπορεί να είναι κοινές σε όλα ή στις περισσότερες εφαρμογές. Οι πιο συνηθισμένες λειτουργίες απαριθμούνται παρακάτω.

Ανάκτηση εικόνας. Μια ψηφιακή εικόνα παράγεται με τη βοήθεια ενός ή περισσότερων

συσκευών όρασης, που μπορεί να είναι από μια απλή web camera σαν αυτή που βρίσκεται

σε οποιονδήποτε φορητό υπολογιστή μέχρι τομογράφους, light-sensitive κάμερες, radar και

πολλά άλλα. Ανάλογα τον τύπο της συσκευής, η τελική εικόνα μπορεί να είναι δισδιάστατη ή

τρισδιάστατη, ή ακόμα και μια ακολουθία εικόνων [8].

(26)

26

Προεπεξεργασία. Πριν εφαρμοστεί μια μέθοδος στην εικόνα που δημιουργήθηκε, η εικόνα πρέπει να ελεγχθεί εάν τηρεί κάποιες βασικές προδιαγραφές που θέτει η προς εφαρμογή μέθοδος. Ο έλεγχος περιλαμβάνει λειτουργίες, όπως επαναληπτική δειγματοληψία (resampling) για να διασφαλιστεί ότι το σύστημα συντεταγμένων της εικόνας είναι το κατάλληλο. Επίσης περιλαμβάνει μείωση θορύβου (noise reduction) για να διασφαλιστεί η απουσία λανθασμένης και άχρηστης πληροφορίας. Τέλος, ενισχύονται οι αντιθέσεις (contrast) της εικόνας ώστε η ενδιαφέρουσα πληροφορία να γίνει ευκολότερα εντοπίσιμη.

Εξαγωγή χαρακτηριστικών. Χαρακτηριστικά που υπάρχουν μέσα στην εικόνα σε διάφορους βαθμούς λεπτομέρειας, εξάγονται από την εικόνα [8]. Τέτοια γνωρίσματα μπορεί να είναι σχήματα όπως γραμμές, ακμές, σημεία, γωνίες και πολλά άλλα.

Εντοπισμός και τεμαχισμός (τμηματοποίηση). Η εφαρμογή εφόσον εντοπίσει τα ενδιαφέροντα χαρακτηριστικά της εικόνας, τα αποκόβει από την υπόλοιπη εικόνα και τα προωθεί σε άλλα υποσυστήματα της εφαρμογής.

Επεξεργασία υψηλού επιπέδου. Σε αυτό το σημείο, η είσοδος είναι ένα μικρό σύνολο δεδομένων, για παράδειγμα ένα σύνολο σημείων ή μια περιοχή της εικόνας, ή ένα συγκεκριμένο αντικείμενο [8]. Ακολουθεί η επεξεργασία του συνόλου αυτού, όπως για παράδειγμα η εκτίμηση του μεγέθους του.

Αναγνώριση εικόνας. Ακολουθεί η κατηγοριοποίηση των αντικειμένων της εικόνας σε κάποιες προκαθορισμένες κατηγορίες.

Καταχώρηση εικόνας. Πρόκειται για τη σύγκριση και το συνδυασμό διαφορετικών όψεων των ίδιων αντικειμένων.

Λήψη αποφάσεων. Εκτίμηση σύμφωνα με την μέθοδο που εφαρμόστηκε. Για παράδειγμα,

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

πρότυπο.

(27)

27

Κεφάλαιο 4 Λογισμικό μηχανικής όρασης

Το λογισμικό VXL (Vision-something-Library) [9], είναι μια συλλογή βιβλιοθηκών, υλοποιημένων σε C++ που προορίζονται για χρήση από εφαρμογές μηχανικής όρασης. Πρόκειται για ένα έργο λογισμικού ανοικτού κώδικα και περιλαμβάνει υπο-βιβλιοθήκες που, ανάλογα τη χρήση τους, έχουν αλλαγμένο το χαρακτήρα «Χ».

Έτσι, υπάρχει η βιβλιοθήκη VGL που είναι μια βιβλιοθήκη γεωμετρικών κλάσεων και μεθόδων (εκ του «geometry»), η VNL είναι μια βιβλιοθήκη αριθμητικών μεθόδων (εκ του «numeric»), η VIL, που είναι μια βιβλιοθήκη επεξεργασίας εικόνας (εκ του «image processing»), η VSL (εκ του

«streaming I/O»), η VBL ( εκ του «basic templates») και η βιβλιοθήκη εργαλείων VUL ( εκ του

«utilities»).

Το λογισμικό VXL προήλθε από τα παλιότερα έργα λογισμικού TargetJr και IUE και έχει σαν σκοπό την ύπαρξη του σαν ένα ελαφρύ, γρήγορο και συνεκτικό σύστημα. Όπως προαναφέρθηκε, είναι υλοποιημένο σε ANSI/ISO C++ και σχεδιάστηκε ώστε να είναι φορητό και να μπορεί να χρησιμοποιηθεί από εφαρμογές που αναπτύσσονται σε διάφορες πλατφόρμες.

Εικόνα 2 – Συγκριτική απόδοση της βιβλιοθήκης VXL [9].

(28)

28

Εκτός από τις κύριες βιβλιοθήκες (core libraries), υπάρχουν και επιπλέον βιβλιοθήκες που ασχολούνται με αλγορίθμους αριθμητικών μεθόδων, επεξεργασία εικόνας, συστήματα ελέγχου, γεωμετρία κάμερας, video manipulation, πιθανοτική μοντελοποίηση, σχεδιασμό γραφικών διεπαφών χρήστη (GUI), ταξινόμηση, εύρωστο έλεγχο, εντοπισμό γνωρισμάτων (feature tracking), τοπολογία, τρισδιάστατη σχεδιοκίνηση και πολλά άλλα.

Κάθε βιβλιοθήκη είναι ελαφριά, από άποψη κατανάλωσης υπολογιστικών πόρων και αρκετά αυτόνομη, υπό την έννοια πως δεν απαιτείται αναφορά σε άλλες βιβλιοθήκες. Ομοίως, οι κύριες βιβλιοθήκες δεν εξαρτώνται παρά από τα απολύτως απαραίτητα, ώστε ο χρήστης να μπορεί να μεταγλωττίσει και να χρησιμοποιήσει μόνο ό,τι χρειάζεται. Η VXL αναπτύσσεται και χρησιμοποιείται από μια διεθνή κοινότητα ακαδημαϊκών και βιομηχανικών χρηστών και προγραμματιστών.

Το έργο λογισμικού VIRAT (Video Image Retrieval & Analysis Tool) είναι ένα project προσανατολισμένο στη βίντεο εποπτεία (video surveillance) που χρηματοδοτείται από τον οργανισμό Information Processing Technology Office (IPTO) που αποτελεί ένα τμήμα του DARPA (Defense Advanced Research Projects Agency) [10].

Εικόνα 3 – Η αρχιτεκτονική του VIRAT.

Ο σκοπός του προγράμματος είναι η δημιουργία μιας βάσης δεδομένων που να είναι σε θέση να

αποθηκεύσει τεράστιες ποσότητες αρχείων video και να κάνει εύκολη την αναζήτηση πάνω σε αυτό

(29)

29

με βάση «περιεχόμενο video που ενδιαφέρει τον χρήστη» (content-based searching). Επίσης, στοχεύει στην δημιουργία λογισμικού που να μπορεί να παρέχει έκτακτες ειδοποιήσεις (alerts) σε ευφυή συστήματα ελέγχου (για παράδειγμα «ένα άτομο εισήλθε στο κτίριο»).

Το λογισμικό MeVisLab [11,12] είναι ένα διαλειτουργικό (cross-platform) application framework, με προσανατολισμό την επεξεργασία ιατρικών εικόνων και την απεικόνιση επιστημονικών δεδομένων (scientific visualization). Περιλαμβάνει προχωρημένους αλγορίθμους καταγραφής εικόνων, τμηματοποίηση (segmentation), μορφολογική και λειτουργική ανάλυση εικόνας.

Εικόνα 4 – Δημιουργία εφαρμογής με το MeVisLab [19].

To MeVisLab έχει υλοποιηθεί σε C++ και χρησιμοποιεί το framework Qt

2

για την δημιουργία γραφικών διεπαφών χρήστη. Έχει σχεδιαστεί για να μπορεί να εκτελείται σε περιβάλλον Windows,

2 QT: Το Qt API ενσωματώνεται μέσω της βιβλιοθήκης PythonQt και επιτρέπει την πρόσβαση σε Qt Style Sheets, Qt Widgets, QT Core κλάσεις και άλλα μέσω scripting στο MeVisLab.

(30)

30

Linux και Mac OS X. Η ανάπτυξη του είναι κύρια ευθύνη των οργανισμών MeVis Medical Solutions AG και Fraunhofer MEVIS. Όσον αφορά τη διανομή του, υπάρχει μια freeware έκδοση του MeVislab SDK, υπάρχουν modules ανοικτού κώδικα που εντάσσονται στα MeVisLab Public Sources και είναι διαθέσιμα από το MeVisLab Community Sources Project. Το MeVisLab υποστηρίζει ένα πλήθος χαρακτηριστικών, μεταξύ των οποίων και αυτά που παρουσιάζονται παρακάτω [13,14].

Εικόνα 5 – Εντοπισμός γραμμών με την χρήση μετασχηματισμού Hough της βιβλιοθήκης IVT.

Επεξεργασία εικόνας (image processing). Η βιβλιοθήκη επεξεργασίας εικόνας (ML) είναι μια βιβλιοθήκη που έχει υλοποιηθεί σε C++. Είναι βασισμένη σε αιτήματα (request driven) και επεκτάσιμη. Υποστηρίζει επεξεργασία μέχρι έξι διαστάσεων (x, y, z, χρώμα, χρόνος, διαστάσεις χρήστη). Επίσης προσφέρει page cache και υψηλή απόδοση για μεγάλα σύνολα δεδομένων.

2D image viewing. Υποστηρίζονται αρθρωτοί (modular), γρήγοροι και επεκτάσιμοι δισδιάστατοι

(2D) viewers με συνδυασμένο 2D/3D rendering. Υποστηρίζεται slab rendering, overlays, επιλογή

(31)

31

point και ROI, Multiplanar Reformations (MPR), και διαδραστική επεξεργασία βασικών αντικειμένων (σημεία, vectors, δίσκοι, σφαίρες και άλλα).

Το λογισμικό IVT (Integrating Vision Toolkit) είναι μια ισχυρή και υψηλής ταχύτητας βιβλιοθήκη μηχανικής όρασης, υλοποιημένη σε C++. Ενσωματώνει μια εύκολη στη χρήση και την κατανόηση, αντικειμενοστραφή αρχιτεκτονική και προσφέρει το δικό του, διαλειτουργικό GUI toolkit. Η βιβλιοθήκη είναι διαθέσιμη σαν ελεύθερο (free) λογισμικό, κάτω από την άδεια χρήσης BSD. Η βιβλιοθήκη έχει γραφτεί αποκλειστικά σε ANSI C++ και συνεπώς μεταγλωττίζεται επιτυχώς από οποιονδήποτε σύγχρονο C++ compiler, όπως τις διάφορες εκδόσεις του Visual Studio και του gcc.

Όπως αναμένονταν, είναι διαλειτουργικό λογισμικό και μπορεί να εκτελεστεί σχεδόν σε οποιοδήποτε υπολογιστικό σύστημα προσφέρει ένα περιβάλλον με μεταγλωττιστή C++, όπως Windows, Mac OS X και Linux.

Το ενσωματωμένο GUI toolkit προσφέρει υλοποιήσεις για Windows (Win32 API), Linux (GTK), Mac OS X (Cocoa) και Qt. Η βιβλιοθήκη IVT αναπτύσσεται από ομάδα προγραμματιστών στο ίδρυμα Karlsruhe Institute of Technology (KIT). Η πρώτη έκδοση κυκλοφόρησε το 2005. Από το 2009, η βιβλιοθήκη IVT συντηρείται σε συνεργασία με την εταιρεία Keyetech. Τα σημαντικότερα γνωρίσματα της IVT είναι τα παρακάτω:

 Διεπαφή κάμερας και υλοποιήσεις για πλήθος καμερών, όπως IEEE1394, CMU1394, Unicap1394, USB webcams, V4L και VfW, Quicktime, PointGrey Dragonfly, Videre SVS και άλλες.

 Μοντέλα κάμερας (monocular και stereo).

 Camera calibration.

 Φίλτρα (Gaussian Smoothing, Sobel, Prewitt, Canny).

 Κατάτμηση χρώματος (HSV color space).

 Μετασχηματισμό Hough.

 Πράξεις σε σημεία (affine, thresholding).

(32)

32

 Αποπαραμόρφωση (undistortion).

 Rectification.

 Υπολογισμός ελάχιστων γραμμικών τετραγώνων.

 Δομές δεδομένων όπως μητρώα, διανύσματα, δυναμικούς πίνακες και δέντρα.

 POSIT.

 Ενσωματωμένο GUI toolkit, με υλοποιήσεις για διάφορες πλατφόρμες.

Το λογισμικό Mocolo [15] είναι ένα server λογισμικό ανάλυσης video, σχεδιασμένο για να εκτελείται σε περιβάλλον Microsoft Windows και το οποίο χρησιμοποιείται κυρίως σε διαδραστικές εφαρμογές. Παρακολουθεί (monitors) ροές video, εντοπίζει αλληλεπίδραση μεταξύ αντικειμένων, όπως παρουσία ή κίνηση και στέλνει τα αποτελέσματα της ανάλυσης σε client εφαρμογές, υπό την μορφή Open Sound Control (OSC) πακέτων.

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

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

οποιαδήποτε εφαρμογή λογισμικού χειρίζεται πακέτα OSC. Όπως προαναφέρθηκε, το λογισμικό

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

γραφικών του υπολογιστικού συστήματος στο οποίο εκτελείται (GPU). Έτσι επιτρέπει και την

ταυτόχρονη εκτέλεση άλλων client εφαρμογών.

(33)

33

Εικόνα 6 – Χρησιμοποιώντας το Mocolo.

4.1 Τεχνικές τμηματοποίησης εικόνων

Η τμηματοποίηση εικόνων [16] είναι ένα από τα πρωταρχικά βήματα στην ανάλυση εικόνων, κυρίως για την αναγνώριση αντικειμένων. Βασικός σκοπός είναι η αναγνώριση ομοιογενών περιοχών της εικόνας ως διακεκριμένων τμημάτων ή αντικειμένων.

Το πρόβλημα της τμηματοποίησης ή κατάτμησης εικόνων μπορεί να οριστεί σε ένα γενικό επίπεδο

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

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

επίπεδο, καθώς διαφορετικοί άνθρωποι μπορούν να κατατμήσουν την ίδια σκηνή με διαφορετικούς

τρόπους, όσο και σε χαμηλότερο, καθώς τα κριτήρια με τα οποία ορίζεται η ομοιογένεια των

περιοχών ποικίλουν από εικόνα σε εικόνα, ενώ είναι συχνά δύσκολη η διατύπωση και

ποσοτικοποίηση τους.

(34)

34

Η συνηθισμένη προσέγγιση θεωρεί ότι τα τμήματα της εικόνας μπορούν να ομαδοποιηθούν βάσει κάποιου χαρακτηριστικού χαμηλού επιπέδου, όπως η φωτεινότητα της εικόνας, το χρώμα, η υφή, ή η έξοδος μίας συστοιχίας φίλτρων. Τα κριτήρια που χρησιμοποιούνται στη διατύπωση των αλγορίθμων κατάτμησης βασίζονται στην ομοιογένειά των χαρακτηριστικών στο εσωτερικό των περιοχών που αναγνωρίζονται ή/και την ασυνέχειά τους εκατέρωθεν των ορίων τους, ενώ οι επιθυμητές λύσεις μπορούν να περιοριστούν εισάγοντας επιπλέον όρους που αφορούν το μήκος των διαχωριστικών γραμμών και την έκταση των περιοχών.

Πολλές είναι οι παράμετροι που συσχετίζονται με την τμηματοποίηση εικόνων. Σε γενικές γραμμές, βασικά θέματα στη τμηματοποίηση είναι η επιλογή της πιο κατάλληλης μεθόδου διαχωρισμού των αντικειμένων από το φόντο, η μέτρηση της απόδοσής της, καθώς και η κατανόηση της εφαρμογής της στην τελική ανάλυση της εικόνας. Στις παρακάτω παραγράφους αναλύονται οι βασικότερες μέθοδοι τμηματοποίησης της εικόνας.

4.1.1 Κατωφλίωση ιστογράμματος

Η κατωφλίωση (thresholding) είναι η απλούστερη μέθοδος τμηματοποίησης εικόνας. Από μια grayscale εικόνα, είναι δυνατή η παραγωγή μιας δυαδικής (binary) εικόνας. Οι μέθοδοι κατάτμησης ιστογράμματος (histogram-based methods) είναι πολύ αποδοτικές όταν συγκρίνονται με άλλες μεθόδους κατάτμησης εικόνας επειδή απαιτούν μόνο μια σάρωση όλων των pixel της εικόνας.

Σε αυτήν την τεχνική, κατασκευάζεται ένα ιστόγραμμα από όλα τα pixel στην εικόνα. Οι λεγόμενες

«κοιλάδες» και οι «κορυφές» στο ιστόγραμμα χρησιμοποιούνται για να εντοπίσουν τις συστάδες (clusters) στην εικόνα. Ως μέτρο μπορεί να χρησιμοποιηθεί το χρώμα ή η ένταση του κάθε pixel.

Όταν η κατάτμηση γίνεται μέσω χρώματος έχουμε μονοδιάστατο ιστόγραμμα της εικόνας για μονόχρωμες και πολυδιάστατο για έγχρωμες. Η γενικότερη λογική είναι ότι η ανίχνευση κορυφών ή κοιλάδων στο ιστόγραμμα, οδηγούν στην εύρεση αντικειμένων και φόντου αντίστοιχα.

Στις πολύχρωμες εικόνες, η διαδικασία είναι πιο περίπλοκη μιας που τα τρία ιστογράμματα του

χρωματικού δηλαδή χώρου R.G.B. (Red Green Blue – Κόκκινο Πράσινο Μπλε), μπορούν να

επεξεργαστούν χωριστά και να συνδυαστούν τα αποτελέσματα με στόχο να επικρατήσει η

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

μέσω του συνδυασμού απόχρωσής του.

(35)

35

Επίσης, οι αναπαραστάσεις H.S.V. (Ηue Saturation Value - Απόχρωση Κορεσμός Μέγεθος) και H.S.I. (Ηue Saturation Intensity - Απόχρωση Κορεσμός Ένταση) δίνουν το πλεονέκτημα της εύρεσης αντικειμένων με βάση την απόχρωση των χρωμάτων, αφού συνήθως τα αντικείμενα έχουν ομοιογενή χρώματα, ενώ με αυτό τον τρόπο, οι εναλλαγές σε φωτεινότητα λόγω προβλημάτων φωτισμού όπως σκιές, κυρτές και κοίλες επιφάνειες και άλλα, δεν επηρεάζουν το αποτέλεσμα.

Κοινό πρόβλημα σε τέτοιες τεχνικές είναι η παρουσία θορύβου, που θα εμφανίσει κορυφές στο ιστόγραμμα, έτσι η ομαλοποίηση (smoothing) του ιστογράμματος ως προεπεξεργασία του αλγορίθμου κατάτμησης ιστογράμματος, μερικές φορές είναι απαραίτητη.

Όταν η κατάτμηση γίνεται μέσω της φωτεινότητας του κάθε pixel τα πράγματα γίνονται αντιληπτά και λιγότερο σύνθετα. Μιλώντας για μια ασπρόμαυρη (gray-scale) εικόνα, όπου φαίνεται πιο καθαρά η έννοια της φωτεινότητας, κάθε αντικείμενο με σχετικά μεγάλο μέγεθος δημιουργεί μια κατανομή pixel στο ιστόγραμμα της εικόνας γύρω από τη μέση τιμή φωτεινότητάς του.

4.1.2 Αναγνώριση ακμών

Η αναγνώριση ακμών (edge detection) [16] χρησιμοποιείται ευρέως στην επεξεργασία εικόνας και στη μηχανική όραση, ιδιαίτερα στον εντοπισμό και εξαγωγή γνωρισμάτων (feature detection και feature extraction). Η μέθοδος συνίσταται στην αναγνώριση σημείων σε μια ψηφιακή εικόνα όπου η φωτεινότητα ή η χρωματικότητα παρουσιάζει έντονη διαφοροποίηση, ή πιο φορμαλιστικά, παρουσιάζει ασυνέχειες.

Η ακμή είναι μια τοπική ιδιότητα ενός συγκεκριμένου συνόλου εικονοστοιχείων και υπολογίζεται

από τη μεταβολή της εικόνας στη γειτονιά του εν λόγω συνόλου εικονοστοιχείων. Περιγράφεται από

ένα διάνυσμα δύο συνιστωσών: του μέτρου της βαθμίδας και του προσανατολισμού (γωνίας). Η

κατεύθυνση της βαθμίδας δίνει τη κατεύθυνση μεγιστοποίησης της μεταβολής.

(36)

36

Εικόνα 7 – Βαθμίδα και κατεύθυνση μιας ακμής.

Οι ακμές χρησιμοποιούνται συχνά στην ανάλυση εικόνων για την αναγνώριση ορίων περιοχών και αντικειμένων. Τα όρια είναι κάθετα στη κατεύθυνση της βαθμίδας της εικόνας στα αντίστοιχα σημεία. Στην παρακάτω εικόνα φαίνονται μερικά τυπικά προφίλ ακμών σε εικόνες

Εικόνα 8 – Τυπικά προφίλ ακμών.

Εφόσον οι ακμές αντιστοιχούν σε έντονες μεταβολές, γίνεται αντιληπτό ότι είναι δυνατό να

εντοπιστούν μέσω του υπολογισμού παραγώγων. Στην παρακάτω εικόνα δίνεται αναπαράσταση

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

της ακμής μπορεί να εντοπιστεί είτε από τη θέση της μέγιστης τιμής της πρώτης παραγώγου είτε από

τη θέση αλλαγής του πρόσημου της δεύτερης παραγώγου.

(37)

37

(α) (β) (γ)

Εικόνα 9 – Αναπαράσταση (α) μιας ακμής, (β) της πρώτης και (γ) δεύτερης παραγώγου της.

Οι ακμές που εξάγονται από μια δισδιάστατη ή μια τρισδιάστατη εικόνα μπορούν να χαρακτηριστούν είτε εξαρτημένες είτε ανεξάρτητες από την γωνία θέασης (viewpoint dependent ή viewpoint independent). Η ανίχνευση των ακμών μας είναι απαραίτητη για τη μορφολογική ανάλυση μίας εικόνας γιατί μας δίνει αίσθηση των ορίων των αντικειμένων που απεικονίζονται.

Με αυτόν τον τρόπο μπορεί στη συνέχεια να εφαρμοστεί κάποιος μετασχηματισμός όπως ο μετασχηματισμός Hough και να ανιχνευτούν ευθείες, κύκλοι και άλλα σχήματα. Οι ανιχνευτές ακμών μπορούν να ομαδοποιηθούν σε δύο κατηγορίες. Στις τοπικές τεχνικές, που χρησιμοποιούν τελεστές που δρουν σε τοπικές γειτονιές της εικόνας και καθολικές τεχνικές, που χρησιμοποιούν καθολική πληροφορία από όλη την εικόνα και μεθόδους φιλτραρίσματος για την εξαγωγή πληροφοριών από ακμές.

Εικόνα 10 – Αναγνώριση ακμών σε φωτογραφία.

Από τις καθολικές τεχνικές, πολύ ξεχωριστή είναι η χρήση της κλίσης της εικόνας, η οποία

βασίζεται στο γεγονός ότι οι ακμές έχουν οριστεί ως τοπικές μεταβολές της φωτεινότητας της

εικόνας και, συνεπώς, τεχνικές διαφόρισης της εικόνας είναι δυνατό να εξάγουν την απαραίτητη

Referências

Documentos relacionados

Υπό αυτές τις συνθήκες, η ίδια μπορεί να ανταποδόσει τα κακά που της έχει κάνει, αν και η στάση της είναι πρωτόγνωρη για την εποχή, δηλαδή η γυναίκα να λειτουργεί μ’ έναν ισότιμο τρόπο