WO2023095667A1 - データ処理装置およびデータ処理方法、並びにプログラム - Google Patents

データ処理装置およびデータ処理方法、並びにプログラム Download PDF

Info

Publication number
WO2023095667A1
WO2023095667A1 PCT/JP2022/042322 JP2022042322W WO2023095667A1 WO 2023095667 A1 WO2023095667 A1 WO 2023095667A1 JP 2022042322 W JP2022042322 W JP 2022042322W WO 2023095667 A1 WO2023095667 A1 WO 2023095667A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
posture
posture data
unit
vector
Prior art date
Application number
PCT/JP2022/042322
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 ソニーセミコンダクタソリューションズ株式会社
Publication of WO2023095667A1 publication Critical patent/WO2023095667A1/ja

Links

Images

Classifications

    • 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
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Definitions

  • the present disclosure relates to a data processing device, a data processing method, and a program, and more particularly to a data processing device, a data processing method, and a program that can improve the convenience of posture data.
  • controllable feature amounts extracted from moment-to-moment measurement values of the body shape are converted into position and orientation information representing the angles of joints or the dimensions of parts of a CG character.
  • a CG character animation creation device has been proposed.
  • posture data obtained by capturing the movement of a person contains information that can identify the person, and the posture data has not been normalized or generalized. Therefore, there is a demand for more uniform handling of posture data and more consideration for privacy. It is hoped that it will be possible.
  • the present disclosure has been made in view of such circumstances, and is intended to improve the convenience of posture data.
  • a data processing device includes a directional vector conversion unit that converts 3D posture data represented by specific feature points of a person into directional vectors and represents the posture data as directional vectors; and a model application unit that applies the obtained posture data to a CG model of the person.
  • a data processing method or program converts 3D posture data represented by specific feature points of a person into direction vectors, represents the posture data by the direction vectors, and expresses the posture data by the direction vectors. and applying the pose data to a CG model of the person.
  • 3D posture data represented by specific feature points of a person is directional vectorized, the posture data is represented by a directional vector, and the posture data represented by the directional vector is converted into a directional vector. Applies to CG models.
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a data processing device to which the present technology is applied;
  • FIG. It is a figure which shows an example of 3D attitude
  • FIG. 4 is a diagram showing an example of a direction vector representing orientation data;
  • FIG. 4 is a diagram showing the start and end points of direction vectors and their names in association with each other;
  • FIG. 10 is a diagram showing an example distribution of LeftLowLeg vectors, RightLowLeg vectors, LeftUpLeg vectors, and RightUpLeg vectors before and after data cleansing processing;
  • FIG. 4 is a diagram showing an example of a direction vector representing orientation data
  • FIG. 4 is a diagram showing the start and end points of direction vectors and their names in association with each other
  • FIG. 10 is a diagram showing an example distribution of LeftLowLeg vectors, RightLowLeg vectors, LeftUpLeg vectors, and RightUpLeg vectors before and
  • FIG. 10 is a diagram showing distribution examples of a LeftUpBody vector, a RightUpBody vector, a RightNeck vector, and a Hip vector before and after data cleansing processing;
  • FIG. 10 is a diagram showing distribution examples of Shoulder vectors, LeftArm vectors, RightArm vectors, and RightForeArm vectors before and after data cleansing processing;
  • FIG. 10 is a diagram showing an example distribution of LeftForeArm vectors and LeftNeck vectors before and after data cleansing processing;
  • FIG. 10 is a diagram illustrating data cleansing processing for deleting posture data due to time-series constraints;
  • FIG. 10 is a diagram for explaining the moving standard deviation with a window size of 7;
  • FIG. 10 is a diagram for explaining the moving standard deviation with a window size of 7;
  • FIG. 4 is a diagram showing an example of original data of foot direction vectors and moving standard deviations; It is a figure explaining automatic classification of a rest posture and a walking posture. It is a figure explaining extension of attitude
  • FIG. 10 is a diagram illustrating application of posture data to a CG model; It is a figure which shows an example of the order which rotates a direction vector. 4 is a flowchart for explaining data processing executed by a data processing device; 1 is a block diagram showing a configuration example of an embodiment of a computer to which the present technology is applied; FIG.
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a data processing device to which the present technology is applied.
  • 3D data which is three-dimensional data obtained by measuring a person
  • 2D data which is two-dimensional data obtained by imaging a person
  • TOF data which is image data of distance information for a person acquired by a TOF (Time Of Flight) sensor
  • TOF data which is image data of distance information for a person acquired by a TOF (Time Of Flight) sensor
  • TOF Time Of Flight
  • the data processing device 11 includes a 3D posture estimation unit 12, a 2D posture estimation unit 13, a 3D transformation unit 14, a time series processing unit 15, a global coordinate transformation unit 16, a direction vector transformation unit 17, a data correction processing unit 18, and a posture classification unit. 19 , a data extension unit 20 and a model application unit 21 .
  • the 3D posture estimation unit 12 estimates the posture of the person represented by the 3D data using AI (Artificial Intelligence), and generates 3D posture data obtained as the estimation result. is supplied to the time-series processing unit 15 .
  • AI Artificial Intelligence
  • the 2D posture estimation unit 13 uses AI to estimate the posture of the person represented by the 2D data, and converts the 2D posture data obtained as the estimation result to the 3D conversion unit. 14.
  • the 3D transforming unit 14 uses the TOF data to transform the 2D posture data supplied from the 2D posture estimating unit 13 into three-dimensional data, and the 3D posture data obtained as the transformation result is sent to the time-series processing unit. 15.
  • the 3D posture data supplied to the time-series processing unit 15 is obtained by extracting specific joints of a person to be processed as feature points, for example, as shown in FIG. It is represented by three-dimensional coordinates that indicate the position of a point.
  • the time-series processing unit 15 performs time-series processing for associating the same person with the 3D posture data continuously supplied from the 3D posture estimation unit 12 or the 3D conversion unit 14 over time. For example, in the time-series processing, the time-series processing unit 15 assigns a person ID (Identification) that identifies the same person to each piece of 3D posture data.
  • a person ID Identity
  • the time-series processing unit 15 associates the same person (person ID: person 1) with 3D posture data at time t, time t+1, time t+2, and so on. be able to.
  • the global coordinate transformation unit 16 transforms the coordinates of the 3D posture data subjected to time-series processing in the time-series processing unit 15 (for example, the coordinates according to the position of the device that measured or captured the person) into the data processing unit 11. Convert to global coordinates used to construct the CG model.
  • the direction vector conversion unit 17 converts the 3D posture data converted to global coordinates by the global coordinate conversion unit 16 into direction vectors and converts them into posture data represented by direction vectors.
  • the direction vector conversion of the 3D posture data by the directional vector conversion unit 17 will be described later with reference to FIGS. 4 and 5.
  • the data correction processing unit 18 performs data correction processing such as data cleansing processing and data interpolation processing on the posture data converted into direction vectors by the direction vector conversion unit 17 .
  • data cleansing process is, as will be described later with reference to FIGS. 6 to 10, a process of removing posture data that cannot be taken by humans or deleting posture data due to time-series restrictions.
  • Data interpolation processing is processing for interpolating posture data removed or deleted by data cleansing processing using posture data before and after the posture data.
  • the posture classification unit 19 classifies the posture data that has undergone data correction processing in the data correction processing unit 18 by predetermined postures, and distributes the labeled posture data to the data extension unit 20 and the model applying unit 19 . It is supplied to the section 21.
  • the posture classification unit 19 can automatically classify posture data into static posture and walking posture, as will be described later with reference to FIGS. 11 to 13 .
  • the data extension unit 20 appropriately combines the posture data supplied from the posture classification unit 19 with other posture data, for example, by combining the upper body and the lower body as described later with reference to FIG. , extends the pose data to generate new pose data.
  • the data extension unit 20 can generate not only posture data based on 3D data or 2D data input to the data processing device 11, but also a large amount of more diverse posture data.
  • the data extension unit 20 then supplies the newly generated posture data to the model application unit 21 .
  • the model application unit 21 applies the posture data supplied from the posture classification unit 19 or the posture data supplied from the data extension unit 20 to the CG model, and outputs a CG model with a posture according to the posture data.
  • the data processing device 11 is configured in this manner, and can output a large amount of CG models to which various posture data are applied. Convenience can be improved when handling posture data.
  • the directional vector conversion unit 17 converts 3D posture data represented by specific feature points of a person as shown in FIG. 2 into directional vectors, and as shown in FIG. The data is converted into posture data represented by the first to nineteenth direction vectors as end points.
  • FIG. 5 shows the start points, end points, and names of the first to nineteenth direction vectors in association with each other.
  • the first direction vector is a LeftLowLeg vector whose starting point is the point 14 indicating the left knee and whose ending point is the point 16 indicating the left heel.
  • the second direction vector is a LeftUpLeg vector starting at point 12 indicating the left hip and ending at point 14 indicating the left knee.
  • the third direction vector is a RightLowLeg vector starting at point 15 indicating the right knee and ending at point 17 indicating the right heel.
  • the fourth direction vector is a RightUpLeg vector whose starting point is the point 13 indicating the right hip and whose ending point is the point 15 indicating the right knee.
  • the fifth direction vector is a hip vector whose starting point is the point 12 indicating the left hip and whose ending point is the point 13 indicating the right hip.
  • the sixth direction vector is a LeftUpBody vector starting from point 12 indicating the left waist and ending at point 6 indicating the left shoulder.
  • the seventh direction vector is a RightUpBody vector starting from point 13 indicating the right waist and ending at point 7 indicating the right shoulder.
  • the eighth direction vector is a shoulder vector starting from point 6 indicating the left shoulder and ending at point 7 indicating the right shoulder.
  • the ninth direction vector is a LeftArm vector starting at point 6 indicating the left shoulder and ending at point 8 indicating the left elbow.
  • the tenth direction vector is a RightArm vector starting at point 7 indicating the right shoulder and ending at point 9 indicating the right elbow.
  • the eleventh direction vector is a LeftForeArm vector starting at point 8 indicating the left elbow and ending at point 10 indicating the left wrist.
  • the twelfth direction vector is a RightForeArm vector starting from point 9 indicating the right elbow and ending at point 11 indicating the right wrist.
  • the thirteenth direction vector is an Eyes vector whose starting point is point 2 indicating the left eye and whose ending point is point 3 indicating the right eye.
  • the fourteenth direction vector is a LeftNose vector starting from point 2 indicating the left eye and ending at point 1 indicating the nose.
  • the fifteenth direction vector is a RightNose vector whose start point is point 3 indicating the right eye and whose end point is point 1 indicating the nose.
  • the sixteenth direction vector is a RightFace vector starting from point 4 indicating the left cheek and ending at point 2 indicating the left eye.
  • the seventeenth direction vector is a LeftFace vector whose starting point is point 5 indicating the right cheek and ending point is point 3 indicating the right eye.
  • the eighteenth direction vector is a LeftNeck vector starting from point 6 indicating the left shoulder and ending at point 1 indicating the nose.
  • the 19th direction vector is a RightNeck vector starting from point 7 indicating the right shoulder and ending at point 1 indicating the nose.
  • orientations of the first to nineteenth direction vectors can be normalized by the Hip vector, which is the fifth direction vector.
  • the directional vectorized posture data can be represented by a matrix as shown in the following equation (1) as numerical data excluding personal information.
  • the direction vector conversion unit 17 converts 3D posture data into direction vectors and converts it into posture data represented by a plurality of direction vectors.
  • the data processing device 11 introduces data cleansing processing as a mechanism for automatically removing or deleting erroneously estimated posture data.
  • the data correction processing unit 18 performs data cleansing processing that removes posture data that cannot be assumed by humans, and corrects the direction vector in which the waist or shoulders are excessively inclined with respect to the horizontal, the direction vector in which the upper body is excessively inclined backward, etc. , unnatural pose data can be removed by thresholding.
  • the left side shows the distribution before the data cleansing process
  • the right side shows the distribution after the data cleansing process for each direction vector.
  • FIG. 6A shows an example distribution of the LeftLowLeg vector before and after the data cleansing process. Before the data cleansing process (left side), the distribution spreads out, while after the data cleansing process (right side), the distribution narrows and is too slanted for humans to handle.LeftLowLeg The vectors are shown removed by thresholding.
  • FIG. 7A shows a LeftUpBody vector
  • Fig. 7B shows a RightUpBody vector
  • Fig. 7C shows a RightNeck vector
  • Fig. 7D shows a Hip vector
  • Figure 8A shows the Shoulder vector
  • Figure 8B shows the LeftArm vector
  • Figure 8C shows the RightArm vector
  • Figure 8D shows the RightForeArm vector.
  • FIG. 9A shows a distribution example of the LeftForeArm vector
  • FIG. 9B shows a distribution example of the LeftNeck vector before and after the data cleansing process is performed.
  • vector similarity can be determined based on the cos similarity shown in the following equation (2).
  • formula (2) is a formula for obtaining cos similarity between vector a and vector b.
  • the cos-similarity ranges from -1 to +1, and becomes +1 when the vector a and the vector b match perfectly.
  • the data correction processing unit 18 evaluates the continuity of posture data from the previous frame based on the cos similarity of the 12 direction vectors, as shown in the following equation (3). Then, the data correction processing unit 18 deletes low-similar posture data [x t y t z t ] whose average cos-similarity is equal to or less than a predetermined threshold value (for example, 0.9) as erroneous estimation. do.
  • a predetermined threshold value for example, 0.9
  • the data correction processing unit 18 determines that there is continuity between the posture data at time t and the posture data at time t+1, and that there is continuity between the posture data at time t+1 and the posture data at time t+2. be able to.
  • the data correction processing unit 18 determines that there is no continuity between the posture data at time t and the posture data at time t+1, and that there is no continuity between the posture data at time t+1 and the posture data at time t+2. , the posture data at time t+1 can be deleted. In this way, when small cos-similarities occur two times in a row, posture data before and after the deleted posture data are treated as normal.
  • the data correction processing unit 18 can remove or delete unnatural posture data through data cleansing processing, and interpolate the removed or deleted posture data from previous and subsequent posture data through data interpolation processing.
  • the orientation classification unit 19 classifies and labels the time-series orientation data so that the orientation data can be intentionally handled by the subsequent processing unit. be introduced.
  • a method of automatically classifying time-series posture data into a static posture and a walking posture on a rule basis will be described.
  • the posture classification unit 19 calculates the movement standard deviation with a predetermined window size for time-series posture data.
  • FIG. 11 shows a processing example of first calculating the standard deviation with a window size of 7 from time t+1 to time t+7, and then calculating the standard deviation with a window size of 7 from time t+2 to time t+8.
  • the posture classification unit 19 performs determination processing for threshold determination of the movement standard deviation by focusing on the Y component and Z component of the direction vector of the foot. That is, if the Y and Z components of the leg direction vector are less than the threshold, the posture data is determined to be a walking posture, and if the Y and Z components of the leg direction vector are greater than or equal to the threshold, the posture data is A walking posture is determined.
  • FIG. 12A shows an example of the original data (left side) and the movement standard deviation (right side) of the leg direction vector in the posture data of a person whose person ID is 2.
  • the posture classification unit 19 can threshold-determine this posture data as a stationary posture.
  • FIG. 12B shows an example of the original data (left side) and the movement standard deviation (right side) of the leg direction vector in the posture data of the person whose person ID is 11.
  • the posture classification unit 19 can threshold-determine this posture data as a walking posture.
  • the posture classification unit 19 classifies the posture data of the person with the person ID of 2 as the stationary posture and assigns the label idle to the posture data of the person with the person ID of 11 as shown in FIG.
  • the posture data of a person can be classified as a walking posture and given the label walk.
  • the data extension unit 20 is configured to extend the orientation data so that a sufficient number of orientation data samples can be secured. is introduced.
  • posture data By automatically generating posture data, the generalization performance of AI learning can be improved.
  • the data extension unit 20 may add posture data (posture data having a cosine similarity equal to or greater than a threshold) that is highly similar to a predetermined part of the original posture data supplied from the posture classification unit 19 to the acquired posture data. to find a group of posture data with high similarity for that part. Then, the data extension unit 20 randomly selects one posture data for extension from the posture data group, and replaces the direction vector of a predetermined part of the original posture data with the direction vector of another part of the posture data for extension. New posture data is generated by combining them.
  • posture data posterior data having a cosine similarity equal to or greater than a threshold
  • FIG. 14 shows an example of processing with the lower body of the original data as a predetermined part.
  • a posture data group of posture data having a lower body that is highly similar to the lower body of the original data can be obtained.
  • posture data for expansion is randomly selected from the posture data group.
  • new posture data is generated by combining the direction vector of the lower body of the original posture data with the direction vector of the upper body of the extension posture data.
  • the data extension unit 20 extends posture data to generate new posture data.
  • the model application unit 21 calculates the axis of rotation of the direction vector of the CG model by the outer product of the direction vector of the posture data and the direction vector of the CG model, and calculates the rotation axis of the direction vector of the posture data and the direction of the CG model.
  • a rotation angle for rotating the direction vector of the CG model is calculated by the inner product with the vector. Then, the model application unit 21 can transform the posture of the CG model so as to match the posture of the posture data by bone rotation processing.
  • FIG. 15 shows an example of processing for the LeftLowLeg vector.
  • the rotation axis of the LeftLowLeg vector of the CG model is calculated by the outer product of the LeftLowLeg vector of the posture data and the LeftLowLeg vector of the CG model.
  • a rotation angle for rotating the LeftLowLeg vector of the CG model is calculated by the inner product of the LeftLowLeg vector of the posture data and the LeftLowLeg vector of the CG model.
  • the quaternion q expresses the rotation of the angle ⁇ about the arbitrary rotation axis ( ⁇ x , ⁇ y , ⁇ z ) in the three-dimensional space, and is expressed by four parameters as shown in the following equation (4) can do.
  • model application unit 21 performs processing to sequentially rotate the direction vectors in the order (forward kinematics) according to the black circled white numbers in FIG. 16 .
  • the LeftUpLeg vector is rotated first
  • the LeftLowLeg vector is rotated second
  • the RightUpLeg vector is rotated third
  • the RightLowLeg vector is rotated fourth.
  • Fifth rotate the direction vector from the center of the Hip vector to the center of the Shoulder vector.
  • the sixth rotates the LeftArm vector
  • the seventh rotates the LeftForeArm vector
  • the eighth rotates the RightArm vector
  • the ninth rotates the RightForeArm vector.
  • tenth rotate the direction vector from the center of the Shoulder vector to the point 1 indicating the nose.
  • the model application unit 21 can apply the posture data to the CG model and output the CG model with the posture according to the posture data.
  • FIG. 17 is a flow chart for explaining data processing executed by the data processing device 11 .
  • step S ⁇ b>11 the 3D posture estimation unit 12 acquires 3D posture data based on the 3D data input to the data processing device 11 and supplies it to the time-series processing unit 15 .
  • the 2D posture estimation unit 13 acquires 2D posture data based on the 2D data input to the data processing device 11 and supplies it to the 3D conversion unit 14, and the 3D conversion unit 14 uses the TOF data to obtain 2D posture data.
  • 3D posture data is acquired from the posture data of , and supplied to the time-series processing unit 15 .
  • step S12 the time-series processing unit 15 performs time-series processing for associating the same person based on the 3D posture data supplied from the 3D posture estimation unit 12 or the 3D conversion unit 14 in step S11. , to the global coordinate transformation unit 16 .
  • step S ⁇ b>13 the global coordinate transformation unit 16 transforms the coordinates of the 3D posture data supplied from the time-series processing unit 15 in step S ⁇ b>12 into global coordinates, and supplies the global coordinates to the direction vector transformation unit 17 .
  • step S ⁇ b>14 the direction vector conversion unit 17 converts the 3D orientation data supplied from the global coordinate conversion unit 16 in step S ⁇ b>13 into direction vectors, converts them into orientation data represented by direction vectors, and converts them into orientation data represented by the direction vectors. supply to
  • step S15 the data correction processing unit 18 performs data correction processing for data cleansing and data interpolation processing on the posture data represented by the direction vector supplied from the direction vector conversion unit 17 in step S14, It is supplied to the posture classification section 19 .
  • step S16 the posture classification unit 19 classifies the posture data supplied from the data correction processing unit 18 in step S15 by predetermined postures, and distributes the labeled posture data to the data expansion unit 20 and the data expansion unit 20. It is supplied to the model application unit 21 .
  • step S17 the data extension unit 20 combines the posture data supplied from the posture classification unit 19 in step S16 with the posture data for extension to extend the posture data, and uses the newly generated posture data. It is supplied to the model application unit 21 .
  • step S18 the model application unit 21 applies the posture data supplied from the posture classification unit 19 in step S16 or the posture data supplied from the data extension unit 20 in step S17 to the CG model to obtain posture data.
  • the data processing device 11 can output a large amount of CG models to which more diverse posture data are applied.
  • the data processing device 11 converts the 3D posture data into a direction vector and handles it, so that, for example, the 3D data or 2D data input to the data processing device 11 is normalized without depending on the position, size, or the like. It can be automatically applied to the CG model as posture data. Therefore, the posture data applied to the CG model becomes information only about the direction between the joints without the size-related features attributed to the original person. be done.
  • the pose estimation by AI of the 3D pose estimation unit 12 or the 2D pose estimation unit 13 can be input, and the pose of the person simulating the real world can be automatically applied to the CG model of the person.
  • the data processing device 11 by using posture data that excludes information that can identify an individual, it is possible to improve convenience in handling posture data.
  • the data processing device 11 uses the X component, Y component, and Z component of the direction vector of a particular part of interest (for example, a leg) as feature amounts based on the time series of the posture data represented by the direction vector.
  • the analysis can automatically classify the posture data for each predetermined posture (eg, static posture or walking posture). For example, it is possible to improve the accuracy of classifying posture data by combining feature amounts of parts related to motions to be classified.
  • posture data can be treated as highly valuable data that is meaningful for each predetermined posture, and convenience can be improved.
  • the data processing device 11 instead of manually classifying the posture data by a human, the data processing device 11 automatically classifies the posture data, thereby making it possible to process a large amount of data. Also, unlike posture data classification based on AI, it is possible to eliminate the need to prepare a data set including annotation work.
  • posture estimation by AI of the 3D posture estimation unit 12 or the 2D posture estimation unit 13 is used as an input, but the present technology is applied to posture data acquired by a motion capture method, for example. can do.
  • the data processing device 11 and the TOF sensor into the image sensor, it is possible to realize a configuration in which the image sensor outputs a CG model to which the posture of the person depicted in the image captured by the image sensor is applied. can be done.
  • FIG. 18 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.
  • a directional vector conversion unit that converts 3D posture data represented by specific feature points of a person into directional vectors and represents the posture data with a plurality of directional vectors
  • a data processing apparatus comprising: a model application unit that applies the posture data represented by the direction vector to a CG model of a person.
  • a data correction processing unit that performs data cleansing processing to remove the posture data that cannot be taken by a human from the posture data represented by the direction vector, or to delete the posture data due to time series restrictions.
  • a data expansion unit that generates new posture data by combining certain posture data with other posture data that is highly similar to a predetermined part of the posture data (5)
  • the data processing device according to any one of the items up to (5).
  • the data processing device directional vectorization of 3D posture data represented by specific feature points of a person, and representing the posture data with a plurality of directional vectors;
  • a data processing method comprising: applying the posture data represented by the direction vector to a CG model of a person.
  • 11 data processing device 12 3D pose estimation unit, 13 2D pose estimation unit, 14 3D conversion unit, 15 time series processing unit, 16 global coordinate conversion unit, 17 direction vector conversion unit, 18 data correction processing unit, 19 posture classification unit , 20 data extension part, 21 model application part

