JP2004015376A - 像振れ防止装置およびカメラ - Google Patents
像振れ防止装置およびカメラ Download PDFInfo
- Publication number
- JP2004015376A JP2004015376A JP2002165394A JP2002165394A JP2004015376A JP 2004015376 A JP2004015376 A JP 2004015376A JP 2002165394 A JP2002165394 A JP 2002165394A JP 2002165394 A JP2002165394 A JP 2002165394A JP 2004015376 A JP2004015376 A JP 2004015376A
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- area
- value
- coefficient
- image blur
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Studio Devices (AREA)
Abstract
【課題】複数に分割した各エリアの動きベクトルから信頼性の高低を考慮して、全体の動きベクトルを適確に求める。
【解決手段】各エリアの動きベクトルの平均値と標準偏差によって定まる範囲内のもののみを選択し、更に各エリアのコントラスト係数を求め、それをもとに重み付け係数を求めたのち重み付け平均を求めこれを全体の動きベクトルとする。これにより信頼性の高低を評価して全体の動きベクトルを適確に求める。
【選択図】 図1
【解決手段】各エリアの動きベクトルの平均値と標準偏差によって定まる範囲内のもののみを選択し、更に各エリアのコントラスト係数を求め、それをもとに重み付け係数を求めたのち重み付け平均を求めこれを全体の動きベクトルとする。これにより信頼性の高低を評価して全体の動きベクトルを適確に求める。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は比較的低い振動を受ける機器の振動抑制の為に用いられる装置に関し、更には例えばカメラ等の機器に生ずる10Hz程度以下の周波数の振動(手ブレ等)を検出してこれを像振れ防止の情報として像ブレ抑制を図るシステムに関するものである。
【0002】
【従来の技術】
イメージセンサーを用いて像振れを検出する像振れ防止装置に関する従来の発明としては特開平5−122590号公報、特開平6−46315号公報などがある。
【0003】
特開平5−122590号公報には以下のような発明が開示されている。
【0004】
発明の目的は手ブレ補正機能を持つビデオカメラの手ブレ検出動きベクトルを安定形成することである。そして以下のような構成である。ブロック別動きベクトル検出手段が発生するブロック別の動きベクトルを検出し、増加度検出手段にてブロック別動きベクトルの増加度を検出し、動きベクトル発生手段内にて増加度の小さい動きベクトルのみを選択して、選択した動きベクトルの平均値を手ブレ検出動きベクトルとする。
【0005】
また特開平6−46315号公報には以下のような発明が開示されている。
【0006】
発明の目的は手ブレ補正機能を持つビデオカメラの手ブレ検出動きベクトルを安定形成することである。そして以下のような構成である。ブロック別動きベクトル検出手段が発生するブロック別の動きベクトルを検出し、平均演算手段にてブロック別動きベクトルの平均ベクトルを求め、偏差演算手段にてブロック別動きベクトルの偏差を検出し、孤立度演算手段にて偏差と平均ベクトルに基づき孤立度を求め、手ブレ検出動きベクトル発生手段にて求めた孤立度に応じて動きベクトルを選択的に演算処理してブレ検出動きベクトルを求める。
【0007】
【発明が解決しようとしている課題】
しかしながら上述従来例では、増加度の小さい動きベクトルのみを選択して、選択した動きベクトルの平均値を手ブレ検出動きベクトルとしたり、偏差と平均ベクトルに基づき孤立度を求め、孤立度に応じて動きベクトルを選択的に演算処理してブレ検出動きベクトルを求めているため、コントラストが低いなどの理由により信頼性の低いブロックの情報も、信頼性の高い情報と同等に評価してしまうため複数に分割された各ブロックの動くベクトルから全体の動きベクトルを適確に求めることができないことがある。
【0008】
【課題を解決するための手段】
これに対して本発明においては、複数に分割した各エリアの動きベクトルを求めたのち、各エリアの動きベクトルの平均値と標準偏差を求め、平均値を標準偏差によつて定まる範囲内のものを全体の動きベクトルを用いる。更に複数に分割した各エリアのコントラストを評価する係数を求め、求められた各エリアの動きベクトルをそのコントラスト係数で重み付けし平均値を全体の動きベクトルとする。
【0009】
【発明の実施の形態】
(第一の実施形態)
図1に本発明の実施形態のブロック図を示す。1はMPU(マイクロプロセッシングユニット)、2はメモリー、3はEEPROM、4はイメージセンサーに画像を形成するための受光レンズ、5は像振れを検出するためのイメージセンサー、6はイメージセンサーの出力を増幅する増幅回路、7はピッチ方向に補正レンズを駆動するための補正レンズ駆動装置、8はヨー方向に補正レンズを駆動するための補正レンズ駆動装置、9は像振れを補正するための補正レンズである。図1においてイメージセンサー5の出力は増幅回路6を介してMPUlのA/D変換入力端子に接続されている。
【0010】
またイメージセンサー5は自身の駆動回路機能を内蔵している。
【0011】
本実施形態においては、イメージセンサー5上に形成された画像の水平方向・垂直方向の射影信号をイメージセンサー5における画像処理機能を用いて算出し、この射影信号をMPUlのDMA機能を用いてA/D変換端子からメモリー2に転送し、メモリー2に転送されたデータから動きベクトルを求めることによって像ぶれを検出し、これをもとに像振れを補正する方向に補正レンズを駆動する事で、像振れを補正している。
【0012】
その補正のシーケンスを図2に示すフローチャートを用いて説明する。またタイミングチャートを図3に、センサーの構成の概略を図4に示す。図4において、501はイメージゾーン、502は画像処理回路、503はメモリーゾーン、504はメモリーゾーンに記憶された画像処理をしていない信号を読み出す際に用いる読み出し用のシフトレジスタ、505は画像処理回路で求められた射影信号を記憶するメモリー、506は画像処理回路で求められた水平方向の射影信号を読み出す際に用いる読み出し用のシフトレジスタ、507は画像処理回路で求められた垂直方向の射影信号を読み出す際に用いる読み出し用のシフトレジスタ、508は読み出す信号を選択するための切換スイッチ、510は増幅器、520はセンサーのドライバーである。
【0013】
カメラの動作シーケンスの説明に先だち、センサーの射影信号算出機能について説明する。
【0014】
図4に示すようにセンサーの画面を水平垂直方向に各々4分割した場合を例に説明する。水平方向の射影信号は、センサーの画面を4分割した水平方向に長い短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。同様に垂直方向の射影信号は、センサーの画面を4分割した垂直方向に長い短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。すなわち、水平方向の射影信号を求める領域と垂直方向の射影信号を求める領域はその一部が重なる異なる領域となる。それぞれ四角い枠で囲った部分が一番目の射影信号を求める際の領域となる。水平方向の射影信号は、領域内の水平方向位置の等しい各画素の輝度を垂直方向に足し合わせたものである。また垂直方向の射影信号は、領域内の垂直方向位置の等しい各画素の輝度を水平方向に足し合わせたものである。センサー5の画像処理回路502ではこの足し合わせの演算を行う。この足し合わせの演算はMPUlから送られる転送パルスに同期して行われる。そしてその結果はメモリー505の所定の領域に、MPUlから送られる転送パルスに同期して記憶される。
【0015】
例えば、100×100画素のセンサーを水平垂直に各々4分割した場合を考える。
【0016】
水平方向の1列目にある25画素(1行目から25行目)の信号を足し合わせ、第−の領域の水平方向の射影信号の1番目の値を求める。同様に2列目以降の25画素(1行目から25行目)の信号を足し合わせ、第一の領域の水平方向の射影信号の2番目以降の値を求める。この様にして第一の領域の水平方向の射影信号を求める。
【0017】
ついで水平方向の1列目にある26行目から50行目の25画素の信号を足し合わせ、第二の領域の水平方向の射影信号の1番目の値を求める。同様に2列目以降にある26行目から50行目の25画素の信号を足し合わせ、第二の領域の水平方向の射影信号の2番目以降の値を求める。この様にして第二の領域の水平方向の射影信号を求める。同様にして、51行目から75行目の25画素の信号を足し合わせ第三の領域の水平方向の射影信号を、76行目から100行目の25画素の信号を足し合わせ第四の領域の水平方向の射影信号を求める。
【0018】
また垂直方向1行目にある25画素(1列目から25列目)の信号を足し合わせ、第−の領域の垂直方向の射影信号の1番目の値を求める。同様に2行目以降の25画素(1列目から25列目)の信号を足し合わせ、第一の領域の垂直方向の射影信号の2番目以降の値を求める。この様にして第一の領域の垂直方向の射影信号を求める。
【0019】
同様にして、26列目から50列目の25画素の信号を足し合わせ第二の領域の垂直方向の射影信号を、51列目から75列目の25画素の信号を足し合わせ第三の領域の垂直方向の射影信号を、76列目から100列目の25画素の信号を足し合わせ第四の領域の垂直方向の射影信号を求める。
【0020】
以上のようにして水平方向・垂直方向に分割された各々の領域の射影信号を求める。
【0021】
カメラのメインスイッチがオンするなどして、カメラのメインシーケンスが開始されると、MPUlは初期処理の一連の動作の中でEEPROM3から、各種のパラメータを読み込み、メモリー2の所定のアドレスに格納する。
【0022】
そしてSl(SWl)がオンされるなどして防振システムの一連の動作を撮影者が開始させる状態にしたなら(lSスタート、ただしブレ補正は未だ行っていない)、処理で用いる変数の初期化、AGCなどの処理を行う。
【0023】
AGCは像振れを検出するイメージセンサー5の蓄積時間、増幅回路6の増幅率を決定するための処理である。比較的短い一定時間イメージセンサー5の蓄積を行い、それにより形成された画像の射影信号をイメージセンサー5における画像処理機能を用いて算出し、この射影信号をMPUlのA/D変換端子から読み込み、その平均値を求める。この際に用いる射影信号は水平もしくは垂直方向の射影信号のうちどちらか一方を用いれば良い。4つの領域の射影信号をMPUlのA/D変換端子から読み込み、全ての信号値の平均値を求める。そしてその値からイメージセンサー5の蓄積時間、増幅回路6の増幅率を決定する。その決定はあらかじめ求められたテーブルを参照することにより行われる。なおこのテーブルはEEPROMに記憶されており、初期化の際にメモリー2に転送されている。またここで決定される本蓄積(像振れを検出するための信号を得るための蓄積)の最長時間は10msec程度が望ましい。
【0024】
そののちMPUlは本蓄積(像振れを検出するための信号を得るための蓄積)を開始するとともに、本蓄積終了のタイミングを得るための第一のタイマーを起動する。
【0025】
本蓄積は、イメージセンサー5のイメージゾーンの電荷をメモリーゾーンへ転送することによってクリアすることにより開始される。このタイマーは一定間経過時に割り込みを発生するものである。この一定時間が蓄積時間である。また次回以降の本蓄積開始タイミングを得るための第二のタイマーも同時に起動する。このタイマーは起動後は一定時間毎に割り込みを生じるものである。MPUlはこの一定時間毎の割り込みが生じるたぴに本蓄積を開始することになる。この一定時間は像振れ補正の能力を左右するものであるが、蓄積時間などとの関係から通常は数10msec程度となる。
【0026】
MPUlはこの第一のタイマーからの割り込みが発生したならば蓄積終了の処理を行う。これはイメージセンサー5のイメージゾーンからメモリーゾーンヘ電荷を転送することによって行われる。またこの転送の際にイメージセンサー5上に形成された画像の各々の領域における水平方向・垂直方向の射影信号をイメージセンサー5における画像処理機能を用いて算出し、イメージセンサー5の射影信号用のメモリー505に記憶する。
【0027】
MPUlはイメージセンサー5に対して与える指示信号により、メモリーゾーン503に転送された画像そのものを読み出すか、メモリー505に記憶された射影信号を読み出すかを選択できるが、ここでは射影信号を読み出すようにイメージセンサー5に指示を与える。それと同時にDMAを行うための設定を行う。設定が終了したならば、MPUlはイメージセンサー5に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー5は射影信号読み出しの状態に改定されているので、読み出しパルスが入力されるたびに、まず水平方向の四つの領域の射影信号を出力する。ついで、垂直方向の四つの領域の射影信号を出力する。MPUlは読み出しパルスに同期してA/D変換を行い、その結果をDMA転送によりメモリー2に格納する。
【0028】
ついで第二のタイマーによる割り込みが発生したならば、MPUlは第一のタイマーを起動し、本蓄積(像振れを検出するための信号を得るための蓄積)を開始するとともに、動きベクトルを求める演算処理を行う。ただし、今回は一度目の第二のタイマーによる割り込みであるため、動きベクトルを求める際の相関演算の対象となる1フレーム前の射影信号のデータが無いので、ここでは現在メモリー2に格納されているデータを相関演算の対象データを格納するエリアに転送するなどの処理のみを行い、相関演算は行わない。この相関演算の対象データを格納するエリアヘの転送は次の様に行われる。相関演算は水平垂直に各々4分割された16の領域について行うので、相関演算の対象となるのは、16分割された領域の現在のデータの中央部の一部であるので、その中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアヘ転送する。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、その中央部分の13画素、それぞれの領域の7画素目から19画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアヘ転送する。この転送動作を16個の領域について行う。
【0029】
そして再び第一のタイマーからの割り込みが発生したならば前回と同一の処理を行う。まずは蓄籍終了の処理を行う。イメージセンサー5のイメージゾーン501からメモリーゾーン503へ電荷を転送し、この転送の際にイメージセンサー5上に形成された画像の各々の領域の水平垂直方向の射影信号をイメージセンサー5における画像処理機能を用いて算出し、イメージセンサー5の射影信号用のメモリー505に各々記憶するoMPUlはイメージセンサー5に対して射影信号を読み出すように指示を与える。それと同時にDMAを行うための設定を行う。設定が終了したならば、MPUlはイメージセンサー5に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー5は射影信号読み出しの状態に設定されているので、読み出しパルスが入力されるたぴに、各々の領域の水平垂直方向の射影信号を出力する。MPUlは読み出しパルスに同期してA/D変換を行い、その結果をDMA転送によりメモリー2に格納する。
【0030】
さらに第二のタイマーによる割り込みが発生したならば、MPUlは第一のタイマーを起動し、本蓄積(像振れを検出するための信号を得るための蓄積)を開始するとともに、動きベクトルを求める演算処理を行う。
【0031】
この動きベクトルの算出は、相関演算の対象となる1フレーム前の射影信号データと現在の射影信号データの相関値を演算し、その値が最小となる点を見つけることで行われる。
相関値は、
相関値cv=Σabs(d[i+j]−Pd[j])
j
d[i]は現フレームの射影信号
Pd[j]は1フレーム前の射影信号
と求められる。すなわち1画素づつずらしながら、上記の式を用い相関値を計算し、それが最小となるiを求める。
【0032】
さらに補間演算を行い、1画素以下の分解能で相関値が最小となる点を求める。この方法は直線補間などが知れれている。
【0033】
例えば100×100画素のセンサーを水平垂直に各々4分割している場合は、射影信号として100画素分のデータがあり、相関演算の対象データとして13画素のデータがある。よってjの範囲はそれぞれ、j=−6から、j=6となる。またiの範囲は各領域で異なり、左側の領域からそれぞれ、i=−6から、i=81まで、i=−31から、i=56まで、i=−56から、i=31まで、i=−81から、i=−6までとなる。ただしこれでは相関演算の計算量が多いので、iの範囲は狭くしても構わない。
【0034】
よって一番左側の領域札まずi=−6としてjを−6からまで+1しながら相関値を計算しメモリに記憶する。ついでi=−5とし相関値を計算し、その値をメモリに記憶する。同様にしてi=81まで相関値を計算しメモリに記憶する。全ての相関値が計算されたら、その値を比較し、最小になる座標を求める。さらに補間演算を行い、1画素以下の分解能で相関値が最小となる点を求める。
【0035】
そしてこの処理の最後に現在メモリーに格納されているデータを相関演算の対象データを格納するエリアに転送する。この相関演算の対象データを格納するエリアヘの転送は上述の様に行われる。相関演算の対象となるのは、各々の領域のデータの中央部の一部である。例えば、各々の領域の射影信号として25画素分のデータがあれば、その中央部分の13画素、7画素目から19画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアヘ転送する。
【0036】
上記の処理を水平方向、垂直方向に関して行い、各々の領域の水平方向の動きベクトル、垂直方向の動きベクトルを求める。
【0037】
この処理を全ての領域について行い、16個の領域の水平方向の動きベクトル、垂直方向の動きベクトルを求める。
【0038】
全ての領域の水平方向、垂直方向の動きベクトルが求まったならば、全体の水平方向、垂直方向の動きベクトルを求める。
【0039】
まず各エリアの水平方向の動きベクトルの平均値と標準偏差を求める。そして平均値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0040】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして、残った各動きベクトルの平均値と標準偏差を求め、もう一度同じ処理をする。すなわち再計算された値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0041】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして残った各動きベクトルのコントラスト係数を求める。これは動きベクトルを求めるときに用いた各エリアの水平方向の射影の各エリアに相当する部分の最大値と最小値の差である。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、一番左のエリアは水平方向の射影の左から1画素目から25画素目までの最小値と最大値の差を求めれば良い。選択された各エリアのコントラスト係数が求まったならば、このコントラスト係数を用いた加重平均をとる。加重平均は以下の式により求める。
【0042】
加重平均=(Σコントラスト係数×選択された各エリアの動きベクトル)/(Σコントラスト係数)
そしてこの加重平均を全体の水平方向の動きベクトルとする。
【0043】
ついで、同様にして全体の垂直方向の動きベクトルを求める。
【0044】
全体の水平方向、垂直方向の動きベクトルを求まったならば、MPUは動きベクトルから補正レンズの駆動位置を求める。
【0045】
本実施形態ではムービングマグネット(MM)を用いたコイルに流す電流に比例した位置に補正レンズが移動する駆動装置を用いている。
【0046】
MPUは水平方向の動きベクトルからコイルに与える電流値を求める。いまはコイルに流す電流はアナログ主として与えるのではなく、PWM(パルス幅変調)したものとディジタル量として与えるようにしている。これはMPUを用いて電流を制御する際はコスト的に有利であるなどの理由による。よって水平方向の動きベクトルの値からPWMのデュティーを求めるテーブルを用意しておき、MPUは水平方向の動きベクトルの値から該当するPWMのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでPWMのデュティーを設定する。なおこのテーブルはEEPROMに設定しておくことがのぞましい。
【0047】
このようにしてPWMの周期、デュティーが求まったならばMPUは所定のレジスタにこの値を設定する。これによりPWMされた駆動信号が補正レンズ駆動装置7に与えられる。駆動信号を与えられた補正レンズ駆動装置7は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【0048】
ついでMPUは垂直方向の動きベクトルから補正レンズの駆動位置を求める。
【0049】
MPUは垂直方向の動きベクトルの値からコイルに与える電流値を求める。いまはコイルに流す電流はアナログ量として与えるのではなく、PWM(パルス幅変調)したものとディジタル量として与えるようにしている。よって垂直方向の動きベクトルの値からPWMのデュティーを求めるテーブルを用意しておき、MPUは垂直方向の動きベクトルの値から該当するPWMのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでPWMのデュティーを設定する。なおこのテーブルはEEPROMに設定しておくことがのぞましい。
【0050】
このようにしてPWMの周期、デュティーが求まったならばMPUは所定のレジスタにこの値を設定する。これによりPWMされた駆動信号が補正レンズ駆動装置8に与えられる。駆動信号を与えられた補正レンズ駆動装置8は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【0051】
このように複数に分割した各エリアの動きベクトルを求めたのち、各エリアの動きベクトルの平均値と標準偏差を求め、平均値を標準偏差によって定まる範囲内のものを全体の動きベクトルを用いる。更に複数に分割した各エリアのコントラストを評価する係数を求め、求められた各エリアの動きベクトルをそのコントラスト係数から求めた重み付け係数で重み付けした平均値を全体の動きベクトルとすることで、信頼性の高い低いを評価して複数に分割された各ブロックの動くベクトルから全体の動きベクトルを適確に求めることができる。
【0052】
(第二の実施形態)
第一実施形態が全体の動きベクトルを求める際の重み付け係数としてコントラスト係数をそのまま用いたのに対して、本実施形態ではある程度コントラストのあるものは同一の重み付けにしたことを特徴とする。
【0053】
本実施形態においては各エリアの水平垂直方向の動きベクトルから以下のようにして全体の水平垂直方向の動きベクトルを求める。
【0054】
まず各エリアの水平方向の動きベクトルの平均値と標準偏差を求める。そして平均値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0055】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして、残った各動きベクトルの平均値と標準偏差を求め、もう一度同じ処理をする。すなわち再計算された値と標準偏差によって定められる次の範囲に入っていないものを俳除する。
【0056】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして残った各動きベクトルのコントラスト係数を求める。これは動きベクトルを求めるときに用いた各エリアの水平方向の射影の各エリアに相当する部分の最大値と最小値の差である。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、一番左のエリアは水平方向の射影の左から1画素目から25画素目までの最小値と最大値の差を求めれば良い。選択された各エリアのコントラスト係数が求まったならば、このコントラスト係数から重み付け係数を求める。その関係を図5に示す。すなわち、コントラスト係数がある程度大きいものの重み付けは同等にする。ここでは、各々の領域の射影信号の最大値と最小値の差がMPUlのA/D変換レンジの半分以上のものを同等にし、それ以下のものはコントラスト係数(すなわち大値と最小値の差)を重み付け係数とすることにする。これはある程度コントラストのある領域は、その信頼性に差がないと考えられるからである。
【0057】
選択された各エリアのコントラスト係数が求まったならばその重み付け係数を用いた加重平均をとる。加重平均は以下の式により求める。
【0058】
加重平均=(Σ重み付け係数×選択された各エリアの動きベクトル)/(Σ重み付け係数)
そしてこの加重平均を全体の水平方向の動きベクトルとする。
【0059】
ついで、同様にして全体の垂直方向の動きベクトルを求める。
【0060】
(第三の実施形態)
第一実施形態が全体の動きベクトルを求める際の重み付け係数としてコントラスト係数をそのまま用いたのに対して、本実施形態ではある程度コントラストのあるものは同−の重み付けにし、コントラストがある程度小さいものの重み付けを零にしたことを特徴とする。本実施形態においては各エリアの水平垂直方向の動きベクトルから以下のようにして全体の水平垂直方向の動きベクトルを求める。
【0061】
まず各エリアの水平方向の動きベクトルの平均値と標準偏差を求める。そして平均値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0062】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして、残った各動きベクトルの平均値と標準偏差を求め、もう一度同じ処理をする。すなわち再計算された値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0063】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして残った各動きベクトルのコントラスト係数を求める。これは動きベクトルを求めるときに用いた各エリアの水平方向の射影の各エリアに相当する部分の最大値と最小値の差である。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、一番左のエリアは水平方向の射影の左から1画素目から25画素目までの最小値と最大値の差を求めれば良い。
【0064】
選択された各エリアのコントラスト係数が求まったならば、このコントラスト係数から重み付け係数を求める。その関係を図6に示す。すなわち、コントラスト係数がある程度大きいものの重み付けは同等にし、コントラストがある程度小さいものの重み付けを零にする。ここでは、各々の領域の射影信号の最大値と最小値の差がMPUlのA/D変換レンジの3/4以上のものを同等にし、最大値と最小値の差がMPUlのA/D変換レンジの1/4未満のものの重み付けを零にし、それ以外のものはコントラスト係数(すなわち大値と最小値の差)を重み付け係数とすることにする。これはある程度コントラストのある領域はその信頼性に差がないと考えられ、コントラストがあるレベルより小さいものはその信頼性が低いと考えられるからである。
【0065】
選択された各エリアのコントラスト係数が求まったならばその重み付け係数を用いた加重平均をとる。加重平均は以下の式により求める。
加重平均=(Σ重み付け係数×選択された各エリアの動きベクトル)/(Σ
重み付け係数)
そしてこの加重平均を全体の水平方向の動きベクトルとする。
【0066】
ついで、同様にして全体の垂直方向の動きベクトルを求める。
【0067】
(変形例)
上記実施形態では各動きベクトルのコントラスト係数として各エリアの水平方向(もしくは垂直方向)の射影の各エリアに相当する部分の最大値と最小値の差を用いたが、コントラスト係数はこれに限定されるものではない。例えば、各エリアの水平方向(もしくは垂直方向)の射影の各エリアに相当する部分の隣接する画素との差の絶対値の和をコントラスト係数としてもよい。
【0068】
【発明の効果】
以上説明してきたように本発明においては、複数に分割した各エリアの動きベクトルを求めたのち、各エリアの動きベクトルの平均値と標準偏差を求め、平均値を標準偏差によって定まる範囲内のものを全体の動きベクトルを用いる。更に複数に分割した各エリアのコントラストを評価する係数を求め、求められた各エリアの動きベクトルをそのコントラスト係数から求めた重み付け係数で重み付けした平均値を全体の動きベクトルとすることで、信頼性の高い低いを評価して複数に分割された各ブロックの動くベクトルから全体の動きベクトルを適確に求めることができる。
【図面の簡単な説明】
【図1】本発明の第一第二第三実施形態のブロック図。
【図2】第一第二第三実施形態の動作の説明図。
【図3】第一第二第三実施形態の動作のタイミングの説明図。
【図4】本発明第一第二第三実施形態のセンサーの構成の概略を示す図。
【図5】第二実施形態のコントラスト係数と重み付け係数の関係を示す図。
【図6】第三実施形態のコントラスト係数と重み付け係数の関係を示す図。
【符号の説明】
1 MPU(マイクロプロセッシングユニット)
2 メモリー
3 EEPROM
4 イメージセンサーに画像を形成するための受光レンズ
5 像振れを検出するためのイメージセンサー
6 イメージセンサーの出力を増幅する増幅回路
7 ピッチ方向に補正レンズを駆動するための補正レンズ駆動装置
8 ヨー方向に補正レンズを駆動するための補正レンズ駆動装置
9 像振れを補正するための補正レンズである
【発明の属する技術分野】
本発明は比較的低い振動を受ける機器の振動抑制の為に用いられる装置に関し、更には例えばカメラ等の機器に生ずる10Hz程度以下の周波数の振動(手ブレ等)を検出してこれを像振れ防止の情報として像ブレ抑制を図るシステムに関するものである。
【0002】
【従来の技術】
イメージセンサーを用いて像振れを検出する像振れ防止装置に関する従来の発明としては特開平5−122590号公報、特開平6−46315号公報などがある。
【0003】
特開平5−122590号公報には以下のような発明が開示されている。
【0004】
発明の目的は手ブレ補正機能を持つビデオカメラの手ブレ検出動きベクトルを安定形成することである。そして以下のような構成である。ブロック別動きベクトル検出手段が発生するブロック別の動きベクトルを検出し、増加度検出手段にてブロック別動きベクトルの増加度を検出し、動きベクトル発生手段内にて増加度の小さい動きベクトルのみを選択して、選択した動きベクトルの平均値を手ブレ検出動きベクトルとする。
【0005】
また特開平6−46315号公報には以下のような発明が開示されている。
【0006】
発明の目的は手ブレ補正機能を持つビデオカメラの手ブレ検出動きベクトルを安定形成することである。そして以下のような構成である。ブロック別動きベクトル検出手段が発生するブロック別の動きベクトルを検出し、平均演算手段にてブロック別動きベクトルの平均ベクトルを求め、偏差演算手段にてブロック別動きベクトルの偏差を検出し、孤立度演算手段にて偏差と平均ベクトルに基づき孤立度を求め、手ブレ検出動きベクトル発生手段にて求めた孤立度に応じて動きベクトルを選択的に演算処理してブレ検出動きベクトルを求める。
【0007】
【発明が解決しようとしている課題】
しかしながら上述従来例では、増加度の小さい動きベクトルのみを選択して、選択した動きベクトルの平均値を手ブレ検出動きベクトルとしたり、偏差と平均ベクトルに基づき孤立度を求め、孤立度に応じて動きベクトルを選択的に演算処理してブレ検出動きベクトルを求めているため、コントラストが低いなどの理由により信頼性の低いブロックの情報も、信頼性の高い情報と同等に評価してしまうため複数に分割された各ブロックの動くベクトルから全体の動きベクトルを適確に求めることができないことがある。
【0008】
【課題を解決するための手段】
これに対して本発明においては、複数に分割した各エリアの動きベクトルを求めたのち、各エリアの動きベクトルの平均値と標準偏差を求め、平均値を標準偏差によつて定まる範囲内のものを全体の動きベクトルを用いる。更に複数に分割した各エリアのコントラストを評価する係数を求め、求められた各エリアの動きベクトルをそのコントラスト係数で重み付けし平均値を全体の動きベクトルとする。
【0009】
【発明の実施の形態】
(第一の実施形態)
図1に本発明の実施形態のブロック図を示す。1はMPU(マイクロプロセッシングユニット)、2はメモリー、3はEEPROM、4はイメージセンサーに画像を形成するための受光レンズ、5は像振れを検出するためのイメージセンサー、6はイメージセンサーの出力を増幅する増幅回路、7はピッチ方向に補正レンズを駆動するための補正レンズ駆動装置、8はヨー方向に補正レンズを駆動するための補正レンズ駆動装置、9は像振れを補正するための補正レンズである。図1においてイメージセンサー5の出力は増幅回路6を介してMPUlのA/D変換入力端子に接続されている。
【0010】
またイメージセンサー5は自身の駆動回路機能を内蔵している。
【0011】
本実施形態においては、イメージセンサー5上に形成された画像の水平方向・垂直方向の射影信号をイメージセンサー5における画像処理機能を用いて算出し、この射影信号をMPUlのDMA機能を用いてA/D変換端子からメモリー2に転送し、メモリー2に転送されたデータから動きベクトルを求めることによって像ぶれを検出し、これをもとに像振れを補正する方向に補正レンズを駆動する事で、像振れを補正している。
【0012】
その補正のシーケンスを図2に示すフローチャートを用いて説明する。またタイミングチャートを図3に、センサーの構成の概略を図4に示す。図4において、501はイメージゾーン、502は画像処理回路、503はメモリーゾーン、504はメモリーゾーンに記憶された画像処理をしていない信号を読み出す際に用いる読み出し用のシフトレジスタ、505は画像処理回路で求められた射影信号を記憶するメモリー、506は画像処理回路で求められた水平方向の射影信号を読み出す際に用いる読み出し用のシフトレジスタ、507は画像処理回路で求められた垂直方向の射影信号を読み出す際に用いる読み出し用のシフトレジスタ、508は読み出す信号を選択するための切換スイッチ、510は増幅器、520はセンサーのドライバーである。
【0013】
カメラの動作シーケンスの説明に先だち、センサーの射影信号算出機能について説明する。
【0014】
図4に示すようにセンサーの画面を水平垂直方向に各々4分割した場合を例に説明する。水平方向の射影信号は、センサーの画面を4分割した水平方向に長い短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。同様に垂直方向の射影信号は、センサーの画面を4分割した垂直方向に長い短冊状の領域においてセンサーにおける画像処理機能を用いて求められる。すなわち、水平方向の射影信号を求める領域と垂直方向の射影信号を求める領域はその一部が重なる異なる領域となる。それぞれ四角い枠で囲った部分が一番目の射影信号を求める際の領域となる。水平方向の射影信号は、領域内の水平方向位置の等しい各画素の輝度を垂直方向に足し合わせたものである。また垂直方向の射影信号は、領域内の垂直方向位置の等しい各画素の輝度を水平方向に足し合わせたものである。センサー5の画像処理回路502ではこの足し合わせの演算を行う。この足し合わせの演算はMPUlから送られる転送パルスに同期して行われる。そしてその結果はメモリー505の所定の領域に、MPUlから送られる転送パルスに同期して記憶される。
【0015】
例えば、100×100画素のセンサーを水平垂直に各々4分割した場合を考える。
【0016】
水平方向の1列目にある25画素(1行目から25行目)の信号を足し合わせ、第−の領域の水平方向の射影信号の1番目の値を求める。同様に2列目以降の25画素(1行目から25行目)の信号を足し合わせ、第一の領域の水平方向の射影信号の2番目以降の値を求める。この様にして第一の領域の水平方向の射影信号を求める。
【0017】
ついで水平方向の1列目にある26行目から50行目の25画素の信号を足し合わせ、第二の領域の水平方向の射影信号の1番目の値を求める。同様に2列目以降にある26行目から50行目の25画素の信号を足し合わせ、第二の領域の水平方向の射影信号の2番目以降の値を求める。この様にして第二の領域の水平方向の射影信号を求める。同様にして、51行目から75行目の25画素の信号を足し合わせ第三の領域の水平方向の射影信号を、76行目から100行目の25画素の信号を足し合わせ第四の領域の水平方向の射影信号を求める。
【0018】
また垂直方向1行目にある25画素(1列目から25列目)の信号を足し合わせ、第−の領域の垂直方向の射影信号の1番目の値を求める。同様に2行目以降の25画素(1列目から25列目)の信号を足し合わせ、第一の領域の垂直方向の射影信号の2番目以降の値を求める。この様にして第一の領域の垂直方向の射影信号を求める。
【0019】
同様にして、26列目から50列目の25画素の信号を足し合わせ第二の領域の垂直方向の射影信号を、51列目から75列目の25画素の信号を足し合わせ第三の領域の垂直方向の射影信号を、76列目から100列目の25画素の信号を足し合わせ第四の領域の垂直方向の射影信号を求める。
【0020】
以上のようにして水平方向・垂直方向に分割された各々の領域の射影信号を求める。
【0021】
カメラのメインスイッチがオンするなどして、カメラのメインシーケンスが開始されると、MPUlは初期処理の一連の動作の中でEEPROM3から、各種のパラメータを読み込み、メモリー2の所定のアドレスに格納する。
【0022】
そしてSl(SWl)がオンされるなどして防振システムの一連の動作を撮影者が開始させる状態にしたなら(lSスタート、ただしブレ補正は未だ行っていない)、処理で用いる変数の初期化、AGCなどの処理を行う。
【0023】
AGCは像振れを検出するイメージセンサー5の蓄積時間、増幅回路6の増幅率を決定するための処理である。比較的短い一定時間イメージセンサー5の蓄積を行い、それにより形成された画像の射影信号をイメージセンサー5における画像処理機能を用いて算出し、この射影信号をMPUlのA/D変換端子から読み込み、その平均値を求める。この際に用いる射影信号は水平もしくは垂直方向の射影信号のうちどちらか一方を用いれば良い。4つの領域の射影信号をMPUlのA/D変換端子から読み込み、全ての信号値の平均値を求める。そしてその値からイメージセンサー5の蓄積時間、増幅回路6の増幅率を決定する。その決定はあらかじめ求められたテーブルを参照することにより行われる。なおこのテーブルはEEPROMに記憶されており、初期化の際にメモリー2に転送されている。またここで決定される本蓄積(像振れを検出するための信号を得るための蓄積)の最長時間は10msec程度が望ましい。
【0024】
そののちMPUlは本蓄積(像振れを検出するための信号を得るための蓄積)を開始するとともに、本蓄積終了のタイミングを得るための第一のタイマーを起動する。
【0025】
本蓄積は、イメージセンサー5のイメージゾーンの電荷をメモリーゾーンへ転送することによってクリアすることにより開始される。このタイマーは一定間経過時に割り込みを発生するものである。この一定時間が蓄積時間である。また次回以降の本蓄積開始タイミングを得るための第二のタイマーも同時に起動する。このタイマーは起動後は一定時間毎に割り込みを生じるものである。MPUlはこの一定時間毎の割り込みが生じるたぴに本蓄積を開始することになる。この一定時間は像振れ補正の能力を左右するものであるが、蓄積時間などとの関係から通常は数10msec程度となる。
【0026】
MPUlはこの第一のタイマーからの割り込みが発生したならば蓄積終了の処理を行う。これはイメージセンサー5のイメージゾーンからメモリーゾーンヘ電荷を転送することによって行われる。またこの転送の際にイメージセンサー5上に形成された画像の各々の領域における水平方向・垂直方向の射影信号をイメージセンサー5における画像処理機能を用いて算出し、イメージセンサー5の射影信号用のメモリー505に記憶する。
【0027】
MPUlはイメージセンサー5に対して与える指示信号により、メモリーゾーン503に転送された画像そのものを読み出すか、メモリー505に記憶された射影信号を読み出すかを選択できるが、ここでは射影信号を読み出すようにイメージセンサー5に指示を与える。それと同時にDMAを行うための設定を行う。設定が終了したならば、MPUlはイメージセンサー5に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー5は射影信号読み出しの状態に改定されているので、読み出しパルスが入力されるたびに、まず水平方向の四つの領域の射影信号を出力する。ついで、垂直方向の四つの領域の射影信号を出力する。MPUlは読み出しパルスに同期してA/D変換を行い、その結果をDMA転送によりメモリー2に格納する。
【0028】
ついで第二のタイマーによる割り込みが発生したならば、MPUlは第一のタイマーを起動し、本蓄積(像振れを検出するための信号を得るための蓄積)を開始するとともに、動きベクトルを求める演算処理を行う。ただし、今回は一度目の第二のタイマーによる割り込みであるため、動きベクトルを求める際の相関演算の対象となる1フレーム前の射影信号のデータが無いので、ここでは現在メモリー2に格納されているデータを相関演算の対象データを格納するエリアに転送するなどの処理のみを行い、相関演算は行わない。この相関演算の対象データを格納するエリアヘの転送は次の様に行われる。相関演算は水平垂直に各々4分割された16の領域について行うので、相関演算の対象となるのは、16分割された領域の現在のデータの中央部の一部であるので、その中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアヘ転送する。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、その中央部分の13画素、それぞれの領域の7画素目から19画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアヘ転送する。この転送動作を16個の領域について行う。
【0029】
そして再び第一のタイマーからの割り込みが発生したならば前回と同一の処理を行う。まずは蓄籍終了の処理を行う。イメージセンサー5のイメージゾーン501からメモリーゾーン503へ電荷を転送し、この転送の際にイメージセンサー5上に形成された画像の各々の領域の水平垂直方向の射影信号をイメージセンサー5における画像処理機能を用いて算出し、イメージセンサー5の射影信号用のメモリー505に各々記憶するoMPUlはイメージセンサー5に対して射影信号を読み出すように指示を与える。それと同時にDMAを行うための設定を行う。設定が終了したならば、MPUlはイメージセンサー5に内蔵されたドライバーに対して読み出しパルスを出力する。いまイメージセンサー5は射影信号読み出しの状態に設定されているので、読み出しパルスが入力されるたぴに、各々の領域の水平垂直方向の射影信号を出力する。MPUlは読み出しパルスに同期してA/D変換を行い、その結果をDMA転送によりメモリー2に格納する。
【0030】
さらに第二のタイマーによる割り込みが発生したならば、MPUlは第一のタイマーを起動し、本蓄積(像振れを検出するための信号を得るための蓄積)を開始するとともに、動きベクトルを求める演算処理を行う。
【0031】
この動きベクトルの算出は、相関演算の対象となる1フレーム前の射影信号データと現在の射影信号データの相関値を演算し、その値が最小となる点を見つけることで行われる。
相関値は、
相関値cv=Σabs(d[i+j]−Pd[j])
j
d[i]は現フレームの射影信号
Pd[j]は1フレーム前の射影信号
と求められる。すなわち1画素づつずらしながら、上記の式を用い相関値を計算し、それが最小となるiを求める。
【0032】
さらに補間演算を行い、1画素以下の分解能で相関値が最小となる点を求める。この方法は直線補間などが知れれている。
【0033】
例えば100×100画素のセンサーを水平垂直に各々4分割している場合は、射影信号として100画素分のデータがあり、相関演算の対象データとして13画素のデータがある。よってjの範囲はそれぞれ、j=−6から、j=6となる。またiの範囲は各領域で異なり、左側の領域からそれぞれ、i=−6から、i=81まで、i=−31から、i=56まで、i=−56から、i=31まで、i=−81から、i=−6までとなる。ただしこれでは相関演算の計算量が多いので、iの範囲は狭くしても構わない。
【0034】
よって一番左側の領域札まずi=−6としてjを−6からまで+1しながら相関値を計算しメモリに記憶する。ついでi=−5とし相関値を計算し、その値をメモリに記憶する。同様にしてi=81まで相関値を計算しメモリに記憶する。全ての相関値が計算されたら、その値を比較し、最小になる座標を求める。さらに補間演算を行い、1画素以下の分解能で相関値が最小となる点を求める。
【0035】
そしてこの処理の最後に現在メモリーに格納されているデータを相関演算の対象データを格納するエリアに転送する。この相関演算の対象データを格納するエリアヘの転送は上述の様に行われる。相関演算の対象となるのは、各々の領域のデータの中央部の一部である。例えば、各々の領域の射影信号として25画素分のデータがあれば、その中央部分の13画素、7画素目から19画素目までが相関演算の対象データとなる。よって、この中央部分の射影信号のデータのみを相関演算の対象データを格納するエリアヘ転送する。
【0036】
上記の処理を水平方向、垂直方向に関して行い、各々の領域の水平方向の動きベクトル、垂直方向の動きベクトルを求める。
【0037】
この処理を全ての領域について行い、16個の領域の水平方向の動きベクトル、垂直方向の動きベクトルを求める。
【0038】
全ての領域の水平方向、垂直方向の動きベクトルが求まったならば、全体の水平方向、垂直方向の動きベクトルを求める。
【0039】
まず各エリアの水平方向の動きベクトルの平均値と標準偏差を求める。そして平均値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0040】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして、残った各動きベクトルの平均値と標準偏差を求め、もう一度同じ処理をする。すなわち再計算された値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0041】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして残った各動きベクトルのコントラスト係数を求める。これは動きベクトルを求めるときに用いた各エリアの水平方向の射影の各エリアに相当する部分の最大値と最小値の差である。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、一番左のエリアは水平方向の射影の左から1画素目から25画素目までの最小値と最大値の差を求めれば良い。選択された各エリアのコントラスト係数が求まったならば、このコントラスト係数を用いた加重平均をとる。加重平均は以下の式により求める。
【0042】
加重平均=(Σコントラスト係数×選択された各エリアの動きベクトル)/(Σコントラスト係数)
そしてこの加重平均を全体の水平方向の動きベクトルとする。
【0043】
ついで、同様にして全体の垂直方向の動きベクトルを求める。
【0044】
全体の水平方向、垂直方向の動きベクトルを求まったならば、MPUは動きベクトルから補正レンズの駆動位置を求める。
【0045】
本実施形態ではムービングマグネット(MM)を用いたコイルに流す電流に比例した位置に補正レンズが移動する駆動装置を用いている。
【0046】
MPUは水平方向の動きベクトルからコイルに与える電流値を求める。いまはコイルに流す電流はアナログ主として与えるのではなく、PWM(パルス幅変調)したものとディジタル量として与えるようにしている。これはMPUを用いて電流を制御する際はコスト的に有利であるなどの理由による。よって水平方向の動きベクトルの値からPWMのデュティーを求めるテーブルを用意しておき、MPUは水平方向の動きベクトルの値から該当するPWMのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでPWMのデュティーを設定する。なおこのテーブルはEEPROMに設定しておくことがのぞましい。
【0047】
このようにしてPWMの周期、デュティーが求まったならばMPUは所定のレジスタにこの値を設定する。これによりPWMされた駆動信号が補正レンズ駆動装置7に与えられる。駆動信号を与えられた補正レンズ駆動装置7は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【0048】
ついでMPUは垂直方向の動きベクトルから補正レンズの駆動位置を求める。
【0049】
MPUは垂直方向の動きベクトルの値からコイルに与える電流値を求める。いまはコイルに流す電流はアナログ量として与えるのではなく、PWM(パルス幅変調)したものとディジタル量として与えるようにしている。よって垂直方向の動きベクトルの値からPWMのデュティーを求めるテーブルを用意しておき、MPUは垂直方向の動きベクトルの値から該当するPWMのデュティーの値が格納されているメモリのアドレスと求め、その値を読み込むことでPWMのデュティーを設定する。なおこのテーブルはEEPROMに設定しておくことがのぞましい。
【0050】
このようにしてPWMの周期、デュティーが求まったならばMPUは所定のレジスタにこの値を設定する。これによりPWMされた駆動信号が補正レンズ駆動装置8に与えられる。駆動信号を与えられた補正レンズ駆動装置8は、与えられた信号に比例する電流値をコイルに流し、補正レンズを水平方向の所定位置に駆動する。すなわち次の駆動信号が与えられるまでは、いま与えられた駆動信号に従って補正レンズを所定位置に保持する。
【0051】
このように複数に分割した各エリアの動きベクトルを求めたのち、各エリアの動きベクトルの平均値と標準偏差を求め、平均値を標準偏差によって定まる範囲内のものを全体の動きベクトルを用いる。更に複数に分割した各エリアのコントラストを評価する係数を求め、求められた各エリアの動きベクトルをそのコントラスト係数から求めた重み付け係数で重み付けした平均値を全体の動きベクトルとすることで、信頼性の高い低いを評価して複数に分割された各ブロックの動くベクトルから全体の動きベクトルを適確に求めることができる。
【0052】
(第二の実施形態)
第一実施形態が全体の動きベクトルを求める際の重み付け係数としてコントラスト係数をそのまま用いたのに対して、本実施形態ではある程度コントラストのあるものは同一の重み付けにしたことを特徴とする。
【0053】
本実施形態においては各エリアの水平垂直方向の動きベクトルから以下のようにして全体の水平垂直方向の動きベクトルを求める。
【0054】
まず各エリアの水平方向の動きベクトルの平均値と標準偏差を求める。そして平均値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0055】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして、残った各動きベクトルの平均値と標準偏差を求め、もう一度同じ処理をする。すなわち再計算された値と標準偏差によって定められる次の範囲に入っていないものを俳除する。
【0056】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして残った各動きベクトルのコントラスト係数を求める。これは動きベクトルを求めるときに用いた各エリアの水平方向の射影の各エリアに相当する部分の最大値と最小値の差である。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、一番左のエリアは水平方向の射影の左から1画素目から25画素目までの最小値と最大値の差を求めれば良い。選択された各エリアのコントラスト係数が求まったならば、このコントラスト係数から重み付け係数を求める。その関係を図5に示す。すなわち、コントラスト係数がある程度大きいものの重み付けは同等にする。ここでは、各々の領域の射影信号の最大値と最小値の差がMPUlのA/D変換レンジの半分以上のものを同等にし、それ以下のものはコントラスト係数(すなわち大値と最小値の差)を重み付け係数とすることにする。これはある程度コントラストのある領域は、その信頼性に差がないと考えられるからである。
【0057】
選択された各エリアのコントラスト係数が求まったならばその重み付け係数を用いた加重平均をとる。加重平均は以下の式により求める。
【0058】
加重平均=(Σ重み付け係数×選択された各エリアの動きベクトル)/(Σ重み付け係数)
そしてこの加重平均を全体の水平方向の動きベクトルとする。
【0059】
ついで、同様にして全体の垂直方向の動きベクトルを求める。
【0060】
(第三の実施形態)
第一実施形態が全体の動きベクトルを求める際の重み付け係数としてコントラスト係数をそのまま用いたのに対して、本実施形態ではある程度コントラストのあるものは同−の重み付けにし、コントラストがある程度小さいものの重み付けを零にしたことを特徴とする。本実施形態においては各エリアの水平垂直方向の動きベクトルから以下のようにして全体の水平垂直方向の動きベクトルを求める。
【0061】
まず各エリアの水平方向の動きベクトルの平均値と標準偏差を求める。そして平均値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0062】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして、残った各動きベクトルの平均値と標準偏差を求め、もう一度同じ処理をする。すなわち再計算された値と標準偏差によって定められる次の範囲に入っていないものを排除する。
【0063】
平均−標準偏差≦各動きベクトル≦平均+標準偏差
そして残った各動きベクトルのコントラスト係数を求める。これは動きベクトルを求めるときに用いた各エリアの水平方向の射影の各エリアに相当する部分の最大値と最小値の差である。例えば、100×100画素のセンサーを用いていた場合は、各々の領域の射影信号として25画素分のデータがあるので、一番左のエリアは水平方向の射影の左から1画素目から25画素目までの最小値と最大値の差を求めれば良い。
【0064】
選択された各エリアのコントラスト係数が求まったならば、このコントラスト係数から重み付け係数を求める。その関係を図6に示す。すなわち、コントラスト係数がある程度大きいものの重み付けは同等にし、コントラストがある程度小さいものの重み付けを零にする。ここでは、各々の領域の射影信号の最大値と最小値の差がMPUlのA/D変換レンジの3/4以上のものを同等にし、最大値と最小値の差がMPUlのA/D変換レンジの1/4未満のものの重み付けを零にし、それ以外のものはコントラスト係数(すなわち大値と最小値の差)を重み付け係数とすることにする。これはある程度コントラストのある領域はその信頼性に差がないと考えられ、コントラストがあるレベルより小さいものはその信頼性が低いと考えられるからである。
【0065】
選択された各エリアのコントラスト係数が求まったならばその重み付け係数を用いた加重平均をとる。加重平均は以下の式により求める。
加重平均=(Σ重み付け係数×選択された各エリアの動きベクトル)/(Σ
重み付け係数)
そしてこの加重平均を全体の水平方向の動きベクトルとする。
【0066】
ついで、同様にして全体の垂直方向の動きベクトルを求める。
【0067】
(変形例)
上記実施形態では各動きベクトルのコントラスト係数として各エリアの水平方向(もしくは垂直方向)の射影の各エリアに相当する部分の最大値と最小値の差を用いたが、コントラスト係数はこれに限定されるものではない。例えば、各エリアの水平方向(もしくは垂直方向)の射影の各エリアに相当する部分の隣接する画素との差の絶対値の和をコントラスト係数としてもよい。
【0068】
【発明の効果】
以上説明してきたように本発明においては、複数に分割した各エリアの動きベクトルを求めたのち、各エリアの動きベクトルの平均値と標準偏差を求め、平均値を標準偏差によって定まる範囲内のものを全体の動きベクトルを用いる。更に複数に分割した各エリアのコントラストを評価する係数を求め、求められた各エリアの動きベクトルをそのコントラスト係数から求めた重み付け係数で重み付けした平均値を全体の動きベクトルとすることで、信頼性の高い低いを評価して複数に分割された各ブロックの動くベクトルから全体の動きベクトルを適確に求めることができる。
【図面の簡単な説明】
【図1】本発明の第一第二第三実施形態のブロック図。
【図2】第一第二第三実施形態の動作の説明図。
【図3】第一第二第三実施形態の動作のタイミングの説明図。
【図4】本発明第一第二第三実施形態のセンサーの構成の概略を示す図。
【図5】第二実施形態のコントラスト係数と重み付け係数の関係を示す図。
【図6】第三実施形態のコントラスト係数と重み付け係数の関係を示す図。
【符号の説明】
1 MPU(マイクロプロセッシングユニット)
2 メモリー
3 EEPROM
4 イメージセンサーに画像を形成するための受光レンズ
5 像振れを検出するためのイメージセンサー
6 イメージセンサーの出力を増幅する増幅回路
7 ピッチ方向に補正レンズを駆動するための補正レンズ駆動装置
8 ヨー方向に補正レンズを駆動するための補正レンズ駆動装置
9 像振れを補正するための補正レンズである
Claims (7)
- イメージセンサーを用いて像振れを検出し像ぶれを補正を行う装置において、画面を複数に分割した各エリアの動きベクトルを求めたのち、各エリアの動きベクトルの平均値と標準偏差を求め、平均値を標準偏差によって定まる範囲内のものを全体の動きベクトルを用いることを特徴とする像振れ防止装置およびカメラ。
- 平均値を標準偏差によって定まる範囲内のもの選択する処理を複数回行うことを特徴とする1項記載の像振れ防止装置およびカメラ。
- イメージセンサーを用いて像振れを検出し像ぶれを補正を行う装置において、画面を複数に分割した各エリアの動きベクトルを求めたのち、各エリアのコントラストを評価する係数を求め、このコントラスト係数を評価する係数を用いて全体の動きベクトルを求めることを特徴とする像振れ防止装置およびカメラ。
- 複数に分割した各エリアの動きベクトルをそのエリアのコントラストを評価する係数で重み付けした平均値を全体の動きベクトルとすることを特徴とする3項記載の像振れ防止装置およびカメラ。
- 複数に分割した各エリアのコントラストを評価する係数は各エリアの射信号の最大値と最小値の差であることを特徴とする3項記載の像振れ防止装置およびカメラ。
- 複数に分割した各エリアのコントラストを評価する係数は各エリアの射信号の最大値と最小値の差が一定値以上のもの重み付けは同等とすることを特徴とする4項記載の像振れ防止装置およびカメラ。
- 複数に分割した各エリアのコントラストを評価する係数は各エリアの射信号の最大値と最小値の差一定値未満のもの重み付けは零とすることを特徴とする4項記載の像振れ防止装置およびカメラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002165394A JP2004015376A (ja) | 2002-06-06 | 2002-06-06 | 像振れ防止装置およびカメラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002165394A JP2004015376A (ja) | 2002-06-06 | 2002-06-06 | 像振れ防止装置およびカメラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004015376A true JP2004015376A (ja) | 2004-01-15 |
Family
ID=30433246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002165394A Withdrawn JP2004015376A (ja) | 2002-06-06 | 2002-06-06 | 像振れ防止装置およびカメラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004015376A (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006222933A (ja) * | 2005-01-13 | 2006-08-24 | Olympus Imaging Corp | ブレ補正方法および撮像装置 |
JP2006287814A (ja) * | 2005-04-04 | 2006-10-19 | Fuji Photo Film Co Ltd | 撮像装置及び動きベクトル決定方法 |
JP2007036741A (ja) * | 2005-07-27 | 2007-02-08 | Matsushita Electric Works Ltd | 複数画像合成方法及び複数画像合成装置 |
JP2008005355A (ja) * | 2006-06-23 | 2008-01-10 | Canon Inc | 画像処理装置及び画像処理方法 |
US7509038B2 (en) | 2005-09-29 | 2009-03-24 | Seiko Epson Corporation | Determining maximum exposure time to limit motion blur during image capture |
US7595818B2 (en) | 2005-11-08 | 2009-09-29 | Casio Computer Co., Ltd. | Image shake correction image processing apparatus and program |
JP2012009036A (ja) * | 2006-04-06 | 2012-01-12 | Qualcomm Inc | 電子ビデオ画像の安定化 |
JP2012034361A (ja) * | 2010-07-30 | 2012-02-16 | Fujitsu Ltd | 手ぶれ補正方法及び手ぶれ補正装置 |
US8411154B2 (en) | 2007-05-24 | 2013-04-02 | Casio Computer Co., Ltd. | Image processing apparatus for calculating global motion vector of plurality of image frames |
CN104954782A (zh) * | 2015-06-08 | 2015-09-30 | 小米科技有限责任公司 | 成像设备防抖性能的测试方法及设备 |
US9361704B2 (en) | 2011-08-15 | 2016-06-07 | Sony Corporation | Image processing device, image processing method, image device, electronic equipment, and program |
US11277561B2 (en) | 2019-06-04 | 2022-03-15 | Canon Kabushiki Kaisha | Image stabilization apparatus and method, and image capturing apparatus |
-
2002
- 2002-06-06 JP JP2002165394A patent/JP2004015376A/ja not_active Withdrawn
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006222933A (ja) * | 2005-01-13 | 2006-08-24 | Olympus Imaging Corp | ブレ補正方法および撮像装置 |
JP2006287814A (ja) * | 2005-04-04 | 2006-10-19 | Fuji Photo Film Co Ltd | 撮像装置及び動きベクトル決定方法 |
US7864860B2 (en) | 2005-04-04 | 2011-01-04 | Fujifilm Corporation | Image pickup apparatus and motion vector deciding method |
JP2007036741A (ja) * | 2005-07-27 | 2007-02-08 | Matsushita Electric Works Ltd | 複数画像合成方法及び複数画像合成装置 |
JP4654817B2 (ja) * | 2005-07-27 | 2011-03-23 | パナソニック電工株式会社 | 複数画像合成方法及び複数画像合成装置 |
US7509038B2 (en) | 2005-09-29 | 2009-03-24 | Seiko Epson Corporation | Determining maximum exposure time to limit motion blur during image capture |
USRE43491E1 (en) | 2005-11-08 | 2012-06-26 | Casio Computer Co., Ltd. | Image shake correction image processing apparatus and program |
US7595818B2 (en) | 2005-11-08 | 2009-09-29 | Casio Computer Co., Ltd. | Image shake correction image processing apparatus and program |
JP2012009036A (ja) * | 2006-04-06 | 2012-01-12 | Qualcomm Inc | 電子ビデオ画像の安定化 |
JP4693709B2 (ja) * | 2006-06-23 | 2011-06-01 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
JP2008005355A (ja) * | 2006-06-23 | 2008-01-10 | Canon Inc | 画像処理装置及び画像処理方法 |
US8411154B2 (en) | 2007-05-24 | 2013-04-02 | Casio Computer Co., Ltd. | Image processing apparatus for calculating global motion vector of plurality of image frames |
JP2012034361A (ja) * | 2010-07-30 | 2012-02-16 | Fujitsu Ltd | 手ぶれ補正方法及び手ぶれ補正装置 |
US9361704B2 (en) | 2011-08-15 | 2016-06-07 | Sony Corporation | Image processing device, image processing method, image device, electronic equipment, and program |
CN104954782A (zh) * | 2015-06-08 | 2015-09-30 | 小米科技有限责任公司 | 成像设备防抖性能的测试方法及设备 |
CN104954782B (zh) * | 2015-06-08 | 2017-03-15 | 小米科技有限责任公司 | 成像设备防抖性能的测试方法及设备 |
US11277561B2 (en) | 2019-06-04 | 2022-03-15 | Canon Kabushiki Kaisha | Image stabilization apparatus and method, and image capturing apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4509925B2 (ja) | 画像処理装置及びカメラシステム並びに画像処理方法及び動画像表示方法 | |
US8253812B2 (en) | Video camera which adopts a focal-plane electronic shutter system | |
US7627237B2 (en) | Image processing apparatus and method and program | |
EP0977432A2 (en) | Image pickup apparatus | |
JP6222514B2 (ja) | 画像処理装置、撮像装置、およびコンピュータブログラム | |
JP2007150643A (ja) | 固体撮像素子、固体撮像素子の駆動方法および撮像装置 | |
US7944482B2 (en) | Pixel information readout method and image pickup apparatus | |
JP2004015376A (ja) | 像振れ防止装置およびカメラ | |
EP1783686A1 (en) | Image stabilization | |
JP2019068351A (ja) | 撮像装置、撮像装置の制御方法 | |
JP2013165485A (ja) | 画像処理装置、撮像装置およびコンピュータブログラム | |
JP2018207413A (ja) | 撮像装置 | |
JP2007243335A (ja) | 手振れ補正方法、手振れ補正装置および撮像装置 | |
JP2006186593A5 (ja) | ||
JP2011103631A (ja) | デジタルカメラ | |
US8836821B2 (en) | Electronic camera | |
CN108737698B (zh) | 图像稳定设备和方法、摄像设备、摄像***和存储介质 | |
JP2004336778A (ja) | デジタルビデオ撮像装置および方法 | |
JP2002333645A (ja) | 像振れ補正装置及びカメラ | |
US20100182460A1 (en) | Image processing apparatus | |
US11190683B2 (en) | Image capture apparatus and control method therefor | |
JP2005244440A (ja) | 撮像装置、撮像方法 | |
JP2019168661A (ja) | 制御装置、撮像装置、制御方法、プログラム、および、記憶媒体 | |
EP3799416B1 (en) | Image processing apparatus and method, and image capturing apparatus | |
JP2007334779A (ja) | 対象画像検索装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050906 |