(57)【要約】【課題】光学機器の使用時に、ジャイロセンサ等の振れ検出手段からの出力に含まれるより正確なオフセット成分に関する補正値を取得可能とする。【解決手段】光学機器制御装置１は、光学機器１００の振れを検出する振れ検出手段３から出力された第１の振れ検出信号を補正するための補正値を取得する補正値取得手段６を有し、補正値の取得条件が互いに異なる複数の補正値を、取得条件と対応付けてメモリ７に保存する。【選択図】図１
2019045682.tif 000002
【特許請求の範囲】
【請求項１】
光学機器の振れを検出する振れ検出手段から出力された第１の振れ検出信号を補正するための補正値を取得する補正値取得手段と、
前記補正値の取得条件が互いに異なる複数の前記補正値を、前記取得条件と対応付けてメモリに保存する処理手段とを有することを特徴とする光学機器制御装置。
【請求項２】
前記補正値は、前記第１の振れ検出信号に含まれるオフセット成分を補正するための補正値であることを特徴とする請求項１に記載の光学機器制御装置。
【請求項３】
前記取得条件は、温度、日付および場所のうち少なくとも１つを含むことを特徴とする請求項１または２に記載の光学機器制御装置。
【請求項４】
前記第１の振れ検出信号を前記補正値を用いて補正することで得られた第２の振れ検出信号を生成する信号生成手段を有し、
該信号生成手段は、前記複数の補正値のそれぞれの前記取得条件のうち、前記振れの検出条件に対して所定範囲内にある取得条件に対応付けられた少なくとも１つの候補補正値から前記第２の振れ検出信号の生成に使用する使用補正値を選択することを特徴とする請求項１から３のいずれか一項に記載の光学機器制御装置。
【請求項５】
前記第１の振れ検出信号を前記補正値を用いて補正することで得られた第２の振れ検出信号を生成する信号生成手段を有し、
該信号生成手段は、前記複数の補正値の前記取得条件と前記振れの検出条件とを用いて前記複数の補正値のそれぞれの信頼性を判定し、該信頼性に基づいて前記複数の補正値から前記第２の振れ検出信号の生成に使用する使用補正値を選択することを特徴とする請求項１から３のいずれか一項に記載の光学機器制御装置。
【請求項６】
前記信号生成手段は、前記使用補正値を選択できない場合に、少なくとも所定時間の間、所定振幅範囲内にある前記第１の振れ検出信号を用いて取得した新たな補正値を前記使用補正値として設定することを特徴とする請求項５に記載の光学機器制御装置。
【請求項７】
前記処理手段は、前記新たな補正値と該新たな補正値を取得した際の前記取得条件とを互いに対応付けて前記メモリに保存することを特徴とする請求項６に記載の光学機器制御装置。
【請求項８】
前記信号生成手段は、前記候補補正値または前記使用補正値が存在しない場合において前記第１の振れ検出信号が前記所定時間の間、前記所定振幅範囲内になかったときは、前記補正値の再取得を促すユーザ向け情報を出力することを特徴とする請求項６または７に記載の光学機器制御装置。
【請求項９】
請求項１から８のいずれか一項に記載の光学機器制御装置を有し、
前記振れ検出手段と、前記第１の振れ検出信号を前記補正値を用いて補正することで得られた第２の振れ検出信号を用いて防振動作を制御する防振制御手段のうち少なくとも一方を有することを特徴とする光学機器
【請求項１０】
光学機器の振れを検出する振れ検出手段から出力された第１の振れ検出信号を補正するための補正値を取得するステップと、
前記補正値の取得条件が互いに異なる複数の前記補正値を、前記取得条件と対応付けてメモリに保存するステップとを有することを特徴とする光学機器の制御方法。
【請求項１１】
光学機器のコンピュータに、
光学機器の振れを検出する振れ検出手段から出力された第１の振れ検出信号を補正するための補正値を取得するステップと、
前記補正値の取得条件が互いに異なる複数の前記補正値を、前記取得条件と対応付けてメモリに保存するステップとを含む処理を実行させることを特徴とする光学機器制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学機器における防振制御に関する。
【背景技術】
【０００２】
カメラや交換レンズ等の光学機器において手振れ等の振動（以下、カメラ振れという）による像振れを低減する防振システムは、カメラ振れの検出に角速度を検出するジャイロセンサが用いられることが多い。ただし、ジャイロセンサからの出力（振れ検出信号）には、温度変化や経年変化等によってオフセット成分が含まれる。つまり、異なる環境下では、オフセット成分が異なることに起因して、ジャイロセンサからの出力が等しい場合でも角速度の真値が異なる場合が生じ得る。そしてこのオフセット成分は防振性能に影響するため、振れ検出信号から除去する必要がある。
【０００３】
特許文献１には、光学機器の電源を投入するごとに、所定タイミングでのジャイロセンサの出力をオフセット成分として検出し、これをそれ以後のジャイロセンサからの振れ検出信号から差し引く方法が開示されている。特許文献２には、光学機器の充電時にオフセット成分を算出（キャリブレーション）する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４６６６７８７号公報
【特許文献２】特許第４９２４３２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１にて開示された方法では、カメラ振れによってジャイロセンサからの振れ検出信号が変動している状態でもオフセット成分として検出するため、オフセット成分の検出誤差が生じやすい。このため、振れ検出信号から正確なオフセット成分を除去することが難しい。また、特許文献２にて開示された方法では、光学機器の充電時と使用時とで温度等の環境条件が異なることで、使用時におけるオフセット成分を正確に振れ検出信号から除去できないおそれがある。
【０００６】
本発明は、光学機器の使用時により正確なオフセット成分を取得可能とする光学機器制御装置およびこれを有する光学機器を提供する。
【課題を解決するための手段】
【０００７】
本発明の一側面としての光学機器制御装置は、光学機器の振れを検出する振れ検出手段から出力された第１の振れ検出信号を補正するための補正値を取得する補正値取得手段と、補正値の取得条件が互いに異なる複数の補正値を、取得条件と対応付けてメモリに保存する処理手段とを有することを特徴とする。なお、上記光学機器制御装置を含む光学機器も、本発明の他の一側面を構成する。
【０００８】
また、本発明の他の一側面としての光学機器制御方法は、光学機器の振れを検出する振れ検出手段から出力された第１の振れ検出信号を補正するための補正値を取得するステップと、補正値の取得条件が互いに異なる複数の補正値を、取得条件と対応付けてメモリに保存するステップとを有することを特徴とする。なお、上記光学機器制御方法を光学機器のコンピュータに実行させる光学機器制御プログラムも、本発明の他の一側面を構成する。
【発明の効果】
【０００９】
本発明によれば、光学機器の使用時に、振れ検出信号に対するより正確な補正値を取得可能とすることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１であるマイコンを有するレンズユニットの構成を示すブロック図。
【図２】実施例１におけるオフセット成分除去処理を示すフローチャート。
【図３】実施例１においてメモリ内に保存されているデータテーブルを示す図。
【図４】実施例１における新オフセット成分取得処理を示すフローチャート。
【図５】本発明の実施例２であるマイコンを有するカメラ本体とレンズユニットの構成を示すブロック図。
【図６】実施例２におけるオフセット成分除去処理を示すフローチャート。
【図７】実施例２においてメモリ内に保存されているデータテーブルを示す図。
【図８】実施例２における新オフセット成分取得処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１２】
図１は、本発明の実施例１である光学機器制御装置としてのマイコン１を有する光学機器としての交換レンズ（以下、レンズユニットという）１００の構成を示している。レンズユニット１００は、不図示のカメラ本体に対して着脱可能に装着され、カメラ本体から電源供給を受けるとともに、カメラ本体との通信を行う。
【００１３】
レンズユニット１００は、補正レンズ（防振素子）１７、不図示の焦点調節レンズ等の他のレンズおよび不図示の絞りにより構成される撮像光学系を有する。補正レンズ１７は、撮像光学系の光軸に対して直交し、かつ互いに直交するヨー方向とピッチ方向にシフトすることで、カメラ振れによる像振れを低減（補正）する。
【００１４】
マイクロコンピュータ（以下、マイコンという）１は、焦点調節動作や絞り動作等のレンズユニット１００の全動作の制御を行い、その制御には後述する振れ検出信号からオフセット成分を除去する処理や振れ補正信号を生成する処理を含む。なお、マイコン１は、処理手段としても機能する。
【００１５】
振れ検出手段であるジャイロセンサ３は、光軸に直交して互いに直交するヨー（ＹＡＷ）方向とピッチ（ＰＩＴＣＨ）方向の角速度を検出し、該方向ごとの角速度を示す第１の振れ検出信号（角速度信号）であるヨー振れ検出信号とピッチ振れ検出信号を出力する。オフセット取得部（補正値取得部）６は、ジャイロセンサ３からのヨー振れ検出信号とピッチ振れ検出信号のそれぞれに含まれる直流成分であるヨーオフセット成分とピッチオフセット成分を検出する。そして、それらオフセット成分を示すヨーオフセット値とピッチオフセット値を取得する。
【００１６】
なお、以下の説明では、ヨー振れ検出信号とピッチ振れ検出信号をまとめて振れ検出信号といい、ヨーオフセット成分とピッチオフセット成分をまとめて、オフセット成分という。さらに、ヨーオフセット値とピッチオフセット値をまとめて、オフセット値（補正値）という。
【００１７】
マイコン１は、タイマ４、条件取得部５、オフセット取得部６、メモリ７、オフセット選択部８、スイッチ１２、振れ検出信号出力制御部１３、オフセット除去部９、振れ補正信号生成部１４およびフィードバック演算部１５を含む。
【００１８】
条件取得部５は、温度センサ２から現在の温度を取得し、タイマ４から現在の日付（時刻を含んでもよい）を取得する。マイコン１は、条件取得部５から得られる日付および温度を少なくとも含む取得条件を示す情報（以下、取得条件情報という）と、オフセット取得部６から得られるオフセット値とを互いに対応付けて一組のデータセットとしてメモリ７に保存する。メモリ７は、レンズユニット１００の電源を遮断しても保存内容を保持する不揮発性メモリである。
【００１９】
振れ検出信号出力制御部１３は、条件取得部５から現在の日付と温度を取得し、予めメモリ７に保存された複数のデータセットの取得条件情報が示す日付および温度と照合する。複数のデータセットは、互いに異なる取得条件（日付および温度のうち少なくとも一方）に対応するオフセット値を示す。振れ検出信号出力制御部１３は、上記複数のデータセットの中から日付と温度が現在の日付と温度に対して所定範囲内に収まっている少なくとも１つのデータセットを今回使用可能な候補データセットとして読み出す。さらに、オフセット出力部１３は、後述するようにスイッチ１２の切替えを行う。
【００２０】
オフセット選択部８は、振れ検出信号出力制御部１３により読み出された候補データセットのうち日付と温度が現在の日付と温度に最も近いデータセットを使用データセットとして選択し、該使用データセットに含まれるオフセット値を使用オフセット値として取得する。オフセット除去部９は、ジャイロセンサ３から振れ検出信号を取得するとともに、オフセット選択部８から選択された使用オフセット値を取得し、これらを減算器１０に入力する。減算気１０は、入力された振れ検出信号から使用オフセット値に相当するオフセット成分を除去し、第２の振れ検出信号としてのオフセット除去振れ検出信号を出力（生成）する。
【００２１】
また、オフセット除去部９は、ジャイロセンサ３から取得した振れ検出信号をハイパスフィルタ１１にも入力する。ハイパスフィルタ１１は、入力された振れ検出信号のうちカットオフ周波数より低い低周波成分を除去したハイパス振れ検出信号を出力する。
【００２２】
振れ検出信号出力制御部１３は、前述した候補データセットが存在する場合にはスイッチ１２を減算器１０側に切り替えて、オフセット除去振れ検出信号を振れ補正信号生成部１４に入力させる。一方、候補データセットが存在しない場合にはスイッチ１２をハイパスフィルタ１１側に切り替えて、ローカット振れ検出信号を振れ補正信号生成部１４に入力させる。ローカット振れ検出信号は、低周波成分であるオフセット成分を簡易的に低減した振れ検出信号である。振れ検出信号出力制御部１３、オフセット除去部９およびオフセット選択部８により信号生成手段が構成される。
【００２３】
振れ補正信号生成部１４は、減算器１０からのオフセット除去振れ検出信号またはハイパスフィルタ１１からのローカット振れ検出信号を用いて、補正レンズ１７の目標位置を示す振れ補正信号を生成（演算）する。振れ補正信号生成部１４は、図示はしないが、角速度を示すオフセット除去またはローカット振れ検出信号を角変位を示す振れ補正信号に変換する積分部と、振れ補正信号の位相を調整する位相補償部と、振れ補正信号の大きさ（ゲイン）を調整するゲイン調整部を含む。
【００２４】
フィードバック演算部１５は、補正レンズ１７のシフト位置を検出する位置センサ１６からの出力信号が示す検出位置と振れ補正信号生成部１４で生成された振れ補正信号が示す目標位置との差を演算する。そして、該差に応じたシフト駆動信号を生成して補正レンズ駆動部１８に出力する。これにより、防振制御が行われる。振れ補正信号生成部１４およびフィードバック演算部１５により、防振制御手段が構成される。
【００２５】
補正レンズ駆動部１８は、フィードバック演算部１５からのシフト駆動信号に応じて補正レンズ１７をシフト駆動する（すなわち、防振制御を受けた防振動作を行う）。
【００２６】
なお、本実施例では、振れ補正信号を生成するために減算器１０からのオフセット除去振れ検出信号を用いるかハイパスフィルタ１１からのローカット振れ検出信号を用いるかを選択している。しかし、ジャイロセンサ３からの振れ検出信号を減算器１０に入力するかハイパスフィルタ１１に入力するかを選択してもよい。
【００２７】
図２のフローチャートは、本実施例において振れ検出信号からオフセット成分を除去する処理を示している。マイコン１は、この処理をコンピュータプログラム（光学機器制御プログラム）に従って実行する。
【００２８】
ステップＳ２０１においてカメラ本体の電源が投入され、レンズユニット１００に電源が供給されると、ステップＳ２０２においてマイコン１内の条件取得部５はタイマ４から現在の日付を取得する。そしてステップＳ２０３に進む。
【００２９】
ステップＳ２０３では、振れ検出信号出力制御部１３は、メモリ７に保存されている複数のデータセットを含むデータテーブルにおいて、現在の日付から所定範囲であるａ日以内に取得されたオフセット値を含むデータセットを検索する。図３は、メモリ７内に保存されているデータテーブルの例を示す。以下の説明において、現在の日付からａ日以内に取得されたオフセット値を日付候補オフセット値（候補補正値）といい、該日付候補オフセット値を含むデータセットを日付候補データセットという。
【００３０】
次にステップＳ２０４では、振れ検出信号出力制御部１３は、日付候補データセットが少なくとも一組は存在するか否かを判定し、存在する場合はＳ２０５に進み、全く存在しなかった場合はＳ２１２に進む。
【００３１】
ステップＳ２０５では、振れ検出信号出力制御部１３は、日付候補データセットを全て読み出して、それらを集めた日付候補データテーブルを作成する。
【００３２】
次にステップＳ２０６では、条件取得部５は、温度センサ２から現在の温度を取得する。そして、ステップＳ２０７において振れ検出信号出力制御部１３は、ステップＳ２０５で生成した日付候補データテーブルにおいて、現在の温度に対して所定範囲としての±ｂ℃以内の温度下で取得された温度候補オフセット値を含む温度候補データセットを検索する。
【００３３】
次にステップＳ２０８では、振れ検出信号出力制御部１３は、温度候補データセットが少なくとも一組存在するか否かを判定し、存在する場合はＳ２０９に進み、全く存在しなかった場合はＳ２１２に進む。日付候補データセットであり、かつ温度候補データセットでもあるデータセットを、以下、日付温度候補データセットといい、この日付温度候補データセットに含まれるオフセット値を日付温度候補オフセット値という。
【００３４】
次にステップＳ２０９では、オフセット選択部８は、日付温度候補データセットの中から、現在の日付または温度に最も近い日付または温度で取得されたデータセットを使用データセットとして選択する。本実施例では、最も重視するパラメータを温度とする。このため、オフセット選択部８は、日付が最も近いデータセットと温度が最も近いデータセットの２つが存在する場合は後者のデータセットを使用データセットとして選択する。最も重視するパラメータを、ジャイロセンサ３の特性に応じて日付としてもよい。
【００３５】
その後、ステップＳ２１０では、オフセット除去部９は、選択された使用データセットに含まれるオフセット値（つまりはオフセット成分）を、減算器１０によりジャイロセンサ３からの振れ検出信号からの減算に使用する使用オフセット値（使用補正値）に設定する。
【００３６】
そして、ステップＳ２１１では、振れ検出信号出力制御部１３はスイッチ１２を減算器１０側にセットする。これにより、減算器１０においてジャイロセンサ３からの振れ検出信号から使用オフセット値が減算された結果としてのオフセット除去振れ検出信号が振れ補正信号生成部１４に出力され、振れ補正信号の生成に使用される。
【００３７】
一方、ステップＳ２０４またはステップＳ２０８において日付候補または温度候補データセットが存在しない（すなわち、使用可能なオフセット値が存在しない）場合は、ステップＳ２１２に進む。
【００３８】
ステップＳ２１２では、マイコン１は、新たにオフセット値を取得する条件が整うまでｃ秒間待機する。ｃ秒間は、例えば電源投入後にジャイロセンサ３からの出力が安定するまでの時間や、電源投入操作によるユーザの手振れが落ち着くまでの時間に相当する。
【００３９】
次にステップＳ２１３では、判定手段としてのマイコン１は、ジャイロセンサ３から出力される振れ検出信号をｄ秒間サンプリングして、その間の単位時間当たりの振れ検出信号の振幅を求める。
【００４０】
そしてステップＳ２１４では、マイコン１は、Ｓ２１３で求めた振れ検出信号の振幅が所定振幅範囲内である±ｅ［ｄｅｇ／ｓｅｃ］以内に収まっているか否かを判定する。±ｅ［ｄｅｇ／ｓｅｃ］以内に収まっている場合、すなわち有意なカメラ振れがない状態と判定した場合は、マイコン１はＳ２１５に進み、オフセット取得部６を通じて新たにオフセット値を取得する。
【００４１】
さらにＳ２１６では、マイコン１は、Ｓ２１５において新たなオフセット値の取得に成功したか否かを判定し、成功した場合はＳ２１０に進んで、該新たなオフセット値を使用オフセット値に設定する。また、この新たなオフセット値は、これが取得されたときの（現在の）日付および温度とともに新たなデータセットとしてメモリ７に追加される。
【００４２】
一方、ステップＳ２１４で振れ検出信号の振幅が±ｅ［ｄｅｇ／ｓｅｃ］以内に収まっていない、すなわち有意なカメラ振れがあると判定した場合およびステップＳ２１６にて新たなオフセット値の取得に失敗した場合は、マイコン１はＳ２１７に進む。
【００４３】
ステップＳ２１７では、オフセット除去部９は、ジャイロセンサ３からの振れ検出信号をハイパスフィルタ１１に入力する。すなわち、振れ検出信号に対するハイパスフィルタ演算を行う。
【００４４】
そしてステップＳ２１８では、振れ検出信号出力制御部１３はスイッチ１２をハイパスフィルタ１１側にセットする。これにより、ハイパスフィルタ１１を通過することでオフセット成分が低減されたローカット振れ検出信号が振れ補正信号生成部１４に出力され、振れ補正信号の生成に使用される。
【００４５】
ここで、ハイパスフィルタ１１では理想的にはオフセット成分のみを除去することが望ましが、カットオフ周波数を直流近傍（例えば０．０１Ｈｚ）まで下げると、時定数が著しく伸びてしまうため、安定した出力を得るのに時間を要する。しかし、カットオフ周波数を上げすぎると低周波の手振れによる像振れを良好に低減することができなくなる。このため、防振性能と時定数とのバランスをとったカットオフ周波数（例えば、０．１Ｈｚ）を設定する必要がある。
【００４６】
図４のフローチャートは、図２のステップＳ２１５で行われる新たなオフセット値を取得する処理を示している。ステップＳ４０１において、オフセット取得部６は、オフセット値取得用のハイパスフィルタ演算を開始する。この演算のハイパスフィルタは、ステップＳ２１７で使用するハイパスフィルタ１１とは別のものである。
【００４７】
次にステップＳ４０２では、オフセット取得部６は、ジャイロセンサ３からの振れ検出信号をｆ秒間取得してこれを平均することで仮オフセット値を算出し、該仮オフセット値を一時的に記憶する。
【００４８】
次にステップＳ４０３では、マイコン１は、ジャイロセンサ３からの振れ検出信号から仮オフセット値を減算した値である仮オフセット除去振れ検出信号と、ステップＳ４０１にて開始したハイパスフィルタ演算の結果である新ローカット振れ検出信号とを比較する。
【００４９】
次にＳ４０４では、マイコン１は、仮オフセット除去振れ検出信号と新ローカット振れ検出信号との差が±ｇ［ｄｅｇ／ｓｅｃ］（所定振幅範囲）以内に収まっているか否かを判定する。マイコン１は、該差が±ｇ［ｄｅｇ／ｓｅｃ］以内に収まっている場合はステップＳ４０５に進み、その状態でｈ秒（所定時間）以上経過したか否かを判定する。マイコン１は、上記差が±ｇ［ｄｅｇ／ｓｅｃ］以内に収まっている状態でｈ秒以上経過した場合は、ステップＳ４０６に進む。
【００５０】
ステップＳ４０６では、マイコン１は、条件取得部５によって取得された日付および温度と今回取得した仮オフセット値である「新たなオフセット値」とを互いに対応付けて一組のデータセットとしてメモリ７に保存する。
【００５１】
一方、ステップＳ４０４で上記差が±ｇ［ｄｅｇ／ｓｅｃ］以内に収まっている状態でｈ秒以上経過しなかった場合は、マイコン１はステップＳ４０４に戻り、該差が±ｇ［ｄｅｇ／ｓｅｃ］以内の状態でｈ秒以上経過するのを待つ。
【００５２】
また、ステップＳ４０４で上記差が±ｇ［ｄｅｇ／ｓｅｃ］以内に収まっていない場合は、マイコン１はステップＳ４０７に進み、上記差が±ｉ［ｄｅｇ／ｓｅｃ］（所定振幅範囲）以内に収まっているか否かを判定する。ここで、ｉはｇより大きな角速度を表す。上記差が±ｉ［ｄｅｇ／ｓｅｃ］以内に収まっていない場合は、マイコン１はステップＳ４０９に進み、オフセット値の取得を失敗したとしてメモリ７への保存は行わない。この場合は、新オフセット成分の取得中に大きなカメラ振れが発生してオフセット成分の取得に適さない状態になった場合に相当する。上記差が±ｉ［ｄｅｇ／ｓｅｃ］以内に収まっている場合はマイコン１はステップＳ４０８に進み、振れ検出信号から新ローカット振れ検出信号を差し引いた値を新たな仮オフセット値として一時的に記憶し、ステップＳ４０３に戻る。
【００５３】
本実施例では、オフセット値の取得条件として日付と温度の両方を用いているが、ジャイロセンサの特性（例えば、経年変化が少ないまたは温度変化の影響が小さい）によってはいずれか一方のみを取得条件としてもよい。
【００５４】
本実施例では、メモリ７に予め保存された互いに取得条件が異なる複数のオフセット値の中から現在（使用時）の振れ検出信号の検出条件にできるだけ近い取得条件に対応するオフセット値を使用オフセット値として選択する。これにより、防振制御の精度を高めることができる。
【実施例２】
【００５５】
次に、図５を用いて本発明の実施例２である光学機器制御装置としてのマイコン１を有する光学機器としてのカメラ本体（撮像装置）２００の構成を示している。図５において、実施例１と共通する構成要素には実施例１と同じ符号を付している。カメラ本体２００には、補正レンズ１７を含む撮像光学系、補正レンズ駆動部１８、位置センサ１６およびジャイロセンサ３を有するレンズユニット３００が取り外し可能に装着されている。レンズユニット３００は、カメラ本体２００が電源供給を受けるとともに、カメラ本体２００との通信を行う。
【００５６】
カメラ本体２００は、マイコン１′、温度センサ２、加速度センサ１９、圧力センサ２０およびＧＰＳセンサ２１を有する。マイコン１′は、実施例１のマイコン１に比べて、ベクトル検出部２２を有する点が異なる。また、マイコン１′内の条件取得部５′は、温度センサ２、加速度センサ１９、圧力センサ２０およびＧＰＳセンサ２１、さらにレンズユニット３００内のジャイロセンサ３からの出力が入力される。
【００５７】
条件取得部５′は、オフセット値の取得条件として、実施例１で説明した日付と温度に加えて、加速度センサ１９の出力を用いてカメラ本体２００の向きを取得し、圧力センサ２０の出力を用いて高度を取得する。さらに条件取得部５′は、オフセット値の取得条件として、ＧＰＳセンサ２１の出力から場所（位置）を取得し、ベクトル検出部２２により検出された動きベクトルからカメラ振れ量を取得する。本実施例では、メモリ７には、日付、温度およびその他の条件（向き、高度、場所およびカメラ振れ量）であるオフセット値の取得条件とこれに対応付けられたオフセット値とを含むデータセットが複数保存されている。該複数のデータセットは、取得条件が互いに異なる（したがってオフセット値も異なる）データセットである。
【００５８】
表示部２３は、ユーザに対してオフセット値のキャリブレーション（再取得）を促すユーザ向け情報としてのメッセージを表示（出力）する。これを見たユーザは、マイコン１′にオフセット値を再取得させる指示を入力し、該指示を受けたオフセット取得部６はオフセット値を再取得する。なお、メッセージは、スピーカを通した音声として出力してもよい。
【００５９】
図６のフローチャートは、本実施例において振れ検出信号からオフセット成分を除去する処理を示している。マイコン１′は、この処理をコンピュータプログラム（光学機器制御プログラム）に従って実行する。
【００６０】
ステップＳ６０１においてカメラ本体２００の電源が投入されると、ステップＳ６０２において、マイコン１′内の条件取得部５′はタイマ４から現在の日付を取得する。次にステップＳ６０３では、条件取得部′は、温度センサ２から現在の温度を取得する。
【００６１】
続いてステップＳ６０４では、オフセット選択部８は、現在の日付および温度と、メモリ７に保存されている複数のデータセットを含むデータテーブルとから、オフセット値の信頼性を示す評価値（以下、信頼性評価値という）を算出する。
【００６２】
図７（ａ）は、メモリ７に保存されているデータテーブルの例を示す。図７（ｂ）は、以下の式によって算出された信頼性評価値を示している。ここでは、現在の日付を２０１４年９月１日とし、現在の温度を２５℃として計算している。また、図７（ｃ）は、その他の取得条件の内訳とその評価例（判定内容および結果）を示している。この図７（ｃ）については後に詳しく説明する。
評価値＝１０−（日付差／３０＋温度差＋その他の取得条件）／５   （式１）
日付差＝現在の日付−データセットが取得された日付               （式２）
温度差＝現在の温度−データセットが取得されたときの温度         （式３）
次にステップＳ６０５では、算出した信頼性評価値に基づいて候補データセットを選択する。具体的には、信頼性評価値が最も高いデータセットを候補データセットとして選択する。図７（ｂ）では、Ｎｏ．１０のデータセットが該当する。
【００６３】
次にステップＳ６０６では、振れ検出信号出力制御部１３は、候補データセットの信頼性評価値がｊ点以上であるか否かを判定する。例えばｊ＝７とすると、Ｎｏ．１０のデータセットはｊ点以上であるのでステップＳ６０７に進む。
【００６４】
ステップＳ６０７では、振れ検出信号出力制御部１３は、選択された候補データセット（使用データセット）に含まれるオフセット値を読み出して、ジャイロセンサ３からの振れ検出信号から減算する使用オフセット値として設定する。
【００６５】
続いてステップＳ６０８では、振れ検出信号出力制御部１３は、スイッチ１２を減算器１０側にセットする。これにより、減算器１０においてジャイロセンサ３からの振れ検出信号から使用オフセット値が減算された結果としてのオフセット除去振れ検出信号が振れ補正信号生成部１４に出力され、振れ補正信号の生成に使用される。
【００６６】
上記式１〜式３は信頼性評価値を算出するための式の例にすぎず、他の式を用いて信頼性評価値を算出してもよい。例えば、日付や温度等のそれぞれの取得条件の重み付けを変えてもよい。
【００６７】
ステップＳ６０６で評価値がｊ点未満であった場合は、マイコン１′は、今回は信頼性が高いオフセット値が存在しないものとしてステップＳ６０９に進む。
【００６８】
ステップＳ６０９では、マイコン１′は、新たにオフセット値を取得する条件が整うまでｃ秒間待機する。ｃ秒間は図２のステップＳ２１２で説明した通りである。
【００６９】
次にステップＳ６１０では、マイコン１′は、ジャイロセンサ３から出力される振れ検出信号を所定時間であるｄ秒間サンプリングして、その間の振れ検出信号の振幅を求める。
【００７０】
次にステップＳ６１１では、マイコン１′は、Ｓ６１０で求めた振れ検出信号の振幅が所定振幅範囲内である±ｅ［ｄｅｇ／ｓｅｃ］以内に収まっているか否かを判定する。振幅が±ｅ［ｄｅｇ／ｓｅｃ］以内に収まっている場合、すなわち有意なカメラ振れがないと判定場合は、マイコン１′は６１２に進み、オフセット取得部６を通じて新たにオフセット値を取得する。
【００７１】
さらにＳ６１３では、マイコン１′は、Ｓ６１２において新たなオフセット値の取得に成功したか否かを判定し、成功した場合はＳ６０７に進んで、該新たなオフセット値を使用オフセット値に設定する。また、この新たなオフセット値は、これが取得されたときの（現在の）日付、温度およびその他の取得条件とともに新たなデータセットとしてメモリ７に追加される。
【００７２】
一方、ステップＳ６１１で振れ検出信号の振幅が±ｅ［ｄｅｇ／ｓｅｃ］以内に収まっていない、すなわち有意なカメラ振れがあると判定した場合は、マイコン１′はステップＳ６１４に進む。
【００７３】
ステップＳ６１４では、マイコン１′（振れ検出信号出力制御部１３）は、ユーザにジャイロセンサ３のオフセット値のキャリブレーションを促すメッセージを表示部２３に表示する。
【００７４】
次にステップＳ６１５において、ユーザが上記メッセージに応じてマイコン１′にオフセット値のキャリブレーションを指示した場合は、マイコン１′はＳ６１２に進み、オフセット取得部６を通じて新たなオフセット値を取得する。ユーザがキャリブレーションを指示しなかった場合およびステップＳ６１３にて新たなオフセット値の取得に失敗した場合は、マイコン１′はステップＳ６１６に進む。
【００７５】
ステップＳ６１６では、オフセット除去部９は、ジャイロセンサ３からの振れ検出信号をハイパスフィルタ１１に入力する。すなわち、振れ検出信号に対するハイパスフィルタ演算を行う。
【００７６】
そしてステップＳ６１７では、振れ検出信号出力制御部１３はスイッチ１２をハイパスフィルタ１１側にセットする。これにより、ハイパスフィルタ１１を通過することでオフセット成分が低減されたローカット振れ検出信号が振れ補正信号生成部１４に出力され、振れ補正信号の生成に使用される。ハイパスフィルタ１１のカットオフ周波数については実施例１で述べた通りである。
【００７７】
図８のフローチャートは、図６のステップＳ６１２で行われる新たなオフセット値を取得する処理を示している。図８において図４と共通する処理については図４と同じステップ番号を付し、ここでは図４のフローチャートと異なるステップについてのみ説明する。
【００７８】
ステップＳ４０１においてオフセット値取得用のハイパスフィルタ演算を開始したオフセット取得部６は、ステップＳ８０１で検証動作カウンタをクリアした後、ステップＳ４０２〜４０４の処理を行う。
【００７９】
マイコン１′は、ステップＳ４０４にて仮オフセット除去振れ検出信号（振れ検出信号−仮オフセット値）と新ローカット振れ検出信号との差が±ｇ［ｄｅｇ／ｓｅｃ］以内に収まっており、ステップＳ４０５にてその状態がｈ秒続いた場合はＳ８０２に進む。
【００８０】
ステップＳ８０２では、オフセット取得部６は検証動作カウンタを１つカウントアップする。すなわち、上記差が±ｇ［ｄｅｇ／ｓｅｃ］以内である状態がｈ秒続いたことにより、取得したオフセット値の検証動作が１回終了したと定義する。
【００８１】
その後、ステップＳ８０３において、マイコン１′は上記差が±ｇ［ｄｅｇ／ｓｅｃ］以内か否かを再度判定し、そうである場合はＳ８０４に進む。
【００８２】
ステップＳ８０４では、オフセット取得部６は検証動作カウンタが５以上になったか否か、すなわち検証動作が５回以上完了したか否かを判定する。検証動作が５回未満である場合は、オフセット取得部６はステップＳ４０４、Ｓ４０５に戻り、再度、仮オフセット除去振れ検出信号と新ローカット振れ検出信号との差が±ｇ［ｄｅｇ／ｓｅｃ］以内である状態がｈ秒続いたか否を判定する検証動作を最初から行う。
【００８３】
検証動作が５回以上完了した場合は、マイコン１′はステップＳ４０６に進む。マイコン１は、条件取得部５′によって取得された日付、温度およびその他の取得条件と今回取得した仮オフセット値である「新たなオフセット値」とを互いに対応付けて一組のデータセットとしてメモリ７に保存する。ここにいうその他の取得条件には、検証動作の結果を含む。
【００８４】
一方、ステップＳ４０４からステップＳ４０７に進んで仮オフセット除去振れ検出信号と新ローカット振れ検出信号との差が±ｉ［ｄｅｇ／ｓｅｃ］以上と判定したマイコン１′は、ステップＳ８０５に進む。上記差が±ｉ［ｄｅｇ／ｓｅｃ］以上となるのは、オフセット値の取得中に好ましくない大きなカメラ振れが生じた場合である。
【００８５】
ステップＳ８０５では、マイコン１′は検証動作カウンタが０か否かを判定する。検証動作カウンタが０でない場合は、大きなカメラ振れが生じる前に既に１回以上検証動作を終えたオフセット値が存在するため、マイコン１′はステップＳ４０６に進み、このオフセット値を「新たなオフセット値」としてメモリ７に保存する。
【００８６】
一方、検証動作カウンタが０の場合は、信頼性の高いオフセット値を取得できていないので、マイコン１′はステップＳ４０９に進み、オフセット値の取得を失敗として本処理を終了する。
【００８７】
本実施例によれば、メモリに予め保存された複数のオフセット値の中から最も信頼性が高いオフセット値を使用して振れ検出信号からオフセット成分を除去することができるため、防振制御の精度をより高めることができる。また、保存された複数のオフセット値に最適なオフセット値がない場合でも、ある程度適切な防振制御を行うことができる。
【００８８】
次に、図７（ｃ）に示したその他の取得条件の内訳およびその評価例について説明する。図７（ｃ）に示したその他の取得条件は７種類あり、それぞれが同じ重みで８ビットの変数に１ビットずつ割り振られている。その他の取得条件は、オフセット値の取得条件として好ましい条件である場合にそれに対応するビット（つまりは評価値）が０となり、好ましくない条件である場合に対応するビットが１となる。
【００８９】
ビット７は、オフセット値の取得中の角速度（振れ検出信号）の大きさを示す。ジャイロセンサ３の出力から角速度の最大値と最小値を取得し、それらが所定範囲内に入っている場合にはビット７は０となり、それ以外は１となる。
【００９０】
ビット６は、検証動作の有無を示す。オフセット値の取得時に前述した検証動作を行うことができた場合はビット６は０となり、それ以外は１となる。
【００９１】
ビット５は、検証動作の実施回数を示す。検証動作を３回以上実施した場合はビット５は０となり、２回以下の場合は１となる。
【００９２】
ビット４は、オフセット値の取得時に動きベクトルを参照したか否かを示す。動きベクトルは、不図示の撮像素子からの出力により得られた画像信号からベクトル検出部２２により検出される。検出された動きベクトルの大きさが０に近い場合はカメラ本体２００が静止している可能性がより高いため、動きベクトルにより静止状態であることを確認した場合はビット４は０となり、それ以外は１となる。
【００９３】
ビット３は、オフセット値の取得を自動で行ったかユーザの指示に応じて行ったかを示す。前述した表示部２３でのオフセット値のキャリブレーションを促す表示に応じてユーザがキャリブレーションを行った場合は、適切な状況でオフセット値が取得されている可能性が高いため、ビット３は０となり、それ以外は１となる。
【００９４】
ビット２は、カメラ本体２００の向きを示す。例として、カメラ本体２００を机等の平面上に置いたときに最も安定する上向き姿勢を基準とし、カメラ本体２００が上向き姿勢であることを加速度センサ１９の出力から確認できた場合はビット２は０となり、それ以外（横向き姿勢等）の場合は１となる。
【００９５】
ビット１は、オフセット値を取得した場所を示す。ユーザが通常使用する場所を登録しておき、圧力センサ２０やＧＰＳセンサ２１の出力からオフセット値を取得したときのカメラ本体２００の位置（座標）を検出する。そして、カメラ本体２００が通常使用する場所またはそれに近い場所である場合はビット１は０となり、それ以外は１となる。ビット０は該当する取得条件がないため固定値０である。
【００９６】
ここで説明したその他の取得条件の内訳は例であり、ジャイロセンサ３や防振システムの特性に応じて変更したり他の取得条件を設けたりしてもよい。また、各取得条件の評価値は、図７（ｃ）に示したように０と１で表わすだけでなく、各取得条件の重み付けを変えられるように変数として表してもよい。
【００９７】
実施例１および実施例２では、各判定ステップにおいてａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈ，i，ｊなる値を用いて説明したが、これらの値の具体例としては以下の値を挙げることができる。
ａ＝３０（日）
ｂ＝５（℃）
ｃ＝１（秒）
ｄ＝０．５（秒）
ｅ＝１（ｄｅｇ／ｓｅｃ）
ｆ＝０．２（秒）
ｇ＝０．５（ｄｅｇ／ｓｅｃ）
ｈ＝０．５（秒）
ｉ＝５（ｄｅｇ／ｓｅｃ）
ｊ＝７（点）。
なお、実施例１および実施例２では、取得条件が異なるオフセット値をメモリに保存し、その中から候補オフセット値や使用オフセット値を選択する場合について説明した。しかし、メモリに記憶する値はオフセット値そのものでなくてもよく、振れ検出信号のオフセット成分を補正するための補正値であればよい。例えば、振れ検出信号を補正するための補正値としての係数が温度と対応付けられてメモリに記憶されてもよい。さらに補正値は、オフセット値や係数だけでなく、様々な値であってよい。
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９８】
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
【符号の説明】
【００９９】
１，１′マイコン
２  温度センサ
３  ジャイロセンサ
４  タイマ
５  条件取得部
６  オフセット取得部
７  メモリ
【図１】
2019045682.tif 000003
【図２】
2019045682.tif 000004
【図３】
2019045682.tif 000005
【図４】
2019045682.tif 000006
【図５】
2019045682.tif 000007
【図６】
2019045682.tif 000008
【図７】
2019045682.tif 000009
【図８】
2019045682.tif 000010