Abstract

本開示は、姿勢データの利便性を高めることができるようにするデータ処理装置およびデータ処理方法、並びにプログラムに関する。 方向ベクトル変換部は、人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、姿勢データを方向ベクトルで表し、モデル適用部は、方向ベクトルで表された姿勢データを、人物のCGモデルに適用する。姿勢分類部は、姿勢データを所定の姿勢ごとに分類して、それぞれの姿勢のラベルを付与する。本技術は、例えば、人工知能を活用した学習などの用途を目的とした人物のCGモデルを生成するデータ処理装置に適用できる。

Description

データ処理装置およびデータ処理方法、並びにプログラム
 本開示は、データ処理装置およびデータ処理方法、並びにプログラムに関し、特に、姿勢データの利便性を高めることができるようにしたデータ処理装置およびデータ処理方法、並びにプログラムに関する。
 近年、人工知能を活用した学習などの用途を目的として、大量かつ多様な姿勢の人物のCG(Computer Graphics)モデルを用意することが必要とされている。しかしながら、従来、人物のCGモデルのモデリングでは、例えば、CGデザイナによる手作業によって人物のCGモデルのボーンを操作することで姿勢が設定されており、大量かつ多様な姿勢の人物のCGモデルを用意するためには、時間およびコストが増大することが懸念されている。
 そこで、特許文献1に開示されているように、身体の形状の時々刻々の計測値から抽出した制御可能な特徴量を、CGキャラクタの関節の角度ないしは部位の寸法を表す位置姿勢情報に変換するCGキャラクタアニメーション作成装置が提案されている。
