EP2646981A1 - Method for determining the movements of an object from a stream of images - Google Patents

Method for determining the movements of an object from a stream of images

Info

Publication number
EP2646981A1
EP2646981A1 EP11802866.1A EP11802866A EP2646981A1 EP 2646981 A1 EP2646981 A1 EP 2646981A1 EP 11802866 A EP11802866 A EP 11802866A EP 2646981 A1 EP2646981 A1 EP 2646981A1
Authority
EP
European Patent Office
Prior art keywords
image
processing
stream
images
auxiliary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP11802866.1A
Other languages
German (de)
French (fr)
Inventor
José Alonso YBANEZ ZEPEDA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AYOTLE
Original Assignee
AYOTLE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AYOTLE filed Critical AYOTLE
Publication of EP2646981A1 publication Critical patent/EP2646981A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Definitions

  • the present invention relates to the field of image processing. More specifically, the invention relates to the determination of the movements of an object in a stream of images.
  • the determination of the movements of an object in a stream of images, and more particularly of an object animated as a face, has particular applications in the animation of avatars for the production of, for example, video games and cinematographic films. .
  • One of the main technical stakes in such applications is obtaining a level of realism sufficient not to cause, for example, the discomfort of the spectators or the users during the transposition of real face movements into face movements of virtual characters. .
  • the current methods are based on manual animation techniques which consist in carrying out the transposition by professional designers.
  • motion capture devices that use a video image processing but that require precisely placing markers for example on the face of the person whose movements one seeks to determine.
  • Such devices are put on the market, for example by the Vicon® brand.
  • the operation of placing the markers on the face is a long and critical operation for the rest of the treatment and we try to get rid of this operation.
  • Recently, a method of tracking face movements without markers has been proposed in "Face tracking using canonical correction analysis. In International Conference on Computer Vision Theory and Applications, pages 396-402, Barcelona, Spain, March 2007. However, the published method does not provide a satisfactory processing speed for professional use.
  • the present invention aims to provide a method for determining the movements of an object, and more particularly a face in a stream of images without using markers and able to work in real time.
  • the invention proposes a method for determining the movements of an object and more particularly of a face contained in a stream of images.
  • the method includes a step of recording an image of the image stream in a buffer memory and a step of processing the image by a processing unit.
  • the processing includes determining a change in the position and / or deformation of the object with respect to an image preceding the image in the image stream.
  • the image processing step is performed simultaneously with a step of recording an image succeeding said image in the image stream.
  • the proposed method notably allows an improvement of the performances and in particular of the speed of treatment by the paralleling of the operations registration and processing.
  • the method also makes it possible to take full advantage of the multi-core processors' capabilities and thus to obtain the animation of virtual objects or characters in real time.
  • the method further comprises a step of transmitting to a control unit information relating to the recording of the image in the buffer memory, a step of transmission by the control unit of a processing start instruction to the processing unit and a step of transmitting to the control unit information relating to the end of the processing of the image by the processing unit.
  • the processing is performed after the processing unit receives the processing instruction.
  • the processing instruction is transmitted after the control unit has received the information relating to the end of the processing of the image preceding said image in the stream and the information relating to the recording of said image.
  • control unit This allows better synchronization of the treatment by means of the control unit.
  • the transmission of information relating to the end of processing to the control unit makes it possible in particular to avoid transmitting instructions to the processing unit when the latter can not react because it is busy performing the processing of a processing unit. picture.
  • the supervision of the processing unit by a control unit allows an improvement in performance.
  • the method allows the potential addition of one or more auxiliary processing units without changing the operation of the processing unit. Modular execution facilitates scalability.
  • the control unit works like a interface and an auxiliary unit able to collaborate with the control unit can be added without modifying the interactions between the other elements.
  • the method further comprises a step of auxiliary processing prior to processing (main) of the image.
  • the method includes a step of recording an image of the image stream in an input buffer by a read unit and an auxiliary image processing step by the image processing unit. auxiliary treatment.
  • the auxiliary image processing step is performed simultaneously with the step of recording an image succeeding said image in the image stream.
  • the method further comprises a step of transmitting by the read unit to the control unit information relating to the recording of the image in the input buffer memory and a step transmission by the control unit of an auxiliary processing start instruction to the auxiliary processing unit.
  • the auxiliary processing is carried out after the auxiliary processing unit receives the auxiliary processing start instruction, said instruction being transmitted after the control unit has received the information relating to the recording of said picture .
  • This allows a better synchronization by the control unit.
  • This further subjects the operation of the auxiliary processing unit to control only of the control unit and allows the auxiliary processing unit to be developed independently of the processing unit. This also makes it possible to avoid transmitting instructions to the auxiliary processing unit when the latter can not react because it is busy performing auxiliary processing. Thus, performance management is improved.
  • the method further comprises a step of transmitting to the control unit information relating to the end of the auxiliary processing of the image by the auxiliary processing unit.
  • the step of transmitting the instruction is implemented after the control unit has received the information relating to the end of the auxiliary processing of the image preceding said image in the stream.
  • the auxiliary processing may include, for example, contrast equalization and / or correction of image aberrations to compensate for imperfections due for example to image acquisition in non-uniform illumination. It can also include the detection of characteristic points, the conversion of color images into grayscale, the binarization of the image, filtering, etc.
  • the method can further include a step of allocating the input buffer by the control unit.
  • the auxiliary processing start instruction includes information relating to the allocated buffer memory.
  • the start processing instruction includes a reactivation instruction if the processing unit is idle.
  • the auxiliary processing start instruction includes a reactivation instruction if the auxiliary processing unit is in sleep mode.
  • the standby of the processing unit and / or the auxiliary processing unit may be due to a difference in speed between the recording of the images in the buffer memory and the processing of the images. For example, if the images come from a high-definition camera, the recording of the images may be a step longer than the processing and / or the auxiliary processing and the corresponding processing unit may go to sleep between the processing of the images. two successive images.
  • the image stream is from a video camera or a data storage unit.
  • the method further comprises constructing a result image based on changing the position and / or deformation of the determined object in said image and displaying the image. the result image.
  • this makes it possible, for example, to use the determination of the modification of position and / or expression of the face in the image stream to construct images comprising virtual characters reproducing the movements of the face.
  • the determination of the movements of the face can also make it possible to animate a mask whose morphology is adapted to the face and which is superimposed on the face in the image. This allows for example to produce an image comprising a mask that reproduces the movements of the face contained in the stream of images. For example, the result image can also superimpose such a mask and the face.
  • the invention proposes a computer program product adapted to implement the method previously described.
  • the invention proposes a system for implementing the method according to the first aspect.
  • the system comprises a computer with a memory and a central processing unit, said central unit comprising a plurality of calculation units for implementing the method.
  • the central unit is a multi-core processor.
  • Figure 1 illustrates a system for implementing the invention in one embodiment.
  • FIG. 2 represents a block diagram of the steps implemented according to an alternative embodiment of the method according to the invention.
  • Figures 3A to 3C show timing diagrams illustrating the synchronization of steps of the method according to different embodiments.
  • Figures 4A-4D illustrate two images of a face and two image results constructed on the basis of the position and expression of the face determined in said facial images.
  • Figure 1 generally illustrates a system for implementing the invention according to one embodiment.
  • the system comprises a computer 1, a video camera 2, a first computer data storage unit 3 (for example an external hard disk drive or a USB key), a display unit 4 and a second display unit. storage of computer data 5 (for example a hard disk burner).
  • the computer 1 generally comprises a central computer data processing unit, a hard disk and a memory card (not shown).
  • a stream of raw images from the video camera 2 and / or the first computer data storage device 3 is processed by the central processing unit and a result image stream, obtained on the basis of the processing of the data stream.
  • raw images can be displayed on the display unit 4 and / or stored on the second storage unit 5.
  • the raw image stream can also come from a stream retrieved from a server by a computer network, Internet network or local network. It is the same with the flow of images results.
  • the images of the flow of raw images contain a face whose movements are sought to be determined in a three - dimensional space.
  • FIG. 2 illustrates, according to an exemplary embodiment, a block diagram of the processing of the flow of raw images by the central computer data processing unit.
  • the central processing unit is a multi-core processor comprising a set of calculation units engraved on the same chip to which a number of functions have been assigned (UL, UC, UTA, UT).
  • each calculation unit can be etched on an independent electronic card.
  • a control unit 11 allows the synchronization of the other calculation units.
  • the control unit 11 coordinates the operation of a reading unit 12, a processing unit 13 for the main processing of the images and an auxiliary processing unit 14.
  • the reading unit 12 proceeds to read and record the raw images acquired by the video camera 2 on an input buffer memory 22.
  • the raw image stream coming from the camera 2 forms a video sequence of successive images.
  • the reading unit 12 informs the control unit 11 of the recording of each new image by the transmission of information I A i to the control unit 11. This allows the control unit 11 to control the reactivation of the treatment unit
  • the auxiliary processing unit 14 can go into a standby mode by default. to allow other programs to access the computing capabilities of the central processing unit.
  • the auxiliary processing unit 14 processes the flow of raw images in parallel with the recording of the raw images in the input buffer memory 22.
  • the control unit 11 controls the auxiliary processing unit 14 by the transmission of the raw images.
  • the instruction I A2 is transmitted after the reception by the control unit 11 of the information I A i relating to the recording of the raw image.
  • the auxiliary processing unit 14 informs the control unit 11 of the end of the auxiliary processing of the raw image by sending information I A3 relating to the end of the auxiliary processing.
  • the processing of the raw images is successive and the processing of an image is performed after the control unit 11 has received the information relating to the end of the auxiliary processing of the raw image directly preceding said raw image in the stream.
  • auxiliary processing unit may be to improve the quality of the raw images before main processing by the processing unit 13.
  • the auxiliary processing unit 14 can equalize the contrast of the raw images and / or eliminate aberrations due to the camera.
  • the auxiliary processing may also include the calculation of the histogram of an image, the detection of characteristic points, the conversion of color images into grayscale, binarization, a filtering step or any other conventional step in image processing.
  • the auxiliary treatment can be used to sequence the processing steps so that each processing step is not longer than the recording step.
  • the sequence of images of the output image stream of the auxiliary processing unit 14 (also called image flow in the request) thus corresponds to the sequence of images of the raw image stream.
  • the auxiliary processing unit 14 records the image of the image stream thus processed on a buffer memory 24 and transmits information Ii relating to the recording to the control unit 11 which will be able to send the instruction I2 for starting treatment at the main processing unit 13 as soon as the processing unit 13 becomes available.
  • the control unit synchronizes the reading unit 12 and the processing unit 13.
  • the reading and processing units synchronize each other without the need for a control unit. .
  • auxiliary processing units there may be several auxiliary processing units, making it possible to pre-process the images before the main processing. This can make it possible, for example, to limit the processing time of each image by each processing unit to a duration less than or equal to the reading time and recording an image from the raw image stream and thus ensure real-time operation.
  • the control unit synchronizes the reading unit and the set of auxiliary and main processing units to ensure in parallel the recording of the images from the raw image stream, the auxiliary processing and the processing. main .
  • the main processing 13 includes determining a change in the position and / or deformation of an object with respect to an image directly preceding said image in the image stream. This may be for example the determination of the position and / or the modification of the expression of a face.
  • a three-dimensional geometric model (also called mask in the present application) may be superimposed on a reference image containing the object, for example a face, which one seeks to follow the movements and a learning step is implemented.
  • the learning step consists of developing a correspondence matrix that associates disturbances of the position and / or the expression of the mask with variations of texture between the portion of the reference image located under the mask in the mask. superimposed state on the face and the portion of the reference image located under the mask in the disturbed state.
  • the overlay on the reference image can be performed manually by a user.
  • the superimposition on the face can include a parameterization which makes it possible to adapt the three-dimensional mask to the morphology of the face of which one try to follow the movements.
  • the three-dimensional polygonal mask can provide in particular that the vertical position of the eyebrows, the nose, the mouth, the distance between the eyes are set for the face that one seeks to follow.
  • the treatment is subsequently performed by recurrence, from an image on which the mask is superimposed on the face and by estimating the modification of position and / or expression with respect to the previous image on the basis of the matrix. correspondence.
  • the processing unit 13 processes an image stored in the buffer memory on receipt of processing start information I2 from the control unit 12. After the processing, the processing unit 13 informs the control unit 12 by the transmission of information I3 relating to the end of the treatment.
  • the processing unit 13 processes the stream of images in parallel with the recording of the raw images and the auxiliary processing.
  • the processing unit 13 can also construct and display on the display unit 4 a result image comprising for example a superposition of the processed image and the mask whose position and expression is modified according to the position and the expression determined by the treatment.
  • the result image may also be stored on the second computer data storage unit 5.
  • FIGS. 3A to 3C illustrate time diagrams of the recording steps E1, auxiliary processing E2 and processing E3 for consecutive images of the raw image stream, according to three examples.
  • Step E1 (symbolized by a grid fill) comprises the acquisition of raw images by the camera 2 and the recording of the raw images on the input buffer memory 22.
  • the step E2 (symbolized by a hatched fill) includes the auxiliary processing of the raw images and the recording on the buffer memory 24.
  • the step E3 (symbolized by a full fill) includes the main processing of the images.
  • the steps E1-E3 are implemented in parallel, that is to say synchronously.
  • the main processing E1 of an image is consecutive to the auxiliary processing E2 of the corresponding raw image and is implemented after the image preceding said image has been processed.
  • the auxiliary processing of a raw image is consecutive to the recording of said raw image on the input buffer.
  • the cumulative processing time of the processing steps E2 and E3 is not greater than the recording step E1. Accordingly, the processing of an image is done during the processing. recording of the image succeeding him directly in the stream.
  • the parallel processing of steps E1-E3 in the example of Figure 3A allows to complete six units of time earlier the processing of the third image.
  • the auxiliary processing step E2 is shorter than the recording step E1 but the main processing step E3 is longer than the recording step E1.
  • the parallel processing makes it possible to end 12 units of time earlier than a sequential processing the processing of the third image, this configuration is less favorable than that of the examples 3A and 3B and one could divide the main processing into a second auxiliary treatment and a new main treatment, such that each processing step is shorter than the recording step.
  • FIGS. 4A and 4B illustrate two images of the image flow containing a face 6 and FIGS. 4B and 4D illustrate two result images respectively constructed on the basis of the determination of the position and the expression of the face 6 in the images. 4A-B.
  • a mask 7 is superimposed on the face 6.
  • the mask 7 reproduces the expression of the face 6.
  • the mask 7 can be the three-dimensional mask used to determine the modification of the position and the expression of the face 6 according to the method described above.
  • determining the position and expression of the face of a real character can animate a mask of a virtual character.
  • Such a mask can be obtained by a deformation of the three-dimensional mask used to determine the modification of the position and expression of the face of the real character.
  • a result image can be constructed by displaying the virtual character mask in the position and expression determined for the actual character. In real time, we obtain a realistic animation of the virtual character.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

