WO2018173108A1 - 関節位置推定装置、関節位置推定方法及び関節位置推定プログラム - Google Patents
関節位置推定装置、関節位置推定方法及び関節位置推定プログラム Download PDFInfo
- Publication number
- WO2018173108A1 WO2018173108A1 PCT/JP2017/011141 JP2017011141W WO2018173108A1 WO 2018173108 A1 WO2018173108 A1 WO 2018173108A1 JP 2017011141 W JP2017011141 W JP 2017011141W WO 2018173108 A1 WO2018173108 A1 WO 2018173108A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- dnn
- region
- learning
- teacher data
- joint position
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 43
- 241001465754 Metazoa Species 0.000 claims abstract description 38
- 238000013528 artificial neural network Methods 0.000 claims abstract description 13
- 230000000873 masking effect Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 15
- 210000000746 body region Anatomy 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 6
- 238000011478 gradient descent method Methods 0.000 description 6
- 241000282412 Homo Species 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 210000001364 upper extremity Anatomy 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 210000003141 lower extremity Anatomy 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- 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/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- 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/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- 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
- 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
Definitions
- the present invention relates to a joint position estimation device, a joint position estimation method, and a joint position estimation program.
- the joint position estimation device estimates the joint position from a human or animal image. For example, automatic scoring by a machine for gymnastics is performed by estimating the position of the joint from the image of the gymnast and evaluating the score from the angle information of each joint.
- Non-patent literature describes a neural network that extracts humans, animals, and objects from images and recognizes the extract.
- a method for estimating a joint of a human body is described in Patent Documents 1-3 below.
- DNN Deep Neural Network
- an input to be processed image, voice, text, etc.
- the calculation based on the DNN is executed and the output is calculated or estimated.
- Another problem is that when an input image includes an unexpected image other than a person or animal, it is difficult to recognize the joint of the person or animal with high accuracy, and the accuracy of joint estimation does not increase.
- an object of one embodiment is to provide a joint position estimation device, a joint position estimation method, and a joint position estimation program with high joint position estimation accuracy.
- the first aspect of the present embodiment has a memory and a processor connected to the memory, and the processor
- the learning of the first deep neural network (hereinafter referred to as DNN) is executed with the input of the first teacher data as the input image, and the correct answer data of the first teacher data as the animal region in the input image
- the input of the second teacher data is an image of a part region in the input image of the second teacher data and a plurality of part regions obtained by combining a plurality of the part regions
- the correct data of the second teacher data is the part region
- learning the second DNN as the joint positions in the multi-part region
- the first aspect it is possible to increase the estimation accuracy of the positions of human and animal joints in the input image.
- DNN_2 It is a flowchart figure which shows the outline of DNN learning and a subsequent process. It is a figure which shows process S31 which produces
- the joint position estimation apparatus estimates the joint position of an animal from image data including humans and animals including non-humans.
- the present embodiment will be described with respect to an example in which a human joint position, which is an example of an animal, is estimated.
- the joint position estimation apparatus can also estimate the joint positions of animals other than humans.
- FIG. 1 is a diagram illustrating a configuration of a joint position estimation apparatus according to the present embodiment.
- the joint position estimation apparatus 1 is an information processing apparatus such as a computer or a server.
- the joint position estimation apparatus 1 includes a processor 10, a main memory 12, a network interface 14, and a large-capacity auxiliary storage device 16.
- the auxiliary storage device 16 stores a DNN program 20, a DNN parameter 22 set in the DNN, a DNN learning program 24, and teacher data 26 used for DNN learning.
- the teacher data 26 has an input to be input to the DNN and a correct value that is a correct output. Then, the DNN program 20, the DNN parameters 22 set in the DNN, the DNN learning program 24, and the teacher data 26 used for DNN learning are expanded in the main memory 12, and the processor executes each program. To do.
- the network interface 14 is connected to the network NW, and the joint position estimation device 1 is connected to the external terminal devices 30 and 32 via the network NW so as to be communicable.
- the joint position estimation apparatus 1 employs a deep neural network (DNN) as a deep learning model.
- the joint position estimation apparatus 1 is provided with teacher data 26 having input data to the DNN and correct data thereof.
- the processor 10 executes the DNN learning program 24, performs DNN learning using the teacher data, and determines the DNN optimum parameters. Further, the processor sets optimal parameters in the DNN program 20 and executes the DNN program 20 to estimate the joint position of the animal (human or non-human animal) in the image from the processing target image.
- DNN deep neural network
- the DNN program 20 is a program for executing various calculation processes of the DNN of the model.
- the DNN learning program 24 is a program that executes various kinds of DNN calculation processing associated with learning of the DNN of the model and processing for extracting optimum parameters.
- the DNN learning program executes various operations of DNN by calling the DNN program 20. Since DNN optimizes parameters by learning using teacher data, DNN learning program 24 is always attached to or built in DNN program 20.
- FIG. 2 is a diagram illustrating a configuration example of the DNN in the present embodiment.
- the DNN includes a plurality of DNNs arranged between an input and an output, DNN_1, DNN_2, DNN_3-1, DNN3_2, and DNN_4.
- input data and output data are indicated by alternate long and short dash lines for each of a plurality of DNNs.
- DNN can be implemented by LSI, in the present embodiment, it is realized by the processor executing a DNN program for executing various operations of DNN.
- the DNN has the following four DNN_1 to DNN_4.
- a first DNN (DNN_1) that calculates or estimates a human body region HB_R in which a human body in the input image exists from the input image IMG_IN that is input;
- a feature image (not shown) generated by the intermediate layer of the input image IMG_IN or DNN_1 is input as an image of a human body region cut out by the human body region HB_R, and a region region BDP_R that is a region where the region exists is calculated or
- a second DNN to be estimated (DNN_2)
- the input image IMG_IN or the feature image is input as a single part region BFP_R and a plurality of part regions PBDP_R obtained by combining a plurality of part regions, respectively.
- the third DNN includes a DNN_3_1 for calculating or estimating a first joint coordinate candidate C_JT_CRD_1 in the image from a single part region image, and a second joint coordinate candidate C_JT_CRD_2 in the image from a plurality of part region images. And DNN_3_2 that computes or estimates.
- the first joint coordinate candidate C_JT_CRD_1 and the second joint coordinate candidate C_JT_CRD_2 may be estimated by overlapping the same joint coordinates. In the joint coordinates JT_CRD, the joint coordinate duplication estimated from the first and second joint coordinate candidates is removed.
- the DNN_2 includes a masking layer (not shown) that cuts the input image IMG_IN or its feature image at the human body region HB_R, and a scaling layer (not shown) that matches the size of the image of the cut human region with the input of the DNN_2.
- DNN_3_1 and DNN_3_2 also input the input image IMG_IN or its feature image at the part region BDP_R and the multiple part region PBDP_R, respectively, and the size of the clipped part region image and the multiple swing region image input to DNN_3 And a scaling layer for matching to.
- Each DNN_1 to DNN_4 is set with the respective weight parameters W1 to W4.
- a DNN obtained by combining the first DNN (DNN_1) and the second DNN (DNN_2) may calculate or estimate the human body region BDP_R from the input image IMG_IN.
- FIG. 3 is a diagram illustrating a configuration example of each DNN_n.
- Each DNN_n includes an input layer INPUT_L, a plurality of DNN units DNN_U1 to DNN_Un, a full coupling layer FULCON_L, and an output layer OUTPUT_L.
- Each DNN unit DNN_U1 to DNN_Un includes a convolution layer CONV_L that convolves input layer image data and the like with a weight W constituting a filter, and an activation function layer ACTF_L that determines an operation result of the convolution layer using an activation function.
- ACTF_L activation function layer that determines an operation result of the convolution layer using an activation function.
- ACTF_L an activation function layer that determines an operation result of the convolution layer using an activation function.
- ACTF_L that determines an operation result of the convolution layer using an activation function.
- a pooling layer POOL_L that extracts the maximum value of local
- DNN estimation processing Next, DNN estimation processing will be described.
- the DNN calculation or estimation process is performed by the above-described processor executing the DNN program 20 in which the DNN parameters 22 are set.
- FIG. 4 is a diagram showing an estimation process using DNN_1 and DNN_2.
- the human body region HB_R is specified by, for example, upper left coordinates and lower right coordinates. The upper left coordinate and the width and height may be specified.
- the intermediate layer generates a feature image FIMG of the input image IMG_IN.
- the human body region HB_R is a region including almost only the human body, for example, and is a narrow region where the human body exists in the input image.
- the masking layer MSK_L1 provided on the input side of DNN_2 cuts the input image IMG_IN or its feature image FIMG with the human body region HB_R to generate an image of the human body region (S2). Further, the scaling layer SC_1 changes (for example, enlarges) the size of the image of the human body region to match the size of the input layer of DNN_2 (S3).
- the masking layer and scaling layer will be described in detail later.
- region Z2 * PBDP_R of the several site
- region Z2 BDP_R of the single site
- the combination of the regions of the plurality of parts is a process of generating the upper left coordinates and the lower right coordinates of the rectangular area including the regions of the plurality of parts.
- FIG. 5 is a diagram showing estimation processing by DNN_3 and DNN_4.
- DNN_3 includes a plurality of DNN_3-1 to DNN_3-N corresponding to a plurality of single parts and a plurality of parts output from DNN_2. That is, among a plurality of DNN_3-1 to DNN_3-N, the number of DNN_3 corresponding to the number of single parts calculates or estimates the position (coordinates) of the candidate joint in the single part area from the single part area image.
- the number of DNN_3 corresponding to the number of the plurality of parts calculates or estimates the position (coordinates) of the candidate joint in the plurality of part regions from the image of the plurality of part regions.
- the scaling layer SC_L2-1 changes (for example, enlarges) the size of the image of the single part region to match the size of the input layer of DNN_3-1 (S7).
- the scaling layer SC_L2-N changes (for example, enlarges) the size of the image of the plurality of regions to match the size of the input layer of DNN_3-N (S7).
- DNN_3-1 inputs an image of a single part region, and calculates or estimates a candidate C_JT_CRD_1 of a joint position (coordinate) in the single part region (S8).
- DNN_3-N inputs an image of a plurality of region areas, and calculates or estimates a candidate C_JT_CRD_2 of a joint position (coordinates) in the plurality of region areas (S8).
- FIG. 6 is a diagram for explaining the masking layer.
- the masking layer MSK_L performs the following calculation.
- the upper left coordinates in the input image IMG_IN or feature image FIMG that is the starting point of the part region BDP_R is (p, q)
- the row direction and column direction positions in the part region are i and j, respectively, and are input to the masking layer.
- the pixels of the input image IMG_IN or feature image FIMG to be processed are z (l ⁇ 1) i + p, j + q .
- the pixel z (l) i, j of the image IMG_M or FIMG_M output from the masking layer is as shown in Equation 1 above.
- the pixel z (l) i, j of the output image is the pixel z (l-1) i + p, j of the input image or feature image if the position i + p, j + q is within the region BDP_R. + q , 0 if not medium.
- the masking layer MSK_L outputs the masked image IMG_M or FIMG_M obtained by cutting the input image IMG_IN or the feature image FIMG in the region including the right arm (part region BDP_R).
- M is the number of the input image or feature image.
- FIG. 7 is a diagram for explaining the masking layer.
- the images IMG_M2 and FIMG_M2 of the multi-part region are output.
- FIG. 8 is a diagram showing that the masking layer cuts an image at a single region and a plurality of regions.
- the left leg and the left hip of the human body are hidden by the obstacles OB_1 and OB_2, and occlusion occurs. Therefore, when the masking layer MSK_L cuts the input image IMG_IN or the feature image FIMG at the single part region BDP_R, the cut images IMG_M and FIMG_M contain no or almost no part image. As a result, the next DNN_3 cannot detect the joint position in the single region, or the detection accuracy decreases.
- the masking layer SK_L cuts the input image IMG_IN or the feature image FIMG at the multi-part region PBDP_R
- the cut image IMG_M2 and FIMG_M2 do not include the image of the left leg and left butt part, but the adjacent part Images are included. That is, there is a high probability that an image of a part other than the part hidden by the occlusion is included in the multiple part region PBDP_R.
- the next DNN_3 can detect joint positions in adjacent parts, and can estimate joint positions in the left leg and left hip part regions that have been hidden by occlusion from those joint positions, or with high estimation accuracy. it can.
- the DNN in the DNN learning process, an input image that does not include occlusion in the teacher data and an input image that includes it are used. Accordingly, the DNN can detect joint positions of both the input image not including occlusion and the input image including it.
- DNN can also estimate the joint position for an image with occlusion.
- the joint position estimation system is low.
- the proportion of occlusion in the cut out image increases, and the joint position estimation accuracy decreases.
- the proportion of occlusion in the cut-out image is reduced, and the joint position estimation accuracy is further increased.
- an image including occlusion and an image not including are used as teaching data
- joints are obtained from images cut out in both a single region and a plurality of regions. Estimate the position.
- the learned DNN can estimate the joint position of an image including neither occlusion nor an image including occlusion.
- the masking layer in the DNN cuts the input image IMG_IN or the feature image FIMG at the part region or the plural part regions, and calculates the joint position of the single part or the plural parts from the cut or masked image. Or estimate.
- the input image or feature image includes a background image other than the human body, etc., but the DNN cuts out the region where the human body of the input image or feature image exists, and further, the single part and plural parts of the image of the region where the human body exists. Cut out the area.
- DNN_3 calculates or estimates a joint position from an image having no noise. Therefore, the joint position estimation accuracy can be increased.
- FIG. 9 is a diagram for explaining the scaling layer.
- the scaling layer SC_L changes the size of the input masked images IMG_M and FIMG_M so as to match the size of the input layer of the subsequent DNN. That is, as shown in the following equation, the scaling layer SC_L uses the scaled images IMG_S and FIMG_S as the pixel z (l-1) i, j at the position i in the row direction and the position j in the column direction of the masked images IMG_M and FIMG_M. To a pixel z (l) a * i, b * j at a position a * i in the row direction and a position b * j in the column direction.
- a and b are scaling factors (scaling factors) in the row direction and the column direction.
- Deep learning generates a more desirable DNN by improving the DNN configuration and learning method. Since the DNN of the present embodiment has a plurality of DNN_1-DNN_4, learning of each DNN_1-DNN_4 is performed so that each DNN_1-DNN_4 can perform a desired operation.
- FIG. 10 is a flowchart showing an outline of DNN learning and subsequent processing.
- the processor 10 executes the DNN learning program 24 using the teacher data 26 as shown in FIG.
- the processor 10 generates teacher data used for learning of each DNN_1N- DNN_4 in the DNN shown in FIG. 2 (S31).
- the given teacher data is, for example, information about the input image IMG_IN and the joint positions of the human body included in the input image IMG_IN. Information on the joint positions of the human body is correct data of the teacher data.
- step S31 the processor generates in advance correct data to be used for learning each DNN_1-DNN_3 from the correct data of the given teacher data.
- the processor uses a predetermined number of teacher data randomly selected from a set of teacher data. Therefore, it is desirable to generate in advance correct data used for learning of each DNN_1N- DNN_3 for all given teacher data.
- the processor 10 executes learning of each DNN_1-DNN_4 in turn using the teacher data (S32, S33).
- the processor obtains optimum parameters of each DNN_1-DNN_4 by this learning.
- the processor executes learning of DNN connecting all DNN_1-DNN_4 (S34).
- the processor sets the optimum parameters obtained by learning in each DNN_1-DNN_4 (S35). This completes the learning process.
- the processor executes the DNN calculation with the parameters set, and calculates or estimates the information of the joint position with respect to the processing target image (S36).
- the processor repeats the execution S36 of DNN every time there is an image to be processed.
- FIG. 11 is a diagram showing a process S31 for generating teacher data used for learning of each of DNN_1-DNN_4.
- the processor 10 executes the DNN learning program, determines squares centering on the joints in the correct value Z4_CV of the joint position, which is correct data of the teacher data 26, and corrects the coordinates of the region where the single part exists from these squares.
- the value Z2_CV is detected (S11).
- the coordinates of the area are, for example, the upper left and lower right coordinates of the rectangular area. Alternatively, the upper left coordinates, width, and height of the rectangular area may be used.
- the processor 10 extracts the coordinates of the joint in the region Z2_CV where the single part exists, and also generates the correct value Z3_CV of the joint coordinate candidate of the single part (S11).
- the processor 10 detects a region including a plurality of regions where a single part exists as coordinates Z2 * _CV of a region where a plurality of parts exist (S12).
- the processor 10 extracts the joint coordinates in the region Z2 * _CV where a plurality of parts exist, and also generates the correct value Z3_CV of the joint coordinate candidates of the plurality of parts (S12).
- the processor detects a region including all the correct value Z2_CV of the coordinates of the region of the single part and the correct value Z2 * _CV of the coordinates of the region of the plurality of parts as the correct value Z1_CV of the coordinates of the region where the human body exists (S13). ).
- the processor 10 performs the above-described steps S11, S12, and S13 for all the teacher data, correct values Z3_CV of joint coordinate candidates of each singular part and plural parts of all the teacher data, coordinates Z2_CV of the singular part region, plural The coordinates Z2 * _CV of the region of the part and the coordinates Z1_CV of the region where the human body exists are generated.
- the first set is used for the DNN_1 teacher data
- the second set is used for the DNN_2 teacher data
- the third set is used for the DNN_3 teacher data
- the fourth set is used for the teacher data of DNN_4.
- the correct value Z1_CV of the coordinates of the area where the human body exists is used as correct value data of the DNN_1 teacher data
- the correct value Z2_CV of the coordinates of the area where the single body part exists is the correct value of the DNN_2 teacher data Used as data
- the correct value Z3_CV of the joint coordinate candidates of the single part and the plurality of parts is used as the correct value of the teacher data of DNN_3.
- FIG. 12 is a diagram for explaining learning of DNN_1.
- the processor performs learning of DNN_1 with the input of the first set of teacher data as the input image IMG_IN and the correct value as the correct value Z1_CV of the coordinates of the human body region (S14).
- the processor performs this learning by a method called a stochastic gradient descent method or a mini-batch method, for example. Through this learning process, the processor optimizes the parameters (weight values, etc.) W1 of DNN_1.
- the processor sets the optimized parameter W1 of DNN_1 to DNN_1, executes the operation of DNN_1 on the input image IMG_IN of the second set of teacher data to be used next, and from the intermediate layer of DNN_1, the input image IMG_IN A feature image FIMG is generated (S15).
- the feature image FIMG is output from an intermediate layer that performs a convolution operation such as edge detection of the input image. Since the features of the image are emphasized, it may be preferable to the input image as an image for subsequent DNN_2 and DNN_3.
- FIG. 13 is a flowchart showing an outline of the stochastic gradient descent method or mini-batch method, which is one of the learning methods of the present embodiment.
- the processor randomly selects a small number (for example, 10) of teacher data from a large number of teacher data (S41), inputs the selected small number of teacher data to DNN_n, and executes the operation of DNN_n. To obtain an output (S42). Then, the processor calculates the sum of the square sum of the differences between the output of DNN_n and the correct answer value for all the selected small number of teacher data (S43). The processor determines whether the sum of squares is less than the reference value (S44).
- the processor obtains a new parameter for DNN_n based on the slope of the sum of squares. , DNN_n is set (S45). Then, the processor repeats the processes of steps S41 to S44 using different small numbers of teacher data until the determination of step S44 becomes YES. When the determination in step S44 is YES, the parameter at that time is output as the optimized parameter of DNN_n.
- the above learning method can suppress the number of teacher data learned by DNN_n.
- FIG. 14 is a flowchart illustrating processing of the masking layer MSK_L1 and the scaling layer SC_L1 that generate an image of the human body or an image of the human body feature value input to the DNN_2.
- the processor generates the human body image IMG_HB or the human body feature image FIMG_HB of the second set of teacher data. These images are used as input for teacher data in DNN_2 learning.
- the correct value of the coordinate of the region where the human body of the teacher data of the second set is generated in the step of generating the correct value of FIG. Z1_CV may be used.
- This masking process can remove background images and the like that are not related to the human body from the input image or feature image, so that the accuracy of joint estimation or calculation thereafter can be improved.
- FIG. 15 is a diagram for explaining the learning of DNN_2.
- the processor inputs the teacher data of the second set as the human body image IMG_HB of the input image generated in step S16_2 of FIG. 14 or the human body image FIMG_HB of the feature image, and calculates the correct value in S11 of FIG. DNN_2 learning is executed as the correct value Z2_CV of the coordinates of the region where the single part exists (S17).
- the processor performs this learning by the above-described stochastic gradient descent method or mini-batch method. Through this learning process, the processor optimizes DNN_2 parameters (weight values, etc.) W2.
- FIG. 16 is a flowchart showing processing of the masking layer MSK_L2 and the scaling layer SC_L2.
- the correct answer value Z2 * _CV may be used.
- the processor extracts the single part image IMG_BP extracted from the input image IMG_IN of the third set of teacher data, the multiple part image IMG_PBP, or the single part feature image FIMG_BP extracted from the feature image FIMG, and the multiple part feature image FIMG_PBP _HB Is generated. These images are used as input of teacher data in learning of DNN_3.
- FIG. 17 is a diagram for explaining the learning of DNN_3.
- the processor inputs the third set of teacher data as the single part image IMG_BP and the multiple part image IMG_PBP generated in step S18_2 of FIG. 16, or the single part feature image FIMG_BP and the multiple part feature image FIMG_PBP _HB.
- the learning of DNN_3 is executed as the correct value Z3_CV of the joint coordinates in the single part region Z1_CV and the correct value Z3_CV of the joint coordinates in the multiple part region Z2 * _CV obtained in S11 and S12 of FIG. 11 (S19).
- the processor performs this learning by the above-described stochastic gradient descent method or mini-batch method. Through this learning step, the processor optimizes the DNN_3 parameter (weight value, etc.) W3.
- the processor inputs the fourth set of teacher data input image IMG_IN or feature image FIMG to DNN_1 of the DNN_1, DNN_2, DNN_3 connected network in which the optimized parameters W1, W2, and W3 are set.
- the correct value Z3_CV of joint coordinate candidates in the single part region and the plural part regions of the fourth set of teacher data obtained in the steps S11 and S12 of FIG. 11 may be used. good.
- FIG. 18 is a diagram for explaining the learning of DNN_4.
- FIG. 19 is a diagram for explaining learning of all DNNs in step S34.
- the processor sets the weight parameters W1, W2, W3, and W4 optimized in steps S14, S17, S19, and S20 to the initial values of the respective DNN_n, and inputs the teacher data to the teacher data of the fifth set.
- the input image X IMG_IN
- the operations of DNN_1, DNN_2, DNN_3-1-DNN_3-N, DNN_4, masking layers MSK_L1, L2, and scaling layers SC_L1, L2 are executed.
- a new weight parameter W new is obtained by the following calculation.
- d is the learning rate
- i is the number of the teacher data.
- 2 ⁇ is a gradient.
- ⁇ i 1 10 is outside the parentheses of the partial derivative ⁇ / ⁇ W but is equivalent to being inside the parentheses.
- the sum of squares of DNN_1, DNN_2, and DNN_4 is accumulated to calculate the gradient ⁇ / ⁇ W, so the man-hours for optimizing the parameters of each DNN_n can be reduced. Further, the parameters of DNN_3 are used as they are optimized in the learning of DNN_3.
- a new weight parameter W new is obtained by the following calculation.
- the weight parameter is optimized so that the output Z4 of DNN connecting DNN_1, DNN_2, DNN_3, and DNN_4 approaches the correct value Z4_CV. Requires computation of data and all DNNs.
- the present embodiment it is possible to efficiently learn the DNN for detecting the position of the joint of the animal from the image showing the animal, and to generate a highly accurate DNN.
- the learned DNN can calculate or estimate the position of the joint of the animal with high accuracy from the image in which the animal is captured.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Human Computer Interaction (AREA)
- Biodiversity & Conservation Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Image Analysis (AREA)
Abstract
関節の位置の推定精度を高くするために、関節位置推定装置は、メモリと、メモリと接続されるプロセッサとを有し、プロセッサは、第1の教師データの入力を入力画像、前記第1の教師データの正解データを前記入力画像内の動物の部位領域として、第1のディープニューラルネットワーク(以下DNNと称する)の学習を実行し、第2の教師データの入力を、第2の教師データの入力画像内の部位領域及び部位領域を複数結合した複数部位領域の画像とし、第2の教師データの正解データを、前記部位領域及び複数部位領域内の関節位置として、第2のDNNの学習を実行し、第1のDNNの学習で求めた第1のパラメータを設定した第1のDNNにより、処理対象の入力画像データに対する動物の部位領域を推定し、第2のDNNの学習で求めた第2のパラメータを設定した第2のDNNにより、第1のDNNにより推定した部位領域及び部位領域を複数結合した複数部位領域それぞれの第1の関節位置及び第2の関節位置とを推定する。
Description
本発明は,関節位置推定装置、関節位置推定方法及び関節位置推定プログラムに関する。
関節位置の推定装置は、人や動物の画像からその関節の位置を推定する。例えば、体操競技の機械による自動採点は、体操選手の画像からその関節の位置を推定し、各関節の角度情報から点数を評価することで行われる。
画像から人や動物さらに物体を抽出し、抽出物を認識するニューラルネットワークが以下の非特許文献に記載されている。また、人体の関節を推定する方法が、以下の特許文献1-3に記載されている。
一方、ディープラーニングは機械学習の1つの分野である。ディープラーニングでは、機械学習のモデルであるディープニューラルネットワーク(Deep Neural Network: 以下DNNと称する。)に、教師データを与えて学習をさせる。そして、学習によって最適化されたモデルであるDNNは、処理対象の入力(画像、音声、テキストなど)を与えられると、DNNによる演算を実行し、出力を算出または推定する。
Instance-aware Semantic Segmentation via Multi-task Network Cascades, CVPR, 2016
DNNのモデルを使って、人や動物の画像からその関節の位置を推定する場合、様々な課題に直面する。例えば、画像内の部位が障害物などにより隠れている場合、隠れた部位の関節を推定することはできない。体操競技では、特に鞍馬競技において人の部位が隠れることが多い。このようなオクルージョンの課題を解決する必要がある。
別の課題としては、入力画像に人や動物以外の予期しない画像が含まれている場合、人や動物の関節を高い精度で認識することは困難となり、関節推定の精度が上がらない。
そこで,一つの実施の形態の目的は,関節の位置の推定精度を高くした関節位置推定装置、関節位置推定方法及び関節位置推定プログラムを提供することにある。
本実施の形態の第1の側面は、メモリと、前記メモリと接続されるプロセッサとを有し、前記プロセッサは、
第1の教師データの入力を入力画像、前記第1の教師データの正解データを前記入力画像内の動物の部位領域として、第1のディープニューラルネットワーク(以下DNNと称する)の学習を実行し、
第2の教師データの入力を、第2の教師データの入力画像内の部位領域及び前記部位領域を複数結合した複数部位領域の画像とし、前記第2の教師データの正解データを、前記部位領域及び複数部位領域内の関節位置として、第2のDNNの学習を実行し、
前記第1のDNNの学習で求めた第1のパラメータを設定した第1のDNNにより、処理対象の入力画像データに対する前記動物の部位領域を推定し、
前記第2のDNNの学習で求めた第2のパラメータを設定した第2のDNNにより、前記第1のDNNにより推定した部位領域及び前記部位領域を複数結合した複数部位領域それぞれの第1の関節位置及び第2の関節位置とを推定する、関節位置推定装置である。
第1の教師データの入力を入力画像、前記第1の教師データの正解データを前記入力画像内の動物の部位領域として、第1のディープニューラルネットワーク(以下DNNと称する)の学習を実行し、
第2の教師データの入力を、第2の教師データの入力画像内の部位領域及び前記部位領域を複数結合した複数部位領域の画像とし、前記第2の教師データの正解データを、前記部位領域及び複数部位領域内の関節位置として、第2のDNNの学習を実行し、
前記第1のDNNの学習で求めた第1のパラメータを設定した第1のDNNにより、処理対象の入力画像データに対する前記動物の部位領域を推定し、
前記第2のDNNの学習で求めた第2のパラメータを設定した第2のDNNにより、前記第1のDNNにより推定した部位領域及び前記部位領域を複数結合した複数部位領域それぞれの第1の関節位置及び第2の関節位置とを推定する、関節位置推定装置である。
第1の側面によれば,入力画像内の人や動物の関節の位置の推定精度を高くできる。
本実施の形態の関節位置推定装置は、人間と人間以外を含む動物が含まれている画像データから、その動物の関節位置を推定する。以下簡単のために、動物の一例である人間の関節位置を推定する例について、本実施の形態を説明する。但し、本実施の形態の関節位置推定装置は、人間以外の動物の関節位置も推定することができる。
[関数位置推定装置の概略]
図1は、本実施の形態における関節位置推定装置の構成を示す図である。関節位置推定装置1は、コンピュータやサーバのような情報処理装置である。関節位置推定装置1は、プロセッサ10と、メインメモリ12と、ネットワークインタフェース14と、大容量の補助記憶装置16とを有する。補助記憶装置16には、DNNプログラム20と、DNNに設定されるDNNのパラメータ22と、DNN学習プログラム24と、DNNの学習に使用する教師データ26とが記憶される。教師データ26は、DNNに入力する入力と、正しい出力である正解値とを有する。そして、DNNプログラム20と、DNNに設定されるDNNのパラメータ22と、DNN学習プログラム24と、DNNの学習に使用する教師データ26とが、メインメモリ12内に展開され、プロセッサが各プログラムを実行する。
図1は、本実施の形態における関節位置推定装置の構成を示す図である。関節位置推定装置1は、コンピュータやサーバのような情報処理装置である。関節位置推定装置1は、プロセッサ10と、メインメモリ12と、ネットワークインタフェース14と、大容量の補助記憶装置16とを有する。補助記憶装置16には、DNNプログラム20と、DNNに設定されるDNNのパラメータ22と、DNN学習プログラム24と、DNNの学習に使用する教師データ26とが記憶される。教師データ26は、DNNに入力する入力と、正しい出力である正解値とを有する。そして、DNNプログラム20と、DNNに設定されるDNNのパラメータ22と、DNN学習プログラム24と、DNNの学習に使用する教師データ26とが、メインメモリ12内に展開され、プロセッサが各プログラムを実行する。
ネットワークインタフェース14がネットワークNWに接続され、関節位置推定装置1は、外部の端末装置30,32とネットワークNWを介して通信可能に接続される。
関節位置推定装置1は、ディープラーニングのモデルとして、ディープニューラルネットワーク(DNN)を採用する。関節位置推定装置1は、DNNへの入力データとその正解データとを有する教師データ26を提供される。そして、プロセッサ10は、DNN学習プログラム24を実行し、教師データを使用してDNNの学習を実行し、DNNの最適なパラメータを決定する。さらに、プロセッサは、最適のパラメータをDNNプログラム20に設定し、DNNプログラム20を実行して、処理対象の画像から画像内の動物(人間または人間以外の動物)の関節位置を推定する。
DNNプログラム20は、モデルのDNNの各種演算処理を実行するプログラムである。DNN学習プログラム24は、モデルのDNNの学習に伴うDNNの各種演算処理と、最適なパラメータを抽出する処理とを実行するプログラムである。DNN学習プログラムは、DNNの各種演算処理をDNNプログラム20をコールすることで実行する。DNNは教師データを使用して学習することでパラメータを最適化するので、DNNプログラム20には、DNN学習プログラム24が必ず添付または内蔵される。
図2は、本実施の形態におけるDNNの構成例を示す図である。DNNは、入力と出力の間に配置される複数のDNNである、DNN_1, DNN_2, DNN_3-1, DNN3_2, DNN_4を有する。図中、複数のDNNそれぞれに入力データと、出力データとが一点鎖線で示される。尚、DNNは、LSIにより実装することが可能であるが、本実施の形態では、DNNの各種の演算を実行するDNNプログラムをプロセッサが実行することで実現される。
DNNは、以下の4つのDNN_1~DNN_4を有する。
(1)入力される入力画像IMG_INから、入力画像内の人体が存在する人体領域HB_Rを演算または推定する第1のDNN(DNN_1)と、
(2)入力画像IMG_INまたはDNN_1の中間層が生成する特徴画像(図示せず)を、人体領域HB_Rで切り取った人体領域の画像を入力し、部位が存在する領域である部位領域BDP_Rを演算または推定する第2のDNN(DNN_2)と、
(3)入力画像IMG_INまたは特徴画像を、単体の部位領域BFP_Rで及び複数の部位領域を結合した複数部位領域PBDP_Rでそれぞれ切り取った部位領域の画像及び複数部位領域の画像を入力し、両画像内の関節位置候補(関節座標候補)C_JT_CRDを演算または推定する第3のDNN(DNN_3)と、
(4)関節座標候補C_JT_CRDを入力し、関節座標JT_CRDを演算または推定する第4のDNN(DNN_4)。
(1)入力される入力画像IMG_INから、入力画像内の人体が存在する人体領域HB_Rを演算または推定する第1のDNN(DNN_1)と、
(2)入力画像IMG_INまたはDNN_1の中間層が生成する特徴画像(図示せず)を、人体領域HB_Rで切り取った人体領域の画像を入力し、部位が存在する領域である部位領域BDP_Rを演算または推定する第2のDNN(DNN_2)と、
(3)入力画像IMG_INまたは特徴画像を、単体の部位領域BFP_Rで及び複数の部位領域を結合した複数部位領域PBDP_Rでそれぞれ切り取った部位領域の画像及び複数部位領域の画像を入力し、両画像内の関節位置候補(関節座標候補)C_JT_CRDを演算または推定する第3のDNN(DNN_3)と、
(4)関節座標候補C_JT_CRDを入力し、関節座標JT_CRDを演算または推定する第4のDNN(DNN_4)。
第3のDNN(DNN_3)は、単体の部位領域の画像から画像内の第1の関節座標候補C_JT_CRD_1を演算または推定するDNN_3_1と、複数部位領域の画像から画像内の第2の関節座標候補C_JT_CRD_2を演算または推定するDNN_3_2とを有する。第1の関節座標候補C_JT_CRD_1と第2の関節座標候補C_JT_CRD_2は、同じ関節座標が重複して推定される場合がある。関節座標JT_CRDは、第1、第2の関節座標候補から重複して推定された関節座標の重複が除去されている。
DNN_2は、入力画像IMG_INまたはその特徴画像を人体領域HB_Rで切り取るマスキング層(図示せず)と、切り取られた人物領域の画像のサイズをDNN_2の入力に整合させるスケーリング層(図示せず)とを有する。
同様に、DNN_3_1とDNN_3_2も、入力画像IMG_INまたはその特徴画像を部位領域BDP_R及び複数部位領域PBDP_Rでそれぞれ切り取るマスキング層と、切り取られた部位領域の画像及び複数振り領域の画像のサイズをDNN_3の入力に整合させるスケーリング層とを有する。
各DNN_1~DNN_4には、それぞれの重みのパラメータW1~W4が設定される。
尚、上記の第1のDNN(DNN_1)と第2のDNN(DNN_2)とを結合したDNNが、入力画像IMG_INから人体の部位領域BDP_Rを演算または推定する構成にしても良い。
図3は、各DNN_nの構成例を示す図である。各DNN_nは、入力層INPUT_Lと、複数のDNNユニットDNN_U1~DNN_Unと、全結合層FULCON_Lと、出力層OUTPUT_Lとを有する。各DNNユニットDNN_U1~DNN_Unは、入力層の画像データなどをフィルタを構成する重みWで畳込み演算する畳込み層CONV_Lと、畳込み層の演算結果を活性化関数で判定する活性化関数層ACTF_Lと、例えば局所的な演算結果の最大値を抽出するプーリング層POOL_Lとを有する。DNNユニットの数は適切にチューニングされる。
[DNNの推定処理]
次に、DNNの推定処理について説明する。DNNの演算または推定処理は、前述のプロセッサがDNNのパラメータ22を設定されたDNNプログラム20を実行することで行われる。
次に、DNNの推定処理について説明する。DNNの演算または推定処理は、前述のプロセッサがDNNのパラメータ22を設定されたDNNプログラム20を実行することで行われる。
図4は、DNN_1とDNN_2による推定処理を示す図である。まず、DNN_1は、人体が含まれる入力画像IMG_INを入力し、人体が存在する領域または人体領域Z1=HB_Rを演算または推定する(S1)。人体領域HB_Rは、例えば、左上座標及び右下座標で特定される。左上座標及び幅と高さで特定されてもよい。また、DNN_1では、その中間層が入力画像IMG_INの特徴画像FIMGを生成する。人体領域HB_Rは、例えばほとんど人体のみを含む領域であり、入力画像内の人体が存在する狭い領域である。
次に、DNN_2の入力側に設けられているマスキング層MSK_L1が、入力画像IMG_INまたはその特徴画像FIMGを、人体領域HB_Rで切り取って人体領域の画像を生成する(S2)。更に、スケーリング層SC_1が、人体領域の画像のサイズを変更(例えば拡大)して、DNN_2の入力層のサイズに整合する(S3)。マスキング層とスケーリング層については後で詳述する。
更に、DNN_2が、スケーリング層SC_L1が出力する人体領域の画像を入力し、人体の頭部、左右の上肢(腕)、左右の下肢(脚)、胴体などの部位の領域Z2=BDP_Rを演算または推定する(S4)。更に、部位結合部CNBが、単体の部位の領域Z2=BDP_Rを複数結合した複数部位の領域Z2*=PBDP_Rを生成する(S5)。複数の部位の領域の結合は、複数の部位の領域を含む矩形の領域の左上座標と右下座標を生成する処理である。
図5は、DNN_3とDNN_4による推定処理を示す図である。DNN_3は、DNN_2が出力した複数の単体部位及び複数の複数部位それぞれに対応して複数のDNN_3-1~DNN_3-Nを有する。つまり、複数のDNN_3-1~DNN_3-Nのうち、単体部位の数に対応した数のDNN_3が単体部位領域の画像から単体部位領域内の候補の関節の位置(座標)を演算または推定する。また、複数のDNN_3-1~DNN_3-Nのうち、複数部位の数に対応した数のDNN_3が複数部位領域の画像から複数部位領域内の候補の関節の位置(座標)を演算または推定する。
例えば、DNN_3-1の入力側に設けられているマスキング層MSK_L2-1が、入力画像IMG_INまたはその特徴画像FIMGを、単体部位領域Z2=BDP_Rで切り取って単体部位領域の画像を生成する(S6)。更に、スケーリング層SC_L2-1が、単体部位領域の画像のサイズを変更(例えば拡大)して、DNN_3-1の入力層のサイズに整合する(S7)。
さらに、例えば、DNN_3-Nの入力側設けられているマスキング層MSK_L2-Nが、入力画像IMG_INまたはその特徴画像FIMGを、複数部位領域Z2*=PBDP_Rで切り取って複数部位領域の画像を生成する(S6)。更に、スケーリング層SC_L2-Nが、複数部位領域の画像のサイズを変更(例えば拡大)して、DNN_3-Nの入力層のサイズに整合する(S7)。
そして、例えば、DNN_3-1が、単体部位領域の画像を入力し、単体部位領域内の関節の位置(座標)の候補C_JT_CRD_1を演算または推定する(S8)。同様に、例えば、DNN_3-Nが、複数部位領域の画像を入力し、複数部位領域内の関節の位置(座標)の候補C_JT_CRD_2を演算または推定する(S8)。
最後に、DNN_4が、関節座標の候補Z3=C_JT_CRDを入力し、重複する関節座標を削除した人体の関節の位置(座標)Z4=JT_CRDを演算または推定する(S9)。
図6は、マスキング層を説明するための図である。このマスキング層MSK_Lは、図4のマスキング層の例であり、入力画像IMG_INまたは特徴画像FIMGを右腕(上肢)の部位領域Z2=BDP_Rで切り取って部位領域の画像IMG_M, FIMG_Mを出力する。マスキング層MSK_Lは、以下の演算を行う。
図6の例では、マスキング層MSK_Lが、入力画像IMG_INまたは特徴画像FIMGを、右腕を含む領域(部位領域BDP_R)で切り取ったマスク済み画像IMG_MまたはFIMG_Mを出力する。また、mは入力画像または特徴画像の番号である。
図7は、マスキング層を説明するための図である。このマスキング層MSK_Lは、図5のマスキング層の1つであり、入力画像IMG_INまたは特徴画像FIMGを頭部の部位Headと首の部位Neckの両領域を含む複数部位領域Z2*=PBDP_Rで切り取った複数部位領域の画像IMG_M2, FIMG_M2を出力する。複数部位領域Z2*=PBDP_Rは、2つの単体部位領域Z2=BDP_Rを含む領域である。
図8は、マスキング層が画像を単数部位領域及び複数部位領域で切り取ることを示す図である。図8に示された入力画像IMG_INまたは特徴画像FIMGは、人体の左脚と左尻が障害物OB_1,OB_2により隠れて、オクルージョンが発生している。そのため、マスキング層MSK_Lが入力画像IMG_INまたは特徴画像FIMGを単体部位領域BDP_Rで切り取ると、切り取られた画像IMG_M, FIMG_Mには部位の画像が全く含まれない、またはほとんど含まれない。その結果、次のDNN_3は単体部位領域内の関節位置を検出できない、または検出精度が低下する。
一方、マスキング層SK_Lが入力画像IMG_INまたは特徴画像FIMGを複数部位領域PBDP_Rで切り取ると、切り取られた画像IMG_M2, FIMG_M2には左脚と左尻の部位の画像は含まれないが、隣接する部位の画像は含まれる。つまり、複数部位領域PBDP_Rには、オクルージョンで隠れた部位以外の部位の画像が含まれる蓋然性が高い。その結果、次のDNN_3は隣接する部位内の関節位置を検出し、それらの関節位置からオクルージョンで隠れてしまった左脚と左尻の部位領域内の関節位置を推定できる、または推定精度を高くできる。
本実施の形態では、後述するとおり、DNNの学習工程では教師データにオクルージョンが含まれない入力画像と含まれる入力画像とを使用する。したがって、DNNは、オクルージョンが含まれない入力画像と含まれる入力画像の両方について、それぞれ関節位置を検出することができるようになる。
オクルージョンが含まれる画像を教師データに使用して学習を行うと、DNNは、オクルージョンのある画像についても関節位置を推定できる。ただし、オクルージョンの割合が高いと関節位置の推定制度は低くなる。特に、オクルージョンを含む画像の場合、単体部位領域で画像を切り取ると、切り取られた画像内に占めるオクルージョンの割合が高くなり、関節位置の推定精度は低くなる。一方、複数部位制度で画像を切り取ると、切り取られた画像内に占めるオクルージョンの割合が低下し、関節位置の推定精度はより高くなる。さらに、オクルージョンを含まない画像の場合、単体部位領域のほうが複数部位領域よりも切り取られた画像が小さく且つ単純になり、関節位置の推定精度が高くなるというメリットがある。
上記のとおり、本実施の形態では、DNNの学習工程で、オクルージョンを含む画像と含まない画像を教師データに使用し、DNN内では、単体部位領域と複数部位領域の両方で切り取った画像から関節位置を推定する。これにより、学習後のDNNは、オクルージョンを含む画像も含まない画像も関節位置を推定することができる。
さらに、本実施の形態では、DNN内のマスキング層が、入力画像IMG_INまたは特徴画像FIMGを部位領域または複数部位領域で切り取り、切り取り済みつまりマスク済み画像から、単数部位または複数部位の関節位置を演算または推定する。入力画像または特徴画像は、人体以外の背景の画像などを含むが、DNNは、入力画像または特徴画像の人体が存在する領域を切り取り、さらに人体が存在する領域の画像の単体部位及び複数部位の領域を切り取る。その結果、DNN_3は、雑音のない画像から関節位置を演算または推定する。よって、関節位置の推定精度を高くできる。
図9は、スケーリング層を説明するための図である。スケーリング層SC_Lは、入力されるマスク済み画像IMG_M,FIMG_Mを後段のDNNの入力層のサイズに整合するよう、そのサイズを変更する。つまり、次の数式のとおり、スケーリング層SC_Lは、マスク済み画像IMG_M,FIMG_Mの行方向の位置i、列方向の位置jの画素z(l-1)
i,jを、スケール済み画像IMG_S,FIMG_Sの行方向の位置a*i、列方向の位置b*jの画素z(l)
a*i,b*jに変換する。
[DNNの学習]
次に、本実施の形態におけるDNNの学習について説明する。ディープラーニングでは、DNNの構成と学習方法の改善により、より望ましいDNNを生成する。そして、本実施の形態のDNNは複数のDNN_1 - DNN_4を有するので、それぞれのDNN_1-DNN_4が所望の動作を行うことができるように、各DNN_1-DNN_4の学習を実行する。
次に、本実施の形態におけるDNNの学習について説明する。ディープラーニングでは、DNNの構成と学習方法の改善により、より望ましいDNNを生成する。そして、本実施の形態のDNNは複数のDNN_1 - DNN_4を有するので、それぞれのDNN_1-DNN_4が所望の動作を行うことができるように、各DNN_1-DNN_4の学習を実行する。
図10は、DNNの学習とその後の処理の概略を示すフローチャート図である。DNNの学習では、図1で示したとおり、プロセッサ10が教師データ26を使用ながらDNN学習プログラム24を実行する。
図10に示したとおり、プロセッサ10は、図2に示したDNN内の各DNN_1 - DNN_4それぞれの学習に利用する教師データを生成する(S31)。与えられる教師データは、例えば、入力画像IMG_INとそれに含まれる人体の関節位置の情報である。人体の関節位置の情報が教師データの正解データである。
そこで、工程S31では、プロセッサは、与えられた教師データの正解データから、各DNN_1 - DNN_3の学習で使用する正解データを予め生成する。各DNN_1 - DNN_3の学習では、プロセッサは、教師データの集合からランダムに選択した所定数の教師データをそれぞれ使用する。したがって、与えられた教師データ全てについて、各DNN_1 - DNN_3の学習で使用する正解データを予め生成するのが望ましい。
さらに、プロセッサ10は、教師データを使用して各DNN_1 - DNN_4それぞれの学習を、順番に実行する(S32,S33)。プロセッサは、この学習により各DNN_1 - DNN_4の最適なパラメータを求める。DNN_1 - DNN_4全ての学習が終了すると(S33のYES)、プロセッサは、DNN_1 - DNN_4全てを繋いだDNNの学習を実行する(S34)。その後、プロセッサは、各DNN_1 - DNN_4に学習で求めた最適のパラメータを設定する(S35)。以上で学習工程を終了する。
そして、プロセッサは、パラメータが設定されたDNNの演算を実行し、処理対象の画像に対する関節位置の情報を演算または推定する(S36)。プロセッサは、このDNNの演算の実行S36を、処理対象の画像があるたびに繰り返す。
次に、図10の各処理について詳述する。
[教師データの生成S31]
図11は、各DNN_1 - DNN_4それぞれの学習に利用する教師データを生成する処理S31を示す図である。プロセッサ10は、DNN学習プログラムを実行して、教師データ26の正解データである関節位置の正解値Z4_CVにおける関節を中心とする正方形を定め、それらの正方形から単体部位が存在する領域の座標の正解値Z2_CVを検出する(S11)。領域の座標とは、例えば矩形領域の左上と右下の座標である。また、矩形領域の左上の座標と幅及び高さであってもよい。
図11は、各DNN_1 - DNN_4それぞれの学習に利用する教師データを生成する処理S31を示す図である。プロセッサ10は、DNN学習プログラムを実行して、教師データ26の正解データである関節位置の正解値Z4_CVにおける関節を中心とする正方形を定め、それらの正方形から単体部位が存在する領域の座標の正解値Z2_CVを検出する(S11)。領域の座標とは、例えば矩形領域の左上と右下の座標である。また、矩形領域の左上の座標と幅及び高さであってもよい。
同時に、プロセッサ10は、単体部位が存在する領域Z2_CV内の関節の座標を抽出し、単体部位の関節座標候補の正解値Z3_CVも生成する(S11)。
そして、プロセッサ10は、単体部位が存在する領域を複数含む領域を、複数部位が存在する領域の座標Z2*_CVとして検出する(S12)。
同時に、プロセッサ10は、複数部位が存在する領域Z2*_CV内の関節座標を抽出し、複数部位の関節座標候補の正解値Z3_CVも生成する(S12)。
さらに、プロセッサは、単数部位の領域の座標の正解値Z2_CV及び複数部位の領域の座標の正解値Z2*_CVを全て含む領域を、人体が存在する領域の座標の正解値Z1_CVとして検出する(S13)。
プロセッサ10は、全ての教師データについて、上記の工程S11,S12,S13を行い、全ての教師データそれぞれの単数部位及び複数部位の関節座標候補の正解値Z3_CV、単数部位の領域の座標Z2_CV、複数部位の領域の座標Z2*_CV、人体が存在する領域の座標Z1_CVを生成する。
そして、全ての教師データのうち、第1の集合がDNN_1の教師データに利用され、第2の集合がDNN_2の教師データに利用され、第3の集合がDNN_3の教師データに利用され、そして、第4の集合がDNN_4の教師データに利用される。
さらに、上記の人体が存在する領域の座標の正解値Z1_CVは、DNN_1の教師データの正解値データとして利用され、単体部位が存在する領域の座標の正解値Z2_CVは、DNN_2の教師データの正解値データとして利用される。更に、単体部位及び複数部位の関節座標候補の正解値Z3_CVは、DNN_3の教師データの正解値として利用される。
[DNN_1の学習]
図12は、DNN_1の学習を説明する図である。プロセッサは、第1の集合の教師データの入力を入力画像IMG_IN、正解値を人体領域の座標の正解値Z1_CVとして、DNN_1の学習を実行する(S14)。プロセッサは、この学習を、例えば確率的勾配降下法またはミニバッチ法と呼ばれる方法によって行う。この学習工程により、プロセッサは、DNN_1のパラメータ(重み値等)W1を最適化する。
図12は、DNN_1の学習を説明する図である。プロセッサは、第1の集合の教師データの入力を入力画像IMG_IN、正解値を人体領域の座標の正解値Z1_CVとして、DNN_1の学習を実行する(S14)。プロセッサは、この学習を、例えば確率的勾配降下法またはミニバッチ法と呼ばれる方法によって行う。この学習工程により、プロセッサは、DNN_1のパラメータ(重み値等)W1を最適化する。
さらに、プロセッサは、最適化したDNN_1のパラメータW1をDNN_1に設定し、次に使用する第2の集合の教師データの入力画像IMG_INについてDNN_1の演算を実行し、DNN_1の中間層から入力画像IMG_INの特徴画像FIMGを生成する(S15)。特徴画像FIMGは、入力画像のエッジ検出などの畳み込み演算を行う中間層から出力される。画像の特徴が強調されているので、その後のDNN_2, DNN_3のための画像として入力画像よりも好ましい場合がある。
図13は、本実施の形態の学習方法の一つである確率的勾配降下法またはミニバッチ法の概略を示すフローチャート図である。この学習法では、プロセッサは、多数の教師データから少数(例えば10個)の教師データをランダムに選択し(S41)、選択した少数の教師データの入力をDNN_nに入力しDNN_nの演算を実行して出力を得る(S42)。そして、プロセッサは、選択した少数の教師データ全てについて、DNN_nの出力と正解値との差分の二乗和の総和を算出する(S43)。プロセッサは、この二乗和の総和が基準値未満か否か判定し(S44)、基準値未満でなければ(S44のNO)、二乗和の総和の勾配に基づいて、DNN_nの新たなパラメータを求め、DNN_nに設定する(S45)。そして、プロセッサは、工程S44の判定がYESになるまで、工程S41からS44の処理を、それぞれ別の少数の教師データを使用して繰り返す。工程S44の判定がYESになると、その時のパラメータをDNN_nの最適化されたパラメータとして出力する。
上記の学習方法は、DNN_nで学習する教師データの数を抑制することができる。
[DNN_2の学習]
図14は、DNN_2に入力する人体の画像または人体の特徴量の画像を生成するマスキング層MSK_L1及びスケーリング層SC_L1の処理を示すフローチャート図である。プロセッサは、次に使用する第2の集合の教師データの入力画像IMG_INを入力し、工程S14で求めた最適化パラメータW1が設定されたDNN_1の演算を実行して、人体が存在する領域の座標Z1=HB_Rを推定する(S16_1)。
図14は、DNN_2に入力する人体の画像または人体の特徴量の画像を生成するマスキング層MSK_L1及びスケーリング層SC_L1の処理を示すフローチャート図である。プロセッサは、次に使用する第2の集合の教師データの入力画像IMG_INを入力し、工程S14で求めた最適化パラメータW1が設定されたDNN_1の演算を実行して、人体が存在する領域の座標Z1=HB_Rを推定する(S16_1)。
そして、プロセッサは、マスキング層MSK_L1とスケーリング層SC_L1の演算を実行し、上記の第2の集合の教師データの入力画像IMG_INまたはその特徴画像FIMGを、人体領域Z1=HB_Rで切り取り、さらに、スケール変換を行う(S16_2)。これにより、プロセッサは、第2の集合の教師データの人体の画像IMG_HBまたは人体の特徴画像FIMG_HBを生成する。これらの画像は、DNN_2の学習での教師データの入力として使用される。
上記の工程S16_1で求めた人体が存在する領域の座標Z1に代えて、図11の正解値を生成する工程で生成した、第2の集合の教師データの人体が存在する領域の座標の正解値Z1_CVを利用しても良い。
このマスキング処理により、入力画像または特徴画像から人体と関係のない背景の画像などを削除することができるので、その後の関節の推定または算出の精度を高めることができる。
図15は、DNN_2の学習を説明する図である。プロセッサは、第2の集合の教師データの入力を、図14の工程S16_2で生成した入力画像の人体の画像IMG_HBまたは特徴画像の人体の画像FIMG_HBとし、正解値を、図11のS11で求めた単体部位が存在する領域の座標の正解値Z2_CVとして、DNN_2の学習を実行する(S17)。プロセッサは、この学習を、前述の確率的勾配降下法またはミニバッチ法によって行う。この学習工程により、プロセッサは、DNN_2のパラメータ(重み値等)W2を最適化する。
[DNN_3の学習]
図16は、マスキング層MSK_L2及びスケーリング層SC_L2の処理を示すフローチャート図である。プロセッサは、第3の集合の教師データの入力画像IMG_INまたは特徴画像FIMGを入力し、最適化パラメータW1が設定されたDNN_1と最適化パラメータW2が設定されたDNN_2の演算を実行して、単体部位が存在する領域の座標Z2=BDP_Rを推定する(S18_1)。
図16は、マスキング層MSK_L2及びスケーリング層SC_L2の処理を示すフローチャート図である。プロセッサは、第3の集合の教師データの入力画像IMG_INまたは特徴画像FIMGを入力し、最適化パラメータW1が設定されたDNN_1と最適化パラメータW2が設定されたDNN_2の演算を実行して、単体部位が存在する領域の座標Z2=BDP_Rを推定する(S18_1)。
さらに、プロセッサは、図11の工程S12と同様の方法で、単体部位領域を合体した複数部位が存在する領域の座標Z2*=PBDP_Rを生成する。
上記の工程S18_1に代えて、図11の工程S11,S12で求めた、第3の集合の教師データの単体部位が存在する領域の座標の正解値Z2_CVと、複数部位が存在する領域の座標の正解値Z2*_CVを使用しても良い。
そして、プロセッサは、マスキング層MSK_L1とスケーリング層SC_L1の演算を実行し、第3の集合の教師データの入力画像IMG_INまたはその特徴画像FIMGを、単体部位領域Z2=BDP_R及び複数部位領域Z2*=PBDP_Rで切り取り、さらに、スケール変換を行う(S18_2)。これにより、プロセッサは、第3の集合の教師データの入力画像IMG_INから抽出した単体部位画像IMG_BP、複数部位画像IMG_PBPを、または特徴画像FIMGから抽出した単体部位特徴画像FIMG_BP、複数部位特徴画像FIMG_PBP _HBを生成する。これらの画像は、DNN_3の学習での教師データの入力として使用される。
図17は、DNN_3の学習を説明する図である。プロセッサは、第3の集合の教師データの入力を、図16の工程S18_2で生成した単体部位画像IMG_BP及び複数部位画像IMG_PBP、または単体部位特徴画像FIMG_BP及び複数部位特徴画像FIMG_PBP _HBとし、正解値を、図11のS11,S12で求めた単体部位領域Z1_CV内の関節座標の正解値Z3_CV及び複数部位領域Z2*_CV内の関節座標の正解値Z3_CVとして、DNN_3の学習を実行する(S19)。プロセッサは、この学習を、前述の確率的勾配降下法またはミニバッチ法によって行う。この学習工程により、プロセッサは、DNN_3のパラメータ(重み値等)W3を最適化する。
[DNN_4の学習]
次に、プロセッサは、最適化されたパラメータW1,W2,W3を設定されたDNN_1,DNN_2, DNN_3の連結ネットワークのDNN_1に、第4の集合の教師データの入力画像IMG_INまたは特徴画像FIMGを入力し、DNN_1, DNN_2, DNN_3の演算を実行し、単数部位領域内及び複数部位領域内の関節座標の候補Z3=C_JT_CRDの集合を推定する(S20)。この関節座標の候補Z3=C_JT_CRDの集合は、DNN_4の学習の教師データの入力値として利用される。
次に、プロセッサは、最適化されたパラメータW1,W2,W3を設定されたDNN_1,DNN_2, DNN_3の連結ネットワークのDNN_1に、第4の集合の教師データの入力画像IMG_INまたは特徴画像FIMGを入力し、DNN_1, DNN_2, DNN_3の演算を実行し、単数部位領域内及び複数部位領域内の関節座標の候補Z3=C_JT_CRDの集合を推定する(S20)。この関節座標の候補Z3=C_JT_CRDの集合は、DNN_4の学習の教師データの入力値として利用される。
また、工程S20に代えて、図11の工程S11,S12で求めた、第4の集合の教師データの単数部位領域内及び複数部位領域内の関節座標の候補の正解値Z3_CVを利用しても良い。
図18は、DNN_4の学習を説明する図である。プロセッサは、教師データの入力を、図17の工程S20で求めた関節座標の候補Z3=C_JT_CRDの集合とし、正解値を、図11の関節座標の正解値Z4_CVとして、DNN_4の学習を実行する(S21)。この学習も、前述の確率的勾配降下法またはミニバッチ法によって行う。この学習工程により、プロセッサは、DNN_4のパラメータ(重み値等)W4を最適化する。
[工程S34の全DNNの学習]
以上で、図10の工程S33まで終了する。次に、プロセッサは、全DNN_nであるDNN_1、DNN_2、DNN_3-1 - DNN_3-N、DNN_4を繋げた全DNNの学習を実行する(S34)。全DNNの学習は、例えばマルチタスク学習が好ましい。
以上で、図10の工程S33まで終了する。次に、プロセッサは、全DNN_nであるDNN_1、DNN_2、DNN_3-1 - DNN_3-N、DNN_4を繋げた全DNNの学習を実行する(S34)。全DNNの学習は、例えばマルチタスク学習が好ましい。
図19は、工程S34の全DNNの学習を説明する図である。プロセッサは、工程S14,S17,S19,S20それぞれで最適化した重みパラメータW1,W2,W3,W4をそれぞれのDNN_nの初期値に設定し、教師データの入力を、第5の集合の教師データの入力画像X=IMG_INとし、DNN_1、DNN_2、DNN_3-1 - DNN_3-N、DNN_4及びマスキング層MSK_L1, L2、スケーリング層SC_L1,L2の演算を実行する。その結果、プロセッサは、DNN_1の演算により人体が存在する領域の座標Z1=HB_Rと、DNN_2の演算により単体部位領域の座標Z2=BDP_R及び複数部位領域の座標Z2*=PBDP_Rと、DNN_3の演算により関節候補の座標Z3=C_JT_CRDの集合と、DNN_4の演算により関節の座標Z4=JT_CRDの集合を、それぞれ算出または推定する。
次に、勾配法により各DNN_nの重みパラメータW1,W2,W3,W4を更新する。マルチタスク学習では、以下の演算により新たな重みパラメータWnewを求める。
Wnew = Wold - d * Σi=1 10 * ∂/∂W{|Z1-Z1_CV|2 + |Z2-Z2_CV|2 + |Z4-Z4_CV|2}
ここで、dは学習率、iは教師データの番号である。∂/∂W{|Z1-Z1_CV|2 + |Z2-Z2_CV|2+ |Z4-Z4_CV|2 }は勾配である。Σi=1 10は偏微分∂/∂Wの括弧外にあるが括弧内にあるのと等価である。
Wnew = Wold - d * Σi=1 10 * ∂/∂W{|Z1-Z1_CV|2 + |Z2-Z2_CV|2 + |Z4-Z4_CV|2}
ここで、dは学習率、iは教師データの番号である。∂/∂W{|Z1-Z1_CV|2 + |Z2-Z2_CV|2+ |Z4-Z4_CV|2 }は勾配である。Σi=1 10は偏微分∂/∂Wの括弧外にあるが括弧内にあるのと等価である。
上記のマルチタスク学習では、DNN_1, DNN_2, DNN_4それぞれの二乗和を累積して勾配∂/∂Wを算出するので、各DNN_nのパラメータの最適化までの工数を少なくすることができる。また、DNN_3のパラメータは、DNN_3の学習で最適化したパラメータのまま使用する。
一般的な学習では、次の演算により新たな重みパラメータWnewを求める。
Wnew = Wold - d * Σi=1 10 * ∂/∂W |Z4-Z4_CV|2
この方法では、DNN_1, DNN_2, DNN_3, DNN_4を繋げたDNNの出力Z4が正解値Z4_CVに近づくように重みパラメータが最適化されるので、最適化の精度が余りあがらないまたは最適化に多くの教師データと全DNNの演算を必要とする。
Wnew = Wold - d * Σi=1 10 * ∂/∂W |Z4-Z4_CV|2
この方法では、DNN_1, DNN_2, DNN_3, DNN_4を繋げたDNNの出力Z4が正解値Z4_CVに近づくように重みパラメータが最適化されるので、最適化の精度が余りあがらないまたは最適化に多くの教師データと全DNNの演算を必要とする。
以上のとおり、本実施の形態によれば、動物が写されている画像から動物の関節の位置を検出するDNNを効率よく学習させ、高い精度のDNNを生成することができる。また、学習済みDNNは、動物が写されている画像から動物の関節の位置を高い精度で算出または推定することができる。
X=IMG_IN:入力画像
FIMG:特徴画像
Z1=HB_R:人体領域
Z2=BDP_R:部位領域
Z2*=PBDP_R:複数部位領域
C_JT_CRD_1:第1の関節座標候補
C_JT_CRD_2:第2の関節座標候補
Z3=C_JT_CRD:関節座標候補
Z4=JT_CRD:関節座標
DNN_1:第1のディープニューラルネットワーク、第1のDNN
DNN_2:第2のディープニューラルネットワーク、第2のDNN
DNN_3_1, DNN_3_2:第3のディープニューラルネットワーク、第3のDNN
DNN_4:第4のディープニューラルネットワーク、第4のDNN
W1:第1の重みパラメータ
W2:第2の重みパラメータ
W3:第3の重みパラメータ
W4:第4の重みパラメータ
Z1_CV:第1の正解値
Z2_CV:第2の正解値
Z3_CV:第3の正解値
Z4_CV:第4の正解値
FIMG:特徴画像
Z1=HB_R:人体領域
Z2=BDP_R:部位領域
Z2*=PBDP_R:複数部位領域
C_JT_CRD_1:第1の関節座標候補
C_JT_CRD_2:第2の関節座標候補
Z3=C_JT_CRD:関節座標候補
Z4=JT_CRD:関節座標
DNN_1:第1のディープニューラルネットワーク、第1のDNN
DNN_2:第2のディープニューラルネットワーク、第2のDNN
DNN_3_1, DNN_3_2:第3のディープニューラルネットワーク、第3のDNN
DNN_4:第4のディープニューラルネットワーク、第4のDNN
W1:第1の重みパラメータ
W2:第2の重みパラメータ
W3:第3の重みパラメータ
W4:第4の重みパラメータ
Z1_CV:第1の正解値
Z2_CV:第2の正解値
Z3_CV:第3の正解値
Z4_CV:第4の正解値
Claims (10)
- メモリと、
前記メモリと接続されるプロセッサとを有し、
前記プロセッサは、
第1の教師データの入力を入力画像、前記第1の教師データの正解データを前記入力画像内の動物の部位領域として、第1のディープニューラルネットワーク(以下DNNと称する)の学習を実行し、
第2の教師データの入力を、第2の教師データの入力画像内の部位領域及び前記部位領域を複数結合した複数部位領域の画像とし、前記第2の教師データの正解データを、前記部位領域及び複数部位領域内の関節位置として、第2のDNNの学習を実行し、
前記第1のDNNの学習で求めた第1のパラメータを設定した第1のDNNにより、処理対象の入力画像データに対する前記動物の部位領域を推定し、
前記第2のDNNの学習で求めた第2のパラメータを設定した第2のDNNにより、前記第1のDNNにより推定した部位領域及び前記部位領域を複数結合した複数部位領域それぞれの第1の関節位置及び第2の関節位置とを推定する、関節位置推定装置。 - 前記プロセッサは、更に、
前記第1のパラメータを設定した第1のDNNにより、前記第2の教師データの入力画像に対する前記動物の部位領域を推定する、請求項1に記載の関節位置推定装置。 - 前記プロセッサは、前記第2の教師データの入力である、前記部位領域及び複数部位領域の画像を、前記第2の教師データの入力画像内の部位領域及び複数部位領域で前記第2の教師データの入力画像を切り取って生成する、請求項1に記載の関節位置推定装置。
- 前記第1のDNNは、第3のDNNと第4のDNNとを有し、
前記第1のDNNの学習を実行することは、
第3の教師データの入力を前記第1の教師データの入力画像、前記第3の教師データの正解データを前記入力画像内の動物が存在する動物領域として、第3のDNNの学習を実行することと、
第4の教師データの入力を、前記第4の教師データの入力画像内の動物が存在する動物領域の画像とし、前記第4の教師データの正解データを、前記動物の部位領域として、第4のDNNの学習を実行することとを有し、
前記第1のDNNにより前記処理対象の入力画像に対する前記動物の部位領域を推定することは、
前記第3のDNNの学習で求めた第3のパラメータを設定した第3のDNNにより、前記処理対象の入力画像に対する前記動物領域を推定することと、
前記第4のDNNの学習で求めた第4のパラメータを設定した第4のDNNにより、前記推定した動物領域で前記処理対象の入力画像データを切り取った動物領域の画像対する前記動物の部位領域を推定することを有する、請求項1に記載の関節位置推定装置。 - 前記第4の教師データの入力である前記第4の教師データの入力画像内の動物領域の画像は、前記第3のパラメータを設定した前記第3のDNNにより推定した動物領域で前記入力画像を切り取って求められる、請求項4に記載の関節位置推定装置。
- 前記プロセッサは、更に、
第5の教師データの入力を前記第1の関節位置と第2の関節位置とし、前記第5の教師データの正解データを前記第1の関節位置と第2の関節位置が含まれる第3の関節位置として、第5のDNNの学習を実行し、
前記第5のDNNの学習で求めた第5のパラメータを設定した第5のDNNにより、前記第2のDNNにより推定した前記第1の関節位置と第2の関節位置に対する前記第3の関節位置を推定する、請求項1に記載の関節位置推定装置。 - 前記学習の実行は、
所定数の教師データの入力に対して前記DNNが推定した出力と前記正解データとの差分の二乗和の総和を算出し、前記総和の勾配に基づいて前記パラメータを更新することを、前記総和が基準値未満になるまで繰り返すことを含む、請求項1に記載の関節位置推定装置。 - 前記プロセッサは、更に、
第6の教師データの入力である入力画像に対して前記第1のパラメータを設定した第1のDNNにより前記部位領域を推定し、前記推定した部位領域及び前記複数部位領域に対して前記第2のパラメータを設定した第2のDNNにより前記第1の関節位置及び第2の関節位置を推定し、
前記第1のDNNにより推定した部位領域と前記第1のDNNの正解データとの差分の第1の二乗和と、前記第2のDNNにより推定した第1の関節位置及び第2の関節位置と前記第2のDNNの正解データとの差分の第2の二乗和との総和を算出し、前記総和の勾配に基づいて前記第1のパラメータ及び第2のパラメータを更新することを、前記総和が基準値未満になるまで繰り返す、請求項1に記載の関節位置推定装置。(マルチタスク学習法) - 第1の教師データの入力を入力画像、前記第1の教師データの正解データを前記入力画像内の動物の部位領域として、第1のディープニューラルネットワーク(以下DNNと称する)の学習を実行し、
第2の教師データの入力を、第2の教師データの入力画像内の部位領域及び前記部位領域を複数結合した複数部位領域の画像とし、前記第2の教師データの正解データを、前記部位領域及び複数部位領域内の関節位置として、第2のDNNの学習を実行し、
前記第1のDNNの学習で求めた第1のパラメータを設定した第1のDNNにより、処理対象の入力画像データに対する前記動物の部位領域を推定し、
前記第2のDNNの学習で求めた第2のパラメータを設定した第2のDNNにより、前記第1のDNNにより推定した部位領域及び前記部位領域を複数結合した複数部位領域それぞれの第1の関節位置及び第2の関節位置とを推定する、処理を有する関節位置推定方法。 - 第1の教師データの入力を入力画像、前記第1の教師データの正解データを前記入力画像内の動物の部位領域として、第1のディープニューラルネットワーク(以下DNNと称する)の学習を実行し、
第2の教師データの入力を、第2の教師データの入力画像内の部位領域及び前記部位領域を複数結合した複数部位領域の画像とし、前記第2の教師データの正解データを、前記部位領域及び複数部位領域内の関節位置として、第2のDNNの学習を実行し、
前記第1のDNNの学習で求めた第1のパラメータを設定した第1のDNNにより、処理対象の入力画像データに対する前記動物の部位領域を推定し、
前記第2のDNNの学習で求めた第2のパラメータを設定した第2のDNNにより、前記第1のDNNにより推定した部位領域及び前記部位領域を複数結合した複数部位領域それぞれの第1の関節位置及び第2の関節位置とを推定する、処理をコンピュータに実行させる関節位置推定プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019506573A JP6826296B2 (ja) | 2017-03-21 | 2017-03-21 | 関節位置推定装置、関節位置推定方法及び関節位置推定プログラム |
PCT/JP2017/011141 WO2018173108A1 (ja) | 2017-03-21 | 2017-03-21 | 関節位置推定装置、関節位置推定方法及び関節位置推定プログラム |
US16/576,848 US11157796B2 (en) | 2017-03-21 | 2019-09-20 | Joint position estimation device, joint position estimation method, and joint position estimation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/011141 WO2018173108A1 (ja) | 2017-03-21 | 2017-03-21 | 関節位置推定装置、関節位置推定方法及び関節位置推定プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/576,848 Continuation US11157796B2 (en) | 2017-03-21 | 2019-09-20 | Joint position estimation device, joint position estimation method, and joint position estimation program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018173108A1 true WO2018173108A1 (ja) | 2018-09-27 |
Family
ID=63586333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/011141 WO2018173108A1 (ja) | 2017-03-21 | 2017-03-21 | 関節位置推定装置、関節位置推定方法及び関節位置推定プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11157796B2 (ja) |
JP (1) | JP6826296B2 (ja) |
WO (1) | WO2018173108A1 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020151270A (ja) * | 2019-03-20 | 2020-09-24 | 学校法人慶應義塾 | 関節状態値取得装置、関節状態学習装置、関節位置特定装置、関節位置学習装置、関節状態値取得方法、関節状態学習方法、関節位置特定方法、関節位置学習方法及びプログラム |
JP2021026685A (ja) * | 2019-08-08 | 2021-02-22 | セコム株式会社 | 対象物認識装置、対象物認識方法、及び対象物認識プログラム |
JP2021033374A (ja) * | 2019-08-15 | 2021-03-01 | セコム株式会社 | 対象物認識装置、対象物認識方法、及び対象物認識プログラム |
JP2021033395A (ja) * | 2019-08-16 | 2021-03-01 | セコム株式会社 | 学習済みモデル、学習装置、学習方法、及び学習プログラム |
JP2021039625A (ja) * | 2019-09-04 | 2021-03-11 | 株式会社東芝 | 物体数推定装置、物体数推定方法、および物体数推定プログラム |
JP2021079565A (ja) * | 2019-11-15 | 2021-05-27 | オーアイ・イノベーション株式会社 | 髄位置推定装置および製材システム |
JP2021531571A (ja) * | 2019-01-10 | 2021-11-18 | 平安科技(深▲せん▼)有限公司Ping An Technology (Shenzhen) Co., Ltd. | 証明書画像抽出方法及び端末機器 |
JP2021194527A (ja) * | 2020-06-11 | 2021-12-27 | Pst株式会社 | 情報処理装置、情報処理方法、情報処理システム、及び情報処理プログラム |
JP2022522242A (ja) * | 2020-02-14 | 2022-04-14 | ベイジン センスタイム テクノロジー デベロップメント カンパニー, リミテッド | 画像処理方法及び装置、電子機器、並びにコンピュータ可読記憶媒体 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230282031A1 (en) * | 2022-03-04 | 2023-09-07 | Microsoft Technology Licensing, Llc | Pose prediction for articulated object |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000251078A (ja) * | 1998-12-22 | 2000-09-14 | Atr Media Integration & Communications Res Lab | 人物の3次元姿勢推定方法および装置ならびに人物の肘の位置推定方法および装置 |
JP2016212688A (ja) * | 2015-05-11 | 2016-12-15 | 日本電信電話株式会社 | 関節位置推定装置、方法、及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4855141B2 (ja) | 2006-05-19 | 2012-01-18 | 富士フイルム株式会社 | 医用画像部位認識装置、及び、医用画像部位認識プログラム |
CN103155003B (zh) | 2010-10-08 | 2016-09-28 | 松下电器产业株式会社 | 姿势估计装置及姿势估计方法 |
JP6433149B2 (ja) | 2013-07-30 | 2018-12-05 | キヤノン株式会社 | 姿勢推定装置、姿勢推定方法およびプログラム |
US9730643B2 (en) * | 2013-10-17 | 2017-08-15 | Siemens Healthcare Gmbh | Method and system for anatomical object detection using marginal space deep neural networks |
US9773196B2 (en) * | 2016-01-25 | 2017-09-26 | Adobe Systems Incorporated | Utilizing deep learning for automatic digital image segmentation and stylization |
US10679046B1 (en) * | 2016-11-29 | 2020-06-09 | MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. | Machine learning systems and methods of estimating body shape from images |
-
2017
- 2017-03-21 WO PCT/JP2017/011141 patent/WO2018173108A1/ja active Application Filing
- 2017-03-21 JP JP2019506573A patent/JP6826296B2/ja not_active Expired - Fee Related
-
2019
- 2019-09-20 US US16/576,848 patent/US11157796B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000251078A (ja) * | 1998-12-22 | 2000-09-14 | Atr Media Integration & Communications Res Lab | 人物の3次元姿勢推定方法および装置ならびに人物の肘の位置推定方法および装置 |
JP2016212688A (ja) * | 2015-05-11 | 2016-12-15 | 日本電信電話株式会社 | 関節位置推定装置、方法、及びプログラム |
Non-Patent Citations (2)
Title |
---|
FAN, X. ET AL.: "Combining Local Appearance and Holistic View: Dual-Source Deep Neural Networks for Human Pose Estimation", 2015 IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), June 2015 (2015-06-01), pages 1347 - 1355, XP032793588, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/abstract/document/7298740> [retrieved on 20170607] * |
TOMPSON, J. ET AL.: "Joint Training of a Convolutional Network and a Graphical Model for Human Pose Estimation", ADVANCES IN NEURAL INFORMATION PROCESSING SYSTEMS 27 (NIPS 2014), 2014, pages 1 - 9, XP055545502, Retrieved from the Internet <URL:http://papers.nips.cc/paper/5573-joint-training-of-a-convolutional-network-and-a-graphical-model-for-human-pose-estimation> [retrieved on 20170606] * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11790499B2 (en) | 2019-01-10 | 2023-10-17 | Ping An Technology (Shenzhen) Co., Ltd. | Certificate image extraction method and terminal device |
JP2021531571A (ja) * | 2019-01-10 | 2021-11-18 | 平安科技(深▲せん▼)有限公司Ping An Technology (Shenzhen) Co., Ltd. | 証明書画像抽出方法及び端末機器 |
JP2020151270A (ja) * | 2019-03-20 | 2020-09-24 | 学校法人慶應義塾 | 関節状態値取得装置、関節状態学習装置、関節位置特定装置、関節位置学習装置、関節状態値取得方法、関節状態学習方法、関節位置特定方法、関節位置学習方法及びプログラム |
JP2021026685A (ja) * | 2019-08-08 | 2021-02-22 | セコム株式会社 | 対象物認識装置、対象物認識方法、及び対象物認識プログラム |
JP7349288B2 (ja) | 2019-08-08 | 2023-09-22 | セコム株式会社 | 対象物認識装置、対象物認識方法、及び対象物認識プログラム |
JP2021033374A (ja) * | 2019-08-15 | 2021-03-01 | セコム株式会社 | 対象物認識装置、対象物認識方法、及び対象物認識プログラム |
JP7349290B2 (ja) | 2019-08-15 | 2023-09-22 | セコム株式会社 | 対象物認識装置、対象物認識方法、及び対象物認識プログラム |
JP2021033395A (ja) * | 2019-08-16 | 2021-03-01 | セコム株式会社 | 学習済みモデル、学習装置、学習方法、及び学習プログラム |
JP7304235B2 (ja) | 2019-08-16 | 2023-07-06 | セコム株式会社 | 学習済みモデル、学習装置、学習方法、及び学習プログラム |
JP2021039625A (ja) * | 2019-09-04 | 2021-03-11 | 株式会社東芝 | 物体数推定装置、物体数推定方法、および物体数推定プログラム |
JP7118934B2 (ja) | 2019-09-04 | 2022-08-16 | 株式会社東芝 | 物体数推定装置、物体数推定方法、および物体数推定プログラム |
US11449975B2 (en) | 2019-09-04 | 2022-09-20 | Kabushiki Kaisha Toshiba | Object count estimation apparatus, object count estimation method, and computer program product |
JP7320260B2 (ja) | 2019-11-15 | 2023-08-03 | オーアイ・イノベーション株式会社 | 髄位置推定装置および製材システム |
JP2021079565A (ja) * | 2019-11-15 | 2021-05-27 | オーアイ・イノベーション株式会社 | 髄位置推定装置および製材システム |
JP2022522242A (ja) * | 2020-02-14 | 2022-04-14 | ベイジン センスタイム テクノロジー デベロップメント カンパニー, リミテッド | 画像処理方法及び装置、電子機器、並びにコンピュータ可読記憶媒体 |
JP2021194527A (ja) * | 2020-06-11 | 2021-12-27 | Pst株式会社 | 情報処理装置、情報処理方法、情報処理システム、及び情報処理プログラム |
JP7430398B2 (ja) | 2020-06-11 | 2024-02-13 | Pst株式会社 | 情報処理装置、情報処理方法、情報処理システム、及び情報処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6826296B2 (ja) | 2021-02-03 |
US11157796B2 (en) | 2021-10-26 |
US20200012922A1 (en) | 2020-01-09 |
JPWO2018173108A1 (ja) | 2020-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018173108A1 (ja) | 関節位置推定装置、関節位置推定方法及び関節位置推定プログラム | |
CN109670474B (zh) | 一种基于视频的人体姿态估计方法、装置及设备 | |
EP3144851A1 (en) | Image recognition method | |
JP4985516B2 (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
CN110688929B (zh) | 一种人体骨架关节点定位方法及装置 | |
JP4951498B2 (ja) | 顔画像認識装置、顔画像認識方法、顔画像認識プログラムおよびそのプログラムを記録した記録媒体 | |
JP2019028843A (ja) | 人物の視線方向を推定するための情報処理装置及び推定方法、並びに学習装置及び学習方法 | |
CN111696196B (zh) | 一种三维人脸模型重建方法及装置 | |
CN110942015B (zh) | 人群密度估计方法 | |
JP6708260B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2017059207A (ja) | 画像認識方法 | |
JP7252120B2 (ja) | 核心性能指数を満たすことができるハードウェア最適化が行われるように、cnnで複数のブロック内の入力イメージから特徴を抽出する学習方法及び学習装置、それを利用したテスト方法及びテスト装置 | |
CN109117753B (zh) | 部位识别方法、装置、终端及存储介质 | |
JP2019016106A (ja) | 情報処理プログラム、情報処理装置、情報処理方法、及び情報処理システム | |
US20110142354A1 (en) | Apparatus and method for detecting pose in motion capture data | |
CN110487274B (zh) | 用于弱纹理场景的slam方法、系统、导航车及存储介质 | |
CN101578613A (zh) | 在运动捕捉中使用的标记 | |
JP2017091377A (ja) | 姿勢推定装置、姿勢推定方法、及び姿勢推定プログラム | |
JP2019191981A (ja) | 行動認識装置、モデル構築装置及びプログラム | |
CN111882531A (zh) | 髋关节超声图像自动分析方法 | |
Ukwuoma et al. | Image inpainting and classification agent training based on reinforcement learning and generative models with attention mechanism | |
CN116012942A (zh) | 手语教学方法、装置、设备及存储介质 | |
JP2019012497A (ja) | 部位認識方法、装置、プログラム、及び撮像制御システム | |
JP2021174537A (ja) | 画像処理装置、画像処理方法及びマシン可読記憶媒体 | |
JP2019133331A (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: 17902390 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019506573 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: 17902390 Country of ref document: EP Kind code of ref document: A1 |