(57)【要約】【課題】ノイズ成分の多い画像であっても高い精度で動き情報を検出可能にする。【解決手段】画像処理装置（１００）は、撮影により取得された複数の画像を基に被写体の動きを求める装置であり、少なくとも２枚の画像を合成する合成手段（５４）と、少なくとも２枚の画像から動きを検出する検出手段（２４）と、を有し、検出手段（２４）では、合成手段（５４）によって合成された画像を用いて動きの検出を行う。【選択図】図１
2019121981.tif 000002
【特許請求の範囲】
【請求項１】
撮影により取得された複数の画像を基に被写体の動きを求める画像処理装置であって、
少なくとも２枚の画像を合成する合成手段と、
少なくとも２枚の画像から動きを検出する検出手段と、を有し、
前記検出手段は、前記合成手段によって合成された画像を用いて、前記動きの検出を行うことを特徴とする画像処理装置。
【請求項２】
前記合成手段は、前記画像から少なくとも２枚の画像を選択し、前記選択した画像を用いて前記合成を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記合成手段は、前記画像が撮影されたときの露光時間、ＩＳＯ感度、撮影レンズの焦点距離、検出した動きの量の、少なくとも１つを基に、前記合成する画像の枚数の決定または合成する画像の選択を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記合成手段は、前記合成した後の画像が、前記被写体の動きが軌跡として合成されるように画像を選択することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記検出手段はさらに、前記検出した動きの信頼性を判定し、
前記合成手段は、前記信頼性の判定の結果に基づいて、前記合成する画像の枚数の決定または合成する画像の選択を行うことを特徴とする請求項２から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記合成手段は、１，２，…，（Ｎ−ｍ）枚目の画像と、ｍ，（ｍ＋１），…，ｍ＋（ｍ＋１）＋…＋Ｎ枚目の画像（ただしｍ、Ｎは、１＜ｍ＜Ｎとなる正数とする。）と、を合成することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記ｍ、Ｎは、前記画像が撮影されたときの露光時間、ＩＳＯ感度、撮影レンズの焦点距離、検出した動きの量の、少なくとも１つに基づく値であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記検出手段は、
前記少なくとも２枚の画像の一方から取得したテンプレートを、もう一方の画像に対して走査して前記テンプレートとの類似度を取得するテンプレートマッチングによって前記動きを検出し、
前記取得した類似度の極大値の数、極大値の標準偏差、類似度の標準偏差、画像のＳ／Ｎ、画像が撮影されたときの露光時間、撮像素子の温度、撮影レンズの焦点距離、検出した動きの量の、少なくとも１つを基に、前記信頼性を判定することを特徴とする請求項５から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記検出手段は、前記類似度の極大値が所定の閾値より大きい場合、前記極大値の標準偏差または類似度の標準偏差が所定の閾値より小さい場合、前記検出した動きの量が所定の閾値より小さい場合の、いずれかである場合に前記信頼性が低いと判定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記検出手段により前記信頼性が低いと判定された場合に、前記合成手段は、前記決定した枚数で前記合成する画像をさらに選択することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記検出手段は、画像のＳ／Ｎ、画像が撮影されたときの露光時間、撮像素子の温度、撮影レンズの焦点距離の、少なくとも一つを基に、前記信頼性の判定に用いる前記所定の閾値を変更することを特徴とする請求項９または１０に記載の画像処理装置。
【請求項１２】
前記検出手段は、前記信頼性が低いと判定した場合に前記所定の閾値を変更することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
撮影により取得された複数の画像を基に被写体の動きを求める画像処理装置が実行する画像処理方法であって、
少なくとも２枚の画像を合成する合成工程と、
少なくとも２枚の画像から動きを検出する検出工程と、を有し、
前記検出工程では、前記合成工程によって合成された画像を用いて、前記動きの検出を行うことを特徴とする画像処理方法。
【請求項１４】
コンピュータを、請求項１から１２のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体等の動きを検出する画像処理技術に関する。
【背景技術】
【０００２】
長時間の露光を行うことで例えば天体の日周運動を軌跡として撮影する手法がある。ただし長時間の露光を行うと、その露光時間に応じて画像全体が明るくなってしまうため、所定の時間に達するまで複数回撮影を行い、得られた複数枚の画像の明るい部分を選択して合成することで天体の軌跡を生成することも行われている。しかしながら、天体の日周運動は非常に遅いことから撮影に要する時間は長時間になり、撮影者は、撮影が終了するまで、撮影した画像内に天体の軌跡がどのように写りこんでいるのか分からず、撮影前に構図を決めることが難しい。
【０００３】
一方、例えば特許文献１には、同じ被写体を異なる時間に撮影した第１の撮影画像と第２の撮影画像とから被写体の動きベクトルを算出し、その動きベクトルから被写体の予測軌跡を算出して合成する技術が開示されている。この特許文献１の技術によれば、短時間に天体の日周運動の軌跡をシミュレーション表示することが可能になる。
また例えば特許文献２には、分割露光した複数枚の画像から位置ずれを補正するための移動補正パラメータを算出し、その移動補正パラメータを基に位置ずれを補正して合成することで、天体のブレを抑制した画像を得ることを可能にする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−６９９３９号公報
【特許文献２】特開２００３−２５９１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述の動きベクトルや移動補正パラメータのような動き情報を求めるには、一般的に、画素値の差の絶対値和や、差の二乗和を用いたテンプレートマッチングが行われる。一方で、天体の軌跡撮影では暗い夜空の中の点光源である星等を被写体とした撮影が行われるため、一般的に撮像装置のＩＳＯ感度は高くなされことが多い。しかしながら、この場合、撮影画像には点状のランダムノイズが発生し易く、それら点状のランダムノイズ等のノイズ成分の影響により、テンプレートマッチングの精度が落ちてしまい、被写体の動きの検出精度が低下してしまうことがある。
【０００６】
そこで、本発明は、ノイズ成分の多い画像であっても高い精度で動き情報を検出可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、撮影により取得された複数の画像を基に被写体の動きを求める画像処理装置であって、少なくとも２枚の画像を合成する合成手段と、少なくとも２枚の画像から動きを検出する検出手段と、を有し、前記検出手段は、前記合成手段によって合成された画像を用いて、前記動きの検出を行うことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ノイズ成分の多い画像であっても高い精度で動き情報を検出可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態のカメラの概略構成を示すブロック図である。
【図２】天体（星）の検出処理を説明する図である。
【図３】動きベクトルの検出処理を説明する図である。
【図４】ランダムノイズが生じた画像の一例を示す図である。
【図５】ランダムノイズを含む画像の動きベクトル検出を説明する図である。
【図６】第１実施形態の画像合成を説明する図である。
【図７】第１実施形態の動きベクトル検出時の処理のフローチャートである。
【図８】第２実施形態の動きベクトル検出時の処理のフローチャートである。
【図９】第１、第２実施形態で合成される画像の説明に用いる図である。
【図１０】第３実施形態で合成される画像の説明に用いる図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の好ましい実施形態について説明する。
＜第１実施形態＞
図１は、第１実施形態の画像処理装置の一適用例としてのデジタルカメラ（以下、カメラ１００とする。）の構成例を示す図である。
本実施形態のカメラ１００は、バリア１０２、撮影レンズ１０３、シャッター１０１、撮像部２２、Ａ／Ｄ変換部２３、画像処理部２４、フォーカス制御部４２、露光制御部４０、メモリ３２、メモリ制御部１５、システム制御部５０、表示部２８を備えている。また、カメラ１００は、不揮発性メモリ５６、システムメモリ５２、システムタイマー５３、画像合成部５４、演算部５１、電源部３０、電源制御部８０、操作部７０、記録媒体Ｉ／Ｆ１８を備える。システム制御部５０は、シャッター１０１、撮像部２２、画像処理部２４、フォーカス制御部４２、露光制御部４０、操作部７０、電源制御部８０、演算部５１、システムメモリ５２、システムタイマー５３、画像合成部５４とそれぞれ接続されている。また、システム制御部５０、メモリ制御部１５、メモリ３２、不揮発性メモリ５６、記録媒体Ｉ／Ｆ１８は、システムバスを介して互いに接続されている。撮像部２２はＡ／Ｄ変換部２３と接続され、Ａ／Ｄ変換部２３は画像処理部２４及びメモリ制御部１５と接続され、メモリ制御部１５は表示部２８と画像処理部２４に接続されている。電源部３０は電源制御部８０と接続されている。
【００１１】
シャッター１０１は絞り機能を有する。バリア１０２は、シャッター１０１、撮影レンズ１０３、及び撮像部２２を含む撮像系を覆うことによって、それらを汚れや破損等から保護する。撮影レンズ１０３は、ズームレンズ及びフォーカスレンズを含むレンズ群である。撮像部２２は、撮影レンズ１０３を透過した光束に基づく光学像を電気的なアナログ信号に変換するＣＣＤやＣＭＯＳ素子等で構成される撮像素子である。撮像部２２の撮像素子は、Ｒ、Ｇ１、Ｇ２、Ｂのカラーフィルタを備え、Ｒ、Ｇ１、Ｇ２、Ｂの各色が規則的に配置されたいわゆるベイヤー配列の構成となされているが、これには限定されない。Ａ／Ｄ変換部２３は、撮像部２２で光電変換されたアナログ信号をデジタル信号（画像データ）に変換し、当該画像データを画像処理部２４やメモリ制御部１５に送信する。
【００１２】
画像処理部２４は、Ａ／Ｄ変換部２３から送信された画像データやメモリ制御部１５から取得した画像データ等に対して、画素補間やシェーディング補正などの各種補正処理、ホワイトバランス処理、γ補正処理、色変換処理などの画像処理を行う。また、画像処理部２４は、画像の切り出し、変倍処理などを行うことで、電子ズーム機能を実現する。シェーディング補正処理は、Ａ／Ｄ変換部２３からのデータ或いはメモリ制御部１５からのデータに対して撮影レンズ１０３の特性や撮像部２２の収差等の特性に起因して生じるシェーディングを補正するように、画面内の輝度レベルの補正を行う処理である。ホワイトバランス（ＷＢ）処理は、シェーディング補正処理後の画像データに対して、画面内の白を基準にして白に合わせるＡＷＢ（オートホワイトバランス）処理である。本実施形態において、シェーディング補正は撮像部２２の撮像素子の２次元の座標（位置）に応じて画素ごとにゲインをかける補正であり、ホワイトバランス処理はベイヤー配列のＲ、Ｇ１、Ｇ２、Ｂの色成分ごとに異なるゲインをかける処理である。また、画像処理部２４は、ベイヤー毎のＲＡＷ画像から汎用的な画像フォーマットであるＹＵＶ形式などへ現像する機能、Ｊｐｅｇなどへのエンコードやデコード機能をも有する。さらに、画像処理部２４は、後述する複数枚の画像のなかの少なくとも２枚の画像から、動き情報の一例である動きベクトルを算出する機能も有する。
【００１３】
画像合成部５４は、複数の画像のなかの少なくとも２枚の画像を合成する合成処理回路を備える。画像合成部５４は、単純な加算合成や加算平均合成だけでなく、合成対象の画像の各画素或いは各領域で最も明るい値を持つ画像を選択し、それらを合成して１枚の画像データを生成する比較明合成処理の機能も備えている。画像合成部５４は、合成対象の画像の各画素或いは各領域で暗い値を持つ画像を選択し、それらを合成して１枚の画像データを生成する比較暗合成処理の機能を備えていてもよい。なお、図１では、画像合成部５４と画像処理部２４が別の構成となされた例を挙げているが、これら画像合成部５４と画像処理部２４は一体に構成されていてもよい。
【００１４】
メモリ制御部１５は、Ａ／Ｄ変換部２３、画像処理部２４、メモリ３２を制御する。メモリ制御部１５は、Ａ／Ｄ変換部２３から出力された画像データを、画像処理部２４を介して、或いは、直接メモリ制御部１５を介して、メモリ３２に書き込むように制御する。
表示部２８は、ＴＦＴ液晶等からなる。表示部２８には、システム制御部５０により生成されてメモリ３２に書き込まれた表示用の画像データが、メモリ制御部１５を介して供給される。これにより、表示部２８には表示用の画像が表示される。カメラ１００は、撮像部２２で所定の周期の露光及び読み出しを繰り返し行って順次撮像した画像データを、画像処理部２４、メモリ制御部１５等を経て表示部２８に順次表示することで、ライブビュー表示や電子ファインダー機能を実現可能となされている。また、表示部２８は、システム制御部５０の指示により任意に表示をＯＮ／ＯＦＦすることが可能であり、表示をＯＦＦにした場合にはカメラ１００の電力消費を大幅に低減することが出来る。
【００１５】
メモリ３２は、撮影した静止画像や動画像を格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶量を備えている。これにより、複数枚の静止画像を連続して撮影する連写撮影の場合にも、高速かつ大量の画像書き込みをメモリ３２に対して行うことが可能となる。また、メモリ３２は、システム制御部５０の作業領域としても使用可能となされている。
【００１６】
システム制御部５０は、カメラ１００全体を制御する。システム制御部５０は、後述する不揮発性メモリ５６に記録されたプログラムを実行することにより、本実施形態に係る各処理や制御を実現する。システムメモリ５２は、ＲＡＭからなり、システム制御部５０の動作用の定数、変数、不揮発性メモリ５６から読み出したプログラム等が展開される。また、システム制御部５０は、メモリ３２、表示部２８等を制御することにより表示制御も行う。また、システム制御部５０は、不図示のタイミング発生回路を介して、撮像部２２、撮影レンズ１０３、シャッター１０１の動作タイミング等を制御する。なお、カメラ１００は、シャッター１０１のような機械式シャッターの他に、システム制御部５０による制御の下、撮像素子のリセットタイミングによって蓄積時間を制御する電子シャッターの機能も有している。電子シャッターは動画撮影などに使用される。また、システム制御部５０は、撮像した画像データを用いて画像処理部２４が所定の演算処理を行った演算結果に基づいて、露光制御部４０、フォーカス制御部４２に対して制御を行う、ＴＴＬ方式のＡＦ（オートフォーカス）処理やＡＥ（自動露出）処理を行う。
【００１７】
システムタイマー５３は、各種制御に用いる時間や、内蔵された時計の時間を計測する計時部である。
不揮発性メモリ５６は、電気的に消去・書き換え可能なＲＯＭ等からなり、システム制御部５０が実行するプログラムコード等が書き込まれている。システム制御部５０は、不揮発性メモリ５６から逐次読み出しながらプログラムコードを実行する。また、不揮発性メモリ５６内には、システム情報を記憶する領域や、ユーザ設定情報を記憶する領域が設けられており、システム制御部５０は、様々な情報や設定を次回起動時に読み出して、復元することをも実現している。
【００１８】
操作部７０は、ユーザにより操作可能な各種ボタンやタッチパネル等からなる。操作部７０は、いわゆる半押し操作ＳＷ１と全押し操作ＳＷ２を検知可能なシャッタースイッチや、メニューボタン、セットボタン、マクロボタン、フラッシュ設定ボタン、単写／連写／セルフタイマー切り替えボタン等を有する。また、操作部７０は、メニュー移動＋（プラス）ボタン、メニュー移動−（マイナス）ボタン、撮影画質選択ボタン、露出補正ボタン、日付／時間設定ボタン等も有する。システム制御部５０は、操作部７０のシャッタースイッチの半押し操作ＳＷ１が検出されると、ＡＦ処理、ＡＥ処理、ＡＷＢ処理等の動作開始を指示する。さらに、システム制御部５０は、操作部７０のシャッタースイッチの全押し操作ＳＷ２が検出されると、露光処理、現像処理、圧縮・伸長処理、記録処理という一連の撮影処理の動作開始を指示する。また本実施形態の場合、システム制御部５０は、ユーザによる操作部７０への操作によって、後述する星空軌跡生成モードの設定、当該星空軌跡生成モードで用いられる露出条件や長秒時露光における連続露光時間等の設定も行う。
【００１９】
電源部３０は、例えばアルカリ電池やリチウム電池等の一次電池、ＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、ＡＣアダプター等を含み、カメラ１００に設けられる各構成要素で用いられる電力の供給源となされている。電源制御部８０は、電源部３０からカメラ１００に設けられる各構成要素への電力の供給を制御する。
記録媒体Ｉ／Ｆ１８は、メモリカードやハードディスク等の記録媒体１２０との間でデータ通信を行うインタフェース回路と、メモリカードやハードディスク等の記録媒体１２０と接続を行うコネクタとを含む。
【００２０】
カメラ１００は、静止画像及び動画像を撮影可能であり、例えば長時間の露光（以下、長秒時露光とする）による撮影を複数回行って取得した複数枚の静止画像の明るい部分を選択して合成することで天体の日周運動の軌跡画像を生成可能なモードを有している。本実施形態では、このモードを星空軌跡生成モードと呼ぶことにする。星空軌跡生成モードでは、所定の時間に達するまで長秒時露光を複数回行い、それら複数回の撮影で得られた複数枚の静止画像を比較して、明るい部分のみを合成する比較明合成を行って軌跡画像が生成される。本実施形態では、ユーザからの操作部７０への操作によって星空軌跡生成モードが設定されると、カメラ１００のシステム制御部５０は、星空軌跡生成処理を行うように画像処理部２４、画像合成部５４等を制御する。星空軌跡生成モードにおいて、画像処理部２４は、被写体として同じ星を含む天体が異なる時刻ごとに撮影されることで取得された複数枚の画像、例えば２枚の画像のデータを、メモリ制御部１５を介してメモリ３２から取得する。そして画像処理部２４は、後述するように、撮影で取得された画像や画像合成部５４で合成された画像の、少なくとも２枚の画像を用い、同じ星の位置が日周運動により移動した際の動きの方向と動き量（移動量）を表す動き情報として動きベクトルを検出する。
【００２１】
以下、図２（ａ）〜図２（ｅ）を参照しながら、動きベクトルの算出方法について説明する。ここでは、本実施形態のカメラ１００の動作モードが、夜空の星等の天体の日周運動の軌跡画像を生成可能な星空軌跡生成モードに設定されている場合を例に挙げて説明する。
本実施形態において、画像処理部２４は、動きベクトルを算出する際、図２（ａ）に示すように１枚の画像２００を複数のブロック２０１に分割する。なお、画像２００は星空と山等が含まれた範囲を写した画像であるとする。図２（ａ）には画像２００を１０×８にブロック分割した例を挙げているが、分割数は、この例には限定されず、画像の画素数などに応じて適宜変更されても良い。例えば撮影レンズ１０３の焦点距離が短い、いわゆる広角レンズの場合には、画角に対して星が小さく、多数の星が写り込む可能性が高いため、ブロックサイズを小さくすることも好ましい様態の一つである。また図２（ａ）では、１ブロックの形状が正方形となされた例を挙げているが、１ブロックの形状は長方形などその他の形状でも良い。
【００２２】
次に、画像処理部２４は、１枚の画像２００を分割したブロック２０１の中から点光源の被写体である星が写っているブロックを抽出する。画像処理部２４は、星が写っているブロックを抽出するために、ブロック毎のヒストグラムを作成する。図２（ａ）の画像２００の例において、山など暗い部分のみを含むブロック２１３からは、図２（ｅ）に示すように暗い部分に対応した略々一つのピーク２３２が現れたヒストグラムが得られる。また例えば、山などの暗い部分と少し明るい空の部分とが含まれるブロック２１２からは、図２（ｄ）に示すように山の暗い部分に対応したピーク２３２と空の少し明るい部分に対応したピーク２３０との略々二つのピークが現れたヒストグラム２２２が得られる。また例えば、星が写っていない空の部分だけが含まれるブロック２１１からは、図２（ｃ）に示すように、空の少し明るい空の部分に対応した略々一つのピーク２３０が現れたヒストグラムが２２１得られる。また例えば星が写っているブロック２１０からは、図２（ｂ）に示すように、空の部分に対応したピーク２３０と、空よりも明るい星に対応したピーク２３１との、略々二つのピークが現れたヒストグラム２２０が得られる。画像処理部２４は、画像２００からブロック毎のヒストグラムを作成し、それらブロック毎のヒストグラムの中のピークを用いることで、山など空以外の部分を含まず、空に星のみが写っているブロックを抽出する。図２（ｂ）〜図２（ｅ）のヒストグラムが得られている場合、画像処理部２４は、空に対応したピーク２３０と星に対応したピーク２３１とを含むヒストグラム２２０が生成された図２（ａ）のブロック２１０を、星が写っているブロックとして抽出する。
【００２３】
ここで、続けて撮影された２枚の画像があり、１枚目の画像が図３（ａ）に示すような画像３０１で、次に撮影された２枚目の画像が図３（ｂ）に示すような画像３０２であったとする。また、これら画像３０１，３０２は、ともに前述したようにブロック分割されているとする。そして、２枚目の画像３０２が撮影された時には、日周運動によって、１枚目の画像３０１が撮影された時よりも天体全体が右回り方向に動いた状態になっているとする。このため、１枚目の画像３０１と２枚目の画像３０２の両画像内で同じ位置のブロック３１０に着目した場合、１枚目の画像３０１のブロック３１０内に写っていた星は、２枚目の画像３０２のブロック３１０内では、右下方向に位置している。画像処理部２４は、このような１枚目の画像３０１と２枚目の画像３０２のブロックを用いて、テンプレートマッチングを行うことにより、動き情報としての動きベクトルを検出する。
【００２４】
画像処理部２４は、前述した２枚の画像３０１，３０２のブロック３１０を用いて動き情報を検出する際、図３（ｃ）に示すように、図３（ａ）の１枚目の画像３０１のブロック３１０内で星を含むサブブロック３２１を設定し、これをテンプレートとする。そして、画像処理部２４は、この星を含むサブブロック３２１のテンプレートと、図３（ｂ）の２枚目の画像３０２のブロック３１０内のサブブロックとの間の類似度を求める。本実施形態の場合、画像処理部２４は、星を含むサブブロック３２１のテンプレートを、図３（ｄ）に示すように、図３（ｂ）の２枚目の画像３０２内のブロック３１０内で１画素ずつ順にずらすように走査して画素値の差分を求める。本実施形態において、テンプレートとサブブロックから算出される画素値の差分としては、一例として、差の絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下、ＳＡＤとする）の値を求めるとする。本実施形態の場合、このＳＡＤ値が、テンプレートとサブブロックとの類似度を表す値として算出される。図３（ｄ）において、テンプレートを例えば右にｍ画素、下にｎ画素ずらした時のＳＡＤ値が最も小さい値、つまり類似度が最も大きい値になったとすると、その位置のサブブロック３２１ｅがテンプレートと類似していると判断できる。この場合、１枚目の画像３０１の撮影がなされてから２枚目の画像３０２が撮影された時までの間に、天体は右にｍ画素、下にｎ画素分だけ移動したことがわかる。画像処理部２４は、前述したような処理を、図２（ａ）のように星が検出されたブロック全てに適用することにより、天体の動きベクトルを算出する。また、画像処理部２４は、天体の動きベクトルが算出されなかったブロックについては、近くのブロックから補間して動きベクトルを算出する。
【００２５】
ここで、前述したように１画素ずつずらして算出される画素値の差分によりＳＡＤ値を求める処理には、ある程度長い処理時間が必要となる。このため、画像処理部２４は、１枚目の画像と２枚目の画像をそれぞれ縮小し、その縮小した画像を用いて前述同様の処理を行って大まかな動きベクトルを算出し、その情報を元に、縮小していない画像について詳細な動きベクトルを算出するようにしても良い。例えば、画像処理部２４は、縮小していない２枚目の画像について、大まかな動きベクトルで示される方向に対応した幾つかのサブブロックのみを走査対象とし、その大まかな動きベクトルで示される方向以外の方向のサブブロックを走査対象から除外する。これにより、処理時間を短縮することが可能となる。
【００２６】
そして、前述のようにして求めた動きベクトル（動き情報）は、例えば特許文献１の技術のように軌跡をシミュレートして表示させたり、或いは特許文献２の技術のように動きを補正して合成することでブレのない画像を生成したりする際に使用可能である。
しかしながら、一般に、高ＩＳＯ感度で撮影が行われたり、露光時間が長くなったり、撮像素子の温度が高くなったりすると、ランダムノイズが発生しやすい。特に、暗い天体写真では、高ＩＳＯ感度で撮影が行われることが多く、さらに天体の軌跡を撮影する場合は露光時間が長くなり易く、またさらに長時間の撮影では撮像素子の温度も上がり易い。このような場合、例えば図４（ａ）に示す１枚目の画像４０１と、図４（ｂ）に示す２枚目の画像４０２において、画像全体にランダムノイズが発生することがある。
【００２７】
図５（ａ）と図５（ｂ）は図３（ｃ）と図３（ｄ）同様に示した図であり、図５（ａ）は図４（ａ）の１枚目の画像４０１から検出された星を含むブロック５１０、図５（ｂ）は図４（ｂ）の２枚目の画像４０２の同ブロック５１０を示している。そして、前述同様に、図５（ａ）に示す１枚目の画像のブロック５１０内で星を含むサブブロック５２１をテンプレートとし、図５（ｂ）に示す２枚目の画像のブロック５１０内でＳＡＤ値が求められる。しかし、ランダムノイズがあると、最小ＳＡＤ値から検出されるサブブロックとして、本来正しい動きベクトルが得られるはずの「右にｍ画素、下にｎ画素」のサブブロック５２１ｅではなく、別の誤ったサブブロックが検出されてしまうことがある。この例の場合、１枚目の画像のブロック５０１において星とランダムノイズの輝点とが含まれたサブブロック５２１がテンプレートに設定されているため、当該テンプレートを用いた場合、サブブロック５２１ｃに対応したＳＡＤ値が最小ＳＡＤ値となる。このように、誤ったサブブロックが検出されると、正しい動きベクトルを算出できなくなる。
【００２８】
そこで、本実施形態では、図６に示すように、少なくとも２つの画像を合成した合成画像を用いて動きベクトルの算出を行うことで、ランダムノイズの影響を低減させて高い精度の動きベクトル検出を可能とする。なお、図６では、星とランダムノイズとを区別し易く見せるために、天体の軌跡を長めに表現している。
図６において、画像６０１は１枚目に撮影された画像であり、以下、画像６０２は２枚目の画像、画像６０３は３枚目の画像であるとする。第１実施形態において、画像合成部５４は、１枚目の画像６０１と２枚目の画像６０２とを合成処理６４１して１枚目の合成画像６３１を生成する。さらに、画像合成部５４は、２枚目の画像６０２と３枚目の画像６０３とを合成処理６４２して２枚目の合成画像６３２を生成する。なお、本実施形態で用いられる合成処理は、上述した加算合成でも良いし、比較明合成でも良い。
【００２９】
そして、画像処理部２４は、１枚目の合成画像６３１と２枚目の合成画像６３２について、それぞれ前述同様にブロック分割し、１枚目の合成画像６３１のブロック内で星を含むサブブロックをテンプレートとする。さらに前述同様に、画像処理部２４は、２枚目の合成画像６３２のブロック内で走査を行ってテンプレートとの類似度が最大となるサブブロック、つまりＳＡＤ値が最小ＳＡＤ値となるサブブロックを探索して、動きベクトルを求める検出処理６４３を行う。
【００３０】
ここで、画像内に写っている天体（星）の大きさ（１つの星を構成する画素数）は、天体の明るさや大きさ、撮影レンズ１０３の焦点距離や収差の度合い、さらには露光時間、撮像素子の１画素あたりの大きさなどによっても異なるが、数ピクセル程度である。したがって、ＳＡＤ値を取得する際にはランダムノイズの影響を受け易いが、本実施形態のように、例えば２枚を合成した場合、当該合成後の天体の画素数は約２倍になり十数画素となる。また、合成を行った場合、星のような点状の天体は軌跡となって線状になることから、ランダムノイズの影響を受け難く（つまりランダムノイズとは区別し易く）なる。したがって、本実施形態では、合成の対象となる画像を選択する際には、被写体（天体）の動きが軌跡として合成されるように画像の選択を行う。これらにより、本実施形態において画像合成を行った場合、合成画像上での天体とランダムノイズとの差が大きくなり、前述のように誤ったサブブロックが検出されることが略々無くなって、正しい動きベクトルを正確に検出することが可能となる。
【００３１】
図７は、本実施形態のカメラ１００において星空軌跡生成モード時に行われる動きベクトル検出処理の流れを示すフローチャートである。このフローチャートの処理は、ハードウェア構成により実現されても良いし、ソフトウェア構成により実現されても良い。ソフトウェア構成により各部の処理が実行される場合、それら本実施形態にかかるプログラム（ソフトウェア）をＣＰＵ等が実行することにより実現される。本実施形態にかかるプログラムは、不揮発性メモリ５６に予め用意されていても良いし、記録媒体等から取得されても、或いは不図示のインターネット等のネットワークを介してダウンロードされても良い。なお、以下のフローチャートの説明では、処理ステップＳ７００〜処理ステップＳ７０８をＳ７００〜Ｓ７０８と略記する。これらのことは後述する他のフローチャートにおいても同様とする。
【００３２】
図７のフローチャートにおいて、Ｓ７０１で処理を開始すると、システム制御部５０は、Ｓ７０２とＳ７０３の処理として１枚目の画像と２枚目の画像を取得する。これらの画像は、実際に撮影が行われて取得されても良いし、予め撮影されてメモリや記録媒体等に記憶された画像を読み出すことにより取得されても良い。図７の例では、Ｓ７０２とＳ７０３においてそれぞれ画像が１枚撮影される場合を挙げている。Ｓ７０２とＳ７０３で取得された画像は画像処理部２４に送られる。
【００３３】
次にＳ７０４において、画像処理部２４は、Ｓ７０２とＳ７０３で取得された２枚の画像、又は、後述するＳ７０７６からＳ７０８までで合成処理された合成画像を用いて、前述した処理により動きベクトルを算出する。
次にＳ７０５において、画像処理部２４は、Ｓ７０４で算出された動きベクトルの信頼性を評価する。画像処理部２４は、Ｓ７０５の動きベクトルの信頼性評価のために、以下のような処理を行う。
【００３４】
前述のようなＳＡＤ値を用いたテンプレートマッチング処理において、例えばサブブロックを上下９画素ずつずらしながらＳＡＤ値を算出する場合には８１通りのＳＡＤ値が算出されることになる。通常はこの８１個のＳＡＤ値の中から最小値を求める。しかし、例えば極小値が複数存在する場合は、例えば１枚目と２枚目の画像のブロックで同じ天体が存在する場合の他に、１枚目の画像のブロック内の天体と２枚目の画像のブロック内のランダムノイズとが似ており、その影響で極小値となった可能性がある。したがって、画像処理部２４は、極小値が所定の閾値より多く複数存在する場合には、動きベクトルの信頼性が低いと判定する。言い換えると、テンプレートとサブブロックとの類似度の極大値が所定の閾値より多く複数存在する場合には、動きベクトルの信頼性が低いと判定する。
【００３５】
また極小値が複数存在したとしても、複数の極小値の１つだけが他の値よりも小さければ正しい動きベクトルを算出できたと判定できるが、最小の極小値と２番目に小さい極小値とが近い（ばらつきが少ない）場合、画像処理部２４は、信頼性が低いと判定する。さらに、画像処理部２４は、ＳＡＤ値の最小値と最大値との差が少ない場合も信頼性が低いと判定する。言い換えると、類似度の極大値の標準偏差又は類似度の標準偏差が所定の閾値より小さい場合、画像処理部２４は、信頼性が低いと判定する。また、画像処理部２４は、検出された動きベクトルの大きさ（値）が所定の閾値より小さい場合にも、信頼性が低いと判定する。
【００３６】
また、撮影時のＩＳＯ感度が高い場合、撮像素子の温度が高い場合、露光時間が長い場合はランダムノイズが増える傾向にある。さらに、撮影レンズ１０３の焦点距離が短い場合は天体（星）の大きさ（画素数)が小さいためランダムノイズと誤検出され易くなる。このため、これらＩＳＯ感度、撮像素子の温度、露光時間、レンズの焦点距離など、撮影時の条件を基に、前述した信頼性を判定する際のそれぞれの閾値を変えることも好ましい。その他にも、撮影素子について被写体像が結像しない領域を設け、その部分から得られたデータのノイズ成分を検出して、そのノイズ量に応じたＳ／Ｎに基づいて信頼性判定の閾値を変えることも好ましい様態の一つである。
【００３７】
Ｓ７０５において、画像処理部２４は、信頼性が低いと判定した場合にはＳ７０６に処理を進める。一方、Ｓ７０５において信頼性が低くない（信頼性が高い）と判定した場合には、画像処理部２４は、Ｓ７０４で検出された動きベクトルを、天体の日周運動の軌跡画像の生成時に使用する動きベクトルとして、図７のフローチャートの処理を終了する。
【００３８】
Ｓ７０６に進むと、画像処理部２４は、３枚目の画像を取得する。Ｓ７０６における画像取得も、Ｓ７０２、Ｓ７０３と同様に実際に撮影が行われて取得されても良いし、メモリ等から取得されても良い。ここでは、Ｓ７０２とＳ７０３同様に、画像が１枚撮影されて取得されるとする。
【００３９】
次にＳ７０７において、画像合成部５４は、１枚目からＮ−１枚目までの各画像を合成対象の画像として選択し、それら画像を合成する。前述の図６の例を挙げて説明すると、画像合成部５４は、画像６０１と画像６０２を合成する。この時の合成処理は、前述したように画像内の明るい部分を選択する比較明合成でも良いし、加算合成でも良く、合成方法は限定されるものではない。図７のフローチャートの例では、Ｓ７０７において比較明合成が行われるとする。
【００４０】
次にＳ７０８において、画像合成部５４は、２枚目からＮ枚目までの各画像を合成対象の画像として選択し、それら画像をＳ７０７と同様に合成する。前述の図６を例に挙げると、画像合成部５４は、画像６０２と画像６０３を合成する。その後、画像処理部２４は、Ｓ７０４において、Ｓ７０７、Ｓ７０８で合成処理された合成画像を用いて、前述したように動きベクトルを検出する。このように本実施形態では、Ｓ７０５で信頼性が低いと評価された場合、Ｓ７０６からＳ７０８までで生成した合成画像を用いて、Ｓ７０４の動きベクトル検出処理が行われ、当該検出された動きベクトルに対してさらにＳ７０５の信頼性評価が行われる。すなわち、本実施形態の場合、Ｓ７０６からＳ７０８に進んだ後にＳ７０４に戻る処理が、Ｓ７０５で動きベクトルの信頼性が高いと評価されるまで繰り返される。本実施形態によれば、このようにすることで信頼性の高い動きベクトルを検出することが可能となる。
【００４１】
図９は、第１実施形態と後述する第２実施形態において動きベクトルを検出する際に用いられる画像を説明する図である。なお、図９中の「＋」は合成を表し、括弧内の「＋」は後述する第２実施形態における合成枚数を算出する加算を表している。図９に示すように、第１実施形態において、１回目の動きベクトル検出では１枚目と２枚目の画像を用い、２回目の動きベクトル検出では１枚目と２枚目の画像の合成画像と２枚目と３枚目の画像の合成画像とを用いて動きベクトル検出が行われている。また、動きベクトルの信頼性が低い場合には前述のように画像合成処理と信頼性評価処理が繰り返される。すなわち、第１実施形態では、１枚目からＮ−１枚目までの画像を合成して１枚目の合成画像を生成し、２枚目からＮ枚目までの画像を合成して２枚目の合成画像を生成するような合成処理が行われ、それら合成画像を用いた動きベクトル検出が行われる。
【００４２】
なお、前述のように画像合成と動きベクトルの検出を繰り返したとしても、動きベクトルの信頼性が向上しない場合、画像処理部２４は、動きベクトルの検出を失敗したと判断し、その旨をシステム制御部５０に通知する。この場合、システム制御部５０は、例えばユーザからの指示若しくは自動で、撮影時の条件を変えて、図７のフローチャートの処理を再実行するように制御しても良い。
【００４３】
また、前述のフローチャートでは、信頼性が向上するまで処理を繰り返しているが、予め決められた枚数の画像についてのみ処理を行うようにしても良い。例えば１枚目から４枚目までの画像を取得し、１，２，３枚目の画像の合成画像と、２，３，４枚目の画像の合成画像から動きベクトルを算出するのみでも良い。またこの場合、合成される画像の枚数は、露光時間や撮影レンズ１０３の焦点距離におうじて可変して決定しても良い。また、本実施形態ではＳＡＤ値を用いたが、差の二乗の和（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ：ＳＳＤ）やＮＣＣ（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ  Ｃｏｒｒｅｌａｔｉｏｎ）などを用いたテンプレートマッチング方法を用いても良い。
【００４４】
以上説明したように、第１実施形態のカメラ１００においては、画像を合成した合成画像を用いてテンプレートマッチングを行うことで、画像がノイズ成分の多い画像であっても高精度に動きベクトルを算出することが可能となる。
【００４５】
＜第２実施形態＞
以下、第２実施形態のカメラ１００について図８を用いて説明する。なお、第２実施形態のカメラ１００の構成は前述した図１と同様であるため、その図示と説明は省略する。
図８は、第２実施形態のカメラ１００において星空軌跡生成モード時に行われる動きベクトル検出処理の流れを示すフローチャートである。図８のフローチャートにおいて、Ｓ８０１からＳ８０５までは、図７のＳ７０１からＳ７０５と同じ処理であるため、それらの説明は省略する。図８のフローチャートの場合、Ｓ８０５において信頼性が低いと判定された場合には、Ｓ８０６の処理に進む。
【００４６】
Ｓ８０６に進むと、画像処理部２４は、続けて２枚の画像を取得する。Ｓ８０６における画像取得も前述同様に実際に撮影が行われて取得されても良いし、メモリ等から取得されても良い。
【００４７】
次にＳ８０７において、画像合成部５４は、１枚目と２枚目の画像を合成対象の画像として選択し、それら画像を例えば比較明合成により合成する。すなわち、Ｓ８０７において、画像合成部５４は、１枚目からＮ／２枚目までの画像を合成対象の画像として選択し、それら画像を合成する。
次にＳ８０８において、画像合成部５４は、Ｓ８０６で取得された２枚の画像、例えば３枚目と４枚目の画像を合成対象の画像として選択し、それら画像を比較明合成等により合成する。すなわち、Ｓ８０８において、画像合成部５４は、Ｎ／２＋１枚目からＮ枚目までの画像を合成対象として選択し、それら画像を合成する。
【００４８】
そして、画像処理部２４は、Ｓ８０４において、Ｓ８０７、Ｓ８０８で合成処理された合成画像を用いて動きベクトルの検出が行われる。第２実施形態では、Ｓ８０５で信頼性が低いと評価された場合、Ｓ８０６からＳ８０８までで生成した合成画像を用いて、Ｓ８０４の動きベクトル検出処理が行われ、当該検出された動きベクトルに対してさらにＳ８０５の信頼性評価が行われる。このように、第２実施形態では、Ｓ８０６からＳ８０８に進み、さらにＳ８０４に戻る処理が、Ｓ８０５で動きベクトルの信頼性が高いと評価されるようになるまで繰り返される。
【００４９】
前述した第１実施形態では、動きベクトルの信頼性が低い場合、図９に示したように、１枚目からＮ−１枚目までの画像により１枚目の合成画像を生成し、２枚目からＮ枚目までの画像により２枚目の合成画像を生成するような合成処理が行われる。これに対し、第２実施形態では、動きベクトルの信頼性が低い場合、図９に示すように、１枚目からＮ／２枚目までの画像を合成して１枚目の合成画像を生成し、Ｎ／２＋１からＮ枚目までの画像を合成して２枚目の合成画像を生成するような合成処理が行われる。
【００５０】
第１実施形態の場合は、何回目かの動きベクトル検出が行われても算出される動きベクトルの値は同じである。これに対し、第２実施形態の場合には、Ｎ回目の動きベクトル検出ではＮ倍の動きベクトルとなる。このため、Ｓ８０５で信頼性が高いと判定された場合、画像処理部２４は、Ｓ８０９において、算出された動きベクトルをＮで除算する処理を行う。第２実施形態では、このＳ８０９の除算処理後の動きベクトルを、天体の日周運動の軌跡画像の生成時に使用する動きベクトルとし、図８のフローチャートの処理を終了する。これにより、第２実施形態においても、信頼性の高い動きベクトルを検出することが可能となる。
【００５１】
＜第３実施形態＞
以下、第３実施形態のカメラ１００について説明する。なお、第３実施形態のカメラ１００の構成は前述した図１と同様であるため、その図示と説明は省略する。
第３実施形態は、第１実施形態で説明した動きベクトル検出の手法と第２実施形態で説明した動きベクトル検出の手法とを自動で切り替え可能とした例である。
【００５２】
前述した第１実施形態の手法では、各撮影画像を取得した際の露光時間が同じである場合には、第２実施形態の動きベクトル検出の手法に比べて処理時間がかからない。つまり、１回の露光時間が例えば３０秒だとすると、第１実施形態の場合は３０秒×Ｎ回の時間で済むが、第２実施形態の場合は３０秒×２×Ｎ回の時間が必要である。しかし、例えば撮影レンズ１０３が広角レンズの場合や、都会など空が明るい場合の撮影のように露光時間が短くなる撮影条件などでは、動きベクトルとして検出される値が小さくなり、誤差を生み易い。したがって、このような場合は、第２実施形態の手法のように、回数を重ねるほど動きベクトルの量が大きくなる処理を用いた方が、誤差を含み難い。
【００５３】
第３実施形態では、前述のように撮影条件によって好適な手法が異なる場合に対応できるように、動きベクトル検出の手法を切り替える。第３実施形態の場合、例えば、撮影レンズ１０３の焦点距離の値が、予め決められた値よりも短い場合には、第２実施形態の手法を採用する。また例えば、露光時間が予め決められた時間よりも短い場合には、第２実施形態の手法を採用する。また例えば、１枚目と２枚目の画像から算出された動きベクトルが、予め決められた閾値よりも小さい場合には、第２実施形態の手法を採用する。一方、各撮影画像を取得した際の露光時間が同じである場合には、第１実施形態の手法を採用する。第３実施形態によれば、このように撮影条件によって好適な手法を自動的に切り替えることにより、より好適に高精度の動きベクトルを算出可能となる。
【００５４】
なお、ここまで例示した合成処理や合成する画像の選択の仕方は一例であり、前述した例には限定されない。前述のように続けて撮影された画像を選択する場合だけでなく、所定枚数分又はユーザにより任意に設定された枚数分を飛ばすようにして選択した画像が合成に用いられても良い。また例えば、露光時間が短い場合には、図１０に示すように、検出される動きベクトルが（ｍ−１）回分になるように画像を選択して合成を行うようにしていくことも好ましい。すなわち、画像合成部５４は、１，２，…，（Ｎ−ｍ）枚目の画像と、ｍ，（ｍ＋１），…，ｍ＋（ｍ＋１）＋…＋Ｎ枚目の画像とを合成する。なお、ｍは１＜ｍ＜Ｎの正数であり、ｍ、Ｎは、画像が撮影されたときの露光時間、ＩＳＯ感度、撮影レンズの焦点距離、算出した動き量の、少なくとも１つに基づいて決定された値である。
【００５５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００５６】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５７】
１５：メモリ制御部、１８：記録媒体Ｉ／Ｆ、２２：撮像部、２３：Ａ／Ｄ変換部、２４：画像処理部、３２：メモリ、４０：露光制御部、４２：フォーカス制御部、５０：システム制御部、５１：演算部、５４：画像合成部、５６：不揮発性メモリ、１００：カメラ、１０３：撮影レンズ
【図１】
2019121981.tif 000003
【図２】
2019121981.tif 000004
【図３】
2019121981.tif 000005
【図４】
2019121981.tif 000006
【図５】
2019121981.tif 000007
【図６】
2019121981.tif 000008
【図７】
2019121981.tif 000009
【図８】
2019121981.tif 000010
【図９】
2019121981.tif 000011
【図１０】
2019121981.tif 000012