Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROCESSING OF DATA OF A VIDEO SEQUENCE IN ORDER TO ZOOM ON A SPEAKER DETECTED IN THE SEQUENCE
Document Type and Number:
WIPO Patent Application WO/2019/110913
Kind Code:
A1
Abstract:
The invention relates to processing a video sequence containing a succession of images of one or more speakers, acquired by a wide-angle camera (102), the method including: - audio acquisition from a microphone (103) including a plurality of sensors for sensing an audio field; - processing the audio data acquired by the microphone (103) in order to determine at least one direction (ANG) of origin of sound coming from a speaker (LA), in relation to an optical axis (AO) of the wide-angle camera; - generating a signal (304) containing data (ANG) of said direction of origin of the sound in relation to the optical axis (AO) of the camera, for the purpose of utilizing said signal in rendering of the acquired images by applying a zoom to a zone around the speaker (LA) emitting the sound whose direction of origin corresponds to said data of the signal.

Inventors:
ZIELINSKI ANDRZEJ (FR)
WARZOCHA ROBERT (FR)
KOLODYNSKI ROBERT (FR)
RAGOT STÉPHANE (FR)
DANIEL JÉRÔME (FR)
EMERIT MARC (FR)
Application Number:
PCT/FR2018/053097
Publication Date:
June 13, 2019
Filing Date:
December 04, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
G01S3/80; G10L25/27; H04N5/232; H04N7/15; G01S3/786; G10L21/0216; G10L21/0272; H04R3/00
Domestic Patent References:
WO2004100546A12004-11-18
WO2002079792A22002-10-10
WO2009152158A12009-12-17
WO2005015954A22005-02-17
Foreign References:
EP2375741A12011-10-12
EP2765791A12014-08-13
CN1997161A2007-07-11
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de traitement d'une séquence vidéo comportant une succession d'images d'un ou plusieurs locuteurs, acquises par une caméra grand angle (102), le procédé comportant :

- Une acquisition sonore à partir d'un microphone (103) comportant une pluralité de capteurs pour capter un champ sonore ;

- Un traitement des données sonores acquises par le microphone (103) pour déterminer au moins une direction (ANG) de provenance de son issu d'un locuteur (LA), relativement à un axe optique (AO) de la caméra grand angle ;

- Une génération d'un signal (304) comportant des données (ANG) de ladite direction de provenance du son relativement à l'axe optique de la caméra, en vue d'exploiter ledit signal lors d'une restitution des images acquises en appliquant un zoom sur une zone (Z) autour du locuteur (LA) émettant le son dont la direction de provenance correspond auxdites données du signal.

2. Procédé selon la revendication 1, dans lequel le microphone (103) est de type ambiophonique.

3. Procédé selon l'une des revendications 1 et 2, comportant un traitement du champ sonore capté par le microphone et représentatif d'une scène sonore comportant au moins une source sonore correspondant à un locuteur actif émettant un son dont la direction de propagation est déterminée relativement à l'axe optique de la caméra.

4. Procédé selon la revendication 3, comportant un traitement de séparation de sources pour détecter ladite source et déterminer la direction correspondante de propagation du son.

5. Procédé selon la revendication 3, comportant un traitement de type dit « de beamforming » pour déterminer la direction de propagation du son issu de ladite source.

6. Procédé selon l'une des revendications précédentes, dans lequel le microphone et la caméra sont placés à des positions respectives décalées spatialement l'une par rapport à l'autre, le procédé comportant une calibration préalable au traitement des données sonores, pour corriger la zone d'image à zoomer en tenant compte du décalage spatial entre le microphone et la caméra.

7. Procédé selon la revendication 6, dans lequel ladite calibration comporte :

- la comparaison entre une position de visage d'un locuteur actif sur une image acquise par la caméra et la direction de propagation du son de ce locuteur actif, capté par le microphone,

- la détermination dudit décalage spatial en fonction de la comparaison, et la mémorisation d'une valeur du décalage spatial, pour tenir compte de ladite valeur de décalage pour définir la zone à zoomer.

8. Procédé selon la revendication 7, comportant une détection de forme de visage dans les images acquises par la caméra pendant ladite calibration.

9. Procédé selon l’une des revendications précédentes, dans lequel la caméra et le microphone acquièrent des données de vidéoconférence destinées à être transmises par un dispositif émetteur (FIG.4) à destination d'un dispositif récepteur (FIG.5), le procédé comportant la détermination d'une valeur d'angle (ANG) estimée entre la direction de propagation et l'axe optique de la caméra, des données de ladite valeur d'angle étant ajoutées à un flux des données de vidéoconférence par le dispositif émetteur, et le dispositif récepteur effectuant le zoom dans la zone du locuteur actif dans les données d'image reçues du dispositif émetteur, en utilisant les données de ladite valeur d'angle.

