WO2018207282A1 - 対象物認識方法、装置、システム、プログラム - Google Patents

対象物認識方法、装置、システム、プログラム Download PDF

Info

Publication number
WO2018207282A1
WO2018207282A1 PCT/JP2017/017695 JP2017017695W WO2018207282A1 WO 2018207282 A1 WO2018207282 A1 WO 2018207282A1 JP 2017017695 W JP2017017695 W JP 2017017695W WO 2018207282 A1 WO2018207282 A1 WO 2018207282A1
Authority
WO
WIPO (PCT)
Prior art keywords
parameter
time point
parts
cloud data
unit
Prior art date
Application number
PCT/JP2017/017695
Other languages
English (en)
French (fr)
Inventor
村上 亮
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2019516792A priority Critical patent/JP6996557B2/ja
Priority to PCT/JP2017/017695 priority patent/WO2018207282A1/ja
Priority to CN201780090522.7A priority patent/CN110603570B/zh
Priority to EP17909083.2A priority patent/EP3624059A4/en
Publication of WO2018207282A1 publication Critical patent/WO2018207282A1/ja
Priority to US16/676,527 priority patent/US11126831B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/77Determining position or orientation of objects or cameras using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Definitions

  • the present disclosure relates to an object recognition method, an object recognition apparatus, an object recognition system, and an object recognition program.
  • a technique for tracking the skeleton of an object based on point cloud data scattered on the surface of the object such as a person is known (for example, see Non-Patent Document 1).
  • This technique assumes a mixed Gaussian distribution for the distribution of point cloud data and assumes that the center (feature point) of each Gaussian distribution is fixed to the surface of the object.
  • the skeleton of the object is tracked by tracking the feature points.
  • an object of the present invention is to accurately recognize a joint or skeleton of an object with a relatively low calculation load.
  • point cloud data relating to the surface of an object having a plurality of joints is acquired, A first parameter representing a position and an axial direction of each of a plurality of parts of the object, wherein the first parameter at a first time point is derived or obtained; The first parameter at the second time point based on the point cloud data at the second time point after the first time point, the first parameter at the first time point, and the geometric model having an axis.
  • a computer-implemented object recognition method is provided that includes deriving.
  • FIG. 10 is a schematic flowchart for explaining a determination method by a full width at half maximum by a length calculation unit 128; 3 is a schematic flowchart showing an example of the overall operation of the object recognition system 1. It is a schematic flowchart which shows an example of a site
  • FIG. 1 is a diagram schematically showing a schematic configuration of an object recognition system 1 according to an embodiment.
  • FIG. 1 shows a target person S (an example of an object) for explanation.
  • the distance image sensor 21 acquires a distance image of the subject S.
  • the distance image sensor 21 is a three-dimensional image sensor, measures the distance by sensing the entire space, and acquires a distance image (an example of point cloud data) having distance information for each pixel like a digital image.
  • the acquisition method of distance information is arbitrary.
  • the distance information acquisition method may be an active stereo method in which a specific pattern is projected onto an object, read by an image sensor, and the distance is acquired by a triangulation method from the geometric distortion of the projection pattern.
  • a TOF (Time-of-Flight) method may be used in which laser light is irradiated, reflected light is read by an image sensor, and a distance is measured from the phase shift.
  • the distance image sensor 21 may be installed in a manner in which the position is fixed, or may be installed in a manner in which the position is movable.
  • the object recognition device 100 recognizes the joint and skeleton of the subject S based on the distance image obtained from the distance image sensor 21. This recognition method will be described in detail later.
  • the target person S is a person or a humanoid robot, and has a plurality of joints. In the following, it is assumed that the target person S is a person as an example.
  • the target person S may be a specific individual or an unspecified person depending on the application. For example, when the use is an analysis of a movement during a competition such as gymnastics, the target person S may be an athlete.
  • the distance image sensor 21 is preferably a target as shown schematically in FIG. A plurality of points are installed so that point cloud data close to the three-dimensional shape of the person S can be obtained.
  • the wireless communication path is based on short-range wireless communication, Bluetooth (registered trademark), Wi-Fi (Wireless Fidelity), or the like. It may be realized. Further, the object recognition device 100 may be realized in cooperation with two or more different devices (for example, a computer and a server).
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of the object recognition apparatus 100.
  • the object recognition apparatus 100 includes a control unit 101, a main storage unit 102, an auxiliary storage unit 103, a drive device 104, a network I / F unit 106, and an input unit 107.
  • the control unit 101 is an arithmetic device that executes a program stored in the main storage unit 102 or the auxiliary storage unit 103, receives data from the input unit 107 or the storage device, calculates, processes, and outputs the data to the storage device or the like. To do.
  • the control unit 101 may include, for example, a CPU (Central Processing Unit) and a GPU.
  • the main storage unit 102 is a ROM (Read Only Memory), a RAM (Random Access Memory), or the like, and a storage device that stores or temporarily stores programs and data such as an OS and application software that are basic software executed by the control unit 101 It is.
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the auxiliary storage unit 103 is an HDD (Hard Disk Drive) or the like, and is a storage device that stores data related to application software.
  • HDD Hard Disk Drive
  • the drive device 104 reads the program from the recording medium 105, for example, a flexible disk, and installs it in the storage device.
  • the recording medium 105 stores a predetermined program.
  • the program stored in the recording medium 105 is installed in the object recognition device 100 via the drive device 104.
  • the installed predetermined program can be executed by the object recognition apparatus 100.
  • the network I / F unit 106 is an interface between the target object recognition apparatus 100 and a peripheral device having a communication function connected via a network constructed by a data transmission path such as a wired and / or wireless line.
  • the input unit 107 includes a keyboard having cursor keys, numeric input, various function keys, and the like, a mouse, a slice pad, and the like.
  • the input unit 107 may correspond to other input methods such as voice input and gestures.
  • various processes described below can be realized by causing the object recognition apparatus 100 to execute a program. It is also possible to record the program on the recording medium 105 and cause the object recognition apparatus 100 to read the recording medium 105 on which the program is recorded, thereby realizing various processes described below.
  • various types of recording media can be used as the recording medium 105.
  • a recording medium that records information optically, electrically, or magnetically such as a CD-ROM, a flexible disk, or a magneto-optical disk, or a semiconductor memory that electrically records information, such as a ROM or flash memory It may be.
  • the recording medium 105 does not include a carrier wave.
  • the object recognition apparatus 100 includes a data input unit 110 (an example of an acquisition unit), a one-scene skeleton recognition unit 120 (an example of a parameter derivation / acquisition unit), and a geometric model database 140 (in FIG. 3, “geometric model DB”). And notation).
  • the object recognition apparatus 100 includes a calibration information storage unit 142, a minute fitting processing unit 150 (an example of a derivation processing unit), and an output unit 160.
  • the data input unit 110, the 1 scene skeleton recognition unit 120, the micro fitting processing unit 150, and the output unit 160 are executed by the control unit 101 illustrated in FIG. 2 executing one or more programs stored in the main storage unit 102. realizable.
  • the geometric model database 140 may be realized by the auxiliary storage unit 103 illustrated in FIG.
  • the calibration information storage unit 142 may be realized by the main storage unit 102 (for example, RAM) shown in FIG.
  • a part of the function of the object recognition apparatus 100 may be realized by a computer that can be incorporated in the distance image sensor 21
  • the distance image (hereinafter referred to as “point cloud data”) is input from the distance image sensor 21 and the joint model to be used is input to the data input unit 110.
  • the point cloud data is as described above, and may be input for each frame period, for example.
  • the point cloud data may include a set of distance images from the plurality of distance image sensors 21.
  • the joint model to be used is an arbitrary model related to the subject S, for example, a model represented by a plurality of joints and a skeleton (link) between the joints.
  • a joint model as shown in FIG. 4 is used.
  • the joint model as shown in FIG. 4 is a 16-joint model having one head, three torso parts (torso parts), both arm parts, and both leg parts. Others are defined as joints at both ends and midpoint. Specifically, it consists of 16 joints a0 to a15 and 15 skeletons b1 to b15 (or also referred to as “parts b1 to b15”) connecting the joints.
  • the joints a4 and a7 are left and right shoulder joints, and the joint a2 is a joint related to the cervical spine.
  • the joints a4 and a7 are the left and right hip joints, and the joint a0 is a joint related to the lumbar spine.
  • the skeletons b14 and b15 related to the hip joint and the skeletons b4 and b7 related to the shoulder joint are skeletons (hereinafter referred to as “hidden skeletons”) that cannot be accurately recognized only by fitting using a geometric model described later. Also called).
  • hidden skeletons skeletons
  • the one-scene skeleton recognition unit 120 performs a one-scene skeleton recognition process based on the point cloud data of the subject S related to a certain temporary point (one scene).
  • the one-scene skeleton recognition process generates calibration information as a fitting result by performing fitting using a geometric model on the point cloud data of the subject S related to a certain temporary point (one scene). Including.
  • a fitting method using a geometric model will be described later together with a method for generating calibration information.
  • a time point when the calibration information is generated by the one-scene skeleton recognition unit 120 is referred to as a “calibration time point”.
  • the calibration execution time point may be the first time point, or may come every predetermined time or when a predetermined condition is satisfied.
  • the 1-scene skeleton recognition unit 120 When the 1-scene skeleton recognition unit 120 generates the calibration information, the 1-scene skeleton recognition unit 120 stores the generated calibration information in the calibration information storage unit 142.
  • the processing in the one-scene skeleton recognition unit 120 has a significantly higher processing load than the processing in the minute fitting processing unit 150 described later. Therefore, although depending on the processing capability of the object recognition apparatus 100, the generation of calibration information may take a longer time than the frame period. In this case, measures such as allowing the subject person S to stand still may be taken until the processing by the minute fitting processing unit 150 can be started (that is, until the generation of calibration information is completed).
  • the micro-fitting processing unit 150 performs the subject S based on the point cloud data of the subject S related to a certain temporary point (one scene) after the calibration is performed and the calibration information in the calibration information storage unit 142. Generate skeleton information.
  • the minute fitting processing unit 150 generates the skeleton information of the target person S by the minute fitting process using the geometric model. The method of the micro fitting process will be described later.
  • the skeletal information may include information that can specify the positions of the joints a0 to a15. Further, the skeleton information may include information that can specify the position, orientation, and thickness of the skeletons b1 to b15. The use of the skeleton information is arbitrary, but may be used to derive the skeleton information in the next frame period.
  • the skeletal information may ultimately be used for analysis of the movement of the subject S during competition such as gymnastics.
  • technique recognition based on skeletal information may be realized.
  • the movement of the target person S assumed to be an operator may be analyzed and used for a robot program.
  • it can be used for user interface by gestures, personal identification, quantification of skilled techniques, and the like.
  • the output unit 160 outputs the skeleton information of the subject S (denoted as “recognition result” in FIG. 3) to a display device or the like (not shown).
  • the output unit 160 may output the skeleton information of the subject S approximately in real time for each frame period.
  • the output unit 160 outputs the skeleton information of the subject S based on the calibration information at the time of calibration execution, and the skeleton information of the subject S from the minute fitting processing unit 150 at the time of non-calibration. It may be output.
  • the output unit 160 may output the skeleton information in time series in non-real time for the purpose of explaining the movement of the subject S.
  • the minute fitting processing unit 150 performs the minute fitting process based on the fitting result (calibration information) using the geometric model by the one-scene skeleton recognition unit 120, so that the target The skeleton information of the person S can be generated.
  • the computational load is reduced as compared with the case where the fitting using the geometric model by the one-scene skeleton recognition unit 120 is performed for each frame, so that the joint or skeleton of the object can be accurately recognized with a relatively low computational load. it can. This makes it applicable to high-speed and complicated motion analysis such as gymnastics and figure skating.
  • the one-scene skeleton recognition unit 120 includes a clustering unit 122, an EM algorithm unit 124, a model optimization unit 126, and a length calculation unit 128.
  • the object recognition apparatus 100 further includes a part recognition unit 130, a skeleton shaping unit 132, and a calibration information generation unit 134.
  • the clustering unit 122 clusters the point cloud data input to the data input unit 110, performs fitting for each cluster, and obtains an initial fitting result (initial value used for fitting using a geometric model described later).
  • Kmeans ++ method or the like can be used as a clustering method.
  • the number of clusters given to the clustering unit 122 may be manually input, or a predetermined number corresponding to the skeleton model may be used.
  • the predetermined number corresponding to the skeleton model is, for example, a value obtained by subtracting the number of parts related to the hidden skeleton from the total number of parts related to the skeleton model. That is, in the case of the 16 joint (15 sites) model shown in FIG.
  • the predetermined number that is the initial number of clusters is “11”.
  • a part of the model is rejected according to the fitting result by clustering.
  • a rejection method a method may be used in which a threshold is set for the data sum of the posterior distribution, which is an expected value of the number of point cloud data that can be explained by the model, and the model below the threshold is rejected.
  • the clustering unit 122 can obtain an initial value used for fitting using a geometric model described later by performing fitting again with the number of clusters.
  • an initial value used for fitting may be acquired by the machine learning unit.
  • the machine learning unit performs label division (part recognition) on 15 parts based on the point cloud data input to the data input part 110.
  • a random forest may be used as the machine learning method, and the difference between the distance values of the target pixel and the surrounding pixels may be used as the feature amount.
  • a method of performing multi-class classification of each pixel using a distance image as an input may be used.
  • feature quantities other than the difference in distance value may be used, or deep learning (Deep Learning) in which learning is performed including parameters corresponding to the feature quantities may be used.
  • the EM algorithm unit 124 determines the parameter ⁇ so that the point cloud data x n is most concentrated on the surface of the geometric model.
  • the point group data x n is a set (x 1 , x 2 ,..., X N ) of N points (for example, position vectors) expressed by three-dimensional spatial coordinates (x, y, z). is there.
  • the x component and y component of the spatial coordinates are values of two-dimensional coordinates in the image plane
  • the x component is a horizontal component
  • the y component is a vertical component.
  • the z component represents a distance.
  • r m and ⁇ 2 are scalars, and c m 0 and e m 0 are vectors.
  • e m 0 is a unit vector. That is, e m 0 is a unit vector representing the direction of the axis of the cylinder.
  • the position c m 0 is a position vector related to the position of an arbitrary point on the axis of the cylinder.
  • the length (height) in the axial direction of the cylinder is indefinite.
  • the orientation e m 0 of the geometric model is the same concept as the axial direction of the geometric model.
  • p (x n ) is a mixed probability distribution model of the point cloud data x n , as described above, ⁇ 2 is a variance, and M ′ is the number of clusters obtained by the clustering unit 122. It is done. At this time, the corresponding log likelihood function is as follows.
  • N is the number of data (the number of data included in the point cloud data related to one frame).
  • Equation 2 is a log-likelihood function of a mixed Gaussian model
  • an EM algorithm or the like can be used.
  • the EM algorithm unit 124 derives a parameter ⁇ and a variance ⁇ 2 that maximize the log likelihood function based on the EM algorithm.
  • the surface residual ⁇ m (x n , ⁇ ) is expressed such that the exponent part in Equation 2 is a square difference. Specifically, It is as follows.
  • the EM algorithm is an iteration of an E step for calculating an expected value and an M step for maximizing the expected value.
  • the EM algorithm unit 124 calculates the following posterior distribution p nm .
  • the EM algorithm unit 124 derives a parameter ⁇ and a variance ⁇ 2 that maximize the following expected value Q ( ⁇ , ⁇ 2 ).
  • the posterior distribution p nm is treated as a constant.
  • P is the sum of all parts of the data sum of the posterior distribution p nm (hereinafter, also referred to as “the sum of all parts of the data sum of the posterior distribution p nm ”), and is as follows.
  • the expected value Q ( ⁇ , ⁇ 2) estimate of the variance sigma 2 to maximize the sigma 2 * is as follows.
  • the estimated value r * m of the thickness r m can be directly minimized as follows.
  • Equation 9 is an average operation using the posterior distribution p nm , and is as follows for an arbitrary tensor or matrix A nm .
  • ⁇ x n > p has dependency on the part m and corresponds to the center of gravity (center) of the geometric model (cylinder) related to the part m.
  • the variance-covariance matrix ⁇ xx is also specific to the part m and corresponds to the direction of the geometric model (cylinder) related to the part m.
  • the direction e m 0 may be derived by linear approximation. Good.
  • the update formula based on the minute rotation is defined in such a manner that the norm is preserved, and is as follows.
  • ⁇ e is a minute rotation vector.
  • the estimated value ⁇ e * of ⁇ e is obtained by differentiating the equation of Formula 8 by ⁇ e, and is as follows.
  • the inverse matrix of the covariance matrix ⁇ yy and the vector ⁇ y2y (subscript “y 2 y”) are as follows.
  • the EM algorithm unit 124 first obtains the estimated value c * m 0 of the position c m 0 and then obtains the estimated value r * m of the thickness r m .
  • the thickness r m of the parameters ⁇ may be manually entered by the user, the shape information It may be set automatically based on this.
  • the EM algorithm unit 124 derives the remaining elements (position c m 0 and direction e m 0 ) of the parameter ⁇ .
  • the other measurement may be a precise measurement in advance or may be executed in parallel.
  • the model optimizing unit 126 has the best fit at the time of fitting among the plurality of types executed.
  • a geometric model of is derived.
  • the plurality of types of geometric models include geometric models other than cylinders, which are at least one of a cone, a trapezoidal column, an elliptical column, an elliptical cone, and a trapezoidal elliptical column.
  • the multiple types of geometric models related to one part may not include a cylinder.
  • the plurality of types of geometric models related to one part may be different for each part.
  • a single fixed geometric model may be used without using a plurality of types of geometric models.
  • the EM algorithm unit 124 first fits each part using a cylindrical geometric model. Next, the EM algorithm unit 124 switches a geometric model related to a certain part from a cylinder to another (for example, a cone), and performs fitting to the same part. Then, the model optimizing unit 126 selects the geometric model having the largest logarithmic likelihood function as the type of geometric model having the best fit. The model optimizing unit 126 may select the geometric model having the largest sum of all the parts of the posterior distribution data sum as the geometric model having the best fit, instead of the geometric model having the largest log likelihood function. Good.
  • the surface residual ⁇ m (x n , ⁇ ) may be expressed as:
  • the position c m 0 corresponds to the vertex position
  • the direction e m 0 is a unit vector of the central axis.
  • the vector nm is a normal vector at a certain point on the surface of the cone.
  • the surface residual ⁇ m (x n , ⁇ ) may be the same as in the case of a cone. That is, in the case of a trapezoidal column, it can be expressed by defining a distribution with respect to a part of a cone.
  • the surface residual ⁇ m (x n , ⁇ ) may be expressed as follows.
  • d m is the focal length
  • a m is the length of the major axis of the cross-section of an ellipse
  • n m ' is the unit vector in the long axis direction.
  • the position c m 0 corresponds to the position on the axis
  • the direction e m 0 is a unit vector of the axis of the elliptic cylinder (axial direction).
  • the surface residual ⁇ m (x n , ⁇ ) may be expressed as follows.
  • ⁇ m1 and ⁇ m2 are inclination angles in the major axis and minor axis directions, respectively.
  • the position c m 0 corresponds to the vertex position, and the direction e m 0 is a unit vector of the central axis.
  • the surface residual ⁇ m (x n , ⁇ ) may be the same as in the case of the elliptical cone.
  • the EM algorithm unit 124 preferably performs a finite length process.
  • the finite length process is a process of calculating the posterior distribution p nm only for data satisfying a predetermined condition among the point cloud data x n and setting the posterior distribution p nm to 0 for other data.
  • the finite length process is a process for preventing data irrelevant to the part m from being mixed, and the predetermined condition is set so that data irrelevant to the part m can be excluded. Thereby, it can suppress that the point cloud data which should not be actually related influences analysis.
  • the data satisfying the predetermined condition may be data satisfying the following expression, for example.
  • l m 0 is an input length related to the part m
  • is a margin (for example, 1.2).
  • the input length l m 0 can be manually input, or may be set based on the shape information of the subject S obtained by other measurement.
  • the length calculation unit 128 calculates the length (part) from the center to the end of the geometric model.
  • the length parameter l m corresponding to (the length from the center of m to the end) is derived.
  • the length calculation unit 128 may calculate the length parameter l m of the part m using the variance-covariance matrix ⁇ xx as follows.
  • C is a constant multiple correction value.
  • the length calculation section 128, the length parameter l m site m may be calculated by determination by the full width at half maximum.
  • the full width at half maximum refers to the interval up to where the number of data is halved compared to where there is a lot of data.
  • the length calculation unit 128 derives a length parameter by finding the “cut” of the part m.
  • the length calculation unit 128 finely cuts the part m along the axial direction in the form of a ring whose normal is the axial direction related to the direction e m 0 , and counts the number of data contained therein.
  • a point where the value is equal to or less than a predetermined threshold is defined as a “break”. Specifically, in the determination based on the full width at half maximum, the predetermined threshold is half the maximum value of the count value, but may be a value other than half, such as 0.1 times the maximum value of the count value.
  • FIG. 5 is a diagram schematically showing a derivation result (fitting result by a geometric model) by the EM algorithm unit 124
  • FIG. 6 is a schematic flowchart for explaining a determination method by the full width at half maximum by the length calculation unit 128. .
  • the head and the torso are each fitted with a single cylinder, and both the arms and the legs are fitted with a single cylinder.
  • a method for calculating the length parameter l m (l + m and l ⁇ m ) of the part m will be described as a representative case where the arm portion of the subject S is the part m.
  • the arm is recognized as one part by the EM algorithm part 124 because the elbow joint is extended (it is applied by one geometric model). .
  • step S602 the length calculation unit 128 counts the number of data satisfying the following condition among the point cloud data xn .
  • ⁇ X n ⁇ e m 0 > p corresponds to the center of the part m.
  • ⁇ l m corresponds to the width of the ring cut (width along the axial direction e m 0 ), and is, for example, 0.01 l m 0 .
  • l m 0 is the input length related to the part m as described above.
  • S m is a threshold for the posterior distribution p nm , and is 0.1, for example.
  • step S604 the length calculation unit 128 sets the reference value Cref based on the count number obtained in step S602. For example, the length calculation unit 128 sets the count obtained in step S602 as the reference value Cref.
  • step S606 n is incremented by “1”.
  • step S608 the length calculation unit 128 counts the number of data satisfying the following condition in the point cloud data xn . That is, the length calculator 128 in the next section shifted by .DELTA.l m, counts the number of the following conditions data.
  • step S610 the length calculation unit 128 determines whether or not the number of data counted in step S608 is equal to or less than a predetermined number times (for example, 0.5 times) the reference value Cref. If the determination result is “YES”, the process proceeds to step S612, and otherwise, the process from step S606 is repeated.
  • a predetermined number times for example, 0.5 times
  • step S620 to step S632 the length calculation unit 128 proceeds in the reverse direction (ancestor side), and in the same way, from the center to the ancestor side end of the part m shown in FIG.
  • the length parameter l - m of is calculated.
  • the length calculation unit 128, as follows, may be calculated length parameter l m site m.
  • N m is a subset of n defined below, and is a set of n whose posterior distribution p nm is smaller than a certain threshold value p m th .
  • the threshold value p m th is, for example, as follows.
  • the subset N m is a set of data that does not belong to the part m in the point cloud data x n . Therefore, the length calculation section 128, among the subsets N m, the distance from the center (number 29
  • ) to data is minimized Based on this, the length parameter lm of the part m is calculated.
  • Region recognition unit 130 a derivation result of the parameters of site m (r m, c m 0 , and e m 0), on the basis of the derivation result of the length parameter l m site m, performs a part recognition process.
  • the part recognition process includes recognizing the correspondence between the part m and each part of the subject S (see the parts b1 to b15 in FIG. 4).
  • the position of the end of the part m on the axis (the end that determines the length parameter l m ) can be derived.
  • the position ⁇ m 0 of the end portion on the axis of the part m satisfies the following.
  • Equation 32 the second term on the right side of Equation 32 is as follows at the end on the ancestor side and the end on the descendant side.
  • l ⁇ m is the center of the part m Is a length parameter from to the ancestor side, and is calculated by the length calculation unit 128 as described above.
  • is a constant, and may be 1, for example.
  • a “joint point” refers to a representative point related to a joint (a point representing a position related to a joint), and an end (position) of the part m that can be derived in this way also corresponds to the joint point.
  • Region recognition unit 130 by using the thickness r m, identifying the main site.
  • the main part is the part with the largest thickness, and is the trunk of the subject S in this embodiment.
  • the part recognizing unit 130 recognizes the thickest part or two adjacent first and second thickest parts whose thickness difference is less than a predetermined value as the main part of the object. Specifically, when the difference between the first largest part m1 and the second largest part m2 is less than a predetermined value, the part recognition unit 130 determines which part m1, m2 Is also identified as a torso. The predetermined value is a matching value corresponding to the difference in thickness between the parts m1 and m2. On the other hand, when the difference between the first largest part m1 and the second largest part m2 is equal to or greater than a predetermined value, the part recognition unit 130 converts only the first largest part m1 into the trunk (part b1 + part. identified as b2).
  • the site recognition unit 130 sets a “cut flag” for the site ml.
  • the significance of the disconnect flag will be described later. Accordingly, for example, in FIG. 4, even when the part b1 and the part b2 are straightly extended according to the posture of the subject S, the part b1 and the part b2 can be recognized as the trunks related to the part m1 and the part m2. .
  • the part recognizing unit 130 determines (identifies) a joint point in the vicinity of the bottom of the torso after identifying the main part (torso).
  • the part recognition unit 130 For the bottom surface of the body part, the part recognition unit 130 has an end part on the body part side in a minute cylinder (or an elliptical column or a trapezoidal column) set at the position of the end part on the bottom surface side of the body part.
  • the two parts ml and mr to which the position of belong are specified.
  • a predetermined value may be used for the height of the minute cylinder.
  • the part recognition unit 130 divides the parts ml and mr into the part related to the left leg (refer to part b10 or part b10 + b11 in FIG. 4) and the part related to the right leg (refer to part b12 or part b12 + b13 in FIG. 4).
  • the part recognizing part 130 When the part recognizing part 130 identifies the part ml related to the left leg part, the part recognizing part 130 includes a body part in a sphere (hereinafter also referred to as “connected sphere”) set at the position of the end part far from the body part in the part ml. It is determined whether or not there is a part having an end position on the side close to. A predetermined value may be used for the diameter of the connecting sphere. If there is a part ml2 having the position of the end close to the torso in the connecting sphere, the part recognition unit 130 recognizes the part ml as the thigh b10 of the left leg, and the part ml2 This is recognized as the shin b11 of the left leg.
  • the part recognition unit 130 recognizes the part ml as a part including both the thigh and shin of the left leg. To do.
  • the site recognition unit 130 sets a “cut flag” for the site ml. Thereby, for example, in FIG. 4, even when the parts b ⁇ b> 10 and b ⁇ b> 11 extend straight according to the posture of the subject S, the parts b ⁇ b> 10 and b ⁇ b> 11 can be recognized as parts related to the left leg.
  • the part recognizing unit 130 identifies the part mr related to the right leg part, the part close to the body part in the sphere (connected sphere) set at the position of the end part far from the body part in the part mr. It is determined whether or not there is a part having the position of the end. A predetermined value may be used for the diameter of the connecting sphere.
  • the part recognition unit 130 recognizes the part mr as the thigh b12 of the right leg, and the part mr2 This is recognized as the right leg shin b13.
  • the part recognition unit 130 recognizes the part mr as a part including both the thigh and shin of the right leg. To do. In this case, the part recognition unit 130 sets a “cut flag” for the part mr. Thereby, for example, in FIG. 4, even when the parts b12 and b13 extend straight according to the posture of the subject S, the parts b12 and b13 can be recognized as parts related to the right leg.
  • the part recognition part 130 will determine (identify) the joint point in the side surface vicinity of a trunk
  • the site recognizing unit 130 is located on the side surface in the axial direction (principal axis) of the torso, and the two joint points closest to the head side surface are the base joint points of the left and right arms (joint points related to the shoulder joint). Identify as.
  • the part recognizing unit 130 identifies a joint point included in a thin torus (a torus related to a cylinder) on the side surface of the trunk as a joint point of the base of the arm. A predetermined value may be used as the thickness of the torus.
  • the part recognition unit 130 divides the parts mlh and mrh including the base joint points of the left and right arm parts into the part related to the left hand (see part b5 or part b5 + b6 in FIG. 4) and the part related to the right hand (in FIG. 4). Recognized as part b8 or part b8 + b9).
  • the part recognition unit 130 recognizes the part mlh as a part including both the upper arm part and the forearm part of the left hand. To do. In this case, the part recognition unit 130 sets a “cut flag” for the part mlh. Thereby, for example, in FIG. 4, even when the parts b5 and b6 extend straight in accordance with the posture of the subject S, the parts b5 and b6 can be recognized as the parts related to the left hand.
  • the part recognizing part 130 identifies the part mrh related to the right hand, the end on the side close to the torso is within the sphere (connected sphere) set at the position of the end far from the torso in the part mrh. It is determined whether or not there is a part having the position of the part. A predetermined value may be used for the diameter of the connecting sphere. And when the part mrh2 which has the position of the edge part near the trunk
  • the part recognition unit 130 recognizes the part mrh as a part including both the upper arm part and the forearm part of the right hand. To do. In this case, the part recognition unit 130 sets a “cut flag” for the part mrh. Thereby, for example, in FIG. 4, even when the parts b8 and b9 are straightly extended according to the posture of the subject S, the parts b8 and b9 can be recognized as the parts related to the right hand.
  • the skeleton shaping unit 132 performs a cutting process, a joining process, and a connecting process as the skeleton shaping process.
  • the cutting process is a process of separating one part into two further parts.
  • the part to be separated is a part of the part m in which the above-described cutting flag is set.
  • the geometric model related to the part to be cut (that is, the geometric model related to the part for which the above-described cutting flag is set) is an example of the first geometric model.
  • the parts for which the cutting flag is set are, for example, the parts recognized as one part by the fitting by the geometric model when the straight flag is extended, such as the upper arm part and the forearm part (see parts b5 and b6 in FIG. 4). It is.
  • the cutting process separates such originally two sites into two further sites.
  • Equation 32 the second term on the right side of Equation 32 is as follows. Note that the derivation results of c m 0 and e m 0 are used to derive the intermediate joint point.
  • is a constant, and may be 1, for example.
  • may be set based on the shape information of the subject S obtained by other measurement.
  • the cutting process even when the part m originally includes a part consisting of two parts, it is possible to derive three joint points by cutting into two further parts. Therefore, for example, even when the legs are stretched and the elbows and knees are straightened, the three joint points can be derived by the cutting process.
  • the joining process is a process of generating a hidden skeleton as a straight line connecting two joint points related to two predetermined parts m.
  • the geometric model related to the predetermined two parts m to be combined is an example of the second geometric model.
  • the hidden skeletons include skeletons b14 and b15 related to the hip joint and skeletons b4 and b7 related to the shoulder joint.
  • the joint point a0 on the bottom surface side of the part b1 and the joint point a14 on the trunk part side of the part b10 correspond to the two joint points to be combined.
  • the predetermined two joints correspond to the joint point a0 on the bottom surface side of the part b1 and the joint point a15 on the trunk part side of the part b12.
  • the predetermined two joints correspond to the joint point a2 on the head side of the part b2 and the joint point a4 on the trunk part side of the part b5.
  • the predetermined two joints correspond to a joint point a2 on the head side of the part b2 and a joint point a7 on the trunk part side of the part b8.
  • connection processing even when the joint model includes a hidden skeleton, a hidden skeleton (straight line corresponding to the link) can be derived by the connection processing.
  • connection process is a process of integrating (connecting) joint points (common joint points) related to the same joint that can be derived from geometric models related to different parts into one joint point.
  • the joint points to be connected are, for example, two joint points in the connecting sphere described above (joint points related to the joints a5, a8, a10, and a12 in FIG. 4).
  • Such connection processing relating to the arm portion and the leg portion is executed when the cutting flag is not set.
  • the other joint points to be connected are related to the joint point of the neck, and are two joint points (joint points related to the joint a2 in FIG. 4) obtained from both the geometric model of the head and the geometric model of the torso. is there.
  • the point of articulation other consolidated in case of identification thickness r m is 1 largest part m1 and the second largest site m2 and as each barrel, the joint between the portions m1 and site m2 Points (joint points related to the joint a1 in FIG. 4). That is, the connection process related to the body is executed when the cutting flag is not set.
  • connection process may be a process of simply selecting one of the joint points. Or, the method using the average value of two joint points, the method using the value of the part with the larger data sum of the posterior distribution of the two parts related to the two joint points, the data sum of the posterior distribution A method using a weighted value may be used.
  • the skeleton shaping unit 132 preferably performs further symmetrization processing as the skeleton shaping processing.
  • the symmetrization process is a process of correcting the parameters symmetrically with respect to the parts that are essentially symmetrical.
  • symmetrical parts are, for example, left and right arm parts and left and right leg parts.
  • the skeleton shaping unit 132 sets the largest sum of the posterior distribution data for the thickness r m and the length parameter l m of the parameter ⁇ . You may unify.
  • the thickness r m and length parameters l m of the left leg For example if the data sum of the posterior distribution of the left leg is greater than the sum of data of the posterior distribution of the right leg, the thickness r m and length parameters l m of the left leg, the thickness of the right leg portion It is to correct the r m and length parameters l m.
  • the thickness r m and length parameters l m By utilizing the left-right symmetry, it is possible to improve the accuracy of the thickness r m and length parameters l m.
  • Calibration information generation section 134 derivations and parameter ⁇ site m, derivations of length parameters l m site m, the region recognition processing result by the part recognition unit 130, skeletal shaping processing result by the skeleton shaping unit 132 Based on the above, calibration information is generated.
  • the calibration information includes part information relating to all parts of the subject S.
  • the all parts of the subject S are all parts based on the joint model, and are 15 parts in the example shown in FIG. Below, arbitrary one site
  • the part information includes, for example, information indicating the correspondence between the part k and each part of the subject S (see each part b1 to b15 in FIG. 4) (hereinafter referred to as “part correspondence relation information”), It may include position, axial direction, length, thickness, etc.
  • the part information includes part correspondence information, the position c k ⁇ 0 of the ancestor side of the part k as the position of the part k, the direction e k ⁇ 0 of the part k, and the part m A length parameter l m .
  • the position c k ⁇ 0 and the orientation e k ⁇ 0 represent initial values of the position and orientation (an example of the first parameter) of the part m in a certain posture ⁇ .
  • the position c k ⁇ 0 of the part k corresponds to the position of the ancestor side end part (see Expressions 32 and 33) derived from the position c m 0 and the like.
  • each position c k ⁇ 0 of the two parts separated by the cutting process is similarly an ancestor-side joint point in the part.
  • the position c k ⁇ 0 of the part k related to the thigh among the two parts separated from the part m is an ancestor-side joint point.
  • the position c k ⁇ 0 of the part k related to the shin part is an ancestor side joint point (that is, the joint point in the middle of the part m and the joint point related to the knee). Yes (see Equation 34).
  • the position c k ⁇ 0 of the part k related to the hidden skeleton is a joint point on the offspring side of the part connected to the hidden skeleton on the ancestor side.
  • the position c k ⁇ 0 of the part k corresponding to the part b4 corresponds to the joint point a2 on the offspring side of the part m corresponding to the part b2.
  • the direction e m 0 can be used as it is. Even when the cutting process is performed on the part m, the direction e m 0 of the part m is used as the respective directions e k ⁇ 0 of the two parts separated by the cutting process.
  • the direction e k ⁇ 0 of the part k related to the hidden skeleton uses the direction of the straight line related to the hidden skeleton derived by the combining process.
  • the calibration information includes information indicating what kind of geometric model is used for which part (hereinafter referred to as “use geometric model information”) for each part excluding the hidden skeleton (part) among all parts.
  • use geometric model information information indicating what kind of geometric model is used for which part (hereinafter referred to as “use geometric model information”) for each part excluding the hidden skeleton (part) among all parts.
  • each geometric model of the two parts separated by the cutting process is a geometric model associated with the part m.
  • the used geometric model information is not necessary.
  • the cutting process is performed on the result obtained by performing the fitting using the geometric model.
  • the joint that connects the two parts can be accurately recognized.
  • the joint that connects the two parts is accurately recognized. it can.
  • the combining process is performed on the result obtained by performing the fitting using the geometric model.
  • the joint or skeleton of the subject S can be accurately recognized based on the point cloud data of the subject S.
  • FIG. 7 is a schematic flowchart showing an example of the overall operation of the one-scene skeleton recognition unit 120
  • FIG. 8 is a schematic flowchart showing an example of the part recognition process.
  • 9A and 9B are explanatory diagrams of the processing of FIG.
  • point group data x n relating to a certain temporary point (one scene) is shown.
  • step S702 the clustering unit 122 acquires an initial value used for fitting using a geometric model based on the point cloud data xn obtained in step S700.
  • the details of the processing (initial value acquisition method) of the clustering unit 122 are as described above.
  • step S704 the EM algorithm unit 124 executes the E step of the EM algorithm based on the point cloud data xn obtained in step S700 and the initial value obtained in step S702. Details of the E step of the EM algorithm are as described above.
  • step S710 the EM algorithm unit 124 determines whether there is an unprocessed part, that is, whether j ⁇ M ′. If there is an unprocessed part, the process from step S706 is repeated through step S711. If there is no unprocessed part, the process proceeds to step S712.
  • step S711 the EM algorithm unit 124 increments j by “1”.
  • step S712 the EM algorithm unit 124 determines whether or not it has converged.
  • the convergence condition for example, that the log-likelihood function is not more than a predetermined value or that the moving average of the log-likelihood function is not more than a predetermined value may be used.
  • step S714 the model optimization unit 126 performs a model optimization process. For example, the model optimization unit 126 calculates the total part sum of the data sum of the posterior distribution related to the geometric model used this time. If the total part sum of the data sum of the posterior distribution is less than the predetermined reference value, the EM algorithm unit 124 is instructed to change the geometric model, and the processes from step S704 to step S712 are executed again. Alternatively, the model optimizing unit 126 instructs the EM algorithm unit 124 to change the geometric model regardless of the total part sum of the data sum of the posterior distribution related to the geometric model used this time. The process of S712 is executed again. In this case, the model optimizing unit 126 selects the geometric model having the largest sum of all parts of the data sum of the posterior distribution as the type of geometric model having the best fit.
  • parameters ⁇ (r m , c m 0 , and e m 0 ) relating to a plurality of geometric models applied to the point cloud data x n are obtained. It is done.
  • the geometric model M1 is a geometric model related to the head of the subject S
  • the geometric model M2 is a geometric model related to the torso of the subject S
  • the geometric models M3 and M4 are both arms of the subject S.
  • the geometric models M5 and M6 are geometric models related to both legs of the subject S.
  • the geometric models M1 to M6 are all cylindrical.
  • step S716 the length calculation unit 128 determines the length parameter l m of each geometric model (see the geometric models M1 to M6) based on the point cloud data x n and the parameter ⁇ obtained in the processing up to step S714. Is derived. Deriving the length parameter l m includes deriving the length parameter l + m and the length parameter l ⁇ m with respect to the center of the part m as described above.
  • step S7108 the part recognition unit 130 performs part recognition processing.
  • the site recognition process is as described above, but an example procedure will be described later with reference to FIG.
  • step S720 the skeleton shaping unit 132 performs a cutting process, a combining process, and a connecting process based on the part recognition process result obtained in step S718.
  • the skeletal shaping unit 132 performs a cutting process on the part for which the cutting flag is set.
  • the details of the cutting process are as described above.
  • the coupling process is as described above, and includes deriving the straight lines related to the skeletons b14 and b15 related to the hip joint and the skeletons b4 and b7 related to the shoulder joint.
  • the details of the connection process are as described above.
  • step S720 When the processing up to step S720 is completed, as conceptually shown in FIG. 9B, the position of each joint related to the cutting processing, the hidden skeleton, and the like are derived.
  • step S722 the calibration information generation unit 134 generates calibration information based on the processing results of steps S704 to S722 in the current cycle.
  • the method for generating calibration information is as described above.
  • step S718 the part recognition process in step S718 will be described with reference to FIG.
  • step S800 the region recognition unit 130, the thickness r m, the difference between the thick portion in the first and second is equal to or greater than a predetermined value. If the determination result is “YES”, the process proceeds to step S802, and otherwise, the process proceeds to step S804.
  • the region recognition unit 130 identifies the thickness r m greater portion m1 to the first as the barrel (straight elongated body portion), it sets the cut flag for site m1.
  • the part to which the geometric model M2 is associated is the first thickest part m1 whose difference from the second thickest part is a predetermined value or more, and the cutting flag is set. .
  • the cutting flag is set for the part m1 in this way, the cutting process is executed for the part m1 in step S720 of FIG.
  • step S804 the region recognition unit 130, and a thickness r m greater part the second greater portion m1 to the first m2, identified as the barrel.
  • step S806 the part recognition unit 130 recognizes the head.
  • the part recognition unit 130 recognizes a part mh near the upper surface of the part m1 as a head.
  • the part to which the geometric model M1 is associated is recognized as the head.
  • step S808 the part recognizing unit 130 recognizes the left and right legs near the bottom of the trunk. That is, as described above, the part recognizing unit 130 identifies the left and right two joint points in the vicinity of the bottom surface of the trunk as the root joint point of each leg part, and the parts ml and mr having the two joint points are It is recognized as a part related to the leg part.
  • step S810 the part recognizing unit 130 has joint points related to the other parts ml2 and mr2 on the end side (the side far from the trunk part) of the parts ml and mr related to the left and right legs recognized in step S808. It is determined whether or not. At this time, the part recognizing unit 130 determines the left and right leg parts separately. If the determination result is “YES”, the process proceeds to step S812, and otherwise, the process proceeds to step S814.
  • step S814 the part recognition unit 130 recognizes the parts ml and mr related to the left and right legs recognized in step S808 as straight legs, and sets a cutting flag for the parts ml and mr. .
  • the cutting flag is set for the parts ml and mr in this way, the cutting process is executed for the parts ml and mr in step S720 of FIG.
  • step S816 the part recognizing unit 130 recognizes the left and right arms on the left and right side surfaces on the upper side of the trunk (the side far from the leg). That is, as described above, the part recognizing unit 130 identifies the two joint points included in the thin torus on the side surface of the torso as the root joint points of the respective arm parts, and the parts mlh, mrh having the two joint points. Is recognized as a part related to the left and right arms.
  • step S820 the part recognition unit 130 recognizes the parts mlh and mrh related to the left and right arms recognized in step S816 as the upper arm part, and recognizes the other parts mlh2 and mrh2 recognized in step S818 as the forearm part. To do.
  • step S720 of FIG. 7 the connection process is executed for the parts mlh and mlh2, and the connection process is executed for the parts mrh and mrh2.
  • step S822 the part recognizing unit 130 recognizes the parts mlh and mrh related to the left and right arm parts recognized in step S816 as straight arms, and sets a cutting flag for the parts mlh and mrh. .
  • the cutting flag is set for the parts mlh and mrh in this way, the cutting process is executed for the parts mlh and mrh in step S720 of FIG.
  • FIGS. 7 and 8 it is possible to accurately recognize the joint or skeleton of the subject S based on the point cloud data xn of the subject S related to a certain temporary point (one scene). Become.
  • the processing shown in FIGS. 7 and 8 may be repeatedly executed for each frame period.
  • the parameters ⁇ and variance ⁇ 2 obtained in the previous frame and the previous frame are used.
  • the parameter ⁇ or the like related to the next frame may be derived using the existing geometric model.
  • the point group data x n has been formulated as being all near the geometric model surface, but the point group data x n includes noise and the like. If such data away from the surface is mixed, the posterior distribution of the E step may become unstable and may not be calculated correctly. Therefore, a uniform distribution may be added as a noise term to the distribution p (x n ) as follows.
  • u is an arbitrary weight.
  • the posterior distribution is corrected as follows.
  • u c is defined as follows.
  • first time point the time point related to the point cloud data x n used in the one-scene skeleton recognition unit 120
  • second time point This is referred to as “time point”.
  • time point the time point related to the point cloud data x n used in the minute fitting processing unit 150
  • time point is later than the first time point, and here, for example, it is assumed that it is a minute time corresponding to one frame period.
  • the part m is the same as the part of [1 scene skeleton recognition unit] described above except that the part m is a part to be fitted. Different. That is, in the one-scene skeleton recognition process, the part m may be simultaneously associated with two parts of the subject S as described above. However, in the following minute fitting process, the part m is 2 of the subject S. It is not associated with a part at the same time. Therefore, in the description of [micro fitting processing unit], the part m corresponds to each part of the 15 parts excluding the hidden skeleton (part) in the case of the joint model shown in FIG.
  • the minute fitting processing unit 150 performs the minute fitting process using the calibration information generated by the one-scene skeleton recognition unit 120.
  • a parameter related to the parameter ⁇ and representing the joint (joint rotation) of the subject S and the rotation and translation of the center of gravity of the subject S will be referred to as “deformation parameter ⁇ ar ”.
  • the calibration information includes used geometric model information (information representing a geometric model used for each part in the one-scene skeleton recognition process).
  • the geometric model used when the calibration information is obtained is succeeded. For example, when a cylinder is used for a certain part when generating calibration information, the cylinder is used for the part even in the micro-fitting process.
  • the minute fitting processing unit 150 includes a surface residual calculation unit 151, a posterior distribution calculation unit 152, a finite length processing unit 154, a variance update unit 155, a minute change calculation unit 156, a parameter An updating unit 158.
  • the surface residual calculation unit 151 calculates the surface residual ⁇ nm and the differential ⁇ ′ nm of the surface residual.
  • the surface residual ⁇ m (x n , ⁇ ar ) (difference in the direction perpendicular to the surface) between the point cloud data x n and the part m is a Gaussian distribution, as in the above-described one-scene skeleton recognition process. Is assumed. Specifically, it is as follows.
  • M is the total number of parts of the joint model (total number of all parts including hidden parts), and is “15” in the joint model shown in FIG. Therefore, M may be different from M ′ used in the one-scene skeleton recognition unit 120.
  • h is the number of hidden skeletons (parts) (an example of the second part), and is “4” in the joint model shown in FIG. 4.
  • the surface residual ⁇ nm and the differential ⁇ ′ nm of the surface residual are defined as follows. Note that ⁇ ar is a deformation parameter.
  • ⁇ > p is similarly an average operation using the posterior distribution p nm , but is related to the difference between “M ′” and “Mh”. Then, for an arbitrary tensor or matrix a nm :
  • the surface residual may be expressed as follows, for example.
  • the position c m ⁇ and the direction e m ⁇ represent the position and orientation of the part m in a certain posture ⁇ .
  • the position c m ⁇ is the position of the joint point on the ancestor side of the part m as already defined.
  • the subscript l ′ indicates a movable part, and the total number is Mf (for example, 13).
  • ⁇ ′ nml′i ′ is the derivative of the surface residual with respect to the movable part
  • i ′ is the derivative of the surface residual with respect to the rotation of the center of gravity of the subject S
  • i ′ is the derivative of the surface residual with respect to the translation of the center of gravity of the subject S.
  • ⁇ ml ′ is the Kronecker delta and is as follows:
  • the ancestor-descendant relationship can be determined based on the part correspondence information included in the calibration information.
  • the surface residual ⁇ m (x n , ⁇ ar ) may be expressed as: Note that, in a cone (the same applies to an elliptical cone), the position c m ⁇ corresponds to the vertex position in a certain posture ⁇ , and the direction e m ⁇ in a certain posture ⁇ is a unit vector of the central axis.
  • Equation 22 The vector nm is as described above with respect to Equation 22. In the case of a trapezoidal column, it may be the same as in the case of a cone. In the case of an elliptic cylinder, the surface residual ⁇ m (x n , ⁇ ar ) may be expressed as follows.
  • the surface residual ⁇ m (x n , ⁇ ar ) may be expressed as follows.
  • ⁇ m1 and the like are as described above with respect to Equation 24.
  • the surface residual ⁇ m (x n , ⁇ ar ) may be the same as in the case of an elliptical cone.
  • Posterior distribution calculating unit 152 calculates the posterior distribution p nm in micro-fitting process.
  • the posterior distribution p nm in the minute fitting process is as follows in relation to the difference between “M ′” and “Mh”.
  • the finite length processing unit 154 performs finite length processing based on the posterior distribution pm obtained by the posterior distribution calculating unit 152.
  • the finite length process is a process in which the posterior distribution p nm is calculated only for data satisfying a predetermined condition among the point cloud data x n and the posterior distribution p nm is set to 0 for other data. is there.
  • the data satisfying the predetermined condition may be data satisfying the following expression, for example.
  • l m is the length parameter included in the calibration information (i.e. the length of the portion m derived by the length calculator 128 parameter l m).
  • the variance update unit 155 derives (updates) the variance ( ⁇ 0 2 + ⁇ 2 ) after the minute change.
  • the likelihood function maximization problem can be derived by linear approximation. That is, by setting the derivative with respect to ⁇ 2 in the equation (39) to 0, the variance ( ⁇ 0 2 + ⁇ 2 ) after a minute change is obtained.
  • the variance ⁇ 0 2 is an initial value and is obtained by the one-scene skeleton recognition unit 120.
  • the dispersion ( ⁇ 0 2 + ⁇ 2 ) after a minute change may be as follows.
  • the minute change calculation unit 156 calculates a minute change ⁇ of the deformation parameter ⁇ ar .
  • the likelihood function maximization problem can be derived by linear approximation as follows, similarly to the variance ⁇ 2 . That is, since the second time point is a minute later than the first time point, the point cloud data x n at the second time point is not expected to change significantly from the point cloud data x n at the first time point. . For this reason, it is expected that the deformation parameter ⁇ ar at the second time point does not change significantly from the deformation parameter ⁇ ar at the first time point. Accordingly, it is assumed that the deformation parameter ⁇ ar at the second time point is represented by a minute change ⁇ from the deformation parameter ⁇ ar at the first time point.
  • the minute change ⁇ of the deformation parameter ⁇ ar is as follows using the surface residual ⁇ nm and the differential ⁇ ′ nm of the surface residual (see Equation 40).
  • the parameter updating unit 158 calculates the respective changes ⁇ c k ⁇ and ⁇ e k ⁇ (an example of the second parameter) of the position c k ⁇ and the direction e k ⁇ . deriving (updated) doing, located c k ⁇ + ⁇ and derives the orientation e k ⁇ + ⁇ (updated). Note that the position c k ⁇ and the direction e k ⁇ represent the position and orientation of the part k in a certain posture ⁇ as described above. As the initial values of the position c k ⁇ and the direction e k ⁇ , the position c k ⁇ 0 and the direction e k ⁇ 0 included in the calibration information are used.
  • ⁇ c k ⁇ and ⁇ e k ⁇ can be derived as follows based on the forward kinematics of the mechanism model.
  • ⁇ l′ i ′ , ⁇ M ⁇ f + 1, i ′ , and ⁇ M ⁇ f + 2, i ′ are each element of the minute change ⁇ .
  • ⁇ M ⁇ f + 1, i ′ represents the rotation of the center of gravity of the subject S.
  • i ′ represents the translation of the center of gravity of the subject S.
  • i ′ represents three degrees of freedom of rotation
  • i ′ 0, X, XX.
  • d is the spatial dimension
  • d 3.
  • F is the number of joints that are not movable.
  • the non-movable joint is, for example, a joint (see a joint a0 in FIG. 4) related to the pelvis (see the parts b14 and b15 in FIG. 4).
  • Equations 43, 44 and 45 and Equation 55 are expressed by Equations 43, 44 and 45 and Equation 55, respectively.
  • ⁇ ′ nml′i ′ is a differential of the surface residual for obtaining ⁇ l′ i ′ in the equations 58 and 59 from the above equation 55.
  • ⁇ ′ nm, M ⁇ f + 1, i ′ is a differential of the surface residual for obtaining ⁇ M ⁇ f + 1, i ′ in the equations 58 and 59 from the above equation 55.
  • ⁇ ′ nm, M ⁇ f + 2, i ′ is a derivative of the surface residual for obtaining ⁇ M ⁇ f + 2, i ′ in the equation 58 from the above equation 55. It should be noted that geometric models other than the cylinder can be similarly derived using the above-described surface residual.
  • n is an arbitrary unit vector (fixed vector), and may be a unit vector related to the direction of the distance image sensor 21, for example.
  • ⁇ kl ′ is a Kronecker delta, which is the same as described above.
  • the part numbers in FIG. 10 are as shown in FIG.
  • the numbers of the non-movable pelvis parts are the last two “14” and “15” and are excluded from the row.
  • a row and a column indicate the same part with the same number.
  • the subscript k indicates all parts, and the total number is M.
  • the subscript m indicates the part to be fitted, and the total number is Mh.
  • the subscript l ′ indicates the movable part, and the total number is M ⁇ f.
  • ⁇ c k ⁇ and ⁇ e k ⁇ can be derived by substituting ⁇ l′ i ′ , ⁇ M ⁇ f + 1, i ′ , and ⁇ M ⁇ f + 2, i ′ into Equations 58 and 59. Become. When ⁇ c k ⁇ and ⁇ e k ⁇ are obtained, the position c k ⁇ + ⁇ and the direction e k ⁇ + ⁇ of the part k can be derived based on the update formulas of Formulas 56 and 57.
  • an axially symmetric geometric model such as a cylinder or a trapezoidal column is excluded because the degree of freedom of rotation about the axis is indefinite.
  • an axisymmetric geometric model has two degrees of freedom excluding the degree of freedom around the axis.
  • ⁇ l'0, ⁇ l'X and of the [Delta] [theta] l'XX, [Delta] [theta] except joint rotation [Delta] [theta] l'0 around axis l'X and [Delta] [theta] l'XX only Is calculated.
  • calculation load can be reduced efficiently.
  • it when it is desired to obtain the rotation angle of the actual movable shaft, it can be obtained by conversion using a rotation matrix.
  • FIG. 12 is a schematic flowchart showing an example of the overall operation of the object recognition system 1.
  • the data input unit 110 acquires information indicating a joint model to be used.
  • the data input unit 110 acquires information indicating the joint model illustrated in FIG.
  • the information indicating the joint model may be information indicating the number of joints (number of parts), a connection relationship, a part to be fitted, a movable joint, and the like.
  • step S1202 the data input unit 110 determines whether a predetermined processing end condition is satisfied.
  • the predetermined processing end condition is that processing of all point cloud data to be processed (for example, point cloud data at a plurality of points in time and a series of time series data) is completed. May be satisfied.
  • the predetermined processing end condition may be satisfied when an end instruction is input from the user, or when point cloud data related to the current frame period is not input. If the determination result is “YES”, the process ends as it is, and otherwise, the process proceeds to step S1204.
  • step S1203 the data input unit 110 increments jj by “1”.
  • step S1204 the data input unit 110 acquires the point cloud data relating to the jj-th (that is, the jj-th frame) in time series, which is point cloud data relating to one time point to be processed. For example, when processing in real time, the point cloud data related to the current frame cycle becomes the point cloud data related to one time point to be processed.
  • step S1206 the one-scene skeleton recognition unit 120 performs a one-scene skeleton recognition process based on the point cloud data obtained in step S1204.
  • One scene skeleton recognition processing is as described above.
  • the one-scene skeleton recognition unit 120 determines whether the one-scene skeleton recognition process is successful. Specifically, when the one-scene skeleton recognition unit 120 determines that calibration information (position c k ⁇ 0, orientation e k ⁇ 0, etc.) satisfying the first predetermined criterion is derived in the one-scene skeleton recognition process, It is determined that the scene skeleton recognition process is successful. For example, the one-scene skeleton recognition unit 120 can recognize a predetermined number of parts and the calibration information satisfying the first predetermined standard is obtained when the data sum of the posterior distribution of each part is equal to or greater than a predetermined value Th1. It is determined that it has been derived.
  • calibration information position c k ⁇ 0, orientation e k ⁇ 0, etc.
  • the predetermined number of parts may correspond to all parts (all parts defined by the joint model) except the hidden part. By evaluating the data sum of the posterior distribution of each part, it is possible to generate calibration information when all parts are recognized with high accuracy. If the determination result is “YES”, the process proceeds to step S1210, and otherwise, the process proceeds to step S1212.
  • step S1210 it is determined whether a predetermined processing end condition is satisfied.
  • the predetermined processing end condition may be the same as in step S1202. If the determination result is “YES”, the process ends as it is, and otherwise the process proceeds to step S1212.
  • step S1211 the data input unit 110 increments jj by “1”.
  • step S ⁇ b> 1212 the data input unit 110 acquires point cloud data relating to the jjth point in time series, which is point cloud data relating to one time point to be processed.
  • step S1214 the microfitting processing unit 150 performs a microfitting process based on the calibration information when successful in step S1208 and the point cloud data obtained in step S1212.
  • the point cloud data used here is the point cloud data obtained in step S1212 and relates to a time point (second time point) after the time point (first time point) related to the point cloud data obtained in step S1204.
  • step S1216 the microfitting processing unit 150 determines whether the microfitting process has been successful. Specifically, when it is determined that the position c k ⁇ and the direction e k ⁇ satisfying the second predetermined criterion have been derived by the micro fitting process, the micro fitting processing unit 150 determines that the micro fitting process has been successful. For example, if the total part sum of the data sum of the posterior distribution is greater than or equal to a predetermined value Th2, the minute fitting processing unit 150 determines that the position c k ⁇ and the direction e k ⁇ satisfying the second predetermined criterion have been derived.
  • the minute fitting process can be continued. This is because in microfitting, the missing part is only joint rotation, so that the movement of the subject S is not largely lost.
  • the minute fitting can be estimated from the remaining data if it is a partial defect.
  • step S1210 a minute fitting process based on the point cloud data relating to the next frame is executed. On the other hand, if the determination result is “NO”, the process returns to step S1202, and the one-scene skeleton recognition process is performed again.
  • the minute fitting process can be performed based on the recognition result. it can. Thereby, the processing speed can be increased as compared with the case where the one-scene skeleton recognition process is repeated for each frame. Further, when the recognition accuracy is deteriorated in the subsequent minute fitting process (when the total part sum of the data sum of the posterior distribution becomes less than the predetermined value Th2), the one-scene skeleton recognition process can be performed again. As a result, it is possible to suppress inconvenience caused by continuing the minute fitting process more than necessary, that is, deterioration of recognition accuracy. In this way, according to the processing shown in FIG. 12, it is possible to achieve both improvement in processing speed and securing of highly accurate recognition results.
  • the surface residual calculation unit 151 calculates the surface residual ⁇ nm and the differential ⁇ ′ nm of the surface residual related to the part m.
  • the calculation method of the surface residual ⁇ nm and the differential ⁇ ′ nm of the surface residual is as described above.
  • the calculation of the surface residual ⁇ nm and the surface residual differential ⁇ ′ nm related to the part m depends on the geometric model associated with the part m. For example, in the case where the geometric model is a cylinder, the equations shown in Equations 42 to 45 may be used.
  • step S1304 the posterior distribution calculation unit 152 calculates the posterior distribution p nm related to the part m based on the point cloud data obtained in step S1212 and the surface residual ⁇ nm obtained in step S1302.
  • the calculation method of the posterior distribution p nm is as described above (see Formula 51).
  • step S1306 the finite length processing unit 154 performs finite length processing based on the posterior distribution p nm obtained in step S1304.
  • the finite length processing is as described above (see Formula 52).
  • step S1312 the minute change calculation unit 156 calculates the minute change ⁇ .
  • This calculation can be realized by matrix operation, for example.
  • step S1316 the parameter update unit 158 derives the position c k ⁇ + ⁇ and the direction e k ⁇ + ⁇ based on the minute change ⁇ obtained in step S1312, and the position c k ⁇ and the direction e k ⁇ are derived. Update with k ⁇ + ⁇ and orientation e k ⁇ + ⁇ .
  • the method for deriving the position c k ⁇ + ⁇ and the direction e k ⁇ + ⁇ is as described above.
  • the initial values of the position c k ⁇ and the direction e k ⁇ are the position c k ⁇ 0 and the direction e k ⁇ 0 , and are obtained in the most recent step S1206.
  • M is the total number of all sites as described above.
  • the position c k ⁇ and the direction e k ⁇ can be updated at a relatively high processing speed by using the result of the one-scene skeleton recognition process obtained in step S1206 of FIG. .
  • a processing speed of N times speed can be realized as compared with a case where N iterations are performed for each frame.
  • the process of step S1316 may be realized by parallel processing.
  • the position c k ⁇ can be calculated for only one part because it can be derived for another part if it is obtained for one part. May be.
  • synchronization waiting occurs when the computations of the respective parts are parallelized.
  • both the position c k ⁇ and the direction e k ⁇ are calculated at each part, such a synchronization wait can be avoided.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

