FR 3028701 A1 20160520 FR 1460957 A 20141113 INRIA170 FRD Dispositif de génération de rushes cinématographiques par analyse vidéo L'invention concerne le domaine de la production vidéo, et en particulier celui de la réalisation d'un film vidéo à partir d'une ou plusieurs prises de vue. Dans les méthodes classiques de production de contenu audiovisuel ou cinématographique, plusieurs caméras, chacune pilotée par un ou plusieurs opérateurs sont utilisées pour produire différentes vues d'une scène. Les flux vidéo résultants, également appelés « rushes » sont ensuite découpés sélectivement en vue de réaliser le montage final. Cela est très compliqué, car il est nécessaire au réalisateur d'expliquer à chaque opérateur quel type de prise il doit réaliser, que chaque opérateur exécute sa prise de vue comme cela lui est instruit, puis enfin que les rushes soient synchronisés entre eux en vue du montage final. L'ensemble de ces opérations rend la prise de vue et le montage vidéo extrêmement coûteux et complexe à mettre en oeuvre. L'invention vient améliorer la situation. À cet effet, l'invention propose un dispositif de traitement de données vidéo comprenant un stockage recevant des données initiales définissant une prise de vue vidéo, ces données pouvant être traitées pour représenter la prise de vue vidéo sous la forme de données d'images successives. Ce dispositif comprend un détecteur, un cadreur et un solveur, dans lequel : le détecteur est agencé pour traiter les données d'images successives afin de détecter dans certaines au moins des images des données de coordonnées de sujet à partir de données d'images définissant un ou plusieurs sujets de rush, le cadreur est agencé pour traiter les données d'images successives afin de déterminer des données de cadrage, pour certaines au moins des images, à partir de paramètres de rush désignant au moins un sujet de rush et un format de rush et à partir des données de coordonnées de sujet, les données de cadrage comprenant pour chaque 3028701 2 image à laquelle elles sont associées des données définissant un cadre minimal et un cadre maximal contenant l' au moins un sujet de rush désigné par les paramètres de rush, et le solveur est agencé pour produire des données de rush de la prise de vue vidéo 5 à partir des données d'images successives, des données de cadrage associées aux images successives, et des paramètres de rush, les données de rush étant choisies parmi une pluralité de suites d'images formées en associant des portions des images successives qui sont contenues dans un cadre plus grand que le cadre minimal et plus petit que le cadre maximal associés pour ce rush à une image donnée, le solveur étant muni d'une 10 fonction qui calcule, pour une suite d'images donnée, une pluralité de valeurs quantifiant le mouvement d'une caméra virtuelle associée à la prise de vue de cette suite d'images, et étant agencé pour choisir comme suite d'images définissant les données de rush celle dont la pluralité de valeurs associées minimise la vitesse et la dérivée de l'accélération de la caméra virtuelle qui leur est associée. 15 Ce dispositif est particulièrement avantageux car il permet d'obtenir des résultats cinématographiquement similaires aux méthodes existantes à partir d'une unique prise de vue, et sans nécessiter une synchronisation des rushes résultants, puisqu'ils sont issus de la même séquence vidéo. 20 Dans divers modes de réalisations particuliers, le dispositif peut présenter l'une ou la combinaison de plusieurs des caractéristiques suivantes : la fonction dont est muni le solveur calcule en outre une valeur quantifiant la différence entre le déplacement perçu pour chaque sujet désigné par des paramètres 25 de rush dans la suite d'images d'une part et dans les données initiales d'autre part, la fonction dont est muni le solveur calcule en outre une valeur quantifiant la différence entre la dérivée du déplacement de chaque sujet désigné par des paramètres de rush dans les données initiales d'une part, et la dérivée du déplacement de la caméra virtuelle d'autre part, 30 - la fonction dont est muni le solveur calcule en outre une valeur quantifiant, pour chaque image de la suite d'images, la différence entre la taille du cadre minimal et celle du cadre retenu pour cette image dans la suite d'images, ainsi que la différence 3028701 3 entre la position du centre du cadre minimal et celle du centre du cadre retenu pour cette image dans la suite d'images, la fonction dont est muni le solveur calcule en outre une valeur quantifiant, pour chaque image de la suite d'images, une valeur liée à l'inclusion ou l'exclusion 5 d'un ou plusieurs sujets non désignés dans les paramètres de rush dans la suite d'images, pour un sujet donné dans une image donnée, le détecteur analyse les données d'images successives pour détecter des coordonnées latérales extrêmes de ce suj et, 10 - pour une image donnée d'un rush donné, le cadreur définit le cadre minimal à partir des coordonnées latérales extrêmes de chacun des sujets désignés dans les paramètres de rush de ce rush, et le cadreur définit le cadre maximal pour correspondre aux dimensions des images des données initiales. 15 L'invention concerne également un appareil de prise de vue comprenant un dispositif tel que définit plus haut, agencé pour réaliser une prise de vue sous la forme de données initiales, et pour produire des données de rush à partir de ces données et dudit dispositif 20 L'invention concerne également un procédé de traitement de données vidéo comprenant les opérations suivantes : a) recevoir des données initiales définissant une prise de vue vidéo, ces données pouvant être traitées pour représenter la prise de vue vidéo sous la forme de données d'images successives, 25 b) déterminer des paramètres de rush désignant au moins un sujet de rush et un format de rush, et des données d'image d'un ou plusieurs sujets de rush, c) analyser les données d'images successives pour détecter dans certaines au moins des images des données de coordonnées d'un sujet à partir de données d'images définissant un ou plusieurs sujets de rush, 30 d) traiter les données d'images successives pour déterminer pour certaines au moins des images des données de cadrage à partir des données de coordonnées de sujet et des paramètres de rush, les données de cadrage comprenant pour chaque image à laquelle 3028701 4 elles sont associées des données définissant un cadre minimal et un cadre maximal contenant l' au moins un sujet de rush désigné par les paramètres de rush, et e) définir des données de rush comme une suite d'images formées en associant des portions des images successives, laquelle suite d'images est déterminée en choisissant 5 parmi une pluralité de suites d'images qui sont contenues dans un cadre plus grand que le cadre minimal et plus petit que le cadre maximal associés aux images successives dans les données de cadrage associées à un rush donné, la suite d'images qui minimise la vitesse et la dérivée de l'accélération d'une caméra virtuelle qui est associée à cette suite d'images. 10 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 figure 1 représente un exemple de réalisation du dispositif selon la revendication 1, 15 - la figure 2 représente un diagramme de flux d'un exemple de fonctionnement du dispositif de la figure 1, - la figure 3 représente un diagramme d'un exemple de réalisation d'une opération de la figure 1, - la figure 4 représente un diagramme d'un exemple de réalisation d'une autre opération 20 de la figure 1, et - la figure 5 représente un diagramme d'un exemple de réalisation d'une opération de la figure 4. Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de 25 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 présente description est de nature à faire intervenir des éléments susceptibles de protection par le droit d'auteur et/ou le copyright. Le titulaire des droits n'a pas 30 d'objection à la reproduction à l'identique par quiconque du présent document de brevet ou de sa description, telle qu'elle apparaît dans les dossiers officiels. Pour le reste, il réserve intégralement ses droits. 3028701 5 En outre, la description détaillée est augmentée de l'annexe A, qui donne la formulation de certaines formules mathématiques mises en oeuvre dans le cadre de l'invention. Cette Annexe est mise à part dans un but de clarification, et pour faciliter les renvois. Elle est partie intégrante de la description, et pourra donc non seulement servir à mieux faire 5 comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. La figure 1 représente un exemple de réalisation du dispositif de traitement de données vidéo 2 selon l'invention. 10 Le dispositif 2 comprend un stockage 4, un détecteur 6, un cadreur 8 et un solveur 10. Le détecteur 6 et le cadreur 8 produisent des données intermédiaires 12 qui sont utilisées avec les données du stockage 4 par le solveur 10 pour produire des données de rush. 15 Plus précisément, le stockage 4 comprend des données appelées ci-après données initiales. Les données initiales représentent une prise de vue vidéo, comme par exemple la prise de vue d'un spectacle vivant (pièce de théâtre, opéra, ballet, ou autre). Le stockage 4 reçoit également des paramètres de rush, qui définissent les caractéristiques recherchées pour les rushes qui seront produits par le dispositif 2 à partir des données 20 initiales. Les paramètres de rush peuvent être des données statiques ou des données qui sont redéfinies à chaque fois que le dispositif 2 est utilisé. Le dispositif 2 permet de traiter les données initiales du stockage 4 pour produire des rushes conformément aux contraintes définies par les paramètres de rush, à partir d'une 25 unique prise de vue. Ainsi, lorsqu'une oeuvre cinématographique ou audiovisuelle présente une vue principale large à partir de laquelle tous les rushes souhaités sont à extraire, le dispositif 2 permet de réaliser la totalité de ces rushes à partir d'une unique prise de vue, avec une seule caméra. De plus, comme les rushes sont tous réalisés à partir d'une unique prise de vue, ils sont intrinsèquement synchronisés, ce qui réduit de 30 manière conséquente le travail de production. 3028701 6 Dans l'exemple décrit ici, les données initiales sont filmées avec une résolution qui est supérieure à la résolution recherchée pour les rushes. Ainsi, en filmant avec une caméra en résolution Ultra HD (également appelée « 4K », c'est-à-dire 4096 par 2160 pixels pour la variante cinématographique, ou 3840 par 2160 pixels pour la variante 5 audiovisuelle), il est possible par interpolation de produire des vidéos au format HD (c'est-à-dire 2048 par 1080 pixels pour la variante cinématographique, ou 1920 par 1080 pixels pour la variante audiovisuelle). Cependant, il est possible d'utiliser toutes les résolutions, y compris une résolution identique pour les données initiales et les données de rush, bien qu'il soit alors nécessaire de procéder à une extrapolation des 10 données de rush à la résolution des données initiales, puisque les données de rushes sont tirées d'un découpage des données initiales. D'une manière générale, une vidéo est stockée par le biais de données qui décrivent les images successives composant cette vidéo, que ce soit avec ou sans compression. Dans 15 tous les cas, bien qu'il faille distinguer les images composant une vidéo et les données associées à ses images, il conviendra de retenir que le terme « image » désigne à la fois une image en tant qu'instantané d'une vidéo et les données qui lui sont associées. Dans le cadre de l'invention, le stockage 4 peut être tout type de stockage de données 20 propre à recevoir des données numériques : disque dur, disque dur à mémoire flash (SSD en anglais), mémoire flash sous toute forme, mémoire vive, disque magnétique, stockage distribué localement ou dans le cloud, etc. Les données intermédiaires 12 peuvent être stockées sur tout type de mémoire similaire au stockage 4, ou sur celui-ci. Ces données peuvent être effacées après que le dispositif 2 ait effectué ses tâches ou 25 conservées. De même, le dispositif 2 de l'exemple décrit ici comprend trois unités fonctionnelles (le détecteur, le cadreur et le solveur). Ces unités peuvent être réunies au sein d'un même boîtier, sous la forme d'un ou plusieurs processeurs ou circuits intégrés spécialisés pour 30 réaliser les fonctions de ces unités, ou encore sous la forme de code informatique exécuté sur une ou plusieurs machines informatiques reliées entre elles pour la 3028701 7 réalisation du dispositif 2, ou sous toute forme intermédiaire entre ces types de réalisation. La figure 2 représente un diagramme de flux d'un exemple de fonctionnement du 5 dispositif de la figure 1. Comme on peut le voir sur cette figure, le dispositif 2 commence par une opération 200 dans laquelle une fonction Init() est exécutée. La fonction Init() comprend la désignation des données initiales dans le stockage 4, c'est-à-dire le choix de la vidéo à traiter pour produire automatiquement les rushes, le 10 choix des sujets pouvant faire l'objet d'un rush, ainsi que le choix des paramètres de rush. Le choix des sujets pouvant faire l'objet d'un rush peut être réalisé manuellement par l'utilisateur, qui va désigner un ou plusieurs acteurs par exemple en l'incluant dans un 15 rectangle dessiné avec un outil tel qu'une souris, ou cette désignation peut être automatisée. Ainsi, la fonction Init() peut exécuter des outils de détection de contours pour détecter les silhouettes humaines dans les données initiales et proposer à un utilisateur de choisir un ou plusieurs objets dans les résultats de cette détection. Selon l'algorithme de détection retenu pour la fonction Detect() décrite plus bas, plusieurs 20 images pourront être nécessaires pour la désignation d'un objet. Les paramètres de rush incluent pour chaque rush : - le choix du motif qui va servir de base au rush, c'est-à-dire le ou les objets qui seront l'objet généralement central du rush concerné (en général un ou plusieurs acteurs), 25 - le choix du format du rush, c'est-à-dire le type de plan recherché. En général, il s'agit d'un plan large, d'un plan moyen ou d'un plan rapproché. Le choix du motif des paramètres de rush peut également faire l'objet d'une automatisation, ou d'une association manuelle entre d'une part un ou plusieurs indices 30 d'objet et un indice de paramètres de rush. 3028701 8 Selon les variantes de réalisation, les paramètres de rush peuvent être préprogrammés (par exemple, il peut être prévu au moins un plan large comprenant tous les acteurs, un plan rapproché par acteur, etc.), ou être spécifiés par l'utilisateur du dispositif 2 au lancement de la fonction Init(). 5 Lorsque les paramètres de rush définissent comme motif un unique sujet, alors on peut parler indifféremment du motif et du sujet pour ce rush. Lorsque des paramètres de rush définissent un motif formé de plusieurs sujets, il est prévu d'associer dans les données intermédiaires 12 correspondantes une liste contenant l'ensemble des autres sujets qui 10 ne font pas l'objet du rush mais qui lui sont très proches, comme décrit avec la figure 4. Cette liste est utile pour l'utilisation de certaines fonctions de l'Annexe A, et pourra être omise dans certaines variantes. Afin de mieux expliquer le rôle ultérieur du solveur 10, il est utile de préciser le 15 contexte de l'utilisation du dispositif 2. Dans l'exemple décrit ici, le dispositif 2 est utilisé pour produire automatiquement des rushes de spectacles vivants, comme des pièces de théâtre. Dès lors, les sujets qui vont être utilisés pour la réalisation des divers rushes désigneront logiquement des acteurs. Afin de simplifier le traitement, un sujet donné dans une image donnée peut être désigné par des données de coordonnées 20 comprenant un point de référence ainsi qu'une hauteur, la largeur du sujet pouvant être extrapolée à partir de la hauteur. Lorsque des types particuliers de plan de rush sont prévus, comme un plan moyen, des données de hauteur de tronc supérieur peuvent également être utilisées pour caractériser un sujet, en plus des données de coordonnées déjà décrites. Les données de coordonnées peuvent également être définies par un 25 rectangle dans lequel est contenu le motif, à partir de deux bornes en abscisse, et deux bornes en ordonnée. Les différents types de données de coordonnées peuvent être combinés. La fonction Init() ne forme pas le coeur de l'invention et peut faire appel à divers 30 éléments connus pour permettre la détection automatique de contours, etc. À la fin de l'exécution de la fonction Init(), le dispositif 2 a donc d'une part des données initiales 3028701 9 qu'il peut traiter image par image, et des paramètres de rush, qui définissent le format des données vidéos que l'utilisateur cherche à produire à partir des données initiales. Ensuite, dans une opération 220, le dispositif 2 exécute une fonction Detect() au moyen 5 du détecteur 6. Le détecteur 6, avec la fonction Detect(), a pour rôle de parcourir les images des données initiales et de détecter dans chacune d'elle (ou dans certaines au moins) l'emplacement des sujets pouvant être associés à des motifs dans les paramètres de rush. 10 La figure 3 représente un exemple de réalisation de la fonction Detect(). La fonction Detect() commence par une opération 300 dans laquelle une fonction List() va créer deux listes : d'une part une liste des sujets à détecter, c'est-à-dire l'ensemble des sujets pouvant être désignés par des paramètres de rush, et d'autre part la liste des images à parcourir, c'est-à-dire la suite des images successives qui composent la vidéo des 15 données initiales. Ensuite, dans une opération 320, un compteur j est initialisé avec la valeur 0 et une boucle de détection des sujets dans les images successives commence. Dans cette boucle, chaque image successive est analysée dans une boucle qui détermine pour 20 chaque sujet deux bornes entre lesquelles s'exprime chaque sujet. Pour cela, dans une opération 330, un compteur k de sujet est initialisé à 0. Ensuite, dans une opération 340, une fonction Lim() qui prend comme arguments le compteur courant k de sujet et le compteur courant j d'image détermine deux bornes latérales 25 xl(k,j) et x2(k,j) qui représentent les abscisses extrêmes prises par le sujet d'indice k dans la liste des sujets de l'opération 300, dans l'image j, avec xl(k,j) REVENDICATIONS1. Dispositif de traitement de données vidéo comprenant un stockage (4) recevant des données initiales définissant une prise de vue vidéo, ces données pouvant être traitées pour représenter la prise de vue vidéo sous la forme de données d'images successives, caractérisé en ce qu'il comprend un détecteur (6), un cadreur (8) et un solveur (10), dans lequel - le détecteur (6) est agencé pour traiter les données d'images successives afin de détecter dans certaines au moins des images des données de coordonnées de sujet à partir de données d'images définissant un ou plusieurs sujets de rush, - le cadreur (8) est agencé pour traiter les données d'images successives afin de déterminer des données de cadrage, pour certaines au moins des images, à partir de paramètres de rush désignant au moins un sujet de rush et un format de rush et à partir des données de coordonnées de sujet, les données de cadrage comprenant pour chaque image à laquelle elles sont associées des données définissant un cadre minimal et un cadre maximal contenant l' au moins un sujet de rush désigné par les paramètres de rush, et - le solveur (10) est agencé pour produire des données de rush de la prise de vue vidéo à partir des données d'images successives, des données de cadrage associées aux images successives, et des paramètres de rush, les données de rush étant choisies parmi une pluralité de suites d'images formées en associant des portions des images successives qui sont contenues dans un cadre plus grand que le cadre minimal et plus petit que le cadre maximal associés pour ce rush à une image donnée, le solveur étant muni d'une fonction qui calcule, pour une suite d'images donnée, une pluralité de valeurs quantifiant le mouvement d'une caméra virtuelle associée à la prise de vue de cette suite d'images, et étant agencé pour choisir comme suite d'images définissant les données de rush celle dont la pluralité de valeurs associées minimise la vitesse et la dérivée de l'accélération de la caméra virtuelle qui leur est associée. 2. Dispositif selon la revendication 1, dans lequel la fonction dont est muni le solveur calcule en outre une valeur quantifiant la différence entre le déplacement 3028701 25 3. 5 4. 10 5. 15 6. 20 7. 258. 9. 30 perçu pour chaque sujet désigné par des paramètres de rush dans la suite d'images d'une part et dans les données initiales d'autre part. Dispositif selon la revendication 1 ou 2, dans lequel la fonction dont est muni le solveur calcule en outre une valeur quantifiant la différence entre la dérivée du déplacement de chaque sujet désigné par des paramètres de rush dans les données initiales d'une part, et la dérivée du déplacement de la caméra virtuelle d'autre part. Dispositif selon l'une des revendications précédentes, dans lequel la fonction dont est muni le solveur calcule en outre une valeur quantifiant, pour chaque image de la suite d'images, la différence entre la taille du cadre minimal et celle du cadre retenu pour cette image dans la suite d'images, ainsi que la différence entre la position du centre du cadre minimal et celle du centre du cadre retenu pour cette image dans la suite d'images. Dispositif selon l'une des revendications précédentes, dans lequel la fonction dont est muni le solveur calcule en outre une valeur quantifiant, pour chaque image de la suite d'images, une valeur liée à l'inclusion ou l'exclusion d'un ou plusieurs sujets non désignés dans les paramètres de rush dans la suite d'images. Dispositif selon l'une des revendications précédentes, dans lequel, pour un sujet donné dans une image donnée, le détecteur (6) analyse les données d'images successives pour détecter des coordonnées latérales extrêmes de ce sujet. Dispositif selon la revendication 6, dans lequel, pour une image donnée d'un rush donné, le cadreur (8) définit le cadre minimal à partir des coordonnées latérales extrêmes de chacun des sujets désignés dans les paramètres de rush de ce rush. Dispositif selon l'une des revendications précédentes, dans lequel le cadreur (8) définit le cadre maximal pour correspondre aux dimensions des images des données initiales. Appareil de prise de vue, 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 réaliser une prise de vue sous la forme de données initiales, et pour produire des données de rush à partir de ces données et du dispositif selon l'une des revendications précédentes. 3028701 26 10. Procédé de traitement de données vidéo comprenant les opérations suivantes : a) recevoir des données initiales définissant une prise de vue vidéo, ces données pouvant être traitées pour représenter la prise de vue vidéo sous la forme de données d'images successives, 5 b) déterminer des paramètres de rush désignant au moins un sujet de rush et un format de rush, et des données d'image d'un ou plusieurs sujets de rush, c) analyser les données d'images successives pour détecter dans certaines au moins des images des données de coordonnées d'un sujet à partir de données d'images définissant un ou plusieurs sujets de rush, 10 d) traiter les données d'images successives pour déterminer pour certaines au moins des images des données de cadrage à partir des données de coordonnées de sujet et des paramètres de rush, les données de cadrage comprenant pour chaque image à laquelle elles sont associées des données définissant un cadre minimal et un cadre maximal contenant l'au moins un sujet de rush désigné par 15 les paramètres de rush, et e) définir des données de rush comme une suite d'images formées en associant des portions des images successives, laquelle suite d'images est déterminée en choisissant parmi une pluralité de suites d'images qui sont contenues dans un cadre plus grand que le cadre minimal et plus petit que le cadre maximal 20 associés aux images successives dans les données de cadrage associées à un rush donné, la suite d'images qui minimise la vitesse et la dérivée de l'accélération d'une caméra virtuelle qui est associée à cette suite d'images.