# Détection de personnes

La détection de personnes est un domaine de la vision par ordinateur consistant à détecter un humain dans une image numérique. C'est un cas particulier de détection d'objet, où l'on cherche à détecter la présence et la localisation précise, dans une image, d'une ou plusieurs personnes, en général dans une posture proche de celle de la station debout ou de la marche. On parle également de détection de piéton, en raison de l'importance des applications en vidéosurveillance et pour les systèmes de vision embarqués dans des véhicules.
Étudiée à partir de la fin des années 1990, la détection de personnes s'est révélée être un sujet assez difficile, en raison de la grande variété d'apparences des personnes, de l'articulation du corps humain et des phénomènes d'occultations. Bénéficiant des progrès méthodologiques réalisés en détection de visage, la détection de personnes a inspiré des méthodes spécifiques, comme les histogrammes de gradient orienté, particulièrement performants. Les méthodes les plus efficaces construisent des modèles statistiques par apprentissage supervisé, à partir de caractéristiques de forme ou d'apparence, calculées sur de nombreux exemples d'images de personnes.

## Problématique

La détection de personnes est un sujet particulièrement difficile, en raison notamment de la grande variabilité d'apparences et de situations possibles :
* grande variabilité de l'apparence des êtres humains, ainsi que de leurs vêtements ;
* articulation du corps humain (bras, jambes, torse) ;
* occultations par des objets (mobilier urbain par exemple) ;
* occultations par d'autres personnes et phénomènes de foule.
Généralement, la détection doit s'effectuer dans des conditions difficiles et en environnement non contraint, en utilisant du matériel de prise de vue fournissant des images de faible qualité : caméras de vidéosurveillance de faible résolution, caméras embarquées dans un véhicule, etc.
Le problème est donc de trouver une représentation d'un humain qui soit à la fois suffisamment générique pour englober tous les types de situations, et suffisamment discriminante pour ne représenter que les humains. Pour cela, on utilise en général une représentation intermédiaire, fondée sur le calcul d'une ou plusieurs caractéristiques, permettant de mieux résumer l'information que les seules valeurs des pixels$^,$.

## Historique

Les premiers travaux sur la détection de personnes datent de la fin des années 1990$^,$. Dans l'une des premières méthodes proposées, la stéréovision est utilisée pour détecter des objets au moyen d'une transformée de Hough. La méthode peut détecter des piétons, mais n'est pas exclusive à ce type d'objet. En 1998, Heisele et Wöhler utilisent le mouvement des jambes des piétons pour réaliser la détection et la classification, avec des contraintes sur la localisation des piétons par rapport au sol. Ces méthodes restent cependant spécifiques à une application et peu génériques.
À partir des années 2000, le domaine bénéficie des avancées effectuées en détection de visage et notamment de la méthode de Viola et Jones, qui est étendue en 2005 à la détection de personnes en utilisant le mouvement. La méthode permet une détection plus générique, ne nécessitant pas d'information a priori sur la structure de la scène, et donne de bons résultats avec un temps d'exécution proche du temps-réel. Poussée notamment par les campagnes d'évaluation internationales (e.g PASCAL VOC), la recherche se concentre sur ce type de méthode de détection générique. En 2005, des chercheurs de l'INRIA proposent les histogrammes de gradient orienté (HOG), dont les excellents résultats en font rapidement une méthode standard$^,$. En 2008, des chercheurs de l'Université Rutgers utilisent un descripteur construit comme une matrice de covariance, qui permet d'obtenir des performances encore meilleures. Également en 2008, des chercheurs de l'université de Pékin utilisent avec succès les motifs binaires locaux (LBP), un type de caractéristiques qui s'était révélé efficace en détection de visage.

## Techniques de détection de zones

