• Aucun résultat trouvé

4.4 Implémentation du module de perception

4.4.5 Implémentation d'un  ÷il virtuel

4.4.5.3 Simulation de la fovéa

La zone fovéale est la zone du champ de vision permettant de faire remonter la majorité des informations provenant de l'environnement. Il a donc été nécessaire de simuler cette zone pour permettre l'extraction d'informations dans l'environnement simulé. Pour cela, deux solu-tions étaient possibles : le traitement d'images ou l'envoi de lasers. La première option impose principalement la reconnaissance de formes, qui peuvent ne pas être entières dans la zone fovéale, elle est donc inutilisable dans notre approche, même si elle est pertinente pour la robotique ou la vision synthétique. Nous avons donc opté pour la seconde solution

L'envoi de lasers est une technique permettant de savoir quel(s) objet(s) se trouve sur le chemin d'un laser tiré sur un pixel d'un rendu caméra en OpenGl. Il s'agit de tirer un laser en ligne droite dans le monde simulé à partir d'un pixel d'une caméra. Ce laser va rencontrer plusieurs objets sur sa trajectoire et il est nécessaire de sélectionner le premier objet rencontré pour savoir quel objet visible est trouvé par le laser.

Nous avons donc créé une zone de caméra correspondant à la zone fovéale de l'÷il, où nous tirons plusieurs lasers pour savoir quel(s) objet(s) est(sont) présent(s) dans la zone fovéale. Il est théoriquement possible de prendre chaque pixel de la zone fovéale pour obtenir tous les objets

4.4. Implémentation du module de perception présents dans la zone, mais cette approche demande tout d'abord énormément de puissance de calcul, et surtout ne rend pas compte de l'acuité maximale de l'÷il. En eet, un humain ne peut distinguer deux objets séparés de moins d'une minute d'arc. Avec une fovéa de 800x800 pixels correspondant à 5 degrés d'angle, un pixel représente 0,375 minute d'arc. Nous avons donc pu limiter le nombre de lasers envoyés dans la zone fovéale, car une minute d'arc correspond à 2,6 pixels.

L'envoi de lasers dansSiVICgrâce à l'OpenGlrepose sur un algorithme permettant de savoir quel objet est traversé par le laser, parmi tous les objets présents dans la scène. Suite à plusieurs tests, nous avons décidé d'optimiser cet algorithme pour gagner en rapidité d'exécution, sans quoi nous devions nous limiter en nombre d'envois de lasers pendant une requête perceptive. Nous avons donc modié l'algorithme pour ne prendre en compte qu'une liste réduite d'objets. Cette liste est accessible par l'interface du module perception. Elle intègre initialement tous les objets de la scène, mais intègre aussi un ltre (inclusif ou exclusif, à la convenance de l'utilisateur) permettant de se limiter à des objets déterminés. Pour notre travail, nous avons listé les objets pertinents pour la simulation de la perception : nous ltrons tous les objets de type décors (arbres, bancs publics, etc.) et ceux utiles à d'autres modules (points de poursuite, points de trajectoires, etc.).

Cette optimisation d'algorithme réalisée, nous avons calculé que l'envoi de 100 lasers pre-nait approximativement 110 ms, moyennant les erreurs des chronomètres Windows de quelques millisecondes. Au vu des données apportées par [Plavsic et al., 2010] ainsi que [Yarbus, 1967] et [Rayner, 1998], mais aussi avec les résultats obtenus pendant notre expérimentation sur les stratégies visuelles (cf.5.2.5 p.154), nous avons décidé que le temps minimal d'une xation pour notre modèle serait de 100 ms : il est possible d'observer des xations à 75 ms, mais l'intégration de l'information n'est pas susante. Ainsi, nous pouvons nous permettre d'envoyer 93 lasers durant une xation. Pour envoyer ces lasers, nous subdivisons une xation en plusieurs envois de 100 ms. Ainsi, pour une xation de 100 ms, nous envoyons d'un seul coup 93 lasers, mais dans la majorité des cas nous envoyons les lasers par paquets pour éviter tout problème de surcharge du CPU (e.g. une xation de 350 millisecondes possèdera 2 paquets de 46 lasers puis un paquet de 1 laser, les 50 dernières millisecondes étant réservées au traitement des objets vus).

Ensuite, nous avons déterminé comment disposer les lasers dans la zone fovéale. Pour cela, il est nécessaire d'avoir une disposition homogène sur le disque. Mais l'utilisation de formules classiques de parcours d'un disque (composées de sinus et cosinus, utilisation de coordonnées polaires, etc.) implique un balayage particulier du disque qui ne convient pas (sens direct, du centre vers la périphérie, etc.). En eet, une xation peut être stoppée net en cas de réception par le module perception d'une nouvelle requête urgente à traiter toute aaire cessante. Nous ne pouvons donc pas nous contenter d'observer le quadrant supérieur droit de la fovéa, par exemple. Il est donc nécessaire d'envoyer les lasers de manière aléatoire dans le disque, avec une disposition nale homogène. Pour cela, nous avons opté pour la création d'un patron permettant de dénir où envoyer les lasers avec sélection aléatoire, car l'utilisation d'algorithmes particuliers (comme la technique  Poisson-Disk Sampling  [McCool and Fiume, 1992] [Jones, 2006]) diminue le temps d'exécution de l'algorithme d'envoi de lasers. Ce patron est présenté gure 41. Lors d'un mouvement de suivi de cible, l'envoi des lasers se fait tout au long du suivi, et la plateforme

SiVIC positionne la caméra avant d'eectuer l'envoi de lasers. Cela permet, à grande vitesse, de tourner la caméra, envoyer les lasers, tourner la caméra, envoyer les lasers, etc.

Figure 41  Disposition des lasers dans le disque représentant la fovéa

Lorsque les lasers ont été envoyés, notre fonction renvoie une liste des objets traversés. Cette liste ne contient que les objets ayant été les premiers sur la trajectoire des lasers. De plus, cette liste contient pour chaque objet, le nombre de lasers l'ayant percuté, ce qui permet d'obtenir un ordre d'idée de la taille de l'objet dans la fovéa. Nous pouvons par exemple, supprimer les objets n'ayant qu'une seule percussion par laser. Enn, une fois la liste obtenue, le module perception peut répondre à la requête perceptive qui l'a amené à regarder dans cette direction et voir les objets de la liste.

Cette technique d'envoi de lasers dans la fovéa peut permettre de nombreuses autres options au sein du module perception, telle que l'estimation de la vitesse d'un objet observé en calculant la diérence de taille estimée entre deux envois globaux de lasers, avec le nombre de lasers percutant l'objet visé. Pour cela il est nécessaire d'augmenter la vitesse de la fonction pour envoyer 200 lasers en moins de 100 ms. Cela rejoint la capacité des êtres vivants à estimer la vitesse relative d'un objet par rapport à eux, en utilisant le grossissement de l'image de cet objet sur leur rétine [Lee, 1980] [Savelsbergh et al., 1991] [Bootsma and Craig, 2002]. Cette méthode permettrait de mettre en place une boucle de régulation très bas niveau au sein du modèle. Elle permettrait de contrôler, par exemple, la régulation de vitesse nécessaire à un suivi de véhicule ou l'activation d'un type de freinage particulier plutôt qu'un autre, grâce à une boucle de régulation ne passant pas par le module tactique du modèle, mais uniquement par les modules de perception et d'exécution d'actions.