WO2022195818A1 - 画像生成システムおよび画像生成方法 - Google Patents

画像生成システムおよび画像生成方法 Download PDF

Info

Publication number
WO2022195818A1
WO2022195818A1 PCT/JP2021/011191 JP2021011191W WO2022195818A1 WO 2022195818 A1 WO2022195818 A1 WO 2022195818A1 JP 2021011191 W JP2021011191 W JP 2021011191W WO 2022195818 A1 WO2022195818 A1 WO 2022195818A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
image
state
data
image generation
Prior art date
Application number
PCT/JP2021/011191
Other languages
English (en)
French (fr)
Inventor
雄気 唐澤
雅一 鈴置
圭介 清水
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
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 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to PCT/JP2021/011191 priority Critical patent/WO2022195818A1/ja
Priority to JP2023506639A priority patent/JPWO2022195818A1/ja
Publication of WO2022195818A1 publication Critical patent/WO2022195818A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Definitions

  • the present invention relates to an image generation system and an image generation method that reflect the real world situation in the image world.
  • the present invention has been made in view of these problems, and its purpose is to provide a technique for expressing, with high definition, an object that moves with high accuracy in accordance with speech.
  • This image generation system includes a state information acquisition unit that sequentially acquires information related to the state of the speaker's face estimated based on the speaker's voice, and an object model that reflects the state. and a drawing unit that generates a display image drawn by ray tracing.
  • This image generation method comprises steps of sequentially acquiring information related to the state of the speaker's face estimated based on the speaker's voice; and generating a display image rendered by.
  • an object that moves with high accuracy according to speech can be expressed with high definition.
  • FIG. 3 is a diagram showing an internal circuit configuration of an image generating section in the embodiment
  • FIG. FIG. 3 is a diagram showing configurations of functional blocks of a state estimation unit and an image generation unit according to the present embodiment
  • FIG. 4 is a diagram for explaining a weighting factor of a representative face as an example of speech-derived information according to the present embodiment
  • FIG. 10 is a diagram for explaining the orientation of the pupil and the degree of opening of the eyelid as an example of the image-derived information in the present embodiment
  • 3 is a diagram showing in more detail the configuration of functional blocks of a rendering unit according to the present embodiment
  • FIG. 4 is a flow chart showing a processing procedure for generating structure data by a structure data generation unit in the present embodiment
  • FIG. 4 is a flow chart showing a processing procedure in which a ray tracing unit performs ray tracing in the embodiment
  • FIG. 8 is a diagram exemplifying the configuration of structure data generated by a structure data generation unit in S14 of FIG. 7 in the present embodiment
  • FIG. 4 is a diagram illustrating the structure of data held by an internal node of “AABB” in this embodiment
  • FIG. 4 is a diagram illustrating the structure of data held by a leaf node that defines a “primitive” in this embodiment
  • FIG. 2 is a diagram illustrating an original tree structure and a data structure when it is flattened according to the present embodiment
  • FIG. 10 is a flow chart showing a processing procedure for updating data of an internal node by a structure data generation unit in the present embodiment
  • FIG. FIG. 14 is a flow chart showing the procedure of a leaf node data update process performed in S24 of FIG. 13
  • FIG. 1 is a diagram showing a drawing processing distribution system that can be applied to the present embodiment
  • FIG. It is a figure which shows the application example of this Embodiment.
  • FIG. 1 shows a configuration example of an image generation system to which this embodiment can be applied.
  • the image generation system 8 expresses how the user speaks with computer graphics.
  • an object represented by computer graphics in this way will be referred to as a "user character”.
  • the appearance of the user character is not particularly limited. For example, the user may be made to closely resemble the user himself or may be a completely different person or animal.
  • the image generation system 8 includes a state estimation unit 12 for estimating the state of a face, etc., using user's voice and captured image as input data, and an image generation unit 10 for generating a display image including a user character according to the estimation result.
  • the state estimating unit 12 acquires voice data spoken by the user, and estimates the state of the entire face and the states of various parts such as the mouth and eyes at a predetermined rate. State information that can be estimated from voice is hereinafter referred to as "voice-derived information”. The state estimating unit 12 also acquires video data of the user speaking, and estimates the position and posture of the head, face, and other parts of the body, the state of various parts of the face, etc. at a predetermined rate. You may State information that can be estimated from a captured image is hereinafter referred to as “image-derived information”. It should be noted that when both voice and captured image are used as input data, they are assumed to be synchronized.
  • the state estimation unit 12 may include a learning model storage unit 13 based on a deep neural network (DNN). That is, the above-described parameters may be estimated from actual voices and captured images using speech recognition and image recognition techniques that have been put to practical use in deep learning. As illustrated, the state estimating unit 12 may store and use the result of learning by a separately provided learning system 16 in the learning model storage unit 13 .
  • DNN deep neural network
  • the learning system 16 uses various and large amounts of voices and captured images as input data, and the learning unit 18 learns human facial expressions and body movements, and as a result, derives these parameters from the voices and captured images. and a database 20 for accumulating model data for.
  • Known deep learning techniques such as CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), fully-connected type, etc. can be applied to the learning system 16, so detailed description thereof will be omitted.
  • the processing executed by the learning system 16 is not limited to deep learning, and may be other machine learning.
  • the image generator 10 generates an image including the user character at a predetermined rate using the result estimated by the state estimator 12 . That is, the voice input to the state estimating unit 12 is used to generate a moving image of the user character speaking.
  • the state estimating unit 12 may use voices of a plurality of users as input data to estimate respective states, and the image generating unit 10 may generate an image including a plurality of corresponding user characters.
  • the image generated by the image generation unit 10 is displayed by the display unit 14.
  • the display unit 14 may be a general display device such as a liquid crystal display, a plasma display, or an organic EL display, and may be included in a terminal of another user who is watching the user character, such as a conversation partner.
  • the user terminal may include an audio output unit that acquires the audio data acquired by the state estimating unit 12 in parallel and outputs the audio in synchronization with the video display on the display unit 14 .
  • the image generation system 8 and the display unit 14 may be separate devices that establish communication via a network such as the Internet, or may be an integrated device.
  • the image generation system 8 may be provided in a terminal of a user with whom the user is talking, or may be provided in a server capable of communicating with the terminal. In the latter case, image generation system 8 may transmit a common image to multiple displays 14 .
  • the image generation system 8 itself may be an all-in-one device, or may be composed of a plurality of devices connected via a network.
  • At least one of the state estimating unit 12 and the image generating unit 10 may be provided in a partly different device.
  • at least part of the state estimation unit 12 and the image generation unit 10 may be realized by cloud computing.
  • the data of the voice and the captured image input to the state estimation unit 12 may be transmitted from the terminal of the speaking user via the network.
  • at least one function of the image generation system 8 may be included in the user's terminal.
  • each function of the image generation system 8 can be divided in various ways, and as long as the data flow is the same, there are no restrictions on the configuration of the intervening devices and the network that connects them.
  • the state estimation unit 12 and the image generation unit 10 are separate devices, they can be read as a state estimation device and an image generation device, respectively.
  • the image generation system 8 may also include a display unit 14 and a mechanism for outputting sound in synchronization with the image of the user character.
  • FIG. 2 shows the internal circuit configuration of the image generation unit 10.
  • the image generator 10 includes a CPU (Central Processing Unit) 22 , a GPU (Graphics Processing Unit) 24 and a main memory 26 . These units are interconnected via a bus 30 .
  • An input/output interface 28 is also connected to the bus 30 .
  • the input/output interface 28 outputs data to a peripheral device interface such as USB and IEEE 1394, a communication unit 32 including a wired or wireless LAN network interface, a storage unit 34 such as a hard disk drive and a nonvolatile memory, and a display unit 14.
  • An output unit 36, an input unit 38 for inputting data from an input device (not shown), and a recording medium driving unit 40 for driving a removable recording medium such as a magnetic disk, an optical disk, or a semiconductor memory are connected.
  • the CPU 22 controls the entire image generation section 10 by executing the operating system stored in the storage section 34 .
  • the CPU 22 also executes various programs read from a removable recording medium and loaded into the main memory 26 or downloaded via the communication section 32 .
  • the GPU 24 has a function of a geometry engine and a function of a rendering processor, and performs drawing processing according to drawing commands from the CPU 22 .
  • the main memory 26 is composed of a RAM (Random Access Memory) and stores programs and data necessary for processing.
  • the state estimator 12 can also be realized with a similar circuit configuration.
  • FIG. 3 shows the configuration of functional blocks of the state estimation unit 12 and the image generation unit 10.
  • each element described as a functional block that performs various processes can be configured by the CPU 22, GPU 24, main memory 26, and other LSIs shown in FIG. is realized by a program loaded in the main memory 26 for realizing a communication function, an image processing function, various arithmetic functions, and the like.
  • the state estimation unit 12 includes a sound-derived information generation unit 52 that generates sound-derived information based on sound, and an image-derived information generation unit 54 that generates image-derived information based on a captured image.
  • the voice-derived information generation unit 52 estimates states such as facial expressions and shapes of parts of the face based on the input voice.
  • states such as facial expressions and shapes of parts of the face based on the input voice.
  • the shape of the mouth and the movement of facial muscles can be inferred from the vowels of the sound (on) contained in an utterance.
  • the volume and pitch of the voice it is possible to estimate the degree of opening of the mouth and facial expressions based on emotions.
  • the sound-derived information generation unit 52 generates sound-derived information representing various estimated states of the face and parts in a predetermined format at a predetermined rate, and transmits the generated sound-derived information to the image generation unit 10 .
  • the format of the voice-derived information is not limited, for example, weighting coefficients prepared in advance for a plurality of representative faces are used. That is, by utilizing the fact that various facial expressions can be created by synthesizing the representative face by changing the weighting factor, the estimated facial expression is represented by the weighting factor.
  • the learning model storage unit 13 stores model data for deriving weighting factors from input speech.
  • the image-derived information generation unit 54 estimates the state of the head and facial parts based on the input captured image. For example, the image-derived information generation unit 54 estimates the orientation of the face, the position and posture of the head, the orientation of the pupils, the degree of opening of the eyelids, and the like, through image analysis and image recognition based on deep learning. However, the type and number of state information estimated by the image-derived information generation unit 54 are not particularly limited.
  • the image-derived information generation unit 54 generates image-derived information representing various estimated states in a predetermined format at a predetermined rate, and transmits the image-derived information to the image generation unit 10 .
  • the state estimation unit 12 receives the user's voice and captured image from the user terminal 50 used by the user.
  • the source of these data is not limited to the user terminal 50, and may be a microphone or imaging device directly connected to the state estimating unit 12, or a storage device storing voice data or captured image data. good.
  • the state estimating unit 12 may use either one of the voice and the captured image as input data, and cause the corresponding origin information acquiring unit to function.
  • the image generation unit 10 includes a state information acquisition unit 56 that acquires at least one of the sound-derived information and the image-derived information from the state estimation unit 12, a drawing unit 60 that draws an image including the user character, and a user operation.
  • An input information acquisition unit 62 for acquiring content and a model data storage unit 64 for storing model data used for drawing are provided.
  • the state information acquisition unit 56 acquires at least one of the sound-derived information and the image-derived information transmitted from the sound-derived information generation unit 52 and the image-derived information generation unit 54 of the state estimation unit 12 at a predetermined rate.
  • the drawing unit 60 reads the data of the object model to be displayed from the model data storage unit 64 and generates a display image including the user character at a predetermined rate.
  • the object model data is, for example, mesh data, texture data, normal map, material data, etc. of an object to be displayed such as a user character.
  • the drawing unit 60 generates and arranges an object of the user character in a state corresponding to the sound-derived information and the image-derived information in the three-dimensional space to be displayed, and draws an image by ray tracing.
  • the drawing unit 60 first weights and synthesizes the representative face according to the weighting factor represented by the voice-derived information, and generates the face and head in the state estimated by the state estimation unit 12 based on the voice.
  • the three-dimensional position coordinates of the vertices of the primitive are obtained.
  • the model data storage unit 64 stores the primitive vertex coordinates of each representative face used by the state estimation unit 12 and the primitive vertex coordinates in the standard state of the user character.
  • the standard state is a standard state, such as a state in which the subject faces the front with a straight face.
  • the result of displacing each vertex is the vertex coordinates of the estimated face.
  • the drawing unit 60 then applies a texture, a normal map, a reflection coefficient based on the material, etc. to the mesh having the vertex coordinates, and draws the user character by ray tracing.
  • the normal map is the distribution of the normal vector of the object surface, and it is used to calculate the reflection of light according to the direction of the normal and add shading.
  • a normal map can express fine unevenness even if the granularity of primitives is coarse.
  • the drawing unit 60 may also express the texture of the skin based on the material data, taking into account subsurface scattering.
  • the drawing unit 60 also identifies the position and posture of the head, the orientation of the face, the degree of opening of the eyelids, the orientation of the pupils, etc., which are difficult to estimate by voice, based on the image-derived information, and reflects them in the user character object.
  • the rendering unit 60 may switch the texture to be applied according to the change in state, such as the eyelid (skin) texture when the eyes are closed and the eyeball texture when the eyes are open.
  • Parts to be controlled using image-derived information are not limited to the head and eyes, but may be eyebrows, shoulders, hands, body, clothes, or the like.
  • the drawing unit 60 may also acquire the user's emotion as image-derived information, and adjust the facial expression of the user character based on the user's emotion.
  • the drawing unit 60 also uses the data stored in the model data storage unit 64, such as the background, the light source, and other objects to be displayed, to draw an image around the user character or to draw the user character itself. It may be reflected. A plurality of types of data may be prepared for each of the user character, background, light source, etc., so that the user can select one.
  • the model data of the user character may be generated by the user himself and stored in the model data storage unit 64 in association with the user's identification information.
  • the input information acquisition unit 62 receives user operations for controlling display content from the user terminal 50 or the like.
  • the input information acquisition unit 62 receives from the user terminal 50 or the like operations such as selection of a user character, background, light source, and the like, and operation of the position and posture of a virtual camera that determines the angle of view of display.
  • the drawing unit 60 acquires the contents of such user operations from the input information acquisition unit 62 and reflects them in the drawing of the object.
  • the input information acquisition unit 62 may also receive a user operation to change the state of the user character from the user terminal 50 or the like. For example, when the user designates an icon representing "laughter" displayed on the user terminal 50, a component of laughter is added to the facial expression of the corresponding user character.
  • This processing can be realized, for example, by the drawing unit 60 relatively increasing the weighting factor for faces classified as smiling faces among the representative faces. Similar operations can be applied to various types of facial expressions such as crying face, angry face, and embarrassed face, and various types of emotions such as emotions.
  • the data of each representative face stored in the model data storage unit 64 is associated with the type of facial expression or emotion it expresses.
  • the user can express a desired facial expression or emotion as the facial expression of the user character, emphasizing it more than the actual face of the user.
  • Emphasis of a specific facial expression or emotion by similar processing may be automatically performed by the drawing unit 60 based on the user's emotion estimated from the captured image or voice.
  • the user operations described so far are not limited to being obtained from the speaker's user terminal 50, but may be received from other users' terminals, such as a conversation partner who is looking at the user character. Further, the timing of accepting a user operation is not particularly limited, and each time the input information acquisition unit 62 acquires a user operation, the drawing unit 60 may reflect the content of the user operation in the drawing process. The images thus generated are sequentially transmitted to and displayed on the display unit 14 as described above.
  • the display unit 14 may function on an application, such as a video conference, that is being executed on a terminal of the conversation partner's user.
  • the speaker's voice may be received directly from the user terminal 50 .
  • a user terminal equipped with the display unit 14 is provided with a synchronization output unit (not shown) for synchronizing audio and images, so that a user character can be seen speaking instead of a speaker.
  • a synchronization output unit (not shown) for synchronizing audio and images, so that a user character can be seen speaking instead of a speaker.
  • two-way communication is possible by transmitting the voice of the user looking at the display unit 14 and the image of the user character to the user terminal 50 by a similar mechanism.
  • FIG. 4 is a diagram for explaining a weighting factor of a representative face as an example of voice-derived information.
  • Representative faces 70a, 70b, 70c, 70d, . consists of As described above, in the simplest example, five representative faces can be generated in the form of mouths with vowels a, i, u, e, o. In addition to variations based on such sounds (on), faces that depend on various emotions and their degrees, such as smiling faces, angry faces, and crying faces, are prepared.
  • any expression can be created by controlling the weighting factor given to the representative face and synthesizing the basic face at the ratio of the weighting.
  • "synthesis" is processing for creating an intermediate face by a well-known calculation method such as morphing.
  • the figure shows how weighting coefficients k1, k2, k3, k4, . . . are given to representative faces 70a, 70b, 70c, 70d, . ing. That is, when N representative faces are prepared, the weighting coefficients are a sequence ⁇ k1, k2, k3, k4, . . . , kN ⁇ having N elements.
  • the learning system 16 shown in FIG. 1 learns the weighting coefficients that derive the correct face 72 using voice as input data.
  • the state estimating unit 12 uses the learning result to derive a weighting factor based on voice data input during operation. As described above, the state estimator 12 only needs to obtain the weighting coefficients, and does not need to use them to generate the face 72 . For example, when each representative face is given a weighting factor with a 4-byte dynamic-point number, the whole sequence of weighting factors becomes a total of 4N bytes of information.
  • FIG. 5 is a diagram for explaining the direction of the pupil and the degree of opening of the eyelid as an example of image-derived information.
  • the horizontal axis represents changes in the orientation of the pupil
  • the vertical axis represents changes in the degree of opening of the eyelids.
  • the eye 80a is in a state where the eyelid is fully open and the pupil faces the front. Based on this, the pupil of the eye 80b faces right, and the pupil of the eye 80c faces left.
  • the eye 80d has the eyelid half open, and the eye 80e has the eyelid closed.
  • the orientation of the pupil is expressed as a two-dimensional positional coordinate of the center of the pupil in the horizontal and vertical directions by a 4-byte floating-point number for each element.
  • the "openness of the eyelids" is expressed by a 4-byte floating-point number for each of the left and right eyes, with 0% being closed and 100% being fully open.
  • the drawing unit 60 adjusts the position of the outline of the eye and the texture of the eyeball. Also, when the eyelids are closed, the texture of the eye area is switched to skin data.
  • the learning system 16 shown in FIG. 1 performs image analysis such as extraction of feature points using captured images as input data, and learns a model that correctly derives the direction of the pupil and the degree of opening of the eyelids.
  • the state estimating unit 12 uses the learning result and derives the direction of the eyeball and the opening degree of the eyelids based on the data of the photographed image input during operation.
  • the position of the head is represented by, for example, the three-dimensional positional coordinates of the center of gravity using a floating point number of 4 bytes for each element and a total of 12 bytes.
  • the posture of the head is represented by a floating-point number of 4 bytes for each element and a total of 12 bytes for rotation angles around the three axes of yaw, pitch, and roll.
  • FIG. 6 shows the configuration of the functional blocks of the drawing unit 60 in more detail.
  • the drawing unit 60 generates a display image by ray tracing.
  • Ray tracing generates light rays that pass through each pixel on the display image plane from the point of view, and calculates the pixel value based on the color, material, normal line, and the position and properties of the light source at the point of arrival on the object surface. is a well-known technique for determining
  • the rendering unit 60 includes a structure data generation unit 90 that generates data representing the structure of a space to be displayed including the user character, a structure data storage unit 92 that stores the generated structure data, and a ray tracing using the structure data.
  • a ray tracing unit 94 for drawing an image is provided.
  • the structure data generation unit 90 arranges objects to be displayed, including user characters, in a space to be displayed, and generates a spatial structure representing the arrangement in a predetermined format.
  • the structural data generation unit 90 represents the display space with a bounding volume hierarchy (BVH).
  • BVH is data in which bounding boxes containing primitives such as triangles that define the shape of an object are hierarchized by a tree structure, and is used to efficiently determine the intersection of rays with primitives.
  • AABB Aligned Bounding Box
  • BVH hierarchizes AABBs such as a leaf node composed of AABBs circumscribing one or more triangles, an internal node composed of AABBs circumscribing two or more AABBs, and an internal node circumscribing them. has a tree structure with AABB consisting of the entire display space as a root node.
  • the primitive of the arrival point is efficiently derived by tracing the AABB where the ray intersects from the upper layer.
  • the structural data generation unit 90 obtains vertices of primitives representing the user character from at least the audio-derived information, and generates BVH.
  • the structural data generator 90 realizes high-speed processing by updating only the information held by the nodes as necessary while maintaining the tree structure itself in the BVH once generated.
  • the structure data storage unit 92 stores structure data such as BVH generated by the structure data generation unit 90 . Some of the stored data are updated by the structural data generator 90 as needed according to the movement of an object such as a user character.
  • the ray tracing unit 94 uses the structural data stored in the structural data storage unit 92 to generate a display image by ray tracing. It is desirable that the structure data generation processing by the structure data generation unit 90 and the drawing processing by the ray tracing unit 94 be performed asynchronously. That is, the ray tracing unit 94 renders the image using the latest data stored in the structural data storage unit 92 regardless of the timing at which the structural data generating unit 90 updates the structural data. As a result, the structure data generation process can be prevented from interfering with the drawing process.
  • FIG. 7 is a flow chart showing a processing procedure for the structure data generation unit 90 to generate structure data. This processing is started when the state information acquisition unit 56 of the image generation unit 10 acquires the sound origin information from the state estimation unit 12 .
  • the structure data generation unit 90 acquires the information derived from the sound (S10), and based on it, generates vertex data of primitives forming the user character (S12).
  • the structure data generation unit 90 reads out model data representing the standard state of the user character from the model data storage unit 64 .
  • the model data contains three-dimensional coordinates of vertices of primitives in the standard state.
  • the structure data generation unit 90 calculates the three-dimensional coordinates of the vertex group corresponding to the sound by displacing each vertex based on the sound origin information obtained in S10. Note that the displacement of the vertex may be determined not only based on the sound-derived information transmitted from the state estimation unit 12, but also in consideration of the image-derived information, the content of the user's operation, other information related to the sound, and the like.
  • the structure data generation unit 90 uses the generated vertex data to generate space structure data such as BVH (S14), and stores it in the structure data storage unit 92 (S16).
  • space structure data such as BVH (S14)
  • S16 space structure data
  • the processing from S10 to S16 is repeated while there is no need to stop the processing, such as when the user performs a stop operation (N of S18).
  • the structural data generation unit 90 updates only necessary portions of the once generated structural data, as described above. In the case of BVH, the tree structure is left as it is, and the data of the AABB and the primitive itself can be changed as necessary. If it becomes necessary to stop the processing, the structural data generation unit 90 stops the processing (Y of S18).
  • FIG. 8 is a flowchart showing a processing procedure for the ray tracing unit 94 to perform ray tracing. This processing is started when the first structure data is stored in the structure data storage unit 92 .
  • the ray tracing unit 94 reads and sets parameters necessary for drawing an image, such as ambient light, from the model data storage unit 84 (S20).
  • the ray tracing unit 94 also reads structural data of other objects existing around the user character from the model data storage unit 84 and sets them (S22).
  • “Other objects” may include parts of the user character that do not show movement, the background, and the like. Then, the ray tracing unit 94 reads out the latest structure data of the user character such as BVH from the structure data storage unit 92 and sets it (S24). Then, the ray tracing unit 94 uses the structural data to determine the intersection of rays generated for each pixel on the display image plane, thereby calculating pixel values and generating an image (S26).
  • a commonly used model can be applied to the specific calculation of ray tracing.
  • the processing from S20 to S26 is repeated while there is no need to stop the processing, such as when the user performs a stop operation (N in S28). If it becomes necessary to stop the processing, the ray tracing unit 94 stops the processing (Y of S28).
  • Pseudo code used when the structure data generation unit 90 generates vertex data in S12 of FIG. 7 is shown below.
  • the above processing exemplifies a case where weighting coefficients for N representative faces are obtained as audio-derived information.
  • the model data storage unit 64 stores the three-dimensional position coordinates of the vertex groups for each of the N representative faces. Then, the difference between the positional coordinates of the j-th vertex of each representative face and the positional coordinates of the corresponding vertex in the face in the standard state is weighted by the weighting factor given to each representative face and added.
  • the weighted sum represents the displacement vector of the vertices of the target face from the standard state. Therefore, by adding the displacement vector to each vertex in the standard state, the absolute value of the vertex coordinates of the face to be expressed can be derived.
  • the above-described loop processing may be performed collectively for the entire face or parts of the user character to be moved, or may be performed for each predetermined part such as the entire face, upper teeth, lower teeth, or tongue. good.
  • FIG. 9 exemplifies the configuration of the structural data generated by the structural data generation unit 90 in S14 of FIG.
  • the structure data is BVH, a binary tree in which an upper layer node has an index to two lower layer nodes.
  • AABB is an internal node of AABB containing lower layer AABB inside
  • “primitive” is a leaf node of AABB containing only primitive inside.
  • FIG. 10 exemplifies the structure of the data held by the internal nodes of "AABB".
  • "aabb0" and “aabb1” represent the information of the two lower AABBs.
  • “min.x”, “min.y”, and “min.z” are the minimum values in the x-axis, y-axis, and z-axis directions of the space to be displayed within the range covered by each box.
  • “max.y”, and “max.z” are the maximum values in the x-axis, y-axis, and z-axis directions.
  • leftIndex and rightIndex are indexes to the left and right nodes of the lower layer nodes, respectively. If the index is greater than or equal to 0, it indicates an index to an internal node in the lower layer, and if it is less than 0, it indicates an index to a leaf node in the lower layer, ie, a node that defines a primitive. Note that two AABBs below a node allow ranges to overlap.
  • FIG. 11 illustrates the structure of data held by leaf nodes that define "primitives".
  • a leaf node is a set of primitive triangles, each of which holds the number of triangles and the vertex coordinates of each triangle after coordinate transformation for intersection determination.
  • a method for efficient intersection detection by coordinate transformation is described in, for example, Sven Woop, Carsten Benthin, Ingo Wald, "Watertight Ray/Triangle Intersection", Journal of Computer Graphics Techniques, 2013, Vol. 2, No. 1, 2013, p 65-82.
  • numberTriangles in the figure is the number of triangles.
  • Index of primitive Info is an index of the material of each triangle, a vertex buffer in which UV coordinates are stored, and the like.
  • Primary_data in the second and subsequent rows represents one vertex data in one line and vertex data of one triangle (for example, triangle A and triangle B) in three lines, each represented by a 4-byte floating point number.
  • the structure data generation unit 90 may generate BVH data by existing means. For example, the method disclosed in Martin Stich, Heiko Friedrich, Andreas Dietrich, "Spatial Splits in Bounding Volume Hierarchies", Proceedings of the Conference on High Performance Graphics 2009, August 2009, p. 7-13 can be used.
  • the structural data generation unit 90 also flattens the generated tree-structured data, that is, stores it in the structural data storage unit 92 as a series of data arrays, thereby improving the efficiency of access by the GPU.
  • FIG. 12 exemplifies the original tree structure and the data structure when it is flattened.
  • the left side of the figure shows the same tree structure 100 as in FIG.
  • an index uniquely assigned to each of the internal node and the leaf node is attached to the upper left of each node.
  • Leaf node indices defining primitives are underlined.
  • the structural data generation unit 90 flattens such a tree structure, and as shown on the right side of the figure, generates a data string 102 held by each internal node (denoted as "AABB") and each leaf node (denoted as “primitive”). ) generates a data string 104 held by .
  • the data string 102 is obtained by sequentially storing the four rows of data shown in FIG. 10 held by each internal node at the addresses corresponding to the indexes in the storage area.
  • the data string 104 is obtained by sequentially storing the data shown in FIG. 11 held by each leaf node at the address corresponding to the index in the storage area.
  • the 1st and 3rd internal nodes included in the AABB below the 0th root node are the 1st and 3rd internal nodes included in the AABB.
  • the 1st internal node there are a 2nd internal node included in the AABB and a 0th leaf node.
  • the 2nd internal node below the 2nd internal node are the 1st and 2nd leaf nodes included in the AABB.
  • the ray tracing unit 94 first refers to the data string 102 to perform intersection determination from the upper layer, and upon reaching a leaf node, refers to the data string 104 to identify the reaching triangle.
  • the structure data storage unit 92 includes the CPU memory and the GPU memory
  • the structure data generation unit 90 flattens the generated tree structure data on the CPU memory and copies it to the GPU memory.
  • a BVH representing the space of a user character consisting of 20,000 vertices
  • a delay of about 1130 msec will occur until the BVH is constructed.
  • the required time is about 8 msec, which can be significantly speeded up.
  • the structure data generation unit 90 does not update the tree structure shown in FIG. 9, nor does it update the indexes "leftIndex” and "rightIndex” to the lower layer nodes in the data shown in FIG. Also, among the data shown in FIG. 11, the number of triangles included in the node "numTriangles" and the index "index of primitive Info” to the vertex data of triangles are not updated. As a result, the structural data generation unit 90 may rewrite only the data surrounded by the dashed lines in FIG. 12 among the data strings 102 and 104 stored in the GPU memory as necessary.
  • FIG. 13 is a flow chart showing a processing procedure for the structure data generation unit 90 to update the data of the internal node.
  • the structure data generator 90 first reads the data of AABB of the root node, that is, the data having the structure shown in FIG. 10 (S20). Then, the indices "leftIndex” and "rightIndex” to the nodes in the lower layer are referred to confirm whether the lower layer is an internal node or a leaf node (S22). According to the above indexing rules, if the index is negative, it is a leaf node.
  • the leaf node data update process shown in FIG. 14 is performed (S24). If it is an internal node (N of S22), the data update process is performed for the lower layer internal node (S26).
  • the procedure of the processing of S26 is nothing but the illustrated flow chart. That is, as long as there are internal nodes in the lower layer, the illustrated flowchart is nested and repeated for the nodes in the lower layer.
  • the AABB of the node in the lower layer is updated as necessary by either of the processes of S24 and S26.
  • the structural data generation unit 90 performs the processing of S24 and/or S26 for the two lower-layer nodes (N of S28). When the processing for the two nodes is completed (Y of S28), the structural data generation unit 90 obtains AABBs that include the lower AABBs, updates the data in the GPU memory, and ends the processing (S30). . As described above, this process is performed for all internal nodes at S26.
  • FIG. 14 is a flow chart showing the procedure of the leaf node data update process performed in S24 of FIG.
  • the structural data generation unit 90 reads data of one triangle among the triangles included in the target node (S40). This data is data such as "Triangle A" shown in FIG. Then, the structural data generation unit 90 acquires new vertex coordinates for one of the vertices (S42). That is, the three-dimensional coordinates of the corresponding vertices are calculated as described above using the weighting coefficients based on the audio origin information.
  • the AABB data in the GPU memory is updated (S44).
  • the processing of S42 and S44 is repeated for the three vertices of the triangle (N of S46).
  • the structural data generator 90 updates the target triangle data in the GPU memory (S48).
  • the processing of S40 to S48 is repeated for all triangles included in the node (N of S50).
  • the process ends (Y in S50).
  • the node's AABB has been updated to include all of the updated triangles.
  • FIG. 15 shows a drawing processing distribution system that can be applied to the present embodiment.
  • a drawing unit 60 in the drawing corresponds to the drawing unit 60 in FIG. 3 and constitutes a part of the image generation unit 10 .
  • the drawing unit 60 may include at least a part of the structure data generation unit 90, the structure data storage unit 92, and the ray tracing unit 94 shown in FIG. 6, but illustration thereof is omitted.
  • the drawing unit 60 in this aspect entrusts at least a part of drawing processing to the drawing servers 120a, 120b, 120c, 120d, .
  • the drawing unit 60 includes a task requesting unit 110, a partial image acquiring unit 112, and a connecting unit 114.
  • the task requesting unit 110 divides the image planes, assigns them to the drawing servers 120a, 120b, 120c, and 120d, respectively, and requests drawing tasks. For example, the display image is divided into two rows and two columns, and a task of drawing each partial image is requested to four drawing servers 120a, 120b, 120c, and 120d.
  • the task requesting unit 110 transmits a set of data such as vertex coordinates, texture, material, and light source information necessary for drawing each area.
  • Each of the drawing servers 120a, 120b, 120c, and 120d uses these data sets to independently draw the entrusted partial images.
  • the partial image acquisition unit 112 acquires partial image data, which is the drawing result, from each of the drawing servers 120a, 120b, 120c, and 120d.
  • the connection unit 114 connects the partial images to generate a display image, and outputs the display image to the display unit 14 .
  • the structural data generating section 90 included in the rendering section 60 may similarly generate structural data such as the BVH described above and sequentially transmit the structural data to the respective rendering servers 120a, 120b, 120c, and 120d.
  • FIG. 16 shows an application example of this embodiment.
  • the figure assumes a video conference system.
  • the voice and face of the user 130 who is the speaker are continuously acquired by the microphone and imaging device provided in the user terminal 132 .
  • the image of the user character drawn based on the audio-derived information and the image-derived information obtained from them is displayed on the display unit 14 of the user terminal 134 of the other party.
  • the user terminal 132 of the speaker may of course also display the image of the other party's user character. Assuming that each of the user terminals 132 and 134 has the image generating system 8, the user character can be drawn on the user terminal 134 by transmitting at least voice data from the user terminal 132 to the user terminal 134. FIG. By synchronizing the drawing result with the voice and outputting it, it is possible to make it look as if the user character is speaking. Further, by generating the image origin information inside the user terminal 132 of the transmission source and transmitting it to the user terminal 134, the accuracy of the user character displayed on the user terminal 134 can be improved.
  • the screen of the user terminal 132 displays a user interface 136 for adjusting the expression of one's own user character.
  • This example represents icons representing laughter, sadness, and anger, and accepts an operation to amplify any component.
  • the drawing unit 60 makes an adjustment to relatively increase the weighting factor of the representative face classified as smiling among the weighting factors obtained from the voice-derived information.
  • the user terminal 134 of the other party is provided with the image generating unit 10 , the user terminal 134 can perform the adjustment processing by transmitting information indicating that the laughter icon has been designated from the user terminal 132 .
  • 3 types of emotions can be adjusted, but the number and types of emotions are not limited.
  • the operation content is not limited to the two choices of whether or not the icon is indicated, and the degree of emphasis may be adjusted.
  • a slide bar for adjusting the degree may be displayed on the user terminal 132 for each emotion.
  • the drawing unit 60 may adjust the weighting factor based on the emotion inferred from the voice or image, independently of the user's operation, to emphasize the facial expression of the user character.
  • the user terminal 132 may accept the adjustment of the position and posture of the virtual camera as described above, the selection and creation of the user character itself, the selection of the background, the light source, other objects, and the like.
  • the display unit 14 may display user characters of a plurality of members participating in the teleconference. In this case as well, data that needs to be transmitted from each member's user terminal is satisfied with voice data, so even if the number of members increases, an increase in transmission data size can be suppressed.
  • this embodiment can also be applied to distributed content such as electronic games, movies, and news, and television broadcasting.
  • distributed content such as electronic games, movies, and news, and television broadcasting.
  • three-dimensional graphics video content it is possible to match the movement of the face of an appearing character to the voice only with the voice data of the voice actor and the information derived from the image. Even the same character can move its mouth according to different languages. Furthermore, it is possible to realize a rich emotional expression accompanying the voice.
  • the speech and captured images are analyzed to estimate the speaker's state, and an object model that reflects it is immediately rendered by ray tracing.
  • a machine learning model immediately derives the weighting factor of the representative face from the voice data.
  • the spatial structure to be displayed is represented by BVH or the like, and only the node information is updated in response to the state change.
  • the updating process and the drawing process are performed asynchronously. As a result, it is possible to draw objects immediately in response to voice input, and objects that speak to the voice can be expressed more realistically with low latency.
  • the present invention can be used for various information processing devices such as image generation devices, image generation servers, user terminals, game devices, and personal computers, and image generation systems including any of them.
  • image generation system 10 image generation unit, 12 state estimation unit, 13 learning model storage unit, 14 display unit, 16 learning system, 22 CPU, 24 GPU, 26 main memory, 32 communication unit, 34 storage unit, 36 output unit , 50 user terminal, 52 audio-derived information generation unit, 54 image-derived information generation unit, 56 state information acquisition unit, 60 drawing unit, 62 input information acquisition unit, 64 model data storage unit, 90 structure data generation unit, 92 structure data storage unit, 94 ray tracing unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

