Utilisation de la 3D
Les caméras OAK-D de Luxonis sont équipées, en plus d'un capteur couleur, de 2 capteurs monochromes de plus basse résolution, ce qui leur donne la possibilité d'estimer la profondeur d'une image.
Il y a 2 principaux avantages liés à l'utilisation de la profondeur des images captées par la caméra en plus de l'image en couleur :
- Pouvoir situer plus précisément une personne détectée dans l'espace par rapport à la caméra (plutôt que de se baser uniquement sur la projection au sol de la personne)
- Pouvoir situer la caméra dans l'espace, et donc simplifier le regroupement des informations entre les caméras. En effet, au lieu de se baser sur d'autres méthodes comme la ré-identification, qui vont dépendre de l'angle de vue des caméras, et donc avoir des résultats différents entre les caméras, connaître la position approximative de la caméra permet de déterminer la position d'une personne dans l'espace, et d'effectuer les regroupements à partir de cette information là.
Partout dans ce projet, pour tous les objets en 3D, on utilise le système de coordonnées suivant :

Ainsi, dans le repère local d'un objet, le vecteur X correspond à la droite, le vecteur Y correspond au bas, et le vecteur Z correspond à l'avant. C'est le cas pour tous les repères, même le repère global : il faut donc penser au fait qu'une hauteur sera probablement négative.
Ce système de coordonnées à l'avantage d'être assez intuitif à utiliser avec une caméra, car on peut faire correspondre l'axe X et l'axe Y avec avec les coordonnées dans l'espace du pixel d'un écran, et l'axe Z avec la profondeur de l'image. De plus, pour simplifier les changements de repère, utiliser ce système pour le reste des objets permet de ne pas avoir à faire de conversions, et de simplement appliquer une rotation et une translation. Enfin, c'est un système direct, donc il est plus simple de gérer les rotations (règle de la main droite).
Même si les coordonnées dans l'espace des pixels de l'écran et coordonnées dans le repère d'une caméra correspondent assez bien, il ne faut pas oublier que les axes sont inversés quand on manipule les images de la caméra, car elles sont représentées sous forme de matrice, donc la première coordonnée est celle de la ligne, et la deuxième est celle de la colonne, et non l'inverse.