Daily Archives: 2011-01-07


Τεχνολογία αναγνώρισης προσώπου στη beta έκδοση του DigiKam 2

Σύμφωνα με τους developers του οι επικείμενες εκδόσεις του DigiKam ενός προγράμματος διαχείρισης θα έχουν δυνατότητες εντοπισμού και αναγνώρισης προσώπων. Ήδη η δοκιμαστική  έκδοση 2.o.o beta 1 του DigiKam είναι διαθέσιμη με αυτές της δυνατότητες, χρηποιώντας την βιβλιοθήκη libface. Πλέον το DigiKam θα είναι σε θέση να αναγνωρίσει αν στην φωτογραφία που βλέπετε υπάρχουν πρόσωπα και αν συμβαίνει αυτό τα συγκρίνει με μια βάση δεδομένων που δημιουργεί σιγά-σιγά και με την βοήθεια σας στον υπολογιστή σας προκειμένου να “μαντέψει” το όνομα του προσώπου αυτού.

digikam2.0.0-19
Ουσιαστικά η προσθήκη δυνατοτήτων αναγνώρισης προσώπου στο DigiKam είναι η επίσημη πρώτη χρήση της βιβλιοθήκης libface. Μέχρι πρόσφατα τα περισσότερα project που προσπαθούσαν να κάνουν εντοπισμό και αναγνώριση προσώπου στο Linux ή τα ανοιχτού κώδικα project σε άλλα λειτουργικά συστήματα ουσιαστικά η μόνη τους λύση ήταν να χρησιμοποιήσουν το Open CV. Η βιβλιοθήκη libface από την άλλη γράφτηκε ως ενδιάμεσο μεταξύ του Open CV 2.o και του DigiKam με στόχο να κάνει εύκολη την προσθήκη ρουτινών αναγνώρισης προσώπων όχι μόνο για το DigiKam στο οποίο ήδη δοκιμάζεται και για άλλα ανοιχτού κώδικα project.


Βιβλίο για το parallel programming στο Linux (και όχι μόνο) 6

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

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

Πριν από λίγες μέρες (στις 2 του Γενάρη συγκεκριμένα) ο Paul E. McKenney υπάλληλος της ΙΒΜ στο Linux Technology Center της εταιρεία στο Beaverton και ενεργός στην ανάπτυξη του πυρήνα του Linux άρχισε ένα νέο project που μου κίνησε το ενδιαφέρον, ένα βιβλίο (e-book σε pdf για την ακρίβεια) με τίτλο “Is Parallel Programming Hard, And, If So, What Can You DoAbout It?”. Το βιβλίο είναι “ανοιχτού κώδικα” αδειοδοτημένο σύμφωνα με την άδεια Creative Commons Attribution-Share Alike 3.0 US ενώ ο κώδικας που περιγράφει το βιβλίο σε διάφορα παραδείγματα είναι GPL (v2 ή v2 ή νεότερη εξαρτάται). Μάλιστα για να μπορέσει να οργανωθεί καλύτερα το project είναι διαθέσιμο σε git (στο git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/perfbook.git), η πλέον πρόσφατη έκδοση σε pdf του βιβλίου (την ώρα που γραφόταν το άρθρο) είναι εδώ. Περισσότερα στοιχεία θα βρείτε στο blog του κύριου McKenney και στην “Σπαρτιατική” οφείλω να ομολογήσω σελίδα του project.

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