10. Procédé selon la revendication 9, dans lequel les données de ladite valeur d'angle sont transmises avec le flux de données de vidéoconférence parmi des métadonnées.

11. Procédé selon l'une des revendications 9 et 10, dans lequel les données de ladite valeur d'angle sont transmises avec le flux de données de vidéoconférence via un réseau de type réseau téléphonique commuté (WebRTC).

12. Dispositif comportant une caméra grand angle et un microphone comportant une pluralité de capteurs pour capter un champ sonore, la caméra et le microphone étant reliés à un circuit de traitement pour la mise en oeuvre du procédé selon l'une des revendications précédentes.

13. Dispositif selon la revendication 12, comportant une interface d'émission des données de ladite valeur d'angle avec le flux de données de vidéoconférence pour la mise en oeuvre du procédé selon l'une des revendications 8 à 10 en tant que dispositif émetteur.

14. Dispositif selon l'une des revendications 12 et 13, comportant une interface de réception et un circuit de traitement des données de ladite valeur d'angle avec le flux de données de vidéoconférence reçu pour la mise en oeuvre du procédé selon l'une des revendications 9 à 11 en tant que dispositif récepteur.

15. Programme informatique, comportant des instructions pour la mise en oeuvre du procédé selon l'une des revendications 1 à 11 lorsque les instructions sont exécutées par un processeur d'un circuit de traitement.

Description:
Traitement de données d'une séquence vidéo pour un zoom sur un locuteur détecté dans la séquence

La présente invention concerne le traitement des données de séquences vidéo, par exemple de signaux de vidéoconférence issus de webcam, en particulier pour effectuer en temps réel (ou quasi-réel) un zoom sur une zone dans laquelle un locuteur est reconnu comme actif.

En référence à la figure IA, il est présenté à titre d'exemple deux interlocuteurs LA et Ll d'un utilisateur recevant les images d'une webcam distante et filmant ces deux interlocuteurs LA et LL L'interlocuteur LA est actif, tandis que l'autre interlocuteur Ll n'émet aucun son. II est recherché alors à effectuer un zoom dans la zone Z des images successives pour montrer en particulier le visage par exemple, ou encore le buste, du locuteur actif LA qui se situe dans cette zone Z, comme illustré sur la figure IB.

On connaît des techniques pour obtenir une telle fonctionnalité. À titre d'exemple, une technique consiste à utiliser deux caméras, l'une pour effectuer le zoom dans les images qu'elle acquiert (comme illustré sur les figures IA et IB), et une autre caméra pour détecter en particulier les mouvements des lèvres des personnes filmées et effectuer alors le zoom sur le visage dont les lèvres sont en mouvement. Toutefois, une telle réalisation nécessite deux caméras, donc une addition de matériel qui peut résulter un coût associé. Par ailleurs, en termes de robustesse, si les visages sont loin de la caméra, il est difficile de détecter un mouvement de lèvres de façon satisfaisante.

La présente invention vient améliorer la situation.

Elle propose à cet effet un procédé de traitement d'une séquence vidéo comportant une succession d'images d'un ou plusieurs locuteurs acquises par une caméra grand angle, le procédé comportant :

- Une acquisition sonore à partir d'un microphone comportant une pluralité de capteurs pour capter un champ sonore ; - Un traitement des données sonores acquises par le microphone pour déterminer au moins une direction de provenance de son issu d'un locuteur, relativement à un axe optique de la caméra grand angle ;

- Une génération d'un signal comportant des données de ladite direction de provenance du son relativement à l'axe optique de la caméra, en vue d'exploiter ledit signal lors d'une restitution des images acquises en appliquant un zoom sur une zone autour du locuteur émettant le son dont la direction de provenance correspond auxdites données du signal.

On entend par « locuteurs » au sens général, toute personne susceptible de produire un son, de parole par exemple, ou encore un son de musique, ou autres.

Enfin, on entend par caméra « à grand angle » tout d'abord la possibilité d'effectuer un zoom numérique dans les images acquises par la caméra, au moment de la restitution de ces images sur un écran. Néanmoins, le terme englobe plus généralement aussi la possibilité d'une caméra mobile, capable de se focaliser et/ou de s'orienter en rotation dans une direction correspondant à celle de la propagation du son.

Le microphone précité peut être de type ambiophonique.

