以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
<第1実施形態>
●移動天体検出処理の概要
まず、流星やスペースデブリなどの移動天体を検出する移動天体検出処理全体の構成を説明する。移動天体検出処理は、移動天体を検出するために必要な各種データを生成する前処理と、移動天体を検出する検出処理からなる。
前処理において生成されるデータは、撮像して得た画像に対してセンサや光学系の特性に応じて補正するための補正処理用データと、移動天体を検出するための検出処理用データである。補正処理用データは、輝度一定面を撮影したフラット補正用データ、シャッターを閉じ、光のない状態において撮影したバイアス補正用データ、露光時間0で撮影したダーク補正用データ、歪曲収差などの収差を表す収差データからなる。補正処理用データは、移動天体を観測する前にあらかじめ取得される。ただし観測条件が変化した場合には、必要に応じて観測を中断し、再度前処理を行って補正処理用データを取得する。検出処理用データは、検出処理に用いるフィルタ、非移動天体をマスクするためのマスクデータ、検出判定用の閾値などからなる。詳細については後述する。
本実施形態では、天空を撮影する際、露光時間を移動天体の移動量が1画素よりも十分長くかつ画像一辺の長さよりも短くなるように調整し、日周運動に合わせて撮像装置の向きを変えながら撮影する。このような撮影方法は恒星追尾モードなどと呼ばれ、1つの画像データにおいて移動天体は線分として写り、かつその線分が複数のフレームにまたがって写る。
このように線分として写る移動天体を検出する検出処理は、主に3段階からなる。第1段階では、あるフレームに対して、画素毎に移動天体を検出する。具体的には、処理対象のフレーム(画像データ)において、移動天体と考えられる線分を構成する画素を検出する。以後、第1段階の処理により得られるデータを画素毎検出データと呼ぶ。
第2段階では、あるフレームに対して検出された画素毎検出データのうち、同じ移動天体の軌道と考えられるものを統合する。つまり、画素毎検出データを統合して一つの線分を検出する。第2段階において得られるデータをフレーム内検出データと呼ぶ。1つのフレームにおいて、複数の移動天体が出現する場合、フレームごとに複数のフレーム内検出データが算出される。
最後に第3段階では、フレームごとに算出した複数のフレーム内検出データのうち、さらに同じ移動天体のものと考えられるものを統合する。つまり、複数のフレームにまたがって存在する線分を統合し、時刻とともに移動する線分として移動天体を検出する。以後第3段階において得られるデータを移動天体検出データと呼ぶ。
一連の動画を構成するフレームの中で、複数の移動天体が検出される可能性がある。一連の動画において複数の移動天体が観測されている場合、それに対応して移動天体検出データも複数存在する。このようにして得られる移動天体検出データと撮像した画像を解析することにより、宇宙空間における移動天体の位置、速度、光度などを解析できる。解析の結果、得られた移動天体の位置や速度から移動天体の軌道を推測することができる。
以上のように本実施形態では、まず前処理を行って各種データを生成し、次に撮影ないしは動画の入力によって次々と得られるフレームに対して処理を行い、移動天体を検する。
●装置の構成
図1は、第1の実施形態に適用可能な検出装置を示すブロック図である。
図1において、操作部108はユーザーからデータの入力、解析、出力などの指示を受け取り、その指示に対応した信号をCPU102に送る。CPU102は、RAM103をワークメモリとして使用し、ROM104に格納されたOSや各種プログラムを実行する。各処理部間におけるデータや信号の送受信は、バス105を通して行われる。
画像データ入力部101は、望遠鏡やデジタルカメラなどを用いて撮影した動画のフレーム(画像データ)を入力するためのインターフェースである。また、移動天体検出処理を行う対象となる天空を撮影した画像データに加え、画像データを補正するためのフラット補正用データ、バイアス補正用データ、ダーク補正用データも入力される。
画像データ補正処理部109は、画像データ入力部より入力された画像データに対して、固定パターンノイズの低減処理や歪曲収差など光学系の各種収差の補正を行う。以後、画像データ補正処理部109で処理された後のデータを補正画像データとする。つまり画像データの補正処理部109は、より精度よく移動天体を検出するために、移動天体検出対象の画像データを補正する。
移動天体検出処理用データ生成部110は、補正画像データを読み込み、移動天体検出処理に必要な検出処理用データを生成する。ここでは、検出処理用データとして、検出用フィルタ、マスクデータ、平均画像データを生成する。
移動天体検出部111は、検出処理用データを用いて、補正画像データにおいて移動天体を示す可能性の高い線分を構成する画素を検出する。移動天体検出部111は、画素毎検出データを生成する。前述した移動天体検出処理における第1段階に相当する。
フレーム内統合処理部112は、移動天体検出部111で生成された画素毎検出データから、フレーム内検出データを生成する。処理対象のフレームにおいて、同じ移動天体を示すと考えられる線分を統合する。もし移動天体が観測されていなければ、フレーム内検出データは生成されない。処理対象のフレームにおいて、1つ以上の移動天体が検出されていれば、移動天体ごとに1つ以上のフレーム内検出データが生成される。前述の移動天体検出処理における第2段階に相当する。
フレーム間統合処理部113は、同じ移動天体を示すと考えられる各フレームのフレーム内検出データを、フレーム間で統合し、移動天体検出データを生成する。前述の移動天体検出処理における第3段階に相当する。
出力部106は、ハードディスクや外部メモリ、ネットワークなどに各種データを出力するインターフェースである。具体的には、移動天体検出データを始め、画像データ、補正画像データ、検出処理用データ、画素毎検出データ、フレーム内検出データなどを出力する。これらのデータを保存するかどうかはユーザーが操作部108を介して事前に設定しておけばよい。
以降、各処理について詳細に説明する。
●画像データ補正処理の詳細
図2は画像データ補正処理部109の詳細な構成を示すブロック図である。センサノイズ低減処理部201は、画像データにおけるセンサ特有のノイズパターンを低減する処理を行う。センサノイズ低減処理には、RAM103内部の補正処理用データ記憶部202よりあらかじめ取得しておいたフラット補正データ、バイアス補正用データ、ダーク補正用データを用いる。その後、センサノイズが低減された画像データに対して収差補正部203は、収差特性記憶部204より画像データを撮像した装置の収差特性を読み込み、歪曲収差などの収差補正処理を行う。収差特性記憶部204は、補正画像データを出力する。補正画像データを保存するように設定されている場合は、収差補正部203は補正画像データ記憶部205に補正画像データを保存する。補正画像データは、移動天体検出処理用データ生成部110および移動天体検出部111に送られる。
●検出処理用データ生成処理の詳細
図3は、移動天体検出処理用データ生成部110の詳細な構成を示すブロック図である。移動天体検出処理用データ生成部110は検出処理用データとして、移動天体検出処理に用いられる平均画像データ、マスクデータおよび検出フィルタを生成する。平均画像生成部301、マスクデータ生成部302、検出フィルタ生成部303はそれぞれ、検出パラメータ記憶部305から必要な検出パラメータを受け取り、平均画像データ、マスクデータ、検出フィルタを生成する。
平均画像データは、処理対象となる複数の補正画像データを平均化し、平均画像データを生成する。この平均画像データは、処理対象の補正画像データそれぞれに含まれるランダムなノイズを低減したデータである。
マスクデータは、星や星雲、銀河など、移動せず明るい天体が存在する位置に対応する領域や、画像データに欠陥がある領域を示すデータである。マスクデータは、特定の領域に対して移動天体の検出を行わないようにするために用いられる。ここでは、明るい天体や欠陥がある領域における画素の画素値を0とし、それ以外の画素の画素値は1とする。画素値が0であれば天体検出の対象外としてマスクする。
検出フィルタは、移動天体を検出するために補正画像データに施されるフィルタ処理に用いられる。検出フィルタの生成は、限界等級算出部304において算出される限界等級と、検出パラメータを必要とする。なお、ここで生成される検出フィルタを用いたフィルタ処理結果の有意性を判定するための閾値も検出フィルタと合わせて生成される。検出フィルタについての詳細は後述する。
移動天体検出処理用データ生成部110は、補正画像データを1つ以上読み込んで処理を行う。
図4は、移動天体検出処理用データ生成部110における移動天体検出処理用データ生成処理のフローチャートを示す。まずステップS401において平均画像生成部301は、検出パラメータ記憶部305から検出パラメータとして、処理対象のフレームを取得する。
次にステップS402において平均画像生成部301は複数フレームから得られたそれぞれの補正画像データを読み取り、複数の補正画像データを画素毎に平均化することにより、1つの平均画像データを生成する。ここで言う「平均」とは、単純な画素毎の算術平均でもよいが、中央値などはずれ値に対してロバストな統計量を採用するとよい。なぜなら、宇宙空間を飛び交う高エネルギーの放射線である宇宙線などがセンサに衝突することによって、衝突した画素の周辺の輝度値が高くなる現象が稀に起こるためである。算術平均は外れ値の影響を受けやすく、この現象が起こった場合の算術平均は実際の平均値よりも大きな値となりやすい。一方中央値を用いた場合、そのようなはずれ値の影響を受けにくく、より良好な平均画像データを得ることができる。
次にステップS403において平均画像生成部301は、生成した平均画像データをRAM103内部にある平均画像記憶部306に保存する。
次に、ステップS404においてマスクデータ生成部302は、予め検出の対象から外したい天体等をマスク処理するためのマスクデータを生成する。まずマスクデータ生成部302は、マスクデータ生成に使用するパラメータを検出パラメータ記憶部305から取得する。マスクデータの具体的な生成法としては、従来天文学で用いられる高精度な天体検出手法を用いて検出対象としない恒星などを検出し、マスクデータを生成すればよい。あるいは簡易な方法として、平均画像データにおいて、所定の閾値を超える画素値を持つ画素を処理対象画素の領域としてマスクすればよい。これは、平均画像データにおいて突出した画素値を持つ画素は、恒星などの静止天体である可能性が高いためである。もしあからさまなはずれ値などがない事が目視などで確認できるのであれば、補正画像データに閾値処理を施してマスクデータを生成する事も可能である。これらの処理に必要なパラメータは検出パラメータ記憶部に格納しておく。
また、画像データにおいて欠陥があると想定される領域の位置も、あらかじめ検出パラメータ記憶部305に保存しておく。ステップS405においてマスクデータ生成部302は、取得した検出パラメータと平均画像データとからマスクデータを生成する。
ステップS406において生成したマスクデータは、RAM103内部のマスクデータ記憶部307に保存される。
次にステップS407において限界等級算出部304は、画像データ補正処理部109からいずれか一つの補正画像データを取得する。限界等級算出部304はマスクデータと望遠鏡の撮影方角情報を用いて、補正画像データに写っている明るさが既知の標準星を同定し、限界等級を算出する。
ステップS408においてフィルタ生成部303は限界等級算出部304から限界等級と検出フィルタを生成するための検出パラメータを検出パラメータ記憶部305から取得する。検出フィルタ生成に用いられる検出パラメータは、目標とする移動天体の等級および誤検出率の目標値などが挙げられる。
そしてステップS409においてフィルタ生成部303は取得した検出パタメータから観測時の状況に適した検出フィルタと、フィルタ処理の結果において検出の有意性を統計学的に判定するための閾値を生成する。
ステップS410において検出フィルタは検出フィルタ記憶部308に、閾値は閾値記憶部309にそれぞれ保存される。検出フィルタとその生成法の詳細は以下に検出処理全体の原理ともに述べる。
●移動天体検出の原理
それぞれの補正画像データから移動天体を検出する原理について説明する。はじめに補正画像データの補正誤差が十分小さい場合を例に説明する。なお補正画像データにおいて、水平方向および垂直方向の画素位置をそれぞれx、yとする。また、補正画像データのもととなる画像データを撮影した撮影時刻をtとする。そして撮影時刻tに撮影された画像データを補正して得られる補正画像データにおいて、画素位置x、yの画素値をI(x、y、t)と表す。補正画像データにおける画素値I(x、y、t)は、主に移動しない静止天体からの成分Os(x、y、t)、移動天体からの成分Om(x、y、t)、夜光などの空自体の明るさ(スカイレベルと呼ぶ)の成分S(x、y、t)、ランダムなノイズ成分N(x、y、t)からなる。撮影は、日周運動に合わせて望遠鏡やデジタルカメラの撮影方向を変えながら行われる。このとき、パルサーなどの稀な天体を除くと、静止天体からの成分Os(x、y、t)は撮影時刻tに対して変動しない。また、空からの成分S(x、y、t)も、霧や雲が出ている場合を除けば、数分程度の撮影時間中には殆ど変化しない。そのため、空からの成分S(x、y、t)も撮影時刻tに対しての変動は無視できる。よって、補正データの画素値を以下のように表現することができる。
I(x、y、t)
=Os(x、y)+S(x、y)+Om(x、y、t)+N(x、y、t) (1)
平均画像データは、撮影時間中における複数の補正画像データを時間tについて平均化したものである。平均画像データにおいて、静止天体からの成分と空からの成分は、これらが撮影時刻tに依存しないためそれぞれOs(x、y)とS(x,y)と等しくなる。一方、平均画像データにおける移動天体の成分とノイズ成分は、これらが時間tによって変化するため、補正データの移動天体の成分Om(x、y、t)とノイズ成分N(x、y、t)をそれぞれ平均化したものとなる。
まず移動天体の成分Om(x、y、t)について述べる。移動天体の出現は稀であるから、ほとんどの撮影時刻tにおいてOm(x、y、t)は0である。すなわち、ある画素位置x、yに着目すると、どのフレームにおいても全く移動天体が存在していない場合が多い。移動天体が存在しない場合、移動天体の成分Om(x、y、t)の平均値は、算術平均であっても中央値であっても0となる。また、複数の補正画像データにおいてある1つの補正画像データにおけるOm(x、y、t)のみ値Kを持っている場合、平均は、算術平均の場合はKをフレーム数Nfで割った値になり、中央値の場合フレーム数Nf≧2であれば0となる。十分な数の補正画像データを使って平均を計算すると、平均画像データ中の移動天体の成分Om(x、y、t)は全ての画素位置においてほぼ0にすることができる。
次に、ノイズ成分N(x、y、t)について述べる。ある補正画像データにおけるノイズ成分N(x、y、t)の分散をσ2(x、y)とする。フレーム数Nfの算術平均を計算すると、平均後のノイズ成分N(x、y、t)の平均値は0、分散はσ2(x、y)/Nfとなる。また、算術平均の代わりに中央値を用いると、平均後のノイズ成分N(x、y、t)の平均値は0、分散は1.2×σ2(x、y)/Nf程度になる事が知られている。よって、平均画像データ中のノイズ成分N(x、y、t)も十分な枚数のフレームを用いることにより、ほとんどの画素位置において0にする事ができる。その結果、平均画像データJ(x、y)は、以下のように表現できる。
J(x、y)=Os(x、y)+S(x,y)+N’(x,y) (2)
ここで、N’(x、y)は、平均化によりその分散がσ2(x、y)より小さいσ’2(x、y)となったノイズ成分である。
移動天体を効率よく検出するためには、静止天体からの成分Os(x、y)を取り除くとよい。取り除く方法はいくつか考えられるが、ここでは検出対象とする補正画像データから、平均画像データを差し引く例を示す。差し引いた後の画像データをA(x、y、t)とすると、
A(x,y、t)= I(x、y、t)− J(x、y)
=Om(x、y、t)+N(x、y、t)−N’(x,y)
=Om(x、y、t)+N’’(x、y、t) (3)
となる。ここで、N’’(x、y、t)は、N(x、y、t)とN’(x,y)を合成して得られるノイズ成分であり、その分散は分散の加法性よりσ2(x、y)+σ’2(x、y)となる。このように、補正画像データから平均画像データを差し引いた後の画像データは、移動天体成分Om(x、y、t)にランダムなノイズ成分N’’(x、y、t)が足されたものとなることがわかる。従って、補正画像データに移動天体が含まれなければOm(x、y、t)は0であるため、ノイズ成分のみの画像となる。
なお、静止天体からの成分Os(x、y)を取り除く別の方法としては、マスクデータによるマスク処理が挙げられる。マスクデータは静止天体が存在しない位置x、yにおいて値が1である。つまりOs(x、y)が0である点x、yにおいて値が1であるから、マスクデータが1である画素のみを解析対象とする事により、事実上Os(x、y)を取り除く事ができる。この場合はスカイレベルS(x、y)は依然残ったままであるが、スカイレベルS(x、y)を別途消去する事によって解析する事は可能である。このため、本発明において平均画像データを生成する事は必須の要件ではない事を述べておく。
ここで分散の平方根である標準偏差σ’’(x、y、t)で画像データA(x、y、t)を画素ごとに割った画像データC(x,y,t)を考える。移動天体が存在しない場合、この画像データC(x、y、t)は画素値の平均が0、分散が1に正規化された画像データに変換される。移動天体が存在する場合は、その移動天体の輝度値をに応じた値を持った。以後、画像データC(x、y、t)を正規化画像データと呼ぶ。
以下、この正規化画像データC(x、y、t)に対して、移動天体を検出する例を説明する。流星やスペースデブリなどの移動天体は露光時間中にも天体が移動しているため、星の様な点ではなく線分として画像データに写る。移動天体検出は、この線分を検出する。
正規化画像データC(x、y、t)上の画素(x0、y0)近傍で線分を検出するために、画素(x0、y0)とその近傍画素に対して線分検出のためのフィルタ処理をする。図5は、線分を検出するための検出フィルタの一例を示す。黒く塗りつぶされた画素が注目画素であり、斜線が描かれた注目画素を含む領域が参照する線分領域である。フィルタ処理では、注目画素(x0、y0)とその近傍画素を線分状に参照し、線分領域に含まれる画素の画素値の和(加算値)を算出する。図5に示す通り、参照する線分領域の方向は複数種類設定する、つまり複数の検出フィルタを用いる。この例では、参照する領域の幅Wが2画素、長さLが8画素であり、方向Dが(a)から(h)まで8種類存在する。図5に示すフィルタはいずれも、参照領域を示す斜線部に含まれるフィルタ係数は、1、それ以外の領域におけるフィルタ係数は0である。なお、参照領域に対応する画素のフィルタ係数は1ではなく重みづけされていてもよく、参照領域に含まれる画素の画素値の和に重みづけされた値が加算値として算出される。それぞれ8パターンの参照領域の画素値の和を算出した結果、8つの総和(加算値)が得られる。8つの加算値における最大値を画素(x0、y0)の選択値Hとして選択し、選択値Hが統計学的に設定されるある閾値Thを超えていれば、画素(x0、y0)近傍には、フィルタ処理の結果最大値を得た線分領域の方向に沿って、移動天体が存在するとみなすことができる。
なお、線分状の参照領域の幅は、検出しようとする移動天体の幅、すなわち光学系の点像分布関数(Point Spread Functionともいい、以下PSFと記す)の大きさに設定するのがよい。幅Wを移動天体の幅よりも広くすると、その分ノイズを多く拾うため検出精度が下がる。また、検出処理の速度を上げるため、参照領域は小さい方がよい。そのため、光学系のPSFの大きさが2画素ないしは3画素となるように光学系とセンサの画素ピッチをあらかじめ設計しておくことが望ましい。参照領域の長さLは、観測時の天候や湿度など気象状況で変化する限界等級と、検出しようとする移動天体の明るさに応じて決定する。例えば、その観測時における限界等級が15等級であり、17.5等級の移動天体を検出したい場合を考える。等級mの天体と輝度Iの天体のとの間にはI∝10^(−0.4×m)という関係があり、等級が2.5等暗い場合この天体は10倍暗い。概算すると、n倍暗い天体を同じ有意性で検出するためにはn^2倍の画素からなる参照領域が必要となる。従って、幅WがPSFの幅に設定されている場合の長さLは、幅Wの100倍程度大きな値にするとよい。領域の長さLをより大きくするとより暗い移動天体を検出することができる。しかしながら、参照領域が大きくなると検出処理が遅くなる上、長さLよりも短い線分に対する検出精度が落ちてしまう。よって、領域の長さLは、目標とする等級を有する天体を検出できるだけの長さに留めておく方がよい。従って、本発明では観測時の限界等級に応じて検出フィルタを生成する。方向Dは、検出する方向にとびが無いように設定すべきであり、3L/2W程度以上の種類があるとよい。
移動天体が存在すると判断するための閾値Thは、以下の観点から決定する。参照した線分状領域の画素数をPとする。図5の例ではP=16である。移動天体が存在しない場合、16画素の画素値の和Tは、平均値0、分散1を持つノイズ分布からランダムにP個の画素を選び、その画素値の和を取ったものと統計的にほぼ同じように振る舞う。従って、画素値の和Tの平均値は0であり、分散がPとみなせる。選択値Hは、異なるD種類の線分状領域における画素の画素値の和Tを計算し、その中の最大値により求められる。従って、選択値Hの統計的な振舞いは、前述の平均値0、分散Pのノイズ分布からD個のサンプルを取得したときの最大値が従う振舞いとほぼ一致する。具体的には、ノイズ成分N(x、y、t)がガウス分布に従う場合、選択値Hの確率分布関数PL(H)は以下のようになる。
ここで、πは円周率、erfは誤差関数である。この選択値Hの確率分布関数を鑑みて、選択値Hが移動天体が存在していること(正確には移動天体が存在していないという仮説を棄却すること)を示しているかどうかを判定するための閾値Thを設定する。ここでは統計学的な検定法にならい、ある棄却確率Pdを設定し、選択値Hが閾値Thを超える確率がPdよりも小さければ、そこに移動天体がないという仮説を棄却し、移動天体があると結論づける。一般的な統計学的な検定法では、棄却確率Pdは5%程度に設定される事が多いが、移動天体検出の場合それよりも小さい方が望ましい。それは、理論上棄却確率Pd程度で誤検出が起こるためである。仮に数百万画素からなる画像データの場合、棄却確率Pdを5%程度に設定すると、1つの補正画像データにつき10万個ほどの誤検出が起こる計算になり、以後の処理が困難になる。棄却確率Pdは、誤検出の個数がおよそ1つの補正画像データにつき数個ないしは数百個以内となるように設定した方がよい。例えば、補正画像データが数百万画素からなるデータであれば、棄却確率Pdを画素数の逆数の10マイナス4乗から10マイナス6乗程度に設定すればよい。そしてこの棄却確率に対応するKを閾値Thとする。具体的には、以下の式を満たすKを閾値Thとする。
確率分布関数PL(H)に従う選択値Hの期待値は、線分状領域のパターン数Dにも依存するが、画素数Pの平方根の2倍から3倍程度になる。上式から定められる閾値Thは、少なくとも選択値Hの期待値よりも大きな値であるはずである。通常は閾値Thは画素数Pの平方根の5倍程度以上であり、これよりも小さな値である場合は、棄却確率Pdが大きすぎるか、計算に誤りがあるとみてよい。逆に言えば、閾値Thを画素数Pの平方根の5倍以上の大きな値に設定する事で、誤検出を十分抑えて移動天体を検出する事が可能である。
以上の解析により、正規化画像データC(x、y、t)上の画素(x0、y0)を通る移動天体の有無と、移動天体が有る場合にはその方向が得られる。この処理を複数の画素位置で行う事により、画素毎の検出結果が得られる。
以上は補正画像データの補正誤差が十分小さい場合の例であった。次に、実際には補正誤差が無視できない場合や、薄い雲が存在するために誤検出が非常に多くなってしまう場合に対応するための処理を説明する。またこの処理は、補正画像データから平均画像データを差し引く処理をせず、補正画像データにスカイレベルS(x、y)が存在している場合でも上述の検出処理を可能とするものでもある。補正誤差が無視できない例としては、天候の影響により空が一様でなかったり、センサにおいて熱や電源などによりノイズが発生したりする場合がある。さらに天候による影響やセンサのノイズ特性は得られた画像データの領域ごとに異なるため、平均値やノイズ分散も画像データにおける領域によって異なる。この場合、前述のように画像データA(x、y、t)をある単一の標準偏差で割る正規化処理を施しただけでは正規化画像データにはならない。つまり正規化処理の結果、必ずしも十分に正規化された画像データが得られるとは限らない。そこで本実施形態では、画像データ全体を分割して部分領域を定義し、その領域毎に平均値と標準偏差とを求めて正規化する。部分領域は、例えばセンサの読み出しチャンネルなどに応じて分割すればよい。図6は、撮像したフレームにおいて薄い雲が出ている例を示す。なお薄い雲が出ている場合とスカイレベルS(x,y)が存在している場合は検出の原理的にはほぼ等価な状況である。
ただし、分割して得られる部分領域は、小さくし過ぎてしまうと、正規化処理の過程で移動天体の信号を弱めてしまい検出感度が下がってしまう。この検出感度の低下を回避するため、正規化処理を三段、ないしは二段階に分けるのがよい。三段階の場合は、第一に画像全体で第一正規化処理を行う。第一正規化処理により正規化処理された画像データに対して、センサ特性に応じて分割した部分領域毎に十分に正規化されているかどうかを確認し、正規化できていない場合に限り部分領域毎の第二正規化処理をする。そして、第二正規化処理により正規化処理された画像データに対して、部分領域をさらに細かく分割した小領域毎に十分に正規化されているかどうかを確認し、正規化できていない場合に限り小領域毎に第三正規化処理を施す。なお、第三正規化処理における小領域の大きさは、その一辺の長さが検出しようとする線分の倍程度以上になるようにしておく。二段階で正規化処理をする場合には、全体の正規化処理をスキップして、最初から任意に設定した部分領域毎の正規化から行えばよい。これら一連の操作により、画像データに無視できない補正誤差や薄い雲などが存在しても、各領域では適切に正規化された正規化画像データC(x、y、t)を得ることができる。なお、マスクデータM(x、y、t)を使用する場合には正規化処理はこれを考慮して行う。つまり、領域毎の平均値と標準偏差を算出する際には、マスクデータM(x、y、t)が処理対象外とすることを示す画素を無視して算出する。
この正規化処理をした後、減光処理を行う。減光処理とは、正規化画像データC(x、y、t)において、予め定められた閾値Th2を超える画素値を所定値に置換する処理である。所定値は、置換する画素の画素値よりも小さく、かつ0以上の値である。例えば、閾値Th2、所定値ともに3とした場合、画素値が3を超える画素は、画素値を3に置換される。なお、画像データにおけるスカイレベルが0ではない場合、所定値はスカイレベル以上であることが望ましい。このような減光処理により、宇宙線などによる輝点の誤検出を減らすことができる。
図7は、減光処理による効果を示す概念図である。前述したように、移動天体を示す線分を検出するためのフィルタ処理は、線分状の参照領域における画素値の和を算出する。そして、その和に基づく選択値を判定することにより移動天体を検出する。減光処理を行わなかった場合、線分状の参照領域内に非常に明るい画素が1画素だけでも存在すると、算出される画素値の和は大きくなるために移動天体を示す線分として検出されてしまう場合が起こりうる。しかし1、2画素しかない明るい画素がない輝点は、宇宙線などの何らかのノイズによる値であることが殆どであり、線分ではないので、移動天体としては誤検出である。そこで前述の減光処理を行うことにより、明るい輝点である画素を表す画素値は小さい画素値に置換され、フィルタ処理をしても線分は検出されない。
一方、非常に明るい画素値をもつ画素を0に置換すると、非常に明るい移動天体を検出できなくなってしまう。図7が示す通り明るい線分は、減光処理により多くの画素の画素値が小さくなるものの、フィルタ処理により線分として検出される。
このように減光処理を行うことにより、一回の判定で異常に明るい輝点の誤検出を防ぐことができる。正規化された画像データに対して減光処理を行い、かつ減光処理の後に判定部904が行うフィルタ処理に用いられる検出フィルタの幅がPSFと同等である場合、所定値は、閾値Thを検出フィルタの画素数Pで割った値か、それより1割程大きな値とすればよい。このように設定することにより、減光処理によって暗くなった移動天体の選択値が閾値Thを超えやすくなり、検出が可能となる。
例えば、閾値Thが画素数Pの平方根の6倍である場合、所定値は6をPの平方根で割った値となる。画素数Pが図5の様に16である場合、所定値は1.5かそれより1割程度大きな1.65とする。あるいは、検出フィルタの半分の長さでしか写ってない明るい移動天体を検出したければ、その倍の3.3程度としてもよい。閾値Thは24となるから、移動天体が2×4=8画素で写っていれば検出される。
また、検出フィルタの幅がPSFより大きい場合は、所定値を、検出フィルタの長さWにPSFの幅を掛けた値で割った値付近以上にすればよい。これは、移動天体の幅はおおよそPSFの幅であり、減光処理によって暗くなった移動天体が存在する場合の加算値が、おおよそ所定値×PSFの幅×検出フィルタ長さLとなるからである。このように、所定値は検出フィルタの画素数Pや閾値Thに応じて決めればよい。
一方、ノイズの標準偏差から所定値を決定してもよい。通常、限界等級はノイズの標準偏差の5倍ないしは10倍の輝度を持つ天体の明るさとして定められる。所定値がノイズの標準偏差の5倍より大きい場合、その値は1画素だけで有意な天体が存在するとみなせるほどの値である。このような大きさの輝度が加算されて加算値が算出されると、移動天体が存在しなくとも加算値が閾値Thを超えてしまい誤検出をしてしまう確率が高まる。移動天体の誤検出を避けるためには、1画素では光が微弱過ぎて検出とは見なせず、しかしながらその微弱な光が線分状に並んでいる場合には統計的に天体が存在するとみなせるような値に所定値を設定する必要がある。すなわち、少なくともノイズの標準偏差の5倍よりは小さくなくてはならず、さらに、ノイズの標準偏差よりは大きい必要がある。所定値が標準偏差より小さくなると、加算値が閾値を超えにくくなり検出できなくなる。好ましくは、ノイズの標準偏差の4倍以下の値に所定値を設定する。
以上の処理によって、移動天体を画素毎に方向情報とともに高精度で検出することができる。なお、画像全体、あるいは区画や部分領域毎のスカイレベル(平均値)とノイズの標準偏差が分かっていれば、画像全体を正規化した正規化画像を生成せずとも数式的には等価な処理をすることが可能である。従って平均値と標準偏差(ないしは分散)を導出する必要はあるが、正規化画像を生成するかどうかは本発明を限定するものではない。
次に、この画素毎の検出結果を統合する。移動天体は線分として写っているため、ある画素で移動天体が検出されている場合、ほとんどの場合はその方向に沿った複数の画素において、同じ移動天体が検出されている。これらを一つの移動天体としてまとめ、複数の画素位置情報を、線分の2つの端点の座標へとデータ形式を変換する。これが画素毎の検出結果の統合である。
以下、処理を具体的に述べる。移動天体が検出された画素は、移動天体の方向データを含んでいる。そこで、移動天体が検出された方向に沿って、他に方向がほぼ同じである移動天体が検出されないかを探し、見つかれば同じ移動天体であると判定する。そして、新たに見つかった移動天体に対して、同じ操作を再帰的に繰り返す。これにより、同じ移動天体に属する画素毎の検出情報(画素位置と方向)を結びつけることができる。複数の画素位置が同じ移動天体であるとして結び付けられると、線分状にならんだ画素位置の点群が得られる。この点群から、線分の端点を算出する。端点の算出方法はいくつか考えられる。例えば得られた点群からそれを近似する直線を求め、近似した直線に各点を射影して端点を探すと安定な結果が得られる。なお、移動天体の天球上での速度が遅く線分の長さが短い場合には、結び付けられる画素の数が1〜3画素程度しか存在せず、点群から近似直線を精度よく求めるのは難しい。この場合は、直線の方向は画素毎の検出結果から決定し、切片のみ求めればよい。より高速に線分の端点を求める必要がある場合は、点群の中から水平あるいは垂直方向の最大値と最小値を求め、それに対応する垂直あるいは水平方向の画素位置を抜き出してもよい。
最後にフレーム間で移動天体の検出結果を統合する。通常、移動天体は消失するか視野外に出るまでの間、複数のフレームにまたがって写っている。上述の処理によりフレーム毎に線分として検出された移動天体に対し、フレーム間で線分の対応を取って同一の移動天体であるものを結びつけて統合する。このように統合された検出結果がフレーム間検出結果である。このフレーム間における統合処理により、ある移動天体が出現して消失するまでのフレーム番号と移動天体の軌跡が得られる。なお、フレーム内で検出された移動天体に対して、前後数フレームでは統合すべき移動天体が見つからない場合もある。これは誤検出の可能性が高く、その後の解析も困難であるため、フレーム間において統合すべき移動天体がない検出結果は、破棄した方がよい。
あるフレームで検出された移動天体と別のフレームで検出された移動天体の同一性は、以下に示すような複数の条件を満たすかどうかにより判定される。最初の条件は、2つの線分の方向が同じであるかどうかである。ここで方向が全く異なれば別々の移動天体だと判定する。次の条件は、2つの移動天体が直線上に並んでいるかどうかである。ここで2つの線分が全く直線上に並んでいなければ、これらは別々の移動天体であると判定する。逆に2つの線分が直線上に並んでおり、さらにまだ一度も他のフレーム内検出データと対応がついていない場合はこの時点で同一の移動天体であると判定してもよい。これは、厳密には異なる移動天体が直線上に同時に発生する可能性は非常に低く、異なる移動天体が直線上に同時に発生する可能性を無視することができるためである。もし、誤検出も含めて移動天体の画素毎検出の頻度が多く、2つの移動天体が線分状に発生する可能性が無視できない場合には、2つの移動天体の間隔に対して追加で条件を課して判定すればよい。例えば2つの線分の間隔が、あるフレームにおける線分の長さよりも3倍以上大きいときには別々の天体だと判定する。これは移動天体が天球上で急激に加速する事が物理的にありえないために可能な判断である。ただし、あるフレームの露光と次のフレームの露光の間の時間が長い場合にはそれに応じて、線分の間隔に対する閾値をより大きくする必要がある。
すでにいずれかのフレーム内検出と対応がついている場合は、精度を上げるためにさらに非逆行性の条件を課して同一性の判定を行う。非逆行性とは移動天体が天球上で逆向きに進まない性質を指す。一度フレーム間で移動天体の対応がつくと、1つのフレームの検出結果では判り得ない移動天体の進行方向が判る。具体的には、2つの線分の端点の座標を比較する事で移動天体の始点と終点を判別する事ができる。例えば図8(a)ではフレームfの移動天体とフレームf+1の移動天体を統合すると、端点Aが始点であり、端点Dが終点となる。一方、図8(b)では、フレームfの移動天体とフレームf+1の移動天体を統合すると、端点Bが始点であり端点Cが終点となる。すでに2つのフレームで対応がついた移動天体に対し、3つめ以降のフレームで対応をつける際も同様の方法で可能である。このように求められた移動天体の進行方向を用いることで非逆行性の判定が可能となる。具体的には、すでに対応が取れて進行方向が判明している移動天体の始点と終点、ならびにこれから対応をつけようとしているフレーム内検出データの2つの端点を用いて行う。始点と終点の座標をそれぞれ(xi,yi),(xf,yf)とし、前記フレーム内検出データの端点の座標を(x1,y1), (x2,y2)として、以下の条件式を満たすかどうかで判定する。
{( xi < xf < max( x1, x2 ) ) or ( xi > xf > min( x1, x2 ) ) }
かつ {( yi < yf < max( y1, y2 ) ) or ( yi > yf > min( y1, y2 ) ) } (6)
この式が満たされている場合、移動天体のx座標とy座標は単調に増加ないしは減少しており、逆行をしていないといえる。なお、検出対象としている移動天体が人工衛星やスペースデブリなど、尾を引かない移動天体に限定している場合は、以下のさらに厳しい条件式を課すことができる。
{( xi < xf ≦ min( x1, x2 ) ) or ( xi > xf ≧ max( x1, x2 ) ) } かつ {( yi < yf ≦ min( y1, y2 ) ) or ( yi > yf ≧ max( y1, y2 ) ) } (7)
この非逆行性の判定を加えることにより、異なる移動天体を同じ物として対応づけてしまう誤判定が減らし、フレーム内検出データの信頼度を上げることができる。
以上の原理に基づいて、複数のフレームからなる画像データに対して移動天体を検出し、さらに移動天体が観測され始めたフレームと観測し終わったフレームと移動天体の始点と終点などを得ることができる。
以下、移動天体検出部111、フレーム内統合処理部112、およびフレーム間統合処理部113での処理の詳細を順に示す。
●移動天体検出部111の詳細
図9は、移動天体検出部111の詳細な構成を示すブロック図である。移動天体検出部111は、差分画像生成部901、正規化処理部902、減光処理部903、判定部904を有する。図10は、移動天体検出部111における動作の流れを示すフローチャートである。また、図11は、移動天体検出部111における正規化処理部902のさらに詳細な構成を示すブロック図である。また、図12は、正規化処理部902における正規化処理の流れを示すフローチャートである。以下、図9から図12を用いて、移動天体検出部111における動作を説明する。
まずステップS801において差分画像生成部901は、画像データ補正処理部109で処理された補正画像データと平均画像記憶部305に記憶された平均画像データとを読み込む。次に、ステップS802において差分画像生成部901は補正画像データから平均画像データを差し引き、差分画像データを生成する。
ステップS803において正規化処理部902は、マスクデータ記憶部306からマスクデータを読み込む。さらにステップS804において正規化処理部902は、差分画像データに対してマスク処理をした後、差分画像データを正規化する。
ここでは差分画像データを2段階に分けて正規化する例を図11と図12を用いて示す。まずステップS1201において平均分散計算部1101は、センサ特性に基づいてあらかじめ決められた区画を示すパラメータを分割方法記憶部906から取得する。そして平均分散計算部1101は、差分画像データに対してその区画毎に平均値と分散値を計算する。ステップS1202において第一正規化処理部1102は、平均分散計算部1101によって計算された平均値と分散値に基づいて、区画毎に差分画像データの正規化を行う。
次に、雲などの存在により正規化処理が阻害されていないかどうかを判定する。まず、ステップS1203において平均分散再計算部1103は、該区画よりもさらに細かな部分領域に差分画像データ分割し、部分領域ごとに平均値と分散値を計算する。そしてステップS1204において、この平均値と分散値を基に、第一正規化結果判定部1104における正規化処理が成功したかどうかを判定する。具体的にはこの平均値が有意にスカイレベル(第一正規化処理により0)から外れていないかという観点と、この分散が元の区画の分散(第一正規化処理により1)よりも有意に大きくなってはいないかという観点で判断を行う。例えば平均値のずれはt検定、分散のずれはF検定で判断できる。この判定によって正規化に失敗していると判断されれば、ステップS1205に進み、平均分散再計算部1103にて算出された平均値と標準偏差を用いて、再正規化処理部1105は各部分領域を正規化し正規化画像データを生成する。正規化に成功している場合には再正規化処理は行わず、このフローを終了する。
以下、図9と図10に戻り説明を続ける。ステップS805において減光処理部903は、宇宙線などによる輝点を線分と誤検出しないため、検出パラメータ記憶部305から閾値Th2と所定値を取得し、減光処理を行う。
ステップS806において判定部904は検出パラメータ記憶部から検出した線分が移動天体を示すかどうかを判定するのに必要な閾値Thを取得し、さらに出フィルタ記憶部308から検出フィルタ群を読み込む。
ステップS807において判定部904は、画素毎に線分を検出する処理を行う。まず、注目画素に検出フィルタ群をそれぞれ適用してフィルタ処理をする。ここで施されるフィルタ処理では、注目画素を含む線分状の参照領域における各画素値の和を算出する。フィルタ処理により算出した複数の和のうち最大となる線分方向を探索し、その最大の和を選択値として選択する。
そしてステップS808において、算出した選択値と閾値Thを比較し移動天体の有無を判定する。移動天体があると判定された場合にはステップS809に、移動天体がないと判定された場合にはステップS810に進む。ステップS809においては、移動天体として判定された選択値とその選択値に対応する線分の方向を記録する。
ステップS810において処理対象の補正画像データにおいて全ての画素に対して処理を行ったか判定し、判定すべき画素が残っていればステップS807に戻る。判定すべき画素がなければステップS811に進む。
このように処理対象の補正画像データにおける全ての画素に対してステップS807からステップS809までの処理を繰り返し行い、画素毎検出データを得る。そしてステップS811において、画素毎検出データを画素毎検出データ記憶部905に保存するよう設定されているか判定する。ステップS811において保存するよう設定されていると判定された場合は、ステップS812に進み、画素毎検出データを画素毎検出データ記憶部905に保存する。以上が移動天体検出部111における処理である。
●フレーム内統合処理部112の詳細
図13はフレーム内統合処理部112の詳細な構成を示すブロック図である。フレーム内藤堂処理部112は、検出画素統合部1301、端点算出部1302、輝度値算出部1303を有する。図14は、フレーム内統合処理部112におけるフレーム内統合処理の流れを示すフローチャートである。
まず、ステップS1401において検出画素統合部1301は、検出パラメータ記憶部305から統合に必要な各パラメータを取得する。具体的には、移動天体検出部110によって付加される方向情報に対応する同一移動天体の探索範囲と、方向が同じであるかどうかを判定するための閾値を検出パラメータとして取得する。方向情報に対応する探索範囲としては様々な例が考えられるが、移動天体の画素毎の検出に使用した検出フィルタ群の形状が適している。
検出パラメータ取得後、ステップS1402において検出画素統合部1301は、画素を順番に調べ、移動天体が検出されたかどうかを判定する。移動天体が検出されている場合、その移動天体を示す線分の方向に沿って、他にも線分が検出された画素が存在するか探索する。
ステップS1403において探索先の画素他の線分があるかを調べる。ステップS1403においてまだ統合されていない移動天体が見つかった場合、ステップS1404に進み、ステップS1404においてそれが同一の移動天体であるかどうかを方向の同一性から判定する。
ステップS1405において同一の移動天体であれば情報を統合し、さらに再帰的に探索を行う。同一の移動天体でなければ何もせず次に進む。
ステップS1406において全ての周辺領域を探索したか判定し、未探索の画素があればステップS1403に戻り、全ての周辺領域を探索している場合は処理を終了する。なお、ステップS1405の再帰的に探索とは、ステップS1404で同一と判定された移動天体に対し、ステップS1403からステップS1406の処理を繰り返して探索することである。この再帰的探索により、処理対象フレームにおいて同一の移動天体に属する画素毎検出データが統合される。
ここで、ステップS1407において、統合されたある移動天体が複数の画素で検出されたものであるかどうかを調べる。移動天体が複数の画素で検出されたものでなかった場合には、ステップS1411に進み、その画素は誤検出であると判断する。移動天体が複数の画素で検出されたものであればステップS1408進み、統合した結果を端点算出部1302に送る。端点算出部1302は統合した画素毎の検出結果から移動天体の端点を求める。ステップS1409において輝度値算出部1303は、画像データ前処理部109から補正画像データを取得し、移動天体毎に輝度値を算出する。
ステップS1410において、算出した端点と輝度値とともに検出画素数やフレーム番号も加えた情報を、フレーム内検出データとしてフレーム内検出データ記憶部1304に追加記録する。
ステップS1412において、処理対象フレームにおける全ての画素に対して処理したかを判定し、未処理の画素が存在する場合はステップS1402に戻り、全ての画素に対して処理されている場合は画素毎検出データの統合処理が完了となる。
以上のようなフレーム内統合処理によって、フレーム内に存在する移動天体の数だけフレーム内検出データが生成される。
●フレーム間統合処理部113の詳細
図15はフレーム間統合処理部113の詳細な構成を示すブロック図である。フレーム間統合処理部113は、同一性判定部1501、移動天体検出データバッファ1502、検出情報算出部1503を有する。
図16は、フレーム間統合処理部113が行うフレーム間統合処理の流れを示すフローチャートである。
同一性判定部1501はフレーム内検出データ記憶部1304または後述する移動天体検出データバッファから、移動天体を示すデータを2つ取得し、それぞれが示す移動天体が同一あるかどうかを判定する。図17はこの同一性判定部1501のさらなる詳細を示すブロック図である。同一性判定部1501は方向一致判定部1701、同一直線判定部1702、非逆行性判定部1703、移動天体検出データ更新部1704を有する。
方向一致判定部1701は、2つの移動天体の方向が一致するかどうかを判定する。また、同一直線判定部1702は、方向一致判定部1701が判定した2つの移動天体が同一直線上に存在するかどうかを判定する。非逆行性判定部1703はさらに、判定対象の2つの移動天体が逆行していないかどうかを判定する。2つの移動天体が同一であると判定された場合、移動天体検出データ更新部1704は、移動天体検出データを更新する。移動天体検出データとは、フレーム間統合処理して得られるデータである。つまり、異なるフレームそれぞれのフレーム内検出データから移動天体を示す線分を統合したデータである。本実施形態では始めに、フレーム内検出データが示す移動天体とそれとは別のフレーム内検出データが示す移動天体が同一の場合、統合して移動天体検出データにする。その後、随時移動天体検出データに、さらに統合すべきフレーム内検出データがないか判定いし、移動天体検出データを更新していく。移動天体検出データバッファ1502は、複数ある移動天体検出データを一時的に記憶しておくバッファである。検出情報算出部1503は、移動天体検出データに移動天体の速度などの情報を付加する。
フレーム間統合処理は以下のように進む。まずステップS1601において同一性判定部1501は、フレーム内検出データ記憶部1304または移動天体検出データバッファ1502から、移動天体を示すデータを2つ取得する。同一性判定部1501は、検出パラメータ記憶部305から、処理対象の移動天体が同一であるかどうかを判定するためのパラメータを取得し、方向一致判定部1701、同一直線判定部1702、非逆行性判定部1703に格納する。このパラメータは、具体的には2つの移動天体が同じ方向であるとみなすための閾値や、直線状に並んでいるとみなすための閾値などである。
ステップS1602において同一性判定部1501は、フレーム内検出データ記憶部1304から、一つのフレーム内検出データを取得する。なお、フレーム内検出データはフレームの早い順に取得するものとする。
ステップS1603において同一性判定部1501は、移動天体検出データバッファ1502に格納された移動天体検出データがあるか確認し、なければステップS1610に進む。移動天体検出データがあればステップS1604に進み、一つ取得する。そしてステップ1605においてフレーム内検出データと移動天体検出データが同一の移動天体であるかどうかを判定する。
同一の移動天体であるかどうか判定の詳細は図18のフローチャートに示すとおりである。まずステップS1801において方向一致判定部1701は、二つの移動天体の進行方向があらかじめ決められた範囲内で一致するかどうかを判定する。
方向が一致すると判定された場合、ステップS1802において同一直線判定部1702は2つの移動天体があらかじめ決められた範囲内で同一直線上にあるか判定する。ステップS1801あるいはステップS1802が否定された場合は、二つの移動天体は同一ではないと判定され、ステップS1803に進む。
ステップS1802で同一直線上にあると判定された場合、ステップS1804において非逆行性判定部1703は、移動天体検出データが複数のフレームにまたがったものかどうか判定する。具体的には、移動天体検出データに含まれる開始フレーム番号と終了フレーム番号が一致しないことを確認すればよい。
複数フレームにまたがったものである場合、ステップS1805に進み、判定対象であるフレーム内移動天体検出データの端点または移動天体検出データの始点と終点の座標に基づいて、同一の移動天体とみなした場合に移動天体が逆行する事にならないか判定を行う。
逆行している場合、ステップS1803に進み2つの移動天体は同一ではないと判断され、逆行していなければステップS1806において同一の移動天体であると判定される。ステップS1804にて移動天体検出データが複数のフレームにまたがったものでない場合には始点と終点が不明であるため、同一天体であると判断する。
以下、図16に戻り、フレーム間統合処理の詳細の説明を続ける。
ステップS1605にてフレーム内検出データと移動天体検出データが同一天体であると判断された場合、ステップS1606において移動天体検出データと統合して移動天体の始点と終点および終了フレーム番号の値などを更新する。
次にステップS1607においてフレーム内検出データ記憶部1304に未判定のフレーム内検出データがないか判定する。未判定のフレーム内検出データが存在する場合は、ステップS1602に戻る。ステップS1605にてフレーム内検出データと移動天体検出データが同一の天体のものではないと判断された場合、ステップS1608に進み、移動天体検出データの終了フレーム番号がフレーム内検出データのフレームよりも一定数以上過去のものであるかどうかを調べる。一定数以上過去のものでなければ何もせずステップS1603に戻るが、一定数以上過去のものであればすでにその移動天体は消失したか視野外に出たと判定し、移動天体検出データを確定する処理を行う。
ステップS1609において、確定する移動天体検出データに対応する移動天体検出データバッファ1502中の該当データは削除し、確定する移動天体検出データを検出情報算出部1603に送る。検出情報算出部1603は移動天体の始点、終点、開始フレーム、終了フレームに加え、天球面上での速度などの追加検出情報を算出して、移動天体検出データ記憶部1504に追加記録する。ただしこのとき、移動天体が複数フレームにまたがって検出されているのでなければ、誤検出の可能性があるので破棄するのが好ましい。ステップS1609の後、ステップS1603に戻り、移動天体検出データバッファ1502に格納された次の移動天体検出データとの比較を続ける。
ステップS1603にて移動天体検出データバッファ1502に未判定の移動天体検出データが存在しない場合、ステップS1610において、ステップS1602で読み込んだフレーム内検出データを移動天体検出データに変換し、移動天体検出データバッファ1502に追加する。なお、この時点では移動天体の始点と終点は不明であるため、フレーム内検出データの端点をそれぞれ始点と終点に割り当てて記録しておく。また、開始フレーム番号と終了フレーム番号はフレーム内検出データのフレーム番号を割り当てる。
このように処理を進めて、ステップS1607にて未判定のフレーム内移動天体検出データがなくなった場合、移動天体検出データバッファ1502に残る未確定の移動天体検出データを全て検出情報算出部1503に送る。検出情報算出部1503は、送られた移動天体検出データのそれぞれに対し、複数フレームにまたがっていないものは破棄し、またがっているものは追加検出情報を算出してその結果を移動天体検出データ記憶部1504に記録する。
以上の一連の処理により、天空を撮影した動画を構成する複数のフレームから、移動天体を効率よく検出することが可能となる。特に本実施形態では、これにより複数の方向の線分をフィルタ処理により検出したことで、未知の軌道である移動天体も効率よく検出することができる。さらに、注目画素が移動天体であるかどうかを精度よく統計学的に判定するため、線分を抽出するための検出フィルタを限界等級に応じて設定した。以上により、効率よく移動天体を検出することができる。さらに本実施形態によれば、完全に晴れていなくとも天体が透けて見える程度の曇りであれば移動天体を検出を行うことが可能である。
<その他の実施形態>
本発明は、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても実現できる。この場合、そのシステム或いは装置のコンピュータ(又はCPUやMPU)がコンピュータが読み取り可能に記憶媒体に格納されたコンピュータプログラムコードを読み出し実行することにより、上述した実施例の機能を実現する。