3次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第1パラメータであって、第1時点での第1パラメータを導出又は取得し、前記第1時点より後の第2時点での前記点群データと、前記第1時点での前記第1パラメータと、軸を有する幾何モデルとに基づいて、前記第2時点での前記第1パラメータを導出することを含む、コンピュータにより実行される対象物認識方法が開示される。

Description

対象物認識方法、装置、システム、プログラム
 本開示は、対象物認識方法、対象物認識装置、対象物認識システム、及び対象物認識プログラムに関する。
 人など対象物の表面に点在する点群データに基づいて、対象物の骨格を追跡する技術が知られている(例えば、非特許文献1参照)。この技術では、点群データの分布に対し、混合ガウス分布を仮定し、かつ各ガウス分布の中心(特徴点)が対象物の表面に固定されていると仮定し、かかる仮定の下で、フレームごとに、特徴点を追跡することで、対象物の骨格を追跡している。
 しかしながら、上記のような従来技術では、フレームごとに、特徴点のずれを補正する反復計算が必要であるので、計算負荷が比較的高いという問題がある。例えば、上記のような従来技術では、毎フレーム10回以上の反復計算を実施するとすると、GPU(Graphics Processing Unit)を駆使しても30fpsが限度であると予測される。
 そこで、1つの側面では、本発明は、比較的低い計算負荷で対象物の関節又は骨格を精度良く認識することを目的とする。
 本開示の一局面によれば、3次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
 前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第1パラメータであって、第1時点での第1パラメータを導出又は取得し、
 前記第1時点より後の第2時点での前記点群データと、前記第1時点での前記第1パラメータと、軸を有する幾何モデルとに基づいて、前記第2時点での前記第1パラメータを導出することを含む、コンピュータにより実行される対象物認識方法が提供される。
 本開示によれば、比較的低い計算負荷で対象物の関節又は骨格を精度良く認識することが可能となる。
