WO2021075004A1 - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents

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

Info

Publication number
WO2021075004A1
WO2021075004A1 PCT/JP2019/040753 JP2019040753W WO2021075004A1 WO 2021075004 A1 WO2021075004 A1 WO 2021075004A1 JP 2019040753 W JP2019040753 W JP 2019040753W WO 2021075004 A1 WO2021075004 A1 WO 2021075004A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
processing device
information processing
speed
estimated
Prior art date
Application number
PCT/JP2019/040753
Other languages
English (en)
French (fr)
Inventor
良徳 大橋
敬太 望月
康隆 福本
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニー・インタラクティブエンタテインメント, ソニー株式会社 filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to US17/768,278 priority Critical patent/US20220409991A1/en
Priority to JP2021552042A priority patent/JP7216222B2/ja
Priority to PCT/JP2019/040753 priority patent/WO2021075004A1/ja
Publication of WO2021075004A1 publication Critical patent/WO2021075004A1/ja

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • A63F13/26Output arrangements for video game devices having at least one additional display device, e.g. on the game controller or outside a game booth
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Definitions

  • the present invention relates to an information processing device, a control method of the information processing device, and a program.
  • the subject is imaged with a plurality of cameras of the position information in the three-dimensional space such as the markers attached to the subject's head, both hands, waist, and both ankles. It is known that the information on the posture of the subject in the above three-dimensional space is estimated by an inverse kinematics method based on the acquired information.
  • an IMU Inertial Measurement Unit
  • the output of the IMU sensor contains noise and it takes two integral calculations to obtain the position, errors due to these noises are accumulated, and the detection result by the IMU sensor alone is several seconds. The position estimation error becomes large even in a certain amount of time, and it cannot be used as it is.
  • the present invention has been made in view of the above circumstances, and even when a relatively small number of devices are used and the position of the devices cannot be detected by a direct method, for example, the output of the IMU sensor with reduced error can be obtained.
  • One of the purposes is to provide an information processing device capable of estimating the posture of the target person based on the information processing device, a control method of the information processing device, and a program.
  • the present invention which solves the problems of the above-mentioned conventional example, is an information processing device that is mounted on a plurality of wearing parts of a subject and is connected to a sensor that detects at least information on the moving acceleration and the attitude angular velocity of the wearing parts.
  • Each of the sensors is attached based on the acquisition means for acquiring at least the information on the moving acceleration and the attitude angular velocity of the mounting portion to which each sensor is attached from the plurality of sensors and the acquired information on the moving acceleration and the attitude angular velocity.
  • a predetermined speed estimation means for estimating the moving speed of the wearing part in a predetermined coordinate system and a part required for estimating the posture of the target person by reverse kinematics of the target person.
  • To provide the estimated position information of each part to a predetermined process including a position estimation means for estimating the position of each part based on the estimated movement speed information of each attachment part. It was done.
  • the information processing device 1 basically includes a control unit 11, a storage unit 12, an operation control unit 13, and an output control unit 14. It is connected to a plurality of sensor devices 20a, b ... Attached to each attachment portion by a subject so as to be able to communicate by wire or wirelessly.
  • the sensor device 20 includes a head sensor device 201, a controller device 202 held by the target person in each of the left and right hands, and a foot attached to the left and right ankles of the target person, respectively. Includes sensor device 203.
  • the head sensor device 201 includes, for example, a head-mounted display HMD mounted on the head of the subject and a camera C that captures the subject.
  • This camera C is, for example, a stereo camera, and it is assumed that information on the distance between the camera C and the imaged object can be acquired.
  • the head-mounted display HMD includes a display that displays an image input from the output control unit 14 of the information processing device 1, and also has a marker such as an LED.
  • the information processing device 1 is a target person from an image captured by the camera C. Detects a marker of the head-mounted display HMD mounted on the head, and acquires posture information such as the position and orientation of the head-mounted display HMD (hence, the position and orientation of the head of the subject who wears the head-mounted display HMD).
  • the controller device 202 has a substantially columnar shape and is used by the subject by holding it in his / her hand. Similar to the head-mounted display HMD, the controller device 202 is provided with markers such as LEDs in its housing, and the information processing device 1 is a controller device 202 held by the subject in both hands from an image captured by the camera C. The marker may be detected to acquire attitude information such as the position and orientation of each controller device 202 (hence, the position and orientation of the hand of the subject holding the marker).
  • the head sensor device 201 and the controller device 202 which are head mount display HMDs, further measure three axial movement accelerations orthogonal to each other and an angular velocity around each axis (IMU sensor).
  • An inertial measurement sensor is provided inside, and the measured information on the movement acceleration in each axis direction and the information on the angular velocity (attitude angular velocity) around each axis are wired or wireless to the information processing device 1 as inertial information. Output with.
  • the foot sensor device 203 includes a belt 2031 that can be wrapped around the ankle of the subject and fastened, and a main body device 2032 fixed to the belt 2031.
  • the main body device 2032 is provided internally with an IMU sensor (inertial measurement unit) that measures accelerations in three axial directions orthogonal to each other and angular velocities around each axis, and information on the measured moving accelerations in each axial direction. , Information on the angular velocity (attitude angular velocity) around each axis is output to the information processing device 1 as inertial information by wire or wirelessly.
  • IMU sensor inertial measurement unit
  • a marker such as an LED may also be arranged on the main body device 2032, and the information processing device 1 detects the marker of the foot sensor device 203 attached to each foot of the target person from the image captured by the camera C.
  • the posture information such as the position and orientation of each foot sensor device 203 (therefore, the position and orientation of each foot of the subject who wears the device) may be acquired.
  • the camera C does not necessarily have to be able to image up to the ankle of the subject.
  • the position and orientation information of each sensor device 20 can be directly obtained based on the image data captured by the camera C or the like, and is not captured by the camera C or the like.
  • the inertial information based on the internal inertial measurement sensor can be obtained, and the position and orientation information of each sensor device 20 can be indirectly obtained based on this inertial information. It is possible.
  • the control unit 11 is a program control device such as a CPU, and operates according to a program stored in the storage unit 12. For example, the control unit 11 executes the game application process based on the operation of the controller device 202, the posture information of the target person, and the like as the game application process. The control unit 11 also generates information on the game screen as a process of the game application, and instructs the head-mounted display HMD or the like to display the game screen via the output control unit 14.
  • the control unit 11 in order to obtain the posture information of the target person, the control unit 11 is mounted on a plurality of wearing parts of the target person, and the sensor device 20 detects at least the information of the moving acceleration and the posture angular velocity of the wearing part. At least information on the moving acceleration of the wearing portion of the subject to which each sensor device 20 is attached is acquired from.
  • the head sensor device 201 (specifically, the head mount display HMD) and the controller device 202, which are the sensor devices 20, and the foot sensor device 203 (specifically, the main body device 2032).
  • IMU sensor intial measurement unit
  • the information on the moving acceleration is acquired in the coordinate system unique to each sensor device 20.
  • the longitudinal direction of the housing held by the subject is the Z axis from the direction in which the internal acceleration sensor is attached, and the front and back of the housing (for example, for operation) in a plane orthogonal to the Z axis.
  • Information on the moving acceleration can be obtained with the direction (the front and rear axes are determined from the position where the button is arranged) as the Y axis and the direction orthogonal to these Z and Y axes as the X axis.
  • the attitude angular velocity information is output by each sensor device 20 as information on the angular velocities around each of the X, Y, and Z axes.
  • the control unit 11 estimates the moving speed of the wearing portion of the target person to which each of the sensor devices 20 is attached based on the acquired movement acceleration information, and estimates the posture information of the target person by inverse kinematics. For each part of the subject, which is predetermined as a part required for the above, the position of each part is estimated based on the estimated movement speed information of each wearing part.
  • control unit 11 uses the estimated position and movement speed information of each part of the target person for processing for estimating the posture of the target person and the like. The detailed operation of the control unit 11 will be described later.
  • the storage unit 12 is a memory device or the like, and holds a program executed by the control unit 11. This program is provided stored in a computer-readable and non-temporary storage medium, and may be stored in the storage unit 12. The storage unit 12 also operates as a work memory for the control unit 11.
  • the operation control unit 13 accepts the operation content of the target person who holds the controller device 202 based on the information received from the controller device 202 (and the camera C), and outputs the information representing the operation content to the control unit 11. ..
  • the output control unit 14 outputs the information of the image to be displayed to the head-mounted display HMD, another display device, or the like according to the instruction input from the control unit 11.
  • the control unit 11 that performs this process functionally has an inertial velocity estimation unit 31, an inverse kinematics model calculation unit 32, and a site position velocity estimation unit, as illustrated in FIG. It includes 33, a correction speed calculation unit 34, a correction position calculation unit 35, and an output unit 36.
  • the inertial velocity estimation unit 31 repeatedly receives the movement acceleration information and the attitude angular velocity information output by each sensor device 20 at predetermined timings (for example, every time ⁇ t), and receives the movement acceleration information and the attitude angular velocity information. Based on the information on the moving acceleration and the attitude angular velocity of each mounting portion of each sensor device 20 estimated based on the information, the information on the moving speed of the mounting portion of each sensor device 20 is obtained.
  • the inertial velocity estimation unit 31 further functionally comprises the angular velocity calibration unit 311, the attitude estimation unit 312, the gravitational acceleration removal unit 314, and the like, as illustrated in FIG. It is configured to include a speed estimation processing unit 315.
  • the angular velocity calibration unit 311 receives the information on the moving acceleration and the information on the posture angular velocity output by each sensor device 20, and at a predetermined timing (for example, when the first information is accepted), the target person is subjected to the information. Display a screen instructing you to pause temporarily. Then, when the angular velocity calibration unit 311 determines that the subject is stationary (such as when the time change of the moving acceleration falls below a predetermined threshold value), the angular velocity calibration unit 311 obtains information on the posture angular velocity at that time. It is acquired a plurality of times, and the average (obtained for each component) is obtained as an angular velocity bias and held in the storage unit 12 or the like. After that, the angular velocity calibration unit 311 presents the subject with a screen indicating that the measurement has been completed.
  • a predetermined timing for example, when the first information is accepted
  • the angular velocity calibration unit 311 receives the information of the moving acceleration and the information of the attitude angular velocity output by each sensor device 20, and the corresponding angular velocity bias is obtained from the value of each component of the attitude angular velocity.
  • the information of the angular velocity after calibration is output by subtracting the value of the component of.
  • the operation of the angular velocity calibration unit 311 is an example, and another method may be adopted as long as the bias of the attitude angular velocity can be subtracted from the value of the attitude angular velocity.
  • the attitude estimation unit 312 is based on the information on the attitude angular velocity after calibration output by the angular velocity calibration unit 311 and the information on the moving acceleration output by each sensor device 20, and the attitude of the mounting portion of each sensor device 20. Estimate the information and the direction of gravity at the mounting site. Then, the attitude estimation unit 312 uses the information of the attitude angular velocity output by each sensor device 20 (represented by the coordinate system unique to each sensor device) as a reference on the floor surface on which the subject is standing. Parallel to the floor surface, the front-back direction (the front direction is, for example, the positive direction) in the initial posture of the subject is the Y-axis, and the left-right direction (the left direction when viewed from the subject is the positive direction) is X. It is converted into information on the attitude angular velocity around each axis in the global coordinate system with the direction perpendicular to the floor as the axis and output.
  • the attitude estimation unit 312 adds the information of the moving acceleration output by each sensor device 20, the information of the attitude angular velocity converted to the above-mentioned global coordinate system, and the attitude information of the mounting portion of each sensor device 20 (global). Posture quotation using rotation around each axis of coordinates) and is output.
  • the process of estimating the attitude information and the direction of gravity performed by the attitude estimation unit 312 is performed by the widely known Madgwick filter (S. Madgwick, An efficiency orientation filter for inertia and inertia / magnetic sensor arrays, April 30, 2010 (https). //www.samba.org/tridge/UAV/madgwick_internal_report.pdf)), so detailed explanation here is omitted.
  • Madgwick filter S. Madgwick, An efficiency orientation filter for inertia and inertia / magnetic sensor arrays, April 30, 2010 (https). //www.samba.org/tridge/UAV/madgwick_internal_report.pdf)
  • the gravitational acceleration removing unit 314 receives input of the moving acceleration information output by each sensor device 20 and the attitude information (information obtained by the attitude estimating unit 312) of the mounting portion of each sensor device 20 to obtain the moving acceleration. After subtracting the value of the corresponding acceleration offset from the information and correcting it, the corresponding posture information is used to obtain and output the information on the moving acceleration of the mounting portion of each sensor device 20 in the above global coordinate system.
  • the speed estimation processing unit 315 outputs information on the attitude angular velocity of the mounting portion of each sensor device 20 in the global coordinate system, which is output by the attitude estimation unit 312, and each of them, which is output by the gravitational acceleration removal unit 314, in the global coordinate system. Using the information on the moving acceleration of the mounting portion of the sensor device 20, the information on the moving speed of the mounting portion of each sensor device 20 in the global coordinate system is calculated and output.
  • This calculation may be performed by, for example, time-integrating the information of the moving acceleration.
  • information on the moving speed may be obtained as follows. That is, the speed estimation processing unit 315 uses information on the attitude angular velocity and movement acceleration of the mounting portion of each sensor device 20 in the global coordinate system (that is, information on these time-series changes) obtained at a plurality of time points. , The attitude information of the mounting part in the global coordinate system is obtained based on the information of the attitude angular velocity. Next, the speed estimation processing unit 315 uses this attitude information and the movement acceleration information as input, and machine-learns the relationship between the position information of the mounting portion of each sensor device 20 (movement). Information on the position of the mounting portion of each sensor device 20 is sequentially obtained by using (corresponding to the speed estimation machine learning result).
  • the speed estimation processing unit 315 obtains information on the moving speed of the mounting portion of each sensor device by the time difference (differentiation) of the information on the position of the mounting portion of each sensor device 20 sequentially obtained here.
  • Such a neural network for moving speed estimation can be realized by, for example, a multi-layer network including an input layer, an LSTM (Long-Short Term Memory) block, and an output layer.
  • the input layer includes two fully connected layers and the output layer includes three fully connected layers.
  • the activation function used for the output of each layer other than the input layer and the final layer of the output layer uses a non-linear function such as ReLU, and only the final layer of the output layer is used to obtain an output by using a linear function.
  • each output of the sensor device 20 mounted on each mounting part when the position of each mounting part is separately measured and known at a plurality of time points in advance is used. obtain. Then, the output is processed by the angular velocity calibration unit 311, the attitude estimation unit 312, and the gravitational acceleration removal unit 314, and each sensor device in a plurality of sets (at each time point and at each mounting site) in the global coordinate system. The posture information based on the posture angular velocity of the mounting portion of 20 is obtained, and the posture information and the movement acceleration information are obtained.
  • the output of the neural network for estimating the movement speed to be the target of machine learning is obtained, and the backpropagation based on the difference between the output and the known position is obtained.
  • the neural network for estimating the moving speed is machine-learned.
  • the neural network for estimating the moving speed machine learning result for estimating the moving speed
  • the present embodiment is not limited to this, and for example, the relationship between the movement acceleration and attitude information of each mounting portion of each sensor device 20 and the moving speed of the mounting portion of each sensor device 20 is machine-learned.
  • a neural network may be used.
  • the information on the attitude angular velocity and the movement acceleration at each time point obtained here is used as the input of the movement speed estimation neural network, and corresponds to the output of the movement speed estimation neural network.
  • the weight between each layer of the moving speed estimation neural network is repeatedly corrected by back propagation using the known difference between the moving speed and the moving acceleration of the mounting portion of the sensor device 20.
  • machine learning may be performed by a so-called distillation method that utilizes another neural network for estimating the moving speed that has already been machine-learned.
  • the inertial velocity estimation unit 31 receives the information on the moving acceleration and the information on the attitude angular velocity output by each sensor device 20 at predetermined timings, and based on the information on the moving acceleration and the information on the attitude angular velocity. Information on the movement speed and movement acceleration of each mounting portion of each estimated sensor device 20 is obtained. Further, in the example of the present embodiment, the inertial velocity estimation unit 31 is obtained in the process of these calculations as well as the information on the moving velocity and the moving acceleration in the global coordinate system of each mounting portion of each sensor device 20. The attitude angular velocity information and the attitude information in the global coordinate system may also be output.
  • the inertial velocity estimation unit 31 estimates the movement velocity information and the attitude angular velocity information in the global coordinate system of each mounting portion of each sensor device 20, and integrates the attitude angular velocity information (attitude angular velocity). Multiply the information by the time ⁇ t and add it to the posture information obtained at the previous timing for the corresponding part) to obtain the posture information of each part corresponding to the current timing.
  • the inertial velocity estimation unit 31 integrates the information on the moving speed of each part (multiplies the moving speed by the time ⁇ t and adds the corresponding part to the information on the position obtained at the previous timing). Obtain information on the position of each part at this timing.
  • the inverse kinematics model calculation unit 32 uses information on the position and orientation of one of the parts (for example, the hand) that correlates with each other's position and posture information, such as the hand and wrist, and the other (for example, the wrist). The attitude information of is requested. Specifically, the inverse kinematics model calculation unit 32 repeats at predetermined timings (for example, at each timing ⁇ t when the inertial velocity estimation unit 31 receives inertial information from the sensor device 20), and determines the human body. Accepts input of site position and posture information. Then, the inverse kinematics model calculation unit 32 estimates the position and posture information of other predetermined parts of the human body at each timing and sequentially outputs the information.
  • predetermined timings for example, at each timing ⁇ t when the inertial velocity estimation unit 31 receives inertial information from the sensor device 20
  • the inverse kinematics model calculation unit 32 estimates the position and posture information of other predetermined parts of the human body at each timing and sequentially outputs the information.
  • the estimation method here is a method using an inverse kinematics model calculation, for example, a method using an inverse kinematics solver such as FABRIK (Forward and Backward Reaching Inverse Kinetics), a method using deep learning, Katsu Yamane et al., "Human Figure”.
  • FABRIK Forward and Backward Reaching Inverse Kinetics
  • Katsu Yamane et al. "Human Figure”.
  • the inverse kinematics model calculation unit 32 is based on the posture information of the hand portion and the information of the position of the hand output by the inertial velocity estimation unit 31, and from these, the wrist Estimate the position. Further, the inverse kinematics model calculation unit 32 estimates the wrist posture information based on the estimated wrist position and hand posture information.
  • the inverse kinematics model calculation unit 32 stores the estimation results of the wrist positions of the most recent multiple times, and obtains information on the wrist movement speeds of the most recent multiple times from these differences. Further, information on the movement acceleration of the wrist is obtained from the difference in the information on the movement speed, and each is output.
  • the part position / velocity estimation unit 33 receives input of the position and movement speed information, posture information, movement acceleration, etc. of a part of the part on the human body model, and is different from the above part on the human body model. Estimate and obtain information on the position and velocity of other different parts.
  • the human body model used here is branched left and right from the head node P1, the neck node P2, the chest node P3, the waist node P4, and the neck node P2, as illustrated in FIG. It includes shoulder nodes P5 and P6 at each tip, elbow nodes P7 and P8 connected to each shoulder node, and wrist nodes P9 and P10 connected further ahead.
  • this human body model includes hip node nodes P11 and P12 connected to the left and right branches from the waist node P4, knee nodes P13 and P14 connected to the ends of each of these hip nodes, and each knee.
  • the ankle nodes P15 and P16 which are connected to the tip of the part node and are the end nodes, are included.
  • this human body model includes hand nodes P17 and P18 further connected to the terminal side from each of the wrist nodes P9 and P10. Each of these nodes corresponds to each part on the human body model.
  • the site position / velocity estimation unit 33 uses the sensor device to obtain the position and posture information of the node. It is set using the position and attitude information (including the case estimated based on the inertial information) obtained by 20. Even if the sensor device 20 is attached to the node, if the camera C cannot take a picture of the sensor device 20 (when the position cannot be detected by a direct method such as when it is out of the field of view), the relevant case is concerned. It is set using the estimation result such as the position and attitude information of the node using the attitude information of the node and the information of the moving acceleration (inertia information).
  • the sensor device 20 If the sensor device 20 is not attached to the node part, information on the position and posture of the sensor device 20 attached to another part (close part) (including the case estimated based on inertial information). Is used to estimate and set the position and orientation information of the node.
  • the site position velocity estimation unit 33 uses the position and posture (orientation) of the head node P1 of this human body model and the left and right hand nodes (P17, P18 connected to the tip of the wrist node). Position and movement acceleration (when the sensor device 202 held in the hand can be photographed by the camera C) or posture information and movement acceleration (attitude angular velocity output by the IMU sensor of the controller device 202 held by the subject in the hand). And obtained based on the moving acceleration. Used when the sensor device 202 held in the hand cannot be photographed by the camera C) and the position and posture information or posture information and moving acceleration of the left and right ankle nodes P15 and P16. Accept input.
  • the inverse kinematics model calculation unit 32 estimates the position and posture information of the left and right wrist nodes P9 and P10 based on the position and posture information of the left and right hand nodes P17 and P18, and the information of the movement acceleration.
  • the site position speed estimation unit 33 inputs the position and posture information of the left and right wrist nodes P9 and P10 and the movement acceleration information, and the estimated position and posture information of the chest node P3 and the waist node P4. Based on the position and posture information of each part and the estimated position and posture information of each part, the position of each node (part) of the human body model is estimated using the above human body model. The result of machine learning about the relationship between each node in the human body model may be used for this estimation.
  • the site position / velocity estimation unit 33 attaches (or) information on the position and posture of at least the head and left and right hands of the subject (position and posture information (rotation angle) in the global coordinate system) to the position.
  • position and posture information rotation angle
  • Each sensor device 20 gripped at the position is directly acquired from an image or the like captured by the camera C (corresponding to the position detecting means of the present invention).
  • the site position / velocity estimation unit 33 uses the directly acquired information to obtain the position and posture information of the chest node P3 of the human body model, the positions of the left and right wrist nodes P9 and P10, and the like.
  • the position and posture information of the necessary nodes are obtained, and the parts such as the nodes at each end that are predetermined as the parts necessary for estimating the posture information of the subject based on the human body model (hereinafter referred to as the reference parts).
  • the reference parts include head node P1, chest node P3, wrist nodes P9, P10, and ankle nodes P15, P16
  • posture information, and movement acceleration information are set.
  • the difference in the position information may be used, or the information on the moving acceleration output by the sensor device 20 may be used.
  • the site position / velocity estimation unit 33 is a node whose position and posture can be directly acquired from an image or the like captured by the camera C among the nodes of the reference site, or the relevant node.
  • the position, attitude information, and movement acceleration are set based on the acquired or estimated information.
  • the site position / velocity estimation unit 33 is an inertial velocity estimation unit for the nodes whose position and orientation cannot be directly acquired from the image or the like captured by the camera C among the nodes of the reference portion.
  • the position, posture information, and movement acceleration are set using the estimated value of the position and posture information output by 31 and the information of the movement acceleration.
  • the site position velocity estimation unit 33 obtains the posture information, the movement acceleration information, and the like from the information output by the inverse kinematics model calculation unit 32.
  • the part position / velocity estimation unit 33 estimates the position and movement speed of each node of the predetermined human body model based on the position, posture information, and movement acceleration of the set node (node corresponding to the reference part).
  • the site position / velocity estimation unit 33 obtains information such as the position, posture information, and movement speed of the wrist nodes P9 and P10, the position and movement of the hand nodes P17 and P18 are performed by the inverse kinematics solver or the like. The speed will be estimated.
  • the site position speed estimation unit 33 outputs the estimation result of the position and the movement speed of each node of the human body model.
  • the correction speed calculation unit 34 receives information on the moving speed of the mounting part of each sensor device 20 output by the inertial speed estimation unit 31 in the global coordinate system, and each node of the human body model output by the part position speed estimation unit 33. Information on the corrected movement speed of each part is obtained by using the information on the movement speed of each part of the above.
  • the correction speed calculation unit 34 uses the global coordinates of the head based on the output of the sensor device 20 mounted on the head. Obtain information on the moving speed of the system.
  • the correction speed calculation unit 34 is based on the inertial information output by the sensor devices 20 when the positions of the sensor devices 20 attached to the left and right hands cannot be directly obtained for the hand nodes P17 and P18. Using the outputs of the inertial velocity estimation unit 31 and the site position velocity estimation unit 33, information on the moving velocity in the global coordinate system is obtained.
  • the correction speed calculation unit 34 moves the portion output by the inertial speed estimation unit 31 for each portion where the sensor device 20 is mounted and the position of the mounted sensor device 20 cannot be directly obtained.
  • the speed and the moving speed of the corresponding part output by the part position speed estimation unit 33 are combined using a Kalman filter and output as a correction speed.
  • the correction speed calculation unit 34 receives information on the movement speed of the wrist part estimated by the inverse kinematics model calculation unit 32 and the movement of the corresponding wrist part output by the part position speed estimation unit 33. The speed is combined with the Kalman filter and output as the correction speed.
  • the correction speed calculation unit 34 uses the inertial speed estimation unit 31 or the inverse kinematics model calculation unit 32 or the like to output information on the movement speed and the site position speed estimation unit 33.
  • the weight related to the synthesis with the movement speed information obtained by using the human body model can be obtained for each node, such as the position information of the node, directly from the image taken by the camera C of the sensor device 20 or the like. Elapsed time since the difference between the last time estimated from the directly obtained information (that is, obtained by the direct method) and the current time (the position cannot be obtained by the direct method) It may be determined based on time).
  • control unit 11 represents the time point at which the position information or the like of the sensor device 20 can be directly acquired from the image or the like captured by the camera C for each sensor device 20. Get information.
  • the time information may be acquired by a widely known method such as acquisition from an NTP server or the like via a clock IC or a network.
  • the correction speed calculation unit 34 records the last time acquired by the last direct method for each node. Specifically, for each node, when the information or the like of the position of the node can be obtained by the direct method from the image or the like captured by the camera C, the sensor device 20 used in the direct method. The last time (if there are a plurality of them, the earliest one) directly acquired from the information captured by the camera C is recorded as the last time for the node.
  • the correction speed calculation unit 34 refers to the last time recorded for each node, obtains the difference between the last time and the current time (time at the time of processing), and calculates the speed related to the node based on the difference. Change the weight related to the composition by the Kalman filter for estimation. Specifically, when the time difference is relatively small, the correction speed calculation unit 34 increases the weight related to the movement speed output by the inertial speed estimation unit 31 or the inverse kinematics model calculation unit 32 for the corresponding node. , The weight related to the movement speed calculated by the site position speed estimation unit 33 is reduced.
  • the correction speed calculation unit 34 reduces the weight related to the movement speed output by the inertial speed estimation unit 31 or the inverse kinematics model calculation unit 32 for the corresponding node, and the site position.
  • the weight related to the movement speed calculated by the speed estimation unit 33 is increased.
  • the weight from the time difference not only the time difference but also the estimated movement amount since the last time when the information was obtained by the direct method and the IMU sensor can be used.
  • the acceleration obtained from the output inertial information or the like, the magnitude of the estimated velocity may be calculated and stored, and these information may be taken into consideration. For example, even if the time difference is relatively large, if the movement amount, movement speed, or (maximum value) of the movement acceleration during that time is small, it is judged that the node is stationary and the correction speed calculation is performed.
  • the unit 34 increases the weight related to the movement speed output by the inertial velocity estimation unit 31 or the reverse kinematics model calculation unit 32 for the corresponding node, and decreases the weight related to the movement speed calculated by the site position speed estimation unit 33. May be.
  • the correction position calculation unit 35 is obtained by the part position velocity estimation unit 33 and the position information of each reference part output by the inertial velocity estimation unit 31 (other than the wrist) or the inverse kinematics model calculation unit 32 (wrist part).
  • the positions of the nodes of the corresponding reference parts are combined with the Kalman filter to obtain the correction position of each reference part, and the correction position of each reference part is output.
  • the correction position calculation unit 35 is the reference portion output by the inertial speed estimation unit 31 or the inverse kinematics model calculation unit 32, as in the correction speed calculation unit 34.
  • the weight related to the synthesis of the position information and the position information obtained by the site position velocity estimation unit 33 can be obtained for each node by a direct method. It may be determined based on the difference between the time and the current time (the elapsed time since the position was not detected by the direct method).
  • the correction position calculation unit 35 increases the weight of the information related to the position output by the inertial velocity estimation unit 31 or the inverse kinematics model calculation unit 32 for the corresponding node. , The weight related to the position information of the human body model calculated by the site position velocity estimation unit 33 is reduced.
  • the correction position calculation unit 35 reduces the weight of the information related to the position output by the inertial velocity estimation unit 31 or the inverse kinematics model calculation unit 32 for the corresponding node, and reduces the weight of the portion.
  • the weight related to the position information of the human body model calculated by the position / velocity estimation unit 33 is increased.
  • the correction position calculation unit 35 responds. Increase the weight of the information related to the position output by the inertial velocity estimation unit 31 or the inverse kinematics model calculation unit 32, and decrease the weight related to the position information of the human body model calculated by the site position velocity estimation unit 33. May be.
  • the posture of the hand is determined by the inverse kinematics solver.
  • the posture of the wrist is obtained from the information of the wrist and acceleration, the position is estimated from the posture of the wrist and the acceleration (for example, by a machine learning method, etc.), and then the hand (end) is based on the estimated wrist position information.
  • the position and posture can be estimated by the inverse kinematics solver. That is, since the position and posture of the hand can be estimated by using the information of the constraint of the movement of the human body, the accuracy of the position estimation based on the information obtained by the IMU sensor or the like can be improved by using the estimation result.
  • the posture of a correlated node is an uncorrelated node, such as a correlated node that correlates with posture and position is adjacent to such an uncorrelated uncorrelated node.
  • the posture and acceleration of the uncorrelated node are obtained from the posture and acceleration of the uncorrelated node by the kinematic solver, and the correlation is obtained.
  • the position of the uncorrelated node is estimated by a kinematic solver based on the estimated position information of the correlated node. It may be that. That is, since the position and orientation of the uncorrelated node can be estimated by using the motion constraint information, the accuracy of the position estimation based on the information of the uncorrelated node obtained by the IMU sensor or the like using the estimation result. Can be improved.
  • the output unit 36 outputs the correction position of each reference part output by the correction position calculation unit 35 to the part position speed estimation unit 33. Further, the value of this output is temporarily held by the inertial velocity estimation unit 31.
  • the output unit 36 outputs the correction speed of each part output by the correction speed calculation unit 34 and the correction position of each part output by the correction position calculation unit 35, and performs various processes (for example, the target person). (Processing such as estimating the posture (what kind of pose it is)).
  • the output unit 36 may separately calculate and obtain the correction speed of the hand part among the correction speeds of each part output by the correction speed calculation unit 34 by using the correction speed of the wrist part.
  • the output unit 36 assumes that the correction speed of the wrist portion and the correction speed of the hand portion are obtained by adding the relative speed of the movement of the hand to the wrist to the speed of the wrist.
  • the movement speed of the hand is obtained by adding the movement speed of the hand output by the inertial speed estimation unit 31 to the correction speed of the wrist portion and subtracting the movement speed of the wrist output by the inverse kinematics model calculation unit 32. May be.
  • the output unit 36 includes the correction speed of the wrist portion output by the correction speed calculation unit 34 and the movement speed of the hand output by the inertial speed estimation unit 31 (furthermore, the movement of the wrist output by the inverse kinematics model calculation unit 32). (Velocity may be used) as an input, and the moving speed of the hand with respect to these inputs may be obtained using the machine learning result (neural network, etc.) obtained by machine learning based on the measurement result in advance. Good.
  • the output unit 36 may further calculate and obtain the correction position of the hand part among the correction positions of each part output by the correction position calculation unit 35 by using the correction position of the wrist part.
  • the output unit 36 assumes that the correction position of the wrist portion and the correction position of the hand portion are obtained as positions that are relative to the wrist by a predetermined distance in the direction represented by the posture information of the hand.
  • a predetermined value predetermined as the size of an average person's hand
  • the output unit 36 receives the correction position of the wrist portion output by the correction position calculation unit 35 and the hand posture information output by the inertial speed estimation unit 31 as inputs, and sets the position of the hand with respect to these inputs in advance.
  • the position of the hand may be obtained using the machine learning result (neural network or the like) obtained by machine learning based on the measurement result.
  • the human body model used by the part position speed estimation unit 33 does not necessarily have a hand node. It does not have to be included. That is, the site position speed estimation unit 33 does not necessarily have to estimate the movement speed and position of the hand node.
  • the present embodiment has the above configuration and operates as follows.
  • a player of a game application is a target person. This player wears the head-mounted display HMD, which is the head sensor device 201, on the head, and holds the controller device 202 in both hands. Further, a foot sensor device 203 is attached to each of the left and right ankles.
  • the player installs the camera C and takes a predetermined pose (for example, T pose) in a state where the whole body (or at least the upper body) of the player is initially imaged.
  • a predetermined pose for example, T pose
  • the control unit 11 of the information processing device 1 initially starts executing the game application.
  • the position and orientation (orientation) of the player's head, the left and right hands, and the ankles in the global coordinate system are estimated based on the images of the sensor devices 20 captured by the camera C.
  • the control unit 11 then, based on the position and posture information of these parts, each part of the neck, chest, lumbar, shoulder, elbow, wrist, hip, knee, and ankle of the human body model corresponding to the player. Set the position and posture of the node corresponding to (If the sensor device 20 is not attached to the corresponding part, the position and posture are estimated from the position and posture of the part set by the information of the sensor device 20. Ask).
  • control unit 11 acquires the posture angular velocity information output by each sensor device 20 a plurality of times while the player is stationary, and averages the posture angular velocity information obtained for each sensor device 20 for each sensor. It is obtained as an angular velocity bias of the device 20 and is held in a storage unit 12 or the like.
  • the control unit 11 proceeds with the processing of the game application after obtaining the angular velocity bias. After that, the player will play the game of the game application.
  • control unit 11 acquires an image captured by the camera C at predetermined timings (for example, every time ⁇ t), and the sensor device 20 is attached to the sensor device 20 captured in the image.
  • the position and posture (orientation) of each part of the player in the global coordinate system are estimated based on the image.
  • control unit 11 obtains inertial information (information on the moving acceleration and the attitude angular velocity in the coordinate system of the sensor) from each sensor device 20 and performs the following processing.
  • the control unit 11 selects the sensor devices 20 sequentially (or may be processed in parallel), and the attitude angular velocity input from the selected sensor devices 20 (for the sake of explanation, this is referred to as a sensor of interest).
  • the value stored in the storage unit 12 as the corresponding angular velocity bias is subtracted from the information (since the attitude angular velocity is a vector value, each corresponding component is subtracted) to obtain the information on the attitude angular velocity after calibration.
  • the control unit 11 estimates the attitude information of the mounting site of the sensor of interest (obtained at the previous timing) and the direction of gravity at the mounting site (processing of the mudge wick filter), and uses this estimation result. Then, the information of the attitude angular velocity output by the attention sensor (represented by the coordinate system peculiar to the attention sensor) is converted into the information in the global coordinate system.
  • control unit 11 has the attitude angular velocity information (a) after this calibration (and converted to the global coordinate system) and the attitude of the corresponding portion obtained at the previous timing.
  • the information is added and integrated (S11) to obtain the attitude information (represented as the attitude quotation).
  • control unit 11 adds and integrates the information of the moving acceleration (converted to the value in the global coordinate system) output by the attention sensor and the moving speed of the corresponding part obtained at the previous timing. (S12), the information (Vp) of the temporary moving speed is obtained. Further, this moving speed is further added to the information on the position of the corresponding portion obtained at the previous timing and integrated (S13) to obtain the information on the temporary position (Pp).
  • control unit 11 receives information on the attitude angular velocity and the moving acceleration of the mounting portion of the sensor of interest in the global coordinate system obtained by a plurality of past processes (processes for each time ⁇ t) as input, and each sensor device 20 Information on the moving speed of the mounting portion of the sensor of interest may be obtained using a moving speed estimation neural network that machine-learns the relationship between the moving acceleration to be output by the sensor device 20 and the moving speed of the mounting portion of the sensor device 20. ..
  • a neural network common to each sensor device 20 (with a common weight between layers) may be used.
  • control unit 11 obtains position, moving speed, moving acceleration, and posture information of each mounting portion of each sensor device 20 in the global coordinate system.
  • the control unit 11 estimates the position of the wrist by using the position and posture information of the hand part among the above parts (S14). Since this estimation process has already been described, the repeated description will be omitted. Further, the control unit 11 obtains the wrist speed (S15) by using the wrist position information estimated at the past timing (by the difference), and further, the wrist speed estimated at the past multiple timings. From the information (based on the difference), the wrist movement acceleration is obtained (S16).
  • the control unit 11 estimates the wrist posture information from the wrist position obtained here and the temporary posture information about the hand (S17). This estimation process has already been described.
  • the control unit 11 uses a predetermined human body model corresponding to the player, and a node of a reference portion (again, a head node) defined in advance as a portion required for kinematically estimating the posture of the target person.
  • Posture information temporary position, estimated in step S14, or could be obtained by direct method
  • posture information temporary posture information or estimated in step S17
  • movement acceleration information temporary movement acceleration information or step S16. Things
  • control unit 11 uses a machine learning result (neural network or the like) in which the relationship between the position, attitude information, and movement acceleration information of the nodes of these reference parts and the position and movement speed of each node is machine-learned in advance. , Estimate the position and moving speed of the node corresponding to each part of the human body model (S18).
  • a machine learning result neural network or the like
  • control unit 11 updates the information on the position and movement speed (hereinafter, referred to as model position and model movement speed) of each node of the human body model at each predetermined timing (every time ⁇ t).
  • the control unit 11 uses the Kalman filter to synthesize the positions of the corresponding nodes (excluding the wrist nodes) obtained in step S13 and the wrist positions obtained in step S14 with respect to the model positions of each part. Then, it is set as the correction position of each node (S19). Further, the control unit 11 obtains the positions of the left and right hands by using the correction positions of the left and right wrists and the posture information of the left and right hands obtained in step S11 among the correction positions (S20). Then, the control unit 11 outputs the correction position of each node (excluding the position of the hand) and the position of the hand obtained in step S20 (output of the position).
  • control unit 11 applies a Kalman filter to the moving speed of the corresponding node (excluding the wrist node) obtained in step S12 and the moving speed of the wrist obtained in step S15 with respect to the model moving speed of each part. It is used and combined to obtain the correction speed of each node (S21). Further, the control unit 11 moves the left and right hands using the correction speeds of the left and right wrists, the correction speeds of the left and right hands obtained in step S12, and the movement speeds of the wrists obtained in step S15. Find the speeds (S22). Then, the control unit 11 outputs the correction speed of each node (excluding the hand node) and the hand movement speed obtained in step S22 (speed output).
  • the control unit 11 is a node of a reference portion (again, the head node P1, which is determined in advance as a portion required for estimating the posture of the subject based on inverse kinematics in the human body model corresponding to the player.
  • the position and posture information of the chest node P3, the wrist nodes P9 and P10, and the ankle nodes P15 and P16) is set.
  • control unit 11 estimates the position and orientation of the nodes of the reference portion from the nodes that can be directly acquired from the image or the like captured by the camera C or the directly acquired information. For the created node, the position and attitude information is set based on the acquired or estimated information.
  • control unit 11 performs the above processing for the node of the reference portion whose position and attitude information cannot be directly acquired from the image or the like captured by the camera C of the sensor device 20. Based on the correction position and posture information of the node of each reference part obtained in the above, the position and posture information are set and used for processing at the next timing.
  • control unit 11 outputs information on the position and movement speed of each part estimated here (which may further include posture information) to the game application and uses it for the processing.
  • the inertial information output by each sensor device is corrected based on the movement speed estimation machine learning result, and the influence of random noise and the like appearing in the output of the IMU sensor is reduced.
  • each sensor device 20 are detected by using the camera C fixed at a predetermined position, but the present embodiment is not limited to this.
  • a part of the sensor device 20 is equipped with a camera (rather than a marker such as an LED), processes images sequentially captured by the camera, and tracks the position of the feature point, so-called SLAM (Simultaneous Localization and).
  • SLAM Simultaneous Localization and
  • the position, orientation, etc. may be estimated by the processing of Mapping).
  • the foot sensor device 203 to be attached to the ankle may not be provided with a marker, and its position, posture, etc. may be estimated only by the output of the IMU sensor.
  • the position of the feet may be estimated and obtained by an inverse kinematic method.
  • the processing of the present embodiment can be applied even when the foot sensor device 203 is not used.
  • the information processing device 1 estimates the position of each part from the head to the hand, or estimates the position of the part of the foot using a human body model.

