(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0009】
図1は、本実施形態にかかる測距計10のブロック図である。測距計10は、送光部100、受光部200、視準光学系300、振れ検出部400、駆動量算出部500、補正部600、測距信号処理部700、制御部800および操作ボタン900を備える。
【0010】
送光部100は、測定光を前方に出射する。送光部100は、対物レンズ110、補正レンズ610、正立プリズム120および発光部130を有する。以降の説明においては、測距計10において送光部100が測定光を出射する方向、すなわち図中の光線B
3の矢印方向を前方という場合がある。
【0011】
発光部130は、単位時間当たりに予め定められた個数のパルス状の測定光を出射する。この場合に、発光部130は、例えば、毎秒数百から数千個のパルス光を測定光として出射する。発光部130の一例は、赤外域の光を発振する半導体レーザである。以下、発光部130は赤外域の測定光を出射する例を用いて説明する。
【0012】
正立プリズム120は、可視光帯域の光を反射して、赤外帯域の光を透過するダイクロイック反射面122と、可視光帯域に加えて赤外帯域の光についても高い反射率を有する全反射面124、126とを有する。測定光はダイクロイック反射面122を透過し、全反射面124において反射され、光線B
2として測距計10内を前方に向かって伝播する。さらに、正立プリズム120は、ダイクロイック反射面122、全反射面124、126および他の反射面を用いて、入射光線により形成される倒立鏡像を正立正像に反転させる。正立プリズム120の例は、ダハプリズム、ポロプリズム等である。
【0013】
対物レンズ110は、測距計10の前端に配され、前側の端面が測距の対象となる対象物に対向する。なお、以後の説明において、測距の対象となる対象物を対象物や視準対象という場合がある。対物レンズ110の後側端面は、補正レンズ610を挟んで、正立プリズム120の前側端面に対向する。
【0014】
受光部200は、前方から入射する入射光を受けて、当該入射光の強度信号を電気信号に変換して出力する。受光部200は、送光部100および視準光学系300とは別個の光学系である、受光レンズ210、帯域透過フィルター220および受光素子230を含む。これにより、受光部200は、送光部100および視準光学系300とは異なる光軸を有する。
【0015】
受光レンズ210の後方には、帯域透過フィルター220および受光素子230が順次配される。帯域透過フィルター220は、測定光を含む狭い波長帯域の光を透過し、他の波長帯域の光を遮断または減衰させる。受光素子230の例は、測定光の波長帯域に対して感度を有するフォトダイオード、フォトトランジスタ等である。測定光に対して背景光の影響を排除するという観点から、受光素子230の受光面積はより小さいことが好ましい。
【0016】
上記受光部200において、受光レンズ210には、測距計10の前方に位置する対象物から反射または散乱された光線C
1が入射する。光線C
1は、受光レンズ210で集光されて光線C
2として後方に向かって伝播し、帯域透過フィルター220を通過した後、受光素子230に受光される。
【0017】
受光素子230は、受光した光信号を強度に対応した電気信号に変換して、内部の増幅器で増幅処理した後に、当該電気信号を測距信号処理部700へ出力する。
【0018】
測距信号処理部700は、測定光が出射されたタイミングと受光部200が入射光を受光したタイミングとに基づいて、視準された対象物までの距離を算出する。測距信号処理部700は、二値化回路、サンプリング回路、カウンタ回路、発振器などを含む。受光素子230からの電気信号は、二値化回路にて予め定められた閾値にしたがって二値化信号に変換されて、サンプリング回路に出力される。サンプリング回路には、発振器から特定の周波数のサンプリングクロックが入力される。また、サンプリング回路には、カウンタ回路からカウント値が入力される。サンプリング回路は、入力された二値化信号のデジタルサンプリングを行い、サンプリングクロックに同期した受光信号を生成する。なお、当該カウント値は、発光部130からパルス光が出射されるタイミングで、制御部800によりリセットされる。
【0019】
測距信号処理部700は、受光信号のパルスにおけるカウント値より、発光部130がパルス光を出射した時間と、対象物から反射等された入射光を受光素子230が受光した時間の時間差を算出する。
【0020】
測距信号処理部700は、測定光の各パルス光に対して同様に時間差の算出処理を順次実行する。そして、受光信号におけるパルスの時間差を算出するごとに、自身の内部メモリ上の当該時間差に該当するメモリアドレスに信号値を積算する。これにより、距離算出のためのヒストグラムを生成する。予め定められた個数のパルス光に対応する受光信号について当該処理が終わると、測距信号処理部700は、積算値が最大のメモリアドレスを特定する。測距信号処理部700は、当該メモリアドレスに該当する時間差Δtを、対象物に対応する送受光の時間差であると認定する。
【0021】
測距信号処理部700は、当該認定した時間差Δtに基づいて、対象物までの距離を演算する。具体的には、測距信号処理部700は、当該時間差を下記の式にて距離に換算する。
l=c×Δt/2
ここで、lは対象物までの距離、cは光速である。測距信号処理部700は、算出した対象物までの距離lの情報を制御部800に送る。
【0022】
また、本実施形態において、測距信号処理部700は視準対象に対して測距を繰り返し、測距信号を順次出力する。ここで、測距信号は、発光部130がパルス光を出射した時間と、対象物から反射等された入射光を受光素子230が受光した時間の時間差から逐次算出される対象物の距離の時間変化を示す信号である。測距信号処理部700は、制御部800を介して、当該測距信号を駆動量算出部500に出力する。
【0023】
制御部800は、測距計10における測距動作を総合的に制御する。制御部800の制御対象には、送光部100、受光部200、測距信号処理部700等が含まれる。制御部800は、測距信号処理部700で算出された対象物までの距離等の情報を、レチクルプレート320に文字、画像等によりユーザに示す。
【0024】
視準光学系300は、対象物を視準して視準対象の光学像を形成する。視準光学系300はレチクルプレート320および接眼レンズ310を有する。視準光学系300はさらに、対物レンズ110と補正レンズ610および正立プリズム120を送光部100と共有する。これにより、送光部100と視準光学系300とは見かけの光軸が一致する。ユーザは、視準光学系300を通して前方を観察して対象物に対して視準を定める。
【0025】
レチクルプレート320は、送光部100の対物レンズ110の焦点位置に配置される。接眼レンズ310の前端は、測距計10の内部においてレチクルプレート320の後端に対向する。レチクルプレート320は、視準指標および表示部を有する。視準指標の形状の例は、十字線、矩形枠、円形枠等である。表示部は、透過型の液晶等を用いて、対象物までの距離の計測結果を、文字、画像等によりユーザに示す。
【0026】
視準光学系300には、測距計10の前方に位置する対象物から反射または散乱された光のうち、対物レンズ110の見込み角の範囲内を伝播する光線A
1が入射する。光線A
1は、対物レンズ110で光線A
2として集光し、正立プリズム120、レチクルプレート320および接眼レンズ310を通じて、測距計10の後方に光線A
3として出射される。これにより、ユーザは、接眼レンズ310を通じて、対象物の正立正像を観察する。
【0027】
ユーザが接眼レンズ310を通じて観察する像には、レチクルプレート320に配された視準指標が重畳される。ユーザは、接眼レンズ310を通じて観察する対象物の像に視準指標が重畳されるように測距計10を配向させることによって視準する。この場合に、上記の通り送光部100と視準光学系300とは見かけの光軸が一致するので、視準指標の示す位置に測定光が照射される。
【0028】
振れ検出部400は、検出方向が互いに交差する複数の角速度センサー等を備える。複数の角速度センサーは、例えば、測距計10のピッチングおよびヨーイングを検出する方向に配される。角速度センサーの各々は、測距計10に振れが生じた場合に、当該振れを検出して、情報として方向と大きさおよび周波数を含む振れ量に応じた振れ信号を駆動量算出部500に出力する。
【0029】
駆動量算出部500は、振れ検出部400から出力される当該振れ信号を周期的に参照して、補正レンズ610の変位量である駆動量を算出する。当該駆動量は、測距計10の変位に起因して視準光学系300で生じる光学像の像振れを打ち消すために補正レンズ610が変位する量である。当該駆動量には、方向と大きさの情報が含まれる。駆動量算出部500は、当該駆動量で補正レンズ610を駆動させる駆動信号を駆動部620に出力する。
【0030】
本実施形態において、駆動量算出部500は、測距信号処理部700からの出力と振れ検出部400からの振れ検出信号との組み合わせに基づいて、補正部600で駆動すべき補正レンズ610の駆動量を算出して補正部600に出力する。特に、本実施形態においては測距信号処理部700からの出力の一例として、測距信号処理部700により算出された距離の時間的な変化を用いる。
【0031】
駆動部620は、駆動量算出部500から受けた駆動信号に基づいて、補正レンズ610を光軸と交差する方向に変位させる。駆動部620には、例えば、ボイスコイルモータ、圧電モータ等を使用できる。
【0032】
位置検出部630は、周期的に補正レンズ610の位置を検出して、当該位置に対応した信号である位置信号を駆動量算出部500および制御部800に出力する。位置検出部630には、例えば、ホール素子やMR素子等を使用した磁気センサーのほかに、光学式位置検出センサー等を使用できる。
【0033】
駆動量算出部500は、位置検出部630から取得した補正レンズ610の位置信号に応じて、補正レンズ610の駆動量を帰還制御する。これにより、衝撃、振動等の外乱が加わった場合であっても、補正レンズ610の位置を精度よく制御できる。
【0034】
補正部600は、視準光学系300の光軸のブレに応じた駆動量で補正レンズ610を駆動する。補正部600は、補正レンズ610、駆動部620、および位置検出部630を含む。
【0035】
なお、補正部600は、常時補正動作をしてもよいが、ユーザが測距計10を使用している期間に限って補正動作を実行してもよい。例えば、接眼レンズ310を覗くユーザの目を検出して、ユーザが測距計10を使用しているか否かを判断してもよい。そして、ユーザが測距計10を使用していると判断した場合に、補正部600をオン/オフしてもよい。また、ユーザが操作ボタン900を操作したことに基づいて補正部600が動作を開始してもよい。その後に、予め定められた時間を超えてユーザの操作が無い場合に補正部600の動作を停止してもよい。
【0036】
補正レンズ610は、対物レンズ110の近傍において、駆動部620により駆動されて、光線A
2、B
2各々の光路を変位させる。これにより、測距計10が変位した場合に光学的に当該変位を打ち消すように補正レンズ610を変位させることにより、ユーザが観察する像のブレを止めることができる。補正レンズ610は送光部100にも共用されているので、測距計10が変位しても同じ対象物に測定光を照射し続けることができる。
【0037】
図2は、駆動量算出部500内部における振れ角速度ωの演算に関連する部分のブロック図である。
図2は、駆動量算出部500内部における処理を示している。
図2で示すように、駆動量算出部500は、A/D変換器502、振れ角速度基準値算出部504、減算部506、視準変更検出部508、fc指定部510、メモリ512、およびLPF処理部514を含む。
【0038】
振れ検出部400は、測距計10に生じた手振れによる角速度を検出し、検出結果に応じた信号である振れ検出信号を駆動量算出部500へ出力する。駆動量算出部500は、当該振れ検出信号から、補正レンズ610の駆動量を決定するために振れ角速度ωを算出する。具体的には、駆動量算出部500は、振れ検出信号を内部のA/D変換器502により量子化処理した振れ量子化値ω1に変換する。次に、振れ角速度基準値算出部504により、振れ量子化値ω1から、振れ量子化値ω1の基準となる振れ角速度基準値ω0をカットオフ周波数fcを用いてLPF演算する。そして、減算部506により、振れ量子化値ω1から振れ角速度基準値ω0を差し引くことによって、振れ角速度ωを算出する。なお、振れ量子化値ω1から振れ角速度ωを演算する処理は、振れ量子化値ω1の低周波成分を除去しており、実質的にHPF処理である。
【0039】
視準変更検出部508は、振れ検出部からの振れ信号の大きさに基づいて視準変更を検出する。視準変更検出部508は、振れ角速度ωの絶対値から、視準変更中であるか否かを判定して、判定結果に応じた視準変更フラグをメモリ512に記憶する。当該判定には、予め定められた角速度の閾値である視準変更の開始閾値Panωth_sおよび視準変更の終了閾値Panωth_eを使用する。視準変更検出部508は、振れ角速度ωがPanωth_sを超えた場合に視準変更が開始されたと判断する。その後、振れ角速度ωがPanωth_eを下回った場合に視準変更が終了されたと判断する。
【0040】
視準変更フラグは、例えば、視準変更中と判定した場合には1に設定される。一方、視準変更中ではないと判定した場合には0に設定される。なお、視準変更フラグにはデフォルト値が定められており、測距計10の起動時には、例えば、0が設定されている。
【0041】
また、メモリ512には、後述する動体フラグも記憶される。動体フラグは、測距で得られた対象物までの距離の時間的な変化に応じて設定される。以後の説明では、視準変更フラグと動体フラグを合せて、フラグ情報という場合がある。さらに、メモリ512には、逐次更新されるフラグ情報の他に、視準変更フラグおよび動体フラグの組み合わせに基づいて、予め定められていたカットオフ周波数fc、後述するバイアス係数Kbias、および補正範囲等のパラメータ情報が記憶されている。加えて、メモリ512には、当該パラメータのデフォルト値および後述する各種閾値情報が併せて記憶されている。
【0042】
駆動量算出部500は、メモリ512よりフラグ情報を参照して、予め定められたカットオフ周波数fcの情報をfc指定部510へ出力する。fc指定部510は、LPF処理部514の処理において当該カットオフ周波数fcを指定する。LPF処理部514は、当該カットオフ周波数fcを用いて、振れ量子化値ω1から振れ角速度基準値ω0を演算する。なお、カットオフ周波数fcには、デフォルト値が設定されており、デフォルト値は、例えば0.1Hzである。
【0043】
図3は、カットオフ周波数fcの効果について説明する図である。
図3(a)は、時系列的に取得される振れ量子化値ω1を示している。視準が比較的安定した状態から、視準変更が行われたことを示している。
図3(b)は、当該振れ量子化値ω1に対して、カットオフ周波数fc=0.1HzでのHPF処理により得られた振れ角速度ωを示している。また、
図3(c)は、当該振れ量子化値ω1に対して、カットオフ周波数fc=1.0HzでのHPF処理により得られた振れ角速度ωを示している。
【0044】
測距計10は、振れ角速度ωに対して、補正レンズ610の目標位置を演算する。
図3(b)においては、0.1Hzの比較的低い周波数でHPF処理を行っているため、補正対象となる振れには、パンニングに起因する比較的大きな角速度の成分が残っている。これに対して、
図3(c)においては、1.0Hzの比較的高い周波数でHPF処理を行っているため、当該大きな角速度の成分が除かれており、補正対象となる振れは概ね手振れに起因する成分のみとなっている。
【0045】
測距計10に生じるすべての振れを補正すると、使用上の不都合を生じる場合がある。例えば、パンニングがユーザの意図したものである場合に、当該パンニングに起因する振れを補正するように動作すると、対象物への追従性が損なわれる。その結果、視準において、対象物を捉えることができないおそれがある。そこで、本実施形態では、視準変更中であると判定した場合には、カットオフ周波数fcをデフォルト値よりも高く設定して、
図3(c)に示すように、大きな振れ角速度を振れ補正対象から除外する。
【0046】
更に、本実施形態では、駆動量算出部500は、測距結果の時間的な変化に応じて、カットオフ周波数fcの値を逐次変更する。詳細は後述する。
【0047】
図4は、駆動量算出部500内部における補正レンズ目標位置LCの演算に関連する部分のブロック図である。
図4で示すように、駆動量算出部500は、メモリ512、減算部516、積分部518、乗算部520、可動範囲制限部522、およびバイアス演算部524を含む。
【0048】
駆動量算出部500は、振れ角速度ωから補正レンズ目標値LCを算出する。具体的には、まず駆動量算出部500は、積分部518にて振れ角速度ωを時間積分して、角度を算出する。次に、乗算部520にて当該角度に係数KLCを乗算して、補正レンズ目標位置LCを算出する。なお、係数KLCは、補正レンズ610の焦点距離等から決まる変換係数である。
【0049】
適切に振れ補正が行われるためには、補正レンズ目標位置LCは、補正レンズ610の可動範囲内になくてはならない。ユーザが視準を変更する場合には、測距計10に大きな振れ角速度が生じる場合がある。このときに、当該大きな振れ角速度に対して、振れ補正を行った結果、補正レンズ610が物理的な可動範囲に到達してしまうことがある。補正レンズ610が当該物理的な可動範囲に到達すると、それ以上の振れ補正動作が制限される。
【0050】
そこで、可動範囲制限部522は、当該物理的な可動範囲よりも狭い、予め定められた可動制限範囲を超えないように、補正レンズ目標位置LCを変換することによって、当該物理的な可動範囲への補正レンズ610の接触を防止する。本実施形態において、駆動量算出部500は、当該可動制限範囲である補正範囲を、メモリ512に記憶されたフラグ情報に応じて適宜切り替える。
【0051】
また、本実施形態において、駆動量算出部500は、補正レンズ目標位置LCを可動範囲の中心に近づけるように作用する角速度バイアスωbiasの値を変更して、補正レンズ610の駆動量を制約する。ここで、角速度バイアスωbiasは、補正レンズ610の可動中心から算出された補正レンズ目標位置LCまでの距離の関数である。詳細は後述する。
【0052】
具体的には、角速度バイアス量ωbiasを振れ角速度ωから減じる処理を行う。当該処理は、バイアス演算部524、および減算部516にて行われる。そして、当該処理により得られた差分の角速度ω'を用いて補正レンズ目標位置LCの再計算を行う。駆動量算出部500は、当該補正レンズ目標位置LCから補正レンズ610の駆動量の演算を行う。
【0053】
図5は、角速度バイアス量ωbiasと補正レンズ目標位置LCとの関係を説明する図である。縦軸は、角速度バイアスωbiasを示す。横軸は、レンズ目標位置LCを示す。補正レンズ610は、補正レンズ可動範囲内で駆動される。
【0054】
補正レンズ610の可動範囲の中心を0とした場合に、バイアス演算部524の出力である角速度バイアス量ωbiasは、次式(1)で算出される。ここで係数Kbiasは、予め定められた係数である。以後の説明において、Kbiasをバイアス係数という場合がある。また、減算部516の出力ω'は次式(2)で算出される。
ωbias=Kbias×LC
3 … (1)
ω'=ω−ωbias … (2)
【0055】
上式(1)より、補正レンズ目標位置LCは、補正レンズ610の可動範囲の中心に近い場合には、角速度バイアスωbiasへの寄与が少ない。一方、補正レンズ目標位置LCは、可動範囲の中心から離れるほど角速度バイアス量ωbiasへの寄与が大きくなる。このため、上式(2)で得られるω'は、補正レンズ目標位置LCが可動範囲の中心から離れるほど、小さくなる。したがって、ω'から新たに算出される補正レンズ目標位置LCは可動範囲の中心に近くなる。すなわち、可動範囲の中心に補正レンズ610を戻すように作用する。
【0056】
角速度バイアス量ωbiasが小さくなると、大きな振れに対しても振れ補正を行うため、ユーザの視準動作に対して視準光学系300の光軸の追従性が悪くなるが、振れ補正効果は大きくなる。一方、角速度バイアス量ωbiasが大きくなると、大きな振れに対して振れ補正を行わないため、ユーザの視準動作に対して視準光学系300の光軸の追従性は良くなるが、振れ補正効果は低下する。
【0057】
また、
図5からもわかるように、上式(1)において、バイアス係数Kbiasを変化させると、同じ補正レンズ目標位置LCに対して算出される角速度バイアス量ωbiasが変化する。このように、バイアス係数Kbiasを用いて、算出された補正レンズ目標位置LCに対する角速度バイアスωbiasへの寄与度を調整することができる。本実施形態において、駆動量算出部500は、バイアス係数Kbiasを、メモリ512に記憶されたフラグ情報に基づいて適宜切り替える。
【0058】
図6は、測距計10の動作を説明するフロー図である。本フローは、ユーザの操作ボタン900の押下により、測距計10の電源がONされたときに開始する。測距計10は、後述する動体フラグ決定処理(S100)および振れ補正処理(S200)を開始する。具体的には、ユーザにより電源がONされると、制御部800は、駆動信号を駆動量算出部500へ出力する。駆動量算出部500は、当該駆動信号が入力されるとステップS100、ステップS200の処理を開始する。
【0059】
動体フラグ決定処理(S100)が終了した時点で、ステップS300に移行して、最後にユーザからの操作ボタン900の操作がなされてから予め定められた時間が経過したか否かを判定する(S300)。予め定められた時間は、測距動作を完了するために必要かつ十分な時間である。予め定められた時間が経過したと判定した場合には(S300:YES)、駆動量算出部500は、本フローを終了する。具体的には、制御部800は、駆動停止信号を駆動量算出部500へ出力する。駆動量算出部500は、当該駆動停止信号が入力されるとステップS100、ステップS200の処理を終了する。
【0060】
一方、予め定められた時間が経過していないと判定した場合には(S300:NO)、駆動量算出部500は、ステップS100、ステップS200の処理を続ける。したがって、測距計10の電源がONの場合には、常に本フローは実行される。
【0061】
図7は、測距計10の動体フラグ決定処理を説明するフロー図である。
図6で説明した通り、本フローは、ユーザの操作ボタン900の押下により、測距計10の電源がONされたときに開始する。
【0062】
測距信号処理部700は、
図1で説明した測距動作を実行して、対象物までの距離Distを演算する(S101)。そして、測距信号処理部700は、制御部800を介して、当該Distを駆動量算出部500へ出力する。この時、駆動量算出部500は、Dist_bufに値が格納されているか否かを判定する(S102)。ここで、Dist_bufは駆動量算出部500内部のメモリ512に作られる変数である。なお、Dist_bufは、測距計10の起動時に格納されているデータが削除されることにより初期化される。
【0063】
Dist_bufに値が格納されていないと判定した場合には(S102:NO)、駆動量算出部500は、Dist_bufにDistを格納して(S103)、ステップS101に移行する。一方、Dist_bufに値が格納されていると判定した場合には(S102:YES)、駆動量算出部500は、距離差分データΔDistにDist_bufとDistとの差分の絶対値データ、すなわち距離の時間的な変化量のデータを格納する(S104)。ここで、ΔDistは、Dist_bufと同様にメモリ512に作られる変数である。
【0064】
駆動量算出部500は、Dist_bufにDistを格納する(S105)。なお、Dist_bufに格納されている値は、新しく格納されたDistによって上書きされる。
【0065】
駆動量算出部500は、ΔDistが予め定められた閾値Target_th1を下回っているか否かを判定する(S106)。ΔDistが予め定められた閾値Target_th1を下回っていると判定した場合には(S106:YES)、対象物は静止していると判断して、メモリ512に記憶されている動体フラグに0を設定する(S107)。なお、動体フラグにはデフォルト値が定められており、測距計10の起動時には、例えば、0が設定されている。
【0066】
一方、ΔDistが予め定められた閾値Target_th1を下回っていないと判定した場合には(S106:NO)、駆動量算出部500は、ΔDistが予め定められた閾値Target_th2を下回っているか否かを判定する(S108)。
【0067】
ΔDistが予め定められた閾値Target_th2を下回っていると判定した場合には(S108:YES)、駆動量算出部500は、対象物は前後方向に移動していると判断して、メモリ512に記憶されている動体フラグに1を設定する(S109)。一方、ΔDistが予め定められた閾値Target_th2を下回っていないと判定した場合には(S108:NO)、駆動量算出部500は、対象物から視準が外れたと判断して、メモリ512に記憶されている動体フラグに2を設定する(S110)。
【0068】
動体フラグが決定し、メモリ512への設定が完了すると本フローは終了する。そして、
図6のフローのステップS300へ移行する。
【0069】
次に、
図8、9を参照して、視準変更フラグが測距結果および振れ角速度ωの時間的な変化に応じて決定される方法を説明する。なお、
図8、9を通して、横軸は時間、縦軸は距離の時間的な変化量および角速度をそれぞれ示す。また、
図7に示した動体フラグについても併せて説明する。
【0070】
図8は、測距サンプリング中に視準変更が検出されない例を示す。
図8(a)は、測距信号処理部700で算出された対象物の距離の時間的な変化量ΔDistの時間推移を示す。
図8(b)は、振れ角速度ωの時間推移を示す。
【0071】
図8(a)において、期間Aでは、ΔDistはTarget_th1とTarget_th2の間にある。このため、駆動量算出部500は、期間Aにおいては、動体フラグに1を設定する。期間Bでは、ΔDistは、Target_th2を超える。このため、駆動量算出部500は、期間Bにおいては、動体フラグに2を設定する。また、期間Cでは、ΔDistは、Target_th1を下回る。このため、駆動量算出部500は、期間Cにおいては、動体フラグに0を設定する。
【0072】
図8(b)において、振れ角速度ωが視準変更の開始閾値Panωth_sを超えた期間がなく、視準変更フラグは0のままである。
【0073】
期間Aにおいて、視準変更フラグには0、動体フラグには1が設定されている。
図8(a)から、当該期間において、時間ごとに測距結果が一定の割合で変位していることが分かる。加えて、
図8(b)より、当該期間は、視準変更中でないことが分かる。以上のことより、当該期間では、対象物が一定の速度で前後方向に移動しているが、ユーザは、対象物に対して測距計10を正しく視準できているものと判断できる。そこで、駆動量算出部500は、視準変更フラグが0かつ動体フラグが1である場合には、カットオフ周波数fc、バイアス係数Kbias、補正範囲のいずれのパラメータにもデフォルト値を適用する。ただし、対象物が動いており、視準が外れてしまうおそれがあるので視準変更の開始閾値Panωth_sを下げる。これにより、駆動量算出部500は、いち早く視準変更を検出して、カットオフ周波数fc等のパラメータを最適値に変更して、対象物への追従性を確保することができる。
【0074】
期間Bにおいて、視準変更フラグには0、動体フラグには2が設定されている。
図8(a)から、当該期間において、時間Pを境に測距結果が著しく変動していることが分かる。加えて、
図8(b)より、当該期間は、視準変更中でないことが分かる。以上のことより、例えば、ユーザは、意図通りに対象物を捉えられているにもかかわらず、対象物に対して測距できていないと判断することができる。これは、例えば、視準対象における視角が小さいため、より低周波の振れを補正することにより狭い範囲で視準を安定させる必要がある。そこで、駆動量算出部500は、視準変更フラグが0かつ動体フラグが2である場合には、補正効果を上げるために、カットオフ周波数fcに0.1Hzよりも低い値を適用する。また、バイアス係数Kbiasにはデフォルト値よりも小さな値を適用し、補正レンズ610の補正範囲にデフォルト値よりも広い範囲を適用する。また、例えば、視準対象が移動を始めた場合に、素早く視準できるように視準変更の開始閾値Panωth_sを下げる。これによって、視準対象の動きに対応して視準変更を開始する場合に、視準変更の動作を素早く検出することができ、カットオフ周波数fc等のパラメータを最適値に変更して、対象物への追従性を素早く確保することができる。
【0075】
期間Cにおいて、視準変更フラグおよび動体フラグにはいずれも0が設定されている。
図8(a)から、当該期間において、対象が静止していることがわかる。加えて、
図8(b)より、当該期間は、視準が安定していることが分かる。そこで、視準変更フラグおよび動体フラグがいずれも0である場合には、駆動量算出部500は、いずれのパラメータにもデフォルト値を適用する。
【0076】
図9は、測距サンプリング中に視準変更が検出時された例を示す図である。なお、
図9の説明において、
図9(a)、(b)は、いずれも
図8と同じように、それぞれΔDistとωの時間推移を示す。
図8と重複する説明は省略する。
【0077】
図9(a)では、ΔDistは、期間AおよびCにおいて、Target_th2を超えている。このため、駆動量算出部500は、期間AおよびCにおいては、動体フラグに2を設定する。また、期間Bにおいて、ΔDistは、Target_th1とTarget_th2の間にある。このため、駆動量算出部500は、期間Bにおいて、動体フラグに1を設定する。そして、期間D、EおよびFにおいて、ΔDistは、Target_th1を下回っている。このため、駆動量算出部500は、期間D、EおよびFにおいて、動体フラグに0を設定する。
【0078】
図9(b)において、時間Pまで振れ角速度ωは視準変更の開始閾値Panωth_sを超えている。このため、時間Pまでは、駆動量算出部500は、視準変更フラグに1を設定する。時間Pで振れ角速度ωは視準変更の終了閾値Panωth_eを下回る。このため、駆動量算出部500は、視準変更フラグに0を設定する。
【0079】
期間A、Cにおいて、視準変更フラグには1、動体フラグには2が設定されている。
図9(a)から、当該期間において、時間ごとに測距結果が著しく変動していることが分かる。加えて、
図9(b)より、当該期間は、視準変更中であることが分かる。以上のことより、例えば、ユーザは、当該期間中、対象物に視準を合わせるために、パンニングを行っており、対象物を上手く捉えられていないものと判断できる。そこで、駆動量算出部500は、視準変更フラグが1かつ動体フラグが2である場合には、補正効果を下げて対象物への追従性を確保するために、カットオフ周波数fcに1.0Hzよりも高い値を適用する。また、バイアス係数Kbiasにはデフォルト値よりも大きな値を適用し、補正レンズ610の補正範囲にデフォルト値よりも狭い範囲を適用する。
【0080】
期間Bにおいて、視準変更フラグおよび動体フラグにはいずれも1が設定されている。
図9(a)から、当該期間において、時間ごとに測距結果が一定の割合で変位していることが分かる。加えて、
図9(b)より、当該期間は、視準変更中であることが分かる。以上のことより、例えば、ユーザは、当該期間中、対象物の動きに合わせてパンニングを行っており、対象物を上手く捉えられているものと判断できる。そこで、駆動量算出部500は、視準変更フラグが1かつ動体フラグが1である場合には、いずれのパラメータにもデフォルト値を適用する。
【0081】
期間Dにおいて、視準変更フラグには1、動体フラグには0が設定されている。
図9(a)から、当該期間において、時間ごとの測距結果の変動が軽微であることが分かる。加えて、
図9(b)より、当該期間は、視準変更中であることが分かる。以上のことより、例えば、ユーザは、当該期間中、対象物の動きに合わせてパンニングを行っており、対象物を上手く捉えられているものと判断できる。そこで、駆動量算出部500は、視準変更フラグが1かつ動体フラグが0である場合には、いずれのパラメータにもデフォルト値を適用する。
【0082】
以上のように、本実施形態において、駆動量算出部500は、対象物の距離の時間変位ΔDistおよび振れ角速度ωの時間的な変化に応じて動的にパラメータを変更する。
【0083】
図10は、本実施形態における視準変更判定フラグと動体フラグとによって決まるパラメータの組み合わせをまとめた表である。
図10に示した表のデータは、予めメモリ512に格納されている。駆動量算出部500は、補正レンズ610の駆動量の算出にあたり、メモリ512に記憶されたフラグ情報および当該フラグ情報に対応するパラメータを参照して、逐次パラメータの変更を行う。
【0084】
図11および12は、測距計10の振れ補正処理を説明するフロー図である。
図6で説明した通り、本フローは、ユーザの操作ボタン900の押下により、測距計10の電源がONされたときに開始する。
【0085】
振れ検出部400は、振れ検出を開始する(S201)。そして、
図2で説明したように、振れ検出部400は、振れ検出信号を駆動量算出部500へ出力する。駆動量算出部500は、同じく
図2で説明したように、当該振れ検出信号に対して、量子化処理、HPF処理を行い、振れ角速度ωを演算する(S202)。
【0086】
駆動量算出部500は、振れ角速度ωが予め定められた閾値Panωth_sを超えているか否かを判定する(S203)。振れ角速度ωが予め定められた閾値Panωth_sを超えていないと判定した場合には(S203:NO)、メモリ512に記憶されている視準変更フラグの設定を行わずに、ステップS208へ移行する。
【0087】
一方、振れ角速度ωが予め定められた閾値Panωth_sを超えていると判定した場合(S203:YES)、すなわち視準変更が開始されたと判定した場合には、駆動量算出部500は、メモリ512に記憶されている視準変更フラグに1を設定する(S204)。駆動量算出部500は、メモリ512に記憶されている動体フラグが2であるか否かを判定する(S205)。
【0088】
動体フラグが2であると判定した場合には(S205:YES)、駆動量算出部500は、LPF処理部514で用いるカットオフ周波数fcに1.0Hzよりも大きな値を適用する。また、バイアス係数Kbiasに通常よりも大きな値を適用する。さらに、補正範囲として、通常よりも狭い範囲を適用する(S206)。一方、動体フラグが2ではないと判定した場合には(S205:NO)、駆動量算出部500は、LPF処理部514で用いるカットオフ周波数fcに1.0Hzを適用する(S207)。
【0089】
次に
図12のステップS208へ移行する。駆動量算出部500は、メモリ512に記憶されている視準変更フラグが1であるか否かを判定する(S208)。すなわち、現在の一つ前の処理において視準変更中であったか否かを判定する。視準変更フラグが1でないと判定した場合には(S208:NO)、ステップS211へ移行する。
【0090】
一方、視準変更フラグが1であると判定した場合には(S208:YES)、振れ角速度ωが、予め定められた閾値Panωth_eを下回っているか否かを判定する(S209)。ここで、Panωth_eは、ユーザによる視準変更が終了したことを判定するための角速度の閾値である。
【0091】
振れ角速度ωが、Panωth_eを下回っていないと判定した場合には(S209:NO)、ステップS216へ移行する。一方、振れ角速度ωが、Panωth_eを下回っていると判定した場合には(S209:YES)、駆動量算出部500は、メモリ512に記憶されている視準変更フラグに0を設定する(S210)。
【0092】
駆動量算出部500は、動体フラグが2であるか否かを判定する(S211)。動体フラグが2であると判定した場合には(S211:YES)、駆動量算出部500は、LPF処理部514で用いるカットオフ周波数fcに0.1Hzよりも小さな値を適用する。また、バイアス係数Kbiasにデフォルト値よりも小さな値を適用する。そして、補正範囲として、通常よりも広い範囲を適用する。さらに、Panωth_sに通常よりも小さな値を適用する(S212)。
【0093】
動体フラグが2でないと判定した場合には(S211:NO)、駆動量算出部500は、動体フラグが1であるか否かを判定する(S213)。動体フラグが1であると判定した場合には(S213:YES)、駆動量算出部500は、LPF処理部514で用いるカットオフ周波数fcに0.1Hzを適用する。また、バイアス係数Kbiasにデフォルト値を適用する。そして、Panωth_sに通常よりも小さな値を適用する(S214)。一方、動体フラグが1でないと判定した場合には(S213:NO)、駆動量算出部500は、LPF処理部514で用いるカットオフ周波数fcに0.1Hzを適用する。また、バイアス係数Kbiasにデフォルト値を適用する。(S215)。
【0094】
駆動量算出部500は、以上の処理で決定されたパラメータを使用して、補正レンズ目標位置LCを演算する(S216)。そして、駆動量算出部500は、駆動部620を介して、補正レンズ610を駆動させることによって、振れ補正を行う(S217)。
【0095】
振れ補正処理が完了すると本フローは終了する。そして、
図6のフローのステップS300へ移行する。
【0096】
なお、上記
図1において、対物レンズ110、受光レンズ210および接眼レンズ310を一枚のレンズで代表して表した。しかしながら、これらのレンズは複数枚のレンズを含んでもよい。
【0097】
さらに、対物レンズ110、受光レンズ210および接眼レンズ310は、それぞれ焦点距離が可変であってもよい。
【0098】
発光部130は赤外線を発光することに代えて、紫外線を発光するものであってもよい。この場合には、第1実施形態における正立プリズム120のダイクロイック反射面122も紫外線に対応したものが用いられる。
【0099】
以上の説明では、測距結果の時間的な変化ΔDistを用いて、閾値Target_th1、Target_th2との関係に応じて、対象物の状態(静止、前後方向に移動等)を判定したが、複数回測定した対象物の距離のばらつき、例えばRMS(二乗平均平方根)および当該測定距離の時間変化のRMSを算出して、これらに対して予め定めた閾値に基づいて判定してもよい。
【0100】
また、対象物の状態を判定するための測距においては、通常の測距動作に使用する個数よりも少ないパルス数で測距を行ってもよい。さらに、これに限られず、ヒストグラムを用いない測距方法に適用してもよい。
【0101】
なお、カットオフ周波数fc、バイアス係数Kbias、補正範囲等の振れ補正動作の制御パラメータ調整は、全てについて行ってもよいし、いずれか一つもしくは二つの組み合わせで行ってもよい。
【0102】
以上の説明では、振れ補正動作の制御パラメータとしてバイアス係数Kbiasを用いたが、角速度バイアスωbias自体を変更するように制御してもよい。
【0103】
以上の説明では、測定距離の時間変化に応じて、制御パラメータを調整したが、測定した視準対象までの距離に応じて、制御パラメータを調整してもよい。ここで、一例として、視準対象物がある速度で移動する移動物体である場合を考えると、当該視準対象が遠距離にあるほど、視準するために測距計に付加する角速度は小さくなる。一方、当該視準対象が近距離にあるほど、視準するために測距計に付加する角速度は大きくなる。そこで、例えば、視準対象までの距離に応じて、視準変更開始閾値を変更する。
【0104】
具体的には、例えば、距離範囲を近側と遠側の2つの範囲に分けるための距離閾値Dthを予め定めておく。そして、測距結果が、距離閾値Dthより大きいか否かを判定する。測距結果が、距離閾値Dthより大きいと判定した場合には、視準対象は遠側の範囲にあると判断して、視準変更開始閾値を上げる。一方、測距結果が、距離閾値Dthより小さいと判定した場合には、視準対象は近側の範囲にあると判断して、視準変更開始閾値を下げる。このように制御することによって、移動物体である視準対象が遠距離にある場合には、比較的小さな振れを補正して安定した視準ができる。一方、移動物体である視準対象が近距離にある場合には、視準対象に対する追従性を確保することができる。
【0105】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【0106】
請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。