一実施例による対象物認識システムの概略構成を模式的に示す図である。 対象物認識装置のハードウェア構成の一例を示す図である。 対象物認識装置の機能の一例を示すブロック図である。 関節モデルの一例の説明図である。 EMアルゴリズム部124による導出結果を模式的に示す図である。 長さ算出部128による半値全幅による決定方法の説明用の概略フローチャートである。 対象物認識システム1の全体動作の一例を示す概略フローチャートである。 部位認識処理の一例を示す概略フローチャートである。 対象物認識システムによる処理の説明図である。 対象物認識システムによる処理の説明図である。 χkl'の説明図である。 χkl'の説明のための部位へ番号の割り当て例を示す図である。 全体動作の一例の概略フローチャートである。 微小フィッティング処理の一例の概略フローチャートである。
 以下、添付図面を参照しながら各実施例について詳細に説明する。本明細書において、特に言及しない限り、「あるパラメータ(例えば後述のパラメータθ)を導出する」とは、「該パラメータの値を導出する」ことを意味する。
 図1は、一実施例による対象物認識システム1の概略構成を模式的に示す図である。図1には、説明用に、対象者S(対象物の一例)が示されている。
 対象物認識システム1は、距離画像センサ21と、対象物認識装置100とを含む。
 距離画像センサ21は、対象者Sの距離画像を取得する。例えば、距離画像センサ21は、3次元画像センサであり、空間全体のセンシングを行って距離を計測し、デジタル画像のように画素毎に距離情報を持つ距離画像(点群データの一例)を取得する。距離情報の取得方式は任意である。例えば、距離情報の取得方式は、特定のパターンを対象に投影してそれをイメージセンサで読み取り、投影パターンの幾何学的な歪みから三角測量の方式により距離を取得するアクティブステレオ方式であってもよい。また、レーザー光を照射してイメージセンサで反射光を読み取り、その位相のずれから距離を計測するTOF(Time-of-Flight)方式であってもよい。
 尚、距離画像センサ21は、位置が固定される態様で設置されてもよいし、位置が可動な態様で設置されてもよい。
 対象物認識装置100は、距離画像センサ21から得られる距離画像に基づいて、対象者Sの関節や骨格を認識する。この認識方法については、後で詳説する。対象者Sは、人や人型のロボットであり、複数の関節を有する。以下では、一例として、対象者Sは、人であるものとする。対象者Sは、用途に応じて、特定の個人であってもよいし、不特定の人であってもよい。例えば、用途が体操等の競技時の動きの解析である場合、対象者Sは、競技選手であってよい。尚、用途が、体操やフィギュアスケート等の競技時のような激しい動き(高速かつ複雑な動作)を解析する場合、距離画像センサ21は、好ましくは、図1に模式的に示すように、対象者Sの3次元形状に近い点群データが得られるように、複数個設置される。
 対象物認識装置100は、距離画像センサ21に接続されるコンピュータの形態で実現されてもよい。対象物認識装置100と距離画像センサ21との接続は、有線による通信路、無線による通信路、又はこれらの組み合わせで実現されてよい。例えば、対象物認識装置100が距離画像センサ21に対して比較的遠隔に配置されるサーバの形態である場合、対象物認識装置100は、ネットワークを介して距離画像センサ21に接続されてもよい。この場合、ネットワークは、例えば、携帯電話の無線通信網、インターネット、World Wide Web、VPN(virtual private network)、WAN(Wide Area Network)、有線ネットワーク、又はこれらの任意の組み合わせ等を含んでもよい。他方、対象物認識装置100が距離画像センサ21に対して比較的近傍に配置される場合、無線による通信路は、近距離無線通信、ブルーツース(登録商標)、Wi-Fi(Wireless Fidelity)等により実現されてもよい。また、対象物認識装置100は、異なる2つ以上の装置(例えばコンピュータやサーバ等)により協動して実現されてもよい。
 図2は、対象物認識装置100のハードウェア構成の一例を示す図である。
 図2に示す例では、対象物認識装置100は、制御部101、主記憶部102、補助記憶部103、ドライブ装置104、ネットワークI/F部106、入力部107を含む。
 制御部101は、主記憶部102や補助記憶部103に記憶されたプログラムを実行する演算装置であり、入力部107や記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。制御部101は、例えばCPU(Central Processing Unit)やGPUを含んでよい。
 主記憶部102は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部101が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
 補助記憶部103は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
 ドライブ装置104は、記録媒体105、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
 記録媒体105は、所定のプログラムを格納する。この記録媒体105に格納されたプログラムは、ドライブ装置104を介して対象物認識装置100にインストールされる。インストールされた所定のプログラムは、対象物認識装置100により実行可能となる。
 ネットワークI/F部106は、有線及び/又は無線回線などのデータ伝送路により構築されたネットワークを介して接続された通信機能を有する周辺機器と対象物認識装置100とのインターフェースである。
 入力部107は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、マウスやスライスパット等を有する。入力部107は、音声入力やジェスチャー等の他の入力方法に対応してもよい。
 尚、図2に示す例において、以下で説明する各種処理等は、プログラムを対象物認識装置100に実行させることで実現することができる。また、プログラムを記録媒体105に記録し、このプログラムが記録された記録媒体105を対象物認識装置100に読み取らせて、以下で説明する各種処理等を実現させることも可能である。なお、記録媒体105は、様々なタイプの記録媒体を用いることができる。例えば、CD-ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体105には、搬送波は含まれない。
 図3は、対象物認識装置100の機能の一例を示すブロック図である。
 対象物認識装置100は、データ入力部110(取得部の一例)と、1シーン骨格認識部120(パラメータ導出/取得部の一例)と、幾何モデルデータベース140(図3では、"幾何モデルDB"と表記)とを含む。また、対象物認識装置100は、キャリブレーション情報記憶部142と、微小フィッティング処理部150(導出処理部の一例)と、出力部160とを含む。データ入力部110、1シーン骨格認識部120、微小フィッティング処理部150、及び出力部160は、図2に示す制御部101が主記憶部102に記憶された1つ以上のプログラムを実行することで実現できる。幾何モデルデータベース140は、図2に示す補助記憶部103により実現されてよい。また、キャリブレーション情報記憶部142は、図2に示す主記憶部102(例えばRAM)により実現されてよい。尚、対象物認識装置100の機能の一部は、距離画像センサ21に内蔵されうるコンピュータにより実現されてもよい。
 データ入力部110には、距離画像センサ21から距離画像(以下、「点群データ」と称する)が入力されるとともに、使用する関節モデルが入力される。点群データは、上述のとおりであり、例えばフレーム周期毎に入力されてよい。また、複数の距離画像センサ21が用いられる場合は、点群データは、複数の距離画像センサ21からの距離画像の集合を含んでよい。
 使用する関節モデルは、対象者Sに係る任意のモデルであり、例えば、複数の関節と、関節間の骨格(リンク)とで表されるモデルである。本実施例では、一例として、図4に示すような関節モデルが用いられる。図4に示すような関節モデルは、頭部が1つ、胴部(胴体部)、両腕部、及び両脚部がそれぞれ3つの関節を持つ16関節モデルであり、頭部は両端が関節として規定され、その他は両端及び中点の3つが関節として規定される。具体的には、16個の関節a0~a15と、関節間を繋ぐ15個の骨格b1~b15(又は「部位b1~b15」とも称する)とからなる。尚、理解できるように、例えば関節a4,a7は、左右の肩の関節であり、関節a2は、頸椎に係る関節である。また、関節a4,a7は、左右の股関節であり、関節a0は、腰椎に係る関節である。このような関節モデルでは、股関節に係る骨格b14、b15や、肩の関節に係る骨格b4、b7は、後述の幾何モデルを用いたフィッティングだけでは精度良く認識できない骨格(以下、「隠れた骨格」とも称する)となる。また、以下の説明において、関節や部位に関する位置関係について、「祖先」とは、体の中心に近い側を指し、「子孫」とは、体の中心から遠い側を指す。
 1シーン骨格認識部120は、ある一時点(一シーン)に係る対象者Sの点群データに基づいて、1シーン骨格認識処理を行う。1シーン骨格認識処理は、ある一時点(一シーン)に係る対象者Sの点群データに対して、幾何モデルを用いたフィッティングを行うことで、フィッティング結果であるキャリブレーション情報を生成することを含む。幾何モデルを用いたフィッティングの方法は、キャリブレーション情報の生成方法とともに後述する。以下では、1シーン骨格認識部120によってキャリブレーション情報が生成される時点を、「キャリブレーション実施時点」と称する。キャリブレーション実施時点は、初回の1時点であってもよいし、所定時間ごとや、所定の条件が成立する場合に到来してもよい。
 1シーン骨格認識部120は、キャリブレーション情報を生成すると、生成したキャリブレーション情報をキャリブレーション情報記憶部142に記憶する。
 尚、1シーン骨格認識部120での処理は、後述の微小フィッティング処理部150での処理に比べて処理負荷が有意に高い。従って、対象物認識装置100の処理能力に依存するが、キャリブレーション情報の生成には、フレーム周期よりも長い時間がかかる場合もあり得る。この場合は、微小フィッティング処理部150による処理が開始できる状態となるまで(即ちキャリブレーション情報の生成が完了するまで)、対象者Sに、しばらく静止してもらう等の措置が取られてよい。
 微小フィッティング処理部150は、キャリブレーション実施時点以後のある一時点(一シーン)に係る対象者Sの点群データと、キャリブレーション情報記憶部142内のキャリブレーション情報とに基づいて、対象者Sの骨格情報を生成する。微小フィッティング処理部150は、幾何モデルを用いた微小フィッティング処理により、対象者Sの骨格情報を生成する。微小フィッティング処理の方法は後述する。骨格情報は、関節a0~a15の各位置を特定できる情報を含んでもよい。また、骨格情報は、骨格b1~b15の位置や、向き、太さを特定できる情報を含んでもよい。骨格情報の用途は任意であるが、次のフレーム周期における同骨格情報の導出に利用されてもよい。また、骨格情報は、最終的には、体操等の競技時の対象者Sの動きの解析に利用されてもよい。例えば体操の競技時の対象者Sの動きの解析では、骨格情報に基づく技の認識が実現されてもよい。また、他の用途としては、作業者を想定する対象者Sの動きを解析して、ロボットプログラムに利用されてもよい。或いは、ジェスチャーによるユーザインターフェースや、個人の識別、熟練技術の定量化などに利用することもできる。
 出力部160は、表示装置等(図示せず)に、対象者Sの骨格情報(図3では、"認識結果"と表記)を出力する。例えば、出力部160は、フレーム周期ごとに、略リアルタイムに、対象者Sの骨格情報を出力してもよい。この場合、キャリブレーション実施時点では、出力部160は、キャリブレーション情報に基づく対象者Sの骨格情報を出力し、非キャリブレーション実施時点では、微小フィッティング処理部150からの対象者Sの骨格情報を出力してもよい。或いは、対象者Sの動きの解説用などでは、出力部160は、非リアルタイムで、骨格情報を時系列に出力してもよい。
 本実施例によれば、上述のように、1シーン骨格認識部120による幾何モデルを用いたフィッティング結果(キャリブレーション情報)に基づいて、微小フィッティング処理部150が微小フィッティング処理を行うことで、対象者Sの骨格情報を生成できる。これにより、1シーン骨格認識部120による幾何モデルを用いたフィッティングをフレームごとに実行する場合に比べて、計算負荷が低減するので、比較的低い計算負荷で対象物の関節又は骨格を精度良く認識できる。これにより、体操やフィギュアスケートなど、高速かつ複雑な動作の解析等にも適用可能となる。
 以下、1シーン骨格認識部120、及び,微小フィッティング処理部150について、順に更に説明する。
 [1シーン骨格認識部]
 1シーン骨格認識部120は、クラスタリング部122と、EMアルゴリズム部124と、モデル最適化部126と、長さ算出部128とを含む。また、対象物認識装置100は、更に、部位認識部130と、骨格整形部132と、キャリブレーション情報生成部134とを含む。
 クラスタリング部122は、データ入力部110に入力される点群データをクラスタリングして、クラスター毎にフィッティングを行って初期あてはめ結果(後述の幾何モデルを用いたフィッティングに用いる初期値)を取得する。クラスタリング手法としては、Kmeans++法などを用いることができる。尚、クラスタリング部122に与えられるクラスター数は、手動による入力でもよいが、骨格モデルに応じた所定数が用いられてもよい。骨格モデルに応じた所定数は、例えば、骨格モデルに係る部位の総数から、隠れた骨格に係る部位の数を引いた値である。即ち、図4に示す16関節(15部位)モデルの場合、4部位が隠れた骨格となるため、最初のクラスター数である所定数は"11"である。この場合、クラスタリングによるフィッティング結果に応じて、モデルの一部が棄却される。棄却方法としては、モデルで説明できる点群データの数の期待値である事後分布のデータ和に対して閾値を設定し、閾値以下のモデルを棄却する方法が用いられてよい。棄却数が決まると、クラスタリング部122は、再びそのクラスター数でフィッティングを行うことで、後述の幾何モデルを用いたフィッティングに用いる初期値を得ることができる。
 尚、変形例では、クラスタリング部122に代えて、機械学習部が用いてフィッティングに用いる初期値が取得されてもよい。この場合、機械学習部は、データ入力部110に入力される点群データに基づいて、15部位についてラベル分け(部位認識)を行う。機械学習方式としてランダムフォレストを用い、特徴量として注目画素と周辺画素の距離値の差が使用されてもよい。また、距離画像を入力として各画素のマルチクラス分類(Multi-class Classification)を行う方式であってもよい。また、ランダムフォレストの場合でも距離値の差以外の特徴量を使ってもよいし、特徴量に相当するパラメータも含めて学習を行う深層学習(Deep Learning)を用いてもよい。
 EMアルゴリズム部124は、データ入力部110に入力される点群データと、幾何モデルデータベース140内の幾何モデルと、クラスタリング部122で得たフィッティングの初期値とに基づいて、EMアルゴリズムによりパラメータθを導出する。クラスタリング部122で得たフィッティングの初期値を用いるのは、EMアルゴリズムではある程度、解に近い初期値を与えることが有用であるためである。初期値は、部位数Mや、後述のパラメータθに係る初期値である。幾何モデルデータベース140内の幾何モデルは、例えば円柱であり、以下では、主に円柱である場合について説明する。他の幾何モデルの可能性は後述する。
 EMアルゴリズム部124は、点群データxが幾何モデルの表面に最も集まるようパラメータθを決定する。点群データxは、3次元の空間座標(x,y,z)で表現されるN個の各点(例えば位置ベクトル)の集合(x、x、・・・、x)である。この場合、例えば空間座標のx成分及びy成分は、画像平面内の2次元座標の値であり、x成分は、水平方向の成分であり、y成分は、垂直方向の成分である。また、z成分は、距離を表す。
 パラメータθは、部位m(m=1,2、・・・、M')に係る幾何モデル(ここでは円柱)の太さ(径)r、部位mに係る幾何モデルの位置c と向きe 、及び、分散σの4つある。尚、部位mとは、幾何モデルごとの点群データの部位(一部)であり、幾何モデル及びそれに伴い対象者Sの部位に対応付けられる部位である。部位mは、対象者Sの2部位に同時に対応付けられる場合もある。例えば、対象者Sが肘を伸ばしている状態では、肘の関節から手首の関節(子孫側の関節)までの部位(図4の部位b6や部位b9)と、肘の関節から肩の関節(先祖側の関節)までの部位(図4の部位b5や部位b8)とが一の部位mとなりうる。
 r及びσは、スカラーであり、c 及びe は、ベクトルである。また、e は、単位ベクトルとする。即ち、e は、円柱の軸の向きを表す単位ベクトルである。また、位置c は、円柱の軸上の、任意の点の位置に係る位置ベクトルである。尚、円柱の軸方向の長さ(高さ)は不定とされる。また、幾何モデルの向きe は、幾何モデルの軸方向と同じ概念である。
 点群データxと部位mの表面残差ε(x,θ)(表面に垂直な方向の差)がガウス分布であることを仮定すると、幾何モデル全体は以下の通り表現できる。
Figure JPOXMLDOC01-appb-M000001

ここで、p(x)は、点群データxの混合確率分布モデルであり、上述のように、σは、分散であり、M'は、クラスタリング部122で得たクラスタ数が用いられる。このとき、対応する対数尤度関数は、以下のとおりである。
Figure JPOXMLDOC01-appb-M000002

ここで、Nは、データ数(1フレームに係る点群データに含まれるデータ数)である。
 数2は、混合ガウスモデルの対数尤度関数であるため、EMアルゴリズム等を用いることができる。本実施例では、EMアルゴリズム部124は、EMアルゴリズムに基づいて、対数尤度関数を最大化するパラメータθ及び分散σを導出する。
 部位mに係る幾何モデルが円柱であるとき、表面残差ε(x,θ)は、次の通り表現できる。尚、ベクトル間の符号"×"は外積を表す。
ε(x,θ)=|(x-e )×e |-r
但し、本実施例では、線形化のため、表面残差ε(x,θ)は、数2の中での指数部分が二乗の差となるように表現され、具体的には以下のとおりである。
Figure JPOXMLDOC01-appb-M000003

 EMアルゴリズムは、知られているように、期待値を算出するEステップと、期待値を最大化するMステップの繰返しである。
 Eステップでは、EMアルゴリズム部124は、以下の事後分布pnmを計算する。
Figure JPOXMLDOC01-appb-M000004

 Mステップでは、EMアルゴリズム部124は、以下の期待値Q(θ,σ)を最大化するパラメータθ及び分散σを導出する。尚、Mステップでは、事後分布pnmは定数として扱われる。
Figure JPOXMLDOC01-appb-M000005

ここで、Pは、事後分布pnmのデータ和の全部位の和(以下、「事後分布pnmのデータ和の全部位和」とも称する)であり、以下のとおりである。
Figure JPOXMLDOC01-appb-M000006

期待値Q(θ,σ)の分散σによる偏微分から、期待値Q(θ,σ)を最大化する分散σの推定値σ は、以下のとおりである。
Figure JPOXMLDOC01-appb-M000007

この推定値σ を数5の式に代入すると、以下のとおりである。
Figure JPOXMLDOC01-appb-M000008

パラメータθの各要素(r、c 、及びe )に関して、太さrの推定値r*mは、以下の通り、直接的に最小化が可能である。
Figure JPOXMLDOC01-appb-M000009

ここで、数9における表現〈〉について、事後分布pnmを用いた平均操作であり、任意のテンソルないし行列Anmに対して、以下の通りとする。
Figure JPOXMLDOC01-appb-M000010

向きe の推定値e*m は、点群データの主成分であることに着目すると、主成分分析に基づいて導出できる。即ち、向きe の推定値e*m は、以下の分散共分散行列σxxの最も固有値の大きい固有ベクトルの向きとして求めることができる。
Figure JPOXMLDOC01-appb-M000011

尚、数10に示す平均操作により、mについては和をとっていない。従って、〈xは、部位mに対する依存性を有し、部位mに係る幾何モデル(円柱)の重心(中心)に対応する。同様に、分散共分散行列σxxも部位mに固有であり、部位mに係る幾何モデル(円柱)の向きに対応する。
或いは、期待値Q(θ,σ)は、パラメータθの各要素(r、c 、及びe )に関して非線形であるので、向きe は、線形近似により導出されてもよい。具体的には、微小回転による更新式は、ノルムが保存される態様で規定され、以下のとおりである。
Figure JPOXMLDOC01-appb-M000012

ここで、Δeは、微小回転ベクトルである。このとき、Δeの推定値Δeは、数8の式をΔeで微分することで得られ、以下のとおりである。
Figure JPOXMLDOC01-appb-M000013

ここで、Bの逆行列は、以下の通りであり、
Figure JPOXMLDOC01-appb-M000014

数14におけるWは、以下の通りである。
Figure JPOXMLDOC01-appb-M000015

尚、数14や数15において(以下も同様)、は、転置を表す。数15において、e及びeは、向きe に対して直交する単位ベクトルである。
また、数13におけるanmやbnmは、以下のとおりである(図4に示した関節a0~a15や骨格b1~b15の表記とは無関係である)。
Figure JPOXMLDOC01-appb-M000016
Figure JPOXMLDOC01-appb-M000017

よって、向きe の推定値e*m は、以下の通りである。
Figure JPOXMLDOC01-appb-M000018

 このとき、太さrの推定値r*mを数8の式に代入し、位置c の偏微分から、位置c の推定値c*m は、以下の通り、直接的に導出可能である。
Figure JPOXMLDOC01-appb-M000019

ここで、共分散行列σyyの逆行列、及び、ベクトルσy2y(下付き「yy」)、以下のとおりである。
Figure JPOXMLDOC01-appb-M000020
Figure JPOXMLDOC01-appb-M000021

 尚、上記の場合、EMアルゴリズム部124は、まず、位置c の推定値c*m を求めてから、太さrの推定値r*mを求めることになる。
 尚、変形例では、例えば他の計測によって対象者Sの形状情報を所持している場合などでは、パラメータθのうちの太さrは、ユーザにより手入力されてもよいし、形状情報に基づいて自動的に設定されてもよい。この場合、EMアルゴリズム部124は、パラメータθのうちの残りの要素(位置c 及び向きe )を導出することになる。尚、他の計測は、事前の精密な計測であってもよいし、並行して実行されるものであってもよい。
 モデル最適化部126は、EMアルゴリズム部124が一の部位に対して複数種類の幾何モデルを用いてフィッティングを実行する際、実行した複数種類のうちの、フィッティングの際のあてはまりが最も良好な種類の幾何モデルを導出する。
 複数種類の幾何モデルは、円柱以外の幾何モデルとして、円錐、台形柱、楕円柱、楕円錐、及び台形楕円柱のうちの少なくともいずれか1つに係る幾何モデルを含む。但し、一の部位に係る複数種類の幾何モデルは、円柱を含まなくてもよい。また、一の部位に係る複数種類の幾何モデルは、部位ごとに異なってもよい。また、一部の特定の部位については、複数種類の幾何モデルを用いずに、単一の固定の幾何モデルが使用されてもよい。
 例えば、EMアルゴリズム部124は、まず、円柱の幾何モデルを用いて、各部位に対するフィッテングを行う。次いで、EMアルゴリズム部124は、ある部位に係る幾何モデルを、円柱から他(例えば円錐等)に切り替え、同部位に対するフィッテングを行う。そして、モデル最適化部126は、対数尤度関数の最も大きな幾何モデルを、あてはまりが最も良好な種類の幾何モデルとして選択する。モデル最適化部126は、対数尤度関数の最も大きな幾何モデルに代えて、事後分布のデータ和の全部位和が最も大きな幾何モデルを、あてはまりが最も良好な種類の幾何モデルとして選択してもよい。
 円錐の場合、表面残差ε(x,θ)は、以下の通り表現されてよい。
Figure JPOXMLDOC01-appb-M000022

ここで、位置c は頂点位置に対応し、向きe は、中心軸の単位ベクトルである。また、ベクトルnは、円錐の表面上のある1点における法線ベクトルである。
 台形柱の場合、表面残差ε(x,θ)は、円錐の場合と同様であってよい。即ち台形柱の場合、円錐の一部に対して分布を規定することで表現できる。
 楕円柱の場合、表面残差ε(x,θ)は、以下の通り表現されてよい。
Figure JPOXMLDOC01-appb-M000023

ここで、dは、焦点距離であり、aは、断面の楕円の長軸の長さであり、n 'は、長軸方向の単位ベクトルである。尚、同様に、位置c は軸上の位置に対応し、向きe は、楕円柱の軸(軸方向)の単位ベクトルである。
 また、楕円錐の場合、表面残差ε(x,θ)は、以下の通り表現されてよい。
Figure JPOXMLDOC01-appb-M000024

ここで、ψm1及びψm2は、それぞれ長軸及び短軸方向への傾斜角である。また、同様に、位置c は頂点位置に対応し、向きe は、中心軸の単位ベクトルである。
 また、台形柱と円錐との関係と同様、台形楕円柱の場合、表面残差ε(x,θ)は、楕円錐の場合と同様であってよい。
 ここで、長さが無限として定式化されている円柱や楕円柱などの幾何モデルを用いる場合、Eステップでは、EMアルゴリズム部124は、好ましくは、有限長処理を行う。有限長処理は、点群データxのうちの、所定の条件を満たすデータについてのみ事後分布pnmを算出し、他のデータについては事後分布pnmを0とする処理である。有限長処理は、部位mに無関係なデータの混入を防ぐための処理であり、所定の条件は、部位mに無関係なデータを排除できるように設定される。これにより、実際には関係ないはずの点群データが解析に影響を及ぼすことを抑制できる。所定の条件を満たすデータは、例えば、以下の式を満たすデータであってよい。
Figure JPOXMLDOC01-appb-M000025

ここで、l は、部位mに係る入力長さであり、αはマージン(例えば1.2)である。数25によれば、点群データのうちの、幾何モデルの中心(又は中心位置、以下同じ)からの軸方向の距離が所定距離(=αl )以上のデータに対し、事後分布が0とされる。入力長さl は、手入力することも可能であるし、他の計測によって得られる対象者Sの形状情報に基づいて設定されてもよい。
 長さ算出部128は、長さが無限として定式化されている円柱や楕円柱などの幾何モデルがEMアルゴリズム部124によって利用された場合に、幾何モデルの中心から端部までの長さ(部位mの中心から端部までの長さ)に対応する長さパラメータlを導出する。例えば、長さ算出部128は、部位mの長さパラメータlを、分散共分散行列σxxを用いて以下の通り算出してもよい。
Figure JPOXMLDOC01-appb-M000026

尚、Cは、定数倍の補正値である。
 或いは、長さ算出部128は、部位mの軸方向に沿った点群データの分布態様に基づいて、部位mの長さパラメータlを導出してもよい。具体的には、長さ算出部128は、部位mの長さパラメータlを、半値全幅による決定によって算出してもよい。半値全幅とはデータが多いところと比べて、データ数が半分になるところまでの区間を指す。長さ算出部128は、部位mの「切れ目」を見つけることで長さパラメータを導出する。即ち、長さ算出部128は、部位mを、向きe に係る軸方向を法線とする輪の態様で軸方向に沿って細かく輪切りにして、その中に含まれるデータ数をカウントし、所定の閾値以下になったところを「切れ目」と規定する。具体的には、半値全幅による決定では、所定の閾値は、カウント値の最大値の半分であるが、カウント値の最大値の0.1倍のような半分以外の値であってもよい。
 ここで、図5及び図6を参照して、長さ算出部128による半値全幅による決定方法の一例を具体的に説明する。
 図5は、EMアルゴリズム部124による導出結果(幾何モデルによるフィッティング結果)を模式的に示す図であり、図6は、長さ算出部128による半値全幅による決定方法の説明用の概略フローチャートである。
 図5では、頭部及び胴部がそれぞれ1つずつの円柱でフィッテングされており、両腕部及び両脚部が、それぞれ片方ずつ、1つずつの円柱でフィッテングされている。図5では、対象者Sの腕部が部位mである場合について代表して、部位mの長さパラメータl(l 及びl )の算出方法について説明する。尚、図5に示すように、ここでは、腕部は、肘の関節が伸ばされているため、EMアルゴリズム部124により1つの部位として認識されている(1つの幾何モデルで当てはめられている)。
 ステップS600では、長さ算出部128は、n=1に設定する。nの意義は後述する。
 ステップS602では、長さ算出部128は、点群データxのうちの、次の条件を満たすデータの数をカウントする。
Figure JPOXMLDOC01-appb-M000027

〈x・e は、部位mの中心に対応する。Δlは、輪切りの幅(軸方向e に沿った幅)に対応し、例えば0.01l である。尚、l は、上述のように、部位mに係る入力長さである。Sは、事後分布pnmに対する閾値であり、例えば0.1である。
 ステップS604では、長さ算出部128は、ステップS602で得たカウント数に基づいて、基準値Crefを設定する。例えば、長さ算出部128は、ステップS602で得たカウント数を、基準値Crefとして設定する。
 ステップS606では、nを"1"だけインクリメントする。
 ステップS608では、長さ算出部128は、点群データxのうちの、次の条件を満たすデータの数をカウントする。即ち、長さ算出部128は、Δlだけずらした次の区間において、次の条件を満たすデータの数をカウントする。
Figure JPOXMLDOC01-appb-M000028

 ステップS610では、長さ算出部128は、ステップS608でカウントしたデータ数が、基準値Crefの所定数倍(例えば0.5倍)以下であるか否かを判定する。判定結果が"YES"の場合は、ステップS612に進み、それ以外の場合は、ステップS606からの処理を繰り返す。
 ステップS612では、長さ算出部128は、現在のnの値を用いて、部位mのうちの、中心から子孫側の端部までの長さパラメータl を、nΔlとして算出する。即ち、l =nΔlとして算出する。
 ステップS620~ステップS632では、長さ算出部128は、逆方向(祖先側)に進むことで、同様の考えた方で、図5に示す部位mのうちの、中心から祖先側の端部までの長さパラメータl を算出する。
 尚、変形例として、長さ算出部128は、次の通り、部位mの長さパラメータlを算出してもよい。
Figure JPOXMLDOC01-appb-M000029

ここで、Nは、以下で定義されるnの部分集合であり、ある閾値p thより事後分布pnmが小さいnの集合である。
Figure JPOXMLDOC01-appb-M000030

閾値p thは、例えば、以下の通りである。
Figure JPOXMLDOC01-appb-M000031

これは、部分集合Nは、点群データxのうちの、部位mに属さないデータの集合を表す。従って、長さ算出部128は、部分集合Nのうちの、中心からの距離(数29の|x・e -〈x・e |)が最小となるデータに基づいて、部位mの長さパラメータlを算出していることになる。
 部位認識部130は、部位mのパラメータ(r、c 、及びe )の導出結果と、部位mの長さパラメータlの導出結果とに基づいて、部位認識処理を行う。部位認識処理は、部位mと対象者Sの各部位(図4の各部位b1~b15参照)との対応関係を認識することを含む。
 ここで、部位mの長さパラメータlの導出結果及びc 及びe の導出結果によれば、部位mの中心(=〈x・e )からの長さパラメータl 、l に基づいて、部位mの軸上の端部(長さパラメータlを決める端部)の位置を導出できる。具体的には、部位mの軸上の端部の位置ξ は、以下を満たす。
Figure JPOXMLDOC01-appb-M000032

このとき、数32の右辺第2項は、祖先側の端部と、子孫側の端部とで以下の通りとなる。
Figure JPOXMLDOC01-appb-M000033

ここで、l は、上述のように、部位mの中心(=〈x・e )からの子孫側への長さパラメータであり、l は、部位mの中心からの祖先側への長さパラメータであり、上述のように長さ算出部128により算出される。βは、定数であり、例えば1であってよい。
 以下の説明で、「関節点」とは、関節に係る代表点(関節に係る位置を表す点)を指し、このようにして導出できる部位mの端部(位置)も関節点に対応する。また、以下の説明で、部位m*(*は、任意の記号)は、パラメータ(r、c 、及びe )が得られた部位m(m=1,2、・・・、M')のうちの特定の部位を表す。部位認識部130は、太さrを利用して、主部位を識別する。主部位は、太さが最も大きい部位であり、本実施例では、対象者Sの胴部である。
 部位認識部130は、最も太い部位、又は、太さの差が所定値未満でありかつ隣接する2つの1番目と2番目に太い部位を、対象物の主部位として認識する。具体的には、部位認識部130は、1番目に大きい部位m1と2番目に大きい部位m2との間の差が所定値未満である場合は、部位認識部130は、いずれの部位m1、m2も胴部として識別する。所定値は、部位m1、m2の太さの差に対応した適合値である。他方、1番目に大きい部位m1と2番目に大きい部位m2との間の差が所定値以上である場合は、部位認識部130は、1番目に大きい部位m1だけを、胴部(部位b1+部位b2)として識別する。この場合、部位認識部130は、部位mlに対して、「切断フラグ」を設定する。切断フラグの意義は後述する。これにより、例えば、図4において、対象者Sの姿勢に応じて、部位b1及び部位b2が真っ直ぐ伸びている場合でも、部位b1及び部位b2を、部位m1及び部位m2に係る胴部として認識できる。
 部位認識部130は、主部位(胴部)を識別すると、胴部の底面近傍にある関節点を判定(識別)する。胴部の底面に対しては、部位認識部130は、胴部の底面側の端部の位置に設定される微小な円柱(あるいは楕円柱や台形柱など)内に、胴部側の端部の位置が属する2つの部位ml,mrを特定する。尚、微小な円柱の高さは所定の値が使用されてもよい。そして、部位認識部130は、部位ml,mrを、左脚部に係る部位(図4の部位b10又は、部位b10+b11参照)と右脚部に係る部位(図4の部位b12又は、部位b12+b13参照)として認識する。
 部位認識部130は、左脚部に係る部位mlを識別すると、部位mlにおける胴部から遠い側の端部の位置に設定される球(以下、「連結球」とも称する)内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。尚、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位ml2が存在する場合は、部位認識部130は、部位mlを、左脚部の腿b10として認識し、部位ml2を、左脚部の脛b11として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部130は、部位mlを、左脚部の腿と脛の双方を含む部位として認識する。この場合、部位認識部130は、部位mlに対して、「切断フラグ」を設定する。これにより、例えば、図4において、対象者Sの姿勢に応じて、部位b10及びb11が真っ直ぐ伸びている場合でも、部位b10及びb11を、左脚部に係る部位として認識できる。
 同様に、部位認識部130は、右脚部に係る部位mrを識別すると、部位mrにおける胴部から遠い側の端部の位置に設定される球(連結球)内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。尚、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位mr2が存在する場合は、部位認識部130は、部位mrを、右脚部の腿b12として認識し、部位mr2を、右脚部の脛b13として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部130は、部位mrを、右脚部の腿と脛の双方を含む部位として認識する。この場合、部位認識部130は、部位mrに対して、「切断フラグ」を設定する。これにより、例えば、図4において、対象者Sの姿勢に応じて、部位b12及びb13が真っ直ぐ伸びている場合でも、部位b12及びb13を、右脚部に係る部位として認識できる。
 また、部位認識部130は、主部位(胴部)を識別すると、胴部の側面近傍にある関節点を判定(識別)する。部位認識部130は、胴部の軸方向(主軸)の側面にあり、かつ頭部側の面から最も近い2関節点を左右の腕部の根本の関節点(肩の関節に係る関節点)として識別する。例えば、部位認識部130は、胴部の側面における薄いトーラス(円柱に係るトーラス)内に含まれる関節点を、腕部の根本の関節点として識別する。尚、トーラスの厚さなどは所定の値が使用されてもよい。そして、部位認識部130は、左右の腕部の根本の関節点を含む部位mlh,mrhを、左手に係る部位(図4の部位b5又は、部位b5+b6参照)と右手に係る部位(図4の部位b8又は、部位b8+b9参照)として認識する。
 部位認識部130は、左手に係る部位mlhを識別すると、部位mlhにおける胴部から遠い側の端部の位置に設定される球(連結球)内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。なお、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位mlh2が存在する場合は、部位認識部130は、部位mlhを、左手の上腕部b5として認識し、部位mlh2を、左手の前腕部b6として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部130は、部位mlhを、左手の上腕部と前腕部の双方を含む部位として認識する。この場合、部位認識部130は、部位mlhに対して、「切断フラグ」を設定する。これにより、例えば、図4において、対象者Sの姿勢に応じて、部位b5及びb6が真っ直ぐ伸びている場合でも、部位b5及びb6を、左手に係る部位として認識できる。
 同様に、部位認識部130は、右手に係る部位mrhを識別すると、部位mrhにおける胴部から遠い側の端部の位置に設定される球(連結球)内に、胴部に近い側の端部の位置を有する部位が存在するか否かを判定する。なお、連結球の径は所定の値が使用されてもよい。そして、連結球内に、胴部に近い側の端部の位置を有する部位mrh2が存在する場合は、部位認識部130は、部位mrhを、右手の上腕部b8として認識し、部位mrh2を、右手の前腕部b9として認識する。他方、連結球内に、胴部に近い側の端部の位置を有する部位が存在しない場合は、部位認識部130は、部位mrhを、右手の上腕部と前腕部の双方を含む部位として認識する。この場合、部位認識部130は、部位mrhに対して、「切断フラグ」を設定する。これにより、例えば、図4において、対象者Sの姿勢に応じて、部位b8及びb9が真っ直ぐ伸びている場合でも、部位b8及びb9を、右手に係る部位として認識できる。
 骨格整形部132は、骨格整形処理として、切断処理、結合処理、及び連結処理を行う。
 切断処理は、一の部位を、2つの更なる部位に分離する処理である。分離対象の部位は、部位mのうちの、上述の切断フラグが設定された部位である。尚、切断処理の対象となる部位に係る幾何モデル(即ち上述の切断フラグが設定された部位に係る幾何モデル)は、第1幾何モデルの一例である。切断フラグが設定された部位は、例えば上腕部と前腕部(図4の部位b5及びb6参照)のような、真っ直ぐ伸ばした状態であるときに幾何モデルによる当てはめで一の部位として認識された部位である。切断処理は、このような本来2部位からなる部位を、2つの更なる部位に分離する。パラメータθの各要素(r、c 、及びe )のうち、2つの更なる部位のr及びe は、そのままである。他方、骨格整形部132は、2つの更なる部位のc の間の関節の位置(即ち、切断フラグが設定された部位の中間の関節点)を、数32に従って求める。中間の関節点の場合は、数32の右辺第2項は、以下の通りである。尚、中間の関節点の導出には、c 及びe の導出結果が用いられる。
Figure JPOXMLDOC01-appb-M000034

上述のように、βは、定数であり、例えば1であってよい。β=1の場合は、部位mの中心(=〈x・e )が、本来2部位からなる部位mの中間の関節点を表すことになる。或いは、βは、他の計測によって得られる対象者Sの形状情報に基づいて設定されてもよい。
 このようにして切断処理によれば、部位mが、本来2部位からなる部位を含む場合でも、2つの更なる部位に切断して、3つの関節点を導出できる。従って、例えば脚部が伸ばされて肘や膝が真っ直ぐ伸びている場合でも、切断処理によって3つの関節点を導出できる。
 結合処理は、隠れた骨格で繋がる2つの部位mの位置c 、向きe 、及び長さパラメータlに基づいて、2つの部位mにわたる直線に対応付けれる対象者Sの隠れた骨格を導出する処理である。具体的には、結合処理は、隠れた骨格を、所定の2つの部位mに係る2関節点間を結ぶ直線として生成する処理である。尚、結合処理の対象となる所定の2つの部位mに係る幾何モデルは、第2幾何モデルの一例である。隠れた骨格とは、図4を参照して上述したように、股関節に係る骨格b14、b15や、肩の関節に係る骨格b4、b7がある。股関節に係る骨格b14については、結合処理の対象となる2関節点は、部位b1の底面側の関節点a0と、部位b10の胴部側の関節点a14とが対応する。また、股関節に係る骨格b15については、所定の2関節は、部位b1の底面側の関節点a0と、部位b12の胴部側の関節点a15とが対応する。肩の関節に係る骨格b4については、所定の2関節は、部位b2の頭部側の関節点a2と、部位b5の胴部側の関節点a4とが対応する。肩の関節に係る骨格b7については、所定の2関節は、部位b2の頭部側の関節点a2と、部位b8の胴部側の関節点a7とが対応する。
 このようにして結合処理によれば、関節モデルが隠れた骨格を含む場合でも、結合処理により隠れた骨格(リンクに対応する直線)を導出できる。
 連結処理は、異なる部位に係る幾何モデルから導出できる同じ関節に係る関節点(共通の関節点)を、1つの関節点に統合(連結)する処理である。例えば、連結対象の関節点は、例えば上述した連結球内の2つの関節点(図4の関節a5、a8、a10、a12に係る関節点)である。このような腕部及び脚部に係る連結処理は、切断フラグが設定されない場合に実行される。また、他の連結対象の関節点は、首の関節点に係り、頭部の幾何モデルと胴部の幾何モデルの両方から得られる2つの関節点(図4の関節a2に係る関節点)である。また、他の連結対象の関節点は、太さrが1番目に大きい部位m1と2番目に大きい部位m2とをそれぞれ胴部として識別した場合において、部位m1と部位m2との間の関節点(図4の関節a1に係る関節点)である。即ち、胴部に係る連結処理は、切断フラグが設定されない場合に実行される。
 連結処理は、単にいずれか一方の関節点を選択する処理であってもよい。或いは、2つの関節点の平均値を利用する方法や、2つの関節点に係る2つの部位のうち、事後分布のデータ和が大きい方の部位の値を利用する方法、事後分布のデータ和で重み付けした値を利用する方法などであってもよい。
 骨格整形部132は、骨格整形処理として、好ましくは、更に、対称化処理を行う。対称化処理は、本来実質的に左右対称な部位に対して、パラメータについても左右対称に補正する処理である。本来実質的に左右対称な部位は、例えば左右の腕部や、左右の脚部である。例えば左右の腕部(左右の脚部についても同様)について、骨格整形部132は、パラメータθのうちの太さrと、長さパラメータlについて、事後分布のデータ和の最も大きい方に統一してよい。例えば左脚部に係る事後分布のデータ和が右脚部に係る事後分布のデータ和よりも大きい場合、左脚部に係る太さrと長さパラメータlに、右脚部に係る太さrと長さパラメータlを補正する。これにより、左右の対称性を利用して、太さrや長さパラメータlの精度を高めることができる。
 キャリブレーション情報生成部134は、部位mのパラメータθの導出結果や、部位mの長さパラメータlの導出結果、部位認識部130による部位認識処理結果、骨格整形部132による骨格整形処理結果等に基づいて、キャリブレーション情報を生成する。
 キャリブレーション情報は、対象者Sの全部位に係る部位情報を含む。対象者Sの全部位とは、関節モデルに基づく全部位であり、図4に示す例では、15部位である。以下では、対象者Sの全部位のうちの任意の一部位を、「部位k」と表記する。尚、部位mは、幾何モデルによるフィッティングの対象となる部位である。
 部位情報は、例えば、部位kと対象者Sの各部位(図4の各部位b1~b15参照)との対応関係を表す情報(以下、「部位対応関係情報」と称する)や、部位kの位置、軸方向、長さ、太さ等を含んでよい。本実施例では、一例として、部位情報は、部位対応関係情報と、部位kの位置として部位kの祖先側の関節点の位置c Θ0と、部位kの向きe Θ0と、部位mの長さパラメータlとを含む。位置c Θ0及び向きe Θ0は、ある姿勢Θにおける部位mの位置及び向き(第1パラメータの一例)の初期値を表す。
 部位kの位置c Θ0は、位置c 等に基づいて導出された部位mの祖先側の端部(数32、数33参照)の位置に対応する。切断処理が実行された場合は、切断処理により分離された2つの部位のそれぞれの位置c Θ0は、同様に、当該部位における祖先側の関節点である。例えば脚部に係る部位mに対して切断処理が実行された場合、部位mを2つの分離した部位のうち、腿部に係る部位kの位置c Θ0は、祖先側の関節点である。また、部位mを2つの分離した部位のうち、脛部に係る部位kの位置c Θ0は、祖先側の関節点(即ち部位mの中間の関節点であり、膝に係る関節点)である(数34参照)。また、隠れた骨格に係る部位kの位置c Θ0は、隠れた骨格に対して祖先側で繋がる部位の子孫側の関節点である。例えば、部位b4に対応する部位kの位置c Θ0は、部位b2に対応する部位mの子孫側の関節点a2に対応する。
 向きe Θ0は、向きe をそのまま用いることができる。部位mに対して切断処理が実行された場合も、切断処理により分離された2つの部位のそれぞれの向きe Θ0としては、部位mの向きe が用いられる。隠れた骨格に係る部位kの向きe Θ0は、結合処理により導出される隠れた骨格に係る直線の方向が用いられる。
 また、キャリブレーション情報は、全部位のうちの、隠れた骨格(部位)を除く各部位について、どの部位にどの種類の幾何モデルが使用されたかを表す情報(以下、「使用幾何モデル情報」と幾何モデルを含む。部位mに対して切断処理が実行された場合は、切断処理により分離された2つの部位のそれぞれの幾何モデルは、部位mに対応付けられる幾何モデルである。尚、1種類の幾何モデル(例えば円柱)しか使用されない変形例では、使用幾何モデル情報は不要である。
 本実施例の1シーン骨格認識処理によれば、上述のように、幾何モデルを用いてフィッテングを行って得られる結果に対して、切断処理が実行される。これにより、例えば対象者Sの胴部や腕部、脚部のような、関節で繋がる2つの部位が真っ直ぐに伸ばされている場合でも、該2つの部位を繋ぐ関節を精度良く認識できる。即ち、幾何モデルを用いたフィッテングだけでは一部位としてしか認識できないような状況下(本来は2つの部位が一部位としてしか認識できないような状況下)でも、2つの部位を繋ぐ関節を精度良く認識できる。また、本実施例によれば、上述のように、幾何モデルを用いてフィッテングを行って得られる結果に対して、結合処理が実行される。これにより、幾何モデルを用いたフィッテングだけでは精度良く認識し難い隠れた骨格についても精度良く認識できる。このようにして、本実施例によれば、対象者Sの点群データに基づいて、対象者Sの関節又は骨格を精度良く認識できる。
 従って、本実施例によれば、精度の高いキャリブレーション情報を生成でき、この結果、キャリブレーション情報を利用する後述の微小フィッティング処理の精度も高めることができる。
 次に、図7以降の概略フローチャートを参照して、1シーン骨格認識部120の動作例について説明する。
 図7は、1シーン骨格認識部120の全体動作の一例を示す概略フローチャートであり、図8は、部位認識処理の一例を示す概略フローチャートである。図9A及び図9Bは、図7の処理等の説明図である。図9A及び図9Bには、ある一時点(一シーン)に係る点群データxがそれぞれ示されている。
 ステップS700では、データ入力部110に、ある一時点に係る点群データxが入力される。
 ステップS702では、クラスタリング部122は、ステップS700で得た点群データxに基づいて、幾何モデルを用いたフィッティングに用いる初期値を取得する。クラスタリング部122の処理(初期値の取得方法)の詳細は上述のとおりである。
 ステップS704では、EMアルゴリズム部124は、ステップS700で得た点群データxと、ステップS702で得た初期値とに基づいて、EMアルゴリズムのEステップを実行する。EMアルゴリズムのEステップの詳細は上述のとおりである。
 ステップS705では、EMアルゴリズム部124は、j=1に設定する。
 ステップS706では、EMアルゴリズム部124は、j番目の部位j(m=j)について有限長処理を行う。有限長処理の詳細は上述のとおりである。
 ステップS708では、EMアルゴリズム部124は、ステップS704で得たEステップの結果と、ステップS706で得た有限長処理結果とに基づいて、j番目の部位j(m=j)についてEMアルゴリズムのMステップを実行する。EMアルゴリズムのMステップの詳細は上述のとおりである。
 ステップS710では、EMアルゴリズム部124は、未処理部位が有るか否か、即ちj<M'であるか否かを判定する。未処理部位が有る場合は、ステップS711を経て、ステップS706からの処理を繰り返す。未処理部位が無い場合は、ステップS712に進む。
 ステップS711では、EMアルゴリズム部124は、jを"1"だけインクリメントする。
 ステップS712では、EMアルゴリズム部124は、収束したか否かを判定する。収束条件としては、例えば、対数尤度関数が所定の値以下であることや、対数尤度関数の移動平均が所定の値以下であることなどが使用されてもよい。
 ステップS714では、モデル最適化部126は、モデル最適化処理を行う。例えば、モデル最適化部126は、今回の使用した幾何モデルに係る事後分布のデータ和の全部位和を算出する。そして、事後分布のデータ和の全部位和が所定基準値未満である場合は、EMアルゴリズム部124に幾何モデルの変更を指示して、ステップS704からステップS712の処理を再度実行させる。或いは、モデル最適化部126は、今回の使用した幾何モデルに係る事後分布のデータ和の全部位和の如何にかかわらず、EMアルゴリズム部124に幾何モデルの変更を指示して、ステップS704からステップS712の処理を再度実行させる。この場合、モデル最適化部126は、事後分布のデータ和の全部位和が最も大きな幾何モデルを、あてはまりが最も良好な種類の幾何モデルとして選択する。
 ステップS714までの処理が終了すると、図9Aに示すように、点群データxに対して当てはめられた複数の幾何モデルに係るパラメータθ(r、c 、及びe )が得られる。図9Aに示す例では、点群データxに対して当てはめられた6つの幾何モデルM1~M6が概念的に示される。幾何モデルM1は、対象者Sの頭部に係る幾何モデルであり、幾何モデルM2は、対象者Sの胴部に係る幾何モデルであり、幾何モデルM3及びM4は、対象者Sの両腕部に係る幾何モデルであり、幾何モデルM5及びM6は、対象者Sの両脚部に係る幾何モデルである。図9Aに示す例では、幾何モデルM1~M6は、全て円柱である。
 ステップS716では、長さ算出部128は、点群データxと、ステップS714までの処理で得られるパラメータθとに基づいて、各幾何モデル(幾何モデルM1~M6参照)の長さパラメータlを導出する。長さパラメータlを導出することは、上述のように、部位mの中心に対して、長さパラメータl 及び長さパラメータl を導出することを含む。
 ステップS718では、部位認識部130は、部位認識処理を行う。部位認識処理は、上述のとおりであるが、一例の手順については、図8を参照して後述する。
 ステップS720では、骨格整形部132は、ステップS718で得た部位認識処理結果等に基づいて、切断処理、結合処理、及び連結処理を行う。骨格整形部132は、切断フラグが設定された部位については切断処理を行う。切断処理の詳細は上述のとおりである。また、結合処理は、上述のとおりであり、股関節に係る骨格b14、b15や、肩の関節に係る骨格b4、b7に係る各直線を導出することを含む。また、連結処理の詳細は上述のとおりである。
 ステップS720までの処理が終了すると、図9Bに概念的に示すように、切断処理に係る各関節の位置や、隠れた骨格等が導出される。
 ステップS722では、骨格整形部132は、ステップS704~ステップS712で得られる事後分布のデータ和に基づいて、対称化処理を行う。対称化処理の詳細は上述のとおりである。
 ステップS722では、キャリブレーション情報生成部134は、今回周期でのステップS704乃至ステップS722の処理結果に基づいて、キャリブレーション情報を生成する。キャリブレーション情報の生成方法は上述のとおりである。
 続いて、ステップS718における部位認識処理を図8を参照して説明する。
 ステップS800では、部位認識部130は、太さrについて、1番目と2番目に太い部位の差が所定値以上であるか否かを判定する。判定結果が"YES"の場合は、ステップS802に進み、それ以外の場合は、ステップS804に進む。
 ステップS802では、部位認識部130は、太さrが1番目に大きい部位m1を胴部(真っ直ぐ伸びた胴部)として識別し、部位m1に対して切断フラグを設定する。例えば、図9Aに示す例では、幾何モデルM2が対応付けられる部位は、2番目に太い部位との差が所定値以上である1番目に太い部位m1となり、切断フラグが設定されることになる。尚、このようにして部位m1に切断フラグが設定されると、図7のステップS720にて部位m1に対して切断処理が実行されることになる。
 ステップS804では、部位認識部130は、太さrが1番目に大きい部位m1と2番目に大きい部位m2とを、胴部として識別する。
 ステップS806では、部位認識部130は、頭部を認識する。例えば、部位認識部130は、部位m1の上面近傍の部位mhを、頭部として認識する。例えば図9Aに示す例では、幾何モデルM1が対応付けられる部位が頭部として認識されることになる。
 ステップS808では、部位認識部130は、胴部の底面近傍に左右の脚部を認識する。即ち、部位認識部130は、上述のように、胴部の底面近傍に左右の2関節点を各脚部の根本の関節点として識別し、該2関節点を有する部位ml,mrを、左右の脚部に係る部位と認識する。
 ステップS810では、部位認識部130は、ステップS808で認識した左右の脚部に係る部位ml,mrの末端側(胴部から遠い側)に、他の部位ml2,mr2に係る関節点が存在するか否かを判定する。この際、部位認識部130は、左右の脚部についてそれぞれ別に判定する。判定結果が"YES"の場合は、ステップS812に進み、それ以外の場合は、ステップS814に進む。
 ステップS812では、部位認識部130は、ステップS808で認識した左右の脚部に係る部位ml,mrを、腿部として認識するとともに、ステップS810で認識した他の部位ml2,mr2を、脛部として認識する。尚、この場合、図7のステップS720にて、部位ml,ml2に対して連結処理が実行され、部位mr,mr2に対して連結処理が実行されることになる。
 ステップS814では、部位認識部130は、ステップS808で認識した左右の脚部に係る部位ml,mrを、真っ直ぐ伸びた脚部であると認識し、部位ml,mrに対して切断フラグを設定する。尚、このようにして部位ml,mrに切断フラグが設定されると、図7のステップS720にて部位ml,mrに対してそれぞれ切断処理が実行されることになる。
 ステップS816では、部位認識部130は、胴部の上側(脚部から遠い側)の左右の側面に左右の腕部を認識する。即ち、部位認識部130は、上述のように、胴部の側面における薄いトーラス内に含まれる2関節点を各腕部の根本の関節点として識別し、該2関節点を有する部位mlh,mrhを、左右の腕部に係る部位と認識する。
 ステップS818では、部位認識部130は、ステップS808で認識した左右の腕部に係る部位mlh,mrhの末端側(胴部から遠い側)に、他の部位mlh2,mrh2に係る関節点が存在するか否かを判定する。この際、部位認識部130は、左右の腕部についてそれぞれ別に判定する。判定結果が"YES"の場合は、ステップS820に進み、それ以外の場合は、ステップS822に進む。
 ステップS820では、部位認識部130は、ステップS816で認識した左右の腕部に係る部位mlh,mrhを上腕部として認識するとともに、ステップS818で認識した他の部位mlh2,mrh2を、前腕部として認識する。尚、この場合、図7のステップS720にて、部位mlh,mlh2に対して連結処理が実行され、部位mrh,mrh2に対して連結処理が実行されることになる。
 ステップS822では、部位認識部130は、ステップS816で認識した左右の腕部に係る部位mlh,mrhを、真っ直ぐ伸びた腕部であると認識し、部位mlh,mrhに対して切断フラグを設定する。尚、このようにして部位mlh,mrhに切断フラグが設定されると、図7のステップS720にて部位mlh,mrhに対してそれぞれ切断処理が実行されることになる。
 図7及び図8に示す処理によれば、ある一時点(一シーン)に係る対象者Sの点群データxに基づいて、対象者Sの関節又は骨格を精度良く認識することが可能となる。尚、図7及び図8に示す処理は、フレーム周期ごとに繰り返し実行されてもよいし、次のフレームに対しては、前回のフレームで得たパラメータθ及び分散σや前回のフレームで用いた幾何モデルを利用して、次のフレームに係るパラメータθ等が導出されてもよい。
 尚、上述した1シーン骨格認識処理では、点群データxがすべて幾何モデル表面近傍に存在するとして定式化してきたが、点群データxにはノイズなども含まれる。そのような表面から離れたデータが混入すると、Eステップの事後分布が数値不安定となり正しく計算されない場合がある。そこで、分布p(x)には、以下のように、ノイズ項として一様分布が追加されてもよい。
Figure JPOXMLDOC01-appb-M000035

ここで、uは任意の重みである。このとき、事後分布は以下のように修正される。
Figure JPOXMLDOC01-appb-M000036

ここで、uは、以下の通り定義される。
Figure JPOXMLDOC01-appb-M000037

これにより、分母にuが導入され、数値不安定が解消される。尚、Eステップのみの変更であり、Mステップはそのままでよい。
 [微小フィッティング処理部]
 以下の[微小フィッティング処理部]の説明において用いる記号は、特に言及しない限り、上記の[1シーン骨格認識部]の説明で用いた記号と実質的に同じ意味である。尚、点群データxについては、同じ記号"x"を用いるが、上述のように、微小フィッティング処理部150で用いられる点群データxは、1シーン骨格認識部120で用いる点群データxよりも後の時点(フレーム)で得られるデータである。以下では、1シーン骨格認識部120で用いる点群データxに係る時点を、「第1時点」と称し、微小フィッティング処理部150で用いられる点群データxに係る時点を、「第2時点」と称する。繰り返しになるが、第2時点は、第1時点よりも後であり、ここでは、例えば1フレーム周期に対応する微小時間だけ後であるとする。
 また、以下の[微小フィッティング処理部]の説明において、部位mは、フィッティングの対象の部位である点は、上記の[1シーン骨格認識部]の説明と同じであるが、以下の点だけが異なる。即ち、1シーン骨格認識処理では、部位mは、上述のように、対象者Sの2部位に同時に対応付けられる場合もあるが、以下の微小フィッティング処理では、部位mは、対象者Sの2部位に同時に対応付けられることはない。従って、[微小フィッティング処理部]の説明において、部位mとは、図4に示す関節モデルの場合、15部位のうちの、隠れた骨格(部位)を除く各部位に1対1で対応する。
 微小フィッティング処理部150は、上述のように、1シーン骨格認識部120で生成されるキャリブレーション情報を利用して、微小フィッティング処理を行う。以下では、上記のパラメータθに関連するパラメータであって、対象者Sの関節(関節回転)、対象者Sの重心の回転及び並進を表すパラメータを、「変形パラメータθar」と称する。また、キャリブレーション情報は、上述のように使用幾何モデル情報(1シーン骨格認識処理で各部位に対して利用された幾何モデルを表す情報)を含む。微小フィッティング処理では、キャリブレーション情報が得られたときに利用される幾何モデルが引き継き利用される。例えば、キャリブレーション情報の生成の際に、ある部位に対して円柱が用いられた場合、微小フィッティング処理でも、該部位に対して円柱が用いられる。
 微小フィッティング処理部150は、図3に示すように、表面残差算出部151と、事後分布算出部152と、有限長処理部154と、分散更新部155と、微小変化算出部156と、パラメータ更新部158とを含む。
 表面残差算出部151は、表面残差εnm及び表面残差の微分ε'nmを算出する。微小フィッティングでは、上述の1シーン骨格認識処理と同様、点群データxと部位mの表面残差ε(xar)(表面に垂直な方向の差)がガウス分布であることが仮定される。具体的には、以下のとおりである。
Figure JPOXMLDOC01-appb-M000038

ここで、Mは、関節モデルの全部位数(隠れた部位を含む全部位の総数)であり、図4に示す関節モデルでは、"15"である。従って、Mは、1シーン骨格認識部120で用いられるM'とは異なり得る。hは、隠れた骨格(部位)(第2部位の一例)の数であり、図4に示す関節モデルでは、"4"である。「M-h」を用いるのは、フィッティングに寄与しない部位を除外するためである。即ち、M-hは、微小フィッティング処理でフィッティング対象となる部位(第1部位の一例)の数である。1シーン骨格認識部120で用いられる「M'」に代えて、「M-h」を用いるのは、常にM'=M-hとなるとは限らないためである。また、固定値「M-h」とできるのは、微小フィッティング処理では、1シーン骨格認識処理とは異なり、手や脚などが真っ直ぐに伸びた状態でも、各部位を追跡できるためである。このとき、対応する対数尤度関数は、以下のとおりである。
Figure JPOXMLDOC01-appb-M000039

 表面残差εnm、及び、表面残差の微分ε'nmは、以下の通り定義される。尚、θarは、変形パラメータである。
Figure JPOXMLDOC01-appb-M000040

尚、[微小フィッティング処理部]の説明においては、表現〈〉については、同様に事後分布pnmを用いた平均操作であるが、「M'」と「M-h」との相違に関連して、任意のテンソルないし行列anmに対して、以下の通りとする。
Figure JPOXMLDOC01-appb-M000041

 幾何モデルが円柱の場合、表面残差は、例えば以下の通り表現されてよい。ここで、位置c Θ及び向きe Θは、ある姿勢Θにおける部位mの位置及び向きを表す。尚、位置c Θは、既に定義したとおり、部位mの祖先側の関節点の位置である。
Figure JPOXMLDOC01-appb-M000042

尚、数42では右辺が二乗同士の差となっていないが、上記の数3のように二乗の項が使用されてもよい。尚、1シーン骨格認識処理では、指数部分を二乗の差とすることで式が線形化されている。
このとき、表面残差の微分は、以下のとおりである。
Figure JPOXMLDOC01-appb-M000043
Figure JPOXMLDOC01-appb-M000044
Figure JPOXMLDOC01-appb-M000045

ここで、添字l'は、可動部位を指し、総数はM-f(例えば13)である。ε'nml'i'は、可動部位に関する表面残差の微分であり、ε'nm,M-f+1,i'は、対象者Sの重心の回転に関する表面残差の微分であり、ε'nm,M-f+2,i'は、対象者Sの重心の並進に関する表面残差の微分である。
 δml'は、クロネッカーのデルタであり、以下のとおりである。
Figure JPOXMLDOC01-appb-M000046

また、χml'は、以下のとおりである。
Figure JPOXMLDOC01-appb-M000047

χml'は、部位mと部位l'(l'=1,2、・・・、13)との祖先・子孫関係を表すパラメータであり、祖先・子孫関係を表すパラメータについては、部位kと部位l'とに関連して、図10及び図11を参照して後述する。尚、祖先・子孫関係は、キャリブレーション情報に含まれる部位対応関係情報に基づいて判断できる。
 円錐の場合、表面残差ε(xar)は、以下の通り表現されてよい。尚、円錐(楕円錐の場合も同様)では、位置c Θは、ある姿勢Θにおける頂点位置に対応し、ある姿勢Θにおける向きe Θは、中心軸の単位ベクトルである。
Figure JPOXMLDOC01-appb-M000048

ベクトルnは、数22に関して上述した通りである。台形柱の場合、円錐の場合と同様であってよい。また、楕円柱の場合、表面残差ε(xar)は、以下の通り表現されてよい。
Figure JPOXMLDOC01-appb-M000049

等は、数23に関して上述した通りである。
 また、楕円錐の場合、表面残差ε(xar)は、以下の通り表現されてよい。
Figure JPOXMLDOC01-appb-M000050

ψm1等は、数24に関して上述した通りである。台形楕円柱の場合、表面残差ε(xar)は、楕円錐の場合と同様であってよい。
 事後分布算出部152は、微小フィッティング処理において事後分布pnmを算出する。微小フィッティング処理における事後分布pnmは、「M'」と「M-h」との相違に関連して、以下の通りである。
Figure JPOXMLDOC01-appb-M000051

 有限長処理部154は、事後分布算出部152で得られる事後分布pnmに基づいて、有限長処理を行う。有限長処理は、上述のように、点群データxのうちの、所定の条件を満たすデータについてのみ事後分布pnmを算出し、他のデータについては事後分布pnmを0とする処理である。微小フィッティング処理では、所定の条件を満たすデータは、例えば、以下の式を満たすデータであってよい。
Figure JPOXMLDOC01-appb-M000052

ここで、lは、キャリブレーション情報に含まれる長さパラメータである(即ち長さ算出部128により導出される部位mの長さパラメータl)。
 分散更新部155は、微小変化後の分散(σ +Δσ)を導出(更新)する。尤度関数の最大化問題は、線形近似により解を導出できる。即ち、数39の式のσに関する微分を0と置くことで、微小変化後の分散(σ +Δσ)が得られる。尚、分散σ は、初期値であり、1シーン骨格認識部120で得られる。例えば、微小変化後の分散(σ +Δσ)は、以下のとおりであってよい。
Figure JPOXMLDOC01-appb-M000053

 微小変化算出部156は、変形パラメータθarの微小変化Δθを算出する。ここで、尤度関数の最大化問題は、分散σと同様に、以下の通り、線形近似により解を導出できる。即ち、第2時点は、第1時点よりも微小時間だけ後であるので、第2時点での点群データxは、第1時点での点群データxから大きく変化しないと期待される。このため、第2時点での変形パラメータθarは、第1時点での変形パラメータθarから大きく変化しないと期待される。従って、第2時点での変形パラメータθarは、第1時点での変形パラメータθarからの微小変化Δθで表されるものとする。
Figure JPOXMLDOC01-appb-M000054

よって、変形パラメータθarの微小変化Δθは、表面残差εnm、及び、表面残差の微分ε'nm(数40参照)を用いて、以下のとおりである。
Figure JPOXMLDOC01-appb-M000055

尚、具体的な微小変化Δθの算出方法は、次のパラメータ更新部158の説明に関連して後述する。
 パラメータ更新部158は、微小変化算出部156により算出された微小変化Δθに基づいて、位置c Θ及び向きe Θのそれぞれの変化Δc Θ及びΔe Θ(第2パラメータの一例)を導出(更新)することで、位置c Θ+ΔΘ及び向きe Θ+ΔΘを導出(更新)する。尚、位置c Θ及び向きe Θは、上述のように、ある姿勢Θにおける部位kの位置及び向きを表す。位置c Θ及び向きe Θの初期値は、キャリブレーション情報に含まれる位置c Θ0及び向きe Θ0が用いられる。
 位置c Θ+ΔΘ及び向きe Θ+ΔΘは、それぞれ以下の通り表すことができる。尚、部位kは、隠れた部位を含み、従って、図4に示す関節モデルでは、k=1,2、・・・、15である。尚、向きe Θ+ΔΘについては、ノルムが保存される態様で更新されている。
Figure JPOXMLDOC01-appb-M000056
Figure JPOXMLDOC01-appb-M000057

ここで、Δc Θ及びΔe Θは、機構モデルの順運動学に基き、以下のように導出可能である。
Figure JPOXMLDOC01-appb-M000058
Figure JPOXMLDOC01-appb-M000059

ここで、Δθl'i'、ΔθM-f+1,i'、及びΔθM-f+2,i'は、微小変化Δθの各要素である。Δθl'i'は、部位l'(l'=1,2、・・・、M-f)の関節回転を表し、ΔθM-f+1,i'は、対象者Sの重心の回転を表し、ΔθM-f+2,i'は、対象者Sの重心の並進を表す。i'は、回転の3自由度を表し、i'=0、X,XXである。dは空間次元であり、d=3である。また、fは、可動しない関節数である。可動しない関節とは、例えば骨盤部(図4の部位b14、b15参照)に係る関節(図4の関節a0参照)である。
 幾何モデルが円柱である場合は、Δθl'i'、ΔθM-f+1,i'、及びΔθM-f+2,i'は、数43、数44、及び数45の式と、数55とに基づいて導出される。換言すると、ε'nml'i'は、上記の数55の式から、数58及び数59におけるΔθl'i'を得るための表面残差の微分である。同様に、ε'nm,M-f+1,i'は、上記の数55の式から、数58及び数59におけるΔθM-f+1,i'を得るための表面残差の微分である。同様に、ε'nm,M-f+2,i'は、上記の数55の式から、数58におけるΔθM-f+2,i'を得るための表面残差の微分である。尚、円柱以外の幾何モデルについても、上記の表面残差を用いて同様に導出可能である。
 また、数58及び数59において用いられるベクトルや、角度変化を求めるための生成子は、以下のとおりである。尚、以下で、nは、任意の単位ベクトル(固定ベクトル)であり、例えば距離画像センサ21の方向に係る単位ベクトルであってよい。
Figure JPOXMLDOC01-appb-M000060
Figure JPOXMLDOC01-appb-M000061

また、δkl'は、クロネッカーのデルタであり、上述と同様である。また、χkl'は、部位k(k=1,2、・・・、15)と部位l'(l'=1,2、・・・、13)との祖先・子孫関係を表すパラメータであり、例えば、図10に示すとおりである。図10における部位の番号は、図11に示すとおりである。例えば、部位m=部位6でありかつ部位l'=部位5であるとき、χ56=1である。これは、部位5が部位6の祖先側にあるためである。尚、図10及び図11に示す例では、可動しない骨盤部の番号が最後の2つ"14"及び"15"とされかつが列から除外されている。尚、行と列は、同一の番号が同一の部位を指す。
 尚、ここで、添字の表記について整理すると、添字kはすべての部位を指し、総数はMである。添字mは、フィッティング対象の部位を指し、総数はM-hである。添字l'は、可動部位を指し、総数はM-fである。尚、これらの添字は同じ番号でも同一の部位を指すとは限らない。
 このようにして、Δc Θ及びΔe Θは、Δθl'i'、ΔθM-f+1,i'、及びΔθM-f+2,i'を数58及び数59に代入することで導出可能となる。そして、Δc Θ及びΔe Θが得られると、数56及び数57の更新式に基づいて、部位kの位置c Θ+ΔΘ及び向きe Θ+ΔΘが導出可能となる。
 本実施例では、一例として、すべての関節が球関節のように3自由度持っているとしている。例えば、すべての関節が、肩や股関節のように、軸まわりの回転、縦振り、横振りが可能であると仮定している。しかしながら、実際には自由度が制限される関節もある。例えば肘は1自由度のみである。この点、軸対称に近い部位では可動軸を同定することは困難である。従って、本実施例では、一例として、可動軸を同定することを避け、ある固定ベクトルnを用いて構成した軸まわりの回転をすべての関節について考慮している。但し、円柱や台形柱のような軸対称の幾何モデルでは、軸まわりの回転自由度は不定となるため除外される。具体的には、軸対称の幾何モデルでは、軸回りの自由度を除いた2自由度を有する。従って、軸対称の幾何モデルについては、Δθl'0、Δθl'X、及びΔθl'XXのうちの、軸まわりの関節回転Δθl'0を除くΔθl'X及びΔθl'XXのみが計算される。これにより、計算負荷を効率的に低減できる。尚、実際の可動軸における回転角度を求めたい場合には、回転行列により変換することで取得可能である。
 次に、図12の概略フローチャートを参照して、本実施例による対象物認識システム1の動作例について、微小フィッティング処理とともに説明する。
 図12は、対象物認識システム1の全体の動作例を示す概略フローチャートである。
 ステップS1200では、データ入力部110は、使用する関節モデルを示す情報を取得する。例えば、データ入力部110は、図4に示す関節モデルを示す情報を取得する。関節モデルを示す情報は、関節数(部位数)、接続関係、フィッティング対象の部位、可動関節等を示す情報であってよい。
 ステップS1201では、データ入力部110は、jj=0に設定する。
 ステップS1202では、データ入力部110は、所定の処理終了条件が成立したか否かを判定する。例えば、非リアルタイムでの処理の場合、所定の処理終了条件は、処理対象の全ての点群データ(例えば複数時点の点群データであって一連の時系列に係るデータ)の処理が終了した場合に満たされてよい。また、リアルタイムでの処理の場合、所定の処理終了条件は、ユーザから終了指示が入力された場合や、今回のフレーム周期に係る点群データが入力されない場合等に満たされてよい。判定結果が"YES"の場合は、そのまま終了し、それ以外の場合は、ステップS1204に進む。
 ステップS1203では、データ入力部110は、jjを"1"だけインクリメントする。
 ステップS1204では、データ入力部110は、処理対象の1時点に係る点群データであって、時系列でjj番目(即ちjj番目のフレーム)に係る点群データを取得する。例えば、リアルタイムで処理する場合は、今回のフレーム周期に係る点群データが処理対象の1時点に係る点群データとなる。
 ステップS1206では、1シーン骨格認識部120は、ステップS1204で得た点群データに基づいて、1シーン骨格認識処理を行う。1シーン骨格認識処理は、上述のとおりである。
 ステップS1208では、1シーン骨格認識部120は、1シーン骨格認識処理が成功したか否かを判定する。具体的には、1シーン骨格認識部120は、1シーン骨格認識処理で第1所定基準を満たすキャリブレーション情報(位置c Θ0及び向きe Θ0等)が導出されたと判定した場合に、1シーン骨格認識処理が成功したと判定する。例えば、1シーン骨格認識部120は、所定数の部位を認識でき、かつ、各部位の事後分布のデータ和が、それぞれ所定値Th1以上である場合に、第1所定基準を満たすキャリブレーション情報が導出されたと判定する。所定数の部位は、隠れた部位を除くすべての部位(関節モデルで定義される全ての部位)に対応してよい。各部位の事後分布のデータ和を評価することで、全部位が精度良く認識されている際のキャリブレーション情報を生成できる。判定結果が"YES"の場合は、ステップS1210に進み、それ以外の場合は、ステップS1212に進む。
 ステップS1210では、所定の処理終了条件が成立したか否かを判定する。所定の処理終了条件は、ステップS1202と同様であってよい。判定結果が"YES"の場合は、そのまま終了し、それ以外の場合は、ステップS1212に進む。
 ステップS1211では、データ入力部110は、jjを"1"だけインクリメントする。
 ステップS1212では、データ入力部110は、処理対象の1時点に係る点群データであって、時系列でjj番目に係る点群データを取得する。
 ステップS1214では、微小フィッティング処理部150は、ステップS1208で成功となった際のキャリブレーション情報と、ステップS1212で得た点群データとに基づいて、微小フィッティング処理を行う。尚、ここで用いる点群データは、ステップS1212で得た点群データであり、ステップS1204で得た点群データに係る時点(第1時点)よりも後の時点(第2時点)に係る。
 ステップS1216では、微小フィッティング処理部150は、微小フィッティング処理が成功したか否かを判定する。具体的には、微小フィッティング処理部150は、微小フィッティング処理で第2所定基準を満たす位置c Θ及び向きe Θが導出されたと判定した場合に、微小フィッティング処理が成功したと判定する。例えば、微小フィッティング処理部150は、事後分布のデータ和の全部位和が所定値Th2以上である場合に、第2所定基準を満たす位置c Θ及び向きe Θが導出されたと判定する。各部位の事後分布のデータ和に代えて、事後分布のデータ和の全部位和を評価することで、一部の部位が精度良く認識されていない状況下でも、事後分布のデータ和の全部位和が比較的良好な値である場合は、微小フィッティング処理を継続できる。これは、微小フィッティングでは、欠損部分が関節回転のみなので、対象者Sの動きを大きく見失うことはないためである。また、微小フィッティングでは、1シーン骨格認識処理でのフィッティングとは異なり、部分的な欠損であれば残りのデータから推定可能であるためである。これにより、例えば、対象者Sが、かがんだ状態など、特徴点の多くが取得できない複雑な姿勢を取った場合でも、比較的高い精度の骨格情報を継続して取得できる。判定結果が"YES"の場合は、ステップS1210に進み、ステップS1210で判定結果が"YES"の場合は、次のフレームに係る点群データに基づく微小フィッティング処理が実行される。他方、判定結果が"NO"の場合は、ステップS1202に戻り、1シーン骨格認識処理を再度行う。
 このようにして図12に示す処理によれば、1シーン骨格認識処理で精度の高い認識結果(キャリブレーション情報)が得られた場合に、当該認識結果に基づいて、微小フィッティング処理を行うことができる。これにより、1シーン骨格認識処理をフレームごとに繰り返す場合に比べて、処理速度を高めることができる。また、その後の微小フィッティング処理で認識精度が悪化した場合(事後分布のデータ和の全部位和が所定値Th2未満になった場合)は、1シーン骨格認識処理を再度行うことができる。これにより、微小フィッティング処理を必要以上に継続することに起因して生じる不都合、即ち認識精度の悪化を抑制できる。このようにして、図12に示す処理によれば、処理速度の向上と高い精度の認識結果の確保との両立を図ることができる。
 図13は、微小フィッティング処理の概略フローチャートであり、ステップS1214で実行できる処理の一例である。
 ステップS1300では、微小フィッティング処理部150は、m=1に設定する。
 ステップS1302では、表面残差算出部151は、部位mに係る表面残差εnm及び表面残差の微分ε'nmを算出する。表面残差εnm及び表面残差の微分ε'nmの算出方法は、上述のとおりである。尚、上述の通り、部位mに係る表面残差εnm及び表面残差の微分ε'nmの算出は、部位mに対応付けれた幾何モデルに依存する。例えば、幾何モデルが円柱の場合は、数42~数45で示した式が使用されてもよい。
 ステップS1304では、事後分布算出部152は、ステップS1212で得た点群データと、ステップS1302で得た表面残差εnmとに基づいて、部位mに係る事後分布pnmを算出する。事後分布pnmの算出方法は、上述のとおりである(数51参照)。
 ステップS1306では、有限長処理部154は、ステップS1304で得た事後分布pnmに基づいて、有限長処理を行う。有限長処理は、上述のとおりである(数52参照)。
 ステップS1308では、微小フィッティング処理部150は、m=M-hであるか否かを判定する。M-hは、上述のように、フィッティング対象の部位の総数である。判定結果が"YES"の場合は、ステップS1312に進み、それ以外の場合は、ステップS1310を介して、ステップS1302に戻る。
 ステップS1310では、微小フィッティング処理部150は、mを"1"だけインクリメントする。
 ステップS1312では、微小変化算出部156は、微小変化Δθを算出する。この際、微小変化算出部156は、微小変化Δθの各要素Δθl'i'、ΔθM-f+1,i'、及びΔθM-f+2,i'を、l'=1,2、・・・、M-f、及び、i'=0、X,XXの全てについて、一括で算出してよい。この算出は、例えば行列演算により実現できる。
 ステップS1314では、微小フィッティング処理部150は、k=1に設定する。
 ステップS1316では、パラメータ更新部158は、ステップS1312で得た微小変化Δθに基づいて、位置c Θ+ΔΘ及び向きe Θ+ΔΘを導出し、位置c Θ及び向きe Θを、導出した位置c Θ+ΔΘ及び向きe Θ+ΔΘで更新する。位置c Θ+ΔΘ及び向きe Θ+ΔΘの導出方法は、上述のとおりである。ここで、位置c Θ及び向きe Θの初期値は、位置c Θ0及び向きe Θ0であり、直近のステップS1206で得られる。
 ステップS1318では、微小フィッティング処理部150は、k=Mであるか否かを判定する。Mは、上述のようにすべての部位の総数である。
 ステップS1320では、微小フィッティング処理部150は、kを"1"だけインクリメントする。
 ステップS1322では、分散更新部155は、ステップS1302で得た表面残差εnmと、ステップS1304で得た事後分布pnmとに基づいて、分散σを更新する。分散σの更新方法は上述のとおりである(数53参照)。
 このようにして図13に示す処理によれば、図12のステップS1206で得られる1シーン骨格認識処理結果を利用して、比較的高い処理速度で位置c Θ及び向きe Θを更新できる。例えば、フレーム毎のN回の反復計算を行う場合に比べて、N倍速の処理速度を実現できる。
 尚、図13に示す処理において、ステップS1316の処理は、並列処理で実現されてもよい。ところで、微小フィッティング処理では、部位mの長さが固定されているので、位置c Θについては、ある一の部位について求めれば他の部位についても導出できるので、ある一の部位についてだけ算出されてもよい。但し、この場合、各部位の向きe Θの結果を統合して各位置c Θを算出する必要があるため、各部位の演算を並列化している場合、同期待ちが発生する。この点、一方、各部位で位置c Θと向きe Θの両方を算出しておけば、そのような同期待ちを回避可能である。
 以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
1 対象物認識システム
21 距離画像センサ
100 対象物認識装置
110 データ入力部
120 1シーン骨格認識部
122 クラスタリング部
124 EMアルゴリズム部
126 モデル最適化部
128 長さ算出部
130 部位認識部
132 骨格整形部
134 キャリブレーション情報生成部
140 幾何モデルデータベース
142 キャリブレーション情報記憶部
150 微小フィッティング処理部
151 表面残差算出部
152 事後分布算出部
154 有限長処理部
155 分散更新部
156 微小変化算出部
158 パラメータ更新部
160 出力部

Claims (21)

  1.  3次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
     前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第1パラメータであって、第1時点での第1パラメータを導出又は取得し、
     前記第1時点より後の第2時点での前記点群データと、前記第1時点での前記第1パラメータと、軸を有する幾何モデルとに基づいて、前記第2時点での前記第1パラメータを導出することを含む、コンピュータにより実行される対象物認識方法。
  2.  前記点群データの取得は、周期毎に実行され、
     前記第2時点は、前記第1時点に係る周期の次の周期を含む、請求項1に記載の対象物認識方法。
  3.  前記第1時点での前記第1パラメータの導出は、前記第1時点での前記点群データに、前記幾何モデルを複数の個所で別々に当てはめ、前記第1時点での前記点群データに当てはめる複数の前記幾何モデルのそれぞれの位置及び軸方向に基づいて、前記第1時点での前記第1パラメータを導出する当てはめ処理を含み、
     前記第2時点での前記第1パラメータの導出は、前記第2時点での前記点群データに当てはまる複数の前記幾何モデルのそれぞれの位置及び軸方向を、前記第2時点での前記第1パラメータを導出することを含む、請求項1又は2に記載の対象物認識方法。
  4.  前記当てはめ処理は、前記点群データに含まれるノイズを一様分布でモデル化することを含む、請求項3に記載の対象物認識方法。
  5.  前記幾何モデルは、円柱、円錐、台形柱、楕円柱、楕円錐、及び台形楕円柱のうちの少なくともいずれか1つに係り、
     前記第2時点での前記第1パラメータの導出は、前記第1時点での前記第1パラメータの導出に用いた種類の複数の前記幾何モデルに基づく、請求項3又は4に記載の対象物認識方法。
  6.  前記第2時点での前記第1パラメータの導出は、前記当てはめ処理によって第1所定基準を満たす前記第1パラメータが得られた後に実行され、
     前記当てはめ処理は、前記第1所定基準を満たす前記第1パラメータが得られるまで周期毎に繰り返される、請求項3~5のうちのいずれか1項に記載の対象物認識方法。
  7.  前記当てはめ処理は、前記第1時点での前記点群データに基づく第1事後分布を算出することを含み、
     前記第1所定基準は、前記複数の部位の数が所定数以上であり、かつ、前記複数の部位のそれぞれに係る前記第1事後分布のデータ和が第1所定値以上である場合に満たされる、請求項6に記載の対象物認識方法。
  8.  前記第2時点での前記第1パラメータの導出結果が第2所定基準を満たすか否かを判定することを更に含み、
     前記第2時点での前記第1パラメータの導出結果が前記第2所定基準を満たさない場合は、新たな前記第1時点での前記第1パラメータの導出からやり直すことを含む、請求項6又は7に記載の対象物認識方法。
  9.  前記第2時点での前記点群データに基づく第2事後分布を算出することを含み、
     前記複数の部位は、複数の前記幾何モデルに対応付けられる複数の第1部位と、前記幾何モデルに対応付けられない複数の第2部位とを含み、
     前記第2所定基準は、前記複数の第1部位のそれぞれに係る前記第2事後分布のデータ和の合計が第2所定値以上である場合に満たされる、請求項8に記載の対象物認識方法。
  10.  前記第2事後分布の算出は、前記複数の第1部位のそれぞれごとに、前記第2時点での前記点群データのうちの、前記第1部位に対応付けられる前記幾何モデルの軸方向の中心からの軸方向の距離が所定距離以上のデータに対し、前記第2事後分布を0にすることを含む、請求項9に記載の対象物認識方法。
  11.  前記対象物は、人、又は、人型のロボットであり、
     前記複数の第2部位は、前記対象物の腕部の根本の関節と、前記対象物の胴部における頭部側の関節とを結ぶ部位と、前記対象物の脚部の根本の関節と、前記対象物の胴部における前記脚部側の関節とを結ぶ部位を含む、請求項10に記載の対象物認識方法。
  12.  前記第2時点での前記第1パラメータの導出結果が前記第2所定基準を満たす場合は、該第2時点での前記第2時点での前記第1パラメータの導出結果と、該第2時点に係る周期の次の周期の前記点群データとに基づいて、新たな前記第2時点での前記第1パラメータを導出することを更に含む、請求項8~11のうちのいずれか1項に記載の対象物認識方法。
  13.  前記第2時点での前記第1パラメータの導出は、前記複数の部位のそれぞれごとに、位置及び軸方向のそれぞれの変化であって、前記第1時点からの変化を表す第2パラメータを導出することを含む、請求項12に記載の対象物認識方法。
  14.  前記第2パラメータの算出は、前記対象物の関節に対応付け可能な複数の関節を有する機構モデルを用いた順運動学に基く計算処理を含む、請求項13に記載の対象物認識方法。
  15.  前記計算処理は、前記対象物の重心の並進、回転、及び前記複数の関節のそれぞれの回転を、微小変化するものとして扱うことを伴う、請求項14に記載の対象物認識方法。
  16.  前記複数の部位は、可動部位と、非可動部位とを含み、
     前記機構モデルは、前記複数の関節のうちの前記可動部位に係る各関節に3軸まわりの回転自由度を与えるモデルである、請求項15に記載の対象物認識方法。
  17.  前記第2パラメータの算出は、前記計算処理のうちの、前記複数の関節のうちの前記非可動部位間の関節に係る計算部分を省略することを含む、請求項16に記載の対象物認識方法。
  18.  前記第2パラメータの算出は、前記計算処理のうちの、前記複数の部位のうちの軸対称の幾何モデルに対応付けられる部位に係る計算部分であって、軸まわりの回転に係る計算部分を省略することを含む、請求項16に記載の対象物認識方法。
  19.  3次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得する取得部と、
     前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第1パラメータであって、第1時点での第1パラメータを導出又は取得するパラメータ導出/取得部と、
     前記第1時点より後の第2時点での前記点群データと、前記第1時点での前記第1パラメータと、軸を有する幾何モデルとに基づいて、前記第2時点での前記第1パラメータを導出する導出処理部とを含む、対象物認識装置。
  20.  3次元の位置情報を得るセンサと、
     前記センサから、複数の関節を有する対象物の表面に係る点群データを取得する取得部と、
     前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第1パラメータであって、第1時点での第1パラメータを導出又は取得するパラメータ導出/取得部と、
     前記第1時点より後の第2時点での前記点群データと、前記第1時点での前記第1パラメータと、軸を有する幾何モデルとに基づいて、前記第2時点での前記第1パラメータを導出する導出処理部とを含む、対象物認識システム。
  21.  3次元の位置情報を得るセンサから、複数の関節を有する対象物の表面に係る点群データを取得し、
     前記対象物の複数の部位のそれぞれの位置及び軸方向を表す第1パラメータであって、第1時点での第1パラメータを導出又は取得し、
     前記第1時点より後の第2時点での前記点群データと、前記第1時点での前記第1パラメータと、軸を有する幾何モデルとに基づいて、前記第2時点での前記第1パラメータを導出する
     処理をコンピュータに実行させる対象物認識プログラム。
PCT/JP2017/017695 2017-05-10 2017-05-10 対象物認識方法、装置、システム、プログラム WO2018207282A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019516792A JP6996557B2 (ja) 2017-05-10 2017-05-10 対象物認識方法、装置、システム、プログラム
PCT/JP2017/017695 WO2018207282A1 (ja) 2017-05-10 2017-05-10 対象物認識方法、装置、システム、プログラム
CN201780090522.7A CN110603570B (zh) 2017-05-10 2017-05-10 对象物识别方法、装置、系统、程序
EP17909083.2A EP3624059A4 (en) 2017-05-10 2017-05-10 METHOD, DEVICE, TARGET OBJECT RECOGNITION SYSTEM, AND PROGRAM
US16/676,527 US11126831B2 (en) 2017-05-10 2019-11-07 Object recognition method, device, system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/017695 WO2018207282A1 (ja) 2017-05-10 2017-05-10 対象物認識方法、装置、システム、プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/676,527 Continuation US11126831B2 (en) 2017-05-10 2019-11-07 Object recognition method, device, system, and program

Publications (1)

Publication Number Publication Date
WO2018207282A1 true WO2018207282A1 (ja) 2018-11-15

Family

ID=64104549

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/017695 WO2018207282A1 (ja) 2017-05-10 2017-05-10 対象物認識方法、装置、システム、プログラム

Country Status (5)

Country Link
US (1) US11126831B2 (ja)
EP (1) EP3624059A4 (ja)
JP (1) JP6996557B2 (ja)
CN (1) CN110603570B (ja)
WO (1) WO2018207282A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113436223A (zh) * 2021-07-14 2021-09-24 北京市测绘设计研究院 点云数据的分割方法、装置、计算机设备和存储介质
JP2022057885A (ja) * 2020-09-30 2022-04-11 アースアイズ株式会社 撮影システム、及び、撮影方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6996557B2 (ja) 2017-05-10 2022-02-21 富士通株式会社 対象物認識方法、装置、システム、プログラム
EP3425591B1 (en) * 2017-07-07 2021-01-13 Tata Consultancy Services Limited System and method for tracking body joints
EP3667611A4 (en) * 2017-08-07 2020-08-26 Fujitsu Limited INFORMATION PROCESSING DEVICE, MODEL DATA GENERATION PROGRAM AND MODEL DATA GENERATION METHOD
EP3825730A1 (en) * 2019-11-21 2021-05-26 Bentley Systems, Incorporated Assigning each point of a point cloud to a scanner position of a plurality of different scanner positions in a point cloud

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015472A (ja) * 2008-07-07 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> 歩行者性別判定装置、歩行者性別判定方法、歩行者性別判定プログラムおよびその記録媒体
JP2015102913A (ja) * 2013-11-21 2015-06-04 キヤノン株式会社 姿勢推定装置及び姿勢推定方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149445A (ja) 1996-11-19 1998-06-02 Image Joho Kagaku Kenkyusho 身体動作解析可視化装置
JP2006302133A (ja) * 2005-04-22 2006-11-02 Toyota Motor Corp 情報処理装置、情報処理方法、及びこれを用いた画像情報処理装置、画像情報処理方法
KR100951890B1 (ko) * 2008-01-25 2010-04-12 성균관대학교산학협력단 상황 모니터링을 적용한 실시간 물체 인식 및 자세 추정 방법
US9135502B2 (en) 2009-05-11 2015-09-15 Universitat Zu Lubeck Method for the real-time-capable, computer-assisted analysis of an image sequence containing a variable pose
US8542252B2 (en) * 2009-05-29 2013-09-24 Microsoft Corporation Target digitization, extraction, and tracking
JP5297403B2 (ja) 2010-02-26 2013-09-25 キヤノン株式会社 位置姿勢計測装置、位置姿勢計測方法、プログラムおよび記憶媒体
EP2383696A1 (en) 2010-04-30 2011-11-02 LiberoVision AG Method for estimating a pose of an articulated object model
US20130144135A1 (en) * 2011-08-02 2013-06-06 Mohamed R. Mahfouz Method and apparatus for three dimensional reconstruction of a joint using ultrasound
EP2710557B1 (en) 2011-05-16 2020-04-29 Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. Fast articulated motion tracking
JP5984096B2 (ja) * 2011-08-30 2016-09-06 ディジマーク コーポレイション 物体を識別する方法及び機構
US9367770B2 (en) * 2011-08-30 2016-06-14 Digimarc Corporation Methods and arrangements for identifying objects
JP2013115380A (ja) * 2011-11-30 2013-06-10 Panasonic Corp 部品実装装置および部品実装方法
WO2013112749A1 (en) 2012-01-24 2013-08-01 University Of Southern California 3d body modeling, from a single or multiple 3d cameras, in the presence of motion
WO2013173465A1 (en) * 2012-05-15 2013-11-21 Board Of Regents, The University Of Texas System Imaging device capable of producing three dimensional representations and methods of use
EP2674913B1 (en) * 2012-06-14 2014-07-23 Softkinetic Software Three-dimensional object modelling fitting & tracking.
JP5871345B2 (ja) * 2012-07-27 2016-03-01 Necソリューションイノベータ株式会社 3次元ユーザインタフェース装置及び3次元操作方法
US20150193977A1 (en) * 2012-08-31 2015-07-09 Google Inc. Self-Describing Three-Dimensional (3D) Object Recognition and Control Descriptors for Augmented Reality Interfaces
JP2015170907A (ja) * 2014-03-05 2015-09-28 キヤノン株式会社 スキャナシステム、スキャナシステムのデータ処理方法、及びプログラム
US9928412B2 (en) 2014-10-17 2018-03-27 Ebay Inc. Method, medium, and system for fast 3D model fitting and anthropometrics
JP2016103137A (ja) * 2014-11-28 2016-06-02 キヤノン株式会社 ユーザインタフェース装置、画像処理装置及び制御用プログラム
US9747717B2 (en) * 2015-05-13 2017-08-29 Intel Corporation Iterative closest point technique based on a solution of inverse kinematics problem
JP2017036998A (ja) * 2015-08-10 2017-02-16 株式会社東芝 色情報決定装置および画像生成装置
JP2017073039A (ja) * 2015-10-08 2017-04-13 キヤノン株式会社 物体識別装置、物体識別方法及びプログラム
US10186081B2 (en) 2015-12-29 2019-01-22 Microsoft Technology Licensing, Llc Tracking rigged smooth-surface models of articulated objects
US9898858B2 (en) 2016-05-18 2018-02-20 Siemens Healthcare Gmbh Human body representation with non-rigid parts in an imaging system
EP3249921A1 (en) * 2016-05-24 2017-11-29 Thomson Licensing Method, apparatus and stream for immersive video format
JP6996557B2 (ja) 2017-05-10 2022-02-21 富士通株式会社 対象物認識方法、装置、システム、プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015472A (ja) * 2008-07-07 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> 歩行者性別判定装置、歩行者性別判定方法、歩行者性別判定プログラムおよびその記録媒体
JP2015102913A (ja) * 2013-11-21 2015-06-04 キヤノン株式会社 姿勢推定装置及び姿勢推定方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ARATA MIYAMOTO ET AL.: "Human Pose Estimation from 3D Object Skeleton using Articulated Cylindrical Human Model", IPSJ SIG NOTES, vol. 2006, no. 51, 19 May 2006 (2006-05-19), pages 137 - 144, XP055639781 *
EIICHI HORIUCHI: "Hemi-form Geometric Models for Single-scan 3D Point Clouds", JOURNAL OF THE ROBOTICS SOCIETY OF JAPAN, vol. 32, no. 8, 15 October 2014 (2014-10-15), pages 721 - 730, XP055545372 *
See also references of EP3624059A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022057885A (ja) * 2020-09-30 2022-04-11 アースアイズ株式会社 撮影システム、及び、撮影方法
CN113436223A (zh) * 2021-07-14 2021-09-24 北京市测绘设计研究院 点云数据的分割方法、装置、计算机设备和存储介质
CN113436223B (zh) * 2021-07-14 2022-05-24 北京市测绘设计研究院 点云数据的分割方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
US11126831B2 (en) 2021-09-21
EP3624059A4 (en) 2020-05-27
EP3624059A1 (en) 2020-03-18
JPWO2018207282A1 (ja) 2020-03-12
CN110603570B (zh) 2023-08-04
US20200074161A1 (en) 2020-03-05
CN110603570A (zh) 2019-12-20
JP6996557B2 (ja) 2022-02-21

Similar Documents

Publication Publication Date Title
WO2018207282A1 (ja) 対象物認識方法、装置、システム、プログラム
JP6947215B2 (ja) 情報処理装置、モデルデータ作成プログラム、モデルデータ作成方法
JP4950787B2 (ja) 画像処理装置及びその方法
US10189162B2 (en) Model generation apparatus, information processing apparatus, model generation method, and information processing method
JP5924862B2 (ja) 情報処理装置、情報処理方法及びプログラム
KR101333836B1 (ko) 에이에이엠 및 추정된 깊이 정보를 이용하는 3차원 얼굴 포즈 및 표정 변화 추정 방법
KR101700377B1 (ko) 아바타 생성을 위한 처리 장치 및 방법
WO2021084677A1 (ja) 画像処理装置、画像処理方法及び画像処理プログラムが格納された非一時的なコンピュータ可読媒体
JP6465027B2 (ja) 特徴点位置推定装置、特徴点位置推定方法および特徴点位置推定プログラム
WO2005111936A1 (ja) パラメタ推定方法、パラメタ推定装置および照合方法
JP2006520054A (ja) 不変視点からの画像照合および2次元画像からの3次元モデルの生成
JP6920246B2 (ja) 行動認識装置、モデル構築装置及びプログラム
JP2016099982A (ja) 行動認識装置、行動学習装置、方法、及びプログラム
JP2019096113A (ja) キーポイントデータに関する加工装置、方法及びプログラム
US20230230305A1 (en) Online streamer avatar generation method and apparatus
JP4535096B2 (ja) 平面抽出方法、その装置、そのプログラム、その記録媒体及び撮像装置
JP2008065368A (ja) ステレオ画像を利用した物体の位置および姿勢認識システム、物体の位置および姿勢認識方法、およびこの方法を実行するプログラム
WO2018207292A1 (ja) 対象物認識方法、装置、システム、プログラム
Zhang et al. 3D statistical head modeling for face/head-related product design: a state-of-the-art review
JP5872401B2 (ja) 領域分割装置
JP7464512B2 (ja) 三次元人物姿勢推定装置、方法およびプログラム
WO2012160787A1 (ja) 位置姿勢推定装置、位置姿勢推定方法および位置姿勢推定プログラム
JP6260146B2 (ja) 形状状態推定装置、形状モデル生成装置、及びプログラム
US20230057235A1 (en) Computer-readable recording medium storing determination program, determination device, and determination method
JP7404137B2 (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: 17909083

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019516792

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017909083

Country of ref document: EP

Effective date: 20191210