WO2021048988A1 - 骨格認識方法、骨格認識プログラムおよび情報処理装置 - Google Patents
骨格認識方法、骨格認識プログラムおよび情報処理装置 Download PDFInfo
- Publication number
- WO2021048988A1 WO2021048988A1 PCT/JP2019/035979 JP2019035979W WO2021048988A1 WO 2021048988 A1 WO2021048988 A1 WO 2021048988A1 JP 2019035979 W JP2019035979 W JP 2019035979W WO 2021048988 A1 WO2021048988 A1 WO 2021048988A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- joint
- skeleton
- subject
- information
- sensors
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/521—Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/803—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/23—Recognition of whole body movements, e.g. for sport training
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/08—Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20036—Morphological image processing
- G06T2207/20044—Skeletonization; Medial axis transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/03—Recognition of patterns in medical or anatomical images
- G06V2201/033—Recognition of patterns in medical or anatomical images of skeletal patterns
Definitions
- the present invention relates to a skeleton recognition method, a skeleton recognition program, and an information processing device.
- skeletons of people such as athletes and patients are recognized.
- a device that recognizes the skeleton of a person is used based on a distance image output by a 3D (Threee Dimensions) laser sensor (hereinafter, also referred to as a distance sensor or a depth sensor) that senses the distance to a person.
- 3D Three Dimensions
- each distance image acquired from each 3D laser sensor is input to each learning model trained in a random forest to acquire each part label image, and pixels (boundary) near the boundary of each part in each part label image. Pixel) is specified.
- 3D point cloud data obtained by converting each pixel of the distance image into a point represented by three axes (x, y, z axes) is acquired.
- the point cloud corresponding to the boundary pixel is specified on each 3D point cloud data, and coordinate conversion or the like is performed on one of the 3D point cloud data to obtain one point cloud data in which the two 3D point cloud data are integrated.
- the skeleton of the subject is recognized by integrating the two part label images and the point cloud data and calculating the coordinates of each center of gravity in each boundary point group in each part label image as the coordinates of each joint position.
- the method of integrating the label images of each part obtained by the random forest from the distance image as in the above technique does not have good recognition accuracy of the skeleton of the subject. Specifically, since the joint coordinates are indirectly calculated from the boundary of each part label, even if two 3D radar sensors are used, the recognition accuracy of the joint in the occlusion part where a part of the subject is hidden can be obtained. It is difficult to increase.
- an occlusion in which the left foot is hidden behind the pommel horse occurs in the 3D laser sensor A of the two units, and an occlusion does not occur in the 3D laser sensor B.
- the random forest recognizes the label in pixel units and estimates the label
- the part label of the left foot cannot be recognized from the distance image A in which occlusion occurs, and the 3D point group data of the left foot cannot be acquired. Therefore, when the two site label images and the point cloud data are integrated, the data of the left foot depends on the distance image B of the 3D laser sensor B. Therefore, for example, when the deviation between the distance image A and the distance image B is large, the joint can be recognized at an average position except for the left foot, but the left foot is finally recognized because the information of the distance image B is used as it is.
- the skeletal position of the whole body may be distorted. That is, the position of at least one joint (for example, the knee or ankle of the left foot) cannot be correctly recognized.
- One aspect is to provide a skeleton recognition method, a skeleton recognition program, and an information processing device that can improve the skeleton recognition accuracy.
- the computer executes a process of acquiring a distance image from each of a plurality of sensors that sense the subject from a plurality of directions.
- the computer uses each distance image acquired from each of the plurality of sensors and a learning model for estimating the position of each joint of the subject from the distance image, and the computer uses the learning model for estimating the joint position of the subject for each of the plurality of sensors.
- the process of acquiring joint information including each joint position is executed.
- a computer integrates each joint information corresponding to each of the plurality of sensors, generates skeleton information including three-dimensional coordinates regarding each joint position of the subject, and outputs the skeleton information of the subject. Execute the process.
- the skeleton recognition accuracy can be improved.
- FIG. 1 is a diagram showing an overall configuration example of a system including the recognition device according to the first embodiment.
- FIG. 2 is a diagram for explaining the estimation of joint information using the learning model according to the first embodiment.
- FIG. 3 is a diagram illustrating skeleton recognition according to the first embodiment.
- FIG. 4 is a functional block diagram showing a functional configuration of the system according to the first embodiment.
- FIG. 5 is a diagram showing a definition example of the skeleton.
- FIG. 6 is a diagram illustrating heat map recognition of each joint.
- FIG. 7 is a diagram illustrating a three-dimensional skeleton calculation image.
- FIG. 8 is a flowchart showing the flow of the skeleton recognition process according to the first embodiment.
- FIG. 1 is a diagram showing an overall configuration example of a system including the recognition device according to the first embodiment.
- FIG. 2 is a diagram for explaining the estimation of joint information using the learning model according to the first embodiment.
- FIG. 3 is a diagram illustrating skeleton recognition
- FIG. 9 is a flowchart showing the flow of the coordinate conversion process according to the first embodiment.
- FIG. 10 is a flowchart showing the flow of the integrated process according to the first embodiment.
- FIG. 11 is a diagram illustrating a skeleton recognition result when both feet are mistaken for one side by the 3D laser sensor B.
- FIG. 12 is a diagram illustrating a skeleton recognition result when the whole body is flipped horizontally by the 3D laser sensor B.
- FIG. 13 is a diagram illustrating the skeleton recognition process according to the second embodiment.
- FIG. 14 is a diagram for explaining the skeleton recognition result according to the second embodiment when both feet are mistaken for one side in the 3D laser sensor B.
- FIG. 11 is a diagram illustrating a skeleton recognition result when both feet are mistaken for one side by the 3D laser sensor B.
- FIG. 12 is a diagram illustrating a skeleton recognition result when the whole body is flipped horizontally by the 3D laser sensor B.
- FIG. 13
- FIG. 15 is a diagram illustrating a skeleton recognition result according to Example 2 when the whole body is flipped horizontally by the 3D laser sensor B.
- FIG. 16 is a flowchart showing the flow of the integrated process according to the second embodiment.
- FIG. 17 is a diagram for explaining the skeleton recognition result when the deviation between the sensors is large.
- FIG. 18 is a diagram illustrating the integrated process according to the third embodiment.
- FIG. 19 is a flowchart showing the flow of the integrated process according to the third embodiment.
- FIG. 20 is a diagram illustrating a hardware configuration example.
- FIG. 1 is a diagram showing an overall configuration example of a system including the recognition device according to the first embodiment.
- this system has 3D laser sensors A and B, a recognition device 50, and a scoring device 90, captures three-dimensional data of the performer 1 who is the subject, recognizes the skeleton, and is accurate. It is a system that scores various techniques.
- this embodiment as an example, an example of recognizing the skeletal information of a performer in a gymnastics competition will be described. Further, in this embodiment, the two-dimensional coordinates of the skeleton position or the skeleton position of the two-dimensional coordinates may be simply described as the two-dimensional skeleton position or the like.
- the current scoring method in gymnastics is visually performed by a plurality of graders, but with the sophistication of techniques, it is becoming more difficult for the graders to visually score.
- an automatic scoring system and a scoring support system for scoring competitions using a 3D laser sensor have been known.
- a distance image which is three-dimensional data of the athlete, is acquired by a 3D laser sensor, and the skeleton such as the orientation of each joint of the athlete and the angle of each joint is recognized from the distance image.
- the scoring support system the result of skeleton recognition is displayed by a 3D model to support the grader to perform more correct scoring by confirming the detailed situation of the performer.
- the performance technique is recognized from the result of skeleton recognition, and scoring is performed according to the scoring rule.
- the scoring support system and the automatic scoring system it is required to provide scoring support or automatic scoring of the performances performed at any time in a timely manner.
- the recognition accuracy of the joints in the occlusion part where a part of the subject is hidden is lowered, so that the scoring accuracy is also lowered.
- the result of automatic scoring by the automatic scoring system is provided to the grader and the grader compares it with his / her own scoring result
- the conventional technique when used, the accuracy of skeletal recognition is lowered, and the skill recognition is also performed. There is a possibility of making a mistake, and as a result, the score determined by the technique will also be wrong.
- the scoring support system when the angle and position of the performer's joints are displayed using a 3D model, the time until the display is delayed and the displayed angle etc. may be incorrect. .. In this case, the scoring by the grader using the scoring support system may result in an erroneous scoring.
- a decrease in the accuracy of skeleton recognition in an automatic scoring system or a scoring support system causes erroneous recognition of techniques and scoring errors, resulting in a decrease in the reliability of the system.
- occlusion is performed by directly estimating the joint coordinates from the distance images acquired by the 3D laser sensors A and B by using a machine learning technique such as deep learning. Even when the above occurs, the performer's three-dimensional skeleton is recognized at high speed and with high accuracy.
- the 3D laser sensor A (hereinafter, may be simply referred to as a sensor A or the like) is a sensor that images the performer from the front, and the 3D laser sensor B is a sensor that images the performer from the rear.
- Each 3D laser sensor is an example of a sensor device that measures (sensing) the distance of an object pixel by pixel using an infrared laser or the like.
- the distance image includes the distance to each pixel. That is, the distance image is a depth image showing the depth of the subject as seen from each 3D laser sensor (depth sensor).
- the recognition device 50 is an example of a computer device that recognizes the skeleton related to the orientation and position of each joint of the performer 1 by using the distance image measured by each 3D laser sensor and the learned learning model. Specifically, the recognition device 50 inputs the distance image measured by each 3D laser sensor into the trained learning model, and recognizes the skeleton based on the output result of the learning model. After that, the recognition device 50 outputs the recognized skeleton to the scoring device 90.
- the information obtained as a result of skeleton recognition is skeleton information regarding the three-dimensional position of each joint.
- the scoring device 90 identifies the transition of the movement obtained from the position and orientation of each joint of the performer by using the skeletal information which is the recognition result input by the recognition device 50, and identifies the technique performed by the performer 1. And is an example of a computer device that performs scoring.
- the learning model is a model using machine learning such as a neural network, and can be generated by the recognition device 50 or can be generated by a learning device (not shown) which is a device different from the recognition device 50. It should be noted that one learning model learned using each distance image captured by each of the 3D laser sensors A and B can be used. It is also possible to use two learning models A and B trained to correspond to the respective sensors by using the distance images captured by the 3D laser sensors A and B respectively.
- a distance image and three-dimensional skeleton position information in the distance image are used.
- the learning device generates a heat map image in which the likelihoods of a plurality of joint positions of a subject are projected from a plurality of directions from three-dimensional skeleton position information. More specifically, the learning device viewed the performer from directly above with a frontal heatmap image of the performer viewed from the front (hereinafter, may be referred to as a frontal heatmap, xy heatmap, etc.). A heat map image in the direction directly above (hereinafter, may be described as a heat map directly above, an xz heat map, or the like) is generated. Then, the learning device learns the learning model by using the training data in which the distance image is the explanatory variable and the heat map image in two directions associated with the distance image is the objective variable.
- the recognition device 50 estimates joint information including the position of each joint by using the learning model learned in this way.
- FIG. 2 is a diagram for explaining the estimation of joint information using the learning model according to the first embodiment.
- the recognition device 50 acquires a distance image of the performer 1 by each 3D laser sensor, inputs the distance image to the trained learning model, and joins the two-dimensional heat map image in two directions. Recognize for a few minutes. Then, the recognition device 50 calculates the two-dimensional coordinates of the skeleton position on the image from the two-dimensional heat map image corresponding to the number of joints in each direction, and from the two-dimensional skeleton position in each direction and the center of gravity of the human region, the performer. The joint information including the three-dimensional coordinates of each joint of 1 is calculated.
- FIG. 3 is a diagram illustrating skeleton recognition according to the first embodiment.
- the recognition device 50 performs background subtraction and noise removal on the distance image captured by the 3D laser sensor A to remove a region where there is no movement between frames as a background, and performs distance image A. To generate. Subsequently, the recognition device 50 inputs the distance image A into the trained learning model and estimates the joint information A (three-dimensional coordinates of each joint) based on the distance image A.
- the recognition device 50 generates background image B by performing background subtraction and noise removal on the distance image captured by the 3D laser sensor B. Subsequently, the recognition device 50 inputs the distance image B into the trained learning model and estimates the joint information B based on the distance image B. After that, the recognition device 50 converts the coordinates of the joint information A so as to match the coordinate system of the joint information B, integrates the converted joint information A and the joint information B, and integrates the three-dimensional skeleton of the performer 1. Generate skeletal information indicating the position.
- the recognition device 50 calculates the joint position including the joint coordinates of the whole body for each sensor, and then integrates the joint positions after matching the coordinate systems of both sensors to complete the whole body. Output the skeleton position. As a result, even when occlusion occurs, the three-dimensional skeleton of the performer can be recognized at high speed and with high accuracy.
- FIG. 4 is a functional block diagram showing a functional configuration of the system according to the first embodiment.
- the recognition device 50 and the scoring device 90 will be described.
- the recognition device 50 includes a communication unit 51, a storage unit 52, and a control unit 55.
- the communication unit 51 is a processing unit that controls communication between other devices, such as a communication interface.
- the communication unit 51 receives the distance image captured by each 3D laser sensor and transmits the recognition result and the like to the scoring device 90.
- the storage unit 52 is an example of a storage device that stores data, a program executed by the control unit 55, and the like, such as a memory and a hard disk.
- the storage unit 52 stores the learning model 53 and the skeleton recognition result 54.
- the learning model 53 is a learned learning model learned by machine learning or the like. Specifically, the learning model 53 is a learning model that predicts 18 front heat map images and 18 directly above heat map images corresponding to each joint from a distance image.
- the learning model 53 may be two learning models that have been trained to recognize each heat map image from the distance image of each sensor so as to correspond to each of the 3D laser sensors. Further, the learning model 53 may be one learning model trained to recognize each heat map image from each distance image captured by each 3D laser sensor.
- each heat map image is a heat map image corresponding to each of the 18 joints defined on the skeleton model.
- 18 joints are predefined.
- FIG. 5 is a diagram showing a definition example of the skeleton.
- the skeleton definition is 18 definition information (Nos. 0 to 17) in which each joint specified by a known skeleton model is numbered.
- the right shoulder joint SHOULDER_RIGHT
- the left elbow joint ELBOW_LEFT
- KNEE_LEFT left knee joint
- the right hip joint is given number 14.
- the Z-axis can be defined as the distance direction from the 3D laser sensor 5 toward the target
- the Y-axis can be defined as the height direction perpendicular to the Z-axis
- the X-axis can be defined as the horizontal direction.
- the definition information stored here may be measured for each performer by 3D sensing with a 3D laser sensor, or may be defined using a skeleton model of a general system.
- the skeleton recognition result 54 is the skeleton information of the performer 1 recognized by the control unit 55, which will be described later.
- the skeleton recognition result 54 is information in which the captured frame of each performer is associated with the three-dimensional skeleton position calculated from the distance image of the frame.
- the control unit 55 is a processing unit that controls the entire recognition device 50, and is, for example, a processor.
- the control unit 55 has an estimation unit 60 and a calculation unit 70, and executes skeleton recognition of the performer 1.
- the estimation unit 60 and the calculation unit 70 are examples of electronic circuits included in the processor and examples of processes executed by the processor.
- the estimation unit 60 has a distance image acquisition unit 61, a heat map recognition unit 62, a two-dimensional calculation unit 63, and a three-dimensional calculation unit 64, and estimates joint information (skeleton recognition) indicating a three-dimensional joint position from a distance image. It is a processing unit to be processed.
- the distance image acquisition unit 61 is a processing unit that acquires a distance image from each 3D laser sensor. For example, the distance image acquisition unit 61 acquires a distance image captured by the 3D laser sensor A. Then, the distance image acquisition unit 61 is based on background subtraction that removes equipment such as an horse and background to leave only a human area with respect to the acquired distance image, and removal or error of pixels appearing in an empty place. Noise removal such as smoothing the noise on the surface of the human body is performed, and the distance image obtained as a result is output to the heat map recognition unit 62.
- the distance image acquisition unit 61 acquires the distance image A from the 3D laser sensor A, acquires the distance image B from the 3D laser sensor B, and outputs each distance image to the heat map recognition unit 62.
- the distance image acquisition unit 61 can also store each performer in the storage unit 52 or the like in association with the distance image.
- the heat map recognition unit 62 is a processing unit that recognizes a heat map image from a distance image using the learned learning model 53. For example, the heat map recognition unit 62 reads the learned learning model 53 using the neural network from the storage unit 52. Then, the heat map recognition unit 62 inputs the distance image A acquired from the 3D laser sensor A into the learning model 53, and acquires each heat map image. Similarly, the heat map recognition unit 62 inputs the distance image B acquired from the 3D laser sensor B into the learning model 53, and acquires each heat map image.
- FIG. 6 is a diagram illustrating heat map recognition of each joint.
- the heat map recognition unit 62 inputs the distance image acquired from the distance image acquisition unit 61 into the trained learning model 53, and as an output result, a front heat map image for each of the 18 joints. And, the heat map image directly above about each of the 18 joints is acquired. Then, the heat map recognition unit 62 outputs each heat map image recognized in this way to the two-dimensional calculation unit 63.
- the distance image is data including the distance from the 3D laser sensor to the pixel, and the closer the distance from the 3D laser sensor, the darker the color is displayed.
- the heat map image is generated for each joint and visualizes the likelihood of each joint position, and the coordinate position having the highest likelihood is displayed in a darker color.
- the shape of a person is not displayed in the heat map image, but in FIG. 6, the shape of the person is shown for easy understanding of the explanation, but the display format of the image is not limited.
- the two-dimensional calculation unit 63 is a processing unit that calculates the skeleton on the image from the two-dimensional heat map image. Specifically, the two-dimensional calculation unit 63 uses each heat map image corresponding to each 3D laser sensor for each of the 3D laser sensors A and B, and 2 of each indirect (skeleton position) on the image. Calculate the dimensional coordinates. That is, the two-dimensional calculation unit 63 has the two-dimensional coordinates A of each joint based on each heat map image recognized from the distance image A of the 3D laser sensor A and each heat recognized from the distance image B of the 3D laser sensor B. The two-dimensional coordinates B of each joint based on the map image are calculated, and the two-dimensional coordinates A and B are output to the three-dimensional calculation unit 64.
- the two-dimensional calculation unit 63 acquires a front heat map image of 18 joints and a heat map image directly above 18 joints. Then, the two-dimensional calculation unit 63 specifies the position of each joint from the highest value pixel of each heat map image, calculates the two-dimensional coordinates of the skeleton position on the image, and outputs the two-dimensional coordinates to the three-dimensional calculation unit 64.
- the two-dimensional calculation unit 63 specifies the pixel with the highest value of the heat map image for each of the front heat map images relating to the 18 joints, and individually specifies the position of each joint on the image. Then, the two-dimensional calculation unit 63 combines the joint positions specified from each front heat map image to specify 18 joint positions when the performer 1 is viewed from the front.
- the two-dimensional calculation unit 63 specifies the pixel with the highest value of the heat map image for each of the heat map images directly above the 18 joints, and individually specifies the position of each joint on the image. Then, the two-dimensional calculation unit 63 combines the joint positions specified from each heat map image directly above to specify 18 joint positions when the performer 1 is viewed from directly above.
- the two-dimensional calculation unit 63 uses the two-dimensional coordinates A of the performer's skeleton position corresponding to the 3D laser sensor A, and is directly above the 18 joint positions when viewed from the front. The joint position when viewed from the above is specified and output to the three-dimensional calculation unit 64. Further, the two-dimensional calculation unit 63 uses the two-dimensional coordinates B of the performer's skeleton position corresponding to the 3D laser sensor B, and has 18 joint positions when viewed from the front and joints when viewed from directly above. The position is specified and output to the three-dimensional calculation unit 64.
- the three-dimensional calculation unit 64 is a processing unit that calculates joint information (skeleton recognition) indicating each three-dimensional joint position by using the two-dimensional skeleton positions in the front direction and the direction directly above and the center of gravity of the human region. Specifically, the 3D calculation unit 64 calculates the 3D joint information A using the 2D coordinates A of the joint position calculated based on the distance image A of the 3D laser sensor A, and the 3D laser sensor B. The three-dimensional joint information B is calculated using the two-dimensional coordinates B of the joint position calculated based on the distance image B of. Then, the three-dimensional calculation unit 64 outputs each joint information having three-dimensional coordinates to the calculation unit 70.
- joint information skeleton recognition
- FIG. 7 is a diagram illustrating a three-dimensional skeleton calculation image.
- the distance image captured in this embodiment is a distance image in the xy-axis direction when the performer's horizontal direction is the x-axis, the vertical direction is the y-axis, and the depth direction is the z-axis (simply). It may be described as a distance image or an xy distance image).
- the front heat map image of the 18 joints recognized by the heat map recognition unit 62 is an image when the performer 1 is viewed from the front, and is an xy heat map image captured from the x-axis-y-axis direction. Is. Further, the heat map image directly above the 18 joints recognized by the heat map recognition unit 62 is an image when the performer 1 is viewed from directly above, and is an xz heat imaged from the x-axis-z-axis direction. It is a map image.
- the three-dimensional calculation unit 64 calculates the center of gravity of the human region (hereinafter, may be referred to as the human center of gravity) reflected in the distance image, and is equivalent to 18 joints from the human center of gravity and the two-dimensional skeleton position on the xz heat map image. Calculate the depth value. Then, the three-dimensional calculation unit 64 uses joint information (three-dimensional coordinates of the skeleton position), which is three-dimensional position information of each joint, using the depth values of 18 joints and the two-dimensional skeleton position on the xy heat map image. ) Is calculated.
- joint information three-dimensional coordinates of the skeleton position
- the three-dimensional calculation unit 64 acquires the distance image of the performer from the distance image acquisition unit 61.
- the distance image includes pixels in which a person is reflected, and each pixel stores a Z value from the 3D image sensor to the person (actor 1).
- the Z value is a pixel value of a pixel in which a person is shown on a distance image.
- the Z value is a pixel value of a pixel in which a person is shown on a distance image.
- the three-dimensional calculation unit 64 identifies each pixel whose distance from the 3D image sensor is less than the threshold value and whose pixel value is equal to or more than a certain value. That is, the three-dimensional calculation unit 64 identifies the performer 1 on the distance image. Then, the three-dimensional calculation unit 64 calculates the average value of the pixel values of the specified pixels as the center of gravity of the human region.
- the three-dimensional calculation unit 64 calculates the depth values for 18 joints using the center of gravity of the human region and the two-dimensional skeleton position on the image directly above, which is an image of the performer 1 viewed from directly above. To do. For example, the three-dimensional calculation unit 64 identifies each pixel whose pixel value is equal to or higher than a certain value from each heat map image (xz heat map image) directly above each of the 18 joints acquired from the heat map recognition unit 62. Identify the area in which the performer appears on the image. Then, the three-dimensional calculation unit 64 calculates the two-dimensional coordinates (x, z) of the human region specified on each xy heat map image.
- the three-dimensional calculation unit 64 determines in the three-dimensional space how far the z value of the two-dimensional coordinates (x, z) of the human region specified on each xy heat map image is from the center of the distance image.
- the Z value of can be calculated.
- the three-dimensional calculation unit 64 will be described with an example in which the image size is (320,320), the image center is (160,160), the center of gravity of the human region is 6000 mm, and the z value of the head is 200.
- the three-dimensional calculation unit 64 uses the depth values for 18 joints and the two-dimensional skeleton position on the xy heat map image recognized by the heat map recognition unit 62 to three-dimensionally position the skeleton of the performer 1. Calculate the coordinates. For example, the three-dimensional calculation unit 64 acquires the Z value in the three-dimensional space, which is the depth value for 18 joints, and uses the above method to obtain the two-dimensional (x, y) on the image from the xy heat map image. The coordinates are calculated, and the vector in the three-dimensional space is calculated from the two-dimensional coordinates (x, y).
- a distance image captured by a three-dimensional sensor such as a 3D laser sensor has three-dimensional vector information passing through each pixel from the origin of the sensor. Therefore, by using this information, the distance image is reflected in each pixel.
- the three-dimensional coordinate value of the existing object can be calculated.
- the three-dimensional calculation unit 64 uses the equation (1). By using it, it is possible to calculate (X, Y, Z) of the object (actor 1) reflected in the (x, y) coordinates. In this way, the three-dimensional calculation unit 64 calculates the three-dimensional coordinates (X, Y, Z) of the object reflected in each pixel, that is, each joint of the performer 1.
- the three-dimensional calculation unit 64 calculates the joint information A, which is the three-dimensional coordinates of each joint of the performer 1, based on the distance image A of the 3D laser sensor A, and the 3D laser sensor B.
- the joint information B which is the three-dimensional coordinates of each joint of the performer 1, is calculated based on the distance image B of. Then, the three-dimensional calculation unit 64 outputs the joint information A and the joint information B to the calculation unit 70.
- the calculation unit 70 has a coordinate conversion unit 71 and an integration unit 72, and calculates the three-dimensional skeleton position of the performer 1 using the two joint information calculated by the three-dimensional calculation unit 64. It is a processing unit to be processed.
- the coordinate conversion unit 71 is a processing unit that executes coordinate conversion for matching one coordinate system of the 3D laser sensor with the other coordinate system.
- the unified coordinate system is also called a reference coordinate system.
- the coordinate conversion unit 71 performs a process of matching the coordinate system of one sensor with the coordinate system of the other using the affine transformation parameters calculated by performing calibration in advance when the sensor is installed. This example shows an example of matching one coordinate system with the other, but when matching to a new coordinate system different from the coordinate system of either sensor, the coordinate transformation is applied to the results of both sensors.
- theta Xrot represents a y-axis central rotation angle
- theta Yrot represents a z-axis central rotation angle ⁇ zrot
- t represents the translation x-axis x
- t y that represents the translation y-axis
- a t z representing a translation z-axis.
- the coordinate transformation unit 71 can execute the transformation equivalent to the transformation of the affine transformation matrix using the equations (10) and (11) by converting in the order described above.
- the coordinate conversion unit 71 performs the above-mentioned coordinate conversion on the joint information A which is the three-dimensional skeleton of the performer 1 corresponding to the 3D laser sensor A, and obtains the joint information B corresponding to the 3D laser sensor B. Convert to the same coordinate system. After that, the coordinate conversion unit 71 outputs the joint information A after the coordinate conversion to the integration unit 72.
- the integration unit 72 is a processing unit that integrates the joint information A and the joint information B to calculate the three-dimensional skeleton information of the performer 1. Specifically, the integration unit 72 calculates the average value of the joint information A and the joint information B for each of the 18 joints shown in FIG. For example, the integration unit 72 finally determines the average value of the three-dimensional coordinates of the HEAD included in the joint information A and the three-dimensional coordinates of the HEAD included in the joint information B for the HEAD of the joint number 3 shown in FIG. Calculated as the joint position.
- the integration unit 72 calculates the average value of each joint as the final three-dimensional skeletal information of the performer 1. Then, the integration unit 72 transmits the calculated skeleton information to the scoring device 90.
- the scoring device 90 may output information such as a frame number and time information in association with the three-dimensional coordinates of each joint.
- the scoring device 90 has a communication unit 91, a storage unit 92, and a control unit 94.
- the communication unit 91 receives the skeleton information (three-dimensional skeleton position information) of the performer from the recognition device 50.
- the storage unit 92 is an example of a storage device that stores data, a program executed by the control unit 94, and the like, such as a memory and a hard disk.
- the storage unit 92 stores the technical information 93.
- the technique information 93 is, for example, information related to the technique of the pommel horse, and is information associated with the name of the technique, the difficulty level, the score, the position of each joint, the angle of the joint, the scoring rule, and the like.
- the control unit 94 is a processing unit that controls the entire scoring device 90, such as a processor.
- the control unit 94 has a scoring unit 95 and an output control unit 96, and scores a technique or the like according to the skeleton information of the performer 1 recognized by the recognition device 50.
- the scoring unit 95 is a processing unit that executes scoring of the performer's skill. Specifically, the scoring unit 95 compares the three-dimensional skeleton position transmitted from the recognition device 50 at any time with the technique information 93, and executes scoring of the technique performed by the actor 1. Then, the scoring unit 95 outputs the scoring result to the output control unit 96.
- the scoring unit 95 specifies the joint information of the technique performed by the actor 1 from the technique information 93. Then, the scoring unit 95 compares the joint information of the predetermined technique with the three-dimensional skeleton position acquired from the recognition device 50, and determines the accuracy and deduction of the technique of the performer 1 depending on the magnitude of the error and the like. Items etc. are extracted and the technique is scored.
- the scoring method of the technique is not limited to this, and scoring is performed according to a predetermined scoring rule.
- the output control unit 96 is a processing unit that displays the scoring result of the scoring unit 95 on a display or the like.
- the output control unit 96 includes a distance image captured by each 3D laser sensor from the recognition device 50, three-dimensional skeleton information calculated by the calculation unit 70, each image data being performed by the performer 1, and a scoring result.
- Various information such as is acquired and displayed on a predetermined screen.
- FIG. 8 is a flowchart showing the flow of the skeleton recognition process according to the first embodiment.
- the estimation unit 60 of the recognition device 50 acquires the distance image A from the 3D laser sensor A (S101), and executes background subtraction and noise removal on the distance image A (S102).
- the estimation unit 60 estimates the joint information A of the performer 1 by executing heat map recognition using the learning model 53, calculation of two-dimensional coordinates, calculation of three-dimensional coordinates, and the like (S103). Then, the calculation unit 70 executes the coordinate transformation of the estimated joint information A in order to match the other coordinate system (S104).
- the estimation unit 60 of the recognition device 50 acquires the distance image B from the 3D laser sensor B (S105), and executes background subtraction and noise removal on the distance image B (S106). Subsequently, the estimation unit 60 estimates the joint information B of the performer 1 by executing heat map recognition using the learning model 53, calculation of two-dimensional coordinates, calculation of three-dimensional coordinates, and the like (S107).
- the calculation unit 70 integrates the joint information A and the joint information B to generate three-dimensional coordinates of each joint (S108), and outputs the generated three-dimensional coordinates of each joint as a skeleton recognition result (S109). ).
- FIG. 9 is a flowchart showing the flow of the coordinate conversion process according to the first embodiment. This process is the process executed in S104 of FIG.
- the calculation unit 70 of the recognition device 50 reads out the joint coordinates of a certain joint included in one joint information (S201) and converts them into the coordinate system of another 3D laser sensor (S202). .. Then, the calculation unit 70 repeats S201 and subsequent steps until the processing is completed for all joints (S203: No), and when the processing is completed for all joints (S203: Yes), the converted all indirect coordinates are calculated. It is output as joint information after coordinate conversion (S204).
- the coordinate conversion by the calculation unit 70 is performed using the rotation / translation parameters for converting the point cloud of each sensor into the coordinate system after integration. Calibrate when the sensor is installed, and parameters such as X-axis center rotation angle, Y-axis center rotation angle, Z-axis center rotation angle, X-axis translation, Y-axis translation, Z-axis translation, and the order of rotation and translation.
- the Affin transformation matrix is determined by finding, and the XYZ coordinates of the joint can be transformed.
- FIG. 10 is a flowchart showing the flow of the integrated process according to the first embodiment. This process is the process executed in S108 of FIG.
- the calculation unit 70 reads out each joint coordinate of a certain joint from each joint information estimated from the distance image of each sensor (S301), and calculates the average value of each joint coordinate as the joint position (S301). S302).
- the calculation unit 70 repeats S301 and subsequent steps until the joint positions are calculated for all joints (S303: No), and when the joint positions are calculated for all joints (S303: Yes), the calculated coordinates of all joints are calculated. It is output as a skeleton position (three-dimensional skeleton information) (S304).
- the recognition device 50 acquires a distance image from each of the plurality of 3D laser sensors that sense the performer 1 from a plurality of directions. Then, the recognition device 50 obtains the pseudoskeleton information of the performer 1 for each of the plurality of 3D laser sensors based on the distance images of each of the plurality of 3D laser sensors and the learning model for obtaining the human joint position from the distance images. get. After that, the recognition device 50 integrates the pseudo-skeleton information of the performer 1 of each of the plurality of 3D laser sensors to generate the skeleton information of the performer 1.
- the recognition device 50 can generate a skeleton recognition result based on the results of sensing by the two 3D laser sensors installed in front of and behind the performer 1. Therefore, since the joint position can be directly estimated to generate skeletal information, the position information of 18 joints can be obtained from the distance image as compared with the method of indirectly estimating the joint position as in the conventional random forest. Can be predicted, and even when occlusion occurs in one joint, the position information of all 18 joints can be predicted from the relationship of the position information of the remaining 17 joints. Furthermore, by integrating the position information of two joints having different directions, it is possible to improve the recognition accuracy of the skeleton as compared with using the position information of only one direction.
- each joint information is integrated by the average, if one of them is mistaken, the coordinates of the empty space are calculated as the joint coordinates, and the recognition accuracy of the skeleton may decrease.
- the left and right or front and back
- the result may be far apart.
- FIG. 11 is a diagram for explaining the skeleton recognition result when both feet are mistaken for one side by the 3D laser sensor B.
- the skeleton recognition result A recognized using the distance image A of the sensor A is correctly recognized by both hands and feet.
- the skeleton recognition result A recognized using the distance image B of the sensor B the right foot and the left foot are recognized at the same position, which is an incorrect recognition result.
- each joint position is determined by the average value of the coordinates of each joint, so that the position of the right foot is closer to the left foot, and the correct skeletal position is not obtained. Recognition accuracy is reduced.
- FIG. 12 is a diagram for explaining the skeleton recognition result when the whole body is flipped horizontally by the 3D laser sensor B.
- the skeleton recognition result B recognized using the distance image A of the sensor A is correctly recognized by both hands and feet.
- the skeleton recognition result B recognized using the distance image B of the sensor B is recognized at a position where the right hand and the left hand are reversed left and right and the right foot and the left foot are reversed left and right, which is an incorrect recognition result. It has become.
- each joint position is determined by the average value of the coordinates of each joint, so that the skeletal position is such that both feet are located at the same position and both hands are located at the same position. The recognition accuracy of skeletal information decreases.
- the integration result of the previous frame is retained, and when the current frame is integrated, the integration result of the previous frame is used to improve the accuracy when one of them is incorrect.
- the frame is an example of each image frame in which the performance of the performer 1 is imaged
- the previous frame is an example of a frame immediately before the image frame to be processed at present.
- the integration result of the previous frame is an example of the skeleton recognition result finally acquired by using the distance image immediately before the distance image to be processed at present.
- FIG. 13 is a diagram illustrating the skeleton recognition process according to the second embodiment.
- the processes up to the skeleton integration are the same processes as in the first embodiment, and therefore detailed description thereof will be omitted.
- the recognition device 50 stores the result of the previous frame, and reads out the integrated result of the previous frame when integrating the joint information based on the distance image from each sensor for the current frame.
- the recognition device 50 selects the joint closer to the front frame from each joint information for each joint.
- the recognition device 50 has the three-dimensional coordinates A of the left hand included in the joint information A and the three-dimensional coordinates B of the left hand included in the joint information B, and the three-dimensional coordinates of the left hand included in the skeleton recognition result of the previous frame. Select the three-dimensional coordinate that is closer to the coordinate C.
- the recognition device 50 selects the joint included in the joint information A and the joint information B that is closer to the skeleton recognition result in the previous frame, and finally has a three-dimensional shape. Generate skeletal information.
- the recognition device 50 can generate the integrated result by excluding the joints that are erroneously recognized, so that it is possible to suppress a decrease in the recognition accuracy of the skeleton information.
- FIG. 14 is a diagram for explaining the skeleton recognition result according to the second embodiment when both feet are mistaken for one side by the 3D laser sensor B.
- the skeleton recognition result A recognized using the distance image A of the sensor A is correctly recognized by both hands and feet.
- the skeleton recognition result B recognized using the distance image B of the sensor B the right foot is recognized at the same position as the left foot, which is an incorrect recognition result.
- the recognition device 50 is closer to the skeleton recognition result of the front frame among the joint information A which is the skeleton recognition result of the sensor A and the joint information B which is the skeleton recognition result of the sensor B for each of the 18 joints.
- Select the joint information of the one For example, in the example of FIG. 14, the recognition device 50 selects the joint information B of the sensor B for the head, the spine, and the left foot, but selects the joint information A of the sensor A for both hands and the right foot. That is, the difference between the skeleton recognition result of the right foot and the front frame that is erroneously recognized in the joint information B is larger than the difference between the skeleton recognition result of the right foot and the front frame that is accurately recognized in the joint information A.
- the recognition device 50 can select the coordinates of the right foot of the joint information A, and can recognize accurate skeletal information.
- FIG. 15 is a diagram for explaining the skeleton recognition result according to Example 2 when the whole body is flipped horizontally by the 3D laser sensor B.
- the skeleton recognition result A recognized using the distance image A of the sensor A is correctly recognized by both hands and feet.
- the skeleton recognition result B recognized using the distance image B of the sensor B is recognized at a position where the right hand and the left hand are reversed left and right and the right foot and the left foot are reversed left and right, which is an incorrect recognition result. It has become.
- the recognition device 50 is closer to the skeleton recognition result of the front frame among the joint information A which is the skeleton recognition result of the sensor A and the joint information B which is the skeleton recognition result of the sensor B for each of the 18 joints.
- Select the joint information of the one For example, in the example of FIG. 15, the recognition device 50 selects the joint information B of the sensor B for the head, spine, and pelvis, and selects the joint information A of the sensor A for both hands and feet. That is, both hands and feet that are erroneously recognized in the joint information B are recognized in a direction completely different from that of the front frame, and the difference is very large. Therefore, the recognition device 50 uses the joint information A for both hands and feet. The coordinates of can be selected, and accurate skeletal information can be recognized.
- FIG. 16 is a flowchart showing the flow of the integrated process according to the second embodiment.
- the recognition device 50 compares the recognition results of both sensors with respect to the front frame for one joint (S401), and selects the joint coordinates closer to the front frame (S402).
- the recognition device 50 repeats S401 and subsequent steps until the selection of the joint coordinates for all the joints is completed (S403: No), and when the joint coordinates are selected for all the joints (S403: Yes), all the selected joints are selected.
- the coordinates are output as the skeleton position (S404).
- the correct skeleton may not be obtained after integration. For example, straight joints may appear to be bent, or sensors selected for each frame may appear to change and vibrate.
- FIG. 17 is a diagram for explaining the skeleton recognition result when the deviation between the sensors is large. Similar to the second embodiment, here, in order to make the explanation easy to understand, the joint information estimated using the distance image will be described using the skeletal position in which each joint included in each joint information is plotted.
- both the skeleton recognition result A recognized using the distance image A of the sensor A and the skeleton recognition result B recognized using the distance image B of the sensor B are recognized in the correct directions. ..
- the skeleton recognition result A is shifted to the right as a whole from the skeleton recognition result of the previous frame, and the skeleton recognition result B is generally to the left of the skeleton recognition result of the previous frame.
- the deviation between the skeleton recognition result A and the skeleton recognition result B is large.
- Example 2 when the deviation of each skeleton after coordinate conversion is large due to calibration deviation or sensor distortion, the deviation of the skeleton recognition result A and the skeleton recognition result B from the previous frame is about the same.
- the skeleton recognition result (A / B) selected for each joint may be a different distorted skeleton recognition result.
- Example 3 when the distance to the front frame is less than the threshold value and close to each other, the mean value is determined as the joint position, and both sensor results are far from the front frame when the distance to the front frame is greater than or equal to the threshold value.
- the skeleton recognition accuracy is improved by selecting the one closer to the front frame as the joint position.
- the final joint position is determined after correcting the selected joint position using the value indicating the deviation of the averaged joint from each sensor. You can also do it.
- FIG. 18 is a diagram illustrating the integrated process according to the third embodiment.
- FIG. 18 shows an example in which the deviation between the skeleton recognition result A of the sensor A and the skeleton recognition result B of the sensor B is large as in FIG.
- the difference between the indirect position other than the right foot in each of the skeleton recognition result A and the skeleton recognition result B of the joint other than the right foot is less than the threshold value, and the position of the right foot is the same as that of the front frame.
- the difference is greater than or equal to the threshold.
- the recognition device 50 determines the average value of the skeleton recognition result A of the sensor A and the skeleton recognition result B of the sensor B at the joint position for the joints other than the right foot, and the skeleton recognition result A of the sensor A for the right foot. And the skeleton recognition result B of the sensor B, whichever is closer to the front frame, is determined as the joint position.
- FIG. 19 is a flowchart showing the flow of the integrated process according to the third embodiment.
- a process of correcting the selected joint position is incorporated by using a value indicating the deviation of the averaged joint from each sensor when the joint position closer to the front frame is selected. ..
- the recognition device 50 compares the skeleton recognition results of both sensors with the previous frame for one joint (S501), and determines whether or not both are below the threshold value (S502).
- the recognition device 50 calculates the average of both sensors as the joint coordinates (S503). Subsequently, the recognition device 50 calculates the difference between the average value and each skeleton recognition result for the joint for which the average has been calculated (S504).
- the recognition device 50 selects the joint coordinates closer to the front frame (S505).
- the recognition device 50 corrects the coordinates of the joint closer to the front frame by using the difference average of the entire sensor (S508). After that, the recognition device 50 outputs the calculated coordinates of all joints as a skeleton recognition result (S509).
- the recognition device 50 acquires the coordinate difference from the skeleton recognition result before correction of each sensor for the averaged joint (joint after correction), and calculates the difference average before and after the correction for each sensor.
- the recognition device 50 is calculated by the following formula.
- the difference is calculated by the difference in xyz coordinates.
- Sensor A difference coordinate after correction-coordinate before correction of sensor A
- Difference of sensor B coordinate after correction-coordinate before correction of sensor B
- Average difference of sensor A (sum of differences of sensor A of each joint) ) / (Number of joints averaged by Sensor A)
- Average difference of sensor B (sum of differences of sensor B of each joint) / (number of joints averaged by sensor B)
- the recognition device 50 corrects the joint selected as being close to the front frame by using the calculation result of the above average difference as shown in the following equation.
- Joint after correction of sensor A Coordinates before correction of sensor A + average difference of sensor A (when coordinates of sensor B are selected)
- Joint after correction of sensor B Coordinates before correction of sensor B + average difference of sensor B
- the gymnastics competition has been described as an example, but the present invention is not limited to this, and can be applied to other competitions in which the athlete performs a series of techniques and the referee scores.
- Examples of other sports include figure skating, rhythmic gymnastics, cheerleading, swimming diving, karate kata, and mogul air. Further, it can be applied not only to sports but also to posture detection of drivers of trucks, taxis, trains, etc. and posture detection of pilots.
- the present invention is not limited to this.
- the coordinate systems of both joint positions can be transformed and integrated so that they are different from the two coordinate systems.
- the skeleton recognition result of the frame immediately before the current frame has been described, but it is not limited to the immediately preceding frame and may be before the current frame.
- [Learning model] A learning algorithm such as a neural network can be adopted for the trained learning model. Further, in the above embodiment, a learning model for recognizing a front heat map image and a heat map image directly above has been illustrated, but the present invention is not limited to this. For example, a learning model that recognizes a front heat map image and a parallax heat map image can be adopted.
- the heat map image in the front direction is a heat map image of the viewpoint (reference viewpoint) of the distance image itself given to the input.
- the parallax heat map image is a heat map image from the parallax position, which is a heat map image of a virtual viewpoint assumed to be translated and rotated by an arbitrary numerical value with respect to the reference viewpoint.
- the "front” is the viewpoint of the distance image itself given to the input as in the first embodiment, and based on this, the rotation matrix is used as the relative positional relationship of the "parallax position" with respect to the "front".
- the translation is the position ⁇ moved from the “front” in the lateral direction.
- ⁇ depends on how much the heat map of the position moved to the side during learning is learned. Therefore, for example, the heat map assumes a position where the parallax position is moved 100 mm in the positive direction of the X axis with respect to the front.
- the translation becomes [100,0,0]. That is, the translation is parallel movement [100,0,0] and the rotation is [0,0,0].
- a learning model to which a neural network is applied which is trained to directly estimate 18 joint positions from a distance image, can be adopted.
- the three-dimensional skeleton position is calculated using the heat map image of the reference viewpoint and the heat map image of the virtual viewpoint assumed to be translated and rotated by an arbitrary numerical value with respect to the reference viewpoint.
- other information can be used as long as it is information indicating the relative positional relationship of the virtual viewpoints, and an arbitrarily set rotation matrix value or translation can be used.
- the information required to match the coordinate system B of the other virtual viewpoint with the coordinate system A is translation [X, Y, Z] and a rotation matrix. Is.
- the "front" is the viewpoint of the distance image itself given to the input, and with this as a reference, the rotation matrix is set to the X-axis as the relative positional relationship of the "directly above” with respect to the "front".
- the rotation is ⁇ 90 degrees
- 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 forms of distribution and integration of each device are not limited to those shown in the figure. That is, all or a part thereof can be functionally or physically distributed / integrated in any unit according to various loads, usage conditions, and the like.
- each 3D laser sensor may be built in each device, or may be connected by communication or the like as an external device of each device.
- the distance image acquisition unit 61 is an example of an acquisition unit that acquires a distance image
- the heat map recognition unit 62, the two-dimensional calculation unit 63, and the three-dimensional calculation unit 64 are joint information including each joint position of the subject. This is an example of an acquisition unit that acquires.
- the calculation unit 70 is an example of a generation unit and an output unit.
- each processing function performed by each device can be realized by a CPU and a program that is analyzed and executed by the CPU, or can be realized as hardware by wired logic.
- FIG. 20 is a diagram illustrating a hardware configuration example.
- the computer 100 includes a communication device 100a, an HDD (Hard Disk Drive) 100b, a memory 100c, and a processor 100d. Further, the parts shown in FIG. 20 are connected to each other by a bus or the like.
- HDD Hard Disk Drive
- the communication device 100a is a network interface card or the like, and communicates with other servers.
- the HDD 100b stores a program or DB that operates the function shown in FIG.
- the processor 100d reads a program that executes the same processing as each processing unit shown in FIG. 4 from the HDD 100b or the like and expands the program into the memory 100c to operate a process that executes each function described in FIG. 4 or the like. That is, this process executes the same function as each processing unit of the recognition device 50 and the scoring device 90.
- the processor 100d reads a program having the same functions as the estimation unit 60 and the calculation unit 70 from the HDD 100b and the like. Then, the processor 100d executes a process of executing the same processing as that of the estimation unit 60, the calculation unit 70, and the like.
- the learning device 10 can also be processed using the same hardware configuration.
- the recognition device 50 or the scoring device 90 operates as an information processing device that executes the recognition method or the scoring method by reading and executing the program. Further, the recognition device 50 or the scoring device 90 can realize the same function as that of the above-described embodiment by reading the program from the recording medium by the medium reading device and executing the read program.
- the program referred to in the other embodiment is not limited to being executed by the recognition device 50 or the scoring device 90.
- the present invention can be similarly applied when another computer or server executes a program, or when they execute a program in cooperation with each other.
- Recognition device 51 Communication unit 52 Storage unit 53 Learning model 54 Skeletal recognition result 55 Control unit 60 Estimate unit 61 Distance image acquisition unit 62 Heat map recognition unit 63 2D calculation unit 64 3D calculation unit 70 Calculation unit 71 Coordinate conversion unit 72 Integration Department
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- Human Computer Interaction (AREA)
- Optics & Photonics (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
認識装置は、被写体を複数の方向からそれぞれセンシングする複数のセンサそれぞれから、距離画像を取得する。認識装置は、複数のセンサそれぞれから取得された各距離画像と、距離画像から被写体の各関節位置を推定する学習モデルとを用いて、複数のセンサごとに、被写体の各関節位置を含む関節情報を取得する。認識装置は、複数のセンサそれぞれに対応する各関節情報を統合して、被写体の各関節位置に関する3次元座標を含む骨格情報を生成し、被写体の骨格情報を出力する。
Description
本発明は、骨格認識方法、骨格認識プログラムおよび情報処理装置に関する。
体操や医療などの幅広い分野において、選手や患者などの人物の骨格を認識することが行われている。例えば、人物までの距離をセンシングする3D(Three Dimensions)レーザセンサ(以下、距離センサや深度センサともいう。)が出力する距離画像に基づいて、人物の骨格を認識する装置が利用されている。
近年では、異なる方向から被写体を撮像する2台の3Dレーザセンサと、距離画像から体の部位を示す部位ラベルを付与した部位ラベル画像を認識するランダムフォレストで学習された学習モデルとを用いた装置が知られている。
例えば、各3Dレーザセンサから取得された各距離画像をランダムフォレストで学習された各学習モデルに入力して各部位ラベル画像を取得し、各部位ラベル画像内で各部位の境界付近の画素(境界画素)を特定する。また、各3Dレーザセンサから、距離画像の各画素を3軸(x、y、z軸)で表す点に変換した3D点群データを取得する。続いて、各3D点群データ上で境界画素に対応する点群を特定し、一方の3D点群データに座標変換等を行って、2つの3D点群データを統合した1つの点群データを生成する。そして、2つの部位ラベル画像と点群データとを統合し、各部位ラベル画像内の各境界点群における各重心座標を各関節位置の座標として算出することで、被写体の骨格を認識する。
しかしながら、上記技術のように、距離画像からランダムフォレストにより得られた各部位ラベル画像を統合する手法では、被写体の骨格の認識精度がよくない。具体的には、各部位ラベルの境界から間接的に関節座標を算出するので、2台の3Dレーダセンサを用いても、被写体の一部が隠れるオクルージョンとなっている部分の関節の認識精度を高めることは難しい。
例えば、体操競技のあん馬を例に、2台のうちの3DレーザセンサAでは左足があん馬の後ろに隠れたオクルージョンが発生し、3DレーザセンサBではオクルージョンが発生していない例で説明する。
この場合、ランダムフォレストは、画素単位で認識してラベル推定を行うので、オクルージョンが発生している距離画像Aからは、左足の部位ラベルを認識できず、左足の3D点群データも取得できない。このため、2つの部位ラベル画像と点群データとを統合すると、左足のデータに関しては、3DレーザセンサBの距離画像Bに依存することになる。したがって、例えば距離画像Aと距離画像Bとのずれが大きい場合、左足以外は平均的な位置に関節を認識できるが、左足は距離画像Bの情報がそのまま使用されるので、最終的に認識された全身の骨格位置がいびつになる場合がある。つまり、少なくとも一つの関節(例えば左足の膝や足首)の位置を正しく認識できない。
一つの側面では、骨格の認識精度を向上させることができる骨格認識方法、骨格認識プログラムおよび情報処理装置を提供することを目的とする。
第1の案では、骨格認識方法は、コンピュータが、被写体を複数の方向からそれぞれセンシングする複数のセンサそれぞれから、距離画像を取得する処理を実行する。骨格認識方法は、コンピュータが、前記複数のセンサそれぞれから取得された各距離画像と、距離画像から被写体の各関節位置を推定する学習モデルとを用いて、前記複数のセンサごとに、前記被写体の各関節位置を含む関節情報を取得する処理を実行する。骨格認識方法は、コンピュータが、前記複数のセンサそれぞれに対応する各関節情報を統合して、前記被写体の各関節位置に関する3次元座標を含む骨格情報を生成し、前記被写体の骨格情報を出力する処理を実行する。
一つの側面では、骨格の認識精度を向上させることができる。
以下に、本発明にかかる骨格認識方法、骨格認識プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
図1は、実施例1にかかる認識装置を含むシステムの全体構成例を示す図である。図1に示すように、このシステムは、3DレーザセンサAとB、認識装置50、採点装置90を有し、被写体である演技者1の3次元データを撮像し、骨格等を認識して正確な技の採点を行うシステムである。なお、本実施例では、一例として、体操競技における演技者の骨格情報を認識する例で説明する。また、本実施例では、骨格位置の2次元座標や2次元座標の骨格位置を、単に2次元骨格位置などと記載する場合がある。
図1は、実施例1にかかる認識装置を含むシステムの全体構成例を示す図である。図1に示すように、このシステムは、3DレーザセンサAとB、認識装置50、採点装置90を有し、被写体である演技者1の3次元データを撮像し、骨格等を認識して正確な技の採点を行うシステムである。なお、本実施例では、一例として、体操競技における演技者の骨格情報を認識する例で説明する。また、本実施例では、骨格位置の2次元座標や2次元座標の骨格位置を、単に2次元骨格位置などと記載する場合がある。
一般的に、体操競技における現在の採点方法は、複数の採点者によって目視で行われているが、技の高度化に伴い、採点者の目視では採点が困難な場合が増加している。近年では、3Dレーザセンサを使った、採点競技の自動採点システムや採点支援システムが知られている。例えば、これらのシステムにおいては、3Dレーザセンサにより選手の3次元データである距離画像を取得し、距離画像から選手の各関節の向きや各関節の角度などである骨格を認識する。そして、採点支援システムにおいては、骨格認識の結果を3Dモデルにより表示することで、採点者が演技者の細部の状況を確認するなどにより、より正しい採点を実施することを支援する。また、自動採点システムにおいては、骨格認識の結果から、演技した技などを認識し、採点ルールに照らして採点を行う。
ここで、採点支援システムや自動採点システムにおいては、随時行われる演技を、タイムリーに採点支援または自動採点することが求められる。しかし、従来のランダムフォレストで学習する手法では、2台の3Dレーダセンサを用いても、被写体の一部が隠れるオクルージョンとなっている部分の関節の認識精度が低下することから、採点精度も低下していた。
例えば、自動採点システムによる自動採点の結果を採点者へ提供し、採点者が自己の採点結果と比較する形態では、従来技術を用いた場合、骨格認識の精度が低下することで、技認識も誤ってしまう可能性があり、結果として技による決定される得点も誤ってしまう。同様に、採点支援システムにおいて、演技者の関節の角度や位置を、3Dモデルを使って表示する際にも、表示までの時間が遅延し、表示される角度等が正しくないという事態を生じうる。この場合には、採点支援システムを利用した採点者による採点は、誤った採点となってしまう場合もある。
以上の通り、自動採点システムや採点支援システムにおける骨格認識の精度低下は、技の誤認識、採点ミスの発生を引き起こし、システムの信頼度の低下を招いてしまう。
そこで、実施例1にかかるシステムでは、3DレーザセンサAとBのそれぞれで取得された距離画像から、深層学習(Deep Learning)等の機械学習技術を用いて直接関節座標を推定することで、オクルージョンが発生している場合であっても、演技者の3次元骨格を高速かつ高精度に認識する。
まず、図1におけるシステムを構成する各装置について説明する。3DレーザセンサA(以下では単にセンサAなど記載する場合がある)は、演技者を前方から撮像するセンサであり、3DレーザセンサBは、演技者を後方から撮像するセンサである。各3Dレーザセンサは、赤外線レーザ等を用いて対象物の距離を画素ごとに測定(センシング)するセンサ装置の一例である。距離画像には、各画素までの距離が含まれる。つまり、距離画像は、各3Dレーザセンサ(深度センサ)から見た被写体の深度を表す深度画像である。
認識装置50は、各3Dレーザセンサにより測定された距離画像と学習済みの学習モデルとを用いて、演技者1の各関節の向きや位置等に関する骨格を認識するコンピュータ装置の一例である。具体的には、認識装置50は、各3Dレーザセンサにより測定された距離画像を学習済みの学習モデルに入力し、学習モデルの出力結果に基づいて骨格を認識する。その後、認識装置50は、認識された骨格を採点装置90に出力する。なお、本実施例において、骨格認識の結果として得られる情報は、各関節の3次元位置に関する骨格情報である。
採点装置90は、認識装置50により入力された認識結果である骨格情報を用いて、演技者の各関節の位置や向きから得られる動きの推移を特定し、演技者1が演技した技の特定および採点を実行するコンピュータ装置の一例である。
次に、学習モデルについて説明する。学習モデルは、ニューラルネットワークなどの機械学習を用いたモデルであり、認識装置50で生成することもでき、認識装置50と別の装置である学習装置(図示しない)で生成することもできる。なお、3DレーザセンサA、Bそれぞれで撮像される各距離画像を用いて学習された1つの学習モデルを用いることできる。また、3DレーザセンサA、Bそれぞれで撮像される各距離画像を用いて、それぞれのセンサに対応するように学習された2つの学習モデルA、Bを用いることもできる。
この学習モデルの学習には、距離画像と当該距離画像における3次元の骨格位置情報とが利用される。例えば、学習装置で生成する例で説明すると、学習装置は、3次元の骨格位置情報から、被写体の複数の関節位置の尤度を複数方向から投影したヒートマップ画像を生成する。より詳細には、学習装置は、演技者を正面から見た正面方向のヒートマップ画像(以下では、正面ヒートマップやxyヒートマップなどと記載する場合がある)と演技者を真上から見た真上方向のヒートマップ画像(以下では、真上ヒートマップやxzヒートマップなどと記載する場合がある)とを生成する。そして、学習装置は、距離画像を説明変数、距離画像に対応付けられる2方向のヒートマップ画像を目的変数とする訓練データを用いて、学習モデルを学習する。
実施例1にかかる認識装置50は、このように学習された学習モデルを用いて、各関節の位置を含む関節情報を推定する。図2は、実施例1にかかる学習モデルを用いた関節情報の推定を説明する図である。図2に示すように、認識装置50は、各3Dレーザセンサにより演技者1の距離画像を取得し、学習済みの学習モデルに距離画像を入力して、2方向の2次元ヒートマップ画像を関節数分認識する。そして、認識装置50は、各方向の関節数分の2次元ヒートマップ画像から画像上の骨格位置の2次元座標を算出し、各方向の2次元の骨格位置と人領域の重心から、演技者1の各関節の3次元座標を含む関節情報を算出する。
ここで、図2に示した学習モデルを用いた認識装置50の骨格認識の処理について説明する。図3は、実施例1にかかる骨格認識を説明する図である。図3に示すように、認識装置50は、3DレーザセンサAにより撮像された距離画像に対して、フレーム間で動きのない領域を背景として除去する背景差分とノイズ除去を実行して距離画像Aを生成する。続いて、認識装置50は、距離画像Aを学習済みの学習モデルに入力して、距離画像Aに基づく関節情報A(各関節の3次元座標)を推定する。
同様に、認識装置50は、3DレーザセンサBにより撮像された距離画像に対して、背景差分とノイズ除去を実行して距離画像Bを生成する。続いて、認識装置50は、距離画像Bを学習済みの学習モデルに入力して、距離画像Bに基づく関節情報Bを推定する。その後、認識装置50は、関節情報Bの座標系に合わせるように関節情報Aの座標を変換し、変換後の関節情報Aと関節情報Bとを統合して、演技者1の3次元の骨格位置を示す骨格情報を生成する。
このように、認識装置50は、センサ毎に全身の関節座標を含む関節位置を算出し、その後、両センサの座標系を合わせた上で、関節位置を統合することで、最終的な全身の骨格位置を出力する。この結果、オクルージョンが発生している場合であっても、演技者の3次元骨格を高速かつ高精度に認識することができる。
[機能構成]
図4は、実施例1にかかるシステムの機能構成を示す機能ブロック図である。ここでは、認識装置50と採点装置90とについて説明する。
図4は、実施例1にかかるシステムの機能構成を示す機能ブロック図である。ここでは、認識装置50と採点装置90とについて説明する。
(認識装置50)
図4に示すように、認識装置50は、通信部51、記憶部52、制御部55を有する。通信部51は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部51は、各3Dレーザセンサが撮像した距離画像を受信し、認識結果などを採点装置90に送信する。
図4に示すように、認識装置50は、通信部51、記憶部52、制御部55を有する。通信部51は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部51は、各3Dレーザセンサが撮像した距離画像を受信し、認識結果などを採点装置90に送信する。
記憶部52は、データや制御部55が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部52は、学習モデル53、骨格認識結果54を記憶する。
学習モデル53は、機械学習等によって学習された学習済みの学習モデルである。具体的には、学習モデル53は、距離画像から、各関節に対応する18枚の正面ヒートマップ画像と18枚の真上ヒートマップ画像とを予測する学習モデルである。なお、学習モデル53は、各3Dレーザセンサそれぞれに対応するように、各センサの距離画像から各ヒートマップ画像を認識するようにそれぞれ学習された2つの学習モデルであってもよい。また、学習モデル53は、各3Dレーザセンサで撮像される各距離画像から各ヒートマップ画像を認識するように学習された1つの学習モデルであってもよい。
ここで、各ヒートマップ画像は、骨格モデル上で定義される18個の各関節に対応するヒートマップ画像である。ここで、18個の関節は予め定義されている。図5は、骨格の定義例を示す図である。図5に示すように、骨格定義は、公知の骨格モデルで特定される各関節をナンバリングした、18個(0番から17番)の定義情報である。例えば、図5に示すように、右肩関節(SHOULDER_RIGHT)には7番が付与され、左肘関節(ELBOW_LEFT)には5番が付与され、左膝関節(KNEE_LEFT)には11番が付与され、右股関節(HIP_RIGHT)には14番が付与される。ここで、実施例では、8番の右肩関節のX座標をX8、Y座標をY8、Z座標をZ8と記載する場合がある。なお、例えば、Z軸は、3Dレーザセンサ5から対象に向けた距離方向、Y軸は、Z軸に垂直な高さ方向、X軸は、水平方向をと定義することができる。ここで記憶される定義情報は、3Dレーザセンサによる3Dセンシングによって演技者ごとに測定してもよく、一般的な体系の骨格モデルを用いて定義してもよい。
骨格認識結果54は、後述する制御部55によって認識された演技者1の骨格情報である。例えば、骨格認識結果54は、撮像された各演技者のフレームと、そのフレームの距離画像から算出された3次元の骨格位置とが対応付けられる情報である。
制御部55は、認識装置50全体を司る処理部であり、例えばプロセッサなどである。この制御部55は、推定部60と算出部70を有し、演技者1の骨格認識を実行する。なお、推定部60と算出部70は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
推定部60は、距離画像取得部61、ヒートマップ認識部62、2次元算出部63、3次元算出部64を有し、距離画像から3次元の関節位置を示す関節情報(骨格認識)を推定する処理部である。
距離画像取得部61は、各3Dレーザセンサから距離画像を取得する処理部である。例えば、距離画像取得部61は、3DレーザセンサAが撮像した距離画像を取得する。そして、距離画像取得部61は、取得された距離画像に対して、あん馬等の器具や背景を除去して人の領域だけを残す背景差分と、何もない場所に現れる画素の除去や誤差による人体表面のノイズの平滑化等を行うノイズ除去を行い、その結果で得られる距離画像をヒートマップ認識部62に出力する。
このようにして、距離画像取得部61は、3DレーザセンサAから距離画像Aを取得し、3DレーザセンサBから距離画像Bを取得して、各距離画像をヒートマップ認識部62に出力する。なお、距離画像取得部61は、各演技者と距離画像とを対応付けて記憶部52等に格納することもできる。
ヒートマップ認識部62は、学習済みの学習モデル53を用いて、距離画像からヒートマップ画像を認識する処理部である。例えば、ヒートマップ認識部62は、ニューラルネットワークを用いた学習済みの学習モデル53を記憶部52から読み出す。そして、ヒートマップ認識部62は、3DレーザセンサAから取得した距離画像Aを学習モデル53に入力して、各ヒートマップ画像を取得する。同様に、ヒートマップ認識部62は、3DレーザセンサBから取得した距離画像Bを学習モデル53に入力して、各ヒートマップ画像を取得する。
図6は、各関節のヒートマップ認識を説明する図である。図6に示すように、ヒートマップ認識部62は、距離画像取得部61から取得した距離画像を、学習済みの学習モデル53に入力し、出力結果として、18個の関節それぞれに関する正面ヒートマップ画像と、18個の関節それぞれに関する真上ヒートマップ画像を取得する。そして、ヒートマップ認識部62は、このようにして認識した各ヒートマップ画像を、2次元算出部63に出力する。
なお、図6に示すように、距離画像は、3Dレーザセンサから画素までの距離が含まれるデータであり、3Dレーザセンサからの距離が近いほど、濃い色で表示される。また、ヒートマップ画像は、関節ごとに生成され、各関節位置の尤度を可視化した画像であって、最も尤度が高い座標位置ほど、濃い色で表示される。なお、通常、ヒートマップ画像では、人物の形は表示されないが、図6では、説明をわかりやすくするために、人物の形を図示するが、画像の表示形式を限定するものではない。
2次元算出部63は、2次元のヒートマップ画像から画像上の骨格を算出する処理部である。具体的には、2次元算出部63は、3DレーザセンサAとBのそれぞれに対して、各3Dレーザセンサに対応する各ヒートマップ画像を用いて、画像上の各間接(骨格位置)の2次元座標を算出する。すなわち、2次元算出部63は、3DレーザセンサAの距離画像Aから認識された各ヒートマップ画像に基づく各関節の2次元座標Aと、3DレーザセンサBの距離画像Bから認識された各ヒートマップ画像に基づく各関節の2次元座標Bとを算出して、それぞれの2次元座標AとBを3次元算出部64に出力する。
例えば、2次元算出部63は、18個の関節に関する正面ヒートマップ画像と18個の関節に関する真上ヒートマップ画像とを取得する。そして、2次元算出部63は、各ヒートマップ画像の最高値画素から各関節の位置を特定し、画像上の骨格位置の2次元座標を算出して、3次元算出部64に出力する。
つまり、2次元算出部63は、18個の関節に関する正面ヒートマップ画像それぞれについて、ヒートマップ画像の最高値の画素を特定して、各関節の画像上の位置を、個別に特定する。そして、2次元算出部63は、各正面ヒートマップ画像から特定された関節位置を組み合わせて、演技者1を正面から見た場合の18個の関節位置を特定する。
同様に、2次元算出部63は、18個の関節に関する真上ヒートマップ画像それぞれについて、ヒートマップ画像の最高値の画素を特定して、各関節の画像上の位置を、個別に特定する。そして、2次元算出部63は、各真上ヒートマップ画像から特定された関節位置を組み合わせて、演技者1を真上から見た場合の18個の関節位置を特定する。
このような手法を用いて、2次元算出部63は、3DレーザセンサAに対応する演技者の骨格位置の2次元座標Aを用いて、正面から見た場合の18個の関節位置と真上から見た場合の関節位置を特定して、3次元算出部64に出力する。また、2次元算出部63は、3DレーザセンサBに対応する演技者の骨格位置の2次元座標Bを用いて、正面から見た場合の18個の関節位置と真上から見た場合の関節位置を特定して、3次元算出部64に出力する。
3次元算出部64は、正面方向および真上方向の2次元骨格位置と人領域の重心とを用いて、3次元の各関節位置を示す関節情報(骨格認識)を算出する処理部である。具体的には、3次元算出部64は、3DレーザセンサAの距離画像Aに基づき算出された関節位置の2次元座標Aを用いて、3次元の関節情報Aを算出し、3DレーザセンサBの距離画像Bに基づき算出された関節位置の2次元座標Bを用いて、3次元の関節情報Bを算出する。そして、3次元算出部64は、3次元座標である各関節情報を算出部70に出力する。
ここで、3次元の骨格算出時のイメージについて説明する。図7は、3次元の骨格算出イメージを説明する図である。図7に示すように、本実施例において撮像される距離画像は、演技者の水平方向をx軸、垂直方向をy軸、奥行き方向をz軸とした場合のxy軸方向の距離画像(単に距離画像またはxy距離画像と記載する場合がある)などである。
また、ヒートマップ認識部62により認識される18個の関節に関する正面ヒートマップ画像は、演技者1を正面から見た場合の画像であり、x軸-y軸方向から撮像されるxyヒートマップ画像である。また、ヒートマップ認識部62により認識される18個の関節に関する真上ヒートマップ画像は、演技者1を真上から見た場合の画像であり、x軸-z軸方向から撮像されるxzヒートマップ画像である。
3次元算出部64は、距離画像に映る人領域の重心(以下、人重心と記載する場合がある)を算出し、人重心とxzヒートマップ画像上の2次元骨格位置とから18関節分の奥行き値を算出する。そして、3次元算出部64は、18関節分の奥行き値とxyヒートマップ画像上の2次元骨格位置とを用いて、各関節の3次元の位置情報である関節情報(骨格位置の3次元座標)を算出する。
例えば、3次元算出部64は、距離画像取得部61から演技者の距離画像を取得する。ここで、距離画像には、人が映っている画素が含まれており、各画素には、3Dイメージセンサから人(演技者1)までのZ値が格納されている。Z値とは、距離画像上で人が映っている画素の画素値である。なお、一般的には、距離画像の距離の情報を、x,y,zの直交座標の座標軸で表す座標値に変換した値のうち、3Dイメージセンサから被写体へ向かう方向であるz軸の値をZ値という。
そこで、3次元算出部64は、3Dイメージセンサからの距離が閾値未満であり、画素値が一定値以上である各画素を特定する。つまり、3次元算出部64は、距離画像上で演技者1を特定する。そして、3次元算出部64は、特定した各画素の画素値の平均値を人領域の重心として算出する。
続いて、3次元算出部64は、人領域の重心と演技者1を真上から見た画像である真上画像上の2次元の骨格位置とを用いて、18関節分の奥行き値を算出する。例えば、3次元算出部64は、ヒートマップ認識部62から取得した18個の関節に関する各真上ヒートマップ画像(xzヒートマップ画像)から、画素値が一定値以上である各画素を特定し、画像上で演技者が映っている領域を特定する。そして、3次元算出部64は、各xyヒートマップ画像上で特定された人領域の2次元座標(x,z)を算出する。
ここで、距離画像は、人の重心が画像の中心にくるように、例えば1ピクセル=10mmとなるように作成される。したがって、3次元算出部64は、各xyヒートマップ画像上で特定された人領域の2次元座標(x,z)のz値が距離画像の中心からどれだけ離れているかにより、3次元空間中のZ値を算出することができる。例えば、3次元算出部64は、画像サイズを(320,320)、画像中心を(160,160)、人領域の重心を6000mm、頭のz値を200とする例で説明すると、3次元空間中のZ値を「(200-160)×10+6000=6400mm」と算出する。
その後、3次元算出部64は、18関節分の奥行き値と、ヒートマップ認識部62により認識されたxyヒートマップ画像上の2次元骨格位置とを用いて、演技者1の骨格位置の3次元座標を算出する。例えば、3次元算出部64は、18関節分の奥行き値である3次元空間中のZ値を取得し、上記手法を用いて、xyヒートマップ画像から画像上の(x,y)の2次元座標を算出し、2次元座標(x,y)から3次元空間中のベクトルを算出する。
例えば、3Dレーザセンサのような3次元センサで撮像された距離画像は、センサ原点から各画素を通る3次元ベクトル情報を有していることから、この情報を用いることにより、各画素に写っている物体の3次元座標値が算出できる。そして、3次元算出部64は、xyヒートマップ画像に(x,y)座標の3次元ベクトルを(normX,normY,normZ)、その座標のZ値を「pixelZ」とすると、式(1)を用いることにより、(x,y)座標に映っている物体(演技者1)の(X,Y,Z)を算出することができる。このようにして、3次元算出部64は、各画素に写っている物体、すなわち演技者1の各関節の3次元座標(X,Y,Z)を算出する。
上述した手法を用いて、3次元算出部64は、3DレーザセンサAの距離画像Aに基づいて、演技者1の各関節の3次元座標である関節情報Aを算出するとともに、3DレーザセンサBの距離画像Bに基づいて、演技者1の各関節の3次元座標である関節情報Bを算出する。そして、3次元算出部64は、関節情報Aと関節情報Bとを、算出部70に出力する。
図4に戻り、算出部70は、座標変換部71と統合部72を有し、3次元算出部64により算出された2つの関節情報を用いて、演技者1の3次元の骨格位置を算出する処理部である。
座標変換部71は、3Dレーザセンサの片方の座標系をもう片方の座標系に合わせるための座標変換を実行する処理部である。なお、統一する座標系を基準座標系とも呼ぶ。具体的には、座標変換部71は、センサ設置時に予めキャリブレーションを行って算出しておいたアフィン変換パラメータを用いて片方のセンサの座標系をもう片方の座標系に合わせる処理を行う。この例では片方の座標系をもう片方に一致させる例を示しているが、どちらのセンサの座標系とも異なる新たな座標系に合わせる場合は両方のセンサの結果に対し、座標変換を適用する。
ここで、入力座標(x,y,z)に対して、x軸まわりの回転、y軸まわりの回転、z軸まわりの回転、平行移動それぞれの行列を乗算することによって座標変換を行う例を説明する。式(2)によりx軸まわりの回転を定義し、ここでRx(θ)を式(3)と定義する。同様に、式(4)によりy軸まわりの回転を定義し、ここでRy(θ)を式(5)と定義する。また、式(6)によりz軸まわりの回転を定義し、ここでRz(θ)を式(7)と定義し、式(8)により平行移動を定義し、ここでTを式(9)と定義する。なお、x軸中心回転角度を表すθxrot、y軸中心回転角度を表すθyrot、z軸中心回転角度を表すθzrot、x軸平行移動を表すtx、y軸平行移動を表すty、z軸平行移動を表すtzとなる。
このように、座標変換部71は、上述した順に変換することで、式(10)と式(11)を用いるアフィン変換行列を変換と等価の変換を実行することができる。
そして、座標変換部71は、3DレーザセンサAに対応する演技者1の3次元骨格である関節情報Aに対して、上述した座標変換を行って、3DレーザセンサBに対応する関節情報Bと同じ座標系に変換する。その後、座標変換部71は、座標変換後の関節情報Aを統合部72に出力する。
統合部72は、関節情報Aと関節情報Bとを統合して、演技者1の3次元の骨格情報を算出する処理部である。具体的には、統合部72は、図5に示す18個の各関節について、関節情報Aと関節情報Bとの平均値を算出する。例えば、統合部72は、図5に示す関節番号3のHEADについて、関節情報Aに含まれるHEADの3次元座標と関節情報Bに含まれるHEADの3次元座標との平均値を、最終的な関節位置として算出する。
このように、統合部72は、各関節の平均値を、演技者1の最終的な3次元の骨格情報として算出する。そして、統合部72は、算出した骨格情報を採点装置90に送信する。なお、採点装置90には、各関節の3次元座標とともに、フレーム番号や時刻情報などの情報が対応付けて、出力されても良い。
図4に戻り、採点装置90は、通信部91、記憶部92、制御部94を有する。通信部91は、認識装置50から演技者の骨格情報(3次元の骨格位置情報)を受信する。
記憶部92は、データや制御部94が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部92は、技情報93を記憶する。技情報93は、例えばあん馬の技に関する情報であり、技の名前、難易度、得点、各関節の位置、関節の角度、採点ルールなどを対応付けた情報である。
制御部94は、採点装置90全体を司る処理部であり、例えばプロセッサなどである。この制御部94は、採点部95と出力制御部96とを有し、認識装置50により認識された演技者1の骨格情報にしたがって、技の採点などを行う。
採点部95は、演技者の技の採点を実行する処理部である。具体的には、採点部95は、認識装置50から随時送信される3次元の骨格位置と、技情報93とを比較して、演技者1が演技した技の採点を実行する。そして、採点部95は、採点結果を出力制御部96に出力する。
例えば、採点部95は、演技者1が演技している技の関節情報を技情報93から特定する。そして、採点部95は、予め定められた技の関節情報と、認識装置50から取得した3次元の骨格位置とを比較し、誤差の大きさ等により、演技者1の技の正確性や減点項目などを抽出して、技の採点を行う。なお、技の採点方法は、これに限定されるものではなく、予め定めた採点ルールにしたがって採点される。
出力制御部96は、採点部95の採点結果などをディスプレイ等に表示する処理部である。例えば、出力制御部96は、認識装置50から、各3Dレーザセンサによる撮像された距離画像、算出部70により算出された3次元の骨格情報、演技者1が演技中の各画像データ、採点結果などの各種情報を取得して、所定の画面に表示する。
[処理の流れ]
次に、上述したシステムで実行される各処理について説明する。ここでは、骨格認識処理、座標変換処理、統合処理のそれぞれについて説明する。
次に、上述したシステムで実行される各処理について説明する。ここでは、骨格認識処理、座標変換処理、統合処理のそれぞれについて説明する。
(骨格認識処理)
図8は、実施例1にかかる骨格認識処理の流れを示すフローチャートである。図8に示すように、認識装置50の推定部60は、3DレーザセンサAから距離画像Aを取得し(S101)、距離画像Aに対して背景差分やノイズ除去を実行する(S102)。
図8は、実施例1にかかる骨格認識処理の流れを示すフローチャートである。図8に示すように、認識装置50の推定部60は、3DレーザセンサAから距離画像Aを取得し(S101)、距離画像Aに対して背景差分やノイズ除去を実行する(S102)。
続いて、推定部60は、学習モデル53を用いたヒートマップ認識、2次元座標の算出、3次元座標の算出などを実行して、演技者1の関節情報Aを推定する(S103)。そして、算出部70は、もう片方の座標系に合わせるために、推定された関節情報Aの座標変換を実行する(S104)。
上記処理と並行して、認識装置50の推定部60は、3DレーザセンサBから距離画像Bを取得し(S105)、距離画像Bに対して背景差分やノイズ除去を実行する(S106)。続いて、推定部60は、学習モデル53を用いたヒートマップ認識、2次元座標の算出、3次元座標の算出などを実行して、演技者1の関節情報Bを推定する(S107)。
その後、算出部70は、関節情報Aと関節情報Bとを統合して、各関節の3次元座標を生成し(S108)、生成した各関節の3次元座標を骨格認識結果として出力する(S109)。
(座標変換処理)
図9は、実施例1にかかる座標変換処理の流れを示すフローチャートである。この処理は、図8のS104で実行される処理である。
図9は、実施例1にかかる座標変換処理の流れを示すフローチャートである。この処理は、図8のS104で実行される処理である。
図9に示すように、認識装置50の算出部70は、1つの関節情報に含まれるある関節の関節座標を読み出し(S201)、もう1台の3Dレーザセンサの座標系へ変換する(S202)。そして、算出部70は、すべての関節について処理が完了するまで(S203:No)、S201以降を繰り返し、すべての関節について処理が完了すると(S203:Yes)、変換された全間接の座標を、座標変換後の関節情報として出力する(S204)。
例えば、算出部70による座標変換は、各センサの点群を統合後座標系に変換するための回転・平行移動パラメータを用いて行われる。センサ設置時にキャリブレーションを行い、X軸中心回転角度、Y軸中心回転角度、Z軸中心回転角度、X軸平行移動、Y軸平行移動、Z軸平行移動、回転と平行移動の順序などのパラメータを求めることによりアフィン変換行列が決定し、関節のXYZ座標を変換することができる。
(統合処理)
図10は、実施例1にかかる統合処理の流れを示すフローチャートである。この処理は、図8のS108で実行される処理である。
図10は、実施例1にかかる統合処理の流れを示すフローチャートである。この処理は、図8のS108で実行される処理である。
図10に示すように、算出部70は、各センサの距離画像から推定された各関節情報からある関節の各関節座標を読み出し(S301)、各関節座標の平均値を関節位置として算出する(S302)。
そして、算出部70は、すべての関節について関節位置を算出するまで(S303:No)、S301以降を繰り返し、すべての関節について関節位置を算出すると(S303:Yes)、算出した全関節の座標を骨格位置(3次元の骨格情報)として出力する(S304)。
[効果]
上述したように、認識装置50は、演技者1を複数の方向からそれぞれセンシングする複数の3Dレーザセンサそれぞれから、距離画像を取得する。そして、認識装置50は、複数の3Dレーザセンサそれぞれの距離画像と、距離画像から人間の関節位置を得るための学習モデルに基づき、演技者1の仮骨格情報を、複数の3Dレーザセンサごとに取得する。その後、認識装置50は、複数の3Dレーザセンサそれぞれの演技者1の仮骨格情報を統合して、演技者1の骨格情報を生成する。
上述したように、認識装置50は、演技者1を複数の方向からそれぞれセンシングする複数の3Dレーザセンサそれぞれから、距離画像を取得する。そして、認識装置50は、複数の3Dレーザセンサそれぞれの距離画像と、距離画像から人間の関節位置を得るための学習モデルに基づき、演技者1の仮骨格情報を、複数の3Dレーザセンサごとに取得する。その後、認識装置50は、複数の3Dレーザセンサそれぞれの演技者1の仮骨格情報を統合して、演技者1の骨格情報を生成する。
このように、認識装置50は、演技者1の前後に設置した2つの3Dレーザセンサで各々センシングした結果を踏まえて、骨格認識結果を生成することができる。したがって、関節位置を直接的に推定して骨格情報を生成することができるので、従来のランダムフォレストのように、関節位置を間接的に推定する手法と比較すると、距離画像から18関節の位置情報を予測することができ、1つの関節にオクルージョンが発生している場合であっても、残りの17関節の位置情報の関係性から、18個すべての関節の位置情報を予測することができる。さらに、方向が異なる2つの関節の位置情報を統合することで、1方向のみの位置情報を用いるよりも骨格の認識精度を向上させることができる。
ところで、実施例1による手法では、平均により各関節情報の統合を行うので、片方が間違えると何もない空間の座標が関節座標として算出され、骨格の認識精度が低下する場合がある。例えば、正立や倒立している場合は、3Dの形状だけでは前後の判別が難しく、左右(もしくは前後)が反転して認識されることがあり、片方だけ反転した場合は人の形とはかけ離れた結果となる場合がある。
ここで、図11と図12を用いて、骨格の認識精度が低下する例を説明する。ここでは、説明を分かりやすくするために、距離画像を用いて推定された関節情報については、各関節情報に含まれる各関節をプロットした骨格位置(骨格認識結果)を用いて説明する。
図11は、3DレーザセンサBで両足を片側に間違えた場合の骨格認識結果を説明する図である。図11に示すように、センサAの距離画像Aを用いて認識された骨格認識結果Aは、両手、両足ともに正しく認識されている。一方で、センサBの距離画像Bを用いて認識された骨格認識結果Aは、右足と左足とが同じ位置に認識されており、間違った認識結果となっている。このような認識結果を実施例1の手法により統合すると、各関節の座標の平均値により各関節位置を決定するので、右足の位置が左足寄りになり、正しい骨格位置とならず、骨格情報の認識精度が低下する。
図12は、3DレーザセンサBで全身が左右反転した場合の骨格認識結果を説明する図である。図12に示すように、センサAの距離画像Aを用いて認識された骨格認識結果Bは、両手、両足ともに正しく認識されている。一方で、センサBの距離画像Bを用いて認識された骨格認識結果Bは、右手と左手とが左右逆転するとともに、右足と左足とが左右逆転した位置に認識されており、間違った認識結果となっている。このような認識結果を実施例1の手法により統合すると、各関節の座標の平均値により各関節位置を決定するので、両足が同じ位置に位置し、両手が同じ位置に位置する骨格位置となり、骨格情報の認識精度が低下する。
そこで、実施例2では、前フレームの統合結果を保持しておき、現フレームの統合の際に、前フレームの統合結果を利用することで片方が誤っていた場合の精度を向上させる。なお、フレームとは、演技者1の演技を撮像した各画像フレームの一例を示し、前フレームとは、現在処理対象とする画像フレームの直前のフレームの一例である。また、前フレームの統合結果とは、現在処理対象とする距離画像の1つ前の距離画像を用いて、最終的に取得された骨格認識結果の一例である。
図13は、実施例2にかかる骨格認識処理を説明する図である。図13に示す処理のうち、骨格統合までの処理は実施例1と同様の処理なので、詳細な説明は省略する。実施例2では、認識装置50は、前フレームの結果を保存しておき、現フレームについて各センサからの距離画像に基づく関節情報を統合する際に、前フレームの統合結果を読み出す。
そして、認識装置50は、関節ごとに、各関節情報のうち前フレームに近い方の関節を選択する。例えば、認識装置50は、関節情報Aに含まれる左手の3次元座標Aと、関節情報Bに含まれる左手の3次元座標Bとのうち、前フレームの骨格認識結果に含まれる左手の3次元座標Cに近い方の3次元座標を選択する。このように、認識装置50は、現フレームの統合時に、関節情報Aと関節情報Bに含まれる各関節のうち、前フレームにおける骨格認識結果に近い方を選択して、最終的な3次元の骨格情報を生成する。このよう結果、実施例1と比較して、認識装置50は、認識を誤った関節を除外して統合結果を生成することができるので、骨格情報の認識精度の低下を抑制することができる。
図14は、3DレーザセンサBで両足を片側に間違えた場合の実施例2にかかる骨格認識結果を説明する図である。図14に示すように、センサAの距離画像Aを用いて認識された骨格認識結果Aは、両手、両足ともに正しく認識されている。一方で、センサBの距離画像Bを用いて認識された骨格認識結果Bは、右足が左足と同じ位置に認識されており、間違った認識結果となっている。
この状態で、認識装置50は、18個の各関節について、センサAの骨格認識結果である関節情報AとセンサBの骨格認識結果である関節情報Bのうち、前フレームの骨格認識結果に近い方の関節情報を選択する。例えば、図14の例では、認識装置50は、頭、背骨、左足についてはセンサBの関節情報Bを選択するが、両手と右足については、センサAの関節情報Aを選択する。つまり、関節情報Bにおいて誤認識されている右足と前フレームの骨格認識結果との差分は、関節情報Aにおいて正確に認識されている右足と前フレームの骨格認識結果との差分より大きくなるので、認識装置50は、関節情報Aの右足の座標を選択することができ、正確な骨格情報を認識することができる。
図15は、3DレーザセンサBで全身が左右反転した場合の実施例2にかかる骨格認識結果を説明する図である。図15に示すように、センサAの距離画像Aを用いて認識された骨格認識結果Aは、両手、両足ともに正しく認識されている。一方で、センサBの距離画像Bを用いて認識された骨格認識結果Bは、右手と左手とが左右逆転するとともに、右足と左足とが左右逆転した位置に認識されており、間違った認識結果となっている。
この状態で、認識装置50は、18個の各関節について、センサAの骨格認識結果である関節情報AとセンサBの骨格認識結果である関節情報Bのうち、前フレームの骨格認識結果に近い方の関節情報を選択する。例えば、図15の例では、認識装置50は、頭、背骨、骨盤についてはセンサBの関節情報Bが選択され、両手と両足についてはセンサAの関節情報Aが選択される。つまり、関節情報Bにおいて誤認識されている両手、両足については、前フレームと全く異なる方向に認識されており、その差分も非常に大きくなるので、認識装置50は、関節情報Aの両手および両足の座標を選択することができ、正確な骨格情報を認識することができる。
図16は、実施例2にかかる統合処理の流れを示すフローチャートである。図16に示すように、認識装置50は、1関節について両センサの認識結果を前フレームと比較し(S401)、前フレームに近い方の関節座標を選択する(S402)。
そして、認識装置50は、すべての関節について関節座標の選択が完了するまで(S403:No)、S401以降を繰り返し、すべての関節について関節座標を選択すると(S403:Yes)、選択した全関節の座標を骨格位置として出力する(S404)。
ところで、実施例2による手法では、キャリブレーションずれやセンサ歪みにより座標変換後の各骨格のずれが大きい場合、統合後に正しい骨格が得られない場合がある。例えば、真っ直ぐな関節が曲がっているように見えたり、フレーム毎に選択されるセンサが変わり振動しているように見えたりする。
図17は、センサ間のずれが大きい場合の骨格認識結果を説明する図である。実施例2と同様、ここでは、説明を分かりやすくするために、距離画像を用いて推定された関節情報については、各関節情報に含まれる各関節をプロットした骨格位置を用いて説明する。
図17に示すように、センサAの距離画像Aを用いて認識された骨格認識結果Aも、センサBの距離画像Bを用いて認識された骨格認識結果Bも、正しい方向で認識されている。しかし、図17に示すように、骨格認識結果Aは、前フレームの骨格認識結果よりも全体的に右にずれており、骨格認識結果Bは、前フレームの骨格認識結果よりも全体的に左にずれており、骨格認識結果Aと骨格認識結果Bとのずれが大きい。このような認識結果を実施例2の手法により統合すると、互いにずれた骨格認識結果A、Bから各関節の座標を選択する事になる。よって、実施例2は、キャリブレーションずれやセンサ歪みにより座標変換後の各骨格のずれが大きい場合には、骨格認識結果A、骨格認識結果Bの前フレームとのずれがそれぞれ同程度の場合は、関節毎に選択される骨格認識結果(A/B)が異なるいびつな形の骨格認識結果となる場合がある。
そこで、実施例3では、両方のセンサ結果が前フレームとの距離が閾値未満で近い場合には、平均値を関節位置に決定し、両方のセンサ結果が前フレームとの距離が閾値以上で遠い場合は、前フレームに近い方を関節位置に選択することで、骨格の認識精度を向上させる。なお、前フレームに近い方の関節位置を選択する場合、平均を取った関節の各センサからのずれを示す値を用いて、選択した関節位置を補正した上で、最終的な関節位置を決定することもできる。
図18は、実施例3にかかる統合処理を説明する図である。図18では、図17と同様、センサAの骨格認識結果AとセンサBの骨格認識結果Bとのずれが大きい例を示している。この状態で、右足以外の関節の骨格認識結果Aと骨格認識結果Bとのそれぞれにおける右足以外の間接位置が、前フレームとの差分が閾値未満であり、右足の位置については、前フレームとの差分が閾値以上とする。この場合、認識装置50は、右足以外の関節についてはセンサAの骨格認識結果AとセンサBの骨格認識結果Bとの平均値を関節位置に決定し、右足についてはセンサAの骨格認識結果AとセンサBの骨格認識結果Bとのうち前フレームに近い方の座標を関節位置に決定する。
図19は、実施例3にかかる統合処理の流れを示すフローチャートである。ここでは、前フレームに近い方の関節位置を選択した場合に、平均を取った関節の各センサからのずれを示す値を用いて、選択した関節位置を補正する処理を組み込んだ例で説明する。
図19に示すように、認識装置50は、1関節について両センサの骨格認識結果を前フレームと比較し(S501)、両方とも閾値未満か否かを判定する(S502)。
そして、認識装置50は、両方ともが閾値未満の場合(S502:Yes)、両センサ平均を関節座標として算出する(S503)。続いて、認識装置50は、平均を算出した関節について、平均値と各骨格認識結果との差分を算出する(S504)。
一方、認識装置50は、いずれかが閾値以上である場合(S502:No)、前フレームに近い方の関節座標を選択する(S505)。
その後、すべての関節について処理が完了するまで(S506:No)、S501以降を繰り返し、すべての関節についての処理が完了すると(S506:Yes)、認識装置50は、平均を取った関節について、各センサの平均値の差分からセンサ全体の差分平均を算出する(S507)。
そして、認識装置50は、前フレームに近い方の関節について、センサ全体の差分平均を用いて座標を補正する(S508)。その後、認識装置50は、算出した全関節の座標を骨格認識結果として出力する(S509)。
ここで、前フレームに近いとして選択された座標の補正について詳細に説明する。認識装置50は、平均を取った関節(補正後の関節)に対し、各センサの補正前の骨格認識結果との座標差分を取得し、センサ毎の補正前後の差分平均を算出する。例えば、認識装置50は、以下のような式で算出する。なお、差分の算出は、xyz座標の差である。
センサAの差分=補正後の座標-センサAの補正前の座標
センサBの差分=補正後の座標-センサBの補正前の座標
センサAの平均差分=(各関節のセンサAの差分の和)/(センサAの平均を取った関節数)
センサBの平均差分=(各関節のセンサBの差分の和)/(センサBの平均を取った関節数)
センサBの差分=補正後の座標-センサBの補正前の座標
センサAの平均差分=(各関節のセンサAの差分の和)/(センサAの平均を取った関節数)
センサBの平均差分=(各関節のセンサBの差分の和)/(センサBの平均を取った関節数)
その後、認識装置50は、前フレームに近いとして選択された関節に対して、上記平均差分の算出結果を用いて、以下の式のように補正する。
(センサAの座標が選択された場合)センサAの補正後の関節=センサAの補正前の座標+センサAの平均差分
(センサBの座標が選択された場合)センサBの補正後の関節=センサBの補正前の座標+センサBの平均差分
(センサBの座標が選択された場合)センサBの補正後の関節=センサBの補正前の座標+センサBの平均差分
このようにすることで、片方のセンサを選択した関節についても平均した関節と同じだけシフトさせる事ができ、正しい位置に関節が接続された骨格を認識することができる。なお、両方のセンサ結果が前フレームとの距離が閾値未満で近い場合には、平均値を関節位置に決定する例を説明したが、いずれか一方が近い場合に平均値を算出し、いずれも遠い場合に前フレームに近い方を関節位置に選択することもできる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[適用例]
上記実施例では、体操競技を例にして説明したが、これに限定されるものではなく、選手が一連の技を行って審判が採点する他の競技にも適用することができる。他の競技の一例としては、フィギュアスケート、新体操、チアリーディング、水泳の飛び込み、空手の型、モーグルのエアーなどがある。また、スポーツに限らず、トラック、タクシー、電車などの運転手の姿勢検出やパイロットの姿勢検出などにも適用することができる。
上記実施例では、体操競技を例にして説明したが、これに限定されるものではなく、選手が一連の技を行って審判が採点する他の競技にも適用することができる。他の競技の一例としては、フィギュアスケート、新体操、チアリーディング、水泳の飛び込み、空手の型、モーグルのエアーなどがある。また、スポーツに限らず、トラック、タクシー、電車などの運転手の姿勢検出やパイロットの姿勢検出などにも適用することができる。
[骨格情報]
また、上記実施例では、18個の各関節の位置を学習する例を説明したが、これに限定されるものではなく、1個以上の関節を指定して学習することもできる。また、上記実施例では、骨格情報の一例として各関節の位置を例示して説明したが、これに限定されるものではなく、各関節の角度、手足の向き、顔の向きなど、予め定義できる情報であれば、様々な情報を採用することができる。
また、上記実施例では、18個の各関節の位置を学習する例を説明したが、これに限定されるものではなく、1個以上の関節を指定して学習することもできる。また、上記実施例では、骨格情報の一例として各関節の位置を例示して説明したが、これに限定されるものではなく、各関節の角度、手足の向き、顔の向きなど、予め定義できる情報であれば、様々な情報を採用することができる。
また、実施例1では、一方の関節位置の座標系に合うように、もう片方の関節位置に座標変換を行う例を説明したが、これに限定されるものではない。例えば、2つの座標系とは異なる別の座標系になるように、両方の関節位置の座標系を変換して統合することもできる。また、実施例2では、現フレームより1つ前の直前のフレームの骨格認識結果を用いる例を説明したが、直前に限らず、現フレームより前であればよい。
[数値や方向等]
上記実施例で用いた数値などがあくまで一例であり、実施例を限定するものではなく、任意に設定変更することができる。また、上記実施例では、2方向のヒートマップ画像を例示して説明したが、これに限定されるものではなく、3方向以上のヒートマップ画像を対象とすることもできる。また、各3Dレーザセンサの設置位置や数も一例であり、異なる方向であれば、任意の方向に設置することができる。
上記実施例で用いた数値などがあくまで一例であり、実施例を限定するものではなく、任意に設定変更することができる。また、上記実施例では、2方向のヒートマップ画像を例示して説明したが、これに限定されるものではなく、3方向以上のヒートマップ画像を対象とすることもできる。また、各3Dレーザセンサの設置位置や数も一例であり、異なる方向であれば、任意の方向に設置することができる。
[学習モデル]
上記学習済みの学習モデルには、ニューラルネットワークなどの学習アルゴリズムを採用することができる。また、上記実施例では、正面ヒートマップ画像と真上ヒートマップ画像とを認識する学習モデルを例示したが、これに限定されるものではない。例えば、正面ヒートマップ画像と視差ヒートマップ画像とを認識する学習モデルを採用することもできる。
上記学習済みの学習モデルには、ニューラルネットワークなどの学習アルゴリズムを採用することができる。また、上記実施例では、正面ヒートマップ画像と真上ヒートマップ画像とを認識する学習モデルを例示したが、これに限定されるものではない。例えば、正面ヒートマップ画像と視差ヒートマップ画像とを認識する学習モデルを採用することもできる。
正面方向のヒートマップ画像は、入力に与える距離画像そのものの視点(基準視点)のヒートマップ画像である。視差ヒートマップ画像は、基準視点に対して任意の数値分平行移動および回転させた位置に仮定した仮想視点のヒートマップ画像である視差位置からのヒートマップ画像である。
なお、「正面」は実施例1と変わらず入力に与える距離画像そのものの視点であり、これを基準に考えて、「視差位置」の「正面」に対する相対的な位置関係として、回転行列は、変化なし(=X,Y,Z軸どれに対しても回転0°)となり、平行移動は、「正面」から真横方向に移動した位置βとなる。なお、βは、学習時にどれだけ真横に移動した位置のヒートマップを学習させたかに依存するので、例えば、視差位置を正面に対してX軸正方向に100mm移動した位置を仮定してヒートマップを学習させた場合、平行移動は[100,0,0]となる。すなわち、平行移動[100,0,0]、回転[0,0,0]となる。
また、上記実施例では、距離画像から各種ヒートマップ画像を認識する学習モデルを用いた例を説明したが、これに限定されるものではない。例えば、距離画像から18個の関節位置を直接推定するように学習された、ニューラルネットワークを適用した学習モデルを採用することもできる。
[仮想視点の相対的な位置関係を示す情報]
上記実施例では、基準視点のヒートマップ画像と、基準視点に対して任意の数値分平行移動、回転させた位置に仮定した仮想視点のヒートマップ画像とを使用して3次元の骨格位置を算出する例を説明したが、仮想視点の相対的な位置関係を示す情報であれば他の情報を用いることもでき、任意に設定した回転行列の値や平行移動を用いることができる。ここで、片方の仮想視点の座標系Aを基準に、もう一方の仮想視点の座標系Bを座標系Aと一致させるために必要な情報が、平行移動[X,Y,Z]と回転行列である。
上記実施例では、基準視点のヒートマップ画像と、基準視点に対して任意の数値分平行移動、回転させた位置に仮定した仮想視点のヒートマップ画像とを使用して3次元の骨格位置を算出する例を説明したが、仮想視点の相対的な位置関係を示す情報であれば他の情報を用いることもでき、任意に設定した回転行列の値や平行移動を用いることができる。ここで、片方の仮想視点の座標系Aを基準に、もう一方の仮想視点の座標系Bを座標系Aと一致させるために必要な情報が、平行移動[X,Y,Z]と回転行列である。
実施例1の場合、「正面」は入力に与える距離画像そのものの視点で、これを基準に考えて、「真上」の「正面」に対する相対的な位置関係として、回転行列は、X軸に-90度回転となり、平行移動は、Z軸方向に距離画像から得られる重心のZ値、Y軸方向に距離画像から得られる重心のY値+αとなる。なお、αは、学習時にどの視点のヒートマップを学習したかに依存するので、例えば、学習時に真上ヒートマップ画像を人領域の重心の真上5700mm位置から見たヒートマップ画像として学習させた場合、α=5700mmとなる。すなわち、実施例1では、平行移動[0,α,重心Z]、回転[-90,0,0]となる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。また、各3Dレーザセンサは、各装置に内蔵されていてもよく、各装置の外部装置として通信等で接続されていてもよい。なお、距離画像取得部61は、距離画像を取得する取得部の一例であり、ヒートマップ認識部62、2次元算出部63、3次元算出部64は、前記被写体の各関節位置を含む関節情報を取得する取得部の一例である。算出部70は、生成部と出力部の一例である。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
次に、認識装置50や採点装置90などのコンピュータのハードウェア構成について説明する。図20は、ハードウェア構成例を説明する図である。図20に示すように、コンピュータ100は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、図20に示した各部は、バス等で相互に接続される。
次に、認識装置50や採点装置90などのコンピュータのハードウェア構成について説明する。図20は、ハードウェア構成例を説明する図である。図20に示すように、コンピュータ100は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、図20に示した各部は、バス等で相互に接続される。
通信装置100aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD100bは、図4に示した機能を動作させるプログラムやDBを記憶する。
プロセッサ100dは、図4に示した各処理部と同様の処理を実行するプログラムをHDD100b等から読み出してメモリ100cに展開することで、図4等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、認識装置50や採点装置90が有する各処理部と同様の機能を実行する。具体的には、認識装置50を例にすると、プロセッサ100dは、推定部60と算出部70等と同様の機能を有するプログラムをHDD100b等から読み出す。そして、プロセッサ100dは、推定部60と算出部70等と同様の処理を実行するプロセスを実行する。なお、学習装置10についても同様のハードウェア構成を用いて処理することができる。
このように認識装置50または採点装置90は、プログラムを読み出して実行することで認識方法または採点方法を実行する情報処理装置として動作する。また、認識装置50または採点装置90は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、認識装置50または採点装置90によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
50 認識装置
51 通信部
52 記憶部
53 学習モデル
54 骨格認識結果
55 制御部
60 推定部
61 距離画像取得部
62 ヒートマップ認識部
63 2次元算出部
64 3次元算出部
70 算出部
71 座標変換部
72 統合部
51 通信部
52 記憶部
53 学習モデル
54 骨格認識結果
55 制御部
60 推定部
61 距離画像取得部
62 ヒートマップ認識部
63 2次元算出部
64 3次元算出部
70 算出部
71 座標変換部
72 統合部
Claims (9)
- コンピュータが、
被写体を複数の方向からそれぞれセンシングする複数のセンサそれぞれから、距離画像を取得し、
前記複数のセンサそれぞれから取得された各距離画像と、距離画像から被写体の各関節位置を推定する学習モデルとを用いて、前記複数のセンサごとに、前記被写体の各関節位置を含む関節情報を取得し、
前記複数のセンサそれぞれに対応する各関節情報を統合して、前記被写体の各関節位置に関する3次元座標を含む骨格情報を生成し、
前記被写体の骨格情報を出力する、
処理を実行することを特徴とする骨格認識方法。 - 前記生成する処理は、前記複数のセンサそれぞれの座標系から基準座標系に前記各関節情報を座標変換し、座標変換後の前記各関節情報を統合して、前記被写体の骨格情報を生成することを特徴とする請求項1に記載の骨格認識方法。
- 前記生成する処理は、前記被写体の各関節位置として、前記複数のセンサそれぞれに対応する各関節情報に含まれる3次元座標の平均値を算出して、前記被写体の骨格情報を生成することを特徴とする請求項1に記載の骨格認識方法。
- 前記生成する処理は、前記被写体の各関節位置として、前記複数のセンサそれぞれに対応する各関節情報に含まれる3次元座標のうち、現在処理対象とする距離画像より以前に取得された距離画像を用いて生成された骨格情報との距離が近い方の関節位置を選択して、前記被写体の骨格情報を生成することを特徴とする請求項1に記載の骨格認識方法。
- 前記生成する処理は、前記被写体の各関節位置として、前記複数のセンサそれぞれに対応する各関節情報に含まれる各3次元座標と、現在処理対象とする距離画像より以前に取得された距離画像を用いて生成された骨格情報との距離が閾値未満の場合に、前記各3次元座標の平均値を算出し、前記距離が閾値以上の場合に、前記距離が近い方の間接位置を選択して、前記被写体の骨格情報を生成することを特徴とする請求項1に記載の骨格認識方法。
- 前記生成する処理は、前記平均値を算出した各関節について、前記複数のセンサそれぞれの関節情報に含まれる3次元座標と前記平均値との差分の平均である差分平均を算出し、前記距離が近いとして選択された間接位置を前記差分平均で補正して、前記被写体の骨格情報を生成することを特徴とする請求項5に記載の骨格認識方法。
- 前記取得する処理は、被写体の複数の関節位置の尤度を複数方向から投影したヒートマップ画像を距離画像から認識する前記学習モデルに、前記複数のセンサそれぞれから取得された各距離画像を入力して得られる出力結果を用いて、前記被写体の各関節位置を含む関節情報を生成することを特徴とする請求項1に記載の骨格認識方法。
- コンピュータに、
被写体を複数の方向からそれぞれセンシングする複数のセンサそれぞれから、距離画像を取得し、
前記複数のセンサそれぞれから取得された各距離画像と、距離画像から被写体の各関節位置を推定する学習モデルとを用いて、前記複数のセンサごとに、前記被写体の各関節位置を含む関節情報を取得し、
前記複数のセンサそれぞれに対応する各関節情報を統合して、前記被写体の各関節位置に関する3次元座標を含む骨格情報を生成し、
前記被写体の骨格情報を出力する、
処理を実行させることを特徴とする骨格認識プログラム。 - 被写体を複数の方向からそれぞれセンシングする複数のセンサそれぞれから、距離画像を取得する取得部と、
前記複数のセンサそれぞれから取得された各距離画像と、距離画像から被写体の各関節位置を推定する学習モデルとを用いて、前記複数のセンサごとに、前記被写体の各関節位置を含む関節情報を取得する取得部と、
前記複数のセンサそれぞれに対応する各関節情報を統合して、前記被写体の各関節位置に関する3次元座標を含む骨格情報を生成する生成部と、
前記被写体の骨格情報を出力する出力部と、
を有することを特徴とする情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021545059A JP7367764B2 (ja) | 2019-09-12 | 2019-09-12 | 骨格認識方法、骨格認識プログラムおよび情報処理装置 |
PCT/JP2019/035979 WO2021048988A1 (ja) | 2019-09-12 | 2019-09-12 | 骨格認識方法、骨格認識プログラムおよび情報処理装置 |
US17/690,030 US20220198834A1 (en) | 2019-09-12 | 2022-03-09 | Skeleton recognition method, storage medium, and information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/035979 WO2021048988A1 (ja) | 2019-09-12 | 2019-09-12 | 骨格認識方法、骨格認識プログラムおよび情報処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/690,030 Continuation US20220198834A1 (en) | 2019-09-12 | 2022-03-09 | Skeleton recognition method, storage medium, and information processing device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021048988A1 true WO2021048988A1 (ja) | 2021-03-18 |
Family
ID=74866322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/035979 WO2021048988A1 (ja) | 2019-09-12 | 2019-09-12 | 骨格認識方法、骨格認識プログラムおよび情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220198834A1 (ja) |
JP (1) | JP7367764B2 (ja) |
WO (1) | WO2021048988A1 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114190928A (zh) * | 2021-12-27 | 2022-03-18 | 清华大学 | 险态工况下驾驶行为的识别方法、装置和计算机设备 |
CN114694263A (zh) * | 2022-05-30 | 2022-07-01 | 深圳智华科技发展有限公司 | 动作识别方法、装置、设备及存储介质 |
WO2022237383A1 (en) * | 2021-05-09 | 2022-11-17 | International Business Machines Corporation | Skeleton-based action recognition using bi-directional spatial-temporal transformer |
WO2023062757A1 (ja) * | 2021-10-13 | 2023-04-20 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
WO2023218979A1 (ja) * | 2022-05-12 | 2023-11-16 | ソニーグループ株式会社 | 画像処理装置、画像処理方法、およびプログラム |
WO2023223508A1 (ja) * | 2022-05-19 | 2023-11-23 | 日本電信電話株式会社 | 映像処理装置、映像処理方法、およびプログラム |
JP7412514B1 (ja) | 2022-09-28 | 2024-01-12 | 財団法人車輌研究測試中心 | キャビンモニタリング方法及び上記キャビンモニタリング方法を実行するキャビンモニタリングシステム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7312079B2 (ja) * | 2019-10-07 | 2023-07-20 | 株式会社東海理化電機製作所 | 画像処理装置、およびコンピュータプログラム |
CN115294660B (zh) * | 2022-10-08 | 2023-03-07 | 南京硅基智能科技有限公司 | 健身动作识别模型、模型的训练方法及健身动作识别方法 |
WO2024164063A1 (en) * | 2023-02-07 | 2024-08-15 | Kinetisense Inc. | Methods and systems for human motion capture |
CN118068318B (zh) * | 2024-04-17 | 2024-06-28 | 德心智能科技(常州)有限公司 | 基于毫米波雷达和环境传感器的多模态感知方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018087933A1 (ja) * | 2016-11-14 | 2018-05-17 | 富士通株式会社 | 情報処理装置、情報処理方法、およびプログラム |
WO2019069358A1 (ja) * | 2017-10-03 | 2019-04-11 | 富士通株式会社 | 認識プログラム、認識方法および認識装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200178851A1 (en) * | 2017-07-10 | 2020-06-11 | Georgia Tech Research Corporation | Systems and methods for tracking body movement |
JP7209333B2 (ja) * | 2018-09-10 | 2023-01-20 | 国立大学法人 東京大学 | 関節位置の取得方法及び装置、動作の取得方法及び装置 |
US11164319B2 (en) * | 2018-12-20 | 2021-11-02 | Smith & Nephew, Inc. | Machine learning feature vector generator using depth image foreground attributes |
-
2019
- 2019-09-12 JP JP2021545059A patent/JP7367764B2/ja active Active
- 2019-09-12 WO PCT/JP2019/035979 patent/WO2021048988A1/ja active Application Filing
-
2022
- 2022-03-09 US US17/690,030 patent/US20220198834A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018087933A1 (ja) * | 2016-11-14 | 2018-05-17 | 富士通株式会社 | 情報処理装置、情報処理方法、およびプログラム |
WO2019069358A1 (ja) * | 2017-10-03 | 2019-04-11 | 富士通株式会社 | 認識プログラム、認識方法および認識装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022237383A1 (en) * | 2021-05-09 | 2022-11-17 | International Business Machines Corporation | Skeleton-based action recognition using bi-directional spatial-temporal transformer |
US11854305B2 (en) | 2021-05-09 | 2023-12-26 | International Business Machines Corporation | Skeleton-based action recognition using bi-directional spatial-temporal transformer |
WO2023062757A1 (ja) * | 2021-10-13 | 2023-04-20 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
CN114190928A (zh) * | 2021-12-27 | 2022-03-18 | 清华大学 | 险态工况下驾驶行为的识别方法、装置和计算机设备 |
CN114190928B (zh) * | 2021-12-27 | 2022-07-08 | 清华大学 | 险态工况下驾驶行为的识别方法、装置和计算机设备 |
WO2023218979A1 (ja) * | 2022-05-12 | 2023-11-16 | ソニーグループ株式会社 | 画像処理装置、画像処理方法、およびプログラム |
WO2023223508A1 (ja) * | 2022-05-19 | 2023-11-23 | 日本電信電話株式会社 | 映像処理装置、映像処理方法、およびプログラム |
CN114694263A (zh) * | 2022-05-30 | 2022-07-01 | 深圳智华科技发展有限公司 | 动作识别方法、装置、设备及存储介质 |
CN114694263B (zh) * | 2022-05-30 | 2022-09-02 | 深圳智华科技发展有限公司 | 动作识别方法、装置、设备及存储介质 |
JP7412514B1 (ja) | 2022-09-28 | 2024-01-12 | 財団法人車輌研究測試中心 | キャビンモニタリング方法及び上記キャビンモニタリング方法を実行するキャビンモニタリングシステム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021048988A1 (ja) | 2021-03-18 |
US20220198834A1 (en) | 2022-06-23 |
JP7367764B2 (ja) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021048988A1 (ja) | 骨格認識方法、骨格認識プログラムおよび情報処理装置 | |
WO2021002025A1 (ja) | 骨格認識方法、骨格認識プログラム、骨格認識システム、学習方法、学習プログラムおよび学習装置 | |
US9159134B2 (en) | Method and apparatus for estimating a pose | |
US9378559B2 (en) | System and method for motion estimation | |
JP7014304B2 (ja) | 認識方法、認識プログラム、認識装置および学習方法 | |
CN111784775B (zh) | 一种标识辅助的视觉惯性增强现实注册方法 | |
JP7235133B2 (ja) | 運動認識方法、運動認識プログラムおよび情報処理装置 | |
US10078906B2 (en) | Device and method for image registration, and non-transitory recording medium | |
EP3617850A1 (en) | Information processing device, information processing method, and program | |
JP6950390B2 (ja) | 表示制御プログラム、装置、及び方法 | |
US20220222975A1 (en) | Motion recognition method, non-transitory computer-readable recording medium and information processing apparatus | |
CN114722913A (zh) | 姿态检测方法、装置、电子设备及计算机可读存储介质 | |
JP7318814B2 (ja) | データ生成方法、データ生成プログラムおよび情報処理装置 | |
WO2021064830A1 (ja) | 評価方法、評価プログラムおよび情報処理装置 | |
KR102619164B1 (ko) | 전방 골반 평면의 3차원 방향 실시간 측정 방법 및 장치 | |
JP7482471B2 (ja) | 学習モデルの生成方法 | |
US20220301352A1 (en) | Motion recognition method, non-transitory computer-readable storage medium for storing motion recognition program, and information processing device | |
JP2020017096A (ja) | 計測装置、計測方法及び計測プログラム | |
JP2019197278A (ja) | 画像処理装置、画像処理装置の制御方法およびプログラム | |
JP7533765B2 (ja) | 骨格認識方法、骨格認識プログラムおよび体操採点支援システム | |
WO2023062762A1 (ja) | 推定プログラム、推定方法および情報処理装置 | |
US20220254052A1 (en) | Three-dimensional pose estimation method, program, recording medium and three-dimensional pose estimation device | |
JP7419993B2 (ja) | 信頼度推定プログラム、信頼度推定方法、および信頼度推定装置 | |
WO2024111429A1 (ja) | 姿勢評価装置、姿勢評価システム、姿勢評価方法、及びプログラム | |
WO2022149190A1 (ja) | 骨格推定装置、骨格推定方法および体操採点支援システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19945166 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021545059 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19945166 Country of ref document: EP Kind code of ref document: A1 |