状態推定部12は、ユーザ端末50から発話者の音声や撮影画像を取得し、顔や身体の状態を推定する。画像生成部10の状態情報取得部56は、音声由来および画像由来の発話者の状態情報を、所定のフォーマットで取得する。描画部60は当該状態情報に基づき、発話者に対応するキャラクタのオブジェクトモデルを生成、更新し、レイトレーシングにより表示画像を所定のレートで生成する。表示部14は当該表示画像を音声と同期させて出力する。

Description

画像生成システムおよび画像生成方法
 この発明は、実世界の状況を画像世界に反映させる画像生成システムおよび画像生成方法に関する。
 従来、実世界での人の動きを記録するモーションキャプチャにより、コンピュータグラフィクスで描画されるオブジェクトをよりリアルに動作させる技術が知られている。また、そのようなオブジェクトの動きを音声と同期させることにより、当該オブジェクトが実際に話したり歌ったりしているように見せるコンテンツも知られている。このように、表示上の仮想世界を実世界と融合させる技術は、エンターテインメントや商品プロモーションなど様々な分野に応用されている。
 記録済みの人の動きや既存の台詞に合わせてオブジェクトを動作させたり、そのようなオブジェクトの動きに合うような音声を後から収録したりする場合、時間的制約の低さからコンテンツを高い精度で作り込むことが比較的容易である。一方、リアルタイムでの発話と同期させ、あたかもオブジェクトが話しているかのように表現するには、発話からの遅延を最小限にする必要があり、画質や精度の問題から応用範囲が限られていた。
 本発明はこうした課題に鑑みてなされたものであり、その目的は、発話に合わせて精度よく動作するオブジェクトを高精細に表現する技術を提供することにある。
 上記課題を解決するために、本発明のある態様は画像生成システムに関する。この画像生成システムは、発話者の音声に基づき推定された、当該発話者の顔の状態に係る情報を順次取得する状態情報取得部と、当該状態を反映させたオブジェクトモデルを生成し、その像をレイトレーシングにより描画した表示画像を生成する描画部と、を備えたことを特徴とする。
 本発明の別の態様は画像生成方法に関する。この画像生成方法は、発話者の音声に基づき推定された、当該発話者の顔の状態に係る情報を順次取得するステップと、当該状態を反映させたオブジェクトモデルを生成し、その像をレイトレーシングにより描画した表示画像を生成するステップと、を含むことを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、発話に合わせて精度よく動作するオブジェクトを高精細に表現できる。