According to one aspect, the invention relates to a system for determining the movements of an object from a stream of images of said object. The system includes, in particular, a computer having a memory and a central processing unit, said central processing unit including: a reading unit (12) for recording each image of the stream of images in an input buffer memory (22); a processing unit (13) making it possible to determine, for each image, a change in the position and/or in the deformation of said object relative to the image immediately preceding said image in the stream; the reading and processing units being synchronized such that the processing of each of said images of the stream of images is carried out either simultaneously at the time of the reading of an image following said image in the stream of images, and of the recording thereof in the input buffer memory (22).

Description

METHODE DE DETERMINATION DES MOUVEMENTS D'UN OBJET A PARTIR D'UN FLUX D'IMAGES  METHOD FOR DETERMINING THE MOVEMENTS OF AN OBJECT FROM A FLOW OF IMAGES
DOMAINE DE L'INVENTION FIELD OF THE INVENTION
La présente invention concerne le domaine du traitement des images. Plus précisément, l'invention se rapporte à la détermination des mouvements d'un objet dans un flux d'images.  The present invention relates to the field of image processing. More specifically, the invention relates to the determination of the movements of an object in a stream of images.
ETAT DE L'ART STATE OF THE ART
La détermination des mouvements d'un objet dans un flux d'images, et plus particulièrement d'un objet animé comme un visage, a notamment des applications dans l'animation d'avatars pour la réalisation par exemple de jeux vidéo et de films cinématographiques.  The determination of the movements of an object in a stream of images, and more particularly of an object animated as a face, has particular applications in the animation of avatars for the production of, for example, video games and cinematographic films. .
Un des enjeux techniques principaux dans de telles applications est l'obtention d'un niveau de réalisme suffisant pour ne pas provoquer par exemple 1' inconfort des spectateurs ou des utilisateurs lors de la transposition des mouvements de visages réels en mouvements de visages de personnages virtuels.  One of the main technical stakes in such applications is obtaining a level of realism sufficient not to cause, for example, the discomfort of the spectators or the users during the transposition of real face movements into face movements of virtual characters. .
Les méthodes actuelles sont basées sur des techniques d'animations manuelles qui consistent à réaliser la transposition par des dessinateurs professionnels. On connaît aussi des dispositifs de capture de mouvements qui utilisent un traitement d'images vidéo mais qui nécessitent de placer précisément des marqueurs par exemple sur le visage de la personne dont on cherche à déterminer les mouvements. De tels dispositifs sont mis dans le commerce par exemple par la marque Vicon®. L'opération de placement des marqueurs sur le visage est une opération longue et critique pour la suite du traitement et on cherche à s'affranchir de cette opération. Récemment, une méthode de suivi des mouvements de visage sans marqueurs a été proposée dans « Face tracking using canonical correction analysis. In International Conférence on Computer Vision Theory and Applications , pages 396-402, Barcelone, Espagne, Mars 2007». Cependant, la méthode publiée ne permet pas d'obtenir une vitesse de traitement satisfaisante pour une utilisation professionnelle. The current methods are based on manual animation techniques which consist in carrying out the transposition by professional designers. There are also known motion capture devices that use a video image processing but that require precisely placing markers for example on the face of the person whose movements one seeks to determine. Such devices are put on the market, for example by the Vicon® brand. The operation of placing the markers on the face is a long and critical operation for the rest of the treatment and we try to get rid of this operation. Recently, a method of tracking face movements without markers has been proposed in "Face tracking using canonical correction analysis. In International Conference on Computer Vision Theory and Applications, pages 396-402, Barcelona, Spain, March 2007. However, the published method does not provide a satisfactory processing speed for professional use.
La présente invention vise à fournir une méthode de détermination des mouvements d'un objet, et plus particulièrement d'un visage dans un flux d'images sans utiliser de marqueurs et apte à travailler en temps réel.  The present invention aims to provide a method for determining the movements of an object, and more particularly a face in a stream of images without using markers and able to work in real time.
RESUME DE L'INVEN ION SUMMARY OF THE INVEN ION
A cet effet, l'invention propose selon un premier aspect une méthode de détermination des mouvements d'un objet et plus particulièrement d'un visage contenu dans un flux d'images. La méthode comprend une étape d'enregistrement d'une image du flux d'images dans une mémoire tampon et une étape de traitement de l'image par une unité de traitement. Le traitement comprend la détermination d'une modification de la position et/ou de la déformation de l'objet par rapport à une image précédant l'image dans le flux d'images. L'étape de traitement de l'image est effectuée simultanément à une étape d'enregistrement d'une image succédant ladite image dans le flux d'images.  For this purpose, according to a first aspect, the invention proposes a method for determining the movements of an object and more particularly of a face contained in a stream of images. The method includes a step of recording an image of the image stream in a buffer memory and a step of processing the image by a processing unit. The processing includes determining a change in the position and / or deformation of the object with respect to an image preceding the image in the image stream. The image processing step is performed simultaneously with a step of recording an image succeeding said image in the image stream.
La méthode proposée permet notamment une amélioration des performances et notamment de la rapidité de traitement par la mise en parallèle des opérations d'enregistrement et de traitement. La méthode permet également de profiter pleinement des capacités des processeurs multi-c urs et ainsi d'obtenir l'animation d'objets ou de personnages virtuels en temps réel. The proposed method notably allows an improvement of the performances and in particular of the speed of treatment by the paralleling of the operations registration and processing. The method also makes it possible to take full advantage of the multi-core processors' capabilities and thus to obtain the animation of virtual objects or characters in real time.
Dans un mode de réalisation, la méthode comprend en outre une étape de transmission à une unité de contrôle d'une information relative à l'enregistrement de l'image dans la mémoire tampon, une étape de transmission par l'unité de contrôle d'une instruction de début de traitement à l'unité de traitement et une étape de transmission à l'unité de contrôle d'une information relative à la fin du traitement de l'image par l'unité de traitement. Le traitement est mis en œuvre après la réception par l'unité de traitement de l'instruction de traitement. L'instruction de traitement est transmise après que l'unité de contrôle a reçu l'information relative à la fin du traitement de l'image précédant ladite image dans le flux et l'information relative à l'enregistrement de ladite image.  In one embodiment, the method further comprises a step of transmitting to a control unit information relating to the recording of the image in the buffer memory, a step of transmission by the control unit of a processing start instruction to the processing unit and a step of transmitting to the control unit information relating to the end of the processing of the image by the processing unit. The processing is performed after the processing unit receives the processing instruction. The processing instruction is transmitted after the control unit has received the information relating to the end of the processing of the image preceding said image in the stream and the information relating to the recording of said image.
Ceci permet une meilleure synchronisation du traitement au moyen de l'unité de contrôle. La transmission d' informations relative à la fin du traitement à l'unité de contrôle permet notamment d'éviter de transmettre des instructions à l'unité de traitement alors que cette dernière ne peut réagir car elle est occupée à effectuer le traitement d'une image. Ainsi, la supervision de l'unité de traitement par une unité de contrôle permet une amélioration des performances. De plus, la méthode permet l'ajout potentiel d'une ou plusieurs unités de traitements auxiliaires sans modifier le fonctionnement de l'unité de traitement. L'exécution modulaire facilite l'extensibilité. L'unité de contrôle fonctionne comme une interface et une unité auxiliaire apte à collaborer avec l'unité de contrôle peut être ajoutée sans modification des interactions entre les autres éléments. This allows better synchronization of the treatment by means of the control unit. The transmission of information relating to the end of processing to the control unit makes it possible in particular to avoid transmitting instructions to the processing unit when the latter can not react because it is busy performing the processing of a processing unit. picture. Thus, the supervision of the processing unit by a control unit allows an improvement in performance. In addition, the method allows the potential addition of one or more auxiliary processing units without changing the operation of the processing unit. Modular execution facilitates scalability. The control unit works like a interface and an auxiliary unit able to collaborate with the control unit can be added without modifying the interactions between the other elements.
Dans un mode de réalisation, la méthode comprend en outre une étape de traitement auxiliaire préalable au traitement (principal) de l'image.  In one embodiment, the method further comprises a step of auxiliary processing prior to processing (main) of the image.
Ceci permet d'améliorer la qualité des images et de faciliter le traitement ultérieur des images en sortie du traitement auxiliaire.  This makes it possible to improve the quality of the images and to facilitate the subsequent processing of the images at the output of the auxiliary processing.
Dans un mode de réalisation, la méthode comprend une étape d'enregistrement d'une image du flux d'images dans une mémoire tampon d'entrée par une unité de lecture et une étape de traitement auxiliaire de l'image par l'unité de traitement auxiliaire. L'étape de traitement auxiliaire de l'image est effectuée simultanément à l'étape d'enregistrement d'une image succédant ladite image dans le flux d'images.  In one embodiment, the method includes a step of recording an image of the image stream in an input buffer by a read unit and an auxiliary image processing step by the image processing unit. auxiliary treatment. The auxiliary image processing step is performed simultaneously with the step of recording an image succeeding said image in the image stream.
Ceci permet notamment une amélioration des performances par la mise en parallèle des opérations d'enregistrement et de traitement auxiliaire.  This allows in particular an improvement in performance by setting parallel recording operations and auxiliary processing.
Dans un mode de réalisation, la méthode comprend en outre une étape de transmission par l'unité de lecture à l'unité de contrôle d'une information relative à l'enregistrement de l'image dans la mémoire tampon d'entrée et une étape de transmission par l'unité de contrôle d'une instruction de début de traitement auxiliaire à l'unité de traitement auxiliaire. Le traitement auxiliaire est mis en œuvre après la réception par l'unité de traitement auxiliaire de l'instruction de début de traitement auxiliaire, ladite instruction étant transmise après que l'unité de contrôle a reçu l'information relative à l'enregistrement de ladite image . Ceci permet une meilleure synchronisation par l'unité de contrôle. Ceci soumet en outre le fonctionnement de l'unité de traitement auxiliaire au seul contrôle de l'unité de contrôle et permet de développer l'unité de traitement auxiliaire indépendamment de l'unité de traitement. Ceci permet également d'éviter de transmettre des instructions à l'unité de traitement auxiliaire alors que cette dernière ne peut réagir car elle est occupée à effectuer un traitement auxiliaire. Ainsi, la gestion des performances est améliorée. In one embodiment, the method further comprises a step of transmitting by the read unit to the control unit information relating to the recording of the image in the input buffer memory and a step transmission by the control unit of an auxiliary processing start instruction to the auxiliary processing unit. The auxiliary processing is carried out after the auxiliary processing unit receives the auxiliary processing start instruction, said instruction being transmitted after the control unit has received the information relating to the recording of said picture . This allows a better synchronization by the control unit. This further subjects the operation of the auxiliary processing unit to control only of the control unit and allows the auxiliary processing unit to be developed independently of the processing unit. This also makes it possible to avoid transmitting instructions to the auxiliary processing unit when the latter can not react because it is busy performing auxiliary processing. Thus, performance management is improved.
Dans un mode de réalisation, la méthode comprend en outre une étape de transmission à l'unité de contrôle d'une information relative à la fin du traitement auxiliaire de l'image par l'unité de traitement auxiliaire. L'étape de transmission de l'instruction est mise en œuvre après que l'unité de contrôle a reçu l'information relative à la fin du traitement auxiliaire de l'image précédant ladite image dans le flux.  In one embodiment, the method further comprises a step of transmitting to the control unit information relating to the end of the auxiliary processing of the image by the auxiliary processing unit. The step of transmitting the instruction is implemented after the control unit has received the information relating to the end of the auxiliary processing of the image preceding said image in the stream.
Ceci permet de procéder au traitement d'une image selon le résultat du traitement auxiliaire d'une image précédant ladite image dans le flux.  This makes it possible to proceed with the processing of an image according to the result of the auxiliary processing of an image preceding said image in the stream.
Le traitement auxiliaire peut comprendre par exemple une égalisation du contraste et/ou une correction d' aberrations des images pour compenser des imperfections dues par exemple à une acquisition des images dans un éclairage non uniforme. Il peut comprendre également la détection de points caractéristiques, la conversion d'images couleur en niveaux de gris, la binarisation de l'image, un filtrage, etc.  The auxiliary processing may include, for example, contrast equalization and / or correction of image aberrations to compensate for imperfections due for example to image acquisition in non-uniform illumination. It can also include the detection of characteristic points, the conversion of color images into grayscale, the binarization of the image, filtering, etc.
Lorsqu'une pluralité de mémoires tampons d'entrée sont à disposition pour l'enregistrement des images, la méthode peur comprendre en outre une étape d'allocation de la mémoire tampon d'entrée par l'unité de contrôle. L'instruction de début de traitement auxiliaire comprend une information relative à la mémoire tampon allouée. When a plurality of input buffers are available for the recording of images, the method can further include a step of allocating the input buffer by the control unit. The auxiliary processing start instruction includes information relating to the allocated buffer memory.
Ceci permet de mettre en œuvre le traitement à partir de plusieurs sources vidéo.  This makes it possible to implement the processing from several video sources.
Dans un mode de réalisation, l'instruction de début de traitement comprend une instruction de réactivation si l'unité de traitement est en veille.  In one embodiment, the start processing instruction includes a reactivation instruction if the processing unit is idle.
Dans un mode de réalisation, l'instruction de début de traitement auxiliaire comprend une instruction de réactivation si l'unité de traitement auxiliaire est en veille.  In one embodiment, the auxiliary processing start instruction includes a reactivation instruction if the auxiliary processing unit is in sleep mode.
Ceci permet de stimuler l'unité de traitement et/ou l'unité de traitement auxiliaire afin qu'elle soit disponible pour traiter une image. La mise en veille de l'unité de traitement et/ou l'unité de traitement auxiliaire peut être due à une différence de vitesse entre l'enregistrement des images dans la mémoire tampon et le traitement des images. Par exemple, si les images proviennent d'une caméra haute définition, l'enregistrement des images peut être une étape plus longue que le traitement et/ou le traitement auxiliaire et l'unité de traitement correspondante peut se mettre en veille entre le traitement de deux images successives.  This makes it possible to stimulate the processing unit and / or the auxiliary processing unit so that it is available for processing an image. The standby of the processing unit and / or the auxiliary processing unit may be due to a difference in speed between the recording of the images in the buffer memory and the processing of the images. For example, if the images come from a high-definition camera, the recording of the images may be a step longer than the processing and / or the auxiliary processing and the corresponding processing unit may go to sleep between the processing of the images. two successive images.
Dans un mode de réalisation, le flux d' images provient d'une caméra vidéo ou d'une unité de stockage de données .  In one embodiment, the image stream is from a video camera or a data storage unit.
Dans un mode de réalisation la méthode comprend en outre la construction d'une image résultat sur la base de la modification de la position et/ou de la déformation de l'objet déterminée dans ladite image et l'affichage de l'image résultat. In one embodiment the method further comprises constructing a result image based on changing the position and / or deformation of the determined object in said image and displaying the image. the result image.
Dans le cas de la détermination des mouvements d'un visage, ceci permet par exemple d'utiliser la détermination de la modification de position et/ou d'expression du visage dans le flux d'images pour construire des images comprenant des personnages virtuels reproduisant les mouvements du visage. La détermination des mouvements du visage peut permettre également d' animer un masque dont la morphologie est adaptée au visage et qui se superpose sur le visage dans l'image. Ceci permet par exemple de produire une image comprenant un masque qui reproduit les mouvements du visage contenu dans le flux d'images. Par exemple, l'image résultat peut aussi superposer un tel masque et le dit visage.  In the case of determining the movements of a face, this makes it possible, for example, to use the determination of the modification of position and / or expression of the face in the image stream to construct images comprising virtual characters reproducing the movements of the face. The determination of the movements of the face can also make it possible to animate a mask whose morphology is adapted to the face and which is superimposed on the face in the image. This allows for example to produce an image comprising a mask that reproduces the movements of the face contained in the stream of images. For example, the result image can also superimpose such a mask and the face.
L'invention propose selon un deuxième aspect un produit programme d' ordinateur adapté pour mettre en œuvre la méthode précédemment décrite.  According to a second aspect, the invention proposes a computer program product adapted to implement the method previously described.
L' invention propose selon un troisième aspect un système pour la mise en œuvre de la méthode selon le premier aspect.  According to a third aspect, the invention proposes a system for implementing the method according to the first aspect.
Selon une variante, le système comprend un ordinateur avec une mémoire et une unité centrale de traitement, ladite unité centrale comprenant une pluralité d'unités de calculs pour la mise en œuvre de la méthode.  According to one variant, the system comprises a computer with a memory and a central processing unit, said central unit comprising a plurality of calculation units for implementing the method.
Par exemple l'unité centrale est un processeur multi-cœur .  For example, the central unit is a multi-core processor.
BREVE DESCRIPTION DES FIGURES BRIEF DESCRIPTION OF THE FIGURES
D' autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit, illustrée par les figures sur lesquelles : La figure 1 illustre un système pour la mise en œuvre de l'invention dans un mode de réalisation. Other features and advantages of the invention will appear on reading the description which follows, illustrated by the figures in which: Figure 1 illustrates a system for implementing the invention in one embodiment.
La figure 2 représente un synoptique des étapes mises en œuvre selon une variante de réalisation de la méthode selon l'invention.  FIG. 2 represents a block diagram of the steps implemented according to an alternative embodiment of the method according to the invention.
Les figures 3A à 3C représentent des diagrammes temporels illustrant la synchronisation d'étapes de la méthode selon différents modes de réalisation.  Figures 3A to 3C show timing diagrams illustrating the synchronization of steps of the method according to different embodiments.
Les figures 4A-4D illustrent deux images d'un visage et deux images résultats construites sur la base de la position et de l'expression du visage déterminées dans lesdites images du visage.  Figures 4A-4D illustrate two images of a face and two image results constructed on the basis of the position and expression of the face determined in said facial images.
DESCRIPTION DETAILLEE DETAILED DESCRIPTION
La figure 1 illustre généralement un système pour la mise en œuvre de l'invention selon un mode de réalisation. Le système comprend selon cet exemple un ordinateur 1, une caméra vidéo 2, une première unité de stockage de données informatiques 3 (par exemple un lecteur de disque dur externe ou une clé USB) , une unité d'affichage 4 et une deuxième unité de stockage de données informatiques 5 (par exemple un graveur de disque dur) . L'ordinateur 1 comprend généralement une unité centrale de traitement de données informatiques, un disque dur et une carte mémoire (non représentés) .  Figure 1 generally illustrates a system for implementing the invention according to one embodiment. According to this example, the system comprises a computer 1, a video camera 2, a first computer data storage unit 3 (for example an external hard disk drive or a USB key), a display unit 4 and a second display unit. storage of computer data 5 (for example a hard disk burner). The computer 1 generally comprises a central computer data processing unit, a hard disk and a memory card (not shown).
Un flux d' images brutes provenant de la caméra vidéo 2 et/ou du premier dispositif de stockage de données informatiques 3 est traité par l'unité centrale de traitement et un flux d'images résultats, obtenu sur la base du traitement du flux d'images brutes, peut être affichée sur l'unité d'affichage 4 et/ou stocké sur la deuxième unité de stockage 5. Le flux d'images brutes peut également provenir d'un flux récupéré sur un serveur par un réseau informatique, réseau Internet ou réseau local. Il en est de même du flux d'images résultats. Les images du flux d' images brutes contiennent un visage dont on cherche à déterminer les mouvements dans un espace tridimensionnel . A stream of raw images from the video camera 2 and / or the first computer data storage device 3 is processed by the central processing unit and a result image stream, obtained on the basis of the processing of the data stream. raw images, can be displayed on the display unit 4 and / or stored on the second storage unit 5. The raw image stream can also come from a stream retrieved from a server by a computer network, Internet network or local network. It is the same with the flow of images results. The images of the flow of raw images contain a face whose movements are sought to be determined in a three - dimensional space.
La figure 2 illustre selon un exemple de réalisation un synoptique du traitement du flux d' images brutes par l'unité centrale de traitement de données informatiques. Avantageusement, l'unité centrale de traitement est un processeur multi-c ur comprenant un ensemble d'unités de calcul gravées sur la même puce auxquelles on a assigné un certain nombre de fonctions (UL, UC, UTA, UT) . Selon une variante, chaque unité de calcul peut être gravée sur une carte électronique indépendante .  FIG. 2 illustrates, according to an exemplary embodiment, a block diagram of the processing of the flow of raw images by the central computer data processing unit. Advantageously, the central processing unit is a multi-core processor comprising a set of calculation units engraved on the same chip to which a number of functions have been assigned (UL, UC, UTA, UT). According to a variant, each calculation unit can be etched on an independent electronic card.
Parmi les unités de calcul, une unité de contrôle 11 permet la synchronisation des autres unités de calcul. Dans l'exemple de la figure 2, l'unité de contrôle 11 coordonne le fonctionnement d'une unité de lecture 12, d'une unité de traitement 13 pour le traitement principal des images et d'une unité de traitement auxiliaire 14.  Among the calculation units, a control unit 11 allows the synchronization of the other calculation units. In the example of FIG. 2, the control unit 11 coordinates the operation of a reading unit 12, a processing unit 13 for the main processing of the images and an auxiliary processing unit 14.
Dans l'exemple de la figure 2, l'unité de lecture 12 procède à la lecture et à l'enregistrement des images brutes acquises par la caméra vidéo 2 sur une mémoire tampon d'entrée 22. Le flux d'images brutes issu de la caméra 2 forme une séquence vidéo d' images successives. L'unité de lecture 12 informe l'unité de contrôle 11 de l'enregistrement de chaque nouvelle image par la transmission d'une information IAi à l'unité de contrôle 11. Ceci permet notamment à l'unité de contrôle 11 de contrôler la réactivation de l'unité de traitement auxiliaire 14. En effet, lorsque l'enregistrement des images est plus long que le traitement des images, par exemple quand les images proviennent de caméras haute définition, l'unité de traitement auxiliaire 14 peut se mettre par défaut dans un mode de veille afin de permettre à d'autres programmes d'accéder aux capacités de calcul de l'unité centrale de traitement. In the example of FIG. 2, the reading unit 12 proceeds to read and record the raw images acquired by the video camera 2 on an input buffer memory 22. The raw image stream coming from the camera 2 forms a video sequence of successive images. The reading unit 12 informs the control unit 11 of the recording of each new image by the transmission of information I A i to the control unit 11. This allows the control unit 11 to control the reactivation of the treatment unit In fact, when the recording of the images is longer than the processing of the images, for example when the images come from high-definition cameras, the auxiliary processing unit 14 can go into a standby mode by default. to allow other programs to access the computing capabilities of the central processing unit.
L'unité de traitement auxiliaire 14 traite le flux d'images brutes en parallèle de l'enregistrement des images brutes dans la mémoire tampon d'entrée 22. L'unité de contrôle 11 commande l'unité de traitement auxiliaire 14 par la transmission d'une instruction IA2 de début de traitement auxiliaire. L'instruction IA2 est transmise après la réception par l'unité de contrôle 11 de l'information IAi relative à l'enregistrement de l'image brute. L'unité de traitement auxiliaire 14 informe l'unité de contrôle 11 de la fin du traitement auxiliaire de l'image brute par l'envoi d'une information IA3 relative à la fin du traitement auxiliaire. Le traitement des images brutes est successif et le traitement d'une image est effectué après que l'unité de contrôle 11 a reçu l'information relative à la fin du traitement auxiliaire de l'image brute précédant directement ladite image brute dans le flux. The auxiliary processing unit 14 processes the flow of raw images in parallel with the recording of the raw images in the input buffer memory 22. The control unit 11 controls the auxiliary processing unit 14 by the transmission of the raw images. an instruction I A2 beginning of auxiliary processing. The instruction I A2 is transmitted after the reception by the control unit 11 of the information I A i relating to the recording of the raw image. The auxiliary processing unit 14 informs the control unit 11 of the end of the auxiliary processing of the raw image by sending information I A3 relating to the end of the auxiliary processing. The processing of the raw images is successive and the processing of an image is performed after the control unit 11 has received the information relating to the end of the auxiliary processing of the raw image directly preceding said raw image in the stream.
Un des buts de l'unité de traitement auxiliaire peut être d'améliorer la qualité des images brutes avant traitement principal par l'unité de traitement 13. Par exemple, l'unité de traitement auxiliaire 14 peut égaliser le contraste des images brutes et/ou éliminer des aberrations dues à la caméra. Le traitement auxiliaire peut également comprendre la calcul de l'histogramme d'une image, la détection de points caractéristiques, la conversion d'images couleur en niveaux de gris, la binarisation, une étape de filtrage ou tout autre étape classique en traitement d'images. Alternativement, le traitement auxiliaire peut permettre de séquencer les étapes de traitement pour que chaque étape de traitement ne soit pas plus longue que l'étape d' enregistrement . One of the purposes of the auxiliary processing unit may be to improve the quality of the raw images before main processing by the processing unit 13. For example, the auxiliary processing unit 14 can equalize the contrast of the raw images and / or eliminate aberrations due to the camera. The auxiliary processing may also include the calculation of the histogram of an image, the detection of characteristic points, the conversion of color images into grayscale, binarization, a filtering step or any other conventional step in image processing. Alternatively, the auxiliary treatment can be used to sequence the processing steps so that each processing step is not longer than the recording step.
La séquence des images du flux d' images en sortie de l'unité de traitement auxiliaire 14 (aussi appelé flux d'images dans la demande) correspond ainsi à la séquence des images du flux d'images brutes. Après le traitement, l'unité de traitement auxiliaire 14 enregistre l'image du flux d'images ainsi traitée sur une mémoire tampon 24 et transmet une information Ii relative à l'enregistrement à l'unité de contrôle 11 qui va pouvoir envoyer l'instruction I2 de début de traitement à l'unité de traitement principale 13 dès que l'unité de traitement 13 sera disponible.  The sequence of images of the output image stream of the auxiliary processing unit 14 (also called image flow in the request) thus corresponds to the sequence of images of the raw image stream. After the processing, the auxiliary processing unit 14 records the image of the image stream thus processed on a buffer memory 24 and transmits information Ii relating to the recording to the control unit 11 which will be able to send the instruction I2 for starting treatment at the main processing unit 13 as soon as the processing unit 13 becomes available.
Selon une variante, il n'y a pas de traitement auxiliaire et le traitement principal est réalisé directement sur le flux d'images brutes, chaque image étant préalablement lue et enregistrée par l'unité de lecture sur la mémoire tampon d'entrée 22. Dans ce cas, l'unité de contrôle assure la synchronisation de l'unité de lecture 12 et de l'unité de traitement 13. Alternativement, les unités de lecture et de traitement se synchronisent réciproquement sans qu'une unité de contrôle ne soit nécessaire.  According to one variant, there is no auxiliary processing and the main processing is carried out directly on the raw image stream, each image being read beforehand and recorded by the reading unit on the input buffer memory 22. In this case, the control unit synchronizes the reading unit 12 and the processing unit 13. Alternatively, the reading and processing units synchronize each other without the need for a control unit. .
Selon une autre variante, il peut y avoir plusieurs unités de traitement auxiliaire, permettant de pré-traiter les images avant le traitement principal. Cela peut permettre par exemple de limiter le temps de traitement de chaque image par chaque unité de traitement à une durée inférieure ou égale au temps de lecture et d'enregistrement d'une image issue du flux d'images brutes et d'assurer ainsi un fonctionnement en temps réel. Dans ce cas, l'unité de contrôle synchronise l'unité de lecture et l'ensemble des unités de traitement auxiliaires et principal pour assurer en parallèle l'enregistrement des images à partir du flux d'images brutes, les traitements auxiliaires et le traitement principal . According to another variant, there may be several auxiliary processing units, making it possible to pre-process the images before the main processing. This can make it possible, for example, to limit the processing time of each image by each processing unit to a duration less than or equal to the reading time and recording an image from the raw image stream and thus ensure real-time operation. In this case, the control unit synchronizes the reading unit and the set of auxiliary and main processing units to ensure in parallel the recording of the images from the raw image stream, the auxiliary processing and the processing. main .
Le traitement principal 13 comprend la détermination d'une modification de la position et/ou de la déformation d'un objet par rapport à une image précédant directement ladite image dans le flux d'images. Il peut s'agir par exemple de la détermination de la position et/ou de la modification de l'expression d'un visage.  The main processing 13 includes determining a change in the position and / or deformation of an object with respect to an image directly preceding said image in the image stream. This may be for example the determination of the position and / or the modification of the expression of a face.
Dans une phase préalable à la mise en œuvre de la méthode, un modèle géométrique tridimensionnel (aussi appelé masque dans la présente demande) peut-être superposé sur une image de référence contenant l'objet, par exemple un visage, dont on cherche à suivre les mouvements et une étape d'apprentissage est mise en œuvre. L'étape d'apprentissage consiste à élaborer une matrice de correspondances qui associe des perturbations de la position et/ou de l'expression du masque avec des variations de texture entre la portion de l'image de référence située sous le masque dans l'état superposé au visage et la portion de l'image de référence située sous le masque dans l'état perturbé.  In a phase prior to the implementation of the method, a three-dimensional geometric model (also called mask in the present application) may be superimposed on a reference image containing the object, for example a face, which one seeks to follow the movements and a learning step is implemented. The learning step consists of developing a correspondence matrix that associates disturbances of the position and / or the expression of the mask with variations of texture between the portion of the reference image located under the mask in the mask. superimposed state on the face and the portion of the reference image located under the mask in the disturbed state.
Par exemple, la superposition sur l'image de référence peut être effectuée manuellement par un utilisateur. La superposition sur le visage peut comprendre un paramétrage qui permet d' adapter le masque tridimensionnel à la morphologie du visage dont on cherche à suivre les mouvements. Par exemple, le masque polygonal tridimensionnel peut prévoir notamment que la position verticale des sourcils, du nez, de la bouche, la distance entre les yeux soient paramétrés pour le visage qu'on cherche à suivre. For example, the overlay on the reference image can be performed manually by a user. The superimposition on the face can include a parameterization which makes it possible to adapt the three-dimensional mask to the morphology of the face of which one try to follow the movements. For example, the three-dimensional polygonal mask can provide in particular that the vertical position of the eyebrows, the nose, the mouth, the distance between the eyes are set for the face that one seeks to follow.
Le traitement est effectué par la suite par récurrence, à partir d'une image sur laquelle le masque est superposé au visage et en estimant la modification de position et/ou d'expression par rapport à l'image précédente sur la base de la matrice de correspondances.  The treatment is subsequently performed by recurrence, from an image on which the mask is superimposed on the face and by estimating the modification of position and / or expression with respect to the previous image on the basis of the matrix. correspondence.
Plus de détails sur des méthodes de traitements pouvant être mises en œuvre sont par exemple donnés dans « Linear tracking of pose and facial features. In 10th IAPR Conférence on Machine Vision Applications , Tokyo, Japon, Mai 2007 ».  More details on treatment methods that can be implemented are for example given in "Linear tracking of poses and facial features. In 10th IAPR Conference on Machine Vision Applications, Tokyo, Japan, May 2007 ".
L'unité de traitement 13 traite une image enregistrée dans la mémoire tampon à réception d'une information I2 de début de traitement provenant de l'unité de contrôle 12. Après le traitement, l'unité de traitement 13 informe l'unité de contrôle 12 par la transmission d'une information I3 relative à la fin du traitement. L'unité de traitement 13 traite le flux d'images en parallèle de l'enregistrement des images brutes et du traitement auxiliaire.  The processing unit 13 processes an image stored in the buffer memory on receipt of processing start information I2 from the control unit 12. After the processing, the processing unit 13 informs the control unit 12 by the transmission of information I3 relating to the end of the treatment. The processing unit 13 processes the stream of images in parallel with the recording of the raw images and the auxiliary processing.
L'unité de traitement 13 peut également construire et afficher sur l'unité d'affichage 4 une image résultat comprenant par exemple une superposition de l'image traitée et du masque dont la position et l'expression est modifiée selon la position et l'expression déterminée par le traitement. Dans un mode de réalisation, l'image résultat peut également être stockée sur la deuxième unité de stockage de données informatiques 5. Les figures 3A à 3C illustrent des diagrammes temporels des étapes d'enregistrement El, de traitement auxiliaire E2 et de traitement E3 pour des images consécutives du flux d'images brutes, selon trois exemples. L'étape El (symbolisée par un remplissage quadrillé) comprend l'acquisition d'images brutes par la caméra 2 et l'enregistrement des images brutes sur la mémoire tampon d'entrée 22. L'étape E2 (symbolisée par un remplissage hachuré) comprend le traitement auxiliaire des images brutes et l'enregistrement sur la mémoire tampon 24. L'étape E3 (symbolisée par un remplissage plein) comprend le traitement principal des images. Les étapes E1-E3 sont mises en œuvre en parallèle, c'est-à- dire de façon synchrone. Le traitement principal El d'une image est consécutif au traitement auxiliaire E2 de l'image brute correspondante et est mis en œuvre après que l'image précédant ladite image a été traitée. Le traitement auxiliaire d'une image brute est consécutif à l'enregistrement de ladite image brute sur la mémoire tampon d'entrée. The processing unit 13 can also construct and display on the display unit 4 a result image comprising for example a superposition of the processed image and the mask whose position and expression is modified according to the position and the expression determined by the treatment. In one embodiment, the result image may also be stored on the second computer data storage unit 5. FIGS. 3A to 3C illustrate time diagrams of the recording steps E1, auxiliary processing E2 and processing E3 for consecutive images of the raw image stream, according to three examples. Step E1 (symbolized by a grid fill) comprises the acquisition of raw images by the camera 2 and the recording of the raw images on the input buffer memory 22. The step E2 (symbolized by a hatched fill) includes the auxiliary processing of the raw images and the recording on the buffer memory 24. The step E3 (symbolized by a full fill) includes the main processing of the images. The steps E1-E3 are implemented in parallel, that is to say synchronously. The main processing E1 of an image is consecutive to the auxiliary processing E2 of the corresponding raw image and is implemented after the image preceding said image has been processed. The auxiliary processing of a raw image is consecutive to the recording of said raw image on the input buffer.
Dans l'exemple de la figure 3A, le temps de traitement cumulé des étapes de traitement E2 et E3 n'est pas plus grand que l'étape d'enregistrement El. En conséquence, le traitement d'une image est fait pendant l'enregistrement de l'image lui succédant directement dans le flux. En comparaison avec un traitement séquentiel classique des étapes E1-E3, dans lequel l'enregistrement d'une image n'est faite qu'après que le traitement de l'image la précédant soit finie, le traitement en parallèle des étapes E1-E3 dans l'exemple de la figure 3A permet de terminer six unités de temps plus tôt le traitement de la troisième image.  In the example of FIG. 3A, the cumulative processing time of the processing steps E2 and E3 is not greater than the recording step E1. Accordingly, the processing of an image is done during the processing. recording of the image succeeding him directly in the stream. In comparison with a conventional sequential processing of steps E1-E3, in which the recording of an image is done only after the processing of the image preceding it is finished, the parallel processing of steps E1-E3 in the example of Figure 3A allows to complete six units of time earlier the processing of the third image.
Dans l'exemple de la figure 3B, le temps cumulé de traitement des étapes de traitement E2 et E3 est plus long que l'étape d'enregistrement El mais le temps de chacune des étapes E2 et E3 est plus court ou égal. En conséquence, on observe un débordement, le traitement principal E3 d'une image se faisant pendant la fin de l'enregistrement de l'image lui succédant directement dans le flux et le début de l'enregistrement de l'image après celle la succédant directement. Cependant, le traitement continue à se faire en temps réel, et en comparaison avec un traitement séquentiel, le traitement en parallèle dans l'exemple de la figure 3B permet de terminer 13 unités de temps plus tôt le traitement de la troisième image. In the example of Figure 3B, cumulative time the processing steps E2 and E3 are longer than the recording step El but the time of each of the steps E2 and E3 is shorter or equal. Consequently, an overflow is observed, the main processing E3 of an image being done during the end of the recording of the image succeeding it directly in the flow and the beginning of the recording of the image after that succeeding it. directly. However, the processing continues to be done in real time, and in comparison with sequential processing, the parallel processing in the example of Figure 3B allows 13 units of time to be completed earlier processing of the third image.
Dans l'exemple de la figure 3C, l'étape de traitement auxiliaire E2 est plus courte que l'étape d'enregistrement El mais l'étape de traitement principal E3 est plus longue que l'étape d'enregistrement El. Dans ce cas, on observe un décalage dans le traitement des images par rapport à l'enregistrement, et en conséquence, l'accumulation d'un retard. Bien que même dans cet exemple, le traitement en parallèle permet de terminer 12 unités de temps plus tôt qu'un traitement séquentiel le traitement de la troisième image, cette configuration est moins favorable que celle des exemples 3A et 3B et l'on pourrait diviser le traitement principal en un second traitement auxiliaire et un nouveau traitement principal, de telle sorte que chaque étape de traitement soit plus courte que l'étape d'enregistrement.  In the example of FIG. 3C, the auxiliary processing step E2 is shorter than the recording step E1 but the main processing step E3 is longer than the recording step E1. In this case there is an offset in the processing of the images with respect to the recording, and consequently the accumulation of a delay. Although even in this example, the parallel processing makes it possible to end 12 units of time earlier than a sequential processing the processing of the third image, this configuration is less favorable than that of the examples 3A and 3B and one could divide the main processing into a second auxiliary treatment and a new main treatment, such that each processing step is shorter than the recording step.
Les figures 4A et 4B illustrent deux images du flux d'images contenant un visage 6 et les figures 4B et 4D illustrent deux images résultats respectivement construites sur la base de la détermination de la position et de l'expression du visage 6 dans les images 4A-B . Sur les images 4C et 4D, un masque 7 est superposé sur le visage 6. Le masque 7 reproduit l'expression du visage 6. Le masque 7 peut être le masque tridimensionnel utilisé pour déterminer la modification de la position et de l'expression du visage 6 d'après la méthode décrite précédemment. Dans un autre mode de réalisation, la détermination de la position et de l'expression du visage d'un personnage réel permet d'animer un masque d'un personnage virtuel. Un tel masque peut être obtenu par une déformation du masque tridimensionnel utilisé pour déterminer la modification de la position et de l'expression du visage du personnage réel. Dans un tel mode de réalisation, une image résultat peut être construite en affichant le masque du personnage virtuel dans la position et l'expression déterminée pour le personnage réel. On obtient ainsi en temps réel une animation réaliste du personnage virtuel. FIGS. 4A and 4B illustrate two images of the image flow containing a face 6 and FIGS. 4B and 4D illustrate two result images respectively constructed on the basis of the determination of the position and the expression of the face 6 in the images. 4A-B. In the images 4C and 4D, a mask 7 is superimposed on the face 6. The mask 7 reproduces the expression of the face 6. The mask 7 can be the three-dimensional mask used to determine the modification of the position and the expression of the face 6 according to the method described above. In another embodiment, determining the position and expression of the face of a real character can animate a mask of a virtual character. Such a mask can be obtained by a deformation of the three-dimensional mask used to determine the modification of the position and expression of the face of the real character. In such an embodiment, a result image can be constructed by displaying the virtual character mask in the position and expression determined for the actual character. In real time, we obtain a realistic animation of the virtual character.
Bien que décrite à travers un certain nombre d'exemples de réalisation, la méthode et le système selon l'invention comprennent différentes variantes, modifications et perfectionnements qui apparaîtront de façon évidente à l'homme de l'art, étant entendu que ces différentes variantes, modifications et perfectionnements font partie de la portée de l'invention telle que définie par les revendications qui suivent.  Although described through a certain number of exemplary embodiments, the method and the system according to the invention comprise various variants, modifications and improvements which will become obvious to those skilled in the art, it being understood that these different variants modifications and improvements are within the scope of the invention as defined by the following claims.

Claims

REVENDICATIONS
Méthode mise en œuvre par ordinateur de détermination des mouvements d'un objet à partir d'un flux d'images dudit objet, comprenant pour chaque image du flux d' images : A method implemented by computer for determining the movements of an object from a stream of images of said object, comprising for each image of the stream of images:
l'enregistrement (El) de ladite image dans une mémoire tampon d'entrée (22),  recording (El) of said image in an input buffer (22),
le traitement (E3) de ladite image par une unité de traitement (13), le traitement comprenant la détermination d'une modification de la position et/ou d'une déformation dudit objet par rapport à une image précédant directement ladite image dans le flux,  processing (E3) said image by a processing unit (13), the processing comprising determining a modification of the position and / or deformation of said object with respect to an image directly preceding said image in the stream ,
la méthode comprenant en outre : the method further comprising:
la synchronisation des étapes d'enregistrement et de traitement de telle sorte que le traitement d'une image soit effectué simultanément à l'enregistrement d'une image succédant ladite image dans le flux d' images .  synchronizing the recording and processing steps so that the processing of an image is performed simultaneously with the recording of an image succeeding said image in the stream of images.
Méthode selon la revendication 1, dans laquelle la synchronisation comprend : The method of claim 1, wherein the synchronization comprises:
La transmission à une unité de contrôle d'informations relatives à l'enregistrement d'une image dans la mémoire tampon d'entrée et à la fin de traitement d'une image; La transmission par ladite unité de contrôle d' instructions relatives au début de traitement, une instruction de début de traitement (I2) étant transmise pour démarrer le traitement d'une image après réception de l'information (IAI) relative à l'enregistrement de ladite image et réception de l'information (I3) relative à la fin de traitement de l'image précédant directement ladite image dans le flux d' images . Transmitting to a control unit information relating to the recording of an image in the input buffer and at the end of processing an image; The transmission by said control unit of instructions relating to the start of processing, a start instruction of processing (I2) being transmitted to start processing an image after receiving the information (I A I) relating to the recording of said image and receiving information (I 3 ) relating to the end of processing of the image directly preceding said image in the stream of images.
Méthode selon la revendication 2, dans laquelle l'instruction (I2) de début de traitement comprend une instruction de réactivation si l'unité de traitement (13) est en veille. The method of claim 2, wherein the start of treatment instruction (I2) comprises a reactivation instruction if the processing unit (13) is on standby.
Méthode selon l'une au moins des revendications précédentes, comprenant en outre une étape de traitement auxiliaire (E2) par une unité de traitement auxiliaire (14), préalable à l'étape de traitement, ladite étape de traitement auxiliaire comprenant pour chaque image du flux d' images : A method according to at least one of the preceding claims, further comprising an auxiliary processing step (E2) by an auxiliary processing unit (14), prior to the processing step, said auxiliary processing step comprising for each image of flow of images:
La lecture de ladite image dans la mémoire tampon d'entrée (22),  Reading said image in the input buffer (22),
Le pré-traitement de ladite image,  Pre-processing of said image,
L'enregistrement dans une mémoire tampon auxiliaire (24) de ladite image pré-traitée en vue de son traitement (E3);  Recording in an auxiliary buffer (24) of said pre-processed image for processing (E3);
la méthode comprenant en outre : the method further comprising:
la synchronisation (11) par une unité de contrôle des étapes d'enregistrement dans la mémoire tampon d'entrée (22) et de traitement auxiliaire (E2) de telle sorte que le traitement auxiliaire d'une image soit effectué simultanément à l'enregistrement d'une image succédant ladite image dans le flux d'images. synchronization (11) by a control unit of the recording steps in the input buffer (22) and the auxiliary processing buffer (E2) so that the auxiliary processing of an image is performed simultaneously with recording an image succeeding said image in the image stream.
Méthode selon la revendication 4, dans laquelle la synchronisation comprend en outre: The method of claim 4, wherein the synchronization further comprises:
La transmission à ladite unité de contrôle d' informations relatives à la fin de traitement auxiliaire d'une image;  Transmitting information relating to the end of auxiliary processing of an image to said control unit;
La transmission par ladite unité de contrôle d' instructions relatives au début de traitement auxiliaire, une instruction de début de traitement auxiliaire ( IA2 ) étant transmise pour démarrer le traitement auxiliaire d'une image après réception de l'information ( IAI ) relative à l'enregistrement de ladite image dans la mémoire tampon d' entrée et réception de l'information ( IA3 ) relative à la fin de traitement auxiliaire de l'image précédant directement ladite image dans le flux d' images . The transmission by said control unit of instructions relating to the beginning of auxiliary processing, an auxiliary processing start instruction (I A 2) being transmitted to start the auxiliary processing of an image after reception of the information (I A I ) relating to the recording of said image in the input buffer and reception of information (I A3 ) relating to the end of auxiliary processing of the image directly preceding said image in the image stream.
Méthode selon la revendication 5, dans laquelle l'instruction (IA2 ) de début de traitement comprend une instruction de réactivation si l'unité de traitement auxiliaire (14) est en veille. The method of claim 5, wherein the start of treatment instruction (I A 2) comprises a reactivation instruction if the auxiliary processing unit (14) is on standby.
Méthode selon l'une au moins des revendications 4 à 6, comprenant au moins une seconde étape de traitement auxiliaire par une seconde unité de traitement auxiliaire, ladite seconde étape de traitement auxiliaire comprenant pour chaque image du flux d' images : The method according to at least one of claims 4 to 6, comprising at least a second auxiliary processing step by a second auxiliary processing unit, said second auxiliary processing step comprising for each image of the image stream:
la lecture de ladite image dans la mémoire tampon auxiliaire, reading said image in the memory auxiliary buffer,
le pré-traitement de ladite image, l'enregistrement dans une seconde mémoire tampon auxiliaire de ladite image pré- traitée en vue de son traitement (E3);  preprocessing said image, recording in a second auxiliary buffer of said preprocessed image for processing (E3);
la méthode comprenant en outre :  the method further comprising:
la synchronisation par l'unité de contrôle (11) de l'étape de second traitement auxiliaire de telle sorte que le second traitement auxiliaire d'une image soit effectué simultanément à l'enregistrement dans la mémoire tampon d'entrée d'une image succédant ladite image dans le flux d' images .  synchronization by the control unit (11) of the second auxiliary processing step such that the second auxiliary processing of an image is performed simultaneously with the recording in the input buffer of a successor image said image in the stream of images.
8. Méthode selon l'une au moins des revendications précédentes, comprenant en outre la construction d'une image résultat sur la base de la modification de la position et/ou de la déformation de l'objet déterminée dans ladite image et l'affichage de l'image résultat. The method according to at least one of the preceding claims, further comprising constructing a result image based on changing the position and / or deformation of the determined object in said image and the display. of the result image.
9. Méthode selon l'une au moins des revendications précédentes, dans laquelle le flux d'images provient d'une caméra vidéo ou d'une unité de stockage de données. 9. Method according to at least one of the preceding claims, wherein the image flow comes from a video camera or a data storage unit.
10. Méthode selon l'une au moins des revendications précédentes, dans laquelle les images comprennent des images d'un visage et le traitement comprend la détermination d'une modification de la position et/ou de l'expression dudit visage. The method according to at least one of the preceding claims, wherein the images comprise images of a face and the treatment comprises determining a change in the position and / or expression of said face.
11. Produit programme d'ordinateur adapté pour mettre en œuvre la méthode selon l'une au moins des revendications précédentes, lorsque le programme est exécuté sur un ordinateur. 11. Computer program product suitable for implement the method according to at least one of the preceding claims, when the program is run on a computer.
12. Système pour la détermination des mouvements d'un objet à partir d'un flux d'images dudit objet comprenant un ordinateur avec une mémoire et une unité centrale de traitement, ladite unité centrale de traitement comprenant: A system for determining the movements of an object from a stream of images of said object comprising a computer with a memory and a central processing unit, said central processing unit comprising:
une unité de lecture (12) pour l'enregistrement de chaque image du flux d' images dans une mémoire tampon d' entrée (22) ;  a read unit (12) for recording each image of the stream of images in an input buffer (22);
une unité de traitement (13) permettant pour chaque image la détermination d'une modification de la position et/ou de l'expression du visage par rapport à l'image précédant directement ladite image dans le flux ;  a processing unit (13) allowing for each image the determination of a modification of the position and / or the expression of the face relative to the image directly preceding said image in the stream;
les unités de lecture et de traitement étant synchronisées de telle sorte que le traitement de chacune desdites images du flux d'images soit effectué simultanément à la lecture d'une image succédant ladite image dans le flux d' images et son enregistrement dans la mémoire tampon d' entrée ( 22 ) .  the reading and processing units being synchronized so that the processing of each of said images of the image stream is carried out simultaneously with the reading of an image succeeding said image in the stream of images and its recording in the buffer memory input (22).
13. Système selon la revendication 12, dans lequel la pluralité d'unités de calcul comprend en outre au moins une unité de contrôle (11) pour assurer la synchronisation desdites unités de lecture et de traitement. The system of claim 12, wherein the plurality of computing units further comprises at least one control unit (11) for synchronizing said reading and processing units.
14. Système selon la revendication 13, dans lequel la pluralité d'unités de calcul comprend en outre au moins une unité de traitement auxiliaire (14) permettant pour chaque image du flux d'images : - la lecture de ladite image dans la mémoire tampon d'entrée (22), The system according to claim 13, wherein the plurality of calculation units further comprises at least one auxiliary processing unit (14) allowing for each image of the image stream: the reading of said image in the buffer memory input (22),
Le pré-traitement de ladite image, L'enregistrement dans une mémoire tampon auxiliaire (24) de ladite image pré-traitée en vue de son traitement (E3) .  Pre-processing said image, recording in an auxiliary buffer (24) of said pre-processed image for processing (E3).
15. Système selon l'une au moins des revendications 13 ou 14, dans lequel l'unité centrale de traitement est un processeur multi-cœur, chaque unité de calcul étant une unité de calcul dudit processeur. 15. System according to at least one of claims 13 or 14, wherein the central processing unit is a multi-core processor, each computing unit being a computing unit of said processor.
16. Système selon la revendication 15, comprenant en outre une caméra vidéo (2) ou une unité de stockage de données (3) pour former le flux d' images . The system of claim 15, further comprising a video camera (2) or a data storage unit (3) for forming the image stream.
EP11802866.1A 2010-12-03 2011-11-30 Method for determining the movements of an object from a stream of images Ceased EP2646981A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1060074A FR2968436B1 (en) 2010-12-03 2010-12-03 METHOD FOR DETERMINING THE MOVEMENTS OF AN OBJECT FROM A FLOW OF IMAGES
PCT/EP2011/071348 WO2012072664A1 (en) 2010-12-03 2011-11-30 Method for determining the movements of an object from a stream of images

Publications (1)

Publication Number Publication Date
EP2646981A1 true EP2646981A1 (en) 2013-10-09

Family

ID=44244347

Family Applications (1)

Application Number Title Priority Date Filing Date
EP11802866.1A Ceased EP2646981A1 (en) 2010-12-03 2011-11-30 Method for determining the movements of an object from a stream of images

Country Status (4)

Country Link
US (1) US9092874B2 (en)
EP (1) EP2646981A1 (en)
FR (1) FR2968436B1 (en)
WO (1) WO2012072664A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015088095A (en) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント Information processor and information processing method
US20150306330A1 (en) * 2014-04-29 2015-10-29 MaskSelect, Inc. Mask Selection System
US10062216B2 (en) * 2016-09-13 2018-08-28 Aleksey Konoplev Applying facial masks to faces in live video

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081606A (en) * 1996-06-17 2000-06-27 Sarnoff Corporation Apparatus and a method for detecting motion within an image sequence
US8274935B2 (en) * 2008-02-11 2012-09-25 Amdocs Software Systems Limited Mobile communication device notifier
JP4603603B2 (en) * 2008-07-24 2010-12-22 株式会社日立国際電気 Recording transfer device
US8698888B2 (en) * 2009-10-30 2014-04-15 Medical Motion, Llc Systems and methods for comprehensive human movement analysis

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
C. V. RAMAMOORTHY ET AL: "Pipeline Architecture", ACM COMPUTING SURVEYS, vol. 9, no. 1, 1 January 1977 (1977-01-01), pages 61 - 102, XP055124624, ISSN: 0360-0300, DOI: 10.1145/356683.356687 *
FLEURY M ET AL: "A real-time parallel image-processing model", IMAGE PROCESSING AND ITS APPLICATIONS, 1997., SIXTH INTERNATIONAL CONF ERENCE ON DUBLIN, IRELAND 14-17 JULY 1997, LONDON, UK,IEE, UK, vol. 1, 14 July 1997 (1997-07-14), pages 174 - 178, XP006508276, ISBN: 978-0-85296-692-1 *
See also references of WO2012072664A1 *

Also Published As

Publication number Publication date
FR2968436B1 (en) 2013-01-18
WO2012072664A1 (en) 2012-06-07
US9092874B2 (en) 2015-07-28
US20130315554A1 (en) 2013-11-28
FR2968436A1 (en) 2012-06-08

Similar Documents

Publication Publication Date Title
CN105791692B (en) Information processing method, terminal and storage medium
CN108780389B (en) Image retrieval for computing devices
US10685496B2 (en) Saving augmented realities
EP2450852A1 (en) Method and device for virtual simulation of an image
US7034833B2 (en) Animated photographs
EP2556660A1 (en) A method of real-time cropping of a real entity recorded in a video sequence
CN109035288B (en) Image processing method and device, equipment and storage medium
TWI255141B (en) Method and system for real-time interactive video
CN109584358A (en) A kind of three-dimensional facial reconstruction method and device, equipment and storage medium
US20120300092A1 (en) Automatically optimizing capture of images of one or more subjects
JP2011526013A (en) Image processing
US11816795B2 (en) Photo-video based spatial-temporal volumetric capture system for dynamic 4D human face and body digitization
WO2022142177A1 (en) Method and apparatus for generating hdr image, and electronic device and readable storage medium
WO2021245273A1 (en) Method and device for three-dimensional reconstruction of a face with toothed portion from a single image
CN111638784A (en) Facial expression interaction method, interaction device and computer storage medium
CN115661912B (en) Image processing method, model training method, electronic device, and readable storage medium
EP2646981A1 (en) Method for determining the movements of an object from a stream of images
US20090297029A1 (en) Digital Image Enhancement
AU2018271418B2 (en) Creating selective virtual long-exposure images
CN114758027A (en) Image processing method, image processing device, electronic equipment and storage medium
CN108259767B (en) Image processing method, image processing device, storage medium and electronic equipment
US20080088712A1 (en) Slimming Effect For Digital Photographs
CN113676692A (en) Video processing method and device in video conference, electronic equipment and storage medium
CN113395599A (en) Video processing method and device, electronic equipment and medium
US10573052B2 (en) Creating cinemagraphs with virtual long-exposure images

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20130620

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20140627

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20160616