WO2019203189A1 - プログラム、情報処理装置、及び情報処理方法 - Google Patents

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

Info

Publication number
WO2019203189A1
WO2019203189A1 PCT/JP2019/016151 JP2019016151W WO2019203189A1 WO 2019203189 A1 WO2019203189 A1 WO 2019203189A1 JP 2019016151 W JP2019016151 W JP 2019016151W WO 2019203189 A1 WO2019203189 A1 WO 2019203189A1
Authority
WO
WIPO (PCT)
Prior art keywords
sensor
motion
information
motion sensor
coordinate system
Prior art date
Application number
PCT/JP2019/016151
Other languages
English (en)
French (fr)
Inventor
康隆 福本
敬太 望月
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2019203189A1 publication Critical patent/WO2019203189A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1113Local tracking of patients, e.g. in a hospital or private home
    • A61B5/1114Tracking parts of the body
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1121Determining geometric values, e.g. centre of rotation or angular range of movement
    • A61B5/1122Determining geometric values, e.g. centre of rotation or angular range of movement of movement trajectories
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1126Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb using a particular sensing technique
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/74Details of notification to user or communication with user or patient ; user input means
    • A61B5/742Details of notification to user or communication with user or patient ; user input means using visual displays
    • A61B5/744Displaying an avatar, e.g. an animated cartoon character
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B2562/00Details of sensors; Constructional details of sensor housings or probes; Accessories for sensors
    • A61B2562/02Details of sensors specially adapted for in-vivo measurements
    • A61B2562/0219Inertial sensors, e.g. accelerometers, gyroscopes, tilt switches
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • A61B5/0205Simultaneously evaluating both cardiovascular conditions and different types of body conditions, e.g. heart and respiratory condition
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7235Details of waveform analysis
    • A61B5/7264Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
    • A61B5/7267Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems involving training the classification device

