WO2021131738A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
WO2021131738A1
WO2021131738A1 PCT/JP2020/045994 JP2020045994W WO2021131738A1 WO 2021131738 A1 WO2021131738 A1 WO 2021131738A1 JP 2020045994 W JP2020045994 W JP 2020045994W WO 2021131738 A1 WO2021131738 A1 WO 2021131738A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
skeleton
joint
processing device
bone
Prior art date
Application number
PCT/JP2020/045994
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 US17/777,416 priority Critical patent/US12067677B2/en
Priority to CN202080088561.5A priority patent/CN114830183A/zh
Priority to EP20905020.2A priority patent/EP4083926A4/en
Priority to JP2021567205A priority patent/JP7501543B2/ja
Publication of WO2021131738A1 publication Critical patent/WO2021131738A1/ja
Priority to JP2024092499A priority patent/JP2024103791A/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/015Input arrangements based on nervous system activity detection, e.g. brain waves [EEG] detection, electromyograms [EMG] detection, electrodermal response detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • 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
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image
    • 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/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes

Definitions

  • the present invention relates to an information processing device, an information processing method, and an information processing program.
  • Motion capture is used in various situations such as the production, analysis, and editing of computer graphics such as sports and games.
  • motion capture using inertial navigation for three-dimensional skeleton estimation is known.
  • the position of each joint is measured from the sensor data acquired by the motion sensor attached to the joint.
  • inertial navigation is used for motion capture in this way, it is inevitable to install a motion sensor. For this reason, the installation of the motion sensor hinders the movement in competitions such as sports and games, and impairs the visual value such as the presence of the live-action image.
  • an object of the present disclosure is to provide an information processing device, an information processing method, and an information processing program capable of generating a skeleton model having a three-dimensional effect.
  • an estimation unit that estimates a three-dimensional skeleton based on images captured from a plurality of viewpoints and the three-dimensional skeleton are modeled. It is provided with a generation unit that generates a skeleton model.
  • First Embodiment 1-1 System configuration example 1-1-1.
  • Server device 1-1-2. Camera 1-1-3.
  • Client terminal 1-2. One aspect of the problem-solving approach 1-3.
  • Communication interface 1-3-2. Memory 1-3-2-1.
  • Control unit 1-3-3-1. Acquisition section 1-3-3-2.
  • Second Embodiment 2-1 Functional configuration example of server device 2-1-1.
  • Setting unit 2-2. Processing procedure of server device 2-3.
  • Hardware configuration example 1-1-1. Server device 1-1-2.
  • Camera 1-1-3. Client terminal 1-2.
  • Communication interface 1-3-2. Memory
  • FIG. 1 is a diagram showing a configuration example of the system 1 according to the first embodiment.
  • the system 1 shown in FIG. 1 provides an image generation service that generates a three-dimensional skeleton model in which a three-dimensional skeleton obtained by markerless motion capture is modeled as computer graphics.
  • such an image generation service can be used in various use cases such as production, analysis, and editing of computer graphics such as sports and games.
  • the image captured by the camera 30 is referred to as an "captured image" from the aspect of distinguishing the image captured by the camera 30 from the skeleton image including the three-dimensional skeleton model which is computer graphics, that is, the label of the live-action image. May be described.
  • the system 1 may include a server device 10, cameras 30A to 30N, and a client terminal 50.
  • a server device 10 cameras 30A to 30N
  • a client terminal 50 may be described as "camera 30".
  • FIG. 1 shows an example in which one client terminal 50 is included in the system 1, a plurality of client terminals 50 may be included.
  • the server device 10, the camera 30, and the client terminal 50 can be connected via an arbitrary network NW.
  • the network NW may be any kind of communication network such as the Internet or LAN (Local Area Network) regardless of whether it is wired or wireless.
  • FIG. 1 illustrates a case where the server device 10 provides a skeleton image including a three-dimensional skeleton model to the client terminal 50 via the network NW, but it is not necessarily bidirectional between the server device 10 and the client terminal 50. It does not matter if communication is not performed.
  • the skeleton image does not necessarily have to go through the network NW, and may be provided from the server device 10 to the client terminal 50 via a broadcast wave.
  • the server device 10 is a computer that provides the above-mentioned image generation service.
  • the server device 10 can correspond to an example of an information processing device.
  • the server device 10 can be implemented as package software or online software by installing an image generation program that realizes a function corresponding to the above image generation service on a desired computer.
  • the server device 10 can be implemented as a server that provides the above-mentioned function related to the image generation service on-premises, for example, a Web server.
  • the server device 10 may be implemented as a SaaS (Software as a Service) type application to provide the above image generation service as a cloud service.
  • SaaS Software as a Service
  • the camera 30 is an example of an image pickup device equipped with an image pickup device such as a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide Semiconductor).
  • an image pickup device such as a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide Semiconductor).
  • each camera is arranged so that the entire area of the three-dimensional space in which a competition such as a sport or a game for which computer graphics is generated is performed is within the shooting range of the plurality of cameras 30. 30 is installed. Further, from the aspect of estimating the three-dimensional skeleton of the subject existing in the three-dimensional space from the captured images captured by two or more cameras 30, each camera 30 is one of the shooting ranges with the other cameras 30. The parts can be arranged in an overlapping state. Under such an arrangement, a plurality of cameras 30 simultaneously image each frame, so that a plurality of images captured at the same timing for different viewpoints, that is, multi-viewpoint captured images can be obtained in frame units. .. As a matter of course, the frame rate at which each camera 30 captures an image is also unified to the same frame rate.
  • the client terminal 50 corresponds to an example of a computer that receives a function corresponding to the above-mentioned image generation service.
  • the client terminal 50 may be supported by a desktop computer such as a personal computer. This is just an example, and the client terminal 50 may be any computer such as a laptop computer, a mobile terminal device, or a wearable terminal.
  • FIG. 1 shows an example in which the system 1 is constructed as a client-server system including the server device 10 and the client terminal 50, but the configuration example of the system 1 is not limited to this.
  • the function corresponding to the above image generation service may be realized by a computer operating standalone.
  • OpenPose Even so, in OpenPose, only two-dimensional posture detection is performed, so the posture of the skeletal part hidden by occlusion cannot be accurately detected. Therefore, OpenPose can only generate a skeletal model that lacks a three-dimensional effect.
  • the server device 10 of the present disclosure estimates a three-dimensional skeleton from a multi-viewpoint captured image as part of the above-mentioned image generation service. As a result, the estimation of the skeleton part hidden by occlusion can be realized, and the three-dimensional skeleton estimation can be realized by the markerless motion capture. Then, the server device 10 of the present disclosure generates a three-dimensional skeleton model in which the three-dimensional skeleton thus estimated is modeled. Therefore, according to the server device 10 of the present disclosure, it is possible to generate a skeleton model having a three-dimensional effect.
  • FIG. 1 schematically shows a block corresponding to a function included in the server device 10 among the devices included in the system 1.
  • the server device 10 includes a communication interface 11, a storage unit 13, and a control unit 15.
  • FIG. 1 only shows an excerpt of the functional parts related to the above image generation service, and the functional parts other than those shown in the figure, for example, the functional parts that the existing computer is equipped with by default or as options are servers. It does not prevent the device 10 from being provided.
  • the communication interface 11 corresponds to an example of a communication control unit that controls communication with another device, for example, a camera 30 or a client terminal 50.
  • a network interface card such as a LAN card can be adopted for the communication interface 11.
  • the communication interface 11 notifies each camera 30 of an imaging start instruction and an imaging end instruction of the captured image, and receives the captured image from the camera 30.
  • the communication interface 11 accepts various setting operations related to viewing the skeleton image from the client terminal 50, for example, setting an operation of the viewpoint of the camera including a virtual viewpoint, and outputs the skeleton image.
  • the storage unit 13 can correspond to hardware that stores data used in various programs such as the above-mentioned image generation program, including an OS (Operating System) executed by the control unit 15.
  • OS Operating System
  • the storage unit 13 may correspond to the auxiliary storage device in the server device 10.
  • HDD Hard Disk Drive
  • optical disk SSD (Solid State Drive), etc.
  • flash memory such as EPROM (Erasable Programmable Read Only Memory) can also be used as an auxiliary storage device.
  • the storage unit 13 stores the camera parameter 13A and the three-dimensional skeleton data 13B as an example of the data used in the program executed by the control unit 15.
  • the storage unit 13 can store various data such as the account information of the user of the client terminal 50 in addition to the captured images of each viewpoint.
  • the camera parameter 13A is data related to the camera parameter.
  • the camera parameter 13A may include external parameters such as the position and orientation of each camera 30 and internal parameters such as the angle of view of each camera 30 and lens distortion.
  • the three-dimensional skeleton data 13B is data relating to the estimation result of the three-dimensional skeleton.
  • the position of the joint held by the subject in the three-dimensional space for each frame of the captured image captured by the camera 30 is estimated by the estimation unit 15B described later.
  • the three-dimensional skeleton data 13B may include time-series data of the positions of each joint in the three-dimensional space as an example.
  • the three-dimensional skeleton data 13B may include the posture of each joint in the three-dimensional space, for example, the joint angle calculated based on the inverse kinematics, in addition to the position in the three-dimensional space.
  • the control unit 15 is a processing unit that controls the entire server device 10.
  • control unit 15 can be implemented by a hardware processor such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit).
  • a CPU and an MPU are illustrated as an example of a processor, but it can be implemented by any processor regardless of a general-purpose type or a specialized type.
  • control unit 15 may be realized by hard-wired logic such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).
  • the control unit 15 virtually realizes the following processing unit by deploying the above image generation program on a work area of a RAM (Random Access Memory) mounted as a main storage device (not shown).
  • FIG. 1 shows a functional unit corresponding to the above image generation program
  • the program module corresponding to the above image generation program includes a functional unit corresponding to packaged software packaged with other functions. It doesn't matter.
  • control unit 15 has an acquisition unit 15A, an estimation unit 15B, and a generation unit 15C.
  • the acquisition unit 15A is a processing unit that acquires captured images of each viewpoint.
  • the acquisition unit 15A can acquire captured images of each viewpoint transmitted from the cameras 30A to 30N in frame units.
  • the information source from which the acquisition unit 15A acquires the captured image may be any information source, and is not limited to the camera 30.
  • the acquisition unit 15A can acquire multi-viewpoint captured images from an auxiliary storage device such as a hard disk or optical disk that stores captured images of each viewpoint, or a removable medium such as a memory card or USB (Universal Serial Bus) memory. ..
  • the acquisition unit 15A can also acquire captured images of each viewpoint from an external device other than the camera 5 via the network NW.
  • the estimation unit 15B is a processing unit that estimates the three-dimensional skeleton based on the captured image of each viewpoint.
  • the estimation unit 15B inputs an captured image to a model obtained by machine learning such as deep learning for each viewpoint of the camera 30, and thereby maps the certainty of the position on the captured image for each joint. Get the output of. Then, the estimation unit 15B estimates the position of each joint in the three-dimensional space by performing triangulation between the captured images based on the positions of the joints obtained for each captured image. Further, the estimation unit 15B can also calculate the posture of each joint in the three-dimensional space by calculating the joint angle based on the inverse kinematics using the position of each joint in the three-dimensional space. The positions and postures of the joints obtained for each frame of the captured image in the three-dimensional space are stored in the storage unit 13 as three-dimensional skeleton data.
  • the generation unit 15C is a processing unit that generates a skeleton model in which a three-dimensional skeleton is modeled.
  • the generation unit 15C renders a skeleton image at the viewpoints of the cameras 30A to 30N or at an arbitrary virtual viewpoint in the three-dimensional space.
  • the generation unit 15C has 3 of the subject for each subject based on the position of the viewpoint where the user setting or the system setting is performed by the client terminal 50 or the like and the position of the joint included in the 3D skeleton data 13B. Render the skeleton model of the dimension.
  • FIG. 2 is a diagram showing an example of a skeleton image.
  • FIG. 2 shows a skeleton image 200 generated from a captured image of a table tennis match.
  • FIG. 2 shows a skeleton image 200 when the position of the central front surface in the longitudinal direction of the table tennis table is set to the virtual viewpoint Vc.
  • the skeleton image 200 renders three-dimensional skeleton models M1 and M2 corresponding to two players playing a table tennis match.
  • a three-dimensional model M3 corresponding to a table tennis table is rendered as an example of a three-dimensional model of an environment other than a person.
  • the three-dimensional model M3 of the table tennis table does not necessarily have to be modeling data generated from the captured image.
  • an environmental object such as the three-dimensional model M3 whose position and orientation do not change in the three-dimensional space may be modeling data created in advance.
  • Such modeling data can be added to the skeleton image 200. In this way, since the three-dimensional skeleton model is rendered on the skeleton image 200, the expressive ability of the skeleton portion hidden by the occlusion is also improved.
  • FIG. 3 is a diagram showing an example of a three-dimensional skeleton model.
  • FIG. 3 shows an enlarged view of the three-dimensional skeleton model M2 shown in FIG.
  • the three-dimensional skeletal model M2 includes a head including feature points such as eyes and nose, as well as a clavicle, left and right shoulders, elbows, wrists, shoulders, elbows, wrists, hips, and knees. It includes joints J1 to J20 that can correspond to parts such as ankles and toes, and bones B1 to B17 that connect each joint.
  • the joints J1 to J20 are modeled in a spherical shape, while the bones B1 to B17 are modeled in a linear or columnar shape.
  • the size of the spheres of the joints J1 to J20 is set according to the distance between the virtual viewpoint Vc and the joints J1 to J20. For example, as the distance from the virtual viewpoint Vc decreases, in other words, the radius of the sphere of the joint is set larger as the joint is located closer to the front side. On the other hand, as the distance from the virtual viewpoint Vc increases, in other words, the radius of the sphere of the joint is set smaller as the joint is located closer to the back.
  • joint J4, joint J7, and joint J8 as an example, the joints J8, joint J7, and joint J4 are arranged in ascending order of distance from the virtual viewpoint Vc. In this case, as shown in FIG. 3, the radius of the sphere of the joint J4, the joint J7 and the joint J8 is set so that J8> J7> J4.
  • the thickness of the cylinder of the bone B1 to the bone B17 is set according to the virtual viewpoint Vc and the distance between the bone B1 and the bone B17.
  • the radius of the bone cylinder is set larger as the bone is located closer to the front side.
  • the radius of the cylinder of the bone is set smaller as the bone is located deeper.
  • the ability to express the joints and bones in the anterior-posterior direction, that is, in the depth direction is improved.
  • the viewpoint of the skeleton image is not necessarily limited to the virtual viewpoint given to the virtual camera, and may be any viewpoint of the camera 30A to the camera 30N. Further, the viewpoint of the skeleton image does not necessarily have to be fixed, and can be moved according to the trajectory of the user setting or GUI operation performed by the client terminal 50 or the like.
  • the generation unit 15C can display the three-dimensional skeleton model in association with the captured image of each viewpoint as well as the captured image of the virtual viewpoint generated by using a plurality of captured images. For example, the generation unit 15C displays the skeleton image and the captured image corresponding to the same frame side by side on the left and right or vertically, or superimposes the skeleton image on the captured image by projecting the three-dimensional skeleton model onto the captured image. It can be displayed. When the three-dimensional skeleton model is projected onto the captured image in this way, the ability to express the twist of the joint can be improved by using the joint angle in addition to the position of each joint.
  • FIG. 4 is a diagram showing an example of a method of associating a skeleton image and a captured image.
  • the captured images 40A to 40C of the three viewpoints of the cameras 30A to 30C are displayed.
  • the skeleton images of each viewpoint are superimposed on the captured images 40A to 40C. Images 40 ⁇ to 40 ⁇ are displayed.
  • the skeleton image is superimposed on the captured image in this way, image processing that reduces the contrast ratio of the captured image, such as reduction of brightness and saturation, and increase of transparency, is performed from the aspect of increasing the contrast of the skeleton image as compared with the captured image.
  • the superimposed images 40 ⁇ to 40 ⁇ can be generated after performing the above.
  • Such display of the superimposed images 40 ⁇ to 40 ⁇ , and by extension, the aligned display of the captured images 40A to 40C and the superimposed images 40 ⁇ to 40 ⁇ can facilitate the comparison between the live-action image and the skeleton model.
  • the 3D skeleton model When the 3D skeleton model is occlusioned by the 3D model of the environment, it is also possible to control whether or not to draw the part of the 3D skeleton model hidden by the 3D model of the environment. For example, when the legs of the 3D skeleton model M2 are hidden by the table tennis table as in the superimposed image 40 ⁇ , the legs of the 3D skeleton model M2 can be drawn to give a perspective effect, or the legs of the 3D skeleton model M2 can be drawn. By suppressing the drawing of the part, it is possible to suppress the occurrence of a sense of discomfort.
  • FIG. 5 is a flowchart showing a procedure of image generation processing according to the first embodiment. As an example, this process can be continuously performed until the acquisition of the captured image from the camera 30 is completed.
  • step S102 is waited until the captured image of each viewpoint is acquired by the acquisition unit 15A (step S101No). Then, when the captured image of each viewpoint is acquired by the acquisition unit 15A (step S101Yes), the estimation unit 15B estimates the three-dimensional skeleton based on the captured image of each viewpoint (step S102).
  • step S103 the generation unit 15C generates a three-dimensional skeleton model in which the three-dimensional skeleton estimated in step S102 is modeled (step S103). After the process of step S103 is performed in this way, the process proceeds to the process of step S101.
  • the server device 10 of the present disclosure estimates a three-dimensional skeleton from a multi-viewpoint captured image as part of the above-mentioned image generation service. As a result, it is possible to estimate the skeleton part hidden by occlusion and to realize three-dimensional skeleton estimation by markerless motion capture. Then, the server device 10 of the present disclosure generates a three-dimensional skeleton model in which the three-dimensional skeleton thus estimated is modeled. Therefore, according to the server device 10 of the present disclosure, it is possible to generate a skeleton model having a three-dimensional effect.
  • Second embodiment >> Various effects can be added to the three-dimensional skeleton model described in the first embodiment above. Hereinafter, as the second embodiment, the contents of various effects and the setting method thereof will be illustrated.
  • FIG. 6 is a diagram showing a configuration example of the system according to the second embodiment. As shown in FIG. 6, the system 2 is different from the system 1 shown in FIG. 1 in that it has a server device 20 to which the function related to the above effect is added. Further, the server device 20 is different from the server device 10 shown in FIG. 1 in that the control unit 25 further has a setting unit 25A.
  • the setting unit 25A is a processing unit that sets an effect on the three-dimensional skeleton model.
  • the setting unit 25A can set the heat map effect on the skeletal parts such as joints and bones of the three-dimensional skeletal model.
  • FIG. 7 is a diagram showing an example of a heat map effect.
  • FIG. 7 shows an example in which a heat map effect is added to the three-dimensional skeleton model M2 shown in FIG.
  • heat maps of different colors are added to the joints included in the three-dimensional skeleton model M2 depending on the skeleton part. More specifically, the color of the heat map covering the joint is set separately according to the difference in the skeletal parts of the right arm, the left arm, the right leg and the left leg.
  • the joints J3, J5, and joints J6 included in the right arm are provided with a first color, for example, a heat map corresponding to the hatching of the checkered pattern in the drawing.
  • the joint J4, the joint J7, and the joint J8 included in the left arm are provided with a second color, that is, a heat map corresponding to the hatching of the points in the figure.
  • the joints J13 to J16 included in the right leg are provided with a third color, that is, a heat map corresponding to the hatching of the diagonal line in the figure.
  • the joints J17 to J20 included in the left leg are provided with a fourth color, that is, a heat map corresponding to the hatching of the vertical line in the figure.
  • FIG. 7 shows an example in which the heat map effect is added to the joint, it goes without saying that the same effect can be added to the bone. Further, although FIG. 7 shows an example in which heat maps having different colors are set according to the position of the skeleton portion, heat maps having different areas may be set according to the position of the skeleton portion.
  • the setting unit 25A can set an effect of highlighting the display color of the skeleton part such as the joint and the bone of the three-dimensional skeleton model.
  • the setting unit 25A can set the effect of color change according to the movement of a skeletal part such as a joint or a bone.
  • the setting unit 25A can use the amount of movement of the skeleton part.
  • the setting unit 25A can calculate the amount of movement of the skeleton portion obtained from the position of the skeleton portion in the frame in which the skeleton image is being displayed and the position of the skeleton portion in the frame before the frame. For example, assuming that the skeleton image of the Nth frame is being displayed, the amount of movement of the skeleton portion from the N-1th frame to the Nth frame can be calculated.
  • the setting unit 25A sets the saturation of the skeleton portion higher as the amount of movement increases, while setting the saturation of the skeleton portion lower as the amount of movement decreases. Further, the setting unit 25A can also set the color of the range corresponding to the movement amount of the skeleton portion among the colors assigned for each movement amount range as the display color of the skeleton portion. This makes it possible to realize an effect that distinguishes display colors according to the amount of movement.
  • an example of calculating the amount of movement of the skeleton portion between adjacent frames has been given, but the intervals between the frames used for calculating the amount of movement do not necessarily have to be adjacent. For example, the amount of movement of the skeletal site can be calculated between a predetermined number of frames.
  • the setting unit 25A can also set an effect of highlighting the skeleton part whose movement amount is equal to or larger than a predetermined threshold value among the skeleton parts included in the three-dimensional skeleton model. At this time, from the aspect of emphasizing the skeleton part having a large relative difference in movement between the skeleton parts, the setting unit 25A subtracts the movement amount of the center of gravity of the entire three-dimensional skeleton model from the movement amount of each skeleton part. It is possible to set an effect for highlighting a skeleton portion where the subtraction value of the movement amount is equal to or more than a predetermined threshold, for example, changing the display color or blinking.
  • FIG. 8 is a diagram showing an example of the highlighting effect.
  • FIG. 8 highlights the skeletal parts whose subtraction value obtained by subtracting the movement amount of the center of gravity of the entire three-dimensional skeletal model M2 from the movement amount of the skeletal parts of joints J1 to J20 and bones B1 to B17 is equal to or more than the threshold value. The effect of is added.
  • the display colors of the joints J5, joint J6, joint J18, joint J19 and joint J20 in which the subtraction value of the movement amount is equal to or more than the threshold value are the display colors of the other joints. Is set to a different display color.
  • the display colors of the bones B3, B4, bone B16 and bone B17 whose movement amount subtraction value is equal to or more than the threshold value are set to different display colors from the display colors of the other bones. There is.
  • the highlighting effect is set as compared with other parts. Therefore, it is possible to easily identify the skeletal part having a relatively large amount of movement. For example, in the case of table tennis, it is possible to support the evaluation and analysis of forms by identifying a skeletal part that moves rapidly in a scene where a racket is swung.
  • the amount of movement of the skeletal part is given as an example, but the present invention is not limited to this.
  • the velocity can be calculated for each skeleton part by calculating the change in the unit time, for example, the movement amount per frame from the movement amount in a predetermined number of frames.
  • the acceleration can be calculated for each skeleton part by calculating the change in the unit time, for example, the speed per frame from the speed in a predetermined number of frames.
  • the highlighting effect can be set according to the position of the skeleton part.
  • an effect of changing the size of the joint sphere, the thickness of the bone cylinder, or the area of the heat map may be set.
  • the size of the joint sphere corresponding to the skeletal part, the thickness of the bone column, or the area of the heat map is set larger as the amount of movement increases, and the skeletal part corresponds to the smaller the amount of movement.
  • the size of the sphere of the joint to be used, the thickness of the bone column, or the area of the heat map can be set small.
  • FIG. 9 is a flowchart showing the procedure of the image generation processing according to the second embodiment. As an example, this process can be continuously performed until the acquisition of the captured image from the camera 30 is completed.
  • step S102 is waited until the captured image of each viewpoint is acquired by the acquisition unit 15A (step S101No). Then, when the captured image of each viewpoint is acquired by the acquisition unit 15A (step S101Yes), the estimation unit 15B estimates the three-dimensional skeleton based on the captured image of each viewpoint (step S102).
  • the setting unit 25A sets the heat map effect and the highlighting effect based on the three-dimensional skeleton part and the amount of movement estimated in step S102 (step S201).
  • step S103 the generation unit 15C generates a three-dimensional skeleton model in which the three-dimensional skeleton estimated in step S102 is modeled. Then, the generation unit 15C adds the effect set in step S201 to the three-dimensional skeleton model generated in step S103 (step S202). After the process of step S202 is performed in this way, the process proceeds to the process of step S101.
  • the server device 20 of the present disclosure sets a heat map effect and a highlighting effect based on a three-dimensional skeleton portion and a movement amount as a part of the above image generation service. Therefore, according to the server device 20 of the present disclosure, it is possible to improve the visibility of the skeleton portion according to the purpose such as evaluation and analysis of the image.
  • FIG. 10 is a diagram showing an example of a CG character model.
  • the CG character model CG1 corresponding to the three-dimensional skeleton model M1 and the CG character model CG2 corresponding to the three-dimensional skeleton model M2 are rendered on the CG image 210.
  • the server device 10 and the server device 20 identify an individual by executing an authentication process such as face recognition or iris recognition on a person included in the captured image. Then, the server device 10 and the server device 20 refer to the personal settings of the CG character model and the effect, and select the CG character model and the effect according to the personal settings corresponding to the individual identified as the result of the authentication process. be able to.
  • the display of the heat map is used to identify the skeleton part, but the color or size of the heat map is changed according to the certainty of the estimation result of the three-dimensional skeleton at the skeleton part.
  • the higher the certainty of the estimation result the more the color saturation of the heat map of the skeleton part can be increased, and the area of the heat map of the skeleton part can be increased.
  • the lower the certainty of the estimation result the more the color saturation of the heat map of the skeleton portion can be reduced, and the area of the heat map of the skeleton portion can be reduced. This makes it possible to visualize the estimation accuracy of the 3D skeleton on the 3D skeleton model.
  • FIG. 11 and 12 are diagrams showing an example of the locus of the position of the skeleton part.
  • FIG. 11 shows the three captured images of the cameras 30A to 30C in the t ⁇ Nth frame before the nth frame from the tth frame in which the latest captured image was acquired by the acquisition unit 15A in the t ⁇ Nth frame.
  • Superimposed images 60A to 60C on which the positions of the skeletal parts are superimposed are shown.
  • the loci of the positions of the skeletal parts in the Nth frames from the tNth to the tth frames were superimposed on the three captured images of the cameras 30A to 30C in the tth frame.
  • Superimposed images 80A-80C are shown. Further, in FIG.
  • a superimposed image 80V in which the locus of the position of the skeleton portion in the Nth to Nth frames is superimposed on the captured image of the bird's-eye view (virtual viewpoint) in the tth frame is shown. It is shown. Further, in the superimposed images 80A to 80C shown in FIG. 11 and the superimposed images 80V shown in FIG. 12, the joints whose subtraction value obtained by subtracting the movement amount of the center of gravity of the entire three-dimensional skeleton model in the t-th frame is equal to or more than the threshold value are narrowed down. The loci of the joint positions in the N frames are superimposed, and for the other skeletal parts, only the positions of the skeletal parts in the t-th frame are superimposed.
  • the joint spheres in the past frames other than the t-th frame are the joint spheres in the t-th frame.
  • a radius smaller than the radius of the sphere is set. That is, for the same joint, the radius of the joint sphere in the t-th frame is set as the maximum value, and the radius of the joint sphere in the t-th frame is monotonically decreased as the t-th frame goes back to the past frame.
  • the brightness and saturation can be monotonically decreased or the transparency can be monotonically increased as compared with the joints in the t-th frame as the t-th frame goes back to the past frame.
  • the locus of the position of the skeleton portion can be visualized. Furthermore, since the radius of the sphere of the joint in the t-th frame is monotonically reduced from the t-th frame to the past frame, the time-series change in the position of the skeletal part becomes easier to identify.
  • the example of generating the locus of the position of the joint is given here, it goes without saying that the locus of the position of the bone and the locus of the position of the heat map can be generated by the same method.
  • each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of the device is functionally or physically dispersed / physically distributed in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
  • FIG. 13 is a hardware configuration diagram showing an example of the computer 1000.
  • the computer 1000 includes a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface 1500, and an input / output interface 1600.
  • Each part of the computer 1000 is connected by a bus 1050.
  • the CPU 1100 operates based on the program stored in the ROM 1300 or the HDD 1400, and controls each part. For example, the CPU 1100 expands the program stored in the ROM 1300 or the HDD 1400 into the RAM 1200 and executes processing corresponding to various programs.
  • the ROM 1300 stores a boot program such as a BIOS (Basic Input Output System) executed by the CPU 1100 when the computer 1000 is started, a program that depends on the hardware of the computer 1000, and the like.
  • BIOS Basic Input Output System
  • the HDD 1400 is a computer-readable recording medium that non-temporarily records a program executed by the CPU 1100 and data used by the program.
  • the HDD 1400 is a recording medium for recording the development support program according to the present disclosure, which is an example of the program data 1450.
  • the communication interface 1500 is an interface for the computer 1000 to connect to an external network 1550 (for example, the Internet).
  • the CPU 1100 receives data from another device or transmits data generated by the CPU 1100 to another device via the communication interface 1500.
  • the input / output interface 1600 is an interface for connecting the input / output device 1650 and the computer 1000.
  • the CPU 1100 receives data from an input device such as a keyboard or mouse via the input / output interface 1600. Further, the CPU 1100 transmits data to an output device such as a display, a speaker, or a printer via the input / output interface 1600. Further, the input / output interface 1600 may function as a media interface for reading a program or the like recorded on a predetermined recording medium (media).
  • the media is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
  • an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
  • a magneto-optical recording medium such as an MO (Magneto-Optical disk)
  • a tape medium such as a magnetic tape
  • magnetic recording medium such as a magnetic tape
  • semiconductor memory for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
  • the CPU 1100 of the computer 1000 is included in the control unit 15 by executing the image generation program loaded on the RAM 1200. Realize each functional part.
  • the HDD 1400 stores the image generation program according to the present disclosure and the data in the content storage unit 121.
  • the CPU 1100 reads the program data 1450 from the HDD 1400 and executes the program, but as another example, these programs may be acquired from another device via the external network 1550.
  • the present technology can also have the following configurations.
  • An estimation unit that estimates a three-dimensional skeleton based on captured images from multiple viewpoints, A generator that generates a skeleton model in which the three-dimensional skeleton is modeled, Information processing device equipped with.
  • the generator models the joints of the three-dimensional skeleton in a spherical shape and the bones in a columnar shape.
  • the generation unit sets the radius of the sphere of the joint or the radius of the cylinder of the bone based on the distance between the viewpoint or the virtual viewpoint of the plurality of viewpoints and the joint or the bone.
  • the generator sets the radius of the sphere of the joint or the radius of the cylinder of the bone larger as the distance decreases, or the radius of the sphere of the joint or the bone as the distance increases. Set the radius of the cylinder small, The information processing device according to (3) above.
  • the skeleton model is displayed in association with captured images of the plurality of viewpoints or virtual viewpoints.
  • the skeleton model is displayed side by side or vertically or vertically with a captured image of the same frame as the skeleton model.
  • the skeleton model is displayed superimposed on an image captured in the same frame as the skeleton model.
  • the captured image is displayed with reduced brightness or saturation or increased transparency.
  • a setting unit for setting an effect on the skeleton model is further provided.
  • the setting unit sets the effect of the heat map covering the joint or the bone.
  • (11) The setting unit sets a heat map of a different color or a different area depending on the position of the joint or the bone.
  • (12) The setting unit sets heat maps of different colors or different areas according to the amount of movement, speed or acceleration of the joint or the skeletal part of the bone.
  • the setting unit sets heat maps of different colors or different areas depending on the certainty of the estimation result of the three-dimensional skeleton at the skeletal part of the joint or the bone.
  • the setting unit sets an effect of highlighting the joint or the skeletal part of the bone.
  • the setting unit sets different display colors according to the amount of movement, speed, or acceleration of the joint or the skeletal part of the bone.
  • (16) The setting unit sets an effect of highlighting a skeletal part of the joint or the bone whose movement amount, velocity or acceleration is equal to or higher than a predetermined threshold value.
  • the setting unit sets an effect of highlighting a skeletal part whose subtraction value obtained by subtracting the movement amount of the center of gravity of the skeletal model from the movement amount of the skeletal part of the joint or the bone is equal to or more than a predetermined threshold value.
  • the generation unit models the locus of the position of the joint or the skeletal part of the bone over a predetermined number of frames in the past from the latest frame in which the captured image is acquired.
  • the generator sets the radius of the joint sphere or the radius of the bone cylinder in a past frame other than the latest frame smaller than the radius of the joint sphere or the radius of the bone cylinder in the latest frame.
  • the information processing device maximizes the radius of the joint sphere or the radius of the bone cylinder in the latest frame, and the radius of the joint sphere in the latest frame or the radius of the joint sphere in the latest frame as it goes back from the latest frame to the past frame. Set the radius of the joint sphere of the past frame or the radius of the bone cylinder by monotonically reducing the radius of the bone cylinder, The information processing device according to (19) above.
  • (21) Estimate a three-dimensional skeleton based on captured images from multiple viewpoints A skeleton model in which the three-dimensional skeleton is modeled is generated. An information processing method in which a computer executes processing.
  • (22) Estimate a three-dimensional skeleton based on captured images from multiple viewpoints A skeleton model in which the three-dimensional skeleton is modeled is generated.
  • An information processing program that causes a computer to perform processing.
  • System 10 Server device 11 Communication interface 13 Storage unit 13A Camera parameter 13B 3D skeleton data 15 Control unit 15A Acquisition unit 15B Estimate unit 15C Generation unit 30A, 30B, 30N Camera 50 Client terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Dermatology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Neurosurgery (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)

Abstract

情報処理装置の一例に対応するサーバ装置(10)は、複数の視点の撮像画像に基づいて3次元の骨格を推定する推定部(15B)と、3次元の骨格がモデル化された骨格モデルを生成する生成部(15C)と、を備える。

Description

情報処理装置、情報処理方法及び情報処理プログラム
 本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
 スポーツやゲームなどのコンピュータグラフィクスの制作や解析、編集といった様々な場面でモーションキャプチャが活用されている。
 例えば、3次元の骨格推定に慣性航法を用いるモーションキャプチャが知られている。慣性航法を用いるモーションキャプチャでは、関節に装着されたモーションセンサにより取得されるセンサデータから各関節の位置が測定される。このようにモーションキャプチャに慣性航法が用いられる場合、モーションセンサの装着が避けられない。このため、モーションセンサの装着により、スポーツやゲームなどの競技における動作の妨げとなったり、実写映像の臨場感等の視覚的価値が損なわれたりする。
 また、マーカレスなモーションキャプチャの1つとして、単眼カメラの画像から2次元の姿勢検出を行うOpenPoseと呼ばれる手法が提案されている。
国際公開第2019/016152号公報
Zhe Cao, Tomas Simon, Shih-EnWei, Yaser Sheikh "Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields"
 しかしながら、上記のOpenPoseでは、2次元の姿勢検出が行われるに過ぎないので、オクルージョンにより隠される骨格部位を正確に検出するのが困難である。それ故、立体感に欠ける骨格モデルしか生成できない。
 そこで、本開示では、立体感のある骨格モデルを生成できる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
 上記の課題を解決するために、本開示に係る一形態の情報処理装置は、複数の視点の撮像画像に基づいて3次元の骨格を推定する推定部と、前記3次元の骨格がモデル化された骨格モデルを生成する生成部と、を備える。
第1の実施形態に係るシステムの構成例を示す図である。 スケルトン画像の一例を示す図である。 3次元骨格モデルの一例を示す図である。 スケルトン画像及び撮像画像の関連付け方法の一例を示す図である。 第1の実施形態に係る画像生成処理の手順を示すフローチャートである。 第2の実施形態に係るシステムの構成例を示す図である。 ヒートマップのエフェクトの一例を示す図である。 強調表示のエフェクトの一例を示す図である。 第2の実施形態に係る画像生成処理の手順を示すフローチャートである。 CGキャラクタモデルの一例を示す図である。 骨格部位の位置の軌跡の一例を示す図である。 骨格部位の位置の軌跡の一例を示す図である。 コンピュータの一例を示すハードウェア構成図である。
 以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
 また、以下に示す項目順序に従って本開示を説明する。
 1.第1の実施形態
  1-1.システム構成例
  1-1-1.サーバ装置
  1-1-2.カメラ
  1-1-3.クライアント端末
  1-2.課題解決のアプローチの一側面
  1-3.サーバ装置の機能構成例
  1-3-1.通信インターフェイス
  1-3-2.記憶部
   1-3-2-1.カメラパラメータ
   1-3-2-2.3次元骨格データ
  1-3-3.制御部
   1-3-3-1.取得部
   1-3-3-2.推定部
   1-3-3-3.生成部
  1-4.サーバ装置の処理手順
  1-5.効果の一面
 2.第2の実施形態
  2-1.サーバ装置の機能構成例
    2-1-1.設定部
  2-2.サーバ装置の処理手順
  2-3.効果の一面
 3.応用例
  3-1.CG(Computer Graphics)キャラクタモデル
  3-2.個人識別との連動
  3-3.骨格推定精度の可視化
  3-4.骨格部位の軌跡
 4.変形例
 5.ハードウェア構成
