1 Partie I : Implantation d un réseau de neurones RBF sur des systèmes embarqués : la détection et la reconnaissance de visages en temps réel F.Yang M.Paindavoine GDR-ISIS 20 Janvier 2005 Paris
2 Plan 1. Objectifs 2. Méthode proposée 3. AAA : Complexité algorithmique 4. Première implantation sur la puce spécifique 5. Deuxième implantation sur le FPGA 6. Troisième implantation sur le DSP C6x 7. Conclusion et perspectives
3 Processus de traitement Processus classique visage ou non visage? non visage! visage! personne connue ou inconnue?? Mr. X
4 2. Méthode proposée (basée sur une approche Adéquation Algo./Archi.) 2.1. Processus de traitement Processus utilisé Mr. X personne connue ou inconnue???
5 2. Méthode proposée 2.1. Processus de traitement Schéma global du système e =1 e = 2 3 e = 4 9 e = 8 27 Prétraitement Extraction des vecteurs caractéristiques Reconnaissance par réseau de neurones
2. Méthode proposée 2.2. Réseau neuronal RBF : modèle utilisé Entrées x Neurones cachés f i (x) p i j Sorties s j i =1... i... I j j = 1... j... J j j 6
7 2. Méthode proposée 2.2. Réseau neuronal RBF : neurone caché 1.2 x 1 x 2 f i d ( x) 2 2σ i ( x) = e 2 1 0.8 x 3 ( i i c, σ ) σ i 0.6 x n x N f i ( x) 0.4 0.2 4 3 2 1 x 0 C i 1 2 3 4
2. Méthode proposée 2.2. Réseau neuronal RBF : neurone de sortie f ( x 1 ) f 2 ( x) f 3 ( x) (x) f i p 1 j p 2 j 0.8 p 3 j p i j p I j 0.6 S j = I i= 1 p i j f ( x) i f I (x) 0.4 0.2 0 20 15 10 5 0 5 10 15 20 8
2. Méthode proposée 2.3. Configuration du modèle : choix des paramètres Taille des vecteurs caractéristiques Echantillonnage Taille vecteurs Nb. visages Non reco. Fausse reco. Ident. correctes Imagette brute (40x32) 1280 1796 140 0 92,2% 1 pix./4 par ligne 320 1796 76 0 95,8% 1 pix./8 par ligne 160 1796 120 0 93,3% 1 pix./16 par ligne 80 1796 170 60 87,1% 1 pix./8 par lig. 1 pix./2 par col. 80 1796 170 55 87,5% 9
10 2. Méthode proposée 2.3. Configuration du modèle : choix des paramètres Mesure de distance Distance Taille vecteurs Nb. visages Non reco. Fausse reco. Ident. correctes d2(x) 320 1796 76 0 95,8% d1(x) 320 1796 64 0 96,4% d 2 ( x ) = N ( x n c n ) n = 1 2 d 1 ( x ) = N n = 1 x n c n
11 2. Méthode proposée 2.3. Configuration du modèle : choix des paramètres Fonction de réponse Fonction Taille vecteurs Nb. visages Non reco. Fausse reco. Ident. correctes Gaussienne 320 1796 32 0 96,4% Porte 320 1796 118 0 92%
12 2. Méthode proposée 2.4. Résultats expérimentaux : reconnaissance à une échelle
13
14 2. Méthode proposée 2.4. Résultats expérimentaux reconnaissance multi-échelles
15 3. AAA : Analyse de Complexité L f f C l p p c L C 3.1 Nombre d imagettes à tester : + = 1 c f f p L L V + 1 l f p C C
16 3.2. Opérations nécessaires à l extraction d un vecteur pixels B composantes C f + + + 4 L f f f L B C B A = 1 1 + = 1 1 1 l f f p C C L B C B A f L B D = 1 + = 1 l f p C C L B D
17 3.3. Opérations nécessaires au traitement des vecteurs par le réseau de neurone d1 ( x) = N n= 1 x n c n f i ( x) = 1 0 d( x) σ d( x) i > σ i _ ( N ) I V f A = 1 C = I V 2 f S = N I V f N + _ + I _ + _
18 4. Première implantation 4.1. Architecture de la carte Neuroseight
19 4. Première implantation 4.1. Architecture de la carte Neuroseight Connecteur Capteur CMOS JTAG FPGA Réseau Neuronal ZISC FPGA SRAM (1MO) FLASH EPROM CPLD Connecteur I/O Connecteur série RS 232
20 4.2. La puce ZISC Neurone ZISC = (un vecteur de 64 composantes + un rayon) mémorisés. (un soustracteur + un additionneur) pour calculer la distance d1. fonction d activation=fonction porte Avantages : - quantité importante de neurones (78xN puces ZISC) - apprentissage intégré Inconvénient : longueur limitée des vecteurs à tester (64 composantes).
21 4.3. Complexité de l implantation Image 288 x 352. Analyse des imagettes de taille 32x32 (Pc=4, Pl=2) 10465 imagettes Vecteurs extraits de 64 composantes (limite du ZISC). Nombre de neurones cachés : 15 Système complet Additions Soustractions Divisions Comparaisons 20,34. 10 6 10,16.10 6 10.05.10 6 92736 146510 Calcul le plus coûteux=calcul de la distance d1(x)
22 4.4. Implantation sur la carte Localisation imagette à apprendre Apprentissage neurones FPGA ZISC Vidéo Acquisition image Extraction vecteurs caractéristiques Reconnaissance Stockage image (RAM) Balayage image
4.5. Analyse matérielle Slices BRAM SpartanII-50 Système complet 768 292 (38%) 8 (512 Octets) 1 (12,5%) 23
24 4.6. Analyse temporelle Traitement image 1,27.10 6 x 30ns = 38,1 ms Chargement 64 1ères composantes de la 1ére colonne dans la FIFO Chargement 64 1ères composantes dans le ZISC Réponse ZISC Chargement 64 nouvelles composantes dans le ZISC Réponse ZISC Réponse ZISC Chargement 64 1ères composantes dans le ZISC 256T clk 64Tclk 54Tclk 64Tclk 54Tclk 54T clk 202T clk 64T clk 32T clk 32T clk 256T clk Chargement 8 nouvelles composantes dans la FIFO Chargement 8 nouvelles composantes dans la FIFO Chargement 64 1ères composantes de la colonne suivante dans la FIFO
25 4.7. Performances Nb. Visages à reconnaître Non reco. Fausses reco. Ident. correctes 1796 210 53 85,3% Inconvénient majeur du système: vecteurs de seulement 64 composantes
26 5. Deuxième implantation 5.1 Architecture de la carte MEMEC Connecteur Capt eur CMOS JTAG FPGA FPGA SRAM Connecteur I/O Connecteur série RS 232 FPGA Spartan II-300 : 3072 Slices 16 BRAM x 512 octets
27 5.2. Complexité de l implantation Image 288 x 352. Analyse des imagettes de taille 40x32 (Pc=4, Pl=2) 10143 imagettes Vecteurs extraits de 320 composantes. Nombre de neurones cachés : 15 Système complet Additions Soustractions Divisions Comparaisons 98,96.10 6 49,65.10 6 48,8.10 6 370944 142002
5.3. Implantation d un neurone caché FIFO vecteur RAM neurone vecteur appris rayon catégorie ABS( ) + >? CAT 28
5.4. Analyses matérielle et temporelle Slices BRAM Spartan II-300 Système complet 3072 492 16% 16 16 (100%) Traitement image 3,42.10 6 x 20ns = 68,4 ms 29
30 5.5. Performances Nb. Visages à reconnaître Non reco. Fausses reco. Ident. correctes 1796 123 20 92%
6. Troisième implantation 31
6.1 : Architecture de la carte 32
33 6.2 : Résultats de l implantation Nb. Neurones cachés Extraction Distance Euclidienne Fonction Gaussienne Vitesse de traitement C6201 15 2,38 ms 197,8 ms 91,3 ms 3,4 images/s C64 15 0,18 ms 18,3 ms 30,4 ms 20,4 images/s Le taux de reconnaissance correcte : 95,8%
34 7. Conclusion/Perspectives Carte ZISC Carte MEMEC Carte DSP C6201 DSP C64 Vitesse 25 images/s 14 images/s 3,4 images/s 20,4 images/s Performance 85% 92% 95,8% 95,8%
7. Conclusion/Perspectives Traitement temps réel démontré. Traitement multi-échelles. Rétine artificielle : réalisation des prétraitements Publications : 1. «Implementation of a RBF neural network on embedded systems: Real time face tracking and identity verification», IEEE Trans. On Neural Networks, Vol.14, No.5, pp. 1162-1175, 2003. 2. «Localisation et reconnaissance de visages en temps réel avec un réseau de neurones RBF : algorithme et architecture», Revue Traitement du Signal, Vol.20, No.4, pp. 353-374, 2003. 35
Partie II : Reconnaissance de visages panoramiques en utilisant des multi caméras Fan YANG, Michel PAINDAVOINE GDR-ISIS : 20 Janvier 2005 36
37 Introduction Contexte scientifique Localisation et Reconnaissance de visages =>nombreuses applications Beaucoup de méthodes testées sur visages de faces 2D Mais aucun résultat sur visage panoramique
Introduction But du projet Mieux simuler les systèmes biologiques de perception de l homme Étendre le système de traitement à des visages panoramiques Reconnaissance de visages Catégorisation des expressions Reconstruction 3D d un visage 38
39 Plan Introduction Système d acquisition Construction de visage panoramique Application : Reconnaissance de visage Résultats expérimentaux Conclusion et perspectives
Système d acquisition Banc d acquisition 5 caméras Logitech USB (résolution max. 640x480) Fixées sur une glissière circulaire réglable en hauteur 40
Système d acquisition Procédure d acquisition Sujet (Mélanie) placé devant caméra centrale Possède des marqueurs sur le visage qui permettent de récupérer des points communs entre 2 vues du visage 41
Système d acquisition Procédure d acquisition Placement des marqueurs Points fiduciaires facilement mémorisables = Points caractéristiques du visage : Yeux, Bouche,Oreilles,.. Au total 10 marqueurs 42
43 Construction de visage panoramique Programmes réalisés en MATLAB 3 étapes: Détection de marqueurs Transformation linéaire des images Mosaïquage du visage panoramique
Construction de visage panoramique Détection de marqueurs 2 étapes : Filtrage de couleur dans le domaine TLS Calcul des coordonnées des marqueurs 44
Construction de visage panoramique Transformation linéaire des images Calcul de la matrice de transformation à l aide des coordonnées des 3 marqueurs communs détectés T = a1 b1 c1 a2 b2 c2 Transformation généralisée à l image x = a1x +b1y +c1 y = a2x +b2y +c2 45
46 Construction de visage panoramique Transformation linéaire des images
47 Construction de visage panoramique Mosaïquage du visage panoramique
48 Construction de visage panoramique Mosaïquage du visage panoramique
49 Construction de visage panoramique Mosaïquage du visage panoramique
50 Construction de visage panoramique Mosaïquage du visage panoramique
51 Construction de visage panoramique Mosaïquage du visage panoramique Image 5 Image 1 Image 4 Image 3 Image 2
52 Construction de visage panoramique Mosaïquage du visage panoramique
Construction de visage panoramique Construction d une base de visages panoramiques 12 personnes x 4 expressions x 2 sessions = 96 visages panoramiques 53
Construction de visage panoramique 54
Construction de visage panoramique 55
Application : Reconnaissance de visage 56 3 étapes : Prétraitement Apprentissage Test
57 Application : Reconnaissance de visage Prétraitement de visages 1. Représentation spatiale
Application : Reconnaissance de visage Prétraitement de visages 2. Représentation fréquentielle + Filtrage 58
Application : Reconnaissance de visage 59 Processus d apprentissage (ACP*) Xap = P a Q T Projection Normée de Xap sur les vecteurs propres Fap = Q Calcul de la moyenne des projections de Fap pour chaque personne *Turk Pentland : Face recognition using eigenfaces, 1991
Application : Reconnaissance de visage 60
Application : Reconnaissance de visage 61 Processus de Test (ACP) Ftest= Xtest T.P.a -1 Calcul de la distance euclidienne pour vérifier l identité de la personne
Application : Reconnaissance de visage Analyse discriminante (Jackknife) Taux de reconnaissance (1=100%) Nb de vecteurs propres réorganisés en fonction de leur importance pour l identification 62
Résultats Expérimentaux Taux moyen de reconnaissance Nombre d exemples p=1 p=2 p=3 p=4 par individu Nombre total d exemples 12 24 36 48 Nombre de tests 84 72 60 48 Représentation 70% 85.08% 90.1% 93.21% spatiale Représentation fréquentielle 76.83% 91.26% 93.25% 97.46% 63
64 Conclusion et Perspectives La méthode de prétraitement avec FFT + Filtrage améliore les performances Besoin d améliorations au niveau du mosaïquage Simplifier le système d acquisition : marqueurs virtuels
65 Conclusion et Perspectives Tester les deux autres applications : La catégorisation des expressions La reconstruction 3D du visage Publication : «Development of a fast panoramic face mosaicing and recognition system», Revue Optical Engineering, accepté et à paraître en 2005.