Le terme « ambiophonique» est ici à interpréter en relation avec le traitement dit d'« encodage et de traitement dans le domaine ambisonique » permettant la détermination d'une direction de provenance du son issu d'une source, et ce possiblement pour plusieurs sources à la fois. Le microphone lui-même peut être par exemple de type « sphérique » et comporter une pluralité de capteurs tels que des capsules piézoélectriques par exemple comme illustré dans le document WO-2005/015954 (référence S de la figure 1). Il peut alors être prévu en aval du microphone un traitement des données sonores acquises pour obtenir une représentation de la scène sonore et plus particulièrement une direction de propagation d'un son relativement à au moins un axe donné, ce son étant issu d'une source sonore principalement active (par rapport à d'autres sources ou seule dans la scène sonore). L'obtention de cette direction de propagation peut s'effectuer par exemple par une technique de séparation de sources (notamment de séparation de sources « aveugle ») et d'identification des directions de propagation des sources détectées. L'obtention de la ou des directions de propagation peut s'effectuer plus simplement par un traitement de type « beamforming » ou encore en analysant un signal audio multi-capteurs converti au format dit « B-format » et analysé selon la méthode DiRaC (pour « Directional Audio Coding ») où un vecteur intensité est calculé par bandes fréquentielles et des angles (azimut, élévation) peuvent être extraits.

Bien entendu, en cas d'identification de plusieurs locuteurs actifs (ou encore quand aucun locuteur actif n’est détecté dans une zone d’intérêt qui correspond typiquement au champ de vision de la webcam), il peut être prévu de dé-zoomer l'image pour avoir dans le champ de l'image plusieurs interlocuteurs à la fois (ou de façon générale la scène vidéo complète). Techniquement, il est en effet possible d'identifier plusieurs sources sonores et d'associer des angles respectifs à ces sources sonores afin de définir la largeur d'image nécessaire pour avoir dans le champ de l'image restituée tous les locuteurs dont l'activité a été détectée.

En variante d'un microphone ambiophonique du type précité, les capteurs qu'il comporte peuvent être agencés linéairement ou encore en tétraèdre, ou autre, pour, de façon générale, capter un champ sonore dont le traitement permet de déterminer la direction d'une source sonore, à la manière d'une « d'antenne de microphones » correspondant chacun à capteur. Dans une réalisation possible, les capteurs peuvent être distribués en discrétisant une sphère, en tétraèdre avec quatre capteurs pour un ordre 1, ou avec plus de capteurs pour un ordre ambisonique supérieur (dit HOA pour « High-Order Ambisonics »).

Ainsi, dans une réalisation, le procédé comporte un traitement du champ sonore capté par le microphone et représentatif d'une scène sonore comportant au moins une source sonore correspondant à un locuteur actif émettant un son dont la direction de propagation est déterminée relativement à l'axe optique de la caméra.

Le traitement du champ sonore peut comporter un traitement dit de « séparation de sources » (ou « séparation aveugle ») pour détecter la source précitée et déterminer la direction correspondante de propagation du son qu'elle émet.

En variante, on peut prévoir un traitement de type dit « de beamforming ». En particulier, il peut être avantageux de prévoir dans cette réalisation un traitement de maximisation d’énergie en fonction des multiples faisceaux captés par le microphone pour déterminer la direction de propagation du son issu de ladite source. Il convient de préciser ici que le « beamforming » sert en général à focaliser une antenne de microphone dans une direction (celle de la source) et ainsi améliorer le rapport son direct sur son réverbéré. Ici, cette technique peut être utilisée pour trouver la direction de propagation du son issu d'une source sur une grille de plusieurs directions possibles en cherchant la direction pour laquelle l'énergie est la plus importante.

Dans une autre variante, une analyse de scènes audio 3D de type DiRaC peut être utilisée pour obtenir la direction d’au moins une source.

Dans une réalisation, le microphone et la caméra sont placés à des positions respectives décalées spatialement l'une par rapport à l'autre, le procédé comportant une calibration préalable au traitement des données sonores (et éventuellement une compensation intégrée au traitement), pour corriger la zone d'image à zoomer en tenant compte du décalage spatial entre le microphone et la caméra.

Cette calibration (et compensation) peut comporter par exemple :

- la comparaison entre une position de visage d'un locuteur actif sur une image acquise par la caméra et la direction de propagation du son de ce locuteur actif, capté par le microphone,

- la détermination dudit décalage spatial en fonction de la comparaison, et la mémorisation d'une valeur du décalage spatial, pour tenir compte de ladite valeur de décalage pour définir la zone à zoomer.

On peut prévoir en outre une détection de forme et de taille de visage dans les images acquises par la caméra pendant la calibration (et la compensation) précitée(s).

Dans une réalisation où la caméra et le microphone acquièrent des données de vidéoconférence destinées à être transmises par un dispositif émetteur à destination d'un dispositif récepteur, le procédé peut comporter la détermination d'une valeur d'angle estimée entre la direction de propagation et l'axe optique de la caméra, et des données de ladite valeur d'angle sont alors ajoutées à un flux des données de vidéoconférence par le dispositif émetteur.