特開2008-176696号公報
 ところで、従来、人物の動きをキャプチャして得られる姿勢データには、その人物を特定できる情報が含まれており、姿勢データを正規化または一般化することは行われていなかった。そのため、より画一的に姿勢データを扱えるようにすることや、よりプライバシーに配慮することなどに対する対応が求められており、それらに対応することで、姿勢データを取り扱う際の利便性を向上させることができると期待されている。
 本開示は、このような状況に鑑みてなされたものであり、姿勢データの利便性を高めることができるようにするものである。
 本開示の一側面のデータ処理装置は、人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを方向ベクトルで表す方向ベクトル変換部と、前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用するモデル適用部とを備える。
 本開示の一側面のデータ処理方法またはプログラムは、人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを方向ベクトルで表すことと、前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用することとを含む。
 本開示の一側面においては、人物の特定の特徴点で表される3Dの姿勢データが方向ベクトル化されて、姿勢データが方向ベクトルで表され、方向ベクトルで表された姿勢データが、人物のCGモデルに適用される。
本技術を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。 3Dの姿勢データの一例を示す図である。 時系列処理について説明する図である。 姿勢データを表す方向ベクトルの一例を示す図である。 方向ベクトルの始点および終点、並びに、名前を対応付けて示す図である。 データクレンジング処理の前後におけるLeftLowLegベクトル、RightLowLegベクトル、LeftUpLegベクトル、およびRightUpLegベクトルの分布例を示す図である。 データクレンジング処理の前後におけるLeftUpBodyベクトル、RightUpBodyベクトル、RightNeckベクトル、およびHipベクトルの分布例を示す図である。 データクレンジング処理の前後におけるShoulderベクトル、LeftArmベクトル、RightArmベクトル、およびRightForeArmベクトルの分布例を示す図である。 データクレンジング処理の前後におけるLeftForeArmベクトル、およびLeftNeckベクトルの分布例を示す図である。 時系列の制約によって姿勢データを削除するデータクレンジング処理について説明する図である。 ウィンドサイズ7での移動標準偏差について説明する図である。 足の方向ベクトルの元データおよび移動標準偏差の一例を示す図である。 静止姿勢および歩行姿勢の自動分類について説明する図である。 姿勢データの拡張について説明する図である。 姿勢データのCGモデルへの適用について説明する図である。 方向ベクトルを回転させる順番の一例を示す図である。 データ処理装置が実行するデータ処理を説明するフローチャートである。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
 以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
 <データ処理装置の構成例>
 図1は、本技術を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。
 図1に示すデータ処理装置11には、例えば、人物を計測して得られる三次元的なデータである3Dデータ、または、人物を撮像して得られる二次元的なデータである2Dデータが入力される。また、データ処理装置11において2Dデータに対するデータ処理が行われる場合、例えば、TOF(Time Of Flight)センサにより取得される人物に対する距離情報を画像化したデータであるTOFデータが、データ処理装置11に入力される。そして、データ処理装置11は、それらのデータに対するデータ処理を行った結果として、例えば、データ処理の対象となった人物の姿勢が適用されたCGモデルを出力する。
 データ処理装置11は、3D姿勢推定部12、2D姿勢推定部13、3D変換部14、時系列処理部15、グローバル座標変換部16、方向ベクトル変換部17、データ修正処理部18、姿勢分類部19、データ拡張部20、およびモデル適用部21を備えて構成される。
 3D姿勢推定部12は、データ処理装置11に入力された3Dデータに基づいて、3Dデータで表される人物の姿勢をAI(Artificial Intelligence)により推定し、その推定結果として得られる3Dの姿勢データを時系列処理部15に供給する。
 2D姿勢推定部13は、データ処理装置11に入力された2Dデータに基づいて、2Dデータで表される人物の姿勢をAIにより推定し、その推定結果として得られる2Dの姿勢データを3D変換部14に供給する。
 3D変換部14は、TOFデータを用いて、2D姿勢推定部13から供給された2Dの姿勢データを三次元的なデータに変換し、その変換結果として得られる3Dの姿勢データを時系列処理部15に供給する。
 ここで、時系列処理部15に供給される3Dの姿勢データは、例えば、図2に示すように、データ処理の対象となっている人物の特定の関節を特徴点として抽出し、それらの特徴点の位置を示す三次元的な座標により表される。
 時系列処理部15は、3D姿勢推定部12または3D変換部14から時間の経過に従って連続的に供給される3Dの姿勢データについて、同一の人物ごとに関連付けを行う時系列処理を施す。例えば、時系列処理部15は、時系列処理において、同一の人物を特定する人物ID(Identification)を、3Dの姿勢データごとに付与する。
 例えば、図3に示すように、時系列処理部15は、同一の人物(人物ID:person 1)について、時刻t、時刻t+1、時刻t+2、・・・それぞれの時刻の3Dの姿勢データを関連付けることができる。
 グローバル座標変換部16は、時系列処理部15において時系列処理が施された3Dの姿勢データの座標(例えば、人物を計測または撮像した装置の位置に応じた座標)を、データ処理装置11においてCGモデルの構築に用いられるグローバル座標に変換する。
 方向ベクトル変換部17は、グローバル座標変換部16においてグローバル座標に変換された3Dの姿勢データを方向ベクトル化して、方向ベクトルで表される姿勢データに変換する。このように3Dの姿勢データを方向ベクトル化することによって、個人を特定できる情報を排除した状態とすることができ、画一的に扱える正規化データとして人物の姿勢を表現することができる。なお、方向ベクトル変換部17による3Dの姿勢データの方向ベクトル化については、図4および図5を参照して後述する。
 データ修正処理部18は、方向ベクトル変換部17において方向ベクトル化された姿勢データに対して、データクレンジング処理やデータ補間処理などのデータ修正処理を施す。例えば、データクレンジング処理は、後述の図6乃至図10を参照して説明するように、人間がとり得ない姿勢データの除去や時系列の制約による姿勢データの削除を行う処理である。データ補間処理は、データクレンジング処理によって除去または削除された姿勢データを、その姿勢データの前後の姿勢データを用いて補間する処理である。
 姿勢分類部19は、データ修正処理部18においてデータ修正処理が施された姿勢データを所定の姿勢ごとに分類して、それぞれの姿勢のラベルを付与した姿勢データを、データ拡張部20およびモデル適用部21に供給する。例えば、姿勢分類部19は、後述の図11乃至図13を参照して説明するように、姿勢データを静止姿勢および歩行姿勢に自動分類することができる。
 データ拡張部20は、姿勢分類部19から供給された姿勢データに対して他の姿勢データを適切に組み合わせることによって、例えば、図14を参照して後述するように上半身と下半身とを組み合わせることによって、姿勢データを拡張して、新たな姿勢データを生成する。これにより、データ拡張部20は、データ処理装置11に入力される3Dデータまたは2Dデータに基づく姿勢データだけでなく、より多様な姿勢データを大量に生成することができる。そして、データ拡張部20は、新たに生成した姿勢データをモデル適用部21に供給する。
 モデル適用部21は、姿勢分類部19から供給された姿勢データ、または、データ拡張部20から供給された姿勢データをCGモデルに適用して、姿勢データに従った姿勢のCGモデルを出力する。
 このようにデータ処理装置11は構成されており、より多様な姿勢データが適用されたCGモデルを大量に出力することができ、それらの姿勢データが方向ベクトルで表されるようにすることで、姿勢データを取り扱う際の利便性を向上させることができる。
 <方向ベクトル化する処理の処理例>
 図4および図5を参照して、方向ベクトル変換部17が3Dの姿勢データを方向ベクトル化する処理について説明する。
 方向ベクトル変換部17は、例えば、図2に示したような人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、図4に示すように、16カ所の点を始点または終点とした第1乃至第19の方向ベクトルで表される姿勢データに変換する。図5には、第1乃至第19の方向ベクトルについて、それぞれ始点および終点と、それぞれの名前とが対応付けられて示されている。
 例えば、第1の方向ベクトルは、左膝を示す点14を始点として左踵を示す点16を終点としたLeftLowLegベクトルである。第2の方向ベクトルは、左腰を示す点12を始点として左膝を示す点14を終点としたLeftUpLegベクトルである。第3の方向ベクトルは、右膝を示す点15を始点として右踵を示す点17を終点としたRightLowLegベクトルである。第4の方向ベクトルは、右腰を示す点13を始点として右膝を示す点15を終点としたRightUpLegベクトルである。第5の方向ベクトルは、左腰を示す点12を始点として右腰を示す点13を終点としたHipベクトルである。
 第6の方向ベクトルは、左腰を示す点12を始点として左肩を示す点6を終点としたLeftUpBodyベクトルである。第7の方向ベクトルは、右腰を示す点13を始点として右肩を示す点7を終点としたRightUpBodyベクトルである。第8の方向ベクトルは、左肩を示す点6を始点として右肩を示す点7を終点としたShoulderベクトルである。第9の方向ベクトルは、左肩を示す点6を始点として左肘を示す点8を終点としたLeftArmベクトルである。第10の方向ベクトルは、右肩を示す点7を始点として右肘を示す点9を終点としたRightArmベクトルである。第11の方向ベクトルは、左肘を示す点8を始点として左手首を示す点10を終点としたLeftForeArmベクトルである。第12の方向ベクトルは、右肘を示す点9を始点として右手首を示す点11を終点としたRightForeArmベクトルである。
 第13の方向ベクトルは、左目を示す点2を始点として右目を示す点3を終点としたEyesベクトルである。第14の方向ベクトルは、左目を示す点2を始点として鼻を示す点1を終点としたLeftNoseベクトルである。第15の方向ベクトルは、右目を示す点3を始点として鼻を示す点1を終点としたRightNoseベクトルである。第16の方向ベクトルは、左頬を示す点4を始点として左目を示す点2を終点としたRightFaceベクトルである。第17の方向ベクトルは、右頬を示す点5を始点として右目を示す点3を終点としたLeftFaceベクトルである。第18の方向ベクトルは、左肩を示す点6を始点として鼻を示す点1を終点としたLeftNeckベクトルである。第19の方向ベクトルは、右肩を示す点7を始点として鼻を示す点1を終点としたRightNeckベクトルである。
 さらに、第1乃至第19の方向ベクトルは、第5の方向ベクトルであるHipベクトルで向きを正規化することができる。
 そして、方向ベクトル化された姿勢データは、個人情報を排した数値データとして、次の式(1)に示すような行列で表すことができる。