Abstract

複数のセンサから各センサが取り付けられた装着部位の移動加速度及び姿勢角速度の情報を少なくとも取得し、当該取得した移動加速度及び姿勢角速度の情報に基づいて、センサの各々が取り付けられた装着部位の所定の座標系内での移動速度を推定する。そして予め定められた対象者の各部位の位置を、上記推定された各装着部位の移動速度の情報に基づいて推定する。

Description

情報処理装置、情報処理装置の制御方法、及びプログラム
 本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
 対象者の姿勢の情報を推定する処理として、対象者の頭部、両手、腰、両足首に装着したマーカー等の三次元空間内での位置の情報を、対象者を複数のカメラで撮像する等の方法によって取得し、これら取得した情報に基づく逆運動学(Inverse Kinematics)的方法によって、上記三次元空間内での対象者の姿勢の情報を推定するものが知られている。
 しかしながら、上記従来のマーカーの位置を用いた逆運動学的な方法では、対象者の上記各部の位置の情報を取得する必要があり、対象者は、マーカー等を上記各部に装着することが求められていた。しかしながら、マーカーの装着は手間がかかり、対象者が装着するマーカーの数はなるべく低減することが好ましい。また、対象者の姿勢によっては上記各部の全てのマーカーの位置を常に撮影して検出できるとは限らない。
 そこでこのような場合を考慮して、マーカーとともにIMU(慣性計測)センサを対象者に装着させ、マーカーの位置が検出できない場合にIMUセンサによる検出結果を用いて、当該マーカーの位置の情報を推定することが考えられている。しかしながら、IMUセンサの出力にはノイズが含まれており、また位置を得るためには二度の積分演算を要するため、これらのノイズによる誤差が累積してしまい、IMUセンサによる検出結果だけでは数秒程度の時間でも位置推定誤差が大きくなって、そのままでは利用できない。
 本発明は上記実情に鑑みて為されたもので、比較的少ない数のデバイスを使用し、またデバイスの位置が直接的方法により検出できない場合でも、例えば、誤差を低減した、IMUセンサの出力に基づく対象者の姿勢推定を行うことができる情報処理装置、情報処理装置の制御方法、及びプログラムを提供することを、その目的の一つとする。
 上記従来例の問題点を解決する本発明は、対象者の複数の装着部位に装着され、当該装着部位の移動加速度及び姿勢角速度の情報を少なくとも検出するセンサに接続される情報処理装置であって、前記複数のセンサから各センサが取り付けられた装着部位の移動加速度及び姿勢角速度の情報を少なくとも取得する取得手段と、前記取得した移動加速度及び姿勢角速度の情報に基づいて、前記センサの各々が取り付けられた装着部位の所定の座標系内での移動速度を推定する速度推定手段と、前記対象者の姿勢を逆運動学により推定するために必要となる部位として、予め定められた前記対象者の各部位の位置を、前記推定された各装着部位の移動速度の情報に基づいて推定する位置推定手段と、を含み、当該推定した前記各部位の位置の情報を、所定の処理に供することとしたものである。
 これにより、少なくとも頭部と一方の手とに装着したデバイスなど、比較的少ない数のデバイスを使用し、またデバイスの位置が直接検出できない場合でも、対象者の姿勢を推定できる。