<<1.第1の実施形態>>
<1-1.システム構成例>
 図1は、第1の実施形態に係るシステム1の構成例を示す図である。図1に示すシステム1は、マーカレスなモーションキャプチャにより得られる3次元の骨格がモデル化された3次元骨格モデルをコンピュータグラフィクスとして生成する画像生成サービスを提供するものである。
 このような画像生成サービスは、1つの側面として、スポーツやゲームなどのコンピュータグラフィクスの制作や解析、編集といった様々なユースケースで活用され得る。
 以下、コンピュータグラフィクスである3次元骨格モデルを含むスケルトン画像との間でカメラ30が撮像する画像、すなわち実写映像のラベルを区別する側面から、カメラ30が撮像する画像のことを「撮像画像」と記載する場合がある。
 図1に示すように、システム1には、サーバ装置10と、カメラ30A~30Nと、クライアント端末50とが含まれ得る。以下、カメラ30A~30Nの各々の個体を区別せずともよい場合、「カメラ30」と記載する場合がある。なお、図1には、システム1に1つクライアント端末50が含まれる例を挙げたが、複数のクライアント端末50が含まれることとしてもかまわない。
 これらサーバ装置10、カメラ30及びクライアント端末50の間は、任意のネットワークNWを介して接続され得る。例えば、ネットワークNWは、有線または無線を問わず、インターネットやLAN(Local Area Network)などの任意の種類の通信網であってかまわない。
 なお、図1には、サーバ装置10がネットワークNWを介して3次元骨格モデルを含むスケルトン画像をクライアント端末50へ提供する場合を例示するが、サーバ装置10及びクライアント端末50の間で必ずしも双方向に通信が行われずともかまわない。例えば、スケルトン画像は、必ずしもネットワークNWを経由させずともよく、放送波を介してサーバ装置10からクライアント端末50へ提供されることとしてもかまわない。
<1-1-1.サーバ装置>
 サーバ装置10は、上記の画像生成サービスを提供するコンピュータである。このサーバ装置10は、情報処理装置の一例に対応し得る。
 一実施形態として、サーバ装置10は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の画像生成サービスに対応する機能を実現する画像生成プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置10は、上記の画像生成サービスに関する機能をオンプレミスに提供するサーバ、例えばWebサーバとして実装することができる。これに限定されず、サーバ装置10は、SaaS(Software as a Service)型のアプリケーションとして実装することで、上記の画像生成サービスをクラウドサービスとして提供することとしてもかまわない。
<1-1-2.カメラ>
 カメラ30は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を搭載する撮像装置の一例である。
 例えば、複数のカメラ30の撮影範囲が組み合わさることにより、コンピュータグラフィクスの生成対象とするスポーツやゲーム等の競技が行われる3次元空間の全域が複数のカメラ30の撮影範囲に収まる配置で各カメラ30が設置される。さらに、2つ以上のカメラ30により撮像された撮像画像から3次元空間上に存在する被写体の3次元骨格を推定する側面から、各カメラ30は、他のカメラ30との間で撮影範囲の一部が重複する状態で配置することができる。このような配置の下、複数のカメラ30がフレームごとに同期して撮像することにより、異なる視点ごとに同一のタイミングで撮像された複数の画像、すなわち多視点の撮像画像がフレーム単位で得られる。なお、当然のことながら、各カメラ30が画像を撮像するフレームレートも同一のフレームレートに統一される。
<1-1-3.クライアント端末>
 クライアント端末50は、上記の画像生成サービスに対応する機能の提供を受けるコンピュータの一例に対応する。例えば、クライアント端末50には、パーソナルコンピュータなどのデスクトップ型のコンピュータなどが対応し得る。これはあくまで一例に過ぎず、クライアント端末50は、ラップトップ型のコンピュータや携帯端末装置、ウェアラブル端末などの任意のコンピュータであってかまわない。
 なお、図1には、システム1がサーバ装置10及びクライアント端末50を含むクライアントサーバシステムとして構築される例を挙げたが、システム1の構成例はこれに限定されない。例えば、上記の画像生成サービスに対応する機能は、スタンドアローンで動作するコンピュータにより実現されてもかまわない。
<1-2.課題解決のアプローチの一側面>
 上記の背景技術の欄で説明した通り、慣性航法を用いるモーションキャプチャでは、モーションセンサの装着が避けられない。このため、モーションセンサの装着により、スポーツやゲームなどの競技における動作の妨げとなったり、実写映像の臨場感等の視覚的価値が損なわれたりする。このように、慣性航法を用いるモーションキャプチャでは、マーカレスなモーションキャプチャを実現できない。
 そうであるからと言って、OpenPoseでは、2次元の姿勢検出が行われるに過ぎないので、オクルージョンにより隠される骨格部位の姿勢は正確に検出することができない。それ故、OpenPoseでは、立体感に欠ける骨格モデルしか生成できない。
 また、Kinectのようなデプスセンサを併用しても、依然として、上記のオクルージョンの課題は解決し得ない。さらに、単眼3次元姿勢推定と呼ばれる関節の奥行情報を機械学習で推定する技術も出てきているが、不定問題に対する機械学習による予想であるので、関節の奥行情報を正確に推定するのは困難である。
 そこで、本開示のサーバ装置10は、上記の画像生成サービスの一環として、多視点の撮像画像から3次元の骨格を推定する。これによって、オクルージョンにより隠される骨格部位の推定を実現すると共に、3次元の骨格推定をマーカレスなモーションキャプチャにより実現できる。その上で、本開示のサーバ装置10は、このようにして推定された3次元の骨格がモデル化された3次元骨格モデルを生成する。したがって、本開示のサーバ装置10によれば、立体感のある骨格モデルを生成することが可能になる。