本実施の形態を適用できる画像生成システムの構成例を示す図である。 本実施の形態における画像生成部の内部回路構成を示す図である。 本実施の形態における状態推定部および画像生成部の機能ブロックの構成を示す図である。 本実施の形態における音声由来情報の一例として代表顔の重み係数を説明するための図である。 本実施の形態における画像由来情報の一例として瞳孔の向きと瞼の開き具合を説明するための図である。 本実施の形態における描画部の機能ブロックの構成をより詳細に示す図である。 本実施の形態において構造データ生成部が構造データを生成する処理手順を示すフローチャートである。 本実施の形態においてレイトレーシング部がレイトレーシングを実施する処理手順を示すフローチャートである。 本実施の形態において構造データ生成部が図7のS14において生成する構造データの構成を例示する図である。 本実施の形態において「AABB」の内部ノードが保持するデータの構造を例示する図である。 本実施の形態において「プリミティブ」を定義する葉ノードが保持するデータの構造を例示する図である。 本実施の形態における元の木構造と、それを平坦化した際のデータ構造を例示する図である。 本実施の形態において構造データ生成部が内部ノードのデータを更新する処理手順を示すフローチャートである。 図13のS24において実施される、葉ノードのデータ更新処理の手順を示すフローチャートである。 本実施の形態に適用できる、描画処理の分散システムを示す図である。 本実施の形態の応用例を示す図である。
 図1は本実施の形態を適用できる画像生成システムの構成例を示している。画像生成システム8は、ユーザの発話の様子をコンピュータグラフィクスで表現する。以後、そのようにしてコンピュータグラフィクスで表されるオブジェクトを「ユーザキャラクタ」と呼ぶ。なおユーザキャラクタの外観は特に限定されない。例えばユーザ自身に酷似させてもよいし、全く別の人や動物などであってもよい。
 また本実施の形態は、ユーザのリアルタイムでの発話をユーザキャラクタが話しているように見せることを基本とするが、あらかじめ記録された音声に合わせてユーザキャラクタが話す画像を生成することもできる。画像生成システム8は、ユーザの音声や撮影画像を入力データとして、顔などの状態を推定する状態推定部12、および、推定結果に従いユーザキャラクタを含む表示画像を生成する画像生成部10を備える。
 状態推定部12は例えば、ユーザが話している音声のデータを取得し、顔全体の状態や、口、目など各種部位の状態を所定のレートで推定する。以後、音声から推定できる状態情報を「音声由来情報」と呼ぶ。状態推定部12はまた、ユーザが話している様子を撮影した動画像のデータを取得し、頭、顔、その他身体の部位の位置や姿勢、顔面の各種部位の状態などを所定のレートで推定してもよい。以後、撮影画像から推定できる状態情報を「画像由来情報」と呼ぶ。なお音声と撮影画像の双方を入力データとする場合、それらの同期はとれているものとする。
 上記の推定を精度よく実現するため、状態推定部12は、ディープニューラルネットワーク(DNN: Deep Neural Network)による学習モデル記憶部13を備えてよい。すなわちディープラーニングで実用化されている音声認識および画像認識の技術を利用し、実際の音声や撮影画像から上記のようなパラメータを推定してよい。図示するように状態推定部12は、別途設けられた学習システム16が学習した結果を学習モデル記憶部13に格納し利用してもよい。
 ここで学習システム16は、多様かつ大量の音声や撮影画像を入力データとして、人の表情や身体の動きを学習する学習部18と、その結果として、音声や撮影画像からそれらのパラメータを導出するためのモデルデータを蓄積していくデータベース20とを備える。学習システム16には、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、全結合型など周知のディープラーニングの技術を適用できるため、詳細な説明は省略する。また学習システム16が実行する処理はディープラーニングに限らずその他の機械学習であってもよい。
 画像生成部10は、状態推定部12が推定した結果を用いてユーザキャラクタを含む画像を所定のレートで生成する。すなわち状態推定部12に入力された音声を、ユーザキャラクタが話しているような動画像を生成する。状態推定部12が、複数のユーザの音声などを入力データとしてそれぞれの状態を推定することにより、画像生成部10は、それらに対応する複数のユーザキャラクタを含む画像を生成してもよい。
 画像生成部10が生成した画像は、表示部14によって表示される。表示部14は、液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイなど一般的な表示装置でよく、例えば話し相手のユーザなど、ユーザキャラクタの様子を見ている別のユーザの端末に含まれていてもよい。このとき当該ユーザ端末は、状態推定部12が取得した音声のデータを並列して取得し、当該音声を、表示部14による動画表示と同期させて出力する音声出力部を備えてよい。
 画像生成システム8と表示部14は、インターネットなどのネットワークを介して通信を確立した個別の装置であってもよいし、一体的な装置であってもよい。例えば画像生成システム8は、話し相手のユーザなどの端末に備えられていてもよいし、当該端末と通信が可能なサーバなどに備えられていてもよい。後者の場合、画像生成システム8は、複数の表示部14に共通の画像を送信してもよい。また画像生成システム8自体も、全てが一体的な装置であってもよいし、ネットワークを介して接続された複数の装置で構成されていてもよい。
 さらに状態推定部12および画像生成部10の少なくともどちらかは、その一部が異なる装置に備えられていてもよい。例えば状態推定部12や画像生成部10の少なくとも一部は、クラウドコンピューティングで実現されてもよい。状態推定部12に入力される音声や撮影画像のデータは、発話しているユーザの端末からネットワークを介して送信されてもよい。一方、画像生成システム8の少なくともいずれかの機能は、当該ユーザの端末に含まれていてもよい。
 このように画像生成システム8の各機能は様々な切り分けが可能であり、データの流れが同じであれば、介在する装置やそれを接続するネットワークの構成は限定されない。例えば状態推定部12や画像生成部10を個別の装置とした場合、それぞれ状態推定装置、画像生成装置と読み替えることができる。また画像生成システム8は表示部14や、ユーザキャラクタの画像と同期させて音声を出力する機構を含んでもよい。
 図2は画像生成部10の内部回路構成を示している。画像生成部10は、CPU(Central Processing Unit)22、GPU(Graphics Processing Unit)24、メインメモリ26を含む。これらの各部は、バス30を介して相互に接続されている。バス30にはさらに入出力インターフェース28が接続されている。入出力インターフェース28には、USBやIEEE1394などの周辺機器インターフェースや、有線又は無線LANのネットワークインターフェースからなる通信部32、ハードディスクドライブや不揮発性メモリなどの記憶部34、表示部14へデータを出力する出力部36、図示しない入力装置などからデータを入力する入力部38、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部40が接続される。
 CPU22は、記憶部34に記憶されているオペレーティングシステムを実行することにより画像生成部10の全体を制御する。CPU22はまた、リムーバブル記録媒体から読み出されてメインメモリ26にロードされた、あるいは通信部32を介してダウンロードされた各種プログラムを実行する。GPU24は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU22からの描画命令に従って描画処理を行う。メインメモリ26はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。なお状態推定部12も同様の回路構成で実現できる。
 図3は、状態推定部12および画像生成部10の機能ブロックの構成を示している。なお図では、発話者であるユーザのユーザ端末50および、前述の表示部14との関係も例示している。同図において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、図2で示したCPU22、GPU24、メインメモリ26、その他のLSIで構成することができ、ソフトウェア的には、メインメモリ26にロードされた、通信機能、画像処理機能、各種演算機能などを実現するプログラムによって実現される。
 したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。状態推定部12は、音声に基づき音声由来情報を生成する音声由来情報生成部52、および、撮影画像に基づき画像由来情報を生成する画像由来情報生成部54を備える。
 音声由来情報生成部52は、入力された音声に基づき、表情や顔の部位の形状などの状態を推定する。単純な例として、発話に含まれる音(オン)の母音によって、口の形状や顔の筋肉の動きを推定できる。さらに声の大きさや高さから、口の開き具合や、感情に基づく表情を推定できる。これらの推定処理は、入力された音声信号のスペクトログラムなどに基づき、学習モデル記憶部13に格納され学習モデルのデータを利用して実行する。
 音声由来情報生成部52は、推定される顔や部位の各種状態を所定のフォーマットで表した音声由来情報を所定のレートで生成し、画像生成部10に送信する。音声由来情報のフォーマットは限定されないが、例えば、あらかじめ準備した複数の代表顔に対する重み係数を利用する。すなわち、重み係数を変化させて代表顔を合成することにより多様な表情を作り出せることを利用し、推定した表情を当該重み係数で表現する。この場合、学習モデル記憶部13には、入力された音声から重み係数を導出するためのモデルデータを格納しておく。
 画像由来情報生成部54は、入力された撮影画像に基づき、頭部や顔の部位の状態を推定する。例えば画像由来情報生成部54は、ディープラーニングに基づく画像解析や画像認識により、顔の向き、頭部の位置や姿勢、瞳孔の向き、瞼の開き具合などを推定する。ただし画像由来情報生成部54が推定する状態情報の種類や数は特に限定されない。画像由来情報生成部54は、推定される各種状態を所定のフォーマットで表した画像由来情報を所定のレートで生成し、画像生成部10に送信する。
 なお同図において状態推定部12は、ユーザの音声および撮影画像を、当該ユーザが使用しているユーザ端末50から受信することを表している。ただしそれらのデータの送信元はユーザ端末50に限らず、状態推定部12に直接接続したマイクロフォンや撮像装置であってもよいし、音声データや撮影画像のデータを格納している記憶装置などでもよい。
 また、音声由来情報および画像由来情報を相補完的に利用することで、ユーザキャラクタの精度を向上させることができるが、求められる精度や処理能力によっては、音声由来情報および画像由来情報のどちらか一方のみを利用してもよい。この場合、状態推定部12は音声および撮影画像のどちらか一方を入力データとし、対応する由来情報取得部を機能させればよい。
 画像生成部10は、状態推定部12から音声由来情報および画像由来情報の少なくともいずれかを取得する状態情報取得部56、ユーザキャラクタを含む画像を描画する描画部60、いずれかのユーザによる操作の内容を取得する入力情報取得部62、および、描画に用いるモデルデータを格納するモデルデータ記憶部64を備える。状態情報取得部56は、状態推定部12の音声由来情報生成部52、画像由来情報生成部54から送信された、音声由来情報および画像由来情報の少なくともいずれかを所定のレートで取得する。
 描画部60は、表示対象のオブジェクトモデルのデータをモデルデータ記憶部64から読み出し、ユーザキャラクタを含む表示画像を所定のレートで生成する。ここでオブジェクトモデルのデータとは例えば、ユーザキャラクタなど表示対象のオブジェクトのメッシュデータ、テクスチャデータ、法線マップ、材質のデータなどである。
 描画部60は、表示対象の3次元空間に、音声由来情報や画像由来情報に対応する状態のユーザキャラクタのオブジェクトを生成、配置し、レイトレーシングにより像を描画する。一実施形態として、描画部60はまず、音声由来情報が表す重み係数に従い代表顔に重みをつけて合成し、状態推定部12が音声に基づき推定した状態の顔や頭部を生成する。ただしこの段階では顔を画像として描画する代わりに、プリミティブの頂点の3次元位置座標を取得する。
 このためモデルデータ記憶部64には、状態推定部12が用いた各代表顔のプリミティブの頂点座標と、ユーザキャラクタの標準状態におけるプリミティブの頂点座標とを格納しておく。ここで標準状態とは、真顔で正面を向いている状態など基準となる状態である。標準状態の頂点座標を基点とし、重み係数を各代表顔の頂点に適用することにより各頂点を変位させた結果が、推定された顔の頂点座標となる。そして描画部60は、当該頂点座標を有するメッシュに対し、テクスチャ、法線マップ、材質に基づく反射係数などを適用し、レイトレーシングによりユーザキャラクタを描画する。
 ここで法線マップ(Normal Map)はオブジェクト表面の法線ベクトルの分布であり、法線の向きに応じて光の反射を計算し濃淡をつけるために利用する。法線マップにより、プリミティブの粒度が粗くとも細かい凹凸を表現できる。また描画部60は、材質のデータに基づき、サブサーフェス・スキャタリング(Subsurface Scattering)を踏まえた皮膚の質感を表現してもよい。
 また描画部60は、音声では推定が難しい、頭部の位置や姿勢、顔の向き、瞼の開き具合、瞳孔の向きなどを、画像由来情報に基づき特定し、ユーザキャラクタのオブジェクトに反映させる。このとき描画部60は、目が閉じている場合は瞼(肌)のテクスチャ、開いている場合は眼球のテクスチャ、といったように、適用するテクスチャを状態の変化に応じて切り替えてよい。画像由来情報を用いて制御する部位は頭部や目に限らず、眉、肩、手、胴体、服などのいずれでもよい。また描画部60は、画像由来情報としてユーザの感情を取得し、それに基づきユーザキャラクタの表情を調整してもよい。
 描画部60はまた、モデルデータ記憶部64に格納された、背景、光源、他に表示すべきオブジェクトなどのデータを用いて、ユーザキャラクタの周囲の画像を描画したり、ユーザキャラクタ自体の描画に反映させたりしてよい。ユーザキャラクタ、背景、光源などは、それぞれ複数種類のデータを準備しておき、ユーザ自身が選択できるようにしてもよい。ユーザキャラクタはユーザ自身がモデルデータを生成し、ユーザの識別情報に対応づけてモデルデータ記憶部64に格納しておいてもよい。
 入力情報取得部62は、ユーザ端末50などから、表示内容を制御するユーザ操作を受け付ける。例えば入力情報取得部62は、ユーザキャラクタ、背景、光源などの選択、表示の画角を決定づける仮想カメラの位置や姿勢の操作などをユーザ端末50などから受け付ける。描画部60は、このようなユーザ操作の内容を入力情報取得部62から取得し、オブジェクトの描画に反映させる。
 入力情報取得部62はさらに、ユーザキャラクタの状態を変化させるユーザ操作をユーザ端末50などから受け付けてもよい。例えばユーザが、ユーザ端末50に表示されている「笑い」を表すアイコンを指示したら、対応するユーザキャラクタの表情に、笑いの成分を追加する。この処理は例えば描画部60が、代表顔のうち笑い顔に分類される顔に対する重み係数を相対的に増加させることにより実現できる。同様の操作は、泣き顔、怒り顔、困り顔などの様々な表情の種類や、喜怒哀楽などの様々な感情の種類に適用できる。
 このためモデルデータ記憶部64に格納する各代表顔のデータには、それが表す表情や感情の種類を対応づけておく。これによりユーザはユーザキャラクタの表情として、所望の表情または感情を、実際の自分の顔より強調して表すことができる。同様の処理による特定の表情や感情の強調は、撮影画像や音声から推定されるユーザの感情に基づき、描画部60が自動で行ってもよい。
 これまで述べたユーザ操作は、発話者のユーザ端末50から取得するのに限らず、ユーザキャラクタを見ている会話相手など、他のユーザの端末から受け付けてもよい。またユーザ操作を受け付けるタイミングは特に限定されず、入力情報取得部62がユーザ操作を取得する都度、描画部60はその内容を描画処理に反映させてよい。そのようにして生成された画像は、上述のとおり表示部14に順次送信され、表示される。
 ここで表示部14は、会話相手のユーザなどの端末において実行されている、テレビ会議などのアプリケーション上で機能していてもよい。この場合、発話者の音声はユーザ端末50から直接受信してもよい。表示部14を備えるユーザ端末には、音声と画像を同期させる、図示しない同期出力部を設けることにより、発話者の代わりにユーザキャラクタが話している様子を見せることができる。当然、表示部14を見ているユーザの音声やユーザキャラクタの画像を、同様の仕組みによりユーザ端末50に送信することで、双方向のコミュニケーションが可能となる。
 図4は、音声由来情報の一例として代表顔の重み係数を説明するための図である。代表顔70a、70b、70c、70d、・・・は顔、あるいはそれを含む頭部の、所定数のバリエーションであり、目、口、眉、頬など顔の可動部位の代表的な状態の組み合わせで構成される。上述のとおり最も単純な例では、ア、イ、ウ、エ、オ、の母音の口の形で5通りの代表顔を生成できる。そのような音(オン)によるバリエーションのほか、笑い顔、怒り顔、泣き顔など、各種感情やその度合いに依存した顔を準備する。
 代表顔に与える重み係数を制御し、当該重みの割合で基本顔を合成することにより、任意の表情を作り出すことができる。ここで「合成」とは、モーフィングなど周知の演算手法により中間顔を作り出す処理である。図では代表顔70a、70b、70c、70d、・・・に重み係数k1、k2、k3、k4、・・・を与え、その割合で合成することで、ターゲットとする顔72を作り出す様子を示している。つまり代表顔をN個準備する場合、重み係数はN個の要素を持つ数列{k1,k2,k3,k4,・・・,kN}となる。
 重み係数を音声由来情報とする場合、図1で示した学習システム16では、音声を入力データとして、正しい顔72が導出される重み係数を学習する。状態推定部12は、当該学習結果を利用し、運用時に入力された音声データを基に重み係数を導出する。なお上述のとおり状態推定部12は重み係数を取得すればよく、それを用いて顔72を生成する必要はない。例えば各代表顔に4バイトの動小数点数で重み係数を与えた場合、重み係数の数列全体で合計4Nバイトの情報となる。
 図5は、画像由来情報の一例として瞳孔の向きと瞼の開き具合を説明するための図である。図の横軸は瞳孔の向きの変化、縦軸は瞼の開き具合の変化であり、それらの変化における代表的な目の様子を矩形内に表している。目80aは、瞼が全開で瞳孔が正面を向いた状態である。これを基準とすると、目80bは瞳孔が右を向いた状態、目80cは瞳孔が左を向いた状態である。また目80dは瞼が半分開いた状態、目80eは瞼が閉じた状態である。
 画像由来情報として、例えば瞳孔の向きは、水平方向、垂直方向の2次元における瞳孔中心の位置座標を、各要素4バイトの浮動小数点数などで表す。「瞼の開き具合」は例えば、閉じているときを0%、全開にしているときを100%としたときの割合を、左右の目それぞれについて4バイトの浮動小数点数などで表す。描画部60はこれらの情報に基づき、目の輪郭の位置や眼球のテクスチャを調整する。また瞼が閉じているときは、目の領域のテクスチャを肌のデータに切り替える。
 図1に示した学習システム16では、撮影画像を入力データとして特徴点抽出などの画像解析を行い、瞳孔の向きや瞼の開き具合が正しく導出されるモデルを学習する。状態推定部12は当該学習結果を利用し、運用時に入力された撮影画像のデータを基に、眼球の向きや瞼の開き具合を導出する。なお頭部の位置や姿勢についても同様である。頭部の位置は、例えば重心の3次元位置座標を、各要素4バイト、合計12バイトの浮動小数点数などで表す。頭部の姿勢は、ヨー、ピッチ、ロールの3軸周りの回転角を、各要素4バイト、合計12バイトの浮動小数点数などで表す。
 図6は、描画部60の機能ブロックの構成をより詳細に示している。本実施の形態において描画部60は、レイトレーシングにより表示画像を生成する。レイトレーシングは、視点から表示画像平面の各画素を通る光線(レイ)を発生させ、オブジェクト表面での到達点における色、材質、法線や、光源の位置、性質などに基づく演算により、画素値を決定する周知の手法である。
 描画部60は、ユーザキャラクタを含む表示対象の空間の構造を表すデータを生成する構造データ生成部90、生成された構造データを格納する構造データ記憶部92、および、構造データを用いてレイトレーシングにより画像を描画するレイトレーシング部94を備える。構造データ生成部90は、表示対象の空間に、ユーザキャラクタを含む表示対象のオブジェクトを配置し、当該配置を表す空間構造を所定のフォーマットで生成する。
 例えば構造データ生成部90は、バウンディングボリューム階層(BVH:Bounding Volume Hierarchy)で表示空間を表す。BVHは、オブジェクトの形状を規定する三角形などのプリミティブを内包するバウンディングボックスを木構造により階層化したデータであり、プリミティブへのレイの交差判定を効率化するのに用いられる。バウンディングボックスとして、3次元空間の軸と平行に空間を区切るAABB(Axis-Aligned Bounding Box)を用いることで処理の負荷をより軽減できる。
 BVHは、1つ以上の3角形に外接するAABBからなる葉ノード、2つ以上のAABBに外接するAABBからなる内部ノード、さらにそれらに外接する内部ノード、といったようにAABBを階層化し、最終的に表示空間全体からなるAABBをルートノードとする木構造を有する。描画時は、レイが交差するAABBを上層から辿ることにより、到達点のプリミティブを効率的に導出する。構造データ生成部90は、少なくとも音声由来情報からユーザキャラクタを表すプリミティブの頂点を求め、BVHを生成する。
 テレビ会議などユーザキャラクタが大きく移動したり変形したりすることが考えにくい態様では、発話の途中でBVHの木構造そのものが変化する可能性が低い。そこで構造データ生成部90は、一旦生成したBVHにおいて、木構造自体は維持したまま、ノードが保持する情報のみを必要に応じて更新することにより高速処理を実現する。構造データ記憶部92は、構造データ生成部90が生成したBVHなどの構造データを格納する。格納されたデータのうち一部は、ユーザキャラクタなどオブジェクトの動きに応じて、構造データ生成部90により随時更新される。
 レイトレーシング部94は構造データ記憶部92に格納されている構造データを用いて、レイトレーシングにより表示画像を生成する。構造データ生成部90による構造データの生成処理と、レイトレーシング部94による描画処理は非同期で行うことが望ましい。すなわちレイトレーシング部94は、構造データ生成部90が構造データを更新するタイミングに関わらず、構造データ記憶部92に格納されている最新のデータを用いて画像を描画する。これにより、構造データの生成処理が描画処理を阻害しないようにできる。
 図7は、構造データ生成部90が構造データを生成する処理手順を示すフローチャートである。この処理は、画像生成部10の状態情報取得部56が、状態推定部12から音声由来情報を取得したことを契機に開始される。構造データ生成部90は当該音声由来情報を取得し(S10)、それに基づき、ユーザキャラクタを構成するプリミティブの頂点データを生成する(S12)。
 例えば構造データ生成部90は、ユーザキャラクタの標準状態を表すモデルデータをモデルデータ記憶部64から読み出す。モデルデータには、標準状態におけるプリミティブの頂点群の3次元座標が設定されている。そして構造データ生成部90は、S10で得られた音声由来情報に基づき各頂点を変位させることにより、音声に対応する頂点群の3次元座標を算出する。なお頂点の変位は、状態推定部12から送信される音声由来情報のみによらず、画像由来情報、ユーザ操作の内容、音声に係るその他の情報などを加味して決定してよい。
 次に構造データ生成部90は、生成した頂点データを用いて、BVHなど空間の構造データを生成し(S14)、構造データ記憶部92に格納する(S16)。ユーザが停止操作を行うなど処理を停止させる必要がない間は(S18のN)、S10からS16の処理を繰り返す。この際、構造データ生成部90は上述のとおり、一旦生成した構造データのうち必要な部分のみを更新する。BVHの場合、木構造はそのままとし、AABBやプリミティブ自体のデータを必要に応じて変化させればよい。処理を停止させる必要が生じたら、構造データ生成部90は処理を停止する(S18のY)。
 図8は、レイトレーシング部94がレイトレーシングを実施する処理手順を示すフローチャートである。この処理は、構造データ記憶部92に最初の構造データが格納されたことを契機に開始される。まずレイトレーシング部94は、モデルデータ記憶部84から、環境光など画像の描画に必要なパラメータを読み出し、設定する(S20)。またレイトレーシング部94は、ユーザキャラクタの周囲に存在するその他のオブジェクトの構造データも、モデルデータ記憶部84から読み出し、設定する(S22)。
 なお「その他のオブジェクト」には、ユーザキャラクタのうち動きを表さない部分や背景などを含めてよい。そしてレイトレーシング部94はBVHなど、ユーザキャラクタの最新の構造データを構造データ記憶部92から読み出して設定する(S24)。そしてレイトレーシング部94は構造データを用い、表示画像平面の画素ごとに発生させたレイの交差判定を行うことにより、画素値を算出し画像を生成する(S26)。
 レイトレーシングの具体的な演算には、一般的に行われているモデルを適用できる。ユーザが停止操作を行うなど処理を停止させる必要がない間は(S28のN)、S20からS26の処理を繰り返す。処理を停止させる必要が生じたら、レイトレーシング部94は処理を停止する(S28のY)。
 図7のS12において、構造データ生成部90が頂点データを生成する際の疑似コードを以下に示す。