Il existe un grand nombre de techniques pour la détection de personnes dans une image ou une vidéo numérique, répondant aux différentes contraintes des applications. Certaines peuvent être combinées entre elles (stéréovision, infrarouge et fenêtre glissante par exemple). Dans le cas où l'on maîtrise le système d'acquisition de l'image ou de la vidéo, on peut choisir un système de stéréovision, un système d'imagerie à grande gamme dynamique, ou travailler dans le domaine infrarouge avec une caméra thermique. Les techniques mises en œuvre lorsque l'on recherche une personne dans une image existante, sans aucune information a priori sur le contenu, sont généralement différentes.
Le point commun de ces techniques est de calculer un certain nombre de caractéristiques à partir des pixels de l'image. Celles-ci peuvent être globales ou locales, et rendre compte d'informations de forme, de couleur, de texture ou de mouvement. Les caractéristiques des zones contenant des personnes sont en général utilisées par une méthode d'apprentissage supervisé, qui peut être l'implémentation d'un modèle génératif ou discriminant, pour déterminer un modèle de personne. Ce dernier sert alors à classer une zone de l'image comme étant une personne ou non, à partir d'un vecteur de caractéristiques calculé sur cette zone. Celle-ci peut être déterminée par un pré-traitement, par exemple par la détection du mouvement au moyen d'une étape de soustraction de fond. Une alternative est d'explorer toutes les zones possibles de l'image, comme c'est le cas avec les méthodes de détection par fenêtre glissante.

### Pré-traitement

Certaines méthodes utilisent une étape de pré-sélection des zones à analyser. Ceci permet de réduire la complexité algorithmique ou d'écarter d'emblée toute zone sans intérêt, en particulier en fonction de critères géométriques.

#### Utilisation de la stéréovision

La stéréovision est l'utilisation de plusieurs caméras pour capturer la même scène, vue sous des angles différents, ce qui permet une reconstitution en 3D de la scène.
On peut ainsi, moyennant une calibration des caméras, estimer les distances et la taille des objets. C'est une technique essentiellement utilisée pour les systèmes d'aide à la conduite automobile, application pour laquelle elle se révèle meilleure que les techniques fondées sur une seule vue. L'information 3D est utilisée pour localiser des régions d'intérêts, c'est-à-dire des zones pouvant contenir une personne, à partir de la géométrie de la scène (localisation du sol) et de contraintes géométriques de la région (taille et rapport hauteur/largeur). On suppose souvent par simplification que la route sur laquelle se déplace le véhicule est plane, mais plusieurs méthodes ont été développées pour outrepasser cette hypothèse$^,$. La stéréovision seule ne suffisant pas à détecter des personnes, les régions d'intérêts détectées sont ensuite généralement traitées lors d'une étape de classification.
Les systèmes stéréo présentent plusieurs qualités telle que la possibilité d'évaluer les distances de façon satisfaisante et une bonne robustesse aux variations brusques d'illuminations et occultations$^,$. Ils sont par contre plus lents, le traitement de la stéréovision étant consommatrice en calcul. De plus, ils peuvent présenter des zones aveugles dans les régions non texturées et nécessitent un post-traitement des régions détectées, afin de ne sélectionner que celles pouvant correspondre à une personne, identifiées à partir de contraintes de taille et de distance$^,$.
Les systèmes utilisant la stéréovision peuvent indifféremment être utilisés dans le domaine visible ou infrarouge, ou combiner les deux.

#### Utilisation du mouvement

Quand le système acquiert une vidéo, il est intéressant de tirer parti du mouvement de la personne pour faciliter sa détection. Une étape de segmentation spatiale de l'image en avant et arrière-plan est effectuée préalablement à la détection proprement dite. Cette segmentation se fait généralement en utilisant une méthode de soustraction de fond, qui consiste à estimer un modèle de l'arrière-plan (le fond), qu'il suffit ensuite de soustraire à l'image courante pour en obtenir les parties en mouvement. D'autres méthodes permettant d'obtenir le mouvement sont possibles, comme l'utilisation d'une variante du mean shift. Il s'ensuit une étape de détection de blob, visant à déterminer un ensemble cohérent de pixels formant potentiellement un objet. Les objets détectés sont ensuite analysés afin de déterminer s'ils représentent une personne ou non. On se ramène alors au problème de détection de personnes dans une image fixe, pour lequel on peut extraire plusieurs caractéristiques (forme, couleur, mouvement…) pour la classification.
L'avantage de ces méthodes est de réduire la complexité du problème de classification, en présentant au détecteur un certain nombre de candidats probables. Elles sont par contre dépendantes de la qualité des méthodes de soustraction de fond, qui présentent des limitations, notamment dans des environnements dynamiques (variations brusques de luminosités, mouvements des arbres, etc.). Ce type de méthodes est par ailleurs limité à des scénarios où la caméra est fixe, ce qui est nécessaire afin d'estimer le fond, mais qui restreint en général leur usage à une application de type vidéo-surveillance.

### Détection par fenêtre glissante

