Object detection
Généralités
Le logiciel ANDROMEDE propose 4 algorithmes différents pour la détection des particules. Seul le plus simple, Threshold, a été développé spécifiquement. Les autres sont déjà disponibles dans la bibliothèque openCV ou dans le logiciel Tractrac. Pour cette raison, la description sera assez brève et nous renverrons l’utilisateur à d’autres ressources pour l’aspect technique des algorithmes. La description ci-dessous concernera principalement l’utilisation la plus optimale de ces algorithmes dans un contexte de mesure de vitesse de surface.
Le calcul des détections se fait en cliquant sur le bouton Object Detection . Les détections sont alors stockées sous le format (pour chaque point) : Identifiant de la trajectoire, Position X, Position Y, Taille (surface), Intensité. Pour les algorithmes qui ne donnent pas de taille ou d’intensité, ces variables sont égales à 0. Les détections de chaque image sont regroupées par image. Toutes les détections sont stockées à ce stade même si certaines particules seront éliminées par le modèle de déplacement.
Les particules détectées peuvent être visualisées après le calcul en sélectionnant Processed_with_Object ou original_with_Object dans le menu d’affichage. La taille des points sur l’image peut être modifiée avec les flèches haut et bas du clavier.
GoodFeatureToTrack
Cette méthode est basée sur l’algorithme GoodFeatureToTrack d’OpenCV, lui-même issu des travaux de Shi et Tomasi. Elle consiste à déterminer des points d’intérêt définis comme des régions présentant une grande variation d’intensité dans toutes les directions (https://docs.opencv.org/3.4/d9/df8/tutorial_root.html). Dans notre cas, les paramètres modifiables sont le nombre de points et éventuellement le niveau de qualité. Le nombre maximal de points permet de restreindre les détections à un nombre compatible avec le temps de calcul et la mémoire (environ 500 à 2000). Pour trouver un seuil optimal, un traitement préalable est nécessaire. Si le nombre de points est trop élevé, des zones qui ne sont pas des particules sont identifiées. On peut alors diminuer le nombre maximum.
En augmentant le niveau de qualité (par exemple 0.1), seuls les points présentant les plus grandes variations d’intensité seront sélectionnés. Cela permet de se concentrer sur les particules légères sur un fond noir, en filtrant les détections qui ne sont pas des particules. Cependant, il peut être intéressant dans certaines configurations de pouvoir détecter des traceurs avec une gamme d’intensité plus large. C’est par exemple le cas des flotteurs naturels (feuilles) qui passeraient dans des zones plus ou moins éclairées.
La distance minimale est la distance entre 2 particules. Elle dépend de la densité d’ensemencement. Une valeur par défaut égale à la taille des particules semble un bon compromis si la fréquence d’images est suffisamment élevée.
Threshold
La méthode Threshold est un simple seuillage de l’image. Elle est adaptée à un ensemencement avec des particules de tailles et d’intensités différentes. En effet, ces quantités (tailles et intensités) seront stockées pour aider à l’identification du mouvement dans les étapes suivantes (modèle le plus proche). La définition des seuils se fait par lecture directe des valeurs sur l’interface graphique. Les tailles sont données en pixel, la surface prise en compte sera le carré de la valeur donnée. Les intensités sont en rapport avec l’intensité maximale, 1 correspond à l’intensité maximale. Si l’image est colorée, le choix se fait sur chaque bande (non disponible dans la version actuelle sauf en ligne de commande). La méthode suivante “histogramme” est presque similaire mais la taille, la couleur, la bande peuvent être fournies en sélectionnant un objet sur l’image.
Cette méthode est moins efficace lorsque les particules ont la même taille et la même intensité ou lorsque la variation moyenne d’intensité est importante (zone d’ombre en particulier).
Convolution gaussienne : DOG
Cette méthode a été développée dans le logiciel tractrac (https://perso.univ-rennes1.fr/joris.heyman/tractrac.html). Elle consiste à convoluer l’image avec une fonction particulière agissant comme un filtre passe-bande d’une largeur prédéfinie. Cette méthode est adaptée à des particules de même taille, plutôt claires (sur un fond sombre) ou sombres (sur un fond clair). Le paramètre est la taille du pic de convolution (Peak convolution size ) qui est la taille spatiale du filtre. Elle doit correspondre à la taille des particules sur l’image (en pixels). Le paramètre peak neighbor permet de regrouper les pics assez proches sur l’image convoluée (filtrage). On peut proposer une valeur identique à la taille de convolution des pics . La méthode des sous-pixels gaussiens est également préférable.
Enfin, on peut choisir si les particules sont plutôt claires ou sombres afin de rechercher des maximums ou des minimums sur l’image convoluée.
histogramme
La méthode de l’histogramme permet de rechercher dans l’image des motifs dont les histogrammes sont proches. Elle est basée sur les algorithmes #calcHist et #calcBackProject de openCV. Une bonne explication de la méthode est disponible sur https://github.com/L42Project/. Elle est plutôt réservée aux vidéos avec peu de particules ou d’objets ayant les mêmes tailles et intensités. Il faut d’abord définir un nombre de classes correspondant à la discrétisation de l’intensité lumineuse sur l’objet souhaité. Si l’objet est de couleur très différente du reste de l’image, alors peu de classes suffisent et il y a un effet de filtrage qui facilite la détection. On précise alors sur quelle bande la détection va se faire.
Si toutes les couleurs sont représentées dans l’objet, il est recommandé d’utiliser la bande 1 des images HSV.
Si par exemple les particules sont rouges, on pourra prendre la bande 1 des images en RVB.
Si les images sont en niveau de gris, le numéro de bande n’est pas pris en compte.
Lorsque la détection est demandée, une fenêtre apparaît, il faut alors sélectionner la zone représentant l’objet ou le type d’objet à suivre. La sélection se fait en créant un rectangle autour de l’objet. Lorsque la sélection est jugée satisfaisante, appuyez sur la touche “Entrée”. La taille du rectangle choisi est importante car les objets variant de plus de 20% de cette taille ne seront pas détectés.
Manual
Le mode Manual permet à l’utilisateur de sélectionner visuellement les objets à suivre. Le bouton object Detection active le mode. Un clic gauche sur l’image permet de célectionner l’objet, pour changer le temps on peut utiliser les flèches du clavier. Les détections peuvent se faire dasn n’import quel ordre ou en sautant des pas de temps. Lorsque la trajectoire d’un objet est finie on passe à l’autre objet en appyant sur la touche CTRL et en sélectionnant le nouvel objet. Lorsque toutes les trajectoires sont dessinées, un clic droit permet de valider les sélections. Il n’y a pas de besoin de passer par l’étape de motion model et le menu Analysis peut être lancé.