Figure JPOXMLDOC01-appb-M000001
 このように、方向ベクトル変換部17は、3Dの姿勢データを方向ベクトル化して、複数の方向ベクトルで表される姿勢データに変換することができる。
 <データクレンジング処理の処理例>
 図6乃至図10を参照して、データ修正処理部18が行う姿勢データのデータクレンジング処理について説明する。
 例えば、実世界からの姿勢推定では誤推定が生じることがあるため、データ処理装置11では、誤推定された姿勢データを自動的に除去または削除する仕組みとしてデータクレンジング処理が導入される。
 データ修正処理部18は、人間がとり得ない姿勢データを除去するデータクレンジング処理によって、腰また肩が水平に対して傾き過ぎている方向ベクトルや、上体が後ろに傾き過ぎている方向ベクトルなど、不自然な姿勢データを閾値処理によって除去することができる。
 図6乃至図9では、それぞれの方向ベクトルについて、左側にデータクレンジング処理が行われる前の分布が示されており、右側にデータクレンジング処理が行われた後の分布が示されている。
 図6のAには、LeftLowLegベクトルについて、データクレンジング処理が行われる前後における分布例が示されている。データクレンジング処理が行われる前(左側)では分布が拡がっているのに対し、データクレンジング処理が行われた後(右側)では分布が狭まっており、人間がとり得ない程に傾き過ぎているLeftLowLegベクトルが閾値処理によって除去されたことが表されている。
 以下、同様に、図6のBにはRightLowLegベクトル、図6のCにはLeftUpLegベクトル、図6のDにはRightUpLegベクトルについて、それぞれデータクレンジング処理が行われる前後における分布例が示されている。図7のAにはLeftUpBodyベクトル、図7のBにはRightUpBodyベクトル、図7のCにはRightNeckベクトル、図7のDにはHipベクトルについて、それぞれデータクレンジング処理が行われる前後における分布例が示されている。図8のAにはShoulderベクトル、図8のBにはLeftArmベクトル、図8のCにはRightArmベクトル、図8のDには、RightForeArmベクトルについて、それぞれデータクレンジング処理が行われる前後における分布例が示されている。図9のAにはLeftForeArmベクトル、図9のBにはLeftNeckベクトルについて、それぞれデータクレンジング処理が行われる前後における分布例が示されている。
 図10を参照して、時系列の制約によって姿勢データを削除するデータクレンジング処理について説明する。
 例えば、次の式(2)に示すcos類似度に基づいて、ベクトルの類似性を判断することができる。