La technique la plus générique et aussi la plus employée est la détection par fenêtre glissante, consistant en un parcours exhaustif de l'image, par application du détecteur à de très nombreuses positions et échelles. La détection par fenêtre glissante est surtout utilisée dans des applications où l'information a priori sur le contenu est pauvre, en particulier quand le choix du capteur n'est pas maitrisé. Le balayage de l'ensemble de l'image est alors une méthode privilégiée.
Ce genre de méthode est en général utilisé pour des applications de recherche d'image par le contenu, ou de vidéo-surveillance. Elles sont cependant moins utilisées pour des applications d'assistance à la conduite en raison des contraintes imposées par leur implémentation dans un système embarqué.

#### Différents types de caractéristiques

Si des caractéristiques globales, par exemple fondées sur la détection de contour, ont parfois été utilisées, elles restent cependant assez limitées dans les types d'images qu'elles peuvent traiter, et ont le défaut d'être peu robustes aux occultations. La plupart des systèmes utilisent des caractéristiques locales, telles que les caractéristiques pseudo-Haar. Dans les premiers systèmes développés, les caractéristiques étaient choisies manuellement, en fonction de connaissances a priori, principalement des critères géométriques que doit respecter un objet pour être identifié comme étant une personne. Proposée à l'origine pour la détection de visage, et ensuite étendue à la détection de personnes, la méthode de Viola et Jones permet de s'affranchir de cette étape manuelle en sélectionnant automatiquement les meilleures caractéristiques par AdaBoost.
Une amélioration importante des performances est obtenue par l'introduction d'une nouvelle caractéristique, les histogrammes de gradient orienté (HOG), calculée à partir d'histogrammes de l'orientation du gradient de l'image, sur une grille dense avec des recouvrements. Cette représentation s'est révélée particulièrement efficace, bien qu'assez lente lors de la détection. Utilisés au départ avec un classifieur assez simple, fondé sur les machines à vecteurs de support, la méthode a ensuite été améliorée, en utilisant une cascade de classifieurs, similaire à celle présente dans la méthode de Viola et Jones. Ceci permet des résultats similaires en qualité par rapport aux HOG classiques, mais avec des temps de détection jusqu'à 70 fois plus rapides.
La covariance de région est un descripteur construit comme une matrice de covariance de caractéristiques simples (intensité, gradient), calculée localement sur une région d'intérêt, à l'aide d'une image intégrale. Ce descripteur est appliqué à la détection de personnes, en construisant les matrices de covariance de chaque région à partir d'un ensemble de 8 caractéristiques. La classification est réalisée à partir d'une cascade de classifieurs boostés, en utilisant une variante d'AdaBoost, logitBoost, et en modifiant l'algorithme de classification pour prendre en compte le fait que le descripteur appartient à une variété riemannienne et non à un espace vectoriel classique. Cette méthode obtient d'excellent résultats, supérieurs aux HOG.
Se démarquant des caractéristiques fondées sur le gradient, les motifs binaires locaux (LBP) sont un type de caractéristiques construites comme un code binaire à partir du seuillage local des intensités. Les LBP permettent d'éviter certaines pertes d'informations liées à l'utilisation du gradient, et permettent de capturer d'autres types de structures locales. Des chercheurs de l'université de Pékin ont montré que moyennant une adaptation de la représentation des LBP au problème de détection de personnes, ces caractéristiques permettaient d'obtenir des résultats supérieurs aux HOG et à la covariance de région.

#### Combinaison de caractéristiques

Plusieurs études ont montré que l'utilisation simultanée ou alternée de plusieurs types de descripteurs permettait une amélioration significative des résultats. Par exemple l'utilisation combinée des HOG et LBP permet d'obtenir des résultats supérieurs à une utilisation indépendante. L'utilisation combinée des HOG et des caractéristiques pseudo-Haar permet également d'obtenir de meilleurs résultats$^,$.
L'idée sous-jacente à l'utilisation combinée de plusieurs caractéristiques est qu'elles encodent une information différente dans leur représentation (hautes ou basses fréquences…) et que ces informations sont plus ou moins pertinentes selon les cas. La combinaison de descripteurs permet de pallier certaines déficiences d'une famille de descripteurs. Il est également possible d'utiliser plusieurs familles de descripteurs de façon alternée, en utilisant par exemple les plus rapides au début de la détection et les plus complexes à la fin.

