図1は、本実施形態における像ブレ補正装置13を備えた撮像装置100(デジタルカメラやデジタルビデオカメラなどの光学機器)のブロック図である。撮像装置100は、レンズ鏡筒10、撮像素子11、角速度センサ12、像ブレ補正装置13、スイッチ14、焦点距離検出部15を有する。
レンズ鏡筒10は、物体の光学像を形成する撮影光学系を収納し、撮影光学系は、ズームレンズ101、絞り102、補正レンズ103、および、フォーカスレンズ104を含むレンズ群を有する。
ズームレンズ(変倍レンズ)101は、光軸OAの方向に移動されて焦点距離を変更する。絞り102は撮像素子11に入射する光量を調整する。フォーカスレンズ104は光軸OAの方向に移動されて焦点調節を行う。補正レンズ103は、光軸OAに直交する方向に移動されて像ブレを補正する。なお、「直交する方向」は光軸OAに直交する成分があれば足り、光軸OAに斜めに移動されてもよい。
レンズ鏡筒10はインナーフォーカスタイプの構造を有するが、本実施形態はこれに限定されるものではなく、リアフォーカスタイプの構造を有するレンズ群にも適用可能である。レンズ鏡筒10と撮像装置本体(カメラ本体)とは一体的に構成されていてもよいし、レンズ鏡筒10が撮像装置本体に交換可能に構成されていてもよい。
撮像素子11は、撮影光学系が形成した光学像を光電変換し、CCDやCMOS等から構成される。
角速度センサ(角速度検出部)12は、撮像装置100の角速度を計測して、計測された角速度に対応する信号(角速度信号)を出力し、例えば、ジャイロセンサから構成される。角速度センサ12は、ヨー(Yaw)方向(第1軸の方向)の角速度を計測するヨー方向角速度センサ121と、ピッチ(Pitch)方向(第2軸の方向)の角速度を計測するピッチ方向角速度センサ122と、を有する。ただし、本実施形態はこれに限定されるものではなく、互いに直交する2軸方向または3軸方向の角速度を検出可能な1つの角速度センサを用いてもよい。
像ブレ補正装置13は、少なくとも2つの軸の方向の角速度信号から得られた角変位信号に基づいて補正レンズ103を駆動する信号を生成する。像ブレ補正装置13は、A/Dコンバータ131、ハイパスフィルタ(HPF)132、積分フィルタ133、補正レンズ制御部134、および、積分特性切替部135を有する。
像ブレ補正装置13は、角速度センサ12から得られた角速度信号に所定の処理を行い、補正レンズ103を駆動するための補正信号を生成する。なお、補正信号の演算はヨー方向、ピッチ方向それぞれ別個に行われるべきであるが、説明の簡略化のため、図1に示す像ブレ補正装置13はヨー方向のみの処理系として示されており、ピッチ方向については図示しない同様の処理系が別に存在するものとする。本実施形態において、像ブレ補正装置13は補正レンズ103を駆動するが、これに限定されるものではなく、撮像素子11を光軸直交方向に駆動してもよい。
スイッチ14を操作することにより、像ブレ補正(防振機能)を行うか否かを選択することができる。なお、スイッチ14は、像ブレ補正を行うか否かを選択するものに限定されず、スイッチ14の切替によって像ブレ補正の制御を変更するように構成してもよい。スイッチ14はカメラのレリーズボタンでもよいし、カメラのモードを切り替えることによってソフトウェア的にオン/オフされるようなものでもよい。
焦点距離検出部15は焦点距離を検出する。
次に、像ブレ補正装置13で行われる信号処理の流れについて説明する。まず、角速度センサ12により得られた角速度信号(アナログ信号)は、A/Dコンバータ131により、デジタル信号に変換される。続いて、デジタル化された角速度信号は、HPF132を通過することにより、DC成分(低周波成分)がカットされた角速度信号になる。
積分特性切替部135は、補正モード選択部135a、積分特性選択部135b、積分特性データ群135cを有する。
積分特性切替部135は、補正モード選択部135a、積分特性選択部135b、積分特性データ群135c、フラグ/閾値データ群135d、カウンタ135e、クロック生成器135fを有する。積分特性データ群135cとフラグ/閾値データ群135dは1つのメモリに設けられていてもよい。メモリは後述するフローチャートもプログラムとして格納している。クロック生成器135fは積分特性切替部135の外部に設けられて積分特性切替部135はクロック生成器135fが出力するクロック信号を受信する構成でもよい。
補正モード選択部135aは、HPF132を通過して得られる角速度信号に従って変化するフラグ/閾値データ群135dとカウンタ135eの状態と焦点距離検出部15から得られる焦点距離に基づいて現在のブレ補正モードを選択する。HPF132を通過した後の角速度信号を用いることにより、手ブレによらない(DC成分に近い)オフセット成分を除去することができ、より適切なブレ補正モードを選択することができる。本実施形態では、補正モード選択部135aは、歩行撮影、非歩行撮影(静止撮影)、歩行撮影の開始・終了などの撮影状態にあった補正モードを選択する。
フラグ/閾値データ群135dは、各種のフラグ(例えば、歩行ブレレベル0から3、+方向フラグ、−方向フラグ)、各種の閾値(例えば、焦点距離の所定値(閾値)、角速度の閾値、時間閾値、ヨー方向とピッチ方向のそれぞれの所定周期)を含む。各フラグは補正モード選択部135aによってオン(=1)とオフ(=0)に切り替えられるが、積分特性切替部135内の他の構成要素によって切り替えられてもよい。+方向フラグは1に設定されると振幅がプラス側の信号を意味し、−方向フラグは1に設定されると振幅がマイナス側の信号を意味する。
カウンタ135eは、時間カウンタ135e1、周期カウンタ135e2、タイムアウトカウンタ135e3を有し、クロック生成器135fからのクロック信号のクロック数を計数(カウント)することにより、計時を行う。時間カウンタ135e1は、歩行ブレ(歩行撮影時の振動)開始または終了判定において、時間計測を行う。周期カウンタ135e2とタイムアウトカウンタ135e3は第2の開始判定基準が満足されたかどうかを判断する際に繰り返し回数を取得するために使用される。周期カウンタ135e2は周期をカウントする。タイムアウトカウンタ135e3は、設定時間から経過時間が減算されて0になるとタイムアウトとなる。補正モード選択部135aは、開始カウンタ135e1と終了カウンタ135e2によって計時された時間をフラグ/閾値データ群135dに記憶された時間閾値と比較する。
積分特性選択部135bは、補正モード選択部135aの選択結果と焦点距離に応じて、積分フィルタ133に適用される積分特性を選択する。積分特性切替部135には、複数の積分特性(積分特性1、2、…n)を有する積分特性データ群135cが記憶されており、積分特性データ群135cの積分特性の中から特定の積分特性が、積分特性選択部135bによって選択される。
積分特性切替部135によって現在の撮影状態に適した積分特性が設定されると、角速度信号はその積分特性を適用した積分フィルタ133を通過し、角変位信号に変換される。
補正レンズ制御部134は、積分フィルタ133を通過して得られた角変位信号を用いて、撮像装置100のブレによる移動方向とは逆方向に、補正レンズ103を光軸直交方向であるヨー方向およびピッチ方向に移動させる。すなわち、補正レンズ制御部134は、補正モード選択部135aの選択結果に応じた設定される積分特性を用いて像ブレ補正を行う。このように、像ブレ補正装置13は、積分特性切替部135を備え、歩行ブレ補正モード(第1の補正モード)か静止ブレ補正モード(第2の補正モード)かを選択するため、撮影状態に適した像ブレ補正を行うことができる。
次に、積分特性の相違により補正レンズ103の駆動がどのように変化するかについて説明する。図2は、像ブレ補正装置13の積分特性を示す図であり、横軸はHPF132の出力を積分することによって得られる(ブレの大きさを表す)ブレ角変位(度)、縦軸はカットオフ周波数(Hz)を表している。図2(a)は歩行ブレ補正モードに適した積分特性1が設定された場合、図2(b)は静止ブレ補正モードに適した積分特性2が設定された場合を示している。カットオフ周波数は値が高いほど、レンズを中心に向かわせようとするレンズ向心力が強くなる。
積分特性1、積分特性2は共に最低カットオフ周波数がfc1、最高カットオフ周波数がfc2の積分特性である。積分特性1はブレの大きさを表すブレ角変位がD3からカットオフ周波数を徐々に上げていき、ブレ角変位D4で最高カットオフ周波数fc2に達する積分特性を表す。それに対して積分特性2はブレ角変位がD1からカットオフ周波数を徐々に上げていき、ブレ角変位D2で最高カットオフ周波数fc2に達する。即ち、積分特性2はブレ角変位D2のような小さなブレに対してもレンズ向心力を大きくする(像ブレ補正範囲を狭くする)積分特性であり、積分特性1は小さなブレに対してはレンズ向心力を小さくしている(像ブレ補正範囲を広くする)積分特性である。像ブレ補正範囲が広いということは、補正レンズの変位範囲が広いということであり、補正角が広いということである。
ここで、「レンズ向心力」は、補正レンズ103を光軸中心に向かわせようとする力であり、メカストローク上のレンズ駆動限界範囲が一定のとき、レンズ向心力が小さいほど補正レンズ103の駆動範囲は広くなる。積分特性2は、小さなブレ角変位からカットオフ周波数が高くなっているため、補正レンズ103の駆動範囲が狭く、積分特性1は、ブレ角変位が大きくなるまでカットオフ周波数を低くしており、レンズ駆動範囲が広く、大きな像ブレも補正可能である。
このように、本実施形態は、複数の異なる積分特性を予め記憶し、撮影状態に応じて積分特性を切り替えることで、補正レンズ103の駆動範囲を変更する。なお、「撮影状態」は、ブレの大きさや周波数等で決まる補正モード、焦点距離、静止画/動画撮影状態やカメラの縦位置、横位置の構え方、三脚使用の有無を含む。例えば、積分特性選択部135bは、静止ブレ補正モードが選択されたときは積分特性2を選択し、歩行ブレ補正モードが選択されたときは積分特性1を選択する。これにより、歩行撮影中は静止撮影中よりもレンズ駆動範囲(像ブレ補正範囲)が大きくなり、歩行撮影中に生じる大きな像ブレも補正することができる。
なお、本実施形態によるレンズ駆動範囲の変更は、積分特性を変更する方式に限られるものではない。例えば、駆動範囲にリミッタを設け、リミッタ位置を変えることでレンズ駆動範囲を変更してもよい。
以上説明したように、撮影状態を判定し、その結果によってレンズ駆動範囲を変更することにより、現在の撮影状態に適した像ブレ補正が可能になる。
以下、図3〜図8、図10〜図12のフローチャートと図9の角速度波形を用いて、実施例1の補正モード選択部135aによって、歩行ブレの開始、終了を判定する流れを説明する。なお、図3〜図8、図10〜図12のフローチャートで示されるフローは、一回のみの実施ではなく、所定のサンプリング周期と実行開始の条件に従って繰り返し実行されるものとする。各フローチャートにおいて「S」はステップ(工程)の略であり、各フローチャートはマイクロコンピュータとして構成可能な積分特性切替部135に各ステップの手順を実行させるためのプログラムとして具現化可能である。
図3は、補正モード選択部135aが歩行ブレ補正開始を判定する概略フローを示している。
補正モード選択部135aは、HPF132を通過した後の角速度信号を用いて撮影状態の判定を行う。ここで、HPF132を通過した後の角速度を用いるのは、角速度センサ12の出力に乗ったオフセット成分や低周波ノイズ等による誤判定を防止するためである。なお、歩行ブレ判定専用のHPFを別に設け、この出力を使用してもよい。
S301において、補正モード選択部135aは、HPF132の出力が第1の開始判定基準を満たしているかどうかを判定する。第1の歩行判定基準が満たされていれば(S301のYes)、S302において、補正モード選択部135aは、HPF132の出力が第2の開始判定基準を満たしているかどうかを判断する。一方、第1の歩行判定基準が満たされていなければ(S301のNo)、S308において、補正モード選択部135aは歩行ブレレベルを0(歩行中ではない)に設定する(歩行ブレレベル0フラグを設定する)。
第2の開始判定基準が満たされていれば(S302のYes)、S303において、補正モード選択部135aは、HPF132の出力が第3の開始判定基準を満たしているかどうかを判断する。一方、第2の開始判定基準が満たされていなければ(S302のNo)、S304において、補正モード選択部135aは歩行ブレレベルを1に設定する(歩行ブレレベル1フラグを設定する)。
第3の開始判定基準が満たされていれば(S303のYes)、S306において、補正モード選択部135aは歩行ブレレベルを3に設定する(歩行ブレレベル3フラグを設定する)。一方、第3の開始判定基準が満たされていなければ(S303のNo)、S305において、補正モード選択部135aは歩行ブレレベルを2に設定する(歩行ブレレベル2フラグを設定する)。
S304〜S306の後、S307において、補正モード選択部135aは、現在のレンズの焦点距離が所定値以下であるかどうかを判定する。所定値以下でなければ(即ち、テレ側であれば十分な歩行ブレ補正ができないので)(S307のNo)、S308において、補正モード選択部135aは歩行ブレレベルを0(歩行中ではない)に設定する。
像ブレ補正において、補正部材による光軸の補正可能角度は、テレ側よりもワイド側の方が大きくなる。また、補正部材による補正量(動き量)が等しいとき、ワイド側ではテレ側よりも補正部材による補正角度が大きくなる。つまり補正部材の動き量に対する補正角度の敏感度がワイド側では高くなる。例えば、テレ側の補正可能角度が0.5度で、テレ側に対するワイド側の敏感度が4倍だった場合、ワイド側の補正可能角度は2度になる。
S307はこれを利用して補正角度の拡大を行うためであり、焦点距離がある程度ワイド側である必要があるためである。S307の所定値は、光学系の設計(例えばテレとワイドのズーム倍率や、ブレ補正レンズの敏感度)に依存する。例えば、補正可能角度が1度ないし2度程度となる焦点距離以下を有効にすると歩行ブレに対する補正効果が表れるが、その場合の焦点距離がいくつになるかは光学設計次第である。
焦点距離が所定値以下である場合(S307のYes)またはS308の後、S309において、補正モード選択部135aは、設定した歩行ブレレベルが1以上か否かを判定する。1以上である場合(S309のYes)、即ち、歩行中であり補正角の拡大が有効である場合、補正モード選択部135aは、S310において、歩行ブレ補正モードを選択する。一方、歩行ブレレベルが0である場合(S309のNo)、補正モード選択部135aは、S311において、静止ブレ補正モードを選択する。
このように、本実施例では、補正モード選択部135aは、現在の振動が歩行による振動であるかどうかを判断するために確度が異なる複数の開始判定基準を使用する。いずれかの基準が満足されると歩行ブレ補正モードを選択する。
図4は、補正モード選択部135aが歩行ブレ補正終了を判定する概略フローを示しており、このシーケンスに入るのは歩行ブレ補正モードが選択された場合である。
まず、現在の歩行ブレレベルが1である場合(S401のYes)、S402において、補正モード選択部135aは、第1の終了判定基準が満たされているかどうかを判定する。第1の終了判定基準が満たされていれば(S402のYes)、補正モード選択部135aは、S403において、歩行ブレレベルを0に設定する。その後、S404で、補正モード選択部135aは、静止ブレ補正モードを選択し、処理を終了する。
一方、第1の終了判定基準が満たされていなければ(S402のNo)、補正モード選択部135aは、S408において、歩行ブレ補正モードを継続し、処理を終了する。
現在の歩行ブレレベルが1でない場合(S401のNo)、S405において、補正モード選択部135aは、歩行ブレレベルが2であるかどうかを判定する。歩行ブレレベルが2である場合(S402のYes)、S406において、補正モード選択部135aは、第2の終了判定基準が満たされているかどうかを判定する。第2の終了判定基準が満たされていれば(S406のYes)、S402に移行し、第2の終了判定基準が満たされていなければ(S406のNo)、S408に移行する。
現在の歩行ブレレベルが2でない場合(S405のNo)、S407において、補正モード選択部135aは、第3の終了判定基準が満たされたかどうかを判定する。第3の終了判定基準が満たされていれば(S407のYes)、S403に移行し、第3の終了判定基準が満たされていなければ(S407のNo)、S408に移行する。
歩行ブレレベルは大きくなるに従って歩行中である確度(可能性、信頼性)が高くなる。歩行ブレレベルが低いとき(歩行中である可能性が低いとき)、ただ大きなブレが入ったという状態のときでも、歩行中の可能性があるため、素早く歩行ブレ補正モードへ移行する。一方、終了判定基準を低く設定し、大きなブレが続かない場合には素早く歩行ブレ補正モードを抜けるようにしている。また、歩行ブレレベルが高く、歩行中である可能性が高ければ、歩行のムラ(歩幅、速度、強弱等の変動)があっても、歩行ブレ補正モードから抜けにくくしている。即ち、図4に示すように、複数の基準のうちで1つの基準(例えば、レベル3を維持する基準)が満たされ、その後、満たされなくなった場合を考える。この場合、補正モード選択部135aは、1つの基準よりも確度が低い基準が満足されるかどうかを確度が高い順番(即ち、レベル2を維持する基準、レベル1を維持する基準の順番)で判断し、いずれの基準も満たされない場合に前記第2の補正モードを選択する。いずれかの基準が満たされている限り、歩行ブレ補正モードが維持され、例えば、S407やS406から直ちにS403に移行しない。
図5は、補正モード選択部135aが第1の開始判定基準(第1の基準)が満足されたかどうかを判断する手順を示すフローチャートであり、S301の判断に使用される。第1の開始判定基準は、ヨーまたはピッチ方向いずれか片方の角速度(HPF132の出力)がある方向に閾値(後述する閾値V1)を超えてから所定時間(後述する時間T10)内に逆方向に別の閾値(後述する閾値V2)を超えた場合に満足されたと判断される。なお、「ある方向」とは角速度がプラスおよびマイナスの一方の方向であり、「逆方向」とはプラスおよびマイナスの他方の方向である。
S501において、補正モード選択部135aは、角速度(HPF132の出力)が閾値V1を超えたか否かを判定し、超えた場合はS502において、超えてからの時間を開始カウンタ135e1にカウントさせる。ここで、閾値V1は符号付きの閾値であり、ヨー方向であれば右、または左、ピッチ方向であれば上または下のいずれか一方の方向の角速度閾値である。
S502の後、S503において、補正モード選択部135aは、角速度が閾値V1を超えてから第1期間である時間(閾値)T10が経過したか否かを判定する。未だ経過していなければ、S504において、各速度が閾値V2を超えたか否かを開始カウンタ135e1の出力に基づいて判定する。閾値V2も符号付きの閾値であり、閾値V1とは逆符号の閾値である。例えば、ヨー方向であれば閾値V1が右方向の閾値だった場合、閾値V2は左方向の閾値である。逆に、閾値V1が左方向の閾値だった場合、閾値V2は右方向の閾値である。閾値V1を超えてから時間T10内(第1期間内)に逆方向の閾値V2を超えた場合、補正モード選択部135aは、S505で第1の開始判定基準が満足されたと判定する。
一方、S501で角速度が閾値(第1閾値)V1を超えていない場合S506へ進むが、時間カウンタが0でない場合は(S506のNo)過去のいずれかの時点では閾値V1を超えていたことが明らかであるため、S502へ進む。一方、時間カウンタが0である場合は(S506のYes)、過去に時間カウンタのカウントアップを行っていないかカウンタリセット後であるため、S508において、補正モード選択部135aは、第1の開始判定基準が満足されていないと判定する。
また、S503で時間T10が経過した場合はS507において、時間カウンタをリセットしてS508へ進む。S504で角速度が閾値(第2閾値)V2を超えていない場合もS508へと進み、第1の開始判定基準が満足されていないと判定する。
図6は、補正モード選択部135aが第2の開始判定基準(第2の基準)が満足されたかどうかを判断する手順を示すフローチャートであり、S302の判断に使用される。第2の開始判定基準は、ヨー方向とピッチ方向の両方の軸の角速度が所定周期以上の間、所定振幅以上であった場合に満足されたと判断される。
S601において、補正モード選択部135aは、ヨー方向の角速度が所定の振幅を超える繰り返し回数を取得する。この回数は半周期に1回カウントアップされる。
S602において、補正モード選択部135aは、ピッチ方向の角速度が所定の振幅を超えた回数を取得する。ここで波形の周期性を見るためには所定回数は少なくとも2回(1周期)以上とする必要があり、本実施例では4回(2周期とする)。
S603において、S601の結果から、補正モード選択部135aは、ヨー方向の角速度が所定以上の振幅で所定の周期(2周期)以上振動が継続したかを判定し、継続していればS604において、同様にピッチ方向の判定を行う。ピッチ方向の角速度が所定以上の振幅で所定の周期以上振動が継続した場合、S605において、補正モード選択部135aは、第2の開始判定基準が満足されたと判定する。S603またはS604において、角速度が所定以上の振幅で所定の周期以上振動が継続しなかった場合、S606において、補正モード選択部135aは、第2の開始判定基準が満足されなかったと判定する。なお、ヨー方向、ピッチ方向の所定振幅や所定周期は閾値としてフラグ/閾値データ群135dに記憶されている。
ここで、図8を参照して、補正モード選択部135aが、角速度が所定の振幅を超えた回数を取得する方法を説明する。
まず、S801において、角速度信号はローパスフィルタ(LPF)処理を施される。これは、歩行による振動の周波数は5Hzに達しない場合がほとんどで、一般的な手ブレの周波数の上限(10〜20Hz)よりも低いため、高周波による誤判定を防ぐためである。
次に、S802において、LPF出力が+閾値(+V3)以上か否かを判定する。V3は任意の符号なしの定数で、歩行ブレを検出する際には、例えば、10deg/sec程度となる。+V3以上であれば(S802のYes)、補正モード選択部135aは、S803において+方向フラグが立っている(オン、つまり1)かどうかを判定する。最初は+方向フラグは立っていない(オフ、つまり0である)。
+方向フラグが立っていなければ(S803のNo)、S804において、補正モード選択部135aは、+方向フラグをオンに(つまり、1に)設定する。S804の後、S805において、補正モード選択部135aは、−方向フラグをクリアし(つまり、0にし)、S806において、周期カウンタ135e2をカウントアップして周期のカウントを開始し、S807でタイムアウトカウンタ135e3をクリアする。
一方、+方向フラグが立っていれば(S803のYes)、S808において、補正モード選択部135aは、タイムアウトカウンタ135e3をカウントアップする。S808の後、S809において、時間(閾値)T20が経過すると、S810において、補正モード選択部135aは、周期カウンタ135e2をクリアし、S811において、タイムアウトカウンタ135e3をクリアする。
一方、S802において、LPF出力が+V3以上でなければ(S802のNo)、S812において、補正モード選択部135aは、LPF出力が‐閾値(−V3)以下か否かを判定する。−V3以下であれば(S812のYes)、補正モード選択部135aは、S813において、−方向フラグが立っているかどうかを判断する。
−方向フラグが立っていなければ(S813のNo)、補正モード選択部135aは、S814において、−方向フラグをセットし、S815において、+方向フラグをクリアする。また、補正モード選択部135aは、S816において、周期カウンタ135e2をカウントアップし、S817において、タイムアウトカウンタ135e3をクリアする。
一方、−方向フラグが立っていれば(S813のYes)、S818において、補正モード選択部135aは、タイムアウトカウンタ135e3をカウントアップする。S808の後、S819において、時間T20が経過すると、S820において、補正モード選択部135aは、周期カウンタ135e2をクリアし、S821において、タイムアウトカウンタ135e3をクリアする。
S809およびS819で時間T20が経過していない場合、S811、S817の後でフローはS801に戻る。これにより、LPF出力が±V3を交互に超える度に周期カウンタ135e2がカウントアップされ、所定時間内に±V3の繰り返しが起こらない場合は周期カウンタ135e2がリセットされることになる。
図7は、補正モード選択部135aが第3の開始判定基準(第3の基準)が満足されたかどうかを判断する手順を示すフローチャートであり、S303の判断に使用される。第3の開始判定基準は、ヨー方向とピッチ方向の両方の軸の周波数の比が所定の比率の許容範囲内にあった場合に満足されたと判断される。
まず、S701で、補正モード選択部135aは、ヨー方向の角速度周波数を取得する。ここでは、周波数測定結果にある程度の安定性を求めるため、2周期間の時間を測定し、そこから周波数を計算するものとする。周波数を取得する方法についての詳細は割愛するが、例えば、図8で示した繰り返し回数をカウントする際に+V3から−V3までの時間を測定すれば周波数を求めることができるし、別の方法を用いてもよい。
同様に、S702で、補正モード選択部135aは、ピッチ方向の周波数を取得する。
次に、S703で、補正モード選択部135aは、ヨー方向の周波数:ピッチ方向の周波数≒a:bであるか否かを判定する。即ち、補正モード選択部135aは、ヨー方向の周波数とピッチの周波数の比が所定の比率(a:b)であるか、所定の比率の許容範囲内にあるか(つまり、a:bから多少ずれてもよい)どうかを判断する。
許容範囲内にあれば(S703のYes)、S704において、補正モード選択部135aは、第3の開始判定基準が満足されたと判定する。一方、許容範囲内になければ(S703のNo)、S705において、補正モード選択部135aは、第3の開始判定基準が満足されなかったと判定する。
ヨー方向の信号は右足を着いた時と左足を着いた時で山と谷を形成する。つまり右(左)足を着いてから次に右(左)足を着くまでが一周期である。一方、ピッチ方向の信号は右足も左足も同様に、足を地面に着いた時と地面から離した時で山と谷を形成する。つまり右(左)足を着いてから左(右)足を着くまでが一周期である。そのため、上記所定の比率は約1:2となるのが一般的である。カメラを縦に構えた場合はその逆の比になる。
図9は、ヨー方向、ピッチ方向それぞれの角速度波形と、歩行ブレレベルが徐々に上がっていく様子を示すグラフである。図9(a)の縦軸はヨー方向の角速度、横軸は時間、図9(b)の縦軸はピッチ方向の角速度、横軸は時間を表している。三角は認定される歩行ブレレベルである。
時刻T1において、ヨー方向の角速度が閾値V1を超え、そこから時間T10以内の時間(△t1)で閾値V2を超えたため、ここで第1の開始判定基準が満足される(S505、S301のYes)。
次に、ヨー方向の角速度はT1よりもわずかに手前のT3において、+閾値(+V3)を超えており、T4までの時間で振幅V3を2周期超えている(S603のYes)。また、ピッチ方向の角速度は時刻T5において、−閾値(−V3)を超え、T6までの時間で振幅V3を2周期超えている(S604のYes)。従って、T6の時点で第2の開始判定基準が満足される(S605、S302のYes)。
ヨー方向の角速度周波数はT4の時点で2周期間安定しており、その後も崩れていない。一方、ピッチ方向の角速度はT6の時点ではまだ2周期間安定しておらず、T7の時点で安定している。更にヨー方向の周波数とピッチ方向の周波数の比が約1:2になっている。よって、T7の時点で第3の開始判定基準が満足され(S704、S303のYes)、歩行ブレレベルは3になる(S306)。
図9の例において、ヨー方向の周波数を1Hz、ピッチ方向の周波数を2Hzと仮定すると、歩行開始後約0.5秒で歩行ブレを検出し、約2.5秒で本実施例の最高レベルであるレベル3に達している。
図10は、補正モード選択部135aが第1の終了判定基準(第1の基準)が満足されたかどうかを判断する手順を示すフローチャートであり、S402の判断に使用される。このフローは、第1の開始判定基準を満たした軸において、歩行ブレレベル1の時に行われる。第1の終了判定基準は、いずれか片方の角速度(HPF132の出力)がある方向に閾値(後述する閾値Va)を超えなくなってから所定時間(後述する時間T11)内に逆方向の別の閾値(後述する閾値Vb)も超えない場合に満足されたと判断される。
S1001において、補正モード選択部135aは、過去に閾値Vaを超えてからの時間を時間カウンタ135e1にカウントさせる。ここで、閾値Vaは符号付きの閾値であり、第1の開始判定基準で用いた閾値以下の絶対値を有する閾値である。つまり、0<|閾値Va|≦|閾値V1|または0<|閾値Va|≦|閾値V2|である。そのため、歩行ブレレベル1であれば、本判定処理を行う前に必ず一度は閾値Vaを超えている。閾値Vaを閾値V1またはV2よりも小さくすることによって、第1の終了判定基準を満たす条件は第1の開始判定基準を満たす条件よりも緩和され、歩行ムラによる影響を低減することができる。これは、以下に登場する他の閾値についても同様である。
次に、S1002において、補正モード選択部135aは、時間カウンタ135e1の出力に基づいて時間T11が経過していなければS1003において、角速度が閾値Vbを超えたか否かを判定する。閾値Vbは閾値Vaと同様に符号付きの閾値であり、第1の開始判定基準で用いた閾値以下の絶対値を有する閾値である。つまり、0<|閾値Vb|≦|閾値V1|または、0<|閾値Vb|≦|閾値V2|である。ただし、閾値Vbは閾値Vaとは符号が逆である。
閾値Vbを超えていれば(S1003のYes)、S1004において、補正モード選択部135aは、時間カウンタ135e1をリセットし、S1005において、第1の終了判定基準が満足されていないと判定する。次いで、S1006において、補正モード選択部135aは、閾値Vaと閾値Vbを入れ替えて処理を終了する。
一方、S1003において、閾値Vbを超えていなければ、一旦判定処理を終了し、次回の判定処理を待つ。また、S1002において、時間T11が経過していれば、S1007において、補正モード選択部135aは、時間カウンタ135e1をリセットし、S1008において、第1の終了判定基準が満足されたと判定する。
図11は、補正モード選択部135aが第2の終了判定基準(第2の基準)が満足されたかどうかを判断する手順を示すフローチャートであり、S406の判断に使用される。第2の終了判定基準は、ヨー方向、ピッチ方向の両軸の角速度がある閾値を超えてから、所定時間以内に逆符号のある閾値を超えられなかった場合に満足されたと判断される。判定は両軸の角速度をもって行うが、説明の簡略化のため、図11ではヨー方向を中心に説明を行う。この判定処理は歩行ブレレベル2の時のみ行う。
S1101において、補正モード選択部135aは、過去に閾値Vcを超えてからの時間をカウントする。ここで、閾値Vcは符号付きの閾値であり、第2の開始判定基準で用いた閾値以下の絶対値を有する閾値である。つまり、0<|閾値Vc|≦閾値V3である。そのため歩行ブレレベル2であれば、本判定処理を行う前に必ず一度は閾値Vcを超えている。
次に、S1102において、補正モード選択部135aは、時間(閾値)T21が経過していなければ、S1103において、角速度が閾値Vdを超えたか否かを判定する。閾値Vdは閾値Vcと同様に符号付きの閾値であり、第2の開始判定基準で用いた閾値以下の絶対値を有する閾値である。つまり、0<|閾値Vd|≦閾値V3である。ただし、閾値Vdは閾値Vcとは符号が逆である。
閾値Vdを超えていれば(S1103のYes)、S1104において、補正モード選択部135aは、時間カウンタ135e1をリセットし、S1105において、ヨー方向における第2の終了判定基準が満足されなかったと判定する。その後、S1106において、補正モード選択部135aは、閾値Vcと閾値Vdを入れ替える。
S1103において、閾値Vdを超えていなければ、一旦判定処理を終了し、次回の判定処理を待つ。
S1102において、時間T21が経過していれば、S1107において、補正モード選択部135aは、時間カウンタ135e1をリセットし、S1108において、ヨー方向の第2の終了判定基準が満足されたと判定する。なお、ここまではあくまでヨー方向のみが所定時間以上所定の閾値を超えなかったというだけで、本当の意味での第2の終了判定基準が達成されたわけではない。
次に、S1109において、補正モード選択部135aは、ピッチ方向の第2の終了判定基準が満足された場合に、S1110において、第2の終了判定基準が達成されたと判定する。この状態がすなわち本当の意味での第2の終了判定基準の達成である。
S1109において、ピッチ方向の第2の終了判定基準が満足されていなければ、S1111において、補正モード選択部135aは、第2の終了判定基準が満足されていないと判定する。
図12は、補正モード選択部135aが第3の終了判定基準(第3の基準)が満足されたかどうかを判断する手順を示すフローチャートであり、S407の判断に使用される。第3の終了判定基準は、ヨー方向、ピッチ方向の両方の軸の周波数の比が所定の比率でなくなった状態が所定時間以上続いた場合に満足されたと判断される。
まず、S1201において、補正モード選択部135aは、ヨー方向の角速度周波数を取得し、S1202において、ピッチ方向の周波数を取得する。
次に、補正モード選択部135aは、S1203において、ヨー方向とピッチ方向の周波数の比が所定の比率(a:b)の許容範囲内であるか否かを判定し、許容範囲内である場合は、S1204において、第3の終了判定基準が満足されていないと判定する。また、補正モード選択部135aは、直交する2軸方向の周波数の比がa:bでない場合は、S1205において、ヨー方向の周波数:ピッチ方向の周波数≠a:bの状態が所定時間続いたか否かを判定する。続いていた場合は、S1206において、補正モード選択部135aは、第3の終了判定基準が満足されたと判定する。まだ、所定時間経過していない場合は、補正モード選択部135aは、S1204において、第3の終了判定基準が満足されていないと判定する。
以上、実施例1は、複数の開始判定基準を使用して歩行ブレを検出するため、素早く歩行ブレ補正モードに移行することができる。更に、実施例1は、歩行ブレをレベル分けし、より確度の高い歩行ブレに対しては、終了条件を厳しくするようにして(即ち、確度の低い終了条件をすべて検討するようにして)、歩行のムラ等で安易に歩行ブレの制御から抜けるのを防止する。また、歩行ブレの確度が低い場合には歩行ブレ補正終了の条件を甘く(簡単に終了するように設定)することによって、仮に歩行以外の大きなブレを歩行ブレだと誤判定した場合でも素早く元の状態に戻ることが可能である。
実施例2は実施例1と補正モード選択部135aの動作が異なる以外は実施例1と同様である。
図13は、補正モード選択部135aによる歩行ブレ補正の開始及び終了判定を説明するためのフローチャートである。なお、説明を簡略化するため、カウンタのカウントアップやクリア処理、周期のカウント等、実施例1で説明した内容は省略する。
歩行ブレレベル3までは、ヨー方向、ピッチ方向いずれかの軸において、所定の振幅を1周期超える度にレベルが上がり、最後に両方の軸が同じようにレベル3までの条件をクリアした場合にレベル4となる。便宜上、本実施例では上記「いずれかの軸」をヨー方向の軸として説明する。
まず、S1301において、補正モード選択部135aは、ヨー方向の角速度(HPF132の出力)が±閾値Ve(第1の振幅以上)を1周期以上超えたか否かを判定する(第1の基準)。超えた場合は、S1302において、歩行ブレレベルを1に設定する。これに応答して、積分特性選択部135bは歩行ブレに対応した積分特性を選択する。
S1301において、ヨー方向の角速度が±閾値Veを1周期以上超えていない場合には、S1303において、補正モード選択部135aは、時間T40が経過したか否かを時間カウンタ135e1を利用して判定する。経過していない場合はS1301へ戻り、時間T40が経過するか、±閾値Veを1周期以上超えるまでS1301〜S1303を繰り返す。S1303において、時間T40が経過した場合には、S1304において、補正モード選択部135aは、歩行ブレレベルを0(歩行中ではない)に設定し、S1301に戻る。これに応答して、積分特性選択部135bでは静止ブレに対応した積分特性を選択する。
S1302の後、S1305において、補正モード選択部135aは、±閾値Vf(第2の振幅以上)を1周期以上超えたか否かを判定する(第2の基準)。ここで、閾値Vfは閾値Veと同じ値であってもよいし異なってもよいが、±閾値Vfを超えた1周期は、±閾値Veを超えた1周期の後でなければならない。
S1305において、±閾値Vfを1周期以上超えた場合には、補正モード選択部135aは、S1306において、歩行ブレレベルを2に設定する。超えていない場合には、S1307において、時間T41が経過したか否かを判定する。経過していない場合には、S1305へ戻り、経過した場合には、S1301に戻る。
S1306の後、S1308において、補正モード選択部135aは、±閾値Vg(第3の振幅以上)を1周期以上超えたか否かを判定する(第3の基準)。ここで、閾値Vgは閾値Veまたは閾値Vfと同じ値であってもよいし異なっていてもよいが、±閾値Vgを超えた1周期は、±閾値Vfを超えた1周期の後でなければならない。
S1308において、±閾値Vgを1周期以上超えた場合には、補正モード選択部135aは、S1309において、歩行ブレレベルを3に設定する。超えていない場合にはS1310において、補正モード選択部135aは、時間T42が経過したか否かを判定する。経過していない場合には、フローはS1308へ戻り、経過した場合には、S1305に戻る。
S1309の後、S1311において、補正モード選択部135aは、ピッチ方向の角速度が±閾値Ve〜±閾値Vgをそれぞれ一周期以上、合計三周期以上超えたか否かを判定する(第4の基準)。超えていれば、補正モード選択部135aは、S1312において、歩行ブレレベルを4に設定する。
その後、S1314において、補正モード選択部135aは、ヨー方向の角速度閾値が±閾値Vh以内(第4の振幅以内)の状態が時間T44以上(所定時間以上)継続したかどうかを判定する(第5の基準)。継続していなければ、補正モード選択部135aは、S1314の判定を続け、継続していればS1311に戻る。閾値Vhは閾値Ve〜閾値Vgと比べて小さい値で、歩行による振動がない場合の角速度振幅を想定している。
以上、実施例2は、条件を1つ満たす毎に歩行ブレレベルを1つずつ上げ、ある条件を満たさなくなると歩行ブレレベルを1つ下げる。また、歩行ブレレベルが0から1になる時に積分特性を歩行ブレに対応した特性に変更する。これにより、歩行ブレ補正を素早く行った後、徐々に歩行ブレ判定の確度を上げることができ、歩行中である場合には歩行ブレの制御から抜けにくく、大きなブレを方向ブレと誤判定してしまった場合は歩行ブレの制御から抜けやすくなっている。
なお、実施例1では3段階、実施例2では4段階で歩行ブレのレベルを使用しているが、これに限定されず、ヨー方向、ピッチ方向の軸の組み合わせや閾値、時間の組み合わせを変更し、歩行ブレレベルの数を増減させてもよい。
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。