Cet ajout peut être effectué "dans la bande" (« inband » en anglais), c'est-à-dire en rajoutant les données d'angle comme des métadonnées intégrées au flux audio transmis, soit "hors bande" (« out of band » en anglais), en transmettant ces données d'angle comme un flux supplémentaire aux flux audio et vidéo, par exemple en envoyant ces données d'angle par le biais d'un "DataChannel" lors d'une communication audio-vidéo par la technologie WebRTC. A la réception de ces données d'angle, le dispositif récepteur peut ainsi effectuer le zoom dans la zone du locuteur actif dans les données d'image reçues du dispositif émetteur, en utilisant les données de ladite valeur d'angle.

Les données de ladite valeur d'angle peuvent être transmises avec le flux de données de vidéoconférence, par exemple parmi des métadonnées.

Dans un mode de réalisation possible, exposé plus loin, les données de ladite valeur d'angle sont transmises avec le flux de données (dit "DataChannel") de vidéoconférence via un réseau de type réseau téléphonique commuté (dit « WebRTC »).

Dans un appel vidéo, la vidéo locale est souvent présentée comme une incrustation réduite (thumbnail en anglais) sur la vidéo distante. Dans un mode de réalisation possible de l’invention, le zoom dans la zone du locuteur actif peut être aussi appliqué sur la vidéo locale, de sorte que les participants en local visualisent la vidéo qui est réellement transmise à distance. Ainsi, l’invention peut s'appliquer également au niveau du dispositif émetteur.

Dans une variante possible, le zoom sur la vidéo à émettre vers le dispositif distant peut être directement appliqué pour éviter d'avoir à réaliser le zoom auprès du dispositif récepteur et éviter ainsi de transmettre systématiquement les données d'angle, ainsi que la vidéo complète de la scène (grand angle). Une telle réalisation permet de réduire la bande passante nécessaire.

La présente invention vise aussi un dispositif comportant une caméra grand angle et un microphone comportant une pluralité de capteurs pour capter un champ sonore, la caméra et le microphone étant reliés à un circuit de traitement pour la mise en oeuvre du procédé présenté ci- avant.

Le dispositif peut comporter une interface d'émission des données de ladite valeur d'angle avec le flux de données de vidéoconférence, en tant que dispositif émetteur.

Le dispositif peut comporter une interface de réception et un circuit de traitement des données de ladite valeur d'angle avec le flux de données de vidéoconférence reçu, en tant que dispositif récepteur, pour effectuer le zoom dans les images reçues en fonction de ladite valeur d'angle reçue. La présente invention vise aussi un programme informatique, comportant des instructions pour la mise en oeuvre du procédé ci-avant lorsque les instructions sont exécutées par un processeur d'un circuit de traitement.

D'autres avantages et caractéristiques de l'invention apparaîtront la lecture de la description d'exemples de réalisation détaillés ci-après, et à l'examen des dessins annexés sur lesquels : les figures IA et IB illustrent le principe d'un zoom sur un locuteur actif détecté dans une séquence vidéo,

les figures 2A et 2B illustrent notamment la caméra grand angle et le microphone ambiophonique, précités, respectivement de face et de profil,

la figure 3 illustre les principales étapes du procédé dans un exemple de réalisation de l'invention,

la figure 4 illustre un premier dispositif 104 pour la mise en oeuvre d'une partie au moins du procédé de la figure 3, pour l'acquisition et la transmission des données de vidéoconférence,

la figure 5 illustre un deuxième dispositif (qui peut être identique au premier dispositif) pour la mise en oeuvre d'une autre partie du procédé de la figure 3, pour la réception et la restitution des données de vidéoconférence,

les figures 6a, 6b et 6c illustrent respectivement la direction de propagation dans un repère en coordonnées sphériques, puis cartésiennes pour la définition du zoom, et la relation entre la direction de propagation du son et la localisation de la zone d'image à zoomer,

les figures 7a, 7b, et 7c illustrent le cas d'un décalage en azimut (hauteur d) entre la caméra 102 et le microphone 103,

la figure 8 illustre l'angle ANG que forme la direction du son issu du locuteur actif LA avec l'axe optique AO de la caméra.

Ci-après, il est décrit une application de l'invention à l'acquisition, le traitement, la transmission/réception et le traitement pour restitution, en particulier de données de vidéoconférence. Néanmoins, la détermination de la direction de propagation du son issu d'un locuteur actif, au sens de l'invention, peut être mise en oeuvre dans d'autres applications possibles, telles qu'un zoom automatique sur un locuteur actif dans un plateau de télévision, ou encore un zoom automatique sur un locuteur filmé pendant un tournage rapide (par exemple pour un reportage ou un film documentaire).

On se réfère tout d'abord à la figure 2A, sur laquelle est représentée de face une caméra à grand angle 102, ici de type webcam, connectée dans l'exemple représenté à un dispositif communicant 104 tel que par exemple un « décodeur vidéo » ou « set-top box », lui-même connecté à un téléviseur 101 et disposant d’une connexion réseau, par exemple par le biais d’une « box Internet ». Le téléviseur 101 porte la caméra 102 et un microphone ambiophonique 103 à proximité de la caméra. Le support 100 du téléviseur 101 est représenté ici pour illustrer que le microphone 103 a une position fixe par rapport à la caméra.

Idéalement, la position du microphone 103 coïncide (au moins à une plage de tolérance près) avec celle du centre optique de la caméra. Toutefois, cette réalisation est difficile à mettre en oeuvre en pratique. Par ailleurs, il n'est pas recommandé d'accoler directement le microphone 103 à la caméra 102 en raison des réflexions sonores sur la caméra que pourrait capter le microphone.

Pour surmonter cette difficulté, il pourrait être prévu de concevoir le microphone sous la forme d'une ou de deux demi-coques sphériques de part et d'autre de la caméra, moyennant la prise en compte et la correction d'une dégradation possible des composantes ambisoniques captées.

Dans une réalisation alternative, il pourrait être prévu de corriger l'effet de la non-coïncidence de l'axe optique de la caméra avec la position du microphone en procédant à une calibration de la détection de la provenance du son. Par exemple, cette calibration peut être opérée en présentant à l'utilisateur de la caméra 102 son image sur le téléviseur 101 à laquelle on superpose un marqueur - par exemple un cercle de taille réduite et d’une couleur prédéterminée - et en lui demandant de parler tout en pointant par exemple avec une télécommande la position d'un marqueur sur l'image de sa bouche à l'écran, et ce en se positionnant à une distance de la caméra et du microphone à utiliser ultérieurement. Alternativement encore, la caméra peut procéder à une détection de visage pour identifier la direction du son et éventuellement déterminer (par régression à partir de la taille du visage détecté par exemple) la distance réelle entre le visage et la caméra, ce qui permet de corriger par des relations trigonométriques l'angle de propagation du son relativement à l'axe optique de la caméra.

Bien entendu, cette correction liée au défaut de coïncidence de la position du microphone avec l'axe optique ou le centre optique de la caméra est une réalisation optionnelle et tout au moins, en référence à la figure 8, il est obtenu finalement un angle ANG (corrigé ou non) que forme la direction du son issu du locuteur actif LA avec l'axe optique AO de la caméra 102. A cet effet, un traitement des données sonores acquises du microphone 103 est opéré (par exemple par séparation de sources dans la scène sonore captée par le microphone et détermination des directions de propagation du son issu de ces sources, ou encore plus simplement par une technique de considération de multiples faisceaux acoustiques et filtrage, de type « de beamforming », avec maximisation d’énergie en fonction des multiples faisceaux, pour laquelle le microphone ambiophonique ou plus généralement à plusieurs capteurs tels que des capsules piézoélectriques par exemple (agencées linéairement ou suivant plusieurs dimensions, par exemple en tétraèdre) peut être aussi bien utilisé). Dans des variantes de l’invention comme indiqué plus haut, on peut appliquer une méthode de séparation de source ou un analyse de type DiRaC sur un signal ambisonique au B-format.

Une fois ce traitement exécuté, il peut être prévu ensuite la transmission des données sonores acquises, des données d'images acquises, et des données de cette direction de source audio (ou des directions de sources audio dans le cas de plusieurs sources) par exemple sous la forme d'une (ou plusieurs) valeur(s) d'angle ANG.

À la réception des données de direction par un utilisateur distant, le décodeur vidéo peut lire la valeur d'angle ANG, effectuer un zoom dans la zone correspondant à cet angle dans les données d'images reçues et afficher l'image ainsi zoomée sur son écran de réception.

La valeur d'angle ANG peut être représentée par des données d'angle d'azimut et d'angle d'élévation par rapport à l'axe optique AO.

Ces étapes sont détaillées en référence à la figure 3, sur laquelle de premières étapes 301 et 302 consistent en l'acquisition sonore par le microphone ambiophonique 103 et respectivement en l'acquisition des données d'image par la caméra grand angle 102. L'acquisition des données sonores 301 est suivie d'un prétraitement sonore 303 pour déterminer l'angle ANG précité. Ici, la valeur de cet angle caractérisant la direction acoustique du locuteur actif relativement à l'axe optique de la caméra est transmise parmi des métadonnées à l'étape 304. En variante, ces données peuvent être intégrées dans le flux de données sonores acquises 305 (avec un en-tête approprié de déclaration de métadonnées par exemple). A l'étape 310, le flux de métadonnées, des données sonores acquises 305 et des données vidéo acquises 306 sont multiplexées pour être transmises via un réseau NET, par exemple un réseau IP avec un serveur Web hébergeant un service de type WebRTC (avec typiquement un serveur de signalisation supplémentaire pour l’échange des capacités média par le protocole SDP) illustré par la référence 13 de la figure 5).