### Détection par parties

Certaines méthodes modélisent une personne comme un ensemble de parties, et cherchent à détecter ces parties du corps indépendamment les unes des autres, avant de fusionner l'ensemble des indices. Wu et Nevatia proposent des détecteurs à base de classifieurs faibles boostés, utilisant des caractéristiques locales fondées sur la forme, nommées edglets. Ils séparent le corps en trois parties : tête-épaules, torse, jambes. Mikolajczyk, Schmid et Zisserman divisent quant à eux une personne en sept parties, et entraînent pour chacune de ces parties un détecteur fondé sur la méthode de Viola et Jones appliquée à des caractéristiques d'orientation similaires aux SIFT. La combinaison des réponses des détecteurs de parties est réalisée dans un cadre probabiliste bayésien.
Ces approches, grâce à leur fonctionnement par parties, sont certes construites pour être robustes aux occultations ainsi qu'aux variations d'apparences dues à l'articulation du corps humain, mais la détection d'une partie du corps reste une tâche très difficile.

### Détection dans le domaine infrarouge

Le domaine infrarouge possède des propriétés intéressantes pour la détection de personnes, en particulier pour les applications de vidéo-surveillance ou de sécurité automobile, qui doivent être opérationnelles à toute heure, y compris la nuit ou dans des conditions d'illumination difficiles. L'image produite par une caméra infrarouge est fondée sur l'émission de chaleur dans la scène, apportant ainsi des informations différentes de celles du spectre visible. Le corps humain est généralement une source de rayonnement suffisamment forte et localisée pour être différenciée de son environnement, et donc être détectable. Cela permet de s'affranchir des problèmes d'illumination, ainsi que de l'ombre. Toutefois, d'autres corps peuvent également émettre de la chaleur (véhicules, animaux…) et l'image pouvant être très bruitée, particulièrement en environnement urbain, il s'avère donc toujours nécessaire de détecter une personne à partir de caractéristiques d'apparence et de forme.
Les mêmes types de méthodes que dans le domaine visible peuvent aussi s'appliquer : soustraction de fond, détection par fenêtre glissante… Zhang, Wu et Nevatia ont à ce titre montré qu'il est possible d'obtenir les mêmes performances dans le domaine infrarouge en utilisant certaines des méthodes développées pour le domaine visible, en particulier les HOG. Certaines méthodes connaissent toutefois des pertes de performances, dues au fait que les images infrarouges sont moins texturées que dans le visible.

## Modèles pour la classification

La majorité des techniques de détection de personnes utilise un modèle statistique entraîné avec des vecteurs de caractéristiques calculés sur de nombreux exemples d'images de personnes. Le modèle détermine ainsi la fonction de décision qui permet de séparer au mieux les exemples positifs (représentant une personne) des exemples négatifs (le reste).
Les modèles discriminants cherchent à déterminer la meilleure frontière de décision permettant de trouver l'hyperplan optimal séparant les vecteurs positifs des vecteurs négatifs dans l'espace de représentation des vecteurs. Les machines à vecteurs de support font partie des modèles les plus employés et les plus efficaces dans ce domaine. Ils ont été utilisés pour la détection de personnes avec un noyau linéaire, des noyaux gaussiens ou polynomiaux. Un autre type de modèle discriminant très utilisé est la cascade de classifieurs boostés, construite comme dans la méthode de Viola et Jones. L'emploi d'un classifieur dans une structure en cascade permet d'obtenir des temps de détection très courts, les performances en détection dépendant des caractéristiques et des classifieurs faibles utilisés. Les réseaux de neurones peuvent également être employés, par exemple un perceptron multicouche modifié afin que les neurones cachés ne reçoivent leurs entrées que d'une région spatiale locale.
Des modèles génératifs ont également été utilisés, mais ils restent néanmoins moins répandus. Ceux-ci modélisent explicitement la loi jointe des observations et des classes. Certains auteurs utilisent un modèle génératif pour générer des échantillons afin d'améliorer l'apprentissage d'un modèle discriminant, qui est utilisé pour la classification proprement dite.

## Évaluation et performances

