JP2004158902A - 手ぶれ信号予測装置及び撮像機器 - Google Patents
手ぶれ信号予測装置及び撮像機器 Download PDFInfo
- Publication number
- JP2004158902A JP2004158902A JP2002319863A JP2002319863A JP2004158902A JP 2004158902 A JP2004158902 A JP 2004158902A JP 2002319863 A JP2002319863 A JP 2002319863A JP 2002319863 A JP2002319863 A JP 2002319863A JP 2004158902 A JP2004158902 A JP 2004158902A
- Authority
- JP
- Japan
- Prior art keywords
- camera shake
- shake signal
- predicted
- prediction
- signal
- 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.)
- Pending
Links
Images
Landscapes
- Adjustment Of Camera Lenses (AREA)
- Studio Devices (AREA)
Abstract
【課題】簡単な回路構成で、且つ、様々な状況の手ぶれ振動に素早く適応し、精度の高い予測値をリアルタイムで得ることができる手ぶれ予測装置及びこの装置を備えた撮像機器を提供することである。
【解決手段】所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、修正したパラメータ値を用いて手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段とを設ける。
【選択図】 図1
【解決手段】所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、修正したパラメータ値を用いて手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段とを設ける。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、手ぶれ信号予測装置及び撮像機器に関するものである。詳しくは、撮影者の手ぶれによる振動をリアルタイムに予測して撮像する画像を補正できるようにした手ぶれ信号予測装置及び撮像機器に関するものである。
【0002】
【従来の技術】
従来の撮像装置において、撮影者の手ぶれによる振動で画質が劣化することを防ぐ為の方法が種々考案されている。これらの方法は、手ぶれによる振動を信号として検出する機構、いわゆる、手ぶれ信号を検出する機構として角速度センサを備えていたり、動画を撮像する装置では、撮像した各時間の画像データを比較し、手ぶれ振動として認識される画像データの変化分を抽出するベクトル検出方式と呼ばれる機構を備え、この抽出した画像データの変化分を光学的、電子的に打ち消すことにより画質の劣化を防止(補正)している。
【0003】
手ぶれ振動を打ち消した画像を得る為には、露光と同時間で手ぶれ振動に対する補正信号(以下、手ぶれ補正信号と云う)が必要となるが、角速度センサ等のセンサ類を用いている場合、ノイズ除去フィルタ等の影響により手ぶれ信号の検出に遅延が生じてしまう。
【0004】
また、べクトル検出方式の場合は、手ぶれ振動として認識される画像データの変化分、いわゆる、手ぶれ信号を得るためには、露光して取り込んだ画像を信号処理した後に画像データを比較するため、手ぶれ信号の検出に遅延が生じてしまう。
【0005】
このように、実際に得られる手ぶれ補正信号は、撮像した画像に対して時間的に遅れたものとなってしまうため、撮像した画像全体を一旦記憶装置に保存しておき、手ぶれ補正信号を得た後に記憶装置から手ぶれを打ち消した(補正した)画像を切り出すという方法により画質の劣化を防止(補正)している。
【0006】
しかし、撮像した画像全体を一旦記憶装置に保存するため、現在撮像している画像に対する手ぶれ振動を補正することはできない。そこで、画像を撮像した時点で、次の手ぶれ振動を予測し、画質の劣化をリアルタイムで補正するという方法がある。
【0007】
次の手ぶれ振動を予測する方法は、発生する手ぶれ振動を手ぶれ信号としてサンプリングして記憶し、記憶した手ぶれ信号に対して適切な予測演算処理を施すことで、次に発生する手ぶれ振動の予測値を算出し、この予測値に基づいて制御を行うことで、手ぶれによる振動の影響を抑えた露光動作を可能とし、画質の劣化をリアルタイムで補正するものである(例えば、特許文献1参照。)。
【0008】
【特許文献1】
特許3238449号公報(第3頁、図1)
【0009】
【発明が解決しようとする課題】
しかしながら、上述したような次の手ぶれ振動を予測する方法では、手ぶれによる振動が複雑な動きをするため、予測演算処理が複雑で演算量が多くなり、様々な状況の手ぶれ振動に適応するまでに時間がかかるというような問題がある。
【0010】
従って、簡単な回路構成で、且つ、様々な状況の手ぶれ振動に素早く適応し、精度の高い予測値をリアルタイムで得ることができるようにすること、に解決しなければならない課題を有する。
【0011】
【課題を解決するための手段】
前記課題を解決するため、本発明に係る手ぶれ信号予測装置及び撮像機器は次のような構成にすることである。
【0012】
(1)所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、を備えた手ぶれ信号予測装置。
(2)手ぶれによる振動量を予測する手ぶれ信号予測部を備え、該手ぶれ信号予測部から出力される予測手ぶれ信号を用いて撮像する画像を補正できる撮像機器であって、前記手ぶれ信号予測部は、所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、を具備していることを特徴とする撮像機器。
【0013】
(3)所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、前記予測値演算手段のニューラルネットワークに設定するパラメータ値を記憶しておくパラメータ記憶手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号と前記予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、該検出した誤差に基づいて前記予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、該選択したパラメータ値を前記パラメータ記憶手段に記憶させる予測誤差評価手段と、を具備している手ぶれ信号予測装置。
(4)前記予測値演算手段は、前記ニューラルネットワークに前記パラメータ記憶手段に記憶してある全てのパラメータ値を順次設定して次の手ぶれ信号の予測値を順次算出し、該設定した全てのパラメータ値の中から前記予測誤差評価手段で選択されたパラメータ値をニューラルネットワークに再度設定してから次の手ぶれ信号の予測値を算出することを特徴とする(3)に記載の手ぶれ信号予測装置。
【0014】
(5)手ぶれによる振動量を予測する手ぶれ信号予測部を備え、該手ぶれ信号予測部から出力される予測手ぶれ信号を用いて撮像する画像を補正できる撮像機器であって、前記手ぶれ信号予測部は、所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、前記予測値演算手段のニューラルネットワークに設定するパラメータ値を記憶しておくパラメータ記憶手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号と前記予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、該検出した誤差に基づいて前記予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、該選択したパラメータ値を前記パラメータ記憶手段に記憶させる予測誤差評価手段と、を具備していることを特徴とする撮像機器。
(6)前記予測値演算手段は、前記ニューラルネットワークに前記パラメータ記憶手段に記憶してある全てのパラメータ値を順次設定して次の手ぶれ信号の予測値を順次算出し、該設定した全てのパラメータ値の中から前記予測誤差評価手段で選択されたパラメータ値をニューラルネットワークに再度設定してから次の手ぶれ信号の予測値を算出することを特徴とする(5)に記載の撮像機器。
【0015】
このような手ぶれ信号予測装置及び撮像機器の構成において、予測値演算手段のニューラルネットワークにより、手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づいて、自己に設定してあるパラメータ値を修正し、修正したパラメータ値によって前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出し、算出した予測値に基づいて予測手ぶれ信号を生成して出力するので、簡単な回路構成で様々な手ぶれ振動に適応した精度の良い予測をリアルタイムに実現することができる。
【0016】
更に、予測誤差評価手段によって手ぶれ信号検出手段で検出した手ぶれ信号と予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、検出した誤差に基づいて予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、選択したパラメータ値をパラメータ記憶手段に記憶させることにより、予測演算処理を行うニューラルネットワークのパラメータ値がユーザの使用環境に特化され、また、ニューラルネットワークのパラメータ値を最適化するまでの時間が短縮できるので、様々な手ぶれ振動に素早く適応することができる。
【0017】
【発明の実施の形態】
次に、本発明に係る手ぶれ信号予測装置及び撮像機器の実施の形態を図面を参照して説明する。但し、図面は専ら解説のためのものであって、本発明の技術的範囲を限定するものではない。
【0018】
まず、第1の実施例として、ニューラルネットワークを用いた手ぶれ信号予測装置の基本的な構成及び動作について説明する。
【0019】
図1は、ニューラルネットワークを用いて手ぶれ信号を予測する手ぶれ信号予測装置の概略構成を示すブロック図であり、手ぶれ信号検出部100、手ぶれ信号記憶部110、手ぶれ信号予測部120とから構成される。
【0020】
手ぶれ信号検出部100は、図2に示すような所定時間ごとに手ぶれによる振動量(以下、手ぶれ量と云う)をサンプリングしたサンプル値(図2の黒点)、いわゆる、手ぶれ信号を検出し、手ぶれ信号記憶部110に送る。なお、サンプリングの時間間隔は、手ぶれ信号の周波数(手ぶれ振動の周期)に対して十分に短い時間とする。
【0021】
手ぶれ信号記憶部110は、例えば、FIFO(First In FirstOut)スタックメモリの様なメモリを備えており、手ぶれ信号検出部100でサンプリングされたサンプル値(以下、最新の手ぶれ信号)及びニューラルネットワークの入力値として必要となる数の過去のサンプル値(以下、過去の手ぶれ信号)を記憶しておくと共に、記憶している最新及び過去の手ぶれ信号を手ぶれ信号予測部120に送出する。
【0022】
ここで、ニューラルネットワークの入力として必要な過去の手ぶれ信号の数は、6〜8個の程度を用いれば十分精度のよい予測ができるので、手ぶれ信号記憶部110には、過去の手ぶれ信号を6〜8個分記憶しておけばよい。
【0023】
手ぶれ信号予測部120は、三層パーセプトロンと呼ばれる構成のニューラルネットワーク(neural network)を備え、手ぶれ信号記憶部110に記憶してある最新の手ぶれ信号及び過去の手ぶれ信号を入力値とするとともに、手ぶれ信号予測部120の最新の出力信号を自己にフィードバックして入力値とし、この入力値とニューラルネットワークの出力値とに基づいて、入力と出力の対応関係を学習し、ニューラルネットワークに設定するパラメータ値を変化させ、適切な予測手ぶれ信号を生成して出力する。
【0024】
ここで、三層パーセプトロンで構成されるニューラルネットワークについて説明する。図3は、手ぶれ信号予測部120の三層パーセプトロンによるニューラルネットワークの構成を略示的に示したものである。
【0025】
三層パーセプトロンによるニューラルネットワークは、入力層ユニット121、隠れ層(中間層)ユニット122、出力層ユニット123の順で配置された階層構造となっており、各ユニット121〜123には、それぞれ所定数のニューロンと呼ばれる信号処理エレメントが配置されている。
【0026】
入力層ユニット121には、入力信号P(n)、P(n−1)・・・P(n−(k−2))、P(n−(k−1))からなる入力パターンA(n)に応じた数のニューロンS1、S2、・・・Sk−1、Skが配置され、各ニューロンの出力側は、隠れ層ユニット122に配置されているニューロンh1〜hx全ての入力側にそれぞれ接続されている。
【0027】
なお、入力層ユニット121を構成するニューロンの数は手ぶれ信号記憶部110で保持する手ぶれ信号の数と同数とする。
【0028】
隠れ層ユニット122には、ニューロンh1〜hxが配置され、各ニューロンh1〜hxの入力側には、入力層ユニット121のニューロンS1〜Skそれぞれの出力側が接続されており、各ニューロンh1〜hxの出力側は、出力層ユニット123のニューロンRの入力側に接続される。
【0029】
なお、隠れ層ユニット122のニューロン数は、ニューラルネットワークの汎化能力や、ある入力パターンベクトルに対する出力の精度へ影響する為、例えば、手ぶれ信号の予測する場合、入力層ユニット121のニューロン数が8個であれば、隠れ層ユニット122のニューロン数は、5個程度で十分な性能である。
【0030】
出力層ユニット123のニューロンRの入力側には、隠れ層ユニット122のニューロンh1〜hxの出力側が全て接続されており、隠れ層ユニット122のニューロンh1〜hxからの信号に応じた出力信号が出力される。
【0031】
各ユニット121〜123に配置されているそれぞれのニューロンは、入力信号と出力信号の関係の応じて変化する結合係数、いわゆる、パラメータ値が設定されており、入力信号に対し、前回の出力信号(出力値)に応じて設定されるパラメータ値を乗じ、その総和(以下、ネット値)を算出して所定の出力関数へ入力することで得られる出力信号(出力値)を出力する。
【0032】
各ニューロンの出力信号は、数式1に基づいた出力値が出力される。
【0033】
【数1】
【0034】
続いて、図3のような三層パーセプトロンによるニューラルネットワークの動作について説明する。
【0035】
まず、入力層ユニット121に入力信号P(n)、P(n−1)・・・P(n−(k−2))、P(n−(k−1))からなる入力パターンA(n)が入力されると、各ニューロンS1、S2、・・・Sk−1、Skは、それぞれの入力信号(入力値)に対し、所定のパラメータ値を乗じてネット値を算出して所定の出力関数へ入力することで得られる出力信号(出力値)を、隠れ層ユニット122の各ニューロンh1〜hxそれぞれ全てに送出する。
【0036】
隠れ層ユニット122の各ニューロンh1〜hxは、入力層ユニット121の各ニューロンS1〜Skから送出されてきた出力信号(出力値)に対し、所定のパラメータ値を乗じてネット値を算出して所定の出力関数へ入力することで得られるそれぞれの出力信号(出力値)を、出力層ユニット123のニューロンRに送出する。
【0037】
出力層ユニット123のニューロンRは、隠れ層ユニット122の各ニューロンS1〜Skから送出されてきた出力信号(出力値)に対し、所定のパラメータ値を乗じてネット値を算出して所定の出力関数へ入力することで得られる出力信号P’(n+1)を出力する。
【0038】
そして、各層ユニット121〜123のそれぞれのニューロンは、この出力信号P’(n+1)と次の入力信号P(n+1)に基づいて現在設定されているパラメータ値を修正し、この修正したパラメータ値によって入力信号P(n+1)、P(n)・・・P(n−(k−3))、P(n−(k−2))からなる入力パターンA(n+1)に対する出力値を算出し、出力信号として出力する。
【0039】
次に、上述したようなニューラルネットワークを用いた手ぶれ信号予測装置の動作について図4を参照しながら説明する。
【0040】
まず、手ぶれ信号検出部100は、所定時間毎に手ぶれによる振動量をサンプリングすることにより手ぶれ信号P(n)を検出し、検出した手ぶれ信号を最新の手ぶれ信号として手ぶれ信号記憶部110に送る(ST100)。
【0041】
手ぶれ信号記憶部110は、手ぶれ信号検出部100からの最新の手ぶれ信号P(n)を記憶するとともに、手ぶれ信号予測部120に送出する(ST110)。
【0042】
手ぶれ信号予測部120では、最新の手ぶれ信号P(n)を教師信号(入力データに対して理想的と考えられる出力)とし、図5に示すように、手ぶれ信号記憶部110のスタックメモリに記憶してある過去の手ぶれ信号P(n−1)、P(n−2)・・・P(n−k)からなる入力パターンA(n−1)をニューラルネットワークに入力し、その出力結果と教師信号とをバックプロパゲーションアルゴリズムに基づいて比較し、その誤差をできる限り小さくなるように各ニューロン(S1〜Sk、h1〜hx、R)のパラメータ値の修正を行う、即ち、ニューラルネットワークによる学習を行う(ST120)。
【0043】
次に、手ぶれ信号記憶部110のスタックメモリでは、図5に示すように、過去の手ぶれ信号の最も古い手ぶれ信号P(n−k)を破棄して、最新の手ぶれ信号P(n)をスタックメモリに追加する(ST130)。
【0044】
続いて、手ぶれ信号予測部120は、手ぶれ信号記憶部110のスタックメモリに追加された最新の手ぶれ信号P(n)及び過去の手ぶれ信号P(n−1)、P(n−2)・・・P(n−(k−1))からなる新たな入力パターンA(n)をニューラルネットワークに入力する(ST140)。
【0045】
ニューラルネットワークの各ニューロン(S’1〜S’k、h’1〜h’x、R’)には、上述の学習によって修正されたパラメータ値が設定されており、図7に示すように、入力信号である入力パターンA(n)を入力層ユニット121、隠れ層ユニット122、出力層ユニット123の順に伝達していくと、この修正されたパラメータ値に基づいて次の手ぶれ信号の予測値P’(n+1)が算出される(ST150)。
【0046】
そして、手ぶれ信号予測部120は、この予測値P’(n+1)に基づいて予測手ぶれ信号を生成して出力する(ST160)。
【0047】
上述した動作を繰り返すことにより、新たな手ぶれ信号を検出するたびにニューラルネットワークが学習を行い、学習するたびに、更に最適な予測値を求めることができるようになっていく。なお、手ぶれ信号をサンプリングする間隔が1/60[s]以下という短い時間なので、十分精度の良い予測をすることが可能である。
【0048】
なお、手ぶれ補正機能を備えた撮像機器では、一般的に撮像機器に対する垂直方向、水平方向の二種類の手ぶれ信号を検出しているので、図3に示すようなニューラルネットワークを垂直方向及び水平方向それぞれに1個ずつ設ける。
【0049】
ところで、このようなニューラルネットワークを用いて手ぶれ信号の予測は可能であるが、実際の撮像機器における手ぶれ予測装置で手ぶれ振動を予測する場合、ニューラルネットワークの演算量が多くなり、予測誤差が収束する、言い換えると、最適なパラメータ値となるまでの処理時間が長くなる。そこで、以下に示すような方法でこれを改善する。
【0050】
[方法1]
一般的なニューラルネットワークの学習アルゴリズムでは、ニューラルネットワークのパラメータ値(結合荷重)の初期値をランダムに設定する。しかし、ランダムな結合荷重から予測誤差が収束するまでには非常に多い学習回数が必要となる。そこで、装置を使用する個人別、使用環境別に手ぶれを学習させたニューラルネットワークのパラメータ値を保存しておき、これを初期値として用いる様にする。
【0051】
このようにすることで、実際に予測させる手ぶれ振動と、初期値を作成する時に学習させた手ぶれ信号の特徴が異なる場合であっても、パラメータが最適値に収束するまでの時間(学習回数)が少なくする。
【0052】
[方法2]
上記[方法1]と同様に、事前に複数の個人、複数の環境においてニューラルネットワークの学習を行い、複数のパラメータ値(学習済み結合荷重)を装置に記憶しておく。そして、新たに手ぶれを予測する際、記憶してある複数のパラメータ値を順次ニューラルネットワークに設定し、ぞれぞれのパラメータ値を用いて手ぶれ振動の予測を一定時間を行い、その中で予測誤差の最も少なかったパラメータ値を再度ニューラルネットワークに設定して改めて手ぶれ振動の予測を開始する。
【0053】
方法2では、事前に記憶しているパラメータ値の特徴が、新たに手ぶれ振動を予測するときに用いる最適なパラメータ値である可能性が高く、パラメータが最適値に収束するまでの時間、言い換えると、ニューラルネットワークの学習回数が少なくなる。
【0054】
[方法3]
ベクトル検出方式によって検出された手ぶれ信号は、露光した画像一枚につき、一つの手ぶれ信号しか得られないので、ニューラルネットワークへの入力値を定める場合、入力パターン(図3参照)が完全に一致する確率は極めて小さく、特定の入力パターンに対する特定の出力(以下、入出力パターンという)に対し何度も学習すると、汎化能力は落ちてしまうので、一つの入出力パターンに対して学習回数を1回とすることが望ましい。
【0055】
ところが、このようにすると手ぶれ信号を一つ得る毎に(つまりは露光する毎に)一度しか学習しないことになり、ニューラルネットワークの学習に必要な学習回数(予測誤差が収束するまでの時間)を満たす為に長い時間がかかってしまう。
【0056】
そこで、一つの入出力パターンに対し学習回数を2〜3回とすることで、予測処理能力にはほとんど影響することなく、ニューラルネットワークの学習によって予測誤差が収束するまでにかかる時間(必要なサンプリング数)を少なくすることができる。
【0057】
[方法4]
小型の撮像機器に搭載されている演算処理装置において、一般的に、浮動小数点型の演算の方が、整数型の演算よりも処理時間がかかる。また、浮動小数点型での演算では、指数関数の演算処理にかなりの処理時間が必要になる。
【0058】
そこで、演算処理装置におけるニューラルネットワークの演算処理を、数式2で示すような置き換えにより、整数型で演算処理するようにする。
【0059】
【数2】
【0060】
また、上述した数式1において、ニューロンの出力f(net)と入力の総和netとの関係は、一般的にシグモイド関数が用いられ、滑らかなS字曲線状のグラフとなるが、このグラフを図8のように線形で近似したS字形のグラフとなるようにニューラルネットワークを設定することで、ニューラルネットワークの処理速度を向上させることができる。
【0061】
図8に示すグラフは、数式1における定数β=1.0としたときの線形で近似したグラフであり、その時のf(net)は、次のような値をとる。
【0062】
f(net)= 1.0 [12.0<net]
f(net)= 0.993 + 0.001(net−5.0) [5.0<net≦12.0]
f(net)= 0.731 + 0.0656(net−1.0) [1.0<net≦5.0]
f(net)= 0.269 + 0.2310(net+1.0) [−1.0<net≦1.0]
f(net)= 0.007 + 0.0656(net+5.0) [−12.0<net≦−5.0]
f(net)= 0.0 [net<−12.0]
【0063】
なお、バックプロパゲーションのアルゴリズムによりニューラルネットワークが学習をする際、図8のグラフにおける出力f(net)の傾きが必要となってくるが、入力の総和が「net<−12.0」及び「12.0<net」の場合、f(net)の傾きが0になってしまい、一定以上収束が進まなくなることがある。
【0064】
そこで、入力の総和が「net<−12.0」及び「12.0<net」において、上述した数式2で表すことのできる傾きが0より大きな値のうち、最小である値をf(net)の傾きとする。
【0065】
[方法5]
図9に示すように、手ぶれ振動を予測するため、垂直方向及び水平方向に対してそれぞれ1個ずつ設けるニューラルネットワークを一つのニューラルネットワークで構成する。
【0066】
図9のニューラルネットワークは、入力層ユニット121A、隠れ層ユニット122A、出力層ユニット123Aの順で配置された階層構造となっており、各ユニット121A〜123Aには、それぞれ所定数のニューロンと呼ばれる信号処理エレメントが配置されている。
【0067】
入力層ユニット121Aには、検出する垂直方向の手ぶれ信号Pp(n)・・・Pp(n−(k−2))、Pp(n−(k−1))と同数のニューロンSp1、Sp2、・・・Spk−1、Spkが配置され、また、検出する水平方向の手ぶれ信号Py(n)・・・Py(n−(k−2))、Py(n−(k−1))と同数のニューロンSy1、Sy2、・・・Syk−1、Sykが配置されており、各ニューロンの出力側は、隠れ層ユニット122Aに配置されているニューロンh1〜hx全ての入力側に接続されている。
【0068】
隠れ層ユニット122Aには、ニューロンh1〜hxが配置され、各ニューロンh1〜hxの入力側には、入力層ユニット121Aの垂直方向の手ぶれ信号に関するニューロンSp1〜Spk及び水平方向の手ぶれ信号に関するニューロンSy1〜Sykそれぞれの出力側全てが接続されており、各ニューロンh1〜hxの出力側は、出力層ユニット123AのニューロンRp及びニューロンRyの入力側にそれぞれ接続される。
【0069】
出力層ユニット123のニューロンRp及びニューロンRyの各入力側には、隠れ層ユニット122のニューロンh1〜hxの出力側が全て接続されており、隠れ層ユニット122のニューロンh1〜hxからの出力信号に応じて、垂直方向の手ぶれ信号の予測値P’p(n+1)と、水平方向の手ぶれ信号の予測値P’y(n+1)を出力する。
【0070】
各ユニット121A〜123Aに配置されているそれぞれのニューロンは、入力信号と出力信号の関係の応じて変化する結合係数、いわゆる、パラメータ値が設定されており、入力信号に対し、前回の出力信号(出力値)に応じて設定されるパラメータ値を乗じ、その総和(以下、ネット値)を算出して所定の出力関数へ入力することで得られる出力信号(出力値)を出力する。
【0071】
図9のニューラルネットワークの動作は、上述の図3で説明したニューラルネットワークと同様であるのでその説明は省略する。
【0072】
このように、垂直方向及び水平方向の手ぶれ信号の間に相関性があるならば、独立した2つのニューラルネットワークで予測を行うよりもその学習の効果が高まり、ニューラルネットワークによる予測の精度を向上させることができる。
【0073】
上述した[方法1]〜[方法5]を用いて、手ぶれ信号予測部120のニューラルネットワークによる予測の処理速度と精度を上げることにより、手ぶれ振動による画質の劣化をリアルタイムで補正することができる。
【0074】
次に、第2の実施例である手ぶれ信号予測装置について説明する。第2の実施例の手ぶれ信号予測装置では、第1の実施例で示した手ぶれ信号予測装置(図1参照)にパラメータ記憶部、予測誤差評価部を設け、予測手ぶれ信号と実際の手ぶれ信号との誤差を評価し、その時の最適なパラメータ値を記憶しておくことで、パラメータの設定時間を短縮できるようにしたものである。
【0075】
図10に示す手ぶれ信号予測装置は、手ぶれ信号検出部100A、手ぶれ信号記憶部110A、手ぶれ信号予測部120A、パラメータ記憶部130、予測誤差評価部140から構成される。
【0076】
手ぶれ信号検出部100Aは、図2に示すような所定時間ごとに手ぶれによる振動量(以下、手ぶれ量と云う)をサンプリングしたサンプル値(図2の黒点)、いわゆる、手ぶれ信号を検出し、手ぶれ信号記憶部110Aと予測誤差評価部140に送る。なお、サンプリングの時間間隔は、手ぶれ信号の周波数(手ぶれ振動の周期)に対して十分に短い時間とする。
【0077】
手ぶれ信号記憶部110Aは、例えば、FIFO(First In FirstOut)スタックメモリの様なメモリを備えており、手ぶれ信号検出部100でサンプリングされたサンプル値(以下、最新の手ぶれ信号)及びニューラルネットワークの入力値として必要となる数の過去のサンプル値(以下、過去の手ぶれ信号)を記憶しておくと共に、記憶している最新及び過去の手ぶれ信号を手ぶれ信号予測部120Aに送出する。
【0078】
ここで、ニューラルネットワークの入力として必要な過去の手ぶれ信号の数は、6〜8個の程度を用いれば十分精度のよい予測ができるので、手ぶれ信号記憶部110Aには、過去の手ぶれ信号を6〜8個分記憶しておけばよい。
【0079】
手ぶれ信号予測部120Aは、上述した第1の実施例と同様、三層パーセプトロンと呼ばれる構成のニューラルネットワーク(neural network)を備え、手ぶれ信号記憶部110Aに記憶してある最新の手ぶれ信号及び過去の手ぶれ信号を入力値とするとともに、最新の出力信号を自己にフィードバックして入力値とし、この入力値とニューラルネットワークの出力値とに基づいて、入力と出力の対応関係を学習し、ニューラルネットワークに設定するパラメータ値を変化させ、適切な予測手ぶれ信号を生成して出力する。
【0080】
また、装置で予測値の算出を開始するとき、パラメータ記憶部130からパラメータセットを順次取得してニューラルネットワークに設定し、予測誤差評価部140において、誤差が最も小さい予測手ぶれ信号が出力されたときに設定していたパラメータセットをパラメータ記憶部130から取得してニューラルネットワークに再度設定する。
【0081】
なお、ニューラルネットワークの構成および動作については第1の実施例と同じであるので詳細な説明を省略する。
【0082】
パラメータ記憶部130は、不揮発メモリなどであり、ニューラルネットワークに最適なパラメータ値の組み合わせデータであるパラメータセットを複数個(複数セット)記憶しており、装置の起動時(電源投入時)など、手ぶれ信号の予測を開始するときに、記憶してあるパラメータセットを手ぶれ信号予測部120Aに順次送出し、予測誤差評価部140に従って、誤差が最も小さい予測手ぶれ信号が出力されたときにニューラルネットワークに設定していたパラメータセットを手ぶれ信号予測部120Aに送出する。
【0083】
また、予測誤差評価部140に従って、手ぶれ信号予測部120Aのニューラルネットワークに設定されているパラメータ値(パラメータセット)を適宜記憶する。
【0084】
予測誤差評価部140は、手ぶれ信号予測部120Aから出力される予測手ぶれ信号と手ぶれ信号検出部100Aで検出した実際の(最新の)手ぶれ信号との誤差を検出し、ニューラルネットワークに設定されているパラメータ値の評価を行い、誤差が最小である最適なパラメータ値を適宜パラメータ記憶部130に記憶させる。
【0085】
また、手ぶれ信号予測装置が起動した時、ニューラルネットワークに対する最適なパラメータセットを選択するため、パラメータ記憶部130のパラメータセットに基づき手ぶれ信号予測部120Aから順次出力される予測手ぶれ信号と、手ぶれ信号検出部100Aで検出した実際の手ぶれ信号との誤差を検出し、最小誤差となったパラメータセットをパラメータ記憶部130に通知する。
【0086】
続いて、このような構成からなる手ぶれ信号予測装置の動作について、図11のフローチャートを参照しながら説明する。
【0087】
手ぶれ信号予測装置を起動して手ぶれ信号の予測を開始すると、まず、ニューラルネットワーク部120Aのニューラルネットワークに対する最適なパラメータ値の選択を始める(ST200)。
【0088】
パラメータセットの番号k(k;1〜nの整数)と、ニューラルネットワークに前回設定していたパラメータ値による予測手ぶれ信号の誤差Errを初期化設定する(ST201)。
【0089】
次に、手ぶれ信号予測部120Aは、パラメータ記憶部130に記憶してあるパラメータセットの番号k(k;1〜nの整数)のパラメータ値Akをニューラルネットワークに設定(入力)する(ST202)。
【0090】
手ぶれ信号予測部120Aにパラメータ値Akが設定されると、手ぶれ信号検出部100Aは所定時間ごとに手ぶれ信号を検出し、検出した手ぶれ信号を手ぶれ信号記憶部110Aと予測誤差評価部140に送る(ST203)。
【0091】
手ぶれ信号記憶部110Aは、手ぶれ信号検出部100で検出した最新の手ぶれ信号を記憶するとともに、この手ぶれ信号を手ぶれ信号予測部120Aに送出する(ST203)。
【0092】
手ぶれ信号予測部120Aでは、ニューラルネットワークに設定したパラメータ値Akに基づいて予測手ぶれ信号を生成して出力するとともに、この予測手ぶれ信号を予測誤差評価部140に送出する(ST204)。
【0093】
予測誤差評価部140では、手ぶれ信号検出部100Aで実際に検出した手ぶれ信号と手ぶれ信号予測部120Aで生成された予測手ぶれ信号との誤差を検出し、所定の時間内(例えば、60個分のサンプリング値を得るために必要な時間程度)において得た誤差の絶対値を積分して誤差Ekを算出する(ST205)。
【0094】
そして、前回ニューラルネットワークに設定したパラメータ値における誤差Errと、現在ニューラルネットワークに設定しているパラメータ値における誤差Ekとを比較する(ST206)。
【0095】
誤差Ek<誤差Errである場合は、現在ニューラルネットワークに設定しいるパラメータセットの番号k(k;1〜nの整数)のパラメータ値Akを最適なパラメータ値とし、そのパラメータセットの番号kを最適なパラメータセットの番号kbestとする。また、このときの誤差Ekを誤差Errとしてセットすし、手ぶれ信号記憶部110Aに次のパラメータセットがあるか否かを判別する処理へ移行する(ST207→ST208)。
【0096】
もし、誤差Ek>誤差Errである場合は、手ぶれ信号記憶部110Aに次のパラメータセットがあるか否かを判別する処理へ移行する(ST206→ST208)。
【0097】
手ぶれ信号記憶部110Aに、次のパラメータセットがある場合は、パラメータセットの番号k(k;1〜nの整数)をインクリメントする(ST209)。
【0098】
そして、手ぶれ信号予測部120Aは、パラメータ記憶部130に記憶してある次のパラメータセットの番号k(k;1〜nの整数)のパラメータ値Akをニューラルネットワークに設定し、上述した動作を繰り返し行い、これを全てのパラメータセットで行う。(ST209→ST202→・・・)。
【0099】
全てのパラメータセットについての誤差Ekの評価が完了すると、最適なパラメータセットの番号kbestに設定してある番号のパラメータセットをパラメータ記憶部130から読み出して、手ぶれ信号予測部120Aのニューラルネットワークに再設定する(ST208→ST220)。
【0100】
これによって、手ぶれ信号予測部120Aのニューラルネットワークには、現時点における最適なパラメータ値Akbestが設定される(ST220)。
【0101】
手ぶれ信号予測部120Aに最適なパラメータ値Akbestが設定されると、手ぶれ信号の予測を再開し、手ぶれ信号検出部100Aは所定時間ごとに手ぶれ信号を検出し、手ぶれ信号記憶部110Aと予測誤差評価部140に送る(ST221)。
【0102】
手ぶれ信号記憶部110Aは、手ぶれ信号検出部100Aで検出した最新の手ぶれ信号を記憶するとともに、最新の手ぶれ信号及び過去の手ぶれ信号を手ぶれ信号予測部120Aに送出する(ST222)。
【0103】
手ぶれ信号予測部120Aは、最新の手ぶれ信号に基づいてニューラルネットワークに設定したパラメータ値を修正し、修正したパラメータ値によって予測手ぶれ信号を生成して出力するとともに、この予測手ぶれ信号を予測誤差評価部140に送出する(ST223)。
【0104】
予測誤差評価部140では、手ぶれ信号検出部100Aで実際に検出した手ぶれ信号と手ぶれ信号予測部120Aで生成された予測手ぶれ信号との誤差を検出し、所定の時間内において得た誤差の絶対値を積分して誤差Ekを算出する(ST224)。
【0105】
そして、最適値として設定したパラメータ値による誤差Errと修正したパラメータ値による誤差Eとを比較する(ST225)。
【0106】
誤差E<誤差Errである場合は、現在ニューラルネットワークに設定されている修正したパラメータ値を最適なパラメータ値として手ぶれ信号記憶部110Aに記憶し、このときの誤差Eを誤差Errにセットする(ST225→ST226)。
【0107】
そして、再び手ぶれ信号検出部100Aで次の手ぶれ信号を検出し、上述した処理を繰り返し行う(ST226→ST221→・・・)。
【0108】
誤差Ek>誤差Errである場合は、最適値として設定したパラメータ値はそのままとし、誤差Errも現状のままとし、再び手ぶれ信号検出部100Aで次の手ぶれ信号を検出し、上述した処理を繰り返し行う(ST225→ST221→・・・)。
【0109】
このような手ぶれ信号予測装置によれば、ニューラルネットワークが学習するたびにパラメータの初期値が更に最適化され、ニューラルネットワークに最適なパラメータ値がセットされるまでの時間が短縮される。
【0110】
【発明の効果】
以上説明したように、手ぶれ振動の予測にニューラルネットワークを用いることで個人差や使用環境によって異なる手ぶれ振動に対して精度の良い予測を簡単な回路構成で実現することができるので、手ぶれ補正機能を低コストで導入することができるという極めて優れた効果を奏するものである。
【0111】
また、手ぶれ予測装置の使用回数が多くなるに従い、予測演算処理を行うニューラルネットワークのパラメータ値がユーザの使用環境に特化され、更に、このパラメータ値を記憶しておくことでパラメータ値を最適化するまでの時間が短縮できるので、個人に応じた最適な手ぶれ振動の補正が可能となるというメリットがある。
【図面の簡単な説明】
【図1】本発明に係る手ぶれ信号予測装置の基本的な構成を略示的に示したブロック図である。
【図2】図1に示す手ぶれ信号予測装置における手ぶれ振動のサンプリングについて説明するための説明図である。
【図3】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの概略構成を示したブロック図である。
【図4】図1に示す手ぶれ信号予測装置の動作を説明するためのフローチャートである。
【図5】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの動作を説明するための説明図である。
【図6】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの動作を説明するための説明図である。
【図7】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの動作を説明するための説明図である。
【図8】図1に示す手ぶれ信号予測装置において、ニューラルネットワークの処理速度を向上させるときの各層ユニットの入力−出力の関係を示したグラフである。
【図9】図1に示す手ぶれ予測装置を用いて、ニューラルネットワークにおける処理速度を向上するための構成例を示したブロック図である。
【図10】本願発明に関する手ぶれ予測装置における第2の実施例の概略構成を示したブロック図である。、
【図11】図10に示す手ぶれ予測装置の動作を説明するためのフローチャートである。
【符号の説明】
100;手ぶれ信号検出部、110;手ぶれ信号記憶部、120;手ぶれ信号予測部(ニューラルネットワーク)
121/121A;入力層ユニット、122/122A;隠れ層ユニット、123/123A;出力層ユニット、
100A;手ぶれ信号検出部、110A;手ぶれ信号記憶部、120A;手ぶれ信号予測部(ニューラルネットワーク)、130;パラメータ記憶部、140;予測誤差評価部
【発明の属する技術分野】
本発明は、手ぶれ信号予測装置及び撮像機器に関するものである。詳しくは、撮影者の手ぶれによる振動をリアルタイムに予測して撮像する画像を補正できるようにした手ぶれ信号予測装置及び撮像機器に関するものである。
【0002】
【従来の技術】
従来の撮像装置において、撮影者の手ぶれによる振動で画質が劣化することを防ぐ為の方法が種々考案されている。これらの方法は、手ぶれによる振動を信号として検出する機構、いわゆる、手ぶれ信号を検出する機構として角速度センサを備えていたり、動画を撮像する装置では、撮像した各時間の画像データを比較し、手ぶれ振動として認識される画像データの変化分を抽出するベクトル検出方式と呼ばれる機構を備え、この抽出した画像データの変化分を光学的、電子的に打ち消すことにより画質の劣化を防止(補正)している。
【0003】
手ぶれ振動を打ち消した画像を得る為には、露光と同時間で手ぶれ振動に対する補正信号(以下、手ぶれ補正信号と云う)が必要となるが、角速度センサ等のセンサ類を用いている場合、ノイズ除去フィルタ等の影響により手ぶれ信号の検出に遅延が生じてしまう。
【0004】
また、べクトル検出方式の場合は、手ぶれ振動として認識される画像データの変化分、いわゆる、手ぶれ信号を得るためには、露光して取り込んだ画像を信号処理した後に画像データを比較するため、手ぶれ信号の検出に遅延が生じてしまう。
【0005】
このように、実際に得られる手ぶれ補正信号は、撮像した画像に対して時間的に遅れたものとなってしまうため、撮像した画像全体を一旦記憶装置に保存しておき、手ぶれ補正信号を得た後に記憶装置から手ぶれを打ち消した(補正した)画像を切り出すという方法により画質の劣化を防止(補正)している。
【0006】
しかし、撮像した画像全体を一旦記憶装置に保存するため、現在撮像している画像に対する手ぶれ振動を補正することはできない。そこで、画像を撮像した時点で、次の手ぶれ振動を予測し、画質の劣化をリアルタイムで補正するという方法がある。
【0007】
次の手ぶれ振動を予測する方法は、発生する手ぶれ振動を手ぶれ信号としてサンプリングして記憶し、記憶した手ぶれ信号に対して適切な予測演算処理を施すことで、次に発生する手ぶれ振動の予測値を算出し、この予測値に基づいて制御を行うことで、手ぶれによる振動の影響を抑えた露光動作を可能とし、画質の劣化をリアルタイムで補正するものである(例えば、特許文献1参照。)。
【0008】
【特許文献1】
特許3238449号公報(第3頁、図1)
【0009】
【発明が解決しようとする課題】
しかしながら、上述したような次の手ぶれ振動を予測する方法では、手ぶれによる振動が複雑な動きをするため、予測演算処理が複雑で演算量が多くなり、様々な状況の手ぶれ振動に適応するまでに時間がかかるというような問題がある。
【0010】
従って、簡単な回路構成で、且つ、様々な状況の手ぶれ振動に素早く適応し、精度の高い予測値をリアルタイムで得ることができるようにすること、に解決しなければならない課題を有する。
【0011】
【課題を解決するための手段】
前記課題を解決するため、本発明に係る手ぶれ信号予測装置及び撮像機器は次のような構成にすることである。
【0012】
(1)所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、を備えた手ぶれ信号予測装置。
(2)手ぶれによる振動量を予測する手ぶれ信号予測部を備え、該手ぶれ信号予測部から出力される予測手ぶれ信号を用いて撮像する画像を補正できる撮像機器であって、前記手ぶれ信号予測部は、所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、を具備していることを特徴とする撮像機器。
【0013】
(3)所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、前記予測値演算手段のニューラルネットワークに設定するパラメータ値を記憶しておくパラメータ記憶手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号と前記予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、該検出した誤差に基づいて前記予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、該選択したパラメータ値を前記パラメータ記憶手段に記憶させる予測誤差評価手段と、を具備している手ぶれ信号予測装置。
(4)前記予測値演算手段は、前記ニューラルネットワークに前記パラメータ記憶手段に記憶してある全てのパラメータ値を順次設定して次の手ぶれ信号の予測値を順次算出し、該設定した全てのパラメータ値の中から前記予測誤差評価手段で選択されたパラメータ値をニューラルネットワークに再度設定してから次の手ぶれ信号の予測値を算出することを特徴とする(3)に記載の手ぶれ信号予測装置。
【0014】
(5)手ぶれによる振動量を予測する手ぶれ信号予測部を備え、該手ぶれ信号予測部から出力される予測手ぶれ信号を用いて撮像する画像を補正できる撮像機器であって、前記手ぶれ信号予測部は、所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、前記予測値演算手段のニューラルネットワークに設定するパラメータ値を記憶しておくパラメータ記憶手段と、前記手ぶれ信号検出手段で検出した手ぶれ信号と前記予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、該検出した誤差に基づいて前記予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、該選択したパラメータ値を前記パラメータ記憶手段に記憶させる予測誤差評価手段と、を具備していることを特徴とする撮像機器。
(6)前記予測値演算手段は、前記ニューラルネットワークに前記パラメータ記憶手段に記憶してある全てのパラメータ値を順次設定して次の手ぶれ信号の予測値を順次算出し、該設定した全てのパラメータ値の中から前記予測誤差評価手段で選択されたパラメータ値をニューラルネットワークに再度設定してから次の手ぶれ信号の予測値を算出することを特徴とする(5)に記載の撮像機器。
【0015】
このような手ぶれ信号予測装置及び撮像機器の構成において、予測値演算手段のニューラルネットワークにより、手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づいて、自己に設定してあるパラメータ値を修正し、修正したパラメータ値によって前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出し、算出した予測値に基づいて予測手ぶれ信号を生成して出力するので、簡単な回路構成で様々な手ぶれ振動に適応した精度の良い予測をリアルタイムに実現することができる。
【0016】
更に、予測誤差評価手段によって手ぶれ信号検出手段で検出した手ぶれ信号と予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、検出した誤差に基づいて予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、選択したパラメータ値をパラメータ記憶手段に記憶させることにより、予測演算処理を行うニューラルネットワークのパラメータ値がユーザの使用環境に特化され、また、ニューラルネットワークのパラメータ値を最適化するまでの時間が短縮できるので、様々な手ぶれ振動に素早く適応することができる。
【0017】
【発明の実施の形態】
次に、本発明に係る手ぶれ信号予測装置及び撮像機器の実施の形態を図面を参照して説明する。但し、図面は専ら解説のためのものであって、本発明の技術的範囲を限定するものではない。
【0018】
まず、第1の実施例として、ニューラルネットワークを用いた手ぶれ信号予測装置の基本的な構成及び動作について説明する。
【0019】
図1は、ニューラルネットワークを用いて手ぶれ信号を予測する手ぶれ信号予測装置の概略構成を示すブロック図であり、手ぶれ信号検出部100、手ぶれ信号記憶部110、手ぶれ信号予測部120とから構成される。
【0020】
手ぶれ信号検出部100は、図2に示すような所定時間ごとに手ぶれによる振動量(以下、手ぶれ量と云う)をサンプリングしたサンプル値(図2の黒点)、いわゆる、手ぶれ信号を検出し、手ぶれ信号記憶部110に送る。なお、サンプリングの時間間隔は、手ぶれ信号の周波数(手ぶれ振動の周期)に対して十分に短い時間とする。
【0021】
手ぶれ信号記憶部110は、例えば、FIFO(First In FirstOut)スタックメモリの様なメモリを備えており、手ぶれ信号検出部100でサンプリングされたサンプル値(以下、最新の手ぶれ信号)及びニューラルネットワークの入力値として必要となる数の過去のサンプル値(以下、過去の手ぶれ信号)を記憶しておくと共に、記憶している最新及び過去の手ぶれ信号を手ぶれ信号予測部120に送出する。
【0022】
ここで、ニューラルネットワークの入力として必要な過去の手ぶれ信号の数は、6〜8個の程度を用いれば十分精度のよい予測ができるので、手ぶれ信号記憶部110には、過去の手ぶれ信号を6〜8個分記憶しておけばよい。
【0023】
手ぶれ信号予測部120は、三層パーセプトロンと呼ばれる構成のニューラルネットワーク(neural network)を備え、手ぶれ信号記憶部110に記憶してある最新の手ぶれ信号及び過去の手ぶれ信号を入力値とするとともに、手ぶれ信号予測部120の最新の出力信号を自己にフィードバックして入力値とし、この入力値とニューラルネットワークの出力値とに基づいて、入力と出力の対応関係を学習し、ニューラルネットワークに設定するパラメータ値を変化させ、適切な予測手ぶれ信号を生成して出力する。
【0024】
ここで、三層パーセプトロンで構成されるニューラルネットワークについて説明する。図3は、手ぶれ信号予測部120の三層パーセプトロンによるニューラルネットワークの構成を略示的に示したものである。
【0025】
三層パーセプトロンによるニューラルネットワークは、入力層ユニット121、隠れ層(中間層)ユニット122、出力層ユニット123の順で配置された階層構造となっており、各ユニット121〜123には、それぞれ所定数のニューロンと呼ばれる信号処理エレメントが配置されている。
【0026】
入力層ユニット121には、入力信号P(n)、P(n−1)・・・P(n−(k−2))、P(n−(k−1))からなる入力パターンA(n)に応じた数のニューロンS1、S2、・・・Sk−1、Skが配置され、各ニューロンの出力側は、隠れ層ユニット122に配置されているニューロンh1〜hx全ての入力側にそれぞれ接続されている。
【0027】
なお、入力層ユニット121を構成するニューロンの数は手ぶれ信号記憶部110で保持する手ぶれ信号の数と同数とする。
【0028】
隠れ層ユニット122には、ニューロンh1〜hxが配置され、各ニューロンh1〜hxの入力側には、入力層ユニット121のニューロンS1〜Skそれぞれの出力側が接続されており、各ニューロンh1〜hxの出力側は、出力層ユニット123のニューロンRの入力側に接続される。
【0029】
なお、隠れ層ユニット122のニューロン数は、ニューラルネットワークの汎化能力や、ある入力パターンベクトルに対する出力の精度へ影響する為、例えば、手ぶれ信号の予測する場合、入力層ユニット121のニューロン数が8個であれば、隠れ層ユニット122のニューロン数は、5個程度で十分な性能である。
【0030】
出力層ユニット123のニューロンRの入力側には、隠れ層ユニット122のニューロンh1〜hxの出力側が全て接続されており、隠れ層ユニット122のニューロンh1〜hxからの信号に応じた出力信号が出力される。
【0031】
各ユニット121〜123に配置されているそれぞれのニューロンは、入力信号と出力信号の関係の応じて変化する結合係数、いわゆる、パラメータ値が設定されており、入力信号に対し、前回の出力信号(出力値)に応じて設定されるパラメータ値を乗じ、その総和(以下、ネット値)を算出して所定の出力関数へ入力することで得られる出力信号(出力値)を出力する。
【0032】
各ニューロンの出力信号は、数式1に基づいた出力値が出力される。
【0033】
【数1】
【0034】
続いて、図3のような三層パーセプトロンによるニューラルネットワークの動作について説明する。
【0035】
まず、入力層ユニット121に入力信号P(n)、P(n−1)・・・P(n−(k−2))、P(n−(k−1))からなる入力パターンA(n)が入力されると、各ニューロンS1、S2、・・・Sk−1、Skは、それぞれの入力信号(入力値)に対し、所定のパラメータ値を乗じてネット値を算出して所定の出力関数へ入力することで得られる出力信号(出力値)を、隠れ層ユニット122の各ニューロンh1〜hxそれぞれ全てに送出する。
【0036】
隠れ層ユニット122の各ニューロンh1〜hxは、入力層ユニット121の各ニューロンS1〜Skから送出されてきた出力信号(出力値)に対し、所定のパラメータ値を乗じてネット値を算出して所定の出力関数へ入力することで得られるそれぞれの出力信号(出力値)を、出力層ユニット123のニューロンRに送出する。
【0037】
出力層ユニット123のニューロンRは、隠れ層ユニット122の各ニューロンS1〜Skから送出されてきた出力信号(出力値)に対し、所定のパラメータ値を乗じてネット値を算出して所定の出力関数へ入力することで得られる出力信号P’(n+1)を出力する。
【0038】
そして、各層ユニット121〜123のそれぞれのニューロンは、この出力信号P’(n+1)と次の入力信号P(n+1)に基づいて現在設定されているパラメータ値を修正し、この修正したパラメータ値によって入力信号P(n+1)、P(n)・・・P(n−(k−3))、P(n−(k−2))からなる入力パターンA(n+1)に対する出力値を算出し、出力信号として出力する。
【0039】
次に、上述したようなニューラルネットワークを用いた手ぶれ信号予測装置の動作について図4を参照しながら説明する。
【0040】
まず、手ぶれ信号検出部100は、所定時間毎に手ぶれによる振動量をサンプリングすることにより手ぶれ信号P(n)を検出し、検出した手ぶれ信号を最新の手ぶれ信号として手ぶれ信号記憶部110に送る(ST100)。
【0041】
手ぶれ信号記憶部110は、手ぶれ信号検出部100からの最新の手ぶれ信号P(n)を記憶するとともに、手ぶれ信号予測部120に送出する(ST110)。
【0042】
手ぶれ信号予測部120では、最新の手ぶれ信号P(n)を教師信号(入力データに対して理想的と考えられる出力)とし、図5に示すように、手ぶれ信号記憶部110のスタックメモリに記憶してある過去の手ぶれ信号P(n−1)、P(n−2)・・・P(n−k)からなる入力パターンA(n−1)をニューラルネットワークに入力し、その出力結果と教師信号とをバックプロパゲーションアルゴリズムに基づいて比較し、その誤差をできる限り小さくなるように各ニューロン(S1〜Sk、h1〜hx、R)のパラメータ値の修正を行う、即ち、ニューラルネットワークによる学習を行う(ST120)。
【0043】
次に、手ぶれ信号記憶部110のスタックメモリでは、図5に示すように、過去の手ぶれ信号の最も古い手ぶれ信号P(n−k)を破棄して、最新の手ぶれ信号P(n)をスタックメモリに追加する(ST130)。
【0044】
続いて、手ぶれ信号予測部120は、手ぶれ信号記憶部110のスタックメモリに追加された最新の手ぶれ信号P(n)及び過去の手ぶれ信号P(n−1)、P(n−2)・・・P(n−(k−1))からなる新たな入力パターンA(n)をニューラルネットワークに入力する(ST140)。
【0045】
ニューラルネットワークの各ニューロン(S’1〜S’k、h’1〜h’x、R’)には、上述の学習によって修正されたパラメータ値が設定されており、図7に示すように、入力信号である入力パターンA(n)を入力層ユニット121、隠れ層ユニット122、出力層ユニット123の順に伝達していくと、この修正されたパラメータ値に基づいて次の手ぶれ信号の予測値P’(n+1)が算出される(ST150)。
【0046】
そして、手ぶれ信号予測部120は、この予測値P’(n+1)に基づいて予測手ぶれ信号を生成して出力する(ST160)。
【0047】
上述した動作を繰り返すことにより、新たな手ぶれ信号を検出するたびにニューラルネットワークが学習を行い、学習するたびに、更に最適な予測値を求めることができるようになっていく。なお、手ぶれ信号をサンプリングする間隔が1/60[s]以下という短い時間なので、十分精度の良い予測をすることが可能である。
【0048】
なお、手ぶれ補正機能を備えた撮像機器では、一般的に撮像機器に対する垂直方向、水平方向の二種類の手ぶれ信号を検出しているので、図3に示すようなニューラルネットワークを垂直方向及び水平方向それぞれに1個ずつ設ける。
【0049】
ところで、このようなニューラルネットワークを用いて手ぶれ信号の予測は可能であるが、実際の撮像機器における手ぶれ予測装置で手ぶれ振動を予測する場合、ニューラルネットワークの演算量が多くなり、予測誤差が収束する、言い換えると、最適なパラメータ値となるまでの処理時間が長くなる。そこで、以下に示すような方法でこれを改善する。
【0050】
[方法1]
一般的なニューラルネットワークの学習アルゴリズムでは、ニューラルネットワークのパラメータ値(結合荷重)の初期値をランダムに設定する。しかし、ランダムな結合荷重から予測誤差が収束するまでには非常に多い学習回数が必要となる。そこで、装置を使用する個人別、使用環境別に手ぶれを学習させたニューラルネットワークのパラメータ値を保存しておき、これを初期値として用いる様にする。
【0051】
このようにすることで、実際に予測させる手ぶれ振動と、初期値を作成する時に学習させた手ぶれ信号の特徴が異なる場合であっても、パラメータが最適値に収束するまでの時間(学習回数)が少なくする。
【0052】
[方法2]
上記[方法1]と同様に、事前に複数の個人、複数の環境においてニューラルネットワークの学習を行い、複数のパラメータ値(学習済み結合荷重)を装置に記憶しておく。そして、新たに手ぶれを予測する際、記憶してある複数のパラメータ値を順次ニューラルネットワークに設定し、ぞれぞれのパラメータ値を用いて手ぶれ振動の予測を一定時間を行い、その中で予測誤差の最も少なかったパラメータ値を再度ニューラルネットワークに設定して改めて手ぶれ振動の予測を開始する。
【0053】
方法2では、事前に記憶しているパラメータ値の特徴が、新たに手ぶれ振動を予測するときに用いる最適なパラメータ値である可能性が高く、パラメータが最適値に収束するまでの時間、言い換えると、ニューラルネットワークの学習回数が少なくなる。
【0054】
[方法3]
ベクトル検出方式によって検出された手ぶれ信号は、露光した画像一枚につき、一つの手ぶれ信号しか得られないので、ニューラルネットワークへの入力値を定める場合、入力パターン(図3参照)が完全に一致する確率は極めて小さく、特定の入力パターンに対する特定の出力(以下、入出力パターンという)に対し何度も学習すると、汎化能力は落ちてしまうので、一つの入出力パターンに対して学習回数を1回とすることが望ましい。
【0055】
ところが、このようにすると手ぶれ信号を一つ得る毎に(つまりは露光する毎に)一度しか学習しないことになり、ニューラルネットワークの学習に必要な学習回数(予測誤差が収束するまでの時間)を満たす為に長い時間がかかってしまう。
【0056】
そこで、一つの入出力パターンに対し学習回数を2〜3回とすることで、予測処理能力にはほとんど影響することなく、ニューラルネットワークの学習によって予測誤差が収束するまでにかかる時間(必要なサンプリング数)を少なくすることができる。
【0057】
[方法4]
小型の撮像機器に搭載されている演算処理装置において、一般的に、浮動小数点型の演算の方が、整数型の演算よりも処理時間がかかる。また、浮動小数点型での演算では、指数関数の演算処理にかなりの処理時間が必要になる。
【0058】
そこで、演算処理装置におけるニューラルネットワークの演算処理を、数式2で示すような置き換えにより、整数型で演算処理するようにする。
【0059】
【数2】
【0060】
また、上述した数式1において、ニューロンの出力f(net)と入力の総和netとの関係は、一般的にシグモイド関数が用いられ、滑らかなS字曲線状のグラフとなるが、このグラフを図8のように線形で近似したS字形のグラフとなるようにニューラルネットワークを設定することで、ニューラルネットワークの処理速度を向上させることができる。
【0061】
図8に示すグラフは、数式1における定数β=1.0としたときの線形で近似したグラフであり、その時のf(net)は、次のような値をとる。
【0062】
f(net)= 1.0 [12.0<net]
f(net)= 0.993 + 0.001(net−5.0) [5.0<net≦12.0]
f(net)= 0.731 + 0.0656(net−1.0) [1.0<net≦5.0]
f(net)= 0.269 + 0.2310(net+1.0) [−1.0<net≦1.0]
f(net)= 0.007 + 0.0656(net+5.0) [−12.0<net≦−5.0]
f(net)= 0.0 [net<−12.0]
【0063】
なお、バックプロパゲーションのアルゴリズムによりニューラルネットワークが学習をする際、図8のグラフにおける出力f(net)の傾きが必要となってくるが、入力の総和が「net<−12.0」及び「12.0<net」の場合、f(net)の傾きが0になってしまい、一定以上収束が進まなくなることがある。
【0064】
そこで、入力の総和が「net<−12.0」及び「12.0<net」において、上述した数式2で表すことのできる傾きが0より大きな値のうち、最小である値をf(net)の傾きとする。
【0065】
[方法5]
図9に示すように、手ぶれ振動を予測するため、垂直方向及び水平方向に対してそれぞれ1個ずつ設けるニューラルネットワークを一つのニューラルネットワークで構成する。
【0066】
図9のニューラルネットワークは、入力層ユニット121A、隠れ層ユニット122A、出力層ユニット123Aの順で配置された階層構造となっており、各ユニット121A〜123Aには、それぞれ所定数のニューロンと呼ばれる信号処理エレメントが配置されている。
【0067】
入力層ユニット121Aには、検出する垂直方向の手ぶれ信号Pp(n)・・・Pp(n−(k−2))、Pp(n−(k−1))と同数のニューロンSp1、Sp2、・・・Spk−1、Spkが配置され、また、検出する水平方向の手ぶれ信号Py(n)・・・Py(n−(k−2))、Py(n−(k−1))と同数のニューロンSy1、Sy2、・・・Syk−1、Sykが配置されており、各ニューロンの出力側は、隠れ層ユニット122Aに配置されているニューロンh1〜hx全ての入力側に接続されている。
【0068】
隠れ層ユニット122Aには、ニューロンh1〜hxが配置され、各ニューロンh1〜hxの入力側には、入力層ユニット121Aの垂直方向の手ぶれ信号に関するニューロンSp1〜Spk及び水平方向の手ぶれ信号に関するニューロンSy1〜Sykそれぞれの出力側全てが接続されており、各ニューロンh1〜hxの出力側は、出力層ユニット123AのニューロンRp及びニューロンRyの入力側にそれぞれ接続される。
【0069】
出力層ユニット123のニューロンRp及びニューロンRyの各入力側には、隠れ層ユニット122のニューロンh1〜hxの出力側が全て接続されており、隠れ層ユニット122のニューロンh1〜hxからの出力信号に応じて、垂直方向の手ぶれ信号の予測値P’p(n+1)と、水平方向の手ぶれ信号の予測値P’y(n+1)を出力する。
【0070】
各ユニット121A〜123Aに配置されているそれぞれのニューロンは、入力信号と出力信号の関係の応じて変化する結合係数、いわゆる、パラメータ値が設定されており、入力信号に対し、前回の出力信号(出力値)に応じて設定されるパラメータ値を乗じ、その総和(以下、ネット値)を算出して所定の出力関数へ入力することで得られる出力信号(出力値)を出力する。
【0071】
図9のニューラルネットワークの動作は、上述の図3で説明したニューラルネットワークと同様であるのでその説明は省略する。
【0072】
このように、垂直方向及び水平方向の手ぶれ信号の間に相関性があるならば、独立した2つのニューラルネットワークで予測を行うよりもその学習の効果が高まり、ニューラルネットワークによる予測の精度を向上させることができる。
【0073】
上述した[方法1]〜[方法5]を用いて、手ぶれ信号予測部120のニューラルネットワークによる予測の処理速度と精度を上げることにより、手ぶれ振動による画質の劣化をリアルタイムで補正することができる。
【0074】
次に、第2の実施例である手ぶれ信号予測装置について説明する。第2の実施例の手ぶれ信号予測装置では、第1の実施例で示した手ぶれ信号予測装置(図1参照)にパラメータ記憶部、予測誤差評価部を設け、予測手ぶれ信号と実際の手ぶれ信号との誤差を評価し、その時の最適なパラメータ値を記憶しておくことで、パラメータの設定時間を短縮できるようにしたものである。
【0075】
図10に示す手ぶれ信号予測装置は、手ぶれ信号検出部100A、手ぶれ信号記憶部110A、手ぶれ信号予測部120A、パラメータ記憶部130、予測誤差評価部140から構成される。
【0076】
手ぶれ信号検出部100Aは、図2に示すような所定時間ごとに手ぶれによる振動量(以下、手ぶれ量と云う)をサンプリングしたサンプル値(図2の黒点)、いわゆる、手ぶれ信号を検出し、手ぶれ信号記憶部110Aと予測誤差評価部140に送る。なお、サンプリングの時間間隔は、手ぶれ信号の周波数(手ぶれ振動の周期)に対して十分に短い時間とする。
【0077】
手ぶれ信号記憶部110Aは、例えば、FIFO(First In FirstOut)スタックメモリの様なメモリを備えており、手ぶれ信号検出部100でサンプリングされたサンプル値(以下、最新の手ぶれ信号)及びニューラルネットワークの入力値として必要となる数の過去のサンプル値(以下、過去の手ぶれ信号)を記憶しておくと共に、記憶している最新及び過去の手ぶれ信号を手ぶれ信号予測部120Aに送出する。
【0078】
ここで、ニューラルネットワークの入力として必要な過去の手ぶれ信号の数は、6〜8個の程度を用いれば十分精度のよい予測ができるので、手ぶれ信号記憶部110Aには、過去の手ぶれ信号を6〜8個分記憶しておけばよい。
【0079】
手ぶれ信号予測部120Aは、上述した第1の実施例と同様、三層パーセプトロンと呼ばれる構成のニューラルネットワーク(neural network)を備え、手ぶれ信号記憶部110Aに記憶してある最新の手ぶれ信号及び過去の手ぶれ信号を入力値とするとともに、最新の出力信号を自己にフィードバックして入力値とし、この入力値とニューラルネットワークの出力値とに基づいて、入力と出力の対応関係を学習し、ニューラルネットワークに設定するパラメータ値を変化させ、適切な予測手ぶれ信号を生成して出力する。
【0080】
また、装置で予測値の算出を開始するとき、パラメータ記憶部130からパラメータセットを順次取得してニューラルネットワークに設定し、予測誤差評価部140において、誤差が最も小さい予測手ぶれ信号が出力されたときに設定していたパラメータセットをパラメータ記憶部130から取得してニューラルネットワークに再度設定する。
【0081】
なお、ニューラルネットワークの構成および動作については第1の実施例と同じであるので詳細な説明を省略する。
【0082】
パラメータ記憶部130は、不揮発メモリなどであり、ニューラルネットワークに最適なパラメータ値の組み合わせデータであるパラメータセットを複数個(複数セット)記憶しており、装置の起動時(電源投入時)など、手ぶれ信号の予測を開始するときに、記憶してあるパラメータセットを手ぶれ信号予測部120Aに順次送出し、予測誤差評価部140に従って、誤差が最も小さい予測手ぶれ信号が出力されたときにニューラルネットワークに設定していたパラメータセットを手ぶれ信号予測部120Aに送出する。
【0083】
また、予測誤差評価部140に従って、手ぶれ信号予測部120Aのニューラルネットワークに設定されているパラメータ値(パラメータセット)を適宜記憶する。
【0084】
予測誤差評価部140は、手ぶれ信号予測部120Aから出力される予測手ぶれ信号と手ぶれ信号検出部100Aで検出した実際の(最新の)手ぶれ信号との誤差を検出し、ニューラルネットワークに設定されているパラメータ値の評価を行い、誤差が最小である最適なパラメータ値を適宜パラメータ記憶部130に記憶させる。
【0085】
また、手ぶれ信号予測装置が起動した時、ニューラルネットワークに対する最適なパラメータセットを選択するため、パラメータ記憶部130のパラメータセットに基づき手ぶれ信号予測部120Aから順次出力される予測手ぶれ信号と、手ぶれ信号検出部100Aで検出した実際の手ぶれ信号との誤差を検出し、最小誤差となったパラメータセットをパラメータ記憶部130に通知する。
【0086】
続いて、このような構成からなる手ぶれ信号予測装置の動作について、図11のフローチャートを参照しながら説明する。
【0087】
手ぶれ信号予測装置を起動して手ぶれ信号の予測を開始すると、まず、ニューラルネットワーク部120Aのニューラルネットワークに対する最適なパラメータ値の選択を始める(ST200)。
【0088】
パラメータセットの番号k(k;1〜nの整数)と、ニューラルネットワークに前回設定していたパラメータ値による予測手ぶれ信号の誤差Errを初期化設定する(ST201)。
【0089】
次に、手ぶれ信号予測部120Aは、パラメータ記憶部130に記憶してあるパラメータセットの番号k(k;1〜nの整数)のパラメータ値Akをニューラルネットワークに設定(入力)する(ST202)。
【0090】
手ぶれ信号予測部120Aにパラメータ値Akが設定されると、手ぶれ信号検出部100Aは所定時間ごとに手ぶれ信号を検出し、検出した手ぶれ信号を手ぶれ信号記憶部110Aと予測誤差評価部140に送る(ST203)。
【0091】
手ぶれ信号記憶部110Aは、手ぶれ信号検出部100で検出した最新の手ぶれ信号を記憶するとともに、この手ぶれ信号を手ぶれ信号予測部120Aに送出する(ST203)。
【0092】
手ぶれ信号予測部120Aでは、ニューラルネットワークに設定したパラメータ値Akに基づいて予測手ぶれ信号を生成して出力するとともに、この予測手ぶれ信号を予測誤差評価部140に送出する(ST204)。
【0093】
予測誤差評価部140では、手ぶれ信号検出部100Aで実際に検出した手ぶれ信号と手ぶれ信号予測部120Aで生成された予測手ぶれ信号との誤差を検出し、所定の時間内(例えば、60個分のサンプリング値を得るために必要な時間程度)において得た誤差の絶対値を積分して誤差Ekを算出する(ST205)。
【0094】
そして、前回ニューラルネットワークに設定したパラメータ値における誤差Errと、現在ニューラルネットワークに設定しているパラメータ値における誤差Ekとを比較する(ST206)。
【0095】
誤差Ek<誤差Errである場合は、現在ニューラルネットワークに設定しいるパラメータセットの番号k(k;1〜nの整数)のパラメータ値Akを最適なパラメータ値とし、そのパラメータセットの番号kを最適なパラメータセットの番号kbestとする。また、このときの誤差Ekを誤差Errとしてセットすし、手ぶれ信号記憶部110Aに次のパラメータセットがあるか否かを判別する処理へ移行する(ST207→ST208)。
【0096】
もし、誤差Ek>誤差Errである場合は、手ぶれ信号記憶部110Aに次のパラメータセットがあるか否かを判別する処理へ移行する(ST206→ST208)。
【0097】
手ぶれ信号記憶部110Aに、次のパラメータセットがある場合は、パラメータセットの番号k(k;1〜nの整数)をインクリメントする(ST209)。
【0098】
そして、手ぶれ信号予測部120Aは、パラメータ記憶部130に記憶してある次のパラメータセットの番号k(k;1〜nの整数)のパラメータ値Akをニューラルネットワークに設定し、上述した動作を繰り返し行い、これを全てのパラメータセットで行う。(ST209→ST202→・・・)。
【0099】
全てのパラメータセットについての誤差Ekの評価が完了すると、最適なパラメータセットの番号kbestに設定してある番号のパラメータセットをパラメータ記憶部130から読み出して、手ぶれ信号予測部120Aのニューラルネットワークに再設定する(ST208→ST220)。
【0100】
これによって、手ぶれ信号予測部120Aのニューラルネットワークには、現時点における最適なパラメータ値Akbestが設定される(ST220)。
【0101】
手ぶれ信号予測部120Aに最適なパラメータ値Akbestが設定されると、手ぶれ信号の予測を再開し、手ぶれ信号検出部100Aは所定時間ごとに手ぶれ信号を検出し、手ぶれ信号記憶部110Aと予測誤差評価部140に送る(ST221)。
【0102】
手ぶれ信号記憶部110Aは、手ぶれ信号検出部100Aで検出した最新の手ぶれ信号を記憶するとともに、最新の手ぶれ信号及び過去の手ぶれ信号を手ぶれ信号予測部120Aに送出する(ST222)。
【0103】
手ぶれ信号予測部120Aは、最新の手ぶれ信号に基づいてニューラルネットワークに設定したパラメータ値を修正し、修正したパラメータ値によって予測手ぶれ信号を生成して出力するとともに、この予測手ぶれ信号を予測誤差評価部140に送出する(ST223)。
【0104】
予測誤差評価部140では、手ぶれ信号検出部100Aで実際に検出した手ぶれ信号と手ぶれ信号予測部120Aで生成された予測手ぶれ信号との誤差を検出し、所定の時間内において得た誤差の絶対値を積分して誤差Ekを算出する(ST224)。
【0105】
そして、最適値として設定したパラメータ値による誤差Errと修正したパラメータ値による誤差Eとを比較する(ST225)。
【0106】
誤差E<誤差Errである場合は、現在ニューラルネットワークに設定されている修正したパラメータ値を最適なパラメータ値として手ぶれ信号記憶部110Aに記憶し、このときの誤差Eを誤差Errにセットする(ST225→ST226)。
【0107】
そして、再び手ぶれ信号検出部100Aで次の手ぶれ信号を検出し、上述した処理を繰り返し行う(ST226→ST221→・・・)。
【0108】
誤差Ek>誤差Errである場合は、最適値として設定したパラメータ値はそのままとし、誤差Errも現状のままとし、再び手ぶれ信号検出部100Aで次の手ぶれ信号を検出し、上述した処理を繰り返し行う(ST225→ST221→・・・)。
【0109】
このような手ぶれ信号予測装置によれば、ニューラルネットワークが学習するたびにパラメータの初期値が更に最適化され、ニューラルネットワークに最適なパラメータ値がセットされるまでの時間が短縮される。
【0110】
【発明の効果】
以上説明したように、手ぶれ振動の予測にニューラルネットワークを用いることで個人差や使用環境によって異なる手ぶれ振動に対して精度の良い予測を簡単な回路構成で実現することができるので、手ぶれ補正機能を低コストで導入することができるという極めて優れた効果を奏するものである。
【0111】
また、手ぶれ予測装置の使用回数が多くなるに従い、予測演算処理を行うニューラルネットワークのパラメータ値がユーザの使用環境に特化され、更に、このパラメータ値を記憶しておくことでパラメータ値を最適化するまでの時間が短縮できるので、個人に応じた最適な手ぶれ振動の補正が可能となるというメリットがある。
【図面の簡単な説明】
【図1】本発明に係る手ぶれ信号予測装置の基本的な構成を略示的に示したブロック図である。
【図2】図1に示す手ぶれ信号予測装置における手ぶれ振動のサンプリングについて説明するための説明図である。
【図3】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの概略構成を示したブロック図である。
【図4】図1に示す手ぶれ信号予測装置の動作を説明するためのフローチャートである。
【図5】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの動作を説明するための説明図である。
【図6】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの動作を説明するための説明図である。
【図7】図1に示す手ぶれ信号予測装置における手ぶれ信号予測部のニューラルネットワークの動作を説明するための説明図である。
【図8】図1に示す手ぶれ信号予測装置において、ニューラルネットワークの処理速度を向上させるときの各層ユニットの入力−出力の関係を示したグラフである。
【図9】図1に示す手ぶれ予測装置を用いて、ニューラルネットワークにおける処理速度を向上するための構成例を示したブロック図である。
【図10】本願発明に関する手ぶれ予測装置における第2の実施例の概略構成を示したブロック図である。、
【図11】図10に示す手ぶれ予測装置の動作を説明するためのフローチャートである。
【符号の説明】
100;手ぶれ信号検出部、110;手ぶれ信号記憶部、120;手ぶれ信号予測部(ニューラルネットワーク)
121/121A;入力層ユニット、122/122A;隠れ層ユニット、123/123A;出力層ユニット、
100A;手ぶれ信号検出部、110A;手ぶれ信号記憶部、120A;手ぶれ信号予測部(ニューラルネットワーク)、130;パラメータ記憶部、140;予測誤差評価部
Claims (6)
- 所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、
前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、
前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、
前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、
を備えた手ぶれ信号予測装置。 - 手ぶれによる振動量を予測する手ぶれ信号予測部を備え、該手ぶれ信号予測部から出力される予測手ぶれ信号を用いて撮像する画像を補正できる撮像機器であって、
前記手ぶれ信号予測部は、
所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、
前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、
前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、
前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、を具備していること
を特徴とする撮像機器。 - 所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、
前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、
前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、
前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、
前記予測値演算手段のニューラルネットワークに設定するパラメータ値を記憶しておくパラメータ記憶手段と、
前記手ぶれ信号検出手段で検出した手ぶれ信号と前記予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、該検出した誤差に基づいて前記予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、該選択したパラメータ値を前記パラメータ記憶手段に記憶させる予測誤差評価手段と、
を具備している手ぶれ信号予測装置。 - 前記予測値演算手段は、前記ニューラルネットワークに前記パラメータ記憶手段に記憶してある全てのパラメータ値を順次設定して次の手ぶれ信号の予測値を順次算出し、該設定した全てのパラメータ値の中から前記予測誤差評価手段で選択されたパラメータ値をニューラルネットワークに再度設定してから次の手ぶれ信号の予測値を算出すること
を特徴とする請求項3に記載の手ぶれ信号予測装置。 - 手ぶれによる振動量を予測する手ぶれ信号予測部を備え、該手ぶれ信号予測部から出力される予測手ぶれ信号を用いて撮像する画像を補正できる撮像機器であって、
前記手ぶれ信号予測部は、
所定時間毎に手ぶれによる振動量を手ぶれ信号として検出する手ぶれ信号検出手段と、
前記手ぶれ信号検出手段で検出した手ぶれ信号を記憶する手ぶれ信号記憶手段と、
前記手ぶれ信号検出手段で検出した最新の手ぶれ信号に基づき自己に設定してあるパラメータ値を修正し、該修正したパラメータ値を用いて前記手ぶれ信号記憶手段に記憶してある手ぶれ信号から次の手ぶれ信号の予測値を算出するニューラルネットワークを備えた予測値演算手段と、
前記予測値演算手段で算出した予測値に基づいて予測手ぶれ信号を生成して出力する予測手ぶれ信号出力手段と、
前記予測値演算手段のニューラルネットワークに設定するパラメータ値を記憶しておくパラメータ記憶手段と、
前記手ぶれ信号検出手段で検出した手ぶれ信号と前記予測手ぶれ信号出力手段から出力された予測手ぶれ信号との誤差を検出し、該検出した誤差に基づいて前記予測値演算手段のニューラルネットワークに設定するパラメータ値を選択し、該選択したパラメータ値を前記パラメータ記憶手段に記憶させる予測誤差評価手段と、を具備していること
を特徴とする撮像機器。 - 前記予測値演算手段は、前記ニューラルネットワークに前記パラメータ記憶手段に記憶してある全てのパラメータ値を順次設定して次の手ぶれ信号の予測値を順次算出し、該設定した全てのパラメータ値の中から前記予測誤差評価手段で選択されたパラメータ値をニューラルネットワークに再度設定してから次の手ぶれ信号の予測値を算出すること
を特徴とする請求項5に記載の撮像機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002319863A JP2004158902A (ja) | 2002-11-01 | 2002-11-01 | 手ぶれ信号予測装置及び撮像機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002319863A JP2004158902A (ja) | 2002-11-01 | 2002-11-01 | 手ぶれ信号予測装置及び撮像機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004158902A true JP2004158902A (ja) | 2004-06-03 |
Family
ID=32800964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002319863A Pending JP2004158902A (ja) | 2002-11-01 | 2002-11-01 | 手ぶれ信号予測装置及び撮像機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004158902A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009072264A1 (ja) * | 2007-12-03 | 2009-06-11 | Panasonic Corporation | 画像処理装置、撮影装置、再生装置、集積回路及び画像処理方法 |
KR20130129095A (ko) * | 2012-05-17 | 2013-11-27 | 삼성전자주식회사 | 예측 궤적을 기반으로 하는 어댑티브 카메라 제어 방법을 위한 장치 및 방법 |
-
2002
- 2002-11-01 JP JP2002319863A patent/JP2004158902A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009072264A1 (ja) * | 2007-12-03 | 2009-06-11 | Panasonic Corporation | 画像処理装置、撮影装置、再生装置、集積回路及び画像処理方法 |
CN101884213B (zh) * | 2007-12-03 | 2012-09-05 | 松下电器产业株式会社 | 图像处理装置及方法、摄影装置、再生装置、集成电路 |
US8350916B2 (en) | 2007-12-03 | 2013-01-08 | Panasonic Corporation | Image processing device, photographing device, reproducing device, integrated circuit, and image processing method |
KR20130129095A (ko) * | 2012-05-17 | 2013-11-27 | 삼성전자주식회사 | 예측 궤적을 기반으로 하는 어댑티브 카메라 제어 방법을 위한 장치 및 방법 |
KR102049379B1 (ko) * | 2012-05-17 | 2019-11-28 | 삼성전자주식회사 | 예측 궤적을 기반으로 하는 어댑티브 카메라 제어 방법을 위한 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8606035B2 (en) | Image processing apparatus and image processing method | |
US20120081558A1 (en) | Image capture device, image generating method, and computer program thereof | |
JP4307430B2 (ja) | 手ぶれ検出装置 | |
KR20010060219A (ko) | 이미지 처리 장치, 이미지 처리 방법, 데이터 처리 장치,데이터 처리 방법, 및 저장 매체 | |
US7848587B2 (en) | Image-processing system and image-processing program | |
WO2007119680A1 (ja) | 撮像装置 | |
KR100262793B1 (ko) | 화상의손흔들림판정장치 | |
JP2021033571A (ja) | 情報処理装置、制御方法およびプログラム | |
US8928768B2 (en) | Image processing device and computer-readable computer program product containing image processing program | |
JP4952769B2 (ja) | 撮像装置 | |
WO2020194591A1 (ja) | 外れ値検出装置、外れ値検出方法及び外れ値検出プログラム | |
JP2004158902A (ja) | 手ぶれ信号予測装置及び撮像機器 | |
JP7256683B2 (ja) | 誤差予測装置及び方法、防振制御装置及び方法、及び、撮像装置 | |
JP2021090129A (ja) | 画像処理装置、撮像装置、画像処理方法およびプログラム | |
JP2007241126A (ja) | 撮像装置 | |
CN112927181B (zh) | 图像亮度调节方法及装置、图像采集设备、存储介质 | |
JP2007129354A (ja) | 画像処理装置 | |
JPH05204012A (ja) | 手ぶれ信号予測装置 | |
JP5133070B2 (ja) | 信号処理装置 | |
US8466971B2 (en) | Image processing apparatus and image processing method | |
JP2021122106A (ja) | 撮像装置、学習装置、撮像装置の制御方法、学習方法、学習済みモデルおよびプログラム | |
JPWO2007026452A1 (ja) | 画像処理装置、及び画像処理方法 | |
JP5506374B2 (ja) | 撮像装置及びその制御方法 | |
CN115242967B (zh) | 成像防抖方法、成像防抖装置、摄像器件和可读存储介质 | |
RU2012133468A (ru) | Оценка общего и частного движений |