WO2020075825A1 - 動き推定装置、電子機器、制御プログラム及び動き推定方法 - Google Patents

動き推定装置、電子機器、制御プログラム及び動き推定方法 Download PDF

Info

Publication number
WO2020075825A1
WO2020075825A1 PCT/JP2019/040097 JP2019040097W WO2020075825A1 WO 2020075825 A1 WO2020075825 A1 WO 2020075825A1 JP 2019040097 W JP2019040097 W JP 2019040097W WO 2020075825 A1 WO2020075825 A1 WO 2020075825A1
Authority
WO
WIPO (PCT)
Prior art keywords
estimation
estimated
timing
electronic device
value
Prior art date
Application number
PCT/JP2019/040097
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 JP2019556289A priority Critical patent/JP6621167B1/ja
Publication of WO2020075825A1 publication Critical patent/WO2020075825A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P13/00Indicating or recording presence, absence, or direction, of movement
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Definitions

  • the present disclosure relates to estimating motion of a device.
  • Patent Document 1 describes a technology related to electronic devices. Further, Patent Literature 2 and Non-Patent Literature 1 describe techniques related to Bayesian estimation.
  • the present invention has been made in view of the above points, and it is an object of the present invention to provide a technique capable of appropriately estimating the movement of a device.
  • the motion estimator is a motion estimator that estimates the motion of the device during vibration.
  • the motion estimation device includes an estimation unit.
  • the estimation unit obtains a prediction model representing the movement of the device, a detection value of a sensor that detects acceleration or rotation angular velocity as the first physical quantity of the device, and statistical prior knowledge about the vibration of the device using the detection value. Based on Bayesian estimation using the represented observation model, the movement of the device during vibration is estimated.
  • the electronic device includes the above-described motion estimation device, a display unit, and a display control unit.
  • the display control unit controls the position of the image with respect to the earth by controlling the display position of the image displayed on the display unit based on the estimated value of the displacement or the rotation angle generated by the estimation unit of the motion estimation device. To do.
  • control program is a control program for controlling the computer.
  • the control program causes the computer to perform a prediction model that represents the movement of the device, a detection value of a sensor that detects the acceleration or rotational angular velocity of the device, and an observation that represents statistical prior knowledge about the vibration of the device using the detection value. Based on Bayesian estimation using the model and, a process of estimating the movement of the device during vibration is executed.
  • the motion estimation method is a motion estimation method that estimates the movement of the device during vibration.
  • the motion estimation method is a prediction model that represents the motion of the device, a detection value of a sensor that detects the acceleration or rotational angular velocity of the device, and an observation model that uses the detection value and that represents statistical prior knowledge about the vibration of the device. Based on Bayesian estimation using, the motion of the device during vibration is estimated.
  • an electronic device 1 which is a type of device, includes a plate-shaped device case 11 that is substantially rectangular in a plan view.
  • the device case 11 constitutes the exterior of the electronic device 1.
  • a display surface 121 on which various information such as characters, symbols, and figures is displayed is located on the front surface 11a of the device case 11.
  • the display surface 121 is formed of a transparent portion included in the device case 11.
  • a touch panel 130 described later is located on the back side of the display surface 121.
  • a receiver hole 12 is located at the upper end of the front surface 11a of the device case 11.
  • the speaker hole 13 is located at the lower end of the front surface 11a.
  • a microphone hole 14 is located on the lower side surface 11c of the device case 11.
  • a lens 191 of a first camera 190 which will be described later, can be seen from the upper end of the front surface 11a of the device case 11.
  • a lens 201 included in a second camera 200 which will be described later, is visible from the upper end of the back surface 11b of the device case 11.
  • the electronic device 1 includes an operation button group 140 including a plurality of operation buttons.
  • Each of the plurality of operation buttons is a hardware button.
  • each of the plurality of operation buttons is a push button.
  • at least one operation button included in the operation button group 140 may be a software button displayed on the display surface 121.
  • the operation button group 140 includes operation buttons 141, 142, 143 located at the lower end of the front surface 11 a of the device case 11.
  • the operation button group 140 may include a power button and a volume button located on the surface of the device case 11.
  • the operation button 141 is, for example, a back button.
  • the back button is an operation button for switching the display on the display surface 121 to the previous display.
  • the operation button 142 is, for example, a home button.
  • the home button is an operation button for displaying the home screen on the display surface 121.
  • the operation button 143 is, for example, a history button.
  • the history button is an operation button for displaying the history of the application executed by the electronic device 1 on the display surface 121. When the user operates the operation button 143, the history of the application executed on the electronic device 1 is displayed on the display surface 121.
  • the electronic device 1 may be described using the XYZ Cartesian coordinate system shown in FIGS.
  • the X-axis direction, the Y-axis direction, and the Z-axis direction are set in the lateral direction, the longitudinal direction, and the thickness direction of the electronic device 1, respectively.
  • FIG. 3 is a block diagram mainly showing an example of the electrical configuration of the electronic device 1.
  • the electronic device 1 includes a control unit 100, a wireless communication unit 110, a display unit 120, a touch panel 130, an operation button group 140, and an acceleration sensor 150.
  • the electronic device 1 includes a receiver 160, a speaker 170, a microphone 180, a first camera 190, a second camera 200, and a battery 210.
  • These components included in the electronic device 1 are housed in a device case 11. It can be said that the electronic device 1 is a kind of computer.
  • the control unit 100 can control the operation of the electronic device 1 by controlling other components of the electronic device 1.
  • the control unit 100 can also be called a control device or a control circuit.
  • the controller 100 includes at least one processor to provide control and processing power to perform various functions, as described in further detail below.
  • At least one processor is implemented as a single integrated circuit (IC) or as a plurality of communicatively connected integrated circuits (ICs) and / or discrete circuits. May be. At least one processor may be implemented according to various known techniques.
  • a processor includes one or more circuits or units configured to perform one or more data calculation procedures or processes, such as by executing instructions stored in associated memory.
  • the processor may be firmware (eg, discrete logic component) configured to perform one or more data calculation procedures or processes.
  • the processor is one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits (ASICs), digital signal processors, programmable logic devices, field programmable gate arrays, or the like. Any combination of devices or configurations, or combinations of other known devices and configurations, may be included to perform the functions described below.
  • ASICs application specific integrated circuits
  • the control unit 100 includes a CPU (Central Processing Unit) 101, a DSP (Digital Signal Processor) 102, and a storage unit 103.
  • the storage unit 103 includes a non-temporary recording medium such as a ROM (Read Only Memory) and a RAM (Random Access Memory) that can be read by the CPU 101 and the DSP 102.
  • the ROM included in the storage unit 103 is, for example, a flash ROM (flash memory) that is a non-volatile memory.
  • the storage unit 103 stores a plurality of control programs 103a and the like for controlling the electronic device 1.
  • Various functions of the control unit 100 are realized by the CPU 101 and the DSP 102 executing various control programs 103a in the storage unit 103.
  • the control unit 100 may include a plurality of CPUs 101.
  • the control unit 100 may include a main CPU that performs relatively complicated processing and has high processing capacity, and a sub CPU that performs relatively simple processing and that has low processing capacity.
  • the control unit 100 may not include the DSP 102 or may include a plurality of DSPs 102. Further, all the functions of the control unit 100 or a part of the functions of the control unit 100 may be realized by a hardware circuit that does not require software for realizing the function.
  • the storage unit 103 may include a computer-readable non-transitory recording medium other than the ROM and the RAM.
  • the storage unit 103 may include, for example, a small hard disk drive and an SSD (Solid State Drive).
  • the various control programs 103a in the storage unit 103 include various applications (application programs).
  • the storage unit 103 stores, for example, a call application for making a voice call and a video call, a browser for displaying a website, and a mail application for creating, browsing, and transmitting / receiving an email.
  • the storage unit 103 has a camera application for shooting a subject using the first camera 190 and the second camera 200, and a recorded image display application for displaying still images and moving images recorded in the storage unit 103.
  • a music reproduction control application for controlling reproduction of the music data stored in the storage unit 103 is stored.
  • At least one application in the storage unit 103 may be previously stored in the storage unit 103. Further, at least one application in the storage unit 103 may be downloaded by the electronic device 1 from another device and stored in the storage unit 103.
  • the wireless communication unit 110 has an antenna 111.
  • the wireless communication unit 110 can perform wireless communication using, for example, a plurality of types of communication methods by using the antenna 111.
  • the wireless communication of the wireless communication unit 110 is controlled by the control unit 100.
  • the wireless communication unit 110 can also be called a communication circuit or a wireless communication circuit.
  • the wireless communication unit 110 can wirelessly communicate with a base station of a mobile phone system.
  • the wireless communication unit 110 can communicate with a mobile phone, a web server, or the like different from the electronic device 1 through the base station and a network such as the Internet.
  • the electronic device 1 can perform data communication, voice call, video call, and the like with other mobile phones and the like.
  • wireless communication unit 110 can perform wireless communication using the wireless communication unit 110 and a wireless LAN (Local Area Network) such as WiFi.
  • the wireless communication unit 110 is also capable of short-range wireless communication.
  • the wireless communication unit 110 can perform wireless communication based on Bluetooth (registered trademark).
  • the wireless communication unit 110 may be capable of wireless communication in compliance with at least one of ZigBee (registered trademark) and NFC (Near Field Communication).
  • the wireless communication unit 110 performs various processing such as amplification processing on the signal received by the antenna 111, and outputs the processed received signal to the control unit 100.
  • the control unit 100 performs various processes on the received signal that is input, and acquires the information included in the received signal.
  • the control unit 100 also outputs a transmission signal including information to the wireless communication unit 110.
  • the wireless communication unit 110 performs various processing such as amplification processing on the input transmission signal, and wirelessly transmits the processed transmission signal from the antenna 111.
  • the display unit 120 includes a display surface 121 located on the front surface of the electronic device 1 and a display panel 122.
  • the display panel 122 is, for example, a liquid crystal display panel and includes a liquid crystal, a glass substrate, a polarizing plate, a backlight, and the like.
  • the display panel 122 can display various kinds of information.
  • the display panel 122 faces the display surface 121 in the device case 11. As a result, the information displayed on the display panel 122 is displayed on the display surface 121.
  • the display unit 120 can also be said to be a screen display unit.
  • the touch panel 130 can detect an operation on the display surface 121 by an operator such as a finger.
  • the touch panel 130 is, for example, a projected capacitive touch panel.
  • the touch panel 130 is located on the back side of the display surface 121, for example.
  • the control unit 100 can specify the content of the operation performed on the display surface 121 based on the electric signal (output signal) from the touch panel 130.
  • the control part 100 can perform the process according to the specified operation content.
  • the touch panel 130 can also be called a touch sensor. Instead of the display panel 122 and the touch panel 130, an in-cell type display panel incorporating a touch panel may be adopted.
  • control unit 100 can determine, for each operation button, whether or not the operation button has been operated.
  • the function assigned to the operated operation button is executed by the control unit 100, to which the operation signal is input, controlling the other components.
  • the microphone 180 can convert a sound input from the outside of the electronic device 1 into an electric sound signal and output the electric sound signal to the control unit 100. Sound from the outside of the electronic device 1 is taken into the inside of the electronic device 1 through the microphone hole 14 and input to the microphone 180.
  • the speaker 170 is, for example, a dynamic speaker.
  • the speaker 170 can convert an electrical sound signal from the control unit 100 into a sound and output the sound.
  • the sound output from the speaker 170 is output to the outside from the speaker hole 13. The user can hear the sound output from the speaker hole 13 even at a place away from the electronic device 1.
  • the receiver 160 can output the reception sound.
  • the receiver 160 is, for example, a dynamic speaker.
  • the receiver 160 can convert an electric sound signal from the control unit 100 into a sound and output the sound.
  • the sound output from the receiver 160 is output to the outside through the receiver hole 12.
  • the volume of the sound output from the receiver hole 12 is lower than the volume of the sound output from the speaker hole 13.
  • the user can hear the sound output from the receiver hole 12 by bringing the ear close to the receiver hole 12.
  • a vibrating element such as a piezoelectric vibrating element that vibrates the front surface of the device case 11 may be provided. In this case, the sound is transmitted to the user by vibrating the front portion.
  • the first camera 190 includes a lens 191 and an image sensor.
  • the second camera 200 includes a lens 201 and an image sensor. Each of the first camera 190 and the second camera 200 can photograph a subject under the control of the control unit 100, generate a still image or a moving image showing the photographed subject, and output the still image or the moving image to the control unit 100. .
  • the lens 191 of the first camera 190 is visible from the front surface 11a of the device case 11. Therefore, the first camera 190 can capture an object existing on the front surface side (display surface 121 side) of the electronic device 1.
  • the first camera 190 is called an in-camera.
  • the lens 201 of the second camera 200 is visible from the back surface 11b of the device case 11. Therefore, the second camera 200 can take an image of a subject existing on the back side of the electronic device 1.
  • the second camera 200 is called an out camera.
  • the acceleration sensor 150 can detect the acceleration of the electronic device 1.
  • the acceleration sensor 150 is, for example, a triaxial acceleration sensor.
  • the acceleration sensor 150 can detect the acceleration of the electronic device 1 in the X-axis direction, the Y-axis direction, and the Z-axis direction (see FIGS. 1 and 2).
  • the acceleration sensor 150 detects the acceleration at predetermined intervals and outputs the detection result.
  • the predetermined interval is 5 ms, but other values may be used.
  • the predetermined interval may be referred to as a detection interval.
  • the length of the detection interval may be represented by T.
  • the battery 210 can output the power source of the electronic device 1.
  • the battery 210 is, for example, a rechargeable battery.
  • the power output from the battery 210 is supplied to various components such as the control unit 100 and the wireless communication unit 110 included in the electronic device 1.
  • the electronic device 1 may not include the acceleration sensor 150.
  • the electronic device 1 may be wirelessly or wired connected to an acceleration sensor that is separate from the electronic device 1.
  • the electronic device 1 may include a sensor other than the acceleration sensor 150.
  • the electronic device 1 may include at least one of an atmospheric pressure sensor, a geomagnetic sensor, a temperature sensor, a proximity sensor, an illuminance sensor, a position sensor, and a gyro sensor.
  • the electronic device 1 may be connected to a sensor other than the acceleration sensor 150 other than the electronic device 1 in a wireless or wired manner.
  • the control unit 100 includes a motion estimation device 400 as a functional block, as shown in FIG.
  • the motion estimation device 400 can estimate the motion of the electronic device 1 during vibration based on the detection value 151 of the acceleration sensor 150.
  • the vibration is a concept including both periodic vibration and aperiodic vibration. Vibration can be said to be shaking or rocking.
  • the term “movement” simply means the movement of the electronic device 1.
  • the detection value 151 that is, the acceleration detected by the acceleration sensor 150 may be referred to as an acceleration detection value.
  • the motion estimation device 400 includes an estimation unit 300, a first filter 310, and a second filter 320. At least one of the estimation unit 300, the first filter 310, and the second filter 320 may be implemented by a hardware circuit that does not require software to implement its function.
  • the motion estimation apparatus 400 considers the usage of the motion estimation result described later, and, for example, generates a small random vibration of the electronic device 1 whose frequency band is 2 Hz or more and 5 Hz or less and whose amplitude is several mm.
  • Target vibration the control unit 100 can estimate the movement of the electronic device 1 that is subject to the target vibration.
  • the target vibration satisfying such a condition for example, when a user who holds the electronic device 1 in a vehicle such as a bus or a train is present, vibration of the electronic device 1 caused by the vibration of the vehicle is cited.
  • the target vibration may be vibration of the electronic device 1 when the hand of the user holding the electronic device 1 shakes due to aging or illness.
  • the target vibration is not limited to this example.
  • the detection value 151 of the acceleration sensor 150 is affected by other than the target vibration.
  • the detected value 151 is affected by gravity.
  • the detected value 151 is affected by the centrifugal force applied to the vehicle, and the detected value 151 of the vehicle when the vehicle starts or stops. It may be affected by acceleration.
  • the detected value 151 may also be affected when the user voluntarily slowly moves his hand. It is necessary to isolate and estimate the target motion to be corrected against these disturbances.
  • the first filter 310 filters the detected value 151 of the acceleration sensor 150 in order to remove effects other than the target vibration from the detected value 151.
  • the first filter 310 is, for example, a high-pass filter, and its pass band is set to, for example, 2 Hz or higher.
  • the first filter 310 may be a bandpass filter.
  • the pass band of this band pass filter is set to, for example, 2 Hz or more and 5 Hz or less.
  • the pass band of the first filter 310 is not limited to this example.
  • the estimating unit 300 estimates the movement of the electronic device 1 during the target vibration based on Bayesian estimation using the detection value 151 filtered by the first filter 310, the observation model 350, and the prediction model 360.
  • the estimation unit 300 estimates the movement of the electronic device 1 when the target vibration occurs, for example, by a method called a sequential Bayes filter.
  • the successive Bayes filter is described in Non-Patent Document 1 above.
  • the estimation unit 300 as the estimation result of the movement of the electronic device 1, for example, the estimated value of the acceleration of the electronic device 1, the estimated value of the speed of the electronic device 1, and the estimated value of the electronic device 1.
  • An estimated value of displacement and an estimated value of total displacement of the electronic device 1 are generated.
  • the displacement of the electronic device 1 means the amount of change in the position of the electronic device 1 from the reference position. It can be said that the displacement of the electronic device 1 indicates a relative position with respect to the reference position.
  • the total displacement of the electronic device 1 is the sum of the displacements of the electronic device 1 at each time.
  • the reference position for example, the position of the electronic device 1 when the motion estimation device 400 starts its operation is adopted.
  • the motion estimation apparatus 400 may start operation in response to the start of operation of the electronic device 1, or may start operation in response to a user's operation on the electronic device 1 in operation. Moreover, the motion estimation apparatus 400 may start operation when other conditions are satisfied in the electronic device 1 in operation.
  • the acceleration, velocity, displacement, and total displacement estimation values of the electronic device 1 obtained by Bayesian estimation may be referred to as the acceleration estimation value, speed estimation value, displacement estimation value, and total displacement estimation value, respectively.
  • acceleration means the acceleration of the electronic device 1
  • speed means the speed of the electronic device 1.
  • simple displacement means the displacement of the electronic device 1
  • simple total displacement means the total displacement of the electronic device 1. It can be said that each of the acceleration, the velocity, the displacement, and the total displacement is a physical quantity of the electronic device 1.
  • the second filter 320 filters the estimation result of the estimation unit 300.
  • the second filter 320 individually filters the acceleration estimation value, the velocity estimation value, the displacement estimation value, and the total displacement estimation value output from the estimation unit 300.
  • the second filter 320 may be a high pass filter or a band pass filter.
  • the filter characteristic of the second filter 320 may be the same as or different from the filter characteristic of the first filter 310.
  • the pass band of the second filter 320 may be the same as or different from the pass band of the first filter 310.
  • z 1: t ) at time t can be expressed by the following equation (1).
  • z 1: t ) is a probability distribution and is also called the posterior distribution p (x t
  • x is a vector representing a state and is called a state vector.
  • the state vector x t means the state vector x at time t.
  • z is a vector representing the observation and is called an observation vector.
  • the observation vector z t means the observation vector at time t.
  • the observation vector z 1: t means an observation vector from time 1 to time t.
  • z 1: t ) at the time t is the probability distribution p (z t
  • x t ) is called an observation model, and the probability distribution p (x t
  • At least one variable is included in each of the state vector x and the observation vector z.
  • the state vector x includes acceleration, velocity, displacement, and total displacement as variables.
  • the observation vector z includes acceleration, velocity, displacement, and total displacement as variables. It can be said that the variables included in the state vector x and the observation vector z are random variables.
  • the estimation unit 300 performs Bayesian estimation by obtaining the posterior probability p (x t
  • the estimation unit 300 uses the observation model 350 as p (z t
  • the estimation unit 300 sets the state vector that maximizes the calculated posterior probability p (x t
  • the observation model 350 is an observation model representing the target vibration.
  • the observation model 350 is a probability distribution that represents statistical prior knowledge about the target vibration.
  • the observation model 350 is a maximum four-dimensional probability distribution that represents the acceleration, velocity, displacement, and total displacement of the electronic device 1 during the target vibration.
  • the marginal probability distributions for each dimension of the observation model 350 may be referred to as a first probability distribution, a second probability distribution, a third probability distribution, and a fourth probability distribution, respectively.
  • the amplitude of the target vibration is small, as described above. Therefore, the position of the electronic device 1 does not change much during the target vibration.
  • the displacement of the electronic device 1 at the time of the target vibration is represented by, for example, a fixed first probability distribution having a zero mean and a small variance, where the displacement is a random variable, so that the electronic device in the observation model 350 is Express the knowledge that the position of 1 does not change much. In the observation model 350, it can be said that the average displacement of the electronic device 1 during the target vibration is expressed as zero.
  • the acceleration of the electronic device 1 at the time of the target vibration is represented by, for example, a second probability distribution in which the acceleration is a random variable and the average is the detected acceleration value and the variance is small.
  • the average of the second probability distribution for example, the acceleration detection value filtered by the first filter 310 is adopted.
  • the second probability distribution changes according to the acceleration detection value.
  • the velocity of the electronic device 1 at the time of the target vibration is represented by, for example, a fixed third probability distribution having a mean of zero and a small variance, where the velocity is a random variable. Express the knowledge that the speed of the electronic device 1 does not increase too much.
  • observation model 350 is an observation model representing the target vibration
  • the observation model 350 it is necessary to express the knowledge that the electronic device 1 vibrates in the observation model 350.
  • the total displacement of the electronic device 1 at the time of the target vibration is represented by, for example, a fixed fourth probability distribution having a mean of zero and the total displacement being a random variable. Expresses the knowledge that vibrates. It can be said that in the observation model 350, the average of the total displacement of the electronic device 1 at the time of the target vibration is expressed as zero.
  • the observation model 350 is determined for the target vibration by, for example, machine learning.
  • the observation model 350 may be determined using, for example, the maximum likelihood estimation method. Further, the observation model 350 may be determined based on the statistical distribution of actual measurement values in the vibration environment of the target vibration. Further, the observation model 350 may be determined based on both the machine learning and the statistical distribution of actual measurement values. For example, a normal distribution may be adopted as the first to fourth probability distributions. In this case, a fast Kalman filter can be adopted as a filter in Bayesian estimation.
  • Example of prediction model 360 the predicted value of acceleration at time t is represented by a (t), and the prediction error at time t regarding acceleration is represented by w_a (t).
  • a (t) the predicted value of acceleration at time t is represented by a (t)
  • w_a (t) the prediction error at time t regarding acceleration is represented by w_a (t).
  • the predicted value a (t) is represented by a probability distribution.
  • the predicted value a (t) may be referred to as a predicted probability distribution a (t).
  • the prediction error for example, a fixed probability distribution that does not change with time is used.
  • the prediction error is determined by machine learning, for example.
  • the prediction error may be determined using, for example, the maximum likelihood estimation method.
  • a normal distribution may be adopted as the probability distribution representing the prediction error.
  • a fast Kalman filter can be adopted as a filter in Bayesian estimation.
  • the estimation unit 300 calculates the predicted value a (t) of the acceleration at the time t using the formula (3). At this time, the estimation unit 300 calculates the acceleration for the a posteriori probability p (x t-1
  • z 1: t-1 ) at time t-1 is the estimated probability distribution of acceleration at time t-1.
  • z 1: t-2 ) at time t-2 can be said to be the estimated probability distribution of acceleration at time t-2. Therefore, in the prediction model 360, the predicted probability distribution a (t) of acceleration at time t is the estimated probability distribution of acceleration at time t ⁇ 1, the estimated probability distribution of acceleration at time t ⁇ 2, and the time t It can be said that it is represented by the prediction error w_a (t).
  • the predicted probability distribution a (t) of acceleration at time t is obtained by using the estimated probability distribution of acceleration at time t ⁇ 1 and the estimated probability distribution of acceleration at time t ⁇ 2. It can be said that it can be obtained by insertion.
  • the prediction model 360 it can be said that the predicted probability distribution of acceleration at a certain timing is represented by an extrapolation formula using the estimated probability distribution of acceleration at a timing earlier than that.
  • the estimation unit 300 determines that the initial probability distribution (for example, the average is zero when a (t-1) and a (t-2) is present if the past estimated probability distribution of acceleration does not exist. The normal distribution whose variance is a predetermined value) is substituted.
  • the predicted value of the velocity at time t is represented by v (t)
  • the predicted value of the displacement at time t is represented by r (t)
  • the predicted value of the total displacement at time t Is represented by s (t).
  • the speed of the electronic device 1 can be obtained by integrating the acceleration of the electronic device 1.
  • the displacement of the electronic device 1 can be obtained by integrating the speed of the electronic device 1.
  • the total displacement of the electronic device 1 is obtained by integrating the displacement of the electronic device 1.
  • the predicted value v (t) of the velocity, the predicted value r (t) of the displacement, and the predicted value s (t) of the total displacement use the following equation using the length T of the detection interval of the acceleration sensor 150. They are represented by (4), (5), and (6), respectively.
  • the prediction error at time t is represented by w_v (t)
  • the prediction error at time t is represented by w_r (t)
  • the total displacement is predicted at time t.
  • the error is represented by w_s (t).
  • the predicted value v (t), the predicted value r (t), and the predicted value s (t) are each represented by a probability distribution.
  • the predicted value v (t), the predicted value r (t), and the predicted value s (t) are referred to as the predicted probability distribution v (t), the predicted probability distribution r (t), and the predicted probability distribution s (t), respectively. May be called.
  • the estimation unit 300 obtains the predicted value v (t) of the speed at the time t using the equation (4). At this time, the estimation unit 300 estimates the posterior probability p (x t ⁇ 1
  • the estimation unit 300 obtains the predicted value r (t) of the displacement at the time t by using the equation (5).
  • the estimation unit 300 estimates the posterior probability p (x at time t-1 for a (t-1), v (t-1), and r (t-1) in the equation (5).
  • the equation (5) uses the estimated probability distribution of acceleration at time t ⁇ 1, the estimated probability distribution of velocity at time t ⁇ 1, and the estimated probability distribution of displacement at time t ⁇ 1. It can be said that this is a prediction formula for predicting the probability distribution of displacement at t.
  • the estimation unit 300 obtains the predicted value s (t) of the total displacement at the time t by using the formula (6). At this time, the estimation unit 300 calculates the predicted time t ⁇ for a (t ⁇ 1), v (t ⁇ 1), r (t ⁇ 1), and s (t ⁇ 1) in equation (6). Substituting marginal probability distributions of acceleration, velocity, displacement, and total displacement for the posterior probability p (x t-1
  • the equation (6) is calculated as follows: the estimated probability distribution of acceleration at time t-1, the estimated probability distribution of velocity at time t-1, the estimated probability distribution of displacement at time t-1, and the time t- It can be said that this is a prediction formula for predicting the probability distribution of the total displacement at time t, which is used with the estimated probability distribution of the total displacement at 1.
  • the estimation unit 300 performs Bayesian estimation using the acceleration detection value output from the acceleration sensor 150 (in other words, the detection value 151), the equations (3) to (6) in the prediction model 360, and the observation model 350. Based on this, a motion estimation process for estimating the current motion of the electronic device 1 is performed.
  • FIG. 5 is a flowchart showing an example of motion estimation processing in the estimation unit 300.
  • the motion estimation process shown in FIG. 5 is executed every time new acceleration is detected by the acceleration sensor 150.
  • the estimation unit 300 obtains an acceleration estimation value, a velocity estimation value, a displacement estimation value, and a total displacement estimation value in the X-axis direction in the motion estimation process.
  • the estimation unit 300 obtains, for example, an acceleration estimation value, a velocity estimation value, a displacement estimation value, and a total displacement estimation value in the Y axis direction.
  • the estimation unit 300 uses the prediction model 360 to obtain the current acceleration prediction value in step s1 as shown in FIG.
  • the estimation unit 300 uses the prediction model 360 to separately obtain a predicted value of acceleration in the X-axis direction and a predicted value of acceleration in the Y-axis direction.
  • step s1 the estimation unit 300 calculates the marginal probability distribution of the acceleration in the X-axis direction for the posterior probability p (x t
  • the estimation unit 300 calculates the marginal probability distribution of the acceleration in the X-axis direction for the posterior probability p (x t
  • the estimation unit 300 uses the prediction value a (t) thus obtained, that is, the prediction probability distribution a (t), as the prediction value of the current acceleration in the X-axis direction (in other words, the prediction probability distribution).
  • the estimation unit 300 similarly obtains the predicted value of the current acceleration in the Y-axis direction by using Expression (3).
  • step s2 the estimation unit 300 uses the prediction model 360 to obtain the predicted value of the current speed.
  • the estimation unit 300 uses the prediction model 360 to separately obtain the predicted value of the velocity in the X-axis direction and the predicted value of the velocity in the Y-axis direction.
  • the estimation unit 300 calculates the marginal probability distribution of the acceleration in the X-axis direction with respect to the posterior probability p (x t
  • the estimation unit 300 uses the prediction model 360 to obtain the predicted value of the current displacement.
  • the estimation unit 300 uses the prediction model 360 to separately obtain a predicted value of displacement in the X-axis direction and a predicted value of displacement in the Y-axis direction.
  • step s3 the estimation unit 300 calculates the marginal probability distribution of the acceleration in the X-axis direction for the posterior probability p (x t
  • the estimation unit 300 calculates the peripheral probability distribution of the displacement in the X-axis direction for the posterior probability p (x t
  • the estimation unit 300 uses the predicted value r (t) thus obtained, that is, the predicted probability distribution r (t), as the predicted value of the current displacement in the X-axis direction.
  • the estimating unit 300 similarly obtains the predicted value of the current displacement in the Y-axis direction by using Expression (5).
  • step s4 the estimation unit 300 uses the prediction model 360 to obtain the current predicted value of the total displacement.
  • the estimation unit 300 uses the prediction model 360 to separately obtain the predicted value of the total displacement in the X-axis direction and the predicted value of the total displacement in the Y-axis direction.
  • step s4 the estimation unit 300 calculates the marginal probability distribution of the acceleration in the X-axis direction for the posterior probability p (x t
  • the estimation unit 300 calculates the peripheral probability distribution of the displacement in the X-axis direction for the posterior probability p (x t
  • step s5 the estimation unit 300, based on the Bayesian estimation using the prediction value obtained in steps s1 to s4 and the observation model 350, the acceleration estimation value, the velocity estimation value, the displacement estimation value, and the total displacement estimation value. Generate an estimate of the displacement.
  • the estimation unit 300 estimates the acceleration, velocity, displacement, and total displacement in the X-axis direction based on Bayesian estimation using the predicted value in the X-axis direction obtained in steps s1 to s4 and the observation model 350. Generate a value.
  • the estimation unit 300 also calculates the estimated values of acceleration, velocity, displacement, and total displacement in the Y-axis direction based on Bayesian estimation using the Y-axis direction predicted value obtained in steps s1 to s4 and the observation model 350. To generate.
  • step s5 the estimation unit 300 sets the predicted values (in other words, the predicted probability distribution) of the acceleration, velocity, displacement, and total displacement in the X-axis direction obtained in steps s1 to s4 to p ( x t
  • the estimation unit 300 the posterior probability p obtained in step s5 the previous motion estimation process (x t
  • z 1: t ) at time t is estimated.
  • z 1: t ) is used to calculate a predicted value in the next motion estimation process.
  • the estimation unit 300 specifies the state vector that maximizes the estimated posterior probability p (x t
  • the estimation unit 300 sets the acceleration, velocity, displacement, and total displacement components of the estimated state vector as the current acceleration estimation value, velocity estimation value, displacement estimation value, and total displacement estimation value in the X-axis direction, respectively.
  • the estimation unit 300 uses Equation (1) to generate estimated values of acceleration, velocity, displacement, and total displacement in the Y-axis direction.
  • the estimation unit 300 uses the latest acceleration detection value in the Y-axis direction (specifically, the latest acceleration detection value in the Y-axis direction filtered by the first filter 310) as the average of the second probability distributions. .
  • the second filter 320 includes the estimated values of the acceleration, velocity, displacement, and total displacement in the X-axis direction generated by the estimation unit 300, and the acceleration, velocity, and displacement in the Y-axis direction generated by the estimation unit 300. And the estimated value of the total displacement are individually filtered.
  • the marginal probability distribution of the filtered acceleration may be input to a (t-1). Further, the marginal probability distribution of the filtered acceleration may be input to a (t-2). Further, the marginal probability distribution of the filtered velocity may be input to v (t ⁇ 1). In addition, the marginal probability distribution of the filtered displacement may be input to r (t-1). Further, the marginal probability distribution of the filtered total displacement may be input to s (t ⁇ 1).
  • At least one of the estimated values of acceleration, velocity, displacement, and total displacement in the Z-axis direction may be generated. Further, in the motion estimation process, at least one of the estimated values of the acceleration, the velocity, the displacement, and the total displacement in the X-axis direction may not be generated. Further, in the motion estimation process, at least one of the estimated values of acceleration, velocity, displacement, and total displacement in the Y-axis direction may not be generated.
  • Bayesian estimation may be performed on the rotational vibration in the same framework.
  • step s1 may be executed after any one of steps s2 to s4, and step s4 may be executed before any one of steps s1 to s3.
  • the estimation unit 300 can estimate the movement of the electronic device 1 at a timing earlier than the present.
  • FIG. 6 is a flowchart showing an example of the operation of the estimation unit 300 in this case.
  • M is an integer of 1 or more
  • T ⁇ (M ⁇ 1) the required number of 1 or more
  • the estimation unit 300 When the estimation unit 300 acquires a new acceleration detection value from the acceleration sensor 150, the estimation unit 300 executes a unit estimation process in step s11, as shown in FIG. After that, in step s12, the estimation unit 300 determines whether or not the unit estimation process has been performed the required number M of times.
  • step s12 the estimation unit 300 ends the motion estimation process. On the other hand, if NO is determined in step s12, the estimation unit 300 executes step s11 again, and executes the unit estimation process again. After that, the estimation unit 300 operates similarly.
  • step s1 of the second unit estimation processing in the motion estimation processing the marginal probability distribution of the acceleration in the X-axis direction regarding the posterior probability p (x t
  • the estimation unit 300 uses the prediction value a (t) (in other words, the prediction probability distribution a (t)) thus obtained as the prediction value of the acceleration in the X-axis direction at the timing T time ahead of the present time. .
  • step s1 of the second unit estimation process similarly, the predicted value of the acceleration in the Y-axis direction at the timing T time ahead of the present is obtained.
  • step s1 of the Na-th (3 ⁇ Na ⁇ M) unit estimation process in the motion estimation process the posterior probability p (x t
  • the marginal probability distribution of acceleration in the X-axis direction for () is substituted into a (t-1) in equation (3).
  • z 1: t ) estimated in the (Na ⁇ 2) th unit estimation process is a (t ⁇ Substituted in 2).
  • the estimated value a (t) thus obtained is used as the estimated value of the acceleration in the X-axis direction at the timing (T ⁇ (Na ⁇ 1)) time ahead of the present time.
  • step s1 of the Na-th unit estimation process similarly, the predicted value of the acceleration in the Y-axis direction at the timing (T ⁇ (Na ⁇ 1)) time ahead of the present time is obtained.
  • step s2 of the Nb-th (2 ⁇ Nb ⁇ M) unit estimation process of the motion estimation process the posterior probability p (x t
  • the marginal probability distribution of acceleration in the X-axis direction is substituted into a (t-1) in equation (4).
  • z 1: t ) estimated in the (Nb ⁇ 1) th unit estimation process is v (t ⁇ 1) in the equation (4). ) Is assigned to.
  • the estimation unit 300 uses the prediction value v (t) thus obtained as the prediction value of the velocity in the X-axis direction at the timing (T ⁇ (Nb ⁇ 1)) time ahead of the present time.
  • step s2 of the Nb-th unit estimation process similarly, a predicted value of the velocity in the Y-axis direction at a timing (T ⁇ (Nb ⁇ 1)) time ahead of the present time is obtained.
  • the estimation unit 300 estimates the estimation probability distribution at a certain timing at the previous timing in the extrapolation formula of the equation (3). It is used as a probability distribution to obtain a predicted probability distribution at a timing earlier than the certain timing, and based on Bayesian estimation using the obtained predicted probability distribution at the relevant timing, estimation at the relevant timing It can be said that the process of generating the probability distribution is repeatedly executed.
  • step s3 of the Nb-th unit estimation process of the motion estimation process the vicinity of the acceleration in the X-axis direction about the posterior probability p (x t
  • the probability distribution is substituted into a (t-1) in equation (5).
  • z 1: t ) estimated in the (Nb ⁇ 1) th unit estimation process is v (t ⁇ 1) in the equation (5). ) Is assigned to.
  • z 1: t ) estimated in the (Nb ⁇ 1) th unit estimation process is r (t ⁇ 1) in the equation (5). ) Is assigned to.
  • the estimated value r (t) thus obtained is used as the estimated value of the displacement in the X-axis direction at the timing (T ⁇ (Nb ⁇ 1)) time ahead of the present time.
  • step s3 of the Nb-th unit estimation process similarly, the predicted value of the displacement in the Y-axis direction at the timing (T ⁇ (Nb ⁇ 1)) time ahead of the present time is obtained.
  • step s4 of the Nb-th unit estimation process of the motion estimation process the vicinity of the acceleration in the X-axis direction about the posterior probability p (x t
  • the probability distribution is substituted into a (t-1) in equation (6).
  • z 1: t ) estimated in the (Nb ⁇ 1) th unit estimation process is v (t ⁇ 1) in the equation (6). ) Is assigned to.
  • z 1: t ) estimated in the (Nb ⁇ 1) th unit estimation process is r (t ⁇ 1) in Expression (6). ) Is assigned to. Then, the marginal probability distribution of the total displacement in the X-axis direction for the posterior probability p (x t
  • step s5 of the Nb-th unit estimation process of the motion estimation process the estimated values of acceleration, velocity, displacement, and total displacement in the X-axis direction at the timing (T ⁇ (Nb ⁇ 1)) time ahead of the present time.
  • the estimated values of the acceleration, velocity, displacement, and total displacement in the Y-axis direction at the timing (T ⁇ (Nb ⁇ 1)) ahead of the current time are generated.
  • the unit estimation process By executing the unit estimation process for the required number of times M as described above, the movement of the electronic device 1 at the timing that is (T ⁇ (M ⁇ 1)) time ahead of the present time is estimated.
  • the unit estimation process is executed by the required number M, so that the movement of the electronic device 1 at the timing (T ⁇ (M ⁇ 1)) time ahead of the timing at which the latest acceleration detection value is obtained. Presumed.
  • the motion of the electronic device 1 at the time of the target vibration is estimated at a timing (T ⁇ (M ⁇ 1)) time ahead of the present time.
  • the estimation unit 300 estimates the motion of the electronic device 1 at a timing ahead of the current time by an integer multiple of T.
  • the estimation unit 300 can also estimate the movement of the electronic device 1 at a desired timing earlier than the present timing, not at a timing earlier than the present by an integral multiple of T.
  • FIG. 7 is a flowchart showing an example of motion estimation processing in this case.
  • the desired timing earlier than the present is called the estimated timing.
  • step s21 the estimation unit 300 determines the required number M of times based on the estimation timing.
  • step s21 the estimation unit 300 determines that the estimated timing does not exceed the timing that is (T ⁇ (M ⁇ 1)) time ahead of the current time and is (T ⁇ (M ⁇ 1)) time ahead of the current time. Determine the value of M that is closest to
  • step s21 the estimation unit 300 executes steps s11 and s12 described above. If NO is determined in step s12, step s11 is executed again, and thereafter, the estimation unit 300 operates similarly. On the other hand, if YES is determined in the step s12, the step s22 is executed. In step s22, the estimation unit 300, based on the motion estimation result in step s5 of the (M ⁇ 1) th unit estimation process and the motion estimation result in step s5 of the Mth unit estimation process, The movement of the electronic device 1 at the estimation timing is estimated.
  • the estimation unit 300 obtains the estimated value of the acceleration in the X-axis direction at the timing (T ⁇ (M ⁇ 2)) time ahead of the present time obtained by the (M ⁇ 1) th unit estimation process.
  • the estimated value of the acceleration in the X-axis direction at the timing (T ⁇ (M ⁇ 1)) time ahead of the present time which is obtained in the M-th unit estimation process, based on the estimated value in the X-axis direction at the estimated timing.
  • the estimation unit 300 may estimate the acceleration value in the X-axis direction at the timing (T ⁇ (M ⁇ 2)) time ahead of the present time and (T ⁇ (M ⁇ 1)) time ahead of the present time.
  • An estimated value of the acceleration in the X-axis direction at the estimation timing is generated by linear interpolation using the estimated value of the acceleration in the X-axis direction at the timing.
  • the estimated value of the acceleration in the X-axis direction at the estimated timing is A0. Further, the estimated value of the acceleration in the X-axis direction at the timing (T ⁇ (M ⁇ 2)) time ahead of the present is set to A1, and the estimated value at the timing (T ⁇ (M ⁇ 1)) time ahead of the present.
  • the estimated value of the acceleration in the X-axis direction is A2. Further, (T ⁇ (M ⁇ 2)) is T1, and (T ⁇ (M ⁇ 1)) is T2.
  • the estimation unit 300 obtains the estimated value A0 of the acceleration in the X-axis direction at the estimation timing using, for example, the following equation (7).
  • step s22 the estimation unit 300 similarly obtains the estimated values of the velocity, displacement, and total displacement in the X-axis direction at the estimation timing. Further, in step s22, the estimation unit 300 similarly obtains the estimated values of acceleration, velocity, displacement, and total displacement in the Y-axis direction at the estimation timing.
  • the estimation unit 300 uses the motion estimation result in the M-th unit estimation process as the motion estimation result at the estimation timing.
  • the estimation unit 300 does not have to execute step s22. That is, the estimation unit 300 does not have to execute the linear interpolation. In this case, when T0 does not match (T ⁇ (M ⁇ 1)), the estimation unit 300 estimates the motion estimation result at the timing (T ⁇ (M ⁇ 1)) time ahead from the present time. It may be the result of motion estimation at the timing.
  • the acceleration detection value of the acceleration sensor 150, the prediction model 360 representing the movement of the electronic device 1, and the observation model 350 representing the vibration of the electronic device 1 using the acceleration detection value are set. Based on the Bayesian estimation used, the movement of the electronic device 1 during vibration is estimated. This makes it possible to appropriately estimate the movement of the electronic device 1 during vibration.
  • the predicted probability distribution of acceleration at a certain timing is the estimated probability distribution of acceleration at a timing before the certain timing. It is expressed by the extrapolation formula used. Then, the estimated probability distribution at a certain timing is used as the estimated probability distribution at the previous timing in the extrapolation formula to obtain the predicted probability distribution at the timing earlier than the certain timing, and at the determined previous timing. It is possible to obtain the estimated probability distribution of acceleration at a desired timing by repeatedly executing the process of generating the estimated probability distribution at the previous timing based on the Bayesian estimation using the predicted probability distribution of. Therefore, the extrapolation formula can be used to easily obtain the estimated value of the acceleration at the desired timing.
  • the observation model 350 expresses that the average displacement of the electronic device 1 during the target vibration is zero. In other words, in the observation model 350, the average of the marginal probability distribution of displacement is zero. Therefore, it is possible to reduce the possibility that the estimated value of the displacement of the electronic device 1 during the target vibration greatly deviates from zero. Therefore, it is possible to appropriately obtain the estimated value of the displacement according to the situation that the amplitude of the target vibration is small.
  • the prediction model 360 that is, the integral of the detected value, may be caused by an error in detecting the acceleration of the acceleration sensor 150 or the like. Considering only the calculation, consider the first situation in which the sign of the displacement of the electronic device 1 in the X-axis direction is always predicted to be positive.
  • the observation model 350 when the observation model 350 does not express that the average of the total displacement of the electronic device 1 at the time of the target vibration is zero, it is obtained by Bayesian estimation by the action of the first probability distribution of the displacement.
  • the estimated value of the displacement of the electronic device 1 in the X-axis direction is likely to be near zero, but is unlikely to be a negative value. Therefore, in the first situation, when the average of the marginal probability distribution of the total displacement of the observation model 350 is not set to zero, the sign of the estimated value of the displacement in the X-axis direction does not change from plus to minus, and
  • the estimated value may not be a value according to the vibration of the electronic device 1 along the X-axis direction.
  • the sign of the estimated value of the displacement in the X-axis direction does not change from minus to plus, and the estimated value is There is a possibility that the value does not correspond to the vibration of the electronic device 1 along the X-axis direction.
  • the total displacement in the X-axis direction continues to increase while the sign of the displacement in the X-axis direction is positive.
  • the sign of the displacement in the X-axis direction needs to be negative.
  • the estimated value of the total displacement becomes zero in the first situation.
  • the sign of the estimated displacement value will become negative as it approaches.
  • the sign of the estimated displacement value is likely to be positive so that the estimated total displacement value approaches zero. Therefore, as in this example, when the average of the fourth probability distribution of the total displacement of the observation model 350 is set to zero, the estimated value of the displacement that changes in accordance with the vibration of the electronic device 1 is appropriately set. Obtainable.
  • the observation model 350 expresses the knowledge that the speed of the electronic device 1 does not increase so much, but such an expression regarding the speed may be omitted. Further, the estimation unit 300 does not have to generate at least one of the estimated values of acceleration, velocity, displacement, and total displacement. That is, the estimation unit 300 may generate at least one estimated value of acceleration, velocity, displacement, and total displacement as the motion estimation result.
  • the motion estimation result of the motion estimation device 400 can be used in various situations.
  • the electronic device 1 uses the motion estimation result of the motion estimation device 400 in the image display control will be described.
  • the target vibration includes vibration of the electronic device 1 caused by vibration of the vehicle when a user holding the electronic device 1 is inside a vehicle such as a bus or a train.
  • the target vibration may be vibration of the electronic device 1 when the hand of the user holding the electronic device 1 shakes due to aging or illness.
  • the position of the electronic device 1 with respect to the earth may move when the electronic device 1 vibrates due to the vibration of the vehicle. As a result, the user may have difficulty visually recognizing the image displayed on the electronic device 1.
  • the electronic device 1 vibrates due to the hand of the user holding the electronic device 1 shaking due to circumstances such as aging or illness, the position of the electronic device 1 with respect to the earth may move. As a result, the user may have difficulty visually recognizing the image displayed on the electronic device 1.
  • the electronic device 1 controls the position of the image with respect to the earth by controlling the display position of the image displayed on the display unit 120 based on the motion estimation result of the motion estimation device 400. To do. Specifically, the electronic device 1 controls the display position of the image displayed on the display unit 120 based on the estimated value of the displacement generated by the motion estimation device 400 to determine the position of the image with respect to the earth. Control. This makes it difficult for the position of the image displayed on the electronic device 1 with respect to the earth to change during the target vibration, and improves the visibility of the image. Therefore, even when a user holding the electronic device 1 is present in the vehicle, the position of the image displayed on the electronic device 1 with respect to the earth is unlikely to change, and the visibility of the image can be improved.
  • FIG. 8 is a diagram showing an example of the configuration of the control unit 100 according to this example.
  • the control unit 100 includes a display control unit 500 that controls the display of the display unit 120 as a functional block.
  • the display control unit 500 controls the display position of the image displayed on the display unit 120 at a predetermined frame rate based on the displacement estimated value output from the second filter 320 of the motion estimation device 400, thereby Image position control such as controlling the position of the image with respect to the earth is performed. It can be said that the display position of the image is the position of the image on the display surface 121.
  • the image displayed on the display unit 120 at a predetermined frame rate may be a moving image or a still image.
  • the predetermined frame rate is, for example, 60 fps.
  • the predetermined frame rate may be other than 60 fps.
  • the predetermined frame rate may be 120 fps.
  • the displacement of the electronic device 1 in the X-axis direction may be referred to as X displacement
  • the displacement of the electronic device 1 in the Y-axis direction may be referred to as Y displacement
  • the plus direction and the minus direction of the X axis direction may be referred to as + X direction and ⁇ X direction, respectively.
  • the plus direction and the minus direction of the Y-axis direction may be referred to as + Y direction and ⁇ Y direction, respectively.
  • the display control unit 500 controls the display position in the X axis direction of the image displayed on the display unit 120 based on the estimated value of the X displacement output from the second filter 320 of the motion estimation device 400. To do. Further, in the image position control, the display control unit 500 causes the display position in the Y axis direction of the image displayed on the display unit 120 to be based on the estimated value of the Y displacement output from the second filter 320 of the motion estimation device 400. To control.
  • FIG. 9 is a diagram for explaining image position control.
  • the electronic device 1 in which the X displacement and the Y displacement are zero that is, the electronic device 1 at the reference position is shown.
  • an electronic device 1 having an X displacement of + L and a zero Y displacement that is, an electronic device 1 that has moved from the reference position in the Y axis direction but has moved in the + X axis direction by L. It is shown.
  • the receiver hole 12, the lens 191, the operation buttons 141 to 143, and the speaker hole 13 are omitted.
  • an image (still image) 600 including a character string 601 “ABC” is displayed on the display surface 121 of the electronic device 1.
  • the size of the image 600 matches the size of the display surface 121.
  • the image 600 is displayed on the display surface 121 so that the center position of the image 600 matches the center position of the display surface 121.
  • the central position of the image 600 displayed on the electronic device 1 in which the X displacement and the Y displacement are zero is indicated by reference numeral 701.
  • the central position of the image 600 displayed on the electronic device 1 in which the X displacement is + L and the Y displacement is zero is indicated by reference numeral 702.
  • the display position of the image displayed by the electronic device 1 at the reference position that is, the electronic device 1 having zero X displacement and Y displacement may be referred to as a reference display position.
  • the display position in the X-axis direction of the image displayed by the electronic device 1 with zero X displacement may be referred to as the X reference display position.
  • the display position in the Y-axis direction of the image displayed by the electronic device 1 with zero Y displacement may be referred to as the Y reference display position.
  • the display positions in the X-axis direction and the Y-axis direction of the image displayed by the electronic device 1 at the reference position are the X reference display position and the Y reference display position, respectively.
  • the X reference display position for example, a center line along the Y axis direction indicating the center of the display surface 121 in the X axis direction and a center line along the Y axis direction indicating the center of the image in the X axis direction.
  • the display positions in the X-axis direction of the images are overlapped.
  • the center line along the Y-axis direction indicating the center of the image 600 in the X-axis direction is a line along the Y-axis direction that passes through the center position 702 of the image 600. .
  • the center line indicating the center of the image in the X-axis direction and the X-axis of the display surface 121 overlaps.
  • the center line along the X-axis direction indicating the center of the display surface 121 in the Y-axis direction and a center line along the X-axis direction indicating the center of the image in the Y-axis direction.
  • the display positions in the Y-axis direction of the images are overlapped with each other.
  • the center line along the X-axis direction which indicates the center of the image 600 in the Y-axis direction, is a line along the X-axis direction that passes through the center position 702 of the image 600. .
  • the center line indicating the center of the image in the Y-axis direction and the Y-axis of the display surface 121 overlaps.
  • a case where the electronic device 1 having an X displacement of + L displays the image 600 such that its display position is displaced by L in the ⁇ X direction as compared with the image 600 displayed by the electronic device 1 having an X displacement of zero.
  • the earth of the image 600 displayed on the display surface 121 is displayed.
  • the positions in the X-axis direction are the same.
  • the image of the electronic device 1 having the X displacement of + L is shifted such that the center in the X-axis direction is displaced by L in the ⁇ X direction as compared with the image 600 displayed by the electronic device 1 having the X displacement of zero.
  • the center of the image 600 displayed on the display surface 121 in the X-axis direction is the same between the electronic device 1 having an X displacement of zero and the electronic device 1 having an X displacement of + L. . Therefore, when the electronic device 1 displays an image, the display position of the image is opposite to the X reference display position by the absolute value of the X displacement of the electronic device 1 opposite to the direction indicated by the sign of the X displacement.
  • the image is displayed so as to be displaced in the direction, the position of the image displayed on the display surface 121 in the X-axis direction with respect to the earth becomes difficult to change.
  • the sign of the X displacement is positive, the direction opposite to the direction indicated by the sign is the ⁇ X direction.
  • the display position of the image is opposite to the Y reference display position by the absolute value of the Y displacement of the electronic device 1 opposite to the direction indicated by the sign of the Y displacement.
  • the image is displayed so as to be displaced in the direction of, the position of the image displayed on the display surface 121 in the Y-axis direction with respect to the earth is unlikely to change.
  • the display control unit 500 executes the image position control so that the display position in the X-axis direction of the image displayed on the display unit 120 is the X displacement of the electronic device 1 more than the X reference display position. Only the absolute value of the estimated value is shifted in the direction opposite to the direction indicated by the sign of the estimated value. Further, the display control unit 500 executes the image display control so that the display position in the Y-axis direction of the image displayed on the display unit 120 is the absolute value of the estimated value of the Y displacement of the electronic device 1 rather than the Y reference display position. Only the value is shifted in the direction opposite to the direction indicated by the sign of the estimated value. This makes it difficult for the position of the image displayed by the electronic device 1 with respect to the earth to change during the target vibration. As a result, the visibility of the image displayed by the electronic device 1 during the target vibration is improved.
  • the display surface 121 is displayed as shown in the lower side of FIG. Only a part of the image 600 is displayed on the display screen 121, and an area 121a where the image 600 is not displayed occurs on the display surface 121.
  • a predetermined image different from the image 600 may be displayed in the area 121a.
  • an image in which the color of each pixel is a predetermined color (for example, black) may be displayed in the area 121a.
  • the area 121a may display an extrapolated image 600.
  • the size of the image 600 may be smaller or larger than the size of the display surface 121.
  • the display control unit 500 for each frame period, based on the estimated value of the displacement obtained in the frame period, the display position of the image displayed in, for example, one frame period after the frame period.
  • the frame period is a period in which one frame image is displayed, and if the frame rate is 60 fps, the length of the frame period is 1/60 second (about 16.7 ms).
  • the frame period of interest in the description of the electronic device 1 may be referred to as the target frame period.
  • a frame period that is one behind the target frame period may be referred to as a next frame period.
  • An image displayed in the next frame period (that is, a frame image) may be referred to as a target image.
  • the displacement estimated value used in determining the display position of the target image may be referred to as a target displacement estimated value.
  • the acceleration detection value used as the latest acceleration detection value when generating the target displacement estimation value may be referred to as a target acceleration detection value.
  • FIG. 10 is a flowchart showing an example of the operation of the electronic device 1 during the target frame period.
  • the electronic device 1 executes the process shown in FIG. 10 for each frame period.
  • the estimation unit 300 executes the motion estimation processing shown in FIG. 7 described above.
  • the estimation unit 300 acquires the target acceleration detection value.
  • the target acceleration detection value for example, the acceleration detection value output from the acceleration sensor 150 immediately after the vertical synchronization signal in the target frame period is generated is adopted.
  • step s32 the estimation unit 300 determines the estimation timing of the motion estimation process. Then, in step s33, the estimation unit 300 uses the target acceleration detection value as the latest acceleration detection value and executes the motion estimation process of estimating the movement of the electronic device 1 at the estimation timing determined in step s32.
  • FIG. 11 is a diagram for explaining an example of a method of determining the estimated timing.
  • FIG. 11 shows a generation start timing tm1 which is a timing at which the generation of the vertical synchronization signal in the target frame period starts and a generation start timing tm2 which is a timing at which the generation of the vertical synchronization signal in the next frame period starts.
  • an output timing tm3 which is the timing at which the acceleration sensor 150 outputs the target acceleration detection value
  • a display timing tm4 which is the timing at which the target image is actually displayed on the display surface 121. It can be said that the output timing tm3 is the timing at which the estimation unit 300 acquires the target acceleration detection value from the acceleration sensor 150.
  • step s32 the estimation unit 300 obtains a time T11 from the output timing tm3 of the target acceleration detection value to the vertical synchronization signal generation start timing tm2 in the next frame period.
  • the generation start timing tm2 is known to the estimation unit 300.
  • the estimation unit 300 adds the obtained time T11 to the time T12 from the generation start timing tm2 to the display timing tm4 to obtain the time T13 from the output timing tm3 to the display timing tm4. Then, the estimation unit 300 sets the obtained time T13 as T0 of the estimation timing. As a result, the estimated timing becomes the timing at which the target image is actually displayed on the display unit 120.
  • the estimated timing T0 is 28 ms.
  • the target image is displayed 28 ms after the present. Specifically, the target image is displayed 28 ms after the target acceleration detection value is obtained.
  • the time T12 is stored in the storage unit 103 in advance.
  • the time T12 includes the time from when the generation of the vertical synchronization signal is started until the display controller 122 receives a drive signal from the display control unit 500, and the reaction time of the display panel 122.
  • the reaction time of the display panel 122 is the time from when a drive signal is given to the display panel 122 until the display panel 122 actually displays an image.
  • the time T12 is obtained in advance by an actual machine experiment or simulation.
  • step s33 the estimation unit 300 uses the target acceleration detection value as the latest acceleration detection value and performs the motion estimation process shown in FIG. 7 described above.
  • the estimated values of acceleration, velocity, displacement and total displacement at the estimation timing are obtained. That is, estimated values of acceleration, velocity, displacement, and total displacement at the timing when the target image is displayed can be obtained.
  • the target image is displayed on the display unit 120 based on Bayesian estimation using the predicted values of acceleration, velocity, displacement, and total displacement at the timing when the target image is displayed on the display unit 120. It can be said that estimates of acceleration, velocity, displacement and total displacement are generated.
  • step s34 the display control unit 500 executes image position control. Specifically, the display control unit 500 determines the display position of the target image by using the estimated value of the displacement obtained in step s33 as the target displacement estimated value.
  • step s34 the display control unit 500 sets the estimated value of the displacement in the X-axis direction at the estimation timing, which is output from the second filter 320, as the target displacement estimated value in the X-axis direction and is output from the second filter 320.
  • the estimated value of the displacement in the Y-axis direction at the estimation timing is set as the target displacement estimated value in the Y-axis direction.
  • the display control unit 500 determines the display position of the target image based on the target displacement estimated value in the X-axis direction and the Y-axis direction.
  • step s34 the display control unit 500 sets the display position in the X-axis direction of the target image to the target displacement estimated value in the X-axis direction by the absolute value of the target displacement estimated value in the X-axis direction from the X reference display position.
  • the position is determined to be displaced in the direction opposite to the direction indicated by the reference numeral.
  • the display control unit 500 sets the display position of the target image in the Y-axis direction to the reference displacement estimated value in the Y-axis direction by the absolute value of the target displacement estimated value in the Y-axis direction relative to the Y reference display position.
  • the position is determined to be offset in the direction opposite to the direction shown. This makes it difficult for the position of the target image displayed in the next frame period with respect to the earth to deviate from the position of the image displayed by the electronic device 1 at the reference position with respect to the earth.
  • step s34 the display control unit 500 generates a drive signal for displaying the target image on the display unit 120 at the determined display position and gives the drive signal to the display unit 120.
  • the display section 120 displays the target image at the display position determined in step s34.
  • the control unit 100 executes the above-described processing of steps s31 to s34 by setting each frame period as the target frame period, so that the position of the image displayed on the display surface 121 at the predetermined frame rate with respect to the earth becomes difficult to move. .
  • the position of the image with respect to the earth during the execution of the image position control is less likely to change from the position of the image displayed by the electronic device 1 at the reference position with respect to the earth.
  • the visibility of the image is improved.
  • the position of the object character string 601 in FIG. 9) such as characters, symbols, and figures included in the image displayed on the electronic device 1 with respect to the earth becomes difficult to move, so that the visibility of the object is improved. improves.
  • the electronic device 1 of this example reduces the possibility that such a thing will occur.
  • the estimation unit 300 Since the estimation unit 300 performs the motion estimation process every 5 ms as described above, not only the motion estimation process of step s33 but also the motion estimation process unrelated to the image position control is executed in the target frame period. To be done. The estimation unit 300 does not have to execute the motion estimation process other than the motion estimation process of step s33 in the target frame period.
  • the estimating unit 300 may start executing the image display control when a predetermined condition is satisfied in the electronic device 1. For example, when the control unit 100 determines that the estimation unit 300 has performed an operation to instruct execution of image display control on the display surface 121, the estimation unit 300 starts execution of image display control, and FIG. You may perform the series of processes shown by.
  • the prediction probability distribution a (t) of the acceleration at a certain timing is the estimated probability distribution of the acceleration at a timing before the certain timing, as shown in Expression (3). It is represented by an extrapolation formula using a (t-1) and a (t-2). Further, in the prediction model 360, as shown in Expression (5), the predicted probability distribution r (t) of displacement at a certain timing is the estimated probability distribution a (t) of acceleration at a timing before the certain timing. It is represented by a prediction formula using -1).
  • the estimated probability distribution of acceleration at a certain timing is used as the estimated probability distribution of acceleration at the previous timing in the extrapolation formula (3), so The predicted probability distribution of acceleration at the previous timing is obtained, and the estimated probability distribution of acceleration at the preceding timing is generated based on Bayesian estimation using the calculated predicted probability distribution of acceleration at the preceding timing.
  • a specific process is performed.
  • the estimated probability distribution of acceleration obtained by repeatedly executing the specific process is used as the estimated probability distribution of acceleration at the previous timing in the prediction formula of Expression (5).
  • the predicted probability distribution of the displacement at the timing when the target image is displayed is obtained.
  • an estimated value of the displacement at the timing at which the target image is displayed is generated based on Bayesian estimation using the predicted probability distribution of the displacement at the timing at which the target image is displayed. .
  • the position of the image displayed on the display unit 120 with respect to the earth is more reliable. It becomes difficult to change to.
  • the acceleration sensor 150 it may take some time from the detection of acceleration by the internal filter function to the output of the detection result.
  • the time from the acceleration sensor 150 detecting the acceleration to the output of the detection result may be referred to as a sensor delay time.
  • the estimated value of the displacement at the timing T0 time later than the present time (that is, the estimated value of the displacement at the estimated timing) obtained in step s33 is, strictly speaking, the acceleration sensor 150 indicates the latest acceleration.
  • the timing is T0 time after the detected timing.
  • the sensor delay time is zero, assuming that the time T13 from the output timing tm3 to the display timing tm4 is T0 as described above, the estimated timing matches the timing at which the target image is displayed.
  • the time T13 is set to T0 when the sensor delay time is not zero, the estimated timing is a timing slightly before the timing at which the target image is displayed. Therefore, the estimated value of the displacement at the estimated timing is the estimated value of the displacement slightly before the timing at which the target image is displayed.
  • the estimation unit 300 may determine the estimation timing in consideration of the sensor delay time. Specifically, as shown in FIG. 12, the estimation unit 300 sets the time T14 from the timing tm5 when the acceleration sensor 150 detects the acceleration to the output timing tm3 of the detection result (that is, the target acceleration detection value) as the time T14.
  • the time T15 obtained by adding T13 may be T0 of the estimated timing. Thereby, the estimation unit 300 can more accurately estimate the displacement at the display timing of the target image.
  • the time T14 is obtained in advance by an actual machine experiment or simulation.
  • the estimation unit 300 estimates the displacement at the timing (T ⁇ (M ⁇ 1)) time ahead from the present.
  • the value may be used as the estimated value of the displacement at the estimation timing, and the estimated value may be used as the estimated value of the displacement at the display timing of the target image.
  • the electronic device 1 was a mobile phone such as a smartphone, but it may be another type of electronic device.
  • the electronic device 1 may be, for example, a tablet terminal, a laptop personal computer, a wearable device, or the like.
  • the wearable device adopted as the electronic device 1 may be a wrist band type or wrist watch type such as a wrist type, or a head band type or eyeglass type such as a head type. It may be of a type that is worn on the body such as a clothing pattern.
  • the above motion estimation technology can be used for screen correction in mobile terminals such as smartphones, smart watches and personal computers, projectors, head mounted displays, machine tools and electronic mirrors. Also, the above motion estimation technology Can also be used to correct the detection position of the touch panel.
  • the motion estimation technique described above can also be used for detecting motion of a game controller.
  • the game controller may have a fishing rod shape, for example.
  • the motion estimation techniques described above can also be used in motion detection for sports goods, running shoes and rackets. Further, the above-described motion estimation technique can be used for detecting abnormality of equipment, detection of floating motion of fishing, posture control of a robot, and the like.
  • the motion of the device during vibration estimated by the estimation unit 300 is the motion of the device during translational vibration. Therefore, it can be said that the estimated values of the acceleration, the velocity, the displacement, and the total displacement generated by the estimation unit 300 are the estimated values of the translational acceleration, the translational velocity, the translational displacement, and the total translational displacement.
  • the motion estimation device 400 may estimate the motion of the device during rotational vibration in the motion estimation process. The motion estimation process in this case will be described below.
  • the electronic device 1 according to the present example will be described by taking the case where the electronic device 1 is used as a head-up display mounted in a vehicle as an example.
  • the electronic device 1 that functions as a head-up display displays an image on a real landscape in front of the vehicle in which the electronic device 1 is mounted, for example, so as to display the image, so that augmented reality (AR) is achieved. ) Can be realized.
  • the electronic device 1 can display, for example, an image for supporting the driver in an overlapping manner with respect to the actual landscape.
  • the vehicle in which the electronic device 1 is mounted may be referred to as a target vehicle.
  • the electronic device 1 includes a gyro sensor 250.
  • the gyro sensor 250 can detect the rotational angular velocity of the electronic device 1.
  • the rotational angular velocity may be simply referred to as the angular velocity.
  • the gyro sensor 250 is, for example, a 3-axis gyro sensor.
  • the gyro sensor 250 is capable of detecting the angular velocity of rotation about the X1 axis, the angular velocity of rotation about the Y1 axis, and the angular velocity of rotation about the Z1 axis for the electronic device 1.
  • the gyro sensor 250 detects the angular velocity at predetermined intervals and outputs the detection result.
  • the predetermined interval is 5 ms, but other values may be used.
  • the predetermined interval may be referred to as a detection interval.
  • the length of the detection interval of the gyro sensor 250 may also be represented by T.
  • FIG. 14 is a diagram showing an example of the X1, Y1, and Z1 axes.
  • the X1 axis is set along the front-rear direction of the target vehicle 800 in which the electronic device 1 is mounted.
  • the Y1 axis is set so as to extend in the left-right direction of the target vehicle 800.
  • the Z1 axis is set along the height direction of the target vehicle 800.
  • the gyro sensor 250 can detect the angular velocity of rotation about the X1 axis, the angular velocity of rotation about the Y1 axis, and the angular velocity of rotation about the Z1 axis for the target vehicle 800.
  • the rotation around the X1 axis, the rotation around the Y1 axis, and the rotation around the Z1 axis may be referred to as rolling, pitching, and yawing, respectively.
  • the motion estimation device 400 of the electronic device 1 can estimate the motion of the electronic device 1 during rotational vibration based on the detection value 251 of the gyro sensor 250.
  • the motion estimation device 400 can estimate the motion of the target vehicle 800 during rotational vibration based on the detected value 251.
  • the detection value 251, that is, the angular velocity detected by the gyro sensor 250 may be referred to as an angular velocity detection value.
  • the motion estimation device 400 may determine, for example, that the rotational angle of the electronic device 1 is 0.5 Hz or more and 2 Hz or less. Rotational random vibration of a few degrees is taken as the target rotational vibration. Then, the motion estimation device 400 estimates the motion of the electronic device 1 that is performing the target rotational vibration.
  • the target rotational vibration is not limited to this example.
  • the detection value 251 of the gyro sensor 250 is affected by other than the target rotational vibration.
  • the detected value 251 may be affected by a gradual change in posture of the target vehicle 800 caused by a gradual change in the terrain in which the target vehicle 800 travels due to a slope or the like.
  • the detected value 251 may be affected by a gradual posture change of the target vehicle 800 due to acceleration / deceleration of the target vehicle 800.
  • the detected value 251 also includes a drift error. It is necessary to isolate and estimate the target motion to be corrected against these disturbances.
  • the first filter 310 of this example filters the detected value 251 of the gyro sensor 250 in order to remove influences other than the target rotational vibration.
  • the estimation unit 300 estimates the movement of the electronic device 1 during the target rotational vibration based on the Bayesian estimation using the detection value 251 filtered by the first filter 310, the observation model 350, and the prediction model 360. .
  • the estimation unit 300 of the present example as the estimation result of the movement of the electronic device 1, for example, the estimated value of the angular velocity of the electronic device 1, the estimated value of the rotation angle of the electronic device 1, and the estimated total rotation angle of the electronic device 1. Produces the values and.
  • the rotation angle of the electronic device 1 means the rotation angle of the posture of the electronic device 1 from the reference posture.
  • the rotation angle can take a positive value or a negative value.
  • the total rotation angle of the electronic device 1 is the sum of the rotation angles of the electronic device 1 at each time.
  • the total rotation angle can take a positive value and a negative value.
  • the reference attitude for example, the attitude of the electronic device 1 when the motion estimation apparatus 400 starts the operation is adopted.
  • the motion estimation apparatus 400 may start operation in response to the start of operation of the electronic device 1, or may start operation in response to a user's operation on the electronic device 1 in operation. Moreover, the motion estimation apparatus 400 may start operation when other conditions are satisfied in the electronic device 1 in operation.
  • the estimated values of the angular velocity, rotation angle, and total rotation angle of the electronic device 1 obtained by Bayesian estimation may be referred to as the angular velocity estimation value, the rotation angle estimation value, and the total rotation angle estimation value, respectively.
  • the term “angular velocity” simply means the angular velocity of the electronic device 1
  • the term “rotation angle” simply means the rotation angle of the electronic device 1
  • the term “total rotation angle” means the total rotation angle of the electronic device 1. means. It can be said that each of the angular velocity, the rotation angle, and the total rotation angle is a physical quantity of the electronic device 1.
  • the second filter 320 of this example performs filter processing on the estimation result of the estimation unit 300.
  • the second filter 320 individually filters the angular velocity estimated value, the rotation angle estimated value, and the total rotation angle estimated value output from the estimation unit 300.
  • the state vector x related to the above-mentioned equation (1) includes the angular velocity, the rotation angle, and the total rotation angle as variables.
  • the observation vector z includes, as variables, an angular velocity, a rotation angle, and a total rotation angle.
  • the estimation unit 300 of the present example performs Bayesian estimation by obtaining the posterior probability p (x t
  • the estimation unit 300 uses the observation model 350 as the probability distribution p (z t
  • the estimation unit 300 sets the state vector that maximizes the calculated posterior probability p (x t
  • the estimation unit 300 sets the angular velocity, rotation angle, and total rotation angle components of the estimated state vector as the angular velocity estimation value, the rotation angle estimation value, and the total rotation angle estimation value, respectively.
  • the observation model 350 of this example is an observation model representing the target rotational vibration.
  • the observation model 350 is a probability distribution that represents statistical prior knowledge about the target rotational vibration.
  • the observation model 350 is a maximum three-dimensional probability distribution that represents the angular velocity, the rotation angle, and the total rotation angle of the electronic device 1 during the target rotational vibration.
  • the marginal probability distributions for each dimension in the observation model 350 of this example may be referred to as a fifth probability distribution, a sixth probability distribution, and a seventh probability distribution, respectively.
  • the rotation angle of the target rotational vibration is small. Therefore, the posture of the electronic device 1 does not change much during the target rotational vibration.
  • the rotation angle of the electronic device 1 at the time of the target rotational vibration is represented by, for example, a fixed fifth probability distribution having a zero mean and a small variance with the rotation angle as a random variable.
  • the knowledge that the posture of the electronic device 1 does not change much is expressed.
  • the angular velocity of the electronic device 1 at the time of the target vibration is represented by, for example, a sixth probability distribution in which the average is the detected angular velocity and the variance is small, with the angular velocity as a random variable.
  • the angular velocity detection value filtered by the first filter 310 is adopted.
  • the sixth probability distribution changes according to the detected angular velocity value.
  • the total rotation angle of the electronic device 1 at the time of the target rotational vibration is represented by, for example, a fixed seventh probability distribution having an average of zero and having the total rotation angle as a random variable. In, the knowledge that the electronic device 1 rotationally vibrates is expressed.
  • the target rotational vibration is determined by machine learning, for example.
  • the observation model 350 may be determined using, for example, the maximum likelihood estimation method. Further, the observation model 350 may be determined based on the statistical distribution of the actual measurement values in the vibration environment of the target rotational vibration. Further, the observation model 350 may be determined based on both the machine learning and the statistical distribution of actual measurement values. For example, a normal distribution may be adopted as the fifth to seventh probability distributions.
  • the predicted value of the angular velocity at time t is represented by b (t), and the prediction error of the angular velocity at time t is represented by w_b (t).
  • the predicted value b (t) is represented by a probability distribution.
  • the predicted value b (t) may be referred to as a predicted probability distribution b (t).
  • the prediction error for example, a fixed probability distribution that does not change with time is adopted.
  • the prediction error is determined by machine learning, for example.
  • the prediction error may be determined using, for example, the maximum likelihood estimation method.
  • a normal distribution may be adopted as the probability distribution representing the prediction error.
  • the predicted value of the rotation angle at time t is represented by c (t)
  • the predicted value of the total rotation angle at time t is represented by d (t).
  • the predicted value c (t) of the rotation angle and the predicted value d (t) of the total rotation angle are represented by the same formulas as the above formulas (4) and (5).
  • the predicted value c (t) of the rotation angle and the predicted value d (t) of the total rotation angle are the following equations (9) and (10) using the length T of the detection interval of the gyro sensor 250.
  • the prediction error at the time t for the rotation angle is represented by w_c (t)
  • the prediction error at the time t for the total rotation angle is represented by w_d (t).
  • each of the predicted value c (t) and the predicted value d (t) is represented by a probability distribution.
  • the predicted value c (t) and the predicted value d (t) may be referred to as the predicted probability distribution c (t) and the predicted probability distribution d (t), respectively.
  • the estimation unit 300 in this example uses Equation (8) to obtain the predicted value a (t) of the angular velocity at time t.
  • the estimation unit 300 determines the angular velocity for the posterior probability p (x t-1
  • the estimation unit 300 calculates the angular velocity of the posterior probability p (x t-2
  • the estimation unit 300 obtains the predicted value c (t) of the rotation angle at the time t by using the equation (9). At this time, the estimation unit 300 estimates the posterior probability p (x t-1
  • z 1: t-1 ) are respectively substituted.
  • z 1: t-1 ) are the estimated probability distributions of the angular velocity, the rotation angle, and the total rotation angle, respectively. It can be said that there is.
  • the estimation unit 300 in this example uses the detected angular velocity output from the gyro sensor 250, the equations (8) to (10) in the prediction model 360, and Bayesian estimation using the observation model 350 to determine the current value.
  • a motion estimation process for estimating the motion of the electronic device 1 is performed.
  • FIG. 15 is a flowchart showing an example of the motion estimation processing of this example.
  • the motion estimation process shown in FIG. 15 is executed every time a new angular velocity is detected by the gyro sensor 250.
  • the estimation unit 300 of this example obtains, for example, a rolling acceleration estimation value, a velocity estimation value, a displacement estimation value, and a total displacement estimation value.
  • the estimation unit 300 obtains, for example, a pitching acceleration estimation value, a velocity estimation value, a displacement estimation value, and a total displacement estimation value.
  • the estimation unit 300 obtains, for example, an yaw acceleration estimation value, a velocity estimation value, a displacement estimation value, and a total displacement estimation value.
  • the estimation unit 300 obtains the current predicted value of the angular velocity using the prediction model 360 in step s51, as shown in FIG.
  • the estimation unit 300 separately uses the prediction model 360 to separately obtain a rolling angular velocity predicted value, a pitching angular velocity predicted value, and a yawing angular velocity predicted value.
  • step s51 the estimation unit 300 calculates the marginal probability distribution of the rolling angular velocity with respect to the posterior probability p (x t-1
  • step s52 the estimation unit 300 uses the prediction model 360 to calculate the current rolling angle prediction value, the pitching current rotation angle prediction value, and the yawing current rotation angle prediction value. Separately.
  • the estimation unit 300 calculates the marginal probability distribution of the rolling angular velocity with respect to the posterior probability p (x t-1
  • step s53 the estimation unit 300 uses the prediction model 360 to calculate the predicted current total rotation angle of rolling, the predicted total rotation angle of pitching, and the current total rotation angle of yawing. Obtain the predicted value separately.
  • the estimation unit 300 calculates the marginal probability distribution of the rolling angular velocity with respect to the posterior probability p (x t-1
  • the estimation unit 300 calculates the marginal probability distribution of the rolling total rotation angle with respect to the posterior probability p (x t ⁇ 1
  • step s54 the estimation unit 300 estimates the angular velocity, the rotation angle, and the total rotation angle based on Bayesian estimation using the prediction values obtained in steps s51 to s53 and the observation model 350. Generate a value.
  • step s54 the estimation unit 300 sets the predicted values of the rolling angular velocity, the rotation angle, and the total rotation angle (in other words, the prediction probability distribution) obtained in steps s51 to s53 to p (x t in the above equation (1). Substitute
  • the estimation unit 300 uses the latest rolling angular velocity detection value (specifically, the latest rolling rolling angular velocity detection value filtered by the first filter 310) as the average of the sixth probability distributions. Then, the estimation unit 300, the posterior probability obtained at step s54 the last motion estimation process p (x t
  • the estimation unit 300 specifies the state vector that maximizes the estimated posterior probability p (x t
  • the estimation unit 300 uses the components of the angular velocity, the rotation angle, and the total rotation angle of the estimated state vector as the rolling current angular velocity estimation value, the rotation angle estimation value, and the total rotation angle estimation value, respectively.
  • the electronic device 1 is performing the target rotational vibration, it can be said that the estimated values of the angular velocity, the rotation angle, and the total rotation angle of the rolling of the electronic device 1 at the time of the target rotational vibration are obtained in step s54.
  • step s54 the estimated values of the rolling angular velocity, the rotation angle, and the total rotation angle of the target vehicle 800 during the target rotational vibration are obtained.
  • the estimation unit 300 uses Equation (1) to generate the estimated values of the pitching angular velocity, the rotation angle, and the total rotation angle.
  • the estimation unit 300 uses the latest pitching angular velocity detection value (specifically, the latest pitching angular velocity detection value filtered by the first filter 310) as the average of the sixth probability distributions.
  • the estimation unit 300 uses Equation (1) to generate the estimated values of the yaw angular velocity, the rotation angle, and the total rotation angle.
  • the estimation unit 300 uses the latest yaw angular velocity detection value (specifically, the latest yaw angular velocity detection value filtered by the first filter 310) as the average of the sixth probability distributions.
  • the second filter 320 individually performs filter processing on each of the estimated values of the rolling angular velocity, the rotation angle, and the total rotation angle generated by the estimation unit 300. In addition, the second filter 320 individually performs filter processing on each of the estimated values of the pitching angular velocity, the rotation angle, and the total rotation angle generated by the estimation unit 300. Then, the second filter 320 individually performs filter processing on each of the estimated values of the yaw angular velocity, the rotation angle, and the total rotation angle generated by the estimation unit 300.
  • the marginal probability distribution of the filtered angular velocity may be input to b (t-1). Further, the marginal probability distribution of the filtered angular velocity may be input to b (t ⁇ 2). Further, the marginal probability distribution of the filtered rotation angle may be input to c (t-1). Further, the marginal probability distribution of the filtered total rotation angle may be input to d (t-1).
  • step s51 may be executed after any one of steps s52 and s53, and step s53 may be executed before any one of steps s51 and s52.
  • the estimation unit 300 in this example may estimate the movement of the electronic device 1 at a timing earlier than the present, in the same manner as in FIG. 6 described above.
  • the series of processing of steps s51 to s54 is unit estimation processing.
  • the movement of the electronic device 1 at the timing (T ⁇ (M ⁇ 1)) time ahead of the present time is estimated. That is, the estimated values of the angular velocity, the rotation angle, and the total rotation angle of the electronic device 1 at the time of (T ⁇ (M ⁇ 1)) time later than the current time of the target rotational vibration can be obtained.
  • the estimation unit 300 estimates the movement of the electronic device 1 at a desired estimation timing earlier than the current timing, not at the timing earlier than the current timing by an integral multiple of T, as in the case of FIG. 7 described above. Good.
  • the angular velocity detection value of the gyro sensor 250, the prediction model 360 that represents the movement of the electronic device 1, and the observation model 350 that represents the rotational vibration of the electronic device 1 that uses the angular velocity detection value are set. Based on the Bayesian estimation used, the movement of the electronic device 1 during rotational vibration is estimated. This makes it possible to appropriately estimate the movement of the electronic device 1 during rotational vibration.
  • the predicted probability distribution of angular velocities at a certain timing is the estimated probability distribution of angular velocities at a timing earlier than the certain timing. It is expressed by the extrapolation formula used. Then, the estimated probability distribution at a certain timing is used as the estimated probability distribution at the previous timing in the extrapolation formula to obtain the predicted probability distribution at the timing earlier than the certain timing, and at the determined previous timing. It is possible to obtain the estimated probability distribution of the angular velocity at the desired timing by repeatedly executing the process of generating the estimated probability distribution at the preceding timing based on the Bayesian estimation using the predicted probability distribution of. Therefore, the extrapolation formula can be used to easily obtain the estimated value of the angular velocity at the desired timing.
  • the observation model 350 it is expressed that the average rotation angle of the electronic device 1 during the target rotational vibration is zero. Therefore, it is possible to reduce the possibility that the estimated value of the rotation angle of the electronic device 1 during the target rotational vibration greatly deviates from zero. Therefore, it is possible to appropriately obtain the estimated value of the rotation angle according to the situation that the rotation angle of the target rotational vibration is small.
  • the observation model 350 it is expressed that the average of the total rotation angles of the electronic device 1 during the target rotational vibration is zero. Thereby, the estimated value of the rotation angle that changes according to the rotational vibration of the electronic device 1 can be appropriately obtained. For this reason, it is expressed that the average of the total displacements of the electronic device 1 at the time of the target vibration is zero, so that the estimated value of the displacement that changes according to the vibration of the electronic device 1 can be appropriately obtained. The reason is the same.
  • the estimation unit 300 does not have to generate at least one of the estimated values of the angular velocity, the rotation angle, and the total rotation angle. That is, the estimation unit 300 may generate at least one estimated value of the angular velocity, the rotation angle, and the total rotation angle as the motion estimation result. The estimation unit 300 may not generate at least one of the rolling angular velocity estimation value, the rotation angle estimation value, and the total rotation angle estimation value. Further, the estimation unit 300 may not generate at least one of the pitching angular velocity estimation value, the rotation angle estimation value, and the total rotation angle estimation value. Further, the estimation unit 300 may not generate at least one of the yaw angular velocity estimation value, the rotation angle estimation value, and the total rotation angle estimation value.
  • the electronic device 1 of this example that functions as a head-up display can correct the display position of the image displayed in an overlapping manner on the actual landscape based on the motion estimation result.
  • the display unit 120 included in the electronic device 1 of this example can display an image in a superimposed manner on a real landscape in front of the target vehicle 800.
  • the display unit 120 has, for example, a configuration similar to that of a projector.
  • the display control unit 500 included in the electronic device 1 of the present example can control the display position of the image displayed by the display unit 120 so as to be superimposed on the actual landscape.
  • an example of the operation of the display control unit 500 of this example will be described.
  • an image displayed by the display unit 120 so as to be superimposed on the actual landscape may be referred to as a superimposed image.
  • rotational vibration about the Y1 axis may occur in the target vehicle 800.
  • rotational vibration about the Y1 axis occurs in the target vehicle 800
  • rotational vibration about the Y1 axis also occurs in the electronic device 1.
  • the position of the superimposed image displayed by the display unit 120 with respect to the earth may shift in the vertical direction of the target vehicle 800.
  • the target vehicle 800 is viewed from the front side and the target vehicle 800 rotates downward
  • the position of the superimposed image with respect to the earth shifts downward.
  • the target vehicle 800 is viewed from the front side and the target vehicle 800 rotates upward
  • the position of the superimposed image with respect to the earth shifts upward. This may make it difficult for the user to visually recognize the superimposed image.
  • the display control unit 500 of the present example controls the display position of the superimposed image on the display unit 120 based on the estimated value of the pitching rotation angle of the electronic device 1 output from the second filter 320. , Controlling the position of the superimposed image with respect to the earth. As a result, the position of the superimposed image superimposed on the actual landscape with respect to the earth is unlikely to change, and the visibility of the superimposed image can be improved.
  • the display control unit 500 in this example estimates the amount of displacement of the superimposed image with respect to the earth and the direction of displacement of the superimposed image with respect to the earth based on the estimated value of the pitching rotation angle of the electronic device 1. Then, the display control unit 500 changes the display position of the superimposed image in the direction opposite to the estimated displacement direction by the estimated displacement amount. This makes it difficult for the position of the superimposed image superimposed on the actual landscape to change with respect to the earth. As a result, the visibility of the superimposed image is improved.
  • the operation of the display control unit 500 of this example will be described in detail below with reference to FIG. 10 described above.
  • the pitching rotation angle of the electronic device 1 may be referred to as a pitching rotation angle.
  • the superimposed image is displayed at a predetermined frame rate, for example.
  • the display control unit 500 determines, for each frame period, the display position of the superimposed image displayed in the frame period that is one frame after the frame period, for example, based on the estimated value of the pitching rotation angle obtained in the frame period. To do.
  • the frame period of interest in the description of the electronic device 1 of this example may be referred to as the target frame period.
  • a frame period that is one behind the target frame period may be referred to as a next frame period.
  • the superimposed image displayed in the next frame period may be referred to as a target superimposed image.
  • the estimated value of the pitching rotation angle used in the determination of the display position of the target superimposed image may be referred to as the target rotation angle estimated value.
  • the pitching angular velocity detection value used as the latest pitching angular velocity detection value when generating the target rotation angle estimation value may be referred to as a target angular velocity detection value.
  • the estimation unit 300 performs the estimation of the electronic device 1 at a desired estimation timing earlier than the current timing, instead of the timing earlier than the current timing by an integral multiple of T, as in FIG. 7 described above. Estimate the movement.
  • the estimation unit 300 acquires the target angular velocity detection value.
  • the target angular velocity detection value for example, a pitching angular velocity detection value output from the gyro sensor 250 immediately after the vertical synchronization signal in the target frame period is generated is adopted.
  • step s32 the estimation unit 300 determines the estimation timing of the motion estimation process. Then, in step s33, the estimation unit 300 uses the target angular velocity detection value as the latest angular velocity detection value for pitching, and executes the motion estimation process of estimating the motion of the electronic device 1 at the estimation timing determined in step s32. .
  • the estimated timing is determined in the same way as in FIG. 11 above.
  • the output timing tm3 is the timing at which the gyro sensor 250 outputs the target angular velocity detection value.
  • the estimation unit 300 obtains the time T11 from the output timing tm3 of the target angular velocity detection value to the vertical synchronization signal generation start timing tm2 in the next frame period.
  • the estimation unit 300 adds the obtained time T11 to the time T12 from the generation start timing tm2 to the display timing tm4 to obtain the time T13 from the output timing tm3 to the display timing tm4.
  • the estimation unit 300 sets the obtained time T13 as T0 of the estimation timing.
  • the estimated timing becomes the timing at which the target superimposed image is actually displayed on the display unit 120.
  • step s33 the estimation unit 300 uses the target angular velocity detection value as the latest angular velocity detection value and performs the motion estimation process similar to that in FIG. 7 described above.
  • the estimated values of the angular velocity, the rotation angle, and the total rotation angle at the estimation timing are obtained. That is, the estimated values of the angular velocity, the rotation angle, and the total rotation angle at the timing when the target superimposed image is displayed can be obtained.
  • step s34 the display control unit 500 determines the display position of the target superimposed image using the estimated value of the rotation angle obtained in step s33 as the target rotation angle estimated value.
  • step s34 the display control unit 500 sets the estimated value of the pitching rotation angle at the estimation timing, which is output from the second filter 320, as the target rotation angle estimation value. Then, the display control unit 500 determines the display position of the target superimposed image based on the target rotation angle estimated value.
  • step s34 the display control unit 500 estimates the displacement amount of the position of the superimposed image with respect to the earth and the displacement direction of the position of the superimposed image with respect to the earth, based on the target rotation angle estimated value. Then, the display control unit 500 changes the display position of the superimposed image displayed in the next frame period in the direction opposite to the estimated displacement direction by the estimated displacement amount. As a result, the position of the target superimposed image displayed in the next frame period with respect to the earth does not easily deviate from the position with respect to the earth.
  • the control unit 100 executes the above-described processing of steps s31 to s34 by using each frame period as the target frame period, so that the position of the superimposed image displayed on the display unit 120 at the predetermined frame rate with respect to the earth is difficult to move. Become. As a result, the visibility of the superimposed image superimposed on the actual landscape is improved.
  • the electronic device 1 of this example reduces the possibility of such a situation occurring.
  • the predicted probability distribution b (t) of the angular velocity at a certain timing is the estimated probability distribution of the angular velocity at a timing earlier than the certain timing. It is represented by an extrapolation formula using b (t-1) and b (t-2). Further, in the prediction model 360, as shown in Expression (9), the predicted probability distribution c (t) of the rotation angle at a certain timing is the estimated probability distribution b () of the angular velocity at a timing earlier than the certain timing. It is represented by a prediction formula using t-1).
  • the estimated probability distribution of angular velocities at a certain timing is used as the estimated probability distribution of angular velocities at the previous timing in the extrapolation formula (8),
  • the predicted probability distribution of the angular velocity at the previous timing is obtained, and the estimated probability distribution of the angular velocity at the previous timing is generated based on Bayesian estimation using the obtained predicted probability distribution of the angular velocity at the previous timing.
  • a specific process is performed.
  • the estimated probability distribution of the angular velocity obtained by repeatedly executing the specific process is used as the estimated probability distribution of the angular velocity at the previous timing in the prediction formula of Expression (9).
  • the predicted probability distribution of the rotation angle at the timing when the target superimposed image is displayed is obtained.
  • the estimated value of the rotation angle at the timing at which the target superimposed image is displayed is based on Bayesian estimation using the predicted probability distribution of the rotation angle at the timing at which the target superimposed image is displayed. Is generated.
  • the gyro sensor 250 it may take some time from the detection of the angular velocity to the output of the detection result by the internal filter function or the like.
  • the time from when the gyro sensor 250 detects the angular velocity to when the detection result is output may be referred to as a gyro sensor delay time.
  • the estimated value of the angular velocity at the timing T0 later than the present time (that is, the estimated value of the angular velocity at the estimated timing) obtained in step s33 is, strictly speaking, the gyro sensor 250 indicates the latest angular velocity.
  • the timing is T0 time after the detected timing.
  • the gyro sensor delay time is zero, assuming that the time T13 from the output timing tm3 to the display timing tm4 is T0 as described above, the estimated timing matches the timing at which the target superimposed image is displayed.
  • the time T13 is set to T0 when the gyro sensor delay time is not zero, the estimated timing is slightly before the timing at which the target superimposed image is displayed. Therefore, the estimated value of the rotation angle at the estimated timing is the estimated value of the rotation angle slightly before the timing at which the target superimposed image is displayed.
  • the estimation unit 300 may determine the estimation timing in consideration of the gyro sensor delay time, as in the case of FIG. 12 described above.
  • the timing tm5 is the timing at which the gyro sensor 250 detects the angular velocity.
  • the estimation unit 300 may set the time T15 obtained by adding the time T14 from the timing tm5 to the output timing tm3 of the detection result (that is, the target angular velocity detection value) to the time T13 as the estimation timing T0. Thereby, the estimation unit 300 can more accurately estimate the rotation angle at the display timing of the target superimposed image.
  • the estimation unit 300 determines the rotation angle at the timing (T ⁇ (M ⁇ 1)) time ahead from the present.
  • the estimated value may be used as the estimated value of the rotation angle at the estimated timing, and the estimated value may be used as the estimated value of the rotational angle at the display timing of the target superimposed image.
  • the electronic device 1 was used as a head-up display, but it may be used as another device.
  • the electronic device 1 may be used as a head mounted display for virtual reality (VR) or augmented reality.
  • the electronic device 1 may estimate the movement during rotational vibration and control the display position of the image to be displayed based on the estimation result, as described above.
  • the head mounted display may be a goggle type, an eyeglass type, or another shape.
  • the motion estimation device 400 may estimate the motion of a device that is performing translational vibration and rotational vibration.
  • the estimation unit 300 determines at least one of the acceleration estimation value, the velocity estimation value, the displacement estimation value, and the total displacement estimation value, and the angular velocity estimation value, the rotation angle estimation value, and the total variation rotation angle estimation value in the motion estimation process. At least one and may be generated. For example, consider a case where an acceleration estimated value, a velocity estimated value, a displacement estimated value, and a total displacement estimated value, and an angular velocity estimated value, a rotation angle estimated value, and a total variable rotation angle estimated value are generated in the motion estimation process.
  • the state vector x related to Expression (1) includes acceleration, velocity, displacement, total displacement, angular velocity, rotation angle, and total rotation angle as variables.
  • the observation vector z includes acceleration, velocity, displacement, total displacement, angular velocity, rotation angle, and total rotation angle as variables.
  • the observation model 350 has a maximum seven-dimensional probability distribution that represents acceleration, velocity, displacement, total displacement, angular velocity, rotation angle, and total rotation angle of the electronic device 1.
  • the estimation unit 300 calculates the acceleration, the velocity, the displacement, the total displacement, the angular velocity, the rotation angle, and the total rotation angle components of the estimated state vector, respectively, as the acceleration estimation value, the velocity estimation value, the displacement estimation value, and the total displacement estimation value. , Angular velocity estimation value, rotation angle estimation value, and total rotation angle estimation value.
  • the motion estimation apparatus 400 may not include at least one of the first filter 310 and the second filter 320. Further, the observation model 350 is not limited to the above example.
  • the prediction model 360 is not limited to the above example. For example, at least one of equations (4) to (6), (9), and (10) may not include a prediction error. Further, the method of using the motion estimation result in motion estimation apparatus 400 is not limited to the above example.
  • the motion estimation device 400 may not be included in the electronic device 1. Further, the motion estimation device 400 may estimate the motion of a device other than the electronic device 1.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

振動時の装置の動きを推定する動き推定装置は推定部を備える。推定部は、装置の動きを表す予測モデルと、装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する。

Description

動き推定装置、電子機器、制御プログラム及び動き推定方法 関連出願の相互参照
 本出願は、日本国特許出願2018-193363号(2018年10月12日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
 本開示は、装置の動きの推定に関する。
 特許文献1には、電子機器に関する技術が記載されている。また特許文献2及び非特許文献1には、ベイズ推定に関する技術が記載されている。
特開2015-141700号公報 特開2005-165688号公報
樋口和之編著、「データ同化入門-次世代のシミュレーション技術-」、朝倉書店、2011年9月
 電気機器等の装置の動きを推定する場合には、適切に装置の動きを推定できることが望まれる。
 そこで、本発明は上述の点に鑑みて成されたものであり、装置の動きを適切に推定できることを可能にする技術を提供することを目的とする。
 動き推定装置、電子機器、制御プログラム及び動き推定方法が開示される。一の実施の形態では、動き推定装置は、振動時の装置の動きを推定する動き推定装置である。動き推定装置は推定部を備える。推定部は、装置の動きを表す予測モデルと、装置の第1物理量としての加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する。
 また、一の実施の形態では、電子機器は、上記の動き推定装置と、表示部と、表示制御部とを備える。表示制御部は、動き推定装置の推定部で生成される変位あるいは回転角の推定値に基づいて、表示部に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する。
 また、一の実施の形態では、制御プログラムは、コンピュータを制御するための制御プログラムである。制御プログラムは、コンピュータに、装置の動きを表す予測モデルと、装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する処理を実行させる。
 また、一の実施の形態では、動き推定方法は、振動時の装置の動きを推定する動き推定方法である。動き推定方法は、装置の動きを表す予測モデルと、装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する。
 装置の動きを適切に推定することができる。
電子機器の外観の一例を示す斜視図である。 電子機器の外観の一例を示す背面図である。 電子機器の構成の一例を示すブロック図である。 制御部の構成の一例を示すブロック図である。 電子機器の動作の一例を示すフローチャートである。 電子機器の動作の一例を示すフローチャートである。 電子機器の動作の一例を示すフローチャートである。 制御部の構成の一例を示すブロック図である。 電子機器の動作の一例を説明するための図である。 電子機器の動作の一例を示すフローチャートである。 電子機器の動作の一例を説明するための図である。 電子機器の動作の一例を説明するための図である。 電子機器の構成の一例を示すブロック図である。 電子機器が搭載される車両の一例を示す図である。 電子機器の動作の一例を示すフローチャートである。
 <電子機器の外観>
 図1及び2は電子機器1の外観の一例を示す斜視図及び背面図である。図1及び2に示されるように、装置の一種である電子機器1は、平面視で略長方形の板状の機器ケース11を備えている。機器ケース11は電子機器1の外装を構成している。
 機器ケース11の前面11aには、文字、記号、図形等の各種情報が表示される表示面121が位置している。本例では、表示面121は、機器ケース11に含まれる透明部分によって構成されている。表示面121の背面側には後述するタッチパネル130が位置する。これにより、ユーザは、電子機器1の前面の表示面121を指等で操作することによって、電子機器1に対して各種情報を入力することができる。なお、ユーザは、指以外の操作子、例えば、スタイラスペンなどのタッチパネル用ペンで表示面121を操作することによっても、電子機器1に対して各種情報を入力することができる。
 機器ケース11の前面11aの上端部にはレシーバ穴12が位置している。前面11aの下端部にはスピーカ穴13が位置している。機器ケース11の下側の側面11cにはマイク穴14が位置している。
 機器ケース11の前面11aの上端部からは、後述する第1カメラ190が有するレンズ191が視認可能となっている。図2に示されるように、機器ケース11の背面11bの上端部からは、後述する第2カメラ200が有するレンズ201が視認可能となっている。
 電子機器1は、複数の操作ボタンを含む操作ボタン群140を備える。複数の操作ボタンのそれぞれはハードウェアボタンである。具体的には、複数の操作ボタンのそれぞれは押しボタンである。なお、操作ボタン群140に含まれる少なくとも一つの操作ボタンは、表示面121に表示されるソフトウェアボタンであってもよい。
 操作ボタン群140には、機器ケース11の前面11aの下端部に位置する操作ボタン141,142,143が含まれる。また、操作ボタン群140には、機器ケース11の表面に位置する電源ボタン及びボリュームボタンが含まれてもよい。
 操作ボタン141は、例えばバックボタンである。バックボタンは、表示面121の表示を一つ前の表示に切り替えるための操作ボタンである。ユーザが操作ボタン141を操作することよって、表示面121の表示が一つ前の表示に切り替わる。操作ボタン142は、例えばホームボタンである。ホームボタンは、表示面121にホーム画面を表示させるための操作ボタンである。ユーザが操作ボタン142を操作することよって、表示面121にホーム画面が表示される。操作ボタン143は、例えば履歴ボタンである。履歴ボタンは、電子機器1で実行されたアプリケーションの履歴を表示面121に表示させるための操作ボタンである。ユーザが操作ボタン143を操作することよって、表示面121には、電子機器1で実行されたアプリケーションの履歴が表示される。
 以下では、図1,2に示されるXYZ直交座標系を用いて電子機器1を説明することがある。X軸方向、Y軸方向及びZ軸方向は、電子機器1の短手方向、長手方向及び厚み方向にそれぞれ設定されている。
 <電子機器の電気的構成>
 図3は電子機器1の電気的構成の一例を主に示すブロック図である。図3に示されるように、電子機器1は、制御部100、無線通信部110、表示部120、タッチパネル130、操作ボタン群140及び加速度センサ150を備える。さらに電子機器1は、レシーバ160、スピーカ170、マイク180、第1カメラ190、第2カメラ200及び電池210を備える。電子機器1が備えるこれらの構成要素は、機器ケース11内に収められている。電子機器1は、一種のコンピュータであると言える。
 制御部100は、電子機器1の他の構成要素を制御することによって、電子機器1の動作を統括的に管理することが可能である。制御部100は制御装置あるいは制御回路とも言える。制御部100は、以下にさらに詳細に述べられるように、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含む。
 種々の実施形態によれば、少なくとも1つのプロセッサは、単一の集積回路(IC)として、または複数の通信可能に接続された集積回路(IC)及び/またはディスクリート回路(discrete circuits)として実行されてもよい。少なくとも1つのプロセッサは、種々の既知の技術に従って実行されることが可能である。
 1つの実施形態において、プロセッサは、例えば、関連するメモリに記憶された指示を実行することによって1以上のデータ計算手続又は処理を実行するように構成された1以上の回路又はユニットを含む。他の実施形態において、プロセッサは、1以上のデータ計算手続き又は処理を実行するように構成されたファームウェア(例えば、ディスクリートロジックコンポーネント)であってもよい。
 種々の実施形態によれば、プロセッサは、1以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、デジタル信号処理装置、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、またはこれらのデバイス若しくは構成の任意の組み合わせ、または他の既知のデバイス及び構成の組み合わせを含み、以下に説明される機能を実行してもよい。
 本例では、制御部100は、CPU(Central Processing Unit)101、DSP(Digital Signal Processor)102及び記憶部103を備える。記憶部103は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、CPU101及びDSP102が読み取り可能な非一時的な記録媒体を含む。記憶部103が有するROMは、例えば、不揮発性メモリであるフラッシュROM(フラッシュメモリ)である。記憶部103には、電子機器1を制御するための複数の制御プログラム103a等が記憶されている。制御部100の各種機能は、CPU101及びDSP102が記憶部103内の各種制御プログラム103aを実行することによって実現される。
 なお制御部100は、複数のCPU101を備えてもよい。この場合、制御部100は、比較的複雑な処理を行う、処理能力が高いメインCPUと、比較的簡単な処理を行う、処理能力が低いサブCPUとを備えてもよい。また制御部100は、DSP102を備えなくてもよいし、複数のDSP102を備えてもよい。また、制御部100の全ての機能あるいは制御部100の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
 記憶部103は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部103は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えていてもよい。
 記憶部103内の複数の制御プログラム103aには、様々なアプリケーション(アプリケーションプログラム)が含まれている。記憶部103には、例えば、音声通話及びビデオ通話を行うための通話アプリケーション、ウェブサイトを表示するためのブラウザ、電子メールの作成、閲覧及び送受信を行うためのメールアプリケーションが記憶されている。また記憶部103には、第1カメラ190及び第2カメラ200を利用して被写体を撮影するためのカメラアプリケーション、記憶部103に記録されている静止画及び動画を表示するための記録画像表示アプリケーション、記憶部103に記憶されている音楽データの再生制御を行うための音楽再生制御アプリケーションなどが記憶されている。記憶部103内の少なくとも一つのアプリケーションは、記憶部103内にあらかじめ記憶されているものであってよい。また、記憶部103内の少なくとも一つのアプリケーションは、電子機器1が他の装置からダウンロードして記憶部103内に記憶したものであってよい。
 無線通信部110は、アンテナ111を有している。無線通信部110は、アンテナ111を用いて、例えば複数種類の通信方式で無線通信することが可能である。無線通信部110の無線通信は、制御部100によって制御される。無線通信部110は、通信回路あるいは無線通信回路とも言える。
 無線通信部110は、携帯電話システムの基地局と無線通信することが可能である。無線通信部110は、当該基地局及びインターネット等のネットワークを通じて、電子機器1とは別の携帯電話機及びウェブサーバ等と通信することが可能である。電子機器1は、他の携帯電話機等と、データ通信、音声通話及びビデオ通話等を行うことが可能である。
 また無線通信部110、WiFi等の無線LAN(Local Area Network)を用いて無線通信を行うことが可能である。また無線通信部110は、近距離無線通信を行うことが可能である。例えば、無線通信部110は、Bluetooth(登録商標)に準拠して無線通信することが可能である。無線通信部110は、ZigBee(登録商標)及びNFC(Near Field Communication)の少なくとも一方に準拠して無線通信することが可能であってもよい。
 無線通信部110は、アンテナ111で受信した信号に対して増幅処理等の各種処理を行い、処理後の受信信号を制御部100に出力する。制御部100は、入力される受信信号に対して各種処理を行って、当該受信信号に含まれる情報を取得する。また、制御部100は、情報を含む送信信号を無線通信部110に出力する。無線通信部110は、入力される送信信号に対して増幅処理等の各種処理を行って、処理後の送信信号をアンテナ111から無線送信する。
 表示部120は、電子機器1の前面に位置する表示面121と、表示パネル122とを備えている。表示パネル122は、例えば液晶表示パネルであって、液晶、ガラス基板、偏光板及びバックライト等を備える。表示パネル122は、各種情報を表示することが可能である。表示パネル122は、機器ケース11内において、表示面121と対向している。これにより、表示パネル122に表示される情報が表示面121に表示される。表示部120は画面表示部とも言える。
 タッチパネル130は、表示面121に対する指等の操作子による操作を検出することが可能である。タッチパネル130は、例えば、投影型静電容量方式のタッチパネルである。タッチパネル130は、例えば、表示面121の裏側に位置する。ユーザが指等の操作子によって表示面121に対して操作を行ったとき、その操作に応じた電気信号をタッチパネル130は制御部100に入力することが可能である。制御部100は、タッチパネル130からの電気信号(出力信号)に基づいて、表示面121に対して行われた操作の内容を特定することが可能である。そして制御部100は、特定した操作内容に応じた処理を行うことが可能である。タッチパネル130はタッチセンサとも言える。なお、表示パネル122及びタッチパネル130の代わりに、タッチパネルが組み込まれたインセル型の表示パネルが採用されてもよい。
 操作ボタン群140の各操作ボタンは、ユーザによって操作されると、操作されたことを示す操作信号を制御部100に出力することが可能である。これにより、制御部100は、各操作ボタンについて、当該操作ボタンが操作されたか否かを判断することができる。操作信号が入力された制御部100が他の構成要素を制御することによって、電子機器1では、操作された操作ボタンに割り当てられている機能が実行される。
 マイク180は、電子機器1の外部から入力される音を電気的な音信号に変換して制御部100に出力することが可能である。電子機器1の外部からの音は、マイク穴14から電子機器1の内部に取り込まれてマイク180に入力される。
 スピーカ170は、例えばダイナミックスピーカである。スピーカ170は、制御部100からの電気的な音信号を音に変換して出力することが可能である。スピーカ170から出力される音は、スピーカ穴13から外部に出力される。ユーザは、スピーカ穴13から出力される音を、電子機器1から離れた場所でも聞こえることが可能である。
 レシーバ160は受話音を出力することが可能である。レシーバ160は例えばダイナミックスピーカである。レシーバ160は、制御部100からの電気的な音信号を音に変換して出力することが可能である。レシーバ160から出力される音はレシーバ穴12から外部に出力される。レシーバ穴12から出力される音の音量は、スピーカ穴13から出力される音の音量よりも小さくなっている。ユーザは、レシーバ穴12から出力される音を、当該レシーバ穴12に耳を近づけることによって聞くことができる。なお、レシーバ160の代わりに、機器ケース11の前面部分を振動させる、圧電振動素子等の振動素子を設けてもよい。この場合には、音は、当該前面部分の振動によりユーザに伝達される。
 第1カメラ190は、レンズ191及びイメージセンサなどを備えている。第2カメラ200は、レンズ201及びイメージセンサなどを備えている。第1カメラ190及び第2カメラ200のそれぞれは、制御部100による制御に基づいて被写体を撮影し、撮影した被写体を示す静止画あるいは動画を生成して制御部100に出力することが可能である。
 第1カメラ190のレンズ191は、機器ケース11の前面11aから視認可能となっている。したがって、第1カメラ190は、電子機器1の前面側(表示面121側)に存在する被写体を撮影することが可能である。第1カメラ190はインカメラと呼ばれる。一方で、第2カメラ200のレンズ201は、機器ケース11の背面11bから視認可能となっている。したがって、第2カメラ200は、電子機器1の背面側に存在する被写体を撮影することが可能である。第2カメラ200はアウトカメラと呼ばれる。
 加速度センサ150は、電子機器1の加速度を検出することが可能である。加速度センサ150は例えば3軸加速度センサである。加速度センサ150は、X軸方向、Y軸方向及びZ軸方向(図1,2参照)の電子機器1の加速度を検出することが可能である。加速度センサ150は、所定間隔ごとに、加速度を検出してその検出結果を出力する。本例では、当該所定間隔は5msであるが、他の値でもよい。以後、当該所定間隔を検出間隔と呼ぶことがある。また、検出間隔の長さをTで表すことがある。
 電池210は電子機器1の電源を出力することが可能である。電池210は例えば充電式の電池である。電池210から出力される電源は、電子機器1が備える制御部100及び無線通信部110などの各種構成に対して供給される。
 なお電子機器1は、加速度センサ150を備えなくてもよい。この場合、電子機器1は、それとは別体の加速度センサと、無線あるいは有線で接続されてよい。
 また電子機器1は、加速度センサ150以外のセンサを備えてもよい。例えば、電子機器1は、気圧センサ、地磁気センサ、温度センサ、近接センサ、照度センサ、位置センサ及びジャイロセンサの少なくとも一つを備えてもよい。また電子機器1は、それとは別体の、加速度センサ150以外のセンサと、無線あるいは有線で接続されてもよい。
 <電子機器の動きの推定>
 本例では、制御部100は、図4に示されるように、機能ブロックとして動き推定装置400を備える。動き推定装置400は、加速度センサ150の検出値151に基づいて、振動時の電子機器1の動きを推定することが可能である。ここで、振動は、周期的な振動と非周期的な振動の両方を含む概念である。振動は、揺れあるいは揺動とも言える。以後、単に動きと言えば、電子機器1の動きを意味する。また、検出値151、つまり加速度センサ150で検出される加速度を加速度検出値と呼ぶことがある。
 図4に示されるように、動き推定装置400は、推定部300と、第1フィルタ310と、第2フィルタ320とを備える。推定部300、第1フィルタ310及び第2フィルタ320の少なくとも一つは、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
 本例では、動き推定装置400は、動きの推定結果についての後述の利用方法を考慮して、例えば、電子機器1についての、周波数帯が2Hz以上5Hz以下の振幅が数mmの小さいランダム振動を対象振動とする。そして、制御部100は、対象振動を行っている電子機器1の動きを推定することができる。このような条件を満たす対象振動としては、例えば、電子機器1を手に持つユーザがバスあるいは電車等の車両内に存在する場合に、当該車両の振動によって生じる電子機器1の振動が挙げられる。また、対象振動としては、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震える場合の電子機器1の振動が挙げられる。なお、対象振動は本例に限られない。
 加速度センサ150の検出値151は、対象振動以外の影響も受ける。例えば、検出値151は重力の影響を受ける。また、電子機器1を手に持つユーザが車両内に存在する場合には、検出値151は、車両にかかる遠心力の影響を受けたり、車両が発進したり停止したりする際の当該車両の加速度の影響を受けたりする。また、検出値151は、ユーザが随意的に手をゆっくり動かす場合にも影響を受けたりする。これらの外乱に抗して、対象となる補正すべき動きを単離して推定する必要がある。
 第1フィルタ310は、加速度センサ150の検出値151から、対象振動以外の影響を除去するために、検出値151に対してフィルタ処理を行う。第1フィルタ310は、例えばハイパスフィルタであって、その通過帯域が例えば2Hz以上に設定される。なお、第1フィルタ310はバンドパスフィルタであってもよい。このバンドパスフィルタの通過帯域は例えば2Hz以上5Hz以下に設定される。第1フィルタ310の通過帯域は本例に限られない。
 推定部300は、第1フィルタ310でフィルタ処理された検出値151と、観測モデル350と、予測モデル360とを用いたベイズ推定に基づいて、対象振動時の電子機器1の動きを推定する。推定部300は、例えば、逐次ベイズフィルタと呼ばれる方法で、対象振動時の電子機器1の動きを推定する。逐次ベイズフィルタについては上記の非特許文献1に記載されている。本例では、後述するように、推定部300は、電子機器1の動きの推定結果として、例えば、電子機器1の加速度の推定値と、電子機器1の速度の推定値と、電子機器1の変位の推定値と、電子機器1の総変位の推定値とを生成する。
 ここで、電子機器1の変位とは、電子機器1の位置についての基準位置からの変化の量を意味する。電子機器1の変位は、基準位置に対する相対的な位置を示しているとも言える。また電子機器1の総変位とは、電子機器1の各時刻の変位を足し合わせたものである。基準位置としては、例えば、動き推定装置400が動作を開始したときの電子機器1の位置が採用される。動き推定装置400は、電子機器1の動作開始に応じて動作を開始してもよいし、動作中の電子機器1に対するユーザの操作に応じて動作を開始してもよい。また、動き推定装置400は、動作中の電子機器1において他の条件が成立した場合に、動作を開始してもよい。
 以後、ベイズ推定によって得られる電子機器1の加速度、速度、変位及び総変位の推定値を、それぞれ、加速度推定値、速度推定値、変位推定値及び総変位推定値と呼ぶことがある。また、単に加速度と言えば、電子機器1の加速度を意味し、単に速度と言えば、電子機器1の速度を意味する。また、単に変位と言えば、電子機器1の変位を意味し、単に総変位と言えば、電子機器1の総変位を意味する。加速度、速度、変位及び総変位のそれぞれは、電子機器1の物理量であると言える。
 第2フィルタ320は、推定部300での推定結果に対してフィルタ処理を行う。本例では、第2フィルタ320は、推定部300から出力される加速度推定値、速度推定値、変位推定値及び総変位推定値のそれぞれに対して個別にフィルタ処理を行う。第2フィルタ320は、ハイパスフィルタであってもよいし、バンドパスフィルタであってもよい。第2フィルタ320のフィルタ特性は、第1フィルタ310のフィルタ特性と同じであってもよいし、異なっていてもよい。例えば、第2フィルタ320の通過帯域は、第1フィルタ310の通過帯域と同じであってもよいし、異なっていてもよい。推定部300での推定結果に対してフィルタ処理を行うことによって、推定結果の利用態様に適した推定結果を得ることができる。
 <推定部の動作の詳細>
 ベイズの定理によると、時刻tの事後確率p(x|z1:t)は以下の式(1)で表すことができる。事後確率p(x|z1:t)は確率分布であって、事後分布p(x|z1:t)とも呼ばれる。
Figure JPOXMLDOC01-appb-M000001
 ここで、xは、状態を表すベクトルであって、状態ベクトルと呼ばれる。状態ベクトルxは時刻tの状態ベクトルxを意味する。zは、観測を表すベクトルであって、観測ベクトルと呼ばれる。観測ベクトルzは時刻tの観測ベクトルを意味する。観測ベクトルz1:tは、時刻1~tまでの観測ベクトルを意味する。式(1)に示されるように、時刻tの事後確率p(x|z1:t)は、確率分布p(z|x)と、確率分布p(x|xt-1)と、時刻t-1の事後確率p(xt-1|z1:t-1)とで表すことができる。確率分布p(z|x)は観測モデルと呼ばれ、確率分布p(x|xt-1)は予測モデルあるいはシステムモデルと呼ばれる。
 状態ベクトルx及び観測ベクトルzのそれぞれには、少なくとも一つの変数が含まれる。本例では、状態ベクトルxには、変数として、加速度、速度、変位及び総変位が含まれる。観測ベクトルzには、変数として、加速度、速度、変位及び総変位が含まれる。状態ベクトルx及び観測ベクトルzに含まれる変数は確率変数であるとも言える。
 推定部300は、式(1)を用いて事後確率p(x|z1:t)を求めることによってベイズ推定を行う。つまり、推定部300は、前回の推定結果としての事後確率p(xt-1|z1:t-1)に対して、予測モデルと観測モデルを適用することによって、事後確率p(x|z1:t)を逐次的に推定する。推定部300は、p(z|x)として観測モデル350を使用し、確率分布p(x|xt-1)として予測モデル360を使用する。推定部300は、求めた事後確率p(x|z1:t)が最大となる状態ベクトルを推定状態ベクトルする。そして、推定部300は、推定状態ベクトルの加速度、速度、変位及び総変位の成分を、それぞれ、加速度推定値、速度推定値、変位推定値及び総変位推定値とする。
 <観測モデルの一例>
 本例では、観測モデル350は対象振動を表す観測モデルである。本例では、観測モデル350は、対象振動に関する統計的な事前知識を表す確率分布である。具体的には、観測モデル350は、対象振動時の電子機器1の加速度、速度、変位及び総変位を表す最大4次元の確率分布である。以後、観測モデル350の各次元についての周辺確率分布を、それぞれ、第1確率分布、第2確率分布、第3確率分布及び第4確率分布と呼ぶことがある。
 ここで、上述のように、対象振動の振幅は小さい。したがって、対象振動時の電子機器1の位置はあまり変化しない。本例では、対象振動時の電子機器1の変位を、例えば、当該変位を確率変数とする、平均が零で分散の小さい固定の第1確率分布で表すことによって、観測モデル350において、電子機器1の位置があまり変化しないという知識を表現する。観測モデル350では、対象振動時の電子機器1の変位の平均が零であると表現されていると言える。また、本例では、対象振動時の電子機器1の加速度を、例えば、当該加速度を確率変数とする、平均が加速度検出値で分散の小さい第2確率分布で表す。第2確率分布の平均としては、例えば、第1フィルタ310でフィルタ処理された加速度検出値が採用される。第2確率分布は加速度検出値に応じて変化する。また、本例では、対象振動時の電子機器1の速度を、例えば、当該速度を確率変数とする、平均が零で分散の小さい固定の第3確率分布で表すことによって、観測モデル350において、電子機器1の速度があまり大きくならないという知識を表現する。
 また、観測モデル350は、対象振動を表す観測モデルであることから、観測モデル350において、電子機器1が振動するという知識を表現する必要がある。本例では、対象振動時の電子機器1の総変位を、例えば、当該総変位を確率変数とする、平均が零の固定の第4確率分布で表すことによって、観測モデル350において、電子機器1が振動するという知識を表現する。観測モデル350では、対象振動時の電子機器1の総変位の平均が零であると表現されていると言える。
 観測モデル350については、例えば機械学習によって対象振動に対して決定される。この場合、観測モデル350は、例えば最尤推定法が使用されて決定されてもよい。また、観測モデル350は、対象振動の振動環境における実測値の統計分布に基づいて決定されてもよい。また、観測モデル350は、機械学習と実測値の統計分布の両方に基づいて決定されてもよい。第1~第4確率分布としては、例えば正規分布が採用されてもよい。この場合、ベイズ推定でのフィルタとして、高速なカルマンフィルタが採用できる。
 <予測モデルの一例>
 予測モデル360では、時刻tでの加速度の予測値がa(t)で表され、加速度についての時刻tでの予測誤差がw_a(t)で表される。本例では、電子機器1の加速度は滑らかに変化するものとし、以下の式(2)が成立すると考える。
Figure JPOXMLDOC01-appb-M000002
 式(2)より、予測モデル360では、ノイズ成分であるとも言える予測誤差を考慮しなければ、加速度は線形変化すると言える。本例では、予測値a(t)は確率分布で表される。以後、予測値a(t)を予測確率分布a(t)と呼ぶことがある。予測誤差は、例えば、時刻に応じて変化しない固定の確率分布が採用される。予測誤差は例えば機械学習によって決定される。この場合、予測誤差は例えば最尤推定法が使用されて決定されてもよい。予測誤差を表す確率分布として、例えば正規分布が採用されてもよい。この場合、ベイズ推定でのフィルタとして、高速なカルマンフィルタが採用できる。
 式(2)から以下の式(3)が得られる。
Figure JPOXMLDOC01-appb-M000003
 推定部300は、式(3)を用いて、時刻tでの加速度の予測値a(t)を求める。このとき、推定部300は、式(3)のa(t-1)に対して、推定された時刻t-1の事後確率p(xt-1|z1:t-1)についての加速度の周辺確率分布を代入する。また推定部300は、式(3)のa(t-2)に対して、推定された時刻t―2の事後確率p(xt-2|z1:t-2)についての加速度の周辺確率分布を代入する。
 ここで、時刻t-1の事後確率p(xt-1|z1:t-1)についての加速度の周辺確率分布は、時刻t―1の加速度の推定確率分布であると言える。また、時刻t-2の事後確率p(xt-2|z1:t-2)についての加速度の周辺確率分布は、時刻t―2の加速度の推定確率分布であると言える。したがって、予測モデル360では、時刻tでの加速度の予測確率分布a(t)は、時刻t-1での加速度の推定確率分布と、時刻t-2での加速度の推定確率分布と、時刻tでの予測誤差w_a(t)とで表されると言える。式(3)より、時刻tでの加速度の予測確率分布a(t)は、時刻t-1での加速度の推定確率分布と、時刻t-2での加速度の推定確率分布とを用いた外挿により求められると言える。予測モデル360では、あるタイミングでの加速度の予測確率分布が、それよりも前のタイミングでの加速度の推定確率分布を用いた外挿式で表されると言える。なお、推定部300は、動作開始直後において、加速度の過去の推定確率分布が存在しない場合には、a(t-1)及びa(t-2)に初期確率分布(例えば、平均が零で分散が所定値である正規分布)を代入する。
 また、予測モデル360では、時刻tでの速度の予測値がv(t)で表され、時刻tでの変位の予測値がr(t)で表され、時刻tでの総変位の予測値がs(t)で表される。
 ここで、電子機器1の速度については、電子機器1の加速度を積分することによって得られる。また、電子機器1の変位については、電子機器1の速度を積分することによって得られる。そして、電子機器1の総変位については、電子機器1の変位を積分することによって得られる。
 予測モデル360では、速度の予測値v(t)、変位の予測値r(t)及び総変位の予測値s(t)が、加速度センサ150の検出間隔の長さTを用いた以下の式(4),(5),(6)でそれぞれ表される。予測モデル360では、速度についての時刻tでの予測誤差がw_v(t)で表され、変位についての時刻tでの予測誤差がw_r(t)で表され、総変位についての時刻tでの予測誤差がw_s(t)で表される。本例では、予測値v(t)、予測値r(t)及び予測値s(t)のそれぞれは確率分布で表される。以後、予測値v(t)、予測値r(t)及び予測値s(t)を、それぞれ、予測確率分布v(t)、予測確率分布r(t)及び予測確率分布s(t)と呼ぶことがある。
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000006
 推定部300は、式(4)を用いて、時刻tでの速度の予測値v(t)を求める。このとき、推定部300は、式(4)のa(t-1)及びv(t―1)に対して、推定された時刻t-1の事後確率p(xt-1|z1:t-1)についての加速度及び速度の周辺確率分布をそれぞれ代入する。したがって、式(4)は、時刻t-1での加速度の推定確率分布と時刻t-1での速度の推定確率分布とを用いた、時刻tでの速度の確率分布を予測する予測式であると言える。
 また、推定部300は、式(5)を用いて、時刻tでの変位の予測値r(t)を求める。このとき、推定部300は、式(5)のa(t-1)、v(t-1)及びr(t-1)に対して、推定された時刻t-1の事後確率p(xt-1|z1:t-1)についての加速度、速度及び変位の周辺確率分布をそれぞれ代入する。したがって、式(5)は、時刻t-1での加速度の推定確率分布と、時刻t-1での速度の推定確率分布と、時刻t-1での変位の推定確率分布と用いた、時刻tでの変位の確率分布を予測する予測式であると言える。
 また、推定部300は、式(6)を用いて、時刻tでの総変位の予測値s(t)を求める。このとき、推定部300は、式(6)のa(t-1)、v(t-1)、r(t-1)及びs(t―1)に対して、予測された時刻t-1の事後確率p(xt-1|z1:t-1)についての加速度、速度、変位及び総変位の周辺確率分布をそれぞれ代入する。したがって、式(6)は、時刻t-1での加速度の推定確率分布と、時刻t-1での速度の推定確率分布と、時刻t-1での変位の推定確率分布と、時刻t-1での総変位の推定確率分布と用いた、時刻tでの総変位の確率分布を予測する予測式であると言える。
 推定部300は、加速度センサ150から出力される加速度検出値(言い換えれば、検出値151)と、予測モデル360での式(3)~(6)と、観測モデル350とを用いたベイズ推定に基づいて、現在の電子機器1の動きを推定する動き推定処理を行う。
 図5は推定部300での動き推定処理の一例を示すフローチャートである。図5に示される動き推定処理は、加速度センサ150において新たに加速度が検出されるたびに実行される。本例では、推定部300は、動き推定処理において、例えば、X軸方向の加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。また、推定部300は、動き推定処理において、例えば、Y軸方向の加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。
 推定部300は、加速度センサ150から最新の加速度検出値を取得すると、図5に示されるように、ステップs1において、予測モデル360を用いて、現在の加速度の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の加速度の予測値と、Y軸方向の加速度の予測値とを別々に求める。
 ステップs1において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(3)のa(t-1)に代入する。また、推定部300は、前回の動き推定処理のステップs1においてa(t-1)に代入したX軸方向の加速度の周辺確率分布を、式(3)のa(t-2)に代入する。言い換えれば、推定部300は、前々回の動き推定処理で得られた事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を、式(3)の予測値a(t-2)に代入する。これにより得られた予測値a(t)、つまり予測確率分布a(t)を、推定部300は、X軸方向の現在の加速度の予測値(言い換えれば、予測確率分布)とする。推定部300は、同様にして、式(3)を用いて、Y軸方向の現在の加速度の予測値を求める。
 次にステップs2において、推定部300は、予測モデル360を用いて、現在の速度の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の速度の予測値と、Y軸方向の速度の予測値とを別々に求める。
 ステップs2において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(4)のa(t-1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布を式(4)のv(t-1)に代入する。これにより得られた予測値v(t)、つまり予測確率分布v(t)を、推定部300は、X軸方向の現在の速度の予測値とする。推定部300は、同様にして、式(4)を用いて、Y軸方向の現在の速度の予測値を求める。
 次にステップs3において、推定部300は、予測モデル360を用いて、現在の変位の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の変位の予測値と、Y軸方向の変位の予測値とを別々に求める。
 ステップs3において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(5)のa(t-1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布を、式(5)のv(t-1)に代入する。そして、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布を、式(5)のr(t-1)に代入する。これにより得られた予測値r(t)、つまり予測確率分布r(t)を、推定部300は、X軸方向の現在の変位の予測値とする。推定部300は、同様にして、式(5)を用いて、Y軸方向の現在の変位の予測値を求める。
 次にステップs4において、推定部300は、予測モデル360を用いて、現在の総変位の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の総変位の予測値と、Y軸方向の総変位の予測値とを別々に求める。
 ステップs4において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(6)のa(t-1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布を、式(6)のv(t-1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布を、式(6)のr(t-1)に代入する。そして、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の総変位の周辺確率分布を、式(6)のs(t-1)に代入する。これにより得られた予測値s(t)、言い換えれば予測確率分布s(t)を、推定部300は、X軸方向の現在の総変位の予測値とする。推定部300は、同様にして、式(6)を用いて、Y軸方向の現在の総変位の予測値を求める。
 次にステップs5において、推定部300は、ステップs1~s4で求めた予測値と観測モデル350とを用いたベイズ推定に基づいて、加速度の推定値、速度の推定値、変位の推定値及び総変位の推定値を生成する。
 本例では、推定部300は、ステップs1~s4で求めたX軸方向の予測値と観測モデル350とを用いたベイズ推定に基づいて、X軸方向の加速度、速度、変位及び総変位の推定値を生成する。また、推定部300は、ステップs1~s4で求めたY軸方向の予測値と観測モデル350とを用いたベイズ推定に基づいて、Y軸方向の加速度、速度、変位及び総変位の推定値を生成する。
 ステップs5では、推定部300は、ステップs1~s4で得られたX軸方向の加速度、速度、変位及び総変位の予測値(言い換えれば、予測確率分布)を上述の式(1)のp(x|xt-1)に代入する。また推定部300は、観測モデル350を式(1)のp(z|x)に代入する。このとき、推定部300は、X軸方向の最新の加速度検出値(詳細には、第1フィルタ310でフィルタ処理されたX軸方向の最新の加速度検出値)を第2確率分布の平均として用いる。そして、推定部300は、前回の動き推定処理のステップs5で得られた事後確率p(x|z1:t)を式(1)の事後確率p(xt-1|z1:t-1)に代入して、事後確率p(x|z1:t)を求める。これにより、時刻tの事後確率p(x|z1:t)が推定される。推定された事後確率p(x|z1:t)についての各次元の周辺確率分布は、次回の動き推定処理での予測値の算出に使用される。推定部300は、推定した事後確率p(x|z1:t)が最大となる状態ベクトルを特定し、それを推定状態ベクトルとする。推定部300は、推定状態ベクトルの加速度、速度、変位及び総変位の成分を、それぞれ、X軸方向の現在の加速度推定値、速度推定値、変位推定値及び総変位推定値とする。電子機器1が対象振動を行っている場合には、ステップs5では、対象振動時の電子機器1のX軸方向の加速度、速度、変位及び総変位の推定値が得られると言える。同様にして、推定部300は、式(1)を用いて、Y軸方向の加速度、速度、変位及び総変位の推定値を生成する。このとき、推定部300は、Y軸方向の最新の加速度検出値(詳細には、第1フィルタ310でフィルタ処理されたY軸方向の最新の加速度検出値)を第2確率分布の平均として用いる。
 第2フィルタ320は、推定部300で生成される、X軸方向の加速度、速度、変位及び総変位の推定値のそれぞれと、推定部300で生成される、Y軸方向の加速度、速度、変位及び総変位の推定値のそれぞれとに対して個別にフィルタ処理を行う。
 なお、動き推定処理では、a(t-1)に、フィルタ処理された加速度の周辺確率分布が入力されてもよい。また、a(t-2)に、フィルタ処理された加速度の周辺確率分布が入力されてもよい。また、v(t―1)には、フィルタ処理された速度の周辺確率分布が入力されてもよい。また、r(t-1)には、フィルタ処理された変位の周辺確率分布が入力されてもよい。また、s(t-1)には、フィルタ処理された総変位の周辺確率分布が入力されてもよい。
 動き推定処理では、同様にして、Z軸方向の加速度、速度、変位及び総変位の推定値の少なくとも一つが生成されてもよい。また、動き推定処理では、X軸方向の加速度、速度、変位及び総変位の推定値の少なくとも一つが生成されなくてもよい。また、動き推定処理では、Y軸方向の加速度、速度、変位及び総変位の推定値の少なくとも一つが生成されなくてもよい。また、回転振動についても同様の枠組みでベイズ推定を行ってもよい。
 また、動き推定処理でのステップs1~s4の実行順序は上記の例に限られない。例えば、ステップs1は、ステップs2~s4のいずれか一つのステップの後に実行されてもよいし、ステップs4は、ステップs1~s3のいずれか一つのステップの前に実行されてもよい。
 また、推定部300は、現在よりも先のタイミングでの電子機器1の動きを推定することができる。図6はこの場合の推定部300の動作の一例を示すフローチャートである。以後、上述のステップs1~s5の一連の処理を単位推定処理と呼ぶ。図6の例では、推定部300は、単位推定処理を必要回数M(Mは1以上整数)だけ実行することによって、現在よりも(T×(M-1))時間先のタイミングでの電子機器1の動きを推定することができる。M=1の場合には、つまり単位推定処理が1回だけ実行される場合には、図6に示される動き推定処理は、図5に示される動き推定処理と実質的に同じとなる。
 推定部300は、加速度センサ150から新たな加速度検出値を取得すると、図6に示されるように、ステップs11において単位推定処理を実行する。その後、ステップs12において、推定部300は、単位推定処理を必要回数Mだけ実行したか否かを判定する。
 ステップs12においてYESと判定されると、推定部300は動き推定処理を終了する。一方で、ステップs12においてNOと判定されると、推定部300はステップs11を再度実行して、単位推定処理を再度実行する。以後、推定部300は同様に動作する。
 動き推定処理での2回目の単位推定処理のステップs1では、1回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(3)のa(t-1)に代入される。そして、1回目の単位推定処理においてa(t-1)に代入されたX軸方向の加速度の周辺確率分布が、式(3)のa(t-2)に代入される。これにより得られた予測値a(t)(言い換えれば、予測確率分布a(t))を、推定部300は、現在よりもT時間先のタイミングでのX軸方向の加速度の予測値とする。2回目の単位推定処理のステップs1では、同様にして、現在よりもT時間先のタイミングでのY軸方向の加速度の予測値が求められる。
 また、動き推定処理でのNa回目(3≦Na≦M)の単位推定処理のステップs1では、(Na-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(3)のa(t-1)に代入される。そして、(Na-2)回目の単位推定処理で推定されて事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が、式(3)のa(t-2)に代入される。これにより得られた予測値a(t)を、推定部300は、現在よりも(T×(Na-1))時間先のタイミングでのX軸方向の加速度の予測値とする。Na回目の単位推定処理のステップs1では、同様にして、現在よりも(T×(Na-1))時間先のタイミングでのY軸方向の加速度の予測値が求められる。
 動き推定処理のNb回目(2≦Nb≦M)の単位推定処理のステップs2では、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(4)のa(t-1)に代入される。そして、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布が式(4)のv(t-1)に代入される。これにより得られた予測値v(t)を、推定部300は、現在よりも(T×(Nb―1))時間先のタイミングでのX軸方向の速度の予測値とする。Nb回目の単位推定処理のステップs2では、同様にして、現在よりも(T×(Nb―1))時間先のタイミングでのY軸方向の速度の予測値が求められる。
 動き推定処理において、推定部300が、単位推定処理を複数回実行することは、推定部300が、あるタイミングでの推定確率分布を、式(3)の外挿式において前のタイミングでの推定確率分布として使用して、当該あるタイミングよりも先のタイミングでの予測確率分布を求め、求めた当該先のタイミングでの予測確率分布を用いたベイズ推定に基づいて、当該先のタイミングでの推定確率分布を生成する処理を繰り返し実行することであると言える。
 動き推定処理のNb回目の単位推定処理のステップs3では、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(5)のa(t-1)に代入される。また、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布が式(5)のv(t-1)に代入される。そして、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布が式(5)のr(t-1)に代入される。これにより得られた予測値r(t)を、推定部300は、現在よりも(T×(Nb-1))時間先のタイミングでのX軸方向の変位の予測値とする。Nb回目の単位推定処理のステップs3では、同様にして、現在よりも(T×(Nb-1))時間先のタイミングでのY軸方向の変位の予測値が求められる。
 動き推定処理のNb回目の単位推定処理のステップs4では、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(6)のa(t-1)に代入される。また、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布が式(6)のv(t-1)に代入される。また、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布が式(6)のr(t-1)に代入される。そして、(Nb-1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の総変位の周辺確率分布が式(6)のs(t-1)に代入される。これにより得られた予測値s(t)を、推定部300は、現在よりも(T×(Nb-1))時間先のタイミングでの総変位の予測値とする。Nb回目の単位推定処理のステップs4では、同様にして、現在よりも(T×(Nb-1))時間先のタイミングでのY軸方向の総変位の予測値が求められる。
 動き推定処理のNb回目の単位推定処理のステップs5では、現在よりも(T×(Nb-1))時間先のタイミングでのX軸方向の加速度、速度、変位及び総変位の推定値と、現在よりも(T×(Nb-1))時間先のタイミングでのY軸方向の加速度、速度、変位及び総変位の推定値とが生成される。
 以上のようにして単位推定処理が必要回数Mだけ実行されることによって、現在よりも(T×(M-1))時間先のタイミングでの電子機器1の動きが推定される。言い換えれば、単位推定処理が必要回数Mだけ実行されることによって、最新の加速度検出値が得られたタイミングよりも(T×(M-1))時間先のタイミングでの電子機器1の動きが推定される。電子機器1が対象振動を行っている場合には、対象振動時の電子機器1についての現在よりも(T×(M-1))時間先のタイミングでの動きが推定される。本例では、対象振動時の電子機器1についての現在よりも(T×(M-1))時間先のタイミングでの加速度、速度、変位及び総変位の推定値が得られる。図6の動き推定処理によれば、推定部300は、現在よりもTの整数倍だけ先のタイミングでの電子機器1の動きを推定する。
 なお、推定部300は、現在よりもTの整数倍だけ先のタイミングではなく、現在よりも先の所望のタイミングでの電子機器1の動きを推定することも可能である。図7はこの場合の動き推定処理の一例を示すフローチャートである。以下の説明では、現在よりも先の所望のタイミングを推定タイミングと呼ぶ。
 図7に示されるように、ステップs21において、推定部300は、推定タイミングに基づいて必要回数Mを決定する。ステップs21では、推定部300は、推定タイミングが、現在よりも(T×(M-1))時間先のタイミングを超えずに、現在よりも(T×(M-1))時間先のタイミングに最も近くなるようなMの値を決定する。
 ここで、推定タイミングが現在よりもT0時間先のタイミングであるとする。ステップs21では、推定部300は、T×(M-2)<T0≦T×(M-1)を満たすようなMの値を決定する。例えば、T0=18msであるとする。つまり、推定タイミングが、現在よりも18ms先のタイミングであるとする。M=4のとき、T×(M-1)=5ms×3=15msとなる。M=5のとき、T×(M-1)=5ms×4=20msとなる。したがって、T0=18msの場合、T×(M-2)<T0≦T×(M-1)を満たすMの値は5となる。
 ステップs21の後、推定部300は、上述のステップs11及びs12を実行する。ステップs12においてNOと判定されると、ステップs11が再度実行され、以後、推定部300は同様に動作する。一方で、ステップs12においてYESと判定されると、ステップs22が実行される。ステップs22において、推定部300は、(M-1)回目の単位推定処理のステップs5での動きの推定結果と、M回目の単位推定処理のステップs5での動きの推定結果とに基づいて、推定タイミングでの電子機器1の動きを推定する。
 ステップs22では、推定部300は、(M-1)回目の単位推定処理で得られる、現在よりも(T×(M-2))時間先のタイミングでのX軸方向の加速度の推定値と、M回目の単位推定処理で得られる、現在よりも(T×(M-1))時間先のタイミングでのX軸方向の加速度の推定値とに基づいて、推定タイミングでのX軸方向の加速度の推定値を生成する。例えば、推定部300は、現在よりも(T×(M-2))時間先のタイミングでのX軸方向の加速度の推定値と、現在よりも(T×(M-1))時間先のタイミングでのX軸方向の加速度の推定値とを用いた線形補間によって、推定タイミングでのX軸方向の加速度の推定値を生成する。
 ここで、推定タイミングでのX軸方向の加速度の推定値をA0とする。また、現在よりも(T×(M-2))時間先のタイミングでのX軸方向の加速度の推定値をA1とし、現在よりも(T×(M-1))時間先のタイミングでのX軸方向の加速度の推定値をA2とする。また、(T×(M-2))をT1とし、(T×(M-1))をT2とする。推定部300は、例えば、以下の式(7)を用いて、推定タイミングでのX軸方向の加速度の推定値A0を求める。
Figure JPOXMLDOC01-appb-M000007
 ステップs22において、推定部300は、同様にして、推定タイミングでのX軸方向の速度、変位及び総変位の推定値を求める。またステップs22において、推定部300は、同様にして、推定タイミングでのY軸方向の加速度、速度、変位及び総変位の推定値を求める。
 なお、T0=T×(M-1)の場合には、つまり、推定タイミングが、現在よりも(T×(M-1))時間先のタイミングである場合には、ステップs22において、推定部300は、M回目の単位推定処理での動きの推定結果を、推定タイミングでの動きの推定結果として使用する。T0=T×(M-1)、かつM≧2の場合には、図7に示される動き推定処理は、図6に示される動き推定処理と実質的に同じとなる。また、T0=T×(M-1)、かつM=1の場合には、図7に示される動き推定処理は、図5に示される動き推定処理と実質的に同じとなる。
 また、推定部300は、ステップs22を実行しなくてもよい。つまり、推定部300は、線形補間を実行しなくてもよい。この場合、推定部300は、T0が(T×(M-1))と一致しない場合には、現在から(T×(M-1))時間先のタイミングでの動きの推定結果を、推定タイミングでの動きの推定結果としてもよい。
 以上のように、本例では、加速度センサ150の加速度検出値と、電子機器1の動きを表す予測モデル360と、当該加速度検出値が用いられる、電子機器1の振動を表す観測モデル350とを用いたベイズ推定に基づいて、振動時の電子機器1の動きが推定される。これにより、振動時の電子機器1の動きを適切に推定することができる。
 また、本例に係る予測モデル360では、上述の式(3)に示されるように、あるタイミングでの加速度の予測確率分布が、当該あるタイミングよりも前のタイミングでの加速度の推定確率分布を用いた外挿式で表される。そして、あるタイミングでの推定確率分布を、外挿式において前のタイミングでの推定確率分布として使用して、当該あるタイミングよりも先のタイミングでの予測確率分布を求め、求めた先のタイミングでの予測確率分布を用いたベイズ推定に基づいて当該先のタイミングでの推定確率分布を生成するという処理を繰り返し実行することによって、所望のタイミングでの加速度の推定確率分布を求めることができる。よって、外挿式を使用して、所望のタイミングでの加速度の推定値を簡単に得ることができる。
 また本例では、観測モデル350において、対象振動時の電子機器1の変位の平均が零であると表現されている。言い換えれば、観測モデル350では、変位の周辺確率分布の平均が零とされている。したがって、対象振動時の電子機器1の変位の推定値が零から大きく離れる可能性を低減することができる。よって、対象振動の振幅が小さいという状況に応じた変位の推定値を適切に得ることができる。
 また本例では、観測モデル350において、対象振動時の電子機器1の総変位の平均が零であると表現されている。言い換えれば、観測モデル350では、総変位の周辺確率分布の平均が零とされている。これにより、電子機器1の振動に応じた変化を行う変位の推定値を適切に得ることができる。以下にこの点について詳細に説明する。以下の説明では、例えば、電子機器1がX軸方向に沿って振動しているにもかかわらず、加速度センサ150での加速度の検出誤差等によって、予測モデル360からは、すなわち、検出値の積分計算だけからは、電子機器1のX軸方向の変位の符号が常にプラスであると予測されるような第1の状況を考える。また、電子機器1がX軸方向に沿って振動しているにもかかわらず、加速度センサ150での加速度の検出誤差等によって、予測モデル360からは、すなわち、検出値の積分計算だけからは、電子機器1のX軸方向の変位の符号が常にマイナスであると予測されるような第2の状況を考える。
 第1の状況において、対象振動時の電子機器1の総変位の平均が零であると観測モデル350で表現されていない場合には、変位の第1確率分布の働きにより、ベイズ推定によって求められる電子機器1のX軸方向の変位の推定値が零付近になる可能性は高くなるものの、マイナスの値になる可能性は低い。したがって、第1の状況において観測モデル350の総変位の周辺確率分布の平均が零に設定されていない場合には、X軸方向の変位の推定値の符号がプラスからマイナスにならずに、当該推定値が電子機器1のX軸方向に沿った振動に応じた値とならない可能性がある。同様に、第2の状況において総変位の周辺確率分布の平均が零に設定されていない場合には、X軸方向の変位の推定値の符号がマイナスからプラスにならずに、当該推定値が電子機器1のX軸方向に沿った振動に応じた値とならない可能性がある。
 ここで、X軸方向の総変位は、X軸方向の変位の符号がプラスである間、増加し続ける。一方で、X軸方向の総変位を減少させるためには、X軸方向の変位の符号がマイナスとなる必要がある。
 本例のように、観測モデル350において、対象振動時の電子機器1の総変位の平均が零であると表現されている場合には、第1の状況において、総変位の推定値が零に近づくように変位の推定値の符号がマイナスとなる可能性が高くなる。また、第2の状況では、総変位の推定値が零に近づくように変位の推定値の符号がプラスになる可能性が高くなる。よって、本例のように、観測モデル350の総変位の第4確率分布の平均が零に設定されている場合には、電子機器1の振動に応じた変化を行う変位の推定値を適切に得ることができる。
 なお、上記の例では、観測モデル350において、電子機器1の速度があまり大きくならないという知識が表現されているが、速度に関するこのような表現は無くてもよい。また、推定部300は、加速度、速度、変位及び総変位の推定値のうちの少なくとも一つを生成しなくてもよい。つまり、推定部300は、動きの推定結果として、加速度、速度、変位及び総変位の少なくとも一つの推定値を生成してもよい。
 <動きの推定結果の利用方法の一例>
 動き推定装置400での動きの推定結果は様々な場面で利用することが可能である。以下に、一例として、電子機器1が、画像の表示制御において、動き推定装置400での動きの推定結果を利用する場合について説明する。
 <動きの推定結果を利用した画像表示制御の一例>
 上述のように、対象振動としては、電子機器1を手に持つユーザがバスあるいは電車等の車両内に存在する場合に、当該車両の振動によって生じる電子機器1の振動が挙げられる。また、対象振動としては、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震える場合の電子機器1の振動が挙げられる。電子機器1を手に持つユーザが車両内に存在する場合、当該車両の振動によって電子機器1が振動すると、電子機器1の地球に対する位置が動く可能性がある。その結果、ユーザは電子機器1に表示される画像を視認しにくい可能性がある。また、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震えることによって電子機器1が振動する場合、電子機器1の地球に対する位置が動く可能性がある。その結果、ユーザは電子機器1に表示される画像を視認しにくい可能性がある。
 そこで、本例では、電子機器1は、動き推定装置400での動きの推定結果に基づいて、表示部120に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する。具体的には、電子機器1は、動き推定装置400で生成される変位の推定値に基づいて、表示部120に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する。これにより、対象振動時の電子機器1に表示される画像の地球に対する位置が変化しにくくなり、当該画像の視認性を向上させることが可能となる。よって、電子機器1を手に持つユーザが車両内に存在する場合であっても、電子機器1に表示される画像の地球に対する位置が変化しにくくなり、当該画像の視認性を向上させることが可能となる。また、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震える場合であっても、電子機器1に表示される画像の地球に対する位置が変化しにくくなり、当該画像の視認性を向上させることが可能となる。以下にこの利用例について詳細に説明する。
 図8は本例に係る制御部100の構成の一例を示す図である。図8に示されるように、制御部100は、機能ブロックとして、表示部120の表示を制御する表示制御部500を備える。表示制御部500は、動き推定装置400の第2フィルタ320から出力される変位の推定値に基づいて、所定のフレームレートで表示部120に表示される画像の表示位置を制御することによって、当該画像についての地球に対する位置を制御する、といった画像位置制御を行う。画像の表示位置は、表示面121内での画像の位置であるとも言える。所定のフレームレートで表示部120に表示される画像は、動画であってもよいし、静止画であってもよい。所定のフレームレートは、例えば60fpsである。なお、所定のフレームレートは、60fps以外であってもよい。例えば、所定のフレームレートは120fpsであってもよい。
 以後、電子機器1のX軸方向の変位をX変位と呼び、電子機器1のY軸方向の変位をY変位と呼ぶことがある。また、X軸方向のプラス方向及びマイナス方向を+X方向及び-X方向とそれぞれ呼ぶことがある。また、Y軸方向のプラス方向及びマイナス方向を+Y方向及び-Y方向とそれぞれ呼ぶことがある。電子機器1が+X方向に移動している場合には、X変位はプラスの値となり、電子機器1が-X方向に移動している場合には、X変位はマイナスの値となる。また、電子機器1が+Y方向に移動している場合には、Y変位はプラスの値となり、電子機器1が-Y方向に移動している場合には、Y変位はマイナスの値となる。
 画像位置制御において、表示制御部500は、動き推定装置400の第2フィルタ320から出力されるX変位の推定値に基づいて、表示部120に表示される画像のX軸方向の表示位置を制御する。また、画像位置制御において、表示制御部500は、動き推定装置400の第2フィルタ320から出力されるY変位の推定値に基づいて、表示部120に表示される画像のY軸方向の表示位置を制御する。
 図9は画像位置制御を説明するための図である。図9の上側には、X変位及びY変位が零である電子機器1、つまり基準位置の電子機器1が示されている。図9の下側には、X変位が+L、Y変位が零の電子機器1、つまり、基準位置から、Y軸方向には移動せず、+X軸方向にLだけ移動している電子機器1が示されている。図9では、レシーバ穴12、レンズ191、操作ボタン141~143及びスピーカ穴13の記載は省略されている。
 図9の例では、電子機器1の表示面121には、例えば、「ABC」という文字列601を含む画像(静止画)600が表示されている。図9の例では、画像600の大きさは、表示面121の大きさと一致している。また図9の例では、X変位及びY変位が零の電子機器1では、画像600の中心位置が表示面121の中心位置と一致するように画像600が表示面121に表示されている。図9では、X変位及びY変位が零の電子機器1に表示される画像600の中心位置が符号701で示されている。また図9では、X変位が+L、Y変位が零の電子機器1に表示される画像600の中心位置が符号702で示されている。
 以後、基準位置の電子機器1、つまりX変位及びY変位が零の電子機器1が表示する画像の表示位置を基準表示位置と呼ぶことがある。また、X変位が零の電子機器1が表示する画像のX軸方向の表示位置をX基準表示位置と呼ぶことがある。また、Y変位が零の電子機器1が表示する画像のY軸方向の表示位置をY基準表示位置と呼ぶことがある。基準位置の電子機器1が表示する画像のX軸方向及びY軸方向の表示位置は、それぞれ、X基準表示位置及びY基準表示位置となる。
 X基準表示位置としては、例えば、表示面121のX軸方向の中心を示す、Y軸方向に沿った中心線と、画像のX軸方向の中心を示す、Y軸方向に沿った中心線とが重なるような画像のX軸方向の表示位置が採用される。図9の下側の電子機器1において、画像600のX軸方向の中心を示す、Y軸方向に沿った中心線は、画像600の中心位置702を通る、Y軸方向に沿った線となる。電子機器1が、そのX軸方向の表示位置がX基準表示位置に一致するように画像を表示する場合には、当該画像のX軸方向の中心を示す中心線と、表示面121のX軸方向の中心を示す中心線とが重なる。
 Y基準表示位置としては、例えば、表示面121のY軸方向の中心を示す、X軸方向に沿った中心線と、画像のY軸方向の中心を示す、X軸方向に沿った中心線とが重なるような画像のY軸方向の表示位置が採用される。図9の下側の電子機器1において、画像600のY軸方向の中心を示す、X軸方向に沿った中心線は、画像600の中心位置702を通る、X軸方向に沿った線となる。電子機器1が、そのY軸方向の表示位置がY基準表示位置に一致するように画像を表示する場合には、当該画像のY軸方向の中心を示す中心線と、表示面121のY軸方向の中心を示す中心線とが重なる。
 X変位が+Lである電子機器1が、X変位が零である電子機器1が表示する画像600と比較して、その表示位置が-X方向にLだけずれるように画像600を表示する場合を考える。この場合、図9に示されるように、X変位が零の上側の電子機器1と、X変位が+Lの下側の電子機器1との間では、表示面121に表示される画像600の地球に対するX軸方向の位置は同じとなる。言い換えれば、X変位が+Lである電子機器1が、X変位が零である電子機器1が表示する画像600と比較して、そのX軸方向の中心が-X方向にLだけずれるように画像600を表示する場合には、X変位が零の電子機器1と、X変位が+Lの電子機器1との間では、表示面121に表示される画像600のX軸方向の中心は同じとなる。したがって、電子機器1が画像を表示する場合に、当該画像の表示位置が、X基準表示位置よりも、電子機器1のX変位の絶対値だけ、当該X変位の符号が示す方向とは反対の方向にずれるように、当該画像を表示する場合には、表示面121に表示される画像の地球に対するX軸方向の位置が変化しにくくなる。X変位の符号がプラスである場合、当該符号が示す方向とは反対の方向は-X方向となる。
 同様に、電子機器1が画像を表示する場合に、当該画像の表示位置が、Y基準表示位置よりも、電子機器1のY変位の絶対値だけ、当該Y変位の符号が示す方向とは反対の方向にずれるように、当該画像を表示する場合には、表示面121に表示される画像の地球に対するY軸方向の位置が変化しにくくなる。
 そこで、本例では、表示制御部500は、画像位置制御の実行により、表示部120に表示される画像のX軸方向の表示位置が、X基準表示位置よりも、電子機器1のX変位の推定値の絶対値だけ、当該推定値の符号が示す方向と反対の方向にずれるようにする。また、表示制御部500は、画像表示制御の実行により、表示部120に表示される画像のY軸方向の表示位置が、Y基準表示位置よりも、電子機器1のY変位の推定値の絶対値だけ、当該推定値の符号が示す方向とは反対の方向にずれるようにする。これにより、対象振動時の電子機器1が表示する画像の地球に対する位置が変化しにくくなる。その結果、対象振動時の電子機器1が表示する画像の視認性が向上する。
 なお、表示面121の大きさと画像600の大きさが同じであって、画像位置制御によって画像600全体の表示位置が移動する場合には、図9の下側に示されるように、表示面121には画像600の一部だけが表示されて、表示面121に画像600が表示されない領域121aが発生する。この場合には、領域121aに画像600とは異なる所定の画像が表示されてもよい。例えば、領域121aには、各画素の色が所定の色(例えば黒色)である画像が表示されてもよい。また、領域121aには、画像600を外挿処理したものが表示されてもよい。また、画像600の大きさは表示面121の大きさよりも小さくてもよいし、大きくてもよい。
 次に画像位置制御について詳細に説明する。画像位置制御において、表示制御部500は、各フレーム期間について、当該フレーム期間において得られる変位の推定値に基づいて、当該フレーム期間よりも例えば一つ後のフレーム期間で表示される画像の表示位置を決定する。フレーム期間とは、一枚のフレーム画像が表示される期間であって、フレームレートが60fpsであるとすると、フレーム期間の長さは60分の1秒(約16,7ms)となる。
 以後、電子機器1の説明において注目するフレーム期間を対象フレーム期間と呼ぶことがある。また、対象フレーム期間よりも一つ後のフレーム期間を次フレーム期間と呼ぶことがある。また、次フレーム期間で表示される画像(つまり、フレーム画像)を対象画像と呼ぶことがある。また、対象画像の表示位置の決定で使用される変位の推定値を、対象変位推定値と呼ぶことがある。また、対象変位推定値を生成する際に最新の加速度検出値として使用される加速度検出値を対象加速度検出値と呼ぶことがある。
 図10は、対象フレーム期間での電子機器1の動作の一例を示すフローチャートである。電子機器1は、各フレーム期間について図10に示される処理を実行する。本例では、推定部300は、上述の図7に示される動き推定処理を実行する。
 図10に示されるように、ステップs31において、推定部300は、対象加速度検出値を取得する。対象加速度検出値としては、例えば、対象フレーム期間の垂直同期信号が発生した直後に加速度センサ150から出力される加速度検出値が採用される。
 次にステップs32において、推定部300は、動き推定処理の推定タイミングを決定する。そしてステップs33において、推定部300は、対象加速度検出値を最新の加速度検出値として使用して、ステップs32で決定した推定タイミングでの電子機器1の動きを推定する動き推定処理を実行する。
 図11は推定タイミングの決定方法の一例を説明するための図である。図11では、対象フレーム期間の垂直同期信号の発生が開始するタイミングである発生開始タイミングtm1と、次フレーム期間の垂直同期信号の発生が開始するタイミングである発生開始タイミングtm2とが示されている。また図11では、加速度センサ150が対象加速度検出値を出力するタイミングである出力タイミングtm3と、表示面121において対象画像が実際に表示されるタイミングである表示タイミングtm4とが示されている。出力タイミングtm3は、推定部300が加速度センサ150から対象加速度検出値を取得するタイミングであるとも言える。
 ステップs32において、推定部300は、対象加速度検出値の出力タイミングtm3から、次フレーム期間の垂直同期信号の発生開始タイミングtm2までの時間T11を求める。推定部300にとって発生開始タイミングtm2は既知である。次に、推定部300は、発生開始タイミングtm2から表示タイミングtm4までの時間T12に対して、求めた時間T11を足し合わせて、出力タイミングtm3から表示タイミングtm4までの時間T13を求める。そして、推定部300は、求めた時間T13を、推定タイミングのT0とする。これにより、推定タイミングが、表示部120において対象画像が実際に表示されるタイミングとなる。
 例えば、時間T11が13msであって、時間T12が15msであるとすると、推定タイミングのT0は28msとなる。この場合、現在から28ms後において対象画像が表示される。詳細には、対象加速度検出値が得られてから28ms後において対象画像が表示される。
 時間T12は記憶部103に予め記憶されている。時間T12には、垂直同期信号の発生が開始してから表示パネル122に表示制御部500から駆動信号が与えられるまでの時間と、表示パネル122の反応時間とが含まれる。表示パネル122の反応時間とは、表示パネル122に駆動信号が与えてから表示パネル122が画像を実際に表示するまでの時間である。時間T12は、実機実験あるいはシミュレーションによって予め求められる。
 ステップs32において推定タイミングが決定されると、ステップs33において、推定部300は、対象加速度検出値を最新の加速度検出値として使用して、上述の図7に示される動き推定処理を行う。ステップs33の動き推定処理の結果、推定タイミングでの加速度、速度、変位及び総変位の推定値が得られる。つまり、対象画像が表示されるタイミングでの加速度、速度、変位及び総変位の推定値が得られる。ステップs33では、対象画像が表示部120で表示されるタイミングでの加速度、速度、変位及び総変位の予測値を用いたベイズ推定に基づいて、対象画像が表示部120で表示されるタイミングでの加速度、速度、変位及び総変位の推定値が生成されると言える。
 次にステップs34において、表示制御部500は画像位置制御を実行する。具体的には、表示制御部500は、ステップs33で得られた変位の推定値を対象変位推定値として、対象画像の表示位置を決定する。ステップs34において、表示制御部500は、第2フィルタ320から出力される、推定タイミングでのX軸方向の変位の推定値をX軸方向の対象変位推定値とし、第2フィルタ320から出力される、推定タイミングでのY軸方向の変位の推定値をY軸方向の対象変位推定値とする。そして、表示制御部500は、X軸方向及びY軸方向の対象変位推定値に基づいて、対象画像の表示位置を決定する。
 ステップs34において、表示制御部500は、対象画像のX軸方向の表示位置を、X基準表示位置よりも、X軸方向の対象変位推定値の絶対値だけ、X軸方向の対象変位推定値の符号が示す方向と反対の方向にずれた位置に決定する。また、表示制御部500は、対象画像のY軸方向の表示位置を、Y基準表示位置よりも、Y軸方向の対象変位推定値の絶対値だけ、Y軸方向の対象変位推定値の符号が示す方向と反対の方向にずれた位置に決定する。これにより、次フレーム期間で表示されている対象画像の地球に対する位置が、基準位置の電子機器1が表示している画像の地球に対する位置からずれにくくなる。
 ステップs34の後、表示制御部500は、決定した表示位置に対象画像を表示部120に表示させるための駆動信号を生成して表示部120に与える。これにより、表示部120では、ステップs34で決定された表示位置に対象画像が表示される。
 以上のステップs31~s34の処理を、制御部100が、各フレーム期間を対象フレーム期間として実行することによって、所定のフレームレートで表示面121に表示される画像についての地球に対する位置は動きにくくなる。本例では、画像位置制御の実行中での画像の地球に対する位置が、基準位置の電子機器1が表示する画像の地球に対する位置から変化しにくくなる。その結果、画像の視認性が向上する。また、電子機器1に表示される画像に含まれる、文字、記号及び図形等の対象物(図9では文字列601)についての地球に対する位置も動きにくくなることから、当該対象物の視認性が向上する。
 また、画像の視認性が悪い場合には、ユーザは気分が悪くなる可能性があるが、本例の電子機器1によれば、このようなことが発生する可能性が低減する。
 なお、上述のように、推定部300は5msごとに動き推定処理を行うことから、対象フレーム期間においては、ステップs33の動き推定処理だけではなく、画像位置制御とは関係しない動き推定処理も実行される。推定部300は、対象フレーム期間において、ステップs33の動き推定処理以外の動き推定処理を実行しなくてもよい。
 また推定部300は、電子機器1において所定の条件が成立したとき、画像表示制御の実行を開始してもよい。例えば、推定部300は、ユーザが表示面121に対して画像表示制御の実行を指示する操作を行ったと制御部100が判定すると、画像表示制御の実行を開始して、各フレーム期間について図10に示される一連の処理を実行してもよい。
 上述のように、予測モデル360では、式(3)に示されるように、あるタイミングでの加速度の予測確率分布a(t)が、当該あるタイミングよりも前のタイミングでの加速度の推定確率分布a(t-1)及びa(t-2)を用いた外挿式で表される。また、予測モデル360では、式(5)に示されるように、あるタイミングでの変位の予測確率分布r(t)が、当該あるタイミングよりも前のタイミングでの加速度の推定確率分布a(t-1)を用いた予測式で表される。上記のステップs33の動き推定処理では、あるタイミングでの加速度の推定確率分布が、式(3)の外挿式において前のタイミングでの加速度の推定確率分布として使用されて、当該あるタイミングよりも先のタイミングでの加速度の予測確率分布が求められ、求められた先のタイミングでの加速度の予測確率分布を用いたベイズ推定に基づいて、当該先のタイミングでの加速度の推定確率分布が生成されるという特定処理が実行される。そして、ステップs33の動き推定処理では、特定処理が繰り返し実行されることによって得られた加速度の推定確率分布が、式(5)の予測式での前のタイミングでの加速度の推定確率分布として使用されて、対象画像が表示されるタイミングでの変位の予測確率分布が求められる。そして、ステップs33の動き推定処理では、対象画像が表示されるタイミングでの変位の予測確率分布を用いたベイズ推定に基づいて、対象画像が表示されるタイミングでの変位の推定値を生成される。このような、対象画像が実際に表示されるタイミングでの変位の推定値に基づいて、画像の表示位置が制御されることによって、表示部120に表示される画像についての地球に対する位置はより確実に変化しにくくなる。
 加速度センサ150では、内部のフィルタ機能等によって、加速度を検出してから、その検出結果を出力するまでに、ある程度の時間を要することがある。以後、加速度センサ150が、加速度を検出してから、その検出結果を出力するまでの時間をセンサ遅延時間と呼ぶことがある。
 ここで、ステップs33において得られる、現在よりもT0時間先のタイミングでの変位の推定値(つまり、推定タイミングでの変位の推定値)は、厳密に言うと、加速度センサ150が最新の加速度を検出したタイミングからT0時間先のタイミングである。センサ遅延時間が零である場合には、上述のように、出力タイミングtm3から表示タイミングtm4までの時間T13をT0とすると、推定タイミングは、対象画像が表示されるタイミングと一致する。しかしながら、センサ遅延時間が零でない場合に時間T13をT0とすると、推定タイミングは、対象画像が表示されるタイミングよりも少し前のタイミングとなる。よって、推定タイミングでの変位の推定値は、対象画像が表示されるタイミングよりも少し前での変位の推定値となる。
 そこで、推定部300は、センサ遅延時間を考慮して推定タイミングを決定してもよい。具体的には、推定部300は、図12に示されるように、加速度センサ150が加速度を検出したタイミングtm5からその検出結果(つまり、対象加速度検出値)の出力タイミングtm3までの時間T14を時間T13に足し合わせて得られる時間T15を、推定タイミングのT0にしてもよい。これにより、推定部300は、対象画像の表示タイミングでの変位をより正しく推定することができる。時間T14は、実機実験あるいはシミュレーションによって予め求められる。
 なお、推定部300は、ステップs32で決定したT0が(T×(M-1))と一致しない場合には、現在から(T×(M-1))時間先のタイミングでの変位の推定値を、推定タイミングでの変位の推定値とし、当該推定値を、対象画像の表示タイミングでの変位の推定値として使用してもよい。
 上記の例では、電子機器1は、スマートフォン等の携帯電話機であったが、他の種類の電子機器であってよい。電子機器1は、例えば、タブレット端末、ノート型のパーソナルコンピュータ、ウェアラブル機器などであってよい。電子機器1として採用されるウェアラブル機器は、リストバンド型あるいは腕時計型などの腕に装着するタイプであってもよいし、ヘッドバンド型あるいはメガネ型などの頭に装着するタイプであってもよいし、服型などの体に装着するタイプであってもよい。
 上記の動きの推定技術は、スマートフォン、スマートウォッチ及びパーソナルコンピュータなどのモバイル端末、プロジェクター、ヘッドマウントディスプレイ、工作機械及び電子ミラーでの画面補正で使用することができる、また、上記の動きの推定技術は、タッチパネルの検出位置の補正でも使用することができる。また、上記の動きの推定技術は、ゲームコントローラの動きの検出でも使用することができる。ゲームコントローラは、例えば、釣竿の形状をしたものであってもよい。また、上記の動きの推定技術は、スポーツグッズ、ランニングシューズ及びラケットの動きの検出でも使用することができる。また、上記の動きの推定技術は、機器の異常検知でも使用することができるし、釣りの浮の動きの検出でも使用することができるし、ロボットの姿勢制御等でも使用することができる。
 上記の説明から理解できるように、推定部300が推定する、振動時の装置の動きは、並進振動時の装置の動きである。したがって、推定部300が生成する、加速度、速度、変位及び総変位の推定値は、並進加速度、並進速度、並進変位及び総並進変位の推定値であると言える。動き推定装置400は、動き推定処理において、回転振動時の装置の動きを推定してもよい。以下に、この場合の動き推定処理について説明する。以下の説明では、一例として、電子機器1が、車両に搭載されるヘッドアップディスプレイとして使用される場合を例に挙げて、本例に係る電子機器1について説明する。
 <回転振動時の装置の動き推定の一例について>
 本例では、ヘッドアップディスプレイとして機能する電子機器1は、例えば、当該電子機器1が搭載される車両の前方の実風景に対して画像を重ねて表示することによって、拡張現実(AR:Augmented Reality)を実現することができる。電子機器1は、実風景に対して、例えば、運転者を支援するための画像を重ねて表示することができる。以後、電子機器1が搭載される車両を対象車両と呼ぶことがある。
 図13に示されるように、本例に係る電子機器1はジャイロセンサ250を備える。ジャイロセンサ250は、電子機器1の回転角速度を検出することが可能である。本例では、電子機器1は対象車両に固定されることから、ジャイロセンサ250は、対象車両の回転角速度を検出することが可能であると言える。以後、回転角速度を単に角速度と呼ぶことがある。
 ジャイロセンサ250は、例えば3軸ジャイロセンサである。ジャイロセンサ250は、電子機器1についてのX1軸周りの回転の角速度、Y1軸周りの回転の角速度及びZ1軸周りの回転の角速度を検出することが可能である。ジャイロセンサ250は、所定間隔ごとに、角速度を検出してその検出結果を出力する。本例では、当該所定間隔は5msであるが、他の値でもよい。以後、加速度センサ150と同様に、当該所定間隔も検出間隔と呼ぶことがある。また、ジャイロセンサ250の検出間隔の長さもTで表すことがある。
 図14は、X1軸、Y1軸及びZ1軸の一例を示す図である。図14に示されるように、X1軸は、電子機器1が搭載される対象車両800の前後方向に沿うように設定される。また、Y1軸は、対象車両800の左右方向に沿うように設定される。そして、Z1軸は、対象車両800の高さ方向に沿うように設定される。ジャイロセンサ250は、対象車両800についてのX1軸周りの回転の角速度、Y1軸周りの回転の角速度及びZ1軸周りの回転の角速度を検出することが可能である。以後、説明の便宜上、X1軸周りの回転、Y1軸周りの回転及びZ1軸周りの回転を、それぞれ、ローリング、ピッチング及びヨーイングと呼ぶことがある。
 本例では、電子機器1の動き推定装置400は、ジャイロセンサ250の検出値251に基づいて、回転振動時の電子機器1の動きを推定することが可能である。言い換えれば、動き推定装置400は、検出値251に基づいて、回転振動時の対象車両800の動きを推定することが可能である。検出値251、つまり、ジャイロセンサ250で検出される角速度を角速度検出値と呼ぶことがある。
 本例では、対象車両800の回転振動によって生じる電子機器1の回転振動を想定して、動き推定装置400は、例えば、電子機器1についての、周波数帯が0.5Hz以上2Hz以下の回転角が数度の小さい回転ランダム振動を対象回転振動とする。そして、動き推定装置400は、対象回転振動を行っている電子機器1の動きを推定する。なお、対象回転振動は本例に限られない。
 ジャイロセンサ250の検出値251は、対象回転振動以外の影響も受ける。例えば、検出値251は、坂道等による、対象車両800が走行する地形の緩やかな変化によって生じる対象車両800の緩やかな姿勢変化の影響を受けることがある。また、検出値251は、対象車両800の加減速による対象車両800の緩やかな姿勢変化の影響を受けることがある。また、検出値251にはドリフト誤差も含まれる。これらの外乱に抗して、対象となる補正すべき動きを単離して推定する必要がある。
 本例の第1フィルタ310は、ジャイロセンサ250の検出値251から、対象回転振動以外の影響を除去するために、検出値251に対してフィルタ処理を行う。推定部300は、第1フィルタ310でフィルタ処理された検出値251と、観測モデル350と、予測モデル360とを用いたベイズ推定に基づいて、対象回転振動時の電子機器1の動きを推定する。本例の推定部300は、電子機器1の動きの推定結果として、例えば、電子機器1の角速度の推定値と、電子機器1の回転角の推定値と、電子機器1の総回転角の推定値とを生成する。
 ここで、電子機器1の回転角とは、電子機器1の姿勢についての基準姿勢からの回転角を意味する。回転角はプラスの値とナイマスの値をとり得る。また電子機器1の総回転角とは、電子機器1の各時刻の回転角を足し合わせたものである。総回転角はプラスの値とナイマスの値をとり得る。基準姿勢としては、例えば、動き推定装置400が動作を開始したときの電子機器1の姿勢が採用される。動き推定装置400は、電子機器1の動作開始に応じて動作を開始してもよいし、動作中の電子機器1に対するユーザの操作に応じて動作を開始してもよい。また、動き推定装置400は、動作中の電子機器1において他の条件が成立した場合に、動作を開始してもよい。
 以後、ベイズ推定によって得られる電子機器1の角速度、回転角及び総回転角の推定値を、それぞれ、角速度推定値、回転角推定値及び総回転角推定値と呼ぶことがある。また、単に角速度と言えば、電子機器1の角速度を意味し、単に回転角と言えば、電子機器1の回転角を意味し、単に総回転角と言えば、電子機器1の総回転角を意味する。角速度、回転角及び総回転角のそれぞれは、電子機器1の物理量であると言える。
 本例の第2フィルタ320は、推定部300での推定結果に対してフィルタ処理を行う。本例では、第2フィルタ320は、推定部300から出力される角速度推定値、回転角推定値及び総回転角推定値のそれぞれに対して個別にフィルタ処理を行う。
 <推定部の動作の詳細>
 本例では、上述の式(1)に関する状態ベクトルxには、変数として、角速度、回転角及び総回転角が含まれる。また、観測ベクトルzには、変数として、角速度、回転角及び総回転角が含まれる。
 上記と同様に、本例の推定部300は、式(1)を用いて事後確率p(x|z1:t)を求めることによってベイズ推定を行う。このとき、推定部300は、確率分布p(z|x)として観測モデル350を使用し、確率分布p(x|xt-1)として予測モデル360を使用する。推定部300は、求めた事後確率p(x|z1:t)が最大となる状態ベクトルを推定状態ベクトルする。そして、推定部300は、推定状態ベクトルの角速度、回転角及び総回転角の成分を、それぞれ、角速度推定値、回転角推定値及び総回転角推定値とする。
 本例の観測モデル350は、対象回転振動を表す観測モデルである。本例では、観測モデル350は、対象回転振動に関する統計的な事前知識を表す確率分布である。具体的には、観測モデル350は、対象回転振動時の電子機器1の角速度、回転角及び総回転角を表す最大3次元の確率分布である。以後、本例の観測モデル350での各次元についての周辺確率分布を、それぞれ、第5確率分布、第6確率分布及び第7確率分布と呼ぶことがある。
 ここで、上述のように、対象回転振動の回転角は小さい。したがって、対象回転振動時の電子機器1の姿勢はあまり変化しない。本例では、対象回転振動時の電子機器1の回転角を、例えば、当該回転角を確率変数とする、平均が零で分散の小さい固定の第5確率分布で表すことによって、観測モデル350において、電子機器1の姿勢があまり変化しないという知識を表現する。また、本例では、対象振動時の電子機器1の角速度を、例えば、当該角速度を確率変数とする、平均が角速度検出値で分散の小さい第6確率分布で表す。第6確率分布の平均としては、例えば、第1フィルタ310でフィルタ処理された角速度検出値が採用される。第6確率分布は角速度検出値に応じて変化する。また、本例では、対象回転振動時の電子機器1の総回転角を、例えば、当該総回転角を確率変数とする、平均が零の固定の第7確率分布で表すことによって、観測モデル350において、電子機器1が回転振動するという知識を表現する。
 本例の観測モデル350については、例えば機械学習によって対象回転振動に対して決定される。この場合、観測モデル350は、例えば最尤推定法が使用されて決定されてもよい。また、観測モデル350は、対象回転振動の振動環境における実測値の統計分布に基づいて決定されてもよい。また、観測モデル350は、機械学習と実測値の統計分布の両方に基づいて決定されてもよい。第5~第7確率分布としては、例えば正規分布が採用されてもよい。
 本例の予測モデル360では、時刻tでの角速度の予測値がb(t)で表され、角速度についての時刻tでの予測誤差がw_b(t)で表される。本例では、電子機器1の角速度は滑らかに変化するものとし、上述の式(3)と同様の以下の式(8)が成立すると考える。本例では、予測値b(t)は確率分布で表される。以後、予測値b(t)を予測確率分布b(t)と呼ぶことがある。
Figure JPOXMLDOC01-appb-M000008
 予測誤差は、例えば、時刻に応じて変化しない固定の確率分布が採用される。予測誤差は例えば機械学習によって決定される。この場合、予測誤差は例えば最尤推定法が使用されて決定されてもよい。予測誤差を表す確率分布として、例えば正規分布が採用されてもよい。
 また、本例の予測モデル360では、時刻tでの回転角の予測値がc(t)で表され、時刻tでの総回転角の予測値がd(t)で表される。本例の予測モデル360では、回転角の予測値c(t)及び総回転角の予測値d(t)が、上述の式(4)及び(5)と同様の式で表される。具体的には、回転角の予測値c(t)及び総回転角の予測値d(t)は、ジャイロセンサ250の検出間隔の長さTを用いた以下の式(9)及び(10)でそれぞれ表される。本例の予測モデル360では、回転角についての時刻tでの予測誤差がw_c(t)で表され、総回転角についての時刻tでの予測誤差がw_d(t)で表される。本例では、予測値c(t)及び予測値d(t)のそれぞれは確率分布で表される。以後、予測値c(t)及び予測値d(t)を、それぞれ、予測確率分布c(t)及び予測確率分布d(t)と呼ぶことがある。
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
 本例の推定部300は、式(8)を用いて、時刻tでの角速度の予測値a(t)を求める。このとき、推定部300は、式(8)のb(t-1)に対して、推定された時刻t-1の事後確率p(xt-1|z1:t-1)についての角速度の周辺確率分布を代入する。そして、推定部300は、式(8)のb(t-2)に対して、推定された時刻t―2の事後確率p(xt-2|z1:t-2)についての角速度の周辺確率分布を代入する。また、推定部300は、式(9)を用いて、時刻tでの回転角の予測値c(t)を求める。このとき、推定部300は、式(9)のb(t-1)及びc(t―1)に対して、推定された時刻t-1の事後確率p(xt-1|z1:t-1)についての角速度及び回転角の周辺確率分布をそれぞれ代入する。また、推定部300は、式(10)を用いて、時刻tでの総回転角の予測値d(t)を求める。このとき、推定部300は、式(10)のb(t-1)、c(t―1)及びd(t―1)に対して、推定された時刻t-1の事後確率p(xt-1|z1:t-1)についての角速度、回転角及び総回転角の周辺確率分布をそれぞれ代入する。推定された事後確率p(xt-1|z1:t-1)についての角速度、回転角及び総回転角の周辺確率分布は、それぞれ、角速度、回転角及び総回転角の推定確率分布であると言える。
 本例の推定部300は、ジャイロセンサ250から出力される角速度検出値と、予測モデル360での式(8)~(10)と、観測モデル350とを用いたベイズ推定に基づいて、現在の電子機器1の動きを推定する動き推定処理を行う。
 図15は本例の動き推定処理の一例を示すフローチャートである。図15に示される動き推定処理は、ジャイロセンサ250において新たに角速度が検出されるたびに実行される。本例の推定部300は、動き推定処理において、例えば、ローリングの加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。また、推定部300は、動き推定処理において、例えば、ピッチングの加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。また、推定部300は、動き推定処理において、例えば、ヨーイングの加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。
 推定部300は、ジャイロセンサ250から最新の角速度検出値を取得すると、図15に示されるように、ステップs51において、予測モデル360を用いて、現在の角速度の予測値を求める。本例では、推定部300は、予測モデル360を用いて、ローリングの角速度の予測値と、ピッチングの角速度の予測値と、ヨーイングの角速度の予測値とを別々に求める。
 ステップs51において、推定部300は、前回の動き推定処理で推定された事後確率p(xt-1|z1:t-1)についてのローリングの角速度の周辺確率分布を式(8)のb(t-1)に代入する。また、推定部300は、前回の動き推定処理のステップs51においてb(t-1)に代入したローリングの角速度の周辺確率分布を、式(8)のb(t-2)に代入する。これにより得られた予測値b(t)を、推定部300は、ローリングの現在の角速度の予測値とする。推定部300は、同様にして、式(8)を用いて、ピッチングの現在の角速度の予測値と、ヨーイングの現在の角速度の予測値とを求める。
 次にステップs52において、推定部300は、予測モデル360を用いて、ローリングの現在の回転角の予測値と、ピッチングの現在の回転角の予測値と、ヨーイングの現在の回転角の予測値とを別々に求める。ステップs52において、推定部300は、前回の動き推定処理で推定された事後確率p(xt-1|z1:t-1)についてのローリングの角速度の周辺確率分布を式(9)のb(t-1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(xt-1|z1:t-1)についてのローリングの回転角の周辺確率分布を式(9)のc(t-1)に代入する。これにより得られた予測値c(t)を、推定部300は、ローリングの現在の回転角の予測値とする。推定部300は、同様にして、式(9)を用いて、ピッチングの現在の回転角の予測値と、ヨーイングの回転角の現在の予測値とを求める。
 次にステップs53において、推定部300は、予測モデル360を用いて、ローリングの現在の総回転角の予測値と、ピッチングの現在の総回転角の予測値と、ヨーイングの現在の総回転角の予測値とを別々に求める。ステップs53において、推定部300は、前回の動き推定処理で推定された事後確率p(xt-1|z1:t-1)についてのローリングの角速度の周辺確率分布を式(9)のb(t-1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(xt-1|z1:t-1)についてのローリングの回転角の周辺確率分布を、式(10)のc(t-1)に代入する。そして、推定部300は、前回の動き推定処理で推定された事後確率p(xt-1|z1:t-1)についてのローリングの総回転角の周辺確率分布を、式(10)の予測値d(t-1)に代入する。これにより得られた予測値d(t)を、推定部300は、ローリングの現在の総回転角の予測値とする。推定部300は、同様にして、式(10)を用いて、ピッチングの現在の総回転角の予測値と、ヨーイングの現在の総回転角の予測値とを求める。
 次にステップs54において、推定部300は、ステップs51~s53で求めた予測値と観測モデル350とを用いたベイズ推定に基づいて、角速度の推定値、回転角の推定値及び総回転角の推定値を生成する。ステップs54では、推定部300は、ステップs51~s53で得られたローリングの角速度、回転角及び総回転角の予測値(言い換えれば、予測確率分布)を上述の式(1)のp(x|xt-1)に代入する。また推定部300は、観測モデル350を式(1)のp(z|x)に代入する。このとき、推定部300は、ローリングの最新の角速度検出値(詳細には、第1フィルタ310でフィルタ処理されたローリングの最新の角速度検出値)を第6確率分布の平均として用いる。そして、推定部300は、前回の動き推定処理のステップs54で得られた事後確率p(x|z1:t)を式(1)の事後確率p(xt-1|z1:t-1)に代入して、事後確率p(x|z1:t)を求める。これにより、時刻tの事後確率p(x|z1:t)が推定される。推定部300は、推定した事後確率p(x|z1:t)が最大となる状態ベクトルを特定し、それを推定状態ベクトルとする。推定部300は、推定状態ベクトルの角速度、回転角及び総回転角の成分を、それぞれ、ローリングの現在の角速度推定値、回転角推定値及び総回転角推定値とする。電子機器1が対象回転振動を行っている場合には、ステップs54では、対象回転振動時の電子機器1のローリングの角速度、回転角及び総回転角の推定値が得られると言える。言い換えれば、ステップs54では、対象回転振動時の対象車両800のローリングの角速度、回転角及び総回転角の推定値が得られる。
 同様にして、推定部300は、式(1)を用いて、ピッチングの角速度、回転角及び総回転角の推定値を生成する。この場合、推定部300は、ピッチングの最新の角速度検出値(詳細には、第1フィルタ310でフィルタ処理されたピッチングの最新の角速度検出値)を第6確率分布の平均として用いる。同様にして、推定部300は、式(1)を用いて、ヨーイングの角速度、回転角及び総回転角の推定値を生成する。この場合、推定部300は、ヨーイングの最新の角速度検出値(詳細には、第1フィルタ310でフィルタ処理されたヨーイングの最新の角速度検出値)を第6確率分布の平均として用いる。
 第2フィルタ320は、推定部300で生成される、ローリングの角速度、回転角及び総回転角の推定値のそれぞれに対して個別にフィルタ処理を行う。また、第2フィルタ320は、推定部300で生成される、ピッチングの角速度、回転角及び総回転角の推定値のそれぞれに対して個別にフィルタ処理を行う。そして、第2フィルタ320は、推定部300で生成される、ヨーイングの角速度、回転角及び総回転角の推定値のそれぞれに対して個別にフィルタ処理を行う。
 なお、動き推定処理では、b(t-1)に、フィルタ処理された角速度の周辺確率分布が入力されてもよい。また、b(t-2)に、フィルタ処理された角速度の周辺確率分布が入力されてもよい。また、c(t―1)には、フィルタ処理された回転角の周辺確率分布が入力されてもよい。また、d(t-1)には、フィルタ処理された総回転角の周辺確率分布が入力されてもよい。
 また、本例の動き推定処理でのステップs51~s53の実行順序は上記の例に限られない。例えば、ステップs51は、ステップs52及びs53のいずれか一つのステップの後に実行されてもよいし、ステップs53は、ステップs51及びs52のいずれか一つのステップの前に実行されてもよい。
 また、本例の推定部300は、上述の図6と同様にして、現在よりも先のタイミングでの電子機器1の動きを推定してもよい。この場合、ステップs51~s54の一連の処理が単位推定処理とされる。そして、上述と同様にして単位推定処理が必要回数Mだけ実行されることによって、現在よりも(T×(M-1))時間先のタイミングでの電子機器1の動きが推定される。つまり、対象回転振動時の電子機器1についての現在よりも(T×(M-1))時間先のタイミングでの角速度、回転角及び総回転角の推定値が得られる。
 また、推定部300は、上述の図7と同様にして、現在よりもTの整数倍だけ先のタイミングではなく、現在よりも先の所望の推定タイミングでの電子機器1の動きを推定してもよい。
 以上のように、本例では、ジャイロセンサ250の角速度検出値と、電子機器1の動きを表す予測モデル360と、角速度検出値が用いられる、電子機器1の回転振動を表す観測モデル350とを用いたベイズ推定に基づいて、回転振動時の電子機器1の動きが推定される。これにより、回転振動時の電子機器1の動きを適切に推定することができる。
 また、本例に係る予測モデル360では、上述の式(8)に示されるように、あるタイミングでの角速度の予測確率分布が、当該あるタイミングよりも前のタイミングでの角速度の推定確率分布を用いた外挿式で表される。そして、あるタイミングでの推定確率分布を、外挿式において前のタイミングでの推定確率分布として使用して、当該あるタイミングよりも先のタイミングでの予測確率分布を求め、求めた先のタイミングでの予測確率分布を用いたベイズ推定に基づいて当該先のタイミングでの推定確率分布を生成するという処理を繰り返し実行することによって、所望のタイミングでの角速度の推定確率分布を求めることができる。よって、外挿式を使用して、所望のタイミングでの角速度の推定値を簡単に得ることができる。
 また本例では、観測モデル350において、対象回転振動時の電子機器1の回転角の平均が零であると表現されている。したがって、対象回転振動時の電子機器1の回転角の推定値が零から大きく離れる可能性を低減することができる。よって、対象回転振動の回転角が小さいという状況に応じた回転角の推定値を適切に得ることができる。
 また本例では、観測モデル350において、対象回転振動時の電子機器1の総回転角の平均が零であると表現されている。これにより、電子機器1の回転振動に応じた変化を行う回転角の推定値を適切に得ることができる。この理由については、対象振動時の電子機器1の総変位の平均が零であると表現されていることにより、電子機器1の振動に応じた変化を行う変位の推定値を適切に得ることができる理由と同様である。
 なお、推定部300は、角速度、回転角及び総回転角の推定値のうちの少なくとも一つを生成しなくてもよい。つまり、推定部300は、動きの推定結果として、角速度、回転角及び総回転角の少なくとも一つの推定値を生成してもよい。また、推定部300は、ローリングの角速度推定値、回転角推定値及び総回転角推定値の少なくとも一つを生成しなくてもよい。また、推定部300は、ピッチングの角速度推定値、回転角推定値及び総回転角推定値の少なくとも一つを生成しなくてもよい。また、推定部300は、ヨーイングの角速度推定値、回転角推定値及び総回転角推定値の少なくとも一つを生成しなくてもよい。
 次に、本例の電子機器1での動きの推定結果の利用方法の一例について説明する。ヘッドアップディスプレイとして機能する本例の電子機器1は、例えば、動きの推定結果に基づいて、実風景に重ねて表示する画像の表示位置を補正することができる。本例の電子機器1が備える表示部120は、対象車両800の前方の実風景に対して画像を重ねて表示することができる。表示部120は、例えば、プロジェクターと同様の構成を備えている。そして、本例の電子機器1が備える表示制御部500は、表示部120が実風景に重ねて表示する画像の表示位置を制御することが可能である。以下に、本例の表示制御部500の動作の一例について説明する。以後、表示部120が実風景に重ねて表示する画像を重畳画像と呼ぶことがある。
 例えば、電子機器1が搭載された対象車両800が石畳等の凸凹道を走行する場合、Y1軸周りの回転振動が対象車両800に生じることがある。Y1軸周りの回転振動が対象車両800に生じると、電子機器1にもY1軸周りの回転振動が生じる。Y1軸周りの回転振動が電子機器1に生じると、表示部120が表示する重畳画像の地球に対する位置が対象車両800の上下方向にずれる可能性がある。例えば、対象車両800を前側から見て、対象車両800が下側に回転すると、重畳画像の地球に対する位置が下側にずれる。一方で、対象車両800を前側から見て、対象車両800が上側に回転すると、重畳画像の地球に対する位置が上側にずれる。これにより、ユーザは、重畳画像を視認しにくい可能性がある。
 そこで、本例の表示制御部500は、第2フィルタ320から出力される、電子機器1のピッチングの回転角の推定値に基づいて、表示部120での重畳画像の表示位置を制御することによって、当該重畳画像の地球に対する位置を制御する。これにより、実風景に重ねられる重畳画像の地球に対する位置が変化しにくくなり、当該重畳画像の視認性を向上させることが可能となる。
 本例の表示制御部500は、電子機器1のピッチングの回転角の推定値に基づいて、重畳画像の地球に対する位置のずれ量と、重畳画像の地球に対する位置のずれ方向とを推定する。そして、表示制御部500は、重畳画像の表示位置を、推定したずれ方向とは反対の方向に、推定したずれ量だけ変化させる。これにより、実風景に重畳される重畳画像の地球に対する位置が変化しにくくなる。その結果、重畳画像の視認性が向上する。以下に、上述の図10を用いて、本例の表示制御部500の動作について詳細に説明する。以後、電子機器1のピッチングの回転角をピッチング回転角と呼ぶことがある。
 重畳画像は、例えば、所定のフレームレートで表示される。表示制御部500は、各フレーム期間について、当該フレーム期間において得られるピッチング回転角の推定値に基づいて、当該フレーム期間よりも例えば一つ後のフレーム期間で表示される重畳画像の表示位置を決定する。
 以後、上述と同様に、本例の電子機器1の説明において注目するフレーム期間を対象フレーム期間と呼ぶことがある。また、対象フレーム期間よりも一つ後のフレーム期間を次フレーム期間と呼ぶことがある。また、次フレーム期間で表示される重畳画像を対象重畳画像と呼ぶことがある。また、対象重畳画像の表示位置の決定で使用されるピッチング回転角の推定値を、対象回転角推定値と呼ぶことがある。また、対象回転角推定値を生成する際にピッチングの最新の角速度検出値として使用されるピッチングの角速度検出値を対象角速度検出値と呼ぶことがある。以下に説明する例では、推定部300は、上述の図7と同様にして、現在よりもTの整数倍だけ先のタイミングではなく、現在よりも先の所望の推定タイミングでの電子機器1の動きを推定する。
 本例では、図10のステップs31において、推定部300は、対象角速度検出値を取得する。対象角速度検出値としては、例えば、対象フレーム期間の垂直同期信号が発生した直後にジャイロセンサ250から出力されるピッチングの角速度検出値が採用される。
 次にステップs32において、推定部300は、動き推定処理の推定タイミングを決定する。そしてステップs33において、推定部300は、対象角速度検出値をピッチングの最新の角速度検出値として使用して、ステップs32で決定した推定タイミングでの電子機器1の動きを推定する動き推定処理を実行する。
 推定タイミングについては、上述の図11と同様にして決定される。本例では、出力タイミングtm3は、ジャイロセンサ250が対象角速度検出値を出力するタイミングである。ステップs32において、推定部300は、対象角速度検出値の出力タイミングtm3から、次フレーム期間の垂直同期信号の発生開始タイミングtm2までの時間T11を求める。次に、推定部300は、発生開始タイミングtm2から表示タイミングtm4までの時間T12に対して、求めた時間T11を足し合わせて、出力タイミングtm3から表示タイミングtm4までの時間T13を求める。そして、推定部300は、求めた時間T13を、推定タイミングのT0とする。これにより、推定タイミングが、表示部120において対象重畳画像が実際に表示されるタイミングとなる。
 ステップs32において推定タイミングが決定されると、ステップs33において、推定部300は、対象角速度検出値を最新の角速度検出値として使用して、上述の図7と同様の動き推定処理を行う。ステップs33の動き推定処理の結果、推定タイミングでの角速度、回転角及び総回転角の推定値が得られる。つまり、対象重畳画像が表示されるタイミングでの角速度、回転角及び総回転角の推定値が得られる。
 次にステップs34において、表示制御部500は、ステップs33で得られた回転角の推定値を対象回転角推定値として、対象重畳画像の表示位置を決定する。ステップs34において、表示制御部500は、第2フィルタ320から出力される、推定タイミングでのピッチングの回転角の推定値を対象回転角推定値とする。そして、表示制御部500は、対象回転角推定値に基づいて、対象重畳画像の表示位置を決定する。
 ステップs34において、表示制御部500は、対象回転角推定値に基づいて、重畳画像の地球に対する位置のずれ量と、重畳画像の地球に対する位置のずれ方向とを推定する。そして、表示制御部500は、次フレーム期間で表示される重畳画像の表示位置を、推定したずれ方向とは反対の方向に、推定したずれ量だけ変化させる。これにより、次フレーム期間で表示されている対象重畳画像の地球に対する位置が地球に対する位置からずれにくくなる。
 以上のステップs31~s34の処理を、制御部100が、各フレーム期間を対象フレーム期間として実行することによって、所定のフレームレートで表示部120に表示される重畳画像についての地球に対する位置は動きにくくなる。その結果、実風景に重ねられる重畳画像の視認性が向上する。
 また、重畳画像の視認性が悪い場合には、ユーザは気分が悪くなる可能性があるが、本例の電子機器1によれば、このようなことが発生する可能性が低減する。
 上述のように、予測モデル360では、式(8)に示されるように、あるタイミングでの角速度の予測確率分布b(t)が、当該あるタイミングよりも前のタイミングでの角速度の推定確率分布b(t-1)及びb(t-2)を用いた外挿式で表される。また、予測モデル360では、式(9)に示されるように、あるタイミングでの回転角の予測確率分布c(t)が、当該あるタイミングよりも前のタイミングでの角速度の推定確率分布b(t-1)を用いた予測式で表される。上記のステップs33の動き推定処理では、あるタイミングでの角速度の推定確率分布が、式(8)の外挿式において前のタイミングでの角速度の推定確率分布として使用されて、当該あるタイミングよりも先のタイミングでの角速度の予測確率分布が求められ、求められた先のタイミングでの角速度の予測確率分布を用いたベイズ推定に基づいて、当該先のタイミングでの角速度の推定確率分布が生成されるという特定処理が実行される。そして、ステップs33の動き推定処理では、特定処理が繰り返し実行されることによって得られた角速度の推定確率分布が、式(9)の予測式での前のタイミングでの角速度の推定確率分布として使用されて、対象重畳画像が表示されるタイミングでの回転角の予測確率分布が求められる。そして、ステップs33の動き推定処理では、対象重畳画像が表示されるタイミングでの回転角の予測確率分布を用いたベイズ推定に基づいて、対象重畳画像が表示されるタイミングでの回転角の推定値を生成される。このような、対象重畳画像が実際に表示されるタイミングでの回転角の推定値に基づいて、対象重畳画像の表示位置が制御されることによって、重畳画像についての地球に対する位置はより確実に変化しにくくなる。
 ジャイロセンサ250では、内部のフィルタ機能等によって、角速度を検出してから、その検出結果を出力するまでに、ある程度の時間を要することがある。以後、ジャイロセンサ250が、角速度を検出してから、その検出結果を出力するまでの時間をジャイロセンサ遅延時間と呼ぶことがある。
 ここで、ステップs33において得られる、現在よりもT0時間先のタイミングでの角速度の推定値(つまり、推定タイミングでの角速度の推定値)は、厳密に言うと、ジャイロセンサ250が最新の角速度を検出したタイミングからT0時間先のタイミングである。ジャイロセンサ遅延時間が零である場合には、上述のように、出力タイミングtm3から表示タイミングtm4までの時間T13をT0とすると、推定タイミングは、対象重畳画像が表示されるタイミングと一致する。しかしながら、ジャイロセンサ遅延時間が零でない場合に時間T13をT0とすると、推定タイミングは、対象重畳画像が表示されるタイミングよりも少し前のタイミングとなる。よって、推定タイミングでの回転角の推定値は、対象重畳画像が表示されるタイミングよりも少し前での回転角の推定値となる。
 そこで、推定部300は、上述の図12と同様にして、ジャイロセンサ遅延時間を考慮して推定タイミングを決定してもよい。本例では、タイミングtm5は、ジャイロセンサ250が角速度を検出したタイミングとなる。推定部300は、タイミングtm5からその検出結果(つまり、対象角速度検出値)の出力タイミングtm3までの時間T14を時間T13に足し合わせて得られる時間T15を、推定タイミングのT0にしてもよい。これにより、推定部300は、対象重畳画像の表示タイミングでの回転角をより正しく推定することができる。
 なお、推定部300は、ステップs32で決定したT0が(T×(M-1))と一致しない場合には、現在から(T×(M-1))時間先のタイミングでの回転角の推定値を、推定タイミングでの回転角の推定値とし、当該推定値を、対象重畳画像の表示タイミングでの回転角の推定値として使用してもよい。
 上記の例では、電子機器1は、ヘッドアップディスプレイとして使用されていたが、他の装置として使用されてもよい。例えば、電子機器1は、仮想現実(VR:Virtual Reality)用あるいは拡張現実用のヘッドマウントディスプレイとして使用されてもよい。この場合、電子機器1は、上述のように、回転振動時の動きを推定し、その推定結果に基づいて、表示する画像の表示位置を制御してもよい。ヘッドマウントディスプレイは、ゴーグル型であってもよいし、メガネ型であってもよいし、他の形状であってもよい。
 また、動き推定装置400は、並進振動と回転振動を行っている装置の動きを推定してもよい。この場合、推定部300は、動き推定処理において、加速度推定値、速度推定値、変位推定値及び総変位推定値の少なくとも一つと、角速度推定値、回転角推定値及び総変回転角推定値の少なくとも一つとを生成してもよい。例えば、動き推定処理において、加速度推定値、速度推定値、変位推定値及び総変位推定値と、角速度推定値、回転角推定値及び総変回転角推定値とが生成される場合を考える。この場合、式(1)に関する状態ベクトルxには、変数として、加速度、速度、変位、総変位、角速度、回転角及び総回転角が含まれる。また、観測ベクトルzには、変数として、加速度、速度、変位、総変位、角速度、回転角及び総回転角が含まれる。観測モデル350は、電子機器1の加速度、速度、変位、総変位、角速度、回転角及び総回転角を表す最大7次元の確率分布となる。推定部300は、事後確率p(x|z1:t)を推定すると、推定した事後確率p(x|z1:t)が最大となる状態ベクトルを推定状態ベクトルとして特定する。そして、推定部300は、推定状態ベクトルの加速度、速度、変位、総変位、角速度、回転角及び総回転角の成分を、それぞれ、加速度推定値、速度推定値、変位推定値、総変位推定値、角速度推定値、回転角推定値及び総回転角推定値とする。
 また、動き推定装置400は、第1フィルタ310及び第2フィルタ320の少なくとも一方を備えなくてもよい。また、観測モデル350は上記の例に限られない。また、予測モデル360は上記の例に限られない。例えば、式(4)~(6),(9),(10)の少なくとも一つには予測誤差が含まれなくてもよい。また、動き推定装置400での動きの推定結果の利用方法は上記の例に限られない。また、動き推定装置400は、電子機器1に含まれなくてもよい。また、動き推定装置400は、電子機器1以外の装置の動きを推定してもよい。
 以上のように、電子機器1及び動き推定装置400は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この開示がそれに限定されるものではない。また、上述した各種例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の例が、この開示の範囲から外れることなく想定され得るものと解される。
 1 電子機器
 100 制御部
 103a 制御プログラム
 120 表示部
 300 推定部
 310 第1フィルタ
 320 第2フィルタ
 350 観測モデル
 360 予測モデル
 400 動き推定装置

Claims (10)

  1.  振動時の装置の動きを推定する動き推定装置であって、
     前記装置の動きを表す予測モデルと、前記装置の第1物理量としての加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、前記装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の前記装置の動きを推定する推定部を備える、動き推定装置。
  2.  請求項1に記載の動き推定装置であって、
     前記予測モデルでは、あるタイミングでの前記第1物理量の予測確率分布が、当該あるタイミングよりも前のタイミングでの前記第1物理量の推定確率分布を用いた外挿式で表される、動き推定装置。
  3.  請求項1及び請求項2のいずれか一つに記載の動き推定装置であって、
     前記観測モデルでは、前記装置の変位及び総変位についての平均あるいは前記装置の回転角及び総回転角についての平均が零として表されている、動き推定装置。
  4.  請求項1から請求項3のいずれか一つに記載の動き推定装置であって、
     前記検出値に対して第1フィルタ処理を行う第1フィルタをさらに備え、
     前記観測モデルでは、前記第1フィルタ処理が行われた前記検出値が用いられる、動き推定装置。
  5.  請求項1から請求項4のいずれか一つに記載の動き推定装置であって、
     前記推定部での推定結果に対して第2フィルタ処理を行う第2フィルタをさらに備える、動き推定装置。
  6.  請求項1から請求項5のいずれか一つに記載の動き推定装置であって、
     前記推定部は、前記装置の動きの推定結果として、前記装置の加速度、速度、変位及び総変位のいずれか一つの第1推定値、あるいは前記装置の回転角速度、回転角及び総回転角のいずれか一つの第2推定値を生成する、動き推定装置。
  7.  請求項6に記載の動き推定装置と、
     表示部と、
     前記動き推定装置の前記推定部で生成される前記変位の前記第1推定値あるいは前記回転角の前記第2推定値に基づいて、前記表示部に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する表示制御部と
    を備える、電子機器。
  8.  請求項2に記載の動き推定装置と、
     表示部と、
     前記表示部の表示を制御する表示制御部と
    を備え、
     前記動き推定装置の前記推定部は、前記装置の動きの推定結果として、前記装置の第2物理量としての変位あるいは回転角の推定値を生成し、
     前記表示制御部は、前記第2物理量の推定値に基づいて、前記表示部に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御し、
     前記予測モデルでは、あるタイミングでの前記第2物理量の予測確率分布が、当該あるタイミングよりも前のタイミングでの前記第1物理量の推定確率分布を用いた予測式で表され、
     前記推定部は、
      前記あるタイミングでの前記第1物理量の推定確率分布を、前記外挿式において前記前のタイミングでの前記第1物理量の推定確率分布として使用して、前記あるタイミングよりも先のタイミングでの前記第1物理量の予測確率分布を求め、求めた前記先のタイミングでの前記第1物理量の予測確率分布を用いた前記ベイズ推定に基づいて、前記先のタイミングでの前記第1物理量の推定確率分布を生成するという処理を繰り返し実行することによって得られた前記第1物理量の推定確率分布を、前記予測式において前記前のタイミングでの前記第1物理量の推定確率分布として使用して、前記画像が前記表示部で表示される表示タイミングでの前記第2物理量の予測確率分布を求め、
      前記表示タイミングでの前記第2物理量の予測確率分布を用いた前記ベイズ推定に基づいて、前記表示タイミングでの前記第2物理量の推定値を生成する、電子機器。
  9.  コンピュータを制御するための制御プログラムであって、
     前記コンピュータに、
     装置の動きを表す予測モデルと、前記装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、前記装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の前記装置の動きを推定する処理を実行させる制御プログラム。
  10.  振動時の装置の動きを推定する動き推定方法であって、
     前記装置の動きを表す予測モデルと、前記装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、前記装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の前記装置の動きを推定する、動き推定方法。
PCT/JP2019/040097 2018-10-12 2019-10-10 動き推定装置、電子機器、制御プログラム及び動き推定方法 WO2020075825A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019556289A JP6621167B1 (ja) 2018-10-12 2019-10-10 動き推定装置、電子機器、制御プログラム及び動き推定方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-193363 2018-10-12
JP2018193363 2018-10-12

Publications (1)

Publication Number Publication Date
WO2020075825A1 true WO2020075825A1 (ja) 2020-04-16

Family

ID=70163822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/040097 WO2020075825A1 (ja) 2018-10-12 2019-10-10 動き推定装置、電子機器、制御プログラム及び動き推定方法

Country Status (1)

Country Link
WO (1) WO2020075825A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7053087B1 (ja) * 2020-10-30 2022-04-12 株式会社スマートドライブ 移動体挙動情報取得方法、移動体挙動情報取得装置及びプログラム
WO2022091650A1 (ja) * 2020-10-30 2022-05-05 株式会社スマートドライブ 移動体挙動情報取得方法、移動体挙動情報取得装置及びプログラム
JP7318995B1 (ja) 2022-03-24 2023-08-01 株式会社スマートドライブ 移動体挙動情報取得方法、移動体挙動情報取得装置及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515101A (ja) * 2011-03-31 2014-06-26 クアルコム,インコーポレイテッド 携帯デバイスの位置を推論するデバイス、方法、および装置
US8892391B2 (en) * 2011-06-03 2014-11-18 Apple Inc. Activity detection
JP5688326B2 (ja) * 2011-05-13 2015-03-25 Kddi株式会社 気圧センサを用いて昇降移動状態を推定する携帯装置、プログラム及び方法
JP2016109608A (ja) * 2014-12-09 2016-06-20 ヤマハ株式会社 姿勢推定装置及び姿勢推定装置の制御プログラム
JP2018136400A (ja) * 2017-02-21 2018-08-30 京セラ株式会社 表示装置、表示方法、制御装置および車両

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515101A (ja) * 2011-03-31 2014-06-26 クアルコム,インコーポレイテッド 携帯デバイスの位置を推論するデバイス、方法、および装置
JP5688326B2 (ja) * 2011-05-13 2015-03-25 Kddi株式会社 気圧センサを用いて昇降移動状態を推定する携帯装置、プログラム及び方法
US8892391B2 (en) * 2011-06-03 2014-11-18 Apple Inc. Activity detection
JP2016109608A (ja) * 2014-12-09 2016-06-20 ヤマハ株式会社 姿勢推定装置及び姿勢推定装置の制御プログラム
JP2018136400A (ja) * 2017-02-21 2018-08-30 京セラ株式会社 表示装置、表示方法、制御装置および車両

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7053087B1 (ja) * 2020-10-30 2022-04-12 株式会社スマートドライブ 移動体挙動情報取得方法、移動体挙動情報取得装置及びプログラム
WO2022091650A1 (ja) * 2020-10-30 2022-05-05 株式会社スマートドライブ 移動体挙動情報取得方法、移動体挙動情報取得装置及びプログラム
JP7318995B1 (ja) 2022-03-24 2023-08-01 株式会社スマートドライブ 移動体挙動情報取得方法、移動体挙動情報取得装置及びプログラム
JP2023141437A (ja) * 2022-03-24 2023-10-05 株式会社スマートドライブ 移動体挙動情報取得方法、移動体挙動情報取得装置及びプログラム

Similar Documents

Publication Publication Date Title
WO2020075825A1 (ja) 動き推定装置、電子機器、制御プログラム及び動き推定方法
KR102208329B1 (ko) 화상 처리 장치 및 화상 처리 방법, 컴퓨터 프로그램, 및 화상 표시 시스템
WO2019203189A1 (ja) プログラム、情報処理装置、及び情報処理方法
US10466775B2 (en) Method and apparatus for changing a field of view without synchronization with movement of a head-mounted display
US10940384B2 (en) Inciting user action for motion sensor calibration
US20160077166A1 (en) Systems and methods for orientation prediction
CN107438812B (zh) 信息处理设备、信息处理方法和程序
JP2017073753A (ja) 補正方法、プログラム及び電子機器
JP7182020B2 (ja) 情報処理方法、装置、電子機器、記憶媒体およびプログラム
JP2017147682A (ja) 全天球撮影システム
JP2014182612A (ja) 情報表示装置、方法及びプログラム
US9891446B2 (en) Imaging apparatus and image blur correction method
WO2020049847A1 (ja) 推定装置、学習装置、推定方法、学習方法及びプログラム
CN108196701B (zh) 确定姿态的方法、装置及vr设备
JP7405083B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6621167B1 (ja) 動き推定装置、電子機器、制御プログラム及び動き推定方法
US11694409B1 (en) Augmented reality using a split architecture
WO2018155127A1 (ja) 表示装置、表示方法、制御装置および車両
JP2010205214A (ja) 制御装置及びヘッドマウントディスプレイ装置
EP4075786A1 (en) Image processing device, system, image processing method and image processing program
WO2018155128A1 (ja) 表示装置、制御装置および車両
JP2013140223A (ja) 情報表示装置、情報表示装置の制御方法、制御プログラム、制御プログラムを記録したコンピュータ読み取り可能な記録媒体
WO2018155123A1 (ja) 表示装置、表示方法、制御装置および車両
WO2018155122A1 (ja) 電子機器、制御装置、車両、制御プログラム及び電子機器の動作方法
WO2019167214A1 (ja) 推定装置、推定方法及びプログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019556289

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 19870389

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19870389

Country of ref document: EP

Kind code of ref document: A1