<1-3.サーバ装置の機能構成例>
 次に、本開示のサーバ装置10の機能構成例について説明する。図1には、システム1に含まれる装置のうち、サーバ装置10が備える機能に対応するブロックが模式化されている。図1に示すように、サーバ装置10は、通信インターフェイス11と、記憶部13と、制御部15とを有する。
 なお、図1には、上記の画像生成サービスに関連する機能部が抜粋して示されているに過ぎず、図示以外の機能部、例えば既存のコンピュータがデフォルトまたはオプションで装備する機能部がサーバ装置10に備わることを妨げない。
<1-3-1.通信インターフェイス>
 通信インターフェイス11は、他の装置、例えばカメラ30やクライアント端末50との間で通信制御を行う通信制御部の一例に対応する。
 あくまで一例として、通信インターフェイス11には、LANカードなどのネットワークインターフェイスカードを採用することができる。例えば、通信インターフェイス11は、各カメラ30へ撮像画像の撮像開始指示や撮像終了指示を通知したり、カメラ30から撮像画像を受信したりする。また、通信インターフェイス11は、クライアント端末50からスケルトン画像の視聴に関する各種の設定操作、例えば仮想視点を含むカメラの視点の設定操作を受け付けたり、スケルトン画像を出力したりする。
<1-3-2.記憶部>
 記憶部13は、制御部15で実行されるOS(Operating System)を始め、上記の画像生成プログラムなどの各種プログラムに用いられるデータを記憶するハードウェアに対応し得る。
 一実施形態として、記憶部13は、サーバ装置10における補助記憶装置に対応し得る。例えば、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などが補助記憶装置に対応する。この他、EPROM(Erasable Programmable Read Only Memory)などのフラッシュメモリも補助記憶装置に対応し得る。
 記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、カメラパラメータ13Aと、3次元骨格データ13Bとを記憶する。これらカメラパラメータ13A及び3次元骨格データ13B以外にも、記憶部13は、各視点の撮像画像の他、クライアント端末50のユーザのアカウント情報などの各種のデータを記憶することができる。
<1-3-2-1.カメラパラメータ>
 カメラパラメータ13Aは、カメラパラメータに関するデータである。あくまで一例として、カメラパラメータ13Aには、各カメラ30の位置や向きなどの外部パラメータ及び各カメラ30の画角やレンズの歪みなどの内部パラメータなどが含まれ得る。
<1-3-2-2.3次元骨格データ>
 3次元骨格データ13Bは、3次元の骨格の推定結果に関するデータである。あくまで一例として、3次元骨格データ13Bは、カメラ30により撮像される撮像画像のフレームごとに被写体が有する関節の3次元空間上の位置が後述の推定部15Bにより推定される。このように、3次元骨格データ13Bには、一例として、各関節の3次元空間上の位置の時系列データが含まれ得る。さらに、3次元骨格データ13Bには、3次元空間上の位置以外にも、各関節の3次元空間上の姿勢、例えば逆運動学に基づいて計算される関節角が含まれ得る。
<1-3-3.制御部>
 制御部15は、サーバ装置10の全体制御を行う処理部である。
 一実施形態として、制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより実装することができる。この他、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
 制御部15は、図示しない主記憶装置として実装されるRAM(Random Access Memory)のワークエリア上に、上記の画像生成プログラムを展開することにより、下記の処理部を仮想的に実現する。なお、図1には、上記の画像生成プログラムに対応する機能部を図示したが、上記の画像生成プログラムに対応するプログラムモジュールが他の機能とパッケージ化されたパッケージソフトウェアに対応する機能部が含まれてもかまわない。
 制御部15は、図1に示すように、取得部15Aと、推定部15Bと、生成部15Cとを有する。
<1-3-3-1.取得部>
 取得部15Aは、各視点の撮像画像を取得する処理部である。
 一実施形態として、取得部15Aは、カメラ30A~カメラ30Nから伝送される各視点の撮像画像をフレーム単位で取得することができる。ここで、取得部15Aが撮像画像を取得する情報ソースは、任意の情報ソースであってよく、カメラ30に限定されない。例えば、取得部15Aは、各視点の撮像画像を蓄積するハードディスクや光ディスクなどの補助記憶装置またはメモリカードやUSB(Universal Serial Bus)メモリなどのリムーバブルメディアから多視点の撮像画像を取得することもできる。この他、取得部15Aは、カメラ5以外の外部装置からネットワークNWを介して各視点の撮像画像を取得することもできる。
<1-3-3-2.推定部>
 推定部15Bは、各視点の撮像画像に基づいて3次元骨格を推定する処理部である。
 一実施形態として、推定部15Bは、カメラ30の視点ごとにディープラーニング等の機械学習により得られたモデルへ撮像画像を入力することにより、関節ごとに撮像画像上の位置の確信度のマップ等の出力を得る。その上で、推定部15Bは、撮像画像ごとに得られた関節の位置に基づいて撮像画像間の三角測量を行うことにより、各関節の3次元空間上の位置を推定する。さらに、推定部15Bは、各関節の3次元空間上の位置を用いて、逆運動学に基づく関節角の計算を行うことにより、各関節の3次元空間上の姿勢を算出することもできる。このように撮像画像のフレームごとに得られる各関節の3次元空間上の位置および姿勢が3次元骨格データとして記憶部13に保存される。
 なお、ここでは、被写体のあくまで一例として、人物を例に挙げて各関節の3次元空間上の位置および姿勢を推定する場合を説明したが、人物以外の環境の3次元モデルを生成することもできる。
<1-3-3-3.生成部>
 生成部15Cは、3次元の骨格がモデル化された骨格モデルを生成する処理部である。
 1つの側面として、生成部15Cは、カメラ30A~カメラ30Nの視点、あるいは3次元空間上の任意の仮想視点におけるスケルトン画像をレンダリングする。例えば、生成部15Cは、クライアント端末50等によるユーザ設定、あるいはシステム設定が行われた視点の位置と、3次元骨格データ13Bに含まれる関節の位置とに基づいて、被写体ごとに当該被写体の3次元の骨格モデルをレンダリングする。
 図2は、スケルトン画像の一例を示す図である。あくまで一例として、図2には、卓球の試合が撮影された撮像画像から生成されたスケルトン画像200が示されている。さらに、図2には、卓球台の長手方向の中央正面の位置が仮想視点Vcに設定された場合におけるスケルトン画像200が示されている。図2に示すように、スケルトン画像200には、卓球の試合を行う2人の選手に対応する3次元骨格モデルM1及びM2がレンダリングされている。さらに、スケルトン画像200には、人物以外の環境の3次元モデルの一例として、卓球台に対応する3次元モデルM3がレンダリングされている。ここで、卓球台の3次元モデルM3は、必ずしも撮像画像から生成したモデリングデータでなくともかまわない。例えば、3次元モデルM3等のように3次元空間上で位置や姿勢に変化がない環境物は、予め作成されていたモデリングデータであって良い。スケルトン画像200にはこのようなモデリングデータを追加可能である。このように、スケルトン画像200には、3次元骨格モデルがレンダリングされるので、オクルージョンにより隠される骨格部位の表現能力も向上する。
 図3は、3次元骨格モデルの一例を示す図である。図3には、図2に示された3次元骨格モデルM2が拡大して示されている。図3に示すように、3次元骨格モデルM2には、目や鼻等の特徴点を含む頭部、さらには、鎖骨、左右の肩、肘、手首、肩、肘、手首、腰、膝、足首、つま先等といった部位に対応し得る関節J1~関節J20と、各関節を接続する骨B1~骨B17とが含まれる。このように3次元骨格モデルM2が生成される際、関節J1~関節J20は、球状にモデル化される一方で、骨B1~骨B17は、線状または円柱状にモデル化される。
 ここで、関節J1~J20の球のサイズは、仮想視点Vcおよび関節J1~J20の間の距離に応じて設定される。例えば、仮想視点Vcからの距離が小さくなるに連れて、言い換えれば関節がより手前側に位置するに連れて関節の球の半径が大きく設定される。その一方で、仮想視点Vcからの距離が大きくなるに連れて、言い換えれば関節がより奥側に位置するに連れて関節の球の半径が小さく設定される。あくまで1つの側面として、関節J4、関節J7及び関節J8を例に挙げれば、仮想視点Vcからの距離が小さい順に、関節J8、関節J7、関節J4となる。この場合、図3に示された通り、関節J4、関節J7及び関節J8の球の半径は、J8>J7>J4となるように設定される。
 また、骨B1~骨B17の円柱の太さは、仮想視点Vcおよび骨B1~骨B17の間の距離に応じて設定される。例えば、仮想視点Vcからの距離が小さくなるに連れて、言い換えれば骨がより手前側に位置するに連れて骨の円柱の半径が大きく設定される。その一方で、仮想視点Vcからの距離が大きくなるに連れて、言い換えれば骨がより奥側に位置するに連れて骨の円柱の半径が小さく設定される。あくまで1つの側面として、骨B5及び骨B6を例に挙げれば、仮想視点Vcからの距離が小さい順に、骨B6、骨B5となる。この場合、図3に示された通り、骨B5及び骨B6の円柱の半径は、B6>B5となるように設定される。
 このような関節J1~J20及び骨B1~骨B17を含む3次元骨格モデルM2をモデル化することにより、関節および骨の前後方向、すなわち奥行き方向の表現能力が向上する。
 なお、スケルトン画像の視点は、必ずしも仮想カメラに与えられる仮想視点に限らず、カメラ30A~カメラ30Nのいずれかの視点であってもかまわない。さらに、スケルトン画像の視点は、必ずしも固定でなくともよく、クライアント端末50等によるユーザ設定あるいはGUI操作が行われた軌跡にしたがって移動させることもできる。
 他の側面として、生成部15Cは、3次元骨格モデルを各視点の撮像画像の他、複数の撮像画像を用いて生成される仮想視点の撮像画像に関連付けて表示させることもできる。例えば、生成部15Cは、同一のフレームに対応するスケルトン画像および撮像画像を左右または上下に並べて表示したり、あるいは3次元骨格モデルを撮像画像に投影することにより撮像画像にスケルトン画像を重畳して表示したりすることができる。このように3次元骨格モデルを撮像画像に投影する際、各関節の位置に加えて関節角を用いることで、関節のねじれの表現能力を向上させることができる。
 図4は、スケルトン画像及び撮像画像の関連付け方法の一例を示す図である。図4に示すように、カメラ30A~30Cの3つの視点の撮像画像40A~40Cが表示されている。これら撮像画像40A~40Cの右側に並べて、各視点に対応する3次元骨格モデルM1及びM2を撮像画像40A~40Cに投影することにより各視点のスケルトン画像が撮像画像40A~40Cに重畳された重畳画像40α~40γが表示されている。このようにスケルトン画像が撮像画像に重畳される場合、撮像画像に比べてスケルトン画像のコントラストを上げる側面から、撮像画像のコントラスト比を減少させる画像処理、例えば輝度や彩度の減少、透明度の増加などを行った上で重畳画像40α~40γを生成することができる。
 このような重畳画像40α~40γの表示、ひいては、撮像画像40A~40C及び重畳画像40α~40γの整列表示により、実写映像および骨格モデルの比較を容易化することができる。
 なお、3次元骨格モデルが環境の3次元モデルによりオクルージョンが発生する場合、3次元骨格モデルのうち環境の3次元モデルにより隠れる部分を描画するか否かを制御することもできる。例えば、重畳画像40γのように、3次元骨格モデルM2の脚部が卓球台に隠れる場合、3次元骨格モデルM2の脚部を描画することにより透視効果を与えたり、3次元骨格モデルM2の脚部の描画を抑制することにより違和感の発生を抑えたりすることができる。