Figure JPOXMLDOC01-appb-M000001
 上記処理は音声由来情報として、N個の代表顔に対する重み係数を取得した場合を例示している。この場合、モデルデータ記憶部64には、N個の代表顔それぞれについて、頂点群の3次元位置座標を格納しておく。そして、各代表顔のj番目の頂点の位置座標と、標準状態の顔における、対応する頂点の位置座標との差分を、各代表顔に与えられている重み係数で重みづけして足し合わせる。
 当該重みづけ和は、ターゲットとする顔の頂点の、標準状態からの変位ベクトルを表す。したがって標準状態の各頂点に当該変位ベクトルを加算することで、表したい顔の頂点座標の絶対値を導出できる。なお上記ループ処理は、ユーザキャラクタのうち動きを与える顔やその部位全体に対しまとめて行ってもよいし、顔全体、上の歯、下の歯、舌など、所定の部位単位で行ってもよい。
 図9は、構造データ生成部90が図7のS14において生成する構造データの構成を例示している。この例で構造データは、上層のノードが下層の2つのノードへのインデックスを持つ二分木のBVHとしている。図において「AABB」は、内部に下層のAABBを含むAABBの内部ノードであり、「プリミティブ」は、内部にプリミティブのみを含むAABBの葉ノードである。
 図10は、「AABB」の内部ノードが保持するデータの構造を例示している。図において、「aabb0」、「aabb1」は下層の2つのAABBの情報を表す。このうち「min.x」、「min.y」、「min.z」は、各ボックスが及ぶ範囲のうち表示対象の空間のx軸、y軸、z軸方向の最小値、「max.x」、「max.y」、「max.z」はx軸、y軸、z軸方向の最大値である。
 また「leftIndex」、「rightIndex」はそれぞれ、下層ノードのうち左側のノード、右側のノードへのインデックスである。当該インデックスは、0以上であれば下層の内部ノードへのインデックスを表し、0未満であれば下層の葉ノード、すなわちプリミティブを定義するノードへのインデックスを表す。なお、あるノードの下層にある2つのAABBは、範囲の重複を許容する。
 図11は、「プリミティブ」を定義する葉ノードが保持するデータの構造を例示している。葉ノードはプリミティブである三角形の集合体を1つのノードとし、それぞれ、三角形の個数と、交差判定のために座標変換してなる各三角形の頂点座標を保持する。座標変換により交差判定を効率化する手法は、例えばSven Woop, Carsten Benthin, Ingo Wald、"Watertight Ray/Triangle Intersection"、Journal of Computer Graphics Tecniques、2013年、Vol. 2, No. 1, 2013, p. 65-82に開示される。
 図において「numTriangles」は三角形の個数である。「index of primitive Info」は、三角形ごとの材質や、UV座標が格納されている頂点バッファなどのインデックスである。2段目以下の「primitive_data」は、1行で1つの頂点データ、3行で1つ分の三角形(例えば三角形A、三角形B)の頂点データを、それぞれ4バイトの浮動小数点数で表す。本来、頂点データは三角形ごとに、3頂点×3次元=9個の数値で表される。一方、図示する例は、そのような頂点データを、4×3行=12個の値に変換して保持することにより上記Woopの手法を実現し、交差判定の効率化と判定抜けの軽減を図っている。ただし頂点データの形式をこれに限定する主旨ではない。
 構造データ生成部90は、BVHのデータを既存の手段で生成してよい。例えばMartin Stich, Heiko Friedrich, Andreas Dietrich、"Spatial Splits in Bounding Volume Hierarchies"、Proceedings of the Conference on High Performance Graphics 2009、2009年8月、p. 7-13に開示される手法を用いることができる。
 また構造データ生成部90は、生成した木構造のデータを、データ上で平坦化、すなわち一連のデータ配列にして構造データ記憶部92に格納することにより、GPUによるアクセスを効率化する。図12は、元の木構造と、それを平坦化した際のデータ構造を例示している。図の左側は図9と同じ木構造100を示している。ここで各ノードの左上には、内部ノードおよび葉ノードのそれぞれで一意に与えたインデックスを付している。プリミティブを定義する葉ノードのインデックスには下線を施している。
 構造データ生成部90はこのような木構造を平坦化し、図の右側に示すように、各内部ノード(「AABB」と表記)が保持するデータ列102と、各葉ノード(「プリミティブ」と表記)が保持するデータ列104を生成する。データ列102は、各内部ノードが保持する、図10に示した4行のデータを、記憶領域においてインデックスに対応するアドレスに順に格納したものである。データ列104も同様に、各葉ノードが保持する、図11に示したデータを、記憶領域においてインデックスに対応するアドレスに順に格納したものである。
 図示するデータ列102によれば、0番のルートノードの下層に、当該AABBに内包される1番と3番の内部ノードがある。また1番の内部ノードの下層に、当該AABBに内包される2番の内部ノードと、0番の葉ノードがある。2番の内部ノードの下層に、当該AABBに内包される1番と2番の葉ノードがある。このような連鎖を順次辿ってアドレスアクセスすることにより、交差するプリミティブのノードに効率的に到達する。
 レイトレーシング部94は、まずデータ列102を参照して上層から交差判定を行い、葉ノードに到達したらデータ列104を参照し、到達する三角形を特定する。レイトレーシング部94をGPU24で実装する場合、これらの処理を細かい粒度で並列に行え、高速描画を実現できる。この場合、構造データ記憶部92にはCPUメモリとGPUメモリを含め、構造データ生成部90は、生成した木構造のデータをCPUメモリ上で平坦化したうえ、GPUメモリにコピーする。
 一例として2万個の頂点からなるユーザキャラクタの空間を表すBVHを構築する場合、各頂点の更新に0.02msec、木構造の生成に1100msec、頂点座標の変換やデータの平坦化に20~30msec、CPUメモリからGPUメモリへのデータコピーに1.7msec程度の時間を要することもあり得る。この場合、音声由来情報が送信される都度、上記の処理を行うと、BVHの構築までに1130msec程度の遅延が生じることになる。一方、上述のとおり木構造を生成し直すことなく、各ノードが保持する情報のみを更新するようにすれば、上記のような例でも所要時間は8msec程度となり格段に高速化できる。
 この場合、構造データ生成部90は、図9に示した木構造を更新せず、図10に示したデータのうち、下層のノードへのインデックス「leftIndex」、「rightIndex」も更新しない。また図11に示したデータのうち、ノードに含まれる三角形の数「numTriangles」や、三角形の頂点データなどへのインデックス「index of primitive Info」も更新しない。結果として構造データ生成部90は、GPUメモリに格納されたデータ列102およびデータ列104のうち、図12において破線で囲まれたデータのみを必要に応じて書き換えればよい。
 図13は、構造データ生成部90が内部ノードのデータを更新する処理手順を示すフローチャートである。構造データ生成部90はまず、ルートノードのAABBのデータ、すなわち図10の構造を有するデータを読み出す(S20)。そして下層のノードへのインデックス「leftIndex」、「rightIndex」を参照し、下層が内部ノードか葉ノードかを確認する(S22)。上述のインデックス設定規則によれば、インデックスが負の値であれば葉ノードである。
 葉ノードであれば(S22のY)、図14に示す葉ノードのデータ更新処理を実施する(S24)。内部ノードであれば(S22のN)、下層の内部ノードについてデータ更新処理を実施する(S26)。S26の処理の手順は、図示しているフローチャートに他ならない。すなわち下層に内部ノードがある限り、図示するフローチャートが、入れ子状態で下層のノードに対し繰り返される。S24、S26のいずれの処理によっても、下層のノードのAABBが必要に応じて更新される。
 構造データ生成部90は、下層の2つのノードについて、S24および/またはS26の処理を実施する(S28のN)。2つのノードについて処理が完了したら(S28のY)、構造データ生成部90は、それらの下層のAABBを包含するようなAABBを求め、GPUメモリのデータを更新して処理を終了する(S30)。上述のとおりこの処理は、S26において全ての内部ノードに対し行われる。
 図14は、図13のS24において実施される、葉ノードのデータ更新処理の手順を示すフローチャートである。まず構造データ生成部90は、対象ノードに含まれる三角形のうち1つの三角形のデータを読み出す(S40)。このデータは、図11に示した「三角形A」などのデータである。そして構造データ生成部90は、そのうちの1頂点について、新たな頂点座標を取得する(S42)。すなわち音声由来情報などに基づく重み係数を用い、上述のとおり対応する頂点の3次元座標を算出する。
 そして頂点の変位に応じて、GPUメモリにおけるAABBのデータを更新する(S44)。三角形の3つの頂点について、S42、S44の処理を繰り返す(S46のN)。3頂点について最新の座標が得られたら(S46のY)、構造データ生成部90は、GPUメモリにおける対象の三角形のデータを更新する(S48)。S40からS48の処理を、ノードに含まれる全ての三角形について繰り返す(S50のN)。全ての三角形について処理が完了したら終了する(S50のY)。この時点で、当該ノードのAABBは、更新された三角形が全て包含されるように更新されている。
 図15は、本実施の形態に適用できる、描画処理の分散システムを示している。図における描画部60は、図3の描画部60に対応し、画像生成部10の一部を構成する。また描画部60は図6に示す構造データ生成部90、構造データ記憶部92、レイトレーシング部94の少なくとも一部を備えてよいが、図示を省略している。一方、この態様における描画部60は、ネットワークを介して画像生成部10と接続した描画サーバ120a、120b、120c、120d、・・・に描画処理の少なくとも一部を委託する。
 描画部60は、タスク依頼部110、部分画像取得部112、および接続部114を備える。タスク依頼部110は、画像平面を分割し、それぞれを描画サーバ120a、120b、120c、120dに割り当てて描画のタスクを依頼する。例えば表示画像を2行2列に分割し、各部分画像を描画するタスクを4つの描画サーバ120a、120b、120c、120dに依頼する。この際、タスク依頼部110は、各領域を描画するのに必要な、頂点座標、テクスチャ、材質、光源情報などのデータをセットで送信する。
 各描画サーバ120a、120b、120c、120dは、それらのデータセットを用い、委託された部分画像の描画を、それぞれ独立に実行する。部分画像取得部112は、各描画サーバ120a、120b、120c、120dから、描画結果である部分画像のデータを取得する。接続部114は部分画像を接続して表示画像を生成し、表示部14に出力する。
 このようなシステムで、リソースが潤沢な複数の装置を利用し描画処理を並行して行うことにより、より低遅延での表示が可能になる。この場合も描画部60に含まれる構造データ生成部90が、上述したBVHのような構造データを同様に生成し、各描画サーバ120a、120b、120c、120dに順次送信すればよい。
 図16は、本実施の形態の応用例を示している。図はテレビ会議システムを想定している。発話者であるユーザ130の音声や顔の様子は、ユーザ端末132が備えるマイクロフォンと撮像装置により継続して取得される。そして、それらから得られる音声由来情報および画像由来情報に基づき描画されたユーザキャラクタの画像が、相手のユーザ端末134の表示部14に表示される。
 発話者のユーザ端末132にも当然、相手のユーザキャラクタの画像を表示してよい。ユーザ端末132、134がそれぞれ画像生成システム8を備えているとすると、ユーザ端末132からユーザ端末134へ、少なくとも音声データを送信すれば、ユーザ端末134においてユーザキャラクタを描画できる。描画結果を音声と同期させて出力することで、ユーザキャラクタが話しているように見せることができる。さらに送信元のユーザ端末132内部で、画像由来情報を生成しユーザ端末134へ送信すれば、ユーザ端末134において表示されるユーザキャラクタの精度を上げることができる。
 いずれの場合も撮影画像のデータを送信せずにリアルな表現が可能となり、伝送データのサイズを格段に軽減できる。結果として、伝送帯域が潤沢でない環境においても支障なく会話を続けられる可能性が高くなる。また同図では、ユーザ端末132の画面に、自分のユーザキャラクタの表情を調整するためのユーザインターフェース136を表示している。この例では、笑い、悲しみ、怒りを表すアイコンを表し、いずれかの成分を増幅させる操作を受け付ける。
 例えば笑いを表すアイコンを、カーソルなどで指示することにより、相手のユーザ端末134に表示されているユーザキャラクタに、実際より強く笑顔の成分が表れるようにする。この場合、描画部60は、音声由来情報から得られる重み係数のうち、笑顔に分類されている代表顔の重み係数を相対的に増加させる調整を行う。相手のユーザ端末134に画像生成部10を設ける場合、笑いのアイコンが指示された旨の情報をユーザ端末132から送信することにより、ユーザ端末134で当該調整処理を実現できる。
 図では3種類の感情を調整可能としたが、感情の数や種類は限定されない。また操作内容はアイコンが指示されたか否かの2択に限定されず、強調の度合いを調整できるようにしてもよい。例えばユーザ端末132に、度合いを調整するためのスライドバーを感情ごとに表示してもよい。なお描画部60は、ユーザ操作とは独立して、音声や画像から推測される感情に基づき重み係数を調整し、ユーザキャラクタにおける表情の強調を行ってよい。
 またユーザ端末132は、表情の調整のほか、上述のとおり仮想カメラの位置や姿勢の調整、ユーザキャラクタ自体の選択や作成、背景、光源、他のオブジェクトの選択などを受け付けるようにしてもよい。表示部14には、テレビ会議に参加している複数のメンバーのユーザキャラクタを表示してよい。この場合も、各メンバーのユーザ端末から送信が必要なデータは音声データで充足するため、人数が増えても伝送データサイズの増大を抑えることができる。
 本実施の形態はテレビ会議のほか、電子ゲーム、映画、ニュースなどの配信コンテンツ、テレビジョン放送などにも応用できる。3次元グラフィクスの映像コンテンツに応用する場合、声優の音声データと画像由来情報のみで、登場キャラクタの顔の動きを声に合わせることができる。また同じキャラクタであっても、異なる言語に合わせて口を動かすことができる。さらに音声に伴う豊かな感情表現を実現できる。
 また従来のモーションキャプチャと組み合わせることにより、キャラクタ全身のショットにおいても精細な顔の動きを表現し、音声と同期したよりリアルな映像を提示できる。さらに、バーチャルなアナウンサーや歌手などへの応用も容易になる。
 以上述べた本実施の形態によれば、音声や撮影画像を解析して発話者の状態を推定し、それを反映させたオブジェクトモデルをレイトレーシングにより即時に描画する。例えば機械学習モデルにより、音声データから代表顔の重み係数を即時に導出する。また表示対象の空間構造をBVHなどにより表すとともに、状態変化に対してはノードの情報のみを更新する。さらに当該更新処理と描画処理を非同期で行う。これらのことにより、音声入力に対し即時の描画が可能となり、音声に合わせて話すオブジェクトを低遅延でよりリアルに表現できる。
 テレビ会議に応用した場合、相手の端末に撮影画像を送信する必要がなくなることから、通信状況によらず円滑に会議を進行できる可能性が高くなる。また声に合わせて口や表情などの緻密な動きを表現できるため、高品質かつ違和感のない映像コンテンツを容易に作製できる。さらに代表顔の重み係数をベースにオブジェクトの表情を制御することにより、感情表現を実際より豊かにすることが容易になり、コミュニケーションを活性化できる。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 以上のように本発明は、画像生成装置、画像生成サーバ、ユーザ端末、ゲーム装置、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含む画像生成システムなどに利用可能である。
 8 画像生成システム、 10 画像生成部、 12 状態推定部、 13 学習モデル記憶部、 14 表示部、 16 学習システム、 22 CPU、 24 GPU、 26 メインメモリ、 32 通信部、 34 記憶部、 36 出力部、 50 ユーザ端末、 52 音声由来情報生成部、 54 画像由来情報生成部、 56 状態情報取得部、 60 描画部、 62 入力情報取得部、 64 モデルデータ記憶部、 90 構造データ生成部、 92 構造データ記憶部、 94 レイトレーシング部。