Typiquement deux angles peuvent être transmis pour chaque source, en considérant les coordonnées sphériques à partir du point de référence du microphone. Il s'agit de l’azimut et l’élévation. Dans une réalisation simplifiée où des variations d’élévation ne sont pas pertinentes (par exemple quand les participants se trouvent assis autour d’une table de forme circulaire prédéterminée), seul l’azimut peut être calculé et transmis.

Dans un mode de réalisation, les données sonores et d’images sont transmises sur un réseau IP en utilisant la technologie WebRTC, qui repose sur un transport média par le protocole RTP (ou ses variantes sécurisées comme SRTP). Le développeur du service de vidéoconférence peut alors utiliser des briques logicielles de type API (typiquement en language JavaScript):’PeerConnection’ et’GetUserMedia’ de WebRTC, pour accéder à la caméra et établir les flux.

Un signal audio issu du traitement d’analyse de scène que capte le microphone inclut les données de direction et, quand la technologie WebRTC est utilisée, la transmission de ces données de direction peut se faire en utilisant IΆRI’DataChannel’ qui permet de transmettre des données, typiquement sous forme JSON (JavaScript Object Notation), donc avec un format structuré de type XML de la forme: {"azimuth" : thêta, "élévation" : phi} où thêta et phi correspondent aux valeurs (éventuellement entières, si elles sont exprimées en degrés) des angles de direction (azimut, élévation).

Lorsque plusieurs sources sont détectées dans la scène d’intérêt - typiquement limitée au champ de vision de la caméra - les données peuvent prendre la forme d’un tableau:

[ {"azimuth" : thetal, "élévation" : phil} , {"azimuth" : theta2, "élévation" : phi2} ] où thetal, phil sont les coordonnées de la source 1 et theta2, phi2 sont les coordonnées de la source 2. Lorsqu'aucune source audio n'est détectée - typiquement dans le champ de vision de la caméra - on peut transmettre un tableau vide: [].

Un exemple de réalisation consiste à exécuter dans le bloc réalisant l'analyse de scène sonore une transmission locale de données de direction par le protocole OSC (Open Sound Control) vers un serveur Web local qui retransmet par un protocole Web de type WebSocket les données de direction vers le client Web gérant l'interface utilisateur d'accès au service de vidéoconférence. Dans une variante possible, les données de direction peuvent être transmises par d'autres méthodes, par exemple en transmettant ces données vers une carte son virtuelle sous la forme d'un signal audio "virtuel" et en accédant à cette carte son (par exemple en appelant l'API "GetUSerMedia" de WebRTC).

A la réception 610, les flux sont dé-multiplexés (voire décodés en compression) en :

Un flux des données sonores 605,

Un flux des données d'image 606, et

Un flux des métadonnées 604 incluant alors la valeur de l'angle ANG, ce flux pouvant être intégré au flux de données sonores, ou transmis séparément (par exemple par un "DataChannel" selon la technologie WebRTC).

Cette dernière ANG sert alors à l'étape 603 pour :

Déterminer une zone Z de présence d'un locuteur actif LA dans l'image dont les données sont reçues à l'étape 606,

Effectuer un zoom numérique dans l'image dont les données sont reçues dans la zone Z ainsi déterminée.

L'image ainsi zoomée peut alors être affichée à l'étape 602 sur un téléviseur ou autre, avec en outre une restitution sonore 601 du son capté par le microphone 103. On comprendra ainsi que le microphone 103 sert non seulement à capter le son de la scène sonore illustrée sur la figure IA mais aussi à déterminer l'angle ANG de la direction du son issu du locuteur actif LA.

Les étapes de la figure 3 peuvent être mises en oeuvre par l'exécution d'un programme informatique auprès du dispositif 104, pour la détermination de l'angle ANG et la transmission des données incluant la valeur de cet angle notamment. A ce titre, l'invention vise un tel programme informatique exécuté auprès du dispositif 104, ainsi que le dispositif 104 lui-même comportant un circuit de traitement incluant au moins, comme illustré sur la figure 4 : Une interface INT de réception des données d'image et sonores issues de la caméra 102 et du microphone 103,

Un processeur PROC1 agencé pour lire et exécuter les instructions du programme informatique précité pour la mise en oeuvre du procédé (au moins les étapes 301, 302, 303, 304, 305, 306, 310 typiquement de la figure 3), et

Une mémoire MEM1 stockant au moins ces instructions.