Afin de connaitre précisément les performances des différents algorithmes, des bases d'images et de vidéos contenant des personnes ont été constituées et la position de chaque personne annotée manuellement. Ceci permet de juger les performances de l'algorithme de détection, par rapport à une « vérité terrain (en) » estimée par un humain. Certaines de ces bases ont été rendues publiques, ce qui permet la comparaison entre plusieurs algorithmes. L'une des bases les plus utilisées quelle que soit l'application envisagée est la base INRIA, constituée par Dalal et Triggs en 2005$^,$$^,$. Des bases plus spécialisées existent, comme les bases Daimler, plus orientées vers la détection de piétons vu d'une automobile$^,$. La base Caltech est également destinée à cette application et contient 10 heures de vidéo, enregistrées à partir d'un véhicule en mouvement. Ces bases doivent être représentatives de situations réelles, et contenir des cas difficiles : occultations, groupes de personnes, variations de luminosité, etc. Des bases spécifiques existent pour les données de stéréovision.
La mesure des performances peut se faire par image ou par fenêtre. La mesure par image consiste à mesurer la performance finale dans l'image : une personne est correctement détectée (vrai positif), manquée (faux négatif), ou le détecteur s'est trompé (faux positif, fausse alarme). Une détection est considérée comme correcte si elle partage une surface commune avec la vérité terrain supérieure à un seuil défini (un taux de 50 % est considéré comme raisonnable). La mesure par fenêtre est spécifique aux algorithmes fonctionnant par fenêtre glissante : on mesure les performances dans chaque fenêtre testée, qui est soit positive ou négative. Cette mesure est assez utilisée en détection de personnes, à la suite de son utilisation par Dalal et Triggs pour les HOG. Elle est toutefois critiquée par certains auteurs, qui lui reprochent de ne pas mesurer véritablement la performance finale de la détection, ni d'être suffisamment générique, de nombreux algorithmes n'utilisent pas de fenêtres glissantes.
La détection de personnes est une tâche assez difficile, les performances des différents algorithmes restent assez modestes. Ainsi, les HOG, considérés comme l'une des meilleures méthodes existantes$^,$$^,$, obtiennent un taux de rappel de 80 % sur la base INRIA, et de 60 % sur la base Caltech, pour un taux de 1 fausse alarme par image$^,$. Les performances dépendent toutefois beaucoup de la base de test et de la base d'apprentissage. Les algorithmes ont des difficultés à gérer les occultations, les faibles résolutions, les objets de ratio largeur/hauteur non standards. Les méthodes obtenant les meilleurs résultats sont celles qui utilisent plusieurs types de caractéristiques différentes (HOG+Haar, HOG+LBP).

## Applications
### Vidéo Surveillance

L'une des applications les plus importantes de la détection de personnes est la vidéo-surveillance. Elle peut permettre la détection d'intrusion dans des zones interdites (par exemple un piéton sur l'autoroute), le comptage de personnes, l'estimation et la visualisation des flux de personnes (par exemple dans les gares et stations de métro), l'aide à l'analyse vidéo, etc. La détection de personnes sur des flux vidéo de surveillance sur de longues périodes de temps permet aussi d'obtenir des statistiques sur l'usage d'un lieu en fonction du temps, constituant ainsi une aide intéressante à la planification, en fournissant des évaluations chiffrées des flux de personnes au cours du temps. La détection de personnes peut également servir d'étape d'initialisation à un algorithme de suivi de personne.

### Sécurité routière

Des systèmes d’aide à la conduite permettent de détecter piétons et cyclistes dans un certain rayon autour du véhicule.
Les systèmes anti-collision Mobileye avertissent le conducteur en temps réel via des alertes sonores et visuelles dès qu’une situation est jugée dangereuse.

### Autres

Une autre application importante se trouve dans les systèmes d'assistance à la conduite automobile. Le but est de concevoir des systèmes intelligents capables d'avertir ou de prévenir les accidents, en surveillant les alentours du véhicule par une ou plusieurs caméras. Le système de détection peut soit prévenir le conducteur de la présence d'un piéton, soit directement agir sur les freins du véhicule$^,$. Les systèmes de détection de piétons sont également considérés nécessaires pour les systèmes de conduite automatisés
La détection de personnes se rencontre aussi dans la recherche d'images par le contenu et l'indexation d'images et de vidéos. Déterminer si une ou plusieurs personnes sont présentes dans une image et indiquer à quel endroit elles apparaissent est une information sémantique importante, permettant d'améliorer la compréhension du sens de l'image. C'est également une technologie intéressante en robotique (car permettant aux robots de « distinguer » les humains), ou pour des interfaces homme-machine avancées.