Claims (16)

  1.  発話者の音声に基づき推定された、当該発話者の顔の状態に係る情報を順次取得する状態情報取得部と、
     前記状態を反映させたオブジェクトモデルを生成し、その像をレイトレーシングにより描画した表示画像を生成する描画部と、
     を備えたことを特徴とする画像生成システム。
  2.  前記状態情報取得部は、あらかじめ準備された複数の代表顔の合成により、推定された顔の状態を実現するときの、当該代表顔に対する重み係数のデータを前記顔の状態に係る情報として取得し、
     前記描画部は、標準状態のオブジェクトモデルにおけるプリミティブの頂点座標を、各代表顔の対応する頂点の座標と前記重み係数に基づき変位させることにより、前記状態を反映させたオブジェクトモデルを生成することを特徴とする請求項1に記載の画像生成システム。
  3.  前記描画部は、前記重み係数を調整することにより、特定の種類の表情成分を強調したオブジェクトモデルを生成することを特徴とする請求項2に記載の画像生成システム。
  4.  前記描画部は、発話者により指定された感情に分類された代表顔の重み係数を増加させることにより、対応する表情成分を強調することを特徴とする請求項3に記載の画像生成システム。
  5.  前記描画部は、発話者の音声または撮影画像に基づき推定された感情に分類された代表顔の重み係数を増加させることにより、対応する表情成分を強調することを特徴とする請求項3または4に記載の画像生成システム。
  6.  音声を入力データとして発話者の顔の状態に係る情報を導出する機械学習のモデルを用い、前記状態に係る情報を推定する音声由来情報生成部をさらに備えたことを特徴とする請求項1から5のいずれかに記載の画像生成システム。
  7.  前記状態情報取得部は、撮影画像に基づき推定された前記発話者の状態に係る情報をさらに取得し、
     前記描画部は、当該撮影画像に基づき推定された状態を、前記オブジェクトモデルに反映させることを特徴とする請求項1から6のいずれかに記載の画像生成システム。
  8.  前記状態情報取得部は、瞼の開き具合および瞳孔の向きを表す情報を取得し、
     前記描画部は、当該情報をオブジェクトモデルの目に反映させることを特徴とする請求項7に記載の画像生成システム。
  9.  前記描画部は、瞼の開閉に応じて、オブジェクトモデルの目の領域におけるテクスチャを、眼球および肌のデータ間で切り替えることを特徴とする請求項8に記載の画像生成システム。
  10.  撮影画像を入力データとして発話者の状態に係る情報を導出する機械学習のモデルを用い、前記状態に係る情報を推定する画像由来情報生成部をさらに備えたことを特徴とする請求項7から9のいずれかに記載の画像生成システム。
  11.  前記描画部は、表示対象の空間を分割してなるバウンディングボックスを階層化した木構造の構造データを生成する構造データ生成部と、
     前記構造データを用いた交差判定によりレイトレーシングを行うレイトレーシング部と、を含み、
     前記描画部は、前記状態に係る情報の変化に応じ、前記木構造は維持したまま、ノードが保持するデータを更新することを特徴とする請求項1から10のいずれかに記載の画像生成システム。
  12.  前記描画部は、前記構造データを格納する構造データ記憶部をさらに備え、
     前記レイトレーシング部は、前記構造データ生成部が前記構造データを更新するタイミングに関わらず、前記構造データ記憶部に格納されているの最新の前記構造データを用いてレイトレーシングを行うことを特徴とする請求項11に記載の画像生成システム。
  13.  前記描画部は、
     画像平面を分割してなる部分画像の描画を、ネットワークを介して接続した描画サーバに依頼するタスク依頼部と、
     前記描画サーバから送信された部分画像を接続して表示画像を生成する接続部と、
     を備えたことを特徴とする請求項1から12のいずれかに記載の画像生成システム。
  14.  前記描画部が生成した表示画像を、前記音声と同期させて出力する表示部をさらに備えたことを特徴とする請求項1から13のいずれかに記載の画像生成システム。
  15.  発話者の音声に基づき推定された、当該発話者の顔の状態に係る情報を順次取得するステップと、
     前記状態を反映させたオブジェクトモデルを生成し、その像をレイトレーシングにより描画した表示画像を生成するステップと、
     を含むことを特徴とする画像生成方法。
  16.  発話者の音声に基づき推定された、当該発話者の顔の状態に係る情報を順次取得する機能と、
     前記状態を反映させたオブジェクトモデルを生成し、その像をレイトレーシングにより描画した表示画像を生成する機能と、
     をコンピュータに実現させることを特徴とするコンピュータプログラム。