<1-4.サーバ装置の処理手順>
 図5は、第1の実施形態に係る画像生成処理の手順を示すフローチャートである。この処理は、あくまで一例として、カメラ30から撮像画像の取得が終了するまで継続して行うことができる。
 図5に示すように、取得部15Aにより各視点の撮像画像が取得されるまで(ステップS101No)、ステップS102の処理を待機する。そして、取得部15Aにより各視点の撮像画像が取得された場合(ステップS101Yes)、推定部15Bは、各視点の撮像画像に基づいて3次元骨格を推定する(ステップS102)。
 その上、生成部15Cは、ステップS102で推定された3次元の骨格がモデル化された3次元骨格モデルを生成する(ステップS103)。このようにステップS103の処理が行われた後、ステップS101の処理へ移行する。
<1-5.効果の一面>
 上述してきたように、本開示のサーバ装置10は、上記の画像生成サービスの一環として、多視点の撮像画像から3次元の骨格を推定する。これによって、オクルージョンにより隠される骨格部位の推定を実現すると共に、3次元の骨格推定をマーカレスなモーションキャプチャにより実現できる。その上で、本開示のサーバ装置10は、このようにして推定された3次元の骨格がモデル化された3次元骨格モデルを生成する。したがって、本開示のサーバ装置10によれば、立体感のある骨格モデルを生成することが可能である。
<<2.第2の実施形態>>
 上記の第1の実施形態で説明してきた3次元骨格モデルには、各種のエフェクトを付加することができる。以下、第2の実施形態として、各種のエフェクトの内容およびその設定方法について例示する。
<2-1.サーバ装置の機能構成例>
 図6は、第2の実施形態に係るシステムの構成例を示す図である。図6に示すように、システム2は、図1に示されたシステム1に比べて、上記のエフェクトに関する機能のアドオンが行われたサーバ装置20を有する点が異なる。さらに、サーバ装置20は、図1に示すサーバ装置10に比べて、設定部25Aを制御部25がさらに有する点で異なる。
<2-1-1.設定部>
 設定部25Aは、3次元骨格モデルにエフェクトを設定する処理部である。
 1つの側面として、設定部25Aは、3次元骨格モデルの関節や骨などの骨格部位にヒートマップのエフェクトを設定できる。図7は、ヒートマップのエフェクトの一例を示す図である。図7には、図3に示された3次元骨格モデルM2にヒートマップのエフェクトが付加される例が示されている。図7に示すように、3次元骨格モデルM2に含まれる関節には、骨格部位によって異なる色のヒートマップが付加されている。より具体的には、右腕、左腕、右脚および左脚の骨格部位の違いによって関節を覆うヒートマップの色が区別して設定される。例えば、右腕に含まれる関節J3、関節J5及び関節J6には、第1の色、例えば図中の格子模様のハッチングに対応するヒートマップが付加されている。また、左腕に含まれる関節J4、関節J7及び関節J8には、第2の色、すなわち図中の点のハッチングに対応するヒートマップが付加されている。さらに、右脚に含まれる関節J13~関節J16には、第3の色、すなわち図中の斜線のハッチングに対応するヒートマップが付加されている。さらに、左脚に含まれる関節J17~関節J20には、第4の色、すなわち図中の縦線のハッチングに対応するヒートマップが付加されている。
 このように、骨格部位の位置に応じて異なる色のヒートマップを設定することで、関節の部位の識別を容易化できる。なお、図7には、関節にヒートマップのエフェクトが付加される例を挙げたが、同様のエフェクトを骨に付加することができるのも言うまでもない。また、図7には、骨格部位の位置に応じて異なる色のヒートマップを設定する例を挙げたが、骨格部位の位置に応じて異なる面積のヒートマップを設定することとしてもよい。
 他の側面として、設定部25Aは、3次元骨格モデルの関節や骨などの骨格部位の表示色を強調表示するエフェクトを設定できる。あくまで一例として、設定部25Aは、関節や骨などの骨格部位の動きに応じて色変化のエフェクトを設定できる。
 このようにエフェクトの付加の基準に用いる骨格部位の動きの指標の一例として、設定部25Aは、骨格部位の移動量を用いることができる。例えば、設定部25Aは、スケルトン画像が表示中であるフレームにおける骨格部位の位置と、当該フレームよりも前のフレームにおける骨格部位の位置とから求まる骨格部位の移動量を算出できる。例えば、Nフレーム目のスケルトン画像が表示中であるとしたとき、N-1フレーム目からNフレーム目までの骨格部位の移動量を算出できる。その上で、設定部25Aは、移動量が大きくなるに連れて骨格部位の彩度を高く設定する一方で、移動量が小さくなるに連れて骨格部位の彩度を低く設定する。また、設定部25Aは、移動量のレンジごとに割り当てられた色のうち骨格部位の移動量が対応するレンジの色を当該骨格部位の表示色として設定することもできる。これによって、移動量の大きさによって表示色を区別するエフェクトを実現できる。なお、ここでは、隣接フレーム間の骨格部位の移動量を算出する例を挙げたが、移動量の算出に用いるフレームの間隔は必ずしも隣接せずともかまわない。例えば、所定数のフレーム間で骨格部位の移動量を算出するもできる。
 この他、設定部25Aは、3次元骨格モデルに含まれる骨格部位のうち移動量の大きさが所定の閾値以上である骨格部位を強調表示するエフェクトを設定することもできる。このとき、各骨格部位の間で動きの相対差が大きい骨格部位を強調する側面から、設定部25Aは、各骨格部位の移動量から3次元骨格モデル全体の重心の移動量を減算した上で移動量の減算値が所定の閾値以上である骨格部位を強調表示するエフェクト、例えば表示色の変更やブリンク表示を設定することができる。
 図8は、強調表示のエフェクトの一例を示す図である。図8には、関節J1~関節J20および骨B1~骨B17の骨格部位の移動量から3次元骨格モデルM2全体の重心の移動量が減算された減算値が閾値以上である骨格部位に強調表示のエフェクトが付加されている。図8に示すように、関節J1~関節J20のうち、移動量の減算値が閾値以上である関節J5、関節J6、関節J18、関節J19及び関節J20の表示色が他の関節の表示色とは異なる表示色に設定されている。さらに、骨B1~骨B17のうち、移動量の減算値が閾値以上である骨B3、骨B4、骨B16および骨B17の表示色が他の骨の表示色とは異なる表示色に設定されている。
 このように、骨格部位の移動量から3次元骨格モデルM2全体の重心の移動量が減算された減算値が閾値以上である骨格部位に強調表示のエフェクトを設定することで、他の部位に比べて移動量が相対的に大きい骨格部位の識別を容易化できる。例えば、卓球の例で言えば、ラケットをスイングする場面等で動きが激しい骨格部位を識別することで、フォームの評価や解析などを支援することができる。
 なお、ここでは、動きの指標のあくまで一例として、骨格部位の移動量を例に挙げたが、これに限定されない。例えば、所定数のフレームにおける移動量から単位時間、例えば1フレームあたりの移動量の変化を計算することにより骨格部位ごとに速度を算出することができる。また、所定数のフレームにおける速度から単位時間、例えば1フレームあたりの速度の変化を計算することにより骨格部位ごとに加速度を算出することができる。これら速度や加速度を上記の強調表示のエフェクトの設定に用いることができる。
 また、ここでは、骨格部位の動きの変化に応じて強調表示のエフェクトを設定する例を挙げたが、骨格部位の動きの変化に応じて異なる色または異なる面積のヒートマップのエフェクトを設定することもできる。また、逆に、骨格部位の位置に応じて強調表示のエフェクトを設定することもできる。
 さらに、ここでは、関節や骨の表示色を変更する例を挙げたが、関節の球のサイズや骨の円柱の太さ、あるいはヒートマップの面積を変更するエフェクトを設定してもよい。例えば、移動量が大きくなるに連れて骨格部位に対応する関節の球のサイズ、骨の円柱の太さまたはヒートマップの面積を大きく設定したり、移動量が小さくなるに連れて骨格部位に対応する関節の球のサイズ、骨の円柱の太さまたはヒートマップの面積を小さく設定したりすることができる。
<2-2.サーバ装置の処理手順>
 図9は、第2の実施形態に係る画像生成処理の手順を示すフローチャートである。この処理は、あくまで一例として、カメラ30から撮像画像の取得が終了するまで継続して行うことができる。
 図9に示すように、取得部15Aにより各視点の撮像画像が取得されるまで(ステップS101No)、ステップS102の処理を待機する。そして、取得部15Aにより各視点の撮像画像が取得された場合(ステップS101Yes)、推定部15Bは、各視点の撮像画像に基づいて3次元骨格を推定する(ステップS102)。
 そして、設定部25Aは、ステップS102で推定された3次元の骨格の部位や移動量に基づいてヒートマップのエフェクトや強調表示のエフェクトを設定する(ステップS201)。
 その後、生成部15Cは、ステップS102で推定された3次元の骨格がモデル化された3次元骨格モデルを生成する(ステップS103)。その上で、生成部15Cは、ステップS201で設定されたエフェクトをステップS103で生成された3次元骨格モデルに付加する(ステップS202)。このようにステップS202の処理が行われた後、ステップS101の処理へ移行する。
<2-3.効果の一面>
 上述してきたように、本開示のサーバ装置20は、上記の画像生成サービスの一環として、3次元の骨格の部位や移動量に基づいてヒートマップのエフェクトや強調表示のエフェクトを設定する。したがって、本開示のサーバ装置20によれば、映像の評価や解析等の目的に応じて骨格部位の視認性を高めることが可能である。
<<3.応用例>>
 以下、第1の実施形態および第2の実施形態の応用例について例示する。
