Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύωv ΕΙΔΙΚΑ ΘΕΜΑΤΑ : «Ανίχνευση δέρματος : Θεωρία, ανάλυση και δοκιμή μοντέλων και υλοποίηση εφαρμογής σε περιβάλλον Android» Δαμιανός Καλανίδης Επιβλέπων καθηγητής : Παναγιώτης Μποζάνης Υπεύθυνος καθηγητής : Γεράσιμος Ποταμιάνος Βόλος, 16/2/2012 1
Πίνακας Περιεχομένων Εισαγωγή... 1 Διαδικασία ανίχνευσης δέρματος... 2 Χρωματικά μοντέλα(color spaces)... 3 RGB Color Space... 3 Αντιληπτικά χρωματικα μοντέλα (HSV,HIS,HSL):... 3 Στοιχεία ερευνας... 3 Υλοποίηση εφαρμογής... 10 Σύνοψη... 12 Βιβλιογραφία... 13 2
Εισαγωγή Ανίχνευση δέρματος είναι η διαδικασία εύρεσης pixels και περιοχων στο χρώμα του δέρματος σε μια εικόνα ή σε ένα βίντεο. Αυτή η διαδικασία χρησιμοποιείται συνήθως σε εικόνες ως προ-επεξεργασία για να βρουμε τις περιοχές που έχουν ενδεχομένως τα ανθρώπινα πρόσωπα και τα άκρα. Αρκετές προσεγγίσεις υπολογιστικής-όρασης έχουν αναπτυχθεί για την ανίχνευση του δέρματος. Ένας ανιχνευτής δέρματος μετατρέπει συνήθως ένα δεδομένο pixel σε ένα κατάλληλο χώρο χρωμάτων και στη συνέχεια χρησιμοποιείται ένας ταξινομητής δέρματος για να δώσει μια ετικέτα στο pixel είτε πρόκειται για pixel-δέρματος ή για μη pixel-δέρματος. Ένας κατηγοριοποιητής (classifier) του δέρματος καθορίζει ένα όριο απόφασης για την κλάση χρώματος του δέρματος στο χρωματικό χώρο, βασίζόμενος σε μια training βάση δεδομένων για τα pixel στο χρώμα του δέρματος. 1
Διαδικασία ανίχνευσης δέρματος Η διαδικασία ανίχνευσης δέρματος έχει 2 στάδια : Μια φάση εκπαίδευσης και μια φάση ανίχνευσης. Η φάση της εκπαίδευσης περιλαμβάνει 3 βασικά βήματα 1. Δημιουργία βάσης δεδομένων για δείγματα δέρματος από ένα σύνολο εικόνων. Μια τέτοια βάση περιέχει συνήθως περιοχές δέρματος από μια πλειάδα ανθρώπων κάτω από διαφορετικές συνθήκες φωτισμού. 2. Επιλογή κατάληλου χρωματικού μοντέλου (color space). 3. Εκμάθηση των παραμέτρων του skin classifier Δεδομένου ενός εκπαιδευμένου ανιχνευτή δέρματος, η αναγνώριση pixel δέρματος σε μια δεδομένη εικόνα ή καρέ βίντεο περιλαμβάνει: 1. Μετατροπή της εικόνας στο ίδιο χρωματικό μοντέλο που χρησιμοποιήθηκε κατα την φάση της εκπαίδευσης. 2. Κατηγοριοποίηση κάθε pixel με την χρήση του classifier δέρματος ως δέρμα ή μηδέρμα. 3. Συνήθως χρειαζεται να γίνει και μετα-επεξεργασία με χρήση μορφολογίας για την επιβολή χωρικής ομοιογένειας στις ανιχνευθείσες περιοχές. Σε οποιοδήποτε χρωματικό μοντέλο το χρώμα του δέρματος καταλαμβάνει ένα μέρος αυτού του χώρου, το οποιό μπορεί να είναι μια μικρή ή μια μεγάλη περιοχή στο χώρο. Μια τέτοια περιοχή καλείται συστάδα δερματικού χρώματος. Κάθε πιξελ κατηγοριοποείτα και ονομαζεται, είτε είναι δέρμα είτε μη-δέρμα δεδομενου ενός μοντέλου της συστάδας δερματικού χρώματος σε κάποιο δοθέντα χρωματικό χώρο. Σε επίπεδο κατηγοριοποιητή, αληθινά θετικά είναι τα πιξελ δέρματος που ο κατηγοριοποιητής ορθώς τα χαρακτηρίζει ως δέρμα. Αληθινά αρνητικά είναι τα πιξελ δέρματος που ο κατηγοριοποιητής ορθώς τα χαρακτηρίζει ως μη-δέρμα. Επίσης, κάθε κατηγοριοποιητής κάνει λάθη : Mπορεί εσφαλμένα να χαρακτηρίσει ενα πιξελ μη-δερμα ως δέρμα και ένα πιξελ δέρμα ως μη δέρμα. Για λόγους φορμαλισμού αυτά τα λάθη χαρακτηρίζονται ως εσφαλμένα θετικά η έσφαλμένα αρνητικά αντίστοιχα. Ένας καλός κατηγοριοποιητης θα πρέπει να έχει χαμηλό ποσοστώ λαθών. Σε κάθε πρόβλημα κατηγοριοποίησης ύπάρχει μια αντιστοιχία μεταξύ εσφαλμένων θετικών και εσφαλμένων αρνητικών. Όσο πιο χαλαρά είναι τα όρια της κλάσης, τόσο λιγότερα τα εσφαλμένα-αρνητικά και τόσο περισσότερα τα εσφαλμένα-θετικά. Οσο πιο σφικτά είναι τα όρια της κλάσης, τόσο λιγότερα τα εσφαλμένα- θετικά και τόσο περισσότερα τα εσφαλμένα-αρνητικά. Το ίδιο ισχύει και στην ανίχνευση δέρματος. Συνεπώς προκύπτει ότι ή επιλογη κατάλληλου χρωματικό μοντέλο είναι σημαντικότατη στη διαδικασία ανίχνευσης δέρματος. Το χρώμα χρειάζεται να αναπαρασταθεί σε χρωματικό μοντέλο όπου η κλάση δέρματος είναι περισότερο συμπαγής ώστε να μοντελοποιηθεί με σφικτα όρια η κλάση δέρματος. Επίσης ανάλογα με το χρωματικό μοντέλο που θα επιλεγεί θα πρέπει να χρησιμοιποηθεί και το ανάλογο είδος κατηγοριοποιητή. 2
Χρωματικά μοντέλα(color spaces) Το χρώμα του ανθρώπινου δέρματος έχει περιορισμένο έυρος αποχρώσεων και δεν είναι ευρέως κορεσμένο, καθώς η εμφάνιση του δέρματος δημιουργείται από ένα συνδυασμό αίματος και μελανίνης. Αρα το χρώμα του ανθρώπινου δέρματος δεν αντιστοιχίζεται τυχαία σε ένα χρωματικό μοντέλο, αλλά περιορίζεται σε μια μικρή περιοχή του χρωματικού μοντέλου. Αυτή βέβαια διαφέρει για κάθε χρωματικό μοντέλο. RGB Color Space Το χρωματικο μοντέλο RGB είναι το πιο ευρέως χρησιμοποιουμενο στην ψηφιακή φωτογραφία. Κωδικοποιει τα χρώματα ως συνδυασμό 3 βασικών χρωμάτων, του κόκκινου, του πράσινου και του μπλέ. Το κυριότερο πλεονέκτημα του είναι η απλότητα του. Ωστόσο δεν είναι αντιληπτικά ομοιόμορφο, δηλαδή οι αποστάσεις στοχώρο αυτό δεν αντιστοιχούν γραμμικά στην ανθρώπινη οπτική αντίληψη. Επίσης δεν διαχωρίζει φωτεινότητα και χρωματικότητα και οι τρεις συνιστώσες του είναι υψηλά συσχετιζόμενες. Η φωτεινότητα ενός RGB pixel είναι ο γραμμικός συνδυασμός των R,G,B τιμών. Συνεπώς αλλάζοντας την φωτεινότητα μιας περιοχής δέρματος επηρεάζει και τις 3 συνιστώσες. Δηλαδή η θέση μια υφής δέρματος στο χρωματικο μοντέλο RGB θα αλλάξει βασιζόμενη στην φωτεινότητα με την οποια δειγματοληπτηθηκε αυτή η υφή. Οπότε έχουμε μια πολύ ξεχειλωμένο ξεχυλωμενη περιοχή που αντιστιχοιζχεται σε δέρμα χρωματικο μοντέλο RGB. Αντιληπτικά χρωματικα μοντέλα (HSV,HIS,HSL): Τα αντιληπτικά χρωματικα μοντέλα, όπως το HSI, HSV/HSB και HSL(HLS), είναι επίσης δημοφιλη στην ανίχνευση υφών δέρματος. Διαχωρίζουν το χρώμα σε 3 συνιστώσες απόχρωση (H), κορεσμό (S) και φωτεινότητα (I,V or L). Πλεονέκτημα τους, ότι μπορεί να προσδιοριστεί η κλάση του χρώματος του δέρματος σε όρους κορεσμού και χρωματικότητας. Η συνιστώσα της φωτεινότητας συχνα απορίπτεται για να περιοριστεί η επιδραση του φωτισμού στο χρώμα του δέρματος. Στοιχεία ερευνας Χρησιμοποιηθήκαν 2 dataset με μέση ανάλυση εικόνων 0,3 MPixels. Το 1 ο είχε 10623 εικόνες με τις 6941 να χρησιμοποιούνται ως training set και τις 3682 ως testing set. Το 2 ο είχε 550 εικόνες με τις 383 να χρησιμοποιούνται ως training set και 167 ως testing set. Επιλέχθηκε ένα εύρος τιμών από bins για την κατασκευή των ιστογραμμάτων επιτυχίας και αποτυχίας. Επίσης για να περιοριστούν οι απαιτήσεις σε μνήμη στο Android χρησημοποιήθηκε πλήθος 32 bins, δηλαδή 8 bit/bin. Εξάλου για να υπολογίσουμε την πιθανότητα για κάθε δείγμα στο RGB/HSV για κάθε pixel θέλουμε 256 3 δείγματα. Αρα το πλήθος των 32 bins είναι ικανοποιητικό, δεδομένου του μεγέθου των dataset. Ακολουθούν μερικές ενδεικτικές εικόνες για το 1 ο dataset 3
όπου φαίνεται η μέτρια ποιότητα των εικόνων, όπως και το ότι υπήρχαν αρκετές περοχές με χρώμα δέρματος αλλά που δεν ήταν δέρμα (κάλτσες,αμμώδεις περιοχές) γεγονός που συνέβαλε στα μειωμένα ποσοστά επιτυχίας αναγνώρισης. και το 2 ο dataset όπου η ποιότητα των εικόνων ήταν αρκετά καλή με καλή αντίθεση και κορεσμό. Η τεχνική κατηγοριοποίσης που χρησιμοποιήθηκε για την δημιουργία του κατηγοροποιητή βασιστηκε στην Baysian προσέγγιση, όπου η κατηγοριοποίηση γίνεται με βάση τις πιθανότητες, δηλαδή δεδομένου ένος χρώματος pixel αναζητούμε την πιθανότητα να είναι δέρμα. Η διαδικασία μοντελοποίησης που ακολουθήθηκε για κάθε dataset ήταν η ακόλουθη: Αρχικά έγινε η φάση της εκπαίδευσης (training). Αφού δημιουργήθηκε χειροκίνητα μια μάσκα για κάθε εικόνα του training set, η οποία την διαχώριζε τις περιοχές δέρματος και μη-δέρματος. Στην συνέχεια με βάση αυτή την μάσκα δημιουργήθηκαν 2 ιστογράματα τριών συνιστωσών (RGB/HSV ανάλογα το χρωματικό μοντέλο). Το ιστόγραμμα του δέρματος περιείχε για κάθε συνδυασμό συνιστωσών την πιθανότητα τους να είναι δέρμα και αντίστοιχα του μη-δέρματος την πιθανότητα να μην είναι. Το μέγεθος του ιστογράμματος όπως αναφέρθηκε νωρίτερα ήταν ανάλογο με το πλήθος των bins. Η ιστογραμματική ανάλυση των περιοχών που ανήκουν σε μη-δέρμα (αριστερά) και σε δερμα (δεξιά) φαίνεται στα ακόλουθα σχήματα 4
Dataset1 (RGB) (HSV) Dataset2 (RGB) 5
(HSV) Αξίζει να παρατηρηθεί το μεγάλο ποσοστό επικάλυψης μεταξύ των δυο ιστογραμμάτων στο dataset 1, όπως αναμέναμε λόγω των αυξημένων περιοχών δέρματος που εχουν τιμές χρώματος δέρματος αλλά δεν είναι δέρμα. Ακόμη στα διαγράμματα HSV παρατηρούμε την ουδέτερη επίδραση της φωτεινότητας στην ύπαρξη υφής δέρματος. Στην συνέχεια,μετά την φάση της εκπαίδευσης, ακολούθησε φάση της αξιολόγησης του classifier (testing). Αναλύθηκαν όλες οι εικόνες του testing set με βάση τα προηγούμενα ιστογράμματα πιθανοτήτων και έγινε η εκτίμηση για κάθε pixel αν είναι η όχι δέρμα. Επίσης δημιουργήθηκε χειροκίνητα όπως παραπάνω η αντιστοιχη μάσκα δέρματος,μη-δέρματος για κάθε εικόνα. Τα αποτελέσματα των μετρήσεων μαζί με τα δεδομένα από τις μάσκες χρησιμοποιήθηκαν για να συμπληρωθεί ο ακόλουθος πίνακας αξιολόγησης : Πραγματική κλάση (Προσδοκία) 0 1 Προβλεπόμενη κλάση 0 ΤΝ FN (Παρατήρηση) 1 FP TP όπου : TN : ο αριθμός των pixel που αναγνωρίστηκαν ως μη-δέρμα από τον κατηγοριοποιητή και δεν είναι δέρμα (Success) FN : ο αριθμός των pixel που αναγνωρίστηκαν ως μη-δέρμα από τον κατηγοριοποιητή και είναι δέρμα (Loss) FP : δηλαδή ο αριθμός των pixel που αναγνωρίστηκαν ως δέρμα από τον κατηγοριοποιητή και δεν είναι δέρμα (False alarm) TP : δηλαδή ο αριθμός των pixel που αναγνωρίστηκαν ως δέρμα από τον κατηγοριοποιητή και είναι δέρμα (Success) 6
Από το παραπάνω προκύπτουν οι ακόλουθες έννοιες αξιολόγησης: Ακρίβεια : είναι η πιθανότητα ότι ένα (τυχαία επιλεγόμενο) αντικείμενο είναι σχετικό. TP ίa TP FP Ανάκληση : είναι η πιθανότητα ότι ένα (τυχαία επιλεγόμενο) σχετικό αντικείμενο ανακτήθηκε σε μια αναζήτηση. TP ά TP FN F1 score : Συνδυάζει την ακρίβεια και την ανάκληση για τον υπολογισμο της ακρίβειας της διαδικασίας ανίχνευσης ίa ά F1score 2 ί ά Οι μετρήσεις αξιολόγησης για τα 2 dataset είναι οι ακόλουθες : Dataset1 (RGB) Test στο training 1 19,04 10,47 13,51 2 20,68 13,22 16,13 4 23,46 18,91 20,94 8 23,77 22,39 23,06 16 23,46 25,94 24,64 32 27,61 29,34 28,45 64 14,56 19,54 16,69 128 17,61 47,39 25,67 Test στο υπόλοιπο 70,00 60,00 50,00 40,00 30,00 20,00 Precision Training set Precision Testing set Recall Training set Recall Testing set 1 3,99 2,14 2,79 2 3,72 2,69 3,12 4 3,03 3,96 3,43 8 3,48 5,50 4,27 16 3,31 7,66 4,63 32 3,01 9,68 4,59 64 3,62 13,60 5,71 128 7,32 60,83 13,07 10,00 0,00 1 2 4 8 16 32 64 128 Test στο training 1 19,04 10,47 13,51 2 20,71 12,42 15,53 4 23,84 17,91 20,45 8 24,59 21,44 22,91 16 24,49 23,33 23,90 32 17,75 25,45 20,92 64 18,60 27,81 22,29 128 19,77 17,95 18,81 Test στο υπόλοιπο Dataset 1 (HSV) 70,00 60,00 50,00 40,00 30,00 20,00 Precision Training set Precision Testing set Recall Training set Recall Testing set 1 3,99 2,15 2,79 2 3,63 2,49 2,95 4 3,22 3,65 3,42 8 3,53 5,12 4,18 16 4,98 7,46 5,97 32 2,38 9,14 3,78 64 2,43 9,54 3,88 128 13,34 20,46 16,15 10,00 0,00 1 2 4 8 16 32 64 128 7
Dataset 2 (RGB) Test στο training 1 38,87 3,35 6,16 2 40,21 6,82 11,67 4 44,23 28,89 34,95 8 46,50 66,45 54,72 16 49,31 83,17 61,91 32 47,09 85,87 60,83 64 46,54 80,09 58,87 128 48,65 60,15 53,79 Test στο υπόλοιπο 1 40,83 2,78 5,20 2 41,85 5,78 10,16 4 46,45 25,41 32,85 8 49,55 61,89 55,04 16 52,11 79,14 62,84 32 49,10 81,68 61,34 64 48,64 78,84 60,16 128 47,55 52,42 49,87 100,00 90,00 80,00 70,00 60,00 50,00 40,00 30,00 20,00 10,00 0,00 1 2 4 8 16 32 64 128 Precision Training set Precision Testing set Recall Training set Recall Testing set Dataset 2 (HSV) Test στο training 1 39,34 3,48 6,40 2 49,32 9,37 15,75 4 54,19 35,75 43,08 8 50,16 71,11 58,83 16 45,67 84,10 59,19 32 47,19 91,79 62,33 64 46,84 88,52 61,26 128 34,48 95,35 50,65 Test στο upoloipo 1 39,34 3,48 6,40 2 51,21 7,72 13,41 4 58,53 31,39 40,86 8 54,84 67,65 60,58 16 48,83 80,72 60,85 32 50,94 90,12 65,09 64 48,76 83,89 61,67 128 38,09 94,54 54,30 100,00 90,00 80,00 70,00 60,00 50,00 40,00 30,00 20,00 10,00 0,00 1 2 4 8 16 32 64 128 Precision Training set Precision Testing set Recall Training set Recall Testing set Παρατηρούμε την σχετική υπεροχή του χρωματικού μοντέλου HSV. Επίσης τα αναμενόμενα χαμηλά ποσοστά επιτυχίας για το dataset 1 στο testing set. Η εκτέλεση των μετρήσεων έγινε με την χρήση του Matlab. Το αρχικό training set δοκιμάστηκε και ως testing set. Επίσης μια από τις πιο απλές μεθόδους για την ανίχνευση δέρματος είναι η χρήση προκαθορισμένων τιμών κατωφλίου για κάθε χρωματικό μοντέλο. Δηλαδή χρησιμοποιούνται ευριστικούς κανόνες για να αποφασιστεί αν είναι pixel δέρματος. Για το RGB το δέρμα κατηγοριοποιείται με κανόνες που λαμβάνουν υπόψην τους 2 παραμέτρους : Αν υπάρχει φωτισμός ημέρας ή χρήση flash/τεχνητού φωτισμού. Το χρώμα του δέρματος στο φώς της ημέρας ορίζεται από τον ακόλουθο κανόνα κατηγοριοποίησης : 8
(R > 95) AND (G > 40) AND (B > 20) AND ((max[r, G, B]) - (min[r, G, B])) > 15) AND (ABS(R - G) > 15) AND (R > G) AND (R > B) ενώ για flash/τεχνητό φωτισμό (R > b) AND (G > B)) OR ((R > 220) AND (G > 210) OR (B > 170) AND (ABS(R - G) <= 15)) Στο YcbCr, κατά τον ίδιο τρόπο, ένα pixel κατηγοριοποιείται ως pixel δέρματος αν ισχύει : Cr 2.2857 * Cb + 432.85 Cr 1.15 * Cb + 301.75 Cr 4.5652 * Cb + 234.5652 Cr 0.3448 * Cb + 76.2069 Cr 1.5862 * Cb + 20 Τέλος στο HSV αν ισχύει : 0 < H < 50 AND 0.23 < S < 0.68 9
Υλοποίηση εφαρμογής Software Για την υλοποίηση της εφαρμογής επίλεχθηκε το Android, ένα λειτουργικό σύστημα για συσκευές κινητής τηλεφωνίας το οποίο τρέχει τον πυρήνα του λειτουργικού Linux. Hardware Χρησιμοποιήθηκε κινητό τηλέφωνο με τις απαραίτητες προδιαγραφές για την υποστήριξη της εφαρμογής όπως κάμερα την συλληψη των εικόνων, επεξεργαστής με επιτάχυνση πολυμέσων. Application Η εφαρμογή σχεδιάστηκε για έκδοση Android 2.2 ή νεότερη. Επίσης για να έχει ταχύτερη εκτέλεση απαιτεί επεξεργαστή γενιάς ArmV7 με υποστήριξη Advanced SIMD(NEON) αν και μπορεί να λειτουργήσει και με επεξεργαστές παλαιότερης γενιάς χωρίς όμως χρήση SIMD. Επίσης μέρος του κώδικα είναι γραμένο σε native c αφενός για ταχύτερη εκτέλεση της εφαρμογής αφετέρου ώστε να γραφεί ο κώδικάς για προχωρημένη επεξεργασία SIMD. Τα δεδομένα των ιστογραμμάτων που παρήχθηκαν από το Matlab κατά την φάση της εκπαίδευσης μεταφέρθηκαν σε κατάλληλα διαμορφωμένο αρχείο στη κάρτα μνήμης του κινητού. Αυτά χρησιμοποιεί και η εφαρμογή για να κατηγοριοποιήσει τα δεδομένα που λαμβάνει από την κάμερα ωστε να τμηματοποιήσει την εικόνα σε περιοχές skin και non-skin. Καταρχήν υπήρξε επιτυχία αναγνώρισης δέρματος και με τα 2 dataset. Παρατηρήθηκε ότι οι συνθήκες περιβάλλοντος επηρέαζαν το ποστοστο επιτυχίας αναγνώρισης και ειδικότερα ο φωτισμός όταν χρησιμοποιούταν το χρομάτικό μοντελο RGB. Επίσης τμήματα που είχαν χρώματα δέρματος αναγνωρίζονταν ως δέρμα. Προχωρημένη επεξεργασία SIMD (NEON) Η εφαρμογή κάνει χρήση της προχωρημένης επεξεργασίας SIMD (NEON), που είναι ένα σύνολο εντολών μονής εντολής-πολλών δεδομένων (single instruction multiple data, SIMD) που συνδυάζει 64 και 128 bit και παρέχει επιτάχυνση για εφαρμογές πολυμέσων και επεξεργασίας σήματος. Ενδεικτικά ακολουθεί τμήμα κώδικα της εφαρμογής που κάνει προχωρημένης επεξεργασίας Advanced SIMD και το ίδιο τμήμα χωρίς επιτάχυνση πολυμέσων. Κώδικας με χρήση Neon και native C : ii=0; wh=width*height; v32=vdupq_n_u32(32); v1024=vdupq_n_u32(1024); for (pix = 0; pix < wh; pix += 4) R_neon= vsetq_lane_u32(c_array[pix],r_neon,0); R_neon= vsetq_lane_u32(c_array[pix+1],r_neon,1); 10
R_neon= vsetq_lane_u32(c_array[pix+2],r_neon,2); R_neon= vsetq_lane_u32(c_array[pix+3],r_neon,3); G_neon=R_neon; B_neon=R_neon; R_neon=vshlq_n_u32(R_neon,8); R_neon=vshrq_n_u32(R_neon,27); G_neon=vshlq_n_u32(G_neon,16); G_neon=vshrq_n_u32(G_neon,27); G_neon=vmulq_u32(G_neon,v32); B_neon=vshlq_n_u32(B_neon,24); B_neon=vshrq_n_u32(B_neon,27); B_neon=vmulq_u32(B_neon,v1024); Sum_neon=vaddq_u32(R_neon,G_neon); Sum_neon=vaddq_u32(B_neon,Sum_neon); if( ( f1_array[vgetq_lane_u32(sum_neon,0)]- f0_array[vgetq_lane_u32(sum_neon,0)])>0) Skin[ii++]=1; else Skin[ii++]=0; if( ( f1_array[vgetq_lane_u32(sum_neon,1)]- f0_array[vgetq_lane_u32(sum_neon,1)])>0) Skin[ii++]=1; else Skin[ii++]=0; if( ( f1_array[vgetq_lane_u32(sum_neon,2)]- f0_array[vgetq_lane_u32(sum_neon,2)])>0) Skin[ii++]=1; else Skin[ii++]=0; if( ( f1_array[vgetq_lane_u32(sum_neon,3)]- f0_array[vgetq_lane_u32(sum_neon,3)])>0) Skin[ii++]=1; else Skin[ii++]=0; Κώδικας με χρήση native C : double d; ii=0; wh=width*height; 11
for (pix = 0; pix < wh; pix += 1) R_bined =( ( (c_array[pix] >> 16) & 0xff )/8.0); G_bined =( ( (c_array[pix] >> 8) & 0xff )/8.0); B_bined =( ( c_array[pix] & 0xff )/8.0); d = f1_array[r_bined +(G_bined*32)+(B_bined*32*32)]- f0_array[r_bined+(g_bined*32)+(b_bined*32*32)] ; if(d>0) Skin[ii++]=1; else Skin[ii++]=0; Σύνοψη Η αναγνώριση δέρματος είναι μια αποδοτική διαδικασία για την αναγνώριση περιοχών δέρματος από pixel με το αντίστοιχο χρώμα. Τα αποτελέσματα της μπορούν να χρησιμοποιηθούν για την ανίχνευση ανθρώπινων μελών. Όμως υπάρχουν περιοχές στις εικόνες με χρώμα δερματος που δεν είναι δερμα όπως δερμάτινα ρούχα,ξύλο τότε μπορεί να έχουμε λανθασμένα αποτελέσματα στην ανίχνευση. Συνεπώς κάτω από ελεγχόμενες συνθήκες και επιλέγοντας τον κατάλληλο κατηγοριοποιητή, η ανίχνευση δέρματοςμε βάση το χρώμα των pixel είναι αποδοτική για την ανίχνευση ανθρώπινων μελών. 12
Βιβλιογραφία 1. A. Albiol, L. Torres, and E. J. Delp. Optimum color spaces for skin detection. In proceedings of the 2001 international conference on image processing, volume 1,vol. 1, pp. 122-124,2001. 2. Fleck, M.M., Forsyth, D.A., Bregler, C.: Finding naked people. In: Proceedings of the European Conference on Computer Vision (ECCV). (1996) 593 602 3. W. Kelly, A. Donnellan, D. Molloy A Review of Skin Detection Techniques for Objectionable Images, Proc. 4th European Conf. on Computer Vision, 2007. 4. Nusirwan Anwar bin Abdul Rahman, Kit Chong Wei and John See. RGB-H-CbCr Skin Colour Model for Human Face Detection, In Proceedings of The MMU International Symposium on Information & Communications Technologies (M2USIC 2006). 5. S.L. Phung, A. Bouzerdoum, D. Chai, Skin segmentation using colour pixel classification: analysis and comparison, IEEE Trans. Pattern Anal. Mach. Intell, 2005, pages 148-154. 6. S. Jayaram, S. Schmugge, M. C. Shin, and L. V. Tsap, Effect of color space transformation, the illuminance component, and color modeling on skin detection, in 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'04), 2004. 13