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

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

Info

Publication number
WO2021152723A1
WO2021152723A1 PCT/JP2020/003173 JP2020003173W WO2021152723A1 WO 2021152723 A1 WO2021152723 A1 WO 2021152723A1 JP 2020003173 W JP2020003173 W JP 2020003173W WO 2021152723 A1 WO2021152723 A1 WO 2021152723A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
acceleration
measurement unit
output
inertial measurement
Prior art date
Application number
PCT/JP2020/003173
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 PCT/JP2020/003173 priority Critical patent/WO2021152723A1/ja
Priority to US17/792,924 priority patent/US20230066821A1/en
Priority to JP2021573688A priority patent/JP7389825B2/ja
Publication of WO2021152723A1 publication Critical patent/WO2021152723A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • 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
    • G01P21/00Testing or calibrating of apparatus or devices covered by the preceding groups
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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
    • 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/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/22Setup operations, e.g. calibration, key configuration or button assignment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1018Calibration; Key and button assignment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/105Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals using inertial sensors, e.g. accelerometers, gyroscopes

Definitions

  • the present invention relates to an information processing device, an information processing method, and a program.
  • the following method is known as a method of calibrating the signal indicating the angular velocity and acceleration output by the IMU (inertial measurement unit).
  • the acceleration signal As a method of calibrating the acceleration signal, it is estimated from the signal (bias error) output by the IMU when it is determined that the device including the IMU is in a stationary state, and the output signal.
  • bias error the signal output by the IMU when it is determined that the device including the IMU is in a stationary state
  • the difference scale factor error
  • the vector (three-dimensional vector consisting of each component in the X, Y, and Z axis directions) d representing the bias error and the diagonal matrix (3 ⁇ 3 matrix) S representing the scale factor error are non-orthogonal.
  • the acceleration signal (vector value signal including each component of the above three axes) imu output by the IMU is generated.
  • imu ' T N S (imu + d)
  • the position of the device and the like are estimated using the corrected acceleration value imu'.
  • the conventional method of calibrating the output of the IMU has a problem that it is not easy to estimate the position of the device based on the output of the IMU.
  • the present invention has been made in view of the above circumstances, and it is possible to further reduce the error of the signal output by the IMU, and it is practical to estimate the position of the device including the IMU based on the signal output by the IMU.
  • One of the purposes is to provide an information processing device, an information processing method, and a program.
  • the information processing apparatus is a means for sequentially accepting a plurality of input data between a predetermined time TS and a time TE, and a time T (TS ⁇ T) based on the received input data.
  • a time T TS ⁇ T
  • an estimation means for estimating the estimation data at the time T based on the received input data. It was decided to include it.
  • the information processing apparatus has means for receiving the output of the inertial measurement unit from the device provided with the inertial measurement unit, and the attitude information of the device based on the received output of the inertial measurement unit. And the information based on the estimated posture information is used as input data, and the relationship between the input data and the bias error included in the movement acceleration information output by the inertial measurement unit is at least machine-learned.
  • the first machine learning model in the above input information based on the estimated attitude information of the device into the first machine learning model, and information on the moving acceleration output by the inertial measurement unit included in the device. It has an estimation means for estimating at least the bias error included in the above, and the estimated bias error is used for the processing of calibrating the moving acceleration output by the inertial measurement unit.
  • the error of the signal can be further reduced, and the estimation of the position of the device including the IMU based on the signal output by the IMU is practical. Can be.
  • the information processing device 1 is connected to, for example, a device 2 held by a user and operated by a user so as to be able to communicate by wire or wirelessly.
  • the information processing device 1 includes a control unit 11, a storage unit 12, an operation input unit 13, an output control unit 14, and an imaging unit 15.
  • the information processing device 1 may be a home-use game machine, and the device 2 may be the game controller.
  • the device 2 is a controller device that the user holds and uses.
  • the device 2 may have, for example, a columnar housing, and a marker M such as an LED may be arranged on the housing.
  • the information processing device 1 may detect the marker M of the device 2 held by the user from the image captured by the imaging unit 15 and acquire posture information such as the position and orientation of the device 2.
  • the device 2 includes an inertial measurement unit (IMU) 21, a controller 22, and a communication unit 23.
  • the IMU 21 includes an acceleration sensor (three-axis acceleration sensor) that measures accelerations in three axial directions that are orthogonal to each other, and a gyro sensor.
  • the IMU 21 may include a magnetic sensor in order to estimate the orientation.
  • the controller 22 is a microprocessor or the like, and operates according to a program stored in a built-in memory or the like.
  • the controller 22 sets the acceleration information a, which is the measured value of the acceleration sensor (value representing the moving acceleration in each of the above three axial directions) output by the IMU 21, and the angular velocity value ⁇ represented by the gyro sensor at each predetermined timing. (In this example, it is obtained repeatedly at regular time intervals ⁇ t) and output to the communication unit 23.
  • the communication unit 23 is connected to the information processing device 1 by wire or wirelessly so as to be able to communicate with the information processing device 1. Send to.
  • control unit 11 of the information processing device 1 is a program control device such as a CPU, and operates according to a program stored in the storage unit 12. For example, the control unit 11 executes the game application process based on the movement operation of the device 2 by the user as the game application process.
  • the control unit 11 of the present embodiment receives the input of the signal representing the acceleration information a and the angular velocity value ⁇ from the device 2 and executes the following processing.
  • the acceleration information a received here and the angular velocity value ⁇ are both values in the coordinate system (sensor coordinate system) unique to the device 2.
  • the longitudinal direction of the cylindrical device 2 (the direction of the rotational symmetry axis of the cylinder) is the ⁇ axis, and the user grips the device 2 in a plane perpendicular to the ⁇ axis.
  • This ⁇ Cartesian coordinate system is defined with, for example, the ⁇ axis as the side direction, and the ⁇ axis as the direction orthogonal to the ⁇ and ⁇ axes in the above plane.
  • the control unit 11 first estimates the attitude of the device 2 from the value ⁇ of the angular velocity.
  • the control unit 11 has a Madgwick Filter (Madgwick Filter: Madgwick, An efficiency orientation filter for inertia and inertia / magnetic sensor arrays, Technical Report, University of Bristol, UK) with respect to the value ⁇ of the angular velocity. ., 2010.) is applied, and the attitude quartanion q is obtained based on the estimation result of the attitude output by the Madgewick filter.
  • This posture quaternion q corresponds to the posture information of the present invention.
  • Each component of the posture quaternion q obtained here is a global coordinate system (a coordinate system not related to the posture of the device 2, for example, the gravity direction is the Y axis, and the floor surface perpendicular to this is the Z axis in the front direction of the user. , XYZ Cartesian coordinate system orthogonal to the Z and Y axes, with the axial direction in the floor as the X axis, etc.), and a rotation angle w around the rotation axis. ..
  • control unit 11 is in a state of being machine-learned to output an estimated value of the vector value of the acceleration bias error and the diagonal component of the matrix representing the scale factor error of the acceleration by inputting the attitude quaternion q.
  • the attitude quaternion q obtained from the angular velocity received from the device 2 is input to this first neural network to represent the vector value of the bias error of the corresponding acceleration and the scale factor error of the acceleration. Estimate the diagonal component of the matrix.
  • the control unit 11 uses the vector value of the bias error estimated here and the matrix of the scale factor error (the matrix in which the estimated diagonal components are arranged in the corresponding elements) from the acceleration information a received from the device 2.
  • the acceleration information a'after removing these errors is obtained.
  • the control unit 11 uses the estimated value ⁇ of the acceleration at this time T and the acceleration information ag obtained from this time T to the time TE to obtain the velocity value and the position in the global coordinate system. And get the value of. The details of the processing of the control unit 11 will be described later.
  • the storage unit 12 holds a program executed by the control unit 11 including a disk device and a memory device.
  • This program is provided stored in a computer-readable and non-temporary recording medium, and may be stored in the storage unit 12.
  • the operation input unit 13 outputs a signal input from the device 2 which is a controller to the control unit 11.
  • This signal includes the acceleration information a already described and the signal representing the value ⁇ of the angular velocity.
  • the output control unit 14 is connected to a display device such as a display, and displays an image according to an instruction input from the control unit 11.
  • the image capturing unit 15 is a camera or the like, and captures an image in a predetermined direction and outputs the image to the control unit 11.
  • the image pickup unit 15 is installed so as to capture an image in the direction in which the user is located.
  • control unit 11 executes the program stored in the storage unit 12 to realize the functional configuration illustrated in FIG.
  • the control unit 11 functionally includes a detection value receiving unit 31, an angular velocity error removing unit 32, an attitude estimation unit 33, an acceleration error removing unit 34, a coordinate conversion unit 35, a noise removing unit 36, and a speed estimation unit.
  • a unit 37 and a position estimation unit 38 are included.
  • the detection value receiving unit 31 receives input of a signal representing the acceleration information a and the angular velocity value ⁇ from the device 2.
  • the detection value receiving unit 31 outputs the received angular velocity value ⁇ to the angular velocity error removing unit 32. Further, the detected value receiving unit 31 outputs the received acceleration information a to the angular velocity error removing unit 32, the attitude estimation unit 33, and the acceleration error removing unit 34.
  • the value ⁇ of the angular velocity is the rotation angle around the ⁇ axis (yaw angle), the rotation angle around the ⁇ axis (pitch angle), and the rotation angle around the ⁇ axis (roll angle) with respect to the respective angular directions. Includes angular velocity values.
  • the angular velocity error removing unit 32 instructs the output control unit 14 to display a screen instructing the user to temporarily stop at a predetermined timing (for example, when the value of the angular velocity is first input). do. Then, when the user determines that the user has stopped (for example, the norm (sum of squares) of each component of the angular velocity value output by the device 2 at a predetermined timing is continuously set by the angular velocity error removing unit 32, a predetermined number of times. When it is determined that the value is below a predetermined threshold value), the value of the angular velocity at that time is acquired a plurality of times, and the average is obtained as the angular velocity bias for each component of roll, pitch, and yaw.
  • a predetermined timing for example, when the value of the angular velocity is first input.
  • the angular velocity error removing unit 32 holds the angular velocity bias obtained here in the storage unit 12 or the like. After that, the angular velocity error removing unit 32 instructs the output control unit 14 to present a screen indicating that the calibration is completed to the user.
  • the angular velocity error removing unit 32 subtracts the value of the corresponding angular velocity bias component from the value of each component of the input angular velocity value ⁇ , and the angular velocity value ⁇ after calibration. ′ Is output.
  • the attitude estimation unit 33 removes the drift error from the angular velocity value ⁇ 'output by the angular velocity error removing unit 32, estimates the vector in the direction of gravity in the sensor coordinate system, and determines the attitude of the device 2 in the global coordinate system. Generates and outputs the represented posture quaternion q.
  • the posture estimation unit 33 For the operation of the posture estimation unit 33, for example, a widely known method using a mudgewick filter can be adopted, so detailed description here will be omitted.
  • the acceleration error removing unit 34 uses a first neural network including an input layer 41, an intermediate layer 42, and an output layer 43 to obtain an acceleration bias value d and an acceleration from the attitude quaternion q. Estimate the scale factor value s.
  • each layer is connected by a fully connected network, and the input layer 41 and the intermediate layer 42 adopt known activation functions such as ReLU.
  • learning parameters such as connection weights and bias information between layers of the first neural network are generated for each device 2 before the device 2 is shipped from the factory.
  • This learning parameter may be stored in, for example, a non-volatile memory arranged in the device 2.
  • the learning parameters are transferred from the device 2 to the information processing device 1, and the information processing device 1 sets the coupling weight between each layer of the first neural network.
  • the first neural network is used by setting according to this learning parameter.
  • unique identification information is assigned to each device 2, and the device 2 identified by the identification information is obtained by machine learning in advance in association with the identification information to a server accessible via the network. Learning parameters may be retained.
  • the information processing device 1 refers to the identification information of the device 2 and acquires the learning parameter held in the server in association with the identification information. Set the connection weight between each layer of the first neural network.
  • this learning parameter can be obtained as follows.
  • the device 2 is connected to the information processing device 1 of the present embodiment, and the device 2 is in a state of being stationary in a plurality of postures. Then, when the control unit 1 of the information processing device 1 determines that the device 2 is in a stationary state, the attitude quaternion q output by the attitude estimation unit 33 is input, and the acceleration information a is output as the acceleration bias value d. Machine learning is performed so as to. Further, the acceleration scale factor value (diagonal component of the matrix representing the acceleration scale factor error) s is machine-learned so that the value of each component becomes constant regardless of the value of the posture quaternion q.
  • the input data input to the first neural network is assumed to be the attitude quaternion q, but the present embodiment is not limited to this, and the environmental temperature (provided by the device 2). It may further include the temperature measured by a temperature sensor (not shown), the operating time of the device 2 (the elapsed time since the power is turned on), and the humidity (the humidity measured by the humidity sensor (not shown) provided in the device 2). ..
  • the acceleration information a when the device 2 is in a stationary state is used as the training data, but the present embodiment is not limited to this, and the vibration of the device 2 while the device 2 is being moved by the user is not limited to this.
  • Changes in magnitude and acceleration may be included in the input data together with the attitude quaternion q.
  • the determination of whether or not the device 2 is in a stationary state is determined, for example. -The norm (sum of squares) of each component of the angular velocity value output by the device 2 at a predetermined timing falls below a predetermined threshold value continuously for a predetermined number of times. -The absolute value of the acceleration output by the device 2 at a predetermined timing falls below a predetermined threshold value continuously for a predetermined number of times, or -The absolute value of the time difference of the acceleration output by the device 2 (the difference between the two accelerations output by the device 2 at different timings) continuously falls below a predetermined threshold value a predetermined number of times. It can be done by judging such things.
  • the acceleration error removing unit 34 of the control unit 11 removes these errors from the acceleration information a by using the acceleration bias value d estimated by using the first neural network and the acceleration scale factor value s.
  • the acceleration bias value d and the acceleration information a are both three-dimensional vectors including the acceleration values in each component direction of the sensor coordinate system, and the acceleration scale factor value s is a diagonal matrix representing the scale factor error. 3 ⁇ 3 matrix) Represents each diagonal component of S.
  • the acceleration error removing unit 34 uses the acceleration information a ′ from which the error has been removed.
  • the coordinate conversion unit 35 uses the posture quaternion q output by the posture estimation unit 33 to output the error-removed acceleration information a'(value in the sensor coordinate system) output by the acceleration error removal unit 34 in the global coordinate system. It is converted into the acceleration information ag in.
  • the noise removing unit 36 includes an RSTM (Long Short Term Memory) layer 51, a first fully connected layer 52, a second fully connected layer 53, and an output layer 54.
  • RSTM Long Short Term Memory
  • the noise removing unit 36 uses 2 neural networks to estimate the true value of acceleration in the coordinate system.
  • learning parameters such as connection weights and biases between layers of the second neural network are set to predetermined values at least initially (at the time of installation of the program executed by the control unit 11). .. This learning parameter is generated on the part of the manufacturer of the device 2, at least in the initial state.
  • the learning parameters of this second neural network can be obtained as follows.
  • the information processing device 1 of the present embodiment captures a scene in which the user holds the device 2 in his / her hand and moves the device 2 by the imaging unit 15, and from the captured images, the times t0, t1, and so on. ... Obtains the position information p (t0), p (t1), etc. of the global device 2 for n + 1 times in tn.
  • ti + 1-ti is assumed to be ⁇ t for a certain period of time.
  • a low-pass filter is further applied to the difference in velocity at each time point to obtain the training data of the moving acceleration.
  • the teacher data of the moving acceleration may be further corrected so as to be consistent with the position information by accumulating the differences after applying the low-pass filter.
  • the information processing device 1 outputs the coordinate conversion unit 35 at each time point using the acceleration information a and the angular velocity value ⁇ input from the device 2 at the time points t2, t2 ... Tn, respectively. Acceleration information ag (t2), ag (t3), ... ag (tn) in the global coordinate system is obtained.
  • the information processing apparatus 1 is based on the attitude quaternion information q (t1), q (t2) ... q (tun) output by the attitude estimation unit 33 at each time point, and the acceleration in the global coordinate system at each time point. Acceleration excluding the gravitational component by subtracting the value corresponding to the gravitational acceleration from the value of each Y-axis component (vertically downward direction in the global coordinate system) of the information ag (t2), ag (t3), ... Information ag'(t2), ag'(t3), ... ag'(tn) are obtained.
  • ⁇ q (t3) q (t3) -q (t2) ... I want.
  • the information processing device 1 randomly initializes the learning parameters of the second neural network, and N pieces of acceleration information ag (t2) to ag (t2 + N ⁇ ⁇ t) (N is a natural number of 2 or more, and the time is N ⁇ ⁇ t).
  • the second when the acceleration information ag'(t2) excluding the gravitational acceleration is input to the ag'(t2 + N ⁇ ⁇ t) and the angular velocity ⁇ q (t2), ⁇ q (t3), ... ⁇ q (t2 + N ⁇ ⁇ t).
  • the learning parameters of the second neural network are updated so that the output value of the neural network matches the training data L (t2 + M ⁇ ⁇ t).
  • This update process can be executed by a widely known process such as backpropagation.
  • the noise removing unit 36 of the control unit 11 is connected to the LSTM (Long Short Term Memory) layer 51 of the second neural network in the machine-learned state as described above during the period from the latest time TS to the time TE.
  • Ts) ⁇ q (tS + 2 ⁇ t) q (tS + 2 ⁇ t) -q (ts + ⁇ t) ...
  • ⁇ q (tS + N ⁇ t) q (tS + N ⁇ t) -q (ts + (N-1) ⁇ ⁇ t)
  • Ts time change of the attitude quaternion q (corresponding to the angular velocity in the global coordinate system.
  • Ts ⁇ q (
  • the speed estimation unit 37 stores the value of the speed at the time TS obtained by the speed estimation unit 37 last time (initially, each component in the global coordinate system is reset to "0").
  • the estimated value ⁇ of the moving acceleration between the times TS and T is added to this velocity value to estimate the velocity value V (T) at the time T.
  • the speed estimation unit 37 further outputs the coordinate conversion unit 35 at each time point until T ⁇ t ⁇ TE at the time t after the time T with respect to the speed V (T) estimated here.
  • the acceleration information ag'(T + ⁇ t), ag'(T + 2 ⁇ t), ...
  • V (T + ⁇ t) obtained by removing the gravitational acceleration from By V (T) + ag'(T + ⁇ T)
  • the estimated value V (T + ⁇ t) of the velocity at time T + ⁇ t and V (T + ⁇ t) + ag'(T + 2 ⁇ t) that is, the accumulation (integral) of the output (excluding gravitational acceleration) ag'of the coordinate conversion unit 35 from time T to time T + 2 ⁇ T is added to V (T) to time (T + 2 ⁇ t).
  • V (TE- ⁇ t) + ag'(TE) that is, the accumulation (integral) of the output (excluding gravitational acceleration) ag'of the coordinate conversion unit 35 from time T to time T + TE is added to V (T).
  • V (TE) at time TE and To get each.
  • the speed estimation unit 37 outputs the estimated value at each of these time points. Further, the estimated value V (T) of the velocity at the time T is stored for the next calculation. This time T becomes the time TS of the next calculation.
  • the position estimation unit 38 stores the position value P (TS) at the time TS obtained by the position estimation unit 38 last time (initially, each component in the global coordinate system is reset to "0"). Keep it). Then, the position estimation unit 38 adds the estimated value V (T) of the velocity at the time T to the value of the stored position to obtain the position P (T) at the time T. Further, after the time T, the estimated value (integration result) of the velocity up to the time TE is accumulated (integrated), and V (T + ⁇ t) + V (T + 2 ⁇ t) + ... + V (TE ⁇ t) + V (TE) is obtained. It is obtained and added to the position P (T) to estimate the position P (TE) at the time TE.
  • the position estimation unit 38 outputs the position P (TE) at the time TE and uses it for a predetermined process such as a game application. Further, the position estimation unit 38 stores the estimated value P (T) of the position at the time T for the next calculation. As already described, this time T becomes the time TS of the next calculation.
  • the present embodiment has the above configuration and operates as in the following example.
  • the information processing apparatus 1 holds a first neural network which is an example of the first machine learning model and a second neural network which is an example of the second machine learning model. , Each is in a state of machine learning in advance.
  • learning parameters such as coupling weights and biases between layers of the first neural network are generated for each device 2 before the device 2 is shipped from the factory.
  • the learning parameters of the first neural network input the posture quaternion q when the device 2 is in a stationary state in each of a plurality of postures and the output of the temperature sensor included in the device 2.
  • the acceleration information a output by the inertial measurement unit included in the device 2 when in the state of this input data is output as the acceleration bias value d, and of the input data, it depends exclusively on the output of the temperature sensor. It was obtained by performing machine learning so as to output the acceleration scale factor value s.
  • the learning parameters such as the coupling weight and the bias between the layers of the second neural network are the information of the actual moving acceleration of the device 2 acquired while changing the posture and the moving acceleration of the device 2. (It may be obtained by taking an image including the device 2 and obtaining it based on the image) and the information of the angular velocity and the moving acceleration output by the inertial measurement unit included in the device 2.
  • the computer device that performs machine learning of the second neural network acquires the inertial measurement of the device 2 at a plurality of time points while changing the posture and the moving acceleration of the device 2. It holds information on the angular velocity (angular velocity in the sensor coordinate system) and moving acceleration (acceleration information in the sensor coordinate system) output by the unit.
  • this computer device obtains the time difference (angular velocity in the global coordinate system) of the attitude quaternion at each of the above points based on the information of the angular velocity at each of the above points.
  • this computer device removes acceleration bias and acceleration scale factor errors from the information on the moving acceleration at each of the above points in time, converts it to a value in the global coordinate system, and subtracts the gravity component to deduct the gravity component at each of the above points in time. Obtain information on the moving acceleration in (acceleration in the global coordinate system).
  • the computer device that performs machine learning of the second neural network inputs the angular velocity and acceleration (excluding the gravitational component) in the global coordinate system at each time point of N time points between the time range TS and TE.
  • the information on the actual movement acceleration of the device 2 obtained at the time T (TS ⁇ T ⁇ TE) within the time range (this movement acceleration does not include the gravitational acceleration) is output.
  • the second neural network is machine-learned so as to do so.
  • the information processing device 1 holds the information of the first and second neural networks in the machine-learned state in this way. Then, the information processing device 1 inputs a signal representing the acceleration information a of the inertial measurement unit included in the device 2 and the angular velocity value ⁇ from the device 2 connected by wire or wirelessly at regular timings. Accept repeatedly. Further, the information processing device 1 receives the input of the temperature information output by the temperature sensor included in the device 2 as well as the information such as the angular velocity output by the inertial measurement unit from the device 2.
  • the information processing device 1 determines that the user holding the device 2 is stationary (the device 2 is stationary), the information processing device 1 acquires the value of the angular velocity at that time a plurality of times, and obtains the average of the values, roll, pitch, and so on. Obtain and retain the angular velocity bias for each component of yaw.
  • the information processing device 1 Each time the angular velocity value ⁇ is input, the information processing device 1 subtracts the value of the corresponding component of the held angular velocity bias from the value of each component of the input angular velocity ⁇ , and after calibration. Obtain the value ⁇ 'of the angular velocity. Further, the information processing device 1 estimates the vector in the direction of gravity in the sensor coordinate system by using a Madgewick filter based on the angular velocity value ⁇ 'obtained here, and each time the angular velocity value is input. A posture quaternion q representing the posture of the device 2 in the global coordinate system at each time point is generated.
  • the information processing apparatus 1 uses the first neural network to obtain the acceleration bias value d and the acceleration scale factor values at each of the above time points from the attitude quaternion q obtained above and the temperature information received from the device 2. presume.
  • the information processing device 1 removes the error from the acceleration information a received from the device 2 at each time point, and uses the acceleration information a'at each time point as the acceleration bias value d and the estimated value of the acceleration scale factor at each time point.
  • a' S (a + d) Ask as.
  • the information processing device 1 converts the acceleration information a'(value in the sensor coordinate system) from which this error is removed into the acceleration information ag in the global coordinate system by using the attitude quaternion q obtained earlier.
  • the information processing apparatus 1 uses the second neural network, and a plurality of acceleration values in the global coordinate system input during the time from the time TS to TE, and the time difference (global coordinates) of the above-mentioned attitude quaternion.
  • the value of the angular velocity in the system) is used as the input data, and the true acceleration in the global coordinate system at the time T (that is, the time T where TS ⁇ T ⁇ TE) is past the time TE when the value of the acceleration was last input. Is estimated, and the estimated value ⁇ is obtained.
  • the information processing device 1 stores the previously obtained speed value at the time TS, and adds the estimated value ⁇ of the moving acceleration between the time TS and T to the speed value, and then adds the estimated value ⁇ of the moving acceleration between the time TS and T.
  • the velocity value V (T) at time T is estimated.
  • the information processing device 1 adds the velocity value at each time point (each time point at which acceleration information is obtained) from time T to time TE, and the acceleration information a'at each time point to V (T). Then, this information is accumulated to obtain the position information at the time TE. Then, the information processing device 1 uses this position information for a predetermined process such as a game application.
  • the acceleration information used as the input data of the second neural network uses the acceleration information after removing the gravity component, but the present embodiment is not limited to this, and the gravity is not limited to this.
  • the information of the acceleration in the state where the axis in the direction of gravity, in this example, the fixed gravitational acceleration 1G is added to the Y axis
  • the input data may be used as the input data.
  • the first and second neural networks perform machine learning at runtime while using the information processing device 1, that is, while executing the application on the information processing device 1. You may.
  • the norm (sum of squares) of each component of the angular velocity value ⁇ output by the device 2 at a predetermined timing falls below a predetermined threshold value continuously for a predetermined number of times. Occasionally, it is determined that the device 2 is stationary. Then, when the information processing device 1 determines that the device 2 is stationary, the information processing device 1 inputs the posture quaternion q and the output of the temperature sensor included in the device 2 to the first neural network as input data. Further, the information processing device 1 holds the acceleration information a output by the device 2 at this time.
  • the information processing device 1 obtains an acceleration bias value d, which is an output of the first neural network, and an acceleration scale factor value s.
  • the information processing device 1 then obtains the difference da of the acceleration information a held above as teacher data of the acceleration bias value d. Further, the difference between the teacher data of the acceleration scale factor value predetermined as a value depending on the output of the temperature sensor and the acceleration scale factor value s obtained as the output of the first neural network is obtained.
  • the learning parameters (information such as the connection weight and bias between layers) of the first neural network are updated by the backpropagation process so that these differences become "0".
  • the information processing device 1 holds information on the angular velocity and the moving acceleration output by the inertial measurement unit included in the device 2 at a plurality of time points. , At least one of the information of the actual position, speed, or moving acceleration of the device 2 at that time is acquired based on the image data captured by the imaging unit 15.
  • the acquisition of information such as the moving acceleration of the device 2 is performed by using a tracking means (other tracking means) other than the method using the inertial measurement unit.
  • the information processing device 1 that operates as another tracking means detects, for example, the position of a marker included in the device 2 from an image captured by the imaging unit 15. Then, the information processing device 1 obtains the time difference (velocity) of the detected position, and further obtains the time difference of this speed to acquire the information of the moving acceleration. If the information processing device 1 operating as another tracking means can directly detect the speed of the device 2 by some method other than using the inertial measurement unit, the moving acceleration can be obtained by obtaining the time difference of the speed. All you have to do is get the information. Similarly, if the information processing device 1 can directly detect the moving acceleration of the device 2 by some method other than using the inertial measurement unit, the information of the detected moving acceleration may be used as it is.
  • the information processing apparatus 1 has a time difference (global coordinates) of the attitude quaternion q (output of the attitude estimation unit 33 of the control unit 11) at each corresponding time point based on the information of the angular velocity held at each time point. (Angular velocity in the system) is obtained.
  • this information processing device 1 removes the errors of the acceleration bias and the acceleration scale factor from the acceleration information a at each of the above points, further converts them into values in the global coordinate system, and subtracts the gravity component. Specifically, the gravity component is subtracted from the output of the coordinate conversion unit 35 of the control unit 11. As a result, the information processing apparatus 1 obtains information on the moving acceleration (acceleration in the global coordinate system) at each of the above time points.
  • the information processing apparatus 1 inputs the angular velocity and acceleration (excluding the gravitational component) in the global coordinate system at each time point of N time points between the certain time range TS and TE among the above time points.
  • the output of the second neural network at the time of The difference from the information on the moving acceleration of the device 2 (this moving acceleration does not include the gravitational acceleration) is obtained, and the second neural network is machine-learned so that this difference becomes “0”.
  • the output can be adjusted in response to aging deterioration of the device 2 and environmental changes such as temperature in the usage scene.
  • the attitude quaternion q input during machine learning of the first neural network or when using the first neural network is a rotation component around the gravity axis (Y axis) (that is, a roll angle in the global coordinate system). May be removed.
  • the information processing apparatus 1 obtains the posture quaternion q'in which the roll angle component of the posture quotanion q to be input to the first neural network is set to a predetermined angle (for example, 0 degrees). Then, the information processing device 1 uses the posture quaternion q'obtained here as the posture quaternion that is actually input to the first neural network.
  • the degree of freedom is reduced only by the roll angle component, the variation of the training data to be the target of machine learning can be reduced, the machine learning result can be expected to converge relatively quickly, and the stability can be improved. Further, since the roll angle component in the global coordinate system does not substantially affect the bias error and the like, the influence on the accuracy of the estimated bias error is small.
  • the roll angle component is set to a predetermined angle
  • the posture quaternion q is information on the rotation angle (yaw angle, roll angle, pitch angle) around each axis of the XYZ coordinates. This may be converted into the attitude information and used as the input data of the first neural network. In this case, the roll angle information may be discarded and the yaw angle and pitch angle information may be used as input data of the first neural network.
  • the degree of freedom is reduced only by the roll angle component, so that the variation of the training data to be the target of machine learning can be reduced, and machine learning can be performed. Results can be expected to converge relatively quickly and stability can be improved. Further, since the roll angle component in the global coordinate system does not substantially affect the bias error and the like, the influence on the accuracy of the estimated bias error is small.
  • the machine learning result converges quickly and the stability can be improved, so it is suitable for runtime machine learning.
  • the training data is randomly deleted (for example, the value of the corresponding component is set to "0"), and the data omission state is set to the machine. It may be learned.
  • the acceleration information that becomes the input data is used.
  • the value corresponding to the missed information is set to "0" and used as input data.
  • the second neural network is machine-learned by including a flag indicating that there was a miss (set as “1” when it is missed) in the input data, and when there is no miss in actual use, the miss flag is set to "0".
  • the input data may be input as "1", and when the data is missed, the input data may be input with the missed flag set to "1".
  • the first neural network is used only for calibrating the acceleration information in the above description
  • the angular velocity may also be calibrated using the first neural network.
  • all the components of the angular velocity should be "0". Therefore, for each device 2, the value of the angular velocity at the stationary state is set together with the acceleration information. It may be corrected by machine learning with the neural network of 1.
  • the information processing device 1 and the device 2 are separate bodies, but in one example of the present embodiment, they may be integrally configured. Specifically, the information processing device 1 and the device 2 of the present embodiment may be realized as an integrated device such as a smartphone.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Navigation (AREA)
  • Manipulator (AREA)

Abstract

所定の時刻TSから時刻TEまでの間に複数の入力データを逐次的に受け入れ、当該受け入れた入力データに基づいて、時刻T(TS<T<TE)の時点での所定の推定データを推定する状態に機械学習されたモデル情報を用い、受け入れた入力データに基づく、時刻Tの時点での推定データを推定する情報処理装置1である。

Description

情報処理装置、情報処理方法、及びプログラム
 本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
 従来、IMU(inertial measurement unit:慣性計測ユニット)の出力する角速度や、加速度を表す信号を校正する方法として、次のような方法が知られている。
 従来の方法の一例では、加速度の信号を校正する方法として、IMUを含むデバイスが静止している状態であると判定したときにIMUが出力する信号(バイアス誤差)と、出力される信号から推定される計測値の最大値と、実際の計測値の最大値との差(スケールファクタ誤差)と、さらに非直交性誤差とを校正する方法が知られている。
 具体的にはバイアス誤差を表すベクトル(X,Y,Z軸方向の各成分からなる3次元のベクトル)dと、スケールファクタ誤差を表す対角行列(3×3の行列)Sと、非直交性誤差を表す上三角行列TNとを用い、IMUが出力する加速度の信号(上記3軸の各成分を含むベクトル値の信号)imuを、
imu′=TNS(imu+d)
と補正して、この補正後の加速度の値imu′を用いてデバイスの位置等の推定を行うこととしていた。
 しかしながら、上記従来例の校正の方法では、IMUが備えるセンサの歪みによる誤差や、力を受ける向きによる感度差による誤差が校正できない。さらに、上記従来例のように信号を補正しても、ホワイトノイズ誤差等、除去できない誤差もあるため、長時間に亘る時間積分等の処理に供することは実用的でない。
また、IMUから、実質的に同一の信号が予め定めた回数以上連続して得られたときにデバイスが静止していると判断する場合、デバイスが低速で移動している状況では静止していると判断されやすいという問題がある。また、デバイスの動き始めは静止と判断されやすく、この場合は、次にデバイスが静止するときのデバイスの位置の情報に誤りが生じる。
 このように、上記従来のIMUの出力を校正する方法では、IMUの出力に基づいてデバイスの位置を推定することが容易でないという問題点があった。
 本発明は上記実情に鑑みて為されたもので、IMUが出力する信号の誤差をより低減でき、また、IMUが出力する信号に基づいて、IMUを含むデバイスの位置の推定を実用的なものとする情報処理装置、情報処理方法、及びプログラムを提供することを、その目的の一つとする。
 本発明の一態様に係る情報処理装置は、所定の時刻TSから時刻TEまでの間に複数の入力データを逐次的に受け入れる手段と、前記受け入れた入力データに基づいて、時刻T(TS<T<TE)の時点での所定の推定データを推定する状態に機械学習されたモデル情報を用い、前記受け入れた入力データに基づく、前記時刻Tの時点での推定データを推定する推定手段と、を含むこととしたものである。
 また本発明の一態様に係る情報処理装置は、慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、当該推定される姿勢情報に基づく情報を入力データとし、当該入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、当該第1の機械学習モデルに、前記推定した前記デバイスの姿勢情報に基づく情報を入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、を有し、当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供されることとしたものである。
 本発明をデバイスが備えるIMUが出力する信号に適用することにより、当該信号の誤差をより低減でき、また、IMUが出力する信号に基づいて、IMUを含むデバイスの位置の推定を実用的なものとすることができる。
本発明の実施の形態に係る情報処理装置の例を表す構成ブロック図である。 本発明の実施の形態に係る情報処理装置に接続されるデバイスの例を表す構成ブロック図である。 本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。 本発明の実施の形態に係る情報処理装置が利用する第1のニューラルネットワークの構成例を表すブロック図である。 本発明の実施の形態に係る情報処理装置が利用する第2のニューラルネットワークの構成例を表すブロック図である。
 本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、図1に例示するように、例えばユーザが手に持って移動操作するデバイス2に対して有線、または無線にて通信可能に接続される。
 またこの情報処理装置1は、図1に示すように、制御部11と、記憶部12と、操作入力部13と、出力制御部14と、撮像部15とを含んで構成される。本実施の形態の一例では、この情報処理装置1は家庭用ゲーム機であり、デバイス2はそのゲームコントローラであってもよい。
 本実施の形態の例では、このデバイス2は、ユーザが手に把持して利用するコントローラデバイスである。このデバイス2には、例えば円柱状の筐体を有し、当該筐体にLEDなどのマーカーMが配されているものでもよい。情報処理装置1は撮像部15で撮像した画像からユーザが手に把持したデバイス2のマーカーMを検出して、デバイス2の位置や向き等の姿勢情報を取得してもよい。
 またこのデバイス2は、図2に例示するように、慣性計測ユニット(IMU)21と、コントローラ22と、通信部23とを含んで構成される。ここでIMU21は、互いに直交する3つの軸方向の加速度を計測する加速度センサ(3軸加速度センサ)と、ジャイロセンサとを含む。またこのIMU21は、方位を推定するため、磁気センサが含まれてもよい。
 コントローラ22は、マイクロプロセッサ等であり、内蔵するメモリ等に格納されたプログラムに従って動作する。このコントローラ22は、IMU21が出力する加速度センサの計測値(上記3軸方向のそれぞれへの移動加速度を表す値)である加速度情報aと、ジャイロセンサの表す角速度の値ωとを所定のタイミングごと(ここでの例では一定の時間間隔Δtごと)に繰り返し得て、通信部23に出力する。
 通信部23は、有線または無線にて情報処理装置1との間で通信可能に接続されており、コントローラ22が出力する加速度情報aと、角速度の値ωとを表す信号を、情報処理装置1に対して送出する。
 また、情報処理装置1の制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。例えばこの制御部11は、ゲームアプリケーションの処理として、利用者によるデバイス2の移動操作等に基づいてゲームアプリケーションの処理を実行する。
 具体的に本実施の形態の制御部11は、デバイス2から加速度情報aと、角速度の値ωとを表す信号の入力を受けて、次の処理を実行する。ここで受け入れる加速度情報aと、角速度の値ωとはいずれもデバイス2に固有な座標系(センサ座標系)での値である。この座標系は、例えば円柱状をなすデバイス2の長手方向(円柱の回転対称軸の方向)をζ軸とし、これに垂直な面内であって、デバイス2をユーザが把持したときに、ユーザ側となる方向を例えばη軸、上記面内で、ζ,η軸に直交する方向をξ軸として、このξηζ直交座標系とする。
 制御部11は、まず角速度の値ωから、デバイス2の姿勢を推定する。本実施の形態の例では、制御部11は、角速度の値ωに対してマッジウィックフィルタ(Madgwick Filter:Madgwick, An efficient orientation filter for inertial and inertial/magnetic sensor arrays, Technical Report, University of Bristol, UK., 2010.)を適用し、当該マッジウィックフィルタが出力する姿勢の推定結果に基づいて姿勢クオタニオンqを求める。この姿勢クオタニオンqが本発明の姿勢情報に相当する。ここで求められる姿勢クオタニオンqの各成分は、グローバル座標系(デバイス2の姿勢に関わらない座標系、例えば重力方向をY軸、これに垂直な床面であって、ユーザの前方方向をZ軸、Z,Y軸に直交する、上記床面内の軸方向をX軸としたXYZ直交座標系など)で表される回転軸方向を表すベクトルと、当該回転軸周りの回転角wとを含む。
 また制御部11は、姿勢クオタニオンqを入力として、加速度のバイアス誤差のベクトル値と、加速度のスケールファクタ誤差を表す行列の対角成分との推定値を出力するよう機械学習された状態にある第1のニューラルネットワークを利用し、デバイス2から受け入れた角速度得られた姿勢クオタニオンqをこの第1のニューラルネットワークに入力して、対応する加速度のバイアス誤差のベクトル値と、加速度のスケールファクタ誤差を表す行列の対角成分とを推定する。
 制御部11は、ここで推定したバイアス誤差のベクトル値とスケールファクタ誤差の行列(推定された対角成分を対応する要素に配した行列)とを用いて、デバイス2から受け入れた加速度情報aからこれらの誤差を除去した誤差除去後の加速度情報a′を求める。
 制御部11は、誤差除去後の加速度情報a′と、姿勢クオタニオンqとを用いて、加速度の値を、グローバル座標系の加速度情報agに変換する。さらに制御部11は、所定の時刻TSから時刻TEまでの間に逐次的に得られる上記加速度情報agを入力データとして、当該入力データに基づいて、時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)の時点での所定のグローバル座標系での加速度の真の値を推定して出力するよう機械学習された状態にある第2のニューラルネットワーク(モデル情報)を利用して、上記入力された加速度情報agに基づいて上記時刻Tの時点での推定データである、加速度の真の値の推定値αを得る。
 制御部11は、この時刻Tの時点での加速度の推定値αと、この時刻T以降、時刻TEまでに得られた加速度情報agとを用いて、グローバル座標系での速度の値と、位置の値とを得る。この制御部11の詳しい処理の内容については、後に述べる。
 記憶部12は、ディスクデバイスやメモリデバイスをふくみ、制御部11によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。
 操作入力部13は、コントローラであるデバイス2から入力される信号を制御部11に出力する。この信号には既に述べた加速度情報aと、角速度の値ωとを表す信号が含まれる。
 出力制御部14は、ディスプレイ等の表示デバイスに接続され、制御部11から入力される指示に従って画像を表示する。撮像部15は、カメラ等であり、所定の方向の画像を撮像して制御部11に出力する。本実施の形態では、この撮像部15は、ユーザが所在する方向の画像を撮像するよう設置される。
 次に、本実施の形態の制御部11の動作について説明する。本発明の実施の形態に係る制御部11は、記憶部12に格納されたプログラムを実行して、図3に例示する機能的構成を実現する。
 制御部11は、機能的に、検出値受入部31と、角速度誤差除去部32と、姿勢推定部33と、加速度誤差除去部34と、座標変換部35と、ノイズ除去部36と、速度推定部37と、位置推定部38とを含んで構成される。
 検出値受入部31は、デバイス2から加速度情報aと、角速度の値ωとを表す信号の入力を受け入れる。検出値受入部31は、受け入れた角速度の値ωを、角速度誤差除去部32に出力する。また、この検出値受入部31は、受け入れた加速度情報aを、角速度誤差除去部32及び姿勢推定部33と、加速度誤差除去部34とに出力する。ここで角速度の値ωには、ξ軸周りの回転角度(ヨー角)と、η軸周りの回転角度(ピッチ角)及び、ζ軸周りの回転角度(ロール角)とのそれぞれの角度方向に対する角速度の値が含まれる。
 角速度誤差除去部32は、所定のタイミング(例えば最初に角速度の値が入力された時点)で、ユーザに対して一時的に静止するように指示する画面を表示するよう、出力制御部14に指示する。そしてこの角速度誤差除去部32は、ユーザが静止したと判断したとき(例えばデバイス2が所定のタイミングごとに出力する角速度の値の各成分のノルム(二乗和)が、所定の回数だけ連続して予め定めたしきい値を下回ったと判断したとき)に、その時点での角速度の値を複数回取得して、その平均を、ロール、ピッチ、ヨーの各成分ごとに角速度バイアスとして求める。角速度誤差除去部32は、ここで求めた角速度バイアスを記憶部12等に保持する。その後、角速度誤差除去部32は、ユーザに対してキャリブレーションが終了したことを示す画面を提示するよう出力制御部14に指示する。
 また角速度誤差除去部32は、角速度バイアスを得た後は、入力された角速度の値ωの各成分の値から、対応する角速度バイアスの成分の値を差し引いて、キャリブレーション後の角速度の値ω′を出力する。
 姿勢推定部33は、角速度誤差除去部32が出力する角速度の値ω′からドリフト誤差を除去するとともに、センサ座標系での重力方向のベクトルを推定し、グローバル座標系でのデバイス2の姿勢を表す姿勢クオタニオンqを生成して出力する。
 この姿勢推定部33の動作は、例えばマッジウィックフィルタを用いた広く知られた方法を採用できるので、ここでの詳しい説明は省略する。
 加速度誤差除去部34は、図4に例示するように、入力層41と、中間層42と、出力層43とを含む第1のニューラルネットワークを用いて、姿勢クオタニオンqから加速度バイアス値d及び加速度スケールファクタの値sを推定する。
 この第1のニューラルネットワークは、各層間を全結合ネットワークで結合したものであり、入力層41及び中間層42は活性化関数として例えばReLU等の公知のものを採用する。
 本実施の形態の例では、第1のニューラルネットワークの各層間の結合重みやバイアス情報等の学習パラメータは、デバイス2ごとに、デバイス2の工場出荷前に生成される。この学習パラメータは、例えばデバイス2内に不揮発性のメモリを配してこのメモリ内に格納されていてもよい。この場合はデバイス2が情報処理装置1に接続された際に、デバイス2から学習パラメータが情報処理装置1へ転送され、情報処理装置1は、この第1のニューラルネットワークの各層間の結合重みを、この学習パラメータによって設定して、第1のニューラルネットワークを利用する。あるいは、デバイス2ごとに固有な識別情報を割り当てておき、ネットワークを介してアクセス可能なサーバに、識別情報に関連付けて、当該識別情報で識別されるデバイス2について予め機械学習して得られている学習パラメータを保持しておいてもよい。この場合、デバイス2が情報処理装置1に接続された際に情報処理装置1がデバイス2の識別情報を参照し、当該識別情報に関連付けてサーバに保持されている学習パラメータを取得して、の第1のニューラルネットワークの各層間の結合重みを設定する。
 またこの学習パラメータは、次のようにして得られる。デバイス2を本実施の形態の情報処理装置1に接続し、デバイス2を複数の姿勢で静止させた状態とする。そして情報処理装置1の制御部1がデバイス2が静止した状態であると判断したときに、上記姿勢推定部33が出力する姿勢クオタニオンqを入力とし、加速度情報aが加速度バイアス値dとして出力されるように機械学習を行う。また、加速度スケールファクタ値(加速度スケールファクタ誤差を表す行列の対角成分)sについては、その各成分の値が、姿勢クオタニオンqの値によらずに一定となるよう機械学習する。
 この機械学習の処理は、姿勢クオタニオンqを入力層41に入力したときの第1のニューラルネットワークの出力層43の出力の各値と、当該各値に対応する加速度情報a及び予め定めた加速度スケールファクタ誤差を表す行列Sの各成分の値sとの差に基づくバックプロパゲーションの処理など、広く知られた方法を用いて行われる。
 またここでの例では、第1のニューラルネットワークに入力される入力データは姿勢クオタニオンqであるものとしたが、本実施の形態はこれに限られるものではなく、環境温度(デバイス2が備える、図示しない温度センサが計測した温度)や、デバイス2の動作時間(電源がオンとなってからの経過時間)、湿度(デバイス2が備える、図示しない湿度センサが計測した湿度)をさらに含んでもよい。
 さらにここではデバイス2が静止した状態にあるときの加速度情報aを教師データとしたが、本実施の形態はこれに限らず、デバイス2がユーザによって移動されている間の、デバイス2の振動の大きさや加速度の変化(加速度情報aの時間変化)を姿勢クオタニオンqとともに入力データに含めてもよい。
 なお、デバイス2が静止した状態であるか否かの判断は、例えば、
・デバイス2が所定のタイミングごとに出力する角速度の値の各成分のノルム(二乗和)が、所定の回数だけ連続して予め定めたしきい値を下回ること、
・デバイス2が所定のタイミングごとに出力する加速度の絶対値が、所定の回数だけ連続して予め定めたしきい値を下回ること、あるいは、
・デバイス2が出力した加速度の時間差分(デバイス2が異なるタイミングで出力する二回分の加速度の差)の絶対値が、所定の回数だけ連続して予め定めたしきい値を下回ること、
などを判断することで行うことができる。
 また、制御部11の加速度誤差除去部34は、第1のニューラルネットワークを用いて推定した加速度バイアス値dと、加速度スケールファクタ値sとを用いて、加速度情報aからこれらの誤差を除去する。なお、加速度バイアス値d及び加速度情報aは、いずれもセンサ座標系の各成分方向の加速度の値を含む3次元のベクトルであり、加速度スケールファクタ値sは、スケールファクタ誤差を表す対角行列(3×3の行列)Sの各対角成分を表す。
 本実施の形態の例では、加速度誤差除去部34は、誤差を除去した加速度情報a′を、
a′=S(a+d)
あるいは、
a′=Sa+d
として求める。
 座標変換部35は、加速度誤差除去部34が出力する、誤差を除去した加速度情報a′(センサ座標系での値)を、姿勢推定部33が出力する姿勢クオタニオンqを用いて、グローバル座標系での加速度情報agに変換する。
 ノイズ除去部36は、図5に例示するように、LSTM(Long Short Term Memory)層51と、第1の全結合層52と、第2の全結合層53と、出力層54とを含む第2のニューラルネットワークを用い、所定の時間の間に入力される複数の、グローバル座標系での加速度の値を入力データとして、最後に当該加速度の値が入力された時点より過去の時点における、グローバル座標系での加速度の真の値を推定する。
 具体的に、この第2のニューラルネットワークの各層間の結合重みやバイアス等の学習パラメータは、少なくとも初期(この制御部11が実行するプログラムのインストールの時点)では、予め定めた値に設定される。この学習パラメータは、当該少なくとも初期の状態では、デバイス2の製造元の側で生成される。
 一例としてこの第2のニューラルネットワークの学習パラメータは、次のように得られる。本実施の形態の情報処理装置1は、ユーザがデバイス2を手に把持して移動させている場面を、このデバイス2を撮像部15で撮像し、当該撮像した画像から、時刻t0,t1,…tnにおけるn+1回分のグローバルのデバイス2の位置情報p(t0),p(t1)…を得る。ここでti+1-tiは、一定の時間Δtであるとする。また情報処理装置1は、ここで得られた位置情報の時間差分v(t1)=(p(t1)-p(t0))/Δt,v(t2)=(p(t2)-p(t1))/Δt…を求め、さらに各時点の時間差分に対してローパスフィルタを適用して、デバイス2の移動速度の情報を得、さらに移動速度の情報の当初速度v(t1)との時間差分(つまり当初の時点からの速度の差分)であるL(t2)=(v(t2)-v(t1))/Δt,L(t3)=(v(t3)-v(t1))/(2Δt)…を求め、さらに各時点の速度の差分に対してローパスフィルタを適用して、移動加速度の教師データとする。なお、移動加速度の教師データは、さらに、ローパスフィルタ適用後の差分を累算して位置情報との整合がとれるよう補正されてもよい。これらの処理は、画像データに基づく速度や加速度の取得の処理として広く知られた種々の方法を採用できる。
 一方、情報処理装置1は、このデバイス2から時刻t2,t2…tnの時点でそれぞれ入力される加速度情報a及び、角速度の値ωを用いて、座標変換部35が出力する、各時点でのグローバル座標系での加速度情報ag(t2),ag(t3),…ag(tn)を得ておく。
 また情報処理装置1は、姿勢推定部33が出力する、各時点での姿勢クオタニオンの情報q(t1),q(t2)…q(tn)から、上記各時点でのグローバル座標系での加速度情報ag(t2),ag(t3),…ag(tn)のそれぞれのY軸成分(グローバル座標系で鉛直下方方向)の値から、重力加速度に相当する値を差し引いて重力成分を除いた加速度情報ag′(t2),ag′(t3),…ag′(tn)を得る。
 さらに情報処理装置1は、各時点に対する姿勢クオタニオンの時間差分である角速度
ωq(t2)=q(t2)-q(t1)
ωq(t3)=q(t3)-q(t2)…
を求めておく。
 情報処理装置1は、第2のニューラルネットワークの学習パラメータをランダムに初期化し、加速度情報ag(t2)からag(t2+N・Δt)のN個(Nを2以上の自然数として、N・Δtの時間に亘って入力される加速度情報ag)及びN個の角速度ωq(t2),ωq(t3),…ωq(t2+N・Δt)を入力データとしてLSTM層51に入力したときの出力層54の出力値を得る。情報処理装置1は、時刻t2+M・Δt(ただし0<M<Nなる自然数)の教師データL(t2+M・Δt)=v(t2+M・Δt)-v(t1)と、この出力値との差に基づいて、重力加速度を除いた加速度情報ag′(t2)からag′(t2+N・Δt)及び角速度ωq(t2),ωq(t3),…ωq(t2+N・Δt)を入力したときの第2のニューラルネットワークの出力値が、教師データL(t2+M・Δt)に一致することとなるよう、第2のニューラルネットワークの学習パラメータを更新する。この更新の処理は、広く知られたバックプロパゲーション等の処理によって実行できる。
 情報処理装置1は、この機械学習の処理を多数の入力データと教師データとの対を用いて行う。そして、第2のニューラルネットワークを、ある時刻TSから時刻TE(ただしTE=TS+Δt×N)までの間に逐次的に得られる、重力加速度を除いたN個の加速度情報ag′、及び角速度ωを入力データとして、当該入力データに基づいて、時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)の時点での所定のグローバル座標系での加速度の真の値を推定して出力するよう機械学習した状態とする。
 制御部11のノイズ除去部36は、以上に例示したように機械学習した状態にある第2のニューラルネットワークのLSTM(Long Short Term Memory)層51に、直近の時刻TSから時刻TEまでの間に逐次的に得られる、重力加速度を除いたN個の加速度情報ag′と、姿勢クオタニオンqの時間変化(グローバル座標系での角速度に相当する)である
ωq(tS+Δt)=q(tS+Δt)-q(ts)
ωq(tS+2Δt)=q(tS+2Δt)-q(ts+Δt)

ωq(tS+NΔt)=q(tS+NΔt)-q(ts+(N-1)×Δt)
とを入力データとして入力する。
 ノイズ除去部36は、当該入力データに基づいて第2のニューラルネットワークが出力する、時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)の時点での所定のグローバル座標系での加速度の真の値の推定値αを得る。
 速度推定部37は、前回、速度推定部37が求めた時刻TSの時点での速度の値を記憶しており(当初はグローバル座標系での各成分とも「0」にリセットしておく)、この速度の値に、時刻TSからTまでの間の移動加速度の推定値αを加算して、時刻Tでの速度の値V(T)を推定する。
 また、速度推定部37は、ここで推定した速度V(T)に対してさらに、時刻Tより後の時刻tであって、T<t≦TEまでの各時点での座標変換部35の出力から重力加速度を除いて得た加速度情報ag′(T+Δt),ag′(T+2Δt),…ag′(TE)を用い、
V(T)+ag′(T+ΔT)により、時刻T+Δtでの速度の推定値V(T+Δt)と、
V(T+Δt)+ag′(T+2Δt)、つまり時刻Tから時刻T+2ΔTまでの座標変換部35の出力(重力加速度を除く)ag′の累算(積分)をV(T)に加算して時刻(T+2Δt)での速度の推定値V(T+2Δt)と…
V(TE-Δt)+ag′(TE)、つまり時刻Tから時刻T+TEまでの座標変換部35の出力(重力加速度を除く)ag′の累算(積分)をV(T)に加算して、時刻TEでの速度の推定値V(TE)と、
をそれぞれ得る。
 速度推定部37はこれら各時点での推定値を出力する。また、時刻Tでの速度の推定値V(T)を、次回の演算のために記憶しておく。この時刻Tが次回の演算の時刻TSとなる。
 位置推定部38は、前回、位置推定部38が求めた時刻TSの時点での位置の値P(TS)を記憶している(当初はグローバル座標系での各成分とも「0」にリセットしておく)。そして位置推定部38は、当該記憶している位置の値に、時刻Tでの速度の推定値V(T)を加えて時刻Tでの位置P(T)を得る。また、時刻Tより後、時刻TEまでの速度の推定値(積分の結果)を累算(積分)して、V(T+Δt)+V(T+2Δt)+…+V(TE-Δt)+V(TE)を求め、これを位置P(T)に加算して、時刻TEでの位置P(TE)を推定する。
 位置推定部38は、時刻TEでの位置P(TE)を出力して、ゲームアプリケーション等の所定の処理に供する。また位置推定部38は、時刻Tでの位置の推定値P(T)を、次回の演算のために記憶しておく。既に述べたように、この時刻Tが次回の演算の時刻TSとなる。
[動作]
 本実施の形態は、以上の構成を備えており、次の例のように動作する。なお、以下の説明で情報処理装置1は、第1の機械学習モデルの例である第1のニューラルネットワークと、第2の機械学習モデルの例となる第2のニューラルネットワークとを保持しており、それぞれ予め機械学習した状態としておく。
 すなわち、第1のニューラルネットワークの層間の結合重みやバイアス等の学習パラメータは、デバイス2ごとに、デバイス2の工場出荷前に生成されるものである。本実施の形態の例では、この第1のニューラルネットワークの学習パラメータは、デバイス2を複数の姿勢でそれぞれ静止させた状態としたときの姿勢クオタニオンqとデバイス2が備える温度センサの出力とを入力データとし、この入力データの状態にあるときに、デバイス2が備える慣性計測ユニットが出力する加速度情報aを、加速度バイアス値dとして出力し、また入力データのうち、専ら温度センサの出力に依存する加速度スケールファクタ値sを出力するように機械学習を行って得たものである。
 また本実施の形態の例では、第2のニューラルネットワークの層間の結合重みやバイアス等の学習パラメータは、デバイス2の姿勢や移動加速度を変化させつつ取得した、実際のデバイス2の移動加速度の情報(デバイス2を含む画像を撮像し、当該画像に基づいて得ることとすればよい)と、デバイス2が備える慣性計測ユニットが出力する角速度及び移動加速度の情報とを用いて得られる。
 この例では、第2のニューラルネットワークの機械学習を行うコンピュータデバイス(情報処理装置1等)は、上記デバイス2の姿勢や移動加速度を変化させつつ取得した、複数の時点でデバイス2が備える慣性計測ユニットが出力する角速度(センサ座標系での角速度)及び移動加速度(センサ座標系での加速度情報)の情報を保持する。
 そしてこのコンピュータデバイスは、上記各時点での角速度の情報に基づいて、上記各時点での姿勢クオタニオンの時間差分(グローバル座標系での角速度)を得る。またこのコンピュータデバイスは、上記各時点での移動加速度の情報から加速度バイアスや加速度スケールファクタの誤差を除き、さらにグローバル座標系での値に変換して、重力成分を差引きして、上記各時点での移動加速度の情報(グローバル座標系での加速度)を得る。
 第2のニューラルネットワークの機械学習を行うコンピュータデバイスは、ある時間範囲TSからTEの間のN個の時刻の各時点でのグローバル座標系での角速度及び加速度(重力成分を除いたもの)を入力データとしたとき、当該時間範囲内にある時刻T(TS<T<TE)で得られた、実際のデバイス2の移動加速度の情報(この移動加速度には、重力加速度は含まれない)を出力するよう、第2のニューラルネットワークを機械学習する。
 情報処理装置1は、こうして機械学習された状態にある第1、第2のニューラルネットワークの情報を保持する。そして、情報処理装置1は、有線または無線にて接続されたデバイス2から、当該デバイス2が備える慣性計測ユニットの加速度情報aと、角速度の値ωとを表す信号の入力を、一定のタイミングごとに繰り返し受け入れる。また情報処理装置1は、デバイス2から慣性計測ユニットが出力する角速度等の情報とともに、当該デバイス2が備える温度センサが出力する温度の情報の入力を受け入れる。
 情報処理装置1は、デバイス2を保持したユーザが静止した(デバイス2が静止した)と判断したときに、その時点での角速度の値を複数回取得して、その平均を、ロール、ピッチ、ヨーの各成分ごとに角速度バイアスとして求めて保持しておく。
 情報処理装置1は、角速度の値ωが入力されるごとに、当該入力された角速度ωの各成分の値から、保持している角速度バイアスの対応する成分の値を差し引いて、キャリブレーション後の角速度の値ω′を得る。さらに情報処理装置1は、ここで得た角速度の値ω′に基づいてマッジウィックフィルタを用いるなどして、センサ座標系での重力方向のベクトルを推定し、角速度の値が入力されるごとの各時点でのグローバル座標系でのデバイス2の姿勢を表す姿勢クオタニオンqを生成する。
 また情報処理装置1は、第1のニューラルネットワークを用いて、上記得られた姿勢クオタニオンq及びデバイス2から受けた温度の情報から、上記各時点での加速度バイアス値d及び加速度スケールファクタの値を推定する。
 そして情報処理装置1は、デバイス2から各時点で受けた加速度情報aから誤差を除去した、各時点での加速度情報a′を、これら各時点での加速度バイアス値d及び加速度スケールファクタの推定値sを配した行列Sと用いて、
a′=S(a+d)
として求める。
 情報処理装置1は、先に求めた姿勢クオタニオンqを用いて、この誤差を除去した加速度情報a′(センサ座標系での値)をグローバル座標系での加速度情報agに変換する。
 そして情報処理装置1は、第2のニューラルネットワークを用い、時刻TSからTEまでの時間の間に入力される複数の、グローバル座標系での加速度の値、及び上記姿勢クオタニオンの時間差分(グローバル座標系での角速度の値)を入力データとして、最後に当該加速度の値が入力された時点TEより過去の時点T(つまりTS<T<TEなる時刻T)における、グローバル座標系での加速度の真の値を推定し、当該推定値αを得る。
 また情報処理装置1は、時刻TSの時点での前回求めた速度の値を記憶しており、この速度の値に、時刻TSからTまでの間の移動加速度の推定値αを加算して、時刻Tでの速度の値V(T)を推定する。
 さらに情報処理装置1は、時刻Tから時刻TEまでの各時点(加速度の情報が得られている各時点)での速度の値を、V(T)に各時点での加速度情報a′を加算して求め、さらにこの情報を累算して、時刻TEにおける位置情報を求める。そして情報処理装置1は、この位置情報を、ゲームアプリケーション等の所定の処理に供する。
[重力成分]
 なお、ここまでの説明では、第2のニューラルネットワークの入力データとする加速度の情報は、重力成分を除去した後の加速度の情報を用いていたが、本実施の形態はこれに限られず、重力成分を除去しない状態での(重力方向の軸、ここでの例ではY軸に固定の重力加速度1Gが加算された状態での)加速度の情報を入力データとして用いてもよい。
[ランタイム学習]
 また、本実施の形態では、第1,第2のニューラルネットワークは、情報処理装置1を利用している間、つまり情報処理装置1でアプリケーションを実行している間に、ランタイムに機械学習を行ってもよい。
 一例として、情報処理装置1は、デバイス2が所定のタイミングごとに出力する角速度の値ωの各成分のノルム(二乗和)が、所定の回数だけ連続して予め定めたしきい値を下回ったときに、デバイス2が静止していると判断する。そして情報処理装置1は、デバイス2が静止していると判断したときに、姿勢クオタニオンqとデバイス2が備える温度センサの出力とを入力データとして第1のニューラルネットワークに入力する。また情報処理装置1は、このときにデバイス2が出力している加速度情報aを保持しておく。
 情報処理装置1は、第1のニューラルネットワークの出力である加速度バイアス値dと、加速度スケールファクタ値sとを得る。情報処理装置1は、そして、上記保持している加速度情報aを、加速度バイアス値dの教師データとしてその差d-aを求める。また、温度センサの出力に依存する値として予め定められた加速度スケールファクタ値の教師データと、第1のニューラルネットワークの出力として得られた加速度スケールファクタ値sとの差を求める。
 そしてこれらの差が「0」となるようにバックプロパゲーションの処理により、第1のニューラルネットワークの学習パラメータ(層間の結合重みやバイアス等の情報)を更新する。
 また情報処理装置1は、デバイス2が撮像部15の撮像する画角内にある場合には、複数の時点で、デバイス2が備える慣性計測ユニットが出力する角速度及び移動加速度の情報を保持するとともに、その時点での実際のデバイス2の位置、速度、あるいは移動加速度の少なくともいずれかの情報を、撮像部15が撮像した画像データに基づいて取得する。
 具体的にこのデバイス2の移動加速度等の情報の取得は、慣性計測ユニットを用いる方法以外のトラッキング手段(他のトラッキング手段)を用いて行う。ここで、他のトラッキング手段として動作する情報処理装置1は、例えばデバイス2が備えるマーカーの位置を、撮像部15が撮像した画像から検出する。そして情報処理装置1は、当該検出した位置の時間差分(速度)を得て、さらにこの速度の時間差分を得ることで移動加速度の情報を取得する。また他のトラッキング手段として動作する情報処理装置1は、デバイス2の速度を、慣性計測ユニットを用いる以外の、何らかの方法で直接的に検出できる場合、当該速度の時間差分を得ることで移動加速度の情報を取得すればよい。同様に情報処理装置1は、デバイス2の移動加速度を、慣性計測ユニットを用いる以外の、何らかの方法で直接的に検出できる場合、当該検出した移動加速度の情報をそのまま用いてもよい。
 この例では、情報処理装置1は、上記各時点で保持した角速度の情報に基づいて、対応する各時点での姿勢クオタニオンq(制御部11の姿勢推定部33の出力)の時間差分(グローバル座標系での角速度)を得る。
 またこの情報処理装置1は、上記各時点での加速度情報aから加速度バイアスや加速度スケールファクタの誤差を除き、さらにグローバル座標系での値に変換し、重力成分を差引きする。具体的には制御部11の座標変換部35の出力から重力成分を差引きする。そしてこれにより、情報処理装置1は、上記各時点での移動加速度の情報(グローバル座標系での加速度)を得る。
 そして情報処理装置1は、上記各時点のうち、ある時間範囲TSからTEの間のN個の時刻の各時点でのグローバル座標系での角速度及び加速度(重力成分を除いたもの)を入力データとしたときの第2のニューラルネットワークの出力と、当該時間範囲内にある時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)で得られた、実際のデバイス2の移動加速度の情報(この移動加速度には、重力加速度は含まれない)との差を求め、この差が「0」となるように第2のニューラルネットワークを機械学習する。
 このようにランタイムに機械学習を行うこととすれば、デバイス2の経年劣化や、使用場面で温度などの環境変化に対応して、出力を調整できる。
[重力方向を軸とする回転を除く機械学習]
 さらに本実施の形態の一例では、第1のニューラルネットワークの機械学習時、またはその利用時に入力する姿勢クオタニオンqは、重力軸(Y軸)周りの回転成分(すなわちグローバル座標系でのロール角)を取り除いたものとしてもよい。具体的に情報処理装置1は、第1のニューラルネットワークに入力するべき姿勢クオタニオンqのうち、そのロール角成分を予め定めた角度(例えば0度)に設定した、姿勢クオタニオンq′を求める。そして情報処理装置1は、実際に第1のニューラルネットワークに入力する姿勢クオタニオンとして、ここで求めた姿勢クオタニオンq′を用いることとする。
 このようにすると、ロール角成分だけ自由度が減るため、機械学習の対象となる訓練データのバリエーションを少なくでき、機械学習結果が比較的早く収束することが期待でき、また安定性を向上できる。また、グローバル座標系でのロール角成分は、実質的にバイアス誤差等に影響しないので、推定するバイアス誤差の精度への影響も軽微である。
 また、ここではロール角成分を予め定めた角度に設定することとしたが、これに代えて、姿勢クオタニオンqをXYZ座標の各軸周りの回転角度(ヨー角,ロール角,ピッチ角)の情報に変換してこれを姿勢情報とし、第1のニューラルネットワークの入力データとしてもよい。この場合、ロール角の情報は破棄し、ヨー角、ピッチ角の情報を第1のニューラルネットワークの入力データとして用いることとしてもよい。
 このように、ヨー角、ピッチ角の情報を第1のニューラルネットワークの入力データとして用いれば、ロール角成分だけ自由度が減るため、機械学習の対象となる訓練データのバリエーションを少なくでき、機械学習結果が比較的早く収束することが期待でき、また安定性を向上できる。また、グローバル座標系でのロール角成分は、実質的にバイアス誤差等に影響しないので、推定するバイアス誤差の精度への影響も軽微である。
 この例によると、迅速に機械学習結果が収束し、安定性を向上できるので、ランタイムの機械学習を行う際には好適である。
[データの取りこぼし]
 また、デバイス2が無線にて情報処理装置1との間で通信を行っている場合、情報処理装置1が、デバイス2が出力する加速度情報や、角速度の情報の受信に失敗する場合(データの取りこぼしが発生する場合)が想定される。
 このような事態に対応するため、第2のニューラルネットワークの機械学習時には、訓練データをランダムに欠損させて(例えば対応する成分の値を「0」に設定して)、データの取りこぼし状態を機械学習させることとしてもよい。
 この例では、実際の第2のニューラルネットワークの使用時(機械学習後の第2のニューラルネットワークを使用して、加速度の真値の推定を行っているとき)に、入力データとなる加速度の情報等に取りこぼしが生じたときには、当該取りこぼした情報に対応する値を「0」に設定して入力データとする。
 あるいは取りこぼしがあったことを表すフラグ(取りこぼしたときに「1」とする)を入力データに含めて第2のニューラルネットワークを機械学習し、実際の使用時に取りこぼしがないときには、取りこぼしフラグを「0」として入力データを入力し、取りこぼしがあったときには、取りこぼしフラグを「1」として入力データを入力するようにしてもよい。
[角速度に対する適用]
 また、ここまでの説明において第1のニューラルネットワークは、加速度の情報の校正にのみ利用しているが、角速度についても第1のニューラルネットワークを用いて校正するようにしてもよい。この例では、デバイス2が静止していると判断されるとき、角速度のすべての成分が「0」となるべきであるので、デバイス2ごとに、静止時の角速度の値を、加速度情報とともに第1のニューラルネットワークで機械学習して、補正することとすればよい。
[変形例]
 以上の例では、情報処理装置1とデバイス2は別体のものとしていたが、本実施の形態の一例では、これらは一体的に構成されてもよい。具体的に本実施の形態の情報処理装置1及びデバイス2は、スマートフォンなどの一体のデバイスとして実現されてもよい。
 1 情報処理装置、2 デバイス、11 制御部、12 記憶部、13 操作入力部、14 出力制御部、15 撮像部、21 IMU、22 コントローラ、23 通信部、31 検出値受入部、32 角速度誤差除去部、33 姿勢推定部、34 加速度誤差除去部、35 座標変換部、36 ノイズ除去部、37 速度推定部、38 位置推定部、41 入力層、42 中間層、43 出力層、52 第1の全結合層、53 第2の全結合層、54 出力層。
 

Claims (12)

  1.  所定の時刻TSから時刻TEまでの間に複数の入力データを逐次的に受け入れる手段と、
     前記受け入れた入力データに基づいて、時刻T(TS<T<TE)の時点での所定の推定データを推定する状態に機械学習されたモデル情報を用い、前記受け入れた入力データに基づく、前記時刻Tの時点での推定データを推定する推定手段と、
     を含む情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記入力データは、所定の対象物の加速度に関する測定データであり、
     前記推定データは、所定の対象物の加速度の真値を推定したデータであり、
     前記時刻Tより後の時刻に入力された入力データを、前記推定データに対して累算して、前記所定の対象物の速度または位置の少なくとも一方に関する情報を生成する情報処理装置。
  3.  慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、
     前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、
     当該推定される姿勢情報に基づく情報を入力データとし、当該入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、当該第1の機械学習モデルに、前記推定した前記デバイスの姿勢情報に基づく情報を入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、
    を有し、
     当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供される情報処理装置。
  4.  慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、
     前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、
     前記推定される姿勢情報のうち、重力方向の回転角を、予め定めた角度に設定した姿勢情報を入力データとして用い、当該入力データと前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、前記推定した前記デバイスの姿勢情報のうち、重力方向の回転角を、予め定めた角度に設定して得た情報を、当該第1の機械学習モデルに入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、
    を有し、
     当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供される情報処理装置。
  5.  慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、
     前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、
     前記推定される姿勢情報のうち、重力方向の回転角を除いた情報を入力データとして用い、当該入力データと前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、前記推定した前記デバイスの姿勢情報のうち、重力方向の回転角を除いた情報を、当該第1の機械学習モデルに入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、
    を有し、
     当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供される情報処理装置。
  6.  請求項3から5のいずれか一項に記載の情報処理装置であって、
     前記推定手段が用いる第1の機械学習モデルは、前記入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差及び加速度スケールファクタ値との関係を機械学習した状態にあり、
     前記推定手段は、前記推定した前記デバイスの姿勢情報に基づく入力データを、当該第1の機械学習モデルに入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差及び加速度スケールファクタ値を推定する推定手段であり、
     当該推定されたバイアス誤差及び加速度スケールファクタ値が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供される情報処理装置。
  7.  請求項3から6のいずれか一項に記載の情報処理装置であって、
     所定の時刻TSから時刻TEまでの間の複数の時点で、前記デバイスの前記校正の処理が行われた移動加速度の情報を逐次的に受け入れる手段と、
     前記受け入れた移動加速度の情報を入力データとして、時刻T(TS<T<TE)の時点での所定の対象物の加速度の真値を推定する状態に機械学習された第2の機械学習モデル情報を用い、前記受け入れた移動加速度の情報に基づく、前記時刻Tの時点での所定の対象物の加速度の真値を推定する推定手段と、
     をさらに含み、
     前記時刻Tより後の時刻に入力された移動加速度の情報を、前記推定した真値に対して累算して、前記デバイスの速度または位置の少なくとも一方に関する情報を生成する情報処理装置。
  8.  請求項7に記載の情報処理装置であって、
     前記慣性計測ユニットが出力する情報とは異なる情報に基づいて前記デバイスの位置、速度、移動加速度のいずれかの情報を取得する、他のトラッキング手段をさらに含み、
     所定の時刻TSから時刻TEまでの間の複数の時点で受け入れた、前記デバイスの前記校正の処理が行われた移動加速度の情報と、前記時刻T(TS<T<TE)の時点で当該他のトラッキング手段が取得した位置、速度、移動加速度のいずれかの情報とが、前記第2の機械学習モデルの機械学習に供される情報処理装置。
  9.  請求項7または8に記載の情報処理装置であって、
     前記第2の機械学習モデルは、ランダムに欠損させた入力データを利用して、当該入力データを入力したときの、前記時刻T(TS<T<TE)の時点での所定の対象物の加速度の真値を推定する状態に機械学習されている情報処理装置。
  10.  請求項3から9のいずれか一項に記載の情報処理装置であって、
     前記デバイスが静止した状態にあるか否かを判定する手段をさらに含み、
     前記デバイスが静止した状態にあると判定されたときに、前記慣性計測ユニットが出力する移動加速度の情報を出力するべきバイアス誤差として、前記推定される姿勢情報に基づく情報を入力データとして第1の機械学習モデルの機械学習を行う情報処理装置。
  11.  コンピュータを用い、
     受入手段が、慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れ、
     姿勢推定手段が、前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定し、
     推定手段が、当該推定される姿勢情報に基づく情報を入力データとし、当該入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、当該第1の機械学習モデルに、前記推定した前記デバイスの姿勢情報に基づく情報を入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定し、
     当該推定されたバイアス誤差を、前記慣性計測ユニットが出力する移動加速度の校正の処理に供する情報処理方法。
  12.  コンピュータを、
     慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、
     前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、
     当該推定される姿勢情報に基づく情報を入力データとし、当該入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、当該第1の機械学習モデルに、前記推定した前記デバイスの姿勢情報に基づく情報を入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、
    として機能させ、
     当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供されるプログラム。

     
PCT/JP2020/003173 2020-01-29 2020-01-29 情報処理装置、情報処理方法、及びプログラム WO2021152723A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/003173 WO2021152723A1 (ja) 2020-01-29 2020-01-29 情報処理装置、情報処理方法、及びプログラム
US17/792,924 US20230066821A1 (en) 2020-01-29 2020-01-29 Information processing apparatus, information processing method, and program
JP2021573688A JP7389825B2 (ja) 2020-01-29 2020-01-29 情報処理装置、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/003173 WO2021152723A1 (ja) 2020-01-29 2020-01-29 情報処理装置、情報処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2021152723A1 true WO2021152723A1 (ja) 2021-08-05

Family

ID=77078676

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/003173 WO2021152723A1 (ja) 2020-01-29 2020-01-29 情報処理装置、情報処理方法、及びプログラム

Country Status (3)

Country Link
US (1) US20230066821A1 (ja)
JP (1) JP7389825B2 (ja)
WO (1) WO2021152723A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023050632A1 (zh) * 2021-09-29 2023-04-06 深圳市慧鲤科技有限公司 定位方法及装置、设备、存储介质及计算机程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004239881A (ja) * 2003-02-04 2004-08-26 Pioneer Electronic Corp 角速度検出装置
JP2010107244A (ja) * 2008-10-28 2010-05-13 Daihatsu Motor Co Ltd 車載用加速度センサ零点補正装置
JP2018194441A (ja) * 2017-05-18 2018-12-06 いすゞ自動車株式会社 車両用情報処理システム
US20190331832A1 (en) * 2018-04-25 2019-10-31 Microsoft Technology Licensing, Llc Predicting microclimate

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100526535B1 (ko) 2003-07-22 2005-11-08 삼성전자주식회사 가속도계를 이용한 이동체의 속력측정장치 및 그 방법
JP2017147825A (ja) 2016-02-16 2017-08-24 株式会社東芝 列車速度位置算出装置、列車運転支援装置、および列車運転制御装置
JP6139722B1 (ja) 2016-02-19 2017-05-31 ヤフー株式会社 推定装置、推定方法及び推定プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004239881A (ja) * 2003-02-04 2004-08-26 Pioneer Electronic Corp 角速度検出装置
JP2010107244A (ja) * 2008-10-28 2010-05-13 Daihatsu Motor Co Ltd 車載用加速度センサ零点補正装置
JP2018194441A (ja) * 2017-05-18 2018-12-06 いすゞ自動車株式会社 車両用情報処理システム
US20190331832A1 (en) * 2018-04-25 2019-10-31 Microsoft Technology Licensing, Llc Predicting microclimate

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023050632A1 (zh) * 2021-09-29 2023-04-06 深圳市慧鲤科技有限公司 定位方法及装置、设备、存储介质及计算机程序产品

Also Published As

Publication number Publication date
US20230066821A1 (en) 2023-03-02
JPWO2021152723A1 (ja) 2021-08-05
JP7389825B2 (ja) 2023-11-30

Similar Documents

Publication Publication Date Title
JP5948011B2 (ja) 運動解析装置
JP6533590B2 (ja) ウェアラブル装置とその姿勢測定方法及びプログラム
CN107030699B (zh) 位姿误差修正方法及装置、机器人及存储介质
KR101708584B1 (ko) 고정 기준계에서의 공간 내 물체의 배향을 감지하기 위한 개선된 방법 및 장치
US20180160110A1 (en) Method for calibrating a camera and calibration system
JP2010534316A (ja) 対象物の動きを捕捉するシステム及び方法
JP5912415B2 (ja) ゴルフスイング解析装置およびゴルフスイング解析方法
JP5630969B2 (ja) 姿勢算出装置、姿勢算出プログラム、姿勢算出システム、および、姿勢算出方法
WO2021152723A1 (ja) 情報処理装置、情報処理方法、及びプログラム
WO2018191957A1 (zh) 一种云台姿态估计方法、装置以及相应的云台
KR20140124338A (ko) 골프 클럽을 위한 개선된 피팅 시스템
CN115120967A (zh) 目标定位方法、装置、存储介质及终端
CN108225316B (zh) 载体姿态信息的获取方法和装置及***
US20200310435A1 (en) Self-position estimation method
KR20170041254A (ko) 촬영 제어 방법, 촬영 제어 장치, 촬영 제어 시스템 및 프로그램
JP2016055028A (ja) 運動解析方法、運動解析装置、運動解析システム及びプログラム
KR20140074844A (ko) 골프 클럽을 위한 개선된 피팅 시스템
CN116310991A (zh) 一种基于强化学习的篮板落点预测方法及***
CN206291910U (zh) 载体的姿态信息的获取***
CN115049697A (zh) 视觉测速方法、装置、设备和存储介质
JP5455191B2 (ja) 姿勢算出装置、姿勢算出プログラム、姿勢算出システム、および姿勢算出方法
JP6147446B1 (ja) ソフト制約及びペナルティ機能を使用した慣性センサの初期化
JP2022142980A5 (ja)
CN108413970B (zh) 一种定位方法、云***、电子设备及计算机程序产品
WO2022269985A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20916648

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021573688

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20916648

Country of ref document: EP

Kind code of ref document: A1