Figure JPOXMLDOC01-appb-M000002
 ここで、式(2)は、ベクトルaおよびベクトルbのcos類似度を求める式である。cos類似度は、-1から+1までの値域をとり、ベクトルaおよびベクトルbが完全に一致したときに+1となる。
 そして、データ修正処理部18は、前フレームからの姿勢データの連続性を、次の式(3)に示すように、12本の方向ベクトルのcos類似度により評価する。そして、データ修正処理部18は、それらのcos類似度の平均値が所定の閾値(例えば、0.9)以下となる類似性の低い姿勢データ[xt yt zt]については、誤推定として削除する。
Figure JPOXMLDOC01-appb-M000003
 例えば、図10のAに示すように、時刻tの姿勢データと時刻t+1の姿勢データとが類似している場合にはcos類似度が大きくなり、時刻t+1の姿勢データと時刻t+2の姿勢データとが類似している場合にはcos類似度が大きくなる。従って、この場合、データ修正処理部18は、時刻tの姿勢データと時刻t+1の姿勢データとに連続性があり、時刻t+1の姿勢データと時刻t+2の姿勢データとに連続性があると判断することができる。
 一方、図10のBに示すように、時刻tの姿勢データと時刻t+1の姿勢データとが類似していない場合にはcos類似度が小さくなり、時刻t+1の姿勢データと時刻t+2の姿勢データとが類似していない場合にはcos類似度が小さくなる。従って、この場合、データ修正処理部18は、時刻tの姿勢データと時刻t+1の姿勢データとに連続性がなく、時刻t+1の姿勢データと時刻t+2の姿勢データとに連続性がないと判断して、時刻t+1の姿勢データを削除することができる。このように、小さなcos類似度が2回連続している場合、削除した姿勢データの前後の姿勢データは、正常であるとして扱われる。
 このように、データ修正処理部18は、データクレンジング処理によって不自然な姿勢データを除去または削除し、除去または削除された姿勢データをデータ補間処理によって前後の姿勢データから補間することができる。
 <姿勢データを自動分類する処理の処理例>
 図11乃至図13を参照して、姿勢分類部19が姿勢データを自動分類する処理について説明する。
 例えば、データ処理装置11では、後段の処理部で姿勢データを意図的に扱うことができるようにするために、姿勢分類部19によって、時系列の姿勢データを分類してラベルを付与する仕組みが導入される。ここでは、特定の方向ベクトルの各成分の移動標準偏差に着目し、時系列の姿勢データを静止姿勢と歩行姿勢とにルールベースで自動分類する方法について説明する。
 図11に示すように、姿勢分類部19は、時系列の姿勢データに対して所定のウィンドサイズで移動標準偏差を算出する。図11には、まず時刻t+1から時刻t+7までのウィンドサイズ7で標準偏差を算出し、次に時刻t+2から時刻t+8までのウィンドサイズ7で標準偏差を算出する処理例が示されている。
 そして、姿勢分類部19は、静止姿勢と歩行姿勢とに姿勢データを分類する場合、足の方向ベクトルのY成分およびZ成分に着目して移動標準偏差を閾値判定する判定処理を行う。即ち、足の方向ベクトルのY成分およびZ成分が閾値未満である場合、姿勢データは歩行姿勢であると判定され、足の方向ベクトルのY成分およびZ成分が閾値以上である場合、姿勢データは歩行姿勢であると判定される。
 図12のAには、人物IDが2である人物の姿勢データにおける足の方向ベクトルの元データ(左側)および移動標準偏差(右側)の一例が示されている。図示するように、移動標準偏差の値が小さいことより、姿勢分類部19は、この姿勢データを静止姿勢と閾値判定することができる。
 図12のBには、人物IDが11である人物の姿勢データにおける足の方向ベクトルの元データ(左側)および移動標準偏差(右側)の一例が示されている。図示するように、移動標準偏差の値が大きいことより、姿勢分類部19は、この姿勢データを歩行姿勢と閾値判定することができる。
 このように、姿勢分類部19は、閾値判定によって、図13に示すように、人物IDが2である人物の姿勢データを静止姿勢と分類してラベルidleを付与し、人物IDが11である人物の姿勢データを歩行姿勢と分類してラベルwalkを付与することができる。
 図14を参照して、データ拡張部20が新たな姿勢データを生成する処理について説明する。
 例えば、データ処理装置11では、入力される3Dデータまたは2Dデータが少量であっても、十分な姿勢データのサンプル数を確保することができるように、データ拡張部20において姿勢データを拡張する仕組みが導入される。そして、姿勢データを自動生成することによって、AI学習の汎化性能を向上させることができる。
 例えば、データ拡張部20は、姿勢分類部19から供給された元の姿勢データの所定の部位との類似性が高い姿勢データ(cos類似度が閾値以上の姿勢データ)を、取得済みの姿勢データの中から検索し、その部位の類似性の高い姿勢データ群を求める。そして、データ拡張部20は、姿勢データ群からランダムに1つの姿勢データを拡張用として選択し、元の姿勢データの所定の部位の方向ベクトルに拡張用の姿勢データの他の部位の方向ベクトルを組み合わせることで、新たな姿勢データを生成する。
 図14には、元データの下半身を所定の部位とした処理の処理例が示されている。
 図14に示すように、元データの下半身の方向ベクトルの類似度で検索することで、元データの下半身との類似性が高い下半身となっている姿勢データの姿勢データ群が求められる。そして、姿勢データ群からランダムに拡張用の姿勢データが選択される。さらに、元の姿勢データの下半身の方向ベクトルに拡張用の姿勢データの上半身の方向ベクトルを組み合わせることで、新たな姿勢データが生成される。
 このように、データ拡張部20は、姿勢データを拡張して、新たな姿勢データを生成する。
 <姿勢データをCGモデルに適用する処理の処理例>
 図15および図16を参照して、モデル適用部21が姿勢データをCGモデルに適用する処理について説明する。
 モデル適用部21は、所定の方向ベクトルについて、姿勢データの方向ベクトルとCGモデルの方向ベクトルとの外積で、CGモデルの方向ベクトルの回転軸を算出し、姿勢データの方向ベクトルとCGモデルの方向ベクトルとの内積で、CGモデルの方向ベクトルを回転させる回転角を算出する。そして、モデル適用部21は、ボーンの回転処理により、姿勢データの姿勢と一致するように、CGモデルの姿勢を変形させることができる。
 図15には、LeftLowLegベクトルに対する処理の処理例が示されている。
 図15に示すように、第1に、姿勢データのLeftLowLegベクトルとCGモデルのLeftLowLegベクトルとの外積で、CGモデルのLeftLowLegベクトルの回転軸を算出する。第2に、姿勢データのLeftLowLegベクトルとCGモデルのLeftLowLegベクトルとの内積で、CGモデルのLeftLowLegベクトルを回転させる回転角を算出する。第3に、回転軸および回転角に従って、クォータニオンでCGモデルのLeftLowLegベクトル(ボーン)を回転する。
 ここで、クォータニオンqは、3次元空間における任意回転軸(λ,λ,λ)まわりの角度θの回転を表現し、次の式(4)に示すように、4つのパラメータで表現することができる。