本発明の実施の形態に係る情報処理装置の構成及びその接続例を表すブロック図である。 本発明の実施の形態に係る情報処理装置に接続されるセンサデバイスの装着例を表す説明図である。 本発明の実施の形態に係る情報処理装置の処理例を表す機能ブロック図である。 本発明の実施の形態に係る情報処理装置の処理例を表すもう一つの機能ブロック図である。 本発明の実施の形態に係る情報処理装置が用いる人体モデルの例を表す説明図である。 本発明の実施の形態に係る情報処理装置の一部の動作例を表す説明図である。
 本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態の一例にかかる情報処理装置1は、図1に例示するように、制御部11と、記憶部12と、操作制御部13と、出力制御部14とを基本的に含んで構成され、対象者が各装着部位に装着した複数のセンサデバイス20a,b…との間で有線または無線にて通信可能に接続されている。
 ここでセンサデバイス20は、図2に例示するように、頭部センサデバイス201と、対象者が左右のそれぞれの手に把持するコントローラデバイス202と、対象者の左右の足首にそれぞれ装着される足センサデバイス203とを含む。
 頭部センサデバイス201は、例えば、対象者の頭部に装着されるヘッドマウントディスプレイHMDと、対象者を撮像するカメラCとを含む。このカメラCは例えばステレオカメラであり、カメラCと撮像された対象物までの距離の情報を取得可能なものとする。
 ヘッドマウントディスプレイHMDは、情報処理装置1の出力制御部14から入力される映像を表示するディスプレイを備えるとともに、LEDなどのマーカーを有し、情報処理装置1はカメラCが撮像した画像から対象者が頭部に装着したヘッドマウントディスプレイHMDのマーカーを検出して、ヘッドマウントディスプレイHMDの位置や向き(従ってそれを装着する対象者の頭部の位置や向き)等の姿勢情報を取得する。
 コントローラデバイス202は、実質的に円柱状の形状を備え、対象者が手に把持して利用するものである。このコントローラデバイス202には、ヘッドマウントディスプレイHMDと同様、その筐体にLEDなどのマーカーが配され、情報処理装置1はカメラCが撮像した画像から対象者が両手にそれぞれ把持したコントローラデバイス202のマーカーを検出して、各コントローラデバイス202の位置や向き(従ってそれを把持する対象者の手の位置や向き)等の姿勢情報を取得してもよい。
 なお、本実施の形態では、ヘッドマウントディスプレイHMDである頭部センサデバイス201や、コントローラデバイス202は、さらに互いに直交する3つの軸方向の移動加速度及び当該各軸周りの角速度を計測するIMUセンサ(慣性計測センサ)を内部に備えて、当該計測した各軸方向の移動加速度の情報と、各軸周りの角速度(姿勢角速度)の情報とを、慣性情報として情報処理装置1に対して有線または無線にて出力する。
 また、ここで足センサデバイス203は、図2の例では、対象者の足首に巻き付けて締結可能なベルト2031と、このベルト2031に固定されている本体デバイス2032とを含んでいる。
 この本体デバイス2032は、互いに直交する3つの軸方向の加速度及び当該各軸周りの角速度を計測するIMUセンサ(慣性計測センサ)を内部に備えて、当該計測した各軸方向の移動加速度の情報と、各軸周りの角速度(姿勢角速度)の情報とを、慣性情報として、有線または無線で、情報処理装置1に対して出力する。
 なお、この本体デバイス2032にも、LEDなどのマーカーが配されてもよく、情報処理装置1はカメラCが撮像した画像から、対象者の各足に装着された足センサデバイス203のマーカーを検出できたときには、各足センサデバイス203の位置や向き(従ってそれを装着する対象者の各足の位置や向き)等の姿勢情報を取得することとしてもよい。もっともカメラCは必ずしも対象者の足首までを撮像できなくても構わない。
 つまり、本実施の形態では、各センサデバイス20の位置や姿勢情報は、カメラC等で撮像された画像データに基づいて直接的に得ることも可能であり、また、カメラCで撮像されていない(カメラCの画角外にある)場合は、その内部の慣性計測センサに基づく慣性情報を得て、この慣性情報に基づいて間接的に、各センサデバイス20の位置や姿勢情報を得ることも可能となっている。
 制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。例えばこの制御部11は、ゲームアプリケーションの処理として、コントローラデバイス202の操作や、対象者の姿勢情報等に基づいてゲームアプリケーションの処理を実行する。制御部11は、また、当該ゲームアプリケーションの処理として、ゲーム画面の情報を生成して、出力制御部14を介してヘッドマウントディスプレイHMD等に対して当該ゲーム画面を表示するよう指示する。
 また本実施の形態では、対象者の姿勢情報を得るため、制御部11は、対象者の複数の装着部位に装着され、当該装着部位の移動加速度及び姿勢角速度の情報を少なくとも検出するセンサデバイス20から各センサデバイス20が取り付けられた、対象者の装着部位の移動加速度の情報を少なくとも取得する。
 一例として既に述べたように、センサデバイス20である頭部センサデバイス201(具体的にはそのヘッドマウントディスプレイHMD)やコントローラデバイス202、並びに、足センサデバイス203(具体的にはその本体デバイス2032)は互いに直交する3つの軸方向の加速度と、姿勢角速度とを計測するIMUセンサ(慣性計測センサ)を内部に備えるので、情報処理装置1の制御部11は、このIMUセンサで計測された移動加速度及び姿勢角速度の情報を取得することとする。
 ここで、移動加速度の情報は、それぞれのセンサデバイス20に固有の座標系で取得される。例えばコントローラデバイス202では、内部の加速度センサが取り付けられる方向から、対象者が把持する筐体の長手方向をZ軸とし、このZ軸に直交する面内で、筐体の前後(例えば操作のためのボタンが配置されている位置から前後の軸が決定される)方向をY軸、これらZ,Y軸に直交する方向をX軸として移動加速度の情報が得られる。
 また姿勢角速度の情報は、これらX,Y,Zの各軸まわりの角速度の情報として各センサデバイス20により出力される。
 制御部11は、取得した移動加速度の情報に基づいて、センサデバイス20の各々が取り付けられた対象者の装着部位の移動速度を推定し、逆運動学により当該対象者の姿勢情報を推定するために必要となる部位として予め定められた当該対象者の各部位について、それら各部位の位置を、推定された各装着部位の移動速度の情報に基づいて推定する。
 そして制御部11は、当該推定した上記対象者の各部位の位置や移動速度の情報を、対象者の姿勢を推定する処理等に利用する。この制御部11の詳しい動作については後に述べる。
 記憶部12は、メモリデバイス等であり、制御部11によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ非一時的な記憶媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。またこの記憶部12は、制御部11のワークメモリとしても動作する。
 操作制御部13は、コントローラデバイス202(及びカメラC)から受信した情報に基づいてコントローラデバイス202を把持する対象者の操作の内容を受け入れ、当該操作の内容を表す情報を制御部11に出力する。
 出力制御部14は、制御部11から入力される指示に従い、表示するべき画像の情報をヘッドマウントディスプレイHMDや、他のディスプレイ装置等に出力する。
