Για να καταλάβουμε το Computer Vision, χρειάζεται πρώτα να δούμε πώς «βλέπει» ένας υπολογιστής. Μια ψηφιακή εικόνα είναι ένα πλέγμα από μικρά τετραγωνάκια που λέγονται pixels. Κάθε pixel έχει μια τιμή φωτεινότητας (σε ασπρόμαυρη εικόνα) ή τρεις τιμές χρώματος (RGB: κόκκινο, πράσινο, μπλε). Άρα, αυτό που για εμάς είναι ένα αντικείμενο (π.χ. ένας σκύλος), για τον υπολογιστή είναι ένας μεγάλος πίνακας αριθμών.
Μια δεύτερη βασική έννοια είναι τα χαρακτηριστικά (features). Για να καταλάβει τι υπάρχει σε μια εικόνα, ο υπολογιστής προσπαθεί να εντοπίσει μοτίβα όπως άκρα (edges), γωνίες, υφές και σχήματα. Για παράδειγμα, η μετάβαση από σκούρο σε φωτεινό χρώμα μπορεί να δείχνει το περίγραμμα ενός αντικειμένου. Παλιότερες μέθοδοι βασίζονταν πολύ σε τέτοια «χειροποίητα» χαρακτηριστικά, ενώ σήμερα συχνά τα χαρακτηριστικά μαθαίνονται αυτόματα.
Εδώ μπαίνουν τα νευρωνικά δίκτυα και ειδικά τα Convolutional Neural Networks (CNNs), που είναι πολύ διαδεδομένα στο Computer Vision. Τα CNNs εφαρμόζουν “φίλτρα” πάνω στην εικόνα για να ανακαλύψουν σταδιακά από απλά στοιχεία (όπως άκρα) πιο σύνθετα (όπως μάτια, ρόδες, πρόσωπα). Με πολλή εκπαίδευση σε δεδομένα, το μοντέλο βελτιώνει την ικανότητά του να αναγνωρίζει σωστά.
Τέλος, είναι σημαντικό να ξεχωρίσουμε 3 βασικά προβλήματα:
-
Ταξινόμηση (classification): τι δείχνει η εικόνα συνολικά;
-
Εντοπισμός (detection): πού βρίσκεται το αντικείμενο (π.χ. με ένα πλαίσιο);
-
Τμηματοποίηση (segmentation): ποια pixels ανήκουν στο αντικείμενο, με ακρίβεια.
Αυτές οι έννοιες είναι η βάση για να κατανοήσουμε πώς χτίζονται σύγχρονες εφαρμογές Computer Vision και γιατί μερικές φορές κάνουν λάθη (π.χ. λόγω κακού φωτισμού, θολής εικόνας ή περιορισμένων δεδομένων).