Figure JPOXMLDOC01-appb-M000004
 また、モデル適用部21は、図16において黒丸に白抜きの数字に従った順番(フォワードキネマティクス)で、順次、方向ベクトルを回転させる処理を行う。
 即ち、1番目にLeftUpLegベクトルを回転させ、2番目にLeftLowLegベクトルを回転させ、3番目にRightUpLegベクトルを回転させ、4番目にRightLowLegベクトルを回転させる。そして、5番目に、Hipベクトルの中央からShoulderベクトルの中央に向かう方向ベクトルを回転させる。
 同様に、6番目にLeftArmベクトルを回転させ、7番目にLeftForeArmベクトルを回転させ、8番目にRightArmベクトルを回転させ、9番目にRightForeArmベクトルを回転させる。そして、10番目に、Shoulderベクトルの中央から鼻を示す点1に向かう方向ベクトルを回転させる。
 このように、モデル適用部21は、姿勢データをCGモデルに適用して、その姿勢データに従った姿勢のCGモデルを出力することができる。
 <データ処理の処理例>
 図17は、データ処理装置11が実行するデータ処理を説明するフローチャートである。
 ステップS11において、3D姿勢推定部12は、データ処理装置11に入力された3Dデータに基づいて3Dの姿勢データを取得して、時系列処理部15に供給する。または、2D姿勢推定部13は、データ処理装置11に入力された2Dデータに基づいて2Dの姿勢データを取得して3D変換部14に供給し、3D変換部14は、TOFデータを用いて2Dの姿勢データから3Dの姿勢データを取得して、時系列処理部15に供給する。
 ステップS12において、時系列処理部15は、ステップS11で3D姿勢推定部12または3D変換部14から供給された3Dの姿勢データに基づいて、同一の人物ごとに関連付けを行う時系列処理を行って、グローバル座標変換部16に供給する。
 ステップS13において、グローバル座標変換部16は、ステップS12で時系列処理部15から供給された3Dの姿勢データの座標をグローバル座標に変換して、方向ベクトル変換部17に供給する。
 ステップS14において、方向ベクトル変換部17は、ステップS13でグローバル座標変換部16から供給された3Dの姿勢データを方向ベクトル化し、方向ベクトルで表される姿勢データに変換して、データ修正処理部18に供給する。
 ステップS15において、データ修正処理部18は、ステップS14で方向ベクトル変換部17から供給された方向ベクトルで表される姿勢データに対して、データクレンジング処理およびデータ補間処理を行うデータ修正処理を施し、姿勢分類部19に供給する。
 ステップS16において、姿勢分類部19は、ステップS15でデータ修正処理部18から供給された姿勢データを所定の姿勢ごとに分類し、それぞれの姿勢のラベルを付与した姿勢データを、データ拡張部20およびモデル適用部21に供給する。
 ステップS17において、データ拡張部20は、ステップS16で姿勢分類部19から供給された姿勢データに対して、拡張用の姿勢データを組み合わせることによって姿勢データを拡張し、新たに生成された姿勢データをモデル適用部21に供給する。
 ステップS18において、モデル適用部21は、ステップS16で姿勢分類部19から供給された姿勢データ、または、ステップS17でデータ拡張部20から供給された姿勢データを、CGモデルに適用して、姿勢データに従った姿勢のCGモデルを出力する。
 以上のようなデータ処理を行うことによって、データ処理装置11は、より多様な姿勢データが適用されたCGモデルを大量に出力することができる。このとき、データ処理装置11は、3Dの姿勢データを方向ベクトルに変換して扱うことで、例えば、データ処理装置11に入力された3Dデータまたは2Dデータにおける位置やサイズなどに依存しない正規化された姿勢データとして、CGモデルに自動的に適用することができる。従って、CGモデルに適用される姿勢データは、元の人物に起因するサイズに関する特徴などを失った各関節間の方向のみの情報となり、個人を特定できる情報を排した姿勢データとしてCGモデルに適用される。
 従って、データ処理装置11では、3D姿勢推定部12または2D姿勢推定部13のAIによる姿勢推定などを入力として、現実世界を模した人物の姿勢を、人物のCGモデルに自動適用することができる。そして、データ処理装置11では、個人を特定できる情報を排した姿勢データを用いることで、姿勢データを取り扱う際の利便性を向上させることができる。
 さらに、データ処理装置11は、方向ベクトルで表される姿勢データの時系列に基づいて、着目した特定の部位(例えば、足)の方向ベクトルのX成分、Y成分、およびZ成分を特徴量として分析することで、所定の姿勢(例えば、静止姿勢や歩行姿勢)ごとに姿勢データを自動的に分類することができる。例えば、分類対象の動作に関連する部位の特徴量を組み合わせることで、姿勢データを分類する精度の向上を図ることができる。
 従って、所定の姿勢ごとに意味付けされた価値の高いデータとして姿勢データを扱うことができ、利便性を向上させることができる。例えば、人間が手作業で姿勢データを分類するのではなく、データ処理装置11によって自動的に姿勢データを分類することで、大量データの処理を可能とすることができる。また、AIに基づいた姿勢データの分類とは異なり、アノテーション作業などを含むデータセットの準備を不要とすることができる。
 なお、本実施の形態では、3D姿勢推定部12または2D姿勢推定部13のAIによる姿勢推定などを入力としているが、本技術は、例えば、モーションキャプチャ方式により取得された姿勢データに対して適用することができる。また、データ処理装置11およびTOFセンサをイメージセンサに組み込むことによって、イメージセンサにより撮像された画像に写されている人物の姿勢が適用されたCGモデルを、イメージセンサから出力する構成を実現することができる。
 <コンピュータの構成例>
 次に、上述した一連の処理(データ処理方法)は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
 図18は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
 プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク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)
 人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを複数の方向ベクトルで表す方向ベクトル変換部と、
 前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用するモデル適用部と
 を備えるデータ処理装置。