[対象者の姿勢検出]
 次に、制御部11による対象者の姿勢検出の処理について説明する。本実施の形態の一例では、この処理を行う制御部11は、図3に例示するように、機能的に、慣性速度推定部31と、逆運動学モデル演算部32と、部位位置速度推定部33と、補正速度演算部34と、補正位置演算部35と、出力部36とを含んで構成される。
 慣性速度推定部31は、各センサデバイス20が出力する移動加速度の情報及び姿勢角速度の情報を所定のタイミングごとに繰り返し(例えば時刻Δtごとに繰り返し)受け入れて、これら移動加速度の情報及び姿勢角速度の情報に基づいて推定される各センサデバイス20の各装着部位の移動加速度や姿勢角速度の情報に基づいて、各センサデバイス20の装着部位の移動速度の情報等を得る。
 本実施の形態のある例では、この慣性速度推定部31は、図4に例示するように、さらに機能的に、角速度キャリブレーション部311と、姿勢推定部312と、重力加速度除去部314と、速度推定処理部315とを含んで構成される。
 ここで角速度キャリブレーション部311は、各センサデバイス20が出力する移動加速度の情報及び姿勢角速度の情報を受け入れて、所定のタイミング(例えば最初の情報が受け入れられた時点)で、対象者に対して一時的に静止するように指示する画面を表示する。そして角速度キャリブレーション部311は、対象者が静止したと判断したとき(移動加速度の時間変化が所定のしきい値を下回った状態となったときなど)に、その時点での姿勢角速度の情報を複数回取得して、その平均(各成分ごとに求められる)を、角速度バイアスとして求め、記憶部12等に保持する。その後、角速度キャリブレーション部311は、対象者に対して計測が終了したことを示す画面を提示する。
 また角速度キャリブレーション部311は、角速度バイアスを得た後は、各センサデバイス20が出力する移動加速度の情報及び姿勢角速度の情報を受け入れて、当該姿勢角速度の各成分の値から、対応する角速度バイアスの成分の値を差し引いて、キャリブレーション後の角速度の情報を出力する。
 なお、この角速度キャリブレーション部311の動作は一例であり、姿勢角速度のバイアスを、姿勢角速度の値から差し引く処理を行うことができれば、他の方法が採用されてもよい。
 姿勢推定部312は、角速度キャリブレーション部311が出力する、キャリブレーション後の姿勢角速度の情報と、各センサデバイス20が出力する移動加速度の情報とに基づいて、各センサデバイス20の装着部位の姿勢情報と、その装着部位での重力方向とを推定する。そしてこの姿勢推定部312は、これにより、各センサデバイス20が出力する姿勢角速度の情報(各センサデバイスに固有の座標系で表される)を、対象者が立っている床面を基準とし、床面に平行で、対象者の初期の姿勢での前後方向(前方向を例えば正の方向とする)をY軸、左右方向(対象者から見て左方向を正の方向とする)をX軸とし、さらに床面に垂直な方向をZ軸としたグローバル座標系での各軸まわりの姿勢角速度の情報に変換して出力する。
 さらに、この姿勢推定部312は、各センサデバイス20が出力する移動加速度の情報に加え、上述のグローバル座標系に変換された姿勢角速度の情報と、各センサデバイス20の装着部位の姿勢情報(グローバル座標の各軸まわりの回転を用いた姿勢クオータニオン)とを出力する。
 ここで姿勢推定部312が行う姿勢情報と重力方向の推定の処理は、広く知られたマッジウィックフィルタ(S. Madgwick, An efficient orientation filter for inertial and inertial/magnetic sensor arrays, April 30, 2010(https://www.samba.org/tridge/UAV/madgwick_internal_report.pdf))を用いて行うことができるので、ここでの詳しい説明を省略する。
 重力加速度除去部314は、各センサデバイス20が出力した移動加速度の情報と、各センサデバイス20の装着部位の姿勢情報(姿勢推定部312により得られた情報)の入力を受けて、移動加速度の情報から、対応する加速度オフセットの値を差し引いて補正したうえで、対応する姿勢情報を用いて、上記グローバル座標系での、各センサデバイス20の装着部位の移動加速度の情報を得て出力する。
 速度推定処理部315は、姿勢推定部312が出力する、グローバル座標系での各センサデバイス20の装着部位の姿勢角速度の情報と、重力加速度除去部314が出力する、グローバル座標系での、各センサデバイス20の装着部位の移動加速度の情報とを用い、グローバル座標系での、各センサデバイス20の装着部位の移動速度の情報を演算して出力する。
 この演算は例えば、移動加速度の情報を時間積分することによって行ってもよい。また本実施の形態の一例では、次のようにして移動速度の情報を得てもよい。すなわち、速度推定処理部315は、複数の時点で得られた、グローバル座標系での各センサデバイス20の装着部位の姿勢角速度及び移動加速度の情報(つまりこれらの時系列変化の情報)を用いて、当該姿勢角速度の情報に基づいてグローバル座標系での装着部位の姿勢情報を得る。次に、速度推定処理部315は、この姿勢情報と、移動加速度の情報とを入力とし、各センサデバイス20の装着部位の位置の情報との関係を機械学習した移動速度推定用ニューラルネットワーク(移動速度推定用機械学習結果に相当する)を用いて、各センサデバイス20の装着部位の位置の情報を逐次的に得る。
 そして速度推定処理部315は、ここで逐次的に得られた、各センサデバイス20の装着部位の位置の情報の時間差分(微分)により、各センサデバイスの装着部位の移動速度の情報を得る。
 このような移動速度推定用ニューラルネットワークは、例えば、入力層と、LSTM(Long-Short Term Memory)ブロックと、出力層とを含む、多層ネットワークにより実現できる。この例では入力層は、2層の全結合層を含み、出力層は3層の全結合層を含む。ここで入力層、及び出力層の最終層を除く各層の出力に用いられる活性化関数はReLUなどの非線形関数を用い、出力層の最終層のみ線形関数を用いて出力を得るものとする。
 またこの移動速度推定用ニューラルネットワークを機械学習するときには、予め複数の時点での、各装着部位の位置が別途計測されて既知であるときの、各装着部位に装着したセンサデバイス20の各出力を得る。そして当該出力を、角速度キャリブレーション部311と、姿勢推定部312と、重力加速度除去部314とで処理して、複数組の(各時点、各装着部位での)グローバル座標系での各センサデバイス20の装着部位の姿勢角速度に基づく姿勢情報を得て、当該姿勢情報及び移動加速度の情報を得る。そして、当該得られた姿勢情報及び移動加速度を入力として、機械学習の対象とする移動速度推定用ニューラルネットワークの出力を得て、当該出力と、既知である位置との差に基づくバックプロパゲーションの処理によって、当該移動速度推定用ニューラルネットワークを機械学習する。
 なお、ここでは移動速度推定用ニューラルネットワーク(移動速度推定用機械学習結果)は、各センサデバイス20の各装着部位の移動加速度及び姿勢情報と、各センサデバイス20の位置との関係を機械学習したものとしたが、本実施の形態はこれに限られず、例えば、各センサデバイス20の各装着部位の移動加速度や姿勢情報と、各センサデバイス20の装着部位の移動速度との関係を機械学習したニューラルネットワークを用いてもよい。
 そして、センサデバイス20ごとに、ここで得た各時点での姿勢角速度及び移動加速度の情報を移動速度推定用ニューラルネットワークの入力とし、また、その移動速度推定用ニューラルネットワークの出力と、対応する、既知である当該センサデバイス20の装着部位の移動速度及び移動加速度との差を用いたバックプロパゲーションにより、移動速度推定用ニューラルネットワークの各層間の重みを補正することを繰り返して行う。あるいは、既に機械学習済みとなっている他の移動速度推定用ニューラルネットワークを利用する、いわゆる蒸留の方法によって機械学習を行ってもよい。
 このようにして、慣性速度推定部31は、各センサデバイス20が出力する移動加速度の情報及び姿勢角速度の情報を所定のタイミングごとに受け入れて、これら移動加速度の情報及び姿勢角速度の情報に基づいて推定される各センサデバイス20の各装着部位の移動速度や移動加速度の情報を得る。また本実施の形態の例では、この慣性速度推定部31は、各センサデバイス20の各装着部位のグローバル座標系での移動速度や移動加速度の情報のほか、これらの演算の過程で得られたグローバル座標系での姿勢角速度の情報や姿勢情報を併せて出力してもよい。
 以下の例では、慣性速度推定部31が、各センサデバイス20の各装着部位のグローバル座標系での移動速度の情報及び姿勢角速度の情報を推定し、また、姿勢角速度の情報を積分(姿勢角速度の情報に時刻Δtを乗じた値を乗じて、対応する部位について前回のタイミングで得た姿勢情報に加算して)、今回のタイミングに対応する各部位の姿勢情報を得る。
 さらに慣性速度推定部31は、各部位の移動速度の情報を積分(移動速度に時刻Δtを乗じた値を乗じて、対応する部位について前回のタイミングで得た位置の情報に加算)して、今回のタイミングでの各部位の位置の情報を得る。
 逆運動学モデル演算部32は、手や手首のように、互いの位置や姿勢情報の間に相関のある部位について、その一方(例えば手)に関する位置や向きの情報から、他方(例えば手首)の姿勢情報を求めるものである。具体的にこの逆運動学モデル演算部32は、所定のタイミングごとに(例えば慣性速度推定部31がセンサデバイス20からの慣性情報等を受け入れる時刻Δtごとのタイミングごとに)繰り返して、人体の所定部位の位置及び姿勢情報の入力を受け入れる。そして逆運動学モデル演算部32は、各タイミングでの人体の他の所定部位の位置や姿勢情報を推定して順次出力する。
 ここでの推定の方法は、逆運動学モデル演算、例えば、FABRIK(Forward and Backward Reaching Inverse Kinematics)などの逆運動学ソルバーを用いる方法や、ディープラーニングを用いた方法、山根克ほか,「ヒューマンフィギュアの全身運動生成の協応構造化インタフェース」,日本ロボット学会誌,第20巻,第3号,113ページ(2002年4月)に記載の方法など、広く知られている種々の技術を採用して実現できる。
 本実施の形態のある例では、この逆運動学モデル演算部32は、慣性速度推定部31が出力する、手の部位の姿勢情報と、手の位置の情報とに基づいて、これらから手首の位置を推定する。またこの逆運動学モデル演算部32は、当該推定した手首の位置及び手の姿勢情報に基づいて手首の姿勢情報を推定する。
 このための具体的処理は、本出願人が先に出願した、PCT/JP2018/036973及び、PCT/JP2018/033069の明細書に記載の方法を採用できる。
 さらに本実施の形態では、この逆運動学モデル演算部32は、直近複数回の手首の位置の推定結果を記憶し、これらの差分から、直近複数回分の手首の移動速度の情報を得るとともに、さらに当該移動速度の情報の差分から手首の移動加速度の情報を得て、それぞれ出力する。
 部位位置速度推定部33は、予め定められた人体モデル上の一部の部位の位置や移動速度の情報、姿勢情報、移動加速度等の入力を受けて、当該人体モデル上の上記一部とは異なる他の部位の位置及び速度の情報を推定して求める。
 本実施の形態の一例において、ここで用いられる人体モデルは、図5に例示するように、頭部ノードP1,首部ノードP2,胸部ノードP3,腰部ノードP4と、首部ノードP2から左右に分岐したそれぞれの先にある肩部ノードP5,P6と、各肩部ノードに連結された肘部ノードP7,P8と、さらにその先に連結されたノードである手首部ノードP9,P10とを含む。また、この人体モデルは、腰部ノードP4から左右に分岐した先にそれぞれ連結される股関節部ノードP11,P12と、これら各股関節部ノードの先に連結された膝部ノードP13,P14と、各膝部ノードの先に連結され、末端のノードとなっている足首部ノードP15,P16とを含む。さらに本実施の形態では、この人体モデルは、手首部ノードP9,P10のそれぞれからさらに末端側に連結された手のノードP17,P18を含む。これら各ノードが人体モデル上の各部位に相当する。
 本実施の形態において、部位位置速度推定部33は、人体モデルのうち、ノード(ノードに対応する部位)にセンサデバイス20が装着されている場合は、当該ノードの位置や姿勢情報を当該センサデバイス20によって得られる位置や姿勢情報(慣性情報に基づいて推定された場合を含む)を用いて設定する。またノードにセンサデバイス20が装着されていても、カメラCがそのセンサデバイス20を撮影できない場合(視野の外になっている場合等、直接的な方法で位置が検出できない場合)には、当該ノードの姿勢情報や移動加速度の情報(慣性情報)を用いた該ノードの位置や姿勢情報等の推定結果を用いて設定する。
 そしてノードの部位にセンサデバイス20が装着されていない場合は、他の部位(近接する部位)に装着されたセンサデバイス20の位置や姿勢の情報(慣性情報に基づいて推定された場合を含む)を用いて当該ノードの位置や姿勢の情報を推定して設定する。
 ここでの例では、部位位置速度推定部33は、この人体モデルの頭部ノードP1の位置及び姿勢(向き)と、左右の手のノード(手首部ノードの先に連結されるP17,P18)の位置及び移動加速度(手に把持されたセンサデバイス202がカメラCで撮影できている場合)または姿勢情報及び移動加速度(対象者が手に持ったコントローラデバイス202のIMUセンサが出力する、姿勢角速度及び移動加速度に基づいて得られる。手に把持されたセンサデバイス202がカメラCで撮影できない場合に用いる)と、左右の足首部ノードP15,P16の位置及び姿勢情報または姿勢情報及び移動加速度との入力を受け入れる。
 また、逆運動学モデル演算部32により、左右の手のノードP17,P18の位置及び姿勢情報に基づく左右の手首部ノードP9,P10の位置や姿勢情報、並びに移動加速度の情報が推定されると、部位位置速度推定部33は、これら左右の手首部ノードP9,P10の各位置及び姿勢情報や移動加速度の情報と、推定した胸部ノードP3,腰部ノードP4の各位置及び姿勢情報と、入力された各部位の位置及び姿勢情報、並びに、推定された各部位の位置及び姿勢情報に基づき、先の人体モデルを用いて、人体モデルの各ノード(部位)の位置を推定する。この推定には人体モデル内の各ノード間の関係に関する機械学習の結果が利用されてもよい。
 部位位置速度推定部33は、当初は、対象者の少なくとも頭部及び左右の手の位置や姿勢の情報(グローバル座標系での位置や姿勢情報(回転角度))を、当該位置に装着(あるいは当該位置で把持)された各センサデバイス20をカメラCが撮像した画像等から直接的に取得する(本発明の位置検出手段に相当する)。この当初の状態では、部位位置速度推定部33は当該直接的に取得された情報を利用して、人体モデルの胸部ノードP3の位置及び姿勢情報や、左右の手首部ノードP9,P10の位置等、必要なノードの位置や姿勢情報等を求め、各末端のノードなど、人体モデルに基づく対象者の姿勢情報を推定するために必要となる部位として予め定められた部位(以下基準部位と呼ぶ)のノード(具体的な例としては、頭部ノードP1,胸部ノードP3,手首部ノードP9,P10,及び足首部ノードP15,P16)の位置、姿勢情報、及び移動加速度の情報を設定する。この移動加速度の情報は、位置の情報の差分を用いてもよいし、またはセンサデバイス20が出力する移動加速度の情報を用いてもよい。
 そして、この部位位置速度推定部33は、その後は、上記基準部位のノードのうち、その位置及び姿勢が、センサデバイス20をカメラCが撮像した画像等から直接的に取得できたノードあるいは、当該直接的に取得した情報から推定できたノードについては、当該取得あるいは推定した情報により、その位置、姿勢情報、及び移動加速度を設定する。
 また部位位置速度推定部33は、上記基準部位のノードのうち、その位置及び姿勢が、センサデバイス20をカメラCが撮像した画像等から直接的に取得できなかったノードについては、慣性速度推定部31が出力する位置や姿勢情報の推定値や、移動加速度の情報を用いて、その位置、姿勢情報、及び移動加速度を設定する。
 なお、手首のノードについては、部位位置速度推定部33はその姿勢情報や移動加速度の情報等を、逆運動学モデル演算部32が出力する情報から得る。
 そして部位位置速度推定部33は、当該設定したノード(基準部位に相当するノード)の位置、姿勢情報、及び移動加速度に基づいて所定の人体モデルの各ノードの位置及び移動速度を推定する。
 つまり、この部位位置速度推定部33は、手首部ノードP9,P10の位置や姿勢情報、移動速度等の情報を得た後、逆運動学ソルバー等により、手のノードP17,P18の位置や移動速度を推定することとなる。
 そして部位位置速度推定部33は、人体モデルの各ノードの位置と移動速度との推定の結果を出力する。
 補正速度演算部34は、慣性速度推定部31が出力する各センサデバイス20の装着部位の、グローバル座標系での移動速度の情報と、部位位置速度推定部33が出力する、人体モデルの各ノードの各部位の移動速度の情報と用いて、各部位の補正された移動速度の情報を得る。
 具体的に、この補正速度演算部34は、頭部ノードP1についてセンサデバイス20の位置が直接得られた場合は、当該頭部に装着されたセンサデバイス20の出力に基づいて頭部のグローバル座標系での移動速度の情報を得る。
 また補正速度演算部34は、手のノードP17,P18について、左右の手に装着された各センサデバイス20の位置が直接得られなかった場合は、これらセンサデバイス20が出力する慣性情報に基づく、慣性速度推定部31及び部位位置速度推定部33の出力を用いて、グローバル座標系での移動速度の情報を得る。
 この補正速度演算部34は、センサデバイス20が装着されている部位であって、装着されたセンサデバイス20の位置が直接得られなかった各部位について、慣性速度推定部31が出力する部位の移動速度と、部位位置速度推定部33が出力する対応する部位の移動速度とをカルマンフィルタを用いて合成して、補正速度として出力する。
 また、補正速度演算部34は、手首の部位について、逆運動学モデル演算部32が推定した手首の部位の移動速度の情報と、部位位置速度推定部33が出力する対応する手首の部位の移動速度とをカルマンフィルタを用いて合成して、補正速度として出力する。
 なお、このカルマンフィルタを用いた合成の処理の際、補正速度演算部34は、慣性速度推定部31または逆運動学モデル演算部32等が出力する移動速度の情報と、部位位置速度推定部33が人体モデルを利用して得た移動速度の情報との合成に係る重みを、ノードごとに、当該ノードの位置の情報等が、カメラCがセンサデバイス20を撮像した画像等から直接的に、あるいは当該直接的に得られた情報から推定できた(つまり、直接的方法により取得できた)最後の時刻と、現在の時刻との差(位置が直接的方法により取得できない状態となってからの経過時間)に基づいて定めてもよい。
 具体的に本実施の形態では、制御部11は、センサデバイス20ごとに、当該センサデバイス20の位置の情報等が、カメラCが撮像した画像等から直接的に取得できた時点を表す時刻の情報を取得する。時刻の情報の取得は、時計ICやネットワークを介してNTPサーバ等から取得するなどの広く知られた方法で行えばよい。
 そして補正速度演算部34は、ノードごとに最後に直接的方法により取得した最後の時刻を記録する。具体的には、各ノードについて、当該ノードの位置の情報等が、カメラCがセンサデバイス20を撮像した画像等から直接的方法で取得できたときには、当該直接的方法で用いたセンサデバイス20の位置をカメラCが撮像した情報から直接的に取得した最後の時刻(複数ある場合はそのうち最先のもの)を、当該ノードについての最後の時刻として記録する。
 補正速度演算部34は、当該ノードごとに記録した最後の時刻を参照し、最後の時刻と現在の時刻(処理の時点の時刻)との差を求め、その差に基づいて当該ノードに関する速度を推定するためのカルマンフィルタによる合成に係る重みを変更する。具体的には、補正速度演算部34は、当該時刻差が比較的小さい場合には、対応するノードについて慣性速度推定部31または逆運動学モデル演算部32が出力する移動速度に係る重みを大きく、部位位置速度推定部33が演算した移動速度に係る重みを小さくする。
 また、当該時刻差が比較的大きい場合には、補正速度演算部34は、対応するノードについて慣性速度推定部31または逆運動学モデル演算部32が出力する移動速度に係る重みを小さく、部位位置速度推定部33が演算した移動速度に係る重みを大きくする。
 また、ここでは時刻の差から重みを制御する例について述べたが、時刻の差だけでなく、最後に直接的方法により情報が得られた時点以降の、推定された移動量や、IMUセンサが出力する慣性情報等から得られる加速度、推定された速度の大きさを演算して記憶し、これらの情報を考慮に入れてもよい。例えば、上記時刻差が比較的大きい場合であっても、その間の移動量や移動速度、あるいは移動加速度(の最大値)が小さい場合は、ノードは静止していると判断して、補正速度演算部34は、対応するノードについて慣性速度推定部31または逆運動学モデル演算部32が出力する移動速度に係る重みを大きく、部位位置速度推定部33が演算した移動速度に係る重みを小さくすることとしてもよい。
 補正位置演算部35は、慣性速度推定部31(手首以外)または逆運動学モデル演算部32(手首の部位)が出力する各基準部位の位置の情報と、部位位置速度推定部33において求められた、対応する基準部位のノードの位置とをカルマンフィルタにより合成して、各基準部位の補正位置を求め、当該各基準部位の補正位置を出力する。
 なお、この位置に関するカルマンフィルタを用いた合成の処理においても、補正速度演算部34におけるのと同様、補正位置演算部35は、慣性速度推定部31または逆運動学モデル演算部32が出力する基準部位の位置の情報と、部位位置速度推定部33において求められた位置の情報とのそれぞれの合成に係る重みを、ノードごとに、当該ノードの位置の情報等が直接的方法により取得できた最後の時刻と、現在の時刻との差(位置が直接的方法により検出されない状態となってからの経過時間)に基づいて定めてもよい。
 具体的に補正位置演算部35は、当該時刻の差が比較的小さい場合には、対応するノードについて慣性速度推定部31または逆運動学モデル演算部32が出力した位置に係る情報の重みを大きく、部位位置速度推定部33が演算した人体モデルの位置の情報に係る重みを小さくする。
 また、当該時刻差が比較的大きい場合には、補正位置演算部35は、対応するノードについて慣性速度推定部31または逆運動学モデル演算部32が出力した位置に係る情報の重みを小さく、部位位置速度推定部33が演算した人体モデルの位置の情報に係る重みを大きくする。
 また、ここでの例でも、時刻の差だけでなく、最後に直接的方法により情報が得られた時点以降の、推定された移動量や、IMUセンサが出力する情報等から得られる加速度、推定された速度の大きさを演算して記憶し、これらの情報を考慮に入れてもよい。例えば、上記時刻差が比較的大きい場合であっても、その間の移動量や加速度(の最大値)が小さい場合は、ノードは静止していると判断できるので、補正位置演算部35は、対応するノードについて慣性速度推定部31または逆運動学モデル演算部32が出力した位置に係る情報の重みを大きく、部位位置速度推定部33が演算した人体モデルの位置の情報に係る重みを小さくすることとしてもよい。
 本実施の形態のこの例によると、次のような効果がある。すなわち、例えば手の動きは自由度が高いために、手の姿勢と位置との相関は低く、コントローラデバイス202のように手に持って使用する装置が備えるセンサ(特にIMUセンサ)の出力する姿勢や加速度の情報に基づき位置を推定することが困難なものである。しかしながら、手首の姿勢と位置(位置によってその姿勢が変化するため)とは相関があることが知られており、本実施の形態のここでの例のように、逆運動学ソルバーにより手の姿勢や加速度の情報から手首の姿勢を求め、手首の姿勢と加速度とからその位置を(例えば機械学習の方法等により)推定した上で、さらに推定した手首の位置の情報に基づいて手の(末端の)位置や姿勢を逆運動学ソルバーによって推定できる。つまり、人体の動きの制約の情報を利用して、手の位置や姿勢が推定できるため、この推定の結果を利用してIMUセンサ等によって得られた情報に基づく位置推定の精度を向上できる。
 このことは手と手首とに限られず、姿勢と位置とに相関がある有相関ノードが、そのような相関のない無相関ノードに隣接しているなど、有相関ノードの姿勢が、無相関ノードの位置の情報から逆運動学あるいは順運動学的に推定可能なボーンモデルがある場合に、運動学的なソルバーにより無相関ノードの姿勢や加速度から有相関ノードの姿勢や加速度を求め、有相関ノードの姿勢や加速度からその位置を(例えば機械学習の方法等により)推定した上で、さらに推定した有相関ノードの位置の情報に基づいて無相関ノードの位置を運動学的なソルバーによって推定することとしてもよい。つまり、動きの制約の情報を利用して、無相関ノードの位置や姿勢が推定できるため、この推定の結果を利用してIMUセンサ等によって得られた無相関ノードの情報に基づく位置推定の精度を向上できる。
 出力部36は、補正位置演算部35が出力する、各基準部位の補正位置を、部位位置速度推定部33に出力する。また、この出力の値を、慣性速度推定部31にて一時的に保持する。
 また、この出力部36は、補正速度演算部34が出力する各部位の補正速度と、補正位置演算部35が出力する、各部位の補正位置とを出力して、種々の処理(例えば対象者の姿勢(どのようなポーズとなっているか)を推定するなどの処理)に供する。
 さらに出力部36は、補正速度演算部34が出力する各部位の補正速度のうち、手の部位の補正速度については、手首の部位の補正速度を用いて、別途演算して求めてもよい。この例では、例えば出力部36は、手首の部位の補正速度と、手の部位の補正速度とは、手首の速度に対し、手首に対する手の動きの相対速度を加算して得られるものとして、手首の部位の補正速度に、慣性速度推定部31が出力する手の移動速度を加算し、逆運動学モデル演算部32が出力する手首の移動速度を差し引くことで、手の移動速度を求めることとしてもよい。
 また、出力部36は、補正速度演算部34が出力する手首の部位の補正速度と、慣性速度推定部31が出力する手の移動速度(さらに逆運動学モデル演算部32が出力する手首の移動速度が用いられてもよい)を入力として、これらの入力に対する手の移動速度を事前の計測結果に基づいて機械学習した機械学習結果(ニューラルネットワーク等)を用いて手の移動速度を求めてもよい。
 出力部36はさらに、補正位置演算部35が出力する各部位の補正位置のうち、手の部位の補正位置について、手首の部位の補正位置を用いて、別途演算して求めてもよい。例えば出力部36は、手首の部位の補正位置と、手の部位の補正位置とは、手首に対し、手の姿勢情報が表す方向に所定の距離だけ相対移動した位置として得られるものとして、手首の部位の補正位置に、慣性速度推定部31が出力する手の姿勢情報が表すグローバル座標系内での方向ベクトルに、所定の値(予め平均的な人物の手の大きさとして定めておく)を乗じて加算して、手の位置を求めることとしてもよい。
 また出力部36は、補正位置演算部35が出力する手首の部位の補正位置と、慣性速度推定部31が出力する手の姿勢情報とを入力として、これらの入力に対する手の位置を、事前の計測結果に基づいて機械学習した機械学習結果(ニューラルネットワーク等)を用いて手の位置を求めてもよい。
 このように出力部36は、手の部位の補正速度や補正位置を手首の部位の補正速度や補正速度を用いて求める場合、部位位置速度推定部33が用いる人体モデルには必ずしも手のノードが含まれなくてもよい。つまり、部位位置速度推定部33が必ずしも手のノードの移動速度や位置を推定する必要はない。
[動作]
 本実施の形態は以上の構成を備えており、次のように動作する。本実施の形態の一例では、例えばゲームアプリケーションのプレイヤが対象者となる。このプレイヤは、頭部センサデバイス201であるヘッドマウントディスプレイHMDを頭部に装着し、両手にそれぞれコントローラデバイス202を把持する。また、その左右の足首には、それぞれ足センサデバイス203を装着する。
 またプレイヤは、カメラCを設置して、当初は自身の全身(あるいは少なくとも上半身)が撮像される状態として、所定のポーズ(例えばTポーズ)をとる。プレイヤが本発明の実施の形態の情報処理装置1を起動してプレイヤの各部位の姿勢を検出して利用するゲームアプリケーションの実行を開始すると、情報処理装置1の制御部11は、当初は、プレイヤの頭部と、左右の手、及び足首部の各部位のグローバル座標系での位置及び姿勢(向き)を、カメラCが撮像した各センサデバイス20の画像に基づいて推定して得る。
 制御部11はそして、これらの部位の位置及び姿勢の情報から、プレイヤに対応する人体モデルの首部,胸部,腰部、肩部,肘部,手首部,股関節部,膝部,足首部の各部位に対応するノードの位置及び姿勢を設定する(対応する部位にセンサデバイス20が装着されていない場合は、その位置及び姿勢を、センサデバイス20の情報によって設定された部位の位置及び姿勢から推定して求める)。
 また制御部11は、プレイヤが静止している間に、各センサデバイス20が出力する姿勢角速度の情報を複数回取得し、それぞれセンサデバイス20について得られた姿勢角速度の情報の平均を、各センサデバイス20の角速度バイアスとして求め、記憶部12等に保持する。
 制御部11は、角速度バイアスを求めた後、ゲームアプリケーションの処理を進める。以降、プレイヤはゲームアプリケーションのゲームをプレイすることとなる。
 制御部11は、この後、所定のタイミングごと(例えば時刻Δtごととする)に、カメラCが撮像した画像を取得し、当該画像に撮像されているセンサデバイス20について、そのセンサデバイス20が装着されたプレイヤの各部位のグローバル座標系での位置及び姿勢(向き)を当該画像に基づいて推定して得る。
 また制御部11は、各センサデバイス20から慣性情報(センサの座標系での移動加速度及び姿勢角速度の情報)を得て、次の処理を行う。
 すなわち制御部11は、センサデバイス20を順次(あるいは並列的に処理されてもよい)選択して、選択したセンサデバイス20(説明のため、これを注目センサと呼ぶ)から入力された姿勢角速度の情報から、対応する角速度バイアスとして記憶部12に格納された値を差し引いて(姿勢角速度はベクトル値であるので対応する各成分をそれぞれ差し引いて)、キャリブレーション後の姿勢角速度の情報を得る。なお制御部11は、注目センサの装着部位の姿勢情報(前回のタイミングで得られたもの)と、その装着部位での重力方向とを推定し(マッジウィックフィルタの処理)、この推定結果を利用して、注目センサが出力する姿勢角速度の情報(注目センサに固有の座標系で表されている)を、グローバル座標系での情報に変換する。
 以下、制御部11は、図6に例示するように、このキャリブレーション(及びグローバル座標系に変換した)後の姿勢角速度の情報(a)と前回のタイミングで得られた、対応する部位の姿勢情報とを加算して積分し(S11)、姿勢情報(姿勢クオータニオンとして表される)を得る。
 また制御部11は、注目センサが出力する移動加速度(グローバル座標系における値に変換しておく)の情報と、前回のタイミングで得られた、対応する部位の移動速度とを加算して積分し(S12)、仮の移動速度の情報(Vp)を得る。また、この移動速度をさらに、前回のタイミングで得られた、対応する部位の位置の情報に加算して積分し(S13)、仮の位置の情報(Pp)を得る。
 もっとも制御部11は、過去の複数回の処理(時刻Δtごとの処理)で得られた、グローバル座標系での注目センサの装着部位の姿勢角速度及び移動加速度の情報を入力とし、各センサデバイス20が出力するべき移動加速度及び、当該センサデバイス20の装着部位の移動速度との関係を機械学習した移動速度推定用ニューラルネットワークを用いて、注目センサの装着部位の移動速度の情報を得てもよい。なお、この場合のニューラルネットワークとしては、各センサデバイス20で共通のもの(各層間の重みも共通のもの)を利用してよい。
 制御部11は、以上の処理を、各センサデバイス20について行うことで、各センサデバイス20の各装着部位のグローバル座標系での位置、移動速度、移動加速度、及び姿勢情報を得る。
 制御部11は、上記部位のうち、手の部位の位置及び姿勢情報を用いて、手首の位置を推定する(S14)。この推定処理については既に述べたので、繰り返しての説明を省略する。また、制御部11は、過去のタイミングで推定した手首の位置の情報を用いて(その差分により)、手首の速度を求め(S15)、さらに過去の複数回のタイミングで推定した手首の速度の情報から(その差分により)、手首の移動加速度を求める(S16)。
 制御部11は、ここで求めた手首の位置、及び、手についての仮の姿勢情報から、手首の姿勢情報を推定する(S17)。この推定処理についても既に述べたものである。
 制御部11は、プレイヤに対応する所定の人体モデルを用いて、予め、運動学的に対象者の姿勢を推定するために必要となる部位として定められた基準部位のノード(ここでも頭部ノードP1,胸部ノードP3,手首部ノードP9,P10,及び足首部ノードP15,P16であるとする)の位置の情報(仮の位置やステップS14で推定されたもの、あるいは直接的方法で取得できた場合は、当該直接的方法で取得したもの)と、姿勢情報(仮の姿勢情報やステップS17で推定されたもの)と、移動加速度の情報(仮の移動加速度の情報やステップS16で得られたもの)とを設定する。
 そして制御部11は、予めこれら基準部位のノードの位置、姿勢情報、及び移動加速度の情報と、各ノードの位置及び移動速度との関係を機械学習した機械学習結果(ニューラルネットワーク等)を用いて、上記人体モデルの各部位に対応するノードの位置及び移動速度を推定する(S18)。
 制御部11は、こうして人体モデルの各ノードの位置や移動速度(以下、モデル位置及びモデル移動速度と呼ぶ)の情報を、上記所定のタイミングごと(時刻Δtごと)に更新する。
 制御部11は、各部位のモデル位置に対して、ステップS13で得た対応するノード(手首のノードを除く)の位置と、ステップS14で得た手首の位置とを、カルマンフィルタを用いて合成して、各ノードの補正位置とする(S19)。また制御部11は、この補正位置のうち左右の手首の補正位置と、ステップS11で求めた左右の手の姿勢情報とを用いて左右の手の位置をそれぞれ求める(S20)。そして制御部11は、(手の位置を除く)各ノードの補正位置と、ステップS20で求めた手の位置とを出力する(位置の出力)。
 また制御部11は、各部位のモデル移動速度に対して、ステップS12で得た対応するノード(手首のノードを除く)の移動速度と、ステップS15で得た手首の移動速度とを、カルマンフィルタを用いて合成して、各ノードの補正速度とする(S21)。また制御部11は、この補正速度のうち左右の手首の補正速度と、ステップS12で求めた左右の手の補正速度、及びステップS15で求めた手首の移動速度とを用いて左右の手の移動速度をそれぞれ求める(S22)。そして制御部11は、(手のノードを除く)各ノードの補正速度と、ステップS22で求めた手の移動速度とを出力する(速度の出力)。
 制御部11は、プレイヤに対応する人体モデルのうち、予め、逆運動学に基づく対象者の姿勢を推定するために必要となる部位として定められた基準部位のノード(ここでも頭部ノードP1,胸部ノードP3,手首部ノードP9,P10,及び足首部ノードP15,P16であるとする)の位置及び姿勢情報を設定する。
 すなわち制御部11は、上記基準部位のノードのうち、その位置及び姿勢が、センサデバイス20をカメラCが撮像した画像等から直接的に取得できたノードあるいは、当該直接的に取得した情報から推定できたノードについては、当該取得あるいは推定した情報により、その位置及び姿勢情報を設定する。
 また制御部11は、上記基準部位のノードのうち、その位置及び姿勢情報が、センサデバイス20をカメラCが撮像した画像等から直接的に取得できなかった基準部位のノードについては、先の処理により得た各基準部位のノードの補正位置及び姿勢情報により、その位置や姿勢情報を設定して、次のタイミングでの処理に用いる。
 さらに制御部11は、ここで推定した各部位の位置や移動速度の情報(さらに姿勢情報を含んでもよい)を、ゲームアプリケーションに出力して、その処理に供する。
 本実施の形態ではこのようにしたことで、プレイヤが歩き回ることにより、その足首に装着したセンサデバイス20がカメラCの視野外となった場合でも、またプレイヤが手を動かすことによって、その手に把持したセンサデバイス20がカメラCの視野外となった場合であっても、各センサデバイス20が備えるIMUセンサの出力(慣性情報)を用いてプレイヤの各部位のトラッキングが可能となる。
 また、本実施の形態では、移動速度推定用機械学習結果により各センサデバイスの出力する慣性情報を補正しており、IMUセンサの出力に現れるランダムノイズ等の影響を軽減している。
 なお、本実施の形態のここまでの説明においては、所定の位置に固定したカメラCを利用して各センサデバイス20の位置等を検出するものとしたが、本実施の形態はこれに限られず、センサデバイス20の一部が(LED等のマーカーではなく)カメラを備えて、当該カメラが逐次的に撮像した画像を処理して、その特徴点の位置を追跡する、いわゆるSLAM(Simultaneous Localization and Mapping)の処理によってその位置や姿勢等を推定してもよい。
 またセンサデバイス20のうち、例えば足首に装着する足センサデバイス203等についてはマーカーを備えず、IMUセンサの出力のみによってその位置や姿勢等が推定されてもよい。この場合、当初は、足元の位置を、逆運動学的な方法により推定して求めておく等の処理を行ってもよい。
 さらに、足センサデバイス203を用いない場合でも本実施の形態の処理は適用可能である。この場合、情報処理装置1は、頭から手までの各部位の位置等を推定するか、あるいは、足の部位の位置等まで人体モデルを用いて推定する。
 1 情報処理装置、11 制御部、12 記憶部、13 操作制御部、14 出力制御部、20 センサデバイス、31 慣性速度推定部、32 逆運動学モデル演算部、33 部位位置速度推定部、34 補正速度演算部、35 補正位置演算部35 出力部、201 頭部センサデバイス、202 コントローラデバイス、203 足センサデバイス、311 角速度キャリブレーション部、312 姿勢推定部、314 重力加速度除去部、315 速度推定処理部、2031 ベルト、2032 本体デバイス。
 

Claims (12)

  1.  対象者の複数の装着部位に装着され、当該装着部位の移動加速度及び姿勢角速度の情報を少なくとも検出するセンサに接続され、
     前記複数のセンサから各センサが取り付けられた装着部位の移動加速度及び姿勢角速度の情報を少なくとも取得する取得手段と、
     前記取得した移動加速度及び姿勢角速度の情報に基づいて、前記センサの各々が取り付けられた装着部位の所定の座標系内での移動速度を推定する速度推定手段と、
     予め定められた前記対象者の各部位の位置を、前記推定された各装着部位の移動速度の情報に基づいて推定する位置推定手段と、
     を含み、
     当該推定した前記各部位の位置の情報を、所定の処理に供する情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記速度推定手段は、前記座標系内での重力方向を推定し、当該推定された重力方向の情報を用いて、前記各装着部位の移動加速度を補正し、当該補正した移動加速度の情報に基づいて前記センサの各々が取り付けられた装着部位の所定の座標系内での移動速度を推定する情報処理装置。
  3.  請求項1または2に記載の情報処理装置であって、
     前記速度推定手段は、前記移動加速度の情報及び取得した姿勢角速度の情報に基づいて推定される装着部位の前記座標系内での移動加速度及び姿勢角速度の時系列変化の情報を用いて、前記各装着部位の移動速度を推定する情報処理装置。
  4.  請求項1から3のいずれか一項に記載の情報処理装置であって、
     当該推定した前記各部位の位置の情報を、前記所定の処理として、逆運動学モデル演算を用いた対象者の姿勢を推定する処理に供する情報処理装置。
  5.  請求項4に記載の情報処理装置であって、
     前記位置推定手段は、逆運動学モデル演算を利用して推定された対象者の、前記予め定められた各部位の位置及び姿勢情報を取得し、当該取得した情報と、前記推定された各装着部位の移動速度の情報とを合成して前記予め定められた各部位の位置を推定する情報処理装置。
  6.  請求項4または5に記載の情報処理装置であって、
     センサが取り付けられた装着部位の位置を、当該センサの位置が直接的方法により得られている間は、当該直接的に得られた位置の情報を出力する位置検出手段をさらに含み、
     前記位置推定手段は、前記位置検出手段が位置の情報を出力している部位については、当該部位の位置を前記位置検出手段が出力する情報に基づいて定める情報処理装置。
  7.  請求項6に記載の情報処理装置であって、
     前記位置推定手段は、当該取得した情報と、前記推定された各装着部位の移動速度の情報とをそれぞれ所定の重みで合成して前記予め定められた各部位の位置を推定する情報処理装置。
  8.  請求項7に記載の情報処理装置であって、
     前記合成の重みは、装着部位ごとに、当該装着部位の位置が前記位置検出手段により出力されない状態となってからの経過時間により決定する情報処理装置。
  9.  請求項7に記載の情報処理装置であって、
     前記合成の重みは、装着部位ごとに、当該装着部位の移動量、移動速度、移動加速度の少なくともいずれかに基づいて決定する情報処理装置。
  10.  請求項1から9のいずれか一項に記載の情報処理装置であって、
     前記センサが装着される部位には、対象者の手の部位を含み、
     前記位置推定手段は、前記手の部位の姿勢角速度及び移動加速度の情報に基づき、所定の人体モデルを用いた逆運動学モデル演算を利用して手首部の姿勢を推定し、さらに手首部の姿勢に基づいて手首部の位置を推定し、当該推定した手首部の位置の情報に基づいて、手の位置を推定する情報処理装置。
  11.  対象者の複数の装着部位に装着され、当該装着部位の移動加速度の情報を少なくとも検出するセンサに接続される情報処理装置の制御方法であって、
     取得手段が前記複数のセンサから各センサが取り付けられた装着部位の移動加速度及び姿勢角速度の情報を少なくとも取得し、
     速度推定手段が前記取得した移動加速度及び姿勢角速度の情報に基づいて、前記センサの各々が取り付けられた装着部位の所定の座標系内での移動速度を推定し、
     位置推定手段が、予め定められた前記対象者の各部位の位置を、前記推定された各装着部位の移動速度の情報に基づいて推定して、
     当該推定した前記各部位の位置の情報を、所定の処理に供する情報処理装置の制御方法。
  12.  対象者の複数の装着部位に装着され、当該装着部位の移動加速度の情報を少なくとも検出するセンサに接続される情報処理装置を、
     前記複数のセンサから各センサが取り付けられた装着部位の移動加速度及び姿勢角速度の情報を少なくとも取得する取得手段と、
     前記取得した移動加速度及び姿勢角速度の情報に基づいて、前記センサの各々が取り付けられた装着部位の所定の座標系内での移動速度を推定する速度推定手段と、
     予め定められた前記対象者の各部位の位置を、前記推定された各装着部位の移動速度の情報に基づいて推定する位置推定手段と、
     として機能させ、
     当該推定した前記各部位の位置の情報を、所定の処理に供させるプログラム。

     
PCT/JP2019/040753 2019-10-16 2019-10-16 情報処理装置、情報処理装置の制御方法、及びプログラム WO2021075004A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/768,278 US20220409991A1 (en) 2019-10-16 2019-10-16 Information processing apparatus, information processing apparatus control method, and program
JP2021552042A JP7216222B2 (ja) 2019-10-16 2019-10-16 情報処理装置、情報処理装置の制御方法、及びプログラム
PCT/JP2019/040753 WO2021075004A1 (ja) 2019-10-16 2019-10-16 情報処理装置、情報処理装置の制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/040753 WO2021075004A1 (ja) 2019-10-16 2019-10-16 情報処理装置、情報処理装置の制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2021075004A1 true WO2021075004A1 (ja) 2021-04-22

Family

ID=75537585

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/040753 WO2021075004A1 (ja) 2019-10-16 2019-10-16 情報処理装置、情報処理装置の制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US20220409991A1 (ja)
JP (1) JP7216222B2 (ja)
WO (1) WO2021075004A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015058167A (ja) * 2013-09-19 2015-03-30 カシオ計算機株式会社 運動支援装置及び運動支援方法、運動支援プログラム
JP2016001875A (ja) * 2009-12-03 2016-01-07 国立研究開発法人産業技術総合研究所 移動体の測位装置
JP2016010562A (ja) * 2014-06-30 2016-01-21 カシオ計算機株式会社 データ解析装置及びデータ解析方法、データ解析プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10293205B2 (en) 2014-01-27 2019-05-21 The Regents Of The University Of Michigan IMU system for assessing head and torso orientation during physical motion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016001875A (ja) * 2009-12-03 2016-01-07 国立研究開発法人産業技術総合研究所 移動体の測位装置
JP2015058167A (ja) * 2013-09-19 2015-03-30 カシオ計算機株式会社 運動支援装置及び運動支援方法、運動支援プログラム
JP2016010562A (ja) * 2014-06-30 2016-01-21 カシオ計算機株式会社 データ解析装置及びデータ解析方法、データ解析プログラム

Also Published As

Publication number Publication date
JP7216222B2 (ja) 2023-01-31
US20220409991A1 (en) 2022-12-29
JPWO2021075004A1 (ja) 2021-04-22

Similar Documents

Publication Publication Date Title
US8165844B2 (en) Motion tracking system
Roetenberg Inertial and magnetic sensing of human motion
Ahmadi et al. 3D human gait reconstruction and monitoring using body-worn inertial sensors and kinematic modeling
US9119569B2 (en) Method and apparatus for calibrating a motion tracking system
JP5421571B2 (ja) 歩行特性評価システムおよび軌跡生成方法
WO2015146046A1 (ja) 相関係数補正方法、運動解析方法、相関係数補正装置及びプログラム
JP6145072B2 (ja) センサーモジュールの位置の取得方法及び装置、及び、動作計測方法及び装置
JP6516283B2 (ja) 運動解析装置
JP6288858B2 (ja) 光学式モーションキャプチャにおける光学式マーカーの位置の推定方法及び装置
WO2014114967A1 (en) Self-calibrating motion capture system
CN107613867B (zh) 动作显示系统以及记录介质
JP2015217053A (ja) 運動測定装置ならびに運動測定方法
CN109284006B (zh) 一种人体运动捕获装置和方法
CN110609621A (zh) 姿态标定方法及基于微传感器的人体运动捕获系统
Palani et al. Real-time joint angle estimation using mediapipe framework and inertial sensors
US20180216959A1 (en) A Combined Motion Capture System
CN113268141B (zh) 一种基于惯性传感器和织物电子的动作捕获方法及装置
US20110166821A1 (en) System and method for analysis of ice skating motion
CN110680335A (zh) 步长测量方法及其设备、系统、非易失性计算机存储介质
WO2021075004A1 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2016043092A (ja) 運動測定装置
JP6205387B2 (ja) 仮想マーカーの位置情報の取得方法及び装置、動作計測方法
Seel et al. IMU-based joint angle measurement made practical
JP7191196B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2016202381A (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: 19949423

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021552042

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19949423

Country of ref document: EP

Kind code of ref document: A1