PCT/JP2021/011191 2021-03-18 2021-03-18 画像生成システムおよび画像生成方法 WO2022195818A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/011191 WO2022195818A1 (ja) 2021-03-18 2021-03-18 画像生成システムおよび画像生成方法
JP2023506639A JPWO2022195818A1 (ja) 2021-03-18 2021-03-18

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/011191 WO2022195818A1 (ja) 2021-03-18 2021-03-18 画像生成システムおよび画像生成方法

Publications (1)

Publication Number Publication Date
WO2022195818A1 true WO2022195818A1 (ja) 2022-09-22

Family

ID=83322064

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/011191 WO2022195818A1 (ja) 2021-03-18 2021-03-18 画像生成システムおよび画像生成方法

Country Status (2)

Country Link
JP (1) JPWO2022195818A1 (ja)
WO (1) WO2022195818A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116856A (ja) * 2007-10-19 2009-05-28 Canon Inc 画像処理装置、画像処理方法
CN106485774A (zh) * 2016-12-30 2017-03-08 当家移动绿色互联网技术集团有限公司 基于语音实时驱动人物模型的表情和姿态的方法
JP2020091909A (ja) * 2020-03-04 2020-06-11 株式会社スクウェア・エニックス 表情制御プログラム、記録媒体、表情制御装置、表情制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116856A (ja) * 2007-10-19 2009-05-28 Canon Inc 画像処理装置、画像処理方法
CN106485774A (zh) * 2016-12-30 2017-03-08 当家移动绿色互联网技术集团有限公司 基于语音实时驱动人物模型的表情和姿态的方法
JP2020091909A (ja) * 2020-03-04 2020-06-11 株式会社スクウェア・エニックス 表情制御プログラム、記録媒体、表情制御装置、表情制御方法