(2)
 前記方向ベクトルで表された前記姿勢データから、人間がとり得ない前記姿勢データを除去し、または、時系列の制約によって前記姿勢データを削除するデータクレンジング処理を行うデータ修正処理部
 をさらに備える上記(1)に記載のデータ処理装置。
(3)
 前記データ修正処理部は、除去または削除された前記姿勢データを、その前後の前記姿勢データを用いて補間するデータ補間処理を行う
 上記(2)に記載のデータ処理装置。
(4)
 前記姿勢データを所定の姿勢ごとに分類して、それぞれの姿勢のラベルを付与する姿勢分類部
 をさらに備える上記(1)から(3)までのいずれかに記載のデータ処理装置。
(5)
 前記姿勢分類部は、特定の前記方向ベクトルの移動標準偏差の閾値判定によって、前記姿勢データを分類する
 上記(4)に記載のデータ処理装置。
(6)
 ある前記姿勢データと、その前記姿勢データの所定の部位との類似性が高い他の前記姿勢データとを組み合わせることで、新たな前記姿勢データを生成するデータ拡張部
 をさらに備える上記(1)から(5)までのいずれかに記載のデータ処理装置。
(7)
 データ処理装置が、
 人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを複数の方向ベクトルで表すことと、
 前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用することと
 を含むデータ処理方法。