Le dispositif 104 peut comporter en outre une interface de sortie OUT pour piloter un téléviseur 201 (et des moyens de restitution sonore 202 associés tel que des baffles, des écouteurs ou autres), afin d'afficher des images de la vidéoconférence en cours avec un ou plusieurs locuteurs distants, en effectuant aussi un zoom sur le locuteur distant qui est actif.

Ainsi, le dispositif 104 peut être agencé aussi pour effectuer ce zoom sur la base de la réception de la donnée d'angle ANG. De manière plus générale, la présente invention vise aussi un programme informatique exécuté auprès d'un dispositif (tel que le dispositif 104 par exemple), et comportant des instructions pour la mise en oeuvre des étapes 610, 605, 604, 606, 603, 601 et 602 du procédé illustré sur la figure 3). Elle vise aussi le dispositif lui-même comportant un circuit de traitement pour exécuter ce programme et qui inclut, comme illustré sur la figure 5 :

Une interface 12 de réception depuis le réseau 13, des données d'image, de son, et d'angle ANG,

Un processeur 10 agencé pour lire et exécuter les instructions du programme informatique précité pour la mise en oeuvre du procédé (au moins les étapes 610, 605, 604, 606, 603, 601 et 602), et

Une mémoire 11 stockant au moins ces instructions.

Plus généralement, la présente invention vise un programme informatique global dont les instructions peuvent être réparties entre le dispositif émetteur de la figure 4 et le dispositif récepteur de la figure 5.

On détaille maintenant un premier cas de réalisation qui suppose que la caméra grand-angle 102 et le microphone 103 sont coïncidents. Dans ce cas les coordonnées sphériques de la source audio (r, thêta, phi notées ci-après r, q, f) sont définies dans la même convention de système de coordonnées que la caméra. Cette convention est rappelée à la figure 6a. La figure 6b rappelle quant à elle la convention du système de coordonnées en 3D avec le plan horizontal (x,y) et l'élévation selon l'axe z. On prend ici pour convention une origine au centre de l'image de taille WxH où W et H sont respectivement la largeur et la hauteur de l'image (en nombre de pixels). On rappelle dans le tableau ci-dessous les résolutions classiques en vidéo et imagerie TV:

La figure 6c montre comment associer les coordonnées issues de l'analyse audio à une position sur l'image pour déterminer le point autour duquel le zoom doit être appliqué.

On suppose ici que le système de coordonnées de la caméra est centré sur le point central de l'image de largeur W et de hauteur H. La figure 6c ne représente que le plan horizontal (x,y) donné à la figure 6b.

On suppose ici que la caméra a un champ de vision (FOV pour « Field of View ») horizontal d'une valeur 0 max <18O°. On considère à titre d'exemple que 0 max = 90°.

La largeur de l'image capturée par la caméra est W. Lorsqu'une source se situe à la limite du champ de vision, la position sur l'image est plus ou moins (+/-) W/2 selon que la source est à gauche ou à droite.

On suppose ici qu'une source active (reçue par le biais des informations de directions transmises) se situe à un azimut 0 tel que 101 < 0 max /2

On suppose ici que l'orientation de l'image est normale, et donc qu'une source située sur la droite a une coordonnée w<0. La position w sur l’image associée à une source audio d’azimut 0 peut se calculer par trigonométrie en calculant: tan(0 max /2) = (W/2)/f tan(0) = w/f où f est la distance focale de la caméra, ce qui permet d'obtenir: w = -(W/2)tan(0)/tan(0 max /2)

Comme W correspond à un nombre (entier) de pixels, on pourra arrondir le résultat, en remplaçant w par: w = -[ (W/2)tan(0)/tan(0 max /2) ] où [x] représente l'arrondi à l'entier le plus proche de x.

Cependant, dans un mode de réalisation principal, on peut inverser l'axe x pour avoir une orientation "retournée" horizontalement ("flipped" ou "mirrored" en anglais), ce qui donne: w = [ (W/2)tan(0)/tan(0 max /2) ]

Cette formule peut être simplifiée avec l'approximation suivante: w = [ (W/2) / (0 max /2) . 0]

Cette approximation revient à appliquer une relation linéaire entre la longueur de l'arc de cercle défini par les 2 angles (0 max /2) et 0 et la "projection" correspondant sur le plan de la caméra.

De la même façon et en supposant une image verticale retournée, pour une source d'élévation f, on peut déterminer la position verticale z (par rapport au centre de l'image) comme: h = [ (H/2)tan((|))/tan((|) max /2) ] où (|) max est le champ de vision vertical de la caméra (par exemple (|) max = 40°).

Comme pour le cas horizontal, on peut aussi approximer cette valeur par: h = [ (H/2) / (0 max /2) . f]

On suppose là encore que la source est dans le champ de vision de la caméra, donc | f |

