(57)【要約】      （修正有）【課題】階層型の勾配法において、画像パターンに応じた変位量の収束の容易さを考慮することにより、特徴点の追跡を効率的に行う。【解決手段】変位算出部２６は、画像メモリ１４中の基準ピラミッドpy1及び追跡ピラミッドpy2から画像サイズが最小の階層画像をそれぞれ読み込んで、勾配法を用いて追跡点の反復検出を実行する。そして求めた特徴点間の変位量を繰り返し算出し、変位量が収束するまでの追跡点検出の反復回数及び収束時における変位量の値を反復条件設定部２８に出力する。反復条件設定部２８は、入力された反復回数及び変位量に基づいて変位量の収束判定の条件を設定する。変位算出部２６は設定された収束判定条件に従って上位の階層画像を読み込んで追跡点検出を行う。そして上記追跡点の反復検出と収束条件の設定変更が繰り返される。これにより追跡点の反復検出回数を抑制している。【選択図】図１
2010009375.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像と第２の画像とを取得する画像取得手段と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成手段と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出手段と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出手段とを備え、
前記追跡点検出手段は、
所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出手段と、
前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出手段の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力手段と、
前記検出結果出力手段から出力された前記変位量及び前記反復回数の値に応じて、前記第１の解像度よりも高い第２の解像度の前記第１及び前記第２の階層画像に対して前記追跡点検出手段による前記追跡点の検出を実行するときにおける前記第１の閾値を設定する条件設定手段と、
を備える画像処理装置。
【請求項２】
前記条件設定手段が、前記検出結果出力手段から出力された前記変位量の値が第３の閾値よりも小さい場合に、前記変位量が該第３の閾値以上の場合よりも前記第１の閾値を小さくする、請求項１記載の画像処理装置。
【請求項３】
前記条件設定手段が、前記検出結果出力手段から出力された前記反復回数の値が第４の閾値よりも小さい場合に、前記反復回数が該第４の閾値以上の場合よりも前記第１の閾値を小さくする、請求項１又は２記載の画像処理装置。
【請求項４】
前記検出結果出力手段から出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を選択する階層選択手段を更に備える請求項１から３のいずれか１項記載の画像処理装置。
【請求項５】
第１の画像と第２の画像とを取得する画像取得手段と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成手段と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出手段と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出手段とを備え、
前記追跡点検出手段は、
所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出手段と、
前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出手段の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力手段とを備え、
前記検出結果出力手段から出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を選択する階層選択手段を更に備える画像処理装置。
【請求項６】
前記階層選択手段が、前記検出結果出力手段から出力された前記変位量の値が第５の閾値よりも小さい場合に、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定する、請求項５記載の画像処理装置。
【請求項７】
前記階層選択手段が、前記検出結果出力手段から出力された前記反復回数の値が第６の閾値よりも小さい場合に、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定する、請求項５又は６記載の画像処理装置。
【請求項８】
第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得手段と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する第１の階層画像作成手段と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出手段と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点の前記第２の画像上の追跡点の位置を検出する第１の順次検出手段と、
前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出手段と、
前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第３の画像から作成する階層画像の階層数を設定する階層数設定手段と、
前記第３の画像に段階的に縮小処理を施して解像度が異なる第３の階層画像を、前記階層数設定手段により設定された階層数分作成し、第３の階層画像群を作成する第２の階層画像作成手段と、
所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出手段と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第３の階層画像群に含まれる解像度が低い階層画像から順に前記第２の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出手段と、
を備える画像処理装置。
【請求項９】
前記階層数設定手段が、前記ズレ量が大きいほど前記階層数が多くなるように設定する、請求項８記載の画像処理装置。
【請求項１０】
前記ズレ量算出手段が、前記第１及び第２の画像上における特徴点と追跡点の位置から特徴点の移動方向及び移動量を示す動きベクトルを作成し、前記動きベクトルの平均値又はメディアン値を前記ズレ量として算出する、請求項８又は９記載の画像処理装置。
【請求項１１】
前記ズレ量算出手段が、前記第１の画像と第２の画像との間のズレ量と、前記第１の画像と前記第３の画像とを等しいと推定する、請求項８から１０のいずれか１項記載の画像処理装置。
【請求項１２】
第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得手段と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成し、前記第３の画像に段階的に縮小処理を施して解像度が異なる複数の第３の階層画像を含む第３の階層画像群を作成する階層画像作成手段と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出手段と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出手段と、
前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出手段と、
前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第１の画像と第３の画像との間で、特徴点検出を開始する開始階層を設定する開始階層設定手段と、
所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出手段と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記開始階層の階層画像から階層度が低い順に前記第２の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出手段と、
を備える画像処理装置。
【請求項１３】
前記開始階層設定手段が、前記ズレ量が大きいほど前記解像度がより低い階層の階層画像を前記開始階層に設定する、請求項１２記載の画像処理装置。
【請求項１４】
前記ズレ量算出手段が、前記第１の画像と第２の画像との間のズレ量と、前記第１の画像と前記第３の画像とを等しいと推定する、請求項１２又は１３記載の画像処理装置。
【請求項１５】
第１の画像と第２の画像とを取得する画像取得工程と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成工程と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出工程と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出工程とを含み、
前記追跡点検出工程は、
所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出工程と、
前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出工程の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力工程と、
前記検出結果出力工程で出力された前記変位量及び前記反復回数の値に応じて、前記第１の解像度よりも高い第２の解像度の前記第１及び前記第２の階層画像に対して前記追跡点検出工程による前記追跡点の検出を実行するときにおける前記第１の閾値を設定する条件設定工程と、
を含む画像処理方法。
【請求項１６】
前記条件設定工程では、前記検出結果出力工程で出力された前記変位量の値が第３の閾値よりも小さい場合に、前記変位量が該第３の閾値以上の場合よりも前記第１の閾値を小さくする、請求項１５記載の画像処理方法。
【請求項１７】
前記条件設定工程では、前記検出結果出力工程で出力された前記反復回数の値が第４の閾値よりも小さい場合に、前記反復回数が該第４の閾値以上の場合よりも前記第１の閾値を小さくする、請求項１５又は１６記載の画像処理方法。
【請求項１８】
前記検出結果出力工程で出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を選択する階層選択工程を更に備える請求項１５から１７のいずれか１項記載の画像処理方法。
【請求項１９】
第１の画像と第２の画像とを取得する画像取得工程と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成工程と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出工程と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出工程とを含み、
前記追跡点検出工程は、
所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出工程と、
前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出工程の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力工程とを含み、
前記検出結果出力工程で出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を選択する階層選択工程を更に含む画像処理方法。
【請求項２０】
前記階層選択工程では、前記検出結果出力工程で出力された前記変位量の値が第５の閾値よりも小さい場合に、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定する、請求項１９記載の画像処理方法。
【請求項２１】
前記階層選択工程では、前記検出結果出力工程で出力された前記反復回数の値が第６の閾値よりも小さい場合に、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定する、請求項１９又は２０記載の画像処理方法。
【請求項２２】
第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得工程と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する第１の階層画像作成工程と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出工程と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点の前記第２の画像上の追跡点の位置を検出する第１の順次検出工程と、
前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出工程と、
前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第３の画像から作成する階層画像の階層数を設定する階層数設定工程と、
前記第３の画像に段階的に縮小処理を施して解像度が異なる第３の階層画像を、前記階層数設定工程で設定された階層数分作成し、第３の階層画像群を作成する第２の階層画像作成工程と、
所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出工程と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第３の階層画像群に含まれる解像度が低い階層画像から順に前記第２の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出工程と、
を含む画像処理方法。
【請求項２３】
前記階層数設定工程では、前記ズレ量が大きいほど前記階層数が多くなるように設定する、請求項２２記載の画像処理方法。
【請求項２４】
第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得工程と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成し、前記第３の画像に段階的に縮小処理を施して解像度が異なる複数の第３の階層画像を含む第３の階層画像群を作成する階層画像作成工程と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出工程と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出工程と、
前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出工程と、
前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第１の画像と第３の画像との間で、特徴点検出を開始する開始階層を設定する開始階層設定工程と、
所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出工程と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記開始階層の階層画像から階層度が低い順に前記第２の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出工程と、
を含む画像処理方法。
【請求項２５】
前記開始階層設定工程では、前記ズレ量が大きいほど前記解像度がより低い階層の階層画像を前記開始階層に設定する、請求項２４記載の画像処理方法。
【請求項２６】
第１の画像と第２の画像とを取得する画像取得機能と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成機能と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出機能と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出機能とをコンピュータに実現させる画像処理プログラムであって、
前記追跡点検出機能は、
所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出機能と、
前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出機能の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力機能と、
前記検出結果出力機能により出力された前記変位量及び前記反復回数の値に応じて、前記第１の解像度よりも高い第２の解像度の前記第１及び前記第２の階層画像に対して前記追跡点検出機能による前記追跡点の検出を実行するときにおける前記第１の閾値を設定する条件設定機能と、
を含む画像処理プログラム。
【請求項２７】
前記条件設定機能により、前記検出結果出力機能により出力された前記変位量の値が第３の閾値よりも小さい場合に、前記変位量が該第３の閾値以上の場合よりも前記第１の閾値を小さくする、請求項２６記載の画像処理プログラム。
【請求項２８】
前記条件設定機能により、前記検出結果出力機能により出力された前記反復回数の値が第４の閾値よりも小さい場合に、前記反復回数が該第４の閾値以上の場合よりも前記第１の閾値を小さくする、請求項２６又は２７記載の画像処理プログラム。
【請求項２９】
前記検出結果出力機能により出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を選択する階層選択機能をコンピュータに実現させる請求項２６から２８のいずれか１項記載の画像処理プログラム。
【請求項３０】
第１の画像と第２の画像とを取得する画像取得機能と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成機能と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出機能と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出機能とをコンピュータに実現させる画像処理プログラムであって、
前記追跡点検出機能は、
所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出機能と、
前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出機能の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力機能とを含んでおり、
前記検出結果出力機能により出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を選択する階層選択機能をコンピュータに実現させる画像処理プログラム。
【請求項３１】
前記階層選択機能により、前記検出結果出力機能により出力された前記変位量の値が第５の閾値よりも小さい場合に、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定する、請求項３０記載の画像処理プログラム。
【請求項３２】
前記階層選択機能により、前記検出結果出力機能により出力された前記反復回数の値が第６の閾値よりも小さい場合に、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定する、請求項３０又は３１記載の画像処理プログラム。
【請求項３３】
第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得機能と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する第１の階層画像作成機能と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の特徴点検出機能と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出機能と、
前記第１及び第２の画像上における追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出機能と、
前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第３の画像から作成する階層画像の階層数を設定する階層数設定機能と、
前記第３の画像に段階的に縮小処理を施して解像度が異なる第３の階層画像を、前記階層数設定機能により設定された階層数分作成し、第３の階層画像群を作成する第２の階層画像作成機能と、
所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の特徴点検出機能と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第３の階層画像群に含まれる解像度が低い階層画像から順に前記第２の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出機能と、
をコンピュータに実現させる画像処理プログラム。
【請求項３４】
前記階層数設定機能により、前記ズレ量が大きいほど前記階層数が多くなるように設定する、請求項３３記載の画像処理プログラム。
【請求項３５】
第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得機能と、
前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成し、前記第３の画像に段階的に縮小処理を施して解像度が異なる複数の第３の階層画像を含む第３の階層画像群を作成する階層画像作成機能と、
所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出機能と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出機能と、
前記第１及び第２の画像上における追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出機能と、
前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第１の画像と第３の画像との間で、特徴点検出を開始する開始階層を設定する開始階層設定機能と、
所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出機能と、
解像度が低い階層画像における追跡点の検出結果を反映しながら、前記開始階層の階層画像から階層度が低い順に前記第２の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出機能と、
をコンピュータに実現させる画像処理プログラム。
【請求項３６】
前記開始階層設定機能により、前記ズレ量が大きいほど前記解像度がより低い階層の階層画像を前記開始階層に設定する、請求項３５記載の画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法及び画像処理プログラムに係り、特に複数枚の画像に写っている被写体の動きを検出する画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
複数枚の画像に写っている被写体の動きを検出する方法として、基準となる画像（以下、基準画像という。）上における特徴点（画素）がもう一方の画像（以下、追跡画像という。）上でどこに移動したかを推定する手法、つまり、特徴点の軌跡（オプティカルフロー）を追跡（推定）する手法が提案されている。
【０００３】
複数枚の画像の間で特徴点を追跡する手法の代表的なものとして、Lucas-Kanade法に代表される勾配法がある。勾配法は、特徴点の変位（動き量）を、時間方向と空間方向の画像信号の勾配（１次微分）から求めるものであり、例えば、特許文献１に記載されているように、オプティカルフローと時空間微分の拘束式を、所定の条件のもとで解くことにより、特徴点の変位を計算するものである。
【０００４】
一般に、勾配法では、被写体の動きが大きい場合に変位の計算の精度が下がるという問題がある。このような問題を解決するための手法として階層型の勾配法が提案されている（特許文献１及び２）。階層型の勾配法は、基準画像及び追跡画像を段階的に縮小してピラミッド階層状にピラミッド階層画像群を生成し、このピラミッド階層画像群のうちの画像サイズ（画素数）が小さい（即ち、移動前後の特徴点間の変位量（画素数）が小さい）階層画像から順に特徴点の座標を検出するとともに、画像サイズがより大きい階層画像において特徴点を検出するときに画像サイズが小さい階層画像における特徴点の検出結果（追跡結果）を反映するようにしたものである。
【特許文献１】特許第３４３５０８４号公報
【特許文献２】特開２００７−４９５４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、勾配法では、基準画像上の所定の特徴点に対応する点を、追跡画像上において繰り返し検出を行うことで、特徴点をより正確に追跡することが可能になる。具体的には、追跡画像上における特徴点（追跡点）の位置を繰り返し求める。そして、最新の追跡点の座標の値と、その前に求めた追跡点の座標の値の差分値（変位量）が所定の値未満になった場合に、変位量が収束したと判定して追跡点の反復検出を終了する。この工程を各階層画像に対して繰り返すことでより正確に特徴点の追跡を行うことが可能になる。
【０００６】
しかしながら、追跡点の変位量の収束の容易さは、特徴点及び追跡点近傍の画像パターン（例えば、画像信号（輝度）の分布）によって変動する。階層型の勾配法では、ピラミッド階層画像群の階層ごとに追跡点の反復検出を行うことになるため、上記の方法によれば、追跡点の検出工程及び変位算出工程を必要以上に繰り返してしまうという無駄が生じ、非効率であった。
【０００７】
本発明はこのような事情に鑑みてなされたもので、階層型の勾配法において、画像パターンに応じた変位量の収束の容易さを考慮することにより、特徴点の追跡を効率的に行うことを可能にした画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の態様に係る画像処理装置は、第１の画像と第２の画像とを取得する画像取得手段と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成手段と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出手段と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出手段とを備え、前記追跡点検出手段は、所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出手段と、前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出手段の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力手段と、前記検出結果出力手段から出力された前記変位量及び前記反復回数の値に応じて、前記第１の解像度よりも高い第２の解像度の前記第１及び前記第２の階層画像に対して前記追跡点検出手段による前記追跡点の検出を実行するときにおける前記第１の閾値を設定する条件設定手段とを備える。
【０００９】
上記第１の態様によれば、所定の階層における追跡点の反復検出の結果得られた追跡点間の変位量及び反復回数の値から、その追跡点の追跡しやすさを判定し、追跡しづらいと判定された場合に（例えば、変位量の値が閾値以上の場合や、変位算出の反復回数が閾値以上の場合）、変位収束判定に用いる第１の閾値の値を適切に設定することにより、次の階層で変位量の収束が容易になるので、反復回数の増大を抑制することができる。これにより、追跡点検出処理の高速化を実現することができる。
【００１０】
本発明の第２の態様に係る画像処理装置は、上記第１の態様において、前記条件設定手段が、前記検出結果出力手段から出力された前記変位量の値が第３の閾値よりも小さい場合に、前記変位量が該第３の閾値以上の場合よりも前記第１の閾値を小さくするように構成したものである。
【００１１】
上記第２の態様によれば、所定の階層における追跡点の反復検出の結果得られた追跡点間の変位量の値に応じて、変位収束判定に用いる第１の閾値の値を適切に設定することにより、次の階層で変位量の収束が容易になるので、反復回数の増大を抑制することができる。これにより、追跡点検出処理の高速化を実現することができる。
【００１２】
本発明の第３の態様に係る画像処理装置は、上記第１又は第２の態様において、前記条件設定手段が、前記検出結果出力手段から出力された前記反復回数の値が第４の閾値よりも小さい場合に、前記反復回数が該第４の閾値以上の場合よりも前記第１の閾値を小さくするように構成したものである。
【００１３】
上記第３の態様によれば、所定の階層における追跡点の反復検出の結果得られた追跡点検出の反復回数の値に応じて、変位収束判定に用いる第１の閾値の値を適切に設定することにより、次の階層で変位量の収束が容易になるので、反復回数の増大を抑制することができる。これにより、追跡点検出処理の高速化を実現することができる。
【００１４】
本発明の第４の態様に係る画像処理装置は、上記第１から第３の態様において、前記検出結果出力手段から出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を選択する階層選択手段を更に備えるものである。
【００１５】
上記第４の態様によれば、所定の階層における追跡点検出の結果から、その追跡点が追跡しやすいかどうかを判断し、追跡しやすい場合に、次の追跡対象階層を次に上位の階層より高解像度の階層に設定することにより追跡点検出の対象とする階層を減らすことができる。これにより、追跡点検出処理を高速化することができる。
【００１６】
本発明の第５の態様に係る画像処理装置は、第１の画像と第２の画像とを取得する画像取得手段と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成手段と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出手段と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出手段とを備え、前記追跡点検出手段は、所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出手段と、前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出手段の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力手段とを備え、前記検出結果出力手段から出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を選択する階層選択手段を更に備える。
【００１７】
上記第５の態様によれば、所定の階層における追跡点検出の結果から、その追跡点が追跡しやすいかどうかを判断し、追跡しやすい場合に、次の追跡対象階層を次に上位の階層より高解像度の階層に設定することにより追跡点検出の対象とする階層を減らすことができる。これにより、追跡点検出処理を高速化することができる。
【００１８】
本発明の第６の態様に係る画像処理装置は、上記第５の態様において、前記階層選択手段が、前記検出結果出力手段から出力された前記変位量の値が第５の閾値よりも小さい場合に、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定するように構成したものである。
【００１９】
上記第６の態様によれば、所定の階層における追跡点の反復検出の結果得られた追跡点間の変位量の値が十分小さい場合に、当該追跡点の追跡がしやすいと判断し、次の追跡対象階層を次に上位の階層より高解像度の階層に設定することにより追跡点検出の対象とする階層を減らすことができる。これにより、追跡点検出処理を高速化することができる。
【００２０】
本発明の第７の態様に係る画像処理装置は、上記第５又は第６の態様において、前記階層選択手段が、前記検出結果出力手段から出力された前記反復回数の値が第６の閾値よりも小さい場合に、前記追跡点検出手段による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定するように構成したものである。
【００２１】
上記第７の態様によれば、所定の階層における追跡点の反復検出の結果得られた追跡点検出の反復回数の値が十分小さい場合に、当該追跡点の追跡がしやすいと判断し、次の追跡対象階層を次に上位の階層より高解像度の階層に設定することにより追跡点検出の対象とする階層を減らすことができる。これにより、追跡点検出処理を高速化することができる。
【００２２】
本発明の第８の態様に係る画像処理装置は、第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得手段と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する第１の階層画像作成手段と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出手段と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点の前記第２の画像上の追跡点の位置を検出する第１の順次検出手段と、前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出手段と、前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第３の画像から作成する階層画像の階層数を設定する階層数設定手段と、前記第３の画像に段階的に縮小処理を施して解像度が異なる第３の階層画像を、前記階層数設定手段により設定された階層数分作成し、第３の階層画像群を作成する第２の階層画像作成手段と、所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出手段と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第３の階層画像群に含まれる解像度が低い階層画像から順に前記第２の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出手段とを備える。
【００２３】
上記第８の態様によれば、時間的に連続して撮影された３枚以上の画像に対して追跡点検出を行うときに、過去の追跡点検出の結果から、現在追跡点の検出をしようとしている画像間に生じている位置ズレ量を推定し、そのズレ量に基づいて、第３の画像から作成する階層画像の階層数を決定することにより、余分な階層を生成する必要がなくなる。これにより、画像メモリの容量を節約できると同時に、追跡対象となる階層の数を減らして追跡点検出処理を高速化することができる。
【００２４】
本発明の第９の態様に係る画像処理装置は、上記第８の態様において、前記階層数設定手段が、前記ズレ量が大きいほど前記階層数が多くなるように設定するものである。
【００２５】
本発明の第１０の態様に係る画像処理装置は、上記第８又は第９の態様において、前記ズレ量算出手段が、前記第１及び第２の画像上における特徴点と追跡点の位置から特徴点の移動方向及び移動量を示す動きベクトルを作成し、前記動きベクトルの平均値又はメディアン値を前記ズレ量として算出するように構成したものである。
【００２６】
本発明の第１１の態様に係る画像処理装置は、上記第８から第１０の態様において、前記ズレ量算出手段が、前記第１の画像と第２の画像との間のズレ量と、前記第１の画像と前記第３の画像とを等しいと推定するように構成したものである。
【００２７】
本発明の第１２の態様に係る画像処理装置は、第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得手段と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成し、前記第３の画像に段階的に縮小処理を施して解像度が異なる複数の第３の階層画像を含む第３の階層画像群を作成する階層画像作成手段と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出手段と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出手段と、前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出手段と、前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第１の画像と第３の画像との間で、特徴点検出を開始する開始階層を設定する開始階層設定手段と、所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出手段と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記開始階層の階層画像から階層度が低い順に前記第２の追跡点検出手段による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出手段とを備える。
【００２８】
上記第１２の態様によれば、時間的に連続して撮影された３枚以上の画像に対して追跡点検出を行うときに、過去の追跡点検出の結果から、次に追跡点を検出しようとしている画像間に生じているであろう特徴点（追跡点）の移動量を推定し、その移動量に基づいて、追跡を開始する階層を設定する。これにより、追跡対象となる階層の数を減らすことができ、追跡点検出処理を高速化することができる。
【００２９】
本発明の第１３の態様に係る画像処理装置は、上記第１２の態様において、前記開始階層設定手段が、前記ズレ量が大きいほど前記解像度がより低い階層の階層画像を前記開始階層に設定するように構成したものである。
【００３０】
本発明の第１４の態様に係る画像処理装置は、上記第１２又は第１３の態様において、前記ズレ量算出手段が、前記第１の画像と第２の画像との間のズレ量と、前記第１の画像と前記第３の画像とを等しいと推定するように構成したものである。
【００３１】
本発明の第１５の態様に係る画像処理方法は、第１の画像と第２の画像とを取得する画像取得工程と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成工程と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出工程と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出工程とを含み、前記追跡点検出工程は、所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出工程と、前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出工程の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力工程と、前記検出結果出力工程で出力された前記変位量及び前記反復回数の値に応じて、前記第１の解像度よりも高い第２の解像度の前記第１及び前記第２の階層画像に対して前記追跡点検出工程による前記追跡点の検出を実行するときにおける前記第１の閾値を設定する条件設定工程とを含むものである。
【００３２】
本発明の第１６の態様に係る画像処理方法は、上記第１５の態様において、前記条件設定工程では、前記検出結果出力工程で出力された前記変位量の値が第３の閾値よりも小さい場合に、前記変位量が該第３の閾値以上の場合よりも前記第１の閾値を小さくするように構成したものである。
【００３３】
本発明の第１７の態様に係る画像処理方法は、上記第１５又は第１６の態様において、前記条件設定工程では、前記検出結果出力工程で出力された前記反復回数の値が第４の閾値よりも小さい場合に、前記反復回数が該第４の閾値以上の場合よりも前記第１の閾値を小さくするように構成したものである。
【００３４】
本発明の第１８の態様に係る画像処理方法は、上記第１５から第１７の態様において、前記検出結果出力工程で出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を選択する階層選択工程を更に備えるものである。
【００３５】
本発明の第１９の態様に係る画像処理方法は、第１の画像と第２の画像とを取得する画像取得工程と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成工程と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出工程と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出工程とを含み、前記追跡点検出工程は、所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出工程と、前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出工程の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力工程とを含み、前記検出結果出力工程で出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を選択する階層選択工程を更に含むように構成したものである。
【００３６】
本発明の第２０の態様に係る画像処理方法は、上記第１９の態様において、前記階層選択工程では、前記検出結果出力工程で出力された前記変位量の値が第５の閾値よりも小さい場合に、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定するように構成したものである。
【００３７】
本発明の第２１の態様に係る画像処理方法は、上記第１９又は第２０の態様において、前記階層選択工程では、前記検出結果出力工程で出力された前記反復回数の値が第６の閾値よりも小さい場合に、前記追跡点検出工程による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定するように構成したものである。
【００３８】
本発明の第２２の態様に係る画像処理方法は、第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得工程と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する第１の階層画像作成工程と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出工程と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点の前記第２の画像上の追跡点の位置を検出する第１の順次検出工程と、前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出工程と、前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第３の画像から作成する階層画像の階層数を設定する階層数設定工程と、前記第３の画像に段階的に縮小処理を施して解像度が異なる第３の階層画像を、前記階層数設定工程で設定された階層数分作成し、第３の階層画像群を作成する第２の階層画像作成工程と、所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出工程と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第３の階層画像群に含まれる解像度が低い階層画像から順に前記第２の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出工程とを含む。
【００３９】
本発明の第２３の態様に係る画像処理方法は、上記第２２の態様において、前記階層数設定工程では、前記ズレ量が大きいほど前記階層数が多くなるように設定するように構成したものである。
【００４０】
本発明の第２４の態様に係る画像処理方法は、第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得工程と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成し、前記第３の画像に段階的に縮小処理を施して解像度が異なる複数の第３の階層画像を含む第３の階層画像群を作成する階層画像作成工程と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出工程と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出工程と、前記第１及び第２の画像上における特徴点と追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出工程と、前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第１の画像と第３の画像との間で、特徴点検出を開始する開始階層を設定する開始階層設定工程と、所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出工程と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記開始階層の階層画像から階層度が低い順に前記第２の追跡点検出工程による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出工程とを含む。
【００４１】
本発明の第２５の態様に係る画像処理方法は、上記第２４の態様において、前記開始階層設定工程では、前記ズレ量が大きいほど前記解像度がより低い階層の階層画像を前記開始階層に設定するように構成したものである。
【００４２】
本発明の第２６の態様に係る画像処理プログラムは、第１の画像と第２の画像とを取得する画像取得機能と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成機能と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出機能と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出機能とをコンピュータに実現させる画像処理プログラムであって、前記追跡点検出機能は、所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出機能と、前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出機能の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力機能と、前記検出結果出力機能により出力された前記変位量及び前記反復回数の値に応じて、前記第１の解像度よりも高い第２の解像度の前記第１及び前記第２の階層画像に対して前記追跡点検出機能による前記追跡点の検出を実行するときにおける前記第１の閾値を設定する条件設定機能とを含む。
【００４３】
本発明の第２７の態様に係る画像処理プログラムは、上記第２６の態様において、前記条件設定機能により、前記検出結果出力機能により出力された前記変位量の値が第３の閾値よりも小さい場合に、前記変位量が該第３の閾値以上の場合よりも前記第１の閾値を小さくするように構成したものである。
【００４４】
本発明の第２８の態様に係る画像処理プログラムは、上記第２６又は第２７の態様において、前記条件設定機能により、前記検出結果出力機能により出力された前記反復回数の値が第４の閾値よりも小さい場合に、前記反復回数が該第４の閾値以上の場合よりも前記第１の閾値を小さくするように構成したものである。
【００４５】
本発明の第２９の態様に係る画像処理プログラムは、上記第２６から第２８の態様において、前記検出結果出力機能により出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を選択する階層選択機能をコンピュータに実現させるように構成したものである。
【００４６】
本発明の第３０の態様に係る画像処理プログラムは、第１の画像と第２の画像とを取得する画像取得機能と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する階層画像作成機能と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する追跡点検出機能と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する順次検出機能とをコンピュータに実現させる画像処理プログラムであって、前記追跡点検出機能は、所定の解像度の前記第１及び前記第２の階層画像における画像信号の勾配に基づいて、前記第１の階層画像上における前記特徴点に対応する前記第２の階層画像上の追跡点の位置を反復して検出し、反復して検出した第２の画像上の最新の追跡点とその前の反復検出により求められた追跡点との間の距離を示す変位量を算出する変位算出機能と、前記変位量が第１の閾値未満に収束するか、又は前記追跡点の位置の検出の反復回数が第２の閾値以上になった場合に前記変位算出機能の前記追跡点の反復検出を停止し、前記反復検出を停止した時点における前記変位量及び前記反復回数の値を出力する検出結果出力機能とを含んでおり、前記検出結果出力機能により出力された前記変位量及び前記反復回数の値に応じて、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を選択する階層選択機能をコンピュータに実現させる。
【００４７】
本発明の第３１の態様に係る画像処理プログラムは、上記第３０の態様において、前記階層選択機能により、前記検出結果出力機能により出力された前記変位量の値が第５の閾値よりも小さい場合に、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定するように構成したものである。
【００４８】
本発明の第３２の態様に係る画像処理プログラムは、上記第３０又は第３１の態様において、前記階層選択機能により、前記検出結果出力機能により出力された前記反復回数の値が第６の閾値よりも小さい場合に、前記追跡点検出機能による前記追跡点の検出を次に実行する対象の階層を２段階以上上の階層に設定するように構成したものである。
【００４９】
本発明の第３３の態様に係る画像処理プログラムは、第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得機能と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成する第１の階層画像作成機能と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の特徴点検出機能と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出機能と、前記第１及び第２の画像上における追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出機能と、前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第３の画像から作成する階層画像の階層数を設定する階層数設定機能と、前記第３の画像に段階的に縮小処理を施して解像度が異なる第３の階層画像を、前記階層数設定機能により設定された階層数分作成し、第３の階層画像群を作成する第２の階層画像作成機能と、所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の特徴点検出機能と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第３の階層画像群に含まれる解像度が低い階層画像から順に前記第２の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出機能とをコンピュータに実現させる。
【００５０】
本発明の第３４の態様に係る画像処理プログラムは、上記第３３の態様において、前記階層数設定機能により、前記ズレ量が大きいほど前記階層数が多くなるように設定するように構成したものである。
【００５１】
本発明の第３５の態様に係る画像処理プログラムは、第１の画像と、時間的に前記第１の画像の前後に撮影された第２の画像及び第３の画像を取得する画像取得機能と、前記第１の画像に段階的に縮小処理を施して解像度が異なる複数の第１の階層画像を含む第１の階層画像群を作成し、前記第２の画像に段階的に縮小処理を施して解像度が異なる複数の第２の階層画像を含む第２の階層画像群を作成し、前記第３の画像に段階的に縮小処理を施して解像度が異なる複数の第３の階層画像を含む第３の階層画像群を作成する階層画像作成機能と、所定の解像度の前記第１及び前記第２の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第２の階層画像上の追跡点の位置を検出する第１の追跡点検出機能と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記第１及び第２の階層画像群に含まれる解像度が低い階層画像から順に前記第１の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第２の画像上の追跡点の位置を検出する第１の順次検出機能と、前記第１及び第２の画像上における追跡点の位置に基づいて、前記第１の画像と第２の画像との間のズレ量を算出し、前記第１の画像と前記第３の画像との間のズレ量を推定するズレ量算出機能と、前記第１の画像と前記第３の画像との間のズレ量に基づいて前記第１の画像と第３の画像との間で、特徴点検出を開始する開始階層を設定する開始階層設定機能と、所定の解像度の前記第１及び前記第３の階層画像の画像信号の勾配に基づいて、前記第１の階層画像上における所定の特徴点に対応する前記第３の階層画像上の追跡点の位置を検出する第２の追跡点検出機能と、解像度が低い階層画像における追跡点の検出結果を反映しながら、前記開始階層の階層画像から階層度が低い順に前記第２の追跡点検出機能による前記追跡点の検出を実行し、前記第１の画像上の特徴点に対応する前記第３の画像上の追跡点の位置を検出する第２の順次検出機能とをコンピュータに実現させる。
【００５２】
本発明の第３６の態様に係る画像処理プログラムは、上記第３５の態様において、前記開始階層設定機能により、前記ズレ量が大きいほど前記解像度がより低い階層の階層画像を前記開始階層に設定するように構成したものである。
【発明の効果】
【００５３】
本発明によれば、階層型の勾配法において、画像パターンに応じた変位量の収束の容易さを考慮することにより、特徴点の追跡を効率的に行うことができる。これにより、時間的に連続撮影された動画フレームや連写画像中の動体の解析や、特徴点位置を利用して複数枚の画像を合成してパノラマ画像を作成する処理、フォーカスブラケティングによって取得した画像から全焦点画像や浅被写界深度の画像を作成する処理に要する時間を短縮することが可能になる。
【発明を実施するための最良の形態】
【００５４】
以下、添付図面に従って本発明に係る画像処理装置、画像処理方法及び画像処理プログラムの好ましい実施の形態について説明する。
【００５５】
［第１の実施形態］
本実施形態は、所定階層の階層画像において特徴点に対応する追跡点の反復検出を行ったときの変位量の収束の容易さを判定し、この収束の容易さに応じて、次の階層画像において追跡点の反復検出を行うときの変位量の収束判定条件を変更するようにしたものである。
【００５６】
図１は、本発明の第１の実施形態に係る画像処理装置を示すブロック図である。
【００５７】
メインＣＰＵ１２は、本実施形態に係る画像処理装置１０全体の動作を制御する統括制御部である。メインＣＰＵ１２は、例えば、画像メモリ１４に対する画像データの入出力の制御、ピラミッド階層画像を生成するときの階層数及び間引き率の設定、変位算出工程の制御を含む各種の演算を行う。
【００５８】
画像メモリ１４には、特徴点の追跡対象となる基準画像（imgb）及び追跡画像（imgt）が格納される。また、画像メモリ１４には、ピラミッド階層生成部２０によって生成されたピラミッド階層を構成する画像群（py10, py11, …及びpy20, py21, …）が格納される。
【００５９】
画像入出力制御部２２は、画像メモリ１４と、ピラミッド階層生成部２０及び変位算出部２６との間の画像データの入出力を制御する。
【００６０】
特徴点メモリ１６には、特徴点データＤ１及び追跡点データＤ２が格納される。特徴点データＤ１は、基準画像（imgb）に写っている被写体の輪郭や重心の位置に対応する１又は複数の特徴点の位置を示す座標のデータを含んでいる。特徴点データＤ１は、例えば、基準画像（imgb）の画像信号レベル（輝度レベル）を解析して被写体を検出することによりあらかじめ作成される。また、追跡点データＤ２は、変位算出部２６によって算出された追跡画像（imgt）上における特徴点（追跡点）の位置を示す点座標のデータを含んでいる。
【００６１】
ピラミッド階層生成制御部１８は、メインＣＰＵ１２からの指示に従って、ピラミッド階層生成部２０に対してピラミッド階層画像群を作成する指示を出力する。
【００６２】
ピラミッド階層生成部２０は、ピラミッド階層生成制御部１８からの指示に従って、画像メモリ１４から基準画像（imgb）及び追跡画像（imgt）を読み込んで、所定の間引き率で基準画像（imgb）及び追跡画像（imgt）にローパスフィルタによる平滑化と間引き処理を施す。そして、ピラミッド階層生成部２０は、基準画像（imgb）からピラミッド階層画像py10（基準画像（imgb）そのもの）, py11（基準画像（imgb）に対して平滑化処理及び所定の間引き率での間引き処理を１回施した画像）, py12（基準画像（imgb）に対して平滑化処理及び所定の間引き率での間引き処理を２回施した画像）, …, py1py_num-1を作成するとともに、追跡画像（imgt）からピラミッド階層画像py20（追跡画像（imgt）そのもの）, py21（追跡画像（imgt）に対して平滑化処理及び所定の間引き率での間引き処理を１回施した画像）, py22（追跡画像（imgt）に対して平滑化処理及び所定の間引き率での間引き処理を２回施した画像）, …, py2py_num-1を作成し、画像メモリ１４に書き込む。以下の説明では、基準画像（imgb）から作成されたピラミッド階層画像群py10(基準画像（imgb）), py11, py12, …, py1py_num-1を基準ピラミッドpy1、追跡画像（imgt）から作成されたピラミッド階層画像群py20(追跡画像（imgt）), py21, py22, …, py2py_num-1を追跡ピラミッドpy2という。なお、ピラミッド階層の階層数及び間引き率はユーザが設定可能となっている。
【００６３】
以下、図２に示すように、下位の階層画像から順に特徴点追跡が実施される。そして、下位の階層画像における特徴点の追跡結果が次に上位の階層における特徴点の追跡に反映される。例えば、下位の階層画像において検出された追跡点の位置が次の階層における追跡点の初期位置として設定される。
【００６４】
変位算出制御部２４は、メインＣＰＵ１２からの指示に従って、変位算出部２６に特徴点の追跡の実行指示を出力する。
【００６５】
変位算出部２６は、変位算出制御部２４からの指示に従って、画像メモリ１４中の基準ピラミッドpy1及び追跡ピラミッドpy2から画像サイズが最小の階層画像（以下、最下位の階層画像という。）をそれぞれ読み込んで、勾配法を用いて追跡点の反復検出を実行する。そして、変位算出部２６は、特徴点の変位量(dxi, dyi)を繰り返し算出し、変位量(dxi, dyi)が収束するまでの追跡点検出の反復回数inumlast及び収束時における変位量(dxlast, dylast)の値を反復条件設定部２８に出力する。
【００６６】
反復条件設定部２８は、変位算出部２６から入力された反復回数inumlast及び変位量(dxlast, dylast)に基づいて変位量の収束判定の条件を変更する。変位算出部２６は、反復条件設定部２８によって設定された収束判定条件に従って、上位の階層画像を読み込んで追跡点の検出を行う。そして、上記追跡点の反復検出と収束条件の設定変更が繰り返される。これにより、追跡点の反復検出の反復回数を抑制している。
【００６７】
図３は、各階層における特徴点追跡の手順を模式的に示す図である。なお、以下の説明では、各画像の左上の点を原点(0,0)とし、横方向をｘ軸、縦方向をｙ軸とする。
【００６８】
図３に示すように、基準画像（imgb）上における特徴点Ａ１の座標を(x1, y1)とし、追跡画像（imgt）上における特徴点（追跡点）Ａ２の初期位置Ａ２０の座標を(x2, y2)=(x1, y1)とする。そして、特徴点Ａ１と追跡点Ａ２０，Ａ２１，…近傍（図中の矩形枠Ｆ０，Ｆ１，…）において画像信号の勾配を用いた勾配法を反復的に行う。そして、ｉ回目の変位算出において検出された追跡点Ａｉ(x2i, y2i)と、（ｉ−１）回目の変位算出により検出において検出された追跡点Ａｉ−１(x2i-1, y2i-1)との間の変位量(dxi, dyi)の値を監視しておき、これらの値が所定値よりも小さくなった場合に、追跡点の位置が十分収束していると判断し、追跡点の反復検出を終了する。追跡点Ａ２の初期位置Ａ２０から最終位置Ａ２Ｆｉｎへの変位量(dxtotal, dytotal)は下記の式（１−１ａ）及び（１−１ｂ）により求められる。
【００６９】
dxtotal= Σ dxi      …（１−１ａ）
dytotal= Σ dyi      …（１−１ｂ）
よって、追跡点の最終位置Ａ２ｌａｓｔの座標(x2, y2)は下記の式（１−２ａ）及び（１−２ｂ）により求められる。
【００７０】
x2 = x1 + dxtotal      …（１−２ａ）
y2 = y1 + dytotal      …（１−２ｂ）
以下、本実施形態に係る画像処理方法について、図４から図６のフローチャートを参照して説明する。図４は、本発明の第１の実施形態に係る画像処理方法を示すフローチャートである。
【００７１】
まず、ピラミッド階層生成部２０は、ピラミッド階層生成制御部１８からの指示に従って、画像メモリ１４から基準画像(imgb)と追跡画像(imgt)とを読み込む（ステップＳ１０）。そして、ピラミッド階層生成部２０は、基準画像(imgb)を段階的に縮小して階層画像py11, py12, …, py1n, …, py1py_num-1を作成する。また、ピラミッド階層生成部２０は、追跡画像(imgt)を段階的に縮小して階層画像py21, py22, …, py2n, …, py2py_num-1を作成する。これにより、基準ピラミッドpy1及び追跡ピラミッドpy2が生成される（ステップＳ１２）。ここで、ｎはピラミッドの階層番号であり、各階層画像の画像サイズはそれぞれ階層番号ｎが大きくなるにつれて小さくなる。各ピラミッドに含まれる階層画像の総数（階層数）をpy_numとする。また、階層番号ｎが等しい階層画像の画像サイズは同じである。
【００７２】
ステップＳ１２では、ピラミッド階層生成部２０は、基準画像１(imgb)及び追跡画像２(imgt)に対してそれぞれ平滑化フィルタを施した後、所定の間引き率で画素間引きを繰り返して段階的に縮小することにより階層画像を作成する。本実施形態では、平滑化フィルタ（ローパスフィルタ）はガウシアンフィルタであり、間引き率は縦横１／２とする。なお、平滑化フィルタの種類及び間引き率はこれに限定されるものではない。
【００７３】
次に、ピラミッド階層生成部２０は、ステップＳ１２において生成した基準ピラミッドpy1及び追跡ピラミッドpy2の階層画像を画像メモリ１４に書き込む（ステップＳ１４）。
【００７４】
次に、特徴点番号ｋが初期化（k =0）される（ステップＳ１６）。変位算出部２６は、変位算出制御部２４からの指示により特徴点メモリ１６に格納されている複数の特徴点の座標のうち、第ｋ番目の特徴点の座標(x1, y1)を取り込む（ステップＳ１８）。ここで、特徴点メモリ１６に格納されている特徴点の座標値は、ピラミッドの第０階層py10（最も画像サイズが大きい画像（基準画像(imgb)））における座標値である。
【００７５】
次に、変位算出部２６は、ステップＳ１８において取り込んだ特徴点の座標(x1, y1)を、下記の式（１−３ａ）及び（１−３ｂ）によりピラミッド階層の最低解像度階層（第py_num -1階層）における座標値に変換する（ステップＳ２０）。
【００７６】
x1 ← x1 / 2(py_num -1)      …（１−３ａ）
y1 ← y1 / 2(py_num -1)      …（１−３ｂ）
なお、上記の式（１−３ａ）及び（１−３ｂ）では、階層画像を作成するときの間引き率が１／２であるため、“２”のべき乗数で座標(x1, y1)を除算している。間引き率が他の値（例えば、１／ａ）の場合には、“ａ”のべき乗数で座標(x1, y1)を除算すればよい。
【００７７】
次に、追跡画像における特徴点の座標（追跡点の初期位置の座標）(x2, y2)が初期化され、(x2, y2) = (x1, y1)に設定される（ステップＳ２２）。また、ピラミッド階層番号が初期化（n ← py_num -1）される（ステップＳ２４）。
【００７８】
次に、変位算出部２６は、基準ピラミッドpy1及び追跡ピラミッドpy2の階層画像py1n及びpy2nを画像サイズが最小のもの（n = py_num -1）から順番に画像メモリ１４から読み込んで（ステップＳ２６）、特徴点の追跡処理（追跡コア工程：ステップＳ２８）を実行する。
【００７９】
図５は、ステップＳ２８の追跡コア工程を示すフローチャートである。
【００８０】
図５に示すように、追跡コア工程では、まず、反復回数inumが初期化（inum=0）される（ステップＳ５０）。
【００８１】
次に、変位算出部２６は、ステップＳ２６において読み込んだ階層画像py1n, py2nにおいて、画像信号の勾配（勾配法）に基づいて追跡ピラミッドの階層画像py2nにおける特徴点（追跡点）の位置検出を行う。そして、変位算出部２６は、検出された追跡点の座標(x2inum, y2inum)と、直前のループで求めた追跡点の座標(x2inum-1, y2inum-1)の変位量(dx, dy)を算出する（ステップＳ５２）。ここで、n = py_num -1で、かつ、第１回目のループ（inum=0）の場合には、座標(x2inum-1, y2inum-1)はステップＳ２２の初期位置(x1, y1)とする。また、n <py_num -1で、かつ、第１回目のループ（inum=0）の場合には、座標(x2inum-1, y2inum-1)は直前の（下位の）階層画像を用いて求めた特徴点座標(x2last, y2last)とする。
【００８２】
なお、一般的に勾配法は除算を伴う場合が多く、除算の分母が０に近くなった場合、計算結果が発散してしまうことがある。このため、除算の分母が０に近く、求められた変位量が発散した場合には（ステップＳ５４のＮｏ）、変位算出エラーとなり“追跡失敗フラグ”が立つ（ステップＳ６８）。変位算出制御部２４は、“追跡失敗フラグ”を検出すると、当該特徴点の追跡を強制終了する。
【００８３】
一方、変位量が発散することなく算出された場合（ステップＳ５４のＹｅｓ）、変位算出部２６は、下記の式（１−４ａ）及び（１−４ｂ）により追跡点の座標(x2, y2)を更新する（ステップＳ５６）。
【００８４】
x2 ← x2 + dx      …（１−４ａ）
y2 ← y2 + dy      …（１−４ｂ）
また、下記の式（１−５）に示すように反復回数inumが更新（インクリメント）される（ステップＳ５８）。
【００８５】
inum ← inum +1      …（１−５）
次に、変位算出部２６は、変位(dx, dy)と第１の閾値th1とを比較し、下記の〈条件１〉に従って変位の収束判定を行う（ステップＳ６０）。
【００８６】
〈条件１〉
IF (dx < th1) AND (dy < th1) THEN  変位算出終了（変位が収束したと判定）
ELSE                               変位算出続行（変位が未収束と判定）
変位量dx, dyがともに閾値th1未満の場合、即ち、変位量が収束した場合（ステップＳ６０のＹｅｓ）、“追跡成功フラグ”が立つ（ステップＳ６６）。変位算出制御部２４は、“追跡成功フラグ”を検出すると、第ｎ階層における特徴点追跡を終了する。
【００８７】
一方、変位量dx又はdyが閾値th1以上の場合、即ち、変位が収束しなかった場合（ステップＳ６０のＮｏ）、変位算出部２６は、下記の条件〈条件２〉に従って反復回数判定を行う（ステップＳ６２）。ここで、閾値th2は、変位算出の反復回数inumの上限値である。
【００８８】
〈条件２〉
IF (inum < th2) THEN  変位算出続行（反復回数inumが上限値th2未満である）
ELSE                  変位算出終了（反復回数inumが上限値th2以上である）
反復回数inumが閾値th2未満の場合、即ち、変位算出続行の場合には（ステップＳ６２のＮｏ）、変位量(dx, dy)が収束するか（ステップＳ６０のＹｅｓ）、反復回数inumが上限値th2以上になるまで（ステップＳ６２のＹｅｓ）、ステップＳ５２からＳ６２の処理が繰り返し実行される。
【００８９】
反復回数inumが閾値th2以上の場合、即ち、変位算出終了の場合には（ステップＳ６２のＹｅｓ）、追跡点の検出対象が第０階層の階層画像（画像サイズが最大（最大解像度の）階層画像）であれば（ステップＳ６４のＹｅｓ）、“追跡失敗フラグ”が立つ（ステップＳ６８）。一方、追跡点の検出対象が第０階層の階層画像以外の場合には（ステップＳ６４のＮｏ）、“追跡成功フラグ”が立つ（ステップＳ６６）。本来、変位量が収束していないにも関わらず（ステップＳ６０のＮｏ）、反復回数inumが閾値th2以上となって（ステップＳ６２のＹｅｓ）、変位量の反復算出が終了となるということは、変位量が十分収束していないことを意味しており、追跡が失敗したと判断すべきである。しかしながら、本実施形態では、次の階層が残されている場合には（ステップＳ６４のＮｏ）、次の階層では変位量が収束する可能性が残されているため、強制的に追跡失敗とはしないようにしている。
【００９０】
図５の追跡コアの処理により、追跡が成功したか否かを示すフラグ（追跡成功フラグ／追跡失敗フラグ）と、追跡が成功していた場合には第ｎ階層における最終的な追跡点(x2last, y2last)が得られる。
【００９１】
追跡コア処理の結果、“追跡失敗フラグ”が立っていた場合、即ち、第ｋ番目の特徴点に対する追跡が失敗した場合には（ステップＳ３０のＮｏ）、変位算出部２６は、追跡エラー値を出力して特徴点メモリ１６に書き込む（ステップＳ４２）。
【００９２】
一方、“追跡成功フラグ”が立っていた場合（ステップＳ３０のＹｅｓ）、即ち、変位量が収束したか、又は反復回数inumが上限値th2以上になったことにより反復が終了した場合（以下の説明では、「反復条件を満たした」という。）には、変位算出部２６は、最新の変位量(dxlast, dylast)及び反復回数inumlastの値を保持する。
【００９３】
続いて、次に追跡を行うピラミッド階層の階層番号が設定(n ← n -1)され（ステップＳ３４）、特徴点の座標(x1, y1)と、ステップＳ２８（図３）の追跡コア工程において求められた追跡点(x2, y2)とが下記の変換式（１−６ａ）から（１−６ｄ）により次の特徴点追跡対象階層における座標値に変換される（ステップＳ３６）。
【００９４】
x1 ← x1 ×2      …（１−６ａ）
y1 ← y1 ×2      …（１−６ｂ）
x2 ← x2 ×2      …（１−６ｃ）
y2 ← y2 ×2      …（１−６ｄ）
なお、上記変換式（１−６ａ）から（１−６ｄ）中の数字“２”はピラミッド階層生成時の間引き率の逆数である。間引き率が他の値（例えば、１／ａ）の場合には“ａ”を乗算すればよい。
【００９５】
次に、変位算出制御部２４は、変位算出部２６にアクセスし、変位算出部２６に保持されている最新の変位量(dxlast, dylast)及び反復回数inumlastの値を反復条件設定部２８に渡すように指示を出す。反復条件設定部２８は、変位量(dxlast, dylast)及び反復回数inumlastの値に基づいて次の階層における変位算出時の反復条件（閾値th1）の値を設定する（ステップＳ３８）。
【００９６】
そして、ステップＳ２６からＳ３８の工程が繰り返されて、すべての階層画像について第ｋ番目の特徴点に対する追跡が終了した場合（ステップＳ３２のＹｅｓ）、最終的な追跡点の座標値(x2, y2)を出力する（ステップＳ４０）。一方、追跡失敗フラグが検出された場合は（ステップＳ３０のＮｏ）、変位算出部２６は、追跡エラー値を出力する（ステップＳ４２）。
【００９７】
次に、ステップＳ１８からＳ４２の工程が特徴点メモリ１６に格納されている他の特徴点に対しても実行される。そして、変位算出部２６は、特徴点メモリ１６に格納されている全ての特徴点について追跡が終了すると（ステップＳ４４のＹｅｓ）、特徴点に対応した追跡点の座標値、又は追跡エラー値を出力する。これにより、特徴点追跡処理がすべて終了する。
【００９８】
図６は、ステップＳ３８の反復条件設定工程の詳細を示すフローチャートである。
【００９９】
まず、変位算出制御部２４は、所定の階層での特徴点の追跡において反復条件が満たされたことを検知し、変位算出部２６に対して、保持されていた最新の変位(dxlast, dylast)、反復回数inumlastの値を、反復条件設定部２８に渡すように指示を出す。
【０１００】
反復条件設定部２８は、(dxlast, dylast)及びinumlastを受け取ると、まず、第３の閾値th3と(dxlast, dylast)との大小比較を行った後（ステップＳ７２）、第４の閾値th4とinumlastとの大小比較を行う（ステップＳ７４及びＳ７６）。そして、反復条件設定部２８は、ステップＳ７２からＳ７６の判定結果に従って第１の閾値th1の値を変更する。
【０１０１】
【表１】
2010009375.tif 000003
【０１０２】
表１は、図６の反復条件設定の条件分岐を示している。本実施形態では、val1 < val2 < val3 < val4（例えば、val1 = 0.1, val2 = 0.25, val3 = 0.5, val4 = 1）とする。なお、val1, val2, val3, val4の大小関係及び値は上記に限定されるものではない。
【０１０３】
（１）条件分岐１（ステップＳ７２）
反復条件が満たされた時点における最新の変位量(dxlast, dylast)の値がともに所定値th3よりも小さい場合には（ステップＳ７２のＹｅｓ）、変位量の収束が容易である、即ち、当該特徴点は追跡しやすいと考えられる。そこで、変位量(dxlast, dylast)の値のうち少なくとも一方が所定値th3以上の場合（ステップＳ７２のＮｏ）よりも、変位量の収束判定に用いる閾値th1を小さくする。
【０１０４】
（２）条件分岐２（ステップＳ７４、Ｓ７６）
反復条件が満たされるまでの反復回数inumlastの値が所定値th4以上の場合（ステップＳ７４のＮｏ又はＳ７６のＮｏ）、変位量が収束しにくい、即ち、当該特徴点は追跡しづらいと考えられる。そこで、反復回数inumlastの値が所定値th4未満の場合（ステップＳ７４のＹｅｓ又はＳ７６のＹｅｓ）よりも、変位量の収束判定に用いる閾値th1を大きくする。
【０１０５】
本実施形態では、所定の階層における特徴点追跡の結果得られたdxlast, dylast, inumlastの値から、その特徴点の追跡しやすさを判定し、追跡しづらいと判定された場合に（例えば、変位量(dxlast, dylast)の値の少なくとも一方が閾値以上の場合や、変位算出の反復回数inumが閾値以上の場合）、変位収束判定の閾値th1の値を大きくすることにより、次の階層で変位量の収束が容易になるので、反復回数inumの増大を抑制することができる。これにより、特徴点追跡処理の高速化を実現することができる。
【０１０６】
なお、変位量の収束の容易さに応じて、反復回数の上限値th2を変更する（例えば、収束が容易な場合にth2の値を小さくし、収束しにくい場合にth2の値を大きくする）ようにしてもよい。
【０１０７】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。なお、以下の説明において、上記第１の実施形態と同様の構成については説明を省略する。
【０１０８】
本実施形態は、所定階層の階層画像において追跡点の反復検出を行ったときの変位量の収束の容易さを判定し、この収束の容易さに応じて、次に追跡点検出を行う階層を決定するようにしたものである。
【０１０９】
図７は、本発明の第２の実施形態に係る画像処理装置を示すブロック図である。図７に示すように、本実施形態に係る画像処理装置１０は、自動階層設定部３０を備えている。
【０１１０】
以下、本実施形態に係る画像処理方法について、図８から図１０のフローチャートを参照して説明する。図８は、本発明の第２の実施形態に係る画像処理方法を示すフローチャートである。
【０１１１】
図８のステップＳ１００からＳ１１８は、それぞれ図４のステップＳ１０からＳ２８と同様であり、ステップＳ１１８の追跡コア工程は上記図５と同様であるため説明を省略する。
【０１１２】
第ｎ階層での追跡点検出が終了すると、次に追跡を行う階層の階層番号が設定されるとともに（ステップＳ１２４）、特徴点と追跡点の座標変換が行われる（ステップＳ１２６）。ステップＳ１２４において、変位算出制御部２４は、変位算出部２６にアクセスし、ステップＳ１１８の追跡コア工程において変位算出部２６に保持されている最新の変位量(dxlast, dylast)及び反復回数inumlastの値を自動階層設定部３０に渡すように指示を出す。自動階層設定部３０は、変位量(dxlast, dylast)及び反復回数inumlastの値に基づいて次に追跡点検出を行う対象の階層の階層番号n_newを設定する（図９及び図１０参照）。
【０１１３】
次に、自動階層設定部３０は、次の追跡対象階層の階層番号n_newと現階層番号ｎとから下記の式（２−１）により座標変換係数convcoefを算出する。
【０１１４】
convcoef= 2(n - n_new)  ；  （但し、n > n_new）      …（２−１）
なお、上記変換式（２−１）中の数字“２”はピラミッド階層生成時の間引き率の逆数である。間引き率が他の値（例えば、１／ａ）の場合には座標変換係数convcoef = ａ(n - n_new)となる。
【０１１５】
そして、現階層画像における特徴点の座標(x1, y1)と、ステップＳ１１８の追跡コア工程において求められた追跡点(x2, y2)とが下記の変換式（２−２ａ）から（２−２ｄ）により次の特徴点追跡対象階層における座標値に変換される（ステップＳ１２６）。
【０１１６】
x1 ← x1 × convcoef      …（２−２ａ）
y1 ← y1 × convcoef      …（２−２ｂ）
x2 ← x2 × convcoef      …（２−２ｃ）
y2 ← y2 × convcoef      …（２−２ｄ）
そして、ステップＳ１１６からＳ１２６の工程が繰り返されて、すべての階層画像について第ｋ番目の特徴点に対する追跡が終了した場合（ステップＳ１２２のＹｅｓ）、最終的な追跡点の座標値(x2, y2)を出力する（ステップＳ１２８）。一方、追跡失敗フラグが検出された場合は（ステップＳ１２０のＮｏ）、変位算出部２６は、追跡エラー値を出力する（ステップＳ１３０）。
【０１１７】
次に、ステップＳ１０８からＳ１３０の工程が特徴点メモリ１６に格納されている他の特徴点に対しても実行される。そして、変位算出部２６は、特徴点メモリ１６に格納されている全ての特徴点について追跡が終了すると（ステップＳ４４のＹｅｓ）、特徴点に対応した追跡点の座標値、又は追跡エラー値を出力する。これにより、特徴点追跡処理がすべて終了する。
【０１１８】
次に、ステップＳ１２４の追跡対象階層の階層番号設定工程について、図９及び図１０のフローチャートを参照して説明する。
【０１１９】
まず、変位算出制御部２４は、反復条件が満たされて所定の階層での特徴点の追跡（追跡コア工程）が終了したことを検知すると、変位算出部２６に対して、保持されていた最新の変位量(dxlast, dylast)及び反復回数inumlastの値を自動階層設定部３０に渡すように指示を出す。
【０１２０】
図９に示すように、自動階層設定部３０は、変位量(dxlast, dylast)を読み込んで（ステップＳ１５０）、閾値th5と変位量(dxlast, dylast)との大小比較を行う（ステップＳ１５２）。変位量dxlast及びdylastがともに閾値th5未満で（ステップＳ１５２のＹｅｓ）で、かつ、現階層（第ｎ階層）が第１階層よりも上位の階層の場合には（ステップＳ１５４のＮｏ）、自動階層設定部３０は、次に特徴点追跡を行う対象の階層（階層番号n_new）を現在の階層（階層番号ｎ）の２段上に設定する（ステップＳ１５６）。一方、変位量dxlast又はdylastの少なくとも一方が閾値th5以上の場合には（ステップＳ１５２のＮｏ）、自動階層設定部３０は、次に特徴点追跡を行う対象の階層（階層番号n_new）を現在の階層（階層番号ｎ）の１段上に設定する（ステップＳ１５８）。
【０１２１】
また、図１０に示すように、自動階層設定部３０は、反復回数inumlastの値を読み込んで（ステップＳ１６０）、閾値th6とinumlastとの大小比較を行う（ステップ１６２）。反復回数inumlastが閾値th6未満で（ステップＳ１６２のＹｅｓ）で、かつ、現階層（第ｎ階層）が第１階層よりも上位の階層の場合には（ステップＳ１６４のＮｏ）、自動階層設定部３０は、次に特徴点追跡を行う対象の階層（階層番号n_new）を現在の階層（階層番号ｎ）の２段上に設定する（ステップＳ１６６）。一方、反復回数inumlastが閾値th6以上の場合には（ステップＳ１６２のＮｏ）、自動階層設定部３０は、次に特徴点追跡を行う対象の階層（階層番号n_new）を現在の階層（階層番号ｎ）の１段上に設定する（ステップＳ１６８）。
【０１２２】
【表２】
2010009375.tif 000004
【０１２３】
表２は、図９及び図１０の特徴点追跡対象の階層設定の条件分岐を示している。
【０１２４】
（１）条件分岐１
反復条件が満たされた時点での最新の変位量(dxlast, dylast)の値が閾値th5より小さい場合には、変位量の収束が容易である、即ち、当該特徴点が追跡しやすいと考えられる。そこで、次の特徴点追跡対象階層を現在の階層の２段上に設定し、特徴点追跡を行う対象の階層数を減らす。
【０１２５】
（２）条件分岐２
反復条件が満たされるまでの反復回数inumlastが閾値th6より小さい場合、変位量の収束が容易である、即ち、当該特徴点が追跡しやすいと考えられる。そこで、次の特徴点追跡対象階層を現在の階層の２段上に設定し、特徴点追跡を行う対象の階層数を減らす。
【０１２６】
図１１に示すように、ある階層において特徴点(x1, y1)の追跡の結果求められた追跡点(x2, y2)は、本来であればこの追跡点は正解点(x3, y3)に一致しているべきであるが、実際には誤差が生じうる。この正解点と追跡点の誤差を追跡誤差[(xerr, yerr) = (x3-x2, y3-y2)]とする。
【０１２７】
上述のように、次の階層において追跡を行う場合、この特徴点と追跡点の座標に座標変換係数convcoefが乗算されて座標変換される。すると、この座標変換係数convcoefが乗算された分追跡誤差が拡大するため、座標変換係数convcoefの大きさによっては、追跡点と正解点とに大きな開き（ズレ）ができてしまう。実験的傾向として、追跡しやすい（反復回数inumが少なくても収束する）特徴点の場合、多少の追跡誤差が生じていた場合でも、精度良く追跡が行える一方で、追跡しづらい特徴点の場合、追跡誤差が原因で追跡が収束しづらくなる。
【０１２８】
そこで、この特徴点の追跡しやすさに応じて、追跡しやすい特徴点の場合には、多少の追跡誤差を許容することで、２段上の階層を次の追跡対象とすることにより、１段上の階層での追跡を省略し、処理の高速化を実現する。一方、追跡しにくい点については、次の階層における追跡誤差をできるだけ小さくするために、１段上の階層を次の追跡対象とする。なお、追跡しやすい特徴点の場合に、２段以上上位の階層を次の特徴点追跡対象とするようにしてもよい。
【０１２９】
本実施形態によれば、所定の階層における特徴点追跡の結果から、その特徴点が追跡しやすいかどうかを判断し、追跡しやすい場合、次の追跡対象階層を次に上位の階層ではなく、より高解像度の階層に設定することにより特徴点追跡の対象とする階層を減らすことができる。これにより、特徴点追跡処理を高速化することができる。
【０１３０】
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。なお、以下の説明において、上記第１の実施形態と同様の構成については説明を省略する。
【０１３１】
本実施形態は、画像１、画像１よりも時間的に古い画像２及び画像１よりも時間的に新しい画像３の少なくとも３枚の画像（例えば、時間的に略等間隔に連続して撮影された画像（例えば、連写画像又は動画フレーム）、又は略等間隔にパン又はチルトされながら連続的に撮影された画像）において特徴点追跡を行う場合に、画像１と画像２との間で特徴点追跡を行って求めた特徴点と追跡点との間の距離（特徴点の移動量）に応じて、画像１と画像３との間で追跡点検出を行うときに生成するピラミッド（基準ピラミッド及び追跡ピラミッド）の階層数を設定するようにしたものである。
【０１３２】
図１２は、本発明の第３の実施形態に係る画像処理装置を示すブロック図である。図１２に示すように、本実施形態に係る画像処理装置１０は、ピラミッド階層生成条件発生部３２を備えている。
【０１３３】
次に、本発明の第３の実施形態に係る画像処理方法について、図１３のフローチャートを参照して説明する。
【０１３４】
まず、ピラミッド階層生成部２０は、ピラミッド階層生成制御部１８からの指示に従って、画像メモリ１４から画像１と画像２（画像１よりも時間的に古い画像）とを読み込む（ステップＳ２００）。そして、ピラミッド階層生成部２０は、ピラミッド階層生成部２０は、画像１を段階的に縮小して階層画像py11, py12, …, py1n, …, py1py_num-1を作成する。また、ピラミッド階層生成部２０は、画像２を段階的に縮小して階層画像py21, py22, …, py2n, …, py2py_num-1を作成する。これにより、基準ピラミッドpy1及び追跡ピラミッドpy2が生成される（ステップＳ２０２）。次に、ピラミッド階層生成部２０は、ステップＳ２０２において生成した基準ピラミッドpy1及び追跡ピラミッドpy2の階層画像を画像メモリ１４に書き込む（ステップＳ２０４）。
【０１３５】
次に、変位算出部２６は、変位算出制御部２４からの指示により特徴点メモリ１６に格納されている複数の特徴点の座標(x1, y1)を取り込む（ステップＳ２０６）。ここで、特徴点メモリ１６に格納されている特徴点の座標値は、ピラミッドの第０階層py10（最も画像サイズが大きい画像（画像１））における座標値である。
【０１３６】
次に、画像１と画像２との間で特徴点追跡が実行され（ステップＳ２０８）、特徴点追跡により求められた追跡点(x2, y2)の座標が特徴点メモリ１６に記録される（ステップＳ２１０）。なお、ステップＳ２０８における特徴点追跡の工程は上記図４及び図５と同様である。
【０１３７】
次に、ピラミッド階層生成条件発生部３２は、特徴点メモリ１６に記録された特徴点と追跡点の座標値を取り込み（ステップＳ２１２）、画像１と画像２とに生じている位置のズレ（画像ズレ）を平行移動量(trans12x, trans12y)として算出する（ステップＳ２１４）。ここでは、位置のズレを平行移動量と捉えるが、視野の回転やスケール変化（例えば、ズーム）なども考慮するためにアフィン変換量としても良いし、その他の変換量でも良い。
【０１３８】
ここで、平行移動量の算出方法の例について説明する。
【０１３９】
（１）平行移動量の算出方法の第１の実施例
まず、ピラミッド階層生成条件発生部３２は、第ｉ番目の特徴点の座標(x1i, y1i)とそれに対応する追跡点の座標(x2i, y2i)とを読み込み、動きベクトルmvi=(mvxi, mvyi)を求める。そして、下記の式（３−１ａ）及び（３−１ｂ）により平行移動量(trans12x, trans12y)を算出する。下記の式（３−１ａ）及び（３−１ｂ）によれば、画像の平行移動量は、すべての動きベクトルmviの平均値になる。
【０１４０】
trans12x= Σ mvxi / Σ 1      …（３−１ａ）
trans12y= Σ mvyi / Σ 1      …（３−１ｂ）
（２）平行移動量の算出方法の第２の実施例
平行移動量(trans12x, trans12y)をすべての動きベクトルmvi=(mvxi, mvyi)のメディアン値（中央値）とする。
【０１４１】
（３）平行移動量の算出方法の第３の実施例
すべての動きベクトル（例えば、手ブレに起因する動きベクトルのクラス、動体の動きに起因する動きベクトルのクラス）をクラス分類し、各クラスを構成するベクトル群の数が最も多いクラスを同定したのち、そのクラスに属するベクトルだけで上記平均値又はメディアン値を求める。
【０１４２】
次に、ピラミッド階層生成条件発生部３２は、画像１と画像２との間の平行移動量(trans12x, trans12y)から、画像１と画像３との間の平行移動量(trans13x, trans13y)を推定する（ステップＳ２１４）。図１４に示すように、時間的に連続した画像群では、画像１と画像３とに生じている動き量と画像１と画像２とに生じている動き量とは同程度と推定することができる。そこで、(trans13x, trans13y) = (trans12x, trans12y)とする。
【０１４３】
次に、ステップＳ２１４において推定した画像１と画像３との間の平行移動量(trans13x, trans13y)に基づいて、画像３からピラミッド階層を生成するときの階層数（以下、必要階層数という。）py_numを設定する（ステップＳ２１６）。
【０１４４】
既述のように、ピラミッド階層を利用する目的は、勾配法の弱点である大きな動き量に対応するためである。例えば、ある特徴点の動き量がピラミッド階層の第０階層上で１００画素だとすると、縦横１／２間引きを段階的に行うことで生成されたピラミッド階層の場合、第１階層上で５０画素、第２階層上で２５画素、…というように、ピラミッドの階層を増やせば増やすほど、見かけの動き量は小さくなり、勾配法の弱点を克服できる。
【０１４５】
ところが、階層を増やすということは、それだけ特徴点の追跡の対象となる階層が増えることを意味しており、処理時間がかかってしまう。
【０１４６】
そこで、本実施形態では、画像１と画像３との間の動き量をあらかじめ推定し、この画像１と画像３との間の動き量の推定値(trans13x, trans13y)に基づいて必要階層数py_numを設定する。ピラミッド階層生成条件発生部３２は、具体的には、平行移動量（例えば、trans13x及びtrans13yのうち絶対値が大きい方の値）に応じて表３に示すように必要階層数py_numを設定する。
【０１４７】
【表３】
2010009375.tif 000005
【０１４８】
次に、ピラミッド階層生成条件発生部３２は、ステップＳ２１６において求めた必要階層数py_numをピラミッド階層生成部２０に渡す。ピラミッド階層生成部２０は、画像３を画像メモリ１４から読み込み（ステップＳ２１８）、画像３を段階的に縮小して階層画像py31, py32, …, py3py_num-1を作成し、追跡ピラミッドpy3を生成する（ステップＳ２２０）。そして、ピラミッド階層生成部２０は、追跡ピラミッドpy3の階層画像群を画像メモリ１４に書き込む（ステップＳ２２２）。
【０１４９】
次に、変位算出部２６は、変位算出制御部２４からの指示により特徴点メモリ１６に格納されている複数の特徴点の座標(x1, y1)を取り込む（ステップＳ２２４）。そして、画像１と画像３との間で特徴点追跡が実行され（ステップＳ２２６）、特徴点追跡により求めた追跡点(x2, y2)の座標が特徴点メモリ１６に記録される（ステップＳ２２８）。なお、ステップＳ２２６における特徴点追跡の工程は上記図５と同様である。
【０１５０】
本実施形態によれば、過去の特徴点追跡の結果から、現在特徴点の追跡をしようとしている画像間に生じている位置ズレ量を推定し、そのズレ量に基づいて、画像３から作成する階層画像の階層数を決定することにより、余分な階層を生成する必要がなくなる。これにより、画像メモリの容量を節約できると同時に、追跡対象となる階層の数を減らして特徴点検出処理を高速化することができる。
【０１５１】
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。なお、以下の説明において、上記第１の実施形態と同様の構成については説明を省略する。
【０１５２】
本実施形態は、画像１、画像１よりも時間的に古い画像２及び画像１よりも時間的に新しい画像３の少なくとも３枚の画像（例えば、時間的に略等間隔に連続して撮影された画像（例えば、連写画像又は動画フレーム）、又は略等間隔にパン又はチルトされながら連続的に撮影された画像）において特徴点追跡を行う場合に、画像１と画像２との間で特徴点追跡を行って求めた特徴点と追跡点との間の距離（特徴点の移動量）に応じて、画像１と画像３との間で追跡点検出を行うときに最初に特徴点追跡を行う階層を設定するようにしたものである。
【０１５３】
図１５は、本発明の第４の実施形態に係る画像処理装置を示すブロック図である。図１５に示すように、本実施形態に係る画像処理装置１０は、開始階層設定部３４を備えている。
【０１５４】
以下、本発明の第４の実施形態に係る画像処理方法について、図１６のフローチャートを参照して説明する。
【０１５５】
まず、ピラミッド階層生成部２０は、ピラミッド階層生成制御部１８からの指示に従って、画像メモリ１４から画像１と画像２（画像１よりも時間的に古い画像）及び画像３（画像１よりも時間的に新しい画像）とを読み込む（ステップＳ３００）。そして、ピラミッド階層生成部２０は、ピラミッド階層生成部２０は、画像１を段階的に縮小して階層画像py11, py12, …, py1py_num-1を作成する。また、ピラミッド階層生成部２０は、画像２及び画像３を段階的に縮小してそれぞれ階層画像py21, py22, …, py2py_num-1及び階層画像py31, py32, …, py3py_num-1を作成する。これにより、基準ピラミッドpy1と追跡ピラミッドpy2及びpy3が生成される（ステップＳ３０２）。次に、ピラミッド階層生成部２０は、ステップＳ３０２において生成した基準ピラミッドpy1、追跡ピラミッドpy2及びpy3の階層画像を画像メモリ１４に書き込む（ステップＳ３０４）。ここで、ピラミッド階層画像の階層数はpy_numである。
【０１５６】
次に、特徴点番号ｋが初期化（k =0）される（ステップＳ３０６）。変位算出部２６は、変位算出制御部２４からの指示により特徴点メモリ１６に格納されている複数の特徴点の座標のうち、第ｋ番目の特徴点の座標(x1, y1)を取り込む（ステップＳ３０８）。ここで、特徴点メモリ１６に格納されている特徴点の座標値は、ピラミッドの第０階層py10（最も画像サイズが大きい画像（基準画像(imgb)））における座標値である。
【０１５７】
次に、画像１と画像２との間で第ｋ番目の特徴点について特徴点追跡が実行される（ステップＳ３１０）。なお、ステップＳ３１０における特徴点追跡の工程は上記図４及び図５と同様である。そして、特徴点追跡が成功した場合には（ステップＳ３１２のＹｅｓ）、特徴点追跡により求められた画像２上における追跡点の座標(x2, y2)が特徴点メモリ１６に記録される（ステップＳ３１４）。
【０１５８】
次に、開始階層設定部３４は、直前のステップＳ３１４において特徴点メモリ１６に記録された第ｋ番目の特徴点(x1, y1)とそれに対応する追跡点の座標値(x2, y2)を読み込む（ステップＳ３１６）。そして、画像１と画像２との間に生じている位置ズレ量に起因する特徴点の移動量(disp12x, disp12y)に基づいて、画像１と画像３との間に生じているであろう特徴点の移動量(disp13x, disp13y)が推定される。なお、移動量(disp12x, disp12y)は、上記平行移動量(trans12x, trans12y)と略同様にして算出することができる。図１４に示すように、画像１から３が時間的に連続した画像群であった場合、画像１と画像３とに生じている位置ズレ量に起因する特徴点の移動量と、画像１と画像２とに生じている位置ズレ量に起因する特徴点の移動量は、同程度と予測される。そこで、本実施形態では、(disp13x, disp13y) = (disp12x, disp12y)とする。
【０１５９】
次に、開始階層設定部３４は、予測特徴点移動量(disp13x, disp13y)に基づいて、画像１と画像３との間で特徴点追跡を行うときにどの階層から追跡を開始するか、その開始階層番号nstartを設定する（ステップＳ３１８）。本実施形態では、画像１と画像３との間に生じている特徴点移動量をあらかじめ推定し、この推定値に基づいて特徴点追跡を開始する階層を設定することにより、特徴点追跡の回数を抑えている。開始階層設定部３４は、具体的には、特徴点移動量（例えば、disp13x, disp13yのうち絶対値が大きい方の値）に応じて表４に示すように開始階層番号nstartを決定する。
【０１６０】
【表４】
2010009375.tif 000006
【０１６１】
一方、ステップＳ３１０の特徴点追跡が失敗した場合には（ステップＳ３１２のＮｏ）、追跡エラー値が特徴点メモリ１６に記録される（ステップＳ３２０）。そして、開始階層設定部３４は、画像１と画像３との間で特徴点追跡を行うときの開始階層（階層番号nstart）を最低解像度階層（階層番号(py_num -1)）に設定する。
【０１６２】
ステップＳ３１２からＳ３２２により開始階層が設定されると、第ｋ番目の特徴点の座標(x1, y1)が取り込まれ（ステップＳ３２４）、画像１と画像３との間で第ｋ番目の特徴点の追跡が行われる（ステップＳ３２６）。そして、特徴点追跡が成功した場合には（ステップＳ３２８のＹｅｓ）、特徴点追跡により求められた画像３上における追跡点の座標(x3, y3)が特徴点メモリ１６に記録される（ステップＳ３３０）。一方、ステップＳ３１０の特徴点追跡が失敗した場合には（ステップＳ３２８のＮｏ）、追跡エラー値が特徴点メモリ１６に記録される（ステップＳ３３２）。
【０１６３】
次に、特徴点番号が更新（インクリメント）され（ステップＳ３３４のＮｏ、Ｓ３３６）、ステップＳ３０８に戻る。そして、特徴点メモリ１６内のすべての特徴点について特徴点追跡が終了すると（ステップＳ３３４）、特徴点追跡処理の全工程が終了する。
【０１６４】
本実施形態では、過去の特徴点追跡の結果から、次に特徴点を追跡しようとしている画像間に生じているであろう特徴点の移動量を推定し、その移動量に基づいて、追跡を開始する階層を自動で決定する。これにより、追跡対象となる階層の数を減らして追跡点検出処理を高速化することができる。
【０１６５】
上記の各実施形態に係る画像処理装置１０は、例えば、画像を撮像するための撮像装置、画像を解析、処理する機能を有する装置、及びこのような装置に適用するためのアプリケーションプログラムとして提供することも可能である。
【図面の簡単な説明】
【０１６６】
【図１】本発明の第１の実施形態に係る画像処理装置を示すブロック図
【図２】階層型の勾配法による特徴点の追跡手順を模式的に示す図
【図３】各階層における特徴点追跡の手順を模式的に示す図
【図４】本発明の第１の実施形態に係る画像処理方法を示すフローチャート
【図５】追跡コア工程を示すフローチャート
【図６】反復条件設定工程の詳細を示すフローチャート
【図７】本発明の第２の実施形態に係る画像処理装置を示すブロック図
【図８】本発明の第２の実施形態に係る画像処理方法を示すフローチャート
【図９】追跡対象階層の階層番号設定工程を示すフローチャート
【図１０】追跡対象階層の階層番号設定工程を示すフローチャート
【図１１】追跡誤差を説明するための図
【図１２】本発明の第３の実施形態に係る画像処理装置を示すブロック図
【図１３】本発明の第３の実施形態に係る画像処理方法を示すフローチャート
【図１４】画像の平行移動量を説明するための図
【図１５】本発明の第４の実施形態に係る画像処理装置を示すブロック図
【図１６】本発明の第４の実施形態に係る画像処理方法を示すフローチャート
【符号の説明】
【０１６７】
１０…画像処理装置、１２…メインＣＰＵ１２、１４…画像メモリ１４、１６…特徴点メモリ、１８…ピラミッド階層生成制御部、２０…ピラミッド階層生成部、２２…、２４…変位算出制御部、２６…変位算出部、２８…反復条件設定部、３０…自動階層設定部、３２…ピラミッド階層生成条件発生部、３４…開始階層設定部
【図１】
2010009375.tif 000007
【図２】
2010009375.tif 000008
【図３】
2010009375.tif 000009
【図４】
2010009375.tif 000010
【図５】
2010009375.tif 000011
【図６】
2010009375.tif 000012
【図７】
2010009375.tif 000013
【図８】
2010009375.tif 000014
【図９】
2010009375.tif 000015
【図１０】
2010009375.tif 000016
【図１１】
2010009375.tif 000017
【図１２】
2010009375.tif 000018
【図１３】
2010009375.tif 000019
【図１４】
2010009375.tif 000020
【図１５】
2010009375.tif 000021
【図１６】
2010009375.tif 000022