(8)
 データ処理を行うデータ処理装置のコンピュータに、
 人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを複数の方向ベクトルで表すことと、
 前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用することと
 を含むデータ処理を実行させるためのプログラム。
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 11 データ処理装置, 12 3D姿勢推定部, 13 2D姿勢推定部, 14 3D変換部, 15 時系列処理部, 16 グローバル座標変換部, 17 方向ベクトル変換部, 18 データ修正処理部, 19 姿勢分類部, 20 データ拡張部, 21 モデル適用部

Claims (8)

  1.  人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを複数の方向ベクトルで表す方向ベクトル変換部と、
     前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用するモデル適用部と
     を備えるデータ処理装置。
  2.  前記方向ベクトルで表された前記姿勢データから、人間がとり得ない前記姿勢データを除去し、または、時系列の制約によって前記姿勢データを削除するデータクレンジング処理を行うデータ修正処理部
     をさらに備える請求項1に記載のデータ処理装置。
  3.  前記データ修正処理部は、除去または削除された前記姿勢データを、その前後の前記姿勢データを用いて補間するデータ補間処理を行う
     請求項2に記載のデータ処理装置。
  4.  前記姿勢データを所定の姿勢ごとに分類して、それぞれの姿勢のラベルを付与する姿勢分類部
     をさらに備える請求項1に記載のデータ処理装置。
  5.  前記姿勢分類部は、特定の前記方向ベクトルの移動標準偏差の閾値判定によって、前記姿勢データを分類する
     請求項4に記載のデータ処理装置。
  6.  ある前記姿勢データと、その前記姿勢データの所定の部位との類似性が高い他の前記姿勢データとを組み合わせることで、新たな前記姿勢データを生成するデータ拡張部
     をさらに備える請求項1に記載のデータ処理装置。
  7.  データ処理装置が、
     人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを複数の方向ベクトルで表すことと、
     前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用することと
     を含むデータ処理方法。
  8.  データ処理を行うデータ処理装置のコンピュータに、
     人物の特定の特徴点で表される3Dの姿勢データを方向ベクトル化して、前記姿勢データを複数の方向ベクトルで表すことと、
     前記方向ベクトルで表された前記姿勢データを、人物のCGモデルに適用することと
     を含むデータ処理を実行させるためのプログラム。
PCT/JP2022/042322 2021-11-29 2022-11-15 データ処理装置およびデータ処理方法、並びにプログラム WO2023095667A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-192685 2021-11-29
JP2021192685 2021-11-29

Publications (1)

Publication Number Publication Date
WO2023095667A1 true WO2023095667A1 (ja) 2023-06-01

Family

ID=86539632

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/042322 WO2023095667A1 (ja) 2021-11-29 2022-11-15 データ処理装置およびデータ処理方法、並びにプログラム

Country Status (1)

Country Link
WO (1) WO2023095667A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071182A (ja) * 2003-08-26 2005-03-17 Matsushita Electric Works Ltd 3次元アニメーション作成支援装置
JP2019096113A (ja) * 2017-11-24 2019-06-20 Kddi株式会社 キーポイントデータに関する加工装置、方法及びプログラム
WO2021084677A1 (ja) * 2019-10-31 2021-05-06 日本電気株式会社 画像処理装置、画像処理方法及び画像処理プログラムが格納された非一時的なコンピュータ可読媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071182A (ja) * 2003-08-26 2005-03-17 Matsushita Electric Works Ltd 3次元アニメーション作成支援装置
JP2019096113A (ja) * 2017-11-24 2019-06-20 Kddi株式会社 キーポイントデータに関する加工装置、方法及びプログラム
WO2021084677A1 (ja) * 2019-10-31 2021-05-06 日本電気株式会社 画像処理装置、画像処理方法及び画像処理プログラムが格納された非一時的なコンピュータ可読媒体

Similar Documents

Publication Publication Date Title
CN108460338B (zh) 人体姿态估计方法和装置、电子设备、存储介质、程序
EP2880633B1 (en) Animating objects using the human body
Ding et al. STFC: Spatio-temporal feature chain for skeleton-based human action recognition
Kumar et al. Three-dimensional sign language recognition with angular velocity maps and connived feature resnet
US11244506B2 (en) Tracking rigged polygon-mesh models of articulated objects
US20210216821A1 (en) Training data generating method, estimating device, and recording medium
JP2016099982A (ja) 行動認識装置、行動学習装置、方法、及びプログラム
WO2007102537A1 (ja) 姿勢推定装置および方法
WO2018183751A1 (en) Determining anthropometric measurements of a nonstationary subject
Aristidou Hand tracking with physiological constraints
JP2014085933A (ja) 3次元姿勢推定装置、3次元姿勢推定方法、及びプログラム
CN115083015A (zh) 一种3d人体姿态估计数据标注方式和对应的模型构建方法
JP2010211732A (ja) 物体認識装置および方法
JP6185879B2 (ja) 多関節物体追跡装置、多関節物体追跡方法、及びプログラム
WO2023095667A1 (ja) データ処理装置およびデータ処理方法、並びにプログラム
Mousas et al. Efficient hand-over motion reconstruction
Purps et al. Reconstructing facial expressions of HMD users for avatars in VR
JP2020140283A (ja) 情報処理装置、情報処理方法、および、コンピュータプログラム
JP7464512B2 (ja) 三次元人物姿勢推定装置、方法およびプログラム
KR102258114B1 (ko) 다중 사용자 추적 장치 및 방법
Bhuyan et al. Hand gesture recognition and animation for local hand motions
Harry Zhang et al. Dex-Net AR: distributed deep grasp planning using an augmented reality application and a smartphone camera
CN109002163B (zh) 三维交互姿势采样方法、装置、计算机设备及存储介质
JP2023527627A (ja) 逆運動学に基づいた関節の回転の推測
KR20210076559A (ko) 인체 모델의 학습 데이터를 생성하는 장치, 방법 및 컴퓨터 프로그램

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023563630

Country of ref document: JP

Kind code of ref document: A