<3-1.CGキャラクタモデル>
 第1の実施形態および第2の実施形態では、3次元骨格モデルを生成してクライアント端末50に表示させる例を挙げたが、3次元骨格モデルの代わりに、CGキャラクタモデルを生成することもできる。図10は、CGキャラクタモデルの一例を示す図である。図10に示すように、CG画像210には、3次元骨格モデルM1に対応するCGキャラクタモデルCG1と、3次元骨格モデルM2に対応するCGキャラクタモデルCG2とがレンダリングされる。これらCGキャラクタモデルCG1及びCGキャラクタモデルCG2の表示により、状況理解や視聴効果を向上させることができる。
 また、3次元骨格モデルとCGキャラクタモデルとを並列して表示し、視点移動も連動させることもできる。これにより、状況理解(骨格モデルが分かりやすい)と仕上りの確認(CGキャラ)を両立させることもができる。この他、実写のカメラ視点、例えばカメラ30A~30Nのいずれかの視点でCGキャラクタモデルを描画することで、実写と比較を容易化し、もって状況理解の効果が向上させることができる。
<3-2.個人識別との連動>
 例えば、サーバ装置10やサーバ装置20は、撮像画像に含まれる人物に顔認証や虹彩認証などの認証処理を実行することにより個人を識別する。その上で、サーバ装置10やサーバ装置20は、CGキャラクタモデルやエフェクトの個人設定を参照して、認証処理の結果として識別された個人に対応する個人設定にしたがってCGキャラクタモデルやエフェクトを選択することができる。
<3-3.骨格推定精度の可視化>
 第2の実施形態では、骨格部位の識別にヒートマップの表示を用いる例を挙げたが、骨格部位における3次元骨格の推定結果の確信度に応じてヒートマップの色または大きさを変更することができる。例えば、推定結果の確信度が高いほど、骨格部位のヒートマップの色の彩度を上げたり、骨格部位のヒートマップの面積を大きくしたりすることができる。また、推定結果の確信度が低いほど、骨格部位のヒートマップの色の彩度を下げたり、骨格部位のヒートマップの面積を小さくしたりすることができる。これにより、3次元骨格モデル上で3次元骨格の推定精度を可視化できる。
<3-4.骨格部位の軌跡>
 第1の実施形態および第2の実施形態では、取得部15Aにより最新の撮像画像が取得されたフレームに絞って骨格部位をモデル化する例を挙げたが、過去の所定数のフレームに跨がって骨格部位の位置をモデル化することもできる。
 図11及び図12は、骨格部位の位置の軌跡の一例を示す図である。図11には、取得部15Aにより最新の撮像画像が取得されたt番目のフレームからNフレーム前のt-N番目のフレームにおけるカメラ30A~30Cの3つの撮像画像にt-N番目のフレームにおける骨格部位の位置が重畳された重畳画像60A~60Cが示されている。これら重畳画像60A~60Cの右側に並べて、t番目のフレームにおけるカメラ30A~30Cの3つの撮像画像にt-N番目からt番目までのN個のフレームにおける骨格部位の位置の軌跡が重畳された重畳画像80A~80Cが示されている。また、図12には、t番目のフレームにおける俯瞰視点(仮想視点)の撮像画像にt-N番目からt番目までのN個のフレームにおける骨格部位の位置の軌跡が重畳された重畳画像80Vが示されている。さらに、図11に示す重畳画像80A~80C及び図12に示す重畳画像80Vでは、t番目のフレームにおける3次元骨格モデル全体の重心の移動量が減算された減算値が閾値以上である関節に絞ってN個のフレームにおける関節の位置の軌跡が重畳されており、他の骨格部位についてはt番目のフレームにおける骨格部位の位置のみが重畳されている。
 ここで、重畳画像80A~80Cや重畳画像80VでN個のフレームにおける関節の位置の軌跡が重畳される場合、t番目のフレーム以外の過去のフレームにおける関節の球はt番目のフレームにおける関節の球の半径よりも小さい半径が設定される。すなわち、同一の関節については、t番目のフレームにおける関節の球の半径を最大値とし、t番目のフレームから過去のフレームに遡るに連れてt番目のフレームにおける関節の球の半径を単調減少させることによりN個のフレームの関節の球の半径を設定する。この他、t番目のフレームから過去のフレームに遡るに連れてt番目のフレームにおける関節よりも輝度や彩度を単調減少させたり、透明度を単調増加させたりすることもできる。
 このようにして生成される重畳画像80A~80Cや重畳画像80Vによれば、骨格部位の位置の軌跡を可視化できる。さらに、t番目のフレームから過去のフレームに遡るに連れてt番目のフレームにおける関節の球の半径を単調減少させるので、骨格部位の位置の時系列変化がより識別しやすくなる。なお、ここでは、関節の位置の軌跡を生成する例を挙げたが、同様の方法で骨の位置の軌跡やヒートマップの位置の軌跡を生成することができるのは言うまでもない。
<<4.変形例>>
 また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
 また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
<<5.ハードウェア構成>>
 上述してきた各実施形態に係るサーバ装置10は、例えば図13に示すような構成のコンピュータ1000によって実現される。以下、上述の実施形態に係るサーバ装置10またはサーバ装置20を例に挙げて説明する。図13は、コンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
 CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
 ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
 HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係る開発支援プログラムを記録する記録媒体である。
 通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
 入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ1000が上述の実施形態に係るサーバ装置10またはサーバ装置20として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされた画像生成プログラムを実行することにより、制御部15に含まれる各機能部を実現する。また、HDD1400には、本開示に係る画像生成プログラムや、コンテンツ記憶部121内のデータが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 複数の視点の撮像画像に基づいて3次元の骨格を推定する推定部と、
 前記3次元の骨格がモデル化された骨格モデルを生成する生成部と、
 を備える情報処理装置。
(2)
 前記生成部は、前記3次元の骨格のうち関節を球状にモデル化すると共に骨を円柱状にモデル化する、
 前記(1)に記載の情報処理装置。
(3)
 前記生成部は、前記複数の視点のうちいずれかの視点または仮想視点と、前記関節または前記骨との距離に基づいて前記関節の球の半径または前記骨の円柱の半径を設定する、
 前記(2)に記載の情報処理装置。
(4)
 前記生成部は、前記距離が小さくなるに連れて前記関節の球の半径または前記骨の円柱の半径を大きく設定するか、あるいは前記距離が大きくなるに連れて前記関節の球の半径または前記骨の円柱の半径を小さく設定する、
 前記(3)に記載の情報処理装置。
(5)
 前記骨格モデルは、前記複数の視点または仮想視点の撮像画像に関連付けて表示される、
 前記(1)に記載の情報処理装置。
(6)
 前記骨格モデルは、前記骨格モデルと同一のフレームの撮像画像と左右または上下に並べて表示される、
 前記(5)に記載の情報処理装置。
(7)
 前記骨格モデルは、前記骨格モデルと同一のフレームの撮像画像に重畳して表示される、
 前記(5)に記載の情報処理装置。
(8)
 前記撮像画像は、輝度または彩度を減少させるか、あるいは透明度を増加して表示される、
 前記(7)に記載の情報処理装置。
(9)
 前記骨格モデルにエフェクトを設定する設定部をさらに備える、
 前記(2)に記載の情報処理装置。
(10)
 前記設定部は、前記関節または前記骨を覆うヒートマップのエフェクトを設定する、
 前記(9)に記載の情報処理装置。
(11)
 前記設定部は、前記関節または前記骨の位置に応じて異なる色または異なる面積のヒートマップを設定する、
 前記(10)に記載の情報処理装置。
(12)
 前記設定部は、前記関節または前記骨の骨格部位の移動量、速度または加速度に応じて異なる色または異なる面積のヒートマップを設定する、
 前記(10)に記載の情報処理装置。
(13)
 前記設定部は、前記関節または前記骨の骨格部位における3次元の骨格の推定結果の確信度に応じて異なる色または異なる面積のヒートマップを設定する、
 前記(10)に記載の情報処理装置。
(14)
 前記設定部は、前記関節または前記骨の骨格部位を強調表示するエフェクトを設定する、
 前記(9)に記載の情報処理装置。
(15)
 前記設定部は、前記関節または前記骨の骨格部位の移動量、速度または加速度に応じて異なる表示色を設定する、
 前記(14)に記載の情報処理装置。
(16)
 前記設定部は、前記関節または前記骨の骨格部位のうち移動量、速度または加速度が所定の閾値以上である骨格部位を強調表示するエフェクトを設定する、
 前記(14)に記載の情報処理装置。
(17)
 前記設定部は、前記関節または前記骨の骨格部位の移動量から前記骨格モデルの重心の移動量が減算された減算値が所定の閾値以上である骨格部位を強調表示するエフェクトを設定する、
 前記(16)に記載の情報処理装置。
(18)
 前記生成部は、前記撮像画像が取得された最新のフレームから過去の所定数のフレームに跨がって前記関節または前記骨の骨格部位の位置の軌跡をモデル化する、
 前記(2)に記載の情報処理装置。
(19)
 前記生成部は、前記最新のフレーム以外の過去のフレームにおける関節の球の半径または骨の円柱の半径を前記最新のフレームにおける関節の球の半径または骨の円柱の半径よりも小さい半径を設定する、
 前記(18)に記載の情報処理装置。
(20)
 前記生成部は、前記最新のフレームにおける関節の球の半径または骨の円柱の半径を最大値とし、前記最新のフレームから過去のフレームに遡るに連れて前記最新のフレームにおける関節の球の半径または骨の円柱の半径を単調減少させることにより過去のフレームの関節の球の半径または骨の円柱の半径を設定する、
 前記(19)に記載の情報処理装置。
(21)
 複数の視点の撮像画像に基づいて3次元の骨格を推定し、
 前記3次元の骨格がモデル化された骨格モデルを生成する、
 処理をコンピュータが実行する情報処理方法。
(22)
 複数の視点の撮像画像に基づいて3次元の骨格を推定し、
 前記3次元の骨格がモデル化された骨格モデルを生成する、
 処理をコンピュータに実行させる情報処理プログラム。
  1  システム
 10  サーバ装置
 11  通信インターフェイス
 13  記憶部
 13A カメラパラメータ
 13B 3次元骨格データ
 15  制御部
 15A 取得部
 15B 推定部
 15C 生成部
 30A,30B,30N カメラ
 50  クライアント端末