Definitions

  • the present disclosure relates to a program, an information processing apparatus, and an information processing method.
  • the acquired body movement information is used for improving a form in sports, for example, and used for applications such as VR (Virtual Reality) and AR (Augmented Reality).
  • VR Virtual Reality
  • AR Augmented Reality
  • the position of the motion sensor can be calculated from the sensor data (sensing data) obtained by the motion sensor attached to the body using, for example, inertial navigation system (INS: Internal Navigation System). (For example, the following patent document 1).
  • INS Internal Navigation System
  • each motion sensor device 10 In motion capture using a motion sensor (inertial sensor), it is grasped in advance how each motion sensor device 10 is worn on a part of the user's body, that is, in what posture. It is essential. Therefore, for example, the mounting posture and position of each motion sensor are defined in advance, and the user mounts the motion sensor on the body part so that the defined posture and position are obtained. However, it is difficult to wear a motion sensor so that the position and posture are defined. Therefore, a technique for the motion sensor to obtain the mounting posture with higher accuracy has been desired.
  • a user who wears a motion sensor can obtain a motion sensor wearing posture with high accuracy by performing an operation for simple calibration.
  • Proposed program, information processing apparatus, and information processing method are proposed.
  • a program for causing a computer to realize an estimation function for estimating a posture in a global coordinate system of a motion sensor attached to a user's body wherein the estimation function is performed by the user in a predetermined pose.
  • the motion sensor orientation is calculated by calculating a third rotation matrix indicating the orientation of the motion sensor with reference to the acceleration included in the sensing data of the motion sensor until the third motion at which the motion sensor is stationary.
  • a program is provided for estimating.
  • the estimation unit that estimates a posture in a global coordinate system of a motion sensor attached to a user's body is provided, and the estimation unit in the first operation in which the user stops at a predetermined pose. From the acceleration included in the sensing data of the motion sensor and the third operation in which the user stops at the predetermined pose from the first operation to the second operation in which the motion sensor moves horizontally.
  • An information processing apparatus that estimates a posture of the motion sensor by calculating a third rotation matrix indicating the posture of the motion sensor with reference to acceleration included in the sensing data of the motion sensor during Provided.
  • the acceleration included in the sensing data of the motion sensor in the first motion in which the user wearing the motion sensor on the body stops at a predetermined pose and the user performs the first motion to the acceleration included in the sensing data of the motion sensor from the second motion such that the motion sensor moves horizontally until the third motion where the motion sensor stops at the predetermined pose
  • an information processing method including calculating a third rotation matrix indicating the attitude of the sensor to cause the processor to estimate the attitude of the motion sensor in the global coordinate system.
  • FIG. It is explanatory drawing which shows the example of the combination of a mounting
  • FIG. It is a flowchart figure which shows the operation example of the system concerning the embodiment. It is a figure which shows the function structural example of the system concerning a 1st modification. It is a figure which shows the function structural example of the system concerning a 2nd modification. It is a figure which shows the function structural example of the system concerning a 3rd modification. It is explanatory drawing for demonstrating the outline
  • a plurality of constituent elements having substantially the same functional configuration may be distinguished by adding different alphabets after the same reference numeral.
  • it is not necessary to particularly distinguish each of a plurality of constituent elements having substantially the same functional configuration only the same reference numerals are given.
  • skeleton information expressed by a skeleton structure indicating the structure of the body is used.
  • the skeleton structure includes part information and bones that are line segments connecting the parts.
  • bones in the skeleton structure may correspond to, for example, human bones, but the positions and the number of bones do not necessarily match the actual human skeleton.
  • the position of the part in the skeleton information can be acquired, for example, by attaching a marker or a motion sensor to each corresponding part of the body.
  • a marker or a motion sensor For example, based on the technology that attaches a marker to each part of the body and acquires the position of the marker using an external camera or the like, or attaches a motion sensor to the part of the body and acquires the sensor data obtained by the motion sensor
  • the technique using a motion sensor attached to the body does not require an external camera, a light source, and a marker, and has the advantage that it is portable and easy to set up.
  • the technology using motion sensors attached to the body is not limited by the imaging range of the camera, so it can be used in a wide outdoor space, a complex-shaped space where a blind spot is likely to occur, a narrow space, etc. There are advantages.
  • a motion sensor is a device that senses body movement, and may include an inertial sensor (acceleration sensor, angular velocity sensor), a geomagnetic sensor, an atmospheric pressure sensor, an image sensor, and the like.
  • FIG. 1 is an image diagram for explaining the outline of the present embodiment.
  • the sensor devices 10A to 10F include inertial sensors (IMU: Internal Measurement Unit) such as an acceleration sensor that acquires acceleration and a gyro sensor (angular velocity sensor) that acquires angular velocity.
  • IMU Internal Measurement Unit
  • the sensor devices 10A to 10F are preferably attached to joint parts (for example, the waist and head) serving as a reference of the body or near the end of the body (wrist, ankle, head, etc.).
  • joint parts for example, the waist and head
  • the sensor device 10A is mounted on the waist of the user U1
  • the sensor devices 10B and 10E are mounted on the wrist
  • the sensor devices 10C and 10D are mounted on the ankle
  • the sensor device 10F is mounted on the head.
  • the sensor device 10 when it is not necessary to particularly distinguish the sensor devices 10A to 10F, they may be simply referred to as the sensor device 10 collectively.
  • the body part to which the sensor device 10 is attached may also be referred to as an attachment part.
  • the number of sensor devices 10 and the mounting positions (positions of mounting parts) are not limited to the example shown in FIG.
  • the system according to the present embodiment acquires information on the position (Position) and orientation (Orientation) of each attachment site based on the sensor data acquired by the sensor device 10.
  • FIG. 1 shows mounting part information PD100 including position information and posture information as information on mounting parts P101 to P106 to which sensor devices 10A to 10F are mounted (hereinafter also referred to as mounting part information).
  • the system according to the present embodiment estimates skeleton information including position information and posture information of each part in the skeleton structure based on position information and posture information of the attachment parts P101 to P106 to which the sensor devices 10A to 10F are attached. To do.
  • the present embodiment among the parts in the skeleton structure, not only the attachment part where the sensor device 10 is attached but also the position information of the part where the sensor device 10 is not attached (hereinafter also referred to as a non-attachment part) and Estimate posture information.
  • skeleton information SD100 including position information and posture information of each part in the skeleton structure is shown.
  • the skeleton information SD100 includes not only the information on the attachment part SP101 corresponding to the attachment part P101 and the information on the attachment part SP102 corresponding to the attachment part P102, but also information on the non-attachment part SP107.
  • the skeleton information may include bone information (position information, posture information, etc.) in addition to the part information.
  • the skeleton information SD100 may include information on the bone SB101.
  • the number of parts for which information is desired to be acquired is estimated based on the information on the non-wearing part where the motion sensor is not attached based on the information on the attachment part where the motion sensor is attached. It is possible to reduce the number of motion sensors to be mounted while maintaining the above.
  • the principle of the technique according to the present embodiment for realizing the above-described effect will be described.
  • the forward kinematics calculation is a method for calculating the position of the end part based on the posture of each joint part.
  • FIG. 2 is an explanatory diagram for explaining an existing motion capture technique using forward kinematics calculation.
  • FIG. 2 shows skeleton information SD90 expressed in a skeleton structure.
  • the part SP92 in the body coordinate system is calculated by performing forward kinematics calculation based on the posture information of the parts SP91 to SP95.
  • the position information of SP96 can be specified.
  • standard in a body coordinate system may be called a root site
  • FIG. 3 is an explanatory diagram for explaining forward kinematics calculation.
  • FIG. 3 shows an example in which the arm is regarded as a simple link mechanism with two degrees of freedom.
  • the part SP81 is a root part, and an xy coordinate system (planar coordinate system) with the part SP81 as a reference (origin) is shown.
  • the posture information of each part is known as described above.
  • the angle ⁇ 1 formed by the bone SB81 and the x axis based on the posture of the part SP81, and the posture of the part SP82 the angle theta 2 of the angle of the bone SB81 and bones SB82 based on known.
  • the distance between the sites that is, also known length of bone, in the example shown in FIG. 3, the length l 1 of the bone SB81, and the length l 2 of the bone SB82 are known.
  • the position (x 1 , y 1 ) of the part SP83 can be calculated using the above known information. Specifically, the position (x 1 , y 1 ) of the part SP83 is expressed as the following mathematical formulas (1) and (2).
  • FIG. 3 shows an example of a planar and simple mechanism, but even in the case of a three-dimensional and more complex mechanism, forward kinematics calculation can be performed in the same manner. That is, it is possible to specify the position information of the end part using the posture information of the joint part between the reference root part and the end part and the information on the distance between the parts. Further, not only the terminal part but also the position information of the joint part located between the root part and the terminal part in the skeleton structure (for example, the position information of the part SP82 in the example shown in FIG. 3) is specified by forward kinematics calculation.
  • the position information of the end part using the posture information of the joint part between the reference root part and the end part and the information on the distance between the parts. Further, not only the terminal part but also the position information of the joint part located between the root part and the terminal part in the skeleton structure (for example, the position information of the part SP82 in the example shown in FIG. 3) is specified by forward kinematics calculation.
  • the skeleton information is acquired by using inverse kinematics (IK) calculation instead of the above-described forward kinematics calculation.
  • IK inverse kinematics
  • Inverse kinematics calculation is a method of calculating the posture of each joint part based on the position of the terminal part.
  • FIG. 4 is an explanatory diagram for explaining an approach using inverse kinematics calculation.
  • FIG. 4 shows skeleton information SD90 expressed in a skeleton structure as in FIG.
  • a body coordinate system is set with the part SP91 corresponding to the waist of the body as a reference (origin), and position information of the part SP96 in the body coordinate system is obtained.
  • the posture information and position information of the parts SP92 to SP95 in the body coordinate system can be specified by performing inverse kinematic calculation based on the position information of the part SP96 which is the terminal part.
  • FIG. 5 is an explanatory diagram for explaining the inverse kinematic calculation.
  • FIG. 5 shows an example in which the arm is regarded as a simple link mechanism having two degrees of freedom.
  • the part SP81 is a root part, and an xy coordinate system (planar coordinate system) with the part SP81 as a reference (origin) is shown.
  • the length l 1 of the bone SB81 having the part SP81 as one end point and the length l 2 of the bone SB82 having the part SP83 as one end point are known. To do.
  • the angle between the bone SB81 and the bone SB81 and the angle between the bone SB81 and the bone SB82 are calculated using the known information as described above.
  • FIG. 5 shows an example of a planar and simple mechanism. For example, in the case of a three-dimensional mechanism or when there are more joint parts, more solutions may exist. .
  • FIG. 6 is an explanatory diagram for explaining the first step according to the present embodiment.
  • information on acceleration and angular velocity can be acquired from two or more inertial sensors attached to two or more parts of the body.
  • the global coordinate system is a coordinate system that is commonly used in, for example, a plurality of sensors and devices, and may be a coordinate system corresponding to a real space.
  • the position of the mounting part is estimated based on the mounting part information PD10 (S100), so that the mounting part information PD12 including position information indicating the positions (three-dimensional) of the mounting parts P11 to P16 is obtained.
  • Location information is included.
  • FIG. 7 is an explanatory diagram for explaining the second step according to the present embodiment. Since the mounting part information PD12 shown in FIG. 7 is the same as the mounting part information PD12 shown in FIG. 6, the description thereof is omitted here.
  • the position estimation (interpolation) of the non-wearing part is performed based on the wearing part information PD12 (S200), and in addition to the position information of the wearing part, the position of the non-wearing part where the inertial sensor is not attached.
  • Skeleton information SD10 including information is obtained.
  • the parts SP11 and SP12 are mounting parts
  • the part SP20 is a non-wearing part.
  • the position estimation of the non-wearing part which is the second step
  • the position estimation of the wearing part, which is the first step can be realized by, for example, inertial navigation.
  • inertial navigation when the position of the wearing part is estimated by inertial navigation, an error in the estimated position increases with time. There is a risk that. Therefore, in the present embodiment, the position information of the mounting part estimated by inertial navigation is corrected, and the position information of the mounting part is acquired with higher accuracy.
  • the correction of the position information of the attachment site will be described.
  • Inertial navigation is a technique for calculating a sensor position by integrating an angular velocity and acceleration a plurality of times (Integration), and is adopted in, for example, a ship or an aircraft.
  • FIG. 8 is a schematic diagram showing an outline of position estimation processing based on inertial navigation.
  • the attitude of the sensor device in the global coordinate system is calculated by integrating the angular velocity (an example of sensor data) in the local coordinate system acquired by the gyro sensor included in the sensor device (S111).
  • the acceleration of the sensor device in the local coordinate system (coordinate system set for each sensor device) acquired by the acceleration sensor included in the sensor device (an example of sensor data) Is converted to the acceleration of the sensor device in the global coordinate system (S112).
  • the speed of the sensor device in the global coordinate system is calculated by integrating the acceleration of the sensor device in the global coordinate system that has been transformed (S113).
  • the moving distance of the sensor device is calculated by integrating the speed of the sensor device in the global coordinate system (S114).
  • S114 the global coordinate system
  • relative position information with the initial position as the starting point can be obtained.
  • absolute position information of the sensor device that is, three-dimensional coordinates in the global coordinate system
  • attitude information and position information of the sensor device are output by position estimation processing based on inertial navigation.
  • the position estimation process based on the inertial navigation shown in FIG. 8 has a relatively small processing load and can be executed at high speed.
  • step S111 the integration performed on the angular velocity to obtain the posture information is only once in step S111, and the posture information is obtained with high accuracy by combining known techniques such as AHRS. It was possible to do.
  • step S113 and step S114 are performed on the acceleration. Therefore, if the acceleration acquired by the acceleration sensor includes an error, the output position information is output. Errors can accumulate.
  • FIG. 9 is a schematic diagram showing a temporal change image of a position error that may occur in the position estimation process based on inertial navigation.
  • the position error is small and the position information can be estimated with high accuracy within a short time after the position information starts to be estimated by inertial navigation.
  • the error included in the position information estimated by inertial navigation can increase with time as shown in FIG. 9, a very large error is included in the position information when executed for a long time. There is a risk of being lost.
  • the position of the wearing part is estimated by regression based on an exercise model (Dynamics Model).
  • FIG. 10 is a schematic diagram showing an outline of the position estimation process based on the motion model.
  • the position information of the sensor device is estimated by regression without integrating the acceleration (S123).
  • position information is estimated by regression that applies the attitude and acceleration of the sensor device in the global coordinate system to a motion model prepared in advance.
  • the motion model can be generated by learning, for example, motion constraint information in advance (for example, information including a plurality of samples of position and posture of each part in a pose or a series of motions acquired in the past). is there.
  • various regression analysis techniques can be used for the regression estimation process in step S123. For example, a technique such as DNN (Deep Neural Network) or Random Forest may be used alone or in combination.
  • FIG. 11 is a schematic diagram illustrating a temporal change image of a position error that may occur in the position estimation process based on the motion model.
  • a position error has occurred even in the position estimation process based on the motion model, but it does not increase with time, so even if it is executed continuously for a long time, a large error will occur. It is hard to occur.
  • the position information can be estimated with higher accuracy by the position estimation process based on the motion model shown in FIG.
  • the position estimation process based on the motion model since statistical estimation is performed by regression, the change in output (estimation result) tends to be discontinuous even when the input change is continuous. As a result, for example, when the finally obtained skeleton information is visualized, there is a risk that it may be uncomfortable.
  • the position estimation process based on the motion model shown in FIG. 10 has a larger processing load than the position estimation process based on the inertial navigation shown in FIG. 8, and is difficult to execute at a higher speed than the position estimation process based on the inertial navigation. It is.
  • the position estimation process based on the inertial navigation and the position estimation process based on the motion model have their respective features. Therefore, in the present embodiment, the position information is estimated with higher accuracy by correcting the estimated position information by combining both the position estimation process based on inertial navigation and the position estimation process based on the motion model.
  • the position estimation process based on inertial navigation may be referred to as a first process
  • the position estimation process based on a motion model may be referred to as a second process.
  • FIG. 12 is a schematic diagram showing an outline of position estimation processing according to the present embodiment.
  • the position estimation process concerning this embodiment may also include the process which is not shown by FIG.
  • the position estimation processing includes correction processing (in addition to the first processing based on inertial navigation (S111 to S114) and the second processing based on the motion model (S121 to S123). S130).
  • correction is performed with reference to the output of the first process (hereinafter also referred to as the first output) and the output of the second process (hereinafter also referred to as the second output).
  • the first output includes posture information and position information of the attachment site
  • the second output includes position information.
  • the position information included in the first output is corrected based on the posture information included in the first output and the position information included in the second output.
  • the posture information included in the first output may be used for correcting the position information and may be output as it is.
  • the correction process in step S130 can be realized by, for example, a Kalman filter.
  • the first process can be executed faster than the second process. Therefore, the correction process (S130) is executed at the timing when the second output is obtained.
  • the first output is performed in the present embodiment. It may be output as it is as the output of the position estimation processing according to the embodiment.
  • FIG. 13 is a schematic diagram illustrating a temporal change image of a position error that may occur in the position estimation process according to the present embodiment.
  • the second output is obtained at time t 11 and correction based on the second output is performed.
  • the position estimation process according to the present embodiment from the start of the process, although between times t 11 position error increases with time, based on the second output at time t 11 As a result of the correction, the position error is suppressed.
  • the position error is suppressed every time correction is performed, and therefore the error is less likely to increase with time and is executed continuously for a long time. Even if there is, a large error is unlikely to occur.
  • the position estimation process according to the present embodiment when the second output cannot be obtained, the first output is output as it is, and therefore the position estimation is performed only by the second process based on the motion model. In comparison, the position information can be estimated more frequently.
  • Configuration example >> The principle of the technique according to the present embodiment has been described above. Subsequently, a configuration example of the present embodiment will be described. Hereinafter, an apparatus configuration example and a functional configuration example of the present embodiment will be sequentially described.
  • FIG. 14 is a diagram illustrating an example of a device configuration of a system according to the present embodiment. As shown in FIG. 14, the system according to the present embodiment includes sensor devices 10A to 10F, a hub device 20, an information processing device 30, and an output device 40.
  • the sensor device 10 includes at least a motion sensor and is a device that is worn on a body part. Since the parts to which the sensor devices 10A to 10F are attached have been described with reference to FIG. 1, their individual descriptions are omitted.
  • the sensor device 10 includes a gyro sensor 12, an acceleration sensor 14, a control unit 16, and a communication unit 18, for example, as shown in FIG.
  • the motion sensor with which the sensor apparatus 10 is provided is not limited to an inertial sensor (the gyro sensor 12 and the acceleration sensor 14).
  • the sensor device 10 may include a motion sensor such as a geomagnetic sensor, an atmospheric pressure sensor, and an image sensor instead of or in addition to the inertial sensor.
  • FIG. 14 only the configuration of the sensor device 10A is shown, but the configurations of the sensor devices 10A to 10F may be the same.
  • the gyro sensor 12 is an inertial sensor that acquires angular velocity as sensor data.
  • the angular velocity acquired by the gyro sensor 12 may be the angular velocity of the sensor device 10 in the local coordinate system.
  • the acceleration sensor 14 is an inertial sensor that acquires acceleration as sensor data.
  • the acceleration acquired by the acceleration sensor 14 may be the acceleration of the sensor device 10 in the local coordinate system set for each sensor device 10.
  • the control unit 16 controls the operation of the sensor device 10.
  • the control unit 16 may control communication by the communication unit 18 and transmit sensor data (angular velocity and acceleration) acquired by the gyro sensor 12 and the acceleration sensor 14 to the hub device 20.
  • the control unit 16 may perform processing on the sensor data acquired by the gyro sensor 12 and the acceleration sensor 14, and may transmit the processing result obtained by the processing to the hub device 20.
  • the communication unit 18 is a communication module for transmitting and receiving data to and from other devices by wire or wireless.
  • the communication unit 18 is a system such as a wired LAN (Local Area Network), wireless LAN, Wi-Fi (Wireless Fidelity, registered trademark), infrared communication, Bluetooth (registered trademark), short-range / non-contact communication, and the like. Wirelessly or directly with a network access point.
  • the hub device 20 is an information processing device that receives and aggregates information from a plurality of sensor devices 10. Note that the sensor device 10 and the hub device 20 may be wired or wirelessly connected.
  • the hub device 20 includes, for example, a communication unit 22 and a control unit 24 as shown in FIG.
  • the communication unit 22 is a communication module for transmitting and receiving data to and from other devices by wire or wireless.
  • the communication unit 22 wirelessly communicates with an external device directly or via a network access point by a method such as wired LAN, wireless LAN, Wi-Fi, infrared communication, Bluetooth, and short-range / non-contact communication.
  • the control unit 24 controls the operation of the hub device 20.
  • the control unit 24 may control communication by the communication unit 22 and cause the information received from the sensor device 10 to be transmitted to the information processing device 30 as it is.
  • the control unit 24 may perform processing on the information received from the sensor device 10 and may cause the information processing device 30 to transmit a processing result obtained by the processing.
  • the information processing device 30 is an information processing device that receives and processes information from the hub device 20.
  • the hub device 20 and the information processing device 30 may be wired or wirelessly connected.
  • the information processing apparatus 30 includes a communication unit 32 and a control unit 34, for example, as illustrated in FIG.
  • the communication unit 32 is a communication module for transmitting and receiving data to and from other devices by wire or wireless.
  • the communication unit 32 wirelessly communicates with an external device directly or via a network access point by a method such as a wired LAN, wireless LAN, Wi-Fi, infrared communication, Bluetooth, and short-range / non-contact communication.
  • the control unit 34 controls the operation of the information processing apparatus 30. For example, the control unit 34 performs processing on information received by the communication unit 32. In addition, the control unit 34 can control the display of the output device 40 by controlling the communication unit 32 to transmit the result of the processing to the output device 40 connected to the information processing device 30. For example, the control unit 34 may cause the output device 40 to display visualized skeleton information, a 3D model reflecting the skeleton information, or the like based on the skeleton information obtained as a result of the processing.
  • the output device 40 is a device having at least a display function, and performs display according to the control of the control unit 34 of the information processing device 30.
  • the output device 40 may be, for example, an installation type display, or an HMD (Head Mounted Display) attached to the user.
  • the output device 40 and the information processing device 30 may be an integrated device.
  • FIG. 15 is a diagram illustrating an example of a functional configuration of a system according to the present embodiment.
  • FIG. 15 shows only the functional configuration mainly showing the features of the present embodiment, and the system according to the present embodiment may include a functional configuration not shown in FIG.
  • the system includes a global motion acceleration posture calculation unit 510, an integration calculation unit 520, a selection unit 530, a wearing position regression estimation unit 540, a reliability specification unit 550, a ground contact detection unit 560, and a correction.
  • Functions as the unit 570 and the interpolation unit 580 are provided.
  • each functional configuration of FIG. 15 described below may be realized by any of the devices shown in FIG.
  • the control unit 16 of the sensor device 10 or the control unit 24 of the hub device 20 has a function as the global motion acceleration / attitude calculation unit 510, and the control unit 34 of the information processing device 30 performs other integration calculation units 520 to interpolation.
  • the unit 580 may have a function. However, which device has which function is not limited to this example.
  • Global motion acceleration posture calculation unit 510 has a function of performing processing based on sensor data (angular velocity and acceleration) acquired by sensor devices 10A to 10F shown in FIG. Note that the global motion acceleration posture calculation unit 510 may independently process the sensor data acquired by each of the sensor devices 10A to 10F.
  • the global motion acceleration posture calculation unit 510 calculates the posture of the sensor device 10 in the global coordinate system by integrating the angular velocity of the sensor device 10 in the local coordinate system included in the sensor data (steps S111 and S121 in FIG. 12). Equivalent).
  • the global motion acceleration posture calculation unit 510 may calculate the posture of the sensor device 10 using AHRS.
  • the global motion acceleration posture calculation unit 510 may use sensor data acquired by the geomagnetic sensor for posture calculation of the sensor device 10 by AHRS.
  • the global motion acceleration posture calculation unit 510 performs a process of converting the calculated posture of the sensor device 10 in the global coordinate system into the posture of the wearing part to which the sensor device 10 is attached in the global coordinate system.
  • the global motion acceleration posture calculation unit 510 may convert the posture of the sensor device 10 into the posture of the wearing part using a prior calibration result.
  • the global motion acceleration posture calculation unit 510 converts the acceleration in the local coordinate system into the acceleration in the global coordinate system, which is included in the sensor data, based on the posture of the wearing part in the global coordinate system (step S112 in FIG. 12). , Equivalent to S122).
  • the global motion acceleration posture calculation unit 510 performs a process of removing the gravity component from the acceleration in the global coordinate system obtained as described above.
  • the global motion acceleration posture calculation unit 510 may remove the gravity component from the acceleration in the global coordinate system based on the posture of the wearing part in the global coordinate system.
  • the global motion acceleration / posture calculation unit 510 calculates the posture information of the wearing part in the global coordinate system obtained by the above processing and the acceleration in the global coordinate system from which the gravity component is removed, as an integration calculation unit 520, a selection unit 530, and It outputs to the mounting position regression estimation part 540.
  • the integration calculation unit 520 performs a global coordinate system by integrating twice the acceleration in the global coordinate system from which the gravity component input from the global motion acceleration posture calculation unit 510 is removed (corresponding to steps S113 and S114 in FIG. 12). The position information of the mounting site at is calculated. The integral calculation unit 520 outputs the calculated position information of the wearing part in the global coordinate system and the posture information of the wearing part in the global coordinate system input from the global motion acceleration posture calculation unit 510 to the correction unit 570.
  • the first process based on the inertial navigation described above can be performed by the global motion acceleration posture calculation unit 510 and the integration calculation unit 520 described above.
  • the position information and the posture information output from the integral calculation unit 520 correspond to the first output.
  • the selection unit 530 selects an exercise model for the mounting position regression estimation unit 540 to estimate the position information of the mounting site by regression.
  • a plurality of exercise models may be prepared according to the pattern of the part to which the sensor device 10 is attached and stored in a storage unit (not shown), and the selection unit 530 may select from among the plurality of exercise models.
  • the motion model used by the wearing position regression estimation unit 540 is selected.
  • the exercise model may be prepared in advance for each combination of wearing parts, for example.
  • the selection unit 530 may identify a combination of wearing parts based on information input from the global motion acceleration posture calculation unit 510 and select an appropriate motion model. With this configuration, for example, even if the user attaches / detaches some sensor devices 10 during the operation of the system or the power supply of a battery (not shown) of some sensor devices 10 is lost, the selection unit 530 An appropriate motion model can be selected dynamically. Note that FIG. 15 shows an example in which a combination of wearing parts is specified based on information input from the global motion acceleration posture calculation unit 510, but the selection unit 530 receives sensor data itself as input or other information. You may specify the combination of a mounting
  • FIG. 16 is an explanatory diagram showing an example of a combination of wearing parts and an exercise model.
  • a mounting portion where the sensor device 10 is mounted is marked with a circle. Also, different root parts are set for each exercise model.
  • the wearing part SP101 corresponding to the waist is the root part
  • the sensor device 10 is attached to the six wearing parts SP101 to SP106.
  • the wearing part SP106 corresponding to the head is a root part
  • the sensor device 10 is attached to the three wearing parts SP102, SP105, and SP106.
  • the mounting part SP106 corresponding to the head is a root part
  • the sensor device 10 is mounted on the two mounting parts SP102 and SP106.
  • the mounting part SP101 corresponding to the waist is the root part, and the sensor device 10 is attached to the two mounting parts SP101 and SP105.
  • the wearing part SP101 corresponding to the waist is the root part, and the sensor device 10 is attached to the three wearing parts SP101, SP103, and SP104.
  • the part where the position information and the posture information can be estimated by the system according to the present embodiment can be an attachment part and a non-attachment part located between a plurality of attachment parts in a predetermined skeleton structure.
  • the position information and the position information (including the wearing part and the non-wearing part) from which position information and posture information can be estimated according to the combination of the wearing parts in this embodiment are indicated by hatching. Yes.
  • the wearing position regression estimation unit 540 uses the motion model selected by the selection unit 530 and based on the posture information of the wearing site in the global coordinate system and the acceleration in the global coordinate system from which the gravity component is removed. Regression estimation processing (corresponding to step S123 in FIG. 12) is performed to estimate the position information of. Note that the wearing position regression estimation unit 540 according to the present embodiment estimates the position information of the wearing part in the body coordinate system based on the root part set for each exercise model. The wearing position regression estimating unit 540 outputs the position information of the wearing site in the estimated body coordinate system to the reliability specifying unit 550 and the correcting unit 570.
  • the second process based on the above-described motion model can be performed by the above-described global motion acceleration posture calculation unit 510 and the mounting position regression estimation unit 540.
  • the position information output from the mounting position regression estimation unit 540 corresponds to the second output.
  • the reliability specifying unit 550 has a reliability specifying function for specifying the reliability of the position information (also referred to as position information included in the second output) of the attachment site estimated by the attachment position regression estimation unit 540.
  • the reliability specified by the reliability specifying unit 550 can be used in correction by the correction unit 570 described later.
  • the correction unit 570 described below places more importance on the position information included in the second output than the position information included in the first output when the reliability of the position information included in the second output is high ( The position information included in the first output is more important than the position information included in the second output when the reliability is low.
  • the reliability specifying unit 550 may set a higher reliability when the likelihood distribution of the position information included in the second output is smaller.
  • FIG. 17 is a diagram illustrating an example of specifying reliability by the reliability specifying unit 550.
  • FIG. 17 shows the position estimated by the wearing position regression estimation unit 540 and its likelihood distribution R10.
  • higher reliability is specified when the difference between the upper limit L1 and the lower limit L2 of the likelihood distribution R10 is smaller.
  • high reliability is specified in the section from time t 21 to time t 22 and the section from time t 23 to time t 24 , that is, the position information included in the second output is more important.
  • a low reliability is specified in the section from time t 22 to time t 23 , that is, position information included in the first output is more important.
  • the reliability specifying unit 550 outputs the specified reliability to the correction unit 570.
  • the grounding detection unit 560 performs grounding detection processing of the body's feet based on the sensor data (angular velocity and acceleration) acquired by the sensor devices 10A to 10F.
  • the correction unit 570 described later can convert the position information in the body coordinate system estimated by the wearing position regression estimation unit 540 into the global coordinate system.
  • the grounding detection unit 560 may perform grounding detection in, for example, so-called zero speed update (ZUPT: Zero Velocity Update).
  • ZUPT is a method for correcting a position by detecting a state where the speed is zero as a grounded state.
  • a correction function of position information by a correction unit 570 described later can also be realized by ZUPT.
  • the method of detecting the grounding by the grounding detection unit 560 is not limited to this example, and the grounding detection of the foot of the body may be performed by other methods.
  • the correction unit 570 refers to the first output input from the integration calculation unit 520 and the second output input from the mounting position regression estimation unit 540, and the position of the mounting part included in the first output. Correct information.
  • the function of the correction unit 570 may be referred to as a correction function. With this correction function, as described with reference to FIGS. 12 and 13, the error does not easily increase with time, and the position information of the attachment site can be estimated with higher accuracy.
  • the correction unit 570 may correct the position information of the attachment site based on the reliability specified by the reliability specifying unit 550. With this configuration, it is possible to estimate the position information of the attachment site with higher accuracy.
  • the correction unit 570 uses the position detection information (second output) in the body coordinate system estimated by the mounting position regression estimation unit 540 based on the contact detection result by the contact detection unit 560 in the mounting in the global coordinate system. Convert to location information. With this configuration, it is possible to perform correction by unifying the coordinate system into the global coordinate system.
  • the correction function of the correction unit 570 may be realized by a Kalman filter.
  • the integration function by the integration calculation unit 520 and the correction function by the correction unit 570 can be combined and realized by a Kalman filter.
  • a Kalman filter having the speed and position of each attachment site as an internal state is assumed.
  • Such a Kalman filter predicts the speed and position of the wearing part by integrating the acceleration of the wearing part in the global coordinate system output from the global motion acceleration / posture calculation unit 510.
  • the Kalman filter can correct the position information by updating the internal state by observing the position obtained by converting the position information included in the second output into the global coordinate system.
  • the interpolation unit 580 estimates the position information of the non-wearing part based on the position information of the wearing part corrected by the correction function of the correction part 570, and generates skeleton information. As described with reference to FIG. 16, the interpolation unit 580 may estimate position information of a non-wearing part located between a plurality of wearing parts in a predetermined skeleton structure.
  • the function of the interpolation unit 580 may be referred to as an interpolation function.
  • Such an interpolation function can be realized by the inverse kinematic calculation described with reference to FIGS. 4 and 5, for example.
  • the interpolation unit 580 estimates the position information of the non-attached part by regression that is applied to an inverse kinematic model prepared in advance.
  • the inverse kinematic model can be generated by learning, for example, motion constraint information in advance (for example, information including a plurality of samples of position and posture of each part in a pose or a series of movements acquired in the past). Is possible.
  • Various interpolation analysis methods can be used for the interpolation function of the interpolation unit 580. For example, methods such as DNN and Random Forest may be used alone or in combination.
  • the interpolation unit 580 estimates the position information of each part.
  • the present embodiment is not limited to such an example. If either position information or posture information of each part is obtained, the other can be specified according to the skeleton structure. Therefore, the interpolation unit 580 may estimate at least one of the position information and the posture information of the non-wearing part.
  • FIG. 18 is a flowchart showing an operation example of the system according to the present embodiment. Note that FIG. 18 mainly shows only processing that shows the features of the present embodiment, and the system according to the present embodiment may execute processing that is not shown in FIG. 18.
  • the global motion acceleration posture calculation unit 510 calculates the posture of the sensor device 10 in the global coordinate system based on the angular velocity acquired by the gyro sensor 12 using AHRS (S502). Note that step S502 corresponds to steps S111 and S121 in FIG.
  • the global motion acceleration posture calculation unit 510 converts the posture of the sensor device 10 in the global coordinate system obtained in step S502 into the posture of the wearing portion on which the sensor device 10 is worn in the global coordinate system (S504). ).
  • step S506 corresponds to steps S112 and S122 of FIG.
  • the global motion acceleration posture calculation unit 510 removes the gravity component from the acceleration in the global coordinate system obtained in step S506 based on the posture of the wearing part in the global coordinate system obtained in step S504 (S508). .
  • the integration calculation unit 520 calculates the position information of the attachment site in the global coordinate system by integrating twice the acceleration in the global coordinate system from which the gravity component obtained in step S508 is removed (S510). Note that step S510 corresponds to steps S113 and S114 in FIG.
  • step S512 it is determined whether or not the correction in step S510 is to be performed.
  • the position estimation process based on the motion model has a larger processing load than the position estimation process based on inertial navigation. Therefore, the execution frequency of the position estimation process based on the motion model (S514) is less than the execution frequency of the position estimation process based on the inertial navigation (S502 to S510). Therefore, in step S512, it may be determined that correction is performed once every time the process illustrated in FIG. 18 is performed a predetermined number of times.
  • the present embodiment is not limited to such an example. For example, when it can be determined that the wearing part is not stationary based on the sensor data, it is determined that correction is performed, and when it can be determined that the mounting part is stationary. May not be corrected.
  • the wearing position regression estimation unit 540 estimates the position information of the wearing site in the body coordinate system by regression estimation using an exercise model (S514). Note that step S514 corresponds to step S123 in FIG.
  • the correction unit 570 converts the position information of the wearing part in the body coordinate system estimated in step S514 into the position information of the wearing part in the global coordinate system based on the result of the grounding detection by the grounding detection unit 560 (S516). ).
  • the correcting unit 570 corrects the position information of the mounting site in the global coordinate system obtained in step S510 based on the position information of the mounting site in the global coordinate system obtained in step S516 (S518).
  • the interpolation unit 580 estimates (interpolates) the regression information by applying the position information of the non-wearing part to the inverse kinematic model based on the position information of the wearing part in the global coordinate system (S520).
  • the position information of the attachment site used for the regression estimation of the position information of the non-attachment site in step S520 may differ depending on the determination result in step S512. If it is determined in step S512 that correction is to be performed, the position information of the attachment site corrected in step S518 is used for regression estimation in step S520. On the other hand, if it is determined in step S512 that correction is not performed, the position information of the attachment site in the global coordinate system obtained in step S510 is used for regression estimation in step S520.
  • FIG. 18 may be repeatedly executed every time sensor data is acquired by the gyro sensor 12 and the acceleration sensor 14, or at a predetermined frequency.
  • the wearing position regression estimation unit 540 is based on the posture information of the wearing part in the global coordinate system calculated by the global motion acceleration posture calculation unit 510 and the acceleration in the global coordinate system from which the gravity component is removed.
  • An example of performing regression estimation processing has been described.
  • the present technology is not limited to such an example.
  • the angular velocity and acceleration acquired by the gyro sensor 12 and the acceleration sensor 14 may be used as input to the regression estimation process. Such an example will be described as a first modification.
  • FIG. 19 is a diagram illustrating a functional configuration example of the system according to the first modification.
  • configurations that are substantially the same as the configurations shown in FIG. 15 are denoted by the same reference numerals, and thus the description thereof is omitted, and is different from the system shown in FIG. 15.
  • the points to be described will be described below.
  • the system according to this modification is different from the system shown in FIG. 15 in that it includes a mounting position regression estimation unit 541 instead of the mounting position regression estimation unit 540.
  • the wearing position regression estimation unit 541 uses the angular velocity and acceleration acquired by the gyro sensor 12 and the acceleration sensor 14 as inputs in addition to or instead of the information calculated by the global motion acceleration posture calculation unit 510. Then, regression estimation processing is performed.
  • the motion model used for such regression estimation can be prepared in advance by learning motion constraint information including information (angular velocity and acceleration) of the same type as the information used for the regression estimation.
  • the first modification has been described above. According to this modification, by using more information, it may be possible to estimate the position information of the attachment site with higher accuracy.
  • the example in which the angular velocity and acceleration are used as input to the regression estimation process by the mounting position regression estimation unit 541 has been described.
  • other information may be used as input.
  • the sensor device 10 includes a geomagnetic sensor and an atmospheric pressure sensor in addition to the gyro sensor 12 and the acceleration sensor 14, information on the geomagnetism and the atmospheric pressure may be used as an input to the regression estimation process.
  • FIG. 20 is a diagram illustrating a functional configuration example of a system according to the present modification.
  • configurations that are substantially the same as the configurations shown in FIG. 15 are denoted by the same reference numerals, and thus the description thereof is omitted and is different from the system shown in FIG. 15.
  • the following points will be described.
  • the system according to the present modification is different from the system illustrated in FIG. 15 in that a correction unit 572 is included instead of the reliability specifying unit 550 and the correction unit 570.
  • the correction unit 572 includes at least one of the position information of the attachment part input from each of the integration calculation unit 520 and the attachment position regression estimation unit 540. It has a function to specify the reliability. Such a function may be realized by, for example, a Kalman filter, may be realized based on a predetermined rule, or may be realized by regression estimation using a model prepared in advance by learning. Also good.
  • FIG. 21 is a diagram illustrating a functional configuration example of a system according to the present modification.
  • the system according to the present modification is the same as the system shown in FIG. 15 in that it includes a correction unit 573 and an interpolation unit 583 instead of the reliability specifying unit 550, the correction unit 570, and the interpolation unit 580. Is different.
  • the interpolation unit 583 is based on the posture information of the wearing part in the global coordinate system calculated by the global motion acceleration posture calculating unit 510 and the position information of the wearing part estimated by the wearing position regression estimation unit 540. At least one of the position information and the posture information of the non-wearing part is estimated by regression.
  • the regression estimation by the interpolation unit 583 may be similar to the regression estimation of the non-wearing part by the interpolation unit 580 except that the input information is different.
  • the position information or posture information of the non-wearing part estimated by the interpolation unit 583 is output to the correction unit 573.
  • the second processing according to this modification includes interpolation processing in which the interpolation unit 583 described above estimates at least one of position information and posture information of the non-wearing part.
  • the second output (output of the second process) according to this modification includes at least one of position information and posture information of the non-wearing part estimated by the interpolation unit 583.
  • the second output according to the present modification may include the position information or posture information of the wearing part obtained by the global motion acceleration posture calculating unit 510 or the wearing position regression estimating unit 540. That is, the second output according to this modification includes at least one of position information and posture information of all the parts to be estimated.
  • the correction unit 573 according to the present modification is included in the second output input from the interpolation unit 583 based on the first output (posture information and position information of the attachment part) input from the integration calculation unit 520. At least one of the position information and the posture information of the non-attached part is corrected.
  • the relationship between the speed and position of the wearing part and the position or posture of the non-wearing part is non-linear. Therefore, the correction function of the correction unit 573 according to this modification can be realized by an extended Kalman filter, for example.
  • an extended Kalman filter for example.
  • Such an extended Kalman filter has, as internal states, the speeds and positions of all the wearing parts and the postures of all the parts to be estimated (including wearing parts and non-wearing parts).
  • the extended Kalman filter predicts the speed and position of the wearing part by integrating the acceleration of the wearing part in the global coordinate system output from the global motion acceleration posture calculation unit 510.
  • the extended Kalman filter can correct the posture information by updating the internal state by observing the posture information of all the parts to be estimated included in the second output.
  • a Jacobian describing the relationship between the velocity of the wearing part and the posture of the non-wearing part used in inverse kinematics calculation may be used for prediction of the error covariance matrix that the extended Kalman filter has internally.
  • the attachment position regression estimation unit 540 and the interpolation unit 583 are shown as separate functional configurations, but the functions of the attachment position regression estimation unit 540 and the interpolation unit 583 may be integrated.
  • the position information and posture information of all the parts to be estimated may be directly estimated by regression based on information input from the global motion acceleration posture calculation unit 510. In such a case, there is an effect that the number of models prepared in advance for regression estimation can be reduced.
  • FIG. 22 is an explanatory diagram for explaining the outline of the non-tracking motion model. As shown in FIG. 22, in the regression estimation using the non-tracking motion model, information on acceleration and posture can be input and position information can be output.
  • FIG. 23 is an explanatory diagram for explaining the outline of the tracking type motion model.
  • acceleration and posture information can be input and position information can be output even in regression estimation using a tracking type motion model.
  • the position information delayed by one sample by the delay unit D that is, the output of the previous regression estimation process
  • the tracking type motion model has an advantage that followability can be improved.
  • FIG. 24 is a diagram illustrating a functional configuration example of a system according to the present modification. 24, components substantially the same as those shown in FIG. 15 are denoted by the same reference numerals, and the description thereof is omitted. The configuration is different from the system shown in FIG. The points to be described will be described below. Referring to FIG. 24, the system according to the present modification is different from the system shown in FIG. 24 in that a mounting position regression estimation unit 540 and a correction unit 570 are replaced with a mounting position regression estimation unit 544 and a correction unit 574. To do.
  • the wearing position regression estimation unit 544 uses the position information of the wearing part estimated by the past regression estimation process in addition to the information calculated by the global motion acceleration / posture calculation unit 510 to determine the wearing part corrected by the correcting unit 574. Regression estimation processing is performed using position information as an input.
  • the motion model used for such regression estimation is the tracking motion model described above, and can be prepared in advance by learning motion constraint information including position information delayed by one sample, for example.
  • FIG. 25 is a diagram illustrating a device configuration example of a system according to the present modification.
  • the system according to the present modification includes sensor devices 10A to 10F, an information processing device 30, and an output device 40.
  • the sensor device 10 is directly connected to the information processing device 30 without going through the hub device 20.
  • the sensor device 10 and the information processing device 30 may be wired or wirelessly connected.
  • the configuration of each device illustrated in FIG. 25 may be the same as the configuration of each device denoted by the same reference numeral illustrated in FIG.
  • the estimation result of the regression estimation can vary greatly depending on the motion constraint information used for learning to generate the motion model and the inverse kinematic model. For example, when motion constraint information obtained by sensing a characteristic posture or motion is used for learning, the estimation result is more likely to have a feature closer to the motion used for learning than the actual body motion. Become.
  • characteristic postures and actions include character-specific postures such as zombies, dynamic behavior typical of fighting scenes, postures that frequently appear during shooting games, and dance genres.
  • a choreography operation, an operation according to an individual rule for each sport, and the like can be mentioned, but it is not limited to such an example.
  • FIG. 26 is an explanatory diagram for explaining the outline of the present embodiment, is a diagram of an image of each coordinate system in the present embodiment, and FIG. 27 is an explanatory diagram for explaining each angle of the sensor device 10. It is.
  • Equation (3) since the position of the part in the Sen coordinate system is the position of the part with respect to the sensor device 10 (sensor coordinate system), once the sensor device 10 is mounted on the part, As long as there is no deviation, it is unchanged. Therefore, in the above motion capture, if the posture of the part in the sensor coordinate system that is invariant is known, the posture of the part in the global coordinate system is obtained based on the posture of the sensor device 10 in the global coordinate system that changes over time. Is possible.
  • the posture of the sensor device 10 in the global coordinate system in the initial state that is, to grasp the posture in which the sensor device 10 is mounted. Therefore, in the conventional motion capture, in order to grasp the posture in which the sensor device 10 is mounted, the mounting posture and position of the sensor device 10 are defined in advance so that the posture and position are defined. The user wears it on the body. At this time, the user is required to carefully wear the sensor device 10 so that the posture and position are defined.
  • the mounting posture of the sensor device 10 is grasped based on the sensor data from the sensor device 10. It is possible.
  • the roll angle and the pitch angle of the sensor device 10 can be acquired by detecting the gravitational acceleration by the acceleration sensor included in the sensor device 10 worn by the user in a stationary state. it can.
  • the yaw angle of the sensor device 10 can be acquired by the geomagnetic sensor included in the sensor device 10. Then, based on the pitch angle, roll angle, and yaw angle of the sensor device 10 acquired in this way, the mounting posture of the sensor device 10 can be grasped.
  • the roll angle is a rotation angle with the front-rear direction as an axis (X axis)
  • the pitch angle is a rotation angle with the left-right direction as an axis (Z axis)
  • the yaw angle is an up-down direction. Is an angle of rotation about the axis (Y axis).
  • the X axis is regarded as a roll axis
  • the Y axis is regarded as a yaw axis
  • the Z axis is regarded as a pitch axis.
  • the present inventors have developed an algorithm that allows the user wearing the sensor device 10 to grasp the mounting posture of the sensor device 10 by performing a simple calibration operation.
  • the second embodiment of the present disclosure described below has been invented.
  • the attitude (rotation matrix) of the sensor device 10 in the global coordinate system is acquired based on the sensor data acquired during the calibration operation. Further, in the present embodiment, the position (rotation matrix) of the part in another global coordinate system is acquired based on the sensor data acquired at the time of a predetermined operation included in the calibration operation.
  • the posture of the sensor device 10 in the global coordinate system in the initial state obtained from the posture (rotation matrix) of the portion in the two global coordinate systems described above, and the position in the global coordinate system in the initial state Using the posture, the posture of the part in the sensor coordinate system can be obtained based on Equation (4).
  • the global coordinate system can be obtained from the posture of the sensor device 10 in the global coordinate system that changes with time based on Equation (3). The position of the part can be obtained.
  • the user wearing the sensor device 10 stops at a predetermined pose, and then the user moves the sensor device 10 horizontally (for example, straight ahead). And a series of actions such as stopping again at the predetermined pose.
  • the mounting posture of the sensor device 10 it is possible to grasp the mounting posture of the sensor device 10 with high accuracy by performing a restriction such as to be stationary at the start and end of the calibration operation. Further, in the present embodiment, since it is possible to independently grasp the mounting posture for each sensor device 10, the number of sensor devices 10 whose mounting posture is grasped may be one or more, Each sensor device 10 may be attached to any part of the user's body. Details of the embodiment of the present disclosure will be described below.
  • the mounting posture of the sensor device 10 can be grasped with high accuracy by having the user wearing the sensor device 10 perform a simple predetermined calibration operation.
  • An example of the calibration operation according to the present embodiment will be described with reference to FIG.
  • FIG. 28 is an explanatory diagram for explaining an example of the calibration operation in the present embodiment.
  • a first operation (initial rest) in the calibration operation for example, the user U1 is in an upright state, slightly opens both feet in a natural state, and opens his arms to the side of the body. It stretches to the position of, and rests in an upright state like a so-called watchful pose like extending the fingertips downward. In this embodiment, it is preferable to continue this operation for several seconds.
  • N Natural
  • predetermined pose predetermined pose
  • the user U1 uses, for example, a horizontal plane (floor) as a second operation (operation) to be performed after the first operation in the calibration operation. Go straight (linear motion) for a predetermined distance (for example, one step).
  • the second operation is not particularly limited as long as the sensor device 10 attached to the user U1 moves horizontally.
  • the second operation may be an operation in which the user U1 moves horizontally or backward.
  • the user U1 performs, for example, the above-described N pause as the third operation (final stillness) performed after the second operation in the calibration operation. It lasts for a few seconds.
  • the mounting posture of the sensor device 10 can be grasped with high accuracy by performing a simple calibration operation that is easy to implement.
  • the first operation is N-pause instead of the calibration operation as described above.
  • a hand may be stretched forward of the user U1 (so-called “previous pose”).
  • FIG. 29 is a diagram illustrating an example of a functional configuration of a system according to the present embodiment.
  • FIG. 29 shows only the functional configuration mainly showing the features of the present embodiment, and the system according to the present embodiment may include the functional configuration shown in FIG.
  • the system according to the present embodiment has functions as rotation matrix calculation units 610 and 630, an integration calculation unit 620, a rotation matrix synthesis unit 640, and a transformation matrix calculation unit 650.
  • Each functional configuration of FIG. 29 described below may be realized by any of the devices shown in FIG. 14 and is not particularly limited.
  • the rotation matrix calculation unit 610 to the rotation matrix synthesis unit 640 can be said to be an estimation block (estimation unit) 700 having an estimation function for estimating the attitude of the sensor device 10 in the global coordinate system. It can be said that this is a block for calculating a rotation matrix to correspond to the system.
  • the transformation matrix calculation unit 650 can be said to be an estimation block 702 having an estimation function for estimating the posture of a part in the sensor coordinate system, that is, a function for calculating a coordinate transformation matrix for associating the body coordinate system with the sensor coordinate system. Is a block with
  • the rotation matrix calculation unit 610 determines the pitch angle and roll angle of the sensor device 10 based on the acceleration in the sensor coordinate system included in the sensor data of the sensor device 10 acquired in the first operation of the calibration operation. And a first rotation matrix that is a rotation matrix around the X axis and the Z axis is calculated based on the calculated pitch angle and roll angle. Details of the calculation in the rotation matrix calculation unit 610 will be described later.
  • the integration calculation unit 620 can perform integration processing on the sensor data of the sensor device 10 acquired from the first operation through the second operation of the calibration operation to the third operation.
  • the integral calculation unit 620 can integrate the angular velocity and acceleration included in the sensor data, and can acquire the acceleration of the sensor device 10 in the global coordinate system by performing such processing.
  • the integral calculation unit 620 can further integrate the obtained acceleration in the global coordinate system, for example, and acquire the speed and position.
  • the rotation matrix calculation unit 630 receives the acceleration of the sensor device 10 in the global coordinate system from the integration calculation unit 620 (specifically, from the first operation through the second operation of the calibration operation to the third operation).
  • the second rotation matrix that is a rotation matrix around the Y axis can be calculated based on the yaw angle of the sensor device 10 obtained by processing (acceleration). Details of the calculation in the rotation matrix calculation unit 630 will be described later.
  • the rotation matrix synthesis unit 640 combines the first rotation matrix from the rotation matrix calculation unit 610 and the second rotation matrix from the rotation matrix calculation unit 630 to mean the attitude of the sensor device 10 in the global coordinate system.
  • a rotation matrix (third rotation matrix) for making the sensor coordinate system correspond to the global coordinate system can be calculated. The details of the calculation of the rotation matrix in the rotation matrix synthesis unit 640 will be described later.
  • the transformation matrix synthesis unit 650 is a body coordinate system that indicates the rotation matrix (third rotation matrix) from the rotation matrix synthesis unit 640 and the posture of the corresponding part in the global coordinate system in the first motion defined in advance. Using the rotation matrix corresponding to the global coordinate system, the posture of the part in the sensor coordinate system can be calculated. That is, the transformation matrix calculation unit 650 can calculate a coordinate transformation matrix for making the body coordinate system correspond to the sensor coordinate system. Details of the calculation of the coordinate transformation matrix in the transformation matrix synthesis unit 650 will be described later. Further, in the global motion acceleration posture calculation unit 510, based on the calculated posture of the part in the sensor coordinate system and the posture of the sensor device 10 in the global coordinate system that changes over time, The position of the part in the global coordinate system can be obtained.
  • FIG. 30 is a flowchart showing an operation example of the system according to the present embodiment. Note that FIG. 30 mainly shows only processing that shows the features of the present embodiment, and the system according to the present embodiment may execute processing that is not shown in FIG. 30. Further, FIG. 31 is an explanatory diagram for explaining the operation in step S706 of FIG. 30, and FIG. 32 is an explanatory diagram for explaining the operation in step S712 of FIG.
  • the system according to the present embodiment uses the sensor data acquired during the calibration operation described above as an initial stationary interval that is a first operation interval, and a second operation. Is divided into a motion section that is a second motion section and a final stationary section that is a third motion section (S700).
  • the system according to the present embodiment includes the pitch angle of the sensor device 10 based on the acceleration of the sensor device 10 in the initial stationary section, that is, the sensor coordinate system included in the sensor data acquired in the first operation. Calculate the roll angle.
  • the system according to this embodiment is a rotation matrix around the X axis and the Z axis that indicates the initial posture (pitch angle and roll angle) of the sensor device 10 in the global coordinate system based on the calculated pitch angle and roll angle.
  • a certain first rotation matrix is calculated (S702).
  • step S702 the acceleration of gravity is detected by the first sensor, that is, the acceleration sensor included in the sensor device 10 attached to the user U1 that is stationary in the N pose.
  • the roll angle and pitch angle of the sensor device 10 can be acquired based on the detected gravitational acceleration.
  • the system according to the present embodiment calculates a first rotation matrix that is a rotation matrix around the X axis and the Z axis of the sensor coordinate system with respect to the global coordinate system, based on the pitch angle and roll angle of the sensor device 10. be able to.
  • the system according to the present embodiment performs inertial navigation on the sensor data of the sensor device 10 acquired from the first operation through the second operation to the third operation, that is, in the operation section ( INS) (specifically, integration processing) is applied to calculate the movement vector P (S704).
  • step S704 the direction in which the sensor device 10 has advanced in the real world during the motion section is defined as the Z axis of the global coordinate system.
  • acceleration in the global coordinate system is acquired from the sensor data of the sensor device 10 acquired in the motion section, and inertial navigation is applied to acquire a movement vector (first output) P. That is, in this step, the movement vector P is obtained by performing integration twice for the acceleration in the global coordinate system.
  • the operation interval is a short time of about 1 or 2 seconds, and thus the position (movement vector) obtained by inertial navigation is used. It is possible to obtain a highly accurate position (movement vector) before) diverges.
  • the system according to the present embodiment obtains an orthogonal projection vector P xz (P x , P z ) by orthogonally projecting the movement vector P onto the XZ plane. Furthermore, the system according to the present embodiment calculates the angle formed by the orthogonal projection vector P xz and the X axis as the yaw angle ⁇ of the sensor device 10 in the global coordinate system based on the following formula (6) (S706).
  • the X axis is an axis parallel to the horizontal plane and orthogonal to the Z axis.
  • the system according to the present embodiment calculates a rotation matrix (second rotation matrix) that is rotated around the Z axis by the yaw angle ⁇ based on the yaw angle ⁇ obtained in step S706 (S708). .
  • the system according to the present embodiment combines the first and second rotation matrices calculated in the above-described Steps S702 and S708, so that the attitude of the sensor device 10 in the initial state in the global coordinate system (third Rotation matrix) (initial posture) is calculated (S710).
  • step S710 the first rotation matrix around the X axis and the Z axis calculated in step S702 described above is rotated by the yaw angle ⁇ with respect to the Y axis, whereby the global coordinate system.
  • the initial posture of the sensor 10 can be acquired. More specifically, as shown in the following equation (7), the first rotation matrix around the X axis and the Z axis calculated in step S702 described above is added to the Y axis calculated in step S710 described above.
  • the attitude of the sensor device 10 in the initial state in the global coordinate system can be calculated.
  • the system according to the present embodiment calculates the attitude (third rotation matrix) of the sensor device 10 in the initial state in the global coordinate system calculated in step S710 and the first operation (initial stationary) defined in advance.
  • the posture of the part in the sensor coordinate system is calculated using a rotation matrix that indicates the posture of the part in the global coordinate system in FIG. That is, in this step, a coordinate transformation matrix for making the body coordinate system correspond to the sensor coordinate system is calculated.
  • the posture of the corresponding part (the hand in the figure) with respect to the global coordinate system when stationary at the N pose is defined in advance.
  • the position of the part in the coordinate system can be obtained.
  • the position of the part in the sensor coordinate system is the position of the part with respect to the sensor device 10 (sensor coordinate system)
  • the sensor device 10 is mounted on the part, it is attached. As long as there is no deviation, it remains unchanged.
  • the user can grasp the mounting posture of the sensor device 10 with high accuracy by performing a simple calibration operation.
  • step S704 described above an offset process is performed on the speed obtained by inertial navigation, an integration process is performed on the speed obtained by the offset process, and a movement vector P is calculated. Also good. By doing in this way, the mounting posture of the sensor apparatus 10 can be grasped with higher accuracy.
  • This offset processing will be described with reference to FIG. FIG. 33 is an explanatory diagram for explaining the offset processing according to the present embodiment.
  • FIG. 33 shows a change with time of the speed L10 of the sensor device 10 obtained by inertial navigation.
  • the speed is zero because the user U1 is stationary.
  • the speed may not be zero at the end due to an error. Therefore, in the present embodiment, an offset process in which the offset, which is the difference between the speed L10 of the sensor device 10 by inertial navigation at the end time and the speed zero, is equally subtracted from the speed L10 of the sensor device 10 obtained by inertial navigation. May be performed.
  • the movement vector P may be calculated by performing integration processing on the speed L20 subjected to offset processing in this way.
  • subtracting the offset amount evenly means that the value obtained by dividing the offset amount by the length of the operation period is subtracted so as to be distributed to the entire speed L10 of the sensor device 10 obtained by inertial navigation. .
  • the mounting posture of the sensor device 10 can be acquired with higher accuracy. Can do. Therefore, in the present embodiment, when the calibration operation is guided to the user U1, as the second operation, for example, the user U1 is restricted to a distance of one step in which the user U1 moves linearly on the horizontal plane (movement distance in the operation section). You may apply. Further, in the present embodiment, a laser sensor may be provided in a space where the user U1 moves, and sensor data up to the timing at which the position where the laser sensor is provided may be used. Furthermore, in this embodiment, you may provide a pressure sensor in the horizontal surface where the user U1 moves instead of the above-mentioned laser sensor.
  • the movement vector P is calculated as a vector orthogonally projected to the XZ plane in step S704.
  • the movement vector P is not limited to the velocity vector.
  • FIG. 34 is an explanatory diagram for describing a modified example of the vector according to the present embodiment.
  • sensor data for a plurality of operation periods may be acquired by causing the user U1 to repeat the same calibration operation.
  • XZ A vector orthogonal to the plane may be obtained. That is, in the present modification, an orthogonal projection vector P xz is obtained by orthogonally projecting a vector obtained by linear approximation onto the XZ plane, and an angle formed by the orthogonal projection vector P xz and the X axis is a sensor in the global coordinate system.
  • the yaw angle ⁇ of the device 10 can be calculated with higher accuracy.
  • a speed obtained by processing the sensor data acquired during the operation period by inertial navigation may be used instead of the position V.
  • a vector that is orthogonally projected on the XZ plane may be calculated using an average value of the plurality of sensor data.
  • the user U1 is not limited to continuously repeating the same calibration operation.
  • different calibration operations for example, repeating one step before and one step behind
  • FIG. 35 is an explanatory diagram for explaining a mounting example of the sensor device 10 according to the present embodiment
  • FIG. 36 illustrates an example of the guidance system 100 for guiding the calibration operation according to the present embodiment.
  • FIG. 37 is a flowchart showing an operation example of the guidance system 100 according to the present embodiment.
  • FIG. 38 is an explanatory diagram for explaining an example of the guidance screen 800 according to the present embodiment.
  • FIG. 40 is explanatory drawing for demonstrating the example of mounting
  • the guidance system 100 executes a guidance function that guides the user U1 to the calibration operation.
  • the guidance system 100 includes a horizontal floor 72 where the user U1 moves horizontally, and a projector for projecting a projection image 802 (see FIG. 39) for guidance on the floor 72. 70 and a display 80 that displays a position (guidance information) or the like to be watched by the user U1.
  • the system according to this embodiment described above includes the guidance system 100 according to this embodiment.
  • the projector 70 is realized by, for example, a laser projector, an LED (Light Emitting Diode) projector, or the like, and has a function of projecting a projection image 802 onto the floor 72 via a lens.
  • the display 80 is realized by, for example, a liquid crystal display (LCD) device, an organic light emitting diode (OLED) device, or the like, and guides for guiding the user U1 to perform an appropriate calibration operation. Information can be displayed.
  • the guidance system 100 may include a speaker (not shown) for outputting guidance information for guiding the user U1 so as to perform an appropriate calibration operation.
  • the guidance system 100 presents the user U1 to the N pose (S800). Specifically, the guidance system 100 displays the avatar A1 shown in the guidance screen 800 of FIG. At this time, it is preferable that the guidance screen 800 displayed on the display 80 includes a display of a simple explanation of the N pose, and particularly important points in the N pose such as the position of the hand and the opening of the foot. It is preferable that the description of the item is displayed with emphasis (for example, in FIG. 38, words such as “the hand is attached to the foot” and “the foot is separated by one step” are displayed).
  • a gaze point M1 indicating the position to which the user U1 should gaze during the calibration operation is displayed on the display 80.
  • guidance information for guiding the user U1 to the N pose may be output along with the display of the guidance screen 800 (for example, “Please keep still in a careful posture”) Voice output of the word).
  • the guidance system 100 determines whether the user U1 is stationary (S802). In the present embodiment, for example, it is determined whether the user U1 is stationary based on the variance of acceleration detected by the acceleration sensor included in the sensor device 10 attached to the user U1, the norm detected by the gyro sensor, or the like. be able to. When it is determined that the user U1 is stationary, the guidance system 100 proceeds to step S804, and when it is determined that the user U1 is not stationary, the guidance system 100 returns to step S800 described above.
  • the guidance system 100 starts the recording of the sensor data obtained by the sensor device 10 (log start) (S804).
  • the guidance system 100 makes a presentation that guides the user U1 to the operation of moving forward one step as the second operation (S806).
  • the guidance system 100 repeatedly displays an animation in which the avatar A1 takes one step through the display 80.
  • guidance information that guides the user U1 to the operation of moving forward one step may be output by voice (for example, a phrase such as “walk one step” is output by voice).
  • a footprint-type projection image 802 indicating the position where the user U1 should place his / her foot is projected on the floor 72 by the projector 70 as a guideline for the distance when the user U1 moves forward one step.
  • the projector 70 attaches 2nd Step to the floor 72 in front of it.
  • the projected footprint-shaped projection image 802 is projected.
  • the projector 70 may project an arrow or the like indicating the direction in which the user U1 should travel on the floor 72 in addition to the footprint-type projection image 802.
  • the projector 70 is not limited to projecting the projection image 802 onto the floor 72 as described above.
  • the spot of light is used with a spotlight. May be projected onto the floor 72.
  • a footprint type mark may be drawn on the floor 72 in advance, or a mat on which a footprint type mark is drawn may be installed on the floor 72.
  • the guidance system 100 determines whether or not the user U1 has walked (S808). In the present embodiment, as described above, it can be determined whether the user U1 has walked based on the sensor data of the sensor device 10 attached to the user U1. If it is determined that the user U1 has walked, the guidance system 100 proceeds to step S810. If the user U1 determines that the user U1 has not walked, the guidance system 100 returns to step S806 described above.
  • the guidance system 100 performs the presentation which guides the user U1 to N pause by displaying the guidance screen 800 as shown in FIG. 38 similarly to above-mentioned step S800 (S810).
  • the guidance system 100 may output the guidance information for guiding the user U1 to the N-pause together with the display of the guidance screen 800 (for example, output the words such as “Please stand still”). ).
  • the guidance system 100 determines whether the user U1 is stationary as in step S802 described above (S812). If it is determined that the user U1 is stationary, the guidance system 100 proceeds to step S814, and if it is determined that the user U1 is not stationary, the guidance system 100 returns to step S810 described above.
  • the guidance system 100 ends the recording of the sensor data obtained by the sensor device 10 (log end) (S814).
  • the guidance system 100 displays on the display 80 or the like that the calculation processing is being performed on the sensor data obtained by the calibration operation (for example, displays a word such as “under calculation”) ( S816).
  • the guidance system 100 performs calibration based on the calculation result obtained in step S816, and ends the process (S818).
  • a head mounted display (hereinafter referred to as “HMD”) that is mounted on the head of the user U1 or the like. ) 60 may be used.
  • the HMD 60 has a display that is positioned in front of the user U1 when worn by the user U1, and has various forms such as the above-described gazing point M1 and footprint type images in front of the user U1. Virtual objects can be displayed.
  • Such HMD 60 includes a non-transmissive type in which the display is non-transmissive and a transmissive type in which the display is transmissive.
  • the virtual object is displayed in real time so as to be superimposed on the real space visually recognized by the user U1 via the display.
  • the display is non-transmissive, the virtual object described above is displayed in real time so as to be superimposed on the virtual space provided via the display.
  • the user U1 wearing the sensor device 10 can perform the operation for simple calibration to obtain the mounting posture of the sensor device 10 with high accuracy.
  • FIG. 41 is a block diagram illustrating an example of a hardware configuration of the information processing apparatus according to the embodiment of the present disclosure.
  • the information processing apparatus 900 illustrated in FIG. 41 can realize, for example, the sensor apparatus 10, the hub apparatus 20, and the information processing apparatus 30 illustrated in FIG.
  • Information processing by the sensor device 10, the hub device 20, and the information processing device 30 according to the embodiment of the present disclosure is realized by cooperation of software and hardware described below.
  • the information processing apparatus 900 includes a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, a RAM (Random Access Memory) 903, and a host bus 904a.
  • the information processing apparatus 900 includes a bridge 904, an external bus 904b, an interface 905, an input device 906, an output device 907, a storage device 908, a drive 909, a connection port 911, a communication device 913, and a sensor 915.
  • the information processing apparatus 900 may include a processing circuit such as a DSP or an ASIC in place of or in addition to the CPU 901.
  • the CPU 901 functions as an arithmetic processing unit and a control unit, and controls the overall operation in the information processing apparatus 900 according to various programs. Further, the CPU 901 may be a microprocessor.
  • the ROM 902 stores programs used by the CPU 901, calculation parameters, and the like.
  • the RAM 903 temporarily stores programs used in the execution of the CPU 901, parameters that change as appropriate during the execution, and the like.
  • the CPU 901 can form the control unit 16, the control unit 24, and the control unit 34.
  • the CPU 901, ROM 902, and RAM 903 are connected to each other by a host bus 904a including a CPU bus.
  • the host bus 904 a is connected to an external bus 904 b such as a PCI (Peripheral Component Interconnect / Interface) bus via a bridge 904.
  • an external bus 904 b such as a PCI (Peripheral Component Interconnect / Interface) bus
  • PCI Peripheral Component Interconnect / Interface
  • the host bus 904a, the bridge 904, and the external bus 904b do not necessarily have to be configured separately, and these functions may be mounted on one bus.
  • the input device 906 is realized by a device in which information is input by the user, such as a mouse, a keyboard, a touch panel, a button, a microphone, a switch, and a lever.
  • the input device 906 may be, for example, a remote control device using infrared rays or other radio waves, or may be an external connection device such as a mobile phone or a PDA that supports the operation of the information processing device 900.
  • the input device 906 may include, for example, an input control circuit that generates an input signal based on information input by the user using the above-described input means and outputs the input signal to the CPU 901.
  • a user of the information processing apparatus 900 can input various data and instruct a processing operation to the information processing apparatus 900 by operating the input device 906.
  • the output device 907 is formed of a device that can notify the user of the acquired information visually or audibly. Examples of such devices include CRT display devices, liquid crystal display devices, plasma display devices, EL display devices, display devices such as lamps, audio output devices such as speakers and headphones, printer devices, and the like.
  • the output device 907 outputs results obtained by various processes performed by the information processing device 900.
  • the display device visually displays results obtained by various processes performed by the information processing device 900 in various formats such as text, images, tables, and graphs.
  • the audio output device converts an audio signal composed of reproduced audio data, acoustic data, and the like into an analog signal and outputs it aurally.
  • the storage device 908 is a data storage device formed as an example of a storage unit of the information processing device 900.
  • the storage apparatus 908 is realized by, for example, a magnetic storage device such as an HDD, a semiconductor storage device, an optical storage device, a magneto-optical storage device, or the like.
  • the storage device 908 may include a storage medium, a recording device that records data on the storage medium, a reading device that reads data from the storage medium, a deletion device that deletes data recorded on the storage medium, and the like.
  • the storage device 908 stores programs executed by the CPU 901, various data, various data acquired from the outside, and the like.
  • the drive 909 is a storage medium reader / writer, and is built in or externally attached to the information processing apparatus 900.
  • the drive 909 reads information recorded on a removable storage medium such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, and outputs the information to the RAM 903.
  • the drive 909 can also write information to a removable storage medium.
  • connection port 911 is an interface connected to an external device, and is a connection port with an external device capable of transmitting data by USB (Universal Serial Bus), for example.
  • USB Universal Serial Bus
  • the communication device 913 is a communication interface formed by a communication device or the like for connecting to the network 920, for example.
  • the communication device 913 is, for example, a communication card for wired or wireless LAN (Local Area Network), LTE (Long Term Evolution), Bluetooth (registered trademark), or WUSB (Wireless USB).
  • the communication device 913 may be a router for optical communication, a router for ADSL (Asymmetric Digital Subscriber Line), a modem for various communication, or the like.
  • the communication device 913 can transmit and receive signals and the like according to a predetermined protocol such as TCP / IP, for example, with the Internet and other communication devices.
  • the communication device 913 can form the communication unit 18, the communication unit 22, and the communication unit 32, for example.
  • the sensor 915 is various sensors such as an acceleration sensor, a gyro sensor, a geomagnetic sensor, an optical sensor, a sound sensor, a distance measuring sensor, and a force sensor.
  • the sensor 915 acquires information on the state of the information processing apparatus 900 itself, such as the posture and movement speed of the information processing apparatus 900, and information on the surrounding environment of the information processing apparatus 900, such as brightness and noise around the information processing apparatus 900.
  • Sensor 915 may also include a GPS sensor that receives GPS signals and measures the latitude, longitude, and altitude of the device.
  • the sensor 915 can form the gyro sensor 12 and the acceleration sensor 14, for example.
  • the network 920 is a wired or wireless transmission path for information transmitted from a device connected to the network 920.
  • the network 920 may include a public line network such as the Internet, a telephone line network, and a satellite communication network, various LANs including the Ethernet (registered trademark), a wide area network (WAN), and the like.
  • the network 920 may include a dedicated line network such as an IP-VPN (Internet Protocol-Virtual Private Network).
  • IP-VPN Internet Protocol-Virtual Private Network
  • each of the above components may be realized using a general-purpose member, or may be realized by hardware specialized for the function of each component. Therefore, it is possible to appropriately change the hardware configuration to be used according to the technical level at the time of implementing the embodiment of the present disclosure.
  • a computer program for realizing each function of the information processing apparatus 900 according to the embodiment of the present disclosure as described above can be produced and mounted on a PC or the like.
  • a computer-readable recording medium storing such a computer program can be provided.
  • the recording medium is, for example, a magnetic disk, an optical disk, a magneto-optical disk, a flash memory, or the like.
  • the above computer program may be distributed via a network, for example, without using a recording medium.
  • the motion sensor may be any sensor that senses body movement, and may be a geomagnetic sensor, an atmospheric pressure sensor, an image sensor, or the like as described above.
  • each step in the above embodiment does not necessarily have to be processed in time series in the order described as a flowchart.
  • each step in the processing of the above embodiment may be processed in an order different from the order described as the flowchart diagram or may be processed in parallel.
  • a program for causing a computer to realize an estimation function for estimating a posture in a global coordinate system of a motion sensor attached to a user's body The estimation function is The acceleration included in the sensing data of the motion sensor in the first operation in which the user stops at a predetermined pose, and the second operation in which the user moves the motion sensor horizontally from the first operation.
  • the estimation function is Based on the acceleration in the sensor coordinate system included in the sensing data of the motion sensor in the first operation, a first rotation matrix that is a rotation matrix around the X axis and the Z axis is calculated.
  • Rotation around the Y axis based on the acceleration in the global coordinate system obtained by processing the sensing data of the motion sensor from the first operation to the third operation through the second operation Calculate a second rotation matrix that is a matrix; Calculating the third rotation matrix by combining the first and second rotation matrices;
  • the calculation of the first rotation matrix is as follows: Based on the acceleration in the sensor coordinate system, the pitch angle and roll angle of the motion sensor are calculated, Performed by calculating the first rotation matrix based on the calculated pitch angle and roll angle; The program according to (2) above.
  • the calculation of the second rotation matrix is: A direction in which the motion sensor travels from the first operation to the third operation through the second operation is defined as the Z axis of the global coordinate system; An axis parallel to the horizontal plane and perpendicular to the Z axis is defined as the X axis, The first output obtained by integrating the acceleration in the global coordinate system is orthogonally projected on the XZ plane to obtain an orthogonal projection vector, and the angle formed by the orthogonal projection vector and the X axis is determined by the motion sensor.
  • the acceleration in the global coordinate system is calculated by performing an integration process on sensing data of the motion sensor from the first operation to the third operation through the second operation.
  • a coordinate transformation matrix for associating the body coordinates with the local coordinates is calculated.
  • the guidance function includes outputting voice guidance information to guide the user.
  • a third output obtained by performing a first process on sensor data acquired by two or more motion sensors attached to two or more parts of the user's body, and the sensor data The computer further realizes a correction function for correcting the position information of the mounting part on which the motion sensor is mounted with reference to the fourth output obtained by performing the second process.
  • An estimation unit that estimates the posture of the motion sensor mounted on the user's body in the global coordinate system, The estimation unit includes The acceleration included in the sensing data of the motion sensor in the first operation in which the user stops at a predetermined pose, and the second operation in which the user moves the motion sensor horizontally from the first operation.
  • An information processing method comprising: a processor performing an estimation of a posture of the motion sensor in a global coordinate system by calculating a rotation matrix.

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Veterinary Medicine (AREA)
  • Public Health (AREA)
  • Pathology (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Physiology (AREA)
  • Dentistry (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Navigation (AREA)
  • Processing Or Creating Images (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • User Interface Of Digital Computer (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Manipulator (AREA)

Abstract

【課題】モーションセンサの装着姿勢を高精度に得ることができるプログラム、情報処理装置、及び情報処理方法を提供する。 【解決手段】ユーザの身体に装着されたモーションセンサのグローバル座標系における姿勢を推定する推定機能を、コンピュータに実現させるためのプログラムであって、前記推定機能は、前記ユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサの姿勢を推定する、プログラムを提供する。

Description

プログラム、情報処理装置、及び情報処理方法
 本開示は、プログラム、情報処理装置、及び情報処理方法に関する。
 近年、身体の動き情報を取得するためのモーションキャプチャ技術が盛んに開発されている。取得された身体の動き情報は、例えばスポーツにおいてフォーム改善に用いられたり、VR(Virtual Reality)やAR(Augmented Reality)等のアプリケーションに用いられたりしている。
 身体の動き情報を取得するため、例えば慣性航法(INS:Inertial Navigation System)を用いて、身体に装着されたモーションセンサにより取得されたセンサデータ(センシングデータ)からモーションセンサの位置を計算することが行われている(例えば下記特許文献1)。
国際公開第2017/217050号公報
 モーションセンサ(慣性センサ)を用いたモーションキャプチャにおいては、各モーションセンサ装置10がユーザの身体の部位にどのように装着されているが、すなわち、どのような姿勢で装着されているかを予め把握することが必須である。そこで、例えば、各モーションセンサの装着姿勢や位置を予め定義し、定義した姿勢や位置となるように、ユーザが身体の部位にモーションセンサを装着する。しかしながら、定義された位置や姿勢になるように、モーションセンサを装着することは難しい。そのため、モーションセンサが装着姿勢をより高精度に得るための技術が望まれていた。
 そこで、本開示では、上記事情に鑑みて、モーションセンサを装着したユーザが、簡単なキャリブレーションのための動作を行うことにより、モーションセンサの装着姿勢を高精度に得ることができる、新規且つ改良されたプログラム、情報処理装置、及び情報処理方法を提案する。
 本開示によれば、ユーザの身体に装着されたモーションセンサのグローバル座標系における姿勢を推定する推定機能を、コンピュータに実現させるためのプログラムであって、前記推定機能は、前記ユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサの姿勢を推定する、プログラムが提供される。
 また、本開示によれば、ユーザの身体に装着されたモーションセンサのグローバル座標系における姿勢を推定する推定部を備え、前記推定部は、前記ユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサの姿勢を推定する、情報処理装置が提供される。
 また、本開示によれば、身体にモーションセンサが装着されたユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサのグローバル座標系における姿勢を推定することをプロセッサが行うこと、を含む情報処理方法が提供される。
 以上説明したように本開示によれば、モーションセンサが装着された部位の位置の情報をより高精度に得ることが可能である。
 なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
本開示の第1の実施形態の概要を説明するためのイメージ図である。 順運動学計算を用いた既存のモーションキャプチャ技術について説明するための説明図である。 順運動学計算について説明するための説明図である。 逆運動学計算を用いたアプローチについて説明するための説明図である。 逆運動学計算について説明するための説明図である。 同実施形態にかかる第1のステップを説明するための説明図である。 同実施形態にかかる第2のステップを説明するための説明図である。 慣性航法に基づく位置推定処理の概略を示す模式図である。 慣性航法に基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。 運動モデルに基づく位置推定処理の概略を示す模式図である。 運動モデルに基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。 同実施形態にかかる位置推定処理の概略を示す模式図である。 同実施形態にかかる位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。 同実施形態にかかるシステムの装置構成の一例を示す図である。 同実施形態にかかるシステムの機能構成の一例を示す図である。 装着部位の組み合わせと運動モデルの例を示す説明図である。 信頼度特定部550による信頼度の特定の一例を示す図である。 同実施形態にかかるシステムの動作例を示すフローチャート図である。 第1の変形例にかかるシステムの機能構成例を示す図である。 第2の変形例にかかるシステムの機能構成例を示す図である。 第3の変形例にかかるシステムの機能構成例を示す図である。 非トラッキング型運動モデルの概要を説明するための説明図である。 トラッキング型運動モデルの概要を説明するための説明図である。 第4の変形例にかかるシステムの機能構成例を示す図である。 第5の変形例にかかるシステムの装置構成例を示す図である。 本開示の第2の実施形態の概要を説明するための説明図である。 センサ装置10の各角度を説明するための説明図である。 同実施形態におけるキャリブレーション動作の一例を説明するための説明図である。 同実施形態に係るシステムの機能構成の一例を示す図である。 同実施形態にかかるシステムの動作例を示すフローチャート図である。 図30のステップS706での動作を説明するための説明図である。 図30のステップS712での動作を説明するための説明図である。 同実施形態に係るオフセット処理を説明するための説明図である。 同実施形態に係るベクトルの変形例について説明するための説明図である。 同実施形態に係るセンサ装置10の装着例を説明するための説明図である。 同実施形態に係るキャリブレーション動作を誘導するための誘導システム100の一例を説明するための説明図である。 同実施形態に係る誘導システム100の動作例を示すフローチャート図である。 同実施形態に係る誘導画面800の一例を説明するための説明図である。 同実施形態に係る投影イメージ802の一例を説明するための説明図である。 同実施形態の変形例に係るセンサ装置10の装着例を説明するための説明図である。 ハードウェア構成例を示す説明図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 また、本明細書及び図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
 なお、説明は以下の順序で行うものとする。
 <<1.第1の実施形態の概要>>
 <<2.本技術の原理>>
 <<3.構成例>>
 <<4.動作例>>
 <<5.変形例>>
 <<6.第2の実施形態の概要>>
 <<7.ハードウェア構成例>>
 <<8.むすび>>
 <<1.第1の実施形態の概要>>
 人間や動物等の身体の動きの情報を可視化するため、例えば身体の構造を示すスケルトン構造により表現されるスケルトン情報が用いられる。スケルトン構造は、部位の情報と、部位間を結ぶ線分であるボーンを含む。なお、スケルトン構造における部位は、例えば身体の末端部位や関節部位等に対応する。また、スケルトン構造におけるボーンは例えば人間の骨に相当し得るが、ボーンの位置や数は必ずしも実際の人間の骨格と整合していなくてもよい。
 スケルトン情報における部位の位置は、例えば対応する身体の各部位にマーカを装着したり、モーションセンサを装着したりすることにより取得することができる。例えば、身体の各部位にマーカを装着して、外部のカメラ等を用いてマーカの位置を取得する技術や、身体の部位にモーションセンサを装着し、モーションセンサにより取得されたセンサデータに基づいてモーションセンサの位置情報を取得する技術が存在する。
 身体に装着されたマーカを用いる技術と比べると、身体に装着したモーションセンサを用いた技術では、外部のカメラ、光源、及びマーカが不要であり、持ち運び可能でセットアップが容易であるという利点がある。また、身体に装着したモーションセンサを用いた技術は、カメラの撮像範囲による制限を受けないため、広い屋外空間や、死角の発生し易い複雑な形状の空間、狭小空間等でも利用可能であるという利点がある。
 しかし、身体に装着したモーションセンサを用いた技術において全身のスケルトンを推定するためには、各関節にモーションセンサを装着する必要があり、ユーザへの負荷が大きい場合があった。また、多数のモーションセンサをユーザの各部位に適切に装着するための専用スーツも開発されているが、専用スーツは製造コストが高い場合があった。
 そこで、本発明者らは、上記事情を一着眼点にして本開示の第1の実施形態を創作するに至った。本開示の第1の実施形態によるシステムでは、装着されるモーションセンサの数を削減しつつ、装着されるモーションセンサより多くの部位の位置情報を取得することが可能である。なお、本明細書においてモーションセンサとは、身体の動きをセンシングするデバイスであり、慣性センサ(加速度センサ、角速度センサ)、地磁気センサ、気圧センサ、イメージセンサ等を含み得る。以下では、モーションセンサとして、少なくとも慣性センサが身体に装着される例について主に説明を行う。
 本実施形態の概要について、図1を参照して説明する。図1は、本実施形態の概要を説明するためのイメージ図である。図1に示す例では、ユーザU1の身体の6箇所の部位に、6つのセンサ装置10A~10Fが装着されている。センサ装置10A~10Fは、例えば加速度(Acceleration)を取得する加速度センサや角速度(Angular velocity)を取得するジャイロセンサ(角速度センサ)等の慣性センサ(IMU:Inertial Measurement Unit)を含む。センサ装置10A~10Fは、身体の基準となる関節部位(例えば腰や頭部)、あるいは身体の末端近傍(手首、足首、頭部等)に装着されることが望ましい。図1に示す例では、ユーザU1の腰にセンサ装置10Aが、手首にセンサ装置10B、10Eが、足首にセンサ装置10C、10Dが、頭部にセンサ装置10Fが装着されている。なお、以下の説明において、センサ装置10A~10Fを特に区別する必要がない場合には、まとめて単にセンサ装置10と呼ぶ場合がある。また、以下では、センサ装置10が装着された身体の部位を装着部位とも称する場合がある。また、センサ装置10の数や装着位置(装着部位の位置)は図1に示す例に限定されるものではない。
 本実施形態によるシステムは、センサ装置10により取得されたセンサデータに基づいて、各装着部位の位置(Position)及び姿勢(Orientation)の情報を取得する。図1には、センサ装置10A~10Fが装着された装着部位P101~P106に関する情報(以下、装着部位情報とも称する)として、位置情報及び姿勢情報を含む装着部位情報PD100が示されている。
 また、本実施形態によるシステムは、センサ装置10A~10Fが装着された装着部位P101~P106の位置情報及び姿勢情報に基づいて、スケルトン構造における各部位の位置情報及び姿勢情報を含むスケルトン情報を推定する。ここで、本実施形態では、スケルトン構造における部位のうち、センサ装置10が装着された装着部位だけでなく、センサ装置10が装着されていない部位(以下、非装着部位とも称する)の位置情報及び姿勢情報を推定する。
 図1の例では、スケルトン構造における各部位の位置情報及び姿勢情報を含むスケルトン情報SD100が示されている。スケルトン情報SD100には、装着部位P101に対応する装着部位SP101や装着部位P102に対応する装着部位SP102の情報だけでなく、非装着部位SP107の情報が含まれる。
 なお、スケルトン情報には、部位の情報に加え、ボーンの情報(位置情報、姿勢情報等)も含まれ得る。例えば図1に示す例において、スケルトン情報SD100には、ボーンSB101の情報が含まれ得る。例えば、スケルトン構造における部位の位置情報及び姿勢情報に基づいて、部位間のボーンの情報を特定することが可能である。
 上述したように本実施形態によれば、モーションセンサが装着された装着部位の情報に基づいて、モーションセンサが装着されていない非装着部位の情報を推定することで、情報を取得したい部位の数を維持しつつ、装着されるモーションセンサの数を削減することが可能である。以下、上述した効果を実現するための本実施形態にかかる技術の原理について説明する。
 <<2.本技術の原理>>
  <2-1.本実施形態のアプローチ>
 既存のモーションキャプチャ技術として、順運動学(FK:Forward Kinematics)計算によりスケルトン情報を取得する技術が存在する。順運動学計算とは、各関節部位の姿勢に基づいて、末端部位の位置を計算する手法である。
 図2は、順運動学計算を用いた既存のモーションキャプチャ技術について説明するための説明図である。図2には、スケルトン構造で表現されたスケルトン情報SD90が示されている。
 図2に示すスケルトン情報SD90において、慣性センサを含むセンサ装置が装着された装着部位には丸印が付されており、すなわち部位SP91~SP96は装着部位である。ここで、センサ装置に角速度センサが含まれる場合、AHRS(Attitude and Heading Reference System)等の姿勢計測技術を用いることで、装着部位の姿勢情報(角度情報)を特定することが可能である。
 例えば、身体の腰に対応する部位SP91を基準(原点)とした身体座標系を設定した場合、部位SP91~SP95の姿勢情報に基づいて順運動学計算を行うことで、身体座標系における部位SP92~SP96の位置情報を特定することができる。なお、身体座標系において基準とされる部位を以下ではルート部位と称する場合がある。
 ここで、順運動学計算について図3を参照して説明を行う。図3は、順運動学計算について説明するための説明図である。説明を簡単にするため、図3には、腕を2自由度の単純なリンク機構とみなした場合の例が示されている。
 図3に示す例では、部位SP81がルート部位であり、部位SP81を基準(原点)としたxy座標系(平面座標系)が示されている。順運動学計算において、上述したように各部位の姿勢情報が既知であり、図3に示す例では部位SP81の姿勢に基づくボーンSB81とx軸のなす角の角度θ、及び部位SP82の姿勢に基づくボーンSB81とボーンSB82のなす角の角度θが既知である。また、順運動学計算において、部位間の距離、すなわちボーンの長さも既知であり、図3に示す例では、ボーンSB81の長さl、及びボーンSB82の長さlが既知である。
 順運動学計算によれば、上記のような既知の情報を用いて、部位SP83の位置(x,y)を計算することができる。具体的には、部位SP83の位置(x,y)は以下の数式(1)、(2)のように表現される。
Figure JPOXMLDOC01-appb-M000001
 図3に示したのは平面的かつ単純な機構の例であるが、三次元的かつより複雑な機構の場合であっても、同様に順運動学計算を行うことが可能である。すなわち、基準となるルート部位から末端部位までの間の関節部位の姿勢情報と部位間の距離の情報を用いて、末端部位の位置情報を特定することが可能である。また、末端部位に限らず、スケルトン構造においてルート部位から末端部位までの間に位置する関節部位の位置情報(例えば図3に示す例では部位SP82の位置情報)についても順運動学計算により特定される。
 以上、順運動学計算を用いた既存のモーションキャプチャ技術の一例について説明した。しかし、図2、図3を参照して説明したように順運動学計算を用いて各部位の位置情報を特定するためには、各関節部位の姿勢情報が必要であり、順運動学計算を用いることは身体に装着されるモーションセンサの数が多くなる要因となっていた。
 そこで、本実施形態においては、上述した順運動学計算ではなく、逆運動学(IK:Inverse Kinematics)計算を用いてスケルトン情報を取得する。逆運動学計算とは、末端部位の位置に基づいて、各関節部位の姿勢を計算する手法である。
 図4は、逆運動学計算を用いたアプローチについて説明するための説明図である。図4には、図2と同様にスケルトン構造で表現されたスケルトン情報SD90が示されている。
 図4に示すスケルトン情報SD90において、慣性センサを含むセンサ装置が装着された装着部位には丸印が付されており、すなわち部位SP91と部位SP96は装着部位である。一方、図4に示すスケルトン情報SD90において、慣性センサを含むセンサ装置が装着されていない部位にはバツ印が付されており、すなわち部位SP91と部位SP96の間の部位SP92~SP95は非装着部位である。
 ここで、身体の腰に対応する部位SP91を基準(原点)とした身体座標系が設定され、身体座標系における部位SP96の位置情報が得られているものとする。かかる場合、末端部位である部位SP96の位置情報に基づいて逆運動学計算を行うことで、身体座標系における部位SP92~SP95の姿勢情報、及び位置情報を特定することができる。
 ここで、逆運動学計算について図5を参照して説明を行う。図5は、逆運動学計算について説明するための説明図である。説明を簡単にするため、図5には、腕を2自由度の単純なリンク機構とみなした場合の例が示されている。
 図5に示す例では、部位SP81がルート部位であり、部位SP81を基準(原点)としたxy座標系(平面座標系)が示されている。ここで、図5の左上に示すように、部位SP81を一方の端点とするボーンSB81の長さl、及び部位SP83を一方の端点とするボーンSB82の長さlが既知であるものとする。
 逆運動学計算においては、上記のような既知の情報を用いて、ボーンSB81とx軸のなす角、及びボーンSB81とボーンSB82のなす角の角度を計算する。ただし、逆運動学計算では、解が複数存在し得る。図5の例では、図5の右上に示すように、ボーンSB81とx軸のなす角が角度θ11、ボーンSB81とボーンSB82のなす角が角度θ21である解と、図5の右下に示すように、ボーンSB81とx軸のなす角が角度θ12、ボーンSB81とボーンSB82のなす角が角度θ22である解が得られる。なお、図5に示したのは平面的かつ単純な機構の例であり、例えば三次元的な機構の場合や、より多くの関節部位が存在する場合には、より多数の解が存在し得る。
 以上、逆運動学計算を用いたアプローチについて説明した。続いて、本実施形態にかかる処理の概略について説明する。本実施形態では、上述したように逆運動学計算を用いてスケルトン情報(関節部位の位置及び姿勢)を取得するため、以下に説明する図6、図7にそれぞれ示すように大きく分けて2つのステップで処理が行われ得る。
 図6は、本実施形態にかかる第1のステップを説明するための説明図である。図1を参照して説明したように、本実施形態において、身体の2以上の部位に装着された2以上の慣性センサから、加速度、及び角速度の情報が取得され得る。また、慣性センサから取得された加速度、及び角速度の情報から、グローバル座標系の加速度(3次元)と姿勢(4次元)の情報を得ることが可能である。なお、グローバル座標系とは、例えば複数のセンサやデバイス等において共通して用いられる座標系であり、実空間に対応する座標系であってもよい。図6に示す装着部位情報PD10には、慣性センサにより取得された装着部位P11~P16の加速度と姿勢の情報が含まれるため、合計6×7=42次元の情報が含まれる。
 第1のステップでは装着部位情報PD10に基づいて装着部位の位置推定が行われることで(S100)、装着部位P11~P16の位置(3次元)を示す位置情報を含む装着部位情報PD12が得られる。なお、装着部位情報PD12が装着部位P11をルート部位とした身体座標系で表現される場合、装着部位P11の位置情報は不要であるため、装着部位情報PD12には、合計5×3=15次元の位置情報が含まれる。また、装着部位情報PD12は、装着部位情報PD10に含まれていたグローバル座標系における各部位の姿勢情報を含んでもよい。かかる場合、装着部位情報PD12には、合計6×4=24次元の姿勢情報が含まれる。
 図7は、本実施形態にかかる第2のステップを説明するための説明図である。図7に示す装着部位情報PD12は、図6に示した装着部位情報PD12と同様であるためここでの説明は省略する。
 第2のステップでは装着部位情報PD12に基づいて非装着部位の位置推定(補間)が行われることで(S200)、装着部位の位置情報に加え、慣性センサが装着されていない非装着部位の位置情報を含むスケルトン情報SD10が得られる。図7に示す例では、例えば部位SP11、SP12が装着部位であり、部位SP20が非装着部位である。
 ここで、第2のステップである非装着部位の位置推定は、上述したように逆運動学計算により行われ得るが、非装着部位の位置推定を高精度に行うためには、その入力となる装着部位情報PD12が第1のステップにより高精度に得られていることが望ましい。第1のステップである装着部位の位置推定は、例えば慣性航法により実現可能ではあるが、慣性航法により装着部位の位置推定が行われた場合、推定される位置の誤差が時間に応じて大きくなってしまう恐れがある。そこで、本実施形態においては、慣性航法により推定される装着部位の位置情報を補正して、より高精度に装着部位の位置情報を取得する。以下、本実施形態にかかる装着部位の位置情報の補正について説明する。
  <2-2.装着部位の位置情報の補正>
 まず、慣性航法に基づく位置推定処理について説明する。慣性航法は、角速度及び加速度を複数回積分(Integration)することでセンサ位置を計算する技術であり、例えば船舶又は航空機等に採用されている。図8は、慣性航法に基づく位置推定処理の概略を示す模式図である。
 慣性航法では、まずセンサ装置に含まれるジャイロセンサにより取得されたローカル座標系における角速度(センサデータの一例)を積分する(S111)ことで、グローバル座標系におけるセンサ装置の姿勢が計算される。次いで、グローバル座標系におけるセンサ装置の姿勢に基づいて、センサ装置に含まれる加速度センサにより取得されたローカル座標系(センサ装置毎に設定された座標系)におけるセンサ装置の加速度(センサデータの一例)をグローバル座標系におけるセンサ装置の加速度へ座標系変換する(S112)。そして、座標系変換されたグローバル座標系におけるセンサ装置の加速度を積分する(S113)ことで、グローバル座標系におけるセンサ装置の速度が計算される。次に、グローバル座標系におけるセンサ装置の速度を積分する(S114)ことで、センサ装置の移動距離が計算される。ここで、グローバル座標系における移動距離を細分点ごとに合成していくことにより、初期位置を起点とした相対的な位置情報が得られる。初期位置が既知であれば、上記の情報によりセンサ装置の絶対的な位置情報(即ち、グローバル座標系における三次元座標)を計算することができる。上記のようにして、慣性航法に基づく位置推定処理により、センサ装置の姿勢情報と位置情報が出力される。
 図8に示した慣性航法に基づく位置推定処理は、比較的処理負荷が小さく高速に実行され得る。
 ここで、慣性航法では、姿勢情報を得るために角速度に対して施される積分はステップS111の1回のみであり、また、AHRS等の周知技術を組み合わせることで、姿勢情報を高精度に取得することが可能であった。一方、位置情報を得るためにはステップS113とステップS114の2回の積分が加速度に対して施されるため、加速度センサにより取得される加速度に誤差が含まれる場合には、出力される位置情報に誤差が蓄積され得る。
 図9は、慣性航法に基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。図9に示すように、慣性航法により位置情報を推定し始めてから短い時間の間であれば、位置誤差は小さく、位置情報を高精度に推定可能である。しかし、慣性航法により推定される位置情報に含まれる誤差は図9に示すように時間に応じて大きくなり得るため、長時間継続して実行された場合に、非常に大きな誤差が位置情報に含まれてしまう恐れがある。
 そこで、本実施形態においては、運動モデル(Dynamics Model)に基づいて、回帰による装着部位の位置推定を行う。図10は、運動モデルに基づく位置推定処理の概略を示す模式図である。
 図10に示すステップS121~S122の処理は、図8を参照して説明したステップS111~S112の処理と同様であるためここでの説明は省略する。図10に示すように運動モデルに基づく位置推定処理においては、加速度の積分を行うことなく、センサ装置の位置情報を回帰により推定する(S123)。ステップS123の回帰推定処理では、グローバル座標系におけるセンサ装置の姿勢と加速度を、事前に用意された運動モデルに当てはめる回帰により、位置情報が推定される。ここで、運動モデルは、例えば事前に運動制約情報(例えば過去に取得されたポーズや一連の動きにおける各部位の位置と姿勢のサンプルを複数含む情報)を学習することで生成することが可能である。なお、ステップS123の回帰推定処理には、多様な回帰分析手法を用いることが可能であり、例えばDNN(Deep Neural Network)やRandom Forest等の手法が単独で、あるいは組み合わせて用いられてもよい。
 ここで、図10に示される処理では、加速度が積分されないため、図8、図9を参照して説明した慣性航法の場合のように位置誤差が時間に応じて大きくなり難い。図11は、運動モデルに基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。図10に示すように、運動モデルに基づく位置推定処理においても位置誤差は発生しているが、時間に応じて大きくならないため、長時間継続して実行された場合であっても、大きな誤差が発生し難い。
 したがって、図10に示した運動モデルに基づく位置推定処理により、より高精度に位置情報を推定可能であると考えられる。ただし、運動モデルに基づく位置推定処理では、回帰による統計的な推定が行われるため、入力の変化が連続的な場合であっても出力(推定結果)の変化が非連続的になりやすい。その結果、例えば最終的に得られるスケルトン情報を可視化した際に違和感を与えやすくなる恐れがある。また、図10に示した運動モデルに基づく位置推定処理は、図8に示した慣性航法に基づく位置推定処理と比較すると処理負荷が大きく、慣性航法に基づく位置推定処理よりも高速な実行は困難である。
 上述したように、慣性航法に基づく位置推定処理と運動モデルに基づく位置推定処理には、各々の特長がある。そこで、本実施形態においては、慣性航法に基づく位置推定処理と運動モデルに基づく位置推定処理の両方を組み合わせて、推定される位置情報を補正することで、より高精度に位置情報を推定する。なお、以下では、慣性航法に基づく位置推定処理を第1の処理、運動モデルに基づく位置推定処理を第2の処理と称する場合がある。
 図12は、本実施形態にかかる位置推定処理の概略を示す模式図である。なお、図12に示したのは概略であり、本実施形態にかかる位置推定処理は図12に示されていない処理も含んでもよい。
 図12に示すように、本実施形態にかかる位置推定処理は、慣性航法に基づく第1の処理(S111~S114)と運動モデルに基づく第2の処理(S121~S123)に加え、補正処理(S130)をも含む。ステップS130の補正処理では、第1の処理の出力(以下、第1の出力とも称する)、及び第2の処理の出力(以下、第2の出力とも称する)を参照して、補正が行われる。なお、第1の出力は装着部位の姿勢情報と位置情報を含み、第2の出力は位置情報を含む。そして、ステップS130においては、第1の出力に含まれる位置情報を第1の出力に含まれる姿勢情報と第2の出力に含まれる位置情報に基づいて補正する。なお、ステップS130において、第1の出力に含まれる姿勢情報については位置情報の補正に用いられると共に、そのまま出力されてもよい。また、ステップS130の補正処理は、例えばカルマンフィルタにより実現され得る。
 また、上述したように、第1の処理は、第2の処理よりも高速に実行され得る。したがって、補正処理(S130)は、第2の出力が得られたタイミングで実行され、第2の出力が得られず第1の出力のみが得られた場合には、第1の出力が本実施形態にかかる位置推定処理の出力としてそのまま出力されてもよい。
 図13は、本実施形態にかかる位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。図13に示す例では、時刻t11において第2の出力が得られ、第2の出力に基づく補正が行われるものとする。図13に示すように、本実施形態にかかる位置推定処理では、処理の開始から、時刻t11までの間は時間に応じて位置誤差が大きくなるが、時刻t11において第2の出力に基づく補正が行われた結果、位置誤差が抑制される。
 このように、本実施形態にかかる位置推定処理によれば、補正が行われる度に位置誤差が抑制されるため、誤差が時間に応じて大きくなりにくく、長時間継続して実行された場合であっても、大きな誤差が発生し難い。また、本実施形態にかかる位置推定処理では、第2の出力が得られない場合には第1の出力がそのまま出力されるため、運動モデルに基づく第2の処理のみにより位置推定を行う場合と比べて、高頻度に位置情報を推定することが可能となる。
 <<3.構成例>>
 以上、本実施形態にかかる技術の原理について説明した。続いて、本実施形態の構成例について説明する。以下では、本実施形態の装置構成例、及び機能構成例を順次に説明する。
  <3-1.装置構成例>
 図14は、本実施形態にかかるシステムの装置構成の一例を示す図である。図14に示すように、本実施形態にかかるシステムは、センサ装置10A~10F、ハブ装置20、情報処理装置30、及び出力装置40を含む。
 センサ装置10は少なくともモーションセンサを備え、身体の部位に装着される装置である。センサ装置10A~10Fが装着される部位については、図1を参照して説明したため、個々での説明は省略する。センサ装置10は、例えば図14に示すように、ジャイロセンサ12、加速度センサ14、制御部16、及び通信部18を備える。なお、センサ装置10が備えるモーションセンサは、慣性センサ(ジャイロセンサ12、及び加速度センサ14)に限定されない。例えば、センサ装置10は、慣性センサに代えて、または慣性センサに加えて、地磁気センサ、気圧センサ、イメージセンサ等のモーションセンサを備えてもよい。また、図14では、センサ装置10Aの構成のみが示されているが、センサ装置10A~10Fの構成は同一であってもよい。
 ジャイロセンサ12は、センサデータとして角速度を取得する慣性センサである。ジャイロセンサ12により取得される角速度は、ローカル座標系におけるセンサ装置10の角速度であり得る。
 また、加速度センサ14は、センサデータとして加速度を取得する慣性センサである。加速度センサ14により取得される加速度は、センサ装置10ごとに設定されたローカル座標系におけるセンサ装置10の加速度であり得る。
 制御部16は、センサ装置10の動作を制御する。例えば、制御部16は、通信部18による通信を制御し、ジャイロセンサ12及び加速度センサ14により取得されたセンサデータ(角速度、及び加速度)をハブ装置20へ送信させてもよい。あるいは、制御部16は、ジャイロセンサ12及び加速度センサ14により取得されたセンサデータに対して処理を施してもよく、当該処理により得られた処理結果をハブ装置20へ送信させてもよい。
 通信部18は有線または無線により他の装置との間でデータの送受信を行うための通信モジュールである。通信部18は、例えば有線LAN(Local Area Network)、無線LAN、Wi-Fi(Wireless Fidelity、登録商標)、赤外線通信、Bluetooth(登録商標)、近距離/非接触通信等の方式で、外部機器と直接またはネットワークアクセスポイントを介して無線通信する。
 ハブ装置20は、複数のセンサ装置10から情報を受信して集約する情報処理装置である。なお、センサ装置10とハブ装置20との間は、有線接続されていてもよいし、無線接続されていてもよい。ハブ装置20は、例えば図14に示すように通信部22と制御部24とを備える。
 通信部22は有線または無線により他の装置との間でデータの送受信を行うための通信モジュールである。通信部22は、例えば有線LAN、無線LAN、Wi-Fi、赤外線通信、Bluetooth、近距離/非接触通信等の方式で、外部機器と直接またはネットワークアクセスポイントを介して無線通信する。
 制御部24は、ハブ装置20の動作を制御する。例えば、制御部24は、通信部22による通信を制御し、センサ装置10から受信した情報を、そのまま情報処理装置30へ送信させてもよい。あるいは、制御部24は、センサ装置10から受信した情報に対して処理を施してもよく、当該処理により得られた処理結果を情報処理装置30へ送信させてもよい。
 情報処理装置30は、ハブ装置20から情報を受信して処理する情報処理装置である。なお、ハブ装置20と情報処理装置30との間は、有線接続されていてもよいし、無線接続されていてもよい。情報処理装置30は、例えば図14に示すように通信部32と制御部34とを備える。
 通信部32は有線または無線により他の装置との間でデータの送受信を行うための通信モジュールである。通信部32は、例えば有線LAN、無線LAN、Wi-Fi、赤外線通信、Bluetooth、近距離/非接触通信等の方式で、外部機器と直接またはネットワークアクセスポイントを介して無線通信する。
 制御部34は、情報処理装置30の動作を制御する。例えば、制御部34は、通信部32が受信した情報に対する処理を行う。また、制御部34は、通信部32を制御して、当該処理の結果を情報処理装置30に接続された出力装置40に送信させることで、出力装置40の表示を制御し得る。例えば、制御部34は、処理の結果得られたスケルトン情報に基づいて、可視化されたスケルトン情報や、スケルトン情報を反映させた3Dモデル等を出力装置40に表示させてもよい。
 出力装置40は、少なくとも表示機能を有する装置であり、情報処理装置30の制御部34の制御に従って表示を行う。出力装置40は、例えば設置型のディスプレイであってもよいし、ユーザに装着されるHMD(Head Mounted Display)であってもよい。また、出力装置40と情報処理装置30とは、一体の装置であってもよい。
  <3-2.機能構成例>
 以上、本実施形態にかかるシステムの装置構成例を説明した。続いて、本実施形態にかかるシステムの機能構成例について説明する。図15は、本実施形態にかかるシステムの機能構成の一例を示す図である。なお、図15には、主に本実施形態の特徴を示す機能構成のみを示しており、本実施形態にかかるシステムは図15に示されない機能構成を含んでもよい。
 図15を参照すると、本実施形態にかかるシステムは、グローバル運動加速度姿勢計算部510、積分計算部520、選択部530、装着位置回帰推定部540、信頼度特定部550、接地検出部560、補正部570、及び補間部580としての機能を有する。
 なお、以下に説明する図15の各機能構成は、図14に示したいずれかの装置により実現されてもよい。例えば、センサ装置10の制御部16またはハブ装置20の制御部24がグローバル運動加速度姿勢計算部510としての機能を有し、情報処理装置30の制御部34がそれ以外の積分計算部520~補間部580としての機能を有してもよい。ただし、いずれの装置がいずれの機能を有するかはかかる例に限定されるものではない。
 グローバル運動加速度姿勢計算部510は、図14に示したセンサ装置10A~10Fにより取得されたセンサデータ(角速度と加速度)に基づいて処理を行う機能を有する。なお、グローバル運動加速度姿勢計算部510は、センサ装置10A~10Fの各々により取得されたセンサデータを独立に処理してもよい。
 例えば、グローバル運動加速度姿勢計算部510は、センサデータに含まれるローカル座標系におけるセンサ装置10の角速度を積分してグローバル座標系におけるセンサ装置10の姿勢を計算する処理(図12のステップS111、S121に相当)を行う。グローバル運動加速度姿勢計算部510はAHRSによりセンサ装置10の姿勢を計算してもよい。なお、センサ装置10が地磁気センサを含む場合、グローバル運動加速度姿勢計算部510は、AHRSによるセンサ装置10の姿勢計算に、地磁気センサにより取得されるセンサデータを用いてもよい。
 また、グローバル運動加速度姿勢計算部510は、計算されたグローバル座標系におけるセンサ装置10の姿勢を、グローバル座標系における当該センサ装置10が装着された装着部位の姿勢へ変換する処理を行う。グローバル運動加速度姿勢計算部510は、事前のキャリブレーション結果を用いてセンサ装置10の姿勢を装着部位の姿勢へ変換してもよい。
 また、グローバル運動加速度姿勢計算部510は、グローバル座標系における装着部位の姿勢に基づいて、センサデータに含まれるにローカル座標系における加速度をグローバル座標系における加速度へ変換する処理(図12のステップS112、S122に相当)を行う。
 また、グローバル運動加速度姿勢計算部510は、上述のように得られたグローバル座標系における加速度から重力成分を除去する処理を行う。例えば、グローバル運動加速度姿勢計算部510は、グローバル座標系における装着部位の姿勢に基づいてグローバル座標系における加速度から重力成分を除去してもよい。
 グローバル運動加速度姿勢計算部510は、上述の処理により得られたグローバル座標系における装着部位の姿勢情報と、重力成分が除去されたグローバル座標系における加速度を、積分計算部520、選択部530、及び装着位置回帰推定部540へ出力する。
 積分計算部520は、グローバル運動加速度姿勢計算部510から入力された重力成分が除去されたグローバル座標系における加速度を2回積分する処理(図12のステップS113、S114に相当)により、グローバル座標系における装着部位の位置情報を計算する。積分計算部520は、計算されたグローバル座標系における装着部位の位置情報、及びグローバル運動加速度姿勢計算部510から入力されたグローバル座標系における装着部位の姿勢情報を補正部570へ出力する。
 なお、上述したグローバル運動加速度姿勢計算部510、及び積分計算部520により、上述した慣性航法に基づく第1の処理が行われ得る。そして、積分計算部520から出力される位置情報、及び姿勢情報が第1の出力に相当する。
 選択部530は、装着位置回帰推定部540が装着部位の位置情報を回帰により推定するための運動モデルの選択を行う。例えば、運動モデルは、センサ装置10が装着される部位のパターンに応じて複数用意されて不図示の記憶部に記憶されていてもよく、選択部530は、かかる複数の運動モデルの中から、装着位置回帰推定部540により用いられる運動モデルを選択する。
 運動モデルは、例えば装着部位の組み合わせごとに予め用意されてよい。そして、選択部530は、グローバル運動加速度姿勢計算部510から入力される情報に基づいて、装着部位の組み合わせを特定して、適切な運動モデルを選択してよい。かかる構成により、例えばユーザがシステムの動作途中で一部のセンサ装置10を着脱したり、一部のセンサ装置10のバッテリ(不図示)の電力供給が失われたりしたとしても、選択部530が動的に適切な運動モデルを選択することができる。なお、図15では、グローバル運動加速度姿勢計算部510から入力される情報に基づいて装着部位の組み合わせが特定される例を示したが、選択部530はセンサデータそのものを入力として、あるいは他の情報を用いて装着部位の組み合わせを特定してもよい。
 図16は、装着部位の組み合わせと運動モデルの例を示す説明図である。図16に示されるスケルトン情報SD101~SD105の各々において、センサ装置10が装着された装着部位には丸印が付されている。また、運動モデルごとに異なるルート部位が設定されて得る。
 例えば、全身モデルに対応するスケルトン情報SD101において、腰に相当する装着部位SP101がルート部位であり、6箇所の装着部位SP101~SP106にセンサ装置10が装着される。上肢モデルに対応するスケルトン情報SD102において、頭部に相当する装着部位SP106がルート部位であり、3箇所の装着部位SP102、SP105、SP106にセンサ装置10が装着される。また、頭-腕モデルに対応するスケルトン情報D103において、頭部に相当する装着部位SP106がルート部位であり、2箇所の装着部位SP102、SP106にセンサ装置10が装着される。また、腰-腕モデルに対応するスケルトン情報D104において、腰に相当する装着部位SP101がルート部位であり、2箇所の装着部位SP101、SP105にセンサ装置10が装着される。また、下肢モデルに対応するスケルトン情報D105において、腰に相当する装着部位SP101がルート部位であり、3箇所の装着部位SP101、SP103、SP104にセンサ装置10が装着される。
 なお、後述する装着位置回帰推定部540だけでなく、後述する補正部570や補間部580も、装着部位の組み合わせに応じて処理を行うため、装着部位の組み合わせに応じて(つまり運度モデルに応じて)、推定される非装着部位の組み合わせも異なり得る。本実施形態にかかるシステムにより位置情報、及び姿勢情報を推定可能な部位は、装着部位、及び所定のスケルトン構造において複数の装着部位の間に位置する非装着部位であり得る。図16のスケルトン情報SD101~SD105には、本実施形態において装着部位の組み合わせに応じた、位置情報、及び姿勢情報を推定可能な部位(装着部位と非装着部位を含む)がハッチングにより示されている。
 なお、図16に示したのは一例であって本実施形態において用いられ得る運動モデルにおける装着部位の組み合わせは図16に示した例に限定されるものではない。
 装着位置回帰推定部540は、選択部530により選択された運動モデルを用いて、グローバル座標系における装着部位の姿勢情報と、重力成分が除去されたグローバル座標系における加速度とに基づいて、装着部位の位置情報を回帰により推定する回帰推定処理(図12のステップS123に相当)を行う。なお、本実施形態にかかる装着位置回帰推定部540は、装着部位の位置情報を、運動モデルごとに設定されたルート部位を基準とした身体座標系において推定する。装着位置回帰推定部540は、推定された身体座標系における装着部位の位置情報を信頼度特定部550と補正部570へ出力する。
 なお、上述したグローバル運動加速度姿勢計算部510、及び装着位置回帰推定部540により、上述した運動モデルに基づく第2の処理が行われ得る。そして、装着位置回帰推定部540から出力される位置情報が第2の出力に相当する。
 信頼度特定部550は、装着位置回帰推定部540により推定された装着部位の位置情報(第2の出力に含まれる位置情報とも称する)の信頼度を特定する信頼度特定機能を有する。信頼度特定部550により特定される信頼度は、後述する補正部570による補正において用いられ得る。例えば、後述する補正部570は、第2の出力に含まれる位置情報の信頼度が高い場合には第1の出力に含まれる位置情報よりも第2の出力に含まれる位置情報をより重視(信頼)して補正を行い、当該信頼度が低い場合には第2の出力に含まれる位置情報よりも第1の出力に含まれる位置情報をより重視して補正を行う。
 例えば、信頼度特定部550は、第2の出力に含まれる位置情報の尤度分布がより小さい場合により高い信頼度を設定してもよい。図17は、信頼度特定部550による信頼度の特定の一例を示す図である。図17には、装着位置回帰推定部540により推定された位置と、その尤度分布R10が示されている。例えば、尤度分布R10の上限L1と下限L2との差がより小さい場合により高い信頼度が特定される。図17に示す例では、時刻t21~時刻t22の区間と時刻t23~時刻t24の区間において高い信頼度が特定され、すなわち第2の出力に含まれる位置情報がより重視される。また、図17に示す例では、時刻t22~時刻t23の区間において低い信頼度が特定され、すなわち第1の出力に含まれる位置情報がより重視される。
 信頼度特定部550は、特定した信頼度を補正部570へ出力する。
 接地検出部560は、センサ装置10A~10Fにより取得されたセンサデータ(角速度と加速度)に基づいて、身体の足元の接地検出処理を行う。かかる構成により、後述する補正部570が、装着位置回帰推定部540により推定された身体座標系における位置情報をグローバル座標系に変換することが可能である。
 接地検出部560は、例えば所謂ゼロ速度更新(ZUPT:Zero Velocity Update)における接地検出を行ってもよい。なお、ZUPTは速度がゼロの状態を接地状態として検出して位置を補正する手法であり、このZUPTが用いられる場合、後述する補正部570による位置情報の補正機能もZUPTにより実現され得る。また、接地検出部560による接地検出の方法はかかる例に限定されず、他の手法により身体の足元の接地検出が行われてもよい。
 補正部570は、積分計算部520から入力される第1の出力と、装着位置回帰推定部540から入力される第2の出力とを参照して、第1の出力に含まれる装着部位の位置情報の補正を行う。なお、以下では、補正部570の機能を補正機能と称する場合がある。かかる補正機能により、図12、図13を参照して説明したように誤差が時間に応じて大きくなりにくく、より高精度に装着部位の位置情報を推定することが可能である。
 上述したように、補正部570は、信頼度特定部550により特定された信頼度に基づいて、装着部位の位置情報を補正してもよい。かかる構成により、より高精度に装着部位の位置情報を推定することが可能である。
 また、補正部570は、接地検出部560による接地検出結果に基づいて、装着位置回帰推定部540により推定された身体座標系における装着部位の位置情報(第2の出力)をグローバル座標系における装着部位の位置情報へ変換する。かかる構成により、座標系をグローバル座標系に統一して補正を行うことが可能となる。
 なお、補正部570の補正機能は、カルマンフィルタにより実現されてもよい。さらに、上述した積分計算部520による積分機能と補正部570による補正機能を合わせてカルマンフィルタにより実現することが可能である。ここでは、例えば、各装着部位の速度と位置を内部状態として有するカルマンフィルタを想定する。かかるカルマンフィルタは、グローバル運動加速度姿勢計算部510から出力されるグローバル座標系における装着部位の加速度を積分することにより装着部位の速度と位置を予測する。そして、かかるカルマンフィルタは、第2の出力に含まれる位置情報をグローバル座標系に変換して得られる位置を観測として内部状態を更新することにより、位置情報の補正を行うことが可能である。
 補間部580は、補正部570の補正機能により補正された装着部位の位置情報に基づいて、非装着部位の位置情報を推定してスケルトン情報を生成する。補間部580は、図16を参照して説明したように、所定のスケルトン構造において、複数の装着部位の間に位置する非装着部位の位置情報を推定してもよい。なお、以下では、補間部580の機能を補間機能と称する場合がある。かかる補間機能は、例えば図4、図5を参照して説明した逆運動学計算により実現され得る。
 図4、図5を参照して説明したように、逆運動学計算では、一般に複数の解が存在し、例えば関節部位の数によっては非常に多数の解が存在する場合がある。したがって、より高精度なスケルトン情報を得るためには、存在する多数の解のうち、より適切な解を特定可能な仕組みが求められる。そこで、本実施形態にかかる補間部580は、非装着部位の位置情報を予め用意された逆運動学モデルに当てはめる回帰により推定する。
 ここで、逆運動学モデルは、例えば事前に運動制約情報(例えば過去に取得されたポーズや一連の動きにおける各部位の位置と姿勢のサンプルを複数含む情報)を学習することで生成することが可能である。なお、補間部580の補間機能には、多様な回帰分析手法を用いることが可能であり、例えばDNNやRandom Forest等の手法が単独で、あるいは組み合わせて用いられてもよい。
 なお、上記では補間部580が各部位の位置情報を推定する説明したが、本実施形態はかかる例に限定されない。各部位の位置情報、または姿勢情報のいずれか一方が得られれば、スケルトン構造に従って他方を特定することが可能である。したがって、補間部580は、非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を推定すればよい。
 <<4.動作例>>
 以上、本実施形態の装置構成例、及び機能構成例について説明した。続いて、本実施形態の動作例について説明する。図18は、本実施形態にかかるシステムの動作例を示すフローチャート図である。なお、図18には、主に本実施形態の特徴を示す処理のみを示しており、本実施形態にかかるシステムは図18に示されない処理を実行してもよい。
 図18に示すように、まずグローバル運動加速度姿勢計算部510が、ジャイロセンサ12により取得された角速度に基づいて、グローバル座標系におけるセンサ装置10の姿勢をAHRSにより計算する(S502)。なお、ステップS502は、図12のステップS111、S121に相当する。
 続いて、グローバル運動加速度姿勢計算部510は、ステップS502で得られたグローバル座標系におけるセンサ装置10の姿勢を、グローバル座標系における当該センサ装置10が装着された装着部位の姿勢へ変換する(S504)。
 続いて、グローバル運動加速度姿勢計算部510は、ステップS504で得られたグローバル座標系における装着部位の姿勢に基づいて、加速度センサ14により取得されたローカル座標系における加速度をグローバル座標系における加速度へ変換する(S506)。なお、ステップS506は、図12のステップS112、S122に相当する。
 続いて、グローバル運動加速度姿勢計算部510は、ステップS504で得られたグローバル座標系における装着部位の姿勢に基づいて、ステップS506で得られたグローバル座標系における加速度から重力成分を除去する(S508)。
 続いて、積分計算部520が、ステップS508で得られた重力成分が除去されたグローバル座標系における加速度を2回積分することにより、グローバル座標系における装着部位の位置情報を計算する(S510)。なお、ステップS510は、図12のステップS113、S114に相当する。
 続いて、ステップS510の補正を行うか否かが判定される(S512)。上述したように、運動モデルに基づく位置推定処理は、慣性航法に基づく位置推定処理よりも処理負荷が大きい。したがって、運動モデルに基づく位置推定処理(S514)の実行頻度は慣性航法に基づく位置推定処理(S502~S510)の実行頻度よりも少ない。そこで、ステップS512において、図18に示した処理が所定の回数行われるごとに1回補正を行うと判定されてもよい。ただし、本実施形態はかかる例に限定されず、例えば、センサデータに基づいて装着部位が静止していないと判定可能な場合には補正を行うと判定し、静止していると判定可能な場合には補正を行わないと判定してもよい。
 補正を行うと判定された場合(S512においてYES)、装着位置回帰推定部540は、運動モデルを用いた回帰推定により、身体座標系における装着部位の位置情報を推定する(S514)。なお、ステップS514は、図12のステップS123に相当する。
 続いて、補正部570は、接地検出部560による接地検出結果に基づいて、ステップS514で推定された身体座標系における装着部位の位置情報をグローバル座標系における装着部位の位置情報へ変換する(S516)。
 そして、補正部570は、ステップS516で得られたグローバル座標系における装着部位の位置情報に基づいて、ステップS510で得られたグローバル座標系における装着部位の位置情報を補正する(S518)。
 続いて、補間部580は、グローバル座標系における装着部位の位置情報に基づいて、非装着部位の位置情報を逆運動学モデルに当てはめる回帰により推定(補間)する(S520)。なお、ステップS520において非装着部位の位置情報の回帰推定に用いられる装着部位の位置情報は、ステップS512における判定結果に応じて異なり得る。ステップS512において補正を行うと判定された場合、ステップS518で補正された装着部位の位置情報がステップS520における回帰推定に用いられる。一方、ステップS512において補正を行わないと判定された場合、ステップS510で得られたグローバル座標系における装着部位の位置情報がステップS520における回帰推定に用いられる。
 以上、本実施形態に係るシステムの動作について説明した。なお、図18に示した処理は、ジャイロセンサ12及び加速度センサ14によりセンサデータが取得される度に、あるいは所定の頻度で、繰り返し実行されてもよい。
 <<5.変形例>>
 以上、本開示の一実施形態を説明した。以下では、本実施形態の幾つかの変形例を説明する。なお、以下に説明する各変形例は、単独で本実施形態に適用されてもよいし、組み合わせで本実施形態に適用されてもよい。また、各変形例は、本実施形態で説明した構成に代えて適用されてもよいし、本実施形態で説明した構成に対して追加的に適用されてもよい。
  <5-1.第1の変形例>
 上記実施形態では、装着位置回帰推定部540が、グローバル運動加速度姿勢計算部510により計算されたグローバル座標系における装着部位の姿勢情報と、重力成分が除去されたグローバル座標系における加速度とに基づいて回帰推定処理を行う例を説明した。しかし、本技術はかかる例に限定されない。例えば、ジャイロセンサ12及び加速度センサ14により取得された角速度や加速度がかかる回帰推定処理への入力として用いられてもよい。かかる例について、第1の変形例として説明を行う。
 図19は、第1の変形例にかかるシステムの機能構成例を示す図である。図19に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図19を参照すると、本変形例にかかるシステムは、装着位置回帰推定部540に代えて装着位置回帰推定部541を含む点において図15に示したシステムと相違する。
 本変形例にかかる装着位置回帰推定部541は、グローバル運動加速度姿勢計算部510により計算された情報に加え、または代えて、ジャイロセンサ12及び加速度センサ14により取得された角速度や加速度を入力として用いて、回帰推定処理を行う。かかる回帰推定に用いられる運動モデルは、当該回帰推定に用いられる情報と同種の情報(角速度や加速度)を含んだ運動制約情報を学習することにより事前に用意され得る。
 以上、第1の変形例について説明した。本変形例によれば、より多くの情報を用いることで、より高精度に装着部位の位置情報を推定することが可能となり得る。なお、上記では角速度や加速度が装着位置回帰推定部541による回帰推定処理への入力として用いられる例を説明したが、さらに他の情報が入力として用いられてもよい。例えば、センサ装置10が、ジャイロセンサ12と加速度センサ14に加えて、地磁気センサや気圧センサを備える場合、地磁気や気圧の情報が、かかる回帰推定処理への入力として用いられてもよい。
  <5-2.第2の変形例>
 続いて、第2の変形例として、補正部が信頼度の特定を行う例を説明する。図20は、本変形例にかかるシステムの機能構成例を示す図である。図20に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図20を参照すると、本変形例にかかるシステムは、信頼度特定部550と補正部570に代えて補正部572を含む点において図15に示したシステムと相違する。
 補正部572は、図15を参照して説明した補正部570の機能に加え、積分計算部520、及び装着位置回帰推定部540のそれぞれから入力される装着部位の位置情報の少なくともいずれか一方の信頼度を特定する機能を有する。かかる機能は、例えばカルマンフィルタにより実現されてもよいし、予め定められたルールに基づいて行うように実現されてもよいし、あるいは学習により事前に用意されたモデルを用いた回帰推定により実現されてもよい。
  <5-3.第3の変形例>
 続いて、第3の変形例として、非装着部位の位置推定(補間)処理の後に補正処理を行う例を説明する。図21は、本変形例にかかるシステムの機能構成例を示す図である。図21に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図21を参照すると、本変形例にかかるシステムは、信頼度特定部550、補正部570、及び補間部580に代えて補正部573、及び補間部583を含む点において図15に示したシステムと相違する。
 本変形例にかかる補間部583は、グローバル運動加速度姿勢計算部510により計算されたグローバル座標系における装着部位の姿勢情報と装着位置回帰推定部540により推定された装着部位の位置情報に基づいて、非装着部位の位置情報、及び姿勢情報のうち少なくとも一方を回帰により推定する。なお、補間部583による回帰推定は、入力される情報が異なる点を除いて、補間部580による非装着部位の回帰推定と同様であってよい。補間部583により推定された非装着部位の位置情報あるいは姿勢情報は、補正部573へ出力される。
 なお、本変形例にかかる第2の処理は、上述した補間部583が非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を推定する補間処理を含む。そして、本変形例にかかる第2の出力(第2の処理の出力)は、補間部583により推定された非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を含む。さらに、本変形例にかかる第2の出力は、グローバル運動加速度姿勢計算部510あるいは装着位置回帰推定部540により得られた装着部位の位置情報あるいは姿勢情報を含んでもよい。つまり、本変形例にかかる第2の出力は推定対象となる全ての部位の位置情報、及び姿勢情報のうち少なくともいずれか一方を含む。
 本変形例にかかる補正部573は、積分計算部520から入力される第1の出力(装着部位の姿勢情報と位置情報)に基づいて、補間部583から入力される第2の出力に含まれる非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を補正する。本変形例では、装着部位の速度及び位置と、非装着部位の位置または姿勢の関係が非線形であるため、本変形例にかかる補正部573の補正機能は、例えば、拡張カルマンフィルタにより実現され得る。以下では拡張カルマンフィルタにより、非装着部位の姿勢情報を補正する補正機能が実現される例について説明する。
 かかる拡張カルマンフィルタは内部状態として、全装着部位の速度と位置、及び推定対象となる全ての部位(装着部位と非装着部位を含む)の姿勢を有する。かかる拡張カルマンフィルタは、グローバル運動加速度姿勢計算部510から出力されるグローバル座標系における装着部位の加速度を積分することにより装着部位の速度と位置を予測する。そして、かかる拡張カルマンフィルタは、第2の出力に含まれる推定対象となる全ての部位の姿勢情報を観測として内部状態を更新することにより、姿勢情報の補正を行うことが可能である。なお、拡張カルマンフィルタが内部的に持つ誤差の共分散行列の予測には、逆運動学計算で用いられる装着部位の速度と非装着部位の姿勢の関係を記述するヤコビアンが用いられてもよい。
 なお、図21では、装着位置回帰推定部540と補間部583を別個の機能構成として示したが、装着位置回帰推定部540と補間部583の機能を統合してもよい。かかる場合、グローバル運動加速度姿勢計算部510から入力される情報に基づく回帰により直接的に推定対象の全ての部位の位置情報及び姿勢情報が推定されてもよい。かかる場合、回帰推定のために事前に用意するモデルの数が少なく済むという効果がある。
  <5-4.第4の変形例>
 上記実施形態では、装着位置回帰推定部540が、非トラッキング型運動モデルを用いた回帰推定を行う例を説明したが、トラッキング型運動モデルが用いられてもよい。以下、図22、図23を参照して、非トラッキング型運動モデルとトラッキング型運動モデルの概要について説明する。
 図22は、非トラッキング型運動モデルの概要を説明するための説明図である。図22に示すように、非トラッキング型運動モデルを用いた回帰推定では、加速度と姿勢の情報が入力されて、位置情報が出力され得る。
 図23は、トラッキング型運動モデルの概要を説明するための説明図である。図23に示すように、トラッキング型運動モデルを用いた回帰推定においても、加速度と姿勢の情報が入力されて、位置情報が出力され得る。ただし、トラッキング型運動モデルを用いた回帰推定では、加速度と姿勢の情報に加え、遅延器Dにより1サンプル分遅延させられた位置情報(すなわち前回の回帰推定処理の出力)が、次の回帰推定処理へ入力される。トラッキング型運動モデルには、追従性が向上し得るという利点がある。
 このようなトラッキング型運動モデルを用いた回帰により装着部位の位置情報を推定する例について、第4の実施形態として説明する。図24は、本変形例にかかるシステムの機能構成例を示す図である。図24に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図24を参照すると、本変形例にかかるシステムは、装着位置回帰推定部540、及び補正部570に代えて装着位置回帰推定部544及び補正部574を含む点において図24に示したシステムと相違する。
 装着位置回帰推定部544は、グローバル運動加速度姿勢計算部510により計算された情報に加え、過去の回帰推定処理により推定された装着部位の位置情報を用いて補正部574により補正された装着部位の位置情報を入力として用いて、回帰推定処理を行う。かかる回帰推定に用いられる運動モデルは、上述したトラッキング型運動モデルであり、例えば1サンプル分遅延させられた位置情報を含む運動制約情報を学習することにより事前に用意され得る。
 上述した第4の変形例によれば、様々な動きへの追従性が向上し、より高精度に装着部位の位置情報を推定することが可能となり得る。
  <5-5.第5の変形例>
 上記実施形態では、図14を参照して装置構成例を説明したが、本技術はかかる例に限定されない。以下では第5の変形例として、ハブ装置20を備えないシステムの装置構成例を説明する。図25は、本変形例にかかるシステムの装置構成例を示す図である。
 図25に示すように、本変形例にかかるシステムは、センサ装置10A~10F、情報処理装置30、及び出力装置40を含む。図25に示すように、本変形例において、センサ装置10は、ハブ装置20を介することなく、直接的に情報処理装置30と接続される。なお、センサ装置10と情報処理装置30との間は、有線接続されていてもよいし、無線接続されていてもよい。かかる接続の関係を除いて、図25に示す各装置の構成は、図14に示した同一の符号が付された各装置の構成と同様であってよい。
  <5-6.第6の変形例>
 上記実施形態では、運動モデル、及び逆運動学モデルを用いて回帰推定を行う例を説明した。この回帰推定の推定結果は、運動モデル、及び逆運動学モデルを生成するための学習に用いられる運動制約情報に応じて大きく異なり得る。例えば特徴的な姿勢や動作をセンシングして得られた運動制約情報が、学習に用いられた場合、推定結果は実際の身体の動きよりも、学習に用いられた動きに近い特徴を有し易くなる。
 特徴的な姿勢や動作の例としては、ゾンビのようなキャラクタ独特の姿勢や、格闘シーンに典型的なダイナミックな動作、シューティングゲーム等のゲーム中に頻出する姿勢、ダンスのジャンルごとに特徴的な振り付け動作、あるいはスポーツごとの個別ルールに応じた動作等が挙げられるが、かかる例に限定されるものではない。
 上記のような運動制約情報をアプリケーションに応じて適宜用意して、運動モデル、及び逆運動学モデルを生成するための学習に用いることで、アプリケーションに応じたスケルトン情報を推定することが可能となる。そのため、例えばスケルトン情報に基づいてアニメーションを作成する場合においては、上述した一連の処理により推定されたスケルトン情報に対して後処理を要することなく、特徴的なアニメーションを生成することも可能となる。
 <<6.第2の実施形態の概要>>
  <6-1.本実施形態の概要について>
 まずは、図26及び図27を参照して、本開示の第2の実施形態の概要について説明する。図26は、本実施形態の概要を説明するための説明図であり、本実施形態における各座標系のイメージの図であり、図27は、センサ装置10の各角度を説明するための説明図である。
 ところで、慣性センサを用いたモーションキャプチャにおいては、キャリブレーションとして、各センサ装置10がユーザの身体の部位にどのような姿勢で装着されているか、すなわち、該当部位が該当するセンサ装置10のセンサ座標系に対してどのような姿勢であるかを予め把握することが求められる。先に説明したように、ユーザの身体の部位の姿勢を上述のような慣性センサを用いてモーションキャプチャで捉えた際には、処理される前のセンサデータ(生データ)には、センサ装置10のセンサ座標系(ローカル座標系)におけるセンサ装置10の加速度及び角速度が含まれる。そして、先に説明したように、上記モーションキャプチャにおいては、これらのセンサデータに対して上述した所定の変換処理を行うことにより、グローバル座標系における部位の姿勢を得ることができる。そして、上述のような変換処理を行うためには、下記数式(3)からわかるように、センサ座標系における部位の姿勢(センサ座標系に対する身体座標系の回転行列)と、グローバル座標系におけるセンサ装置10の姿勢(グローバル座標系に対するセンサ座標系の回転行列)とが取得できればよい。なお、各座標系については、図26に示すとおりである。
Figure JPOXMLDOC01-appb-M000002
 また、数式(3)のうち、セン座標系における部位の姿勢は、センサ装置10(センサ座標系)に対する部位の姿勢であることから、センサ装置10が一度当該部位に装着されてしまえば、装着ずれがない限り不変である。従って、上記モーションキャプチャにおいては、不変であるセンサ座標系における部位の姿勢が分かれば、経時的に変化するグローバル座標系におけるセンサ装置10の姿勢に基づいて、グローバル座標系における部位の姿勢を得ることが可能となる。
 そして、上記センサ座標系における部位の姿勢は、下記数式(4)からわかるように、初期状態(t=0)におけるグローバル座標系におけるセンサ装置10の姿勢と、初期状態におけるグローバル座標系における部位の姿勢とによって得ることができる。
Figure JPOXMLDOC01-appb-M000003
 従って、初期状態におけるグロバル座標系におけるセンサ装置10の姿勢の取得、すなわち、センサ装置10がどのような姿勢で装着されているかを把握することが求められる。そこで、従来のモーションキャプチャにおいては、センサ装置10がどのような姿勢で装着されているかを把握するために、センサ装置10の装着姿勢や位置を予め定義し、定義した姿勢や位置となるように、ユーザが身体に装着する。この際、ユーザは、定義した姿勢や位置になるように、注意深くセンサ装置10を装着することが求められる。
 そこで、上述のように注意深くセンサ装置10を装着する手間を省くために、ユーザがセンサ装置10を装着した際に、センサ装置10からのセンサデータに基づいて、センサ装置10の装着姿勢を把握することが考えられる。例えば、従来のモーションキャプチャにおいては、静止状態にあるユーザに装着されたセンサ装置10に含まれる加速度センサによって、重力加速度を検出することにより、センサ装置10のロール角、ピッチ角を取得することができる。さらに、上記センサ装置10に含まれる地磁気センサにより、センサ装置10のヨー角を取得することができる。そして、このように取得したセンサ装置10のピッチ角、ロール角、ヨー角に基づき、センサ装置10の装着姿勢を把握することができる。
 ここで、図27を参照してセンサ装置10のロール角、ピッチ角、ヨー角を説明する。これらの角の角度によって、センサ装置10の姿勢を示すことが可能である。詳細には、ロール角とは、前後方向を軸(X軸)とした回転角であり、ピッチ角とは、左右方向を軸(Z軸)とした回転角であり、ヨー角は、上下方向を軸(Y軸)とした回転角である。なお、本実施形態においては、上記X軸をロール軸とみなし、上記Y軸をヨー軸とみなし、上記Z軸をピッチ軸とみなすものとする。
 しかしながら、鉄筋の建物内等、磁場のゆがんだ空間でモーションキャプチャを行う場合、上述のような地磁気センサによりセンサ装置10のヨー角を精度よく取得することが難しい。すなわち、屋内での慣性センサによるモーションキャプチャにおいては、センサ装置10の装着姿勢を把握することは難しい。
 そこで、上述のような状況を鑑みて、本発明者らは、センサ装置10を装着したユーザが、簡単なキャリブレーション動作を行うことにより、センサ装置10の装着姿勢を把握できるようなアルゴリズムを独自に着想し、以下に説明する本開示の第2の実施形態を創作するに至った。
 詳細には、本実施形態においては、上記キャリブレーション動作の際に取得されたセンサデータに基づき、グローバル座標系におけるセンサ装置10の姿勢(回転行列)を取得する。さらに、本実施形態においては、キャリブレーション動作に含まれる所定の動作の際に取得されたセンサデータに基づき、別のグローバル座標系における部位の姿勢(回転行列)を取得する。そして、本実施形態においては、上述の2つのグローバル座標系における部位の姿勢(回転行列)から得られた初期状態のグローバル座標系におけるセンサ装置10の姿勢と、初期状態におけるグローバル座標系における部位の姿勢とを用いて、数式(4)に基づき、センサ座標系における部位の姿勢を得ることができる。さらに、本実施形態においては、得られたセンサ座標系における部位の姿勢を用いることで、数式(3)に基づいて、経時的に変化するグローバル座標系におけるセンサ装置10の姿勢から、グローバル座標系における部位の姿勢を得ることができる。
 さらに、上記キャリブレーション動作としては、例えば、センサ装置10が装着されたユーザが所定のポーズで静止し、次に、当該ユーザが、上記センサ装置10が水平移動するような動作(例えば、直進)を行い、そして、上記所定のポーズで再び静止するような、一連の動作を挙げることができる。
 本実施形態においては、上記キャリブレーション動作の開始時と終了時とにおいて、静止するような制約を行うことにより、高精度にセンサ装置10の装着姿勢を把握することが可能となる。また、本実施形態においては、センサ装置10ごとに装着姿勢を独立して把握することが可能であることから、装着姿勢が把握されるセンサ装置10は、1つでも複数であってもよく、各センサ装置10がユーザの身体のどの部位に装着されてもいてもよい。以下に、本開示の実施形態の詳細を説明する。
  <6-2.キャリブレーション動作について>
 本実施形態においては、先に説明したように、センサ装置10を装着したユーザに簡単な所定のキャリブレーション動作を行ってもらうことにより、高精度にセンサ装置10の装着姿勢を把握することができる。そこで、図28を参照して、本実施形態に係るキャリブレーション動作の一例を説明する。図28は、本実施形態におけるキャリブレーション動作の一例を説明するための説明図である。
 図28の左側に示すように、ユーザU1は、キャリブレーション動作における第1の動作(初期静止)として、例えば、直立状態であって、両足を自然な状態で若干開いて、腕を身体の真横の位置に伸ばし、指先を下に伸ばすような、いわゆる気をつけのポーズのような直立状態で静止する。本実施形態においては、この動作を数秒程度継続することが好ましい。なお、以下の説明においては、このようなポーズをN(Natural)ポーズ(所定のポーズ)と呼ぶ。
 次に、本実施形態においては、図28の中央に示すように、ユーザU1は、キャリブレーション動作における第1の動作の次に行う第2の動作(動作)として、例えば、水平面(床)を所定の距離(例えば、一歩)だけ直進(直線運動)する。なお、本実施形態においては、第2の動作は、ユーザU1に装着されたセンサ装置10が水平移動するような動作であれば、特に限定されるものではない。例えば、上記第2の動作は、ユーザU1が横に、又は、後ろに水平移動する動作であってもよい。
 そして、本実施形態においては、図28の右側に示すように、ユーザU1は、キャリブレーション動作における第2の動作の次に行う第3の動作(最終静止)として、例えば、上述のNポーズを数秒程度継続する。
 本実施形態においては、このような実施が容易な簡単なキャリブレーション動作を行うことにより、高精度にセンサ装置10の装着姿勢を把握することができる。なお、本実施形態においては、ユーザU1の手に装着されたセンサ装置10についてのみ装着姿勢を把握したい場合には、上述のようなキャリブレーション動作ではなく、例えば、第1の動作としてNポーズで静止した後に、第2の動作として手をユーザU1の前方に伸ばす(いわゆる前ならえのポーズ)を行ってもよい。
  <6-3.機能構成例>
 次に、第2の実施形態に係るシステム機能構成について、図29を参照して説明する。図29は、本実施形態に係るシステムの機能構成の一例を示す図である。なお、図29は、主に本実施形態の特徴を示す機能構成のみを示しており、本実施形態に係るシステムは図15に示される機能構成を含んでもよい。
 図29を参照すると、本実施形態にかかるシステムは、回転行列計算部610、630と、積分計算部620と、回転行列合成部640と、変換行列計算部650と、としての機能を有する。また、以下に説明する図29の各機能構成は、図14に示したいずれかの装置により実現されてもよく、特に限定されるものではない。なお、回転行列計算部610から回転行列合成部640までが、グローバル座標系におけるセンサ装置10の姿勢を推定する推定機能を持つ推定ブロック(推定部)700といえ、すなわち、センサ座標系をグローバル座標系に対応させるための回転行列を計算するブロックといえる。さらに、変換行列計算部650は、センサ座標系における部位の姿勢を推定する推定機能を持つ推定ブロック702といえ、すなわち、身体座標系をセンサ座標系に対応させるための座標変換行列を計算する機能を持つブロックである。
 詳細には、回転行列計算部610は、キャリブレーション動作の第1の動作において取得されたセンサ装置10のセンサデータに含まれるセンサ座標系における加速度に基づいて、センサ装置10のピッチ角及びロール角を計算し、計算したピッチ角及びロール角に基づき、X軸及びZ軸回りの回転行列である第1の回転行列を計算する。なお、回転行列計算部610における計算の詳細については後述する。
 積分計算部620は、キャリブレーション動作の第1の動作から第2の動作を経て、第3の動作までの間に取得されたセンサ装置10のセンサデータに対して積分処理を行うことができる。例えば、積分計算部620は、上記センサデータに含まれる角速度や加速度を積分することができ、このような処理を行うことにより、グローバル座標系におけるセンサ装置10の加速度を取得することができる。さらに、積分計算部620は、例えば、得られたグローバル座標系における加速度をさらに積分して、速度や位置を取得することができる。
 回転行列計算部630は、積分計算部620からのグローバル座標系におけるセンサ装置10の加速度(詳細には、キャリブレーション動作の第1の動作から第2の動作を経て、第3の動作までの間の加速度)を処理することにより得られた、センサ装置10のヨー角に基づき、Y軸回りの回転行列である第2の回転行列を計算することができる。なお、回転行列計算部630における計算の詳細については後述する。
 回転行列合成部640は、回転行列計算部610からの第1の回転行列と回転行列計算部630からの第2の回転行列とを合成して、グローバル座標系におけるセンサ装置10の姿勢を意味する、センサ座標系をグローバル座標系に対応させるための回転行列(第3の回転行列)を計算することができる。なお、回転行列合成部640における当該回転行列の計算の詳細については後述する。
 変換行列合成部650は、回転行列合成部640からの上記回転行列(第3の回転行列)と、予め定義された第1の動作におけるグローバル座標系における該当部位の姿勢を示す、身体座標系をグローバル座標系に対応させる回転行列とを用いて、センサ座標系における上記部位の姿勢を計算することができる。すなわち、変換行列算出部650は、身体座標系をセンサ座標系に対応させるための座標変換行列を計算することができる。なお、変換行列合成部650における座標変換行列の計算の詳細については後述する。さらに、上記グローバル運動加速度姿勢計算部510において、計算されたセンサ座標系における部位の姿勢と、経時的に変化するグローバル座標系におけるセンサ装置10の姿勢とに基づいて、上記数式(3)により、グローバル座標系における部位の姿勢を得ることができる。
  <6-4.動作例>
 以上、本実施形態に係る機能構成例について説明した。続いて、本実施形態の動作例(情報処理方法)について、図30から図32を参照して説明する。図30は、本実施形態にかかるシステムの動作例を示すフローチャート図である。なお、図30には、主に本実施形態の特徴を示す処理のみを示しており、本実施形態にかかるシステムは図30に示されない処理を実行してもよい。さらに、図31は、図30のステップS706での動作を説明するための説明図であり、図32は、図30のステップS712での動作を説明するための説明図である。
 詳細には、本実施形態に係るシステムは、図30に示すように、上述のキャリブレーション動作中に取得されたセンサデータを、第1の動作の区間である初期静止区間と、第2の動作の区間である動作区間と、第3の動作の区間である最終静止区間とに切り分ける(S700)。
 次に、本実施形態に係るシステムは、初期静止区間、すなわち、第1の動作において取得されたセンサデータに含まれるセンサ座標系におけるセンサ装置10の加速度に基づいて、センサ装置10のピッチ角及びロール角を計算する。そして、本実施形態に係るシステムは、計算したピッチ角及びロール角に基づき、グローバル座標系におけるセンサ装置10の初期姿勢(ピッチ角及びロール角)を示す、X軸及びZ軸回りの回転行列である第1の回転行列を計算する(S702)。
 詳細には、上記ステップS702においては、第1の動作、すなわち、Nポーズで静止する状態にあるユーザU1に装着されたセンサ装置10に含まれる加速度センサによって、重力加速度を検出する。そして、当該ステップにおいては、検出した重力加速度に基づき、センサ装置10のロール角、ピッチ角を取得することができる。
 さらに、本実施形態に係るシステムは、センサ装置10のピッチ角、ロール角に基づいて、グローバル座標系に対するセンサ座標系のX軸及びZ軸回りの回転行列である第1の回転行列を計算することができる。
Figure JPOXMLDOC01-appb-M000004
 次に、本実施形態に係るシステは、第1の動作から第2の動作を経て、第3の動作までの間、すなわち動作区間に取得されたセンサ装置10のセンサデータに対して慣性航法(INS)(具体的には、積分処理)を適用することにより、移動ベクトルPを算出する(S704)。
 詳細には、上記ステップS704においては、動作区間中に、実世界においてセンサ装置10が進んだ方向をグローバル座標系のZ軸と定義する。次に、当該ステップにおいては、動作区間に取得されたセンサ装置10のセンサデータからグローバル座標系における加速度を取得し、慣性航法を適用して、移動ベクトル(第1の出力)Pを取得する。すなわち、当該ステップにおいては、グローバル座標系における加速度に対して2回積分を行い、移動ベクトルPを取得する。なお、本実施形態においては、第2の動作として例えば1歩踏み出す動作を行った場合には、動作区間は1、2秒程度の短い時間であるため、慣性航法で得られた位置(移動ベクトル)が発散する前の、高精度な位置(移動ベクトル)を取得することが可能である。
 さらに、図31に示すように、本実施形態に係るシステムは、上記移動ベクトルPをXZ平面に正射影して正射影ベクトルPxz(P、P)を取得する。さらに、本実施形態に係るシステムは、下記の数式(6)に基づいて、正射影ベクトルPxzとX軸とがなす角度をグローバル座標系におけるセンサ装置10のヨー角θとして計算する(S706)。ここで、X軸は、上記水平面に平行で、且つ、上記Z軸と直行する軸である。
Figure JPOXMLDOC01-appb-M000005
 次に、本実施形態に係るシステは、上述のステップS706で得られたヨー角θに基づき、Z軸回りにヨー角θだけ回転させる回転行列(第2の回転行列)を計算する(S708)。
 そして、本実施形態に係るシステムは、上述のステップS702及びステップS708で計算された第1及び第2の回転行列を合成することにより、グローバル座標系における初期状態のセンサ装置10の姿勢(第3の回転行列)(初期姿勢)を計算する(S710)。
 詳細には、上記ステップS710においては、上述のステップS702で計算されたX軸及びZ軸回りの第1の回転行列をY軸に対してヨー角θ分だけ回転させることにより、グローバル座標系のおける初期状態のセンサ10の姿勢を取得することができる。より具体的には、下記の数式(7)に示されるように、上述のステップS702で計算されたX軸及びZ軸回りの第1の回転行列に、上述のステップS710で計算されたY軸回りにヨー角θだけ回転させる第2の回転行列を合成することにより、グローバル座標系における初期状態のセンサ装置10の姿勢を計算することができる。
Figure JPOXMLDOC01-appb-M000006
 次に、本実施形態に係るシステは、ステップS710で計算された、グローバル座標系における初期状態のセンサ装置10の姿勢(第3の回転行列)と、予め定義された第1の動作(初期静止)におけるグローバル座標系における部位の姿勢を示す、身体座標系をグローバル座標系に対応させる回転行列とを用いて、センサ座標系における上記部位の姿勢を計算する(S712)。すなわち、当該ステップにおいては、身体座標系をセンサ座標系に対応させるための座標変換行列を計算する。
 詳細には、本実施形態においては、図32に示されるように、Nポーズで静止した際の該当部位(図では手)のグローバル座標系に対する姿勢を予め定義する。そして、上述した数式(4)を用いることにより、初期状態(t=0)におけるグローバル座標系におけるセンサ装置10の姿勢と、予め定義された初期状態におけるグローバル座標系における部位の姿勢とによって、センサ座標系における部位の姿勢を得ることができる。なお、先に説明したように、センサ座標系における部位の姿勢は、センサ装置10(センサ座標系)に対する部位の姿勢であることから、センサ装置10が一度当該部位に装着されてしまえば、装着ずれがない限り不変となる。
 以上のように、本実施形態においては、ユーザが簡単なキャリブレーション動作を行うことにより、高精度にセンサ装置10の装着姿勢を把握することが可能である。
 なお、本実施形態においては、上述のステップS704において、慣性航法によって得られた速度に対してオフセット処理を行い、オフセット処理を行った速度に対して積分処理を行い、移動ベクトルPを計算してもよい。このようにすることで、より高精度にセンサ装置10の装着姿勢を把握することができる。このオフセット処理について、図33を参照して説明する。図33は、本実施形態に係るオフセット処理を説明するための説明図である。
 例えば、図33には、慣性航法で得たセンサ装置10の速度L10の経時変化が示されている。本実施形態においては、キャリブレーション動作の動作期間においては、その開始時(Start)と終了時(End)とでは、ユーザU1が静止していることから速度ゼロとみなすことができる。しかしながら、実際に得られる慣性航法によるセンサ装置10の速度L10では、図33に示すように、誤差により、終了時において速度がゼロになっていない場合がある。そこで、本実施形態においては、終了時における慣性航法によるセンサ装置10の速度L10と速度ゼロとの差分であるオフセット分を、慣性航法によって得られたセンサ装置10の速度L10から均等に差し引くオフセット処理を行ってもよい。本実施形態においては、このようなオフセット処理を行うことにより、図33に示さされる速度L20の経時変化を得ることができる。さらに、本実施形態においては、このようにオフセット処理された速度L20に対して積分処理を行うことにより、上記移動ベクトルPを計算してもよい。なお、ここでオフセット分を均等に差し引くとは、オフセット分を動作期間の長さで割った値を、慣性航法によって得られたセンサ装置10の速度L10の全体に分配するように差し引くことをいう。
 なお、本実施形態においては、慣性航法で得られた速度や位置が発散する前のセンサデータを用いることが好ましく、このようにすることで、より精度よくセンサ装置10の装着姿勢を取得することができる。そこで、本実施形態においては、ユーザU1に対してキャリブレーション動作を誘導する際、第2の動作として、例えば、ユーザU1が水平面を直線移動する1歩の距離(動作区間における移動距離)に制約をかけたりしてもよい。また、本実施形態においては、ユーザU1が移動する空間にレーザセンサを設け、レーザセンサが設けられた位置を通過したタイミングまでのセンサデータを用いるようにしてもよい。さらに、本実施形態においては、上述のレーザセンサの代わりに、ユーザU1が移動する水平面に圧力センサを設けてもよい。
 なお、上述の説明においてはステップS704ではXZ平面に正射影するベクトルとして、移動ベクトルPを計算していたが、本実施形態においては、移動ベクトルPに限定されるものではなく、速度ベクトルであってもよく、特に限定されるものではない。そこで、XZ平面に正射影するベクトルの変形例について、図34を参照して説明する。図34は、本実施形態に係るベクトルの変形例について説明するための説明図である。
 本変形例においては、例えば、ユーザU1に、同一のキャリブレーション動作を繰り返させることにより、複数の動作期間のセンサデータを取得してもよい。そして、このような場合、例えば、図34に示すように、複数の動作期間において取得されたセンサデータを慣性航法により処理して得られた全サンプルの位置Vを直線で近似することにより、XZ平面に正射影するベクトルを求めてもよい。すなわち、本変形例においては、直線近似により得られたベクトルをXZ平面に正射影して正射影ベクトルPxzを取得し、正射影ベクトルPxzとX軸とがなす角度をグローバル座標系におけるセンサ装置10のヨー角θとして計算することができる。このように、複数の動作期間において取得されたセンサデータを用いて、XZ平面に正射影するベクトルを計算することにより、より高精度にセンサ装置10のヨー角θを計算することができる。また、本変形例においては、位置Vの代わりに、動作期間において取得されたセンサデータを慣性航法により処理して得られた速度を用いてもよい。
 また、本実施形態においては、複数の動作期間のセンサデータを取得した場合、複数のセンサデータの平均値を用いてXZ平面に正射影するベクトルを計算してもよい。さらに、本実施形態においては、ユーザU1に、同一のキャリブレーション動作を連続して繰り返すことに限定されるものではない。例えば、本実施形態においては、違うキャリブレーション動作(例えば、前に1歩、後ろに1歩を繰り返す)を複数回行ってもよく、異なる日時に行われてもよい。
  <6-5.キャリブレーション動作への誘導例>
 続いて、本実施形態におけるキャリブレーション動作への誘導例について、図35から図40を参照して説明する。図35は、本実施形態に係るセンサ装置10の装着例を説明するための説明図であり、図36は、本実施形態に係るキャリブレーション動作を誘導するための誘導システム100の一例を説明するための説明図である。また、図37は、本実施形態に係る誘導システム100の動作例を示すフローチャート図であり、図38は、本実施形態に係る誘導画面800の一例を説明するための説明図であり、図39は、本実施形態に係る誘導イメージ802の一例を説明するための説明図である。さらに、図40は、本実施形態の変形例に係るセンサ装置10の装着例を説明するための説明図である。
 本実施形態に係るキャリブレーション動作を開始するにあたり、図35に示されるように、本実施形態においては、例えば、ユーザU1の身体の6箇所の部位に、6つのセンサ装置10A~10Fを装着する。そして、このようにセンサ装置10が装着されたユーザU1は、図36に示される誘導システム100内に移動する。
 上記誘導システム100は、ユーザU1を、キャリブレーション動作に誘導する誘導機能を実行する。例えば、当該誘導システム100は、図36に示されるように、ユーザU1が水平移動する水平の床72と、当該床72に誘導のための投影イメージ802(図39 参照)を投影するためのプロジェクタ70と、ユーザU1の注視すべき位置(誘導情報)等を表示するディスプレイ80とを含む。なお、図36に図示していないものの、上述した本実施形態に係るシステムは、本実施形態に係る誘導システム100を包含する。
 プロジェクタ70は、例えばレーザプロジェクタやLED(Light Emitting Diode)プロジェクタ等から実現され、レンズを介して床72に投影イメージ802を投影する機能を有する。また、ディスプレイ80は、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)装置や、OLED(Organic Light Emitting Diode)装置等により実現され、適切なキャリブレーション動作を行うようにユーザU1を誘導するための誘導情報を表示することができる。さらに、本実施形態に係る誘導システム100は、適切なキャリブレーション動作を行うようにユーザU1を誘導するための誘導情報を音声出力するためのスピーカ(図示省略)を有していてもよい。
 続いて、図37を参照して、本実施形態に係る誘導システム100の動作例を説明する。
 まずは、誘導システム100は、ユーザU1をNポーズに誘導する提示を行う(S800)。詳細には、誘導システム100は、図38の誘導画面800内に示されるアバターA1をNポーズの状態にして表示する。この際、ディスプレイ80に表示された誘導画面800には、Nポーズの簡易的な説明の表示が含まれていることが好ましく、特に、手の位置や足の開き等のNポーズで重要なポイントについての説明については強調されて表示されることが好ましい(例えば、図38では、「手は足にぴったりつける」「足は1歩分あけて平行」等の文言を表示している)。さらに、当該誘導画面800においては、キャリブレーション動作中にユーザU1の頭がふらつくことを避けるために、キャリブレーション動作中にユーザU1が注視すべき位置を示す注視点M1(マーカ)が、ディスプレイ80の好適な位置に表示される。加えて、本実施形態においては、誘導画面800の表示とともに、ユーザU1をNポーズへと誘導する誘導情報が音声出力されてもよい(例えば、「気をつけの姿勢で静止して下さい」等の文言を音声出力する)。
 次に、誘導システム100は、ユーザU1が静止しているかを判断する(S802)。本実施形態においては、例えば、ユーザU1に装着されたセンサ装置10に含まれる加速度センサで検出した加速度の分散、ジャイロセンサで検出したノルム等に基づいて、ユーザU1が静止しているかを判断することができる。ユーザU1が静止していると判断した場合には、誘導システム100は、ステップS804に進み、ユーザU1が静止していないと判断した場合には、上述のステップS800に戻る。
 そして、誘導システム100は、センサ装置10で得られたセンサデータの記録を開始する(ログ開始)(S804)。
 次に、誘導システム100は、ユーザU1を第2の動作として1歩前進する動作に誘導する提示を行う(S806)。例えば、誘導システム100は、アバターA1が1歩踏み出すアニメーションを、ディスプレイ80を介して繰り返し表示する。この際、上記アニメーションの表示とともに、ユーザU1を1歩前進する動作に誘導する誘導情報が音声出力されてもよい(例えば、「1歩歩いてください」等の文言を音声出力する)。
 さらに、上記ステップS806においては、ユーザU1が1歩前進する際の距離の目安として、プロジェクタ70により、床72に、ユーザU1が足を置くべき位置を示す足跡型の投影イメージ802を投影する。詳細には、図39に示すように、プロジェクタ70は、ユーザU1が1stStepと付された足跡型の投影イメージ802の位置に静止していた場合には、その前方の床72に、2ndStepと付された足跡型の投影イメージ802を投影する。さらに、プロジェクタ70は、足跡型の投影イメージ802の他に、ユーザU1が進むべき方向を示す矢印等も床72に投影してもよい。このようにすることで、本実施形態においては、ユーザU1が水平移動する1歩の距離(動作区間における移動距離)に制約がかかることから、慣性航法で得られた速度や位置が発散する前のセンサデータを用いることができる。
 なお、本実施形態においては、上述のようにプロジェクタ70で投影イメージ802を床72に投影することに限定されるものではなく、例えば、足跡型の投影イメージ802の代わりにスポットライトで光の点を床72に投影してもよい。さらに、本実施形態においては、例えば、足跡型のマークを床72に予め描画してもよく、足跡型のマークが描画されたマットを床72に設置してもよい。
 次に、誘導システム100は、ユーザU1が歩いたかどうかを判断する(S808)。本実施形態においては、上述と同様、ユーザU1に装着されたセンサ装置10のセンサデータに基づいて、ユーザU1が歩いたかどうかを判断することができる。誘導システム100は、ユーザU1が歩いた判断した場合には、ステップS810に進み、ユーザU1が歩いていないと判断した場合には、上述のステップS806に戻る。
 そして、誘導システム100は、上述のステップS800と同様に、図38に示されるような誘導画面800を表示することにより、ユーザU1をNポーズに誘導する提示を行う(S810)。この際、誘導システム100は、誘導画面800の表示とともに、ユーザU1をNポーズへと誘導する誘導情報が音声出力してもよい(例えば、「そのまま静止して下さい」等の文言を音声出力する)。
 次に、誘導システム100は、上述のステップS802と同様に、ユーザU1が静止しているかを判断する(S812)。誘導システム100は、ユーザU1が静止していると判断した場合には、ステップS814に進み、ユーザU1が静止していないと判断した場合には、上述のステップS810に戻る。
 そして、誘導システム100は、センサ装置10で得られたセンサデータの記録を終了する(ログ終了)(S814)。
 次に、誘導システム100は、ディスプレイ80等に、キャリブレーション動作によって得られたセンサデータに対して計算処理を行っていることを表示する(例えば、「計算中」等の文言を表示する)(S816)。
 さらに、誘導システム100は、ステップS816で得られた計算結果に基づき、キャリブレーションを行い、処理を終了する(S818)。
 また、本実施形態においては、図40に示されるように、プロジェクタ70及びディスプレイ80に代わりに、ユーザU1の頭部等に装着されるヘッドマウントディスプレイ(Head Mounted Display:以下、「HMD」と称する)60を用いてもよい。詳細には、HMD60は、ユーザU1に装着された際にユーザU1の眼前に位置するディスプレイを有し、ユーザU1の眼前に、上述の注視点M1や、足跡型のイメージ等、様々な形態の仮想オブジェクトを表示することができる。このようなHMD60には、上記ディスプレイが非透過である非透過型と、上記ディスプレイが透過する透過型とがある。ディスプレイが透過型であった場合、上述の仮想オブジェクトは、ディスプレイを介してユーザU1が視認する実空間に重畳されるようにリアルタイムで表示される。また、ディスプレイが非透過型であった場合、上述の仮想オブジェクトは、ディスプレイを介して提供される仮想空間に重畳されるようにリアルタイムで表示される。この際、HMD60の姿勢や位置をトラッキングして、トラッキングに合わせて仮想オブジェクトの表示を変化させることにより、より自然にユーザU1をキャリブレーション動作に誘導することができる。
 以上のように、本実施形態委よれば、センサ装置10を装着したユーザU1が、簡単なキャリブレーションのための動作を行うことにより、センサ装置10の装着姿勢を高精度に得ることができる。
 <<7.ハードウェア構成例>>
 以上、本開示の実施形態を説明した。最後に、図41を参照して、本開示の実施形態にかかる情報処理装置のハードウェア構成について説明する。図41は、本開示の実施形態にかかる情報処理装置のハードウェア構成の一例を示すブロック図である。なお、図41に示す情報処理装置900は、例えば、図14に示したセンサ装置10、ハブ装置20、及び情報処理装置30を実現し得る。本開示の実施形態にかかるセンサ装置10、ハブ装置20、及び情報処理装置30による情報処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
 図41に示すように、情報処理装置900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903及びホストバス904aを備える。また、情報処理装置900は、ブリッジ904、外部バス904b、インタフェース905、入力装置906、出力装置907、ストレージ装置908、ドライブ909、接続ポート911、通信装置913、及びセンサ915を備える。情報処理装置900は、CPU901に代えて、又はこれとともに、DSP若しくはASIC等の処理回路を有してもよい。
 CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。CPU901は、例えば、制御部16、制御部24、制御部34を形成し得る。
 CPU901、ROM902及びRAM903は、CPUバスなどを含むホストバス904aにより相互に接続されている。ホストバス904aは、ブリッジ904を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス904bに接続されている。なお、必ずしもホストバス904a、ブリッジ904および外部バス904bを分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
 入力装置906は、例えば、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、ユーザによって情報が入力される装置によって実現される。また、入力装置906は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話やPDA等の外部接続機器であってもよい。さらに、入力装置906は、例えば、上記の入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などを含んでいてもよい。情報処理装置900のユーザは、この入力装置906を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
 出力装置907は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で形成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置907は、例えば、情報処理装置900が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置900が行った各種処理により得られた結果を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
 ストレージ装置908は、情報処理装置900の記憶部の一例として形成されたデータ格納用の装置である。ストレージ装置908は、例えば、HDD等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により実現される。ストレージ装置908は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置908は、CPU901が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。
 ドライブ909は、記憶媒体用リーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ909は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、RAM903に出力する。また、ドライブ909は、リムーバブル記憶媒体に情報を書き込むこともできる。
 接続ポート911は、外部機器と接続されるインタフェースであって、例えばUSB(Universal Serial Bus)などによりデータ伝送可能な外部機器との接続口である。
 通信装置913は、例えば、ネットワーク920に接続するための通信デバイス等で形成された通信インタフェースである。通信装置913は、例えば、有線若しくは無線LAN(Local Area Network)、LTE(Long Term Evolution)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置913は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置913は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。通信装置913は、例えば、通信部18、通信部22、通信部32を形成し得る。
 センサ915は、例えば、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサ、測距センサ、力センサ等の各種のセンサである。センサ915は、情報処理装置900の姿勢、移動速度等、情報処理装置900自身の状態に関する情報や、情報処理装置900の周辺の明るさや騒音等、情報処理装置900の周辺環境に関する情報を取得する。また、センサ915は、GPS信号を受信して装置の緯度、経度及び高度を測定するGPSセンサを含んでもよい。センサ915は、例えば、ジャイロセンサ12、加速度センサ14を形成し得る。
 なお、ネットワーク920は、ネットワーク920に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク920は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク920は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。
 以上、本開示の実施形態にかかる情報処理装置900の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本開示の実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
 なお、上述のような本開示の実施形態にかかる情報処理装置900の各機能を実現するためのコンピュータプログラムを作製し、PC等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
 <<8.むすび>>
 以上説明したように、本開示の実施形態によれば、モーションセンサが装着された身体の部位の位置情報をより高精度に得ることが可能である。さらに、本開示の実施形態によれば、モーションセンサが装着されていない部位の位置情報、及び姿勢情報をも得ることが可能であるため、より少ないモーションセンサを用いて、スケルトン情報を得ることが可能である。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 例えば、上記実施形態では、モーションセンサとして、慣性センサが身体に装着される例を主に説明したが、本技術はかかる例に限定されない。モーションセンサは、身体の動きをセンシングするセンサであればよく、上述したように地磁気センサ、気圧センサ、イメージセンサ等であってもよい。
 また、上記実施形態における各ステップは、必ずしもフローチャート図として記載された順序に沿って時系列に処理される必要はない。例えば、上記実施形態の処理における各ステップは、フローチャート図として記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
 また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示にかかる技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
 なお、以下のような構成も本開示の技術的範囲に属する。
(1)
 ユーザの身体に装着されたモーションセンサのグローバル座標系における姿勢を推定する推定機能を、コンピュータに実現させるためのプログラムであって、
 前記推定機能は、
 前記ユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサの姿勢を推定する、
 プログラム。
(2)
 前記推定機能は、
 前記第1の動作における前記モーションセンサのセンシングデータに含まれるセンサ座標系における加速度に基づいて、X軸及びZ軸回りの回転行列である第1の回転行列を計算し、
 前記第1の動作から前記第2の動作を経て前記第3の動作までの間の前記モーションセンサのセンシングデータに処理を施して得られたグローバル座標系における加速度に基づいて、Y軸回りの回転行列である第2の回転行列を計算し、
 前記第1及び第2の回転行列を合成することにより、前記第3の回転行列を計算する、
 上記(1)に記載のプログラム。
(3)
 前記第1の回転行列の計算は、
 前記センサ座標系における加速度に基づいて、前記モーションセンサのピッチ角及びロール角を計算し、
 計算した前記ピッチ角及びロール角に基づき、前記第1の回転行列を計算することにより、実行される、
 上記(2)に記載のプログラム。
(4)
 前記第2の回転行列の計算は、
 前記第1の動作から前記第2の動作を経て前記第3の動作までの間の前記モーションセンサが進んだ方向を前記グローバル座標系のZ軸として定義し、
 水平面に平行で、且つ、前記Z軸と直行する軸を前記X軸と定義し、
 前記グローバル座標系における加速度を積分することにより得られた第1の出力をXZ平面に正射影して正射影ベクトルを取得し、前記正射影ベクトルと前記X軸とがなす角度を前記モーションセンサのヨー角として計算し、
 計算した前記ヨー角に基づき、前記第2の回転行列を計算する、
 上記(2)又は(3)に記載のプログラム。
(5)
 前記グローバル座標系における加速度は、前記第1の動作から前記第2の動作を経て前記第3の動作までの間の前記モーションセンサのセンシングデータに積分処理を施すことにより、計算される、上記(2)~(4)のいずれか1つに記載のプログラム。
(6)
 前記第3の回転行列と、予め定義された前記第1の動作におけるグローバル座標系における前記ユーザの身体の部位の姿勢とに基づいて、身体座標をローカル座標に対応させるための座標変換行列を計算する座標変換行列計算機能をさらに有する、上記(1)~(5)のいずれか1つに記載のプログラム。
(7)
 前記所定のポーズは、直立状態で静止することである、上記(1)~(6)のいずれか1つに記載のプログラム。
(8)
 前記第2の動作は、前記ユーザが水平面上を所定の距離だけ直線移動する動作である、上記(1)~(3)のいずれか1つに記載のプログラム。
(9)
 前記第2の動作は、前記モーションセンサが水平面上を所定の距離だけ直線移動するような前記ユーザの動作である、上記(1)~(3)のいずれか1つに記載のプログラム。
(10)
 前記ユーザを、前記第1の動作から前記第2の動作を経て前記第3の動作まで行うように誘導する誘導機能を前記コンピュータにさらに実現させる、上記(1)~(9)のいずれか1つに記載のプログラム。
(11)
 前記誘導機能は、前記ユーザを誘導するために誘導情報を投影することを含む、上記(10)に記載のプログラム。
(12)
 前記誘導情報は、前記ユーザが注視すべき位置を示す情報を含む、上記(11)に記載のプログラム。
(13)
 前記誘導情報は、前記ユーザが足を置くべき位置を示す情報を含む、上記(11)又は(12)に記載のプログラム。
(14)
 前記誘導機能は、前記ユーザを誘導するために誘導情報を音声出力することを含む、上記(10)に記載のプログラム。
(15)
 前記ユーザの身体の2箇所以上の部位に装着された2以上の前記モーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第3の出力と、前記センサデータに対して第2の処理を施して得られた第4の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正を行う補正機能を前記コンピュータにさらに実現させる、上記(1)~(14)のいずれか1つに記載のプログラム。
(16)
 ユーザの身体に装着されたモーションセンサのグローバル座標系における姿勢を推定する推定部を備え、
 前記推定部は、
 前記ユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサの姿勢を推定する、
 情報処理装置。
(17)
 身体にモーションセンサが装着されたユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサのグローバル座標系における姿勢を推定することをプロセッサが行うこと、を含む情報処理方法。
 10、10A、10B、10C、10D、10E、10F センサ装置
 12 ジャイロセンサ
 14 加速度センサ
 16 制御部
 18、32 通信部
 20 ハブ装置
 22 通信部
 24、34 制御部
 30 情報処理装置
 40、907 出力装置
 50 距離センサ
 60 HMD
 70 プロジェクタ
 72 床
 80 ディスプレイ
 100 誘導システム
 510 グローバル運動加速度姿勢計算部
 520、620 積分計算部
 530 選択部
 540、541、544 装着位置回帰推定部
 550 信頼度特定部
 560 接地検出部
 570、572、573、574 補正部
 580、583 補間部
 610、630 回転行列計算部
 640 回転行列合成部
 650 変換行列計算部
 800 画面
 802 投影イメージ
 700、702 推定ブロック
 900 情報処理装置
 901 CPU
 902 ROM
 903 RAM
 904 ブリッジ
 904a ホストバス
 904b 外部バス
 905 インタフェース
 906 入力装置
 908 ストレージ装置
 909 ドライブ
 911 接続ポート
 913 通信装置
 915 センサ
 920 ネットワーク
 A1 アバター
 D 遅延器
 D103、D104、D105、SD10、SD90、SD100、SD101、SD102、SD103、SD104、D105 スケルトン情報
 L1 上限
 L2 下限
 L10、L20 速度
 M1 注視点マーカ
 P11、P12、P13、P14、P15、P16、P101、P102、P103、P104、P105、P106、SP101、SP102、SP103、SP105、SP106、SP107 装着部位
 PD10、PD12、PD100 装着部位情報
 R10 尤度分布
 S100、S111、S112、S113、S114、S121、S122、S123、S130、S200、S502、S504、S506、S508、S510、S512、S514、S516、S518、S520 ステップ
 S53、S54、S55、S56、S57、S58、S59 位置推定処理
 SB101、SB81、SB82 ボーン
 SP11,SP12、SP20、SP81、SP82、SP83、SP91、SP92、SP93、SP94、SP95、SP96 部位
 U1 ユーザ

Claims (17)

  1.  ユーザの身体に装着されたモーションセンサのグローバル座標系における姿勢を推定する推定機能を、コンピュータに実現させるためのプログラムであって、
     前記推定機能は、
     前記ユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサの姿勢を推定する、
     プログラム。
  2.  前記推定機能は、
     前記第1の動作における前記モーションセンサのセンシングデータに含まれるセンサ座標系における加速度に基づいて、X軸及びZ軸回りの回転行列である第1の回転行列を計算し、
     前記第1の動作から前記第2の動作を経て前記第3の動作までの間の前記モーションセンサのセンシングデータに処理を施して得られたグローバル座標系における加速度に基づいて、Y軸回りの回転行列である第2の回転行列を計算し、
     前記第1及び第2の回転行列を合成することにより、前記第3の回転行列を計算する、
     請求項1に記載のプログラム。
  3.  前記第1の回転行列の計算は、
     前記センサ座標系における加速度に基づいて、前記モーションセンサのピッチ角及びロール角を計算し、
     計算した前記ピッチ角及びロール角に基づき、前記第1の回転行列を計算することにより、実行される、
     請求項2に記載のプログラム。
  4.  前記第2の回転行列の計算は、
     前記第1の動作から前記第2の動作を経て前記第3の動作までの間の前記モーションセンサが進んだ方向を前記グローバル座標系のZ軸として定義し、
     水平面に平行で、且つ、前記Z軸と直行する軸を前記X軸と定義し、
     前記グローバル座標系における加速度を積分することにより得られた第1の出力をXZ平面に正射影して正射影ベクトルを取得し、前記正射影ベクトルと前記X軸とがなす角度を前記モーションセンサのヨー角として計算し、
     計算した前記ヨー角に基づき、前記第2の回転行列を計算する、
     請求項2に記載のプログラム。
  5.  前記グローバル座標系における加速度は、前記第1の動作から前記第2の動作を経て前記第3の動作までの間の前記モーションセンサのセンシングデータに積分処理を施すことにより、計算される、請求項2に記載のプログラム。
  6.  前記第3の回転行列と、予め定義された前記第1の動作におけるグローバル座標系における前記ユーザの身体の部位の姿勢とに基づいて、身体座標をローカル座標に対応させるための座標変換行列を計算する座標変換行列計算機能をさらに有する、請求項1に記載のプログラム。
  7.  前記所定のポーズは、直立状態で静止することである、請求項1に記載のプログラム。
  8.  前記第2の動作は、前記ユーザが水平面上を所定の距離だけ直線移動する動作である、請求項1に記載のプログラム。
  9.  前記第2の動作は、前記モーションセンサが水平面上を所定の距離だけ直線移動するような前記ユーザの動作である、請求項1に記載のプログラム。
  10.  前記ユーザを、前記第1の動作から前記第2の動作を経て前記第3の動作まで行うように誘導する誘導機能を前記コンピュータにさらに実現させる、請求項1に記載のプログラム。
  11.  前記誘導機能は、前記ユーザを誘導するために誘導情報を投影することを含む、請求項10に記載のプログラム。
  12.  前記誘導情報は、前記ユーザが注視すべき位置を示す情報を含む、請求項11に記載のプログラム。
  13.  前記誘導情報は、前記ユーザが足を置くべき位置を示す情報を含む、請求項11に記載のプログラム。
  14.  前記誘導機能は、前記ユーザを誘導するために誘導情報を音声出力することを含む、請求項10に記載のプログラム。
  15.  前記ユーザの身体の2箇所以上の部位に装着された2以上の前記モーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第3の出力と、前記センサデータに対して第2の処理を施して得られた第4の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正を行う補正機能を前記コンピュータにさらに実現させる、請求項1に記載のプログラム。
  16.  ユーザの身体に装着されたモーションセンサのグローバル座標系における姿勢を推定する推定部を備え、
     前記推定部は、
     前記ユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサの姿勢を推定する、
     情報処理装置。
  17.  身体にモーションセンサが装着されたユーザが所定のポーズで静止する第1の動作における前記モーションセンサのセンシングデータに含まれる加速度と、前記ユーザが、前記第1の動作から前記モーションセンサが水平移動するような第2の動作を経て、前記所定のポーズで静止する第3の動作までの間の前記モーションセンサのセンシングデータに含まれる加速度とを参照して、前記モーションセンサの姿勢を示す第3の回転行列を計算することにより、前記モーションセンサのグローバル座標系における姿勢を推定することをプロセッサが行うこと、を含む情報処理方法。
PCT/JP2019/016151 2018-04-17 2019-04-15 プログラム、情報処理装置、及び情報処理方法 WO2019203189A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018079335 2018-04-17
JP2018-079335 2018-04-17

Publications (1)

Publication Number Publication Date
WO2019203189A1 true WO2019203189A1 (ja) 2019-10-24

Family

ID=68239152

Family Applications (3)

Application Number Title Priority Date Filing Date
PCT/JP2019/016150 WO2019203188A1 (ja) 2018-04-17 2019-04-15 プログラム、情報処理装置、及び情報処理方法
PCT/JP2019/016152 WO2019203190A1 (ja) 2018-04-17 2019-04-15 プログラム、情報処理装置、及び情報処理方法
PCT/JP2019/016151 WO2019203189A1 (ja) 2018-04-17 2019-04-15 プログラム、情報処理装置、及び情報処理方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
PCT/JP2019/016150 WO2019203188A1 (ja) 2018-04-17 2019-04-15 プログラム、情報処理装置、及び情報処理方法
PCT/JP2019/016152 WO2019203190A1 (ja) 2018-04-17 2019-04-15 プログラム、情報処理装置、及び情報処理方法

Country Status (5)

Country Link
US (3) US11726549B2 (ja)
EP (2) EP3782549A4 (ja)
JP (3) JP7176563B2 (ja)
CN (2) CN111954490B (ja)
WO (3) WO2019203188A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111896221A (zh) * 2020-07-30 2020-11-06 四川大学 虚拟坐标系辅助摄像机标定的旋转光学测量***对准方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6745301B2 (ja) * 2018-07-25 2020-08-26 株式会社バーチャルキャスト コンテンツ配信システム、コンテンツ配信方法、コンピュータプログラム
JP6707111B2 (ja) * 2018-07-25 2020-06-10 株式会社バーチャルキャスト 3次元コンテンツ配信システム、3次元コンテンツ配信方法、コンピュータプログラム
JP7198730B2 (ja) * 2019-07-05 2023-01-04 株式会社日立製作所 センサデータ補正システム
US20220335625A1 (en) * 2019-08-29 2022-10-20 Citizen Watch Co., Ltd. Video generation device
CN113050616A (zh) * 2019-12-27 2021-06-29 深圳市优必选科技股份有限公司 一种双足机器人行走的控制方法及双足机器人
WO2021138577A1 (en) * 2019-12-31 2021-07-08 Human Mode, LLC Proxy controller suit with optional dual range kinematics
JP7335199B2 (ja) * 2020-04-30 2023-08-29 本田技研工業株式会社 解析装置、解析方法、プログラム、および較正方法
CN112754472B (zh) * 2021-01-05 2021-09-21 北京诺亦腾科技有限公司 一种动作捕捉***中传感器的校准方法及装置
EP4290347A1 (en) 2021-02-02 2023-12-13 Sony Group Corporation Information processing method, information processing device, and program
CN112734946B (zh) * 2021-03-31 2021-07-30 南京航空航天大学 一种声乐表演教学方法及***
WO2022215313A1 (ja) 2021-04-08 2022-10-13 ソニーグループ株式会社 情報処理方法、情報処理装置およびプログラム
US20240241576A1 (en) * 2021-05-28 2024-07-18 Kyocera Corporation Information processing apparatus, electronic device, information processing system, method for processing information, and program
WO2022269985A1 (ja) * 2021-06-22 2022-12-29 ソニーグループ株式会社 情報処理装置、および情報処理方法、並びにプログラム
WO2023106382A1 (ja) * 2021-12-10 2023-06-15 京セラ株式会社 情報処理装置、電子機器、情報処理システム、情報処理方法及びプログラム
FR3136645A1 (fr) * 2022-06-20 2023-12-22 Ynnov Dispositif de génération d’une séquence d'images représentant une suite continue d’éléments osseux en mouvement
WO2024111401A1 (ja) * 2022-11-24 2024-05-30 ソニーセミコンダクタソリューションズ株式会社 情報処理装置及び情報処理方法
WO2024150526A1 (ja) * 2023-01-10 2024-07-18 ソニーグループ株式会社 データ送信装置、データ受信装置、およびデータ処理方法、並びにプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004072579A1 (ja) * 2003-02-14 2004-08-26 Akebono Brake Industry Co., Ltd. 姿勢検出装置の誤差補正方法及び動作計測装置
JP2015186515A (ja) * 2014-03-26 2015-10-29 本田技研工業株式会社 上体運動計測システム及び上体運動計測方法
JP2016112108A (ja) * 2014-12-12 2016-06-23 カシオ計算機株式会社 運動情報表示システム及び運動情報表示方法、運動情報表示プログラム
WO2017014294A1 (ja) * 2015-07-23 2017-01-26 国立大学法人北海道大学 歩行解析方法および歩行解析システム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088042A (en) * 1997-03-31 2000-07-11 Katrix, Inc. Interactive motion data animation system
WO2002037827A2 (en) * 2000-10-30 2002-05-10 Naval Postgraduate School Method and apparatus for motion tracking of an articulated rigid body
JP2003259214A (ja) * 2002-03-01 2003-09-12 Univ Waseda 画像合成システム及び画像取得システム
JP2006177749A (ja) * 2004-12-22 2006-07-06 Ritsumeikan 周期運動体の移動軌跡算出方法及び装置
JP2007072194A (ja) * 2005-09-07 2007-03-22 Xing Inc 人型映像制御装置
US9159151B2 (en) * 2009-07-13 2015-10-13 Microsoft Technology Licensing, Llc Bringing a visual representation to life via learned input from the user
US8933884B2 (en) * 2010-01-15 2015-01-13 Microsoft Corporation Tracking groups of users in motion capture system
US8437506B2 (en) * 2010-09-07 2013-05-07 Microsoft Corporation System for fast, probabilistic skeletal tracking
JP5915148B2 (ja) 2011-12-16 2016-05-11 セイコーエプソン株式会社 運動解析方法及び運動解析装置
KR101327995B1 (ko) * 2012-04-12 2013-11-13 동국대학교 산학협력단 디지털 캐릭터를 이용한 무대 공연을 처리하는 장치 및 방법
US8867786B2 (en) * 2012-10-31 2014-10-21 Microsoft Corporation Scenario-specific body-part tracking
CN103135765A (zh) * 2013-02-20 2013-06-05 兰州交通大学 一种基于微机械传感器的人体动作信息捕捉***
US9381426B1 (en) * 2013-03-15 2016-07-05 University Of Central Florida Research Foundation, Inc. Semi-automated digital puppetry control
EP3068301A4 (en) * 2013-11-12 2017-07-12 Highland Instruments, Inc. Analysis suite
US10415975B2 (en) * 2014-01-09 2019-09-17 Xsens Holding B.V. Motion tracking with reduced on-body sensors set
JP2015184689A (ja) 2014-03-20 2015-10-22 株式会社Mugenup 動画生成装置及びプログラム
WO2016044831A1 (en) * 2014-09-21 2016-03-24 Athlete Architect Llc Methods and apparatus for power expenditure and technique determination during bipedal motion
US20170307393A1 (en) * 2014-12-17 2017-10-26 Sony Corporation Information processing apparatus, information processing method, and program
US10212325B2 (en) * 2015-02-17 2019-02-19 Alpinereplay, Inc. Systems and methods to control camera operations
CN107923740B (zh) 2015-09-09 2020-08-11 索尼公司 传感器设备、传感器***以及信息处理设备
US11083950B2 (en) 2016-06-16 2021-08-10 Sony Corporation Information processing apparatus and information processing method
US10586380B2 (en) 2016-07-29 2020-03-10 Activision Publishing, Inc. Systems and methods for automating the animation of blendshape rigs
JP6827472B2 (ja) 2016-09-16 2021-02-10 アルプスアルパイン株式会社 移動測定装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004072579A1 (ja) * 2003-02-14 2004-08-26 Akebono Brake Industry Co., Ltd. 姿勢検出装置の誤差補正方法及び動作計測装置
JP2015186515A (ja) * 2014-03-26 2015-10-29 本田技研工業株式会社 上体運動計測システム及び上体運動計測方法
JP2016112108A (ja) * 2014-12-12 2016-06-23 カシオ計算機株式会社 運動情報表示システム及び運動情報表示方法、運動情報表示プログラム
WO2017014294A1 (ja) * 2015-07-23 2017-01-26 国立大学法人北海道大学 歩行解析方法および歩行解析システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111896221A (zh) * 2020-07-30 2020-11-06 四川大学 虚拟坐标系辅助摄像机标定的旋转光学测量***对准方法

Also Published As

Publication number Publication date
EP3782549A1 (en) 2021-02-24
CN111954491A (zh) 2020-11-17
WO2019203188A1 (ja) 2019-10-24
US20210141443A1 (en) 2021-05-13
JP7176563B2 (ja) 2022-11-22
JPWO2019203190A1 (ja) 2021-07-08
US11675418B2 (en) 2023-06-13
WO2019203190A1 (ja) 2019-10-24
US20230333630A1 (en) 2023-10-19
EP3782549A4 (en) 2021-11-10
EP3782548A4 (en) 2021-06-16
JPWO2019203188A1 (ja) 2021-07-15
JP2023016825A (ja) 2023-02-02
US20210166479A1 (en) 2021-06-03
CN111954490A (zh) 2020-11-17
EP3782548A1 (en) 2021-02-24
JP7396438B2 (ja) 2023-12-12
CN111954490B (zh) 2024-07-16
US11726549B2 (en) 2023-08-15
JP7318641B2 (ja) 2023-08-01

Similar Documents

Publication Publication Date Title
WO2019203189A1 (ja) プログラム、情報処理装置、及び情報処理方法
US20190111327A1 (en) Information processing apparatus, information processing method, and storage medium
WO2020110659A1 (ja) 情報処理装置、情報処理方法、およびプログラム
US11113515B2 (en) Information processing device and information processing method
US11914762B2 (en) Controller position tracking using inertial measurement units and machine learning
JP2012531658A (ja) 仮想世界処理装置および方法
WO2019215987A1 (ja) 情報処理装置、情報処理方法、及びプログラム
WO2021157691A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US10551195B2 (en) Portable device with improved sensor position change detection
KR102578119B1 (ko) 모바일 디바이스와 연동하는 스마트 안경 작동 방법
WO2016035464A1 (ja) 解析方法、システムおよび解析装置
WO2022146858A1 (en) Controller position tracking using inertial measurement units and machine learning
JP6874207B2 (ja) 推定装置、推定方法及びプログラム
JP6975347B2 (ja) トラッカーのキャリブレーション装置、トラッカーのキャリブレーション方法及びプログラム
US20240175893A1 (en) Information processing apparatus, information processing method, and program
US20240161438A1 (en) Information processing apparatus, information processing method, and information processing system

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19788095

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP