WO2022209220A1 - 画像処理装置および画像処理方法、並びに記録媒体 - Google Patents

画像処理装置および画像処理方法、並びに記録媒体 Download PDF

Info

Publication number
WO2022209220A1
WO2022209220A1 PCT/JP2022/002510 JP2022002510W WO2022209220A1 WO 2022209220 A1 WO2022209220 A1 WO 2022209220A1 JP 2022002510 W JP2022002510 W JP 2022002510W WO 2022209220 A1 WO2022209220 A1 WO 2022209220A1
Authority
WO
WIPO (PCT)
Prior art keywords
joint
character model
joint information
information
pieces
Prior art date
Application number
PCT/JP2022/002510
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 US18/551,204 priority Critical patent/US20240169638A1/en
Publication of WO2022209220A1 publication Critical patent/WO2022209220A1/ja

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities
    • A63B71/0619Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
    • 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/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/012Dimensioning, tolerancing

Definitions

  • the present disclosure relates to an image processing device, an image processing method, and a recording medium, and in particular, an image processing device, an image processing method, and a recording medium capable of satisfactorily distributing content that can be displayed from a free viewpoint in real time. Regarding the medium.
  • FABRIK Forward And Backward Reaching Inverse Kinematics
  • the present disclosure has been made in view of such circumstances, and is intended to enable good distribution of content that can be displayed from a free viewpoint in real time.
  • An image processing apparatus based on a comparison result of a correspondence relationship between a plurality of joint information of a subject and a plurality of character model joint information of an arbitrary character model, which is estimated from a captured image, When at least part of the joint information and the plurality of character model joint information do not match, the character model joint information having no corresponding relationship is estimated from the plurality of joint information, and all of the character model joint information are determined. and a posture estimating unit for estimating the whole body posture of the character model using the determined character model joint information as an initial position.
  • An image processing method or a recording medium based on the result of comparison of correspondence relationships between a plurality of joint information of a subject and a plurality of character model joint information of an arbitrary character model, estimated from a captured image, When at least a part of the plurality of joint information and the plurality of character model joint information do not match, the character model joint information having no corresponding relationship is estimated from the plurality of joint information, and all of the character model joint information is estimated. and estimating the whole body posture of the character model using the determined character model joint information as an initial position.
  • a plurality of pieces of joint information and a plurality of pieces of joint information and a plurality of pieces of joint information of an arbitrary character model are compared based on the result of comparison of correspondence relationships between a plurality of pieces of joint information of a subject and a plurality of pieces of character model joint information of an arbitrary character model, which are estimated from a captured image. If at least part of the character model joint information does not match with the character model joint information of is the initial position, the posture of the whole body of the character model is estimated.
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a distribution system to which the present technology is applied;
  • FIG. 3 is a block diagram showing a configuration example of a client terminal;
  • FIG. 4 is a diagram showing an example of a skeletal structure applied to a 3D character model;
  • FIG. 4 is a diagram illustrating an example of processing in a client terminal;
  • FIG. 10 is a diagram illustrating an example of application to a three-headed 3D character model with different numbers of joints;
  • FIG. 11 is a flowchart for explaining real-time free-viewpoint playback processing;
  • FIG. 11 is a flow chart for explaining forward reach phase processing;
  • FIG. FIG. 11 is a flow chart for explaining a backward reach phase and route group transformation processing;
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a computer to which the present technology is applied;
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a computer to which the present technology is
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a distribution system to which the present technology is applied.
  • a delivery system 11 shown in FIG. 1 includes a capture system 12, a bone delivery server 13, and a plurality of client terminals 14 (two client terminals 14-1 and 14-2 in the example of FIG. 1) connected via a network. configured.
  • a capture system 12 a bone delivery server 13
  • client terminals 14 two client terminals 14-1 and 14-2 in the example of FIG. 1
  • network configured.
  • an example of use of the distribution system 11 for distributing content that can display sports competitions in real time from a free viewpoint hereinafter referred to as real-time free viewpoint distribution
  • the distribution system 11 can be used for real-time free-viewpoint distribution of various contents, not limited to sports.
  • the capture system 12 has a plurality of imaging devices, and acquires a plurality of moving images by capturing images of sports competitions from various directions with these imaging devices. Then, the capture system 12 analyzes a plurality of moving images and transmits the joint position information obtained by estimating the joint positions of the athlete to the bone distribution server 13 via the network.
  • the joint position information includes a person ID (Identification) that identifies a person such as an athlete, a joint ID that identifies a joint that can be estimated by the capture system 12, position data (x, y , z). Therefore, the joint position information is transmitted with a smaller amount of data than, for example, transmission of moving images.
  • a person ID Identity
  • a joint ID that identifies a joint that can be estimated by the capture system 12
  • position data x, y , z. Therefore, the joint position information is transmitted with a smaller amount of data than, for example, transmission of moving images.
  • the bone distribution server 13 receives the joint position information transmitted from the capture system 12 and distributes it to multiple client terminals 14 in real time via the network.
  • the client terminal 14 applies the joint position information delivered from the bone delivery server 13 to an arbitrary 3D character model to reproduce the posture of an actual athlete using the 3D character model. Then, the client terminal 14 renders a 3D character model that reproduces the posture of the athlete, for example, as if watching a sports competition from a free viewpoint according to the user's operation. Therefore, as shown in the figure, the user of the client terminal 14-1 and the user of the client terminal 14-2 can watch the sports competition from different viewpoints.
  • the client terminal 14 may download and use a 3D character model stored on the cloud, or may use a 3D character model in the user's local environment. Also, the client terminal 14 may use a two-dimensional character model instead of the 3D character model.
  • the distribution system 11 distributes the joint position information of the athlete, and can realize real-time free viewpoint distribution with a configuration in which the joint position information is applied to an arbitrary 3D character model in the client terminal 14. can freely switch between 3D character models that reproduce the postures of athletes and watch the game.
  • the capture system 12 captures sports images from a plurality of directions, it may not be possible to estimate the positions of all the joints if, for example, the athlete's body hides the arms and legs. That is, the multiple joints estimated from the athlete in the image do not match the multiple joints forming the skeletal structure of the 3D character model. In this case, the joint position information with insufficient joint positions that could not be estimated is delivered to the client terminal 14, and the joint position information with the most estimated joint positions is applied to the 3D character model. Even with rendering, it is assumed that it will be difficult to reproduce the posture of an actual athlete using a 3D character model.
  • the client terminal 14 can reproduce the posture of an actual athlete using a 3D character model.
  • the delivery system 11 may deliver joint information indicating the number of joints and joint positions of the subject, which is estimated from the captured image.
  • FIG. 2 is a block diagram showing a configuration example of the client terminal 14. As shown in FIG.
  • the client terminal 14 includes a 3D character model storage unit 21, a joint position information receiving unit 22, an initial position determining unit 23, a rotation estimating unit 24, a posture estimation updating unit 25, and a rendering unit 26. Configured.
  • Any 3D character model is stored in the 3D character model storage unit 21 .
  • a 3D character model has a three-dimensional skeleton structure defined for each 3D character model.
  • FIG. 3 shows an example of a skeleton structure applied to the 3D character model stored in the 3D character model storage unit 21.
  • a skeletal structure having a shape as shown in the figure is used as a basic posture of the 3D character model. By applying the joint position information to such a skeletal structure, the body shape of the 3D character model is adjusted so as to match the body shape of the athlete.
  • the skeletal structure has a configuration in which multiple joint nodes are connected by bones, and in the example shown in FIG. 3, it has a tree structure with the pelvis joint node pelvis as the root node.
  • the spine joint nodes spine_1 to spine_3 may be treated as root nodes.
  • Joint nodes other than the root node are also called terminal joint nodes.
  • the joint position information receiving unit 22 receives the joint position information distributed from the bone distribution server 13 and supplies it to the initial position determining unit 23 .
  • the joint position information receiving unit 22 provides a list of joint IDs and position data (x, y, z) associated with each person ID for each person ID of all athletes participating in a sports competition. It is supplied to the initial position determining section 23 . In the following description, it is assumed that each process executed by the client terminal 14 is performed for each person ID.
  • the initial position determining unit 23 uses the joint ID and position data (x, y, z) supplied from the joint position information receiving unit 22 to determine the initial positions of all the joints that make up the skeletal structure of the 3D character model. do. At this time, if the joint position information lacks joints, the initial position determining unit 23 can estimate the positions of the joints of the 3D character model that are lacking in the joint position information.
  • the initial position determining unit 23 determines a plurality of joints specified by the joint IDs included in the joint position information supplied from the joint position information receiving unit 22 and the 3D model stored in the 3D character model storage unit 21 . A plurality of joints constituting the skeletal structure of the character model are compared to identify the correspondence between the joints. Then, the initial position determining unit 23 was able to identify the correspondence relationship between the plurality of joints identified by the joint IDs in the joint position information among the plurality of joints forming the skeletal structure of the 3D character model. As for the joints, it is determined to use the position data (x, y, z) of the joint position information as the initial positions of the identified joints.
  • the initial position determination unit 23 determines the joints for which correspondence cannot be specified with a plurality of joints specified by the joint ID of the joint position information among the plurality of joints forming the skeletal structure of the 3D character model. If there is, it is determined that the joint position information is insufficient. Therefore, in this case, the initial position determining unit 23 estimates the positions of the joints of the 3D character model that are lacking in the joint position information, and converts the position data (x, y, z) of the estimated positions to the joint positions. It is decided to use it as the initial position of the joint that lacked information.
  • the initial position determination unit 23 can determine the initial positions of all the joints that make up the skeleton structure of the 3D character model, and the joint IDs and position data (x, y, z) of those joints.
  • the list is supplied to the rotation estimator 24 and the pose estimation updater 25 .
  • the rotation estimating unit 24 Based on the joint ID and the position data (x, y, z) supplied from the initial position determining unit 23, the rotation estimating unit 24 detects branched terminal joint nodes (for example, head, hands, both feet). etc.) is estimated, and the roll rotation amount ⁇ for each joint ID is obtained. Further, the rotation estimator 24 estimates the rotation of the root node (for example, the waist or the chest) from which the terminal joint nodes are branched, and obtains the roll rotation amount ⁇ for each joint ID. Thereby, the rotation estimating unit 24 obtains the roll rotation amounts ⁇ of all the joint nodes of the 3D character model, and supplies the joint IDs and the roll rotation amounts ⁇ to the posture estimation updating unit 25 .
  • branched terminal joint nodes for example, head, hands, both feet.
  • Posture estimation updating unit 25 inputs the joint ID and position data (x, y, z) supplied from initial position determining unit 23 and the joint ID and roll rotation amount ⁇ supplied from rotation estimating unit 24 to generate FABRIK Tree Estimate the full body pose of the 3D character model by running an algorithm.
  • the FABRIK Tree algorithm is disclosed in detail in the above-mentioned Patent Document 1, and the content of Patent Document 1 is also incorporated in this embodiment, and the posture estimation updating unit 25 can execute the FABRIK Tree algorithm. .
  • the posture estimation updating unit 25 updates the position data (x, y, z) and the rotation data (x, y, z, w) for each joint ID obtained as a result of estimating the posture of the whole body of the 3D character model, It is supplied to the rendering section 26 .
  • the rendering unit 26 reads out the 3D character model from the 3D character model storage unit 21 and applies the position data (x, y, z ) and rotation data (x, y, z, w). As a result, the rendering unit 26 reproduces the posture of an actual athlete using a 3D character model, renders the 3D character model from a desired free viewpoint, draws an image of the sports competition, and outputs the image to a display device (not shown). . Also, the rendering unit 26 saves the position data (x, y, z) and the rotation data (x, y, z, w), and executes the FABRIK Tree algorithm when looking back at the sports competition. poses can be applied to a 3D character model with the same skeleton and re-rendered.
  • the client terminal 14 configured in this way estimates the positions of the missing joints and determines the initial positions.
  • a 3D character model can be drawn in a natural posture.
  • the distribution system 11 it is possible to avoid an unnatural display even if the content is displayed in real time from a free viewpoint, and it is possible to satisfactorily distribute the content that can be displayed in real time from a free viewpoint.
  • the distribution system 11 can be applied to applications other than watching sports.
  • the delivery system 11 may deliver joint information of all performers on stage in various live performances such as concerts, plays, dance, ballet, kabuki, circus, comic storytelling, and skits. As a result, such various live performances are displayed in real time from a free viewpoint on the client terminal 14 .
  • the client terminal 14 applies the joint position information distributed from the bone distribution server 13 to the 3D character model to determine the posture of each bone of the skeletal structure forming the 3D character model.
  • An example of estimation processing will be described.
  • joint position information distributed from the bone distribution server 13 includes position data (x, y, z) of each joint, but does not include the amount of rotation of the joint.
  • position data x, y, z
  • joint position information lacking the position data of the joint position is distributed.
  • the delivered joint position information lacks joint position data. will do.
  • the joint positions marked with x in the joint position information shown in FIG. 4 indicate that position data is insufficient.
  • the client terminal 14 uses the joint positions of a person as an input, and in order to appropriately draw an arbitrary 3D character model, estimates the joint positions lacking in the joint position information and determines them as initial positions. , by using the FABRIK algorithm corresponding to the tree structure, it is possible to appropriately obtain the rotations of all the bones that constitute the 3D character model. Also, it can be applied when the joint positions of the 3D character model are smaller than the joint position information distributed from the bone distribution server 13 .
  • the joints existing in the 3D character model (for which correspondence relationships have been identified) among the distributed joint position information should be given as the initial position.
  • the initial position determination unit 23 determines the initial positions of the joint positions that are missing in the joint position information. By arranging with an interval equal to the length of , the missing joint positions are estimated. Alternatively, the initial position determination unit 23 determines the joint positions included in the joint position information immediately before the missing joint position information in the joint position information continuously distributed from the bone distribution server 13. , may be estimated as the missing joint positions.
  • the posture estimation update unit 25 inputs these joint positions into the FABRIK algorithm corresponding to the tree structure, repeats the forward reaching phase and the backward reaching phase, and matches the joint positions with the 3D character model. As a result, the posture estimation updating unit 25 estimates the posture of each bone from the joint positions, obtains, for example, the rotation of all bones, and applies it to the 3D character model.
  • the client terminal 14 can appropriately apply and draw any 3D character model.
  • the client terminal 14 can transfer the joint position information to the 3D character model.
  • Appropriate application to the model enables rendering.
  • the initial position determining unit 23 determines the distance between the joints in the joint position information. After adjusting the length of to match the length between the joints of the 3D character model, the initial position is determined. Since FABRIK is a lightweight algorithm, real-time processing can be performed in the client terminal 14 .
  • the rotation of terminal joint nodes and root nodes such as waist and chest which cannot be obtained by FABRIK, can be obtained from the positional relationship of other joint nodes and used as FABRIK input.
  • the rotation estimating unit 24 can determine the direction of the face from the positions of the left and right eyes, or the direction of the legs according to the direction of the waist.
  • the rotation estimator 24 can also determine the orientation of the waist from the positions of the chest, right leg, and left leg, and the orientation of the chest from the positions of the head, right shoulder, and left shoulder.
  • the posture of both hands can be obtained by calculation if two or more finger joints (or equivalent) can be obtained, whereas if two or more finger joints cannot be obtained, roll Other than the rotation (rotation of the bone axis of the arm), it is obtained from the positional relationship between the hand and the wrist.
  • the roll rotation of both hands can be determined by always keeping the palms of the right and left hands facing each other.
  • ball information can be acquired from data for sports, the palm closest to the position of the ball may be required to face the ball.
  • a machine learning network or the like that receives position information of joint nodes of other bodies as input may be used.
  • the scale of the 3D character model to be applied may be obtained from the maximum distance between the joint positions from the head to the feet and applied. As a result, for example, it can be applied to a three-headed 3D character model with different numbers of joints.
  • the scale of the 3D character model is adjusted so that the distance from the head to the feet of the 3D character model matches the maximum value of the distance from the head to the feet of the input joint positions.
  • the initial position determining unit 23 determines the joint position information distributed from the bone distribution server 13 as the initial position, and the posture estimation updating unit 25 uses the initial position as an input to execute the FABRIK Tree algorithm.
  • the client terminal 14 can estimate the posture of the whole body reflecting the input joint positions even for 3D character models with different numbers of joints and different body sizes.
  • FIG. 6 is a flowchart for explaining real-time free-viewpoint reproduction processing for reproducing, on the client terminal 14, content distributed in real-time by the distribution system 11.
  • FIG. 6 is a flowchart for explaining real-time free-viewpoint reproduction processing for reproducing, on the client terminal 14, content distributed in real-time by the distribution system 11.
  • step S11 the joint position information receiving unit 22 receives the joint position information distributed from the bone distribution server 13 and supplies it to the initial position determining unit 23.
  • step S ⁇ b>12 the initial position determination unit 23 selects a plurality of joints specified by the joint IDs of the joint position information supplied from the joint position information reception unit 22 in step S ⁇ b>11 and the joint IDs stored in the 3D character model storage unit 21 . A comparison is made with a plurality of joints that constitute the skeletal structure of the 3D character model. Then, if there is a missing joint in the joint position information, the initial position determination unit 23 estimates the joint position of the 3D character model that is missing in the joint position information.
  • the initial position determining unit 23 determines the initial positions of all the joints that make up the skeletal structure of the 3D character model, and sends a list of their joint IDs and position data (x, y, z) to the rotation estimating unit. 24 and the attitude estimation updating unit 25 .
  • step S13 the rotation estimating unit 24 determines terminal joint nodes (for example, the head, both hands, estimating the rotation of both feet). Thereby, the rotation estimating unit 24 obtains the roll rotation amount ⁇ for each terminal joint node, and supplies the joint ID and the roll rotation amount ⁇ to the posture estimation updating unit 25 .
  • the roll rotation amount ⁇ includes information indicating the direction of rotation (+ direction or ⁇ direction).
  • step S14 the rotation estimating unit 24 determines the joint node (for example, waist, chest, etc.) of the root node based on the joint ID and position data (x, y, z) supplied from the initial position determining unit 23 in step S12. ). Thereby, the rotation estimating unit 24 obtains the roll rotation amount ⁇ for each joint node of the root node, and supplies the joint ID and the roll rotation amount ⁇ to the posture estimation updating unit 25 .
  • the joint node for example, waist, chest, etc.
  • step S15 the posture estimation updating unit 25 adjusts the basic posture of the 3D character model according to the roll rotation amount ⁇ of the joint node of the root node supplied from the rotation estimating unit 24 in step S14, for example, the joint node pelvis of the pelvis. Rotate all bones of .
  • the posture estimation update unit 25 executes a forward reaching phase process (see FIG. 7 described later) in step S16, and a backward reaching phase and root group transforming process (see FIG. 8 described later) in step S17. .
  • step S18 the posture estimation update unit 25 repeats steps S16 and S17 to determine whether the difference in the position data (x, y, z) of the terminal joint node is equal to or less than a predetermined threshold. judge.
  • step S18 if the posture estimation updating unit 25 determines that the difference in the position data (x, y, z) of the terminal joint node is not equal to or less than the predetermined threshold, the process returns to step S16. Steps S16 and S17 are performed repeatedly.
  • step S18 determines in step S18 that the difference in the position data (x, y, z) of the terminal joint node is equal to or less than the predetermined threshold
  • the process proceeds to step S19.
  • the posture estimation updating unit 25 also performs the processing when the number of times steps S16 and S17 are repeated reaches the predetermined maximum number of times, that is, when steps S16 and S17 are repeated the maximum number of times. It is possible to proceed to step S19.
  • step S19 the posture estimation update unit 25 updates the angles of all bones that make up the 3D character model based on the position data (x, y, z) of all joint nodes finally obtained in step S17. calculate.
  • the posture estimation updating unit 25 estimates the posture of the whole body of the 3D character model, and as a result of the calculation, position data (x, y, z) and rotation data (x, y, z, w) to the rendering unit 26 .
  • step S20 the rendering unit 26 converts the position data (x, y, z) and rotation data (x, y, z, w) of all joint nodes supplied from the posture estimation updating unit 25 in step S19 into 3D It is reflected in the 3D character model read from the character model storage unit 21 .
  • the rendering unit 26 reproduces the posture according to the joint position information distributed from the bone distribution server 13 by using the 3D character model, and renders the 3D character model from a desired free viewpoint. Output the image.
  • FIG. 7 is a flow chart explaining the forward reach phase process executed in step S16 of FIG.
  • step S31 to step S36 The processing from step S31 to step S36 is repeated for the elements ni included in the list Tns.
  • step S31 the posture estimation update unit 25 determines whether the element ni is the root node, and if the element ni is the root node, the processing of steps S32 to S36 is skipped.
  • step S31 determines in step S31 that the element ni is not the root node
  • the process proceeds to step S32 to add the element ni to the forward arrival phase node group FNs.
  • step S33 the posture estimation updating unit 25 updates the element ni added in step S32 to the parent node of the element ni.
  • step S34 the posture estimation updating unit 25 determines whether the number of child nodes of the element ni is 2 or more, or whether the element ni is the root node.
  • step S34 when posture estimation updating unit 25 determines that the number of child nodes of element ni is not two or more and that element ni is not the root node, the process returns to step S32, and similar processes are performed thereafter. It is done repeatedly. On the other hand, in step S34, when the posture estimation updating unit 25 determines that the number of child nodes of the element ni is two or more, or determines that the element ni is the root node, the process proceeds to step S35. .
  • step S35 the posture estimation updating unit 25 adds the element ni to the subroot node group RNs.
  • step S36 the posture estimation updating unit 25 executes the forward reaching phase on the forward reaching phase node group FNs.
  • step S31 After such processing from step S31 to step S36 is repeatedly performed for the elements ni included in the list Tns, the processing proceeds to step S37.
  • step S37 the posture estimation updating unit 25 determines whether or not there is a node included in the subroot node group RNs, and if it determines that there is a node included in the subroot node group RNs, the process proceeds to step S38.
  • step S38 the posture estimation updating unit 25 sets the subroot node group RNs to the next list Tns. After that, the process returns to the beginning, and the same process is repeated for the next list Tns.
  • the posture estimation updating unit 25 determines in step S37 that there is no node included in the subroot node group RNs, the forward reaching phase processing is terminated.
  • FIG. 8 is a flow chart for explaining the backward reach phase and route group transformation processing executed in step S17 of FIG.
  • step S41 the posture estimation updating unit 25 sets the subroot node to node n.
  • step S42 the posture estimation updating unit 25 adds the node n to the backward arrival phase node group BNs.
  • step S43 the posture estimation updating unit 25 determines whether or not the number of child nodes of node n is 1. If the number of child nodes of node n is 1, the process proceeds to step S44.
  • step S44 the posture estimation update unit 25 updates node n to be a child node of node n. After that, the process returns to step S42, and the same process is repeated thereafter.
  • step S43 determines in step S43 that the number of child nodes of node n is not 1, the process proceeds to step S45.
  • step S45 the posture estimation updating unit 25 executes the backward arrival phase on the backward arrival phase node group BNs.
  • step S46 the posture estimation updating unit 25 determines whether or not the number of child nodes of node n is 2 or more, and the number of child nodes of node n is not 2 or more (that is, the number of child nodes of node n is number is less than 2), the process ends. On the other hand, when posture estimation updating unit 25 determines in step S46 that the number of child nodes of node n is two or more, the process proceeds to step S47.
  • step S47 the posture estimation updating unit 25 transforms the subroute group centered on the node n.
  • step S48 The processing of step S48 is repeatedly performed for element nci, which is a child node of node n.
  • the posture estimation update unit 25 sets the element nci as the next sub-root, and executes the processes after step S41 (that is, the backward reaching phase and root group transformation process for the element nci).
  • step S48 After such processing of step S48 is repeatedly performed for element nci of the child node of node n, the backward reaching phase and root group transformation processing are terminated.
  • the client terminal 14 can perform 3D reproduction of content distributed in real-time by the distribution system 11 even if there is insufficient joint position information distributed from the bone distribution server 13 .
  • a character model can be satisfactorily reproduced in a natural posture.
  • FIG. 9 is a block diagram showing a configuration example of one embodiment of a computer in which a program for executing the series of processes described above is installed.
  • the program can be recorded in advance in the hard disk 105 or ROM 103 as a recording medium built into the computer.
  • the program can be stored (recorded) in a removable recording medium 111 driven by the drive 109.
  • a removable recording medium 111 can be provided as so-called package software.
  • the removable recording medium 111 includes, for example, a flexible disk, CD-ROM (Compact Disc Read Only Memory), MO (Magneto Optical) disk, DVD (Digital Versatile Disc), magnetic disk, semiconductor memory, and the like.
  • the program can be installed in the computer from the removable recording medium 111 as described above, or can be downloaded to the computer via a communication network or broadcasting network and installed in the hard disk 105 incorporated therein. That is, for example, the program is transferred from the download site to the computer wirelessly via an artificial satellite for digital satellite broadcasting, or transferred to the computer by wire via a network such as a LAN (Local Area Network) or the Internet. be able to.
  • LAN Local Area Network
  • the computer incorporates a CPU (Central Processing Unit) 102 , and an input/output interface 110 is connected to the CPU 102 via a bus 101 .
  • a CPU Central Processing Unit
  • an input/output interface 110 is connected to the CPU 102 via a bus 101 .
  • the CPU 102 executes a program stored in a ROM (Read Only Memory) 103 according to a command input by the user through the input/output interface 110 by operating the input unit 107 or the like. Alternatively, the CPU 102 loads a program stored in the hard disk 105 into a RAM (Random Access Memory) 104 and executes it.
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the CPU 102 performs the processing according to the above-described flowchart or the processing performed by the configuration of the above-described block diagram. Then, the CPU 102 outputs the processing result from the output unit 106 via the input/output interface 110, transmits it from the communication unit 108, or records it in the hard disk 105 as necessary.
  • the input unit 107 is composed of a keyboard, mouse, microphone, and the like. Also, the output unit 106 is configured by an LCD (Liquid Crystal Display), a speaker, and the like.
  • LCD Liquid Crystal Display
  • processing performed by the computer according to the program does not necessarily have to be performed in chronological order according to the order described as the flowchart.
  • processing performed by a computer according to a program includes processing that is executed in parallel or individually (for example, parallel processing or processing by objects).
  • the program may be processed by one computer (processor), or may be processed by a plurality of computers in a distributed manner. Furthermore, the program may be transferred to a remote computer and executed.
  • a system means a set of multiple components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a single device housing a plurality of modules in one housing, are both systems. .
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configuration described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
  • part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) as long as the configuration and operation of the system as a whole are substantially the same. .
  • this technology can take a configuration of cloud computing in which a single function is shared and processed jointly by multiple devices via a network.
  • the above-described program can be executed on any device.
  • the device should have the necessary functions (functional blocks, etc.) and be able to obtain the necessary information.
  • each step described in the flowchart above can be executed by a single device, or can be shared and executed by a plurality of devices.
  • the plurality of processes included in the one step can be executed by one device or shared by a plurality of devices.
  • a plurality of processes included in one step can also be executed as processes of a plurality of steps.
  • the processing described as multiple steps can also be collectively executed as one step.
  • the program executed by the computer may be such that the processing of the steps described in the program is executed in chronological order according to the order described herein, or in parallel, or when the call is made. They may be executed individually at necessary timings such as occasions. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the order described above. Furthermore, the processing of the steps describing this program may be executed in parallel with the processing of other programs, or may be executed in combination with the processing of other programs.
  • the present technology can also take the following configuration.
  • An image processing apparatus comprising: a posture estimation unit that estimates a whole body posture of the character model using the determined character model joint information as an initial position.
  • the determining unit adjusts the joint-to-joint length in the joint information when the joint-to-joint length according to the plurality of joint information and the joint-to-joint length according to the character model joint information are different.
  • the image processing apparatus according to any one of (1) to (4) above, wherein the character model joint information is determined after matching the length between the joints in the character model joint information.
  • (6) The image processing device according to (5), wherein the character model is different from the subject in the body.
  • the image processing device according to any one of (1) to (6) above, further comprising: a rotation estimator that inputs information to the orientation estimator.
  • the rotation information indicates a rotation direction and an amount of rotation.
  • the rotation estimating unit estimates the posture of both hands of the subject based on the rotation information of the fingers of both hands of the subject.
  • the image processing device a plurality of pieces of joint information and a plurality of pieces of character model joint information based on a comparison result of a correspondence relationship between a plurality of pieces of joint information of a subject and a plurality of pieces of character model joint information of an arbitrary character model, which are estimated from a captured image; estimating the character model joint information having no corresponding relationship from a plurality of the joint information, and determining all the character model joint information; and estimating the whole body posture of the character model using the decided character model joint information as an initial position.
  • a plurality of pieces of joint information and a plurality of pieces of character model joint information based on a comparison result of a correspondence relationship between a plurality of pieces of joint information of a subject and a plurality of pieces of character model joint information of an arbitrary character model, which are estimated from a captured image; estimating the character model joint information having no corresponding relationship from a plurality of the joint information, and determining all the character model joint information;
  • a recording medium recording a program for executing image processing including estimating the whole body posture of the character model using the determined character model joint information as an initial position.
  • 11 Distribution system 12 Capture system, 13 Bone distribution server, 14 Client terminal, 21 3D character model storage unit, 22 Joint position information reception unit, 23 Initial position determination unit, 24 Rotation estimation unit, 25 Posture estimation update unit, 26 Rendering Department

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physical Education & Sports Medicine (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本開示は、リアルタイムに自由視点で表示可能なコンテンツの配信を良好に行うことができるようにする画像処理装置および画像処理方法、並びに記録媒体に関する。 決定部は、撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の関節情報と複数のキャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の関節情報で対応関係のないキャラクタモデル関節情報を推定し、全てのキャラクタモデル関節情報を決定する。姿勢推定部は、決定部により決定されたキャラクタモデル関節情報置を初期位置として、キャラクタモデルの全身の姿勢を推定する。本技術は、例えば、リアルタイム自由視点配信を行う配信システムに適用できる。

Description

画像処理装置および画像処理方法、並びに記録媒体
 本開示は、画像処理装置および画像処理方法、並びに記録媒体に関し、特に、リアルタイムに自由視点で表示可能なコンテンツの配信を良好に行うことができるようにした画像処理装置および画像処理方法、並びに記録媒体に関する。
 従来、画像からスポーツ選手の体の関節位置を推定し、その推定された関節位置を任意の3Dキャラクタモデルに適用することで、スポーツ競技をリアルタイムに自由な視点で表示可能とするようなコンテンツを配信する技術の開発が進められている。
 このように、画像から推定された関節位置を任意の3Dキャラクタモデルに適用するためには、関節位置のみでなく、全てのボーンの回転を適切に求めることが必要となる。しかしながら、ボーンの回転は3Dキャラクタモデルによって異なるため、画像から推定された関節位置を任意の3Dキャラクタモデルに適用して、自然な姿勢で描画することは困難であった。
 そこで、例えば、特許文献1に開示されているように、関節位置を入力とする木構造に拡張したFABRIK(Forward And Backward Reaching Inverse Kinematics)を適用し、各ボーンの回転を適切に求める技術が提案されている。
国際公開第2020/070928号
 ところで、上述の特許文献1で提案されている技術において、3Dキャラクタモデルには存在する関節位置が、入力された関節位置にはない場合には、やはり自然な姿勢で描画することに困難が生じることがある。そのため、このような場合、配信されるコンテンツをリアルタイムに自由視点で表示しても不自然な表示となってしまい、そのようなコンテンツの配信を良好に行うことができないと想定される。
 本開示は、このような状況に鑑みてなされたものであり、リアルタイムに自由視点で表示可能なコンテンツの配信を良好に行うことができるようにするものである。
 本開示の一側面の画像処理装置は、撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定する決定部と、決定された前記キャラクタモデル関節情報を初期位置として、キャラクタモデルの全身の姿勢を推定する姿勢推定部とを備える。
 本開示の一側面の画像処理方法または記録媒体は、撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定することと、決定された前記キャラクタモデル関節情報を初期位置として、キャラクタモデルの全身の姿勢を推定することとを含む。
 本開示の一側面においては、撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の関節情報と複数のキャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の関節情報で対応関係のないキャラクタモデル関節情報が推定され、全てのキャラクタモデル関節情報が決定され、決定されたキャラクタモデル関節情報を初期位置として、キャラクタモデルの全身の姿勢が推定される。
本技術を適用した配信システムの一実施の形態の構成例を示すブロック図である。 クライアント端末の構成例を示すブロック図である。 3Dキャラクタモデルに適用される骨格構造の一例を示す図である。 クライアント端末における処理の一例を説明する図である。 関節数の異なる3頭身の3Dキャラクタモデルに対する適用例を説明する図である。 リアルタイム自由視点再生処理について説明するフローチャートである。 前方到達フェーズ処理を説明するフローチャートである。 後方到達フェーズおよびルート群変形処理を説明するフローチャートである。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
 以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
 <配信システムの構成例>
 図1は、本技術を適用した配信システムの一実施の形態の構成例を示すブロック図である。
 図1に示す配信システム11は、キャプチャシステム12、ボーン配信サーバ13、および複数のクライアント端末14(図1の例では、2つのクライアント端末14-1および14-2)が、ネットワークを介して接続されて構成される。ここでは、スポーツ競技をリアルタイムに自由な視点で表示可能なコンテンツの配信(以下、リアルタイム自由視点配信)に配信システム11を利用する利用例について説明する。なお、配信システム11は、スポーツに限らず様々なコンテンツのリアルタイム自由視点配信に利用することができる。
 キャプチャシステム12は、複数台の撮像装置を有しており、それらの撮像装置によって様々な方向からスポーツ競技が撮像されることによって複数の動画像を取得する。そして、キャプチャシステム12は、複数の動画像を解析して、スポーツ選手の関節位置を推定することにより取得される関節位置情報を、ネットワークを介してボーン配信サーバ13に送信する。
 例えば、関節位置情報は、スポーツ選手などの人物を特定する人物ID(Identification)、キャプチャシステム12により推定可能な関節を特定する関節ID、関節IDごとの関節の位置を示す位置データ(x,y,z)が含まれるデータの一覧からなる。このため、関節位置情報は、例えば、動画像の送信と比較して少ないデータ量の送信となる。
 ボーン配信サーバ13は、キャプチャシステム12から送信されてくる関節位置情報を受信し、ネットワークを介して、複数のクライアント端末14にリアルタイムに配信する。
 クライアント端末14は、ボーン配信サーバ13から配信されてくる関節位置情報を任意の3Dキャラクタモデルに適用することで、実際のスポーツ選手の姿勢を3Dキャラクタモデルによって再現する。そして、クライアント端末14は、例えば、ユーザの操作に応じた自由な視点からスポーツ競技を見ているように、スポーツ選手の姿勢を再現した3Dキャラクタモデルをレンダリングする。従って、図示するように、クライアント端末14-1のユーザとクライアント端末14-2のユーザとは、それぞれ異なる視点でスポーツ競技を観戦することができる。クライアント端末14は、例えば、クラウド上に保存されている3Dキャラクタモデルをダウンロードして利用してもよいし、ユーザのローカル環境にある3Dキャラクタモデルを利用してもよい。また、クライアント端末14は、3Dキャラクタモデルに代えて、2次元的なキャラクタモデルを利用してもよい。
 このように配信システム11は、スポーツ選手の関節位置情報を配信し、クライアント端末14において関節位置情報を任意の3Dキャラクタモデルに適用するような構成でリアルタイム自由視点配信を実現することができ、ユーザは、スポーツ選手の姿勢を再現する3Dキャラクタモデルを自由に切り替えて観戦することができる。
 ところで、キャプチャシステム12において複数の方向からスポーツ競技を撮像しても、例えば、スポーツ選手の身体に腕や足などが隠れてしまう場合、全ての関節位置を推定することができないことがある。即ち、画像に写されているスポーツ選手から推定された複数の関節と、3Dキャラクタモデルの骨格構造を構成する複数の関節とが不一致となる。この場合、推定することができなかった関節位置が不足している関節位置情報がクライアント端末14に配信されてしまい、最も多くの関節位置が推定された関節位置情報を3Dキャラクタモデルに適用してレンダリングを行っても、実際のスポーツ選手の姿勢を3Dキャラクタモデルによって再現することが困難になると想定される。
 そこで、配信システム11では、関節位置が不足している関節位置情報が配信されるような場合であっても、クライアント端末14が、実際のスポーツ選手の姿勢を3Dキャラクタモデルによって再現することができるように構成される。なお、配信システム11では、撮像画像から推定される、被写体の関節数と関節位置とを示す関節情報が配信されてもよい。
 <クライアント端末の構成例>
 図2は、クライアント端末14の構成例を示すブロック図である。
 図2に示すように、クライアント端末14は、3Dキャラクタモデル記憶部21、関節位置情報受信部22、初期位置決定部23、回転推定部24、姿勢推定更新部25、およびレンダリング部26を備えて構成される。
 3Dキャラクタモデル記憶部21には、任意の3Dキャラクタモデルが記憶されている。例えば、3Dキャラクタモデルは、それぞれ3Dキャラクタモデルごとに三次元的な骨格構造が規定されている。図3には、3Dキャラクタモデル記憶部21に記憶されている3Dキャラクタモデルに適用される骨格構造の一例が示されている。また、図示するような形状の骨格構造を、3Dキャラクタモデルの基本姿勢とする。このような骨格構造に関節位置情報を適用することで、スポーツ選手の体形に一致するように3Dキャラクタモデルの体形が調整される。
 ここで、骨格構造は、複数の関節ノードがボーンで連結された構成となっており、図3に示す例では、骨盤の関節ノードpelvisをルートノードとしたツリー構造となっている。なお、骨盤の関節ノードpelvisの他、脊椎の関節ノードspine_1乃至spine_3をルートノードとして扱ってもよい。また、ルートノード以外の関節ノード(頭部の関節ノードhead、首の関節ノードneck_1、右鎖骨の関節ノードclavicle_r、右上腕の関節ノードupperarm_r、右前腕の関節ノードlowerarm_r、右手の関節ノードhand_r、左鎖骨の関節ノードclavicle_l、左上腕の関節ノードupperarm_l、左前腕の関節ノードlowerarm_l、左手の関節ノードhand_l、右大腿の関節ノードthigh_r、右膨ら脛の関節ノードcalf_r、右足の関節ノードfoot_r、右足の親指の付け根の関節ノードball_r、左大腿の関節ノードthigh_r、左膨ら脛の関節ノードcalf_r、左足の関節ノードfoot_r、左足の親指の付け根の関節ノードball_r)を末端の関節ノードとも称する。
 関節位置情報受信部22は、ボーン配信サーバ13から配信されてくる関節位置情報を受信して、初期位置決定部23に供給する。例えば、関節位置情報受信部22は、スポーツ競技に参加している全てのスポーツ選手の人物IDごとに、それぞれの人物IDに対応付けた関節IDおよび位置データ(x,y,z)の一覧を初期位置決定部23に供給する。以下では、クライアント端末14で実行される各処理は、人物IDごとに行われるものとする。
 初期位置決定部23は、関節位置情報受信部22から供給された関節IDおよび位置データ(x,y,z)を用いて、3Dキャラクタモデルの骨格構造を構成する全ての関節の初期位置を決定する。このとき、初期位置決定部23は、関節位置情報で関節が不足している場合には、関節位置情報では不足していた3Dキャラクタモデルの関節の位置を推定することができる。
 例えば、初期位置決定部23は、関節位置情報受信部22から供給された関節位置情報に含まれている関節IDにより特定される複数の関節と、3Dキャラクタモデル記憶部21に記憶されている3Dキャラクタモデルの骨格構造を構成する複数の関節とを比較し、それらの関節どうしの対応関係を特定する。そして、初期位置決定部23は、3Dキャラクタモデルの骨格構造を構成する複数の関節のうち、関節位置情報の関節IDにより特定される複数の関節との間で対応関係を特定することができた関節については、関節位置情報の位置データ(x,y,z)を、その特定できた関節の初期位置として用いることを決定する。
 一方、初期位置決定部23は、3Dキャラクタモデルの骨格構造を構成する複数の関節のうち、関節位置情報の関節IDにより特定される複数の関節との間で対応関係を特定することができない関節がある場合、関節位置情報で関節が不足していると判断する。従って、この場合、初期位置決定部23は、関節位置情報で不足していた3Dキャラクタモデルの関節の位置を推定し、その推定された位置の位置データ(x,y,z)を、関節位置情報で不足していた関節の初期位置として用いることを決定する。
 このように、初期位置決定部23は、3Dキャラクタモデルの骨格構造を構成する全ての関節の初期位置を決定することができ、それらの関節の関節IDおよび位置データ(x,y,z)の一覧を、回転推定部24および姿勢推定更新部25に供給する。
 回転推定部24は、初期位置決定部23から供給された関節IDおよび位置データ(x,y,z)に基づいて、複数に枝分かれしている末端の関節ノード(例えば、頭や、両手、両足など)の回転を推定し、関節IDごとのロール回転量θを求める。さらに、回転推定部24は、末端の関節ノードの枝分かれの元となるルートノード(例えば、腰や胸など)の回転を推定し、関節IDごとのロール回転量θを求める。これにより、回転推定部24は、3Dキャラクタモデルの全ての関節ノードのロール回転量θを求めて、それらの関節IDおよびロール回転量θを姿勢推定更新部25に供給する。
 姿勢推定更新部25は、初期位置決定部23から供給された関節IDおよび位置データ(x,y,z)と、回転推定部24から供給された関節IDおよびロール回転量θを入力としてFABRIK Treeアルゴリズムを実行することにより、3Dキャラクタモデルの全身の姿勢を推定する。なお、FABRIK Treeアルゴリズムについては、上述した特許文献1において詳細に開示されており、特許文献1の内容も本実施の形態で取り入れて、姿勢推定更新部25はFABRIK Treeアルゴリズムを実行することができる。そして、姿勢推定更新部25は、3Dキャラクタモデルの全身の姿勢を推定した結果として求められる関節IDごとの位置データ(x,y,z)および回転データ(x,y,z,w)を、レンダリング部26に供給する。
 レンダリング部26は、3Dキャラクタモデル記憶部21から3Dキャラクタモデルを読み出し、その3Dキャラクタモデルを構成する骨格構造の各関節ノードに、姿勢推定更新部25から供給される位置データ(x,y,z)および回転データ(x,y,z,w)を適用する。これにより、レンダリング部26は、実際のスポーツ選手の姿勢を3Dキャラクタモデルによって再現し、所望の自由な視点から3Dキャラクタモデルをレンダリングしてスポーツ競技の画像を描画し、図示しない表示デバイスに出力する。また、レンダリング部26は、この位置データ(x,y,z)および回転データ(x,y,z,w)を保存しておくことで、スポーツ競技を見返す際にはFABRIK Treeアルゴリズムを実施することなく同じ骨格をもつ3Dキャラクタモデルに姿勢を適用し、レンダリングし直すことができる。
 このように構成されるクライアント端末14は、ボーン配信サーバ13から配信される関節位置情報に不足の関節があっても、不足している関節の位置を推定して初期位置を決定することで、3Dキャラクタモデルを自然な姿勢で描画することができる。
 従って、配信システム11では、コンテンツをリアルタイムに自由視点で表示しても不自然な表示となることを回避することができ、リアルタイムに自由視点で表示可能なコンテンツの配信を良好に行うことができる。また、配信システム11は、スポーツ観戦以外にも適用可能である。例えば、配信システム11は、コンサートや演劇、ダンス、バレエ、歌舞伎、サーカス、落語、コントなどの各種のライブパフォーマンスで、ステージ上の全ての演者の関節情報を配信してもよい。これにより、クライアント端末14では、そのような各種のライブパフォーマンスがリアルタイムに自由視点で表示される。
 ここで、図4を参照して、クライアント端末14が、ボーン配信サーバ13から配信されてくる関節位置情報を3Dキャラクタモデルに適用して、3Dキャラクタモデルを構成する骨格構造の各ボーンの姿勢を推定する処理の一例について説明する。
 例えば、ボーン配信サーバ13から配信されてくる関節位置情報には各関節の位置データ(x,y,z)が含まれているものの、関節の回転量は含まれていない。また、上述したように、キャプチャシステム12において関節位置を推定することができなかった場合には、その関節位置の位置データが不足した関節位置情報が配信される。または、キャプチャシステム12において関節位置を推定することができたとしても、3Dキャラクタモデルを構成する骨格構造の関節が多い場合にも、配信されてくる関節位置情報では、関節位置の位置データが不足することになる。例えば、図4に示す関節位置情報において×印が付けられている関節位置については、位置データが不足していることを表している。
 そして、このような位置データが不足した関節位置情報をそのまま3Dキャラクタモデルに適用しても、その不足している位置データの関節については不自然な3Dキャラクタモデルとなってしまう。そこで、クライアント端末14は、人物の関節位置を入力とし、任意の3Dキャラクタモデルに適用して適切に描画するために、関節位置情報で不足していた関節位置を推定して初期位置として決定し、ツリー構造に対応したFABRIKアルゴリズムを用いることで、3Dキャラクタモデルを構成する全てのボーンの回転を適切に求めることができる。また、3Dキャラクタモデルの関節位置が、ボーン配信サーバ13から配信される関節位置情報より少ない場合にも適用することができる。つまり、ボーン配信サーバ13から配信される関節位置情報が3Dキャラクタモデルの関節位置よりも多い場合は、配信された関節位置情報のうち、3Dキャラクタモデルに存在する(対応関係が特定された)関節のみを、初期位置として与えればよい。
 初期位置決定部23は、関節位置情報で不足していた関節位置の初期位置として、例えば、腰から胸までの関節ノードであれば、腰から胸を結んだ直線上で、基本姿勢の各ボーンの長さ分の間隔を空けて配置することで、その不足分の関節位置を推定する。または、初期位置決定部23は、ボーン配信サーバ13から連続的に配信されてくる関節位置情報の、関節位置が不足していた関節位置情報の直前の関節位置情報に含まれている関節位置を、その不足分の関節位置として推定してもよい。
 そして、姿勢推定更新部25は、これらの関節位置をツリー構造に対応したFABRIKアルゴリズムに入力し、前方到達フェーズおよび後方到達フェーズを繰り返し行って、関節位置を3Dキャラクタモデルに合わせ込む。これにより、姿勢推定更新部25は、関節位置から各ボーンの姿勢を推定し、例えば、全てのボーンの回転を求め、3Dキャラクタモデルに適用する。
 これにより、クライアント端末14は、ボーン配信サーバ13から配信されてくる関節位置情報に不足の関節位置があっても、任意の3Dキャラクタモデルに適切に適用して描画すること可能となる。また、クライアント端末14は、ボーン配信サーバ13から配信されてくる関節位置情報が3Dキャラクタモデルの関節と一致しない場合や、等身や体格が異なる3Dキャラクタモデルであっても、関節位置情報を3Dキャラクタモデルに適切に適用して描画することが可能となる。例えば、クライアント端末14では、関節位置情報に従った関節間の長さと、3Dキャラクタモデルの関節位置に従った関節間の長さとが異なる場合、初期位置決定部23は、関節位置情報における関節間の長さを調整して3Dキャラクタモデルの関節間の長さに合わせた後に、初期位置を決定する。なお、FABRIKは軽量なアルゴリズムであることより、クライアント端末14においてリアルタイム処理を行うことが可能である。
 また、クライアント端末14では、FABRIKでは求められない、末端の関節ノードや、腰や胸などのルートノードの回転を、他の関節ノードの位置関係から求め、FABRIKの入力として用いることができる。
 例えば、回転推定部24は、顔の向きを左右の目の位置から求めることや、足の向きを腰の向きに合わせて求めることができる。また、回転推定部24は、腰の向きを、胸、右足、および左足の位置で求めることや、胸の向きを、頭、右肩、および左肩の位置で求めることができる。
 また、両手の姿勢は、2本以上の指の関節(またはそれに相当するもの)が取得できる場合には計算で求められるのに対し、2本以上の指の関節が取得できない場合には、ロール回転(腕のボーン軸の回転)以外は手と手首の位置関係から求められる。例えば、両手のロール回転については、常に右手および左手の手の平が互いに向かい合うようにすることで求めることができる。また、スポーツ向けのデータでボールの情報が取得できる場合には、ボールの位置に最も近い手の平がボールの方を向くように求めてもよい。なお、他の体の関節ノードの位置情報を入力とする機械学習ネットワークなどを利用してもよい。
 また、クライアント端末14では、適用する3Dキャラクタモデルのスケールを、頭から足までの関節位置の距離の最大値から求めて適用してもよい。これにより、例えば、関節数の異なる3頭身の3Dキャラクタモデルに適用することができる。
 図5を参照して、関節数の異なる3頭身の3Dキャラクタモデルに対する適用例について説明する。
 例えば、クライアント端末14では、3Dキャラクタモデルの頭から足の距離が、入力関節位置の頭から足の距離の最大値に一致するように、3Dキャラクタモデルのスケールが調整される。そして、初期位置決定部23は、ボーン配信サーバ13から配信されてくる関節位置情報を初期位置として決定し、姿勢推定更新部25は、その初期位置を入力としてFABRIK Treeアルゴリズムを実行する。これにより、クライアント端末14では、関節数や等身の異なる3Dキャラクタモデルであっても、入力の関節位置が反映された全身の姿勢を推定することができる。
 <リアルタイム自由視点再生処理の処理例>
 図6は、配信システム11によってリアルタイム自由視点配信されるコンテンツをクライアント端末14において再生するリアルタイム自由視点再生処理について説明するフローチャートである。
 ステップS11において、関節位置情報受信部22は、ボーン配信サーバ13から配信されてくる関節位置情報を受信し、初期位置決定部23に供給する。
 ステップS12において、初期位置決定部23は、ステップS11で関節位置情報受信部22から供給された関節位置情報の関節IDにより特定される複数の関節と、3Dキャラクタモデル記憶部21に記憶されている3Dキャラクタモデルの骨格構造を構成する複数の関節とを比較する。そして、初期位置決定部23は、関節位置情報に不足の関節がある場合には、関節位置情報で不足していた3Dキャラクタモデルの関節の位置を推定する。これにより、初期位置決定部23は、3Dキャラクタモデルの骨格構造を構成する全ての関節の初期位置を決定し、それらの関節IDおよび位置データ(x,y,z)の一覧を、回転推定部24および姿勢推定更新部25に供給する。
 ステップS13において、回転推定部24は、ステップS12で初期位置決定部23から供給された関節IDおよび位置データ(x,y,z)に基づいて、末端の関節ノード(例えば、頭や、両手、両足など)の回転を推定する。これにより、回転推定部24は、末端の関節ノードごとのロール回転量θを求めて、それらの関節IDおよびロール回転量θを姿勢推定更新部25に供給する。なお、ロール回転量θには回転方向(+方向または-方向)を示す情報が含まれている。
 ステップS14において、回転推定部24は、ステップS12で初期位置決定部23から供給された関節IDおよび位置データ(x,y,z)に基づいて、ルートノードの関節ノード(例えば、腰や胸など)の回転を推定する。これにより、回転推定部24は、ルートノードの関節ノードごとのロール回転量θを求めて、それらの関節IDおよびロール回転量θを姿勢推定更新部25に供給する。
 ステップS15において、姿勢推定更新部25は、ステップS14で回転推定部24から供給されたルートノードの関節ノード、例えば、骨盤の関節ノードpelvisのロール回転量θに合わせて、3Dキャラクタモデルの基本姿勢の全てのボーンを回転する。
 その後、姿勢推定更新部25は、ステップS16において、前方到達フェーズ処理(後述する図7参照)を実行し、ステップS17において、後方到達フェーズおよびルート群変形処理(後述する図8参照)を実行する。
 ステップS18において、姿勢推定更新部25は、ステップS16およびS17を繰り返して行うことによって、末端の関節ノードの位置データ(x,y,z)の差が、所定の閾値以下になったか否かを判定する。
 ステップS18において、姿勢推定更新部25が、末端の関節ノードの位置データ(x,y,z)の差が、所定の閾値以下になっていないと判定した場合、処理はステップS16に戻って、ステップS16およびS17が繰り返して行われる。
 一方、ステップS18において、姿勢推定更新部25が、末端の関節ノードの位置データ(x,y,z)の差が、所定の閾値以下になったと判定した場合、処理はステップS19に進む。なお、姿勢推定更新部25は、ステップS16およびS17を繰り返した回数が、既定の最大回数となった場合にも、即ち、ステップS16およびS17を最大回数だけ繰り返して行った場合にも、処理をステップS19に進めることができる。
 ステップS19において、姿勢推定更新部25は、最終的にステップS17で求められた全ての関節ノードの位置データ(x,y,z)に基づいて、3Dキャラクタモデルを構成する全てのボーンの角度を計算する。これにより、姿勢推定更新部25は、3Dキャラクタモデルの全身の姿勢を推定し、その計算結果として、全ての関節ノードの位置データ(x,y,z)および回転データ(x,y,z,w)をレンダリング部26に供給する。
 ステップS20において、レンダリング部26は、ステップS19で姿勢推定更新部25から供給された全ての関節ノードの位置データ(x,y,z)および回転データ(x,y,z,w)を、3Dキャラクタモデル記憶部21から読み出した3Dキャラクタモデルに反映する。これにより、レンダリング部26は、ボーン配信サーバ13から配信されてくる関節位置情報に従った姿勢を3Dキャラクタモデルによって再現し、所望の自由な視点から3Dキャラクタモデルをレンダリングして得られるスポーツ競技の画像を出力する。
 図7は、図6のステップS16において実行される前方到達フェーズ処理を説明するフローチャートである。
 ステップS31からステップS36までの処理は、リストTnsに含まれる要素niで繰り返して行われる。
 ステップS31において、姿勢推定更新部25は、要素niはルートノードであるか否かを判定し、要素niはルートノードである場合にはステップS32乃至S36の処理はスキップされる。
 ステップS31において、姿勢推定更新部25が、要素niはルートノードでないと判定した場合、処理はステップS32に進み、前方到達フェーズノード群FNsに要素niを追加する。
 ステップS33において、姿勢推定更新部25は、ステップS32で追加した要素niを、要素niの親ノードに更新する。
 ステップS34において、姿勢推定更新部25は、要素niの子ノードの数が2以上であるか、または、要素niがルートノードであるか否かを判定する。
 ステップS34において、姿勢推定更新部25が、要素niの子ノードの数が2以上ではなく、かつ、要素niがルートノードでないと判定した場合、処理はステップS32に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS34において、姿勢推定更新部25が、要素niの子ノードの数が2以上であると判定した場合、または、要素niがルートノードであると判定した場合、処理はステップS35に進む。
 ステップS35において、姿勢推定更新部25は、サブルートノード群RNsに要素niを追加する。
 ステップS36において、姿勢推定更新部25は、前方到達フェーズノード群FNsに対して前方到達フェーズを実行する。
 このようなステップS31からステップS36までの処理が、リストTnsに含まれる要素niで繰り返して行われた後、処理はステップS37に進む。
 ステップS37において、姿勢推定更新部25は、サブルートノード群RNsに含まれるノードがあるか否かを判定し、サブルートノード群RNsに含まれるノードがあると判定した場合、処理はステップS38に進む。
 ステップS38において、姿勢推定更新部25は、サブルートノード群RNsを次のリストTnsとする。その後、処理は最初に戻って、次のリストTnsに対して同様の処理が繰り返して行われる。
 一方、ステップS37において、姿勢推定更新部25が、サブルートノード群RNsに含まれるノードがないと判定した場合、前方到達フェーズ処理は終了される。
 図8は、図6のステップS17において実行される後方到達フェーズおよびルート群変形処理を説明するフローチャートである。
 ステップS41において、姿勢推定更新部25は、サブルートノードをノードnに設定する。
 ステップS42において、姿勢推定更新部25は、後方到達フェーズノード群BNsにノードnを追加する。
 ステップS43において、姿勢推定更新部25は、ノードnの子ノードの数が1であるか否かを判定し、ノードnの子ノードの数が1である場合、処理はステップS44に進む。
 ステップS44において、姿勢推定更新部25は、ノードnを、ノードnの子ノードに更新する。その後、処理はステップS42に戻り、以下、同様の処理が繰り返して行われる。
 一方、ステップS43において、姿勢推定更新部25が、ノードnの子ノードの数が1でないと判定した場合、処理はステップS45に進む。
 ステップS45において、姿勢推定更新部25は、後方到達フェーズノード群BNsに対して後方到達フェーズを実行する。
 ステップS46において、姿勢推定更新部25は、ノードnの子ノードの数が2以上であるか否かを判定し、ノードnの子ノードの数が2以上でない(即ち、ノードnの子ノードの数が2未満である)と判定した場合、処理は終了される。一方、ステップS46において、姿勢推定更新部25が、ノードnの子ノードの数が2以上であると判定した場合、処理はステップS47に進む。
 ステップS47において、姿勢推定更新部25は、ノードnを中心とするサブルート群を変形する。
 ステップS48の処理は、ノードnの子ノードの要素nciで繰り返して行われる。ステップS48において、姿勢推定更新部25は、要素nciを次のサブルートとして、ステップS41以降の処理(即ち、要素nciを対象とした後方到達フェーズおよびルート群変形処理)を実行する。
 このようなステップS48の処理が、ノードnの子ノードの要素nciで繰り返して行われた後、後方到達フェーズおよびルート群変形処理は終了される。
 以上のようなリアルタイム自由視点再生処理によって、クライアント端末14は、配信システム11によってリアルタイム自由視点配信されるコンテンツについて、ボーン配信サーバ13から配信される関節位置情報に不足の関節があっても、3Dキャラクタモデルを自然な姿勢で良好に再生することができる。
 なお、このような図7および図8を参照して説明した処理については、上述した特許文献1において詳細に開示されている。
 <コンピュータの構成例>
 次に、上述した一連の処理(画像処理方法)は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
 図9は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
 プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
 あるいはまた、プログラムは、ドライブ109によって駆動されるリムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウェアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
 なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
 コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
 CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
 これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
 なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
 ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
 さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 <構成の組み合わせ例>
 なお、本技術は以下のような構成も取ることができる。
(1)
 撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定する決定部と、
 決定された前記キャラクタモデル関節情報を初期位置として、前記キャラクタモデルの全身の姿勢を推定する姿勢推定部と
 を備える画像処理装置。
(2)
 前記決定部は、複数の前記関節情報が複数の前記キャラクタモデル関節情報よりも不足している場合、不足分の前記キャラクタモデル関節情報を推定する
 上記(1)に記載の画像処理装置。
(3)
 前記決定部は、複数の前記関節情報が複数の前記キャラクタモデル関節情報よりも多い場合、複数の前記関節情報のうち、前記キャラクタモデル関節情報と対応関係のある前記関節情報を、全ての前記キャラクタモデル関節情報として決定する
 上記(1)または(2)に記載の画像処理装置。
(4)
 前記関節情報は関節数と関節位置とを示す
 上記(1)から(3)までのいずれかに記載の画像処理装置。
(5)
 前記決定部は、複数の前記関節情報に従った関節間の長さと、複数の前記キャラクタモデル関節情報に従った関節間の長さとが異なる場合、前記関節情報における関節間の長さを調整して前記キャラクタモデル関節情報における関節間の長さに合わせた後に、前記キャラクタモデル関節情報を決定する
 上記(1)から(4)までのいずれかに記載の画像処理装置。
(6)
 前記キャラクタモデルの等身と、前記被写体の等身とが異なっている
 上記(5)に記載の画像処理装置。
(7)
 前記キャラクタモデルの骨格構造を構成する末端の関節ノード、および、末端の関節ノードの枝分かれの元となるルートノードの回転情報を、他の関節ノードの位置関係から推定し、それぞれの関節ノードの回転情報を前記姿勢推定部に入力する回転推定部
 をさらに備える上記(1)から(6)までのいずれかに記載の画像処理装置。
(8)
 前記回転情報は、回転方向と回転量を示す
 上記(7)に記載の画像処理装置。
(9)
 前記回転推定部は、前記被写体の両手の指の前記回転情報に基づいて、前記被写体の両手の姿勢を推定する
 上記(7)に記載の画像処理装置。
(10)
 前記回転推定部は、スポーツ向けのデータでボールの情報が取得できる場合には、前記ボールの位置に基づいて前記被写体の両手の姿勢を推定する
 上記(7)に記載の画像処理装置。
(11)
 前記キャラクタモデルは、キャラクタの三次元的な骨格構造により構成さる3Dキャラクタモデルである
 上記(1)から(10)までのいずれかに記載の画像処理装置。
(12)
 前記姿勢推定部により推定された姿勢を、前記3Dキャラクタモデルの骨格構造に適用し、所望の自由な視点から前記3Dキャラクタモデルをレンダリングして出力するレンダリング部
 をさらに備える上記(11)に記載の画像処理装置。
(13)
 画像処理装置が、
 撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定することと、
 決定された前記キャラクタモデル関節情報を初期位置として、前記キャラクタモデルの全身の姿勢を推定することと
 を含む画像処理方法。
(14)
 画像処理装置のコンピュータに、
 撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定することと、
 決定された前記キャラクタモデル関節情報を初期位置として、前記キャラクタモデルの全身の姿勢を推定することと
 を含む画像処理を実行させるためのプログラムが記録された記録媒体。
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 11 配信システム, 12 キャプチャシステム, 13 ボーン配信サーバ, 14 クライアント端末, 21 3Dキャラクタモデル記憶部, 22 関節位置情報受信部, 23 初期位置決定部, 24 回転推定部, 25 姿勢推定更新部, 26 レンダリング部

Claims (14)

  1.  撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定する決定部と、
     決定された前記キャラクタモデル関節情報を初期位置として、前記キャラクタモデルの全身の姿勢を推定する姿勢推定部と
     を備える画像処理装置。
  2.  前記決定部は、複数の前記関節情報が複数の前記キャラクタモデル関節情報よりも不足している場合、不足分の前記キャラクタモデル関節情報を推定する
     請求項1に記載の画像処理装置。
  3.  前記決定部は、複数の前記関節情報が複数の前記キャラクタモデル関節情報よりも多い場合、複数の前記関節情報のうち、前記キャラクタモデル関節情報と対応関係のある前記関節情報を、全ての前記キャラクタモデル関節情報として決定する
     請求項1に記載の画像処理装置。
  4.  前記関節情報は関節数と関節位置とを示す
     請求項1に記載の画像処理装置。
  5.  前記決定部は、複数の前記関節情報に従った関節間の長さと、複数の前記キャラクタモデル関節情報に従った関節間の長さとが異なる場合、前記関節情報における関節間の長さを調整して前記キャラクタモデル関節情報における関節間の長さに合わせた後に、前記キャラクタモデル関節情報を決定する
     請求項1に記載の画像処理装置。
  6.  前記キャラクタモデルの等身と、前記被写体の等身とが異なっている
     請求項5に記載の画像処理装置。
  7.  前記キャラクタモデルの骨格構造を構成する末端の関節ノード、および、末端の関節ノードの枝分かれの元となるルートノードの回転情報を、他の関節ノードの位置関係から推定し、それぞれの関節ノードの回転情報を前記姿勢推定部に入力する回転推定部
     をさらに備える請求項1に記載の画像処理装置。
  8.  前記回転情報は、回転方向と回転量を示す
     請求項7に記載の画像処理装置。
  9.  前記回転推定部は、前記被写体の両手の指の前記回転情報に基づいて、前記被写体の両手の姿勢を推定する
     請求項7に記載の画像処理装置。
  10.  前記回転推定部は、スポーツ向けのデータでボールの情報が取得できる場合には、前記ボールの位置に基づいて前記被写体の両手の姿勢を推定する
     請求項7に記載の画像処理装置。
  11.  前記キャラクタモデルは、キャラクタの三次元的な骨格構造により構成さる3Dキャラクタモデルである
     請求項1に記載の画像処理装置。
  12.  前記姿勢推定部により推定された姿勢を、前記3Dキャラクタモデルの骨格構造に適用し、所望の自由な視点から前記3Dキャラクタモデルをレンダリングして出力するレンダリング部
     をさらに備える請求項11に記載の画像処理装置。
  13.  画像処理装置が、
     撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定することと、
     決定された前記キャラクタモデル関節情報を初期位置として、前記キャラクタモデルの全身の姿勢を推定することと
     を含む画像処理方法。
  14.  画像処理装置のコンピュータに、
     撮像画像から推定される、被写体の複数の関節情報と任意のキャラクタモデルの複数のキャラクタモデル関節情報との対応関係の比較結果に基づいて、複数の前記関節情報と複数の前記キャラクタモデル関節情報との少なくとも一部が不一致である場合、複数の前記関節情報で対応関係のない前記キャラクタモデル関節情報を推定し、全ての前記キャラクタモデル関節情報を決定することと、
     決定された前記キャラクタモデル関節情報を初期位置として、前記キャラクタモデルの全身の姿勢を推定することと
     を含む画像処理を実行させるためのプログラムが記録された記録媒体。
PCT/JP2022/002510 2021-03-31 2022-01-25 画像処理装置および画像処理方法、並びに記録媒体 WO2022209220A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/551,204 US20240169638A1 (en) 2021-03-31 2022-01-25 Image processing apparatus, image processing method, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021059301 2021-03-31
JP2021-059301 2021-03-31

Publications (1)

Publication Number Publication Date
WO2022209220A1 true WO2022209220A1 (ja) 2022-10-06

Family

ID=83458681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/002510 WO2022209220A1 (ja) 2021-03-31 2022-01-25 画像処理装置および画像処理方法、並びに記録媒体

Country Status (2)

Country Link
US (1) US20240169638A1 (ja)
WO (1) WO2022209220A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297336A (ja) * 2000-04-11 2001-10-26 Sony Corp 3次元キャラクタの特徴抽出装置および特徴抽出方法
JP2016167268A (ja) * 2015-03-06 2016-09-15 国立大学法人 筑波大学 ジェスチャモデリング装置、ジェスチャモデリング方法、ジェスチャモデリングシステム用のプログラム、およびジェスチャモデリングシステム
JP2018129009A (ja) * 2017-02-10 2018-08-16 日本電信電話株式会社 画像合成装置、画像合成方法及びコンピュータプログラム
JP2018147431A (ja) * 2017-03-09 2018-09-20 コニカミノルタ株式会社 画像認識装置及び画像認識方法
WO2020070928A1 (ja) * 2018-10-03 2020-04-09 株式会社ソニー・インタラクティブエンタテインメント スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297336A (ja) * 2000-04-11 2001-10-26 Sony Corp 3次元キャラクタの特徴抽出装置および特徴抽出方法
JP2016167268A (ja) * 2015-03-06 2016-09-15 国立大学法人 筑波大学 ジェスチャモデリング装置、ジェスチャモデリング方法、ジェスチャモデリングシステム用のプログラム、およびジェスチャモデリングシステム
JP2018129009A (ja) * 2017-02-10 2018-08-16 日本電信電話株式会社 画像合成装置、画像合成方法及びコンピュータプログラム
JP2018147431A (ja) * 2017-03-09 2018-09-20 コニカミノルタ株式会社 画像認識装置及び画像認識方法
WO2020070928A1 (ja) * 2018-10-03 2020-04-09 株式会社ソニー・インタラクティブエンタテインメント スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HIROSHI MORI, YUUTA SUGAWARA, FUBITO TOYAMA AND KENJI SHOJI: "Real-time Avatar Motion Synthesis with Replacing Low-confidence Joint Pose ", JOURNAL OF THE VIRTUAL REALITY SOCIETY OF JAPAN, vol. 22, no. 1, 31 March 2017 (2017-03-31), pages 19 - 26, XP009539925, ISSN: 1342-6680, DOI: 10.18974/tvrsj.22.1_19 *
ISHII, MASAHIRO; HASEGAWA, SHOUICHI; SATO, MAKOTO: "A Study of Presumption of Person's Intention in the Human Scale Virtual Environment", ITE TECHNICAL REPORT, EIZO JOHO MEDIA GAKKAI, TOKYO, JP, vol. 22, no. 26, 26 May 1998 (1998-05-26), JP , pages 13 - 18, XP009540794, ISSN: 1342-6893, DOI: 10.11485/itetr.22.26.0_13 *

Also Published As

Publication number Publication date
US20240169638A1 (en) 2024-05-23

Similar Documents

Publication Publication Date Title
KR102055995B1 (ko) 시점 변환을 위한 현실적 리그드 3차원(3d) 모델 애니메이션을 생성하는 장치 및 방법
JP7001841B2 (ja) 画像処理方法及び装置、画像デバイス並びに記憶媒体
US6545682B1 (en) Method and apparatus for creating and customizing avatars using genetic paradigm
CN109815776B (zh) 动作提示方法和装置、存储介质及电子装置
Kurillo et al. Real-time 3D avatars for tele-rehabilitation in virtual reality
CN109145788A (zh) 基于视频的姿态数据捕捉方法和系统
CA3162163A1 (en) Real-time system for generating 4d spatio-temporal model of a real world environment
Sunday Pandzic et al. A flexible architecture for virtual humans in networked collaborative virtual environments
CN111080759A (zh) 一种分镜效果的实现方法、装置及相关产品
CN110637324B (zh) 三维数据系统以及三维数据处理方法
CN110178158A (zh) 信息处理装置、信息处理方法和程序
JP2015186531A (ja) 動作情報処理装置、及びプログラム
CN109529350A (zh) 一种应用于游戏中的动作数据处理方法及其装置
CN109120990A (zh) 直播方法、装置和存储介质
WO2022209220A1 (ja) 画像処理装置および画像処理方法、並びに記録媒体
JP2001236505A (ja) 座標推定方法、座標推定装置および座標推定システム
CN112973110A (zh) 云游戏控制方法、装置、网络电视及计算机可读存储介质
CN114554111A (zh) 视频生成方法和装置、存储介质及电子设备
CN113515187B (zh) 一种虚拟现实场景的生成方法和网络侧设备
CN114173142A (zh) 对象直播展示方法和装置、存储介质及电子设备
JP6684336B1 (ja) データ補正装置およびプログラム
Dallaire-Côté et al. Animated self-avatars for motor rehabilitation applications that are biomechanically accurate, low-latency and easy to use
EP4303824A1 (en) System and method for monitoring a body pose of a user
CN115937371B (zh) 人物模型的生成方法和系统
JP3481077B2 (ja) グラフィック表示方法と装置

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: 22779450

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18551204

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22779450

Country of ref document: EP

Kind code of ref document: A1