Brevet FR3154526A1 — publié le 20250425

Dispositif d’interface utilisateur en trois dimensions Un dispositif d’interface utilisateur en trois dimensions comprend : * une caméra (4) de type stéréoscopique ou temps de vol, agencée pour retourner une image associée à un marqueur de temps, les données issues de la caméra (4) permettant en outre d’associer à chaque pixel de ladite image des données de profondeur, * un détecteur (6) agencé pour analyser l’image associée à un marqueur de temps donné et pour retourner une région d’interaction dans ladite image, et * un calculateur (8) agencé pour retourner des données d’interaction tirées de la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées. Fig.1 Dispositif d’interface utilisateur en trois dimensions L’invention concerne le domaine des interfaces utilisateur, et en particulier les interfaces utilisateur en trois dimensions. Les interfaces utilisateur représentent un domaine dans lequel un travail conséquent a été réalisé. Dans le cas des ordinateurs, les interfaces sont divers types de souris et claviers qui permettent d’interagir avec un affichage sur un écran. Plus récemment, avec l’essor des tablettes et smartphones, les interfaces sont devenues tactiles et/ou sans fil. Toutes ces interfaces sont basées sur l’interaction d’un utilisateur avec un écran. Avec l’avènement de la réalité virtuelle et de la réalité augmentée, le médium d’interaction pour les interfaces utilisateur a changé, puisque les écrans ont été remplacés par l’environnement de l’utilisateur. Lorsque les dispositifs réalisent un suivi du mouvement de l’utilisateur ou de sa main, ces données ne sont pas exploitées pour définir une interaction. A ce changement de paradigme s’ajoute le défi de la détection des mouvements de l’utilisateur, puisque l’environnement de l’utilisateur est en trois dimensions. Pour détecter un mouvement ou une interaction de l’utilisateur dans le cadre des applications de réalité virtuelle ou de réalité augmentée, des dispositifs additionnels ont été traditionnellement utilisés pour permettre de détecter les déplacements de l’utilisateur, comme des manettes ou des joysticks, en général équipés de capteurs inertiels. Avantageusement, ces dispositifs additionnels sont généralement munis de boutons, qui permettent des interactions manuelles à l’utilisateur. L’utilisation de dispositifs additionnels est encombrante, peu pratique, nécessite de nouveaux apprentissages et pose des problèmes de batteries. Pour cette raison, de nouvelles interfaces utilisateur en trois dimensions sont souhaitées qui permettent une application plus pratique de la réalité virtuelle ou de la réalité augmentée. L’invention vient améliorer la situation. À cet effet, elle propose un dispositif d’interface utilisateur en trois dimensions comprenant une caméra de type stéréoscopique ou temps de vol, agencée pour retourner une image associée à un marqueur de temps, les données issues de la caméra permettant en outre d’associer à chaque pixel de ladite image des données de profondeur, un détecteur agencé pour analyser l’image associée à un marqueur de temps donné et pour retourner une région d’interaction dans ladite image, et un calculateur agencé pour retourner des données d’interaction tirées de la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées. Ce dispositif est particulièrement avantageux car il permet de détecter une interaction d’un utilisateur avec son environnement, que ce soit dans un environnement de réalité virtuelle ou dans un environnement de réalité augmentée, de manière extrêmement efficace et peu coûteuse en puissance de calcul. De plus, ce dispositif évite l’utilisation d’un dispositif additionnel. Selon divers modes de réalisation, l’invention peut présenter une ou plusieurs des caractéristiques suivantes : - le détecteur ou le calculateur est agencé pour associer une boîte englobante à chaque région d’interaction, et dans lequel le calculateur est agencé pour comparer les coordonnées des pixels de cette boîte englobante et les données de profondeur qui leur sont associées aux des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées, - le calculateur est agencé pour retourner des données d’interaction indiquant un toucher dès que la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées indique que les coordonnées de pixels de la région d’interaction présentent une distance aux coordonnées des pixels de la zone d’interaction inférieure à un premier seuil donné, et que les données de profondeur associées aux pixels de la région d’interaction présentent une distance aux données de profondeur associées aux pixels de la zone d’interaction inférieure à un deuxième seuil donné, - le calculateur est agencé pour retourner des données d’interaction indiquant un geste lorsque que calculateur détecte des données d’interaction indiquant un toucher dans des images dont les marqueurs de temps sont consécutifs, et lorsque l’interaction déterminée dans les images dont les marqueurs de temps sont consécutifs correspond à un déplacement sur la zone d’interaction définissant une forme choisie, - le détecteur comprend un réseau de neurones de type YOLOV, ou un R-CNN, ou un SSD entraîné pour détecter une région d’interaction, - le détecteur est agencé, après détection d’une région d’interaction, pour traiter certaines au moins des images présentant un marqueur de temps ultérieur avec un algorithme de suivi du déplacement du type pour déterminer la région d’interaction, - le détecteur est agencé pour exécuter un algorithme de suivi du déplacement du type Deep Sort, FairMOT, TransMOT, ou ByteTrack, - le détecteur est agencé pour traiter avec l’algorithme de suivi du déplacement les images dont les marqueurs de temps sont compris entre les marqueurs de temps de deux images qui sont traitées par ledit réseau de neurones et qui présentent des marqueurs de temps dont la différence correspond à la durée de traitement d’une image par ledit réseau de neurone, et - le détecteur est agencé pour déterminer plusieurs régions d’interaction dans une image donnée. L'invention concerne également un dispositif de réalité virtuelle ou de réalité augmentée qui comprend un dispositif selon l'invention, et en ce qu’il est agencé pour utiliser les données d’interaction. L’invention concerne également un procédé de détection d’interaction en trois dimensions comprenant les opérations suivantes : a) acquérir des images avec une caméra de type stéréoscopique ou temps de vol, agencée pour retourner une image associée à un marqueur de temps, les données issues de la caméra permettant en outre d’associer à chaque pixel de ladite image des données de profondeur, b) analyser l’image associée à un marqueur de temps donné, retourner une région d’interaction dans ladite image, c) retourner des données d’interaction tirées de la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées. Selon divers modes de réalisation, le procédé selon l’invention peut présenter une ou plusieurs des caractéristiques suivantes : - l’opération b) ou l’opération c) comprend associer une boîte englobante à chaque région d’interaction, et dans lequel l’opération c) comprend comparer les coordonnées des pixels de cette boîte englobante et les données de profondeur qui leur sont associées aux des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées, - l’opération c) comprend retourner des données d’interaction indiquant un toucher dès que la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées indique que les coordonnées de pixels de la région d’interaction présentent une distance aux coordonnées des pixels de la zone d’interaction inférieure à un premier seuil donné, et que les données de profondeur associées aux pixels de la région d’interaction présentent une distance aux données de profondeur associées aux pixels de la zone d’interaction inférieure à un deuxième seuil donné, et - l’opération c) comprend retourner des données d’interaction indiquant un geste lorsque que l’opération c) retourne des données d’interaction indiquant un toucher dans des images dont les marqueurs de temps sont consécutifs, et lorsque l’interaction déterminée dans les images dont les marqueurs de temps sont consécutifs correspond à un déplacement sur la zone d’interaction définissant une forme choisie. L’invention concerne également un procédé de détermination d’interaction en réalité augmentée ou en réalité virtuelle comprenant les opérations suivantes : 1) présenter une image de réalité augmentée ou de réalité virtuelle à un utilisateur, 2) exécuter un procédé de détection d’interaction en trois dimensions selon l'invention pour déterminer l’interaction de l’utilisateur avec l’environnement défini par l’image de réalité augmentée ou de réalité virtuelle à un utilisateur. L’invention concerne également un programme informatique comprenant des instructions pour exécuter le procédé selon l'invention, un support de stockage de données sur lequel est enregistré un tel programme informatique et un système informatique comprenant un processeur couplé à une mémoire, la mémoire ayant enregistré un tel programme informatique. D’autres caractéristiques et avantages de l’invention apparaîtront mieux à la lecture de la description qui suit, tirée d’exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : - la FIG. 1 représente un diagramme schématique d’un dispositif selon l’invention, - la FIG. 2 représente un exemple de boucle de fonctionnement du dispositif de la FIG. 1 , - la FIG. 3 représente un exemple d’utilisation du dispositif de la FIG. 1 , et - la FIG. 4 représente un autre exemple d'utilisation du dispositif de la FIG. 1 . Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. La FIG. 1 représente schématiquement un dispositif d’interface utilisateur en trois dimensions 2 selon l’invention. Le dispositif 2 comprend une caméra 4, un détecteur 6, un calculateur 8 et une mémoire 10. Dans l’exemple décrit ici, la caméra 4 est une caméra stéréoscopique, par exemple du modèle OAK-D W PoE. D’autres caméras stéréoscopiques pourront être utilisées. En variante, la caméra 4 pourrait être une caméra à temps de vol. Dans les deux cas, la caméra 4 est agencée pour capturer un environnement utilisateur qui comprend au moins la partie de l’utilisateur qui est prévue pour être utilisée pour réaliser l’interaction d’interface. Par exemple, cette partie de l’utilisateur peut être un doigt, et l’interaction peut être du type « clic » ou dérivé, et cette interaction peut correspondre au fait que l’utilisateur appuie avec son doigt sur une surface donnée, ou sur un emplacement donné. Dans un exemple d’application de réalité augmentée, un bouton peut être ajouté sur une surface de l’environnement, et l’interaction d’interface être détectée lorsque l’utilisateur appuie avec son index sur ce bouton virtuel. L’environnement étant celui de l’utilisateur, il est nécessairement en 3 dimensions, ce qui rend difficile la détection. L’utilisation d’une caméra 4 stéréoscopique ou à temps de vol permet de produire des images en deux dimensions de l’environnement de l’utilisateur dans lesquelles des informations de profondeur peuvent être ajoutées. La caméra 4 est dans l’exemple décrit ici de type numérique, c’est-à-dire que les données qu’elles capturent sont sous forme de fichier et ne sont pas analogiques. Ces fichiers présentent une fréquence de vidéo qui dépend de la fréquence d’acquisition de la caméra 4. Ainsi, les données issues de la caméra peuvent être vues comme des suites d’images chacune associée à un marqueur de temps qui se succèdent à la fréquence de vidéo. Chaque image acquise par la caméra 4 associe à chaque pixel qui la compose des données de couleurs. Du fait de l’utilisation d’une caméra stéréoscopique ou à temps de vol, il est possible d’associer des données de profondeur relative à la caméra à chaque pixel de l’image acquise par la caméra 4. L’information de profondeur étant disponible pour chaque pixel, cela permet comme on le verra plus bas de déterminer une interaction entre l’utilisateur et son environnement. La dimension de profondeur indique pour chaque pixel une profondeur par rapport à la caméra. Lorsque l’on considère les coordonnées d’un pixel et la dimension de profondeur qui lui est associée, on ne peut pas parler de coordonnées en 3 dimensions, car les données de profondeur ne sont pas considérées dans le même repère que les coordonnées des pixels. Plutôt, les images associées aux données de profondeur donnent des informations en 2+1 dimensions : 2 dimensions indiquant les coordonnées de chaque pixel de l’image, et une dimension de profondeur associée à chaque pixel de l’image capturée par la caméra, représentant la distance de ce pixel par rapport au point de référence. Dans le cas de la caméra de type OAK-D W PoE, chaque image associe directement à chaque pixel un triplet de coordonnées en 2+1 dimensions tel que décrit au paragraphe précédent. Ainsi, chaque image permet d’accéder directement aux données de profondeur. Cela est particulièrement avantageux car les données de profondeur sont directement accessibles sans qu’aucun calcul ne soit nécessaire. Comme on le verra plus bas, disposer directement de ces données permet d’augmenter la fréquence à laquelle le dispositif 2 peut réaliser la détection d’interaction. En variante, la caméra 4 peut retourner, en plus des données d’image (c’est-à-dire les données de couleur de chaque pixel), des données qui permettent de déterminer les données de profondeur pour chaque point de l’image. Dans ce cas, la caméra 4 produit donc des données d’image associées à un marqueur de temps, ainsi que des données qui permettent de déterminer les données de profondeur pour chaque pixel de l’image. Toutes ces données sont stockées dans la mémoire 10. La mémoire 10 peut être tout type de stockage de données propre à recevoir des données numériques : disque dur, disque dur à mémoire flash, mémoire flash sous toute forme, mémoire vive, disque magnétique, stockage distribué localement ou dans le cloud, etc. Dans l'exemple décrit ici, la mémoire 10 reçoit en outre toutes les données qui concernent le dispositif 2, c’est-à-dire les programmes et logiciels instanciant le détecteur 6 et le calculateur 8, les paramètres et hyperparamètres des réseaux de neurones qui peuvent les composer, les poids de tels réseaux de neurones, les sorties et données intermédiaires des réseaux de neurones, les données reçues en entrée (le cas échéant), les données stockées en mémoire tampon, ainsi que les données d’interaction en sortie. Les données calculées par le dispositif peuvent être stockées sur tout type de mémoire similaire à la mémoire 10, ou sur celle-ci. Ces données peuvent être effacées après que le dispositif a effectué ses tâches ou conservées. La détection d’interaction repose sur le principe suivant : une interaction de l’utilisateur avec son environnement peut être définie comme toute correspondance entre d’une part une portion de l’image qui correspond à une partie de l’utilisateur sensée générer l’interaction (par exemple un doigt) et une portion de l’image qui correspond à un élément d’interaction (par exemple un bouton ajouté en réalité augmentée, ou une surface pour définir un clic). Il y a donc deux étapes : une première étape pour déterminer dans une image quelle portion correspond à la partie de l’utilisateur sensée générer l’interaction, et ensuite une deuxième étape pour déterminer si cette portion d’image correspond à une interaction compte tenu de la portion de l’image qui correspond à un élément d’interaction. Le détecteur 6 est utilisé pour réaliser la première étape, tandis que le calculateur 8 est utilisé pour réaliser la deuxième étape. Dans l’exemple décrit ici, le détecteur 6 et le calculateur 8 accèdent directement ou indirectement à la mémoire 10. Ils peuvent être réalisés sous la forme d’un code informatique approprié exécuté sur un ou plusieurs processeurs. Par processeurs, il doit être compris tout processeur adapté aux calculs décrits plus bas. Un tel processeur peut être réalisé de toute manière connue, sous la forme d’un microprocesseur pour ordinateur personnel, portable, tablette ou smartphone, d’une puce dédiée de type FPGA ou SoC, d’une ressource de calcul sur une grille ou dans le cloud, d’une grappe de processeurs graphiques (GPUs), d’un microcontrôleur, ou de toute autre forme propre à fournir la puissance de calcul nécessaire à la réalisation décrite plus bas. Un ou plusieurs de ces éléments peuvent également être réalisés sous la forme de circuits électroniques spécialisés tel un ASIC. Une combinaison de processeur et de circuits électroniques peut également être envisagée. Des processeurs dédiés à l’apprentissage automatique pourront aussi être envisagés. Dans l’exemple décrit ici, le détecteur 6 comprend un réseau de neurones qui est entraîné spécifiquement pour détecter la partie de l’utilisateur dans les images qui est utilisée pour réaliser l’interaction. Cette partie est appelée par la suite « région d’interaction ». Par exemple, un moteur de type YOLOv7, qui est reconnu dans le domaine de la détection d’objets, peut-être entraîné pour distinguer des doigts humains – les doigts constituent alors la région d’interaction recherchée dans les images acquises par la caméra 4). L’article de Wang, Chien-Yao & Bochkovskiy, Alexey & Liao, Hong-yuan. (2022), “ YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors ”, 10.48550/arXiv.2207.02696 décrit l’architecture de ce moteur. Pour cela, un jeu de données d’entraînement spécifique des mains humaines peut être utilisé afin de spécialiser le moteur du détecteur 6 dans la détection d’un doigt sur une image acquise par la caméra 4, quelle que soit sa taille, forme, couleur, couverture par un gant, etc. En variante, le moteur YOLOv7 pourrait être remplacé par un R-CNN (Réseau Neuronal Convolutif basé sur des Régions) ou encore un SSD (pour « Single Shot Detector » en anglais ou Détecteur Monocoup). Une fois que le détecteur 6 a détecté un doigt dans une image issue de la caméra 4, le suivi du déplacement de celui-ci dans les images suivantes peut être réalisé au moyen d’un algorithme de type Deep Sort. Cet algorithme est décrit à l’adresse https://github.com/levan92/deep_sort_realtime. En variante, il serait possible d’utiliser l'algorithme FairMOT, l’algorithme TransMOT, ou encore l’algorithme ByteTrack. La mise en œuvre par le détecteur 6 de l’algorithme Deep Sort présente l’avantage d’augmenter la fréquence de traitement car cet algorithme est moins coûteux en temps de calcul que le réseau de neurones. En effet, l’algorithme de type Deep Sort permet un traitement image par image (c’est-à-dire qu’il est inférieur à la fréquence d’acquisition de la caméra 4), alors que la caméra 4 acquiert plusieurs images pendant que le réseau de neurones en traite une. Avantageusement, pour compenser le fait que l’algorithme de type Deep Sort est moins précis que la détection par le réseau de neurones 6, une alternance entre le réseau de neurones et l’algorithme de type Deep Sort peut être réalisée en utilisant un tampon : - le réseau de neurones est lancé sur une image plus loin dans le temps correspondant à l’extrémité la plus avancée dans le temps du tampon, - pendant le temps de traitement de cette image par le réseau de neurones 6, les images précédentes dans le tampon sont traitées par l’algorithme de type Deep Sort pour suivre le doigt dans chaque image, et - lorsque le traitement de l’image par le réseau de neurones est terminée, le doigt est détecté à nouveau avec une grande précision, ce qui permet de réaliser ce que l’on qualifie usuellement une opération de réconciliation. Toujours en variante, l’algorithme de suivi pourrait ne pas être utilisé et le détecteur 6 pourrait appliquer le moteur de type YOLOv7 en continu. Le moteur du détecteur 6 peut également être entraîné avec toute autre partie du corps de l’utilisateur susceptible d’être utilisée comme région d’interaction, que ce soit sa tête, une jambe, un pied, ou un instrument porté par l’utilisateur. Le plus important est qu’en sortie du détecteur 6, grâce aux coordonnées de profondeur associées à chaque pixel de l’image grâce à l’acquisition de la caméra 4, la profondeur des pixels dans la région d’interaction sont disponibles dans chaque image. Une fois le données de profondeur et les pixels de la région d’interaction connues, le calculateur 8 peut agir pour déterminer la présence d’une interaction ou son absence. Cela est très simplement réalisable en déterminant si, dans une image donnée, les coordonnées de la région d’interaction correspondent aux coordonnées de la portion de l’environnement utilisateur qui est dédiée à l’interaction. Selon le type d’interaction détectée mise en œuvre, le calculateur 8 peut être mis en œuvre de diverses manières. En effet, selon une première approche, la détection d’une interaction peut être déclenchée par la détection du contact avec une surface, quelle qu’elle soit. Dans ce cas, le calculateur 8 peut déterminer une boîte englobante (« bounding box » en anglais) autour de la région d’interaction déterminée dans une image donnée, et chercher si cette boîte englobante correspond à une surface dans l’image. Par correspondre à une surface, il doit être entendu que la boîte englobante présente une distance à une surface de l’environnement utilisateur inférieure à un seuil donné, par exemple 5mm, ce qui revient à dire qu’un ou plusieurs pixels dans l’image qui sont voisins de la boîte englobante présentent des données de profondeur dont la différence aux données de profondeur de la boîte englobante est inférieure au seuil donné. En variante, le calculateur 8 peut opérer sans boîte englobante, par exemple en déterminant un contour de la région d’interaction ou avec un seuil différent et/ou adaptatif en fonction de la distance entre l’utilisateur et la caméra 4. La boîte englobante ou son équivalent peut également être déterminée par le détecteur 6 et non par le calculateur 8. Ce type de détection est particulièrement facilité grâce aux coordonnées en 2+1 dimensions auxquelles le calculateur 8 a accès. Dans une version où les interactions sont plus complexes, l’interaction peut être par exemple caractérisée par le fait de toucher une région particulière de l’environnement, par exemple un bouton virtuel affiché en surimpression sur une manche d’un vêtement porté par l’utilisateur, ou un autre type de région d’intérêt dans l’environnement. Dans ce cas, la détection est un peu plus sophistiquée, car il faut détecter que la région d’interaction est en contact avec une partie de l’environnement de l’utilisateur, mais pas avec n’importe quelle partie. Ainsi, la détection d’une partie ajoutée en réalité augmentée sera plus simple que la détection d’une partie choisie arbitrairement dans l’environnement, par exemple un interrupteur dans une pièce. Dans le premier cas, il s’agit de recaler dans chaque image acquise l’emplacement dans cette image de la partie ajoutée en réalité augmenté. Dans l’exemple du deuxième cas, il faudra détecter l’interrupteur en plus de la région d’interaction et comparer ses données de profondeur à celles de la région d’interaction et vérifier que les pixels de l’image leur correspondant sont suffisamment proches. Dans les deux exemples précédents, les interactions détectées sont de type « toucher ». Il va de soi que les interactions peuvent être plus complexes. Par exemple, le détecteur 6 peut être adapté pour détecter plusieurs régions d’interaction, par exemple plusieurs doigts, ce qui permet de réaliser des interactions à contacts multiples (« multitouch » en anglais), ou encore détecter de la frappe sur un clavier virtuel. De même, le calculateur 8 peut être configuré pour détecter des interactions du type gestes (« gestures » en anglais), dans le sens des interactions gestuelles des navigateurs web, c’est-à-dire conditionnées par la détection d’une interaction de type click maintenu sur plusieurs images consécutives. Là encore, il s’agit d’une extension assez directe une fois que la détection du toucher est acquis. La FIG. 2 représente un exemple de boucle de fonctionnement du dispositif de la FIG. 1 . Dans une opération 200, la boucle de fonctionnement commence par l’acquisition d’une image par la caméra 4. Cette acquisition est réalisée par l’exécution d’une fonction Acq(). Cette fonction repose sur la récupération de l’image Img capturée par la caméra 4, ainsi que la détermination des données de coordonnées Coord[] pour chacun des points de cette image. Comme décrit plus haut, les données de coordonnées Coord[] peuvent être directement disponibles en sortie de la caméra 4, ou faire l’objet d’un post-traitement. Ensuite, dans une opération 210, une fonction Detect() appelle le détecteur 6 avec l’image Img pour tenter d’y détecter une région d’intérêt, c’est-à-dire détecter si l’image Img contient une portion qui correspond à un doigt ou une autre forme déterminée comme servant à déterminer l’interaction. Le résultat (potentiellement vide) est stocké dans un vecteur RI[] qui peut recevoir soit les coordonnées de la forme de la région d’interaction détectée dans l’image Img, soit les coordonnées en trois dimensions correspondant à la région d’interaction dans l’image Img, soit une forme tirée de la forme de la région d’interaction, par exemple une boîte englobante, ou encore les coordonnées en trois dimensions associées à cette boîte englobante. Une opération 220 détermine alors si le vecteur RI[] est vide, ce qui signifie qu’aucune région d’interaction n’a été détectée dans l’opération 210, ou si le calculateur 8 doit être appelé afin de tester si une interaction est détectée. Si le vecteur RI[] est vide, alors la boucle se termine et la boucle suivante reprend avec l’opération 200. Si le vecteur RI[] n’est pas vide, alors la boucle se poursuit avec l’appel du calculateur 8 pour déterminer si une interaction vient d’être détectée. Comme expliqué plus haut, la fonction Calc() de détection d’interaction dépend grandement du type d’interaction à détecter. La fonction Calc() mettra donc en œuvre divers calculs selon qu’une interaction simple avec n’importe quelle surface est à détecter, une interaction avec une portion précise de l’environnement utilisateur, une interaction à toucher multiple, ou de type gestuelle, etc. Bien que la FIG. 2 représente une boucle qui apparaît linéaire, certaines étapes pourront être réalisées de manière asynchrone. Ainsi, la caméra 4 acquiert des images en continu, à sa fréquence d’acquisition, de sorte que c’est principalement la fréquence de production des coordonnées en trois dimensions de l’opération 200 qui est pertinente. L’opération 210 peut, elle, être réalisée sur toutes les images, ou être volontairement omise pour certaines images en fonction de la vitesse de traitement par le réseau de neurones du détecteur 6. De plus, comme décrit plus haut, le suivi de la région d’intérêt dans le détecteur 6 peut être réalisé par un algorithme autre que le réseau de neurones une fois qu’une première détection de la région d’intérêt a eu lieu. De la même manière, l’opération 220 peut être réalisée à une fréquence distincte en fonction des temps de calcul qui lui sont associés. In fine, le rendu sur un écran ou autre élément de rendu d’interaction peut être calé sur la fréquence la plus faible de toutes les fréquences évoquées ci-dessus. Bien que le détecteur 6 et le calculateur 8 aient été présentés ici sous la forme de deux unités distinctes, cette distinction est principalement fonctionnelle. Ainsi, leurs opérations pourraient être réalisées au sein d’un unique module fonctionnel, ou au contraire être découpées plus finement en sous modules. Ce qu’il ressort de ce qui précède, c’est que l’invention s’appuie sur deux principes forts : - la possibilité, avec des caméras modernes, d’obtenir directement ou quasi-directement en sortie de capteur des coordonnées en 2+1 dimensions pour chacun des pixels des images vidéo acquises par la caméra, - le traitement de l’image pour détecter une ou plusieurs régions d’intérêt et éventuellement une ou plusieurs zones d’interaction grâce à un moteur d’intelligence artificielle, Une fois les portions pertinentes de l’image déterminées, utiliser les coordonnées en 2+1 dimensions qui leur correspondent afin de déterminer s’il y a interaction. Une fois cette idée énoncée, elle paraît presque évidente. Pour autant, avant que des caméras permettant d’avoir une précision suffisante en profondeur n’existent, il était hors de question d’envisager la question. Et même une fois que celles-ci sont devenues disponibles, l’idée de traiter l’image au moyen d’un réseau de neurones pour ségréguer les coordonnées en 2+1 dimensions pertinentes pour déterminer l’existence d’une interaction est elle-même extrêmement innovante. En effet, l’invention utilise à la fois des coordonnées de pixel dans l’image et des données de profondeur qui sont elles liées à un repère réel, ce qui n’est pas classique, et permet de combiner à la fois les avantages liées à l’acquisition par les caméras et la rapidité d’un traitement d’image combinée au fait qu’il est plus facile de déterminer si des points voisins d’une image en deux dimensions présentent des données de profondeur similaires que de chercher à reconstruire une image en trois dimensions de l’environnement et y déterminer des objets pour voir si ceux-ci sont en contact. En outre, l’invention mélange plusieurs philosophies et solutions, là où les développements actuels tendent à être mono-philosophiques, c’est-à-dire soit basés sur une intelligence artificielle exclusivement, soit sur des capteurs, soit sur du suivi de geste, soit basés sur du traitement de nuages de points, etc. La FIG. 3 et la FIG. 4 représentent deux séries de trois images issues du traitement par le dispositif de la FIG. 1 . Sur la FIG. 3 comme sur la FIG. 4 , l'image (a) représente l'environnement avant de détecter une interaction de type toucher sur une surface, l'image (b) représente l'environnement lorsque le doigt de l'utilisateur touche la surface, et l'image (c) représente l'environnement lorsque le doigt a quitté la surface. Plus précisément, ces images sont des trames ("frames" en anglais) tirées de la sortie vidéo du dispositif de la FIG. 1 qui permet d'indiquer par incrustation visible sur l'image (b) des figures 3 et 4 lorsqu'une interaction de type toucher est détectée. La différence entre la FIG. 3 et la FIG. 4 réside dans les conditions d'acquisition : comme on peut le voir sur ces figures, la FIG. 3 a été obtenue avec une main nue, tandis que la FIG. 4 a été obtenue avec une main gantée. Cela montre la versatilité que permet d'obtenir le détecteur 6. En outre la figure (b) de ces figures montre également la boîte englobante qui est utilisée pour détecter l'interaction. Ces figures permettent de comprendre comment le dispositif 2 peut être utilisé dans le cadre d'une application de type réalité augmentée ("AR" ou "Augmented Reality" en anglais) : il suffit d'afficher en surimpression sur une image tirée de la caméra 4 les données de réalité augmentée. L'application à la réalité virtuelle apparaît de manière similaire, le flux de la caméra 4 étant alors utilisé uniquement pour détecter les données de profondeur pour la région d'interaction, ces données pouvant alors être comparées aux données de l'environnement virtuel pour détecter les interactions. Dispositif d’interface utilisateur en trois dimensions comprenant : * une caméra (4) de type stéréoscopique ou temps de vol, agencée pour retourner une image associée à un marqueur de temps, les données issues de la caméra (4) permettant en outre d’associer à chaque pixel de ladite image des données de profondeur, * un détecteur (6) agencé pour analyser l’image associée à un marqueur de temps donné et pour retourner une région d’interaction dans ladite image, et * un calculateur (8) agencé pour retourner des données d’interaction tirées de la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées. Dispositif selon la revendication 1, dans lequel le détecteur (6) ou le calculateur (8) est agencé pour associer une boîte englobante à chaque région d’interaction, et dans lequel le calculateur (8) est agencé pour comparer les coordonnées des pixels de cette boîte englobante et les données de profondeur qui leur sont associées aux des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées. Dispositif selon la revendication 1 ou 2, dans lequel le calculateur (8) est agencé pour retourner des données d’interaction indiquant un toucher dès que la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées indique que les coordonnées de pixels de la région d’interaction présentent une distance aux coordonnées des pixels de la zone d’interaction inférieure à un premier seuil donné, et que les données de profondeur associées aux pixels de la région d’interaction présentent une distance aux données de profondeur associées aux pixels de la zone d’interaction inférieure à un deuxième seuil donné. Dispositif selon l’une des revendications précédentes, dans lequel le calculateur (8) est agencé pour retourner des données d’interaction indiquant un geste lorsque que calculateur (8) détecte des données d’interaction indiquant un toucher dans des images dont les marqueurs de temps sont consécutifs, et lorsque l’interaction déterminée dans les images dont les marqueurs de temps sont consécutifs correspond à un déplacement sur la zone d’interaction définissant une forme choisie. Dispositif selon l’une des revendications précédentes, dans lequel le détecteur (6) comprend un réseau de neurones de type YOLOV, ou un R-CNN, ou un SSD entraîné pour détecter une région d’interaction. Dispositif selon la revendication 5, dans lequel le détecteur (6) est agencé, après détection d’une région d’interaction, pour traiter certaines au moins des images présentant un marqueur de temps ultérieur avec un algorithme de suivi du déplacement du type pour déterminer la région d’interaction. Dispositif selon la revendication 6, dans lequel le détecteur (6) est agencé pour exécuter un algorithme de suivi du déplacement du type Deep Sort, FairMOT, TransMOT, ou ByteTrack. Dispositif selon la revendication 6 ou 7, dans lequel le détecteur (6) est agencé pour traiter avec l’algorithme de suivi du déplacement les images dont les marqueurs de temps sont compris entre les marqueurs de temps de deux images qui sont traitées par ledit réseau de neurones et qui présentent des marqueurs de temps dont la différence correspond à la durée de traitement d’une image par ledit réseau de neurone. Dispositif selon l’une des revendications précédentes, dans lequel le détecteur (6) est agencé pour déterminer plusieurs régions d’interaction dans une image donnée. Dispositif de réalité virtuelle ou de réalité augmentée caractérisé en ce qu’il comprend un dispositif selon l’une des revendications précédentes, et en ce qu’il est agencé pour utiliser les données d’interaction. Procédé de détection d’interaction en trois dimensions comprenant les opérations suivantes : a) acquérir des images avec une caméra (4) de type stéréoscopique ou temps de vol, agencée pour retourner une image associée à un marqueur de temps, les données issues de la caméra (4) permettant en outre d’associer à chaque pixel de ladite image des données de profondeur, b) analyser l’image associée à un marqueur de temps donné, retourner une région d’interaction dans ladite image, c) retourner des données d’interaction tirées de la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées. Procédé selon la revendication 11, dans lequel l’opération b) ou l’opération c) comprend associer une boîte englobante à chaque région d’interaction, et dans lequel l’opération c) comprend comparer les coordonnées des pixels de cette boîte englobante et les données de profondeur qui leur sont associées aux des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées. Procédé selon la revendication 12, dans lequel l’opération c) comprend retourner des données d’interaction indiquant un toucher dès que la comparaison entre d’une part les coordonnées des pixels de la région d’interaction et les données de profondeur qui leur sont associées et d’autre part des coordonnées des pixels associés à une zone d’interaction prédéfinie d’interaction et les données de profondeur qui leur sont associées indique que les coordonnées de pixels de la région d’interaction présentent une distance aux coordonnées des pixels de la zone d’interaction inférieure à un premier seuil donné, et que les données de profondeur associées aux pixels de la région d’interaction présentent une distance aux données de profondeur associées aux pixels de la zone d’interaction inférieure à un deuxième seuil donné. Procédé selon la revendication 12, dans lequel l’opération c) comprend retourner des données d’interaction indiquant un geste lorsque que l’opération c) retourne des données d’interaction indiquant un toucher dans des images dont les marqueurs de temps sont consécutifs, et lorsque l’interaction déterminée dans les images dont les marqueurs de temps sont consécutifs correspond à un déplacement sur la zone d’interaction définissant une forme choisie. Procédé de détermination d’interaction en réalité augmentée ou en réalité virtuelle comprenant les opérations suivantes : 1) présenter une image de réalité augmentée ou de réalité virtuelle à un utilisateur, 2) exécuter un procédé selon l’une des revendications 11 à 14 pour déterminer l’interaction de l’utilisateur avec l’environnement défini par l’image de réalité augmentée ou de réalité virtuelle à un utilisateur. Programme informatique mis en œuvre par ordinateur comprenant des instructions pour exécuter le procédé selon l’une des revendications 11 à 15. Support de stockage de données sur lequel est enregistré le programme informatique selon la revendication 16.