Claims (20)

  1.  複数の視点の撮像画像に基づいて3次元の骨格を推定する推定部と、
     前記3次元の骨格がモデル化された骨格モデルを生成する生成部と、
     を備える情報処理装置。
  2.  前記生成部は、前記3次元の骨格のうち関節を球状にモデル化すると共に骨を円柱状にモデル化する、
     請求項1に記載の情報処理装置。
  3.  前記生成部は、前記複数の視点のうちいずれかの視点または仮想視点と、前記関節または前記骨との距離に基づいて前記関節の球の半径または前記骨の円柱の半径を設定する、
     請求項2に記載の情報処理装置。
  4.  前記生成部は、前記距離が小さくなるに連れて前記関節の球の半径または前記骨の円柱の半径を大きく設定するか、あるいは前記距離が大きくなるに連れて前記関節の球の半径または前記骨の円柱の半径を小さく設定する、
     請求項3に記載の情報処理装置。
  5.  前記骨格モデルは、前記複数の視点または仮想視点の撮像画像に関連付けて表示される、
     請求項1に記載の情報処理装置。
  6.  前記骨格モデルは、前記骨格モデルと同一のフレームの撮像画像と左右または上下に並べて表示される、
     請求項5に記載の情報処理装置。
  7.  前記骨格モデルは、前記骨格モデルと同一のフレームの撮像画像に重畳して表示される、
     請求項5に記載の情報処理装置。
  8.  前記撮像画像は、輝度または彩度を減少させるか、あるいは透明度を増加して表示される、
     請求項7に記載の情報処理装置。
  9.  前記骨格モデルにエフェクトを設定する設定部をさらに備える、
     請求項2に記載の情報処理装置。
  10.  前記設定部は、前記関節または前記骨を覆うヒートマップのエフェクトを設定する、
     請求項9に記載の情報処理装置。
  11.  前記設定部は、前記関節または前記骨の位置に応じて異なる色または異なる面積のヒートマップを設定する、
     請求項10に記載の情報処理装置。
  12.  前記設定部は、前記関節または前記骨の骨格部位の移動量、速度または加速度に応じて異なる色または異なる面積のヒートマップを設定する、
     請求項10に記載の情報処理装置。
  13.  前記設定部は、前記関節または前記骨の骨格部位における3次元の骨格の推定結果の確信度に応じて異なる色または異なる面積のヒートマップを設定する、
     請求項10に記載の情報処理装置。
  14.  前記設定部は、前記関節または前記骨の骨格部位を強調表示するエフェクトを設定する、
     請求項9に記載の情報処理装置。
  15.  前記設定部は、前記関節または前記骨の骨格部位の移動量、速度または加速度に応じて異なる表示色を設定する、
     請求項14に記載の情報処理装置。
  16.  前記設定部は、前記関節または前記骨の骨格部位のうち移動量、速度または加速度が所定の閾値以上である骨格部位を強調表示するエフェクトを設定する、
     請求項14に記載の情報処理装置。
  17.  前記設定部は、前記関節または前記骨の骨格部位の移動量から前記骨格モデルの重心の移動量が減算された減算値が所定の閾値以上である骨格部位を強調表示するエフェクトを設定する、
     請求項16に記載の情報処理装置。
  18.  前記生成部は、前記撮像画像が取得された最新のフレームから過去の所定数のフレームに跨がって前記関節または前記骨の骨格部位の位置の軌跡をモデル化する、
     請求項2に記載の情報処理装置。
  19.  複数の視点の撮像画像に基づいて3次元の骨格を推定し、
     前記3次元の骨格がモデル化された骨格モデルを生成する、
     処理をコンピュータが実行する情報処理方法。
  20.  複数の視点の撮像画像に基づいて3次元の骨格を推定し、
     前記3次元の骨格がモデル化された骨格モデルを生成する、
     処理をコンピュータに実行させる情報処理プログラム。
PCT/JP2020/045994 2019-12-27 2020-12-10 情報処理装置、情報処理方法及び情報処理プログラム WO2021131738A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US17/777,416 US12067677B2 (en) 2019-12-27 2020-12-10 Information processing apparatus, information processing method, and computer-readable storage medium
CN202080088561.5A CN114830183A (zh) 2019-12-27 2020-12-10 信息处理装置、信息处理方法和信息处理程序
EP20905020.2A EP4083926A4 (en) 2019-12-27 2020-12-10 INFORMATION PROCESSING DEVICE, METHOD AND PROGRAM
JP2021567205A JP7501543B2 (ja) 2019-12-27 2020-12-10 情報処理装置、情報処理方法及び情報処理プログラム
JP2024092499A JP2024103791A (ja) 2019-12-27 2024-06-06 情報処理装置、情報処理方法及び情報処理プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-239053 2019-12-27
JP2019239053 2019-12-27

Publications (1)

Publication Number Publication Date
WO2021131738A1 true WO2021131738A1 (ja) 2021-07-01

Family

ID=76575470

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/045994 WO2021131738A1 (ja) 2019-12-27 2020-12-10 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (5)

Country Link
US (1) US12067677B2 (ja)
EP (1) EP4083926A4 (ja)
JP (2) JP7501543B2 (ja)
CN (1) CN114830183A (ja)
WO (1) WO2021131738A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7598986B1 (ja) 2023-08-25 2024-12-12 株式会社バンダイ 情報処理装置、及び、コンピュータプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006148201A (ja) * 2004-11-16 2006-06-08 National Institute Of Advanced Industrial & Technology 関節運動情報の電子透かし処理方法および装置
JP2010017447A (ja) * 2008-07-14 2010-01-28 Nippon Telegr & Teleph Corp <Ntt> 歩行動作分析装置、歩行動作分析方法、歩行動作分析プログラムおよびその記録媒体
JP2010520561A (ja) * 2007-03-07 2010-06-10 モーテック・ビー.ブイ. 人体における筋力と関節トルクとをリアルタイムでインタラクティブに視覚化する方法
WO2012046392A1 (ja) * 2010-10-08 2012-04-12 パナソニック株式会社 姿勢推定装置及び姿勢推定方法
JP2014068714A (ja) * 2012-09-28 2014-04-21 Kitasato Institute 関節角度測定システム
JP2014228595A (ja) * 2013-05-20 2014-12-08 コニカミノルタ株式会社 拡張現実空間表示装置
WO2019016152A1 (en) 2017-07-19 2019-01-24 Arlanxeo Deutschland Gmbh STAR DIENIC RUBBER

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009061283A2 (en) * 2007-11-09 2009-05-14 National University Of Singapore Human motion analysis system and method
US10664690B2 (en) * 2013-11-21 2020-05-26 Mo' Motion Ventures Jump shot and athletic activity analysis system
EP3506844B1 (en) * 2016-12-22 2020-10-14 Episurf IP-Management AB System and method for optimizing a planning implant position in an anatomical joint
US10667867B2 (en) * 2017-05-03 2020-06-02 Stryker European Holdings I, Llc Methods of pose estimation of three-dimensional bone models in surgical planning a total ankle replacement
EP3651678A4 (en) * 2017-07-08 2021-04-14 Vuze Medical Ltd. APPARATUS AND METHODS FOR USE IN IMAGE GUIDED SKELETON PROCEDURES
CN115722286A (zh) 2017-07-18 2023-03-03 分子装置有限公司 具有基于成像的移液管吸头定位的对象挑取设备
US11648405B2 (en) * 2019-11-01 2023-05-16 Resolute 360, LLC Percutaneous nerve evaluation for sacral neuromodulation
US11621086B2 (en) * 2020-06-04 2023-04-04 Episurf Ip-Management Ab Customization of individualized implant
US12182956B2 (en) * 2021-07-01 2024-12-31 Microport Orthopedics Holdings Inc. Systems and methods of using three-dimensional image reconstruction to aid in assessing bone or soft tissue aberrations for orthopedic surgery
US11983833B2 (en) * 2022-03-30 2024-05-14 Health Connect Global Limited Computer-implemented method of generating an avatar

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006148201A (ja) * 2004-11-16 2006-06-08 National Institute Of Advanced Industrial & Technology 関節運動情報の電子透かし処理方法および装置
JP2010520561A (ja) * 2007-03-07 2010-06-10 モーテック・ビー.ブイ. 人体における筋力と関節トルクとをリアルタイムでインタラクティブに視覚化する方法
JP2010017447A (ja) * 2008-07-14 2010-01-28 Nippon Telegr & Teleph Corp <Ntt> 歩行動作分析装置、歩行動作分析方法、歩行動作分析プログラムおよびその記録媒体
WO2012046392A1 (ja) * 2010-10-08 2012-04-12 パナソニック株式会社 姿勢推定装置及び姿勢推定方法
JP2014068714A (ja) * 2012-09-28 2014-04-21 Kitasato Institute 関節角度測定システム
JP2014228595A (ja) * 2013-05-20 2014-12-08 コニカミノルタ株式会社 拡張現実空間表示装置
WO2019016152A1 (en) 2017-07-19 2019-01-24 Arlanxeo Deutschland Gmbh STAR DIENIC RUBBER

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4083926A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7598986B1 (ja) 2023-08-25 2024-12-12 株式会社バンダイ 情報処理装置、及び、コンピュータプログラム

Also Published As

Publication number Publication date
JP2024103791A (ja) 2024-08-01
EP4083926A1 (en) 2022-11-02
US12067677B2 (en) 2024-08-20
US20240005600A1 (en) 2024-01-04
JP7501543B2 (ja) 2024-06-18
EP4083926A4 (en) 2023-07-05
CN114830183A (zh) 2022-07-29
JPWO2021131738A1 (ja) 2021-07-01

Similar Documents

Publication Publication Date Title
US8737767B2 (en) Perceptually guided capture and stylization of 3D human figures
US11721114B2 (en) Method, system, and device of generating a reduced-size volumetric dataset
JP6934887B2 (ja) 単眼カメラを用いたリアルタイム3d捕捉およびライブフィードバックのための方法およびシステム
JP4473754B2 (ja) 仮想試着装置
CN111199579B (zh) 一种目标物的三维模型构建方法、装置、设备及介质
US10229483B2 (en) Image processing apparatus and image processing method for setting an illumination environment
JP5773944B2 (ja) 情報処理装置および情報処理方法
JP7566973B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6793151B2 (ja) オブジェクトトラッキング装置、オブジェクトトラッキング方法およびオブジェクトトラッキングプログラム
JP7164045B2 (ja) 骨格認識方法、骨格認識プログラムおよび骨格認識システム
JP7164968B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP2018206025A (ja) 情報処理装置、情報処理方法
JP6319804B2 (ja) 投影画像生成装置、投影画像生成方法および投影画像生成プログラム
JP2012185772A (ja) 非固定ズームカメラを用いた自由視点映像の合成画質高精度化方法およびプログラム
JP2024103791A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US11501577B2 (en) Information processing apparatus, information processing method, and storage medium for determining a contact between objects
JP7318814B2 (ja) データ生成方法、データ生成プログラムおよび情報処理装置
Amirkhanov et al. WithTeeth: Denture Preview in Augmented Reality.
JP2019057070A (ja) 画像処理装置、画像処理方法、およびプログラム
Chang et al. Seeing through the appearance: Body shape estimation using multi-view clothing images
WO2022190206A1 (ja) 骨格認識方法、骨格認識プログラムおよび体操採点支援システム
Akinjala et al. Animating human movement & gestures on an agent using Microsoft kinect
JP7500333B2 (ja) 生成装置、生成方法、およびプログラム
WO2023058545A1 (ja) 情報処理装置および方法、プログラム
US10109062B1 (en) Non-coherent point tracking and solving for ambiguous images and geometry

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 17777416

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2021567205

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020905020

Country of ref document: EP

Effective date: 20220727