Ainsi à la réception 610-604 des métadonnées indiquant la position (q,f) d'une source active, le zoom vidéo 603 peut être effectué comme suit.

Si une source est présente (dans la zone d'intérêt qui correspond typiquement au champ de vision de la caméra, voire dans une zone plus large): - calculer w,h comme précédemment pour identifier la position autour de laquelle il faut zoomer

- fixer un facteur fac de zoom fixe (par exemple fac=2)

- réaliser le zoom avec les paramètres de position et de facteur de zoom précité, comme suit, par exemple par le biais d'instructions CSS3, comme suit:

- modification de style par une routine 'scale(fac)' sur l'élément HTML5 de la vidéo distance (appelé par exemple rv.style où rv désigne "remote video" et correspond à l'élément HTML de la vidéo distante),

- translation du style d'une balise de division HTML5 (typiquement notée "div") entourant la vidéo distante selon la position déterminée (w,h).

Si aucune source n'est présente (dans la zone d’intérêt correspondant par exemple au champ de vision de la caméra) ou si plusieurs sources sont présentes: dé-zoomer, ce qui revient à appliquer des instructions CSS3 pour fixer le facteur d'échelle à 1 et une translation à (0,0).

Dans une variante, le facteur de zoom peut être calculé en fonction d’une détection de visage et de dimensions apparentes de ce visage sur les images acquises, permettant de déterminer implicitement la distance de la source audio.

En référence maintenant aux figures 7a, 7b et 7c, on décrit maintenant un mode de réalisation dans lequel la caméra 102 et le microphone 103 ne sont coïncidents que pour l’azimut, mais qu'un décalage est présent en élévation. On note ci-après l’élévation déterminée par le microphone f M ie et l’élévation nécessaire au zoom de la vidéo f 0AM ·

Si l’on ne dispose pas d’une information de distance, on peut effectuer une étape de calibration à l’aide d’une "mire" vidéo.

Si l’on dispose de la distance d entre le microphone 102 et la caméra 103 et d’une estimation d’une distance par exemple grâce à une détection de visage et une estimation par régression entre la taille du visage et la distance estimée dans l'image vidéo, on peut en déduire une correspondance.

Sur la Figure 7a, à partir du triangle défini par les points S (source audio), M (point de référence du microphone), C (point de référence de la caméra), on peut écrire à partir de la loi des sinus: eI/5Ϊh(f 0 AM - FMIO)= CICAM /sin( t/2 + f M ,e) où d est la distance entre la caméra et le micro (entre C et M) et d CA M est la distance entre la source audio et la caméra (entre S et C). Cela donne:

FOAM = FMIO + arcsin( d/ d CAM COS^ MIC ) )

Les autres figures 7b et 7c illustrent le même traitement. Il est donc possible de convertir l'angle f M io estimé au point de référence du microphone, si l'on connaît les deux distances:

- distance d entre la caméra et le micro

- distance d CA M entre la source audio et la caméra

Cette triangulation est possible en combinant les informations de directions du microphone et de distance de la caméra.

Le même principe de compensation (triangulation) pourra s'appliquer si la caméra et le microphone se situent au même niveau (en termes d'élévation) et s'il existe un décalage en azimut. Dans ce cas, la compensation sera appliquée sur l'angle 0 Mi c pour obtenir l'angle 0 CA M.

On décrit ci-après un procédé de calibration qui permet d'obtenir la compensation précitée, avant d'établir l'appel ou pendant l'appel.

On peut d'abord utiliser une calibration statique qui suppose qu'un seul locuteur se trouve dans le champ de vision de la caméra (et dans la zone d'intérêt du microphone). On affiche l'angle f M|0 (en degrés) estimé en temps-réel. On peut également de façon optionnelle détecter le visage du locuteur et calculer le "centre" de ce visage pour en déduire l'angle f 0AM à partir de la formule: h = [ (H/2)tan^)/tan^ max /2) ], soit f=3G0ΐ3h(Ii / (H/2) ) ou h = [ (H/2) / (f GT13C /2) . f]

Pour une distance donnée à la caméra et au microphone et sans connaître la distance d, on peut ainsi compenser de façon fixe la différence f 0A M - FMI On peut aussi utiliser une calibration pour estimer de façon automatique la régression (par exemple par une technique dite de « machine learning » telle que par exemple une régression de type "random forest régression" ou un réseau de neurones artificiels) qui associe la taille d'un visage et la distance d CAM On suppose ici encore qu'un seul locuteur est présent dans le champ de vision de la caméra. Connaissant la distance d entre le microphone et la caméra, on peut enregistrer en temps-réel l'angle f M , l'angle f 0AM déduit à partir de la position centrale du visage et en déduire la distance estimée et enregistrer également la taille du visage (en terme de dimension d'une ellipse ou d'un rectangle entourant le visage).