
SETIT2009       
 
Où   NbrI : Le nombre d’image à traiter 
        NbrE : Le nombre d’étage 
        NbrM : Le nombre de masque 
Donc 
Le nombre d’opérations =  (nombre d’addition + 
Nbr_test) x NbrI x NbrE  x NbrM 
On peut conclure que l’algorithme de détection a 
une complexité exponentielle.  
 
1ère Conclusion  
Après l’étude des deux phases de l’algorithme on 
peut conclure que :  
 • La vitesse du détecteur est directement liée 
au nombre de motifs   
• Pour augmenter la vitesse de traitement on 
peut ajuster deux paramètres de 
l’algorithme, le nombre de Motif et le 
nombre d’étapes de l’algorithme de 
détection mais dans ce cas on peut 
influencer le taux de détection, pour cela on 
s’est orienté vers l’optimisation de 
l’implémentation de l’algorithme de 
détection. 
 
5. Optimisations globales 
 Nous avons optimisé le code de l’algorithme de 
détection en utilisant les techniques suivantes:   
• Réécriture du code et des bibliothèques 
associées. 
• Réduction de la taille des données  
• Changement des structures de données : 
L’utilisation des listes chaînée donne une 
complexité en O(1). Toutefois, en pratique, 
il est plus efficace d’utiliser des tableaux 
générés dynamiquement avec calloc() ou 
new(). La complexité théorique reste la 
même mais on alloue toute la mémoire 
nécessaire en une fois. De plus, il y a moins 
d’informations supplémentaires à stocker 
comme les pointeurs vers le maillon suivant 
et on s’assure de la compacité des données 
en mémoire. Comme on lit les données de 
manière linéaire, le processeur peut charger 
à l’avance les données suivantes. 
Grâce au profileur, nous avons vu que 91% du 
temps de calcul est passé dans la fonction Motif,  qui 
applique un motif sur l’image. C’est donc la fonction 
à optimiser en priorité. 
Pour optimiser l’algorithme  on applique les 
points cités en 6. (Réécriture du code, réduction de la 
taille des données, changement des structures de 
données)  
Le tableau 2 donne l’optimisation du  temps passé 
dans les 3 fonctions les plus coûteuses du 
programme.  
Tableau 2 : optimisation du temps d’exécution 
Nom d la fonction Temps en 
milliseconde 
Motif  230
Etape 132
Détect 2
 Les résultats obtenus sont nettement meilleurs, à 
comparer avec les calculs du temps d’exécution 
donné par le tableau 1. Nous avons obtenu un temps 
d’exécution total des fonctions les plus coûteuses de 
l’algorithme de l’ordre  de 364 millisecondes, au lieu 
de 987 millisecondes mésuser avant l’optimisation. 
Touts les tests sont effectués  sur un   processeur 
Pentium IV cadencé à 2.0 GHz et équipé de 2.00 
Gigaoctet de RAM, avec des images de tailles 
320x240 pixels, nous atteignons des vitesses de 
l’ordre de 20  à 24 images par seconde. 
6. Conclusion 
 En exploitant pleinement les possibilités du 
processeur et en modifiant légèrement les 
algorithmes utilisés, nous avons réussi à multiplier 
les performances globale de l’algorithme par trois, et 
ce, sans changer les performances en termes de 
qualité de détection. Ce gain est exceptionnel pour 
une optimisation qui ne dégrade pas la qualité. De 
plus la majorité de ces optimisations sont adaptables 
à toutes les architectures de processeurs.  
A l’aide d’une caméra basse résolution associée à 
un processeur d’entrée de gamme, en atteignant des 
vitesses de 20 à 24 image/seconde,  il est désormais 
possible de détecter instantanément tous les visages 
des personnes qui passent devant la caméra. 
7. Travail futur et perspectives  
Avec le Pentium Pro,  d’Intel  qui  a introduit la 
possibilité d’exécuter des instructions dans le 
désordre (Out Of Order), nous espérons atteindre une 
cadence de 25 à 30 images/secondes  
Références  
 
[ABD 97]  H. Abdi, D. Valentin and A. O'Toole, A 
generalized auto-associator model for face semantic 
process, In Optimization and neural network, edité par 
D.Levine (Erlbaum, Hillsdale), 1997. 
[DEN 06] François DENIS et Rémi GILLERON, 
Technique de boosting en apprentissage automatique, 
équipe Grappa, http://www.univ-lille3.fr, LIFL, 
Universités Lille 1 & 3, 2006 
[DUM 05] Emilie Dumont, Liva Ralaivola, Adaboost 
régularisé et  tolérance aux bruit , Laboratoire