WO2022269985A1 - 情報処理装置、および情報処理方法、並びにプログラム - Google Patents

情報処理装置、および情報処理方法、並びにプログラム Download PDF

Info

Publication number
WO2022269985A1
WO2022269985A1 PCT/JP2022/005155 JP2022005155W WO2022269985A1 WO 2022269985 A1 WO2022269985 A1 WO 2022269985A1 JP 2022005155 W JP2022005155 W JP 2022005155W WO 2022269985 A1 WO2022269985 A1 WO 2022269985A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
learning
sensor
information
calculation unit
Prior art date
Application number
PCT/JP2022/005155
Other languages
English (en)
French (fr)
Inventor
雅人 君島
功誠 山下
哲朗 佐藤
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Priority to US18/569,284 priority Critical patent/US20240175893A1/en
Publication of WO2022269985A1 publication Critical patent/WO2022269985A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C19/00Gyroscopes; Turn-sensitive devices using vibrating masses; Turn-sensitive devices without moving masses; Measuring angular rate using gyroscopic effects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P15/00Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
    • G01P15/18Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration in two or more dimensions
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P7/00Measuring speed by integrating acceleration
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Definitions

  • the present disclosure relates to an information processing device, an information processing method, and a program, and more particularly to an information processing device, an information processing method, and a program that enable highly accurate motion capture.
  • Motion capture technology for detecting human movements has been proposed, but high-precision position detection technology is required to achieve high-precision motion capture technology.
  • the present disclosure has been made in view of such circumstances, and in particular, aims to improve the accuracy of position detection and realize highly accurate motion capture using a simple method.
  • An information processing device and a program are a calculation unit that calculates information to be a learning label based on sensor values consisting of angular velocity and acceleration detected by a sensor unit, and A learning unit for learning an inference parameter for inferring at least one of the orientation, velocity, and position of the sensor unit based on the information serving as the learning label and the sensor value; a learning label supplying unit configured to supply the learning unit with information that becomes the learning label with higher accuracy than a predetermined accuracy among the information that becomes the learning label, the learning unit comprising: the learning label supplying unit; for inferring at least one of the orientation, velocity, and position of the sensor unit based on the sensor value and the information to be the learning label with accuracy higher than the predetermined accuracy supplied by the An information processing device and a program for learning parameters for inference.
  • An information processing method is an information processing method for an information processing apparatus including a calculation unit, a learning unit, and a learning label supply unit, wherein the calculation unit includes an angular velocity detected by a sensor unit and acceleration to calculate information to be a learning label, and the learning unit calculates the sensor unit based on the information to be the learning label calculated by the calculation unit and the sensor value learning inference parameters for inferring at least one of the posture, velocity, and position of the robot, and the learning label supply unit selects from the information to be the learning label calculated by the calculation unit more than a predetermined accuracy information to be the learned label with a higher accuracy than the predetermined accuracy supplied from the learned label supply unit to the learning unit; and The information processing method learns the inference parameters for inferring at least one of the attitude, speed, and position of the sensor unit based on the sensor values.
  • information to be a learning label is calculated based on sensor values consisting of angular velocity and acceleration detected by a sensor unit, and the calculated information to be the learning label and the sensor value are combined. Based on this, inference parameters for inferring at least one of the orientation, speed, and position of the sensor unit are learned, and out of the calculated learned label information, the Information to be a learning label is supplied so as to be used for learning, and the orientation, speed, and position of the sensor unit are obtained based on the information to be the learning label with accuracy higher than the predetermined accuracy and the sensor value. The inference parameters for inferring at least one of are learned.
  • FIG. 4 is a diagram for explaining accumulation of errors
  • 1 is a diagram illustrating an external configuration of a motion capture system of the present disclosure
  • FIG. 1 is a block diagram illustrating the configuration of a motion capture system of the present disclosure
  • FIG. FIG. 5 is a diagram illustrating a configuration example of the first embodiment of the electronic device and the sensor unit of FIGS. 3 and 4
  • 6 is a flowchart for explaining learning processing by the electronic device of FIG. 5
  • 6 is a flowchart for explaining a first modified example of learning processing by the electronic device of FIG. 5
  • 6 is a flowchart illustrating a second modified example of learning processing by the electronic device of FIG.
  • FIG. 5 is a diagram illustrating a configuration example of a second embodiment of the electronic device of FIGS. 3 and 4;
  • FIG. 12 is a flowchart for explaining learning processing by the electronic device of FIG. 11;
  • FIG. 10 is a diagram illustrating an example of continuing learning of inference parameters without stopping;
  • FIG. 10 is a diagram illustrating an example of continuing learning of inference parameters without stopping;
  • 5 is a diagram illustrating a configuration example of a third embodiment of the electronic device of FIGS. 3 and 4;
  • FIG. 16 is a flowchart for explaining learning processing by the electronic device of FIG.
  • FIG. 15 is a diagram illustrating a configuration example of a fourth embodiment of the electronic device of FIGS. 3 and 4;
  • FIG. 18 is a flowchart for explaining learning processing by the electronic device of FIG. 17;
  • 1 shows a configuration example of a general-purpose computer;
  • Fig. 1 shows a configuration example of a general inertial navigation system.
  • the inertial navigation system 11 shown in FIG. 1 is mounted on various mobile objects such as aircraft and drones, and detects the attitude, speed, and position of the mobile object in a three-dimensional space.
  • the three-dimensional space referred to here is, for example, a space in which a position in the space can be represented by coordinates on each of the x-axis, y-axis, and z-axis.
  • the three-dimensional space is also referred to as an xyz space consisting of three axes, the x-axis, the y-axis, and the z-axis.
  • the inertial navigation system 11 includes a 6-axis inertial sensor 21 and a signal processing section 22.
  • the 6-axis inertial sensor 21 detects 3-axis angular velocity and 3-axis acceleration in a 3-dimensional space and outputs them to the signal processing unit 22 .
  • the signal processing unit 22 determines the posture, velocity, and Detect location.
  • the 6-axis inertial sensor 21 includes a 3-axis gyro sensor 31 and a 3-axis acceleration sensor 32.
  • the 3-axis gyro sensor 31 detects angular velocities of the xyz axes of the sensor coordinate system and outputs them to the signal processing unit 22 .
  • the 3-axis acceleration sensor 32 detects the acceleration of each of the xyz axes of the sensor coordinate system and outputs it to the signal processing section 22 .
  • the signal processing unit 22 includes an attitude calculation unit 51, a global coordinate conversion unit 52, a speed calculation unit 53, and a position calculation unit 54.
  • attitude calculation unit 51 acquires the information on the angular velocity of the sensor coordinate system supplied from the 3-axis gyro sensor 31 of the 6-axis inertial sensor 21, it integrates it to obtain the angle with respect to the 3 axes indicating the attitude of the global coordinate system. Output.
  • the global coordinate transformation unit 52 converts xyz axes of the sensor coordinate system supplied from the 3-axis acceleration sensor 32 of the 6-axis inertial sensor 21 based on angle information indicating the attitude of the global coordinate system obtained by the attitude calculation unit 51 .
  • the acceleration information is converted into the acceleration information of the global coordinate system and output to the velocity calculation unit 53 .
  • the velocity calculation unit 53 calculates and outputs the velocity of the global coordinate system by integrating the acceleration of the global coordinate system.
  • the position calculation unit 54 calculates and outputs the position in the global coordinate system by integrating the speed in the global coordinate system calculated by the speed calculation unit 53 .
  • attitude (angle), velocity, and position of the mobile body on which the inertial navigation system 11 is mounted are detected in the global coordinate system.
  • the range in the vicinity of the starting point Ps that is, the range surrounded by the solid line in FIG. pay attention to
  • the inference parameters obtained by learning are used to infer the attitude, velocity, and position based on the detection results of the 6-axis inertial sensor 21, thereby realizing highly accurate positioning.
  • the parameters for inference are generated by learning based on the motion when the 6-axis inertial sensor 21 is worn by an individual who actually uses motion capture, so that the parameters for inference can be personalized. be done.
  • the configuration is simpler than, for example, a device configuration in which an image captured by a camera is used as a correct label. , it is possible to learn highly accurate parameters for inference.
  • FIG. 3 shows the appearance of the motion capture system 100 of the present disclosure
  • FIG. 4 is a block diagram explaining functions realized by the motion capture system 100. As shown in FIG.
  • the motion capture system 100 detects the motion (movement) of the user H based on the posture, speed, and position of the torso, head, and limbs of the human body of the user H.
  • the motion capture system 100 is composed of an electronic device 101 and sensor units 102-1 to 102-6.
  • the electronic device 101 is, for example, a portable information processing device such as a smart phone, and is configured to communicate with each of the sensor units 102-1 to 102-6 by wire or by wireless such as Bluetooth (registered trademark) or WiFi. It is said that
  • Electronic device 101 acquires sensor values, which are the detection results of sensors 102-1 to 102-6, respectively, calculates the attitude, velocity, and position of each of sensors 102-1 to 102-6.
  • sensor values which are the detection results of sensors 102-1 to 102-6, respectively, calculates the attitude, velocity, and position of each of sensors 102-1 to 102-6.
  • learn inference parameters for inferring velocity and position.
  • the electronic device 101 uses the learned parameters for inference to output inference results of the orientation, speed, and position based on the sensor values of the sensor units 102-1 to 102-6.
  • the sensor units 102-1 to 102-6 have a configuration corresponding to the 6-axis inertial sensor 21 in FIG. It is fixed, detects triaxial angular velocities and triaxial accelerations at respective positions, and supplies them to the electronic device 101 .
  • electronic device 101 uses the learned inference parameters based on the sensor values of sensor units 102-1 to 102-6 to determine the global coordinates of sensor units 102-1 to 102-6. Infer poses, velocities, and positions in the system.
  • the electronic device 101 uses the position of the sensor unit 102-1 fixed to the body of the user H as a reference, Sensor unit 102-2 fixed to the head, sensor units 102-3 and 102-4 fixed to the right and left wrists, and sensor units 102-5 and 102-6 fixed to the right and left ankles are relative to each other. Detects the relative velocity and position as user H's motion.
  • the sensor unit 102-1 fixed to the body and the electronic device 101 are configured separately, but they may be integrated as a smart phone, for example.
  • the sensor units 102-2 to 102-6 may also be configured by, for example, smart headsets, smart watches (for ankles, smart anklets), etc., each of which is integrated with a configuration corresponding to the electronic device 101. good.
  • the sensor units 102-1 to 102-6 are simply referred to as the sensor unit 102 when there is no particular need to distinguish them, and the same applies to other configurations.
  • the sensor unit 102 includes a control unit 171, a gyro sensor 172, an acceleration sensor 173, an RTC (Real Time Clock) 174, and a communication unit 175.
  • a control unit 171 a gyro sensor 172, an acceleration sensor 173, an RTC (Real Time Clock) 174, and a communication unit 175.
  • the control unit 171 is composed of a processor and memory, operates based on various data and programs, and controls the overall operation of the sensor unit 102 .
  • the gyro sensor 172 has a configuration corresponding to the 3-axis gyro sensor 31 in FIG.
  • the acceleration sensor 173 has a configuration corresponding to the 3-axis acceleration sensor 32 in FIG.
  • the RTC (Real Time Clock) 174 generates time information (time stamp) and outputs it to the control unit 171 .
  • the control unit 171 associates the three-axis angular velocity of the sensor coordinate system supplied from the gyro sensor 172, the three-axis acceleration of the sensor coordinate system supplied from the acceleration sensor 173, and the time information supplied from the RTC 174, respectively. , controls the communication unit 175 and transmits to the electronic device 101 .
  • the communication units 175 and 122 exchange data and programs with each other through wired communication or wireless communication such as Bluetooth (registered trademark) or wireless LAN.
  • the three arrows extending from left to right in the drawing connecting between the communication units 175 and 122 in the electronic device 101 and the sensor unit 102 and between the front and rear of the communication units represent the three axes of the sensor coordinate system from above. It expresses the path to which the angular velocity of the direction, the acceleration in the three-axis directions of the sensor coordinate system, and the time information (time stamp) are supplied.
  • the communication units 175 and 122 can communicate with each other, and although the directions of the arrows are not shown, communication from the communication unit 122 to the communication unit 175 is also possible.
  • the electronic device 101 is composed of a control section 121 , a communication section 122 , an output section 123 and an input section 124 .
  • the control unit 121 is composed of a processor and memory, operates based on various data and programs, and controls the overall operation of the electronic device 101 by executing various data and programs.
  • control unit 121 controls the communication unit 122 to obtain three-axis angular velocities and three-axis accelerations in the sensor coordinate system supplied from the sensor unit 102, as well as corresponding time information of detection results ( time stamp).
  • the control unit 121 determines the attitude of the sensor unit 102 based on the acquired angular velocity of the three axes and the acceleration of the three axes of the sensor coordinate system supplied from the sensor unit 102 and the time information (time stamp) of the corresponding detection result. , velocity, and position.
  • control unit 121 sets at least one of the calculated result of the orientation, velocity, and position of the sensor unit 102 as a learning label that is a correct label, and uses the three-axis angular velocity and the three-axis angular velocity supplied from the sensor unit 102 as learning labels.
  • inference parameters for inferring the orientation, velocity, and position of the sensor unit 102 are learned by machine learning such as a neural network.
  • control unit 121 infers the attitude, velocity, and position of the sensor unit 102 from the parameters for inference that are learning results, and the three-axis angular velocity and the three-axis acceleration supplied from the sensor unit 102. Then, the inference result is output by controlling the output unit 123 consisting of a display and a speaker, and presented to the user.
  • control unit 121 stops learning the inference parameters when the triaxial angular velocities and triaxial accelerations supplied from the sensor unit 102 that do not satisfy the predetermined accuracy are supplied during learning.
  • control unit 121 uses only the three-axis angular velocities and the three-axis accelerations supplied from the sensor unit 102 with a small error and a predetermined accuracy or higher within the range surrounded by the solid lines in FIG. Learn parameters for inference.
  • the attitude, velocity, and position of the sensor unit 102 can be inferred with high accuracy based on the inference parameters obtained by learning and the input of the three-axis angular velocity and the three-axis acceleration supplied from the sensor unit 102. becomes possible.
  • the output unit 123 is configured to indicate that fact.
  • the input unit 124 consisting of a keyboard, operation buttons, etc. is operated to instruct not to be used for learning, learning is continued and it is determined that it is not to be used for learning. Learning may be stopped when instructed.
  • the control unit 121 includes a posture calculation unit 151 , a speed calculation unit 152 , a position calculation unit 153 , a label input availability determination unit 154 , a learning device 155 , a learning recording unit 156 and an inference device 157 .
  • the orientation calculation unit 151 has a configuration corresponding to the orientation calculation unit 51 in FIG.
  • the angular velocities of the three axes are integrated to obtain an angle indicating the orientation of the global coordinate system indicating the orientation of the sensor unit 102 , and the obtained angle is output to the speed calculation unit 152 and the label input availability determination unit 154 .
  • the posture calculation unit 151 resets the posture based on the three-axis acceleration when it is determined that there is no movement. That is, when it is determined that there is no movement, only the gravitational acceleration is substantially detected as the three-axis acceleration, so the orientation calculation unit 151 resets the orientation based on this gravitational acceleration.
  • the velocity calculator 152 has a configuration corresponding to the velocity calculator 53 in FIG.
  • the three-axis acceleration of the sensor coordinate system is converted into the information of the global coordinate system.
  • the velocity calculation unit 152 obtains the velocity of the global coordinate system of the sensor unit 102 by integrating the three-axis acceleration of the global coordinate system of the sensor unit 102, and calculates the velocity of the global coordinate system of the sensor unit 102. 154.
  • the position calculation unit 153 When the position calculation unit 153 acquires the speed information in the global coordinate system supplied from the speed calculation unit 152 and the corresponding time information, the position calculation unit 153 integrates the speed in the global coordinate system to obtain the position of the sensor unit 102 in the global coordinate system. The (coordinates of) is obtained and output to the label input availability determination unit 154 .
  • the label input propriety determination unit 154 receives the angle information indicating the orientation supplied from the orientation calculation unit 151, the speed information supplied from the speed calculation unit 152, the position information supplied from the position calculation unit 153, and Acquiring the corresponding time information, the three-axis angular velocity and the three-axis acceleration of the sensor coordinate system supplied from the sensor unit 102, the attitude, velocity, and position are obtained with a predetermined accuracy that can be used for learning parameters for inference. It is determined whether the information can be input as a label for learning based on whether the information is more accurate than the information.
  • the information on the attitude, velocity, and position that is more accurate than the predetermined accuracy that can be used for learning is, for example, information with a relatively small accumulated error within the range surrounded by the solid line in FIG.
  • the information on the attitude, velocity, and position with accuracy higher than a predetermined accuracy that can be used for learning is, for example, when an attitude determination flag that is set to on when the attitude is reset is turned on.
  • attitude, velocity, and position information in which the elapsed time since setting is not longer than a predetermined time, and in which relatively no errors have been cumulatively accumulated.
  • the attitude determination flag is a flag that is turned on when the attitude is reset. Therefore, the orientation, velocity, and position information obtained based on the triaxial angular velocities and triaxial accelerations supplied from the sensor unit 102 becomes more pronounced as the elapsed time after the orientation determination flag is turned on increases. Accumulation of error accumulates, and accuracy declines.
  • attitude decision flag is set to off when it is considered to be in a good state.
  • the label input propriety determination unit 154 controls the learning device 155 to obtain a predetermined number (for example, N ) data and time information are used as labels that are correct answers in learning, and machine learning is executed with input of 3-axis angular velocity and 3-axis acceleration of the sensor coordinate system supplied from the corresponding sensor unit 102. Inference parameters for inferring the posture, velocity, and position are obtained and recorded in the learning recording unit 156 .
  • the inference unit 157 reads the learned inference parameters stored in the learning recording unit 156, and based on the three-axis angular velocity and the three-axis acceleration of the sensor coordinate system supplied from the sensor unit 102, the sensor unit The posture, velocity, and position of 102 are inferred, and the inference results are output to the output unit 123 and presented to the user.
  • the learning device 155 uses the highly accurate attitude, velocity, and position as labels, and inputs the 3-axis angular velocity and 3-axis acceleration of the sensor coordinate system supplied from the corresponding sensor unit 102. By repeating the machine learning described above, it is possible to store the inference parameters in the learning recording unit 156 .
  • the reasoner 157 infers the attitude, velocity, and position of each of the sensor units 102-1 to 102-6.
  • Information on the relative speed and position of each of the sensor units 102-2 to 102-6 with -1 as the reference position is obtained as the motion of the user H, and output to the output unit 123 for presentation.
  • the sensor units 102-1 to 102-6 are fixed to the body, head, right and left wrists, and right and left ankles of the user H, and are capable of detecting minute movements of each. For example, it is possible to learn more accurately than learning parameters for inference using images captured by a camera as correct labels. It becomes possible.
  • the sensor unit 102 When the learning process is performed in the electronic device 101, the sensor unit 102 outputs three-axis angular velocities of the sensor coordinate system detected by the gyro sensor 172 and sensor system angular velocities detected by the acceleration sensor 173 at predetermined time intervals. It is assumed that the acceleration of the three axes of the coordinate system is continuously supplied via the communication unit 175 in association with the time information (time stamp) output from the RTC 174 at each detection timing.
  • the electronic device 101 receives 3-axis angular velocities and 3-axis angular velocities of the sensor coordinate system to which time information (time stamps) are sequentially attached from the sensor units 102-1 to 102-6 via the communication unit 122. It is assumed that acceleration information is continuously acquired at predetermined time intervals.
  • the information on the triaxial angular velocities and triaxial accelerations in the sensor coordinate system supplied from the sensor unit 102 will also be simply referred to as sensor values.
  • the attitude determination flag is turned on, and the elapsed time since the start of movement is 0.
  • the learning of the inference parameters of one sensor unit 102 will be described, but in reality, the electronic device 101 learns the inference parameters of the sensor units 102-1 to 102-6.
  • the learning process is running in parallel.
  • the learning processing of each of the sensor units 102-1 to 102-6 is basically the same, only the processing for one sensor unit 102 will be explained.
  • step S11 the control unit 121 controls the communication unit 122 to acquire a predetermined number of sensor values supplied from the sensor unit 102 as samples, and obtains necessary information for each of the acquired sensor values for posture calculation. It is supplied to the unit 151 , the speed calculation unit 152 , the position calculation unit 153 , the label input availability determination unit 154 , the learning device 155 and the inference device 157 .
  • the communication unit 122 transmits the angular velocities and accelerations of the three axes among the sensor values to the learning device 155, and transmits the angular velocities and accelerations of the three axes and the corresponding time information (time stamp) to the attitude calculation unit 151 and the label input possibility determination unit. 154, the three-axis acceleration and the corresponding time information (time stamp) are supplied to the speed calculation unit 152 and the time information (time stamp) to the position calculation unit 153, respectively.
  • step S12 the orientation calculation unit 151, the speed calculation unit 152, and the position calculation unit 153 calculate the orientation, speed, and position of the sensor unit 102 corresponding to the sensor values.
  • the orientation calculation unit 151 integrates the angular velocities of the three axes of the sensor coordinate system, calculates angles indicating the orientation of the three axes of the global coordinate system of the sensor unit 102, and calculates the time information (time stamp). It is output to the speed calculation unit 152 and the label input availability determination unit 154 in association with each other.
  • the velocity calculation unit 152 converts the three-axis acceleration of the sensor system coordinate system into the three-axis acceleration of the global coordinate system based on the attitude information of the global coordinate system supplied from the attitude calculation unit 151, By doing so, the velocity of the global coordinate system is calculated and output to the position calculation unit 153 and the label input availability determination unit 154 in association with the time information (time stamp).
  • the position calculation unit 153 calculates the position of the global coordinate system by integrating the speed information of the global coordinate system, and outputs it to the label input possibility determination unit 154 in association with the time information (time stamp).
  • step S13 the label input availability determination unit 154 determines whether the sensor unit 102 is moving by comparing the position information supplied from the position calculation unit 153 and the position information supplied immediately before. do. Note that the presence or absence of movement may be determined based on speed information calculated by the speed calculator 152 .
  • step S13 If it is determined in step S13 that the object is moving, the process proceeds to step S14.
  • step S14 the label input availability determination unit 154 determines whether or not the posture determination flag is on.
  • the process proceeds to step S15.
  • step S14 if the attitude determination flag is off, the process proceeds to step S19.
  • step S15 the label input propriety determination unit 154 adds the elapsed time from the timing at which the sensor value was acquired immediately before as the movement time.
  • step S16 the label input availability determination unit 154 determines whether or not a predetermined time has passed since the start of movement.
  • the predetermined time is the elapsed time from the start of movement at which it is considered that the position information obtained by repeated integration from the start of movement accumulates errors and the predetermined accuracy cannot be satisfied. A few seconds.
  • step S16 If it is determined in step S16 that the predetermined time has not passed since the start of movement, that is, the elapsed time from the start of movement exceeds the predetermined time, and the position information obtained by repeated integration does not satisfy the predetermined accuracy. If it is determined that the information is appropriate as a learning label, the process proceeds to step S17.
  • step S ⁇ b>17 the label input propriety determination unit 154 regards the position information calculated by the position calculation unit 153 as information suitable for the learning label and outputs it to the learning device 155 .
  • the learning device 155 uses the information on the position of the sensor unit 102 supplied from the label input propriety determination unit 154 as a learning label, and uses the sensor values of the sensor unit 102, ie, the three-axis acceleration and the three-axis acceleration of the sensor coordinate system. Execute machine learning with the angular velocity of the shaft as an input to calculate parameters for inference.
  • step S18 the learning device 155 updates the inference parameters recorded in the learning recording unit 156 with the inference parameters calculated by machine learning.
  • step S19 the control unit 121 determines whether or not an instruction to end the processing has been given by operating the input unit 124 or the like. If it is determined in step S19 that the end of the process has not been instructed, the process returns to step S11.
  • step S19 if the end of the process is instructed, the process ends.
  • step S13 determines whether it has moved. If it is determined in step S13 that it has not moved, the process proceeds to step S21.
  • step S21 the posture calculation unit 151 resets the posture based on the acceleration of the three axes, which are sensor values.
  • the acceleration is only the gravitational acceleration, so of the angles that indicate the attitude, the roll and pitch are reset, but the yaw is not reset.
  • step S22 the label input enable/disable determining unit 154 sets the posture determination flag to ON.
  • step S23 the speed calculator 152 resets the speed to 0. Also, at this time, the label input propriety determination unit 154 resets the travel time to 0, and the process proceeds to step S19.
  • step S16 if it is determined that a predetermined time has passed since the start of movement, that is, if a predetermined time has passed since the start of movement, there is a risk that the position information obtained by integration will include an error of a predetermined value or more. , the process proceeds to step S20.
  • step S20 the label input availability determination unit 154 turns off the posture determination flag so that machine learning based on the position information calculated by the position calculation unit 153 is not performed, and the process proceeds to step S23.
  • the sensor values of the sensor unit 102 are sequentially input as the sensor moves, and the parameters for inference are obtained by machine learning using position information obtained based on the sensor values as labels. The process of updating with the inference parameters is repeated.
  • the attitude determination flag is turned off and learning is stopped.
  • the inference parameters corresponding to the actions of the user H are obtained by learning, and the inference parameters for the individual can be realized. As a result, it is possible to obtain inference parameters that reflect the peculiar habits of the user H who wears the sensor unit 102 .
  • the inference parameters specialized for the actions of the user H wearing the sensor unit 102 in other words, personalized, can be obtained by learning, so that the user H can learn the inference parameters. It becomes possible to detect the position when the part 102 is worn with higher accuracy.
  • parameters for inference using sensor values as inputs are obtained by machine learning. It is possible to learn inference parameters for personalizing and inferring at least one of the position information, velocity information, and posture information obtained from the information with high accuracy.
  • processing for learning inference parameters for inferring the orientation, velocity, and position of sensor unit 102 based on the learning labels and sensor values is executed by learning device 155 of control unit 121 in electronic device 101.
  • learning device 155 of control unit 121 may be executed by other configurations, for example, by a server on a network or by cloud computing.
  • steps S31 to S39 and S42 to S45 in the flowchart of FIG. 7 are the same as steps S11 to S23 in the flowchart of FIG. 6, so description thereof will be omitted.
  • step S40 it is determined that the robot is moving, it is determined that the attitude determination flag is ON, and furthermore, it is considered that a predetermined time has passed since the start of movement, and the movement time is added. Then, the process proceeds to step S40.
  • step S40 the label input propriety determination unit 154 controls the output unit 123 to indicate that a predetermined time has passed since the start of movement, and there is a possibility that the accuracy of the position obtained by the position calculation unit 153 has decreased. An image is displayed that warns of this and inquires whether or not to stop learning using the position as a label.
  • step S41 the label input propriety determination unit 154 determines whether or not the input unit 124 has been operated within a predetermined period of time after displaying the warning and inquiry images to instruct not to continue learning using the position as a label. judge.
  • step S41 if the input unit 124 is operated within a predetermined period of time after the warning and inquiry images are displayed, and no instruction is given not to continue the learning using the position as the label, the learning using the position as the label is not continued. It is assumed that it is accepted, and the process proceeds to step S37. That is, in this case, learning of inference parameters is continued.
  • step S41 if the input unit 124 is operated within a predetermined period of time after the warning and inquiry images are displayed to instruct not to continue the learning using the position as the label, then the learning using the position as the label is instructed. is not continued, and the process proceeds to step S42.
  • the learning of the inference parameters is stopped, and the posture determination flag is set to OFF.
  • angle information indicating the orientation of the sensor unit 102 is degraded when the orientation changes by a predetermined angle or more, regardless of the elapsed time from the start of movement. More specifically, it is known that accuracy degrades when pose changes exceed 360 degrees.
  • steps S61 to S65 and S67 to S73 in the flow chart of FIG. 8 is the same as the processing of steps S11 to S15 and steps S17 to S23 in the flow chart of FIG. 6, so description thereof will be omitted.
  • step S66 when it is determined by the processing of steps S61 to S65 that it is moving, it is determined that the posture determination flag is ON, and the movement time is added, the processing proceeds to step S66.
  • step S66 the label input availability determination unit 154 determines whether or not the posture change calculated by the posture calculation unit 151 is within 360 degrees.
  • step S66 If it is determined in step S66 that the change in posture calculated by the posture calculation unit 151 is within 360 degrees, the posture calculated by the posture calculation unit 151 is considered to have no error, and the process proceeds to step S67. move on. That is, in this case, learning of inference parameters is continued.
  • step S66 determines whether the change in posture obtained by the posture calculation unit 151 is not within 360 degrees. If it is determined in step S66 that the change in posture obtained by the posture calculation unit 151 is not within 360 degrees, it is assumed that the posture information calculated by the posture calculation unit 151 has decreased accuracy. Then, the process proceeds to step S70.
  • the learning of the inference parameters is stopped, and the posture determination flag is set to OFF.
  • step S91 the reasoner 157 acquires, as samples, sensor values consisting of three-axis angular velocities and three-axis accelerations in the sensor coordinate system supplied from a predetermined number (N) of sensor units 102.
  • step S92 the inference unit 157 reads the inference parameters stored in the learning recording unit 156, and based on the three-axis angular velocity and the three-axis acceleration of the sensor coordinate system supplied from the sensor unit 102, the sensor The pose, velocity and position of the global coordinate system of unit 102 are inferred.
  • step S93 the reasoner 157 outputs the inferred orientation, velocity, and position of the global coordinate system of the sensor unit 102 to the output unit 123 and presents them to the user.
  • step S94 the control unit 121 determines whether or not the input unit 124 is operated to give an instruction to end the process. The subsequent processing is repeated.
  • step S94 when the input unit 124 is operated to instruct the end, the process ends.
  • the attitude of the global coordinate system based on the three-axis angular velocity and the three-axis acceleration of the sensor coordinate system supplied from the sensor unit 102, Since the velocity and position are inferred, it is possible to infer the pose, velocity and position of the global coordinate system with high accuracy.
  • the reasoner 157 After inferring the pose, velocity, and position of the global coordinate system of each of the sensor units 102-1 through 102-6, Sensor unit 102-2 fixed to the head, sensor units 102-3 and 102-4 fixed to the left and right wrists, and sensor units 102-3 and 102-4 fixed to the right and left ankles, based on the position of the sensor unit 102-1.
  • the relative velocities and positions of the sensors 102-5 and 102-6 are calculated and presented to the output unit 123.
  • the inference parameters obtained by reflecting the motion of the user H are used, the relative posture, velocity, and position of the head, right and left wrists, and right and left ankles with respect to the torso are used. It becomes possible to personalize and realize motion sensing.
  • step S101 the reasoner 157 acquires, as samples, sensor values consisting of three-axis angular velocities and three-axis accelerations in the sensor coordinate system supplied from a predetermined number (N) of sensor units 102.
  • step S102 the inference unit 157 reads the inference parameters learned using the labels of the sensor coordinate system stored in the learning recording unit 156, , and three-axis acceleration, the velocity and position of the sensor coordinate system of the sensor unit 102 are inferred.
  • step S ⁇ b>103 the reasoner 157 calculates the attitude based on the angular velocities of the three axes of the sensor coordinate system supplied from the sensor unit 102 .
  • the inference unit 157 basically calculates the orientation of the global coordinate system of the sensor unit 102 by the same method as the processing in the orientation calculation unit 151 .
  • step S104 the reasoner 157 converts the inferred velocity and position of the sensor coordinate system of the sensor unit 102 into velocity and position of the global coordinate system according to the attitude.
  • step S105 the reasoner 157 outputs the determined attitude, velocity, and position of the global coordinate system of the sensor unit 102 to the output unit 123 and presents them to the user.
  • step S106 the control unit 121 determines whether or not the input unit 124 is operated to give an instruction to end the process. The subsequent processing is repeated.
  • step S106 when the input unit 124 is operated to instruct the end, the process ends.
  • the inference parameters learned from the highly accurate labels of the sensor coordinate system and the inputs are used to obtain the three-axis angular velocity and the three-axis acceleration of the sensor coordinate system supplied from the sensor unit 102. Since the attitude, velocity, and position of the global coordinate system are inferred, it is possible to infer the attitude, velocity, and position of the global coordinate system with high accuracy.
  • the electronic device 101 among the orientation, velocity, and position obtained based on the sensor values supplied from the sensor unit 102, only those with a predetermined accuracy are used as labels to learn inference parameters. I have explained an example of achieving high-precision motion sensing.
  • each inference parameter is stored in the learning recording unit 156 for each movement pattern classified into a predetermined number in advance, and the user is prompted to perform an action corresponding to the movement classified as an unregistered movement pattern.
  • Inference parameters corresponding to various motion patterns may be learned and registered in the learning recording unit 156 .
  • the parameters for inference are stored in the learning recording unit 156 for each movement pattern classified in advance into a predetermined number, and the user is prompted to perform a corresponding operation for the movement patterns in which the parameters for inference are not registered.
  • the configuration of the electronic device 101 that can learn the inference parameters corresponding to various motion patterns and register them in the learning recording unit 156 is shown.
  • Electronic device 101 of FIG. 11 differs from electronic device 101 of FIG. 181 is provided.
  • the learning recording unit 182 has the same basic function as the learning recording unit 156, but registered inference parameters are registered for each of a plurality of pre-registered motion patterns.
  • the inference device 183 basically has the same function as the inference device 157, but reads the inference parameters from the learning recording unit 182, infers the posture, velocity, and position based on the sensor values, and outputs them to the output unit 123. present it.
  • the motion pattern requesting unit 181 includes a motion pattern storage unit 181a that stores a plurality of types of motion patterns set in advance. , to search for inference parameters corresponding to unregistered motion patterns and insufficiently learned inference parameters.
  • the insufficiently learned inference parameter here is, for example, an inference parameter for a motion pattern that has been learned less than a predetermined number of times.
  • the motion pattern requesting unit 181 controls the output unit 123 to present information for prompting the user to perform a corresponding action in order to learn the inference parameters of the searched motion pattern, and instructs the user to perform the corresponding action. After requesting, it learns parameters for inference of corresponding motion patterns.
  • the motion pattern requesting unit 181 instructs the user to perform, for example, a motion of taking a predetermined pose, a motion of raising an arm, a motion of raising a leg, a motion of kicking a ball, a motion of hitting a ball with a racket, etc., according to the motion pattern.
  • steps S113 to S118 and S121 to S125 in the flowchart of FIG. 12 is the same as the processing of steps S11 to S16 and steps S19 to S23 in the flowchart of FIG. 6, so description thereof will be omitted.
  • step S111 the motion pattern requesting unit 181 accesses the learning recording unit 182, and out of the inference parameters corresponding to the motion patterns registered in advance in the motion pattern storage unit 181a, unregistered motion parameters and learning parameters. search parameters for inference of motion parameters with insufficient motion parameters.
  • step S112 the motion pattern requesting unit 181 controls the output unit 123 to display an image prompting the user to perform a motion corresponding to the inference parameters of the searched unregistered motion pattern or insufficiently learned motion pattern. and ask them to do the corresponding action.
  • step S ⁇ b>119 the label input propriety determination unit 154 regards the speed information calculated by the speed calculation unit 152 as information suitable for the learning label and outputs it to the learning device 155 .
  • the learning device 155 uses the velocity information of the sensor unit 102 supplied from the label input propriety determination unit 154 as a label, and the acceleration and angular velocity of the sensor coordinate system, which are the sensor values of the sensor unit 102, as inputs. Execute learning and calculate inference parameters.
  • step S120 the learning device 155 updates the inference parameters recorded in the learning recording unit 182 with the inference parameters calculated by machine learning.
  • the motion pattern requesting unit 181 registers the newly updated inference parameters in association with the corresponding motion pattern information.
  • the inference parameters corresponding to the preset motion pattern are learned and registered in the learning recording unit 182.
  • Highly accurate motion sensing can be achieved based on attitude, velocity, and position.
  • camera shake correction of an imaging device may be realized according to motion detected by motion sensing.
  • the more the specific subject is imaged the more the inference parameter learning accuracy improves, making it possible to infer the attitude, speed, and position of the imaging device with high accuracy when imaging the specific subject. Therefore, based on the inference result, it is possible to realize more accurate camera shake correction.
  • the learning of the parameters for inference during shooting in a state where the constraint condition is that the user is still for example, the learning of the parameters for inference is performed with only posture change as the correct label. You may do so.
  • each inference parameter may be learned in association with the position of the center of gravity of the imaging device that changes when the lens is replaced.
  • attitude, velocity, and position used as labels are considered to be less than the specified accuracy and contain errors, and the attitude decision flag is turned off, then there is no movement, and the attitude is is not reset, and the attitude determination flag remains off, so learning cannot be continued.
  • the speed is measured using, for example, GNSS (Global Navigation Satellite System) within a predetermined period of time at the beginning, and the measured speed is used thereafter. It may also be used in
  • the posture, velocity, and position calculated by the posture calculation unit 151, the speed calculation unit 152, and the position calculation unit 153 are calculated by integration. As a result, only information from the start of the motion until a predetermined time has passed or information until the change in posture becomes large to some extent could be used for learning as a label.
  • the posture could not be reset until it was in a stationary state, but in the case of repeated motions, especially since the change in velocity is small, errors are not accumulated even if the integration is repeated.
  • FIG. 15 shows that when a user carrying a sensor unit 102 capable of measuring position and speed by GNSS and an electronic device 101 performs a repetitive motion such as walking at a substantially constant speed, measurement is performed using GNSS.
  • This is a configuration example of an electronic device 101 that measures learning of parameters for inference without stopping by using the speed at which the inference is performed.
  • the sensor unit 102 in FIG. 15 differs from the sensor unit 102 in FIG. 5 in that a GNSS receiving unit 201 is newly provided. , a new GNSS calculation unit 211 is provided, and a label input permission determination unit 212 is provided instead of the label input permission determination unit 154 .
  • the GNSS receiving unit 201 receives GNSS signals transmitted from GNSS satellites (not shown) and outputs them to the control unit 171 .
  • Control unit 171 outputs a GNSS signal to electronic device 101 via communication unit 175 in addition to triaxial angular velocity, triaxial acceleration, and time information (time stamp).
  • the communication unit 122 of the electronic device 101 outputs the newly supplied GNSS signal to the GNSS calculation unit 211 .
  • the GNSS calculation unit 211 is a component provided in the control unit 121. Based on the reception result of the signal transmitted from the GNSS satellite received by the GNSS reception unit 201, the GNSS calculation unit 211 calculates the velocity and position, and determines whether the label can be input. Output to unit 212 .
  • the label input propriety determination unit 212 basically has the same function as the label input propriety determination unit 154. In addition, the label input propriety determination unit 212 acquires velocity and position information supplied from the GNSS calculation unit 211 and performs inference. Used for learning parameters for
  • the label input permission/inhibition determination unit 212 determines that even if the movement is continued, if the motion such as walking is performed repeatedly at a substantially constant speed, the error will accumulate after a predetermined time has passed.
  • the absolute attitude of the sensor unit 102 is determined based on the velocity determined by GNSS and the angular velocities of the three axes of the sensor values, and the attitude is reset according to the determined absolute attitude. As a result, it is possible to reset the posture even in a non-stationary state, and to continue learning.
  • step S131 the control unit 121 controls the communication unit 122 to acquire a predetermined number (N) of sensor values supplied from the sensor unit 102 as samples, and among the acquired sensor values,
  • the information is supplied to the orientation calculation unit 151 , the speed calculation unit 152 , the position calculation unit 153 , the label input availability determination unit 212 , the learning device 155 and the inference device 157 .
  • step S132 the orientation calculation unit 151, the speed calculation unit 152, and the position calculation unit 153 calculate the orientation, speed, and position of the sensor unit 102 corresponding to the sensor values.
  • step S ⁇ b>133 the GNSS calculation unit 211 acquires GNSS signals from GNSS satellites (not shown) supplied from the GNSS reception unit 201 of the sensor unit 102 .
  • step S134 the GNSS calculation unit 211 calculates the position and speed of the sensor unit 102 based on the GNSS signals from the GNSS satellites (not shown) received by the GNSS reception unit 201, Output.
  • step S135 the label input enable/disable determining unit 212 determines whether or not a predetermined time has passed since the position and velocity were measured by GNSS.
  • a predetermined time it is determined whether or not the time has elapsed until the position and velocity are obtained with a predetermined accuracy by GNSS. For example, it is determined whether or not a time of about several seconds has elapsed.
  • step S135 If it is determined in step S135 that the predetermined time has not elapsed since the positioning of the position and velocity by GNSS was started, the process proceeds to step S143.
  • step S143 the label input propriety determination unit 212 obtains the absolute orientation of the sensor unit 102 based on the velocity measured by GNSS and the angular velocities of the three axes of the sensor values, and adjusts the orientation based on the obtained absolute orientation. Reset.
  • step S144 the label input availability determination unit 212 sets the posture determination flag to ON.
  • step S145 the label input permission determination unit 212 resets the speed calculated by the speed calculation unit 152 to the speed measured by GNSS. Also, at this time, the label input propriety determination unit 212 resets the travel time to 0, and the process proceeds to step S141.
  • step S141 the control unit 121 determines whether or not an instruction to end the processing has been given by operating the input unit 124 or the like. If it is determined in step S141 that the end of the process has not been instructed, the process returns to step S131.
  • step S141 if the end of the process is instructed, the process ends.
  • step S131 the velocity determined by GNSS is used as the initial value for the velocity calculated by the velocity calculator 152 thereafter.
  • step S135 if it is determined that the predetermined time has passed since the positioning of the position and velocity by GNSS was started, the process proceeds to step S136.
  • step S136 the label input availability determination unit 212 determines whether or not the posture determination flag is on.
  • the processing proceeds to step S137.
  • step S136 if the attitude determination flag is off, the process proceeds to step S141.
  • step S137 the label input propriety determination unit 212 adds the elapsed time from the timing at which the sensor value was obtained immediately before as the movement time.
  • step S138 the label input enable/disable determining unit 212 determines whether or not a predetermined time has passed since the start of movement.
  • step S138 If it is determined in step S138 that the predetermined time has not elapsed since the start of movement, that is, the elapsed time from the start of movement exceeds the predetermined time, and the speed information obtained by repeated integration does not satisfy the predetermined accuracy. , the process proceeds to step S139 if it is determined that the information is suitable for use as a label for learning.
  • step S ⁇ b>139 the label input propriety determination unit 212 regards the speed calculated by the speed calculation unit 152 as information suitable for the learning label and outputs it to the learning device 155 .
  • the learning device 155 performs machine learning using the velocity of the sensor unit 102 supplied from the label input availability determination unit 212 as a label and the acceleration and angular velocity of the sensor coordinate system, which are the sensor values of the sensor unit 102, as inputs. to calculate parameters for inference.
  • step S140 the learning device 155 updates the inference parameters recorded in the learning recording unit 156 with the inference parameters calculated by machine learning.
  • step S138 determines whether the predetermined time has passed since the start of movement. That is, if the predetermined time has passed since the start of movement, there is a possibility that the velocity obtained by integration will include an error of a predetermined value or more. If so, the process proceeds to step S142.
  • step S142 the label input availability determination unit 212 turns off the posture determination flag so that machine learning based on the speed calculated by the speed calculation unit 152 is not performed, and the process proceeds to step S145.
  • the speed calculated by the speed calculation unit 152 based on the sensor value is used as a label for learning.
  • the velocity obtained by the GNSS calculation unit 211 may be used as a learning label.
  • the label may be the velocity obtained by
  • the velocity calculated by the velocity calculator 152 is used as the label.
  • attitude and velocity of the sensor unit 102 obtained by the attitude calculation unit 151, the speed calculation unit 152, and the position calculation unit 153 based on the sensor value of the sensor unit 102 at the timing just a predetermined time ago and the real-time sensor value , and position, inference parameters for predicting the future attitude, velocity, and position for a predetermined period of time based on sensor values may be learned.
  • FIG. 17 is a configuration example of the electronic device 101 that learns inference parameters for predicting the attitude, velocity, and position of a predetermined time in the future.
  • the 17 differs from the electronic device 101 in FIG. 5 in that instead of the label input permission determination unit 154, the learning device 155, and the learning recording unit 156, the label input permission determination unit 251, the learning device 252 and a learning recording unit 253 .
  • the label input propriety determination unit 251 includes a buffer 251a, buffers past sensor values supplied from the sensor unit 102 for a predetermined amount of time, and calculates the attitude calculation unit 151 and speed calculation based on the real-time sensor values.
  • the orientation, velocity, and position of the sensor unit 102 obtained by the unit 152 and the position calculation unit 153, and the past sensor values are supplied to the learning unit 252, and the future orientation of the sensor unit 102, Inference parameters for inferring velocity and position are learned and recorded in the learning recording unit 253 .
  • the inference unit 157 reads out the inference parameters recorded in the learning recording unit 253, and uses the real-time sensor values to infer the future attitude, speed, and position of the sensor unit 102 for a predetermined period of time. can be done.
  • the future attitude, velocity, and position may be inferred and obtained for a period of time corresponding to the transmission delay, for example. Therefore, it is possible to realize camera shake correction in consideration of transmission delay.
  • steps S161, S163 to S168 and steps S173 to S176 are the same as steps S11 to S16 and steps S20 to S23 in the flow chart of FIG. 6, so description thereof will be omitted. .
  • step S161 when the triaxial angular velocity and acceleration, which are sensor values supplied from the sensor unit 102, and the corresponding time information (time stamp) are supplied to the label input possibility determination unit 251, the process proceeds to step Proceed to S162.
  • step S162 the label input propriety determination unit 251 causes the buffer 251a to buffer the triaxial angular velocity and acceleration, which are sensor values, and the corresponding time information (time stamp).
  • step S169 the attitude, speed, and position are calculated by the processing of steps S163 to S168, and it is determined that the robot is moving, the attitude determination flag is on, the movement time is added, and a predetermined time has passed since the start of movement. If it is determined that it has not, the process proceeds to step S169.
  • step S169 the label input propriety determination unit 251 buffers the triaxial angular velocities and accelerations, which are sensor values supplied from the sensor unit 102, and the corresponding time information (time stamps) to the buffer 251a for a predetermined period of time. Determine whether or not
  • step S169 it is determined that the three-axis angular velocity and acceleration, which are the sensor values supplied from the sensor unit 102, and the corresponding time information (time stamp) are buffered in the buffer 251a for a predetermined period of time.
  • step S169 it is determined that the angular velocities and accelerations of the three axes, which are the sensor values supplied from the sensor unit 102 for a predetermined period of time, and the corresponding time information (time stamp) are not buffered in the buffer 251a. In that case, the process proceeds to step S172.
  • step S170 the label input propriety determination unit 251 selects the three-axis angular velocity and acceleration, which are the sensor values supplied from the sensor unit 102 and buffered in the buffer 251a for a predetermined period of time, and the corresponding time information (time stamp) and the position information calculated by the position calculation unit 153 based on the real-time sensor values are regarded as information suitable for the learning label and output to the learning device 252 .
  • the learning device 252 uses the real-time position information of the sensor unit 102 calculated by the position calculation unit 153 as a label, and uses the sensor unit 102 position information of the past sensor unit 102 for a predetermined time supplied from the label input propriety determination unit 251 as a label.
  • Machine learning is performed with the acceleration and angular velocity of the sensor coordinate system, which are the sensor values of , as inputs, and inference parameters for inferring the future position for a predetermined time are calculated.
  • step S171 the learning device 252 updates the inference parameters recorded in the learning recording unit 253 with inference parameters for inferring a future position for a predetermined time calculated by machine learning.
  • the inference parameters for inferring the future position for a predetermined period of time are learned, so it is possible to infer the future position for the predetermined period of time with high accuracy from real-time sensor values.
  • FIG. 19 shows a configuration example of a general-purpose computer.
  • This computer incorporates a CPU (Central Processing Unit) 1001 .
  • An input/output interface 1005 is connected to the CPU 1001 via a bus 1004 .
  • a ROM (Read Only Memory) 1002 and a RAM (Random Access Memory) 1003 are connected to the bus 1004 .
  • the input/output interface 1005 includes an input unit 1006 including input devices such as a keyboard and a mouse for the user to input operation commands, an output unit 1007 for outputting a processing operation screen and images of processing results to a display device, and programs and various data.
  • LAN Local Area Network
  • magnetic discs including flexible discs
  • optical discs including CD-ROM (Compact Disc-Read Only Memory), DVD (Digital Versatile Disc)), magneto-optical discs (including MD (Mini Disc)), or semiconductors
  • a drive 1010 that reads and writes data from a removable storage medium 1011 such as a memory is connected.
  • the CPU 1001 reads a program stored in the ROM 1002 or a removable storage medium 1011 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, installs the program in the storage unit 1008, and loads the RAM 1003 from the storage unit 1008. Various processes are executed according to the program.
  • the RAM 1003 also appropriately stores data necessary for the CPU 1001 to execute various processes.
  • the CPU 1001 loads, for example, a program stored in the storage unit 1008 into the RAM 1003 via the input/output interface 1005 and the bus 1004, and executes the above-described series of programs. is processed.
  • a program executed by the computer (CPU 1001) can be provided by being recorded on a removable storage medium 1011 such as a package medium, for example. Also, the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be installed in the storage section 1008 via the input/output interface 1005 by loading the removable storage medium 1011 into the drive 1010 . Also, the program can be received by the communication unit 1009 and installed in the storage unit 1008 via a wired or wireless transmission medium. In addition, programs can be installed in the ROM 1002 and the storage unit 1008 in advance.
  • the program executed by the computer may be a program that is processed in chronological order according to the order described in this specification, or may be executed in parallel or at a necessary timing such as when a call is made. It may be a program in which processing is performed.
  • CPU 1001 in FIG. 19 implements the functions of the control unit 121 in FIGS. 5, 11, 15, and 17.
  • a system means a set of multiple components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a single device housing a plurality of modules in one housing, are both systems. .
  • the present disclosure can take the configuration of cloud computing in which a single function is shared by multiple devices via a network and processed jointly.
  • each step described in the flowchart above can be executed by a single device, or can be shared by a plurality of devices.
  • one step includes multiple processes
  • the multiple processes included in the one step can be executed by one device or shared by multiple devices.
  • ⁇ 1> a calculation unit that calculates information to be a learning label based on sensor values consisting of angular velocity and acceleration detected by the sensor unit;
  • a learning unit that learns an inference parameter for inferring at least one of the orientation, velocity, and position of the sensor unit based on the information that becomes the learning label calculated by the calculation unit and the sensor value.
  • a learning label supply unit that supplies, to the learning unit, information that becomes the learning label with higher accuracy than a predetermined accuracy among the information that becomes the learning label calculated by the calculating unit;
  • the learning unit calculates the attitude, speed, and position of the sensor unit based on the sensor value and the information that becomes the learning label with accuracy higher than the predetermined accuracy, which is supplied from the learning label supply unit.
  • An information processing device that learns the inference parameters for inferring at least one of ⁇ 2>
  • the calculation unit calculates information to be the learning label by integrating the sensor values,
  • the learning label supply unit if the elapsed time from the start of the integration of the sensor values is within a predetermined time, sets the information to be the learning label calculated by the calculation unit to a value higher than the predetermined accuracy.
  • the information processing device which supplies the learning unit with information that becomes the learning label of accuracy.
  • the calculator a speed calculation unit that calculates the speed of the sensor unit by integrating the acceleration; a position calculation unit that calculates the position of the sensor unit by integrating the velocity, The learning label supply unit If the elapsed time from the start of integration of the acceleration by the speed calculation unit is within a predetermined time, the information on the speed calculated by the speed calculation unit is used as the learning label with higher accuracy than the predetermined accuracy.
  • the learning label supply unit determines whether the speed calculation unit starts integration of the acceleration when the elapsed time exceeds a predetermined time or when the position calculation unit starts integration of the speed.
  • the speed information calculated by the speed calculation unit or the position information calculated by the position calculation unit is higher in accuracy than the predetermined accuracy in the learning
  • the information processing device presenting information that is not label information.
  • the learning label supply unit determines that the speed information calculated by the speed calculation unit or the position information calculated by the position calculation unit is the learning label having a higher accuracy than the predetermined accuracy.
  • ⁇ 7> further comprising an external measurement unit that measures the position and speed of the sensor unit based on an external signal;
  • the learning label supply unit converts the speed information calculated by the speed calculation unit to the speed information measured by the external measurement unit.
  • the information processing apparatus according to ⁇ 6>, wherein the speed is reset, and the elapsed time from the start of integration of the acceleration by the speed calculation unit is reset to zero.
  • GNSS Global Navigation Satellite System
  • the calculator an attitude calculation unit that calculates an angle that is the attitude of the sensor unit by integrating the angular velocity;
  • the learning label supply unit If a change in posture after the start of the integration of the angular velocity by the posture calculation unit does not exceed a predetermined value, the posture information calculated by the posture calculation unit is stored in the learning label with a higher precision than the predetermined precision.
  • the information processing apparatus according to ⁇ 2>, wherein the information is supplied to the learning unit as the information.
  • the learning label supply unit resets the orientation information calculated by the orientation calculation unit with the acceleration of the sensor value.
  • a learning recording unit that stores the inference parameters for each of a plurality of preset motion patterns; further comprising a motion pattern searching unit that searches for an inference parameter for an unregistered motion pattern among the inference parameters stored in the learning recording unit;
  • the motion pattern search unit prompts the user, to whom the sensor unit is installed, to perform a motion corresponding to the unregistered motion pattern when the inference parameter of the unregistered motion pattern is learned by the learning unit.
  • the movement pattern searching unit may select, as the movement corresponding to the unregistered movement pattern, a movement of taking a predetermined pose, a movement of raising an arm, a movement of raising a leg, a movement of kicking a ball, or
  • the information processing apparatus according to ⁇ 11> presenting information prompting the user to perform an action of hitting a ball with a racket.
  • the learning label supply unit further comprising a buffering unit that buffers the sensor value for a predetermined time; Among the information to be the learning label calculated by the calculating unit, information that is to be the current learning label that is higher in accuracy than the predetermined accuracy, and information that is to be the current learning label that is buffered in the buffering unit for a predetermined time in the past supplying the sensor value to the learning unit;
  • the learning unit performs a predetermined
  • the information processing apparatus learning the inference parameter for inferring at least one of the attitude, velocity, and position of the sensor unit in the future by time.
  • ⁇ 14> At least one of the attitude, velocity, and position of the sensor unit based on the sensor value including the angular velocity and the acceleration detected by the sensor unit using the inference parameters learned by the learning unit.
  • the information processing apparatus according to any one of ⁇ 1> to ⁇ 13>, further including an inference device that infers the.
  • the calculation unit calculates information to be the learning label in the global coordinate system based on the sensor value in the sensor coordinate system,
  • the learning unit is supplied from the learning label supply unit, based on the information serving as the learning label in the global coordinate system with accuracy higher than the predetermined accuracy and the sensor value in the sensor coordinate system,
  • the information processing apparatus according to ⁇ 14>, wherein the inference parameter for inferring at least one of the orientation, velocity, and position of the sensor unit in the global coordinate system is learned.
  • the reasoner uses the inference parameters learned by the learning unit to calculate the attitude and velocity of the sensor unit in the global coordinate system based on the sensor values of the sensor unit in the sensor coordinate system. , and position.
  • the information processing device according to ⁇ 15>.
  • the calculation unit calculates information to be the learning label in the sensor coordinate system based on the sensor value in the sensor coordinate system,
  • the learning unit is supplied from the learning label supply unit, based on the information serving as the learning label in the sensor coordinate system with accuracy higher than the predetermined accuracy and the sensor value in the sensor coordinate system,
  • the information processing apparatus learning the inference parameter for inferring at least one of the orientation, velocity, and position of the sensor unit in the sensor coordinate system.
  • the reasoner is calculating the attitude of the global coordinate system based on the sensor values of the sensor unit of the sensor coordinate system; At least one of the velocity and position of the sensor unit in the sensor coordinate system is inferred based on the sensor value of the sensor unit in the sensor coordinate system using the inference parameters learned by the learning unit. , converting at least one of the inferred velocity and position of the sensor unit in the sensor coordinate system into at least one of the velocity and position of the sensor unit in the global coordinate system based on the attitude of the global coordinate system;
  • the information processing apparatus according to ⁇ 17>.
  • a calculation unit the learning department; An information processing method for an information processing device comprising a learning label supply unit, The calculation unit calculates information to be a learning label based on sensor values consisting of angular velocity and acceleration detected by the sensor unit, The learning unit is an inference parameter for inferring at least one of the orientation, speed, and position of the sensor unit based on the information serving as the learning label calculated by the calculation unit and the sensor value.
  • the learning label supply unit supplies, to the learning unit, information to be the learning label with higher accuracy than a predetermined accuracy among the information to be the learning label calculated by the calculation unit;
  • the learning unit calculates the attitude, speed, and position of the sensor unit based on the sensor value and the information that becomes the learning label with accuracy higher than the predetermined accuracy, which is supplied from the learning label supply unit.
  • an information processing method for learning the inference parameters for inferring at least one of ⁇ 20> a calculation unit that calculates information to be a learning label based on sensor values consisting of angular velocity and acceleration detected by the sensor unit;
  • a learning unit that learns an inference parameter for inferring at least one of the orientation, speed, and position of the sensor unit based on the sensor value and the learning label information calculated by the calculation unit.
  • the learning unit calculates the attitude, speed, and position of the sensor unit based on the sensor value and the information that becomes the learning label with accuracy higher than the predetermined accuracy, which is supplied from the learning label supply unit.
  • motion capture system 101 electronic device, 102, 102-1 to 102-6 sensor unit, 121 control unit, 122 communication unit, 123 output unit, 124 input unit, 151 attitude calculation unit, 152 velocity calculation unit, 153 position calculation 154 Label input availability determination unit 155 Learning unit 156 Learning recording unit 157
  • Motion pattern request unit 181a
  • Motion pattern storage unit 201
  • GNSS reception unit 211
  • GNSS calculation unit 212
  • Label input availability determination unit 251 label input availability determination unit, 251a buffer, 252 learning device, 253 learning recording unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Pathology (AREA)
  • Physiology (AREA)
  • Dentistry (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Automation & Control Theory (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Human Computer Interaction (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本開示は、高精度なモーションキャプチャを実現できるようにする情報処理装置、および情報処理方法、並びにプログラムに関する。 センサ部より検出された角速度および加速度が積分されることにより、センサ部の姿勢、速度、および位置が算出される。算出されたセンサ部の姿勢、速度、および位置の少なくともいずれかは、積分により求められるため、時間の経過に伴って精度が低下するので、経過時間が所定時間より短い、誤差が小さな値だけを用いて、センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習させる。モーションキャプチャ装置に適用することができる。

Description

情報処理装置、および情報処理方法、並びにプログラム
 本開示は、情報処理装置、および情報処理方法、並びにプログラムに関し、特に、高精度なモーションキャプチャを実現できるようにした情報処理装置、および情報処理方法、並びにプログラムに関する。
 人の動きを検出するモーションキャプチャ技術が提案されているが、高精度なモーションキャプチャ技術を実現するためには、高精度な位置検出技術が必要とされる。
 高精度な位置検出技術として、例えば、歩行移動量の測定に当たって、測定開始からの経過時間に伴って所定の精度よりも低下した測定結果については利用せず、所定の精度よりも低下するまでの測定結果を利用して移動量を測定する技術が提案されている(特許文献1参照)。
特開2013-210866号公報
 しかしながら、特許文献1に記載の技術においては、測定開始からの経過時間に伴って精度が低下するまでの測定結果を利用するのみであり、所定時間以上経過すると、高精度な測定ができない状態となる。
 また、位置検出を実現させるための学習を事前に行って、高精度に検出することも考えられるが、モーションキャプチャなどで万人が使用しても高精度に検出できるようにするには、膨大な量の学習データが必要とされるため、手間とコストが増大する。
 本開示は、このような状況に鑑みてなされたものであり、特に、簡易な手法で、位置検出の高精度化を図り、高精度なモーションキャプチャを実現できるようにするものである。
 本開示の一側面の情報処理装置、およびプログラムは、センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出する算出部と、前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習する学習部と、前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給する学習ラベル供給部とを備え、前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する情報処理装置、およびプログラムである。
 本開示の一側面の情報処理方法は、算出部と、学習部と、学習ラベル供給部とを備えた情報処理装置の情報処理方法であって、前記算出部は、センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出し、前記学習部は、前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習し、前記学習ラベル供給部は、前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給し、前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する情報処理方法である。
 本開示の一側面においては、センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報が算出され、算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータが学習され、算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報が学習に用いられるように供給され、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータが学習される。
慣性航法装置の構成例を説明する図である。 誤差の累積を説明する図である。 本開示のモーションキャプチャシステムの外観構成を説明する図である。 本開示のモーションキャプチャシステムの構成を説明するブロック図である。 図3,図4の電子機器とセンサ部の第1の実施の形態の構成例を説明する図である。 図5の電子機器による学習処理を説明するフローチャートである。 図5の電子機器による学習処理の第1の変形例を説明するフローチャートである。 図5の電子機器による学習処理の第2の変形例を説明するフローチャートである。 図5の電子機器による推論処理を説明するフローチャートである。 図5の電子機器による推論処理の変形例を説明するフローチャートである。 図3,図4の電子機器の第2の実施の形態の構成例を説明する図である。 図11の電子機器による学習処理を説明するフローチャートである。 静止せずに推論用パラメータの学習を継続する例を説明する図である。 静止せずに推論用パラメータの学習を継続する例を説明する図である。 図3,図4の電子機器の第3の実施の形態の構成例を説明する図である。 図15の電子機器による学習処理を説明するフローチャートである。 図3,図4の電子機器の第4の実施の形態の構成例を説明する図である。 図17の電子機器による学習処理を説明するフローチャートである。 汎用のコンピュータの構成例を示している。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
 1.慣性航法の原理
 2.第1の実施の形態
 3.第2の実施の形態
 4.第3の実施の形態
 5.第4の実施の形態
 6.ソフトウェアにより実行させる例
 <<1.慣性航法の原理>>
 本開示は、特に、位置検出技術の高精度化を図り、高精度なモーションキャプチャを実現できるようにするものである。
 本開示の高精度なモーションキャプチャを実現する技術について説明するに当たって、まず、慣性航法の原理について説明する。
 図1は、一般的な慣性航法装置の構成例を示している。図1の慣性航法装置11は、航空機やドローンなど、様々な移動体に搭載され、3次元空間における移動体の姿勢、速度、および位置を検出するものである。
 尚、ここでいう3次元空間とは、例えば、x軸、y軸、z軸のそれぞれの軸上の座標により空間内の位置を表現可能な空間である。以降においては、3次元空間は、x軸、y軸、z軸の3軸よりなるxyz空間とも称する。
 慣性航法装置11は、6軸慣性センサ21、および信号処理部22を備えている。6軸慣性センサ21は、3次元空間における3軸の角速度、および3軸の加速度を検出して、信号処理部22に出力する。
 信号処理部22は、6軸慣性センサ21より検出される3軸の角速度、および3時鵜kの加速度に基づいて、慣性航法装置11を搭載する移動体の3次元空間における姿勢、速度、および位置を検出する。
 より詳細には、6軸慣性センサ21は、3軸ジャイロセンサ31、および3軸加速度センサ32を備えている。
 3軸ジャイロセンサ31は、センサ座標系のxyz軸のそれぞれの角速度を検出して、信号処理部22に出力する。
 3軸加速度センサ32は、センサ座標系のxyz軸のそれぞれの加速度を検出して、信号処理部22に出力する。
 信号処理部22は、姿勢算出部51、グローバル座標変換部52、速度算出部53、および位置算出部54を備えている。
 姿勢算出部51は、6軸慣性センサ21の3軸ジャイロセンサ31より供給されるセンサ座標系の角速度の情報を取得すると、積分して、グローバル座標系の姿勢を示す3軸に対する角度を求めて出力する。
 グローバル座標変換部52は、姿勢算出部51において求められるグローバル座標系の姿勢を示す角度の情報に基づいて、6軸慣性センサ21の3軸加速度センサ32より供給されるセンサ座標系のxyz軸の加速度の情報を、グローバル座標系の加速度の情報に変換して、速度算出部53に出力する。
 速度算出部53は、グローバル座標系の加速度を積分することにより、グローバル座標系の速度を算出し、出力する。
 位置算出部54は、速度算出部53により算出されたグローバル座標系の速度を積分することにより、グローバル座標系の位置を算出して出力する。
 これにより、慣性航法装置11が搭載された移動体のグローバル座標系の姿勢(角度)、速度、および位置が検出される。
 結果として、運動モデルに依存せず、様々な用途において所定の精度のグローバル座標系における姿勢、速度、および位置を検出することが可能となる。
 <誤差の累積>
 しかしながら、図1を参照して説明した慣性航法装置11を用いた場合、6軸慣性センサ21により検出される3軸の角速度と、3軸の加速度とがそれぞれ積分されて、姿勢、速度、および位置が求められ続けることになるため、誤差が時間の経過と共に累積されてしまう。
 これにより、現実には、図2の実線で示される矢印の経路に沿って、慣性航法装置11を搭載した移動体が起点Psより地点Ptへと移動している場合でも、検出結果は、誤差が累積されることにより、例えば、図2の点線の矢印で示されるような地点Pt’へと移動したかのように検出されてしまう恐れがあり、時間の経過と共に、その誤差が徐々に増大する。
 そこで、本開示においては、起点Psから近傍の範囲、すなわち、図2の実線で囲まれた範囲内における、実線の矢印で示される経路と、点線の矢印で示される経路との誤差が小さな範囲に注目する。
 すなわち、この図2の実線で囲まれた範囲内における、慣性航法により求められる姿勢、速度、および位置の少なくともいずれかを正解ラベルとし、6軸慣性センサ21の検出結果を入力とした機械学習により推論用パラメータを求める。
 そして、学習により求められた推論用パラメータを用いて、6軸慣性センサ21の検出結果に基づいた、姿勢、速度、および位置を推論することで、高精度な測位を実現させる。
 このような高精度な測位技術をモーションキャプチャに適用することで、高精度なモーションキャプチャを実現する。
 また、推論用パラメータは、実際にモーションキャプチャを使用する個人に6軸慣性センサ21を装着させたときの動作に基づいた学習により生成されるようにすることで、推論用パラメータの個人化が図られる。
 これにより、万人が使っても高精度化するような推論用パラメータの学習に必要とされるほどの多くの学習データが不要となり、推論用パラメータの学習を簡易なものとすることができ、より簡易に処理で高精度なモーションキャプチャを実現することが可能となる。
 さらに、モーションキャプチャを使用する個人が、上述した6軸慣性センサ21を装着して使用するのみなので、例えば、カメラで撮像した画像を正解ラベルとして用いるような装置構成よりも、より簡易な構成で、高精度な推論用パラメータの学習が可能となる。
 <<2.第1の実施の形態>>
 <モーションキャプチャシステムの構成例>
 次に、図3,図4を参照して、本開示の技術を適用したモーションキャプチャシステムの構成例について説明する。
 図3は、本開示のモーションキャプチャシステム100の外観を示したものであり、図4は、モーションキャプチャシステム100により実現される機能を説明するブロック図である。
 モーションキャプチャシステム100は、ユーザHである人体の胴部、頭部、および手足のそれぞれの動きを姿勢、速度、および位置に基づいて、ユーザHのモーション(動作)を検出する。
 モーションキャプチャシステム100は、電子機器101、およびセンサ部102-1乃至102-6より構成される。
 電子機器101は、例えば、スマートフォンなどの携帯可能な情報処理装置であり、センサ部102-1乃至102-6のそれぞれと有線またはブルートゥース(登録商標)やWiFi等の無線により相互に通信可能な構成とされている。
 電子機器101は、センサ部102-1乃至102-6のそれぞれの検出結果であるセンサ値を取得して、それぞれの姿勢、速度、および位置を算出し、センサ部102-1乃至102-6のそれぞれのセンサ値と、それぞれの算出された姿勢、速度、および位置の少なくともいずれかとに基づいた機械学習により、センサ部102-1乃至102-6のそれぞれのセンサ値に基づいて、それぞれの姿勢、速度、および位置を推論するための推論用パラメータを学習する。
 また、電子機器101は、学習された推論用パラメータを用いて、センサ部102-1乃至102-6のそれぞれのセンサ値に基づいて、それぞれの姿勢、速度、および位置の推論結果を出力する。
 センサ部102-1乃至102-6は、図1の6軸慣性センサ21に対応する構成であり、ユーザHである人体の胴部、頭部、右左の手首、および右左の足首にバンド等で固定されており、それぞれの位置における3軸の角速度および3軸の加速度を検出し、電子機器101に供給する。
 尚、この例においては、電子機器101は、センサ部102-1乃至102-6のセンサ値に基づいて、学習された推論用パラメータにより、センサ部102-1乃至102-6のそれぞれのグローバル座標系における姿勢、速度、および位置を推論する。
 そして、電子機器101は、推論したセンサ部102-1乃至102-6の姿勢、速度、および位置に基づいて、ユーザHの胴体部に固定されたセンサ部102-1の位置を基準とした、頭部に固定されたセンサ部102-2、右左の手首に固定されたセンサ部102-3,102-4、および右左の足首に固定されたセンサ部102-5,102-6のそれぞれの相対的な速度、および位置を、ユーザHのモーションとして検出する。
 この例においては、胴体部に固定されたセンサ部102-1と電子機器101とは、個別の構成とされているが、例えば、スマートフォンとして一体化した構成とされてもよい。センサ部102-2乃至102-6についても、それぞれが電子機器101に対応する構成と一体化された、例えば、スマートヘッドセットやスマートウォッチ(足首については、スマートアンクレット)等などで構成されてもよい。
 さらに、センサ部102-1乃至102-6について、特に区別する必要がない場合、単にセンサ部102とも称するものとし、他の構成についても同様とする。
 <電子機器およびセンサ部の詳細な構成例>
 次に、図5を参照して、電子機器101、およびセンサ部102の構成例について説明する。
 センサ部102は、制御部171、ジャイロセンサ172、加速度センサ173、RTC(Real Time Clock)174、および通信部175を備えている。
 制御部171は、プロセッサやメモリから構成され、各種のデータやプログラムに基づいて動作し、センサ部102の全体の動作を制御している。
 ジャイロセンサ172は、図1の3軸ジャイロセンサ31に対応する構成であり、センサ部102のセンサ座標系の3軸の角速度を検出し、制御部171に出力する。
 加速度センサ173は、図1の3軸加速度センサ32に対応する構成であり、センサ部102のセンサ座標系の3軸の加速度を検出し、制御部171に出力する。
 RTC(Real Time Clock)174は、時刻情報(タイムスタンプ)を発生して、制御部171に出力する。
 制御部171は、ジャイロセンサ172より供給されるセンサ座標系の3軸の角速度、加速度センサ173より供給されるセンサ座標系の3軸の加速度、およびRTC174より供給される時刻情報をそれぞれ対応付けて、通信部175を制御して、電子機器101に送信する。
 通信部175,122は、有線通信またはブルートゥース(登録商標)や無線LAN等による無線通信により、相互にデータやプログラムを授受する。
 尚、図5において、電子機器101、およびセンサ部102における通信部175,122間と、その前後を結ぶ図中の左から右方向への3本の矢印は、上からセンサ座標系の3軸方向の角速度、センサ座標系の3軸方向の加速度、および時刻情報(タイムスタンプ)がそれぞれ供給される経路を表現している。尚、通信部175,122は、相互通信が可能であり、矢印の向きとしては不図示であるが、通信部122から通信部175に対しての通信も可能である。
 電子機器101は、制御部121、通信部122、出力部123、および入力部124より構成される。
 制御部121は、プロセッサやメモリから構成され、各種のデータやプログラムに基づいて動作し、各種のデータやプログラムを実行することにより、電子機器101の動作の全体を制御している。
 より具体的には、制御部121は、通信部122を制御して、センサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度、並びに対応する検出結果の時刻情報(タイムスタンプ)を取得する。
 制御部121は、取得したセンサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度、並びに対応する検出結果の時刻情報(タイムスタンプ)に基づいて、センサ部102の姿勢、速度、および位置を算出する。
 さらに、制御部121は、算出結果であるセンサ部102の姿勢、速度、および位置の少なくとも何れかを正解ラベルである学習ラベルとし、センサ部102より供給される3軸の角速度、および3軸の加速度を入力として、センサ部102の姿勢、速度、および位置を推論するための推論用パラメータをニューラルネットワークなどの機械学習により学習する。
 そして、制御部121は、学習結果となる推論用パラメータと、センサ部102より供給される3軸の角速度、および3軸の加速度を入力とから、センサ部102の姿勢、速度、および位置を推論し、推論結果をディスプレイやスピーカからなる出力部123を制御して出力し、ユーザに提示する。
 また、制御部121は、学習に際して、所定の精度を満たさないセンサ部102より供給される3軸の角速度、および3軸の加速度が供給されるとき、推論用パラメータの学習を停止する。
 すなわち、制御部121は、図2の実線で囲まれた範囲内の、誤差が小さく、所定の精度以上のセンサ部102より供給される3軸の角速度、および3軸の加速度でのみを用いて推論用パラメータを学習させる。
 結果として、学習により求められる推論用パラメータと、センサ部102より供給される3軸の角速度、および3軸の加速度の入力とにより、センサ部102の姿勢、速度、および位置を高精度の推論することが可能となる。
 尚、後述するが、学習に際して、所定の精度を満たさないセンサ部102より供給される3軸の角速度、および3軸の加速度が供給されるとき、出力部123にその旨が提示されるようにして、学習に用いるか否かを問い合わせて、キーボードや操作ボタンなどからなる入力部124が操作されて、学習に用いられないことが指示されないときには、学習を継続させ、学習に用いられないことが指示されたときには、学習を停止させるようにしてもよい。
 制御部121は、姿勢算出部151、速度算出部152、位置算出部153、ラベル入力可否判定部154、学習器155、学習記録部156、および推論器157を備えている。
 姿勢算出部151は、図1の姿勢算出部51に対応する構成であり、センサ部102より供給されるセンサ座標系の3軸の角速度、および検出結果の時刻情報(タイムスタンプ)を取得すると、3軸の角速度を積分してセンサ部102の姿勢を示すグローバル座標系の姿勢を示す角度を求め、速度算出部152、およびラベル入力可否判定部154に出力する。
 姿勢算出部151は、移動がないと判定されるとき、3軸の加速度に基づいて、姿勢をリセットする。すなわち、移動がないと判定されるとき、3軸の加速度は、実質的に重力加速度のみが検出されることになるので、姿勢算出部151は、この重力加速度に基づいて姿勢をリセットする。
 速度算出部152は、図1の速度算出部53に対応する構成であり、センサ部102より供給されるセンサ座標系の3軸の加速度、および対応する検出結果の時刻情報、並びに、姿勢算出部151より供給されるグローバル座標系の姿勢を示す角度の情報を取得すると、センサ座標系の3軸の加速度をグローバル座標系の情報に変換する。そして、速度算出部152は、センサ部102のグローバル座標系の3軸の加速度を、積分することで、センサ部102のグローバル座標系の速度を求め、位置算出部153、およびラベル入力可否判定部154に出力する。
 位置算出部153は、速度算出部152より供給されるグローバル座標系の速度の情報と、対応する時刻情報を取得すると、グローバル座標系の速度を積分することでセンサ部102のグローバル座標系の位置(の座標)を求めて、ラベル入力可否判定部154に出力する。
 ラベル入力可否判定部154は、姿勢算出部151より供給される姿勢を示す角度の情報、速度算出部152より供給される速度の情報、および位置算出部153より供給される位置の情報、並びに、対応する時刻情報、センサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度を取得すると、姿勢、速度、および位置が、推論用パラメータの学習に用いることができる所定精度よりも高精度の情報であるか否かに基づいて、学習のラベルとして入力できる情報であるか否かを判定する。
 学習に用いることができる所定精度よりも高精度の姿勢、速度、および位置の情報とは、例えば、図2の実線で囲まれた範囲内における、誤差の累積が比較的小さな情報である。
 より具体的には、学習に用いることができる所定精度よりも高精度の姿勢、速度、および位置の情報とは、例えば、姿勢がリセットされたときにオンに設定される姿勢決定フラグが、オンに設定されてからの経過時間が所定時間を超えていない、比較的誤差が累積的に蓄積されていない姿勢、速度、および位置の情報である。
 尚、姿勢決定フラグとは、姿勢がリセットされたときオンにされるフラグである。このため、センサ部102より供給される3軸の角速度および3軸の加速度に基づいて求められる姿勢、速度、および位置の情報は、姿勢決定フラグがオンにされてからの経過時間が長くなるほど、誤差が累積的に蓄積され、精度の低下が進む。
 センサ部102より供給される3軸の角速度および3軸の加速度に基づいて求められる姿勢、速度、および位置の情報の精度の低下が進み、所定の精度を満たさず、学習に用いるのが不適切な状態であるとみなされるとき、姿勢決定フラグはオフに設定される。
 ラベル入力可否判定部154は、学習器155を制御して、学習に用いることができる所定精度よりも高精度の姿勢、速度、および位置であると判定される所定数(例えば、時系列にN個)のデータと時刻情報とを学習における正解であるラベルとし、対応するセンサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度とを入力とした機械学習を実行させて、姿勢、速度、および位置を推論するための推論用パラメータを求めさせて、学習記録部156に記録させる。
 推論器157は、学習記録部156に記憶されている学習済みの推論用パラメータを読み出し、センサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度に基づいて、センサ部102の姿勢、速度、および位置を推論し、推論結果を出力部123に出力して、ユーザに提示する。
 このような構成により、学習器155は、精度の高い姿勢、速度、および位置をラベルとし、対応するセンサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度とを入力とした機械学習を繰り返すことで、推論用パラメータを学習記録部156に記憶させることが可能となる。
 尚、本開示のモーションキャプチャシステム100においては、推論器157は、センサ部102-1乃至102-6のそれぞれの姿勢、速度、および位置を推論すると、さらに、胴体部に固定されたセンサ部102-1を基準位置とした、センサ部102-2乃至102-6それぞれの相対的な速度および位置の情報をユーザHのモーションとして求め、出力部123に出力して提示する。
 この結果、推論用パラメータの学習に際しては、ユーザHの動作の癖などに対応した個人化がなされることにより、より高精度に姿勢、速度、および位置を推論することが可能となる。
 また、センサ部102-1乃至102-6は、ユーザHの胴体部、頭部、右左の手首、および右左の足首に固定されており、それぞれの微小な動きも検出することが可能であるので、例えば、カメラにより撮像された画像を正解ラベルとした推論用パラメータの学習よりも、高精度な学習が可能となり、結果として、微小な動きにも対応した高精度なモーションキャプチャを実現することが可能となる。
 <図5の電子機器による学習処理>
 次に、図6のフローチャートを参照して、図5の電子機器101による学習処理について説明する。
 尚、電子機器101において学習処理がなされるとき、センサ部102からは、所定時間間隔で、ジャイロセンサ172により検出されるセンサ座標系の3軸の角速度と、加速度センサ173により検出されるセンサ系座標系の3軸の加速度とが、それぞれの検出タイミングにおいてRTC174より出力される時刻情報(タイムスタンプ)と対応付けて通信部175を介して供給され続けていることを前提とする。
 換言すれば、電子機器101は、通信部122を介してセンサ部102-1乃至102-6のそれぞれから順次時刻情報(タイムスタンプ)が付されたセンサ座標系の3軸の角速度および3軸の加速度の情報を所定時間間隔で取得し続けていることを前提とする。
 また、以降においては、センサ部102より供給されるセンサ座標系の3軸の角速度および3軸の加速度の情報については、単に、センサ値とも称するものとする。
 さらに、デフォルトとして、最初の処理においては、姿勢決定フラグはオンにされているものとし、また、移動を開始してからの経過時間は0であるものとする。
 また、ここでは、1個のセンサ部102の推論用パラメータの学習について説明するものとするが、実際には、電子機器101は、センサ部102-1乃至102-6のそれぞれの推論用パラメータの学習処理を同時に並行して実行している。ただし、センサ部102-1乃至102-6のそれぞれの学習処理については、基本的に同様であるので、1個のセンサ部102に対する処理のみを説明するものとする。
 ステップS11において、制御部121は、通信部122を制御して、センサ部102より供給される所定数のセンサ値をサンプルとして取得し、取得したセンサ値のうち、それぞれに必要な情報を姿勢算出部151、速度算出部152、位置算出部153、ラベル入力可否判定部154、学習器155、および推論器157に供給させる。
 すなわち、通信部122は、センサ値のうち3軸の角速度および加速度を学習器155に、3軸の角速度および加速度と、対応する時刻情報(タイムスタンプ)を姿勢算出部151およびラベル入力可否判定部154に、3軸の加速度と、対応する時刻情報(タイムスタンプ)を速度算出部152に、時刻情報(タイムスタンプ)を位置算出部153にそれぞれ供給する。
 ステップS12において、姿勢算出部151、速度算出部152、および位置算出部153は、センサ値に対応するセンサ部102の姿勢、速度、および位置を算出する。
 より詳細には、姿勢算出部151は、センサ座標系の3軸の角速度を積分して、センサ部102のグローバル座標系の3軸の姿勢を示す角度を算出し、時刻情報(タイムスタンプ)と対応付けて速度算出部152、およびラベル入力可否判定部154に出力する。
 速度算出部152は、姿勢算出部151より供給されるグローバル座標系の姿勢の情報に基づいて、センサ系座標系の3軸の加速度をグローバル座標系の3軸の加速度に変換し、さらに、積分することにより、グローバル座標系の速度を算出して、時刻情報(タイムスタンプ)と対応付けて位置算出部153、およびラベル入力可否判定部154に出力する。
 位置算出部153は、グローバル座標系の速度の情報を積分することでグローバル座標系の位置を算出し、時刻情報(タイムスタンプ)と対応付けてラベル入力可否判定部154に出力する。
 ステップS13において、ラベル入力可否判定部154は、位置算出部153より供給された位置の情報と、直前に供給された位置の情報との比較により、センサ部102が移動しているか否かを判定する。尚、移動の有無については、速度算出部152により算出された速度の情報に基づいて判定されるようにしてもよい。
 ステップS13において、移動していると判定された場合、処理は、ステップS14に進む。
 ステップS14において、ラベル入力可否判定部154は、姿勢決定フラグがオンであるか否かを判定する。ここでは、最初の処理であるので、オンと判定され、処理は、ステップS15に進む。尚、ステップS14において、姿勢決定フラグがオフである場合、処理は、ステップS19に進む。
 ステップS15において、ラベル入力可否判定部154は、直前にセンサ値が取得されたタイミングからの経過時間を移動時間として加算する。
 ステップS16において、ラベル入力可否判定部154は、移動開始から所定時間が経過したか否かを判定する。ここでいう、所定時間とは、移動開始から繰り返し積分により求められる位置情報に誤差が蓄積されて、所定の精度が満たせない状態となったとみなされる、移動開始からの経過時間であり、例えば、数秒程度である。
 ステップS16において、移動開始から所定時間が経過していないと判定された場合、すなわち、移動開始からの経過時間が所定時間を超えて、繰り返し積分で求められる位置の情報が所定の精度を満たしている、学習のラベルとして適切な情報であるとみなされた場合、処理は、ステップS17に進む。
 ステップS17において、ラベル入力可否判定部154は、位置算出部153により算出された位置の情報を学習ラベルに適した情報とみなして学習器155に出力する。
 これに応じて、学習器155は、ラベル入力可否判定部154より供給されたセンサ部102の位置の情報を学習ラベルとし、センサ部102のセンサ値であるセンサ座標系の3軸の加速度および3軸の角速度を入力とした機械学習を実行し、推論用パラメータを算出する。
 ステップS18において、学習器155は、機械学習により算出された推論用パラメータにより、学習記録部156に記録されている推論用パラメータを更新する。
 ステップS19において、制御部121は、入力部124が操作されるなどして、処理の終了が指示されたか否かを判定する。ステップS19において、処理の終了が指示されていないと判定された場合、処理は、ステップS11に戻る。
 そして、ステップS19において、処理の終了が指示された場合、処理は終了する。
 また、ステップS13において、移動していないとみなされた場合、処理は、ステップS21に進む。
 ステップS21において、姿勢算出部151は、センサ値である3軸の加速度に基づいて、姿勢をリセットする。
 ただし、移動していない場合、加速度は重力加速度のみとなるため、姿勢を示す角度のうち、ロールとピッチはリセットされるが、ヨーについてはリセットがなされない。
 ステップS22において、ラベル入力可否判定部154は、姿勢決定フラグをオンに設定する。
 ステップS23において、速度算出部152は、速度を0にリセットする。また、このとき、ラベル入力可否判定部154は、移動時間を0にリセットし、処理は、ステップS19に進む。
 さらに、ステップS16において、移動開始から所定時間が経過していると判定された場合、すなわち、移動開始から所定時間が経過して、積分により求められる位置情報に所定値以上の誤差が含まれる恐れがあるとみなされた場合、処理は、ステップS20に進む。
 ステップS20において、ラベル入力可否判定部154は、姿勢決定フラグをオフにして、位置算出部153により算出された位置情報に基づいた機械学習がなされないようにして、処理は、ステップS23に進む。
 以上の一連の処理により、移動に伴って順次センサ部102のセンサ値を入力とし、センサ値に基づいて求められる位置情報をラベルとした機械学習により推論用パラメータが求められ、機械学習により求められた推論用パラメータにより更新される処理が繰り返される。
 そして、移動開始からの経過時間に基づいて、繰り返し積分により求められる位置情報が所定の精度を満たさない状態になったとみなされると、姿勢決定フラグがオフにされて、学習が停止される。
 さらに、移動が停止すると姿勢、速度、移動時間がリセットされ、再び移動が開始されると上述の推論用パラメータを算出する機械学習が繰り返される。
 これにより、精度の高い位置情報と、センサ値とが用いられた推論用パラメータの機械学習が繰り返されるので、高精度な推論用パラメータを求めることが可能となり、結果として、高精度なセンサ部102の位置の推論を実現することが可能となる。
 また、以上においては、ユーザHに装着されたセンサ部102のセンサ値を用いた機械学習がなされることにより、ユーザHの動作に対応した推論用パラメータが学習により求められ、推論用パラメータの個人化を実現することができる。これにより、センサ部102を装着したユーザHに固有の癖などを反映させた推論用パラメータを求めることが可能となる。
 結果として、推論用パラメータを学習させる際にセンサ部102を装着したユーザHの動作に特化した、換言すれば、個人化された推論用パラメータを学習により求めることができるので、ユーザHがセンサ部102を装着したときの位置を、より高精度に検出することが可能となる。
 尚、以上においては、位置算出部153により求められた位置情報をラベルとして、センサ値を入力とした機械学習によりセンサ部102の位置情報を求めるための推論用パラメータを学習させる例について説明してきた。
 しかしながら、同様の手法で、センサ部102の位置情報、速度情報、および姿勢情報の少なくともいずれかをラベルとして、センサ値を入力とした推論用パラメータを機械学習で求めることにより、センサ値を入力とした位置情報、速度情報、および姿勢情報の少なくともいずれかを高精度に、個人化して推論する推論用パラメータを学習することが可能となる。
 また、以上においては、推論用パラメータの学習に用いられるラベルとして、グローバル座標系の位置の情報を用いる例について説明してきたが、センサ座標系の位置の情報を学習のラベルとして用いるようにしてもよい。尚、学習のラベルとしてセンサ座標系を用いる点については、位置のみならず、速度であっても同様である。
 さらに、学習ラベルと、センサ値とに基づいて、センサ部102の姿勢、速度、および位置を推論するため推論用パラメータを学習する処理については、電子機器101における制御部121の学習器155において実行される例について説明してきたが、その他の構成により実行されるようにしてもよく、例えば、ネットワーク上のサーバやクラウドコンピューティングにより実行されるようにしてもよい。
 <学習処理の第1の変形例>
 以上においては、移動開始から所定時間が経過した場合には、累積的な誤差により位置算出部153により求められる位置の誤差が大きくなるので、学習器155による位置情報をラベルとした学習を停止して、姿勢決定フラグをオフにする例について説明してきた。しかしながら、位置の精度低下を警告した上で、学習に使用するか否かを問い合わせて、学習に使用しないことが指示されるまでは、学習が継続されるようにしてもよい。
 ここで、図7のフローチャートを参照して、移動開始から所定時間が経過した場合には、位置の精度低下を警告した上で、位置をラベルとした学習を継続するか否かを問い合わせて、学習を継続しないことが指示されるまでは、学習が継続されるようにした学習処理について説明する。
 尚、図7のフローチャートにおけるステップS31乃至S39,S42乃至S45については、図6のフローチャートにおけるステップS11乃至S23と同様であるので、その説明は省略する。
 すなわち、ステップS31乃至S36の処理により、移動していると判定され、姿勢決定フラグがオンであると判定されて、さらに、移動開始から所定時間が経過したとみなされて、移動時間が加算されると、処理は、ステップS40に進む。
 ステップS40において、ラベル入力可否判定部154は、出力部123を制御して、移動開始から所定時間が経過しており、位置算出部153により求められる位置の精度低下が発生している恐れがあることを警告すると共に、位置をラベルとした学習を継続しないようにするか否かを問い合わせる画像を表示する。
 ステップS41において、ラベル入力可否判定部154は、警告と問い合わせの画像を表示してから所定時間内に入力部124が操作されて、位置をラベルとした学習を継続しないことが指示されたか否かを判定する。
 ステップS41において、警告と問い合わせの画像を表示してから所定時間内に入力部124が操作されて、位置をラベルとした学習を継続しないことが指示されない場合、位置をラベルとした学習の継続が容認されているものとみなし、処理は、ステップS37に進む。すなわち、この場合、推論用パラメータの学習が継続される。
 一方、ステップS41において、警告と問い合わせの画像を表示してから所定時間内に入力部124が操作されて、位置をラベルとした学習を継続しないことが指示された場合、位置をラベルとした学習を継続しないことが指示されているものとみなし、処理は、ステップS42に進む。
 すなわち、この場合、推論用パラメータの学習が停止されて、姿勢決定フラグがオフに設定される。
 この処理により、移動開始から所定時間が経過しても、位置の精度低下が警告されるが、学習を継続しないことが指示されるまでは、学習が継続される。
 これにより、位置の変化が比較的小さく、積分が繰り返されることで発生する誤差が小さいことが見込まれる動作などについては、ユーザの判断で学習時間を長くすることができるので、比較的短時間でも推論用パラメータの学習回数を向上させることが可能となる。
 <学習処理の第2の変形例>
 以上においては、移動開始から所定時間が経過した場合でも、位置の精度低下を警告した上で、学習に使用するか否かを問い合わせて、学習に使用しないことが指示されるまでは、学習が継続されるようにする例について説明してきた。
 しかしながら、移動開始からの経過時間によらず、機械学習における入力として使用されるセンサ値の精度低下が発生した場合には、学習を停止させるようにしてもよい。
 例えば、センサ部102の姿勢を示す角度の情報については、所定角度以上の姿勢変化が発生すると、移動開始からの経過時間に関わらず精度の低下が発生することが知られている。より具体的には、姿勢の変化が360度を超えると精度が低下することが知られている。
 そこで、姿勢変化が360度を超えるか否かにより、学習を停止させるようにしてもよい。
 ここで、図8のフローチャートを参照して、姿勢変化が360度以上になった場合には、学習が継続されないようにした学習処理について説明する。
 尚、図8のフローチャートにおけるステップS61乃至S65,S67乃至S73の処理については、図6のフローチャートにおけるステップS11乃至S15、およびステップS17乃至S23の処理と同様であるので、その説明は省略する。
 すなわち、ステップS61乃至S65の処理により、移動していると判定され、姿勢決定フラグがオンであると判定されて、さらに、移動時間が加算されると、処理は、ステップS66に進む。
 ステップS66において、ラベル入力可否判定部154は、姿勢算出部151により算出される姿勢変化が360度以内であるか否かを判定する。
 ステップS66において、姿勢算出部151により求められる姿勢変化が360度以内であると判定された場合、姿勢算出部151により算出される姿勢に誤差はないものとみなされて、処理は、ステップS67に進む。すなわち、この場合、推論用パラメータの学習が継続される。
 一方、ステップS66において、姿勢算出部151により求められる姿勢変化が360度以内ではないと判定された場合、姿勢算出部151により算出された姿勢情報には精度の低下が発生しているものとみなして、処理は、ステップS70に進む。
 すなわち、この場合、推論用パラメータの学習が停止されて、姿勢決定フラグがオフに設定される。
 この処理により、姿勢変化が360度を超えており、姿勢算出部151により算出される姿勢の情報に精度低下が発生しているとみなされた場合には、学習が停止される。これにより、誤差を含む姿勢を用いた推論用パラメータの学習が停止されるので、高精度な推論用パラメータの学習が可能となる。
 尚、上述した移動開始からの経過時間に基づいた学習の停止の判定と、姿勢変化が360度以内であるか否かの判定とを組み合わせるようにしてもよい。
 このように学習のラベルに用いられる情報の精度に応じて学習の停止を判定することで、より高精度な推論用パラメータの学習が可能となる。
 <図5の電子機器による推論処理>
 次に、図9のフローチャートを参照して、上述した学習処理により求められた推論用パラメータを用いた、姿勢、速度、および位置を推論する図5の電子機器101による推論処理について説明する。
 ステップS91において、推論器157は、所定数(N個)のセンサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度からなるセンサ値をサンプルとして取得する。
 ステップS92において、推論器157は、学習記録部156に格納されている推論用パラメータを読み出し、センサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度に基づいて、センサ部102のグローバル座標系の姿勢、速度、および位置を推論する。
 ステップS93において、推論器157は、推論したセンサ部102のグローバル座標系の姿勢、速度、および位置を出力部123に出力して、ユーザに提示する。
 ステップS94において、制御部121は、入力部124が操作されて、処理の終了が指示されたか否かを判定し、終了が指示されていないと判定された場合、処理は、ステップS91に戻り、それ以降の処理が繰り返される。
 そして、ステップS94において、入力部124が操作されて、終了が指示されると、処理が終了する。
 以上の処理により、精度の高いラベルにより学習された推論用パラメータを用いて、センサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度に基づいたグローバル座標系の姿勢、速度、および位置が推論されるので、高精度なグローバル座標系の姿勢、速度、および位置を推論することが可能となる。
 図3乃至図5のモーションキャプチャシステム100においては、推論器157は、センサ部102-1乃至102-6のそれぞれのグローバル座標系の姿勢、速度、および位置を推論すると、さらに、胴体部に固定されたセンサ部102-1の位置を基準とした、頭部に固定されたセンサ部102-2、右左の手首に固定されたセンサ部102-3,102-4、および右左の足首に固定されたセンサ部102-5,102-6のそれぞれの相対的な速度、および位置を求めて出力部123に提示する。
 これにより、ユーザH固有の動作を反映して、胴体部を基準とした頭部、右左の手首、および右左の足首の相対的な姿勢、速度、および位置からなる高精度なモーションセンシングを実現することが可能となる。
 また、ユーザHの動作を反映させて求められた推論用パラメータが用いられるため、胴体部を基準とした頭部、右左の手首、および右左の足首の相対的な姿勢、速度、および位置からなるモーションセンシングを個人化して実現ことが可能となる。
 結果として、頭部、右左の手首、および右左の足首などにマーカを付して、カメラなどにより撮像された画像に基づいたモーションセンシングなどでは実現できない細かい動きをも検出することが可能となるので、例えば、画像からでは確認が難しい微小な手や足のひねりや振動などを含む高精度な動きを検出することが可能となる。
 <推論処理の変形例>
 以上においては、ラベルとなる位置や速度がグローバル座標系である場合に求められる推論用パラメータを用いることで、センサ値からグローバル座標系の位置および速度を求める例について説明してきたが、センサ座標系の位置や速度をラベルとして学習された推論用パラメータを用いて、センサ値より一旦センサ座標系の位置や速度を求めた後、3軸の角速度から求められるグローバル座標系の姿勢情報からグローバル座標系の位置や速度の変換するようにしてもよい。
 ここで、図10のフローチャートを参照して、センサ座標系の位置や速度をラベルとして学習された推論用パラメータを用いて、センサ値より一旦センサ座標系の位置や速度を求めた後、3軸の角速度から求められるグローバル座標系の姿勢情報からグローバル座標系の位置や速度の変換するようにした推論処理の変形例について説明する。
 ステップS101において、推論器157は、所定数(N個)のセンサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度からなるセンサ値をサンプルとして取得する。
 ステップS102において、推論器157は、学習記録部156に格納されているセンサ座標系のラベルを用いて学習された推論用パラメータを読み出し、センサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度からなるセンサ値に基づいて、センサ部102のセンサ座標系の速度、および位置を推論する。
 ステップS103において、推論器157は、センサ部102より供給されるセンサ座標系の3軸の角速度に基づいて、姿勢を算出する。尚、ここで、推論器157は、基本的に姿勢算出部151における処理と同様の手法でセンサ部102のグローバル座標系の姿勢を算出する。
 ステップS104において、推論器157は、推論したセンサ部102のセンサ座標系の速度および位置を、姿勢によりグローバル座標系の速度および位置に変換する。
 ステップS105において、推論器157は、求めたセンサ部102のグローバル座標系の姿勢、速度、および位置を出力部123に出力して、ユーザに提示する。
 ステップS106において、制御部121は、入力部124が操作されて、処理の終了が指示されたか否かを判定し、終了が指示されていないと判定された場合、処理は、ステップS101に戻り、それ以降の処理が繰り返される。
 そして、ステップS106において、入力部124が操作されて、終了が指示されると、処理が終了する。
 以上の処理においても、精度の高いセンサ座標系のラベルや入力により学習された推論用パラメータを用いて、センサ部102より供給されるセンサ座標系の3軸の角速度、および3軸の加速度に基づいたグローバル座標系の姿勢、速度、および位置が推論されるので、高精度なグローバル座標系の姿勢、速度、および位置を推論することが可能となる。
 <<3.第2の実施の形態>>
 以上においては、電子機器101において、センサ部102より供給されるセンサ値に基づいて得られる姿勢、速度、および位置のうち、所定の精度のもののみをラベルとして用いて推論用パラメータを学習させることで、高精度なモーションセンシングを実現させる例について説明してきた。
 しかしながら、所定の精度を備えたラベルは、移動開始から所定時間内である、または、姿勢変化が360度以内であるなど、限定的な条件でしか得られないことが多く、実際に必要とされる様々な動きに対応した推論用パラメータを学習させることができない恐れがある。
 そこで、推論用パラメータのそれぞれを予め所定数に分類された動きパターン毎に学習記録部156に格納させるようにして、未登録の動きパターンに分類される動きに対応した動作をユーザに促すようにして、様々な動きパターンに応じた推論用パラメータを学習させて学習記録部156に登録できるようにしてもよい。
 図11は、推論用パラメータのそれぞれを予め所定数に分類された動きパターン毎に学習記録部156に格納させるようにして、推論用パラメータが未登録の動きパターンについては対応する動作をユーザに促すようにして、様々な動きパターンに応じた推論用パラメータを学習させて学習記録部156に登録できるようにした電子機器101の構成例を示している。
 尚、図11の電子機器101において、図5の電子機器101と同様の機能を備えた構成については、同一の符号を付しており、その説明は適宜省略するものとする。
 図11の電子機器101において、図5の電子機器101と異なる点は、学習記録部156および推論器157に代えて学習記録部182および推論器183を備えており、新たに、動きパターン要請部181を備えた点である。
 学習記録部182は、基本的な機能は学習記録部156と同様であるが、登録される推論用パラメータが、予め登録された複数の動きパターン毎に登録されている。
 推論器183は、基本的に推論器157の機能と同様であるが、推論用パラメータを学習記録部182より読み出し、センサ値に基づいて、姿勢、速度、および位置を推論し、出力部123に提示させる。
 動きパターン要請部181は、予め設定された複数の動きパターンの種別を記憶する動きパターン記憶部181aを備えており、推論用パラメータの学習に際して、学習記録部182に登録された推論用パラメータのうち、未登録の動きパターンに対応する推論用パラメータや、学習が不十分な推論用パラメータを探索する。
 ここでいう学習が不十分な推論用パラメータは、例えば、学習回数が所定回数よりも低い動きパターンの推論用パラメータである。
 動きパターン要請部181は、探索された動きパターンの推論用パラメータを学習させるため、対応する動作をユーザに促す情報を、出力部123を制御して提示して、対応する動作をユーザに対して要請した後、対応する動きパターンの推論用パラメータを学習させる。動きパターン要請部181は、動きパターンに応じて、例えば、所定のポーズをとるような動作、腕を上げるような動作、足を上げる動作、ボールを蹴る動作、ラケットでボールを打つ動作等をユーザに促す情報を提示する。
 <図11の電子機器による学習処理>
 次に、図12のフローチャートを参照して、図11の電子機器101による学習処理を説明する。ここでは、ラベルとして位置算出部153により算出された位置に代えて、速度算出部152により算出された速度をラベルとして推論用パラメータを学習する例について説明する。
 尚、図12のフローチャートにおけるステップS113乃至S118、およびS121乃至S125の処理については、図6のフローチャートにおけるS11乃至S16、およびステップS19乃至S23の処理と同様であるので、その説明は省略する。
 すなわち、ステップS111において、動きパターン要請部181は、学習記録部182にアクセスし、動きパターン記憶部181aに予め登録されている動きパターンに対応する推論用パラメータのうち、未登録の動きパラメータや学習が不十分な動きパラメータの推論用パラメータを探索する。
 ステップS112において、動きパターン要請部181は、出力部123を制御して、探索された未登録の動きパターンや学習が不十分な動きパターンの推論用パラメータに対応する動作をユーザに促す画像を表示させて、対応する動作をするように要請する。
 この処理により、ユーザが対応する動きをすることで、ステップS113乃至S119の処理により、対応する動きパターンの推論用パラメータの学習がなされる。
 ステップS119において、ラベル入力可否判定部154は、速度算出部152により算出された速度情報を学習ラベルに適した情報とみなして学習器155に出力する。
 これに応じて、学習器155は、ラベル入力可否判定部154より供給されたセンサ部102の速度情報をラベルとし、センサ部102のセンサ値であるセンサ座標系の加速度および角速度を入力とした機械学習を実行し、推論用パラメータを算出する。
 そして、ステップS120において、学習器155は、機械学習により算出された推論用パラメータにより、学習記録部182に記録されている推論用パラメータを更新する。この際、動きパターン要請部181は、新たに更新された推論用パラメータを、対応する動きパターンの情報と対応付けて登録する。
 以上の処理により、予め設定された動きパターンに応じた推論用パラメータが学習されて学習記録部182に登録されることになるので、動きパターンに応じた、ユーザHに設置されたセンサ部102の姿勢、速度、および位置に基づいて、高精度のモーションセンシングを実現することが可能となる。
 尚、ここでは、モーションセンシングに適用する例について説明してきたが、モーションセンシングに検出されたモーションに応じて、例えば、撮像装置の手振れ補正を実現するようにしてもよい。
 この場合、動きパターンとして、特定の被写体を繰り返し撮像するような動作を促すようにして、所定の被写体を撮像する際のユーザの手癖に応じた推論用パラメータを学習させることが可能となる。
 結果として、特定の被写体の撮像を繰り返すほど、推論用パラメータの学習精度が向上されることにより、特定の被写体の撮像に際して、高精度に撮像装置の姿勢、速度、および位置を推論することが可能となり、推論結果に基づいて、より高精度な手振れ補正を実現することが可能となる。
 このように高精度な手振れ補正が実現されることにより、例えば、暗い夜間の長時間露光撮影における手振れを高精度に補正することが可能となるので、長時間露光撮影に際しても手振れによる影響が低減された、美しい撮影を実現することができる。
 また、同一の姿勢で、撮像を繰り返すことで、対応する姿勢における推論用パラメータの過学習を実現してもよい。
 さらに、ユーザの意思として、静止しているという制約条件を付した状態における撮影中に推論用パラメータの学習がなされることにより、例えば、姿勢変化のみを正解ラベルとした推論用パラメータの学習がなされるようにしてもよい。
 また、レンズが交換されることで変化する撮像装置の重心位置に対応付けた、それぞれの推論用パラメータが学習されるようにしてもよい。
 さらに、推論処理については、上述した処理と同様であるので、その説明は省略する。
 <<4.第3の実施の形態>>
 以上においては、移動がなく、停止していることが認識されているとき、加速度で姿勢をリセットし、姿勢決定フラグをオンにし、速度および移動時間を0にリセットすることで推論用パラメータの学習を繰り返す例について説明してきた。
 しかしながら、ラベルとして使用する姿勢、速度、および位置が所定精度よりも低下して誤差を含むものとみなされて、姿勢決定フラグがオフにされると、移動がない、停止した状態にならない限り姿勢がリセットされず、また、姿勢決定フラグもオフのままとなるため、学習を継続することができなくなる。
 そこで、歩行などの継続的な動作が繰り返しなされている場合については、初期の所定時間内において、例えば、GNSS(Global Navigation Satellite System)を利用して速度を計測して、計測された速度を以降においても利用するようにしてもよい。
 すなわち、例えば、図13で示されるように、静止状態である第1状態のユーザH-St1が、歩行状態である第2状態のユーザH-St2として移動を開始した場合、ユーザH-St1から第2状態のユーザH-St2に移動を開始した直後において、例えば、GNSSなどを用いて速度V1を求めて、推論用パラメータの学習を開始する。
 その後、第2状態のユーザH-St2と同様の繰り返し動作としての歩行を継続して、第3状態のユーザH-St3となった場合については、例えば、移動を開始してから所定時間が経過しても、初期において求めた速度V1を用いて、推論用パラメータの学習を継続する。
 上述したように、姿勢算出部151、速度算出部152、および位置算出部153により求められる姿勢、速度、および位置については、積分により求められるものであるため、動作時間が継続されるほど精度が低下するため、動作が開始されてから所定時間が経過するまでの情報、または、姿勢変化がある程度大きくなるまでの情報しかラベルとして学習に利用することができなかった。
 このため、静止状態になるまで、姿勢をリセットできなかったが、繰り返し動作の場合、特に、速度の変化が小さいため、積分が繰り返されても誤差が累積されることが少ない。
 そこで、このように、繰り返し動作がなされる場合については、所定時間だけGNSS等で速度を計測し、その後は計測結果となる速度を利用することで、学習を継続させることが可能となる。
 この結果、例えば、図14で示されるように、GNSSによる位置と速度の測位が可能なセンサ部102を備えたユーザH-St11がGNSS衛星191からの情報に基づいて、速度が計測されると、繰り返し動作としての歩行を継続して、ユーザH-St12で示されるように、高層のビル192などに取り囲まれて、センサ部102が、GNSS衛星191からの情報を受信できない状況で、かつ、停止状態とならない状況でも、事前に計測された速度に基づいた学習処理を継続することが可能となる。
 <GNSSを利用したセンサ部と電子機器の構成例>
 図15は、GNSSによる位置と速度の測位が可能なセンサ部102と電子機器101を携帯するユーザが、歩行のようなほぼ一定の速度で繰り返す動作をする場合においては、GNSSを利用して計測される速度を利用して、停止することなく推論用パラメータの学習を計測するようにした電子機器101の構成例である。
 尚、図15の電子機器101およびセンサ部102において、図5の電子機器101およびセンサ部102と同一の機能を備えた構成については、同一の符号を付しており、その説明は適宜省略する。
 すなわち、図15のセンサ部102において、図5のセンサ部102と異なる点は、新たにGNSS受信部201が設けられた点であり、電子機器101において、図5の電子機器101と異なる点は、新たにGNSS算出部211が設けられた点と、ラベル入力可否判定部154に代えて、ラベル入力可否判定部212が設けられた点である。
 GNSS受信部201は、図示せぬGNSS衛星から送信されるGNSS信号を受信して、制御部171に出力する。制御部171は、3軸の角速度、3軸の加速度、および時刻情報(タイムスタンプ)に加えて、GNSS信号を、通信部175を介して電子機器101に出力する。電子機器101の通信部122は、新たに供給されるGNSS信号をGNSS算出部211に出力する。
 GNSS算出部211は、制御部121に設けられた構成であり、GNSS受信部201により受信されたGNSS衛星から送信される信号の受信結果に基づいて、速度および位置を算出してラベル入力可否判定部212に出力する。
 ラベル入力可否判定部212は、基本的には、ラベル入力可否判定部154と同様の機能を備えているが、さらに、GNSS算出部211より供給される速度および位置の情報を取得して、推論用パラメータの学習に利用する。
 ラベル入力可否判定部212は、移動が継続されている場合でも、ほぼ一定の速度で、繰り返し行われる歩行のような動作がなされているとみなされるときには、所定時間が経過して誤差が累積的に蓄積されるようなときでも、GNSSにより求められる速度と、センサ値の3軸の角速度とに基づいて、センサ部102の絶対姿勢を求めて、求められた絶対姿勢により姿勢をリセットする。これにより、静止しない状態であっても、姿勢をリセットすることが可能となり、学習を継続することが可能となる。
 <図15の電子機器による学習処理>
 次に、図16のフローチャートを参照して、図15の電子機器101による学習処理について説明する。
 ステップS131において、制御部121は、通信部122を制御して、センサ部102より供給される所定数(N個)のセンサ値をサンプルとして取得し、取得したセンサ値のうち、それぞれに必要な情報を姿勢算出部151、速度算出部152、位置算出部153、ラベル入力可否判定部212、学習器155、および推論器157に供給させる。
 ステップS132において、姿勢算出部151、速度算出部152、および位置算出部153は、センサ値に対応するセンサ部102の姿勢、速度、および位置を算出する。
 ステップS133において、GNSS算出部211は、センサ部102のGNSS受信部201より供給される、図示せぬGNSS衛星からのGNSS信号を取得する。
 ステップS134において、GNSS算出部211は、GNSS受信部201により受信された図示せぬGNSS衛星からのGNSS信号に基づいて、センサ部102の位置と速度とを算出し、ラベル入力可否判定部212に出力する。
 ステップS135において、ラベル入力可否判定部212は、GNSSによる位置と速度の測位がなされてから所定時間が経過したか否かを判定する。ここでは、GNSSによる位置と速度とが所定精度で求められるまでの時間が経過したか否かが判定され、例えば、数秒程度の時間が経過したか否かが判定される。
 ステップS135において、GNSSによる位置と速度の測位が開始されてから所定時間が経過していないと判定された場合、処理は、ステップS143に進む。
 ステップS143において、ラベル入力可否判定部212は、GNSSにより測位された速度と、センサ値の3軸の角速度とに基づいて、センサ部102の絶対姿勢を求めて、求められた絶対姿勢により姿勢をリセットする。
 ステップS144において、ラベル入力可否判定部212は、姿勢決定フラグをオンに設定する。
 ステップS145において、ラベル入力可否判定部212は、速度算出部152において算出される、速度をGNSSにより測位された速度でリセットする。また、このとき、ラベル入力可否判定部212は、移動時間を0にリセットし、処理は、ステップS141に進む。
 ステップS141において、制御部121は、入力部124が操作されるなどして、処理の終了が指示されたか否かを判定する。ステップS141において、処理の終了が指示されていないと判定された場合、処理は、ステップS131に戻る。
 そして、ステップS141において、処理の終了が指示された場合、処理は終了する。
 すなわち、ここで処理がステップS131に戻ることにより、以降において速度算出部152において算出される速度については、初期値としてGNSSにより測位された速度が用いられることになる。
 そして、ステップS135において、GNSSによる位置と速度の測位が開始されてから所定時間が経過したと判定された場合、処理は、ステップS136に進む。
 ステップS136において、ラベル入力可否判定部212は、姿勢決定フラグがオンであるか否かを判定する。ここでは、上述の処理により、姿勢決定フラグはオンであるので、処理は、ステップS137に進む。尚、ステップS136において、姿勢決定フラグがオフである場合、処理は、ステップS141に進む。
 ステップS137において、ラベル入力可否判定部212は、直前にセンサ値が取得されたタイミングからの経過時間を移動時間として加算する。
 ステップS138において、ラベル入力可否判定部212は、移動開始から所定時間が経過したか否かを判定する。
 ステップS138において、移動開始から所定時間が経過していないと判定された場合、すなわち、移動開始からの経過時間が所定時間を超えて、繰り返し積分で求められる速度情報が所定の精度を満たしていない、学習のラベルとして用いるには適切な情報であるとみなされた場合、処理は、ステップS139に進む。
 ステップS139において、ラベル入力可否判定部212は、速度算出部152により算出された速度を学習ラベルに適した情報とみなして学習器155に出力する。
 これに応じて、学習器155は、ラベル入力可否判定部212より供給されたセンサ部102の速度をラベルとし、センサ部102のセンサ値であるセンサ座標系の加速度および角速度を入力とした機械学習を実行し、推論用パラメータを算出する。
 ステップS140において、学習器155は、機械学習により算出された推論用パラメータにより、学習記録部156に記録されている推論用パラメータを更新する。
 また、ステップS138において、移動開始から所定時間が経過していると判定された場合、すなわち、移動開始から所定時間が経過して、積分により求められる速度に所定値以上の誤差が含まれる恐れがあるとみなされた場合、処理は、ステップS142に進む。
 ステップS142において、ラベル入力可否判定部212は、姿勢決定フラグをオフにして、速度算出部152により算出された速度に基づいた機械学習がなされないようにして、処理は、ステップS145に進む。
 以上の処理により、センサ部102を装着したユーザが、歩行などのほぼ同一の速度で繰り返し実行される動作がなされる場合については、GNSSによる位置と速度の測位がなされる限り、静止することなく推論用パラメータの学習を継続させることが可能となる。
 尚、以上においては、センサ値に基づいた速度算出部152により求められた速度が学習のラベルとして用いられる例について説明してきたが、学習に用いるラベルとしての速度について、ある程度、粗いものであってもよい場合(単位時間当たりのデータ数が所定数よりも少ない場合)については、GNSS算出部211により求められた速度を学習のラベルとして用いるようにしてもよい。
 例えば、歩行速度については、ほぼ一定で、変化が小さく、急激な変化をとらえる必要がないので、単位時間当たりのデータ数が所定数より少ない、粗いものであってもよいため、GNSS算出部211で求められる速度をラベルとしてもよい。
 一方、手足の細かな動きやジェスチャなどについては、急峻な細かい変化を検出する必要があり、単位時間当たりのデータ数が所定数より多く、密なものであることが望ましいため、センサ値に基づいて速度算出部152により求められる速度がラベルとして用いられることが望ましい。
 <<5.第4の実施の形態>>
 <所定時間未来の姿勢、速度および位置を予測する推論用パラメータを学習させる例>
 以上においては、センサ部102のリアルタイムのセンサ値と、姿勢算出部151、速度算出部152、および位置算出部153により求められたセンサ部102の姿勢、速度、および位置とに基づいた学習により、センサ値によるセンサ部102の姿勢、速度、および位置を推論するための推論用パラメータを学習させる例について説明してきた。
 しかしながら、所定時間だけ前のタイミングにおけるセンサ部102のセンサ値と、リアルタイムのセンサ値に基づいて姿勢算出部151、速度算出部152、および位置算出部153により求められたセンサ部102の姿勢、速度、および位置との学習により、センサ値による所定時間だけ未来の姿勢、速度、および位置を予測するような推論用パラメータを学習させるようにしてもよい。
 図17は、所定時間未来の姿勢、速度および位置を予測する推論用パラメータを学習させる電子機器101の構成例である。
 図17の電子機器101において、図5の電子機器101における構成と同様の機能を備えた構成については、同一の符号を付しており、その説明は適宜省略する。
 すなわち、図17の電子機器101において、図5の電子機器101と異なる点は、ラベル入力可否判定部154、学習器155、および学習記録部156に代えて、ラベル入力可否判定部251、学習器252、および学習記録部253を備えた点である。
 ラベル入力可否判定部251は、バッファ251aを備えており、所定時間分だけ過去のセンサ部102より供給されるセンサ値をバッファリングし、リアルタイムのセンサ値に基づいて、姿勢算出部151、速度算出部152、および位置算出部153により求められたセンサ部102の姿勢、速度、および位置と、過去のセンサ値とを学習器252に供給し、リアルタイムのセンサ値から未来のセンサ部102の姿勢、速度、および位置を推論する推論用パラメータを学習させ、学習記録部253に記録させる。
 これにより、推論器157は、学習記録部253に記録された推論用パラメータを読み出して、リアルタイムのセンサ値を用いて、所定時間だけ未来のセンサ部102の姿勢、速度、および位置を推論することができる。
 例えば、センサ部102の姿勢、速度、および位置を用いたメカニカルな手振れ補正を実現させるような場合、リアルタイムのセンサ値により、リアルタイムの姿勢、速度、および位置を、推論用パラメータを用いて推論して求めても、メカによる伝達遅延により適切な手振れ補正を実現できないことがある。
 しかしながら、このようにセンサ値により、所定時間だけ未来の姿勢、速度、および位置が求められることにより、例えば、伝達遅延に対応する時間だけ未来の姿勢、速度、および位置が推論されて求められることにより、伝達遅延を考慮した手振れ補正を実現することが可能となる。
 <図17の電子機器による学習処理>
 次に、図18のフローチャートを参照して、図17の電子機器101による推論用パラメータの学習処理について説明する。
 尚、図18のフローチャートにおいて、ステップS161,S163乃至S168およびステップS173乃至S176の処理は、図6のフローチャートにおけるステップS11乃至S16およびステップS20乃至S23の処理と同様であるので、その説明は省略する。
 すなわち、ステップS161において、センサ部102より供給されるセンサ値である3軸の角速度および加速度と、対応する時刻情報(タイムスタンプ)がラベル入力可否判定部251に供給されると、処理は、ステップS162に進む。
 ステップS162において、ラベル入力可否判定部251は、センサ値である3軸の角速度および加速度と、対応する時刻情報(タイムスタンプ)をバッファ251aにバッファリングさせる。
 そして、ステップS163乃至S168の処理により、姿勢、速度、および位置が算出されて、移動していると判定され、姿勢決定フラグがオンであり、移動時間が加算され、移動開始から所定時間が経過していないと判定されると、処理は、ステップS169に進む。
 ステップS169において、ラベル入力可否判定部251は、バッファ251aに所定時間分だけセンサ部102より供給されるセンサ値である3軸の角速度および加速度と、対応する時刻情報(タイムスタンプ)がバッファリングされているか否かを判定する。
 ステップS169において、バッファ251aに所定時間分だけセンサ部102より供給されるセンサ値である3軸の角速度および加速度と、対応する時刻情報(タイムスタンプ)がバッファリングされていると判定された場合、処理は、ステップS170に進む。尚、ステップS169において、バッファ251aに所定時間分だけセンサ部102より供給されるセンサ値である3軸の角速度および加速度と、対応する時刻情報(タイムスタンプ)がバッファリングされていないと判定された場合、処理は、ステップS172に進む。
 ステップS170において、ラベル入力可否判定部251は、バッファ251aに所定時間分だけバッファリングされている、センサ部102より供給されるセンサ値である3軸の角速度および加速度と、対応する時刻情報(タイムスタンプ)と、リアルタイムのセンサ値に基づいて位置算出部153により算出された位置情報を学習ラベルに適した情報とみなして学習器252に出力する。
 これに応じて、学習器252は、位置算出部153により算出されたリアルタイムのセンサ部102の位置情報をラベルとし、ラベル入力可否判定部251より供給された、所定時間分だけ過去のセンサ部102のセンサ値であるセンサ座標系の加速度および角速度を入力とした機械学習を実行し、所定時間だけ未来の位置を推論する推論用パラメータを算出する。
 ステップS171において、学習器252は、機械学習により算出された所定時間だけ未来の位置を推論する推論用パラメータにより、学習記録部253に記録されている推論用パラメータを更新する。
 以上の処理により、所定時間だけ未来の位置を推論する推論用パラメータが学習されることになるので、リアルタイムのセンサ値から、所定時間だけ未来の位置を高精度に推論することが可能となる。
 以上においては、学習に用いられるラベルとして位置が用いられる例について説明してきたが、速度を推論する推論用パラメータを求めることも可能である。
 尚、推論処理については、求められた推論用パラメータとリアルタイムのセンサ値とを用いた上述した処理と同様であるので、その説明は省略する。
 <<6.ソフトウェアにより実行させる例>>
 ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどに、記録媒体からインストールされる。
 図19は、汎用のコンピュータの構成例を示している。このコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
 入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブル記憶媒体1011に対してデータを読み書きするドライブ1010が接続されている。
 CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブル記憶媒体1011ら読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
 以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記憶媒体1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブル記憶媒体1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 尚、図19におけるCPU1001が、図5,図11,図15,図17の制御部121の機能を実現させる。
 また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本開示は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
 尚、本開示は、以下のような構成も取ることができる。
<1> センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出する算出部と、
 前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習する学習部と、
 前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給する学習ラベル供給部とを備え、
 前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
 情報処理装置。
<2> 前記算出部は、前記センサ値を積分することにより、前記学習ラベルとなる情報を算出し、
 前記学習ラベル供給部は、前記センサ値の積分が開始されてからの経過時間が所定時間以内である場合、前記算出部により算出された前記学習ラベルとなる情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給する
 <1>に記載の情報処理装置。
<3> 前記算出部は、
  前記加速度を積分することにより、前記センサ部の速度を算出する速度算出部と、
  前記速度を積分することで、前記センサ部の位置を算出する位置算出部と
 を含み、
 前記学習ラベル供給部は、
  前記速度算出部による前記加速度の積分が開始されてからの経過時間が所定時間以内である場合、前記速度算出部により算出された速度の情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給し、
  前記位置算出部による前記速度の積分が開始されてからの経過時間が所定時間以内である場合、前記位置算出部により算出された位置の情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給する
 <2>に記載の情報処理装置。
<4> 前記センサ部が静止するとき、前記学習ラベル供給部は、前記速度算出部により算出された速度の情報を0にリセットし、前記速度算出部による前記加速度の積分が開始されてからの経過時間を0にリセットする
 <3>に記載の情報処理装置。
<5> 前記学習ラベル供給部は、前記速度算出部による前記加速度の積分が開始されてからの経過時間が所定時間を超えた場合、または、前記位置算出部による前記速度の積分が開始されてからの経過時間が所定時間を超えた場合、前記速度算出部により算出された速度の情報、または、前記位置算出部により算出された位置の情報が、前記所定の精度よりも高精度の前記学習ラベルとなる情報ではないことを提示する
 <3>に記載の情報処理装置。
<6> 前記学習ラベル供給部は、前記速度算出部により算出された速度の情報、または、前記位置算出部により算出された位置の情報が、前記所定の精度よりも高精度の前記学習ラベルとなる情報ではないことをユーザに提示するとき、さらに、前記速度算出部により算出された速度の情報、または、前記位置算出部により算出された位置の情報を、前記学習ラベルとなる情報として前記学習部に供給しないようにするのか否かを問い合わせる情報を提示する
 <5>に記載の情報処理装置。
<7> 外部の信号に基づいて、前記センサ部の位置および速度を測定する外部測定部をさらに含み、
 前記外部測定部が、所定時間以上、前記センサ部の位置および速度を測定する場合、前記学習ラベル供給部は、前記速度算出部により算出された速度の情報を、前記外部測定部により測定された速度でリセットし、前記速度算出部による前記加速度の積分が開始されてからの経過時間を0にリセットする
 <6>に記載の情報処理装置。
<8> 前記外部測定部は、GNSS(Global Navigation Satellite System)衛星からの信号に基づいて位置および速度を測定する
 <7>に記載の情報処理装置。
<9> 前記算出部は、
  前記角速度を積分することにより、前記センサ部の姿勢となる角度を算出する姿勢算出部を含み、
 前記学習ラベル供給部は、
  前記姿勢算出部による前記角速度の積分が開始されてからの姿勢変化が所定値を超えない場合、前記姿勢算出部により算出された姿勢の情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給する
 <2>に記載の情報処理装置。
<10> 前記センサ部が静止するとき、前記学習ラベル供給部は、前記姿勢算出部により算出された姿勢の情報を、前記センサ値の前記加速度でリセットする
 <9>に記載の情報処理装置。
<11> 前記推論用パラメータを、予め設定される複数の動きパターン毎に格納する学習記録部と、
 前記学習記録部に格納された前記推論用パラメータのうち、未登録の動きパターンの推論パラメータを探索する動きパターン探索部をさらに含み、
 前記動きパターン探索部は、前記学習部により、前記未登録の動きパターンの推論パラメータを学習させるとき、前記センサ部が設置されたユーザに対して、前記未登録の動きパターンに対応する動作を促す情報を提示する
 <1>に記載の情報処理装置。
<12> 前記動きパターン探索部は、前記未登録の動きパターンに対応する動作として、所定のポーズをとるような動作、腕を上げるような動作、足を上げる動作、ボールを蹴る動作、または、ラケットでボールを打つ動作を前記ユーザに対して促す情報を提示する
 <11>に記載の情報処理装置。
<13> 前記学習ラベル供給部は、
  所定時間だけ前記センサ値をバッファリングするバッファリング部をさらに含み、
  前記算出部により算出された前記学習ラベルとなる情報のうち、前記所定の精度よりも高精度の、現在の学習ラベルとなる情報と、前記バッファリング部にバッファリングされている所定時間だけ過去の前記センサ値とを前記学習部に供給し、
 前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の、前記現在の学習ラベルとなる情報と、前記所定時間だけ過去の前記センサ値とに基づいて、所定時間だけ未来の前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
 <1>に記載の情報処理装置。
<14> 前記学習部により学習された前記推論用パラメータを用いて、前記センサ部より検出された角速度および加速度からなるセンサ値に基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論する推論器をさらに含む
 <1>乃至<13>のいずれかに記載の情報処理装置。
<15> 前記算出部は、センサ座標系の前記センサ値に基づいて、グローバル座標系の前記学習ラベルとなる情報を算出し、
 前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記グローバル座標系の前記学習ラベルとなる情報と、前記センサ座標系の前記センサ値とに基づいて、グローバル座標系の、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
 <14>に記載の情報処理装置。
<16> 前記推論器は、前記学習部により学習された前記推論用パラメータを用いて、前記センサ座標系の前記センサ部のセンサ値に基づいて、前記グローバル座標系の前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論する
 <15>に記載の情報処理装置。
<17> 前記算出部は、センサ座標系の前記センサ値に基づいて、センサ座標系の前記学習ラベルとなる情報を算出し、
 前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記センサ座標系の前記学習ラベルとなる情報と、前記センサ座標系の前記センサ値とに基づいて、センサ座標系の、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
 <14>に記載の情報処理装置。
<18> 前記推論器は、
  前記センサ座標系の前記センサ部のセンサ値に基づいて、グローバル座標系の姿勢を算出し、
  前記学習部により学習された前記推論用パラメータを用いて、前記センサ座標系の前記センサ部のセンサ値に基づいて、前記センサ座標系の前記センサ部の速度、および位置の少なくともいずれかを推論し、
  推論した前記センサ座標系の前記センサ部の速度、および位置の少なくともいずれかを、前記グローバル座標系の姿勢に基づいて、前記グローバル座標系の前記センサ部の速度、および位置の少なくともいずれかに変換する
 <17>に記載の情報処理装置。
<19> 算出部と、
 学習部と、
 学習ラベル供給部とを備えた情報処理装置の情報処理方法であって、
 前記算出部は、センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出し、
 前記学習部は、前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習し、
 前記学習ラベル供給部は、前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給し、
 前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
 情報処理方法。
<20> センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出する算出部と、
 前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習する学習部と、
 前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給する学習ラベル供給部としてコンピュータを機能させ、
 前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
 プログラム。
 100 モーションキャプチャシステム, 101 電子機器, 102,102-1乃至102-6 センサ部, 121 制御部, 122 通信部, 123 出力部, 124 入力部, 151 姿勢算出部, 152 速度算出部, 153 位置算出部, 154 ラベル入力可否判定部, 155 学習器, 156 学習記録部, 157 推論器, 181 動きパターン要請部, 181a 動きパターン記憶部, 201 GNSS受信部, 211 GNSS算出部, 212 ラベル入力可否判定部, 251 ラベル入力可否判定部, 251a バッファ, 252 学習器, 253 学習記録部

Claims (20)

  1.  センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出する算出部と、
     前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習する学習部と、
     前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給する学習ラベル供給部とを備え、
     前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
     情報処理装置。
  2.  前記算出部は、前記センサ値を積分することにより、前記学習ラベルとなる情報を算出し、
     前記学習ラベル供給部は、前記センサ値の積分が開始されてからの経過時間が所定時間以内である場合、前記算出部により算出された前記学習ラベルとなる情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給する
     請求項1に記載の情報処理装置。
  3.  前記算出部は、
      前記加速度を積分することにより、前記センサ部の速度を算出する速度算出部と、
      前記速度を積分することで、前記センサ部の位置を算出する位置算出部と
     を含み、
     前記学習ラベル供給部は、
      前記速度算出部による前記加速度の積分が開始されてからの経過時間が所定時間以内である場合、前記速度算出部により算出された速度の情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給し、
      前記位置算出部による前記速度の積分が開始されてからの経過時間が所定時間以内である場合、前記位置算出部により算出された位置の情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給する
     請求項2に記載の情報処理装置。
  4.  前記センサ部が静止するとき、前記学習ラベル供給部は、前記速度算出部により算出された速度の情報を0にリセットし、前記速度算出部による前記加速度の積分が開始されてからの経過時間を0にリセットする
     請求項3に記載の情報処理装置。
  5.  前記学習ラベル供給部は、前記速度算出部による前記加速度の積分が開始されてからの経過時間が所定時間を超えた場合、または、前記位置算出部による前記速度の積分が開始されてからの経過時間が所定時間を超えた場合、前記速度算出部により算出された速度の情報、または、前記位置算出部により算出された位置の情報が、前記所定の精度よりも高精度の前記学習ラベルとなる情報ではないことを提示する
     請求項3に記載の情報処理装置。
  6.  前記学習ラベル供給部は、前記速度算出部により算出された速度の情報、または、前記位置算出部により算出された位置の情報が、前記所定の精度よりも高精度の前記学習ラベルとなる情報ではないことをユーザに提示するとき、さらに、前記速度算出部により算出された速度の情報、または、前記位置算出部により算出された位置の情報を、前記学習ラベルとなる情報として前記学習部に供給しないようにするのか否かを問い合わせる情報を提示する
     請求項5に記載の情報処理装置。
  7.  外部の信号に基づいて、前記センサ部の位置および速度を測定する外部測定部をさらに含み、
     前記外部測定部が、所定時間以上、前記センサ部の位置および速度を測定する場合、前記学習ラベル供給部は、前記速度算出部により算出された速度の情報を、前記外部測定部により測定された速度でリセットし、前記速度算出部による前記加速度の積分が開始されてからの経過時間を0にリセットする
     請求項6に記載の情報処理装置。
  8.  前記外部測定部は、GNSS(Global Navigation Satellite System)衛星からの信号に基づいて位置および速度を測定する
     請求項7に記載の情報処理装置。
  9.  前記算出部は、
      前記角速度を積分することにより、前記センサ部の姿勢となる角度を算出する姿勢算出部を含み、
     前記学習ラベル供給部は、
      前記姿勢算出部による前記角速度の積分が開始されてからの姿勢変化が所定値を超えない場合、前記姿勢算出部により算出された姿勢の情報を、前記所定の精度よりも高精度の前記学習ラベルとなる情報として、前記学習部に供給する
     請求項2に記載の情報処理装置。
  10.  前記センサ部が静止するとき、前記学習ラベル供給部は、前記姿勢算出部により算出された姿勢の情報を、前記センサ値の前記加速度でリセットする
     請求項9に記載の情報処理装置。
  11.  前記推論用パラメータを、予め設定される複数の動きパターン毎に格納する学習記録部と、
     前記学習記録部に格納された前記推論用パラメータのうち、未登録の動きパターンの推論パラメータを探索する動きパターン探索部をさらに含み、
     前記動きパターン探索部は、前記学習部により、前記未登録の動きパターンの推論パラメータを学習させるとき、前記センサ部が設置されたユーザに対して、前記未登録の動きパターンに対応する動作を促す情報を提示する
     請求項1に記載の情報処理装置。
  12.  前記動きパターン探索部は、前記未登録の動きパターンに対応する動作として、所定のポーズをとるような動作、腕を上げるような動作、足を上げる動作、ボールを蹴る動作、または、ラケットでボールを打つ動作を前記ユーザに対して促す情報を提示する
     請求項11に記載の情報処理装置。
  13.  前記学習ラベル供給部は、
      所定時間だけ前記センサ値をバッファリングするバッファリング部をさらに含み、
      前記算出部により算出された前記学習ラベルとなる情報のうち、前記所定の精度よりも高精度の、現在の学習ラベルとなる情報と、前記バッファリング部にバッファリングされている所定時間だけ過去の前記センサ値とを前記学習部に供給し、
     前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の、前記現在の学習ラベルとなる情報と、前記所定時間だけ過去の前記センサ値とに基づいて、所定時間だけ未来の前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
     請求項1に記載の情報処理装置。
  14.  前記学習部により学習された前記推論用パラメータを用いて、前記センサ部より検出された角速度および加速度からなるセンサ値に基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論する推論器をさらに含む
     請求項1に記載の情報処理装置。
  15.  前記算出部は、センサ座標系の前記センサ値に基づいて、グローバル座標系の前記学習ラベルとなる情報を算出し、
     前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記グローバル座標系の前記学習ラベルとなる情報と、前記センサ座標系の前記センサ値とに基づいて、グローバル座標系の、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
     請求項14に記載の情報処理装置。
  16.  前記推論器は、前記学習部により学習された前記推論用パラメータを用いて、前記センサ座標系の前記センサ部のセンサ値に基づいて、前記グローバル座標系の前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論する
     請求項15に記載の情報処理装置。
  17.  前記算出部は、センサ座標系の前記センサ値に基づいて、センサ座標系の前記学習ラベルとなる情報を算出し、
     前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記センサ座標系の前記学習ラベルとなる情報と、前記センサ座標系の前記センサ値とに基づいて、センサ座標系の、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
     請求項14に記載の情報処理装置。
  18.  前記推論器は、
      前記センサ座標系の前記センサ部のセンサ値に基づいて、グローバル座標系の姿勢を算出し、
      前記学習部により学習された前記推論用パラメータを用いて、前記センサ座標系の前記センサ部のセンサ値に基づいて、前記センサ座標系の前記センサ部の速度、および位置の少なくともいずれかを推論し、
      推論した前記センサ座標系の前記センサ部の速度、および位置の少なくともいずれかを、前記グローバル座標系の姿勢に基づいて、前記グローバル座標系の前記センサ部の速度、および位置の少なくともいずれかに変換する
     請求項17に記載の情報処理装置。
  19.  算出部と、
     学習部と、
     学習ラベル供給部とを備えた情報処理装置の情報処理方法であって、
     前記算出部は、センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出し、
     前記学習部は、前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習し、
     前記学習ラベル供給部は、前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給し、
     前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
     情報処理方法。
  20.  センサ部より検出された角速度および加速度からなるセンサ値に基づいて、学習ラベルとなる情報を算出する算出部と、
     前記算出部により算出された前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための推論用パラメータを学習する学習部と、
     前記算出部により算出された前記学習ラベルとなる情報のうち、所定の精度よりも高精度の前記学習ラベルとなる情報を前記学習部に供給する学習ラベル供給部としてコンピュータを機能させ、
     前記学習部は、前記学習ラベル供給部より供給される、前記所定の精度よりも高精度の前記学習ラベルとなる情報と、前記センサ値とに基づいて、前記センサ部の姿勢、速度、および位置の少なくともいずれかを推論するための前記推論用パラメータを学習する
     プログラム。
PCT/JP2022/005155 2021-06-22 2022-02-09 情報処理装置、および情報処理方法、並びにプログラム WO2022269985A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/569,284 US20240175893A1 (en) 2021-06-22 2022-02-09 Information processing apparatus, information processing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-102970 2021-06-22
JP2021102970 2021-06-22

Publications (1)

Publication Number Publication Date
WO2022269985A1 true WO2022269985A1 (ja) 2022-12-29

Family

ID=84543742

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/005155 WO2022269985A1 (ja) 2021-06-22 2022-02-09 情報処理装置、および情報処理方法、並びにプログラム

Country Status (2)

Country Link
US (1) US20240175893A1 (ja)
WO (1) WO2022269985A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464157A (zh) * 2009-01-23 2009-06-24 北京北斗星通导航技术股份有限公司 一种组合定位仪
WO2017065241A1 (ja) * 2015-10-14 2017-04-20 国立大学法人東京工業大学 自動診断装置
WO2019203188A1 (ja) * 2018-04-17 2019-10-24 ソニー株式会社 プログラム、情報処理装置、及び情報処理方法
WO2020074921A1 (en) * 2018-10-12 2020-04-16 Focal Point Positioning Limited A method of estimating a metric of interest related to the motion of a body

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464157A (zh) * 2009-01-23 2009-06-24 北京北斗星通导航技术股份有限公司 一种组合定位仪
WO2017065241A1 (ja) * 2015-10-14 2017-04-20 国立大学法人東京工業大学 自動診断装置
WO2019203188A1 (ja) * 2018-04-17 2019-10-24 ソニー株式会社 プログラム、情報処理装置、及び情報処理方法
WO2020074921A1 (en) * 2018-10-12 2020-04-16 Focal Point Positioning Limited A method of estimating a metric of interest related to the motion of a body

Also Published As

Publication number Publication date
US20240175893A1 (en) 2024-05-30

Similar Documents

Publication Publication Date Title
US11009941B2 (en) Calibration of measurement units in alignment with a skeleton model to control a computer system
US10860091B2 (en) Motion predictions of overlapping kinematic chains of a skeleton model used to control a computer system
WO2019203189A1 (ja) プログラム、情報処理装置、及び情報処理方法
US11474593B2 (en) Tracking user movements to control a skeleton model in a computer system
US20180070864A1 (en) Methods and devices for assessing a captured motion
US10976863B1 (en) Calibration of inertial measurement units in alignment with a skeleton model to control a computer system based on determination of orientation of an inertial measurement unit from an image of a portion of a user
JP6852673B2 (ja) センサ装置、センサシステム及び情報処理装置
US11009964B2 (en) Length calibration for computer models of users to generate inputs for computer systems
US11175729B2 (en) Orientation determination based on both images and inertial measurement units
US11079860B2 (en) Kinematic chain motion predictions using results from multiple approaches combined via an artificial neural network
WO2020110659A1 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2020009715A2 (en) Tracking user movements to control a skeleton model in a computer system
KR101941604B1 (ko) 웨어러블 장치의 위치를 추정하는 방법 및 이를 이용하는 장치
WO2022269985A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
US20230214027A1 (en) Reduction of Time Lag Between Positions and Orientations Being Measured and Display Corresponding to the Measurements
US20230011082A1 (en) Combine Orientation Tracking Techniques of Different Data Rates to Generate Inputs to a Computing System
JP6147446B1 (ja) ソフト制約及びペナルティ機能を使用した慣性センサの初期化
US11893167B2 (en) Information processing device, information processing method, non-transitory computer readable medium
CN112560565A (zh) 人类行为理解系统及人类行为理解方法
CN115328299A (zh) 位姿确定方法、装置、计算机设备及存储介质
TW202225916A (zh) 相關於動作追蹤的系統和方法
CN114661143A (zh) 相关于数据融合的系统和方法
TW202122973A (zh) 動作追蹤系統和方法

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18569284

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE