WO2013108434A1 - ブレ量検出装置、撮像装置、ブレ量検出方法 - Google Patents
ブレ量検出装置、撮像装置、ブレ量検出方法 Download PDFInfo
- Publication number
- WO2013108434A1 WO2013108434A1 PCT/JP2012/073312 JP2012073312W WO2013108434A1 WO 2013108434 A1 WO2013108434 A1 WO 2013108434A1 JP 2012073312 W JP2012073312 W JP 2012073312W WO 2013108434 A1 WO2013108434 A1 WO 2013108434A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- radius
- angular velocity
- acceleration
- axis
- roll
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6812—Motion detection based on additional sensors, e.g. acceleration sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/682—Vibration or motion blur correction
- H04N23/685—Vibration or motion blur correction performed by mechanical compensation
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/64—Imaging systems using optical elements for stabilisation of the lateral and angular position of the image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/682—Vibration or motion blur correction
- H04N23/685—Vibration or motion blur correction performed by mechanical compensation
- H04N23/687—Vibration or motion blur correction performed by mechanical compensation by shifting the lens or sensor position
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03B—APPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
- G03B2205/00—Adjustment of optical system relative to image or object surface other than for focusing
- G03B2205/0007—Movement of one or more optical elements for control of motion blur
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03B—APPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
- G03B2217/00—Details of cameras or camera bodies; Accessories therefor
- G03B2217/005—Blur detection
Definitions
- the present invention relates to a shake amount detection device that detects a movement amount based on a detection result of angular velocity and a detection result of acceleration, an imaging device including the shake amount detection device, and a shake amount detection method.
- Camera blur can be classified into angular blur that occurs when the angle of the optical axis of the camera changes, and translational blur that occurs when the camera moves (shifts) in the direction perpendicular to the optical axis. .
- Japanese Patent Application Laid-Open No. 2004-295027 discloses an acceleration sensor that detects an acceleration of shake applied to an interchangeable lens, an angular velocity sensor that detects an angular velocity of shake, an acceleration sensor, And a target position conversion unit that calculates the rotation center of the angular shake based on the acceleration and angular velocity detection results by the angular velocity sensor and calculates the target position of the shake correction lens. The calculation result obtained by the target position conversion unit Based on this, a technique for correcting the blur of an image by driving a blur correction lens is described.
- Japanese Patent Application Laid-Open No. 2010-243824 discloses a photographing optical system for photographing a subject, an angular velocity detecting means for detecting and outputting an angular velocity applied to the image shake correction device, and an acceleration applied to the image shake correction device.
- the rotation angular velocity calculation means for calculating the rotation angular velocity component around the principal point of the photographing optical system based on the output of the angular velocity detection means, the output of the acceleration detection means and the calculation result of the rotation angular velocity calculation means
- An image blur correction apparatus having a revolution angular velocity calculation unit that calculates a revolution angular velocity component at the center of the subject and a control unit that performs image blur correction control based on a difference between the rotation angular velocity component and the revolution angular velocity component is described. . According to the technique, it is possible to perform accurate image blur correction without causing a failure of control regardless of the state where angular shake and parallel shake are mixed, and the amount of calculation is reduced.
- the blur amount of the image plane is calculated based on the translational blur caused by the rotational motion in the yaw direction and the pitch direction, but is caused by the rotational motion in the roll direction.
- Translation blur is not considered. Since translational blur is also generated by rotational movement in the roll direction, it cannot be said that the blur amount is accurately detected unless this point is taken into consideration.
- the optical axis direction of the optical system 2 is the Z direction
- the horizontal direction of the camera 1 in the standard posture is the X direction
- the vertical direction of the camera 1 in the standard posture is the Y direction
- the first axis Rotational motion around the Z axis is a roll
- rotational motion around the Y axis as the second axis is yaw
- rotational motion around the X axis as the third axis is pitch.
- the amount of movement in the X direction is generated when a rotational movement in the yaw direction occurs in the camera 1, and the amount of movement in the Y direction is generated when a rotational movement in the pitch direction is generated in the camera 1, as shown in FIG. Occurs.
- the translational blurring that occurs in the camera 1 is not caused solely by these, and as shown in FIG. 2C, when a rotational movement in the roll direction occurs in the camera 1, the movement amount component in the X direction and the movement in the Y direction It can be seen that a movement amount including a movement amount component occurs.
- the present invention has been made in view of the above circumstances, and an object thereof is to provide a blur amount detection device, an imaging device, and a blur detection method capable of more accurately detecting a translational blur amount with relatively simple processing. It is said.
- a shake amount detection device includes a first angular velocity detection unit that detects a first angular velocity around a first axis, and a second that is orthogonal to the first axis.
- a second angular velocity detection unit that detects a second angular velocity around the axis of the first axis, an acceleration detection unit that detects a third acceleration in a third axis direction orthogonal to the first axis and the second axis, and a first Around the second axis based on the first angular velocity, the second angular velocity, and the third acceleration at the time of the second time, and the first angular velocity, the second angular velocity, and the third acceleration at the second time.
- a first radius of rotation is calculated by calculating a second radius of rotational motion and projecting the first radius of rotational motion around the first axis onto a plane including the first axis and the third axis.
- a rotation radius calculation unit to calculate, the second radius, and the second radius -3 and projection radius, and includes a first angular velocity, a shake amount calculation unit for calculating a movement amount to the third axial based on the second angular velocity, the.
- An imaging apparatus includes a blur amount detection apparatus according to the above aspect, an optical system that forms light from a subject as a subject image, and a subject image formed by the optical system as a video signal. And a drive unit that drives at least one of the optical system and the image sensor in a direction that cancels the amount of movement detected by the shake amount detection device.
- a blur amount detecting method detects a first angular velocity around a first axis, detects a second angular velocity around a second axis orthogonal to the first axis, and A third acceleration in a third axial direction orthogonal to the first axis and the second axis is detected, and the first angular velocity, the second angular velocity, the third acceleration at a first time, and a second time And calculating a second radius of rotational motion about the second axis based on the first angular velocity, the second angular velocity, and the third acceleration at, and a first rotational motion about the first axis.
- a first to third projection radius is calculated by projecting a radius onto a plane including the first axis and the third axis, and the second radius, the first to third projection radius, and the first angular velocity are calculated. And calculating the amount of movement in the third axial direction based on the second angular velocity.
- FIG. 3 is a diagram illustrating a state in which an amount of movement in the X direction is generated in the imaging apparatus by yaw rotation in the first embodiment.
- FIG. 3 is a diagram illustrating a state in which a movement amount in the Y direction is generated in the imaging apparatus by pitch rotation in the first embodiment.
- FIG. 2 is a block diagram illustrating a configuration of an imaging apparatus according to the first embodiment.
- FIG. 2 is a block diagram showing a configuration of a shake correction microcomputer in the first embodiment.
- the block diagram which shows the structure of the X direction translation blurring correction
- FIG. 3 is a diagram for explaining radius calculation timing detected by a timing detection unit in the first embodiment.
- symbol of the radius calculated by a radius calculation part differs in the case where the center of rotational motion exists in the photographer side of a camera, and the object side.
- symbol of the radius calculated by a radius calculation part differs in the case where the center of rotational motion is on the left side of a camera, and the case where it exists on the right side.
- FIG. 10 is a flowchart showing details of a turning radius calculation process in step S6 of FIG. 9 in the first embodiment.
- the flowchart which shows the detail of the process of the rotation radius selection in step S17 of FIG.
- the chart which shows the example of the positive and negative rotation radius currently hold
- FIG. 3 is a diagram showing an example of weights given to radii in the first embodiment.
- FIG. 10 is a flowchart showing a temporal change correction process in the camera of the second embodiment.
- the block diagram which shows the structure of the X direction translation blurring correction part in Embodiment 3 of this invention.
- FIG. 22 is a diagram showing an example of values obtained by calculating a yaw radius in the example of angular acceleration and acceleration shown in FIG. 21 of the third embodiment.
- FIG. 10 is a flowchart showing main control for detecting a translational blur amount in the third embodiment. In the said Embodiment 3, the flowchart which shows the detail of the process of a radius calculation in step S54 of FIG.
- the flowchart which shows the detail of the process of rotation radius calculation in step S54 of FIG. The block diagram which shows the structure of the X direction translation blurring correction part in Embodiment 5 of this invention.
- the flowchart which shows the detail of the process of rotation radius calculation in step S54 of FIG. In the said Embodiment 5, the flowchart which shows the detail of the modification of the process of calculation of the rotation radius in FIG.24 S54.
- FIG. 1 is a perspective view for explaining the types of rotational motion generated in the imaging apparatus.
- the imaging device 1 may be any device having an imaging function, and includes a wide variety of devices such as a digital camera, a video camera, and a camera-equipped mobile phone. To.
- the camera 1 includes an optical system 2 that forms light from a subject as a subject image, and the optical axis direction of the optical system 2 is a Z direction.
- the positive Z direction is a direction from the camera 1 toward the subject.
- the horizontal direction of camera 1 is defined as the X direction.
- the positive X direction is the right direction when viewing the camera 1 from the subject side (that is, the left direction when viewing the camera 1 from the photographer).
- the vertical direction of the camera 1 is defined as the Y direction.
- the positive Y direction is the upward direction in the standard posture.
- the origin of the coordinate system is shifted to prevent the coordinate system from being overlapped with the camera 1 and difficult to see.
- the origin is the center of the imaging surface of the imaging device 4 (see FIG. 3), and is generally the point where the imaging surface and the optical axis of the optical system 2 intersect.
- This coordinate system is a coordinate system fixed to the camera 1, and if the camera 1 moves or rotates, the coordinate system also moves or rotates with respect to the earth.
- the XY plane is a plane that coincides with the imaging plane.
- the rotational motion about the Z axis is roll
- the rotational motion about the X axis is pitch
- the rotational motion about the Y axis is yaw.
- the left rotation around the Z axis when viewing the positive Z axis from the origin is the positive rotation of the roll
- the left rotation around the X axis when viewing the positive X axis from the origin is the pitch. It is assumed that the rotation in the positive direction and the right rotation around the Y axis when the positive direction of the Y axis is viewed from the origin is the rotation in the positive direction of the yaw.
- the angle blur can be described as a rotational motion around the origin. That is, the optical axis is swung left and right by the rotational movement in the yaw direction, the subject range imaged on the image sensor 4 is moved to the left and right, and the optical axis is swung up and down by the rotational movement in the pitch direction. It is well known that the subject range imaged above moves up and down. It is also well known that rotational movement in the roll direction results in a horizontal and vertical position on the screen and an oblique position in between.
- FIG. 2A is a diagram illustrating a state in which the amount of movement in the X direction is generated in the imaging device due to yaw rotation
- FIG. 2B is a diagram illustrating a state in which the amount of movement in the Y direction is generated in the imaging device due to pitch rotation
- FIG. It is a figure which shows a mode that the movement amount of a X direction and a Y direction arises.
- FIG. 3 is a block diagram showing a configuration of the imaging apparatus 1.
- a camera 1 that is an imaging device includes an optical system 2, a focal plane shutter 3, an imaging device 4, a drive unit 5, a system controller 6, a shake correction microcomputer 7, an angular velocity sensor 8, and an acceleration sensor 9.
- the memory card 12 is configured to be detachable from the camera 1, for example, and may not have a configuration unique to the camera 1. .
- the optical system 2 forms light from the subject on the imaging surface of the imaging device 4 as a subject image.
- the focal plane shutter 3 is disposed in front of the image sensor 4 (on the optical system 2 side), and controls the exposure time by performing an opening / closing operation. That is, the focal plane shutter 3 is opened to place the image sensor 4 in an exposed state, and closed to place it in a light shielding state.
- the imaging device 4 converts the subject image formed on the imaging surface into an electrical signal based on an instruction from the system controller 6.
- the converted electrical signal is read out as a video signal by the system controller 6.
- the drive unit 5 supports the imaging element 4 so as to be movable in a two-dimensional direction parallel to the imaging plane, and based on an instruction from the blur correction microcomputer 7, the X direction shown in FIG. And the image sensor 4 is driven in the Y direction.
- the system controller 6 is a control unit that integrally performs various controls related to the functions of the entire camera 1 including reading of the video signal described above. As will be described below, the system controller 6 also controls the blur correction microcomputer 7 to perform blur detection and to perform blur correction based on the blur detection result.
- the angular velocity sensor 8 is a sensor configured as an angular velocity detection unit that detects a rotational motion, detects an angular change per unit time as an angular velocity, and outputs it to the shake correction microcomputer 7.
- the angular velocity sensor 8 includes a yaw angular velocity sensor 8a that is a yaw angular velocity detector (second angular velocity detector) that detects a yaw angular velocity associated with a yaw rotational motion around the Y-axis as shown in FIG. 2A, and as shown in FIG. 2B.
- a pitch angular velocity sensor 8b serving as a pitch angular velocity detecting unit (third angular velocity detecting unit) for detecting a pitch angular velocity relating to the pitch rotational motion around the X axis, and a roll relating to the roll rotational motion around the Z axis as shown in FIG. 2C
- a roll angular velocity sensor 8c that is a roll angular velocity detection unit (first angular velocity detection unit) that detects an angular velocity, and is configured to detect an angular velocity with three degrees of freedom in the rotation direction.
- the yaw angular velocity sensor 8a is the second angular velocity detector
- the pitch angular velocity sensor 8b is the third angular velocity detector.
- the yaw angular velocity sensor 8a (yaw angular velocity detector) is the third angular velocity detector and the pitch angular velocity.
- the sensor 8b (pitch angular velocity detection unit) may be the second angular velocity detection unit.
- the yaw angular velocity sensor 8a, the pitch angular velocity sensor 8b, and the roll angular velocity sensor 8c detect the rotational motion around each axis by using different sensors in the mounting direction, for example.
- the acceleration sensor 9 is an acceleration detection unit that detects at least acceleration in the X-axis direction (X acceleration) and acceleration in the Y-axis direction (Y acceleration). In the present embodiment, the acceleration sensor 9 further includes acceleration in the Z-axis direction (Z acceleration). ) Is also used. Then, the acceleration sensor 9 outputs the detected acceleration in each direction to the shake correction microcomputer 7.
- the angular velocity sensor 8 and the acceleration sensor 9 described above perform detection in time series with different detection times (that is, at predetermined time intervals), and sequentially output the detection results to the shake correction microcomputer 7. It has become.
- the blur correction microcomputer 7 calculates the blur amount of the camera 1 from the output of the angular velocity sensor 8 and the output of the acceleration sensor 9 based on an instruction from the system controller 6. Then, the blur correction microcomputer 7 outputs an instruction for driving the image sensor 4 by the blur amount detected in the direction opposite to the detected blur direction to the drive unit 5. Thereby, since the drive part 5 drives the image pick-up element 4 so that the blur in an imaging surface may be canceled, the blurring which generate
- the image pickup device 4 is driven to perform blur correction. However, instead of or in addition to this, the optical system 2 may be driven to perform blur correction.
- a shake amount detection device is configured including the shake correction microcomputer 7, the angular velocity sensor 8, and the acceleration sensor 9, and the shake correction device is configured including the shake amount detection device and the drive unit 5.
- the release switch 10 is, for example, a two-stage press switch connected to the system controller 6, and AF and AE are performed by the first-stage press (half-press or first release), and the second-stage press (all The exposure is started by pressing or 2nd release.
- the EVF 11 is a display unit configured to include a liquid crystal panel and the like so that a user can visually recognize a video signal read from the image sensor 4 and converted into a format that can be displayed by the system controller 6 or the like. indicate.
- the memory card 12 is a non-volatile recording medium that records a video signal read from the image sensor 4 and converted into a format that can be recorded by the system controller 6 or the like. It is configured to be detachable.
- the internal flash memory 13 is a non-volatile recording medium that records the control program of the camera 1 executed by the system controller 6, various parameters used for the control, and the like.
- FIG. 4 is a block diagram showing the configuration of the blur correction microcomputer 7.
- the blur correction microcomputer 7 includes a CPU 70, ADCs (analog / digital converters) 71a to 71c, SIOs (Serial Input / Output) 72a and 72b, and a driver 73.
- ADCs analog / digital converters
- SIOs Serial Input / Output
- the ADCs 71a to 71c convert the analog signals input from the angular velocity sensors 8a to 8c into digital signals, respectively.
- the SIOs 72a and 72b are communication units in which the CPU 70 communicates with an external device through a serial interface.
- the SIO 72a is used by the CPU 70 to read the acceleration value detected by the acceleration sensor 9, and the SIO 72b It is used for communication that exchanges.
- the driver 73 outputs a signal for driving the drive unit 5 based on the correction amount calculated by the CPU 70.
- the CPU 70 includes HPFs (High Pass Filters) 701a to 701e, an acceleration acquisition unit 702, an angle blur correction unit 703, a translation blur correction unit 704, a communication unit 705, and an addition unit 706, for example, an internal program It is provided as a function configured by firmware (which may of course be configured as hardware), and based on the detection results of the angular velocity sensor 8 and the acceleration sensor 9, the correction amount of angular blur and translational blur is calculated. To do.
- HPFs High Pass Filters
- HPFs 701a to 701e remove low frequency components of angular velocity and acceleration input as digital data. That is, the HPF 701a is input from the yaw angular velocity, the HPF 701b is input from the pitch angular velocity, the HPF 701c is input from the roll angular velocity, the HPF 701d is input from the X acceleration, and the HPF 701e is input from the input Y acceleration. Each is removed. Examples of the low-frequency component to be removed here include a frequency component of 1 Hz or less, but are not limited to this band. It has been experimentally confirmed that the frequency based on camera shake is between about 1 Hz and 10 Hz, thereby removing a component of change over time due to sensor movement (for example, drift) due to factors other than camera shake. be able to.
- the acceleration acquisition unit 702 reads the acceleration in the three-axis direction independent from the acceleration sensor via the SIO 72a, and converts the acceleration information into the X-axis, Y-axis, and Z-axis directions shown in FIG. To divide. Then, the acceleration acquisition unit 702 outputs the X acceleration to the above-described HPF 701d and the Y acceleration to the above-described HPF 701e.
- the angle blur correction unit 703 calculates a blur amount (angle blur) accompanying an angle change based on the yaw rotation motion and the pitch rotation motion. For this angle blur, a known technique can be appropriately used. Details are not given here because they can.
- the translational blur correction unit 704 calculates the translational movement amount of the camera 1 based on the acceleration and the angular velocity, converts the calculated movement amount into the blurring amount of the subject image on the imaging surface, and transmits it to the driving unit 5 as the correction amount.
- the translation blur correction unit 704 includes an X-direction translation blur correction unit 704x that calculates a translation blur amount in the X direction and a Y-direction translation blur correction unit 704y that calculates a translation blur amount in the Y direction.
- the communication unit 705 communicates with the system controller 6 via the SIO 72b.
- the addition unit 706 adds the angle blur amount calculated by the angle blur correction unit 703 and the translation blur amount calculated by the translation blur correction unit 704, and outputs the total blur amount to the driver 73.
- FIG. 5 is a block diagram showing the configuration of the X-direction translational blur correction unit 704x.
- the Y-direction translation blur correction unit 704y has the same configuration as the X-direction translation blur correction unit 704x, and the input is merely a pitch angular velocity instead of a yaw angular velocity and a Y acceleration instead of an X acceleration. Accordingly, only the X-direction translational blur correction unit 704x will be described here with reference to FIG.
- the X-direction translation blur correction unit 704x includes averaging units 761a to 761c, timing detection units 762a and 762b, angular acceleration calculation units 763a and 763b, radius calculation units 764a and 764b, and a blur amount calculation unit 785. Part 768.
- the averaging units 761a to 761c average the angular velocity and acceleration input in time series. This averaging is performed, for example, by calculating an average value of four sampling data and outputting it as one sampling value. This averaging has the effect of suppressing high frequency components from being emphasized by the differential calculation in the subsequent angular acceleration calculation units 763a and 763b, and also reduces the amount of calculation because the data amount is reduced to 1 ⁇ 4. There is also.
- the angular acceleration calculation units 763a and 763b calculate the angular acceleration by differentiating the averaged angular velocity.
- the angular acceleration calculated here is used for radius calculation in the radius calculation units 764a and 764b, and is used for time detection indicating the radius calculation timing in the timing detection units 762a and 762b.
- Timing detection units 762a and 762b detect the timing (time) at which the radius calculation units 764a and 764b calculate the radius.
- the timing detection unit 762b calculates the yaw radius (second radius) of the yaw rotation motion around the Y axis (time) when there is no influence of the roll rotation motion (time).
- the timing detector 762a sets the timing (time) at which there is no influence of the yaw rotational motion as the timing (time) for calculating the roll radius (first radius) of the roll rotational motion around the Z axis.
- the timing (time) at which the roll rotational motion is not affected is the timing at which the roll angular acceleration becomes zero (time).
- the time (time) at which the yaw rotational motion is not affected is the time (time) at which the yaw angular acceleration becomes zero.
- the rotation radius R can be calculated from the relationship between the velocity and the angular velocity. In this case, the timing (time) at which the roll angular velocity is not affected is the timing when the roll angular velocity is zero. (Time), the timing (time) at which the yaw rotational motion is not affected is the timing (time) at which the yaw angular velocity becomes zero.
- FIG. 6 is a diagram for explaining the radius calculation timing detected by the timing detectors 762a and 762b.
- the timing for calculating the yaw radius is the timing when the roll angular acceleration calculated from the roll angular velocity becomes zero (the timing when the roll angular acceleration becomes zero cross (0 cross) in the graph of FIG. In the example of FIG. 6, the times are t1 and t3).
- the timing for calculating the XZ roll radius which is the first to third projection radius, which is the projection radius of the roll radius onto the ZX plane (the plane including the Z axis and the X axis) is the yaw angle calculated from the yaw angular velocity. This is the timing at which the acceleration becomes zero (the timing at which the yaw angular velocity zero-crosses in the graph of FIG. 6 and time t2 in the example of FIG. 6).
- the timing detection unit 762b determines that the timing of the pitch rotation motion around the X axis is not affected by the roll rotation motion (the roll angular acceleration (or roll angular velocity) is 0).
- the timing for calculating the pitch radius is the timing, and the timing detection unit 762a uses the ZY plane (Z axis and Y axis) of the roll radius when there is no influence of the pitch rotation motion (the pitch angular acceleration (or pitch angular velocity) becomes 0).
- the YZ roll radius which is the first-second projection radius, which is the projection radius to the plane including the first and second projections, is calculated.
- the radius calculation units 764a and 764b are rotation radius calculation units that calculate a radius in the dimension of acceleration, for example, at the timing detected by the timing detection units 762b and 762a.
- the radius calculation unit 764a is based on the yaw angular acceleration ⁇ _yaw output from the angular acceleration calculation unit 763a and the averaged X acceleration ⁇ v_x output from the averaging unit 761c at the timing of calculating the yaw radius.
- the yaw radius Ryaw is calculated as shown in Equation 1 below.
- the pitch radius Rpitch is calculated by the following formula 3 based on the pitch angular acceleration ⁇ _pitch, the Y acceleration ⁇ v_y, and the roll angular acceleration ⁇ _roll. 4 calculates the YZ roll radius Rrolly.
- the shake amount calculation unit 785 includes speed calculation units 765a and 765b, an addition unit 766, and an integration unit 767.
- the blur calculation unit 785 converts the radius calculated by the radius calculation units 764a and 764b and the angular velocity input from the HPFs 701a to 701c. Based on this, the movement amount in the X-axis direction is calculated when the X-direction translation blur correction unit 704x is provided, and the movement amount in the Y-axis direction is calculated when the Y-direction translation blur correction unit 704y is provided. To do.
- the speed calculators 765a and 765b calculate translational speeds based on the radii calculated by the radius calculators 764a and 764b and the angular velocities input from the HPFs 701a to 701c.
- the velocity calculation unit 765a of the X-direction translational blur correction unit 704x multiplies the yaw radius Ryaw input from the radius calculation unit 764a and the yaw angular velocity ⁇ yaw input from the HPF 701a, thereby causing the yaw rotation motion.
- X-direction translation speed (first component of X-direction speed in the X-axis direction) Ryaw ⁇ ⁇ yaw is calculated.
- the speed calculation unit 765b of the X-direction translation blur correction unit 704x multiplies the XZ roll radius Rrollx input from the radius calculation unit 764b by the roll angular velocity ⁇ roll input from the HPF 701c, thereby causing the roll rotation motion.
- X-direction translation speed (second component of the X-direction speed in the X-axis direction) Rrollx ⁇ ⁇ roll is calculated.
- the addition unit 766 is a speed synthesis unit, and adds the output of the speed calculation unit 765a and the output of the speed calculation unit 765b, thereby causing the translation speed in the X direction caused by both the yaw rotation motion and the roll rotation motion.
- (X-direction velocity) Vx is calculated as shown in Equation 5 below.
- Vx Ryaw ⁇ ⁇ yaw + Rrollx ⁇ ⁇ roll
- the velocity calculation units 765a and 765b of the Y-direction translational blur correction unit 704y respectively calculate the first component Rpitch ⁇ ⁇ pitch of the Y-direction velocity and the second component Rrolly ⁇ ⁇ roll of the Y-direction velocity, and are velocity synthesis units.
- the adding unit 766 adds these values, thereby calculating a translational velocity (Y-direction velocity) Vy in the Y direction caused by both the pitch rotation motion and the roll rotation motion as shown in Equation 6 below.
- Vy Rpitch ⁇ ⁇ pitch + Rrolly ⁇ ⁇ roll
- the integration unit 767 of the X-direction translational blur correction unit 704x functions as a first movement amount calculation unit, integrates the calculated X-direction velocity Vx with respect to time t as shown in the following Equation 7, and performs the X-axis direction. The amount of movement ⁇ X to is calculated.
- Equation 7 the integration unit 767 of the Y-direction translation blur correction unit 704y functions as a first movement amount calculation unit, integrates the calculated Y-direction velocity Vy with respect to time t as shown in the following Equation 8, A movement amount ⁇ Y in the Y-axis direction is calculated.
- the movement amounts ⁇ X and ⁇ Y calculated in this way are the movement amounts of the angular velocity sensor 8 and the acceleration sensor 9, that is, the movement amount of the camera 1 itself.
- the multiplication unit 768 converts the image magnification f (see step S3 in FIG. 9), which is a parameter input from the system controller 6 via the SIO 72b and the communication unit 705, to the movement amounts ⁇ X and ⁇ Y input from the integration unit 767. Is converted into a shake amount on the imaging surface and output as a correction amount D (see step S3 in FIG. 9).
- the correction amount D (translational shake amount) calculated in this way is added to the angle shake amount in the adding unit 706 as described above. Therefore, the driver 73 outputs a signal for driving the drive unit 5 based on the total shake amount after the addition.
- FIG. 7 is a diagram for explaining that the sign of the radius calculated by the radius calculators 764a and 764b differs depending on whether the center of the rotational motion is on the photographer side of the camera 1 or on the subject side.
- FIG. 8B is a diagram for explaining that the sign of the radius calculated by the radius calculators 764a and 764b differs depending on whether the center of the rotational motion is on the left side or the right side of the camera 1
- FIG. 7 is a diagram for explaining that the sign of the radius calculated by the radius calculation units 764a and 764b differs depending on whether the camera is on the upper side or the lower side of the camera 1.
- FIG. 7 is a diagram for explaining that the sign of the radius calculated by the radius calculation units 764a and 764b differs depending on whether the camera is on the upper side or the lower side of the camera 1.
- the radius calculators 764a and 764b calculate the radius R from the acceleration and the angular acceleration, as shown in Equations 1 to 4. These acceleration and angular acceleration can take either a positive value or a negative value. Therefore, the calculated sign of the radius R may be positive or negative depending on the relationship between the sign of acceleration and the sign of angular acceleration.
- the speed calculation units 765a and 765b calculate the translational speed component using the radius R thus calculated as it is, the direction of the speed to be calculated depending on whether the sign of the radius R is positive or negative. Is the opposite.
- the sign of the calculated radius R is different between the case where the center of the rotational motion is in front of the camera 1 (photographer side) and the case where the center is on the subject OBJ side. .
- FIG. 7 is a view of the camera 1 viewed from the left side direction (from the outside of the X-axis positive camera 1 toward the X-axis negative direction), the angular velocity sensor 8 is shown as a positive angular velocity (pitch is shown in FIG. 1).
- the speed calculated when the center of rotation Crot is in front of the camera 1 (photographer side) is detected as an upward speed.
- the speed calculated when the center of rotation Crev is on the subject OBJ side is a downward speed.
- FIG. 7 is a view of the camera 1 viewed from the upper side downward, almost the same explanation can be applied to the rotational movement in the yaw direction (however, as indicated by yaw in FIG. 1, positive is the origin. This is the opposite of the above because it is counterclockwise.
- the case where the rotation center Crev is on the subject OBJ side is mainly when the rotation center Crev is the subject OBJ, that is, when the target subject OBJ deviates from the center of the frame. It is thought that it is generated by the movement to do so. This type of movement is often not continuous.
- the sign of the radius R related to the amount of movement in the Y direction is positive or negative depending on whether the center of rotation is on the right (Cright) or the left (Cleft) as viewed from the photographer of the camera 1, as shown in FIG. 8A. Is decided.
- the sign of the radius R related to the amount of movement in the X direction is positive or negative depending on whether the rotation center is above (Ctop) or below (Cunder) the camera 1.
- the position of the rotation center related to this roll rotation is often influenced mainly by the shooting posture. For example, whether the rotation center related to the amount of movement in the Y direction is on the right (Cright) or the left (Cleft) of the camera 1 depends on the grip position where the photographer holds the camera 1. There are many cases. Also, whether the rotation center related to the amount of movement in the X direction is above (Ctop) or below (Cunder) the camera 1 when the camera 1 is held normally is higher than the camera 1's elbow. Although it is below (Cunder) to be down, in the case of low-angle shooting, it is above (Ctop) because the elbow of the photographer is above the camera 1.
- FIG. 9 is a flowchart showing main control for blur amount detection.
- the process shown in FIG. 9 is a process periodically executed at a time interval of 1 ms, for example.
- the operation in the main control includes a detection period in which the rotational radius is calculated by detecting the angular velocity and acceleration but no blur correction is performed, and a correction period in which the blur correction is performed using the rotation radius calculated in the detection period. Divided into two control periods. Whether the control period is a detection period or a correction period is recorded in the state flag state.
- step S1 it is first determined whether or not the control period is a correction period by referring to the state flag state.
- step S6 If it is determined that the period is not the correction period, that is, if it is the detection period, the process of calculating the radius of rotation described later with reference to FIG. 10 is performed (step S6), and the translation speed V is set to 0.
- the correction amount D is output as 0 (step S7).
- step S8 it is determined whether or not exposure is started based on whether or not exposure start is notified from the system controller 6 via the SIO 72b and the communication unit 705 (step S8).
- step S9 If the exposure is started during this detection period, the state flag state is switched to the correction period (step S9). If the exposure is not started, the main process is terminated.
- step S1 if it is determined in step S1 that the correction period is in progress, the translational velocity V is calculated by multiplying the radius R calculated in the detection period and the angular velocity ⁇ output from the angular velocity sensor 8 (In step S2), the translational speed generated on the imaging surface is calculated by further integrating the translation speed with time and multiplying by the image magnification f (step S3).
- step S4 it is determined whether or not the exposure is completed based on whether or not the exposure end is notified from the system controller 6 via the SIO 72b and the communication unit 705 (step S4).
- step S5 If it is determined that the exposure has ended, the state flag state is switched to the detection period (step S5). If the exposure has not ended and continues, the main process is continued. finish.
- FIG. 10 is a flowchart showing details of the processing for calculating the radius of rotation in step S6 of FIG. This turning radius calculation process will be described with reference to FIG.
- This rotational radius calculation process is performed for each rotational axis, and more specifically, for each of the yaw radius Ryaw, pitch radius Rpitch, XZ roll radius Rrollx, and YZ roll radius Rrolly.
- the averaging units 761a to 761c calculate the angular velocity average value ⁇ ave (step S11) and the acceleration average value ⁇ v_ave (step S12).
- the angular acceleration calculating units 763a and 763b differentiate the angular velocity average value ⁇ ave calculated in step S11 with respect to time to calculate the angular acceleration ⁇ _ave (step S13).
- step S14 it is determined whether or not the timing detectors 762a and 762b detect that the other of the angular accelerations related to the first component and the second component having the same directional velocity has zero-crossed. That is, when processing related to the first component Ryaw ⁇ ⁇ yaw of the X direction velocity is performed, the roll angular acceleration ⁇ _roll, and when processing related to the second component Rrollx ⁇ ⁇ roll of the X direction velocity is processed, the yaw angular acceleration ⁇ _yaw, Y direction is performed.
- the radius calculation units 764a and 764b use the acceleration average value ⁇ v_ave obtained in step S12 and the angular acceleration ⁇ _ave obtained in step S13 to obtain equations 1 to 4.
- the rotation radius R is calculated by performing the calculation as shown in (Step S15).
- the radius of rotation R is not limited to calculation based on acceleration and angular acceleration, but can be calculated from the relationship between velocity and angular velocity.
- it is necessary to calculate the speed by integrating the acceleration detected by the acceleration sensor 9, but the influence of noise such as drift of the acceleration sensor 9 is emphasized by the integration calculation.
- the accuracy of the calculated radius may be reduced.
- the radius of the rotation is calculated based on the acceleration and the angular acceleration, thereby calculating the turning radius with higher accuracy.
- the radius calculation units 764a and 764b further perform reliability determination as to whether or not the rotation radius calculated in step S15 can be used for speed calculation (step S16).
- the translation speed component is calculated by multiplying the rotation radius and the angular velocity, if the absolute value of the rotation radius is large, the absolute value of the calculated translation speed component is also large, that is, the correction amount is also large. That is, if an error is included in the rotation radius, the amount of correction due to the error increases, and there is a possibility of erroneous correction.
- the rotation radius calculated in step S15 is compared with a predetermined threshold value, and if the rotation radius is larger than the predetermined threshold value, it is determined that there is no reliability and is not used for speed calculation. (As a specific process, the rotation radius output from the radius calculation units 764a and 764b is set to 0: that is, the rotation radius is cleared to 0).
- the acceleration is divided by the angular acceleration as shown in Equations 1 to 4. If the angular acceleration is a value close to 0, the calculation result is a very large value. (Diverging in some cases). Therefore, by avoiding the use of a turning radius having a large absolute value, it is possible to prevent such erroneous correction due to division by zero.
- the reliability determination method in step S16 is not limited to the above, and various other methods can be employed.
- the absolute value of angular acceleration is less than a predetermined angular acceleration threshold, and the absolute value of acceleration is less than a predetermined acceleration threshold If the absolute value of the denominator on the right side and the numerator in any one of Equations 1 to 4 is small, the radius calculation units 764a and 764b It may be determined that the rotation radius calculated by the above is not reliable, and the rotation radius 0 is output without using the calculation result.
- the first case where the turning radius is cleared to 0 is when a stationary state is detected. Since there is no blur in the stationary state, it is possible to prevent erroneous correction by clearing the rotation radius to zero.
- the output of the angular velocity sensor 8 and the output of the acceleration sensor 9 are substantially zero for a predetermined time or more except for components considered to be noise or the like. It is done.
- Another example of the state detected as being stationary is that a tripod connection is detected by a tripod detector or the like. Regarding the detection method of the tripod connection, since various known methods can be used, no specific example will be described.
- the second case where the turning radius is cleared to 0 is when a pan operation is detected.
- the pan operation is not included in camera shake, and is moved in a relatively large angle range, so that the correction range by the drive unit 5 is often exceeded.
- HPF particularly HPF 701a and HPF related to the acceleration in the X-axis direction
- the influence of HPF remains behind, so that a normal correction amount is calculated for a period of time immediately after the pan operation is performed. become unable. Accordingly, by clearing the rotation radius calculated from the yaw rotation motion related to the pan operation, that is, the yaw radius Ryaw calculated by Equation 1, zero correction due to the influence of the HPF 701 after the pan operation can be prevented.
- the pan operation is detected by detecting that the detection value of the angular velocity sensor 8 or the acceleration sensor 9, that is, the output (detection value) from the HPF (particularly the HPF 701a or HPF 701d) does not change over a predetermined time, or the detection value. It can be determined by detecting that the sign of does not change over a predetermined time.
- the third case in which the radius of rotation is cleared to 0 is when the time during which the blur correction from the start of exposure exceeds a predetermined time.
- This exposure time is monitored by the CPU 70, and the time after receiving the exposure start command from the system controller 6 is counted by a timer. If the count value exceeds a predetermined time, the radius calculation unit 764a, The turning radius output from 764b is cleared to zero.
- the rotation radius may be cleared to 0 as appropriate.
- step S17 a radius used for calculation in the correction period is selected (step S17). The process of selecting the turning radius in step S17 will be described later with reference to FIG.
- step S17 ends, or when the zero cross is not detected in the above-described step S14, the process returns to the main process shown in FIG. 9 from this turning radius calculation process.
- FIG. 11 is a flowchart showing details of the rotation radius selection process in step S17 of FIG.
- a predetermined number of rotation radii calculated in step S15 and determined to be reliable in step S16 are held from the latest calculated value according to the sign of the radius (step S15).
- the predetermined number of turning radii held here is the number of times necessary for the subsequent averaging process.
- the positive turning radius and the negative turning radius are traced back to the past from the latest one. Are held for 5 pieces each.
- FIG. 12 is a chart showing examples of positive and negative rotation radii held in the memories in the radius calculation units 764a and 764b.
- the positive turning radius R with a + sign on the right shoulder goes back to the past from the latest one with the numbers 0 to 4 in the lower right. Is stored for five.
- the negative turning radius R with a-symbol on the right shoulder is 5 from the latest to the past with the numbers 0 to 4 in the lower right. Stored in pieces.
- step S15 and step S16 described above when the latest reliable radius is calculated, if it is a positive radius, the stored contents in the primary memory are moved down by one stage, and the latest radius is calculated.
- the latest calculated value is stored in the field for storing the radius.
- the radius is a negative radius
- the same processing is performed on the negative memory. Accordingly, the most previous radius stored in the memory in the radius calculation units 764a and 764b is a radius 9 generations before or after the current generation.
- the radius is averaged (step S22).
- the radius is averaged (step S22).
- averaging is performed separately for the case where the radius is positive and the case where the radius is negative.
- Equation 9 five positive rotation radii R stored in the positive memory are averaged to calculate a positive average rotation radius AvR + and stored in the negative memory. Then, the five negative turning radii R are averaged to calculate a negative average turning radius AvR ⁇ .
- step S23 a weighting operation is performed to determine which of the positive average rotation radius AvR + and the negative average rotation radius AvR ⁇ calculated in step S22 is used (step S23).
- the weight stored in step S21 is given a weight that is heavier as the latest and lighter as it goes back from the latest to the past.
- FIG. 13 is a diagram showing an example of weights given to the radius.
- FIG. 13 shows an example of the weights that have the constant weight and the weight that decreases monotonically and gradually approaches 0 when going back to the past.
- the radius stored in step S21 is 10 when the positive and negative radii are combined. For example, the latest five of these, that is, the radii from the current generation to the previous four generations are weighted.
- FIG. 14 is a chart showing an example of weighting given to the radius.
- the radius is updated, and the radius calculation units 764a and 764b output the average rotation radius of the code whose evaluation value is equal to or greater than the threshold value, here the positive average rotation radius AvR +, to the speed calculation units 765a and 765b (step). S24).
- the radius calculation units 764a and 764b output the negative average rotation radius AvR ⁇ to the speed calculation units 765a and 765b.
- the radius calculation units 764a and 764b output radius 0 to the speed calculation units 765a and 765b (ie, clear 0) as the radius update process. This is because if the evaluation value is not greater than or equal to a predetermined threshold value, it is considered that it is not sufficiently clear whether the sign of the turning radius is + or-. This is because the correction amount is not calculated in order to prevent it.
- step S24 the process returns from the turning radius selection process shown in FIG. 11 to the turning radius calculation process shown in FIG.
- determination is made using weighting when selecting the sign of the radius, but the present invention is not limited to this.
- the average value of the same sign as the sign of the latest radius determined to be reliable in step S16 out of the mean value of the positive radii and the mean value of the negative radii calculated for each sign. You may make it output to the calculation parts 765a and 765b.
- the rotation center is often on the photographer side holding the camera with the right hand. It is also conceivable to fix the sign of the radius to one side, assuming a special shooting situation.
- the lateral movement speed is calculated by combining the lateral movement speed detected from the angular velocity in the yaw direction and the lateral movement speed detected from the angular velocity in the roll direction by the speed synthesis unit.
- the angular velocity in the yaw direction The moving speed can be detected more accurately than the moving speed calculated based only on the angular velocity in the pitch direction.
- the radius that the rotational motion in the roll direction affects the lateral direction is calculated, and the rotational motion (angular acceleration) in the pitch direction becomes zero.
- the angular velocity and acceleration detected by the angular velocity sensor and the acceleration sensor are averaged with sampling data for a predetermined number of times, it is possible to suppress the influence of high-frequency components emphasized in the subsequent differentiation process. Since the data for a plurality of samples can be handled as one sample data by averaging, the amount of data to be processed can be compressed and the calculation load can be reduced.
- the angular acceleration is calculated by differentiating the angular velocity and the radius is calculated based on the calculated angular acceleration and the detected acceleration
- the velocity is calculated by integrating the acceleration, and the velocity and the angular velocity are calculated.
- the error can be made smaller than when the radius is calculated. This is because an error may accumulate when the integration operation is performed, so that an erroneous calculation due to such an accumulated error can be avoided.
- the radius is not calculated and 0 is output. Can be prevented in advance, and miscalculation of the radius can be avoided.
- the radius can be averaged according to the position of the rotation center.
- the code of a predetermined generation is analyzed from the latest of the calculated radius to the past, and the weights are added in order of the code of the radius in order from the latest, and the total weight of positive codes (+ evaluation value) and negative
- the average radius of the code that exceeds the threshold is used, so the past radius calculation process Therefore, the correctness of the sign can be estimated.
- any evaluation value is less than the predetermined threshold value, 0 is output as the radius. Therefore, when the correctness of the sign of the radius cannot be estimated, the correction amount is not calculated and erroneous correction is performed. Can be prevented.
- the translational movement amount generated in the camera 1 which is an image pickup apparatus is not only due to the rotational movement of the yaw and pitch, but also the influence of the rotational movement of the roll is taken into account.
- the correction amount can be calculated with high accuracy. Then, by driving the image sensor so as to cancel the blur amount due to the detected movement amount, an image from which the translational blur amount is removed can be taken by the camera 1.
- a blur amount detecting device capable of detecting the translation blur amount more accurately by a relatively simple process.
- FIGS. 15 to 18 show the second embodiment of the present invention
- FIG. 15 is a block diagram showing the configuration of a shake correction microcomputer.
- the same parts as those in the first embodiment are denoted by the same reference numerals and the description thereof is omitted as appropriate, and only different points will be mainly described.
- the shake correction microcomputer 7 includes an HPF 701f, an angular velocity axis tilt sensitivity correction unit 707a, an acceleration axis tilt sensitivity correction unit 707b, in addition to the configuration of the shake correction microcomputer 7 according to the first embodiment illustrated in FIG.
- An acceleration gravity correction unit 707c, a stationary state detection unit 708a, a posture state determination unit 708b, and a temporary memory 74 are added.
- the acceleration acquisition unit 702 further outputs the Z acceleration in the acceleration information read from the acceleration sensor and divided in the X axis, Y axis, and Z axis directions to the HPF 701f.
- the HPF 701f is included in the CPU 70, removes a low-frequency component from the Z acceleration input from the acceleration acquisition unit 702, and outputs the processing result to the acceleration axis tilt sensitivity correction unit 707b.
- the angular velocity axis inclination sensitivity correction unit 707a is an axis correction unit and is included in the CPU 70.
- the angular velocity axis inclination sensitivity correction unit 707a receives inputs from the HPFs 701a to 701c and the communication unit 705, and converts the processing results into an angle shake correction unit 703, a translational shake correction unit 704, and an acceleration gravity correction. To the unit 707c and the stationary state detection unit 708a.
- the acceleration axis inclination sensitivity correction unit 707b is an axis correction unit and is included in the CPU 70.
- the acceleration axis inclination sensitivity correction unit 707b receives inputs from the HPFs 701d to 701f and the communication unit 705, and outputs the processing result to the acceleration gravity correction unit 707c.
- the acceleration gravity correction unit 707c is included in the CPU 70, receives inputs from the angular velocity axis inclination sensitivity correction unit 707a and the acceleration axis inclination sensitivity correction unit 707b, and outputs the processing result to the translational shake correction unit 704.
- the stationary state detection unit 708a receives an input from the angular velocity axis inclination sensitivity correction unit 707a and outputs the processing result to the posture state determination unit 708b.
- the posture state determination unit 708b is an acceleration sensitivity correction information calculation unit that receives inputs from the acceleration acquisition unit 702, the stationary state detection unit 708a, the temporary memory 74, and the communication unit 705, and outputs the processing results to the temporary memory 74 or the communication unit 705. Output to.
- the temporary memory 74 is a volatile storage unit that is connected to the posture state determination unit 708b and temporarily stores information.
- correction information R for correcting the axis inclination and sensitivity of each sensor is stored in the internal flash memory 13 as a storage unit.
- the correction information is, for example, a 3 ⁇ 3 matrix coefficient as shown in Equation 10 below.
- the correction information R includes information about the inclination of each sensor axis with respect to a predetermined standard direction (detection unit inclination information) and information about the sensitivity of each sensor (sensitivity correction information). It is stored in the internal flash memory 13 as correction information for each of the acceleration sensors 9.
- the correction information R stored in the internal flash memory 13 is transmitted from the system controller 6 to the blur correction microcomputer via the SIO 72b when the camera is activated.
- the angular velocity axis inclination sensitivity correction unit 707 a Based on the correction information R for the angular velocity sensor 8 received via the communication unit 705, the angular velocity axis inclination sensitivity correction unit 707 a performs the axis inclination and sensitivity on the angular velocity information S input from the angular velocity sensor 8. And the corrected angular velocity information O is obtained.
- the acceleration axis inclination sensitivity correction unit 707b performs the axis inclination with respect to the acceleration information S input from the acceleration sensor 9 based on the correction information R for the acceleration sensor 9 received via the communication unit 705. And the sensitivity are corrected, and the corrected acceleration information O is obtained.
- the calculation for obtaining the corrected information O from the information S before correction using the correction information R is performed as shown in the following Expression 11, for example.
- FIG. 16 is a block diagram showing a configuration of the acceleration gravity correction unit 707c
- FIG. 17 is a diagram showing a component relationship between acceleration and gravity.
- the acceleration gravity correction unit 707 c includes an integration unit 771, an absolute posture calculation unit 772, an offset component acquisition unit 773, a gravitational acceleration calculation unit 774, a first addition unit 775, , An adder 776 and a third adder 777.
- the triaxial acceleration from the acceleration axis inclination sensitivity correction unit 707 b is input to the absolute posture calculation unit 772 and the third addition unit 777.
- the triaxial angular velocity from the angular velocity axis inclination sensitivity correcting unit 707a described above is input to the integrating unit 771.
- the first addition unit 775 inputs the output of the absolute posture calculation unit 772 and inverts and adds the output of the integration unit 771.
- the offset component acquisition unit 773 acquires the offset component from the output of the first addition unit 775.
- the second addition unit 776 inputs and adds the output of the offset component acquisition unit 773 and the output of the integration unit 771.
- the gravity acceleration calculation unit 774 calculates the gravity acceleration from the output of the second addition unit 776.
- the third addition unit 777 receives the triaxial acceleration from the acceleration axis tilt sensitivity correction unit 707b, adds the output of the gravity acceleration calculation unit 774 in an inverted manner, and outputs the result as an acceleration after gravity correction.
- acceleration gravity correction unit 707c The processing of the acceleration gravity correction unit 707c will be described in further detail.
- the acceleration gravity correction unit 707c corrects the gravity component included in the detected acceleration using the angular velocity information.
- the angular velocity information accumulating unit 771 calculates the relative attitude information Ar of the camera 1 from the integration start time by accumulating the detected angular velocity Sg, that is, integrating with respect to time as shown in Expression 12.
- the absolute posture calculation unit 772 calculates the absolute posture information Aa ′ of the camera 1 as shown in the following Expression 13. However, since the acceleration information Sa of the calculation source includes an acceleration component due to translational shake, the calculated absolute posture information Aa ′ includes the influence of translational shake.
- Equation 13 is obtained based on the component relationship between acceleration information Sa and gravity g as shown in FIG. In Equation 13, a unit is used such that gravity g is 1.
- the first adder 775 subtracts the relative attitude information Ar calculated by the accumulator 771 from the absolute attitude information Aa ′ calculated by the absolute attitude calculator 772, and obtains the subtraction result (Aa′ ⁇ Ar). Output.
- the offset component acquisition unit 773 takes an initial value of the absolute posture information Aa ′ calculated by the absolute posture calculation unit 772 by taking, for example, a moving average of the output of the first addition unit 775 as shown in the following Expression 14. That is, the posture offset Ao is calculated.
- the second adding unit 776 adds the posture offset Ao calculated by the offset component acquiring unit 773 to the relative posture information Ar calculated by the accumulating unit 771, thereby obtaining the influence of translational blur as shown in Equation 15. Absolute posture information Aa that does not contain is acquired.
- the third addition unit 777 subtracts the acceleration correction information gc from the acceleration information Sa to obtain an accurate translational acceleration that does not include the gravitational acceleration component, and outputs it to the translational shake correction unit 704.
- the acceleration gravity correction unit 707c performs such calculation for the X acceleration and the Y acceleration used in the translation blur correction unit 704, respectively.
- FIG. 18 is a flowchart showing the temporal change correction process in the camera 1.
- the correction information R is corrected using the fact that the acceleration applied to the acceleration sensor 9 is only gravity when the camera 1 is stationary.
- the triaxial acceleration (Sx, Sy, Sz) (see Equation 11) output from the acceleration sensor 9 to which the same acceleration is applied changes to (kx ⁇ Sx, ky ⁇ Sy, kz ⁇ Sz) over time. If so, since there are three unknown parameters to be obtained (kx, ky, kz), if the output of the acceleration sensor 9 when the camera 1 is taking three or more independent stationary postures is used. The sensitivity of the acceleration sensor 9 can be accurately estimated.
- the camera shake correction microcomputer 7 turns on the camera shake correction system, receives the outputs of the angular velocity sensor 8 and the acceleration sensor 9, calculates the camera shake amount, and enters a state in which camera shake correction by the drive unit 5 is executed. (Step S41).
- the posture state determination unit 708b acquires acceleration information from the acceleration sensor 9 via the acceleration acquisition unit 702 (step S42).
- the stationary state detection unit 708a determines whether or not the camera 1 is in a stationary state using the information on the triaxial angular velocity output from the angular velocity axis tilt sensitivity correction unit 707a, and the posture state determination unit 708b. Sending to. Therefore, the posture state determination unit 708b determines whether or not the camera 1 is in a stationary state based on the output from the stationary state detection unit 708a (step S43).
- the posture state determination unit 708b determines that the camera 1 is in a stationary state
- the posture state determination unit 708b further determines the posture of the camera 1 based on the acceleration information acquired in step S42, and the temporary state in the temporary memory 74 corresponding to the determined posture.
- the acceleration information is stored in the recording space (step S44).
- the temporary memory 74 is configured to record acceleration information (an output value of the acceleration sensor 9) in a recording space that is different for each posture.
- step S44 When the process of step S44 ends, or when it is determined in step S43 that the camera 1 is not in a stationary state, the blur correction microcomputer 7 inputs a power-off command to turn off the camera 1 from the power switch. It is determined whether or not it has been done (step S45).
- step S42 if it is determined that the power-off command has not been input, the process returns to step S42 and the above-described processing is repeated.
- step S45 If it is determined in step S45 that a power-off command has been input, the contents of the temporary memory 74 cannot be retained when the camera 1 is powered off, so that the posture state determination unit 708b stores the temporary memory 74 in the temporary memory 74.
- the acceleration information corresponding to the posture is transmitted to the system controller 6 side via the communication unit 705 and the SIO 72b (step S46).
- step S47 the blur correction microcomputer 7 is powered off (step S47), and the process ends.
- the system controller 6 periodically determines whether or not a power-off command is input from the power switch (step S31).
- step S32 If it is determined that a power-off command has been input, the acceleration information transferred from the shake correction microcomputer 7 is received (step S32).
- the system controller 6 stores the acceleration information corresponding to the received posture in a recording space corresponding to the posture in the internal flash memory 13 (step S33).
- the system controller 6 determines whether or not the acceleration information stored in the internal flash memory 13 has reached a sufficient amount for correcting the sensitivity of the acceleration sensor 9 (step S34). This determination is made based on whether or not the acceleration information is acquired in three or more independent stationary postures as described above. In order to further improve the statistical accuracy, three or more independent stationary information is used. The determination may be made based on whether or not a predetermined number of acceleration information greater than 3 is stored in the internal flash memory 13 in the posture.
- the system controller 6 uses the least square method, for example, to correct the parameters (kx, ky, kz) is calculated (step S35).
- the system controller 6 determines whether or not the calculated correction parameters (kx, ky, kz) are valid (step S36). This determination is performed based on, for example, whether the value of each correction parameter is within a predetermined range. Specifically, it is determined that each correction parameter is valid if all of the following Equations 17 to 19 are satisfied, and it is determined that it is not appropriate if all the correction parameters are not satisfied.
- Thmin represents the lower limit value of the valid range
- step S36 If it is determined in this step S36 that the correction parameters are valid, the system controller 6 uses the calculated parameters (kx, ky, kz) to correct the correction information R used by the acceleration axis inclination sensitivity correction unit 707b. Is corrected (step S37). Specifically, Rxx, Ryx, Rzx are divided by kx for each coefficient shown in Equation 10, Rxy, Ryy, Rzy are divided by ky, and Rxz, Ryz, Rzz are divided by kz. Perform the process.
- the system controller 6 overwrites and saves the correction information R after correction over the correction information R before correction in the internal flash memory 13 (step S38).
- step S38 When the process of step S38 ends, or when it is determined in step S34 that the acceleration information has not reached a sufficient amount, or when it is determined in step S36 that the correction parameter is not valid, the system controller 6 powers off the entire camera 1 (step S39) and ends.
- the acceleration axis inclination sensitivity correction unit 707b corrects the inclination and sensitivity of the acceleration axis using the corrected correction information R. .
- the sensitivity correction of the acceleration sensor 9 is performed when the power source of the camera 1 is turned off.
- the present invention is not limited to this.
- the sensitivity correction may be performed when the power source of the camera 1 is turned on. It can be done at other times.
- the acceleration information is stored in the temporary memory 74 and transmitted to the system controller 6 when the camera 1 is turned off and stored in the internal flash memory 13.
- the acceleration information is stored in the internal flash memory 13 from the beginning. You may do it.
- the effects similar to those of the first embodiment described above are obtained, and the axis correction of the angular velocity sensor 8 and the acceleration sensor 9 is performed, so that more accurate blur correction is performed. Is possible.
- the sensitivity correction is performed according to the change of the acceleration sensor 9 with time, even if the sensitivity of the acceleration sensor 9 changes as the usage time becomes longer, accurate blur correction performance can be maintained. .
- the yaw radius and pitch radius are calculated at the timing when the roll angular acceleration (or roll angular velocity) crosses zero, and the XZ roll radius is calculated at the timing when the yaw angular velocity (or yaw angular velocity) crosses zero.
- the YZ roll radius was calculated at the timing when the pitch angular acceleration (or pitch angular velocity) crosses zero.
- Embodiments 3 to 7 described below are generalized embodiments so that each radius can be calculated at an arbitrary timing.
- FIG. 19 to 25 show a third embodiment of the present invention.
- the same parts as those in the first and second embodiments are denoted by the same reference numerals and the description thereof is omitted as appropriate, and only different points will be mainly described.
- the configurations of the imaging apparatus and the blur correction microcomputer in the present embodiment are the same as the configurations shown in FIGS. 3 and 4 of the first embodiment.
- FIG. 19 is a block diagram showing the configuration of the X-direction translation blur correction unit 704x.
- the Y-direction translation blur correction unit 704y has the same configuration as the X-direction translation blur correction unit 704x, and the input is merely a pitch angular velocity instead of a yaw angular velocity and a Y acceleration instead of an X acceleration. Accordingly, only the X-direction translation blur correction unit 704x will be described here with reference to FIG.
- the X-direction translation blur correction unit 704x includes averaging units 761a to 761c, angular acceleration calculation units 763a and 763b, storage units 753a, 753b and 753c, radius calculation units 764a and 764b, a blur amount calculation unit 785, A multiplication unit 768.
- the averaging units 761a to 761c average the angular velocity and acceleration input in time series. This averaging is performed, for example, by calculating an average value of four sampling data and outputting it as one sampling value. This averaging has the effect of suppressing high frequency components from being emphasized by the differential calculation in the subsequent angular acceleration calculation units 763a and 763b, and also reduces the amount of calculation because the data amount is reduced to 1 ⁇ 4. There is also.
- the angular acceleration calculation units 763a and 763b calculate the angular acceleration by differentiating the averaged angular velocity.
- the storage units 753a and 753b store the angular accelerations calculated by the angular acceleration calculation units 763a and 763b up to past data necessary for radius calculation in the radius calculation units 764a and 764b.
- the storage unit 753c stores the acceleration averaged by the averaging unit 761c up to the past data necessary for radius calculation in the radius calculation units 764a and 764b.
- FIG. 20 is a diagram for explaining an example of the time for calculating the radius.
- the radius calculation units 764a and 764b are, for example, a rotation radius calculation unit that calculates a rotation radius R based on acceleration and angular acceleration (however, as described later, the rotation radius R may be calculated based on speed and angular velocity). I do not care).
- Equation 21 The measurable amounts in Equation 20 are the yaw angular acceleration ⁇ _yaw, the roll angular acceleration ⁇ _roll, and the X acceleration ⁇ v_x, and the desired amounts are the yaw radius Ryaw and the XZ roll radius Rrollx.
- the measurable amounts in Equation 21 are the pitch angular acceleration ⁇ _pitch, the roll angular acceleration ⁇ _roll, and the Y acceleration ⁇ y_x, and the desired amounts are the pitch radius Rpitch and the YZ roll radius Rrolly.
- Equation 20 and the second time T2 at the first time T1 (note that the time before and after the first time T1 and the second time T2 does not matter, for example, the first time T1 is temporally First, it is assumed that the second time T2 is later in time) and the following equation 22, and similarly, the equation 21 and the second time at the first time T1. Equation 21 in T2 is made simultaneous as shown in Equation 23 below.
- Equation 22 [Equation 23]
- Equation 24 The solution of the simultaneous equations of Equation 22 is as shown in Equation 24 below, and the solution of the simultaneous equations of Equation 23 is as shown in Equation 25 below.
- the radius calculation unit 764a stores the yaw angular acceleration ⁇ _yaw (T1) at the first time T1 and the yaw angular acceleration ⁇ _yaw (T2) at the second time T2 stored in the storage unit 753a and the storage unit 753b.
- the roll angular acceleration ⁇ _roll (T1) at the first time T1 and the roll angular acceleration ⁇ _roll (T2) at the second time T2 and the X acceleration ⁇ v_x (first time T1 stored in the storage unit 753c).
- the yaw radius Ryaw is calculated based on the first formula in Formula 24 using T1) and the X acceleration ⁇ v_x (T2) at the second time T2.
- the radius calculation unit 764b calculates the XZ roll radius Rrollx based on the second formula in Formula 24 using the same data as the data used by the radius calculation unit 764a.
- the radius calculation unit 764a of the Y-direction translational blur correction unit 704y stores the pitch angular acceleration ⁇ _pitch (T1) at the first time T1 and the pitch angular acceleration ⁇ _pitch (at the second time T2) stored in the storage unit 753a. T2), the roll angular acceleration ⁇ _roll (T1) at the first time T1 stored in the storage unit 753b, the roll angular acceleration ⁇ _roll (T2) at the second time T2, and the first stored in the storage unit 753c.
- the pitch radius Rpitch is calculated based on the first formula in Formula 25 using the Y acceleration ⁇ v_y (T1) at time T1 of 1 and the Y acceleration ⁇ v_y (T2) at second time T2.
- the radius calculation unit 764b of the Y direction translation blur correction unit 704y uses the same data as the data used by the radius calculation unit 764a of the Y direction translation blur correction unit 704y based on the second formula in Formula 25.
- the radius Rrolly is calculated.
- the angular acceleration at each time used by the radius calculators 764a and 764b is an amount obtained using at least the angular velocity at the same time.
- Equation 1 and Equation 3 at time T1 are obtained.
- Formula 2 at the time T1 is obtained.
- Formula 4 at time T1 is obtained. This is the same even when T2 is selected as the time when each angular velocity becomes zero. Therefore, it turns out that this embodiment is generalization of Embodiment 1 mentioned above.
- the first time is not affected by the rotational motion around the first axis
- the second time is not affected by the rotational motion around the second axis.
- the turning radius calculation unit calculates the second radius based on the second angular velocity and the third acceleration at the first time, and the first radius based on the first angular velocity and the third acceleration at the second time. Three projection radii are calculated.
- the averaged X acceleration ⁇ v_x and averaged Y acceleration ⁇ v_y are used when calculating the yaw radius Ryaw, pitch radius Rpitch, XZ roll radius Rrollx, and YZ roll radius Rrolly. Since normalization is not an essential requirement but a preferable requirement, unaveraged X acceleration and unaveraged Y acceleration may be used.
- the shake amount calculation unit 785 includes speed calculation units 765a and 765b, an addition unit 766, and an integration unit 767.
- the blur calculation unit 785 converts the radius calculated by the radius calculation units 764a and 764b and the angular velocity input from the HPFs 701a to 701c. Based on this, the movement amount in the X-axis direction is calculated when the X-direction translation blur correction unit 704x is provided, and the movement amount in the Y-axis direction is calculated when the Y-direction translation blur correction unit 704y is provided. To do.
- the speed calculators 765a and 765b calculate translational speeds based on the radii calculated by the radius calculators 764a and 764b and the angular velocities input from the HPFs 701a to 701c.
- the velocity calculation unit 765a of the X-direction translational blur correction unit 704x multiplies the yaw radius Ryaw input from the radius calculation unit 764a and the yaw angular velocity ⁇ yaw input from the HPF 701a, thereby causing the yaw rotation motion.
- X-direction translation speed (first component of X-direction speed in the X-axis direction) Ryaw ⁇ ⁇ yaw is calculated.
- the speed calculation unit 765b of the X-direction translation blur correction unit 704x multiplies the XZ roll radius Rrollx input from the radius calculation unit 764b by the roll angular velocity ⁇ roll input from the HPF 701c, thereby causing the roll rotation motion.
- X-direction translation speed (second component of the X-direction speed in the X-axis direction) Rrollx ⁇ ⁇ roll is calculated.
- the adding unit 766 of the X-direction translational shake correcting unit 704x is a speed synthesizing unit, and adds both the output of the speed calculating unit 765a and the output of the speed calculating unit 765b, whereby both the yaw rotation motion and the roll rotation motion are added.
- the X-direction translation speed (X-direction speed) Vx resulting from is calculated as shown in Equation 5 (described again below).
- Vx Ryaw ⁇ ⁇ yaw + Rrollx ⁇ ⁇ roll
- the velocity calculation units 765a and 765b of the Y-direction translational shake correction unit 704y respectively calculate the first component Rpitch ⁇ ⁇ pitch of the Y-direction velocity and the second component Rrolly ⁇ ⁇ roll of the Y-direction velocity and correct the Y-direction translational blur correction.
- the addition unit 766 which is a speed synthesis unit of the unit 704y, adds these so that the Y-direction translation speed (Y-direction speed) Vy caused by both the pitch rotation motion and the roll rotation motion is expressed by Equation 6 (below). As described in the above).
- Vy Rpitch ⁇ ⁇ pitch + Rrolly ⁇ ⁇ roll
- the integration unit 767 of the X-direction translation blur correction unit 704x functions as a movement amount calculation unit, integrates the calculated X-direction velocity Vx with respect to the time t as shown in Equation 7 (described again below), A movement amount ⁇ X in the X-axis direction is calculated.
- Equation 7 the integration unit 767 of the Y-direction translation blur correction unit 704y functions as a movement amount calculation unit, and integrates the calculated Y-direction speed Vy with respect to time t as shown in the above-described Equation 8 (described again below). Then, the movement amount ⁇ Y in the Y-axis direction is calculated.
- the movement amounts ⁇ X and ⁇ Y calculated in this way are the movement amounts of the angular velocity sensor 8 and the acceleration sensor 9, that is, the movement amount of the camera 1 itself.
- the multiplication unit 768 converts the image magnification f (see step S58 in FIG. 24), which is a parameter input from the system controller 6 via the SIO 72b and the communication unit 705, to the movement amounts ⁇ X, ⁇ Y input from the integration unit 767. Is converted into a shake amount on the imaging surface and output as a correction amount D (see step S58 in FIG. 24).
- the correction amount D (translational shake amount) calculated in this way is added to the angle shake amount in the adding unit 706 as described above. Therefore, the driver 73 outputs a signal for driving the drive unit 5 based on the total shake amount after the addition.
- FIG. 21 is a diagram for explaining an example when the angular acceleration and the cycle of acceleration are longer than the time interval for calculating the radius.
- FIG. 22 is a diagram showing an example of values obtained by calculating the yaw radius Ryaw in the example of angular acceleration and acceleration shown in FIG.
- the solid line Calc indicating the yaw radius Ryaw obtained by calculation with respect to the dotted line Real indicating the actual yaw radius Ryaw is increased in the vicinity of the coordinates where the absolute value of the denominator of the calculation formula becomes small. Yes.
- FIG. 23 is a diagram showing an example of values obtained by calculating the roll radius Rroll (XZ roll radius Rrollx or YZ roll radius Rrolly) in the example of the angular acceleration and acceleration shown in FIG. Similarly, the solid line Calc indicating the roll radius Rroll obtained by calculation with respect to the dotted line Real indicating the actual roll radius Rroll has an increased error in the vicinity of the coordinates where the absolute value of the denominator of the calculation formula becomes small.
- processing for dealing with such a case where the reliability of the calculated radius is low is performed, which will be described later with reference to FIG.
- FIG. 24 is a flowchart showing the main control for detecting the translational blur amount.
- the main process shown in FIG. 24 is a process that is periodically executed at a time interval of, for example, 1 ms.
- step S51 the angular velocity averaged by the averaging units 761a and 761b is calculated (step S51), and the acceleration averaged by the averaging unit 761c is calculated (step S52). .
- the averaged acceleration calculated in step S52 is stored in the storage unit 753c.
- the angular acceleration is calculated by differentiating the angular velocity calculated in step S51 with respect to time by the angular acceleration calculators 763a and 763b (step S53).
- the angular acceleration calculated here is stored in the storage units 753a and 753b.
- the radius calculation units 764a and 764b calculate the turning radii by performing calculations as shown in Equations 24 and 25. (Step S54).
- the radius calculation units 764a and 764b further perform reliability determination as to whether or not the rotation radius calculated in step S54 can be used for speed calculation (step S55).
- the translation speed component is calculated by multiplying the rotation radius and the angular velocity, if the absolute value of the rotation radius is large, the absolute value of the calculated translation speed component is also large, that is, the correction amount is also large. Therefore, if an error is included in the turning radius, the correction amount due to the error also increases, which may lead to erroneous correction.
- the rotation radius calculated in step S54 is compared with a predetermined threshold value. If the rotation radius is larger than the predetermined threshold value, it is determined that there is no reliability and is not used for speed calculation. (As a specific process, the rotation radius output from the radius calculation units 764a and 764b is set to 0: that is, the rotation radius is cleared to 0).
- step S55 The method for determining reliability in step S55 is not limited to the above, and various other methods can be employed.
- the absolute value of the denominator in Equation 24 or Equation 25 is less than the predetermined value, and the absolute value of the numerator is predetermined.
- the radius calculation units 764a and 764b may determine that the rotation radius calculated by the mathematical formula is not reliable, and output the rotation radius 0 without using the calculation result.
- the first case where the turning radius is cleared to 0 is when a stationary state is detected. Since there is no blur in the stationary state, it is possible to prevent erroneous correction by clearing the rotation radius to zero.
- the output of the angular velocity sensor 8 and the output of the acceleration sensor 9 are substantially zero for a predetermined time or more except for components considered to be noise or the like. It is done.
- Another example of the state detected as being stationary is that a tripod connection is detected by a tripod detector or the like. Regarding the detection method of the tripod connection, since various known methods can be used, no specific example will be described.
- the second case where the turning radius is cleared to 0 is when a pan operation is detected.
- the pan operation is not included in camera shake, and is moved in a relatively large angle range, so that the correction range by the drive unit 5 is often exceeded.
- HPF particularly HPF 701a and HPF related to the acceleration in the X-axis direction
- the influence of HPF remains behind, so that a normal correction amount is calculated for a period of time immediately after the pan operation is performed. become unable. Accordingly, by clearing the rotation radius calculated from the yaw rotation motion related to the pan operation, that is, the yaw radius Ryaw calculated by Expression 20, zero correction due to the influence of the HPF 701 after the pan operation can be prevented.
- the pan operation is detected by detecting that the detection values of the angular velocity sensor 8 and the acceleration sensor 9, that is, the outputs (detection values) from the HPFs 701a to 701e (particularly the HPF 701a and HPF 701d) do not change over a predetermined time, or This can be determined by detecting that the sign of the detected value does not change over a predetermined time.
- the rotation radius may be cleared to 0 as appropriate.
- the camera 1 includes a detection period in which the angular velocity and acceleration are detected to calculate the rotation radius but no blur correction is performed, and a correction period in which both the calculation of the rotation radius and the blur correction using the calculated rotation radius are performed.
- the blur correction microcomputer 7 determines whether or not the control period is the correction period by referring to the state flag (step S56).
- the speed calculation units 765a and 765b and the addition unit 766 determine the radius R determined to be reliable in step S55 and the angular velocity output from the angular velocity sensor 8.
- the translation speed V is calculated by multiplying and adding ⁇ as shown in Equation 5 and Equation 6 (step S57).
- the integration unit 767 integrates the translation speed V with time, and the multiplication unit 768 multiplies the integration result by the image magnification f, thereby calculating a translational movement amount generated on the imaging surface (step S58).
- step S58 ends or if it is determined in step S56 described above that it is not a correction period (that is, a detection period), this main process ends.
- FIG. 25 is a flowchart showing details of the processing for calculating the radius of rotation in step S54 of FIG. This turning radius calculation process is performed for each of the yaw radius Ryaw, the pitch radius Rpitch, the XZ roll radius Rrollx, and the YZ roll radius Rrolly.
- This turning radius calculation process is a process corresponding to the case where the reliability of the calculated radius is low as described above with reference to FIGS.
- the first time T1 and the second time T2 are set to the first time interval.
- i is an index indicating a different time t when the values are different, and is an integer, for example.
- the radius calculators 764a and 764b use the data in which the first time T1 and the second time T2 are the second time interval, and use the denominators in the equations 24 and 25 (this embodiment).
- the second time interval is four times the first time interval.
- the second time interval is not limited to this, and the first time interval and the second time interval may be an appropriate ratio. .
- the radius calculation units 764a and 764b determine whether or not the absolute value of the first denominator is greater than or equal to the absolute value of the second denominator (step S63).
- This determination method is a method in which the greater the absolute value of the denominator in the equations 24 and 25, the higher the reliability of the calculated radius of rotation.
- the radius calculation units 764a and 764b calculate the rotation radius at the first time interval (step S64).
- the radius calculation units 764a and 764b calculate the rotation radius at the second time interval (step S65).
- step S64 or step S65 the processing returns to the main processing shown in FIG. 24 from this turning radius calculation processing.
- the reliability of two types of denominators is determined.
- the reliability of a larger number of types of denominators may be determined based on data of other time intervals. In this case, for example, it may be determined that the reliability of the rotation radius calculated based on the data providing the denominator having the largest absolute value is the highest.
- the lateral movement speed is calculated by combining the lateral movement speed detected from the angular velocity in the yaw direction and the lateral movement speed detected from the angular velocity in the roll direction by the speed synthesis unit.
- the angular velocity in the yaw direction The moving speed can be detected more accurately than the moving speed calculated based only on the angular velocity in the pitch direction.
- the rotation radius can be calculated by the addition / subtraction / division / division calculation as shown in Expression 24 and Expression 25, the radius can be calculated relatively easily without imposing a large calculation load.
- the angular velocity and acceleration detected by the angular velocity sensor and the acceleration sensor are averaged with sampling data for a predetermined number of times, it is possible to suppress the influence of high-frequency components emphasized in the subsequent differentiation process. Since the data for a plurality of samples can be handled as one sample data by averaging, the amount of data to be processed can be compressed and the calculation load can be reduced.
- the angular velocity is differentiated to calculate the angular acceleration, and the radius is calculated based on the calculated angular acceleration and the detected acceleration, that is, when the integral calculation is performed in order to eliminate the integral calculation in the radius calculation.
- the correction amount generated in the camera 1 which is the imaging device is not only due to the rotational movement of the yaw and pitch, but also the influence of the rotational movement of the roll is taken into account, the correction amount can be reduced with a simple configuration. It is possible to calculate with higher accuracy than in the past. Then, by driving the image sensor so as to cancel the blur amount due to the detected movement amount, an image from which the translational blur amount is removed can be taken by the camera 1.
- a blur amount detecting device capable of detecting the translation blur amount more accurately by a relatively simple process.
- the angular velocity is differentiated to calculate the angular acceleration, and the radius is calculated based on the calculated angular acceleration and the detected acceleration.
- the acceleration is integrated and the velocity is calculated.
- the radius is calculated based on the calculated velocity and angular velocity.
- the turning radius is not limited to being calculated based on the angular acceleration and the acceleration, but can be calculated based on the angular velocity and the speed.
- the angular acceleration calculation units 763a and 763b are deleted in the configuration shown in FIG. 19 (in FIG. 28 described later, between the averaging unit 761a and the storage unit 753d, and between the averaging unit 761b and the storage unit 753e. And an integration unit is added between the averaging unit 761c and the storage unit 753c (provided before the averaging unit 761d in FIG. 28 described later).
- the integration unit 769 calculates the velocity by integrating the acceleration).
- the integrating unit integrates the averaged acceleration output from the averaging unit 761c in FIG. 19 to calculate the speed.
- the integration unit of the X direction translation blur correction unit 704x calculates the X velocity vx
- the integration unit of the Y direction translation blur correction unit 704y calculates the Y velocity vy.
- the yaw angular velocity ⁇ yaw, the roll angular velocity ⁇ roll, and the X velocity vx are input to the radius calculation units 764a and 764b of the X direction translational shake correction unit 704x, and the Y direction translational shake correction unit.
- the pitch angular velocity ⁇ pitch, roll angular velocity ⁇ roll, and Y velocity vy are input to the radius calculation units 764a and 764b of 704y.
- the measurable amounts in Equation 5 are the yaw angular velocity ⁇ yaw, the roll angular velocity ⁇ roll, and the X velocity vx, and the desired amounts are the yaw radius Ryaw and the XZ roll radius Rrollx.
- the measurable amounts in Equation 6 are the pitch angular velocity ⁇ pitch, the roll angular velocity ⁇ roll, and the Y velocity vy, and the desired amounts are the pitch radius Rpitch and the YZ roll radius Rrolly.
- Equation 6 at the first time T1 and Equation 6 at the second time T2 are made simultaneous as shown in Equation 27 below.
- Equation 26 [Equation 27]
- Equation 26 and Equation 27 it is assumed that the radius at the first time T1 and the radius at the second time T2 are small and can be ignored.
- Equation 28 The solution of the simultaneous equations of Equation 26 is expressed by the following Equation 28, and the solution of simultaneous equations of Equation 27 is expressed by the following Equation 29.
- the radius calculation unit 764a of the X-direction translational shake correction unit 704x includes the yaw angular velocity ⁇ yaw (T1) at the first time T1 and the yaw angular velocity ⁇ yaw (T2) at the second time T2 stored in the storage unit 753a.
- the yaw radius Ryaw is calculated based on the first equation in Equation 28 using the X velocity vx (T1) and the X velocity vx (T2) at the second time T2.
- the radius calculation unit 764b of the X-direction translation blur correction unit 704x uses the same data as the data used by the radius calculation unit 764a of the X-direction translation blur correction unit 704x, and based on the second formula in Formula 28, the XZ roll Calculate the radius Rrollx.
- the radius calculation unit 764a of the Y direction translational shake correction unit 704y stores the pitch angular velocity ⁇ pitch (T1) at the first time T1 and the pitch angular velocity ⁇ pitch (T2) at the second time T2 stored in the storage unit 753a.
- the pitch radius Rpitch is calculated based on the first equation in Equation 29 using the Y velocity vy (T1) at Y and the Y velocity vy (T2) at the second time T2.
- the radius calculation unit 764b of the Y direction translational shake correction unit 704y uses the same data as the data used by the radius calculation unit 764a of the Y direction translational shake correction unit 704y based on the second formula in Formula 29.
- the radius Rrolly is calculated.
- the speed at each time used by the radius calculation units 764a and 764b is an amount obtained using at least the acceleration at the same time.
- each radius can be calculated in the same manner as in the third embodiment described above, but in this modification, it is necessary to calculate the velocity by integrating the acceleration detected by the acceleration sensor 9. Since this integration calculation may reduce the accuracy of the radius calculated by emphasizing the influence of noise such as drift of the acceleration sensor 9, a stricter standard is used when the configuration of this modification is adopted. It is desirable to provide reliability judgment.
- FIGS. 26 and 27 show the fourth embodiment of the present invention.
- FIG. 26 is a block diagram showing the configuration of the blur correction microcomputer.
- FIG. 27 shows the details of the processing for calculating the radius of rotation in step S54 of FIG. It is a flowchart to show.
- the same parts as those in the first to third embodiments are denoted by the same reference numerals and the description thereof is omitted as appropriate, and only different points will be mainly described.
- the shake correction microcomputer 7 in the present embodiment is obtained by adding a frequency detection unit 709 to the configuration of the shake correction microcomputer 7 of the first embodiment shown in FIG.
- the frequency detection unit 709 detects at least one of the roll angular velocity, the yaw angular velocity, and the pitch angular velocity detected by the angular velocity sensor 8. However, in the present embodiment, the frequency detection unit 709 detects the roll angular velocity, the yaw angular velocity, and the pitch angular velocity.
- the frequency detected by the frequency detection unit 709 is output to the radius calculation units 764a and 764b of the X direction translation blur correction unit 704x and the radius calculation units 764a and 764b of the Y direction translation blur correction unit 704y.
- the radius calculation units 764a and 764b of the X-direction translation blur correction unit 704x and the Y-direction translation blur correction unit 704y are replaced with the rotation radius calculation process shown in FIG. A turning radius calculation process as shown is performed.
- the radius calculation units 764a and 764b input the frequency from the frequency detection unit 709 (step S71).
- the input frequency is a representative one of the frequencies of the roll angular velocity, the yaw angular velocity, and the pitch angular velocity that is considered to reflect the blurring state of the camera 1 most appropriately.
- the lowest frequency that is, the frequency corresponding to the angular velocity with the longest wavelength
- all of the roll angular velocity, the yaw angular velocity, and the pitch angular velocity may be input to calculate an average value, and the average value may be used for subsequent processing.
- the input frequency may be varied depending on which radius calculation unit 764a, 764b is used.
- the frequency input by the radius calculation unit 764a of the X direction translation blur correction unit 704x is the frequency of the yaw angular velocity ⁇ yaw
- the frequency input by the radius calculation unit 764b of the X direction translation blur correction unit 704x is the frequency of the roll angular velocity ⁇ roll
- the Y direction The frequency input by the radius calculation unit 764a of the translation blur correction unit 704y may be the frequency of the pitch angular velocity ⁇ pitch
- the frequency input by the radius calculation unit 764b of the Y direction translation blur correction unit 704y may be the frequency of the roll angular velocity ⁇ roll, and so on. .
- the radius calculation units 764a and 764b increase the rotation radius calculation time interval, that is, the time interval between the first time T1 and the second time T2, as the frequency detected by the frequency detection unit 709 decreases.
- the time interval (T2-T1) is set to be inversely proportional to the detected frequency.
- the angular velocity sensor 8 performs detection at predetermined time intervals, and the data output from the averaging units 761a, 761b, and 761c has a certain time interval. Therefore, the time interval (T2-T1) that is actually set is, for example, any one of (t2-t1), (t3-t1), (t4-t1),... (See FIGS. 20 and 21). Will be set.
- the radius calculation units 764a and 764b calculate the respective radii so that the first time T1 and the second time T2 become the set time intervals (step S73), and then the rotation radius. From the calculation process, the process returns to the main process shown in FIG.
- the same effect as that of the third embodiment described above is obtained, and the period in which the angular velocity changes is detected, and the time interval for calculating the rotation radius is set based on the detected period. For this reason, it is possible to adaptively suppress error expansion when the absolute value of the denominator in the equations 24 and 25 is small.
- FIG. 28 to 30 show Embodiment 5 of the present invention
- FIG. 28 is a block diagram showing the configuration of the X-direction translational blur correction unit 704x
- FIG. 29 is a process for calculating a turning radius in step S54 of FIG.
- FIG. 30 is a flowchart showing details of a modified example of the turning radius calculation process in step S54 of FIG.
- a highly reliable rotational radius calculated based on a plurality of data at different time intervals is selected.
- the time interval for calculating the radius of rotation is varied according to the angular velocity change period.
- the rotation radius is calculated based on the angular acceleration and the acceleration, but also the rotation radius is calculated based on the angular velocity and the speed, and the rotation calculated by a different calculation method is used. The one with high reliability within the radius is selected.
- the blur correction microcomputer 7 of the present embodiment has the configuration shown in FIG. 26 of the above-described fourth embodiment, that is, a frequency detection unit 709.
- the X-direction translational blur correction unit 704x (and the Y-direction translational blur correction unit 704y (not shown)) of the present embodiment shown in FIG. 28 is the X-direction translational blur correction unit 704x of the third embodiment shown in FIG.
- an integration unit 769, an averaging unit 761d, and storage units 753d, 753e, and 753f are added to the configuration of the Y-direction translational shake correction unit 704y of the third embodiment.
- the storage unit 753d stores the averaged angular velocity output from the averaging unit 761a (the yaw angular velocity ⁇ yaw in the case of the X-direction translational shake correction unit 704x and the pitch angular velocity ⁇ pitch in the case of the Y-direction translational blur correction unit 704y). Then, the past data necessary for radius calculation in the radius calculation units 764a and 764b are stored.
- the storage unit 753e stores the averaged roll angular velocity ⁇ roll output from the averaging unit 761b up to past data necessary for radius calculation in the radius calculation units 764a and 764b.
- the averaged angular velocities calculated by the averaging units 761a and 761b in step S51 of FIG. 24 are stored in the storage units 753d and 753e, respectively.
- the integration unit 769 calculates the X velocity by integrating the X acceleration input from the HPF 701d in the case of the X direction translation blur correction unit 704x, and the Y input from the HPF 701e in the case of the Y direction translation blur correction unit 704y.
- the Y speed is calculated by integrating the acceleration.
- the averaging unit 761d averages the speeds input from the integrating unit 769 in time series. This averaging is performed, for example, by calculating an average value of data for four samples and outputting it as one sampling value, as described above.
- the storage unit 753f stores the speed (X speed Vx or Y speed Vy) averaged by the averaging unit 761d up to past data necessary for radius calculation in the radius calculation units 764a and 764b.
- the radius calculation units 764a and 764b perform both of the calculation of the rotation radius using Expression 24 and Expression 25 and the calculation of the rotation radius using Expression 28 and Expression 29.
- the integrating unit 769 integrates the acceleration to calculate the speed (step S81).
- step S82 the speed averaged by the averaging unit 761d is calculated.
- the averaged speed calculated in step S82 is stored in the storage unit 753f.
- the radius calculation units 764a and 764b are based on the angular accelerations and accelerations stored in the storage units 753a, 753b, and 753c, and the denominators in the equations 24 and 25 (in this embodiment, in the following, (Referred to as denominator) (step S83).
- the radius calculation units 764a and 764b are based on the angular velocities and velocities stored in the storage units 753d, 753e, and 753f, and the denominators in the equations 28 and 29 (in the present embodiment, the second The denominator is calculated (step S84).
- the absolute value of the first denominator calculated in step S83 is equal to or greater than the absolute value of the second denominator calculated in step S84 multiplied by the frequency detected by frequency detection unit 709. Is determined (step S85).
- this determination method basically, the larger one of the absolute values of the denominators of Equations 24 and 25 and the absolute values of the denominators of Equations 28 and 29 has a higher reliability of the calculated turning radius. It is a method to do. However, since the denominators of Equations 24 and 25 and the denominators of Equations 28 and 29 have different dimensions (dimensions), the second denominator is multiplied by a frequency to match the dimensions.
- the radius calculation units 764a and 764b calculate the turning radius based on the angular acceleration and the acceleration. (Step S86).
- the radius calculation units 764a and 764b calculate the rotation radius based on the angular velocity and the velocity (Ste S87).
- step S86 or step S87 the process returns from the turning radius calculation process to the main process shown in FIG.
- the turning radius calculation process shown in FIG. 29 determines the reliability of the turning radius calculated based on the angular acceleration and the acceleration and the turning radius calculated based on the angular velocity and the speed based on the denominator of the calculation formula.
- the rotation radius calculation process shown in FIG. 30 is performed based on the calculated rotation radius itself.
- the radius calculation units 764a and 764b perform the processes of step S81 and step S82 described above.
- the radius calculation units 764a and 764b are based on the angular accelerations and accelerations stored in the storage units 753a, 753b, and 753c, respectively, according to the equations 24 and 25 (in this embodiment, in the following, The first turning radius is calculated (step S91).
- the radius calculation units 764a and 764b are based on the angular velocities and velocities stored in the storage units 753d, 753e, and 753f according to the equations 28 and 29, respectively. (Referred to as 2 rotation radius) (step S92).
- the radius calculation units 764a and 764b determine whether or not the absolute value of the first rotation radius calculated in step S91 is equal to or less than the absolute value of the second rotation radius calculated in step S92 (step S93).
- This determination method is a method in which the smaller the absolute value of the rotation radius calculated by Expression 24 and Expression 25 and the rotation radius calculated by Expression 28 and Expression 29, the higher the reliability.
- the radius calculation units 764a and 764b set the first turning radius as the turning radius and output ( Step S94).
- the radius calculation units 764a and 764b set the second turning radius as the turning radius and output (step). S95).
- step S94 or step S95 the processing returns to the main processing shown in FIG. 24 from this turning radius calculation processing.
- the fifth embodiment it is determined that the same effects as those of the third and fourth embodiments described above are obtained, and that two of the rotation radii calculated based on data having different dimensions have high reliability. Therefore, an appropriate rotation radius can be calculated more reliably.
- the probability that the rotation radius calculated based on the angular acceleration and the acceleration and the rotation radius calculated based on the angular velocity and the speed are simultaneously unreliable is considerably low. There is an advantage that the certainty to be calculated is high.
- the absolute value of the denominator is small and the turning radius can be prevented from becoming extremely large.
- the reliability is determined based on the calculated turning radius itself, it can be reliably determined whether or not the calculated turning radius is within an appropriate range.
- the cause of blurring is, for example, shaking of the arm of the photographer holding the camera 1, the rotation radius is estimated to be within a certain range. It is effective.
- the technique for calculating two turning radii based on data of different dimensions in the fifth embodiment is the same as the technique for calculating data based on a plurality of different time intervals in the third embodiment, or the angular velocity change period in the fourth embodiment.
- it may be combined with a technique for varying the time interval for calculating the radius of rotation.
- FIG. 31 shows the sixth embodiment of the present invention and is a block diagram showing the configuration of the X-direction translational blur correction unit 704x.
- the Y-direction translation blur correction unit 704y has the same configuration as the X-direction blur correction unit 704x, and the input is a pitch angular velocity instead of the yaw angular velocity, and a Y acceleration instead of the X acceleration. It only becomes. Therefore, detailed description of the Y-direction translational blur correction unit 704y will be omitted as appropriate.
- the X-direction translational blur correction unit 704x (and the Y-direction translational blur correction unit 704y (not shown)) of the present embodiment shown in FIG. 31 is the same as the X-direction translational blur correction unit 704x of the third embodiment shown in FIG. (Or a blur amount calculation unit 786 having a different configuration from the blur amount calculation unit 785 in the Y-direction translational blur correction unit 704y of the third embodiment).
- the shake amount calculation unit 786 of this embodiment includes speed calculation units 765a and 765b, integration units 780a and 780b that function as movement amount calculation units, and an addition unit 781 that functions as a movement amount synthesis unit. Then, the calculation result by the addition unit 781 is output to the multiplication unit 768.
- the velocity calculation units 765a and 765b of the X-direction translational shake correction unit 704x have the X-direction translational velocity (first component of the X-direction velocity) Ryaw ⁇ ⁇ yaw caused by the yaw rotation motion,
- the X-direction translation speed (second component of the X-direction speed) Rrollx ⁇ ⁇ roll resulting from the roll rotation motion is calculated.
- the integration units 780a and 780b of the X-direction translation blur correction unit 704x integrate the translation speeds calculated by the speed calculation units 765a and 765b. That is, the integration unit 780a integrates the translational velocity in the X direction (first component of the velocity in the X direction) caused by the yaw rotation calculated by the velocity calculation unit 765a with respect to time t as shown in the following Equation 30. The first component ⁇ Xyaw of the X-direction translational movement amount is calculated.
- the integrating unit 780b integrates the translational velocity in the X direction (second component of the velocity in the X direction) caused by the roll rotational motion calculated by the velocity calculating unit 765b with respect to time t as shown in the following Equation 31.
- the second component ⁇ Xroll of the X-direction translational movement amount is calculated.
- ⁇ Xroll ⁇ (Rrollx ⁇ ⁇ roll) dt
- the adding unit 781 of the X-direction translational blur correction unit 704x adds the calculated first component ⁇ Xyaw of the X-direction translational movement amount and the second component ⁇ Xroll of the X-direction translational movement amount as shown in the following Expression 32.
- the X-direction translational movement amount ⁇ X is calculated.
- ⁇ X ⁇ Xyaw + ⁇ Xroll
- the Y-direction translational blur correction unit 704y calculates the Y-direction translational movement amount ⁇ Y, similarly to the X-direction translational blur correction unit 704x described above.
- the velocity calculation units 765a and 765b of the Y direction translational shake correction unit 704y calculate the first component Rpitch ⁇ ⁇ pitch of the Y direction velocity and the second component Rrolly ⁇ ⁇ roll of the Y direction velocity.
- the integration unit 780a of the Y-direction translation blur correction unit 704y indicates the Y-direction translation speed (the first component of the Y-direction speed) resulting from the pitch rotation calculated by the speed calculation unit 765a as shown in Equation 33 below.
- the first component ⁇ Ypitch of the translational movement amount in the Y direction is calculated by integrating with respect to the time t.
- ⁇ Ypitch ⁇ (Rpitch ⁇ ⁇ pitch) dt
- the integration unit 780b of the Y-direction translation blur correction unit 704y indicates the Y-direction translation speed (second component of the Y-direction speed) resulting from the roll rotation calculated by the speed calculation unit 765b as shown in the following Expression 34.
- the second component ⁇ Yroll of the translational movement amount in the Y direction is calculated by integrating with respect to the time t.
- ⁇ Yroll ⁇ (Rrolly ⁇ ⁇ roll) dt
- the adding unit 781 of the Y-direction translational blur correction unit 704y adds the calculated first component ⁇ Ypitch of the Y-direction translational movement amount and the second component ⁇ Yroll of the Y-direction translational movement amount as shown in the following Expression 35.
- the Y-direction translational movement amount ⁇ Y is calculated.
- the blur correction amount calculation technique by the blur correction amount calculation unit 786 in the sixth embodiment is different from the technique in the fourth embodiment in which the time interval for calculating the rotation radius is changed according to the angular velocity change period, or in the fifth embodiment.
- it may be combined with a technique for calculating two rotation radii based on data having different dimensions.
- FIG. 32 shows the seventh embodiment of the present invention, and is a block diagram showing the configuration of the X-direction translational blur correction unit 704x.
- the Y-direction translation blur correction unit 704y has the same configuration as the X-direction blur correction unit 704x, and the input is a pitch angular velocity instead of the yaw angular velocity, and a Y acceleration instead of the X acceleration. It only becomes. Therefore, detailed description of the Y-direction translational blur correction unit 704y will be omitted as appropriate.
- the X-direction translational blur correction unit 704x (and the Y-direction translational blur correction unit 704y (not shown)) of the present embodiment shown in FIG. 32 is the same as the X-direction translational blur correction unit 704x of the third embodiment shown in FIG. (Or a blur amount calculation unit 787 having a different configuration from the blur amount calculation unit 785 in the Y-direction translational blur correction unit 704y of the third embodiment).
- the shake amount calculation unit 787 of this embodiment includes integration units 782a and 782b that function as angle calculation units, multiplication units 783a and 783b that function as movement amount calculation units, and an addition unit 784 that functions as a movement amount synthesis unit. It has. Then, the calculation result by the adder 784 is output to the multiplier 768.
- the integration unit 782a of the X-direction translational blur correction unit 704x integrates the input yaw angular velocity ⁇ yaw with respect to time t as shown in the following formula 36, and calculates the rotation angle (yaw angle) ⁇ yaw in the yaw direction.
- the multiplication unit 783b of the X-direction translation blur correction unit 704x multiplies the roll angle ⁇ roll and the XZ roll radius Rrollx calculated by the radius calculation unit 764b, as shown in the following Expression 39, and the X-direction translational movement amount.
- the second component ⁇ Xroll of is calculated.
- the adding unit 784 of the X-direction translational shake correcting unit 704x adds the calculated first component ⁇ Xyaw of the X-direction translational movement amount and the second component ⁇ Xroll of the X-direction translational movement amount as shown in the following Equation 40.
- the X-direction translational movement amount ⁇ X is calculated.
- ⁇ X ⁇ Xyaw + ⁇ Xroll
- the Y-direction translational blur correction unit 704y calculates the Y-direction translational movement amount ⁇ Y, similarly to the X-direction translational blur correction unit 704x described above.
- the integration unit 782a of the Y-direction translational blur correction unit 704y integrates the input pitch angular velocity ⁇ pitch with respect to time t as shown in the following Equation 41 to calculate the rotation angle (pitch angle) ⁇ pitch in the pitch direction.
- ⁇ Ypitch ⁇ pitch ⁇ Rpitch
- the multiplication unit 783b of the Y-direction translation blur correction unit 704y multiplies the roll angle ⁇ roll by the YZ roll radius Rrolly calculated by the radius calculation unit 764b as shown in the following formula 44, and calculates the Y-direction translational movement amount.
- the second component ⁇ Yroll is calculated.
- the angle blur correction unit 703 generally calculates the rotation angle by integrating the angular velocity.
- the portions 782a and 782b can be shared by the angle shake correction unit 703 and the translational shake correction unit 704, and the processing speed can be improved and the program memory can be reduced.
- the image pickup apparatus including the shake amount detection device and the shake amount detection device has been mainly described.
- the shake amount detection method and the shake amount detection device that perform the shake amount detection as described above are controlled as described above.
- a processing program that performs blur amount detection as described above, a control program that causes a computer to control the blur amount detection device and the like as described above, and a computer that records the processing program and the control program It may be a recording medium readable by the above.
- the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage.
- various aspects of the invention can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, you may delete some components from all the components shown by embodiment.
- the constituent elements over different embodiments may be appropriately combined.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Adjustment Of Camera Lenses (AREA)
- Studio Devices (AREA)
- Gyroscopes (AREA)
Abstract
ヨー,ピッチ,ロール角速度を各検出する角速度センサ(8)と、X,Y軸方向のX,Y加速度を各検出する加速度センサ(9)と、時刻の異なるヨー角速度、ロール角速度、およびX加速度に基づき、ヨー半径を算出する半径算出部(764a)およびXZロール半径を算出する半径算出部(764b)と、ヨー角速度にヨー半径を乗算してX速度の第1成分を算出する速度算出部(765a)と、ロール角速度にXZロール半径を乗算してX速度の第2成分を算出する速度算出部(765b)と、X速度の第1成分とX速度の第2成分とを加算してX速度を取得する加算部(766)と、X速度を時間に関して積分することによりX軸方向への移動量を算出する積分部(767)と、を備えたブレ量検出装置。
Description
本発明は、角速度の検出結果と加速度の検出結果とに基づき移動量を検出するブレ量検出装置、ブレ量検出装置を備える撮像装置、およびブレ量検出方法に関する。
近年、手ブレ補正機能を搭載したカメラが一般的になり、手持ち撮影において特段の注意を払わなくても、像ブレの目立たない良好な画像を撮影することができるようになってきている。
しかしながら、露光時間が長くなる長秒撮影時については、未だに手ブレ補正の性能が十分であるとはいえず、補正しきれない場合もある。
特に、長秒撮影をマクロ領域で行う場合には、現在実用化されている手ブレ補正機能では、十分な性能が得られない場合が多い。
マクロ領域での手ブレが十分な性能を獲得していないのは、次の理由による。
カメラのブレは、カメラの光軸の角度が変化することで発生する角度ブレと、カメラが光軸とは垂直方向に移動(シフト)することで発生する並進ブレと、に分類することができる。
そして、現在実用化されている手ブレ補正技術の多くは、前者の角度ブレのみを補正する技術である。
これに対して、後者の並進ブレは、像倍率が低い場合には画質に大きな影響を及ぼすことはないが、像倍率が高くなるにつれて撮影画像の品質に及ぼす影響が大きくなる。現在用いられている手ブレ補正技術ではマクロ領域で十分な性能が得られない理由はこのため(すなわち、マクロ領域では像倍率が高くなるため)である。
このような課題を解決するための技術として、例えば特開2004-295027号公報には、交換レンズに加わる振れの加速度を検出する加速度センサと、振れの角速度を検出する角速度センサと、加速度センサおよび角速度センサによる加速度および角速度の検出結果に基づいて角度振れの回転中心を演算し、ブレ補正レンズの目標位置を演算する目標位置変換部とを備え、この目標位置変換部により得られた演算結果に基づいてブレ補正レンズを駆動して像のブレを補正する技術が記載されている。
また、特開2010-243824号公報には、被写体を撮影する撮影光学系と、像振れ補正装置に加わる角速度を検出して出力する角速度検出手段と、像振れ補正装置に加わる加速度を検出して出力する加速度検出手段と、角速度検出手段の出力に基づいて、撮影光学系の主点中心の自転角速度成分を演算する自転角速度演算手段と、加速度検出手段の出力と自転角速度演算手段の演算結果に基づいて、被写体中心の公転角速度成分を演算する公転角速度演算手段と、自転角速度成分と公転角速度成分の差分に基づいて像振れ補正制御を行う制御手段とを有する像振れ補正装置が記載されている。そして、該技術によれば、角度振れと平行振れがどのような状態で混在していても、制御が破綻することのない正確な像振れ補正が可能となり、演算量が低減するとされている。
上記特開2004-295027号公報に記載の技術では、ヨー方向およびピッチ方向の回転運動に起因する並進ブレに基づいて像面のブレ量を算出しているが、ロール方向の回転運動に起因する並進ブレについては考慮されていない。並進ブレはロール方向の回転運動によっても発生するために、この点を考慮しないと、ブレ量を正確に検出しているとはいえない。
この点について、本願に係る図1および図2A~図2Cを参照して説明する。
まず、図1に示すように、光学系2の光軸方向をZ方向、標準姿勢におけるカメラ1の水平方向をX方向、標準姿勢におけるカメラ1の垂直方向をY方向とすると、第1の軸であるZ軸周りの回転運動がロール、第2の軸であるY軸周りの回転運動がヨー、第3の軸であるX軸周りの回転運動がピッチである。
そして、図2Aに示すように、カメラ1にヨー方向の回転運動が発生するとX方向の移動量が、図2Bに示すように、カメラ1にピッチ方向の回転運動が発生するとY方向の移動量が生じる。
ただし、カメラ1に生じる並進ブレはこれらのみに起因するものではなく、図2Cに示すように、カメラ1にロール方向の回転運動が発生すると、X方向への移動量成分、およびY方向への移動量成分を含む移動量が生じることが分かる。
また、上記特開2010-243824号公報に記載の技術は、例えば極座標系を用いてピント振れ、公転の求心力、公転の加速度、コリオリ力、自転の求心力、自転の加速度、重力加速度成分等を考慮した複雑な演算を行っており、演算負荷が大きくリアルタイム追従性を確保するのが困難である。
本発明は上記事情に鑑みてなされたものであり、比較的簡易な処理で、並進ブレ量をより正確に検出することができるブレ量検出装置、撮像装置、ブレ検出方法を提供することを目的としている。
上記の目的を達成するために、本発明のある態様によるブレ量検出装置は、第1の軸周りの第1角速度を検出する第1角速度検出部と、前記第1の軸と直交する第2の軸周りの第2角速度を検出する第2角速度検出部と、前記第1の軸および前記第2の軸と直交する第3の軸方向の第3加速度を検出する加速度検出部と、第1の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、第2の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、に基づき、前記第2の軸周りの回転運動の第2半径を算出するとともに、前記第1の軸周りの回転運動の第1半径を前記第1の軸および前記第3の軸が含まれる平面へ射影した第1-3射影半径を算出する回転半径算出部と、前記第2半径と、前記第1-3射影半径と、前記第1角速度と、前記第2角速度とに基づき前記第3の軸方向への移動量を算出するブレ量算出部と、を具備している。
また、本発明の他の態様による撮像装置は、上記態様によるブレ量検出装置と、被写体からの光を被写体像として結像する光学系と、前記光学系により結像された被写体像を映像信号に変換する撮像素子と、前記ブレ量検出装置により検出された移動量を打ち消す方向に、前記光学系と前記撮像素子との少なくとも一方を駆動する駆動部と、を具備している。
本発明のさらに他の態様によるブレ量検出方法は、第1の軸周りの第1角速度を検出し、前記第1の軸と直交する第2の軸周りの第2角速度を検出し、前記第1の軸および前記第2の軸と直交する第3の軸方向の第3加速度を検出し、第1の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、第2の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、に基づき、前記第2の軸周りの回転運動の第2半径を算出するとともに、前記第1の軸周りの回転運動の第1半径を前記第1の軸および前記第3の軸が含まれる平面へ射影した第1-3射影半径を算出し、前記第2半径と、前記第1-3射影半径と、前記第1角速度と、前記第2角速度とに基づき前記第3の軸方向への移動量を算出する。
以下、図面を参照して本発明の実施の形態を説明する。
[実施形態1]
図1から図14は本発明の実施形態1を示したものであり、図1は撮像装置に生じる回転運動の種類を説明するための斜視図である。
図1から図14は本発明の実施形態1を示したものであり、図1は撮像装置に生じる回転運動の種類を説明するための斜視図である。
まず、図1を参照して、撮像装置1に設定する座標系や回転方向について説明する。なお、撮像装置1は、撮像機能を備えた装置であればよく、デジタルカメラ、ビデオカメラ、カメラ機能付き携帯電話など各種の装置を広く含むが、以下では、代表して適宜カメラ1などということにする。
カメラ1は、被写体からの光を被写体像として結像する光学系2を備えており、この光学系2の光軸方向をZ方向とする。ここに、正のZ方向は、カメラ1から被写体に向く方向とする。
また、カメラ1の標準姿勢(いわゆる横位置)において、カメラ1の水平方向をX方向とする。ここに、正のX方向は、被写体側からカメラ1を見て右方向(つまり、撮影者からカメラ1を見て左方向)とする。
さらに、カメラ1の標準姿勢において、カメラ1の垂直方向をY方向とする。ここに、正のY方向は、標準姿勢における上方向とする。
また、図1(および後述する図2A~図2C)においては、座標系がカメラ1と重複して見難くなるのを防ぐために座標系の原点位置をずらして記載しているが、座標系の原点は撮像素子4(図3参照)の撮像面の中心であり、一般的には、撮像面と光学系2の光軸とが交差する点である。この座標系は、カメラ1に固定した座標系であり、カメラ1が移動または回転すれば、座標系も地球に対して移動または回転することになる。また、この座標系において、X-Y平面は撮像面に一致する面である。
そして、このような座標系において、Z軸周りの回転運動がロール、X軸周りの回転運動がピッチ、Y軸周りの回転運動がヨーである。
さらに、以下では例えば、原点からZ軸正方向を見たときのZ軸周りの左回転がロールの正方向回転、原点からX軸正方向を見たときのX軸周りの左回転がピッチの正方向回転、原点からY軸正方向を見たときのY軸周りの右回転がヨーの正方向回転であるものとする。
なお、上述した座標軸の正負方向や回転方向の正負は、後述する角速度センサ8や加速度センサ9(図3等参照)の実装方向に依存する便宜上のものであり、理論的には上記に限定されるものではない。
次に、上述した座標系において、回転中心が原点(あるいは、回転中心が、原点を含むカメラ1内)にある場合は主に角度ブレをもたらし、回転中心がカメラ1の外部にある場合には角度ブレに加えて並進ブレをもたらす。従って、ブレ補正を行う必要があるような並進ブレが発生するのは、実質的に、回転中心がカメラ1の外部にあるときであると考えても差し支えない。
まず、角度ブレに関しては、原点周りの回転運動として記述すればよい。すなわち、ヨー方向の回転運動により光軸が左右に振られて撮像素子4上に結像される被写体範囲が左右に移動し、ピッチ方向の回転運動により光軸が上下に振られて撮像素子4上に結像される被写体範囲が上下に移動することはよく知られている通りである。また、ロール方向の回転運動は、画面の横位置や縦位置、およびその中間の斜め位置をもたらすこともよく知られている通りである。
一方、並進ブレに関しては、上述したように、カメラ1の外部に回転中心がある回転運動として記述することができる。図2Aはヨー回転により撮像装置にX方向の移動量が生じる様子を示す図、図2Bはピッチ回転により撮像装置にY方向の移動量が生じる様子を示す図、図2Cはロール回転により撮像装置にX方向およびY方向の移動量が生じる様子を示す図である。
図2Aに示すように、カメラ1の外部の、原点から距離(回転半径)Ryawの位置に回転中心Cyawをもつヨー方向の回転運動がカメラ1に発生すると、X方向の移動量が生じる。
また、図2Bに示すように、カメラ1の外部の、原点から距離(回転半径)Rpitchの位置に回転中心Cpitchをもつピッチ方向の回転運動がカメラ1に発生すると、Y方向の移動量が生じる。
さらに、図2Cに示すように、カメラ1の外部の、原点から距離(回転半径)Rrollの位置に回転中心Crollをもつロール方向の回転運動がカメラ1に発生すると、一般に、X方向への移動量成分、およびY方向への移動量成分を含む移動量が生じる。
そして、角度ブレと並進ブレとのうち、前者の角度ブレに関しては公知の技術を適宜用いることが可能であるために、本実施形態においては、後者の並進ブレについて主に説明する。
まず、図3は、撮像装置1の構成を示すブロック図である。
撮像装置であるカメラ1は、光学系2と、フォーカルプレーンシャッタ3と、撮像素子4と、駆動部5と、システムコントローラ6と、ブレ補正マイクロコンピュータ7と、角速度センサ8と、加速度センサ9と、レリーズスイッチ10と、EVF(電子ビューファインダ)11と、内部フラッシュメモリ13と、を備えている。また、図3にはメモリカード12も記載されているが、メモリカード12は例えばカメラ1に対して着脱自在に構成されたものであるために、カメラ1に固有の構成でなくても構わない。
光学系2は、被写体からの光を、被写体像として撮像素子4の撮像面に結像するものである。
フォーカルプレーンシャッタ3は、撮像素子4の前面(光学系2側)に配設されていて、開閉動作を行うことにより露光時間を制御するものである。すなわち、フォーカルプレーンシャッタ3は、開くことで撮像素子4を露光状態にし、閉じることで遮光状態にする。
撮像素子4は、システムコントローラ6の指示に基づいて、撮像面に結像された被写体像を電気信号に変換する。この変換された電気信号は、システムコントローラ6によって映像信号として読み出される。
駆動部5は、撮像面内に平行な2次元方向に移動可能となるように撮像素子4を支持しており、ブレ補正マイクロコンピュータ7からの指示に基づいて、図1等に示したX方向およびY方向に撮像素子4を駆動する。
システムコントローラ6は、前述した映像信号の読み出しを含む、カメラ1全体の機能に関わる各種の制御を統合的に行う制御部である。システムコントローラ6は、以下に説明するように、ブレ補正マイクロコンピュータ7にブレ検出を行わせ、ブレ検出結果に基づいてブレ補正を行わせる制御も行う。
角速度センサ8は、回転運動を検出する角速度検出部として構成されたセンサであり、単位時間当たりの角度変化を角速度として検出しブレ補正マイクロコンピュータ7へ出力する。角速度センサ8は、図2Aに示したようなY軸周りのヨー回転運動に係るヨー角速度を検出するヨー角速度検出部(第2角速度検出部)たるヨー角速度センサ8aと、図2Bに示したようなX軸周りのピッチ回転運動に係るピッチ角速度を検出するピッチ角速度検出部(第3角速度検出部)たるピッチ角速度センサ8bと、図2Cに示したようなZ軸周りのロール回転運動に係るロール角速度を検出するロール角速度検出部(第1角速度検出部)たるロール角速度センサ8cとを含み、回転方向の3自由度の角速度を検出するように構成されている。なお、ここではヨー角速度センサ8aが第2角速度検出部、ピッチ角速度センサ8bが第3角速度検出部であるとしたが、ヨー角速度センサ8a(ヨー角速度検出部)が第3角速度検出部、ピッチ角速度センサ8b(ピッチ角速度検出部)が第2角速度検出部であっても構わない。
また、ヨー角速度センサ8aと、ピッチ角速度センサ8bと、ロール角速度センサ8cは、例えば、同一機種のセンサを用いて、実装方向を異ならせることにより、各軸周りの回転運動を検出する。
加速度センサ9は、少なくともX軸方向の加速度(X加速度)とY軸方向の加速度(Y加速度)とを検出する加速度検出部であり、本実施形態においてはさらに、Z軸方向の加速度(Z加速度)も検出し得るセンサを採用している。そして、加速度センサ9は、検出した各方向への加速度を、ブレ補正マイクロコンピュータ7へ出力する。
なお、上述した角速度センサ8と加速度センサ9とは、検出時間を異ならせて時系列的に(つまり所定の時間間隔毎に)検出を行い、検出結果を逐次ブレ補正マイクロコンピュータ7へ出力するようになっている。
ブレ補正マイクロコンピュータ7は、システムコントローラ6の指示に基づいて、角速度センサ8の出力と加速度センサ9の出力とからカメラ1のブレ量を算出する。そして、ブレ補正マイクロコンピュータ7は、検出したブレ方向と反対方向に検出したブレ量だけ撮像素子4を駆動する指示を駆動部5に対して出力する。これにより駆動部5が、撮像面におけるブレを打ち消すように撮像素子4を駆動するために、撮影画像に発生するブレを防止することができる。なお、ここでは撮像素子4を駆動してブレ補正を行っているが、これに代えて、あるいはこれに加えて、光学系2を駆動してブレ補正を行うようにしても構わない。
そして、ブレ補正マイクロコンピュータ7、角速度センサ8、加速度センサ9を含んでブレ量検出装置が構成され、このブレ量検出装置と駆動部5とを含んでブレ補正装置が構成されている。
レリーズスイッチ10は、システムコントローラ6と接続された例えば2段式の押圧スイッチでなり、1段目の押圧(半押し、あるいは1stレリーズ)でAFやAEが行われ、2段目の押圧(全押し、あるいは2ndレリーズ)で露光が開始されるようになっている。
EVF11は、液晶パネル等を含んで構成された表示部であり、撮像素子4から読み出され、システムコントローラ6等において表示可能な形式に変換された映像信号を、ユーザが視認可能となるように表示する。
メモリカード12は、撮像素子4から読み出され、システムコントローラ6等において記録可能な形式に変換された映像信号を記録する不揮発性の記録媒体であり、上述したように、カメラ1に対して例えば着脱自在に構成されている。
内部フラッシュメモリ13は、システムコントローラ6が実行するカメラ1の制御プログラムや、制御に用いられる各種パラメータ等を記録する不揮発性の記録媒体である。
次に図4は、ブレ補正マイクロコンピュータ7の構成を示すブロック図である。
ブレ補正マイクロコンピュータ7は、CPU70と、ADC(アナログ・デジタル・コンバータ)71a~71cと、SIO(Serial Input/Output:シリアル入出力)72a,72bと、ドライバ73と、を備えている。
ADC71a~71cは、角速度センサ8a~8cから入力されるアナログ信号を、それぞれデジタル信号に変換する。
SIO72a,72bは、CPU70が外部デバイスとシリアルインタフェースで通信を行う通信部であり、SIO72aは加速度センサ9が検出した加速度の値をCPU70が読み出すために用いられ、SIO72bはCPU70がシステムコントローラ6とコマンドのやり取りを行う通信に用いられる。
ドライバ73は、CPU70により算出された補正量に基づいて、駆動部5を駆動するための信号を出力する。
CPU70は、HPF(ハイ・パス・フィルタ)701a~701eと、加速度取得部702と、角度ブレ補正部703と、並進ブレ補正部704と、通信部705と、加算部706とを、例えば内部プログラムであるファームウェアにより構成される機能として備えており(ただし、ハードウェアとして構成しても勿論構わない)、角速度センサ8および加速度センサ9の検出結果に基づき、角度ブレおよび並進ブレの補正量を算出する。
HPF701a~701eは、デジタルデータとして入力される角速度および加速度の低周波成分を除去する。すなわち、HPF701aは入力されるヨー角速度から、HPF701bは入力されるピッチ角速度から、HPF701cは入力されるロール角速度から、HPF701dは入力されるX加速度から、HPF701eは入力されるY加速度から、低周波成分をそれぞれ除去する。ここで除去する低周波成分は、例えば1Hz以下の周波数成分が挙げられるが、この帯域に限定されるものではない。手ブレに基づく周波数は、1Hzから10Hz程度の間であることが実験で確認されており、これにより、手ブレ以外の要因によるセンサの動き(例えば、ドリフトなど)による経時変化の成分を除去することができる。
また、加速度取得部702は、SIO72aを経由して、加速度センサから独立した3軸方向の加速度を読み出して、図2等に示したX軸、Y軸、Z軸の各方向への加速度情報に分割する。そして、加速度取得部702は、X加速度を上述したHPF701dへ、Y加速度を上述したHPF701eへ、それぞれ出力する。
角度ブレ補正部703は、ヨー回転運動およびピッチ回転運動に基づいて、角度変化に伴うブレ量(角度ブレ)を算出するものであるが、この角度ブレについては公知の技術を適宜利用することができるために、詳細は記載しない。
並進ブレ補正部704は、加速度および角速度に基づいて、カメラ1の並進移動量を算出し、算出した移動量を撮像面における被写体像のブレ量に変換し、補正量として駆動部5へ伝達する。この並進ブレ補正部704は、X方向の並進ブレ量の算出を行うX方向並進ブレ補正部704xと、Y方向の並進ブレ量の算出を行うY方向並進ブレ補正部704yとを備えている。
通信部705は、SIO72bを経由して、システムコントローラ6と通信する。
加算部706は、角度ブレ補正部703により算出された角度ブレ量と、並進ブレ補正部704により算出された並進ブレ量とを加算して、トータルのブレ量をドライバ73へ出力する。
図5はX方向並進ブレ補正部704xの構成を示すブロック図である。
Y方向並進ブレ補正部704yはX方向並進ブレ補正部704xと構成が同一であって、入力がヨー角速度に代えてピッチ角速度、X加速度に代えてY加速度になるだけである。従って、ここでは、図5を参照してX方向並進ブレ補正部704xのみについて説明する。
X方向並進ブレ補正部704xは、平均化部761a~761cと、タイミング検出部762a,762bと、角加速度算出部763a,763bと、半径算出部764a,764bと、ブレ量算出部785と、乗算部768と、を備えている。
平均化部761a~761cは、時系列的に入力される角速度および加速度を平均化する。この平均化は、例えば、4サンプリング分のデータの平均値を算出し、1つのサンプリング値として出力することにより行う。この平均化は、後段の角加速度算出部763a,763bにおける微分演算により高周波成分か強調されるのを抑制する効果があるとともに、データ量が1/4に減るために、演算量を削減する効果もある。
角加速度算出部763a,763bは、平均化された角速度を微分して角加速度を算出する。ここで算出された角加速度は、半径算出部764a,764bにおける半径算出に用いられると共に、タイミング検出部762a,762bにおける半径算出タイミングを示す時刻の検出に用いられる。
タイミング検出部762a,762bは、半径算出部764a,764bが半径の算出を行うタイミング(時刻)を検出する。すなわち、X方向並進ブレ補正部704xの場合、タイミング検出部762bは、ロール回転運動の影響がないタイミング(時刻)をY軸周りのヨー回転運動のヨー半径(第2半径)を算出するタイミング(時刻)とし、タイミング検出部762aは、ヨー回転運動の影響がないタイミング(時刻)をZ軸周りのロール回転運動のロール半径(第1半径)を算出するタイミング(時刻)とする。
ここでは下記数式1~数式4に示すように、加速度と角加速度に基づき回転半径を算出しているために、ロール回転運動の影響がないタイミング(時刻)はロール角加速度が0となるタイミング(時刻)、ヨー回転運動の影響がないタイミング(時刻)はヨー角加速度が0となるタイミング(時刻)である。ただし、後述するように、回転半径Rを速度と角速度との関係から算出することも可能であり、この場合には、ロール回転運動の影響がないタイミング(時刻)はロール角速度が0となるタイミング(時刻)、ヨー回転運動の影響がないタイミング(時刻)はヨー角速度が0となるタイミング(時刻)となる。
図6はタイミング検出部762a,762bにより検出される半径算出タイミングを説明するための線図である。
図6に示すように、ヨー半径を算出するタイミングは、ロール角速度から算出されたロール角加速度が0となるタイミング(図6のグラフにおいてロール角加速度がゼロクロス(0クロス)するタイミングであり、図6の例においては時刻t1およびt3)である。また、ロール半径のZ-X平面(Z軸およびX軸が含まれる平面)への射影半径である第1-3射影半径たるXZロール半径を算出するタイミングは、ヨー角速度から算出されたヨー角加速度が0となるタイミング(図6のグラフにおいてヨー角速度がゼロクロスするタイミングであり、図6の例においては時刻t2)である。
同様に、Y方向並進ブレ補正部704yの場合、タイミング検出部762bは、ロール回転運動の影響がない(ロール角加速度(またはロール角速度)が0となる)タイミングをX軸周りのピッチ回転運動のピッチ半径を算出するタイミングとし、タイミング検出部762aは、ピッチ回転運動の影響がない(ピッチ角加速度(またはピッチ角速度)が0となる)タイミングをロール半径のZ-Y平面(Z軸およびY軸が含まれる平面)への射影半径である第1-2射影半径たるYZロール半径を算出するタイミングとすることになる。
半径算出部764a,764bは、タイミング検出部762b,762aで各検出されたタイミングで、例えば加速度の次元において半径を算出する回転半径算出部である。
すなわち、半径算出部764aは、ヨー半径を算出するタイミングにおいて、角加速度算出部763aから出力されるヨー角加速度αω_yawと、平均化部761cから出力される平均化されたX加速度αv_xとに基づいて、以下の数式1に示すようにヨー半径Ryawを算出する。
[数1]
Ryaw=αv_x/αω_yaw
また、半径算出部764bは、XZロール半径を算出するタイミングにおいて、角加速度算出部763bから出力されるロール角加速度αω_rollと、平均化部761cから出力される平均化されたX加速度αv_xとに基づいて、以下の数式2に示すようにXZロール半径Rrollxを算出する。
Ryaw=αv_x/αω_yaw
また、半径算出部764bは、XZロール半径を算出するタイミングにおいて、角加速度算出部763bから出力されるロール角加速度αω_rollと、平均化部761cから出力される平均化されたX加速度αv_xとに基づいて、以下の数式2に示すようにXZロール半径Rrollxを算出する。
[数2]
Rrollx=αv_x/αω_roll
同様に、Y方向並進ブレ補正部704yの半径算出部764aでは、ピッチ角加速度αω_pitchとY加速度αv_yとロール角加速度αω_rollとに基づいて、以下の数式3によりピッチ半径Rpitchが算出され、以下の数式4によりYZロール半径Rrollyが算出される。
Rrollx=αv_x/αω_roll
同様に、Y方向並進ブレ補正部704yの半径算出部764aでは、ピッチ角加速度αω_pitchとY加速度αv_yとロール角加速度αω_rollとに基づいて、以下の数式3によりピッチ半径Rpitchが算出され、以下の数式4によりYZロール半径Rrollyが算出される。
[数3]
Rpitch=αv_y/αω_pitch
[数4]
Rrolly=αv_y/αω_roll
なお、数式1~数式4を用いた算出を行うに当たっては、単位時間当たりの半径の変化量が小さいことを仮定している。また、本実施形態では、ヨー半径、ピッチ半径、XZロール半径、YZロール半径を算出する際に平均化されたX加速度αv_xおよび平均化されたY加速度αv_yを用いたが、平均化をされていないX加速度および平均化をされていないY加速度を用いても良い。
Rpitch=αv_y/αω_pitch
[数4]
Rrolly=αv_y/αω_roll
なお、数式1~数式4を用いた算出を行うに当たっては、単位時間当たりの半径の変化量が小さいことを仮定している。また、本実施形態では、ヨー半径、ピッチ半径、XZロール半径、YZロール半径を算出する際に平均化されたX加速度αv_xおよび平均化されたY加速度αv_yを用いたが、平均化をされていないX加速度および平均化をされていないY加速度を用いても良い。
ブレ量算出部785は、速度算出部765a,765bと、加算部766と、積分部767と、を備え、半径算出部764a,764bで算出された半径とHPF701a~701cから入力される角速度とに基づいて、X方向並進ブレ補正部704xに設けられている場合にはX軸方向の移動量を、Y方向並進ブレ補正部704yに設けられている場合にはY軸方向の移動量を、算出する。
速度算出部765a,765bは、半径算出部764a,764bで算出された半径とHPF701a~701cから入力される角速度とに基づいて、並進速度を算出する。
すなわち、X方向並進ブレ補正部704xの速度算出部765aは、半径算出部764aから入力されるヨー半径Ryawと、HPF701aから入力されるヨー角速度ωyawとを乗算することにより、ヨー回転運動に起因するX方向の並進速度(X軸方向へのX方向速度の第1成分)Ryaw×ωyawを算出する。
また、X方向並進ブレ補正部704xの速度算出部765bは、半径算出部764bから入力されるXZロール半径Rrollxと、HPF701cから入力されるロール角速度ωrollとを乗算することにより、ロール回転運動に起因するX方向の並進速度(X軸方向へのX方向速度の第2成分)Rrollx×ωrollを算出する。
加算部766は、速度合成部であって、速度算出部765aの出力と速度算出部765bの出力とを加算することにより、ヨー回転運動とロール回転運動との両方に起因するX方向の並進速度(X方向速度)Vxを、以下の数式5に示すように算出する。
[数5]
Vx=Ryaw×ωyaw+Rrollx×ωroll
同様に、Y方向並進ブレ補正部704yの速度算出部765a,765bがY方向速度の第1成分Rpitch×ωpitchとY方向速度の第2成分Rrolly×ωrollとを各算出し、速度合成部である加算部766がこれらを加算することにより、ピッチ回転運動とロール回転運動との両方に起因するY方向の並進速度(Y方向速度)Vyを以下の数式6に示すように算出する。
Vx=Ryaw×ωyaw+Rrollx×ωroll
同様に、Y方向並進ブレ補正部704yの速度算出部765a,765bがY方向速度の第1成分Rpitch×ωpitchとY方向速度の第2成分Rrolly×ωrollとを各算出し、速度合成部である加算部766がこれらを加算することにより、ピッチ回転運動とロール回転運動との両方に起因するY方向の並進速度(Y方向速度)Vyを以下の数式6に示すように算出する。
[数6]
Vy=Rpitch×ωpitch+Rrolly×ωroll
X方向並進ブレ補正部704xの積分部767は、第1の移動量算出部として機能し、算出されたX方向速度Vxを以下の数式7に示すように時間tに関して積分して、X軸方向への移動量ΔXを算出する。
Vy=Rpitch×ωpitch+Rrolly×ωroll
X方向並進ブレ補正部704xの積分部767は、第1の移動量算出部として機能し、算出されたX方向速度Vxを以下の数式7に示すように時間tに関して積分して、X軸方向への移動量ΔXを算出する。
[数7]
同様に、Y方向並進ブレ補正部704yの積分部767は、第1の移動量算出部として機能し、算出されたY方向速度Vyを以下の数式8に示すように時間tに関して積分して、Y軸方向への移動量ΔYを算出する。
同様に、Y方向並進ブレ補正部704yの積分部767は、第1の移動量算出部として機能し、算出されたY方向速度Vyを以下の数式8に示すように時間tに関して積分して、Y軸方向への移動量ΔYを算出する。
[数8]
こうして算出された移動量ΔX,ΔYは、角速度センサ8および加速度センサ9の移動量、つまりカメラ1自体の移動量である。これに対してブレ補正を行うためには、撮像素子4の撮像面上に結像される光学像の移動量を求める必要がある。そこで、乗算部768が、SIO72bおよび通信部705を介してシステムコントローラ6から入力されるパラメータである像倍率f(図9のステップS3参照)を、積分部767から入力される移動量ΔX,ΔYに乗算することにより、撮像面におけるブレ量に変換して補正量D(図9のステップS3参照)として出力する。
こうして算出された移動量ΔX,ΔYは、角速度センサ8および加速度センサ9の移動量、つまりカメラ1自体の移動量である。これに対してブレ補正を行うためには、撮像素子4の撮像面上に結像される光学像の移動量を求める必要がある。そこで、乗算部768が、SIO72bおよび通信部705を介してシステムコントローラ6から入力されるパラメータである像倍率f(図9のステップS3参照)を、積分部767から入力される移動量ΔX,ΔYに乗算することにより、撮像面におけるブレ量に変換して補正量D(図9のステップS3参照)として出力する。
こうして算出された補正量D(並進ブレ量)は、上述したように、加算部706において、角度ブレ量と加算される。従って、ドライバ73は、加算後のトータルのブレ量に基づいて、駆動部5を駆動するための信号を出力することになる。
ここで、半径算出部764a,764bで算出される半径の符号に関して、図7、図8A、図8Bを参照して説明する。図7は回転運動の中心がカメラ1の撮影者側にある場合と被写体側にある場合とで半径算出部764a,764bで算出される半径の符号が異なることを説明するための図、図8Aは回転運動の中心がカメラ1の左側にある場合と右側にある場合とで半径算出部764a,764bで算出される半径の符号が異なることを説明するための図、図8Bは回転運動の中心がカメラ1の上側にある場合と下側にある場合とで半径算出部764a,764bで算出される半径の符号が異なることを説明するための図である。
半径算出部764a,764bは、数式1~数式4に示したように、半径Rを加速度と角加速度とから算出する。これら加速度と角加速度は、正の値と負の値の何れも取り得る。従って、算出される半径Rの符号は、加速度の符号と角加速度の符号との関係に応じて、正になる場合もあれば負になる場合もある。
こうして算出される半径Rをそのまま用いて、速度算出部765a,765bが並進速度成分を算出した場合に、半径Rの符号が正である場合と負である場合とでは、算出される速度の向きが反対になる。
例えば図7に示すように、回転運動の中心が、カメラ1よりも手前(撮影者側)にある場合と、被写体OBJ側にある場合とでは、算出される半径Rの符号が異なることになる。
図7を左側面方向から(X軸正側のカメラ1外部からX軸負方向へ向けて)カメラ1を見た図であるとすると、角速度センサ8が正の角速度(図1にピッチとして示すように、正は原点を見て右回りとなる)を検出した場合に、カメラ1の手前(撮影者側)に回転中心Crotがあるときに算出される速度は上方向の速度となるが、被写体OBJ側に回転中心Crevがあるときに算出される速度は下方向の速度となる。
また、図7を上側から下向きにカメラ1を見た図であるとすると、ヨー方向の回転運動についてもほぼ同様の説明が当てはまる(ただし、図1にヨーとして示したように、正は原点を見て左回りとなるために、上記とは正負逆となる)。
ここに、回転中心Crotがカメラ1よりも手前(撮影者側)にある場合というのは、主に、カメラ1を支持する軸の揺れによるもの、すなわち、カメラ1を把持する撮影者の手が揺れる、いわゆる手ブレであると考えられる。
また、回転中心Crevが被写体OBJ側にある場合というのは、主に、回転中心Crevが被写体OBJとなる場合、すなわち、狙いの被写体OBJがフレームの中心から外れたときに、フレームの中心に戻そうとする動きにより発生するものと考えられる。この種の動きは、連続的でない場合が多い。
次に、ロール回転運動について考えてみる。ロール回転運動は、X方向の移動量とY方向の移動量との両方に影響を与えるために、X方向の移動量に関わる係数としての半径と、Y方向の移動量に関わる係数としての半径と、の2つに分けて考えることにする。
Y方向の移動量に関わる半径Rの符号は、図8Aに示すように、回転中心がカメラ1の撮影者から見た右(Cright)にあるか左(Cleft)にあるかに応じて、正負が決まる。
また、X方向の移動量に関わる半径Rの符号は、図8Bに示すように、回転中心がカメラ1の上(Ctop)にあるか下(Cunder)にあるかに応じて、正負が決まる。
このロール回転運動に関する回転中心の位置は、主に、撮影姿勢に影響を受ける場合が多い。例えば、Y方向の移動量に関わる、回転中心がカメラ1の右(Cright)にあるか左(Cleft)にあるかは、撮影者がカメラ1を把持するグリップ位置の関係から右(Cright)になる場合が多い。また、X方向の移動量に関わる、回転中心がカメラ1の上(Ctop)にあるか下(Cunder)にあるかは、カメラ1を通常に構える場合には撮影者のひじがカメラ1よりも下になるために下(Cunder)にあるが、ローアングル撮影の場合は撮影者のひじがカメラ1よりも上になるために上(Ctop)になる。
以上述べたような半径の符号の取扱は、逆補正になる場合、つまりブレを補正するどころか拡大してしまうことになる場合もあるために、注意が必要である。そこで、この半径の符号をどのように決定するかについては、後でより詳細に説明する。
次に、並進ブレ補正部704におけるブレ量検出の制御の流れを説明する。まず図9は、ブレ量検出のメイン制御を示すフローチャートである。この図9に示す処理は、例えば1msの時間間隔で定期的に実行される処理となっている。
このメイン制御における動作は、角速度や加速度を検出して回転半径の算出は行うがブレ補正は行わない検出期間と、検出期間に算出された回転半径を用いてブレ補正を行う補正期間と、の2つの制御期間に分かれている。この制御期間が検出期間であるか補正期間であるかは、ステートフラグstateに記録されるようになっている。
この処理を開始すると、まず、ステートフラグstateを参照することにより、制御期間が補正期間であるか否かを判定する(ステップS1)。
ここで補正期間でないと判定された場合、つまり検出期間である場合には、後で図10を参照して説明する回転半径算出の処理を行い(ステップS6)、並進速度Vを0とし、つまり補正量Dを0として出力する(ステップS7)。
その後、露光が開始されたか否かを、SIO72bおよび通信部705を介してシステムコントローラ6から露光開始が通知されたか否かに基づき、判定する(ステップS8)。
この検出期間中に露光が開始された場合には、ステートフラグstateを補正期間に切り替えてから(ステップS9)、また露光が開始されていない場合にはそのまま、このメイン処理を終了する。
一方、ステップS1において補正期間中であると判定された場合には、検出期間において算出された半径Rと、角速度センサ8から出力される角速度ωとを乗算することにより並進速度Vを算出し(ステップS2)、さらに並進速度を時間で積分して像倍率fを乗算することにより、撮像面に発生する並進移動量を算出する(ステップS3)。
そして、露光が終了したか否かを、SIO72bおよび通信部705を介してシステムコントローラ6から露光終了が通知されたか否かに基づき、判定する(ステップS4)。
ここで露光が終了したと判定された場合には、ステートフラグstateを検出期間に切り替えてから(ステップS5)、また露光が終了しておらず継続している場合にはそのまま、このメイン処理を終了する。
図10は、図9のステップS6における回転半径算出の処理の詳細を示すフローチャートである。この回転半径算出処理について、図5を適宜参照しながら説明する。
なお、この回転半径算出処理は、各回転軸に対して行われ、より詳しくは、ヨー半径Ryaw、ピッチ半径Rpitch、XZロール半径Rrollx、YZロール半径Rrollyのそれぞれに対して行われる。
まず、平均化部761a~761cにより、角速度平均値ωaveの算出(ステップS11)と、加速度平均値αv_aveの算出(ステップS12)と、を行う。
次に、角加速度算出部763a,763bにより、ステップS11において算出された角速度平均値ωaveを時間で微分して、角加速度αω_aveを算出する(ステップS13)。
次に、タイミング検出部762a,762bにより、同一方向速度の第1成分と第2成分とに関わる角加速度の他方がゼロクロスしたことが検出されたか否かを判定する(ステップS14)。すなわち、X方向速度の第1成分Ryaw×ωyawに関わる処理している場合はロール角加速度αω_roll、X方向速度の第2成分Rrollx×ωrollに関わる処理している場合はヨー角加速度αω_yaw、Y方向速度の第1成分Rpitch×ωpitchに関わる処理している場合はロール角加速度αω_roll、Y方向速度の第2成分Rrolly×ωrollに関わる処理している場合はピッチ角加速度αω_pitchがゼロクロスしたか否かを判定する。
このステップS14において、ゼロクロスが検出された場合には、半径算出部764a,764bにより、ステップS12で求めた加速度平均値αv_aveとステップS13で求めた角加速度αω_aveとを用いて、数式1~数式4に示したような演算を行うことにより、回転半径Rを算出する(ステップS15)。
なお、回転半径Rは、加速度と角加速度とに基づいて算出するに限るものではなく、速度と角速度との関係から算出することも可能である。ただし、速度と角速度との関係から算出する場合には、加速度センサ9により検出した加速度を積分して速度を算出する必要があるが、積分演算によって加速度センサ9のドリフトなどノイズの影響が強調され、算出される半径の精度を低下させる可能性がある。このために本実施形態においては、加速度と角加速度とに基づいて、加速度の次元で半径を算出することで、より精度の高い回転半径の算出を行うようにしている。
次に、半径算出部764a,764bは、ステップS15において算出した回転半径が速度算出に使用可能であるか否かの信頼性判定をさらに行う(ステップS16)。
並進速度成分は、回転半径と角速度との乗算により算出されるために、回転半径の絶対値が大きい場合には、算出される並進速度成分の絶対値も大きくなり、つまり補正量も大きくなる。すなわち、もし回転半径に誤差が含まれている場合には、誤差に起因する補正量も大きくなり、誤補正に至る可能性がある。
このために、ステップS15において算出された回転半径を所定の閾値と比較して、回転半径が所定の閾値よりも大きい場合は、信頼性がないと判定して速度算出には用いないことにする(具体的な処理としては、半径算出部764a,764bから出力する回転半径を0とする:すなわち、回転半径を0クリアする)。
また、ステップS15において半径を算出するときに、数式1~数式4に示したように、加速度を角加速度で除算するが、角加速度が0近傍の値である場合には算出結果が極めて大きな値(場合によっては発散)となる。従って、絶対値が大きい回転半径を用いないようにすることで、このような0除算に起因する誤補正を防止することができる。
このステップS16における信頼性判定の方法は、上述に限るものではなく、その他の各種の方法を採用することが可能である。
例えば、回転半径の絶対値の大きさに基づき判定するのに代えて、もしくは加えて、角加速度の絶対値が所定の角加速度閾値未満であることと、加速度の絶対値が所定の加速度閾値未満であることと、の少なくとも一方が成立する場合、つまり数式1~数式4の何れかにおける右辺の分母と分子の少なくとも一方の絶対値が小さい場合には、半径算出部764a,764bは、その数式により算出された回転半径に信頼性がないと判定して、算出結果を用いることなく、回転半径0を出力するようにしても良い。
なお、回転半径を0クリアする場合としては、さらに、以下のような場合が挙げられる。
回転半径を0クリアする第1のケースは、静止状態が検出されている場合である。静止状態ではブレがないために、回転半径を0クリアすることにより、誤補正を防止することができる。この静止状態の検出方法としては、例えば、角速度センサ8の出力および加速度センサ9の出力が、ノイズ等と考えられる成分を除いて、所定時間以上、継続して実質的に0となることが挙げられる。また、静止状態であると検出される状態の他の一例は、三脚検出部等により三脚接続が検出されることである。この三脚接続の検出方法については、公知の種々の方法を利用可能であるために具体例は述べないこととする。
回転半径を0クリアする第2のケースは、パン操作が検出された場合である。パン操作は一般に手ブレには含まれず、しかも比較的大きな角度範囲で移動されるために駆動部5による補正レンジを超える場合が多い。加えて、パン操作が行われるとHPF(特にHPF701aやX軸方向の加速度に係るHPF)の影響が後に残るために、パン操作が行われた直後のしばらくの期間は正常な補正量の算出ができなくなる。従って、パン操作に係るヨー回転運動から算出される回転半径、つまり数式1により算出されるヨー半径Ryawを0クリアすることで、パン操作後のHPF701の影響による誤補正を防止することができる。なお、パン操作の検出は、角速度センサ8や加速度センサ9の検出値、つまり、HPF(特にHPF701aやHPF701d)からの出力(検出値)が所定の時間を超えて変化しないこと、または、検出値の符号が所定の時間を超えて変化しないことを検出することにより、判定することができる。
回転半径を0クリアする第3のケースは、露光開始からのブレ補正を実行している時間が所定の時間を超えた場合である。
長秒撮影でない通常の撮影時間の場合には、撮影画像に与える影響が小さいために、誤補正が生じたとしても撮影画像に与える影響はほとんどない。これに対して長秒撮影の場合には、補正量が小さくても長時間累積(特に、時間により積分される量が長時間累積)されることになるために、(特に、累積された誤差に基づくブレ補正が)撮影画像に与える影響が大きくなる。このために、露光開始からの時間が所定時間を超えた場合は、回転半径を0クリアして補正を停止する。
この露光時間の監視はCPU70により行われ、システムコントローラ6からの露光開始コマンドを受信してからの時間をタイマによりカウントして、カウント値が所定時間を超えた場合には、半径算出部764a,764bから出力される回転半径を0クリアする。
さらに、上述した以外にも、算出する補正量の信頼性が低いと判定された場合には、適宜、回転半径を0クリアすれば良い。
その後、ステップS15において算出され、ステップS16において信頼性があると判定された回転半径に基づいて、補正期間に演算に使用される半径を選択する(ステップS17)。このステップS17の回転半径選択の処理については、図11を参照して後で説明する。
そして、このステップS17の処理が終了するか、または、上述したステップS14においてゼロクロスが検出されなかった場合には、この回転半径算出処理から図9に示すメイン処理に復帰する。
次に、図11は、図10のステップS17における回転半径選択の処理の詳細を示すフローチャートである。
この処理を開始すると、まず、ステップS15において算出され、ステップS16において信頼性があると判定された回転半径を、最新の算出値から、半径の符号の正負に応じて所定数分保持する(ステップS21)。ここで保持する所定回数の回転半径は、続く平均化の処理に必要な回数分のものとなるが、ここでは例えば、最新のものから過去へ遡って、正の回転半径、および負の回転半径をそれぞれ5個分ずつ保持する。
図12は半径算出部764a,764b内のメモリに保持されている正および負の回転半径の例を示す図表である。図示のように、正用メモリには、右肩に+記号を付している正の回転半径Rが、右下に0~4の数字を付している最新のものから過去のものへ遡って5個分保存される。同様に、負用メモリには、右肩に-記号を付している負の回転半径Rが、右下に0~4の数字を付している最新のものから過去のものへ遡って5個分保存される。そして、上述したステップS15およびステップS16において、信頼性のある最新の半径が算出されると、それが正の半径である場合には正用メモリ内の記憶内容が1段繰り下がって、最新の半径を記憶する欄に算出された最新のものが記憶され、負の半径である場合には負用メモリについて同様の処理が行われる。従って、半径算出部764a,764b内のメモリに保存されている最も過去の半径は、現世代から遡って、9世代前、もしくはそれ以上前の半径である。
続いて、半径の誤算出の影響を軽減するために、半径の平均化を行う(ステップS22)。ただし、半径には正のものと負のものとがあるために、正負を混合して平均化すると打ち消し合って0に近付いてしまう。従ってここでは、半径が正の場合と、負の場合で分けて平均化を行う。
具体的には、以下の数式9に示すように、正用メモリに保存された5個の正の回転半径Rを平均化して正の平均回転半径AvR+を算出し、負用メモリに保存された5個の負の回転半径Rを平均化して負の平均回転半径AvR-を算出する。
[数9]
半径を算出する場合に、加速度または角加速度の値が小さいとノイズ成分の影響が大きくなる。このようなときには算出される半径にばらつきが発生することになるが、平均化を行うことにより、その影響を軽減することができる。
半径を算出する場合に、加速度または角加速度の値が小さいとノイズ成分の影響が大きくなる。このようなときには算出される半径にばらつきが発生することになるが、平均化を行うことにより、その影響を軽減することができる。
そして、ステップS22において算出された正の平均回転半径AvR+と負の平均回転半径AvR-との何れを用いるかを決定するために、重み付け演算を行う(ステップS23)。
具体的には、ステップS21において保存する半径に、最新のものほど重く、最新から過去へ遡るにつれて軽くなる重みを付与する。図13は、半径に与える重みの例を示す線図である。図13には、最新のものが一定の重みをもち、過去へ遡ると単調減少して0に漸近して行く重みの例を示している。
ステップS21において保存している半径は、図12に示した例では、正のものと負のものとを合計すると10個である。これらの内の例えば最新の5個、つまり現世代~4世代前までの半径に重みを与える。
図14は半径に与える重み付けの一例を示す図表である。
まず、時刻-t1において取得された現世代の重み付けを5とし、同様に重み付けを、1世代前(時刻-t2)が4、2世代前(時刻-t3)が3、3世代前(時刻-t4)が2、4世代前(時刻-t5)が1であるものとする。そして、現世代から4世代前までに得られた半径の符号が、例えば+,+,-,+,+の順であったとする。このときに、正の半径に対する+評価値、および負の半径に対する-評価値を、各符号に対して得られた重みの加算により算出する。図14に示す例においては、
+評価値=5+4+2+1=12
-評価値=3
である。
+評価値=5+4+2+1=12
-評価値=3
である。
半径算出部764a,764bは、得られた評価値を比較するための所定の閾値を予め備えており、この閾値は全重み(5+4+3+2+1=15)の半値以上の値に設定されている。従って、この閾値以上の値は、正の半径に対する加算重みと負の半径に対する加算重みとの両方が取ることはできず、取り得るとしても何れか一方のみである(ただし、下記に説明するように両方とも取らない場合もある)。ここでは、この閾値が10に設定されているものとする。図14に示した例では、評価値と閾値との比較結果は、
+評価値=12≧10
-評価値=3 <10
となる。
+評価値=12≧10
-評価値=3 <10
となる。
従って、半径更新を行い、半径算出部764a,764bは、評価値が閾値以上となった符号の平均回転半径、ここでは正の平均回転半径AvR+を速度算出部765a,765bへ出力する(ステップS24)。
また、-評価値が閾値以上となった場合には、半径算出部764a,764bは、負の平均回転半径AvR-を速度算出部765a,765bへ出力することになる。
さらに、現世代から4世代前までに得られた半径の符号が、例えば+,-,-,+,+の順である場合には、
+評価値=5+2+1=8<10
-評価値=3+4=7<10
であり、何れの評価値も閾値以上とはならない。この場合には、半径算出部764a,764bは、半径更新の処理として、半径0を速度算出部765a,765bへ出力する(つまり、0クリアする)。これは、評価値が所定の閾値以上でないと、回転半径の符号が+であるか-であるかが十分に明確ではないと考えられるために、誤った符号の回転半径を用いた誤補正を未然に防止するべく、補正量を算出しないようにしたためである。
+評価値=5+2+1=8<10
-評価値=3+4=7<10
であり、何れの評価値も閾値以上とはならない。この場合には、半径算出部764a,764bは、半径更新の処理として、半径0を速度算出部765a,765bへ出力する(つまり、0クリアする)。これは、評価値が所定の閾値以上でないと、回転半径の符号が+であるか-であるかが十分に明確ではないと考えられるために、誤った符号の回転半径を用いた誤補正を未然に防止するべく、補正量を算出しないようにしたためである。
こうして、ステップS24の処理が終了したら、この図11に示す回転半径選択処理から図10に示す回転半径算出処理に復帰する。
なお、図11に示した処理では、半径の符号を選択する際に重み付けを利用して判定しているが、これに限定されるものではない。例えば、符号別に算出された正の半径の平均値と負の半径の平均値との内の、ステップS16において信頼性があると判定された最新の半径の符号と同一の符号の平均値を速度算出部765a,765bへ出力するようにしても構わない。
あるいは、図7、図8A、図8Bを参照して説明したように、一般的な撮影においては回転中心は右手でカメラを保持する撮影者側にあることが多いと考えられるために、このような撮影状況を想定して、半径の符号を一方に固定することも考えられる。
このような実施形態1によれば、ヨー方向の角速度から検出した横方向の移動速度とロール方向の角速度から検出した横方向の移動速度とを速度合成部で合成して横の移動速度を算出し、ピッチ方向の角速度から検出した縦方向の移動速度とロール方向の角速度から検出した縦方向の移動速度とを速度合成部で合成して縦の移動速度を算出するために、ヨー方向の角速度およびピッチ方向の角速度のみに基づいて算出した移動速度よりも正確に移動速度を検出することができる。
また、ヨー方向の回転運動(角加速度)が0になるタイミング(時刻)でロール方向の回転運動が横方向に影響を与える半径を算出し、ピッチ方向の回転運動(角加速度)が0になるタイミング(時刻)でロール方向の回転運動が縦方向に影響を与える半径を算出し、ロール方向の回転運動(角加速度)が0になるタイミング(時刻)でヨー方向とピッチ方向の回転運動がそれぞれ横方向と縦方向に影響を与える半径を算出しているために、各回転軸の複雑な関係演算を解く必要がなく、演算負荷を増加させることなく比較的簡単に半径を算出することができる。
さらに、角速度センサおよび加速度センサによって検出された角速度および加速度を所定回数分のサンプリングデータで平均化しているために、後段の微分処理において強調される高周波成分の影響を抑制することができる。そして、平均化によって複数サンプル分のデータを1サンプルのデータとして扱うことができるために、処理対象のデータ量が圧縮されて、演算負荷を低減することができる。
そして、角速度を微分して角加速度を算出し、算出した角加速度と検出した加速度とに基づいて半径を算出するようにしたために、加速度を積分して速度を算出し、速度と角速度とに基づいて半径を算出する場合よりも、誤差を小さくすることができる。これは、積分演算を行うと誤差が累積する可能性があるために、このような累積誤差による誤算出を回避することができるためである。
加えて、半径算出に係る加速度と角加速度との少なくとも一方が所定の閾値よりも小さい場合は半径の算出を行わず0を出力するようにしたために、何れかが小さい場合に生じると考えられるノイズの影響を未然に防止することができ、半径の誤算出を回避することができる。
また、算出され信頼性があると判定された半径を、最新のものから所定回数分だけ平均化することにより、算出された半径のばらつきを低減することができる。このとき、算出した半径を、正の半径と負の半径とで別々に平均化しているために、回転中心の位置に応じた半径の平均化を行うことができる。
さらに、算出した平均半径の内の、正の平均半径を用いるか負の平均半径を用いるかを、最新の算出された半径の符号に基づき判定する場合には、回転中心位置の変化に素早く対応することができ、リアルタイム性が高い利点がある。
一方、算出された半径の最新から過去へ所定世代の符号を解析して、最新のものから順に重みを半径の符号別に加算して行き、正の符号の重み合計(+評価値)と、負の符号の重み合計(-評価値)との内の、何れか一方が所定の閾値以上となった場合は、閾値以上となった符号の平均半径を用いるようにしたために、過去の半径算出経過から符号の正しさを推定することができる。また、何れの評価値も所定の閾値未満の場合には半径として0を出力するようにしたために、半径の符号の正しさを推定することができない場合に補正量が算出されなくなり、誤補正を防止することができる。
こうして、撮像装置であるカメラ1に発生する並進移動量を、ヨーおよびピッチの回転運動によるものに加えて、ロールの回転運動による影響も考慮するようにしたために、従来よりも、簡易な構成で補正量を精度良く算出することができる。そして、検出した移動量によるブレ量を打ち消すように撮像素子を駆動することにより、並進ブレ量を除去した画像をカメラ1で撮影することができる。
すなわち、比較的簡易な処理で、並進ブレ量をより正確に検出することができるブレ量検出装置、撮像装置、ブレ量検出方法となる。
[実施形態2]
図15から図18は本発明の実施形態2を示したものであり、図15はブレ補正マイクロコンピュータの構成を示すブロック図である。この実施形態2において、上述の実施形態1と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
図15から図18は本発明の実施形態2を示したものであり、図15はブレ補正マイクロコンピュータの構成を示すブロック図である。この実施形態2において、上述の実施形態1と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
本実施形態におけるブレ補正マイクロコンピュータ7は、図5に示した実施形態1のブレ補正マイクロコンピュータ7の構成に、HPF701fと、角速度軸傾き感度補正部707aと、加速度軸傾き感度補正部707bと、加速度重力補正部707cと、静止状態検出部708aと、姿勢状態判断部708bと、一時メモリ74と、を追加したものとなっている。
加速度取得部702は、加速度センサから読み出してX軸、Y軸、Z軸の各方向へ分割した加速度情報の内のZ加速度を、さらにHPF701fへ出力する。
HPF701fは、CPU70に含まれており、加速度取得部702から入力されるZ加速度から低周波成分を除去して、処理結果を加速度軸傾き感度補正部707bへ出力する。
角速度軸傾き感度補正部707aは、軸補正部であってCPU70に含まれ、HPF701a~701cおよび通信部705から入力を受け、処理結果を角度ブレ補正部703、並進ブレ補正部704、加速度重力補正部707c、および静止状態検出部708aへ出力する。
加速度軸傾き感度補正部707bは、軸補正部であってCPU70に含まれ、HPF701d~701fおよび通信部705から入力を受け、処理結果を加速度重力補正部707cへ出力する。
加速度重力補正部707cは、CPU70に含まれ、角速度軸傾き感度補正部707aと加速度軸傾き感度補正部707bとから入力を受け、処理結果を並進ブレ補正部704へ出力する。
静止状態検出部708aは、角速度軸傾き感度補正部707aから入力を受け、処理結果を姿勢状態判断部708bへ出力する。
姿勢状態判断部708bは、加速度感度補正情報算出部であって、加速度取得部702、静止状態検出部708a、一時メモリ74、通信部705から入力を受け、処理結果を一時メモリ74または通信部705へ出力する。
一時メモリ74は、姿勢状態判断部708bと接続されていて、情報を一時的に記憶する揮発性の記憶部である。
次に、このようなブレ補正マイクロコンピュータ7における軸補正の処理について説明する。
角速度センサ8や加速度センサ9は、部品レイアウト等の設計上の都合に起因して、あるいは取付時の誤差などの個体差に起因して、図1に示したようなXYZ軸にそれぞれ完全に一致したものとなるとは限らない。また、センサ感度もXYZ軸のそれぞれが完全に同一となるとは限らない。そこで、記憶部である内部フラッシュメモリ13には、各センサの軸の傾きと感度とを補正するための補正情報Rが保存されている。この補正情報は、例えば、以下の数式10に示すような3×3の行列係数である。
[数10]
この補正情報Rには、各センサの軸の所定の標準方向に対する傾きに関する情報(検出部傾き情報)と、各センサの感度に関する情報(感度補正情報)とが含まれていて、角速度センサ8と加速度センサ9とのそれぞれに対する補正情報として内部フラッシュメモリ13に保存されている。
この補正情報Rには、各センサの軸の所定の標準方向に対する傾きに関する情報(検出部傾き情報)と、各センサの感度に関する情報(感度補正情報)とが含まれていて、角速度センサ8と加速度センサ9とのそれぞれに対する補正情報として内部フラッシュメモリ13に保存されている。
この内部フラッシュメモリ13に記憶された補正情報Rは、システムコントローラ6からSIO72bを介して、カメラ起動時にブレ補正マイクロコンピュータに送信される。
角速度軸傾き感度補正部707aは、通信部705を介して受信した角速度センサ8用の補正情報Rに基づいて、角速度センサ8から入力された角速度の情報Sに対して、軸の傾きと感度とを補正して、補正後の角速度の情報Oを得る。同様に、加速度軸傾き感度補正部707bは、通信部705を介して受信した加速度センサ9用の補正情報Rに基づいて、加速度センサ9から入力された加速度の情報Sに対して、軸の傾きと感度とを補正して、補正後の加速度の情報Oを得る。
ここに、補正情報Rを用いて、補正前の情報Sから補正後の情報Oを得る演算は、例えば以下の数式11に示すように行う。
[数11]
続いて、図16および図17を参照して、ブレ補正マイクロコンピュータ7における重力補正の処理について説明する。図16は加速度重力補正部707cの構成を示すブロック図、図17は加速度と重力との成分関係を示す図である。
続いて、図16および図17を参照して、ブレ補正マイクロコンピュータ7における重力補正の処理について説明する。図16は加速度重力補正部707cの構成を示すブロック図、図17は加速度と重力との成分関係を示す図である。
図16に示すように、加速度重力補正部707cは、積算部771と、絶対姿勢算出部772と、オフセット成分取得部773と、重力加速度算出部774と、第1の加算部775と、第2の加算部776と、第3の加算部777と、を備えている。
加速度軸傾き感度補正部707bからの3軸加速度は、絶対姿勢算出部772と第3の加算部777へ入力される。
上述した角速度軸傾き感度補正部707aからの3軸角速度は、積算部771へ入力される。
第1の加算部775は、絶対姿勢算出部772の出力を入力すると共に、積算部771の出力を反転入力して加算する。
オフセット成分取得部773は、第1の加算部775の出力からオフセット成分を取得する。
第2の加算部776は、オフセット成分取得部773の出力と積算部771の出力とを入力して加算する。
重力加速度算出部774は、第2の加算部776の出力から重力加速度を算出する。
第3の加算部777は、加速度軸傾き感度補正部707bからの3軸加速度を入力すると共に、重力加速度算出部774の出力を反転入力して加算し、重力補正後の加速度として出力する。
このような加速度重力補正部707cの処理について、さらに詳細に説明する。
この加速度重力補正部707cは、角速度情報を利用して、検出された加速度に含まれている重力成分を補正するようになっている。
まず、角速度情報を積算部771は、検出された角速度Sgを累積、つまり数式12に示すように時間に対して積分することにより、積分開始時点からのカメラ1の相対姿勢情報Arを算出する。
[数12]
絶対姿勢算出部772は、加速度情報Saに基づき、カメラ1の絶対姿勢情報Aa’を次の数式13に示すように算出する。ただし、算出元の加速度情報Saには並進ブレによる加速度の成分が含まれているために、算出される絶対姿勢情報Aa’にも並進ブレの影響が含まれることになる。
絶対姿勢算出部772は、加速度情報Saに基づき、カメラ1の絶対姿勢情報Aa’を次の数式13に示すように算出する。ただし、算出元の加速度情報Saには並進ブレによる加速度の成分が含まれているために、算出される絶対姿勢情報Aa’にも並進ブレの影響が含まれることになる。
第1の加算部775は、絶対姿勢算出部772により算出された絶対姿勢情報Aa’から、積算部771により算出された相対姿勢情報Arを減算して、減算結果の(Aa’-Ar)を出力する。
オフセット成分取得部773は、第1の加算部775の出力の、例えば移動平均を次の数式14に示すようにとることにより、絶対姿勢算出部772により算出された絶対姿勢情報Aa’の初期値、つまり姿勢オフセットAoを算出する。
[数14]
Ao=<Aa’-Ar>
ここに、記号<>は移動平均をとることを示している。
Ao=<Aa’-Ar>
ここに、記号<>は移動平均をとることを示している。
第2の加算部776は、オフセット成分取得部773により算出された姿勢オフセットAoを、積算部771により算出された相対姿勢情報Arに加算することにより、数式15に示すように、並進ブレの影響が含まれていない絶対姿勢情報Aaを取得する。
[数15]
Aa=Ar+Ao
重力加速度算出部774は、第2の加算部776により算出された絶対姿勢情報Aaに基づいて、次の数式16に示すように加速度補正情報gc(加速度情報Saに含まれている重力成分の情報)を算出する。
Aa=Ar+Ao
重力加速度算出部774は、第2の加算部776により算出された絶対姿勢情報Aaに基づいて、次の数式16に示すように加速度補正情報gc(加速度情報Saに含まれている重力成分の情報)を算出する。
[数16]
gc=sin(Aa)
第3の加算部777は、加速度情報Saから加速度補正情報gcを減算することにより、重力加速度成分を含まない正確な並進加速度を取得して、並進ブレ補正部704へ出力する。
gc=sin(Aa)
第3の加算部777は、加速度情報Saから加速度補正情報gcを減算することにより、重力加速度成分を含まない正確な並進加速度を取得して、並進ブレ補正部704へ出力する。
加速度重力補正部707cは、このような演算を、並進ブレ補正部704において用いられるX加速度とY加速度とについてそれぞれ行う。
次に、図18はカメラ1における経時変化補正処理を示すフローチャートである。
加速度センサ9の感度は経時変化することが知られており、長い期間に渡ってカメラ1を利用していると、加速度センサ9の出力を利用する並進ブレ補正部704の補正値が正確でなくなってくると考えられる。このために、適当な期間毎に、加速度センサ9の感度を補正するための情報R(数式10参照)を修正することが望ましい。
そこで、本実施形態においては、カメラ1が静止しているときに加速度センサ9に加わる加速度が重力のみとなることを利用して、補正情報Rを修正するようにしている。同一の加速度が印加されている加速度センサ9から出力される3軸加速度(Sx,Sy,Sz)(数式11参照)が、経時変化によって(kx×Sx,ky×Sy,kz×Sz)に変化したとすると、求める未知のパラメータは(kx,ky,kz)の3つであるために、カメラ1が独立した3つ以上の静止姿勢を取っているときの加速度センサ9の出力を利用すれば、加速度センサ9の感度を精度良く推定することが可能である。
カメラ1の電源がオンされると、この経時変化補正処理が開始される。
ブレ補正マイクロコンピュータ7は、手ブレ補正システムをオンして、角速度センサ8および加速度センサ9の出力を受信し、手ブレ量を算出して、駆動部5による手ブレ補正を実行する状態にする(ステップS41)。
この状態において、姿勢状態判断部708bは、加速度センサ9からの加速度情報を加速度取得部702を介して取得する(ステップS42)。
一方、静止状態検出部708aは、角速度軸傾き感度補正部707aから出力される3軸角速度の情報を利用して、カメラ1が静止状態であるか否かを判定して、姿勢状態判断部708bへ送信している。そこで、姿勢状態判断部708bは、この静止状態検出部708aからの出力に基づき、カメラ1が静止状態であるか否かを判定する(ステップS43)。
姿勢状態判断部708bは、カメラ1が静止状態であると判定した場合には、さらにステップS42において取得した加速度情報に基づきカメラ1の姿勢を判定して、判定した姿勢に応じた一時メモリ74内の記録空間に該加速度情報を保存する(ステップS44)。ここに、一時メモリ74は、姿勢毎に異なった記録空間に、加速度情報(加速度センサ9の出力値)を記録するように構成されている。
このステップS44の処理が終了するか、またはステップS43においてカメラ1が静止状態でないと判定された場合には、ブレ補正マイクロコンピュータ7は、電源スイッチからカメラ1の電源をオフするパワーオフ命令が入力されたか否かを判定する(ステップS45)。
ここで、パワーオフ命令が入力されていないと判定した場合には、ステップS42へ戻って上述したような処理を繰り返して行う。
また、ステップS45においてパワーオフ命令が入力されたと判定した場合には、カメラ1が電源オフされると一時メモリ74の内容が保持できなくなるために、姿勢状態判断部708bは、一時メモリ74に保存している姿勢に応じた加速度情報を、通信部705とSIO72bとを介してシステムコントローラ6側へ送信する(ステップS46)。
その後、ブレ補正マイクロコンピュータ7は、パワーオフして(ステップS47)終了する。
一方、システムコントローラ6は、電源がオンされると、電源スイッチからパワーオフ命令が入力されたか否かを定期的に判定している(ステップS31)。
そして、パワーオフ命令が入力されたと判定した場合には、ブレ補正マイクロコンピュータ7から転送される加速度情報を受信する(ステップS32)。
さらに、システムコントローラ6は、受信した姿勢に応じた加速度情報を、内部フラッシュメモリ13内の姿勢に応じた記録空間に保存する(ステップS33)。
その後、システムコントローラ6は、内部フラッシュメモリ13に保存された加速度情報が加速度センサ9の感度補正を行うのに十分な量に達したか否かを判定する(ステップS34)。この判定は、加速度情報が、上述したような独立した3つ以上の静止姿勢において取得されたか否かに基づき行われるが、統計的な精度をより高めるためには、独立した3つ以上の静止姿勢において、3よりも大きい所定数以上の加速度情報が内部フラッシュメモリ13に保存されているか否かに基づき、判定を行うと良い。
ここで、内部フラッシュメモリ13に保存された加速度情報が十分な量に達したと判定した場合には、システムコントローラ6は、例えば最小二乗法を用いて上述した修正用のパラメータ(kx,ky,kz)を算出する(ステップS35)。
そして、システムコントローラ6は、算出した修正用のパラメータ(kx,ky,kz)が妥当であるか否かを判定する(ステップS36)。この判定は、例えば、各修正用パラメータの値が所定範囲内であるか否かに基づき行われる。具体的には、各修正用パラメータが下記数式17~数式19を全て満たせば妥当であると判定し、全て満たさない場合には妥当でないと判定する。
[数17]
Thmin≦kx≦Thmax
[数18]
Thmin≦ky≦Thmax
[数19]
Thmin≦kz≦Thmax
ここに、Thminは妥当範囲の下限値を示し、Thmaxは妥当範囲の上限値を示している。修正がない場合にはkx=ky=kz=1となるために、Thminの値の一例は0.9(より望ましくは0.95)、Thmaxの値の一例は1.1(より望ましくは1.05)などである。ただし、この下限値Thminおよび上限値Thmaxは、カメラ1に実装する加速度センサ9の製品毎に適切な値となるように決定すると良い。
Thmin≦kx≦Thmax
[数18]
Thmin≦ky≦Thmax
[数19]
Thmin≦kz≦Thmax
ここに、Thminは妥当範囲の下限値を示し、Thmaxは妥当範囲の上限値を示している。修正がない場合にはkx=ky=kz=1となるために、Thminの値の一例は0.9(より望ましくは0.95)、Thmaxの値の一例は1.1(より望ましくは1.05)などである。ただし、この下限値Thminおよび上限値Thmaxは、カメラ1に実装する加速度センサ9の製品毎に適切な値となるように決定すると良い。
このステップS36において、修正用パラメータが妥当であると判定した場合には、システムコントローラ6は、算出したパラメータ(kx,ky,kz)を用いて、加速度軸傾き感度補正部707bが用いる補正情報Rを修正する(ステップS37)。具体的には、数式10に示した各係数に対して、Rxx,Ryx,Rzxをkxで各除算し、Rxy,Ryy,Rzyをkyで各除算し、Rxz,Ryz,Rzzをkzで各除算する処理を行う。
そして、システムコントローラ6は、修正後の補正情報Rを内部フラッシュメモリ13の、修正前の補正情報Rに上書き保存する(ステップS38)。
このステップS38の処理が終了するか、またはステップS34において加速度情報が十分な量に達していないと判定された場合、あるいはステップS36において修正用パラメータが妥当でないと判定された場合には、システムコントローラ6は、カメラ1全体をパワーオフして(ステップS39)終了する。
このような処理により、次回にカメラ1の電源がオンされたときには、加速度軸傾き感度補正部707bは、修正後の補正情報Rを用いて加速度の軸の傾きと感度とを補正することになる。
なお、上述では加速度センサ9の感度補正を、カメラ1の電源がオフされるときに行うようにしているが、これに限るものではなく、例えばカメラ1の電源がオンされたときに行っても良いし、その他のタイミングで行っても構わない。
また、上述では加速度情報を一時メモリ74に保存して、カメラ1の電源がオフされるときにシステムコントローラ6側へ送信し、内部フラッシュメモリ13に保存したが、最初から内部フラッシュメモリ13に保存しても良い。
このような実施形態2によれば、上述した実施形態1とほぼ同様の効果を奏するとともに、角速度センサ8および加速度センサ9の軸補正を行うようにしたために、より精度の高いブレ補正を行うことが可能となる。
また、重力が加速度センサ9に及ぼす影響を除去するようにしたために、撮影姿勢の影響を受けることなく、精度の高いブレ補正を行うことが可能となる。このとき、角速度情報に基づき算出した相対姿勢情報を、オフセット情報に基づいて補正して絶対姿勢を求めているために、リアルタイム性の高い検出が可能になる。
さらに、加速度センサ9の経時変化による感度補正を行うようにしているために、使用時間が長くなるに従って加速度センサ9の感度が変化したとしても、正確なブレ補正性能を維持することが可能となる。
次に、上述した実施形態1,2は、ロール角加速度(またはロール角速度)がゼロクロスするタイミングでヨー半径およびピッチ半径を算出し、ヨー角速度(またはヨー角速度)がゼロクロスするタイミングでXZロール半径を算出し、ピッチ角加速度(またはピッチ角速度)がゼロクロスするタイミングでYZロール半径を算出を算出していた。これに対して、以下に説明する実施形態3~7は、任意のタイミングで各半径を算出することができるように一般化した実施形態となっている。
[実施形態3]
図19から図25は本発明の実施形態3を示したものである。この実施形態3において、上述の実施形態1,2と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
図19から図25は本発明の実施形態3を示したものである。この実施形態3において、上述の実施形態1,2と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
まず、本実施形態における撮像装置、ブレ補正マイクロコンピュータの構成は、上述した実施形態1の図3、図4に示した構成と同様である。
次に、図19はX方向並進ブレ補正部704xの構成を示すブロック図である。
Y方向並進ブレ補正部704yはX方向並進ブレ補正部704xと構成が同一であって、入力がヨー角速度に代えてピッチ角速度、X加速度に代えてY加速度になるだけである。従って、ここでは、図19を参照してX方向並進ブレ補正部704xのみについて説明する。
X方向並進ブレ補正部704xは、平均化部761a~761cと、角加速度算出部763a,763bと、記憶部753a,753b,753cと、半径算出部764a,764bと、ブレ量算出部785と、乗算部768と、を備えている。
平均化部761a~761cは、時系列的に入力される角速度および加速度を平均化する。この平均化は、例えば、4サンプリング分のデータの平均値を算出し、1つのサンプリング値として出力することにより行う。この平均化は、後段の角加速度算出部763a,763bにおける微分演算により高周波成分か強調されるのを抑制する効果があるとともに、データ量が1/4に減るために、演算量を削減する効果もある。
角加速度算出部763a,763bは、平均化された角速度を微分して角加速度を算出する。
記憶部753a,753bは、角加速度算出部763a,763bにより算出された角加速度を、半径算出部764a,764bにおける半径算出に必要な過去データ分まで記憶する。
同様に、記憶部753cは、平均化部761cにより平均化された加速度を、半径算出部764a,764bにおける半径算出に必要な過去データ分まで記憶する。
これら記憶部753a,753b,753cに記憶されるデータが、図20に示すような時刻t1,t2,…のデータとなる。ここに、各時刻t1,t2,…は、例えば等時間間隔であるものとする。そして、図20は、半径を算出する時刻の例を説明するための線図である。
半径算出部764a,764bは、例えば加速度と角加速度に基づき回転半径Rを算出する回転半径算出部である(ただし、後述するように、速度と角速度に基づき回転半径Rを算出するようにしても構わない)。
まず、ヨー角加速度αω_yawと、ロール角加速度αω_rollと、ヨー半径Ryawと、XZロール半径Rrollxと、X加速度αv_xとの間には、以下の数式20に示すような関係式が成立すると仮定する。
[数20]
同様に、ピッチ角加速度αω_pitchと、ロール角加速度αω_rollと、ピッチ半径Rpitchと、YZロール半径Rrollyと、Y加速度αv_yとの間には、以下の数式21に示すような関係式が成立すると仮定する。
同様に、ピッチ角加速度αω_pitchと、ロール角加速度αω_rollと、ピッチ半径Rpitchと、YZロール半径Rrollyと、Y加速度αv_yとの間には、以下の数式21に示すような関係式が成立すると仮定する。
同様に、数式21における測定可能量はピッチ角加速度αω_pitch、ロール角加速度αω_roll、およびY加速度αy_xであり、求めたい量はピッチ半径RpitchおよびYZロール半径Rrollyである。
数式20および数式21の何れにおいても、未知数(求めたい量)が2つあるために、このままでは各半径を求めることはできない。そこで、第1の時刻T1における数式20と第2の時刻T2(なお、第1の時刻T1と第2の時刻T2の時間的前後は問わないが、例えば、第1の時刻T1が時間的に先、第2の時刻T2が時間的に後であるものとする)における数式20とを以下の数式22に示すように連立させ、同様に、第1の時刻T1における数式21と第2の時刻T2における数式21とを以下の数式23に示すように連立させる。
[数22]
[数23]
ここに、数式22および数式23においては、第1の時刻T1における各半径と、第2の時刻T2における各半径とは、変化量が小さく無視し得る(すなわち、Ryaw=Ryaw(T1)=Ryaw(T2)、Rpitch=Rpitch(T1)=Rpitch(T2)、Rrollx=Rrollx(T1)=Rrollx(T2)、Rrolly=Rrolly(T1)=Rrolly(T2)である)と仮定している。
[数23]
ここに、数式22および数式23においては、第1の時刻T1における各半径と、第2の時刻T2における各半径とは、変化量が小さく無視し得る(すなわち、Ryaw=Ryaw(T1)=Ryaw(T2)、Rpitch=Rpitch(T1)=Rpitch(T2)、Rrollx=Rrollx(T1)=Rrollx(T2)、Rrolly=Rrolly(T1)=Rrolly(T2)である)と仮定している。
そして、数式22の連立方程式の解は以下の数式24、数式23の連立方程式の解は以下の数式25に示すようになる。
[数24]
[数25]
そこで、半径算出部764aは、記憶部753aに記憶されている第1の時刻T1におけるヨー角加速度αω_yaw(T1)および第2の時刻T2におけるヨー角加速度αω_yaw(T2)と、記憶部753bに記憶されている第1の時刻T1におけるロール角加速度αω_roll(T1)および第2の時刻T2におけるロール角加速度αω_roll(T2)と、記憶部753cに記憶されている第1の時刻T1におけるX加速度αv_x(T1)および第2の時刻T2におけるX加速度αv_x(T2)とを用いて、数式24における第1式に基づいてヨー半径Ryawを算出する。
[数25]
そこで、半径算出部764aは、記憶部753aに記憶されている第1の時刻T1におけるヨー角加速度αω_yaw(T1)および第2の時刻T2におけるヨー角加速度αω_yaw(T2)と、記憶部753bに記憶されている第1の時刻T1におけるロール角加速度αω_roll(T1)および第2の時刻T2におけるロール角加速度αω_roll(T2)と、記憶部753cに記憶されている第1の時刻T1におけるX加速度αv_x(T1)および第2の時刻T2におけるX加速度αv_x(T2)とを用いて、数式24における第1式に基づいてヨー半径Ryawを算出する。
また、半径算出部764bは、半径算出部764aが用いるデータと同一のデータを用いて、数式24における第2式に基づいてXZロール半径Rrollxを算出する。
同様に、Y方向並進ブレ補正部704yの半径算出部764aは、記憶部753aに記憶されている第1の時刻T1におけるピッチ角加速度αω_pitch(T1)および第2の時刻T2におけるピッチ角加速度αω_pitch(T2)と、記憶部753bに記憶されている第1の時刻T1におけるロール角加速度αω_roll(T1)および第2の時刻T2におけるロール角加速度αω_roll(T2)と、記憶部753cに記憶されている第1の時刻T1におけるY加速度αv_y(T1)および第2の時刻T2におけるY加速度αv_y(T2)とを用いて、数式25における第1式に基づいてピッチ半径Rpitchを算出する。
また、Y方向並進ブレ補正部704yの半径算出部764bは、Y方向並進ブレ補正部704yの半径算出部764aが用いるデータと同一のデータを用いて、数式25における第2式に基づいてYZロール半径Rrollyを算出する。
ここに、半径算出部764a,764bが利用する各時刻における角加速度は、同時刻における角速度を少なくとも用いて得られる量である。
なお、数式24の第1式および数式25の第1式において、例えばロール角加速度αω_roll(T1)が0となる時刻T1を選択したとすると、時刻T1における数式1および数式3が得られる。また、数式24の第2式において、例えばヨー角加速度αω_yaw(T1)が0となる時刻T1を選択したとすると、時刻T1における数式2が得られる。さらに、数式25の第2式において、例えばピッチ角加速度αω_pitch(T1)が0となる時刻T1を選択したとすると、時刻T1における数式4が得られる。このことは、各角速度が0となる時刻としてT2を選択した場合でも同様である。従って、本実施形態は、上述した実施形態1の一般化であることが分かる。
すなわち、上述した実施形態1は、本実施形態において、第1の時刻を第1の軸周りの回転運動の影響がない時刻、第2の時刻を第2の軸周りの回転運動の影響がない時刻として、回転半径算出部が、第1の時刻の第2角速度と第3加速度とに基づき第2半径を算出するとともに、第2の時刻の第1角速度と第3加速度とに基づき第1-3射影半径を算出するものとなっている。
なお、本実施形態では、ヨー半径Ryaw、ピッチ半径Rpitch、XZロール半径Rrollx、YZロール半径Rrollyを算出する際に平均化されたX加速度αv_xおよび平均化されたY加速度αv_yを用いたが、平均化は必須要件ではなく好ましい要件であるために、平均化されていないX加速度および平均化されていないY加速度を用いても構わない。
ブレ量算出部785は、速度算出部765a,765bと、加算部766と、積分部767と、を備え、半径算出部764a,764bで算出された半径とHPF701a~701cから入力される角速度とに基づいて、X方向並進ブレ補正部704xに設けられている場合にはX軸方向の移動量を、Y方向並進ブレ補正部704yに設けられている場合にはY軸方向の移動量を、算出する。
速度算出部765a,765bは、半径算出部764a,764bで算出された半径とHPF701a~701cから入力される角速度とに基づいて、並進速度を算出する。
すなわち、X方向並進ブレ補正部704xの速度算出部765aは、半径算出部764aから入力されるヨー半径Ryawと、HPF701aから入力されるヨー角速度ωyawとを乗算することにより、ヨー回転運動に起因するX方向の並進速度(X軸方向へのX方向速度の第1成分)Ryaw×ωyawを算出する。
また、X方向並進ブレ補正部704xの速度算出部765bは、半径算出部764bから入力されるXZロール半径Rrollxと、HPF701cから入力されるロール角速度ωrollとを乗算することにより、ロール回転運動に起因するX方向の並進速度(X軸方向へのX方向速度の第2成分)Rrollx×ωrollを算出する。
X方向並進ブレ補正部704xの加算部766は、速度合成部であって、速度算出部765aの出力と速度算出部765bの出力とを加算することにより、ヨー回転運動とロール回転運動との両方に起因するX方向の並進速度(X方向速度)Vxを、上述した数式5(下記に再度記載)に示すように算出する。
[数5]
Vx=Ryaw×ωyaw+Rrollx×ωroll
同様に、Y方向並進ブレ補正部704yの速度算出部765a,765bがY方向速度の第1成分Rpitch×ωpitchとY方向速度の第2成分Rrolly×ωrollとを各算出し、Y方向並進ブレ補正部704yの速度合成部である加算部766がこれらを加算することにより、ピッチ回転運動とロール回転運動との両方に起因するY方向の並進速度(Y方向速度)Vyを上述した数式6(下記に再度記載)に示すように算出する。
Vx=Ryaw×ωyaw+Rrollx×ωroll
同様に、Y方向並進ブレ補正部704yの速度算出部765a,765bがY方向速度の第1成分Rpitch×ωpitchとY方向速度の第2成分Rrolly×ωrollとを各算出し、Y方向並進ブレ補正部704yの速度合成部である加算部766がこれらを加算することにより、ピッチ回転運動とロール回転運動との両方に起因するY方向の並進速度(Y方向速度)Vyを上述した数式6(下記に再度記載)に示すように算出する。
[数6]
Vy=Rpitch×ωpitch+Rrolly×ωroll
X方向並進ブレ補正部704xの積分部767は、移動量算出部として機能し、算出されたX方向速度Vxを上述した数式7(下記に再度記載)に示すように時間tに関して積分して、X軸方向への移動量ΔXを算出する。
Vy=Rpitch×ωpitch+Rrolly×ωroll
X方向並進ブレ補正部704xの積分部767は、移動量算出部として機能し、算出されたX方向速度Vxを上述した数式7(下記に再度記載)に示すように時間tに関して積分して、X軸方向への移動量ΔXを算出する。
[数7]
同様に、Y方向並進ブレ補正部704yの積分部767は、移動量算出部として機能し、算出されたY方向速度Vyを上述した数式8(下記に再度記載)に示すように時間tに関して積分して、Y軸方向への移動量ΔYを算出する。
同様に、Y方向並進ブレ補正部704yの積分部767は、移動量算出部として機能し、算出されたY方向速度Vyを上述した数式8(下記に再度記載)に示すように時間tに関して積分して、Y軸方向への移動量ΔYを算出する。
[数8]
こうして算出された移動量ΔX,ΔYは、角速度センサ8および加速度センサ9の移動量、つまりカメラ1自体の移動量である。これに対してブレ補正を行うためには、撮像素子4の撮像面上に結像される光学像の移動量を求める必要がある。そこで、乗算部768が、SIO72bおよび通信部705を介してシステムコントローラ6から入力されるパラメータである像倍率f(図24のステップS58参照)を、積分部767から入力される移動量ΔX,ΔYに乗算することにより、撮像面におけるブレ量に変換して補正量D(図24のステップS58参照)として出力する。
こうして算出された移動量ΔX,ΔYは、角速度センサ8および加速度センサ9の移動量、つまりカメラ1自体の移動量である。これに対してブレ補正を行うためには、撮像素子4の撮像面上に結像される光学像の移動量を求める必要がある。そこで、乗算部768が、SIO72bおよび通信部705を介してシステムコントローラ6から入力されるパラメータである像倍率f(図24のステップS58参照)を、積分部767から入力される移動量ΔX,ΔYに乗算することにより、撮像面におけるブレ量に変換して補正量D(図24のステップS58参照)として出力する。
こうして算出された補正量D(並進ブレ量)は、上述したように、加算部706において、角度ブレ量と加算される。従って、ドライバ73は、加算後のトータルのブレ量に基づいて、駆動部5を駆動するための信号を出力することになる。
なお、数式24および数式25は、割り算によって各半径を求める式であるために、分母の絶対値が小さいと、算出される半径の誤差が拡大する可能性がある。この点について、図21~図23を参照して説明する。まず、図21は角加速度および加速度の周期が半径を算出する時間間隔に比べて長いときの例を説明するための線図である。
角加速度および加速度の値が変化する周期が、半径を算出する時間t1,t2,…の間隔に比べて長いときには、例えば図21に示すようになる。ここに、図21の横軸(時間軸)は、図20に比べて圧縮されたものとなっている。
このような長い周期の角加速度および加速度に対して、第1の時刻T1=t1、第2の時刻T2=t2として各半径を算出し、引き続いて、第1の時刻T1=t2、第2の時刻T2=t3として各半径を算出し、さらに引き続いて、第1の時刻T1=t3、第2の時刻T2=t4として各半径を算出し、等を行うと、算出時間間隔における角加速度および加速度の変化量が小さいために、数式24および数式25における各式の分母の絶対値が小さくなる状態が発生することがある。
図22は、図21に示した角加速度および加速度の例において、ヨー半径Ryawを算出して得られる値の例を示す線図である。図示のように、実際のヨー半径Ryawを示す点線Realに対して、算出して得られるヨー半径Ryawを示す実線Calcは、算出式の分母の絶対値が小さくなる座標付近で誤差が拡大している。
また、図23は、図21に示した角加速度および加速度の例において、ロール半径Rroll(XZロール半径RrollxまたはYZロール半径Rrolly)を算出して得られる値の例を示す線図である。同様に、実際のロール半径Rrollを示す点線Realに対して、算出して得られるロール半径Rrollを示す実線Calcは、算出式の分母の絶対値が小さくなる座標付近で誤差が拡大している。
本実施形態では、このような、算出される半径の信頼性が低い場合に対応するための処理を行っており、これについては後で図25を参照して説明する。
次に、並進ブレ補正部704におけるブレ量検出の制御の流れを説明する。まず図24は、並進ブレ量の検出のメイン制御を示すフローチャートである。この図24に示すメイン処理は、例えば1msの時間間隔で定期的に実行される処理となっている。
このメイン処理を開始すると、まず、平均化部761a,761bにより平均化された角速度の算出を行うとともに(ステップS51)と、平均化部761cにより平均化された加速度の算出を行う(ステップS52)。このステップS52で算出された平均化された加速度は、記憶部753cに記憶される。
次に、角加速度算出部763a,763bにより、ステップS51において算出された角速度を時間で微分して、角加速度を算出する(ステップS53)。ここで算出された角加速度は、記憶部753a,753bに記憶される。
続いて、半径算出部764a,764bにより、記憶部753a,753b,753cに記憶された加速度および角加速度を用いて、数式24、数式25に示したような演算を行うことにより、回転半径を算出する(ステップS54)。
その後、半径算出部764a,764bは、ステップS54において算出した回転半径が速度算出に使用可能であるか否かの信頼性判定をさらに行う(ステップS55)。
並進速度成分は、回転半径と角速度との乗算により算出されるために、回転半径の絶対値が大きい場合には、算出される並進速度成分の絶対値も大きくなり、つまり補正量も大きくなる。従って、もし回転半径に誤差が含まれている場合には、誤差に起因する補正量も大きくなり、誤補正に至る可能性がある。
このために、ステップS54において算出された回転半径を所定の閾値と比較して、回転半径が所定の閾値よりも大きい場合は、信頼性がないと判定して速度算出には用いないことにする(具体的な処理としては、半径算出部764a,764bから出力する回転半径を0とする:すなわち、回転半径を0クリアする)。
また、ステップS54において半径を算出するときに、数式24、数式25に示したように割り算を用いているために、分母が0近傍の値である場合には算出結果が極めて大きな値(場合によっては発散)となる。従って、絶対値が大きい回転半径を用いないようにすることで、このような0除算に起因する誤補正を防止することができる。
このステップS55における信頼性判定の方法は、上述に限るものではなく、その他の各種の方法を採用することが可能である。
例えば、回転半径の絶対値の大きさに基づき判定するのに代えて、もしくは加えて、数式24または数式25における、分母の絶対値が所定の値未満であることと、分子の絶対値が所定の値未満であることと、の少なくとも一方が成立する場合、つまり数式24または数式25の何れかの算出式における右辺の分母と分子の少なくとも一方の絶対値が予め定めた閾値よりも小さい場合には、半径算出部764a,764bは、その数式により算出された回転半径に信頼性がないと判定して、算出結果を用いることなく、回転半径0を出力するようにしても良い。
なお、回転半径を0クリアする場合としては、さらに、以下のような場合が挙げられる。
回転半径を0クリアする第1のケースは、静止状態が検出されている場合である。静止状態ではブレがないために、回転半径を0クリアすることにより、誤補正を防止することができる。この静止状態の検出方法としては、例えば、角速度センサ8の出力および加速度センサ9の出力が、ノイズ等と考えられる成分を除いて、所定時間以上、継続して実質的に0となることが挙げられる。また、静止状態であると検出される状態の他の一例は、三脚検出部等により三脚接続が検出されることである。この三脚接続の検出方法については、公知の種々の方法を利用可能であるために具体例は述べないこととする。
回転半径を0クリアする第2のケースは、パン操作が検出された場合である。パン操作は一般に手ブレには含まれず、しかも比較的大きな角度範囲で移動されるために駆動部5による補正レンジを超える場合が多い。加えて、パン操作が行われるとHPF(特にHPF701aやX軸方向の加速度に係るHPF)の影響が後に残るために、パン操作が行われた直後のしばらくの期間は正常な補正量の算出ができなくなる。従って、パン操作に係るヨー回転運動から算出される回転半径、つまり数式20により算出されるヨー半径Ryawを0クリアすることで、パン操作後のHPF701の影響による誤補正を防止することができる。なお、パン操作の検出は、角速度センサ8や加速度センサ9の検出値、つまり、HPF701a~701e(特にHPF701aやHPF701d)からの出力(検出値)が所定の時間を超えて変化しないこと、または、検出値の符号が所定の時間を超えて変化しないことを検出することにより、判定することができる。
さらに、上述した以外にも、算出する補正量の信頼性が低いと判定された場合には、適宜、回転半径を0クリアすれば良い。
カメラ1には、角速度や加速度を検出して回転半径の算出は行うがブレ補正は行わない検出期間と、回転半径の算出と算出した回転半径を用いたブレ補正との両方を行う補正期間と、の2つの制御期間がある。この制御期間が検出期間であるか補正期間であるかは、例えばステートフラグに記録されるようになっている。
そして、ブレ補正マイクロコンピュータ7は、ステートフラグを参照することにより、制御期間が補正期間であるか否かを判定する(ステップS56)。
ここで補正期間中であると判定された場合には、速度算出部765a,765bおよび加算部766が、ステップS55において信頼性があると判定された半径Rと、角速度センサ8から出力される角速度ωとを数式5および数式6に示したように乗算して加算することにより、並進速度Vを算出する(ステップS57)。
さらに、積分部767が並進速度Vを時間で積分して、この積分結果に乗算部768が像倍率fを乗算することにより、撮像面に発生する並進移動量を算出する(ステップS58)。
このステップS58が終了するか、または上述したステップS56において補正期間でない(つまり検出期間である)と判定された場合には、このメイン処理を終了する。
図25は、図24のステップS54における回転半径算出の処理の詳細を示すフローチャートである。なお、この回転半径算出処理は、ヨー半径Ryaw、ピッチ半径Rpitch、XZロール半径Rrollx、YZロール半径Rrollyのそれぞれに対して行われる。
この回転半径算出処理は、図21~図23を参照して上述したような算出される半径の信頼性が低い場合に対応する処理となっている。
すなわち、X方向並進ブレ補正部704xおよびY方向並進ブレ補正部704yの半径算出部764a,764bは、この処理を開始すると、第1の時刻T1と第2の時刻T2とが第1の時間間隔となるデータを用いて、数式24および数式25の各式における分母(本実施形態において、以下では、第1分母という)を算出する(ステップS61)。具体的には、図20や図21に示した各時刻t1,t2,…に対して、例えば、第1の時刻T1=t(i-1)、第2の時刻T2=tiとして第1分母を算出する。ここに、iは値が異なる場合に異なる時刻tを示す指標であり、例えば整数である。
次に、半径算出部764a,764bは、第1の時刻T1と第2の時刻T2とが第2の時間間隔となるデータを用いて、数式24および数式25の各式における分母(本実施形態において、以下では、第2分母という)を算出する(ステップS62)。具体的には、図20や図21に示した各時刻t1,t2,…に対して、例えば、第1の時刻T1=t(i-4)、第2の時刻T2=tiとして第2分母を算出する。なお、この例では、第2の時間間隔は第1の時間間隔の4倍であるが、これに限るものではなく、第1の時間間隔と第2の時間間隔とは適宜の比率で構わない。
続いて、半径算出部764a,764bは、第1分母の絶対値が第2分母の絶対値以上であるか否かを判定する(ステップS63)。この判定方法は、数式24および数式25の各式における分母の絶対値が大きい方が、算出される回転半径の信頼性が高いとする方法である。
ここで、第1分母の絶対値が第2分母の絶対値以上であると判定した場合には、半径算出部764a,764bは、第1時間間隔で回転半径を算出する(ステップS64)。
一方、第1分母の絶対値が第2分母の絶対値未満であると判定した場合には、半径算出部764a,764bは、第2時間間隔で回転半径を算出する(ステップS65)。
そして、ステップS64またはステップS65の処理を行ったところで、この回転半径算出処理から図24に示すメイン処理に復帰する。
なお、この図24に示す処理では第1の時間間隔のデータに基づき算出した分母と、第2の時間間隔のデータに基づき算出した分母と、の2種類の分母の信頼性判定を行ったが、さらに他の時間間隔のデータに基づくより多数種類の分母の信頼性判定を行っても勿論構わない。この場合には、例えば、最も絶対値が大きい分母を与えるデータに基づき算出される回転半径の信頼性が最も高いと判定すれば良い。
このような実施形態3によれば、ヨー方向の角速度から検出した横方向の移動速度とロール方向の角速度から検出した横方向の移動速度とを速度合成部で合成して横の移動速度を算出し、ピッチ方向の角速度から検出した縦方向の移動速度とロール方向の角速度から検出した縦方向の移動速度とを速度合成部で合成して縦の移動速度を算出するために、ヨー方向の角速度およびピッチ方向の角速度のみに基づいて算出した移動速度よりも正確に移動速度を検出することができる。
また、数式24および数式25に示したような加減乗除の演算により回転半径を算出することができるために、大きな演算負荷をかけることなく比較的簡単に半径を算出することができる。
このとき、複数の時間間隔のデータに基づき算出される回転半径の内の、数式24および数式25の各式における分母の絶対値が大きいものを信頼性が高いと判定するようにしたために、分母の絶対値が小さい場合の誤差拡大を防ぐことができる。
さらに、角速度センサおよび加速度センサによって検出された角速度および加速度を所定回数分のサンプリングデータで平均化しているために、後段の微分処理において強調される高周波成分の影響を抑制することができる。そして、平均化によって複数サンプル分のデータを1サンプルのデータとして扱うことができるために、処理対象のデータ量が圧縮されて、演算負荷を低減することができる。
そして、角速度を微分して角加速度を算出し、算出した角加速度と検出した加速度とに基づいて半径を算出するようにし、つまり半径算出における積分演算を不要としたために、積分演算を行う場合に累積する可能性がある誤差を回避することができ、累積誤差による誤算出が生じない利点がある。
加えて、算出される半径の信頼性が低い場合には半径として0を出力するようにしたために、半径の誤算出による誤補正を未然に防止することができる。
こうして、撮像装置であるカメラ1に発生する並進移動量を、ヨーおよびピッチの回転運動によるものに加えて、ロールの回転運動による影響も考慮するようにしたために、簡易な構成で、補正量を従来よりも精度良く算出することができる。そして、検出した移動量によるブレ量を打ち消すように撮像素子を駆動することにより、並進ブレ量を除去した画像をカメラ1で撮影することができる。
すなわち、比較的簡易な処理で、並進ブレ量をより正確に検出することができるブレ量検出装置、撮像装置、ブレ量検出方法となる。
[実施形態3の変形例]
ここで、上述した実施形態3の変形例を説明する。
ここで、上述した実施形態3の変形例を説明する。
実施形態3では、上述したように、角速度を微分して角加速度を算出し、算出した角加速度と検出した加速度とに基づいて半径を算出したが、この変形例は、加速度を積分して速度を算出し、算出した速度と角速度とに基づいて半径を算出するものである。
すなわち、回転半径は、角加速度と加速度とに基づいて算出するに限るものではなく、角速度と速度とに基づいて算出することも可能である。
この場合には、図19に示す構成において、角加速度算出部763a,763bを削除し(後述する図28において、平均化部761aと記憶部753dとの間、および平均化部761bと記憶部753eとの間に角加速度算出部がない例を参照)、平均化部761cと記憶部753cとの間に積分部を追加する(後述する図28において、平均化部761dの前段に設けられた、加速度を積分して速度を算出する積分部769参照)ことになる。この実施形態3の変形例においては、積分部は、図19の平均化部761cから出力される平均化された加速度を積分して、速度を算出する。具体的に、X方向並進ブレ補正部704xの積分部はX速度vxを算出し、Y方向並進ブレ補正部704yの積分部はY速度vyを算出する。
従って、本変形例においては、X方向並進ブレ補正部704xの半径算出部764a,764bに入力されるのは、ヨー角速度ωyaw、ロール角速度ωroll、およびX速度vxであり、Y方向並進ブレ補正部704yの半径算出部764a,764bに入力されるのは、ピッチ角速度ωpitch、ロール角速度ωroll、およびY速度vyである。
このとき、ヨー角速度ωyawと、ロール角速度ωrollと、ヨー半径Ryawと、XZロール半径Rrollxと、X速度vxとの間には、上述した数式5に示すような関係式が成立している。
同様に、ピッチ角速度ωpitchと、ロール角速度ωrollと、ピッチ半径Rpitchと、YZロール半径Rrollyと、Y速度vyとの間には、上述した数式6に示すような関係式が成立している。
そして、数式5における測定可能量はヨー角速度ωyaw、ロール角速度ωroll、およびX速度vxであり、求めたい量はヨー半径RyawおよびXZロール半径Rrollxである。
同様に、数式6における測定可能量はピッチ角速度ωpitch、ロール角速度ωroll、およびY速度vyであり、求めたい量はピッチ半径RpitchおよびYZロール半径Rrollyである。
数式5および数式6の何れにおいても、未知数(求めたい量)が2つあるために、上述と同様に、第1の時刻T1における数式5と第2の時刻T2における数式5とを以下の数式26に示すように連立させ、同様に、第1の時刻T1における数式6と第2の時刻T2における数式6とを以下の数式27に示すように連立させる。
そして、数式26の連立方程式の解は以下の数式28、数式27の連立方程式の解は以下の数式29に示すようになる。
[数28]
[数29]
そこで、X方向並進ブレ補正部704xの半径算出部764aは、記憶部753aに記憶されている第1の時刻T1におけるヨー角速度ωyaw(T1)および第2の時刻T2におけるヨー角速度ωyaw(T2)と、記憶部753bに記憶されている第1の時刻T1におけるロール角速度ωroll(T1)および第2の時刻T2におけるロール角速度ωroll(T2)と、記憶部753cに記憶されている第1の時刻T1におけるX速度vx(T1)および第2の時刻T2におけるX速度vx(T2)とを用いて、数式28における第1式に基づいてヨー半径Ryawを算出する。
[数29]
そこで、X方向並進ブレ補正部704xの半径算出部764aは、記憶部753aに記憶されている第1の時刻T1におけるヨー角速度ωyaw(T1)および第2の時刻T2におけるヨー角速度ωyaw(T2)と、記憶部753bに記憶されている第1の時刻T1におけるロール角速度ωroll(T1)および第2の時刻T2におけるロール角速度ωroll(T2)と、記憶部753cに記憶されている第1の時刻T1におけるX速度vx(T1)および第2の時刻T2におけるX速度vx(T2)とを用いて、数式28における第1式に基づいてヨー半径Ryawを算出する。
また、X方向並進ブレ補正部704xの半径算出部764bは、X方向並進ブレ補正部704xの半径算出部764aが用いるデータと同一のデータを用いて、数式28における第2式に基づいてXZロール半径Rrollxを算出する。
同様に、Y方向並進ブレ補正部704yの半径算出部764aは、記憶部753aに記憶されている第1の時刻T1におけるピッチ角速度ωpitch(T1)および第2の時刻T2におけるピッチ角速度ωpitch(T2)と、記憶部753bに記憶されている第1の時刻T1におけるロール角速度ωroll(T1)および第2の時刻T2におけるロール角速度ωroll(T2)と、記憶部753cに記憶されている第1の時刻T1におけるY速度vy(T1)および第2の時刻T2におけるY速度vy(T2)とを用いて、数式29における第1式に基づいてピッチ半径Rpitchを算出する。
また、Y方向並進ブレ補正部704yの半径算出部764bは、Y方向並進ブレ補正部704yの半径算出部764aが用いるデータと同一のデータを用いて、数式29における第2式に基づいてYZロール半径Rrollyを算出する。
ここに、半径算出部764a,764bが利用する各時刻における速度は、同時刻における加速度を少なくとも用いて得られる量である。
その他の処理は、上述した実施形態3と同様である。
この変形例の処理によっても、各半径の算出を上述した実施形態3と同様に行うことができるが、本変形例では加速度センサ9により検出した加速度を積分して速度を算出する必要がある。この積分演算は、加速度センサ9のドリフトなどノイズの影響を強調して算出される半径の精度を低下させる可能性もあるために、本変形例の構成を採用する場合には、より厳しい基準を設けて信頼性判定を行うことが望ましい。
[実施形態4]
図26および図27は本発明の実施形態4を示したものであり、図26はブレ補正マイクロコンピュータの構成を示すブロック図、図27は図24のステップS54における回転半径算出の処理の詳細を示すフローチャートである。この実施形態4において、上述の実施形態1~3と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
図26および図27は本発明の実施形態4を示したものであり、図26はブレ補正マイクロコンピュータの構成を示すブロック図、図27は図24のステップS54における回転半径算出の処理の詳細を示すフローチャートである。この実施形態4において、上述の実施形態1~3と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
図26に示すように、本実施形態におけるブレ補正マイクロコンピュータ7は、図4に示した実施形態1のブレ補正マイクロコンピュータ7の構成に、周波数検出部709を追加したものとなっている。
すなわち、周波数検出部709は、角速度センサ8により検出されるロール角速度とヨー角速度とピッチ角速度との内の少なくとも1つの周波数を検出するものである。ただし、本実施形態では、周波数検出部709は、ロール角速度、ヨー角速度、およびピッチ角速度の周波数をそれぞれ検出するものとする。
この周波数検出部709により検出された周波数は、X方向並進ブレ補正部704xの半径算出部764a,764bと、Y方向並進ブレ補正部704yの半径算出部764a,764bとへ出力される。
そして、X方向並進ブレ補正部704xおよびY方向並進ブレ補正部704yの半径算出部764a,764bは、上述した実施形態3の図25に示したような回転半径算出処理に代えて、図27に示すような回転半径算出処理を行う。
まず、半径算出部764a,764bは、周波数検出部709から周波数を入力する(ステップS71)。ここに、入力する周波数は、ロール角速度、ヨー角速度、およびピッチ角速度の各周波数の内の、カメラ1のブレ状態が最も適切に反映されていると考えられる代表的な1つの周波数であっても構わないし、各周波数の内の最も低い周波数(すなわち、最も波長が長い角速度に対応する周波数)であっても良い。あるいは、ロール角速度、ヨー角速度、およびピッチ角速度の全てを入力して平均値を計算し、その平均値を後段の処理に利用しても構わない。
さらにあるいは、どの半径算出部764a,764bであるかに応じて入力する周波数を異ならせても良い。例えば、X方向並進ブレ補正部704xの半径算出部764aが入力する周波数はヨー角速度ωyawの周波数、X方向並進ブレ補正部704xの半径算出部764bが入力する周波数はロール角速度ωrollの周波数、Y方向並進ブレ補正部704yの半径算出部764aが入力する周波数はピッチ角速度ωpitchの周波数、Y方向並進ブレ補正部704yの半径算出部764bが入力する周波数はロール角速度ωrollの周波数とする、などが考えられる。
次に、半径算出部764a,764bは、周波数検出部709により検出された周波数が低くなるほど、回転半径の算出時間間隔、つまり第1の時刻T1と第2の時刻T2との時間間隔が長くなるように設定する(ステップS72)。一例としては、時間間隔(T2-T1)が、検出された周波数に反比例するように設定することが考えられる。
ただし、角速度センサ8は上述したように所定の時間間隔毎に検出を行っており、平均化部761a,761b,761cから出力されるデータには一定の時間間隔がある。従って、実際に設定される時間間隔(T2-T1)は、例えば、(t2-t1),(t3-t1),(t4-t1),…等(図20や図21参照)の何れかに設定されることになる。
そして、半径算出部764a,764bは、第1の時刻T1と第2の時刻T2とが設定された時間間隔となるようにして、各半径の算出を行い(ステップS73)、その後、この回転半径算出処理から図24に示すメイン処理に復帰する。
このような実施形態4によれば、上述した実施形態3とほぼ同様の効果を奏するとともに、角速度が変化する周期を検出して、検出した周期に基づき回転半径を算出する時間間隔を設定するようにしたために、数式24および数式25の各式における分母の絶対値が小さい場合の誤差拡大を、適応的に抑制することが可能となる。
[実施形態5]
図28から図30は本発明の実施形態5を示したものであり、図28はX方向並進ブレ補正部704xの構成を示すブロック図、図29は図24のステップS54における回転半径算出の処理の詳細を示すフローチャート、図30は図24のステップS54における回転半径算出の処理の変形例の詳細を示すフローチャートである。
図28から図30は本発明の実施形態5を示したものであり、図28はX方向並進ブレ補正部704xの構成を示すブロック図、図29は図24のステップS54における回転半径算出の処理の詳細を示すフローチャート、図30は図24のステップS54における回転半径算出の処理の変形例の詳細を示すフローチャートである。
この実施形態5において、上述の実施形態1~4と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
上述した実施形態3は、複数の異なる時間間隔のデータに基づき算出される回転半径の内の信頼性が高いものを選択していた。また、上述した実施形態4は、角速度の変化周期に応じて回転半径を算出する時間間隔を異ならせていた。これに対して、この実施形態5は、角加速度および加速度に基づいて回転半径を算出するだけでなく、さらに、角速度および速度に基づいて回転半径を算出して、異なる算出方法で算出された回転半径の内の信頼性が高いものを選択するものとなっている。
まず、本実施形態のブレ補正マイクロコンピュータ7は、上述した実施形態4の図26に示した構成のもの、すなわち、周波数検出部709を備えたものとなっている。
また、図28に示す本実施形態のX方向並進ブレ補正部704x(および、図示はしないがY方向並進ブレ補正部704y)は、図19に示した実施形態3のX方向並進ブレ補正部704x(あるいは実施形態3のY方向並進ブレ補正部704y)の構成に、積分部769と、平均化部761dと、記憶部753d,753e,753fとを追加したものとなっている。
記憶部753dは、平均化部761aから出力される平均化された角速度(X方向並進ブレ補正部704xの場合にはヨー角速度ωyaw、Y方向並進ブレ補正部704yの場合にはピッチ角速度ωpitch)を、半径算出部764a,764bにおける半径算出に必要な過去データ分まで記憶する。
記憶部753eは、平均化部761bから出力される平均化されたロール角速度ωrollを、半径算出部764a,764bにおける半径算出に必要な過去データ分まで記憶する。
従って、図24のステップS51において平均化部761a,761bにより算出された平均化された角速度は、記憶部753d,753eにそれぞれ記憶されることになる。
積分部769は、X方向並進ブレ補正部704xの場合にはHPF701dから入力されるX加速度を積分してX速度を算出し、Y方向並進ブレ補正部704yの場合にはHPF701eから入力されるY加速度を積分してY速度を算出する。
平均化部761dは、積分部769から時系列的に入力される速度を平均化する。この平均化が、例えば、4サンプリング分のデータの平均値を算出し、1つのサンプリング値として出力することにより行われるのは上述と同様である。
記憶部753fは、平均化部761dにより平均化された速度(X速度VxまたはY速度Vy)を、半径算出部764a,764bにおける半径算出に必要な過去データ分まで記憶する。
そして、半径算出部764a,764bは、数式24および数式25を用いた回転半径の算出と、数式28および数式29を用いた回転半径の算出と、の両方を行う。
次に、図29を参照して、本実施形態における回転半径算出の処理について説明する。
この処理を開始すると、積分部769が加速度を積分することにより、速度を算出する(ステップS81)。
続いて、平均化部761dが平均化した速度を算出する(ステップS82)。このステップS82で算出された平均化された速度は、記憶部753fに記憶される。
そして、半径算出部764a,764bが、記憶部753a,753b,753cに記憶されている角加速度および加速度に基づいて、数式24および数式25の各式における分母(本実施形態において、以下では、第1分母という)を算出する(ステップS83)。
さらに、半径算出部764a,764bは、記憶部753d,753e,753fに記憶されている角速度および速度に基づいて、数式28および数式29の各式における分母(本実施形態において、以下では、第2分母という)を算出する(ステップS84)。
その後、半径算出部764a,764bは、ステップS83において算出した第1分母の絶対値が、ステップS84において算出した第2分母に周波数検出部709により検出された周波数を乗算したものの絶対値以上であるか否かを判定する(ステップS85)。この判定方法は、基本的に、数式24および数式25の分母の絶対値と、数式28および数式29の分母の絶対値との内の大きい方が、算出される回転半径の信頼性が高いとする方法である。ただし、数式24および数式25の分母と数式28および数式29の分母とは次元(ディメンジョン)が異なるので、次元を合わせるために第2分母には周波数を乗算している。
ここで、第1分母の絶対値が第2分母に周波数を乗算したものの絶対値以上であると判定した場合には、半径算出部764a,764bは、角加速度および加速度に基づいて回転半径を算出する(ステップS86)。
一方、第1分母の絶対値が第2分母に周波数を乗算したものの絶対値未満であると判定した場合には、半径算出部764a,764bは、角速度および速度に基づいて回転半径を算出する(ステップS87)。
そして、ステップS86またはステップS87の処理を行ったところで、この回転半径算出処理から図24に示すメイン処理に復帰する。
また、図30を参照して、本実施形態における回転半径算出の処理の変形例について説明する。
図29に示した回転半径算出処理は、角加速度および加速度に基づいて算出された回転半径と、角速度および速度に基づいて算出された回転半径と、の信頼性判定を、算出式の分母に基づいて行ったが、この図30に示す回転半径算出処理は、算出した回転半径自体に基づき行うものとなっている。
すなわち、この図30に示す処理に入ると、半径算出部764a,764bは、上述したステップS81およびステップS82の処理を行う。
そして、半径算出部764a,764bは、記憶部753a,753b,753cに記憶されている角加速度および加速度に基づいて、数式24および数式25の各式により回転半径(本実施形態において、以下では、第1回転半径という)を算出する(ステップS91)。
さらに、半径算出部764a,764bは、記憶部753d,753e,753fに記憶されている角速度および速度に基づいて、数式28および数式29の各式により回転半径(本実施形態において、以下では、第2回転半径という)を算出する(ステップS92)。
その後、半径算出部764a,764bは、ステップS91において算出した第1回転半径の絶対値が、ステップS92において算出した第2回転半径の絶対値以下であるか否かを判定する(ステップS93)。この判定方法は、数式24および数式25により算出された回転半径と、数式28および数式29により算出された回転半径との内の絶対値の小さい方が、信頼性が高いとする方法である。
ここで、第1回転半径の絶対値が第2回転半径の絶対値以下であると判定した場合には、半径算出部764a,764bは、第1回転半径を回転半径に設定して出力する(ステップS94)。
一方、第1回転半径の絶対値が第2回転半径の絶対値よりも大きいと判定した場合には、半径算出部764a,764bは、第2回転半径を回転半径に設定して出力する(ステップS95)。
そして、ステップS94またはステップS95の処理を行ったところで、この回転半径算出処理から図24に示すメイン処理に復帰する。
このような実施形態5によれば、上述した実施形態3,4とほぼ同様の効果を奏するとともに、次元の異なるデータに基づき算出された2つの回転半径の内の、信頼性が高いと判定される回転半径を選択するようにしたために、より確実に適切な回転半径を算出することが可能となる。特に、角加速度および加速度に基づいて算出された回転半径と、角速度および速度に基づいて算出された回転半径とが同時に信頼性が低くなる確率はかなり低いと考えられるために、適切な回転半径が算出される確実性が高い利点がある。
また、算出式の分母に基づき信頼性の判定を行う場合には、分母の絶対値が小さく回転半径が極端に大きくなるのを防止することができる。
一方、算出した回転半径自体に基づいて信頼性の判定を行う場合には、算出される回転半径が適切な範囲内であるか否かを確実に判定することができる。ブレの発生原因が例えばカメラ1を保持する撮影者の腕の揺れ等である場合には、回転半径は一定の範囲内にあると推定されるために、この判定方法はこのような場合に特に効果的である。
なお、この実施形態5における、次元の異なるデータに基づき2つの回転半径を算出する技術を、実施形態3における複数の異なる時間間隔のデータに基づき算出する技術、あるいは実施形態4における角速度の変化周期に応じて回転半径を算出する時間間隔を異ならせる技術と組み合わせても良いことは勿論である。
[実施形態6]
図31は本発明の実施形態6を示したものであり、X方向並進ブレ補正部704xの構成を示すブロック図である。
図31は本発明の実施形態6を示したものであり、X方向並進ブレ補正部704xの構成を示すブロック図である。
この実施形態6において、上述の実施形態1~5と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
なお、実施形態3などと同様に、Y方向並進ブレ補正部704yは、X方向ブレ補正部704xと構成が同一であって、入力がヨー角速度に代えてピッチ角速度、X加速度に代えてY加速度になるだけである。従って、Y方向並進ブレ補正部704yについては、詳細な説明は適宜省略する。
まず、図31に示す本実施形態のX方向並進ブレ補正部704x(および、図示はしないがY方向並進ブレ補正部704y)は、図19に示した実施形態3のX方向並進ブレ補正部704x(あるいは実施形態3のY方向並進ブレ補正部704y)におけるブレ量算出部785とは異なる構成のブレ量算出部786を備えている。
本実施形態のブレ量算出部786は、速度算出部765a,765bと、移動量算出部として機能する積分部780a,780bと、移動量合成部として機能する加算部781と、を備えている。そして、加算部781による算出結果は、乗算部768へ出力されるようになっている。
X方向並進ブレ補正部704xの速度算出部765a,765bは、上述した実施形態3と同様に、ヨー回転運動に起因するX方向の並進速度(X方向速度の第1成分)Ryaw×ωyawと、ロール回転運動に起因するX方向の並進速度(X方向速度の第2成分)Rrollx×ωrollと、を算出する。
X方向並進ブレ補正部704xの積分部780a,780bは、速度算出部765a,765bで算出された並進速度を積分する。すなわち、積分部780aは、速度算出部765aで算出されたヨー回転運動に起因するX方向の並進速度(X方向速度の第1成分)を以下の数式30に示すように時間tに関して積分して、X方向並進移動量の第1成分ΔXyawを算出する。
[数30]
ΔXyaw=∫(Ryaw×ωyaw)dt
同様に、積分部780bは、速度算出部765bで算出されたロール回転運動に起因するX方向の並進速度(X方向速度の第2成分)を以下の数式31に示すように時間tに関して積分して、X方向並進移動量の第2成分ΔXrollを算出する。
ΔXyaw=∫(Ryaw×ωyaw)dt
同様に、積分部780bは、速度算出部765bで算出されたロール回転運動に起因するX方向の並進速度(X方向速度の第2成分)を以下の数式31に示すように時間tに関して積分して、X方向並進移動量の第2成分ΔXrollを算出する。
[数31]
ΔXroll=∫(Rrollx×ωroll)dt
X方向並進ブレ補正部704xの加算部781は、算出されたX方向並進移動量の第1成分ΔXyawと、X方向並進移動量の第2成分ΔXrollとを以下の数式32に示すように加算して、X方向並進移動量ΔXを算出する。
ΔXroll=∫(Rrollx×ωroll)dt
X方向並進ブレ補正部704xの加算部781は、算出されたX方向並進移動量の第1成分ΔXyawと、X方向並進移動量の第2成分ΔXrollとを以下の数式32に示すように加算して、X方向並進移動量ΔXを算出する。
[数32]
ΔX=ΔXyaw+ΔXroll
Y方向並進ブレ補正部704yは、上述したX方向並進ブレ補正部704xと同様に、Y方向並進移動量ΔYを算出する。
ΔX=ΔXyaw+ΔXroll
Y方向並進ブレ補正部704yは、上述したX方向並進ブレ補正部704xと同様に、Y方向並進移動量ΔYを算出する。
以下、Y方向並進ブレ補正部704yについて説明する。
Y方向並進ブレ補正部704yの速度算出部765a,765bが、Y方向速度の第1成分Rpitch×ωpitchとY方向速度の第2成分Rrolly×ωrollとを算出する。
Y方向並進ブレ補正部704yの積分部780aは、速度算出部765aで算出されたピッチ回転運動に起因するY方向の並進速度(Y方向速度の第1成分)を以下の数式33に示すように時間tに関して積分して、Y方向並進移動量の第1成分ΔYpitchを算出する。
[数33]
ΔYpitch=∫(Rpitch×ωpitch)dt
Y方向並進ブレ補正部704yの積分部780bは、速度算出部765bで算出されたロール回転運動に起因するY方向の並進速度(Y方向速度の第2成分)を以下の数式34に示すように時間tに関して積分して、Y方向並進移動量の第2成分ΔYrollを算出する。
ΔYpitch=∫(Rpitch×ωpitch)dt
Y方向並進ブレ補正部704yの積分部780bは、速度算出部765bで算出されたロール回転運動に起因するY方向の並進速度(Y方向速度の第2成分)を以下の数式34に示すように時間tに関して積分して、Y方向並進移動量の第2成分ΔYrollを算出する。
[数34]
ΔYroll=∫(Rrolly×ωroll)dt
Y方向並進ブレ補正部704yの加算部781は、算出されたY方向並進移動量の第1成分ΔYpitchと、Y方向並進移動量の第2成分ΔYrollとを以下の数式35に示すように加算して、Y方向並進移動量ΔYを算出する。
ΔYroll=∫(Rrolly×ωroll)dt
Y方向並進ブレ補正部704yの加算部781は、算出されたY方向並進移動量の第1成分ΔYpitchと、Y方向並進移動量の第2成分ΔYrollとを以下の数式35に示すように加算して、Y方向並進移動量ΔYを算出する。
[数35]
ΔY=ΔYpitch+ΔYroll
こうして算出された移動量ΔX,ΔYは、実施形態3と同様に、乗算部768で撮像面におけるブレ量に変換される。
ΔY=ΔYpitch+ΔYroll
こうして算出された移動量ΔX,ΔYは、実施形態3と同様に、乗算部768で撮像面におけるブレ量に変換される。
このような実施形態6によれば、上述した実施形態3と同様の効果を奏する。
なお、この実施形態6における、ブレ補正量算出部786によるブレ補正量算出技術を、実施形態4における角速度の変化周期に応じて回転半径を算出する時間間隔を異ならせる技術、あるいは、実施形態5における次元の異なるデータに基づき2つの回転半径を算出する技術と組み合わせても良いことは勿論である。
[実施形態7]
図32は本発明の実施形態7を示したものであり、X方向並進ブレ補正部704xの構成を示すブロック図である。
図32は本発明の実施形態7を示したものであり、X方向並進ブレ補正部704xの構成を示すブロック図である。
この実施形態7において、上述の実施形態1~6と同様である部分については同一の符号を付すなどして説明を適宜省略し、主として異なる点についてのみ説明する。
なお、実施形態3などと同様に、Y方向並進ブレ補正部704yは、X方向ブレ補正部704xと構成が同一であって、入力がヨー角速度に代えてピッチ角速度、X加速度に代えてY加速度になるだけである。従って、Y方向並進ブレ補正部704yについては、詳細な説明は適宜省略する。
まず、図32に示す本実施形態のX方向並進ブレ補正部704x(および、図示はしないがY方向並進ブレ補正部704y)は、図19に示した実施形態3のX方向並進ブレ補正部704x(あるいは実施形態3のY方向並進ブレ補正部704y)におけるブレ量算出部785とは異なる構成のブレ量算出部787を備えている。
本実施形態のブレ量算出部787は、角度算出部として機能する積分部782a,782bと、移動量算出部として機能する乗算部783a,783bと、移動量合成部として機能する加算部784と、を備えている。そして、加算部784による算出結果は、乗算部768へ出力されるようになっている。
X方向並進ブレ補正部704xの積分部782aは、以下の数式36に示すように、入力されるヨー角速度ωyawを時間tに関して積分して、ヨー方向の回転角度(ヨー角度)θyawを算出する。
[数36]
θyaw=∫ωyawdt
X方向並進ブレ補正部704xの積分部782bは、以下の数式37に示すように、入力されるロール角速度ωrollを時間tに関して積分して、ロール方向の回転角度(ロール角度)θrollを算出する。
θyaw=∫ωyawdt
X方向並進ブレ補正部704xの積分部782bは、以下の数式37に示すように、入力されるロール角速度ωrollを時間tに関して積分して、ロール方向の回転角度(ロール角度)θrollを算出する。
[数37]
θroll=∫ωrolldt
X方向並進ブレ補正部704xの乗算部783aは、以下の数式38に示すように、ヨー角度θyawと、半径算出部764aで算出されたヨー半径Ryawとを乗算して、X方向並進移動量の第1成分ΔXyawを算出する。
θroll=∫ωrolldt
X方向並進ブレ補正部704xの乗算部783aは、以下の数式38に示すように、ヨー角度θyawと、半径算出部764aで算出されたヨー半径Ryawとを乗算して、X方向並進移動量の第1成分ΔXyawを算出する。
[数38]
ΔXyaw=θyaw×Ryaw
X方向並進ブレ補正部704xの乗算部783bは、以下の数式39に示すように、ロール角度θrollと、半径算出部764bで算出されたXZロール半径Rrollxとを乗算して、X方向並進移動量の第2成分ΔXrollを算出する。
ΔXyaw=θyaw×Ryaw
X方向並進ブレ補正部704xの乗算部783bは、以下の数式39に示すように、ロール角度θrollと、半径算出部764bで算出されたXZロール半径Rrollxとを乗算して、X方向並進移動量の第2成分ΔXrollを算出する。
[数39]
ΔXroll=θroll×Rrollx
X方向並進ブレ補正部704xの加算部784は、算出されたX方向並進移動量の第1成分ΔXyawと、X方向並進移動量の第2成分ΔXrollとを以下の数式40に示すように加算して、X方向並進移動量ΔXを算出する。
ΔXroll=θroll×Rrollx
X方向並進ブレ補正部704xの加算部784は、算出されたX方向並進移動量の第1成分ΔXyawと、X方向並進移動量の第2成分ΔXrollとを以下の数式40に示すように加算して、X方向並進移動量ΔXを算出する。
[数40]
ΔX=ΔXyaw+ΔXroll
Y方向並進ブレ補正部704yは、上述したX方向並進ブレ補正部704xと同様に、Y方向並進移動量ΔYを算出する。
ΔX=ΔXyaw+ΔXroll
Y方向並進ブレ補正部704yは、上述したX方向並進ブレ補正部704xと同様に、Y方向並進移動量ΔYを算出する。
以下、Y方向並進ブレ補正部704yについて説明する。
Y方向並進ブレ補正部704yの積分部782aは、以下の数式41に示すように、入力されるピッチ角速度ωpitchを時間tに関して積分して、ピッチ方向の回転角度(ピッチ角度)θpitchを算出する。
[数41]
θpitch=∫ωpitchdt
Y方向並進ブレ補正部704yの積分部782bは、以下の数式42に示すように、入力されるロール角速度ωrollを時間tに関して積分して、ロール方向の回転角度(ロール角度)θrollを算出する。
θpitch=∫ωpitchdt
Y方向並進ブレ補正部704yの積分部782bは、以下の数式42に示すように、入力されるロール角速度ωrollを時間tに関して積分して、ロール方向の回転角度(ロール角度)θrollを算出する。
[数42]
θroll=∫ωrolldt
Y方向並進ブレ補正部704yの乗算部783aは、以下の数式43に示すように、ピッチ角度θpitchと、半径算出部764aで算出されたピッチ半径Rpitchを乗算して、Y方向並進移動量の第1成分ΔYpitchを算出する。
θroll=∫ωrolldt
Y方向並進ブレ補正部704yの乗算部783aは、以下の数式43に示すように、ピッチ角度θpitchと、半径算出部764aで算出されたピッチ半径Rpitchを乗算して、Y方向並進移動量の第1成分ΔYpitchを算出する。
[数43]
ΔYpitch=θpitch×Rpitch
Y方向並進ブレ補正部704yの乗算部783bは、以下の数式44に示すように、ロール角度θrollと、半径算出部764bで算出されたYZロール半径Rrollyを乗算して、Y方向並進移動量の第2成分ΔYrollを算出する。
ΔYpitch=θpitch×Rpitch
Y方向並進ブレ補正部704yの乗算部783bは、以下の数式44に示すように、ロール角度θrollと、半径算出部764bで算出されたYZロール半径Rrollyを乗算して、Y方向並進移動量の第2成分ΔYrollを算出する。
[数44]
ΔYroll=θroll×Rrolly
加算部784は、算出されたY方向並進移動量の第1成分ΔYpitchと、Y方向並進移動量の第2成分ΔYrollとを以下の数式45に示すように加算して、Y方向並進移動量ΔYを算出する。
ΔYroll=θroll×Rrolly
加算部784は、算出されたY方向並進移動量の第1成分ΔYpitchと、Y方向並進移動量の第2成分ΔYrollとを以下の数式45に示すように加算して、Y方向並進移動量ΔYを算出する。
[数45]
ΔY=ΔYpitch+ΔYroll
こうして算出された移動量ΔX,ΔYは、実施形態3と同様に、乗算部768で撮像面におけるブレ量に変換される。
ΔY=ΔYpitch+ΔYroll
こうして算出された移動量ΔX,ΔYは、実施形態3と同様に、乗算部768で撮像面におけるブレ量に変換される。
このような実施形態7によれば、上述した実施形態3と同様の効果を奏するとともに、一般的に角度ブレ補正部703では角速度を積分して回転角度を算出するため、角度算出部である積分部782a,782bを角度ブレ補正部703と並進ブレ補正部704とで共有化することが可能となり、処理速度の向上やプログラムメモリの削減を図ることができる。
なお、上述では主としてブレ量検出装置やブレ量検出装置を備える撮像装置について説明したが、ブレ量検出を上述したように行うブレ量検出方法やブレ量検出装置等を上述したように制御する制御方法であっても良いし、ブレ量検出を上述したように行う処理プログラム、コンピュータにブレ量検出装置等を上述したように制御させるための制御プログラム、該処理プログラムや該制御プログラムを記録するコンピュータにより読み取り可能な記録媒体、などであっても構わない。
さらに、本発明は上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明の態様を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。
本出願は、2012年1月19日に日本国に出願された特願2012-9170号、2012年5月29日に日本国に出願された特願2012-122246号を優先権主張の基礎として出願するものであり、上記の開示内容は、本願明細書、請求の範囲、図面に引用されたものとする。
Claims (36)
- 第1の軸周りの第1角速度を検出する第1角速度検出部と、
前記第1の軸と直交する第2の軸周りの第2角速度を検出する第2角速度検出部と、
前記第1の軸および前記第2の軸と直交する第3の軸方向の第3加速度を検出する加速度検出部と、
第1の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、第2の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、に基づき、前記第2の軸周りの回転運動の第2半径を算出するとともに、前記第1の軸周りの回転運動の第1半径を前記第1の軸および前記第3の軸が含まれる平面へ射影した第1-3射影半径を算出する回転半径算出部と、
前記第2半径と、前記第1-3射影半径と、前記第1角速度と、前記第2角速度とに基づき前記第3の軸方向への移動量を算出するブレ量算出部と、
を具備することを特徴とするブレ量検出装置。 - 前記ブレ量算出部は、
前記第2角速度に前記第2半径を乗算することにより前記第3の軸方向への第3速度の第1成分を算出し、前記第1角速度に前記第1-3射影半径を乗算することにより前記第3の軸方向への第3速度の第2成分を算出する速度算出部と、
前記第3速度の第1成分と前記第3速度の第2成分とを加算して第3速度を取得する速度合成部と、
前記第3速度を時間に関して積分することにより前記第3の軸方向への移動量を算出する第1の移動量算出部と、
を備えることを特徴とする請求項1に記載のブレ量検出装置。 - 前記第3の軸周りの第3角速度を検出する第3角速度検出部をさらに具備し、
前記加速度検出部は、さらに、前記第2の軸方向の第2加速度を検出するものであり、
前記回転半径算出部は、さらに、前記第1の時刻における前記第1角速度および前記第3角速度および前記第2加速度と、前記第2の時刻における前記第1角速度および前記第3角速度および前記第2加速度と、に基づき、前記第3の軸周りの回転運動の第3半径を算出するとともに、前記第1の軸周りの回転運動の第1半径を前記第1の軸および前記第2の軸が含まれる平面へ射影した第1-2射影半径を算出するものであり、
前記速度算出部は、さらに、前記第3角速度に前記第3半径を乗算することにより前記第2の軸方向への第2速度の第1成分を算出し、前記第1角速度に前記第1-2射影半径を乗算することにより前記第2の軸方向への第2速度の第2成分を算出するものであり、
前記速度合成部は、さらに、前記第2速度の第1成分と前記第2速度の第2成分とを加算して第2速度を取得するものであり、
前記第1の移動量算出部は、さらに、前記第2速度を時間に関して積分することにより前記第2の軸方向への移動量を算出するものであることを特徴とする請求項2に記載のブレ量検出装置。 - 前記第1の軸は、光学系の光軸と同一のZ軸であり、該Z軸周りの回転運動はロール回転運動であり、前記第1角速度はロール角速度であり、前記第1角速度検出部はロール角速度検出部であり、前記第1半径はロール半径であることを特徴とする請求項2に記載のブレ量検出装置。
- 前記第1の軸は、光学系の光軸と同一のZ軸であり、該Z軸周りの回転運動はロール回転運動であり、前記第1角速度はロール角速度であり、前記第1角速度検出部はロール角速度検出部であり、前記第1半径はロール半径であり、
前記第2の軸は、撮像装置の標準姿勢における垂直方向の軸となるY軸であり、該Y軸周りの回転運動はヨー回転運動であり、前記第2角速度はヨー角速度であり、前記第2角速度検出部はヨー角速度検出部であり、前記第2加速度はY加速度であり、前記第2半径はヨー半径であり、前記第2速度はY方向速度であり、
前記第3の軸は、撮像装置の標準姿勢における水平方向の軸となるX軸であり、該X軸周りの回転運動はピッチ回転運動であり、前記第3角速度はピッチ角速度であり、前記第3角速度検出部はピッチ角速度検出部であり、前記第3加速度はX加速度であり、前記第3半径はピッチ半径であり、前記第3速度はX方向速度であり、
前記第1-3射影半径は、前記ロール半径をXZ平面に射影したXZロール半径であり、前記第1-2射影半径は、前記ロール半径のYZ平面に射影したYZロール半径であり、
前記ロール角速度検出部と前記ヨー角速度検出部と前記ピッチ角速度検出部とは角速度検出部に含まれることを特徴とする請求項3に記載のブレ量検出装置。 - 前記回転半径算出部は、前記第1の時刻T1における前記ロール角速度から得られるロール角加速度αω_roll(T1)および前記ヨー角速度から得られるヨー角加速度αω_yaw(T1)および前記X加速度αv_x(T1)と、前記第2の時刻T2における前記ロール角速度から得られるロール角加速度αω_roll(T2)および前記ヨー角速度から得られるヨー角加速度αω_yaw(T2)および前記X加速度αv_x(T2)と、に基づき、
により前記ヨー半径Ryawおよび前記XZロール半径Rrollxを算出し、
さらに、前記第1の時刻T1における前記ロール角加速度αω_roll(T1)および前記ピッチ角速度から得られるピッチ角加速度αω_pitch(T1)および前記Y加速度αv_y(T1)と、前記第2の時刻T2における前記ロール角加速度αω_roll(T2)および前記ピッチ角速度から得られるピッチ角加速度αω_pitch(T2)および前記Y加速度αv_y(T2)と、に基づき、
により前記ピッチ半径Rpitchおよび前記YZロール半径Rrollyを算出することを特徴とする請求項5に記載のブレ量検出装置。 - 前記回転半径算出部は、前記第1の時刻T1における前記ロール角速度ωroll(T1)および前記ヨー角速度ωyaw(T1)および前記X加速度から得られるX速度vx(T1)と、前記第2の時刻T2における前記ロール角速度ωroll(T2)および前記ヨー角速度ωyaw(T2)および前記X加速度から得られるX速度vx(T2)と、に基づき、
により前記ヨー半径Ryawおよび前記XZロール半径Rrollxを算出し、
さらに、前記第1の時刻T1における前記ロール角速度ωroll(T1)および前記ピッチ角速度ωpitch(T1)および前記Y加速度から得られるY速度vy(T1)と、前記第2の時刻T2における前記ロール角速度ωroll(T2)および前記ピッチ角速度ωpitch(T2)および前記Y加速度から得られるY速度vy(T2)と、に基づき、
により前記ピッチ半径Rpitchおよび前記YZロール半径Rrollyを算出することを特徴とする請求項5に記載のブレ量検出装置。 - 前記回転半径算出部は、前記ヨー半径Ryaw、前記XZロール半径Rrollx、前記ピッチ半径Rpitch、および前記YZロール半径Rrollyの各半径に関して、前記第2の時刻T2が前記第1の時刻T1よりも時間的に後であるとしたときに、前記第2の時刻T2からの時間間隔が異なる複数種類の前記第1の時刻T1の検出値に基づき算出される複数種類の前記各半径の信頼性判定を行って、最も信頼性が高いと判定される種類の前記各半径を算出し出力することを特徴とする請求項6または請求項7に記載のブレ量検出装置。
- 前記回転半径算出部は、前記複数種類の前記各半径の算出に係る各数式の分母の絶対値が最も大きいものを、最も信頼性が高いと判定することを特徴とする請求項8に記載のブレ量検出装置。
- 前記角速度検出部により検出される前記ロール角速度と前記ヨー角速度と前記ピッチ角速度との内の少なくとも1つの周波数を検出する周波数検出部をさらに具備し、
前記回転半径算出部は、前記ヨー半径Ryaw、前記XZロール半径Rrollx、前記ピッチ半径Rpitch、および前記YZロール半径Rrollyの各半径に関して、前記周波数検出部により検出された周波数が低くなるほど、前記第1の時刻T1と前記第2の時刻T2との時間間隔が長くなるように設定して、前記各半径の算出を行うことを特徴とする請求項5または請求項7に記載のブレ量検出装置。 - 前記回転半径算出部は、さらに、
前記第1の時刻T1における前記ロール角速度ωroll(T1)および前記ヨー角速度ωyaw(T1)および前記X加速度から得られるX速度vx(T1)と、前記第2の時刻T2における前記ロール角速度ωroll(T2)および前記ヨー角速度ωyaw(T2)および前記X加速度から得られるX速度vx(T2)と、に基づき、
により前記ヨー半径Ryawおよび前記XZロール半径Rrollxを算出し、
前記第1の時刻T1における前記ロール角速度ωroll(T1)および前記ピッチ角速度ωpitch(T1)および前記Y加速度から得られるY速度vy(T1)と、前記第2の時刻T2における前記ロール角速度ωroll(T2)および前記ピッチ角速度ωpitch(T2)および前記Y加速度から得られるY速度vy(T2)と、に基づき、
により前記ピッチ半径Rpitchおよび前記YZロール半径Rrollyを算出して、
前記ヨー半径Ryaw、前記XZロール半径Rrollx、前記ピッチ半径Rpitch、および前記YZロール半径Rrollyの各半径に関して、角加速度および加速度に基づき算出した前記各半径と、角速度および速度に基づき算出した前記各半径と、の信頼性判定を行って、より信頼性が高いと判定される方の前記各半径を出力することを特徴とする請求項6に記載のブレ量検出装置。 - 前記回転半径算出部は、角加速度および加速度に基づき算出した前記各半径と、角速度および速度に基づき算出した前記各半径と、の内の絶対値が小さい方を、より信頼性が高いと判定することを特徴とする請求項11に記載のブレ量検出装置。
- 前記角速度検出部により検出される前記ロール角速度と前記ヨー角速度と前記ピッチ角速度との内の少なくとも1つの周波数を検出する周波数検出部をさらに具備し、
前記回転半径算出部は、角加速度および加速度に基づき前記各半径を算出するために用いる各数式の分母の絶対値と、角速度および速度に基づき前記各半径を算出するために用いる各数式の分母に前記周波数検出部により検出された周波数を乗算したものの絶対値と、の内の大きい方の絶対値を与える各数式に係る前記各半径を、より信頼性が高いと判定することを特徴とする請求項11に記載のブレ量検出装置。 - 前記ブレ量算出部は、
前記第2角速度に前記第2半径を乗算することにより前記第3の軸方向への第3速度の第1成分を算出し、前記第1角速度に前記第1-3射影半径を乗算することにより前記第3の軸方向への第3速度の第2成分を算出する速度算出部と、
前記第3速度の第1成分を時間に関して積分することにより前記第3軸方向への移動量の第1成分を算出し、前記第3速度の第2成分を時間に関して積分することにより前記第3軸方向への移動量の第2成分を算出する第2の移動量算出部と、
前記第3軸方向への移動量の第1成分と前記第3軸方向への移動量の第2成分とを加算して前記第3軸方向への移動量を算出する移動量合成部と、
を備えることを特徴とする請求項1に記載のブレ量検出装置。 - 前記ブレ量算出部は、
前記第1角速度を時間に関して積分することにより第1の軸周りの角度である第1角度を算出し、第2角速度を時間に関して積分することにより第2の軸周りの角度である第2角度を算出する角度算出部と、
前記第2半径と前記第2角度を乗算することにより前記第3軸方向への移動量の第1成分を算出し、前記第1-3射影半径と前記第1角度を乗算することにより前記第3軸方向への移動量の第2成分を算出する第3の移動量算出部と、
前記第3軸方向への移動量の第1成分と前記第3軸方向への移動量の第2成分とを加算して前記第3軸方向への移動量を算出する移動量合成部と、
を備えることを特徴とする請求項1に記載のブレ量検出装置。 - 前記第1の時刻は前記第1の軸周りの回転運動の影響がない時刻、前記第2の時刻は前記第2の軸周りの回転運動の影響がない時刻であって、
前記回転半径算出部は、
前記第1の時刻の前記第2角速度と前記第3加速度とに基づき前記第2半径を算出するとともに、
前記第2の時刻の前記第1角速度と前記第3加速度とに基づき前記第1-3射影半径を算出することを特徴とする請求項2に記載のブレ量検出装置。 - 前記第3の軸周りの第3角速度を検出する第3角速度検出部をさらに具備し、
前記加速度検出部は、さらに、前記第2の軸方向の第2加速度を検出するものであり、
前記回転半径算出部は、さらに、前記第3角速度と前記第2加速度とに基づき前記第3の軸周りの回転運動の第3半径を算出するとともに、前記第1角速度と前記第2加速度とに基づき前記第1の軸周りの回転運動の第1半径を前記第1の軸および前記第2の軸が含まれる平面へ射影した第1-2射影半径を算出するものであり、
前記速度算出部は、さらに、前記第3角速度に前記第3半径を乗算することにより前記第2の軸方向への第2速度の第1成分を算出し、前記第1角速度に前記第1-2射影半径を乗算することにより前記第2の軸方向への第2速度の第2成分を算出するものであり、
前記速度合成部は、さらに、前記第2速度の第1成分と前記第2速度の第2成分とを加算して第2速度を取得するものであり、
前記第1の移動量算出部は、さらに、前記第2速度を時間に関して積分することにより前記第2の軸方向への移動量を算出するものであることを特徴とする請求項16に記載のブレ量検出装置。 - 前記第1の軸は、光学系の光軸と同一のZ軸であり、該Z軸周りの回転運動はロール回転運動であり、前記第1角速度はロール角速度であり、前記第1角速度検出部はロール角速度検出部であり、前記第1半径はロール半径であることを特徴とする請求項16に記載のブレ量検出装置。
- 前記第1の軸は、光学系の光軸と同一のZ軸であり、該Z軸周りの回転運動はロール回転運動であり、前記第1角速度はロール角速度であり、前記第1角速度検出部はロール角速度検出部であり、前記第1半径はロール半径であり、
前記第2の軸は、撮像装置の標準姿勢における垂直方向の軸となるY軸であり、該Y軸周りの回転運動はヨー回転運動であり、前記第2角速度はヨー角速度であり、前記第2角速度検出部はヨー角速度検出部であり、前記第2加速度はY加速度であり、前記第2半径はヨー半径であり、前記第2速度はY方向速度であり、
前記第3の軸は、撮像装置の標準姿勢における水平方向の軸となるX軸であり、該X軸周りの回転運動はピッチ回転運動であり、前記第3角速度はピッチ角速度であり、前記第3角速度検出部はピッチ角速度検出部であり、前記第3加速度はX加速度であり、前記第3半径はピッチ半径であり、前記第3速度はX方向速度であり、
前記第1-3射影半径は、前記ロール半径をXZ平面に射影したXZロール半径であり、前記第1-2射影半径は、前記ロール半径のYZ平面に射影したYZロール半径であり、
前記ロール角速度検出部と前記ヨー角速度検出部と前記ピッチ角速度検出部とは角速度検出部に含まれることを特徴とする請求項17に記載のブレ量検出装置。 - 前記回転半径算出部は、前記ロール回転運動の影響がない時刻に検出された前記ヨー角速度および前記X加速度に基づき前記ヨー半径を算出し、前記ロール回転運動の影響がない時刻に検出された前記ピッチ角速度および前記Y加速度に基づき前記ピッチ半径とを算出し、前記ヨー回転運動の影響がない時刻に検出された前記ロール角速度および前記X加速度に基づき前記XZロール半径を算出し、前記ピッチ回転運動の影響がない時刻に検出された前記ロール角速度および前記Y加速度に基づき前記YZロール半径を算出することを特徴とする請求項19に記載のブレ量検出装置。
- 前記角速度検出部が検出した各角速度と、前記加速度検出部が検出した各加速度とのそれぞれの平均値を、所定の検出数毎に算出する平均化部をさらに具備し、
前記回転半径算出部は、前記平均化部により平均化された各角速度と前記各加速度とに基づいて、前記各半径を算出することを特徴とする請求項19に記載のブレ量検出装置。 - 前記回転半径算出部は、前記各角速度から各角加速度を算出して、算出した該各角加速度と前記各加速度とに基づいて、前記各半径を算出することを特徴とする請求項19に記載のブレ量検出装置。
- 前記回転半径算出部は、前記角加速度の絶対値が所定の角加速度閾値未満であることと、前記加速度の絶対値が所定の加速度閾値未満であることと、の少なくとも一方が成立するときには、半径を0として前記速度算出部へ出力することを特徴とする請求項22に記載のブレ量検出装置。
- 前記回転半径算出部は、最新から過去へ遡った所定数の半径の平均値を、前記速度算出部へ出力することを特徴とする請求項19に記載のブレ量検出装置。
- 前記回転半径算出部は、前記半径の平均値を、該半径の符号別に算出して、正の半径の平均値と負の半径の平均値とを算出し、該回転半径算出部が算出した最新の半径の符号と同一の符号の半径の平均値を、前記速度算出部へ出力することを特徴とする請求項24に記載のブレ量検出装置。
- 前記回転半径算出部は、最新から過去へ遡った所定数の半径に対して、最新から過去へ遡るにつれて軽くなる重みを付与し、該重みを前記半径の符号別に加算して加算重みを算出し、正の半径に対する加算重みと負の半径に対する加算重みとの何れか一方のみが取り得る所定の閾値を設定して、該正の半径に対する加算重みと該負の半径に対する加算重みとの何れか一方が該所定の閾値以上である場合には閾値以上となった符号の半径を前記速度算出部へ出力し、何れも閾値未満である場合には半径を0として前記速度算出部へ出力することを特徴とする請求項25に記載のブレ量検出装置。
- 静止状態にあるか否かを検出する静止状態検出部をさらに具備し、
前記回転半径算出部は、前記静止状態検出部により静止状態にあることが検出された場合には、半径を0として前記速度算出部へ出力することを特徴とする請求項19に記載のブレ量検出装置。 - 前記回転半径算出部は、前記ヨー角速度検出部の検出値が所定の時間を超えて一定である場合、または、該ヨー角速度検出部の検出値の符号が所定の時間を超えて同じである場合は、所定の時間、半径を0として前記速度算出部へ出力することを特徴とする請求項19に記載のブレ量検出装置。
- 所定の標準方向に対する前記角速度検出部の傾きと前記加速度検出部の傾きとに係る検出部傾き情報を記憶する記憶部と、
前記記憶部から前記検出部傾き情報を読み出して、前記角速度検出部の検出値と前記加速度検出部の検出値とを補正する軸補正部と、
をさらに具備し、
前記回転半径算出部および前記速度算出部は、前記軸補正部により補正された検出値を用いることを特徴とする請求項19に記載のブレ量検出装置。 - 前記角速度検出部による検出値に基づき相対姿勢を検出し、該相対姿勢と前記加速度検出部による検出値とに基づき絶対姿勢を算出し、算出した該絶対姿勢に基づき、前記加速度検出部による検出値から重力加速度成分を除去する加速度重力補正部をさらに具備し、
前記回転半径算出部は、前記重力加速度成分を除去された検出値を用いることを特徴とする請求項19に記載のブレ量検出装置。 - 静止状態にあるか否かを検出する静止状態検出部と、
前記静止状態検出部により静止状態にあると検出されたときに、前記加速度検出部の検出値である加速度情報を記憶する記憶部と、
記憶された前記加速度情報の量が前記加速度検出部の検出感度の経時変化を決定するに足りる場合に、前記加速度検出部の検出感度の補正に用いる感度補正情報を算出する加速度感度補正情報算出部と、
をさらに具備したことを特徴とする請求項19に記載のブレ量検出装置。 - 請求項1に記載のブレ量検出装置と、
被写体からの光を被写体像として結像する光学系と、
前記光学系により結像された被写体像を映像信号に変換する撮像素子と、
前記ブレ量検出装置により検出された移動量を打ち消す方向に、前記光学系と前記撮像素子との少なくとも一方を駆動する駆動部と、
を具備したことを特徴とする撮像装置。 - 前記回転半径算出部は、前記撮像素子による露光が開始されてから所定時間が経過した後は、前記各半径を0として前記速度算出部へ出力することを特徴とする請求項32に記載の撮像装置。
- 第1の軸周りの第1角速度を検出し、
前記第1の軸と直交する第2の軸周りの第2角速度を検出し、
前記第1の軸および前記第2の軸と直交する第3の軸方向の第3加速度を検出し、
第1の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、第2の時刻における前記第1角速度および前記第2角速度および前記第3加速度と、に基づき、前記第2の軸周りの回転運動の第2半径を算出するとともに、前記第1の軸周りの回転運動の第1半径を前記第1の軸および前記第3の軸が含まれる平面へ射影した第1-3射影半径を算出し、
前記第2半径と、前記第1-3射影半径と、前記第1角速度と、前記第2角速度とに基づき前記第3の軸方向への移動量を算出することを特徴とするブレ量検出方法。 - 前記第2半径と前記第1-3射影半径と前記第1角速度と前記第2角速度とに基づく前記第3の軸方向への移動量の算出は、
前記第2角速度に前記第2半径を乗算することにより前記第3の軸方向への第3速度の第1成分を算出するとともに、前記第1角速度に前記第1-3射影半径を乗算することにより前記第3の軸方向への第3速度の第2成分を算出し、
前記第3速度の第1成分と前記第3速度の第2成分とを加算して第3速度を取得し、
前記第3速度を時間に関して積分することにより前記第3の軸方向への移動量を算出することにより行われることを特徴とする請求項34に記載のブレ量検出方法。 - 前記第1の時刻は前記第1の軸周りの回転運動の影響がない時刻、前記第2の時刻は前記第2の軸周りの回転運動の影響がない時刻であって、
前記第2半径の算出は、前記第1の時刻の前記第2角速度と前記第3加速度とに基づき行い、
前記第1-3射影半径の算出は、前記第2の時刻の前記第1角速度と前記第3加速度とに基づき行うことを特徴とする請求項35に記載のブレ量検出方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201280067370.6A CN104067166B (zh) | 2012-01-19 | 2012-09-12 | 抖动量检测装置、摄像装置、抖动量检测方法 |
EP12865686.5A EP2806308B1 (en) | 2012-01-19 | 2012-09-12 | Shaking amount detecting apparatus, image pickup apparatus, and shaking amount detecting method |
US14/331,556 US9386225B2 (en) | 2012-01-19 | 2014-07-15 | Shaking amount detecting apparatus, image pickup apparatus, and shaking amount detecting method |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012-009170 | 2012-01-19 | ||
JP2012009170A JP5846927B2 (ja) | 2012-01-19 | 2012-01-19 | ブレ量検出装置、撮像装置、ブレ量検出方法 |
JP2012-122246 | 2012-05-29 | ||
JP2012122246A JP5959315B2 (ja) | 2012-05-29 | 2012-05-29 | ブレ量検出装置、撮像装置、ブレ量検出方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/331,556 Continuation US9386225B2 (en) | 2012-01-19 | 2014-07-15 | Shaking amount detecting apparatus, image pickup apparatus, and shaking amount detecting method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013108434A1 true WO2013108434A1 (ja) | 2013-07-25 |
Family
ID=48798871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/073312 WO2013108434A1 (ja) | 2012-01-19 | 2012-09-12 | ブレ量検出装置、撮像装置、ブレ量検出方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9386225B2 (ja) |
EP (1) | EP2806308B1 (ja) |
CN (1) | CN104067166B (ja) |
WO (1) | WO2013108434A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018070468A1 (ja) * | 2016-10-13 | 2018-04-19 | 富士フイルム株式会社 | ブレ補正装置、撮像装置、及びブレ補正方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6071545B2 (ja) * | 2012-12-27 | 2017-02-01 | キヤノン株式会社 | 撮像装置、画像処理装置及びその制御方法、プログラム、記憶媒体 |
JP2014126861A (ja) | 2012-12-27 | 2014-07-07 | Canon Inc | 撮像装置及びその制御方法、プログラム、記憶媒体 |
WO2014115197A1 (ja) * | 2013-01-24 | 2014-07-31 | パナソニック株式会社 | 撮像装置、検出装置 |
JP6454869B2 (ja) * | 2014-03-24 | 2019-01-23 | パナソニックIpマネジメント株式会社 | 撮像装置 |
JP6155403B2 (ja) * | 2014-12-02 | 2017-06-28 | 富士フイルム株式会社 | 撮像装置及び像振れ補正方法 |
JP6362556B2 (ja) * | 2015-02-26 | 2018-07-25 | キヤノン株式会社 | 制御装置、撮像装置、制御方法、プログラム、および、記憶媒体 |
JP6614810B2 (ja) | 2015-05-29 | 2019-12-04 | キヤノン株式会社 | ブレ補正装置、撮像装置、ブレ補正方法 |
US9509894B1 (en) * | 2015-06-02 | 2016-11-29 | Google Inc. | Capturing images using controlled vibration |
CN107809590B (zh) * | 2017-11-08 | 2020-04-28 | 青岛海信移动通信技术股份有限公司 | 一种拍照方法和装置 |
US10911675B2 (en) * | 2017-12-28 | 2021-02-02 | Samsung Electronics Co., Ltd. | Method for providing shake correction, signal processing device performing the method, and imaging device including the signal processing device |
US10645291B1 (en) * | 2018-04-26 | 2020-05-05 | General Atomics Aeronautical Systems, Inc. | Systems and methods to mitigate adverse jitter effects in mobile imaging |
WO2019241909A1 (en) * | 2018-06-19 | 2019-12-26 | Hangzhou Taro Positioning Technology Co., Ltd. | Camera mobile device holder with stablization |
WO2020003885A1 (ja) * | 2018-06-27 | 2020-01-02 | 富士フイルム株式会社 | 像ブレ補正装置、撮像装置、像ブレ補正方法、及び像ブレ補正プログラム |
WO2020004018A1 (ja) | 2018-06-27 | 2020-01-02 | 富士フイルム株式会社 | 像ブレ補正装置、撮像装置、像ブレ補正方法、及び像ブレ補正プログラム |
CN111357273A (zh) * | 2019-02-21 | 2020-06-30 | 深圳市大疆创新科技有限公司 | 拍摄参数的调整方法、拍摄设备以及可移动平台 |
US11317026B1 (en) | 2020-08-19 | 2022-04-26 | General Atomics Aeronautical Systems, Inc. | Mobile imaging systems and methods utilizing angular velocity in mitigating adverse jitter effects |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004295027A (ja) | 2003-03-28 | 2004-10-21 | Nikon Corp | ブレ補正装置 |
JP2010054986A (ja) * | 2008-08-29 | 2010-03-11 | Canon Inc | 像ブレ補正機能を有する光学機器及びその制御方法 |
JP2010091672A (ja) * | 2008-10-06 | 2010-04-22 | Canon Inc | 光学機器及びその制御方法 |
JP2010243824A (ja) | 2009-04-07 | 2010-10-28 | Canon Inc | 像振れ補正装置および撮像装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0658797B1 (en) * | 1993-12-14 | 2001-11-14 | Nikon Corporation | Image movement correction of camera |
JP2006071743A (ja) * | 2004-08-31 | 2006-03-16 | Olympus Corp | ブレ補正機能を有するカメラシステム及びその補正方法 |
JP4586534B2 (ja) * | 2004-12-28 | 2010-11-24 | セイコーエプソン株式会社 | 撮像装置、手ブレ補正装置、携帯電話機および手ブレ補正方法 |
JP4667052B2 (ja) * | 2005-01-27 | 2011-04-06 | キヤノン株式会社 | 撮像装置並びにそのカメラ本体及び交換レンズ |
JP4789614B2 (ja) * | 2005-12-26 | 2011-10-12 | キヤノン株式会社 | 防振制御装置およびその制御方法 |
JP5150308B2 (ja) * | 2007-03-13 | 2013-02-20 | ペンタックスリコーイメージング株式会社 | 像ブレ補正装置 |
US8330824B2 (en) * | 2007-11-09 | 2012-12-11 | Panasonic Corporation | Camera, camera system, and camera body |
JP5439733B2 (ja) * | 2008-03-31 | 2014-03-12 | リコーイメージング株式会社 | 撮像装置 |
JP5361551B2 (ja) * | 2009-06-10 | 2013-12-04 | キヤノン株式会社 | 像振れ補正装置およびそれを備える光学機器、撮像装置、並びに像振れ補正装置の制御方法 |
JP5631063B2 (ja) * | 2010-06-11 | 2014-11-26 | キヤノン株式会社 | 傾き検出装置、振れ補正装置、撮像装置およびその傾き検出方法 |
JP5121911B2 (ja) * | 2010-10-19 | 2013-01-16 | キヤノン株式会社 | 防振制御装置、撮像装置、及び防振制御方法 |
-
2012
- 2012-09-12 WO PCT/JP2012/073312 patent/WO2013108434A1/ja active Application Filing
- 2012-09-12 EP EP12865686.5A patent/EP2806308B1/en not_active Not-in-force
- 2012-09-12 CN CN201280067370.6A patent/CN104067166B/zh active Active
-
2014
- 2014-07-15 US US14/331,556 patent/US9386225B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004295027A (ja) | 2003-03-28 | 2004-10-21 | Nikon Corp | ブレ補正装置 |
JP2010054986A (ja) * | 2008-08-29 | 2010-03-11 | Canon Inc | 像ブレ補正機能を有する光学機器及びその制御方法 |
JP2010091672A (ja) * | 2008-10-06 | 2010-04-22 | Canon Inc | 光学機器及びその制御方法 |
JP2010243824A (ja) | 2009-04-07 | 2010-10-28 | Canon Inc | 像振れ補正装置および撮像装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2806308A4 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018070468A1 (ja) * | 2016-10-13 | 2018-04-19 | 富士フイルム株式会社 | ブレ補正装置、撮像装置、及びブレ補正方法 |
JPWO2018070468A1 (ja) * | 2016-10-13 | 2019-08-29 | 富士フイルム株式会社 | ブレ補正装置、撮像装置、及びブレ補正方法 |
US10827124B2 (en) | 2016-10-13 | 2020-11-03 | Fujifilm Corporation | Shake correction device, imaging apparatus, and shake correction method |
Also Published As
Publication number | Publication date |
---|---|
EP2806308A4 (en) | 2015-10-14 |
EP2806308A1 (en) | 2014-11-26 |
EP2806308B1 (en) | 2016-09-07 |
CN104067166A (zh) | 2014-09-24 |
US20140327789A1 (en) | 2014-11-06 |
US9386225B2 (en) | 2016-07-05 |
CN104067166B (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2013108434A1 (ja) | ブレ量検出装置、撮像装置、ブレ量検出方法 | |
JP5846927B2 (ja) | ブレ量検出装置、撮像装置、ブレ量検出方法 | |
US9883104B2 (en) | Control apparatus, image pickup apparatus, control method, and non-transitory computer-readable storage medium which are capable of performing tilt correction | |
JP5965770B2 (ja) | ブレ量検出装置、撮像装置及びブレ量検出方法 | |
JP6600232B2 (ja) | 像ブレ補正装置及び方法 | |
JP6592335B2 (ja) | 像ブレ補正装置及び方法 | |
US9013585B2 (en) | Image capture device | |
KR101528860B1 (ko) | 디지털 촬영 장치의 흔들림 보정 방법 및 장치 | |
JP6098874B2 (ja) | 撮像装置および画像処理装置 | |
JP2018189730A (ja) | 像ブレ補正装置及びその制御方法、プログラム、記憶媒体 | |
JP6135848B2 (ja) | 撮像装置、画像処理装置および画像処理方法 | |
JP6098873B2 (ja) | 撮像装置および画像処理装置 | |
JP5977611B2 (ja) | ブレ量検出装置、撮像装置及びブレ量検出方法 | |
JP6128458B2 (ja) | 撮像装置および画像処理方法 | |
US10412306B1 (en) | Optical image stabilization method and apparatus | |
JP2014016451A (ja) | 撮像装置、手振れ補正量算出方法、手振れ補正量算出プログラム | |
US9389697B2 (en) | Image capturing apparatus and control method | |
JP5959315B2 (ja) | ブレ量検出装置、撮像装置、ブレ量検出方法 | |
JP4957851B2 (ja) | 手ぶれ検出装置、手ぶれ検出方法、および手ぶれ検出プログラム | |
US20240022706A1 (en) | Evaluation method of image blur correction capability of image capturing apparatus, image capturing apparatus, and recording medium | |
JP4765744B2 (ja) | 手ぶれ検出装置、手ぶれ検出方法、および手ぶれ検出プログラム | |
JP2007194813A (ja) | 撮像装置、制御方法および制御プログラム | |
CN115209055A (zh) | 拍摄方法、装置、电子设备及可读存储介质 | |
JP2015028547A (ja) | 撮像装置 | |
JP2007208767A (ja) | ぶれ補正装置、表示装置、撮影装置、電子機器、ぶれ補正方法、プログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12865686 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2012865686 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012865686 Country of ref document: EP |