Page 52 - Linux Inside τ. 10

Linux Inside
52
OpenCV
Σ
ε αυτό το project σκοπός μας είναι να φτιάξουμε μία συ-
σκευή με βάση μία απλή Webcam που σαρώνει το χώρο
και μόλις αναγνωρίζει ένα πρόσωπο, επικεντρώνεται σε
αυτό. Θα βασιστούμε στο Arduino και στη βιβλιοθήκη
OpenCV, οπότε προτού ξεκινήσουμε θα δούμε συνοπτικά αυ-
τά τα δύο. Λόγω της μεγάλης έκτασης του project, δεν θα
γράψουμε εδώ τον κώδικά του, αλλά θα τον βρείτε έτοιμο για
εκτέλεση στο συνοδευτικό DVD.
Η ιστορία του Arduino
Το project ξεκίνησε στην Ivrea της Ιταλίας το 2005, προκεί-
μενου να αναπτυχθεί μία συσκευή για τους σπουδαστές, με
στόχο να έχει μικρότερο κόστος από εκείνο των συσκευών
που κυκλοφορούσαν στο εμπόριο εκείνη την περίοδο.
Οι δημιουργοί του, Massimo Banzi και David Cuartielles,
ονόμασαν τη συσκευή Arduino που στα Ελληνικά σημαίνει
«
Ισχυρός Φίλος».
Το Arduino βασίζεται σε έναν 8μπιτο μικροεπεξεργαστή
Atmel AVR με συμπληρωματικά στοιχεία για να διευκολυνθεί
η ενσωμάτωση του σε άλλα κυκλώματα. Τα επίσημα Arduino
έχουν βγει στην αγορά με τους μικροεπεξεργαστές
ATmega8, ATmega168, ATmega328, ATmega1280 και
Atmega2560.
Μερικές από τις κονσόλες Arduino που έχουν κυκλοφορή-
σει είναι τα Arduino Uno, Arduino LilyPad, Arduino Mega,
Arduino Nano.
Εκτός από το «μητρικό» κύκλωμα του Arduino έχουν κυκλο-
φορήσει επίσημα και ανεπίσημα πρόσθετα για την ανάπτυξη
διάφορων λειτουργιών, για παράδειγμα, τα Arduino Ethernet
Shield, Arduino BlueTooth, οθόνες LCD και αισθητήρες για
όλες τις εφαρμογές.
Από τον Μάιο του 2011 κυκλοφορούν «ελεύθερες» περισ-
σότερες από 300.000 συσκευές Arduino.
Η βιβλιοθήκη OpenCV
Η OpenCV (Open source Computer Vision) είναι μία βιβλιο-
θήκη προγραμματιστικών συναρτήσεων που ως σκοπό έχει
την ανάλυση εικόνων, στατικών ή δυναμικών, σε πραγματικό
χρόνο. Αναπτύχθηκε από την Intel και τώρα υποστηρίζεται
από τη Willow Garage, μία εταιρεία έρευνας και ανάπτυξης
ρομποτικών συστημάτων.
Η πρώτη «alpha» έκδοση του OpenCV δόθηκε στο κοινό το
2000
στο συνέδριο IEEE. Ύστερα από αυτό, πέντε εκδόσεις
κυκλοφορήσαν στο διάστημα 2001 με 2005. Το 2006 εμφανί-
ζεται η πρώτη έκδοση 1.0 και εν συνεχεία, τον Οκτώβριο του
2008,
δόθηκε στο κοινό η έκδοση 1.1 με δυνατότητες για χρή-
ση σε διαφορετικά προγραμματιστικά περιβάλλοντα, όπως
Ruby, C(++), C#, Python και Java, ώστε να προτρέψει το
κοινό στην ανάπτυξη της βιβλιοθήκης.
Ας περάσουμε στην υλοποίηση... Το project θα το χωρίσου-
με σε δύο μέρη:
Το μέρος του hardware
Το μέρος του software
Για την υλοποίηση του project από την πλευρά του
hardware θα χρειαστούμε:
Ένα Arduino ( Uno )
Μία USB Web Camera
Δυο Servo κινητήρες
Αρκετά κομμάτια του project χρειάζονται συναρμολόγηση,
αλλά μην τρομάζετε, το συγκεκριμένο άρθρο απευθύνεται σε
άτομα που δεν διαθέτουν ειδικά εργαλεία. Προς το παρόν μία
πένσα νομίζω πως θα ήταν χρήσιμη, όχι όμως απαραίτητη.
Για αρχή, αν δεν έχουμε έρθει σε επαφή παλιότερα με το
Arduino, ας το κρατήσουμε στο χέρι μας. Όπως μπορούμε να
δούμε, το Arduino αποτελείται από εισόδους και εξόδους,
αναλογικές και ψηφιακές, μία θύρα USB και μία είσοδο τρο-
φοδοσίας σε περίπτωση που θέλουμε να του βάλουμε μπατα-
ρία ώστε να λειτουργήσει χωρίς να το έχουμε στο ρεύμα.
Μπορούμε να δούμε στη μία πλευρά τις αναλογικές εισόδους
(
Α0-Α5) και στην απέναντι πλευρά τις ψηφιακές και PWM ει-
σόδους και εξόδους. Ακολουθώντας την
εικόνα 2
,
συνδέου-
με τους δύο Servo κινητήρες στο Arduino και στη συνέχεια
χρησιμοποιούμε μία ταινία διπλής όψης για να κολλήσουμε
τον έναν Servo κινητήρα με τον άλλο. Αφού τελειώσουμε τη
σταθεροποίηση των κινητήρων, εφαρμόζουμε τη Web camera
στον Servo κινητήρα, όπως βλέπουμε στην
εικόνα 1.
Αφοί ολοκληρώσουμε τη συναρμολόγηση του Arduino,
περνάμε στην εγκατάσταση των προγραμμάτων και των βι-
βλιοθηκών που μας χρειάζονται. Για αρχή λοιπόν, κατεβάζου-
με τον Επεξεργαστή Κώδικα για το Arduino από την επίσημη
σελίδα. Κατεβάζουμε το αρχείο, το αποσυμπιέζουμε και το
μεταφέρουμε στην επιφάνεια εργασίας. Μπαίνουμε στο φά-
Του Ιωάννη Στυλιανάκου <stilia.johny@gmail.com>
Projects – Face Tracking
Χρησιμοποιήστε το Arduino και τη Web κάμερά σας για να φτιάξετε
μία συσκευή που αναγνωρίζει και παρακολουθεί το πρόσωπό σας!
KΩΔΙΚΑΣ
ΣΤΟ DVD
Ο Γιάννης περνά την ώρα του μοιραζόμενος τις γνώσεις του με άλλους και μαθαίνοντας καινούργια πράγματα.
Face Tracking με τη Web κάμερα!
Συνδεσμολογία. Μη βάλετε φωτιά στο σπίτι!
1