Also Published As

Publication number Publication date
JPWO2022195818A1 (ja) 2022-09-22

Similar Documents

Publication Publication Date Title
US20210390767A1 (en) Computing images of head mounted display wearer
JP7437327B2 (ja) 異種入力の補間のための方法およびシステム
US10540817B2 (en) System and method for creating a full head 3D morphable model
US11557076B2 (en) Computer generated hair groom transfer tool
US20210241510A1 (en) Generating textured polygon strip hair from strand-based hair for a virtual character
US20030137515A1 (en) Apparatus and method for efficient animation of believable speaking 3D characters in real time
KR20130032620A (ko) 3차원 사용자 아바타를 이용한 동영상 제작장치 및 방법
US11514638B2 (en) 3D asset generation from 2D images
US20230315382A1 (en) Communication assistance program, communication assistance method, communication assistance system, terminal device, and non-verbal expression program
CN115004236A (zh) 来自音频的照片级逼真说话面部
WO2023284435A1 (zh) 生成动画的方法及装置
Kato et al. Reality avatar for customer conversation in the metaverse
Li et al. A survey of computer facial animation techniques
Gachery et al. Designing MPEG-4 facial animation tables for web applications
Hwang et al. Audio-driven Facial Animation: A Survey
WO2022195818A1 (ja) 画像生成システムおよび画像生成方法
CN116721190A (zh) 一种语音驱动三维人脸动画生成方法
US11715248B2 (en) Deep relightable appearance models for animatable face avatars
KR102373608B1 (ko) 디지털 휴먼 영상 형성을 위한 전자 장치 및 방법과, 그를 수행하도록 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램
CN115223224A (zh) 数字人说话视频生成方法、系统、终端设备及介质
Kshirsagar et al. Personalized face and speech communication over the internet
Thalmann The virtual human as a multimodal interface
JP2003141564A (ja) アニメーション生成装置およびアニメーション生成方法
US20230326112A1 (en) Deep relightable appearance models for animatable face avatars
US20230085339A1 (en) Generating an avatar having expressions that mimics expressions of a person

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21931565

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023506639

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21931565

Country of ref document: EP

Kind code of ref document: A1