(57)【特許請求の範囲】
【請求項１】
時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定する位置推定手段と、
前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断する判断手段と、
前記動きベクトルの確度を算出する算出手段と、
前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成する生成手段と、
前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定する決定手段と、
前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択する選択手段と
を備え、
前記生成手段は、
前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定する領域推定手段と、
前記対象領域に基づき前記推定点を生成する推定点生成手段と
を備え、
前記算出手段は、
第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出する評価値算出手段と、
前記注目画素を基準とする画素値の変動を表す変動値を算出する変動値算出手段と、
前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算する確度演算手段とを備える
画像処理装置。
【請求項２】
前記確度演算手段は、前記評価値を前記変動値で正規化した値に基づいて前記動きベクトルの確度を演算する
請求項１に記載の画像処理装置。
【請求項３】
前記確度演算手段は、前記変動値が所定の閾値よりも大きい場合には、前記評価値を前記変動値で正規化した値を前記動きベクトルの確度とし、前記変動値が前記閾値よりも小さい場合には、前記動きベクトルの確度が低いことを表わす固定値を選択する
請求項１に記載の画像処理装置。
【請求項４】
前記評価値算出手段は、前記注目画素を含むブロックと、前記対応画素を含むブロックの画素の差分の絶対値の総和として前記評価値を演算する
請求項１に記載の画像処理装置。
【請求項５】
前記変動値算出手段は、前記注目画素を含むブロックにおいて、前記注目画素とそれに隣接する隣接画素との差分の絶対値の総和を前記隣接画素の数で除算して得られた値の、前記ブロック内の総和として前記変動値を演算する
請求項１に記載の画像処理装置。
【請求項６】
前記確度演算手段は、
前記変動値を第１の基準値と比較する比較手段と、
第２の基準値と、前記評価値を前記変動値で正規化した値との差を演算する差演算手段と、
前記比較手段による比較結果と、前記差演算手段により演算された差に基づいて、前記動きベクトルの確度を演算し、出力する出力手段と
を備える請求項１に記載の画像処理装置。
【請求項７】
入力画像から前記動きベクトルを検出し、前記評価値算出手段に供給する動きベクトル検出手段と、
前記動きベクトル検出手段により検出された前記動きベクトルに基づいて、前記入力画像を動き補償する動き補償手段と、
前記動き補償手段により動き補償された画像と動き補償されていない画像のいずれかを、前記動きベクトルの確度に基づいて選択する選択手段と、
前記選択手段により選択された画像を符号化する符号化手段と
をさらに備える請求項１に記載の画像処理装置。
【請求項８】
前記動きベクトルの確度で重み付けされた頻度分布を算出する頻度分布算出手段と、
前記頻度分布算出手段により算出された前記頻度分布の最大値を検出し、検出された前記最大値に基づいて、背景動きを検出する最大値検出手段と
をさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記動きベクトルの確度の前記処理単位における平均値を算出する平均値算出手段と、
前記平均値算出手段により算出された前記平均値を基準値と比較し、その比較結果に基づいてシーンチェンジの有無を判定する判定手段と
をさらに備える請求項１に記載の画像処理装置。
【請求項１０】
前記位置推定手段は、前記第２の点の位置が推定可能である場合に、前記第２の点の位置を新たな第１の点として、次の処理単位の画像上の追尾点の位置の推定を行う
請求項１に記載の画像処理装置。
【請求項１１】
前記領域推定手段は、
推定対象である前記対象領域に少なくとも重なる位置を予測により求め、前記予測された位置であって、対象領域を推定する処理単位における前記追尾点を含む位置に領域推定範囲を設定し、
設定した領域推定範囲の中でサンプル点を設定し、前記サンプル点のうち、同一の動きを有するサンプル点の集合からなる領域であって最も大きい面積を持つサンプル点の集合からなる領域を前記対象領域と推定する
請求項１に記載の画像処理装置。
【請求項１２】
シーンチェンジを検出する検出手段をさらに備え、
前記領域推定手段は、前記第１の点と類似する画素値を有する点であって隣接する点およびその隣接する点にさらに隣接する点を、前記対象領域と推定し、
前記位置推定手段と前記選択手段は、それぞれの処理を、予め定められた条件に基づいて終了するとともに、前記推定点の中から前記第２の点を選択することができない時における前記シーンチェンジの有無に基づいて前記条件を変更する
請求項１に記載の画像処理装置。
【請求項１３】
前記領域推定手段は、前記前の処理単位よりも更に前の処理単位における前記第１の点を含む所定の大きさの領域の中のサンプル点を抽出し、前記サンプル点のうち、同一の動きを有するサンプル点の領域であって最も大きい面積の領域を、その同一の動きの分だけシフトした前記前の処理単位上の点を含む領域を対象領域と推定する
請求項１に記載の画像処理装置。
【請求項１４】
テンプレートを作成するテンプレート作成手段と、
前記推定点に基づいて前記第２の点を決定することができない場合、前記後の処理単位における所定の領域であるブロックと、そのブロックの処理単位より１処理単位以上前の処理単位の前記テンプレートの所定の領域であるブロックとの相関を算出する相関算出手段とをさらに備え、
前記相関算出手段により算出された前記相関に基づいて、相関が高いと判定された場合、少なくとも前記決定手段を用いて追尾点を検出する
請求項１に記載の画像処理装置。
【請求項１５】
位置推定手段、判断手段、算出手段、生成手段、決定手段、および選択手段を備える画像処理装置の画像処理方法において、
前記位置推定手段は、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定し、
前記判断手段は、前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断し、
前記算出手段は、前記動きベクトルの確度を算出し、
前記生成手段は、前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成し、
前記決定手段は、前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定し、
前記選択手段は、前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択する
ステップを含み、
前記生成手段は、
前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定し、
前記対象領域に基づき前記推定点を生成する
ステップを含み、
前記算出手段は、
第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出し、
前記注目画素を基準とする画素値の変動を表す変動値を算出し、
前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算する
ステップを含む
画像処理方法。
【請求項１６】
位置推定手段、判断手段、算出手段、生成手段、決定手段、および選択手段を備える画像処理装置に、
前記位置推定手段は、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定し、
前記判断手段は、前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断し、
前記算出手段は、前記動きベクトルの確度を算出し、
前記生成手段は、前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成し、
前記決定手段は、前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定し、
前記選択手段は、前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択する
ステップを含み、
前記生成手段は、
前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定し、
前記対象領域に基づき前記推定点を生成する
ステップを含み、
前記算出手段は、
第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出し、
前記注目画素を基準とする画素値の変動を表す変動値を算出し、
前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算する
ステップを含む
処理を実行させるプログラム。
【請求項１７】
位置推定手段、判断手段、算出手段、生成手段、決定手段、および選択手段を備える画像処理装置に、
前記位置推定手段は、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定し、
前記判断手段は、前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断し、
前記算出手段は、前記動きベクトルの確度を算出し、
前記生成手段は、前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成し、
前記決定手段は、前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定し、
前記選択手段は、前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択する
ステップを含み、
前記生成手段は、
前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定し、
前記対象領域に基づき前記推定点を生成する
ステップを含み、
前記算出手段は、
第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出し、
前記注目画素を基準とする画素値の変動を表す変動値を算出し、
前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算する
ステップを含む
処理を実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、プログラム並びに記録媒体に関し、特に、画像の中で移動するオブジェクトを発見しやすく表示できるようにし、その発見の際に、簡単かつ確実に動きベクトルの確度を算出することができるようにする画像処理装置および方法、プログラム並びに記録媒体に関する。
【背景技術】
【０００２】
ホームセキュリティシステムでは、撮像装置から送信される監視画像がモニタＴＶ(Television)に表示される。このようなシステムにおいて、マイクロ波センサと画像センサを組み合わせて監視装置を構成し、侵入者の監視の精度を向上させる方法が提案されている（例えば、特許文献１参照）。
【０００３】
また、動画像として表示される画像の中で、移動する（動く）物体を追尾対象とし、その追尾点を、自動的に追尾して画像を表示する方法も提案されている（例えば、特許文献２参照）。
【０００４】
ところで、画像圧縮する場合、異なるフレーム間の動きベクトルを求め、この動きベクトルを利用して圧縮処理が行われる。この動きベクトルは、上記した所定の物体を追尾するときなどの処理にも求められることが多い。
【０００５】
動きベクトルを求める方法としては、連続するフレーム間の所定の大きさの画素ブロックごとの処理を基本としたブロックマッチング法や、各画素における明るさの空間的勾配と時間的勾配の間の関係を用いる勾配法等の種々の方法がある。
【０００６】
例えば、ブロックマッチング法により動きベクトルを求める場合には、一方のフレームの画像上のブロックに最も良く一致する位置が、他方のフレームの画像上において一意に決定されなければならない。
【０００７】
しかし、ブロックマッチング法では、輝度差の少ないブロックの場合、誤ったブロックに対するマッチングが行われてしまうという課題があった。そこで、誤ったブロックマッチング処理による動きベクトルを検出しないために、動きベクトルの確度を求める方法が種々提案されている。
【０００８】
例えば、特許文献３には、設定したブロック領域内において、画像の複雑さを表す特徴量を算出し、その特徴量が閾値より小さい場合、動きベクトルの信頼性がないと判定することが提案されている。特許文献４には、設定されたブロック領域内において、分散値を算出し、その値が閾値より小さい場合に動きベクトルの信頼性がないと判定することが提案されている。これらは、いずれも共通して、誤ったブロックマッチング処理により検出される動きベクトルを用いないようにするための指標であった。
【０００９】
また、非特許文献１には、動きベクトルの信頼性を複雑な数式を用いることで評価することが提案されている。
【特許文献１】特開平１１−１６１８６０号公報
【特許文献２】特開平６−１４３２３５号公報
【特許文献３】特開平１０−１３４１９３号公報
【特許文献４】特許第３００６５６０号公報
【非特許文献１】吉田  俊之、外２名「動画像の動きベクトルに対する信頼度関数とその応用」電子情報通信学会論文誌Ｄ−２Vol.Ｊ８０−Ｄ−２，Ｎo５pp.１１９２−１１２０１，１９９７
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術では、例えば、不正な侵入者など、画像の中で動く物体（オブジェクト）を検知して、追尾しても、ユーザに対して表示される画像の中で、どの部分が、注目すべきオブジェクトであるのかを明確に表示することができず、その結果、ユーザが注目すべきオブジェクトを発見するのに時間がかかるおそれがあるという課題があった。
【００１１】
また、特許文献３と特許文献４の技術では、画像の複雑さを表す特徴量のみを参照することで閾値判定が行われている。その結果、各ブロック毎の動きベクトル決定時の評価値（２枚のフレームの画像のブロックの差分絶対値和）自体が大きいので、動きベクトルの信頼性が低いと判定されるべきブロックであっても、画像の複雑さを表す特徴量に信頼性があるために、誤った動きベクトルが検出されてしまうことがあった。また、評価値自体はある程度小さく、本来は信頼性がないと判定されるべきブロックであっても、画像の複雑さを表す特徴量がわずかな差で信頼性があると判定されることで、誤ったブロックマッチングを行ってしまうことがあった。従って、単純な閾値による判定では、誤った判定を行う可能性があるという課題があった。
【００１２】
また、特許文献３と特許文献４の技術では、信頼性があるか否かは判定されるが、信頼性がある場合に、どのくらい信頼できるのかという程度が不明であるという課題があった。
【００１３】
さらに、非特許文献１の技術は、信頼性の程度を数値として表現するが、動画像中の動きは小さく、平行移動のみという仮定を含んでいるために、実用性に乏しいという課題があった。また、複雑な数式を解くことにより算出されるために、ハードウェアを作る場合、処理が重く、また、規模が大きくなり、コストも高くなってしまうという課題があった。
【００１４】
本発明はこのような状況に鑑みてなされたものであり、画像の中で移動するオブジェクトを発見しやすく表示できるようにするものである。また本発明は、信頼性の高い動きベクトルの確度を数値として表現可能にし、ハードウェアを作成する場合においても、低規模、低コストにすることができるようにするものである。
【課題を解決するための手段】
【００１５】
本発明の画像処理装置は、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定する位置推定手段と、前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断する判断手段と、前記動きベクトルの確度を算出する算出手段と、前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成する生成手段と、前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定する決定手段と、前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択する選択手段とを備え、前記生成手段は、前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定する領域推定手段と、前記対象領域に基づき前記推定点を生成する推定点生成手段とを備え、前記算出手段は、第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出する評価値算出手段と、前記注目画素を基準とする画素値の変動を表す変動値を算出する変動値算出手段と、前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算する確度演算手段とを備える。
【００１６】
前記確度演算手段は、前記評価値を前記変動値で正規化した値に基づいて前記動きベクトルの確度を演算するようにすることができる。
【００１７】
前記確度演算手段は、前記変動値が所定の閾値よりも大きい場合には、前記評価値を前記変動値で正規化した値を前記動きベクトルの確度とし、前記変動値が前記閾値よりも小さい場合には、前記動きベクトルの確度が低いことを表わす固定値を選択するようにすることができる。
【００１８】
前記評価値算出手段は、前記注目画素を含むブロックと、前記対応画素を含むブロックの画素の差分の絶対値の総和として前記評価値を演算するようにすることができる。
【００１９】
前記変動値算出手段は、前記注目画素を含むブロックにおいて、前記注目画素とそれに隣接する隣接画素との差分の絶対値の総和を前記隣接画素の数で除算して得られた値の、前記ブロック内の総和として前記変動値を演算するようにすることができる。
【００２０】
前記確度演算手段は、前記変動値を第１の基準値と比較する比較手段と、第２の基準値と、前記評価値を前記変動値で正規化した値との差を演算する差演算手段と、前記比較手段による比較結果と、前記差演算手段により演算された差に基づいて、前記動きベクトルの確度を演算し、出力する出力手段とを備えるようにすることができる。
【００２１】
入力画像から前記動きベクトルを検出し、前記評価値算出手段に供給する動きベクトル検出手段と、前記動きベクトル検出手段により検出された前記動きベクトルに基づいて、前記入力画像を動き補償する動き補償手段と、前記動き補償手段により動き補償された画像と動き補償されていない画像のいずれかを、前記動きベクトルの確度に基づいて選択する選択手段と、前記選択手段により選択された画像を符号化する符号化手段とをさらに備えるようにすることができる。
【００２２】
前記動きベクトルの確度で重み付けされた頻度分布を算出する頻度分布算出手段と、前記頻度分布算出手段により算出された前記頻度分布の最大値を検出し、検出された前記最大値に基づいて、背景動きを検出する最大値検出手段とをさらに備えるようにすることができる。
【００２３】
前記動きベクトルの確度の前記処理単位における平均値を算出する平均値算出手段と、前記平均値算出手段により算出された前記平均値を基準値と比較し、その比較結果に基づいてシーンチェンジの有無を判定する判定手段とをさらに備えるようにすることができる。
【００２４】
前記位置推定手段は、前記第２の点の位置が推定可能である場合に、前記第２の点の位置を新たな第１の点として、次の処理単位の画像上の追尾点の位置の推定を行うようにすることができる。
【００２５】
前記領域推定手段は、推定対象である前記対象領域に少なくとも重なる位置を予測により求め、前記予測された位置であって、対象領域を推定する処理単位における前記追尾点を含む位置に領域推定範囲を設定し、設定した領域推定範囲の中でサンプル点を設定し、前記サンプル点のうち、同一の動きを有するサンプル点の集合からなる領域であって最も大きい面積を持つサンプル点の集合からなる領域を前記対象領域と推定するようにすることができる。
【００２６】
シーンチェンジを検出する検出手段をさらに備え、前記領域推定手段は、前記第１の点と類似する画素値を有する点であって隣接する点およびその隣接する点にさらに隣接する点を、前記対象領域と推定し、前記位置推定手段と前記選択手段は、それぞれの処理を、予め定められた条件に基づいて終了するとともに、前記推定点の中から前記第２の点を選択することができない時における前記シーンチェンジの有無に基づいて前記条件を変更するようにすることができる。
【００２７】
前記領域推定手段は、前記前の処理単位よりも更に前の処理単位における前記第１の点を含む所定の大きさの領域の中のサンプル点を抽出し、前記サンプル点のうち、同一の動きを有するサンプル点の領域であって最も大きい面積の領域を、その同一の動きの分だけシフトした前記前の処理単位上の点を含む領域を対象領域と推定するようにすることができる。
【００２８】
テンプレートを作成するテンプレート作成手段と、前記推定点に基づいて前記第２の点を決定することができない場合、前記後の処理単位における所定の領域であるブロックと、そのブロックの処理単位より１処理単位以上前の処理単位の前記テンプレートの所定の領域であるブロックとの相関を算出する相関算出手段とをさらに備え、前記相関算出手段により算出された前記相関に基づいて、相関が高いと判定された場合、少なくとも前記決定手段を用いて追尾点を検出するようにすることができる。
【００２９】
本発明の画像処理方法は、位置推定手段、判断手段、算出手段、生成手段、決定手段、および選択手段を備える画像処理装置の画像処理方法において、前記位置推定手段は、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定し、前記判断手段は、前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断し、前記算出手段は、前記動きベクトルの確度を算出し、前記生成手段は、前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成し、前記決定手段は、前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定し、前記選択手段は、前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択するステップを含み、前記生成手段は、前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定し、前記対象領域に基づき前記推定点を生成するステップを含み、前記算出手段は、第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出し、前記注目画素を基準とする画素値の変動を表す変動値を算出し、前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算するステップを含む。
【００３０】
本発明のプログラムは、位置推定手段、判断手段、算出手段、生成手段、決定手段、および選択手段を備える画像処理装置に、前記位置推定手段は、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定し、前記判断手段は、前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断し、前記算出手段は、前記動きベクトルの確度を算出し、前記生成手段は、前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成し、前記決定手段は、前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定し、前記選択手段は、前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択するステップを含み、前記生成手段は、前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定し、前記対象領域に基づき前記推定点を生成するステップを含み、前記算出手段は、第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出し、前記注目画素を基準とする画素値の変動を表す変動値を算出し、前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算するステップを含む処理を実行させる。
【００３１】
本発明の記録媒体のプログラムは、位置推定手段、判断手段、算出手段、生成手段、決定手段、および選択手段を備える画像処理装置に、前記位置推定手段は、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置を推定し、前記判断手段は、前記第２の点の位置が推定可能であるか否かを、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断し、閾値以下であれば、推定可能ではないと判断し、前記算出手段は、前記動きベクトルの確度を算出し、前記生成手段は、前記第２の点の位置が推定可能でない場合における前記第１の点の候補としての推定点を生成し、前記決定手段は、前記後の処理単位における前記第２の点の位置が推定可能である場合、前記位置推定手段による前記推定結果に基づいて、前記後の処理単位における前記第２の点を決定し、前記選択手段は、前記後の処理単位における前記第２の点の位置が推定可能でない場合、前記推定点の中から前記第１の点を選択するステップを含み、前記生成手段は、前記第１の点と同一の対象物に属する１つ以上の点の集合を前記前の処理単位、または前記前の処理単位よりさらに前の処理単位において対象領域として推定し、前記対象領域に基づき前記推定点を生成するステップを含み、前記算出手段は、第１の処理単位上の少なくとも１つ以上の画素である注目画素と、前記第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、前記注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出し、前記注目画素を基準とする画素値の変動を表す変動値を算出し、前記評価値と前記変動値に基づいて、前記動きベクトルの確度を演算するステップを含む処理を実行させる。
【００３２】
本発明においては、時間的に前の処理単位の画像上の追尾点としての第１の点の時間的に後の処理単位における追尾点としての第２の点の位置が推定され、第２の点の位置が推定可能であるか否かが、動きベクトルの確度が所定の閾値以上であれば、推定可能であると判断され、閾値以下であれば、推定可能ではないと判断され、動きベクトルの確度が算出され、第２の点の位置が推定可能でない場合における第１の点の候補としての推定点が生成され、後の処理単位における第２の点の位置が推定可能である場合、推定結果に基づいて、後の処理単位における第２の点が決定され、後の処理単位における第２の点の位置が推定可能でない場合、推定点の中から第１の点が選択される。第１の点の候補としての推定点は、第１の点と同一の対象物に属する１つ以上の点の集合を前の処理単位、または前の処理単位よりさらに前の処理単位において対象領域として推定し、対象領域に基づき推定点を生成することで生成される。また確度の算出は、第１の処理単位上の少なくとも１つ以上の画素である注目画素と、第１の処理単位と異なる第２の処理単位上の少なくとも１つ以上の画素であって、注目画素の動きベクトルに基づいて規定される対応画素との相関を表す評価値を算出し、注目画素を基準とする画素値の変動を表す変動値が算出され、評価値と変動値に基づいて演算される。
【発明の効果】
【００３３】
本発明によれば、動きベクトルの確度を算出することができる。特に、低規模、低コストで高い信頼性を有する動きベクトルの確度を数値として算出することができる。
【発明を実施するための最良の形態】
【００４９】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、本発明を監視カメラシステムに適用した場合の構成例を表している。この監視カメラシステム１においては、CCDビデオカメラ等よりなる撮像部２１により撮像された画像が画像ディスプレイ２３に表示される。追尾対象検出部２４は、撮像部２１より入力された画像から追尾対象を検出し、検出結果をオブジェクト追尾部２６に出力する。
【００５０】
オブジェクト追尾部２６は、撮像部２１より供給された画像中の、追尾対象検出部２４により指定された追尾点を追尾するように動作する。エリア設定部２５は、オブジェクト追尾部２６からの出力結果に基づいて、撮像部２１により撮像された画像の中から、追尾点を含むオブジェクトの周辺の所定の領域（エリア）を設定し、その領域を指定する位置情報を画像補正部２２に出力する。画像補正部２２は、撮像部２１により撮像された画像の中のエリア設定部２５により設定された領域について、画像のぼけ（フォーカスぼけ）を除去する補正を行い、画像ディスプレイ２３に出力する。カメラ駆動部２７は、オブジェクト追尾部２６からの制御に基づいて、撮像部２１が追尾点を中心とする画像を撮影するように撮像部２１を駆動する。
【００５１】
制御部２７は、例えば、マイクロコンピュータなどにより構成され、各部を制御する。制御部２７には、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスクなどにより構成されるリムーバブルメディア２８が必要に応じて接続され、プログラム、その他各種のデータが必要に応じて供給される。制御部２７は、また、図示せぬ入出力インタフェースを介して、ユーザからの指示（コマンドなど）の入力を受け付ける。
【００５２】
次に、図２のフローチャートを参照して、監視処理の動作について説明する。監視システム１の電源がオンされているとき、撮像部２１は監視する領域を撮像し、その撮像して得られた画像を追尾対象検出部２４、オブジェクト追尾部２６、および画像補正部２２を介して画像ディスプレイ２３に出力する。追尾対象検出部２４は、ステップＳ１において、撮像部２１から入力された画像から追尾対象を検出する処理を実行する。追尾対象検出部２４は、例えば、動く物体が検出された場合、その動く物体を追尾対象として検出する。追尾対象検出部２４は、追尾対象の中から、例えば、最も輝度の高い点、あるいは追尾対象の中心の点などを追尾点として検出し、オブジェクト追尾部２６に出力する。
【００５３】
ステップＳ２において、オブジェクト追尾部２６は、ステップＳ１で検出された追尾点を追尾する追尾処理を実行する。追尾処理の詳細については、図６を参照して後述するが、この処理により、撮像部２１により撮像された画像の中の追尾対象となるオブジェクト（例えば、人、動物など）の中の追尾点（例えば、目、頭の中心）が追尾され、その追尾位置を表す位置情報がエリア設定部２５に出力される。
【００５４】
ステップＳ３において、エリア設定部２５は、オブジェクト追尾部２６からの出力に基づいて、追尾対象のオブジェクトの周辺の所定の領域（例えば、追尾点を中心として、所定の大きさの四角形で表される領域）を補正対象エリアとして設定する。
【００５５】
ステップＳ４において、画像補正部２２は、撮像部２１により撮像された画像の中で、エリア設定部２５により設定された補正対象エリア内の画像を補正する画像補正処理を実行する。画像補正処理の詳細については、図５８を参照して後述するが、この処理により、補正対象エリア内の画像について、画像のぼけが除去された鮮明な映像が提供される。
【００５６】
ステップＳ５において、画像ディスプレイ２３は、ステップＳ４で補正された画像、すなわち、撮像部２１により撮像された画像であって、特に、補正対象エリア内のみが鮮明になるように補正された画像を出力する。
【００５７】
ステップＳ６において、オブジェクト追尾部２６は、ステップS２の処理による追尾結果に基づいて、オブジェクトの移動を検出し、移動したオブジェクトを撮像できるようにカメラを駆動させるカメラ駆動信号を生成し、カメラ駆動部２７に出力する。ステップＳ７において、カメラ駆動部２７はカメラ駆動信号に基づいて撮像部２１を駆動する。これにより撮像部２１は、追尾点が画面のから外れてしまうことがないようにカメラをパンまたはチルトする。
【００５８】
ステップＳ８において、制御部２７は、ユーザからの指示に基づいて監視処理を終了するか否かを判定し、ユーザから終了が指示されていない場合には、ステップＳ１に戻り、それ以降の処理を繰り返し実行する。ユーザから監視処理の終了が指示された場合、ステップＳ８において終了すると判定され、制御部２７は監視処理を終了する。
【００５９】
図３A乃至図３Cは、このとき画像ディスプレイ２３に表示される画像の例を、時系列に示した図である。図３Aは、撮像部２１により、追尾対象となるオブジェクト５１が撮像された画像の例であり、この例では、図中左方向に走って移動する人が、オブジェクト５１として撮像されている。図３Ｂでは、オブジェクト５１が、図３Ａの位置から図中左に移動しており、図３Ｃでは、オブジェクト５１が、図３Ｂの位置からさらに左に移動している。
【００６０】
追尾対象検出部２４は、図２のステップＳ１で、オブジェクト５１を検出し、このオブジェクト５１（人）の目を、追尾点５１Ａとしてオブジェクト追尾部２６に出力する。ステップＳ２ではオブジェクト追尾部２６により追尾処理が行われ、エリア設定部２５により、ステップＳ３で追尾対象のオブジェクト５１（追尾点５１Ａ）の周辺の所定領域が補正対象エリア５２として設定される。
【００６１】
上述したように、オブジェクト追尾部２６は、追尾点５１Ａに基づいて、オブジェクト５１を追尾するので、オブジェクト５１が移動すると、追尾点５１Ａも移動し、その追尾結果（位置）がエリア設定部２５に出力される。このため、図３Ａ乃至図３Ｃに示されるように、オブジェクト５１が図中左に移動していくと、補正対象エリア５２も図中左に移動していく。
【００６２】
移動するオブジェクト５１（追尾点５１Ａ）に対応する補正対象エリア５２の設定は、例えば、次のようにして行われる。図４は、補正対象エリアとして、追尾点の周辺に所定の大きさの四角形の領域が設定される例を示す。同図において、最初に補正対象エリア７１Ａが設定されたものとする。最初の補正対象エリア７１Ａとしては、例えば、追尾点５１Ａを基準として、それを中心とする一定の範囲が設定される。勿論、ユーザにより指定された場合には、その指定された範囲が補正対象エリア７１Ａとして設定される。このときエリア設定部２５は、補正対象エリア７１Ａの左上の角の座標（X,Y）を、内蔵するメモリに記憶する。オブジェクト５１の追尾点５１Ａが移動すると、オブジェクト追尾部２６による追尾が行われ、追尾点５１Ａの、画面上におけるX軸方向（図中左右の方向）、Y軸方向（図中上下方向）の位置（または移動距離）の情報が、追尾結果としてエリア設定部２５に供給される。
【００６３】
そして、上述した左上の角の座標に基づいて、補正対象エリアが設定される。例えば、追尾点５１Ａが画面上で、X軸方向にx、Y軸方向にyだけそれぞれ移動すると、エリア設定部２５は、補正対象エリア７１Ａの左上の座標（X,Y）に、xとyを加算し、座標（X＋x，Y+ｙ）を計算し、その座標を新たな補正対象エリア７１Ｂの左上の角の座標として記憶するとともに、補正対象エリア７１Ｂを設定する。追尾点５１ＡがX軸方向にa、Y軸方向にbだけさらに移動すると、エリア設定部２５は、補正対象エリア７１Ａの左上の座標（X+x,Y+y）に、aとbを加算し、座標（X＋x＋a，Y+ｙ+b）を計算し、その座標を新たな補正対象エリア７１Ｃの左上の角の座標として記憶するとともに、補正対象エリア７１Ｃを設定する。
【００６４】
このように、オブジェクト（追尾点）の移動に伴って、補正対象エリアも移動していく。
【００６５】
また、上述したように、補正対象エリア５２内の画像については、画像補正部２２による画像補正処理（図２のステップＳ４）が行われ、画像のぼけが除去されて、画像ディスプレイ２３に表示される。従って、図３Ａ乃至Ｃに示される画像は、補正対象エリア５２内が鮮明に表示され、補正対象エリア５２の外の領域（背景）である背景５３の画像は、補正対象エリア５２内の画像と比較すると、相対的に不鮮明に表示される。
【００６６】
このようにすることで、画像ディスプレイ２３に表示される画像の中で、補正対象エリア５２内のオブジェクト５１が、常に鮮明に表示されるので、画像ディスプレイ２３を観察するユーザは、自然にオブジェクト５１を注目するようになり、その結果、例えば不審者の侵入、物体の移動などをより迅速に発見することができる。また、オブジェクト５１は、鮮明に表示されるので、移動するオブジェクト（例えば、人物）が何（誰）であるのか、ユーザに、正確に認識させることができる。
【００６７】
次に、図１のオブジェクト追尾部２６の詳細な構成例と、その動作について説明する。図５はオブジェクト追尾部２６の機能的構成例を示すブロック図である。この例では、オブジェクト追尾部２６は、テンプレートマッチング部５１、動き推定部５２、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、乗り換え候補保持部５６、追尾点決定部５７、テンプレート保持部５８、および制御部５９により構成されている。
【００６８】
テンプレートマッチング部５１は、入力画像と、テンプレート保持部５８に保持されているテンプレート画像のマッチング処理を行う。動き推定部５２は、入力画像の動きを推定し、推定の結果得られた動きベクトルと、その動きベクトルの確度を、シーンチェンジ検出部５３、背景動き推定部５４、領域推定関連処理部５５、および追尾点決定部５７に出力する。シーンチェンジ検出部５３は、動き推定部５２より供給された確度に基づいて、シーンチェンジを検出する。
【００６９】
背景動き推定部５４は、動き推定部５２より供給された動きベクトルと確度に基づいて背景動きを推定する処理を実行し、推定結果を領域推定関連処理部５５に供給する。領域推定関連処理部５５は、動き推定部５２より供給された動きベクトルと確度、背景動き推定部５４より供給された背景動き、並びに追尾点決定部５７より供給された追尾点情報に基づいて、領域推定処理を行う。また、領域推定関連処理部５５は、入力された情報に基づいて乗り換え候補を生成し、乗り換え候補保持部５６へ供給し、保持させる。さらに、領域推定関連処理部５５は、入力画像に基づいてテンプレートを作成し、テンプレート保持部５８に供給し、保持させる。
【００７０】
追尾点決定部５７は、動き推定部５２より供給された動きベクトルと確度、並びに乗り換え候補保持部５６より供給された乗り換え候補に基づいて、追尾点を決定し、決定された追尾点に関する情報を領域推定関連処理部５５に出力する。
【００７１】
制御部５９は、追尾対象検出部から２４から出力された追尾点の情報に基づいて、テンプレートマッチング部５１乃至テンプレート保持部５８の各部を制御して、検出された追尾対象を追尾させるとともに、画像ディスプレイ２３に表示される画面の中に、追尾点が表示されるように（追尾点が画面の外にでないように）、カメラ駆動部２７に制御信号を出力し、カメラ（撮像部２１）の駆動を制御する。また、制御部５９は、追尾点の画面上での位置の情報などの追尾結果を、エリア設定部２５、制御部２７などに出力する。
【００７２】
次に、オブジェクト追尾部２６の動作について説明する。図６は、図２のステップＳ２において、オブジェクト追尾部２６が実行する追尾処理の詳細を説明するフローチャートである。
【００７３】
図７に示されるように、オブジェクト追尾部２６は、基本的に通常処理と例外処理を実行する。すなわち、ステップＳ５１で通常処理が行われる。この通常処理の詳細は、図１０を参照して後述するが、この処理により追尾対象検出部２４により指定された追尾点を追尾する処理が実行される。ステップＳ５１の通常処理において追尾点の乗り換えができなくなったとき、ステップＳ５２において、例外処理が実行される。この例外処理の詳細は、図３５のフローチャートを参照して後述するが、この例外処理により、追尾点が画像から見えなくなったとき、テンプレートマッチングにより通常処理への復帰処理が実行される。例外処理によって追尾処理を継続することができなくなった（通常処理へ復帰することができなくなった）と判定された場合には処理が終了されるが、テンプレートによる復帰処理の結果、通常処理への復帰が可能と判定された場合には、処理は再びステップＳ５１に戻る。このようにして、ステップＳ５１の通常処理とステップＳ５２の例外処理が、各フレーム毎に順次繰り返し実行される。
【００７４】
本発明においては、この通常処理と例外処理により、図７乃至図９に示されるように、追尾対象が回転したり、オクルージョンが発生したり、シーンチェンジが発生する等、追尾点が一時的に見えなくなった場合においても、追尾が可能となる。
【００７５】
すなわち、例えば、図７に示されるように、フレームｎ−１には追尾対象（オブジェクト）としての人の顔１０４が表示されており、この人の顔１０４は、右目１０２と左目１０３を有している。ユーザが、このうちの、例えば右目１０２（正確には、その中の１つの画素）を追尾点１０１として指定したとする。図７の例においては、次のフレームｎにおいて、人が図中左方向に移動しており、さらに次のフレームｎ＋１においては、人の顔１０４が時計方向に回動している。その結果、今まで見えていた右目１０２が表示されなくなり、いままでの方法では、追尾ができなくなる。そこで、上述したステップＳ５１の通常処理においては、右目１０２と同一の対象物としての顔１０４上の左目１０３が選択され、追尾点が左目１０３に乗り換えられる（設定される）。これにより追尾が可能となる。
【００７６】
図８の表示例では、フレームｎ−１において、顔１０４の図中左側からボール１２１が移動してきて、次のフレームｎにおいては、ボール１２１がちょうど顔１０４を覆う状態となっている。この状態において、追尾点１０１として指定されていた右目１０２を含む顔１０４が表示されていない。このようなオクルージョンが起きると、対象物としての顔５０４が表示されていないので、追尾点１０１に代えて追尾する乗り換え点もなくなり、以後、追尾点を追尾することが困難になる。しかし、本発明においては、追尾点１０１としての右目１０２をフレームｎ−１（実際には時間的にもっと前のフレーム）の画像がテンプレートとして予め保存されており、ボール１２１がさらに右側に移動し、フレームｎ＋１において、追尾点１０１として指定された右目１０２が再び現れると、上述したステップＳ５２の例外処理により、追尾点１０１としての右目１０２が再び表示されたことが確認され、右目１０２が再び追尾点１０１として追尾されることになる。
【００７７】
図９の例では、フレームｎ−１においては、顔１０４が表示されているが、次のフレームｎにおいては、自動車１１１が人の顔を含む全体を覆い隠している。すなわち、この場合、シーンチェンジが起きたことになる。本発明では、このようにシーンチェンジが起きて追尾点１０１が画像から存在しなくなっても、自動車１１１が移動して、フレームｎ＋１において再び右目１０２が表示されると、ステップＳ５２の例外処理で、追尾点１０１としての右目１０２が再び出現したことがテンプレートに基づいて確認され、この右目１０２を再び追尾点１０１として追尾することが可能となる。
【００７８】
次に、図１０のフローチャートを参照して、図６のステップＳ５１の通常処理の詳細について説明する。ステップＳ１２１において、追尾点決定部５７により通常処理の初期化処理が実行される。その詳細は、図１１のフローチャートを参照して後述するが、この処理によりユーザから追尾するように指定された追尾点を基準とする領域推定範囲が指定される。この領域推定範囲は、ユーザにより指定された追尾点と同一の対象物（例えば、追尾点が人の目である場合、目と同様の動きをする剛体としての人の顔、または人の体など）に属する点の範囲を推定する際に参照する範囲である。乗り換え点は、この領域推定範囲の中の点から選択される。
【００７９】
次に、ステップＳ１２２において、制御部５９は、次のフレームの画像の入力を待機するように各部を制御する。ステップＳ１２３において、動き推定部５２は、追尾点の動きを推定する。すなわち、ユーザにより指定された追尾点を含むフレーム（前フレーム）より時間的に後のフレーム（後フレーム）をステップＳ１２２の処理で取り込むことで、結局連続する２フレームの画像が得られたことになるので、ステップＳ１２３において、前フレームの追尾点に対応する後フレームの追尾点の位置を推定することで、追尾点の動きが推定される。
【００８０】
なお、時間的に前とは、処理の順番（入力の順番）をいう。通常、撮像の順番に各フレームの画像が入力されるので、その場合、より時間的に前に撮像されたフレームが前フレームとなるが、時間的に後に撮像されたフレームが先に処理（入力）される場合には、時間的に後に撮像されたフレームが前フレームとなる。
【００８１】
ステップＳ１２４において、動き推定部５２は、ステップＳ１２３の処理の結果、追尾点が推定可能であったか否かを判定する。追尾点が推定可能であったか否かは、例えば、動き推定部５２が生成、出力する動きベクトル（後述）の確度の値を、予め設定されている閾値と比較することで判定される。具体的には、動きベクトルの確度が閾値以上であれば推定が可能であり、閾値より小さければ推定が不可能であると判定される。すなわち、ここにおける可能性は比較的厳格に判定され、実際には推定が不可能ではなくても確度が低い場合には、不可能と判定される。これにより、より確実な追尾処理が可能となる。
【００８２】
なお、ステップＳ１２４では、追尾点での動き推定結果と追尾点の近傍の点での動き推定結果が、多数を占める動きと一致する場合には推定可能、一致しない場合には推定不可能と判定するようにすることも可能である。
【００８３】
追尾点の動きが推定可能であると判定された場合（追尾点が同一対象物上の対応する点上に正しく設定されている確率（右目１０２が追尾点１０１として指定された場合、右目１０２が正しく追尾されている確率）が比較的高い場合）、ステップＳ１２５に進み、追尾点決定部５７は、ステップＳ１２３の処理で得られた推定動き（動きベクトル）の分だけ追尾点をシフトする。すなわち、これにより、前フレームの追尾点の追尾後の後フレームにおける追尾の位置が決定されることになる。
【００８４】
ステップＳ１２５の処理の後、ステップＳ１２６において、領域推定関連処理が実行される。この領域推定関連処理の詳細は、図１４を参照して後述するが、この処理により、ステップＳ１２１の通常処理の初期化処理で指定された領域推定範囲が更新される。さらに、対象物体が回転するなどして、追尾点が表示されない状態になった場合に、追尾点を乗り換えるべき点としての乗り換え点としての候補（乗り換え候補）が、この状態（まだ追尾が可能な状態）において、予め抽出（作成）される。また、乗り換え候補への乗り換えもできなくなった場合、追尾は一旦中断されるが、再び追尾が可能になった（追尾点が再び出現した）ことを確認するために、テンプレートが予め作成される。
【００８５】
ステップＳ１２６の領域推定関連処理が終了した後、処理は再びステップＳ１２２に戻り、それ以降の処理が繰り返し実行される。
【００８６】
すなわち、ユーザから指定された追尾点の動きが推定可能である限り、ステップＳ１２２乃至ステップＳ１２６の処理がフレーム毎に繰り返し実行され、追尾が行われることになる。
【００８７】
これに対して、ステップＳ１２４において、追尾点の動きが推定可能ではない（不可能である）と判定された場合、すなわち、上述したように、例えば動きベクトルの確度が閾値以下であるような場合、処理はステップＳ１２７に進む。ステップＳ１２７において、追尾点決定部５７は、ステップＳ１２６の領域推定関連処理で生成された乗り換え候補が乗り換え候補保持部１１６に保持されているので、その中から、元の追尾点に最も近い乗り換え候補を１つ選択する。追尾点決定部５７は、ステップＳ１２８で乗り換え候補が選択できたか否かを判定し、乗り換え候補が選択できた場合には、ステップＳ１２９に進み、追尾点をステップＳ１２７の処理で選択した乗り換え候補に乗り換える（変更する）。すなわち、乗り換え候補の点が新たな追尾点として設定される。その後、処理はステップＳ１２３に戻り、乗り換え候補の中から選ばれた追尾点の動きを推定する処理が実行される。
【００８８】
ステップＳ１２４において新たに設定された追尾点の動きが推定可能であるか否かが再び判定され、推定可能であれば、ステップＳ１２５において追尾点を推定動き分だけシフトする処理が行われ、ステップＳ１２６において、領域推定関連処理が実行される。その後、処理は再びステップＳ１２２に戻り、それ以降の処理が繰り返し実行される。
【００８９】
ステップＳ１２４において、新たに設定された追尾点も推定不可能であると判定された場合には、再びステップＳ１２７に戻り、乗り換え候補の中から、元の追尾点に次に最も近い乗り換え候補が選択され、ステップＳ１２９において、その乗り換え候補が新たな追尾点とされる。その新たな追尾点について、再びステップＳ１２３以降の処理が繰り返される。
【００９０】
用意されているすべての乗り換え候補を新たな追尾点としても、追尾点の動きを推定することができなかった場合には、ステップＳ１２８において、乗り換え候補が選択できなかったと判定され、この通常処理は終了される。そして、図６のステップＳ５２の例外処理に処理が進むことになる。
【００９１】
次に、図１１のフローチャートを参照して、図１０のステップＳ１２１の通常処理の初期化処理の詳細について説明する。
【００９２】
ステップＳ１４１において、制御部５９は、今の処理は例外処理からの復帰の処理であるのか否かを判定する。すなわち、ステップＳ５２の例外処理を終了した後、再びステップＳ５１の通常処理に戻ってきたのか否かが判定される。最初のフレームの処理においては、まだステップＳ５２の例外処理は実行されていないので、例外処理からの復帰ではないと判定され、処理はステップＳ１４２に進む。ステップＳ１４２において、追尾点決定部５７は、追尾点を追尾点指示の位置に設定する処理を実行する。すなわち、入力画像の中で、例えば、最も輝度の高い点が追尾点として設定される。
【００９３】
なお、追尾点は、ユーザによる指定など、他の方法により設定されるようにしてもよい。ユーザによる指定とは、例えば、図示せぬマウス、その他の入力部を操作することで、制御部５９に、入力画像の中の所定の点を追尾点として指定することにより行われることである。追尾点決定部５７は、設定した追尾点の情報を領域推定関連処理部５５に供給する。
【００９４】
ステップＳ１４３において、領域推定関連処理部５５は、ステップＳ１４２の処理で設定された追尾点の位置に基づき、領域推定範囲を設定する。この領域推定範囲は、追尾点と同じ剛体上の点を推定する際の参照範囲であり、予め追尾点と同じ剛体部分が領域推定範囲の大部分を占めるように、より具体的には、追尾点と同じ剛体部分に推定領域範囲の位置や大きさが追随するように設定することで、領域推定範囲の中で最も多数を占める動きを示す部分を追尾点と同じ剛体部分であると推定できるようにするためのものである。ステップＳ１４３では初期値として、例えば、追尾点を中心とする予め設定された一定の範囲が領域推定範囲とされる。
【００９５】
その後処理は、図１０のステップＳ１２２に進むことになる。
【００９６】
一方、ステップＳ１４１において、現在の処理が、ステップＳ５２の例外処理からの復帰の処理であると判定された場合、ステップＳ１４４に進み、追尾点決定部５７は、後述する図３５を参照して後述する処理により、テンプレートにマッチした位置に基づき追尾点と領域推定範囲を設定する。例えば、テンプレート上の追尾点とマッチした現フレーム上の点が追尾点とされ、その点から予め設定されている一定の範囲が領域推定範囲とされる。その後、処理は図１０のステップＳ１２２に進む。
【００９７】
以上の処理を図１２を参照して説明すると次のようになる。すなわち、図１１のステップＳ１４２において、例えば、図１２に示されるように、フレームｎ−１の人の目１０２が追尾点１０１として指定されると、ステップＳ１４３において、追尾点１０１を含む所定の領域が領域推定範囲１３３として指定される。ステップＳ１２４において、領域推定範囲１３３の範囲内のサンプル点が次のフレームにおいて推定可能であるか否かが判定される。図１２の例の場合、フレームｎの次のフレームｎ＋１においては、領域推定範囲１３３のうち、左目１０２を含む図中左側半分の領域１３４がボール１２１で隠されているため、フレームｎの追尾点１０１の動きを、次のフレームｎ＋１において推定することができない。そこで、このような場合においては、時間的に前のフレームｎ−１で乗り換え候補として予め用意されていた領域指定範囲１３３内（右目１０２を含む剛体としての顔１０４内）の点の中から１つの点（例えば、顔１０４に含まれる左目１０３（正確には、その中の１つの画素））が選択され、その点がフレームｎ＋１における、追尾点とされる。
【００９８】
領域推定関連処理部５５は、図１０のステップＳ１２６における領域推定関連処理を実行するために、図１３に示されるような構成を有している。すなわち、領域推定関連処理部５５の領域推定部１６１には、動き推定部５２より動きベクトルと確度が入力され、背景動き推定部５４より背景動きが入力され、そして追尾点決定部５７より追尾点の位置情報が入力される。乗り換え候補抽出部１６２には、動き推定部５２より動きベクトルと確度が供給される他、領域推定部１６１の出力が供給される。テンプレート作成部１６３には、入力画像が入力される他、領域推定部１６１の出力が入力される。
【００９９】
領域推定部１６１は、入力に基づいて、追尾点を含む剛体の領域を推定し、推定結果を乗り換え候補抽出部１６２とテンプレート作成部１６３に出力する。乗り換え候補抽出部１６２は入力に基づき乗り換え候補を抽出し、抽出した乗り換え候補を乗り換え候補保持部５６へ供給する。テンプレート作成部１６３は入力に基づきテンプレートを作成し、作成したテンプレートをテンプレート保持部５８へ供給する。
【０１００】
図１４は、領域推定関連処理部５５により実行される領域推定関連処理（図１０のステップＳ１２６の処理）の詳細を表している。最初にステップＳ１６１において、領域推定部１６１により領域推定処理が実行される。その詳細は、図１５のフローチャートを参照して後述するが、この処理により、追尾点が属する対象と同一の対象（追尾点と同期した動きをする剛体）に属すると推定される画像上の領域の点が領域推定範囲の点として抽出される。
【０１０１】
ステップＳ１６２において、乗り換え候補抽出部１６２により乗り換え候補抽出処理が実行される。その処理の詳細は、図２５のフローチャート参照して後述するが、領域推定部１６１により領域推定範囲として推定された範囲の点から乗り換え候補の点が抽出され、乗り換え候補保持部５６に保持される。
【０１０２】
ステップＳ１６３においてテンプレート作成部１６３によりテンプレート作成処理が実行される。その詳細は、図２６のフローチャートを参照して後述するが、この処理によりテンプレートが作成される。
【０１０３】
次に、図１５のフローチャートを参照して、図１４のステップＳ１６１の領域推定処理の詳細について説明する。
【０１０４】
最初に、ステップＳ１８１において、領域推定部１６１は、追尾点と同一の対象に属すると推定される点の候補の点としてのサンプル点を決定する。
【０１０５】
このサンプル点は、例えば図１６に示されるように、図中、白い四角形で示されるフレームの全画面における画素のうち、固定された基準点２０１を基準として、水平方向および垂直方向に、所定の画素数ずつ離れた位置の画素をサンプル点（図中、黒い四角形で表されている）とすることができる。図１６の例においては、各フレームの左上の画素が基準点２０１とされ（図中基準点２０１は×印で示されている）、水平方向に５個、並びに垂直方向に５個ずつ離れた位置の画素がサンプル点とされる。すなわち、この例の場合、全画面中に分散した位置の画素がサンプル点とされる。また、この例の場合、基準点は、各フレームｎ，ｎ＋１において固定された同一の位置の点とされる。
【０１０６】
基準点２０１は、例えば図１７に示されるように、各フレームｎ，ｎ＋１毎に異なる位置の点となるように、動的に変化させることもできる。
【０１０７】
図１６と図１７の例においては、サンプル点の間隔が各フレームにおいて固定された値とされているが、例えば図１８に示されるように、フレーム毎にサンプル点の間隔を可変とすることもできる。図１８の例においては、フレームｎにおいては、サンプル点の間隔は５画素とされているのに対し、フレームｎ＋１においては８画素とされている。このときの間隔の基準としては、追尾点と同一の対象に属すると推定される領域の面積を用いることができる。具体的には、領域推定範囲の面積が狭くなれば間隔も短くなる。
【０１０８】
あるいはまた、図１９に示されるように、１つのフレーム内においてサンプル点の間隔を可変とすることもできる。このときの間隔の基準としては、追尾点からの距離を用いることができる。すなわち、追尾点に近いサンプル点ほど間隔が小さく、追尾点から遠くなるほど間隔が大きくなる。
【０１０９】
以上のようにしてサンプル点が決定されると、次にステップＳ１８２において、領域推定部１６１は、領域推定範囲（図１１のステップＳ１４３，Ｓ１４４の処理、または、後述する図２０のステップＳ２０６，Ｓ２０８の処理で決定されている）内のサンプル点の動きを推定する処理を実行する。すなわち、領域推定部１６１は、動き推定部５２より供給された動きベクトルに基づいて、領域推定範囲内のサンプル点に対応する次のフレームの対応する点を抽出する。
【０１１０】
ステップＳ１８３において、領域推定部１６１は、ステップＳ１８２の処理で推定したサンプル点のうち、確度が予め設定されている閾値より低い動きベクトルに基づく点を対象外とする処理を実行する。この処理に必要な動きベクトルの確度は、動き推定部５２より供給される。これにより、領域推定範囲内のサンプル点のうち、確度が高い動きベクトルに基づいて推定された点だけが抽出される。
【０１１１】
ステップＳ１８４において、領域推定部１６１は、領域推定範囲内の動き推定結果での全画面動きを抽出する。全画面動きとは、同一の動きに対応する領域を考え、その面積が最大となる動きのことを意味する。具体的には、各サンプル点の動きに、そのサンプル点におけるサンプル点間隔に比例する重みを付けて動きのヒストグラムを生成し、この重み付け頻度が最大となる１つの動き（１つの動きベクトル）が全画面動きとして抽出される。なお、ヒストグラムを生成する場合、例えば、動きの代表値を画素精度で準備し、画素精度で１個となる値を持つ動きについてもヒストグラムへの加算を行うようにすることもできる。
【０１１２】
ステップＳ１８５において、領域推定部１６１は、全画面動きを持つ領域推定範囲内のサンプル点を領域推定の結果として抽出する。この場合における全画面動きを持つサンプル点としては、全画面動きと同一の動きを持つサンプル点はもちろんのこと、全画面動きとの動きの差が予め設定されている所定の閾値以下である場合には、そのサンプル点もここにおける全画面動きを持つサンプル点とすることも可能である。
【０１１３】
このようにして、ステップＳ１４３，Ｓ１４４，Ｓ２０６，Ｓ２０８の処理で決定された領域推定範囲内のサンプル点のうち、全画面動きを有するサンプル点が、追尾点と同一対象に属すると推定される点として最終的に抽出（生成）される。
【０１１４】
次に、ステップＳ１８６において、領域推定部１６１は、領域推定範囲の更新処理を実行する。その後、処理は、図１０のステップＳ１２２に進む。
【０１１５】
図２０は、図１５のステップＳ１８６の領域推定範囲の更新処理の詳細を表している。ステップＳ２０１において、領域推定部１６１は、領域の重心を算出する。この領域とは、図１５のステップＳ１８５の処理で抽出されたサンプル点で構成される領域（追尾点と同一対象に属すると推定される点で構成される領域）を意味する。すなわち、この領域には１つの動きベクトル（全画面動き）が対応している。例えば、図２１Ａに示されるように、図中白い四角形で示されるサンプル点のうち、領域推定範囲２２１内のサンプル点の中から、図１５のステップＳ１８５の処理で全画面動きを持つサンプル点として、図２１Ａにおいて黒い四角形で示されるサンプル点が抽出され、そのサンプル点で構成される領域が、領域２２２として抽出（推定）される。そして、領域２２２の重心２２４がさらに算出される。具体的には、各サンプル点にサンプル点間隔の重みを付けたサンプル点重心が領域の重心として求められる。この処理は、現フレームにおける領域の位置を求めるという意味を有する。
【０１１６】
次にステップＳ２０２において、領域推定部１６１は、領域の重心を全画面動きによりシフトする処理を実行する。この処理は、領域推定範囲２２１を領域の位置の動きに追従させ、次フレームにおける推定位置に移動させるという意味を有する。図２１Ｂに示されるように、現フレームにおける追尾点２２３が、その動きベクトル２３８に基づいて次フレームにおいて追尾点２３３として出現する場合、全画面動きベクトル２３０が、追尾点の動きベクトル２３８にほぼ対応しているので、現フレームにおける重心２２４を動きベクトル２３０（全画面動き）に基づいてシフトすることで、追尾点２３３と同一のフレーム（次フレーム）上の点２３４が求められる。この点２３４を中心として領域推定範囲２３１を設定すれば、領域推定範囲２２１を領域２２２の位置の動きに追従させて、次のフレームにおける推定位置に移動させることになる。
【０１１７】
ステップＳ２０３において、領域推定部１６１は、領域推定結果に基づき、次の領域推定範囲の大きさを決定する。具体的には、領域と推定された全てのサンプル点に関するサンプル点の間隔（図２１Ａにおける領域２２２の中の黒い四角形で示される点の間隔）の２乗和を領域２２２の面積と見なし、この面積よりも少し大きめの大きさとなるように、次フレームにおける領域推定範囲２３１の大きさが決定される。すなわち、領域推定範囲２３１の大きさは、領域２２２の中のサンプル点の数が多ければ広くなり、少なければ狭くなる。このようにすることで、領域２２２の拡大縮小に追従することができるばかりでなく、領域推定範囲２２１内の全画面領域が追尾対象の周辺領域となるのを防ぐことができる。
【０１１８】
図１５のステップＳ１８４で抽出された全画面動きが、背景動きと一致する場合には、動きにより背景と追尾対象を区別することができない。そこで、背景動き推定部５４は背景動き推定処理を常に行っており、ステップＳ２０４において、領域推定部１６１は、背景動き推定部５４より供給される背景動きと、図１５のステップＳ１８４の処理で抽出された全画面動きとが一致するか否かを判定する。全画面動きと背景動きが一致する場合には、ステップＳ２０５において、領域推定部１６１は、次の領域推定範囲の大きさを、今の領域推定範囲の大きさが最大となるように制限する。これにより、背景が追尾対象として誤認識され、領域推定範囲の大きさが拡大してしまうようなことが抑制される。
【０１１９】
ステップＳ２０４において、全画面動きと背景動きが一致しないと判定された場合には、ステップＳ２０５の処理は必要がないのでスキップされる。
【０１２０】
次に、ステップＳ２０６において、領域推定部１６１は、シフト後の領域重心を中心として次の領域推定範囲の大きさを決定する。これにより、領域推定範囲が、その重心が既に求めたシフト後の領域重心と一致し、かつ、その大きさが領域の広さに比例するように決定される。
【０１２１】
図２１Ｂの例では、領域推定範囲２３１が、動きベクトル（全画面動き）２３０に基づくシフト後の重心２３４を中心として、領域２２２の面積に応じた広さに決定されている。
【０１２２】
領域推定範囲２３１内での全画面動きを有する領域が追尾対象（例えば、図１２の顔１０４）の領域であることを担保する（確実にする）必要がある。そこで、ステップＳ２０７において、領域推定部１６１は、追尾点が次の領域推定範囲に含まれるか否かを判定し、含まれていない場合には、ステップＳ２０８において、追尾点を含むように次の領域推定範囲をシフトする処理を実行する。追尾点が次の領域推定範囲に含まれている場合には、ステップＳ２０８の処理は必要がないのでスキップされる。
【０１２３】
この場合における具体的なシフトの方法としては、移動距離が最小となるようにする方法、シフト前の領域推定範囲の重心から追尾点に向かうベクトルに沿って追尾点が含まれるようになる最小距離だけ移動する方法などが考えられる。
【０１２４】
なお、追尾のロバスト性を重視するために、領域に追尾点を含むようにするためのシフトを行わない方法も考えられる。
【０１２５】
図２１Ｃの例においては、領域推定範囲２３１が追尾点２３３を含んでいないので、領域推定範囲２４１として示される位置（追尾点２３３をその左上に含む位置）に領域推定範囲２４１がシフトされる。
【０１２６】
図２１Ａ乃至図２１Ｃは、ステップＳ２０８のシフト処理が必要な場合を示しているが、図２２Ａ乃至図２２Ｃは、ステップＳ２０８のシフト処理が必要でない場合（ステップＳ２０７において追尾点が次の領域推定範囲に含まれると判定された場合）の例を表している。
【０１２７】
図２２Ａ乃至図２２Ｃに示されるように、領域推定範囲２２１内のすべてのサンプル点が領域の点である場合には、図２０のステップＳ２０８のシフト処理が必要なくなることになる。
【０１２８】
なお、図２１Ａ乃至図２１Ｃと図２２Ａ乃至図２２Ｃは、領域推定範囲が矩形である例を示したが、領域推定範囲は、他の形状（例えば、円形）としてもよい。
【０１２９】
以上のようにして、図２０（図１５のステップＳ１８６）の領域推定範囲の更新処理により、次フレームのための領域推定範囲の位置と大きさが追尾点を含むように決定される。
【０１３０】
図２０の領域推定範囲の更新処理においては、領域推定範囲を矩形（または円形）の固定形状としたが、可変形状とすることも可能である。この場合における図１５のステップＳ１８６における領域推定範囲の更新処理の例について、図２３を参照して説明する。
【０１３１】
ステップＳ２３１において、領域推定部１６１は、図１５のステップＳ１８４の処理で抽出された全画面動きと背景動き推定部１６４により推定された背景動きとが一致するか否かを判定する。両者の動きが一致しない場合には、ステップＳ２３３に進み、領域推定部１６１は、領域（全画面動きと一致する画素で構成される領域）と推定されたすべての点につき、それぞれに対応する小領域を決定する（１個の点に対して１個の小領域を決定する）。図２４Ａと図２４Ｂの例においては、領域推定範囲２６１のうち、図中黒い四角形で示される領域の点に対応する小領域２７１，２７２が決定される。図中小領域２７１は、４つの点に対応する小領域が重なりあった例を示している。小領域の大きさは、例えば、サンプル点の間隔に比例するように決定してもよい。
【０１３２】
次に、ステップＳ２３４において、領域推定部１６１は、ステップＳ２３３の処理で決定した各小領域の和の領域を暫定領域推定範囲とする。図２４Ｃの例においては、小領域２７１と小領域２７２の和の領域２８１が暫定領域推定範囲とされる。小領域の和をとった結果、不連続な複数の領域が形成される場合には、その中の最大面積を持つ領域のみを暫定領域推定範囲とすることもできる。
【０１３３】
ステップＳ２３１において、全画面動きと背景動きとが一致すると判定された場合には、ステップＳ２３２において、領域推定部１６１は、現在の領域推定範囲を暫定領域推定範囲とする。現在の領域推定範囲を暫定推定領域範囲とするのは、背景動き推定の結果と全画面動きが一致する場合には、動きにより背景と追尾対象を区別することができないので、現在の領域推定範囲を変更しないようにするためである。
【０１３４】
ステップＳ２３４またはステップＳ２３２の処理の後、ステップＳ２３５において領域推定部１６１は、ステップＳ２３４またはステップＳ２３２で決定された暫定領域推定範囲の全画面動きによるシフトで、次の領域推定範囲を決定する。図２４Ｄの例においては、暫定領域推定範囲２８１が全画面動きによる動きベクトル２８３に基づいてシフトされ、暫定領域推定範囲２８２とされている。
【０１３５】
ステップＳ２３６において、領域推定部１６１は、追尾点がステップＳ２３５の処理で決定された次の領域推定範囲に含まれるか否かを判定し、含まれない場合には、ステップＳ２３７に進み、追尾点を含むように次の領域推定範囲をシフトする。図２４Ｃと図２４Ｄの例においては、領域推定範囲２８２が追尾点２８４を含んでいないので、追尾点２８４を左上に含むようにシフトされ、領域推定範囲２９１とされている。
【０１３６】
ステップＳ２３６において、追尾点が次の領域推定範囲に含まれると判定された場合には、ステップＳ２３７のシフト処理は必要ないのでスキップされる。
【０１３７】
次に図１４のステップＳ１６２における乗り換え候補抽出処理について、図２５のフローチャートを参照して説明する。
【０１３８】
ステップＳ２６１において、乗り換え候補抽出部１６２は、全画面動きの領域と推定されたすべての点につき、それぞれに対応する推定動きでの点のシフト結果を乗り換え候補として保持する。すなわち、領域推定結果として得られた点をそのまま用いるのではなく、それらを次のフレームでの使用のために、それぞれの動き推定結果に基づきシフトされた結果を抽出する処理が行われ、その抽出された乗り換え候補が、乗り換え候保持部５６に供給され、保持される。
【０１３９】
この処理を図１２を参照して説明すると、次のようになる。すなわち、図１２の例において、フレームｎ−１，ｎでは追尾点１０１が存在するが、フレームｎ＋１においては、図中左側から飛んできたボール１２１により隠されてしまい、追尾点１０１が存在しない。そこでフレームｎ＋１において、追尾点を追尾対象としての顔１０４上の他の点（例えば、左目１０３（実際には右目１０２にもっと近接した点））に乗り換える必要が生じる。そこで、乗り換えが実際に必要になる前のフレームで、乗り換え候補を予め用意しておくのである。
【０１４０】
具体的には、図１２の例の場合、フレームｎからフレームｎ＋１への領域推定範囲１３３内での動き推定結果は、領域推定範囲１３３において乗り換えが必要なことから、正しく推定できない確率が高いことが予想される。すなわち、図１２の例では、乗り換えが追尾点と、それと同一の対象物の一部が隠れることに起因して起きる。その結果、フレームｎでの領域推定範囲１３３のうち、フレームｎ＋１で対象が隠れる部分（図１２において影を付した部分）１３４については、動きが正しく推定されず、動きの確度が低いことが推定されるか、または確度が低くないと推定され、かつ、動き推定結果としては意味のないものが得られることになる。
【０１４１】
このような場合には、領域推定の際に用いることが可能な動き推定結果が減少する、あるいは誤った動き推定結果が混入するなどの理由で、領域推定が誤る可能性が高まる。一方、このような可能性は、一般的に、より時間的に前のフレームｎ−１からフレームｎの間での領域推定においては、フレームｎからフレームｎ＋１での間での推定に比較して低くなることが予想される。
【０１４２】
そこで、リスク低減のため、領域推定結果をそのまま用いるのではなく、前のフレームｎ−１（あるいは、時間的にもっと前のフレーム）で求めた領域推定結果を、その次のフレームでの移動先の乗り換え候補として用いるのが性能向上の上で望ましい。
【０１４３】
図２６は、図１４のステップＳ１６３におけるテンプレート作成処理の詳細を表している。ステップＳ２８１においてテンプレート作成部１６３は、領域（全画面動きの領域）と推定されたすべての点につき、それぞれに対応する小領域を決定する。図２７の例においては、領域の点３２１に対応して小領域３２２が決定されている。
【０１４４】
ステップＳ２８２において、テンプレート作成部１６３は、ステップＳ２８１の処理で決定された小領域の和の領域をテンプレート範囲に設定する。図２７の例においては、小領域３２２の和の領域がテンプレート範囲３３１とされている。
【０１４５】
次にステップＳ２８３において、テンプレート作成部１６３は、ステップＳ２８２において設定したテンプレート範囲の情報と画像情報からテンプレートを作成し、テンプレート保持部５８に供給し、保持させる。具体的には、テンプレート範囲３３１内の画素データがテンプレートとされる。
【０１４６】
図２８は、領域の点３２１に対応する小領域３４１が、図２７における小領域３２２に較べてより大きな面積とされている。その結果、小領域３４１の和の領域のテンプレート範囲３５１も、図２７のテンプレート範囲３３１に較べてより広くなっている。
【０１４７】
小領域の大きさは、サンプル点の間隔に比例させることが考えられるが、その際の比例定数は、面積がサンプル点間隔の自乗になるように決めることもできるし、それより大きくまたは小さく決めることも可能である。
【０１４８】
なお、領域推定結果を用いず、例えば追尾点を中心とする固定の大きさや形状の範囲をテンプレート範囲として用いることも可能である。
【０１４９】
図２９は、テンプレートと領域推定範囲の位置関係を表している。テンプレート範囲４０３には、追尾点４０５が含まれている。テンプレート範囲４０３に外接する外接矩形４０１の図中左上の点がテンプレート基準点４０４とされている。テンプレート基準点４０４から追尾点４０５に向かうベクトル４０６、並びにテンプレート基準点４０４から領域推定範囲４０２の図中左上の基準点４０８に向かうベクトル４０７が、テンプレート範囲４０３の情報とされる。テンプレートは、テンプレート範囲４０３に含まれる画素で構成される。ベクトル４０６，４０７は、テンプレートと同じ画像が検出された際の通常処理への復帰に用いられる。
【０１５０】
以上の処理においては、乗り換え候補の場合と異なり、範囲、画素ともに、現フレームに対応するものをテンプレートとする例を説明したが、乗り換え候補の場合と同様に、次フレームでの移動先をテンプレートとして用いることも可能である。
【０１５１】
以上のようにして、追尾点を含む画素データからなるテンプレートが乗り換え候補と同様に、通常処理中に、予め作成される。
【０１５２】
図１０のステップＳ１２６における領域推定関連処理は、領域推定関連処理部５５を、例えば図３０に示されるように構成することで処理することも可能である。
【０１５３】
この場合においても、領域推定関連処理部５５は、図１３における場合と同様に、領域推定部１６１、乗り換え候補抽出部１６２、およびテンプレート作成部１６３により構成されるが、この実施の形態の場合、領域推定部１６１には、追尾点決定部５７より追尾点の情報と入力画像が入力される。乗り換え候補抽出部１６２には、領域推定部１６１の出力のみが供給されている。テンプレート作成部１６３には、領域推定部１６１の出力と入力画像とが供給されている。
【０１５４】
この場合においても、基本的な処理は、図１４に示される場合と同様に、ステップＳ１６１において、領域推定処理が行われ、ステップＳ１６２において、乗り換え候補抽出処理が行われ、ステップＳ１６３において、テンプレート作成処理が行われる。このうちのステップＳ１６３のテンプレート作成処理は、図２６に示した場合と同様であるので、ステップＳ１６１の領域推定処理と、ステップＳ１６２の乗り換え候補抽出処理についてのみ以下に説明する。
【０１５５】
最初に、図３１のフローチャートを参照して、ステップＳ１６１における領域推定処理の詳細について説明する。ステップＳ３０１において、図３０の領域推定部１６１は、追尾点と同一対象に属する画像上の領域を推定するためにサンプル点を決定する。この処理は、図１５のステップＳ１８１の処理と同様の処理である。
【０１５６】
ただし、このステップＳ３０１の処理において対象とされるフレームは、追尾点を求め終わったフレーム（追尾後の追尾点を含むフレーム）であり、この点、図１５のステップＳ１８１においてサンプル点を求めるフレームが前フレームであるのと異なる。
【０１５７】
次に、このステップＳ３０２において、領域推定部１６１は、次フレーム（ステップＳ３０１でサンプル点を決定したフレーム）の画像に空間方向のローパスフィルタを施す処理を実行する。すなわちローパスフィルタを施すことにより、高周波成分が除去され、画像が平滑化される。これにより、次のステップＳ３０３における同色領域の成長処理が容易になる。
【０１５８】
次に、ステップＳ３０３において、領域推定部１６１は、追尾点を出発点として、画素値の差分が閾値THimg未満であるという条件で、追尾点の同色領域を成長させ、同色領域に含まれるサンプル点を領域の推定結果とする処理を実行する。領域の推定結果としては、成長させた結果の同色領域に含まれるサンプル点が利用される。
【０１５９】
具体的には、例えば図３２Ａに示されるように、追尾点４２１に隣接する８個の方向の画素の画素値が読み取られる。すなわち、上方向、右上方向、右方向、右下方向、下方向、左下方向、左方向、および左上方向の８つの方向に隣接する画素の画素値が読み取られる。読み取られた画素値と追尾点４２１の画素値との差分が演算される。そして、演算された差分値が閾値THimg以上であるか否かが判定される。図３２Ａの場合、矢印を付して示される方向の画素値、すなわち上方向、右上方向、下方向、左方向、および左上方向の画素値と追尾点３２１の差分が閾値THimg未満であり、図中矢印を付さずに示されている方向、すなわち右方向、右下方向、および左下方向の画素値と追尾点４２１の差分が閾値THimg以上であったとされる。
【０１６０】
この場合、図３２Ｂに示されるように、差分が閾値THimg未満である画素（図３２Ａにおいて、追尾点４２１に対して矢印で示される方向の画素）が追尾点４２１と同色領域の画素４２２として登録される。同様の処理が同色領域に登録された各画素４２２において行われる。図３２Ｂに示される例では、図中左上の白い円で示される画素４２２とそれに隣接する画素（既に同色領域であるとの判定が行われた画素を除く）の画素値の差分が演算され、その差分が閾値THimg以上であるか否かが判定される。図３２Ｂの例においては、右方向、右下方向、および下方向の画素は、既に同色領域の判定処理が終了している方向なので、上方向、右上方向、左下方向、左方向、および左上方向においての差分が演算される。そして、この例では、上方向、右上方向、および左上方向の３つの方向の差分が閾値THimg未満とされ、図３２Ｃに示されるように、その方向の画素が追尾点４２１と同色領域の画素として登録される。
【０１６１】
以上のような処理が順次繰り返されることで、図３３に示されるように、サンプル点のうち、同色領域４３１に含まれる点が追尾点４２１と同一対象物上の点として推定される。
【０１６２】
図３１に示される領域推定処理（図１４のステップＳ１６１）に続いて、図３０の乗り換え候補抽出部１６２において実行される図１４のステップＳ１６２の乗り換え候補抽出処理は、図３４のフローチャートに示されるようになる。
【０１６３】
すなわち、ステップＳ３３１において、乗り換え候補抽出部１６２は、領域（同色領域）と推定されたすべての点をそのまま乗り換え候補とし、それを乗り換え候補保持部５６に供給し、保持させる。
【０１６４】
図３０の領域推定関連処理部５５において、図３１の領域推定処理（図１４のステップＳ１６１）、図３４の乗り換え候補抽出処理（図１４のステップＳ１６２）に引き続き、図３０のテンプレート作成部１６３で実行される図１４のステップＳ１６３のテンプレート作成処理は、図２６に示される場合と同様であるので、その説明は省略する。
【０１６５】
ただし、この場合においては、追尾点の同色領域をそのままテンプレートの範囲とすることも可能である。
【０１６６】
以上に説明した図６のステップＳ５１の通常処理に続いて行われるステップＳ５２の例外処理の詳細について、図３５のフローチャートを参照して説明する。この処理は、上述したように、図１０のステップＳ１２４において追尾点の動きを推定することが不可能と判定され、さらにステップＳ１２８において追尾点を乗り換える乗り換え候補が選択できなかったと判定された場合に実行されることになる。
【０１６７】
ステップＳ４０１において、制御部５９は、例外処理の初期化処理を実行する。この処理の詳細は図３６のフローチャートに示されている。
【０１６８】
ステップＳ３２１において、制御部５９は、追尾点の追尾ができなくなった際（追尾点の動きを推定することが不可能かつ、追尾点を乗り換える乗り換え候補が選択できなかった際）にシーンチェンジが起きていたか否かを判定する。シーンチェンジ検出部５３は、動き推定部５２の推定結果に基づいてシーンチェンがあったか否かを常に監視しており、制御部５９は、そのシーンチェンジ検出部５３の検出結果に基づいて、ステップＳ４２１の判定を実行する。シーンチェンジ検出部５３の具体的処理については、図４７と図４８を参照して後述する。
【０１６９】
シーンチェンジが起きている場合、追尾ができなくなった理由がシーンチェンジが発生したことによるものと推定して、ステップＳ４２２において制御部１９は、モードをシーンチェンジに設定する。これに対して、ステップＳ４２１においてシーンチェンジが発生していないと判定された場合には、制御部５９は、ステップＳ４２３においてモードをその他のモードに設定する。
【０１７０】
ステップＳ４２２またはステップＳ４２３の処理の後、ステップＳ４２４においてテンプレートマッチング部５１は、時間的に最も古いテンプレートを選択する処理を実行する。具体的には、図３７に示されるように、例えばフレームｎからフレームｎ＋１に移行するとき、例外処理が実行されるものとすると、フレームｎ−ｍ＋１からフレームｎに関して生成され、テンプレート保持部５８に保持されているｍ個のフレームのテンプレートの中から、時間的に最も古いテンプレートであるフレームｎ−ｍ＋１に関して生成されたテンプレートが選択される。
【０１７１】
このように例外処理への移行直前のテンプレート（図３７の例の場合フレームｎに関して生成されたテンプレート）を用いずに、時間的に少し前のテンプレートを選択するのは、追尾対象のオクルージョンなどで例外処理への移行が発生した場合には、移行の直前には追尾対象が既にかなり隠れており、その時点のテンプレートでは、追尾対象を充分に大きく捉えることができない可能性が高いからである。従って、このように時間的に若干前のフレームにおけるテンプレートを選択することで、確実な追尾が可能となる。
【０１７２】
次に、ステップＳ４２５において、テンプレートマッチング部５１は、テンプレート探索範囲を設定する処理を実行する。テンプレート探索範囲は、例えば、例外処理に移行する直前の追尾点の位置がテンプレート探索範囲の中心となるように設定される。
【０１７３】
すなわち、図３８に示されるように、フレームｎにおいて被写体の顔１０４の右目１０２が追尾点１０１として指定されている場合において、図中左方向からボール１２１が飛んできて、フレームｎ＋１において追尾点１０１を含む顔１０４が隠れ、フレームｎ＋２において、再び追尾点１０１が現れる場合を想定する。この場合において、追尾点１０１（テンプレート範囲４１１に含まれる）を中心とする領域がテンプレート探索範囲４１２として設定される。
【０１７４】
ステップＳ４２６において、テンプレートマッチング部５１は、例外処理への移行後の経過フレーム数およびシーンチェンジ数を０にリセットする。このフレーム数とシーンチェンジ数は、後述する図３５のステップＳ４０５における継続判定処理（図３９のステップＳ４６１，Ｓ４６３，Ｓ４６５，Ｓ４６７）において使用される。
【０１７５】
以上のようにして、例外処理の初期化処理が終了した後、図３５のステップＳ４０２において、制御部５９は次のフレームを待つ処理を実行する。ステップＳ４０３において、テンプレートマッチング部５１は、テンプレート探索範囲内においてテンプレートマッチング処理を行う。ステップＳ４０４においてテンプレートマッチング部５１は、通常処理への復帰が可能であるか否かを判定する。
【０１７６】
具体的には、テンプレートマッチング処理により、数フレーム前のテンプレート（図３８のテンプレート範囲４１１内の画素）と、テンプレート探索範囲内のマッチング対象の画素の差分の絶対値和が演算される。より詳細には、テンプレート範囲４１１内の所定のブロックと、テンプレート探索範囲内の所定のブロックにおけるそれぞれの画素の差分の絶対値和が演算される。ブロックの位置がテンプレート範囲４１１内で順次移動され、各ブロックの差分の絶対値和が加算され、そのテンプレートの位置における値とされる。そして、テンプレートをテンプレート探索範囲内で順次移動させた場合における差分の絶対値和が最も小さくなる位置とその値が検索される。ステップＳ４０４において、最小の差分の絶対値和が、予め設定されている所定の閾値と比較される。差分の絶対値和が閾値以下である場合には、追尾点（テンプレートに含まれている）を含む画像が再び出現したことになるので、通常処理への復帰が可能であると判定され、処理は図６のステップＳ５１の通常処理に戻る。
【０１７７】
そして上述したように、図１１のステップＳ１４１において、例外処理からの復帰であると判定され、ステップＳ１４４において、差分絶対値和が最小となる位置をテンプレートのマッチした位置として、このマッチした位置とテンプレートに対応して保持してあったテンプレート位置と追尾点領域推定範囲の位置関係から、追尾点と領域推定範囲の設定が行われる。すなわち、図２９を参照して説明したように、追尾点４０５を基準とするベクトル４０６，４０７に基づいて、領域推定範囲４０２が設定される。
【０１７８】
ただし、図１４のステップＳ１６１の領域推定処理において、領域推定範囲を用いない手法を用いる場合（例えば、図３１に示される領域推定処理が用いられる場合）には、領域推定範囲の設定は行われない。
【０１７９】
図３５のステップＳ４０４における通常処理への復帰が可能であるか否かの判定は、最小の差分絶対値和をテンプレートのアクティビティで除算して得られる値を閾値と比較することで行うようにしてもよい。この場合におけるアクティビティは、後述する図４０のアクティビティ算出部６０２により、図４１のステップＳ６０３において算出された値を用いることができる。
【０１８０】
あるいはまた、今回の最小の差分絶対値和を１フレーム前における最小の差分絶対値和で除算することで得られた値を所定の閾値と比較することで、通常処理への復帰が可能であるか否かを判定するようにしてもよい。この場合、アクティビティの計算が不要となる。すなわち、ステップS４０４では、テンプレートとテンプレート探索範囲の相関が演算され、相関値と閾値の比較に基づいて判定が行われる。
【０１８１】
ステップＳ４０４において、通常処理への復帰が可能ではないと判定された場合、ステップＳ４０５に進み、継続判定処理が実行される。継続判定処理の詳細は、図３９のフローチャートを参照して後述するが、これにより、追尾処理が継続可能であるか否かの判定が行われる。
【０１８２】
ステップＳ４０６において、制御部５９は、追尾点の追尾が継続可能であるか否かを継続判定処理の結果に基づいて（後述する図３９のステップＳ４６６，Ｓ４６８で設定されたフラグに基づいて）判定する。追尾点の追尾処理が継続可能である場合には、処理はステップＳ３０２に戻り、それ以降の処理が繰り返し実行される。すなわち、追尾点が再び出現するまで待機する処理が繰り返し実行される。
【０１８３】
これに対して、ステップＳ４０６において、追尾点の追尾処理が継続可能ではないと判定された場合（後述する図３９のステップＳ４６５で、追尾点が消失した後の経過フレーム数が閾値THfr以上と判定されるか、または、ステップＳ４６７でシーンチェンジ数が閾値THsc以上と判定された場合）、最早、追尾処理は不可能として、追尾処理は終了される。
【０１８４】
図３９は、図３５のステップＳ４０５における継続判定処理の詳細を表している。ステップＳ４６１において、制御部５９は、変数としての経過フレーム数に１を加算する処理を実行する。経過フレーム数は、図３５のステップＳ４０１の例外処理の初期化処理（図３６のステップＳ４２６）において、予め０にリセットされている。
【０１８５】
次にステップＳ４６２において、制御部５９は、シーンチェンジがあるか否かを判定する。シーンチェンジがあるか否かは、シーンチェンジ検出部５３が、常にその検出処理を実行しており、その検出結果に基づいて判定が可能である。シーンチェンジがある場合には、ステップＳ４６３に進み、制御部５９は変数としてのシーンチェンジ数に１を加算する。このシーンチェンジ数も、図３６のステップＳ４２６の初期化処理において０にリセットされている。通常処理から例外処理への移行時にシーンチェンジが発生していない場合には、ステップＳ４６３の処理はスキップされる。
【０１８６】
次に、ステップＳ４６４において、制御部５９は、現在設定されているモードがシーンチェンジであるか否かを判定する。このモードは、図３６のステップＳ４２２，Ｓ４２３において設定されたものである。現在設定されているモードがシーンチェンジである場合には、ステップＳ４６７に進み、制御部５９は、シーンチェンジ数が予め設定されている閾値THscより小さいか否かを判定する。シーンチェンジ数が閾値THscより小さい場合には、ステップＳ４６６に進み、制御部５９は継続可のフラグを設定し、シーンチェンジ数が閾値THsc以上である場合には、ステップＳ４６８に進み、継続不可のフラグを設定する。
【０１８７】
一方、ステップＳ４６４において、モードがシーンチェンジではないと判定された場合（モードがその他であると判定された場合）、ステップＳ４６５に進み、制御部５９は、経過フレーム数が閾値THfrより小さいか否かを判定する。この経過フレーム数も、図３６の例外処理の初期化処理のステップＳ４２６において、予め０にリセットされている。経過フレーム数が閾値THfrより小さいと判定された場合には、ステップＳ４６６において、継続可のフラグが設定され、経過フレーム数が閾値THfr以上であると判定された場合には、ステップＳ４６８において、継続不可のフラグが設定される。
【０１８８】
このように、テンプレートマッチング処理時におけるシーンチェンジ数が閾値THsc以上になるか、または経過フレーム数が閾値THfr以上になった場合には、それ以上の追尾処理は不可能とされる。
【０１８９】
なお、モードがその他である場合には、シーンチェンジ数が０であるという条件も加えて、継続が可能であるか否かを判定するようにしてもよい。
【０１９０】
以上においては、画像のフレームを処理単位とし、すべてのフレームを用いることを前提としたが、フィールド単位で処理したり、すべてのフレームまたはフィールドを利用するのではなく、所定の間隔で間引いて抽出されたフレームまたはフィールドを用いるようにすることも可能である。
【０１９１】
次に、図４０を参照して、図５の動き推定部５２の構成例について説明する。この実施の形態においては、入力画像が、評価値算出部６０１、アクティビティ算出部６０２、および動きベクトル検出部６０６に供給されている。評価値算出部６０１は、動きベクトルにより対応付けられる両対象の一致度に関する評価値を算出し、正規化処理部６０４に供給する。アクティビティ算出部６０２は、入力画像のアクティビティを算出し、閾値判定部６０３と正規化処理部６０４に供給する。動きベクトル検出部６０６は、入力画像から動きベクトルを検出し、評価値算出部６０１と統合処理部６０５に供給する。
【０１９２】
正規化処理部６０４は、評価値算出部６０１より供給された評価値を、アクティビティ算出部６０２より供給されたアクティビティに基づいて正規化し、得られた値を統合処理部６０５に供給する。閾値判定部６０３は、アクティビティ算出部６０２より供給されたアクティビティを所定の閾値と比較し、その判定結果を統合処理部６０５に供給する。統合処理部６０５は、正規化処理部６０４から供給された正規化情報と、閾値判定部６０３より供給された判定結果に基づいて、動きベクトルの確度を演算し、得られた確度を動きベクトル検出部６０６より供給された動きベクトルとともに出力する。
【０１９３】
次に、図４１のフローチャートを参照して、動き推定部５２の動き推定処理について説明する。動きベクトルは、点に対するものとして求められているが、その確度は、動きベクトルにより対応付けられる２つの点の近傍の、例えば点を中心とする、小ブロックの画像データを用いて計算される。ステップＳ６０１において、動きベクトル検出部６０６は、入力画像から動きベクトルを検出する。この検出には、例えばブロックマッチング方式や勾配法が用いられる。検出された動きベクトルは、評価値算出部６０１と統合処理部６０５に供給される。
【０１９４】
ステップＳ６０２において、評価値算出部６０１は評価値を算出する。具体的には、例えば、動きベクトルで対応付けられる２つの点を中心とする２つのブロックの画素値の差分絶対値和が算出される。すなわち、ステップＳ６０１で動きベクトル検出部６０６により検出された動きベクトルＶ（ｖｘ，ｖｙ）と、それに基づく時間的に前のフレームの画像Ｆｉ上の点Ｐ（Ｘｐ，Ｙｐ）、並びに時間的に後のフレームの画像Ｆｊ上の点Ｑ（Ｘｑ，Ｙｑ）の関係は次式で表される。
Ｑ（Ｘｑ，Ｙｑ）＝Ｐ（Ｘｐ，Ｙｐ）＋Ｖ（ｖｘ，ｖｙ）      ・・・（１）
【０１９５】
評価値算出部６０１は点Ｐを中心とするブロックと、点Ｑを中心とするブロックについて、次式に基づいて評価値Ｅｖａｌ（Ｐ，Ｑ，ｉ，ｊ）を演算する。
【０１９６】
【数１】
0004617883.tif 000002
【０１９７】
各ブロックは、１辺が２Ｌ＋１画素の正方形とされている。上記式における総和ΣΣは、ｘが−ＬからＬについて、ｙが−ＬからＬについて、対応する画素同士で行われる。従って、例えば、Ｌ＝２である場合、９個の差分が得られ、その絶対値の総和が演算される。評価値は、その値が０に近づくほど、２つのブロックがよく一致していることを表している。
【０１９８】
評価値算出部６０１は、生成した評価値を正規化処理部６０４に供給する。
【０１９９】
ステップＳ６０３において、アクティビティ算出部６０２は、入力画像からアクティビティを算出する。アクティビティは、画像の複雑さを表す特徴量であり、図４２に示されるように、各画素毎に注目画素Ｙ（ｘ，ｙ）と、それに隣接する８画素Ｙ（ｘ＋ｉ，ｙ＋ｊ）との差分絶対値和の平均値が、注目画素位置のアクティビティActivity(x,y)として次式に基づいて演算される。
【０２００】
【数２】
0004617883.tif 000003
【０２０１】
図４２の例の場合、３×３画素のうち、中央に位置する注目画素Ｙ（ｘ，ｙ）の値は１１０であり、それに隣接する８個の画素の値は、それぞれ８０，７０，７５，１００，１００，１００，８０，８０であるから、アクティビティActivity(x,y)は次式で表される。
【０２０２】
Activity(x,y)  ＝｛｜８０−１１０｜＋｜７０−１１０｜＋｜７５−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜８０−１１０｜＋｜８０−１１０｜｝／８  ＝２４．３７５となる。
【０２０３】
同様の処理が、そのフレームのすべての画素について実行される。
【０２０４】
ブロック単位で動きベクトル確度を算出するため、次式で表されるブロック内の全画素のアクティビティの総和が、そのブロックのアクティビティ（ブロックアクティビティ）Blockactivity(i,j)と定義される。
【０２０５】
【数３】
0004617883.tif 000004
【０２０６】
なお、アクティビティとしては、この他、分散値、ダイナミックレンジなどとすることも可能である。
【０２０７】
閾値判定部６０３は、ステップＳ６０４において、アクティビティ算出部６０２により算出されたブロックアクティビティを予め設定されている所定の閾値と比較する。そして、入力されたブロックアクティビティが閾値より大きいか否かを表すフラグを統合処理部６０５に出力する。
【０２０８】
具体的には、実験の結果、ブロックアクティビティと評価値は、動きベクトルをパラメータとして、図４３に示される関係を有する。図４３において、横軸はブロックアクティビティBlockactivity(i,j)を表し、縦軸は評価値Evalを表している。動きが正しく検出されている場合（正しい動きベクトルが与えられている場合）、そのブロックアクティビティと評価値の値は、曲線６２１より図中下側の領域Ｒ１に分布する。これに対して誤った動き（不正解の動きベクトル）が与えられた場合、そのブロックアクティビティと評価値の値は、曲線６２２より、図中左側の領域Ｒ２に分布する（曲線６２２より上側の領域Ｒ２以外の領域と曲線６２１より下側の領域Ｒ１以外の領域には殆ど分布がない）。曲線６２１と曲線６２２は、点Ｐにおいて交差する。この点Ｐにおけるブロックアクティビティの値が閾値THaとされる。閾値THaは、ブロックアクティビティの値がそれより小さい場合には、対応する動きベクトルが正しくない可能性があることを意味する（この点については後に詳述する）。閾値判定部６０３は、アクティビティ算出部６０２より入力されたブロックアクティビティの値が、この閾値THaより大きいか否かを表すフラグを統合処理ブロック６０５に出力する。
【０２０９】
ステップＳ６０５において、正規化処理部６０４は、正規化処理を実行する。具体的には、正規化処理部６０４は、次式に従って動きベクトル確度VCを演算する。
【０２１０】
VC＝１−評価値／ブロックアクティビティ      ・・・（５）
【０２１１】
但し、動きベクトル確度VCの値が０未満となる場合にはその値を０に置き換える。動きベクトル確度VCのうち、評価値をブロックアクティビティで割り算して得られた値は、その値によって規定される図４３のグラフ上の位置が、原点Ｏと点Ｐを結ぶ傾きが１の直線６２３より、図中下側の領域内であるのか、図中上側の領域内であるのかを表す。すなわち、直線６２３の傾きは１であり、評価値をブロックアクティビティで割り算して得られた値が１より大きければ、その値に対応する点は、直線６２３の上側の領域に分布する点であることを意味する。そしてこの値を１から減算して得られる動きベクトル確度VCは、その値が小さい程、対応する点が領域Ｒ２に分布する可能性が高いことを意味する。
【０２１２】
これに対して、評価値をブロックアクティビティで割り算して得られた値が１より小さければ、その値に対応する点は、直線６２３の図中下側の領域に分布することを意味する。そして、そのときの動きベクトル確度VCは、その値が大きい程（０に近い程）、対応する点が領域Ｒ１に分布することを意味する。正規化処理部６０４は、このようにして演算して得られた動きベクトル確度VCを統合処理部６０５に出力する。
【０２１３】
ステップＳ６０６において、統合処理部６０５は、統合処理を実行する。この統合処理の詳細は、図４４のフローチャートに示されている。
【０２１４】
統合処理部６０５は、ステップＳ６３１において、ブロックアクティビティが閾値THa以下か否かを判定する。この判定は、閾値判定部６０３より供給されたフラグに基づいて行われる。ブロックアクティビティが閾値THa以下である場合には、ステップＳ６３２において統合処理部６０５は、正規化処理部６０４が算出した動きベクトル確度VCの値を０に設定する。ステップＳ６３１において、アクティビティの値が閾値THaより大きいと判定された場合には、ステップＳ６３２の処理はスキップされ、正規化処理部６０４で生成された動きベクトル確度VCの値が、そのまま動きベクトルとともに出力される。
【０２１５】
これは、正規化処理部６０４において演算された動きベクトルの確度VCの値が正であったとしても、ブロックアクティビティの値が閾値THaより小さい場合には、正しい動きベクトルが得られていない可能性があるからである。すなわち、図４３に示されるように、原点Ｏと点Ｐの間においては、曲線６２２が、曲線６２１より図中下側に（直線６２３より下側に）突出することになる。ブロックアクティビティの値が閾値Thaより小さい区間であって、曲線６２１と曲線６２２において囲まれる領域Ｒ３においては、評価値をブロックアクティビティで割り算して得られる値は、領域Ｒ１とＲ２の両方に分布し、正しい動きベクトルが得られていない可能性が高い。そこで、このような分布状態である場合には、動きベクトルの確度は低いものとして処理するようにする。このため、ステップＳ６３２において、動きベクトル確度VCは、その値が正であったとしても、閾値Thaより小さい場合には、０に設定される。このようにすることで、動きベクトル確度VCの値が正である場合には、正しい動きベクトルが得られている場合であることを確実に表すことが可能となる。しかも、動きベクトル確度VCの値が大きい程、正しい動きベクトルが得られている確率が高くなる（分布が領域Ｒ１に含まれる確率が高くなる）。
【０２１６】
このことは、一般的に、輝度変化が少ない領域（アクティビティが小さい領域）では信頼性が高い動きベクトルを検出することが困難であるとの経験上の法則とも一致する。
【０２１７】
図４５は，図５の背景動き推定部５４の構成例を表している。この構成例においては、背景動き推定部５４は、頻度分布算出部６５１と背景動き決定部６５２により構成されている。
【０２１８】
頻度分布算出部６５１は、動きベクトルの頻度分布を算出する。ただし、この頻度には、動き推定部１２より供給される動きベクトル確度VCを用いることで、確からしい動きに重みが与えられるように、重み付けが行われる。背景動き決定部６５２は、頻度分布算出部６５１により算出された頻度分布に基づいて、頻度が最大となる動きを背景動きとして決定する処理を行い、領域推定関連処理部５５へ出力する。
【０２１９】
図４６を参照して、背景動き推定部５４の背景動き推定処理について説明する。
【０２２０】
ステップＳ６５１において、頻度分布算出部６５１は、動き頻度分布を算出する。具体的には、頻度分布算出部６５１は、背景動きの候補としての動きベクトルのｘ座標とｙ座標がそれぞれ基準点から±１６画素分の範囲で表されるとすると、１０８９個（＝１６×２＋１）×（１６×２＋１））の箱、すなわち動きベクトルがとり得る値に対応する座標分の箱を用意し、動きベクトルが発生した場合、その動きベクトルに対応する座標に１を加算する。このようにすることで、動きベクトルの頻度分布を算出することができる。
【０２２１】
ただし、１個の動きベクトルが発生した場合、１を加算していくと、確度が低い動きベクトルの発生頻度が多い場合、その確実性が低い動きベクトルが背景動きとして決定されてしまう恐れがある。そこで、頻度分布算出部６５１は、動きベクトルが発生した場合、その動きベクトルに対応する箱（座標）に、値１を加算するのではなく、値１に動きベクトル確度VCを乗算した値（＝動きベクトル確度VCの値）を加算する。動きベクトル確度VCの値は、０から１の間の値として正規化されており、その値が１に近いほど確度が高い値である。従って、このようにして得られた頻度分布は、動きベクトルをその確度に基づいて重み付けした頻度分布となる。これにより、確度の低い動きが背景動きとして決定される恐れが少なくなる。
【０２２２】
次に、ステップＳ６５２において、頻度分布算出部６５１は、動き頻度分布を算出する処理を全ブロックについて終了したか否かを判定する。まだ処理していないブロックが存在する場合には、ステップＳ６５１に戻り、次のブロックについてステップＳ６５１の処理が実行される。
【０２２３】
以上のようにして、全画面に対して動き頻度分布算出処理が行われ、ステップＳ６５２において、全ブロックの処理が終了したと判定された場合、ステップＳ６５３に進み、背景動き決定部６５２は、頻度分布の最大値を検索する処理を実行する。すなわち、背景動き決定部６５２は、頻度分布算出部６５１により算出された頻度の中から最大の頻度のものを選択し、その頻度に対応する動きベクトルを背景動きの動きベクトルとして決定する。この背景動きの動きベクトルは、領域推定関連処理部５５に供給され、例えば、図２０のステップＳ２０４や図２３のステップＳ２３１の全画面動きと背景動きが一致するか否かの判定処理に用いられる。
【０２２４】
図４７は、図５のシーンチェンジ検出部５３の詳細な構成例を表している。この例においては、動きベクトル確度平均算出部６７１と閾値判定部６７２によりシーンチェンジ検出部５３が構成されている。
【０２２５】
動きベクトル確度平均算出部６７１は、動き推定部５２より供給された動きベクトル確度VCの全画面の平均値を算出し、閾値判定部６７２に出力する。閾値判定部６７２は、動きベクトル確度平均算出部６７１より供給された平均値を、予め定められている閾値と比較し、その比較結果に基づいて、シーンチェンジであるか否かを判定し、判定結果を制御部５９に出力する。
【０２２６】
次に、図４８のフローチャートを参照して、シーンチェンジ検出部５３の動作について説明する。ステップＳ６８１において、動きベクトル確度平均算出部６７１は、ベクトル確度の総和を算出する。具体的には、動きベクトル確度平均算出部６７１は、動き推定部５２の統合処理部６０５より出力された各ブロック毎に算出された動きベクトル確度VCの値を加算する処理を実行する。ステップＳ６８２において、動きベクトル確度平均算出部６７１は、ベクトル確度VCの総和を算出する処理が全ブロックについて終了したか否かを判定し、まだ終了していない場合には、ステップＳ６８１の処理を繰り返す。この処理を繰り返すことで、１画面分の各ブロックの動きベクトル確度VCの総和が算出される。ステップＳ６８２において１画面全部についての動きベクトル確度VCの総和の算出処理が終了したと判定された場合、ステップＳ６８３に進み、動きベクトル確度平均算出部６７１は、ベクトル確度VCの平均値を算出する処理を実行する。具体的には、ステップＳ６８１の処理で算出された１画面分のベクトル確度VCの総和を、足し込まれたブロック数で除算して得られた値が平均値として算出される。
【０２２７】
ステップＳ６８４において、閾値判定部６７２は、ステップＳ６８３の処理で動きベクトル確度平均算出部６７１により算出された動きベクトル確度VCの平均値を、予め設定されている閾値と比較し、閾値より小さいか否かを判定する。一般的に、動画中の時刻が異なる２フレーム間でシーンチェンジが発生すると、対応する画像が存在しないため、動きベクトルを算出しても、その動きベクトルは確からしくないことになる。そこで、ベクトル確度VCの平均値が閾値より小さい場合には、ステップＳ６８５において、閾値判定部６７２はシーンチェンジフラグをオンし、閾値より小さくない場合（閾値以上である場合）、ステップＳ５８６において、シーンチェンジフラグをオフにする。シーンチェンジフラグのオンは、シーンチェンジがあったことを表し、そのオフは、シーンチェンジが無いことを表す。
【０２２８】
このシーンチェンジフラグは、制御部５９へ供給され、図３６のステップＳ４２１におけるシーンチェンジの有無の判定、並びに図３９のステップＳ４６２のシーンチェンジの有無の判定に利用される。
【０２２９】
以上のように、図１のオブジェクト追尾部２６を構成することにより、追尾すべきオブジェクト５１（図３）が回転したり、オクルージョンが発生したり、あるいはシーンチェンジにより、オブジェクト５１の追尾点５１Ａが一時的に表示されなくなるような場合でも、画像の中で移動するオブジェクト５１（追尾点５１Ａ）を正確に追尾することができる。
【０２３０】
このようにして追尾されるオブジェクト５１の追尾点５１Ａの位置情報が、図１のオブジェクト追尾部２６による追尾結果としてエリア設定部２５に出力されることにより、エリア設定部２５によって、上述したように補正対象エリア５２が設定される。そして、画像補正部２２が補正対象エリア５２の中の画像のぼけ（フォーカスぼけ）を除去する。
【０２３１】
次に、図１の画像補正部２２の詳細な構成例と、その動作について説明する。図４９は、画像補正部２２の詳細な構成例を示すブロック図である。この例では画像補正部２２に、エリア設定部２５の出力信号に基づいて制御信号を生成し、その制御信号を各部に供給する制御信号生成部７４１、入力画像の特徴を検出する画像特徴検出部７４２、制御信号に基づいて、アドレスの演算を行うアドレス演算部７４３、アドレス演算部７４３により演算されたアドレスに基づいて、予め記憶された所定の係数を出力する係数ＲＯＭ７４４、および入力画像の中の所定の領域に対応する複数の画素を抽出する領域抽出部７４５が設けられている。
【０２３２】
また、領域抽出部７４５から出力された画素のレベルに対して、係数ＲＯＭ７４４から出力された係数に基づく積和演算を行い、新たに修正された画素レベルを出力する積和演算部７４６、および積和演算部７４６の出力結果と制御信号に基づいて、補正対象エリア５２内の画像と、背景５３を合成し、出力する画像合成部７４７が設けられている。
【０２３３】
図５０は、制御信号生成部７４１が生成する制御信号の例を示す図である。制御信号Ａは、入力画像の中の修正すべき部分（補正対象エリア５２）を特定する信号であり、エリア設定部２５の出力に基づいて生成され、領域抽出部７４５と画像合成部７４７に供給される。制御信号Ｂは、後述するぼけの度合いを表すパラメータσを特定する信号であり、アドレス演算部７４３に供給される。パラメータσの値は、例えば、制御部２７を介して行われる、ユーザの指定に基づいて特定されるようにしてもよいし、予め設定されるようにしてもよい。
【０２３４】
制御信号Ｃは、後述するぼけのモデル式を解くために用いられる関係式の重みＷａの切り替えを指定する信号であり、アドレス演算部７４３に供給される。制御信号Ｄは、画像の特徴を検出するとき用いられる閾値の切り替えを指定する信号であり、画像特徴検出部７４２に供給される。制御信号CとDについては、監視カメラシステム１の特性などを考慮して予め設定されるようにしてもよいし、制御部２７を介して行われる、ユーザの指定に基づいて生成されるようにしてもよい。
【０２３５】
次に、画像のぼけの原理について説明する。いま、カメラのピントが適正に設定され被写体がフォーカスぼけしていない画像の画素のレベルＸを真値とし、カメラのピントが外れて被写体がフォーカスぼけした画像の画素のレベルＹを観測値とする。画像を構成する複数の画素を表現するために、画像の水平方向の座標をｘであらわし、垂直方向の座標をｙで表すと、真値は、Ｘ（x,y）で表され、観測値は、Ｙ（x,y）で表すことができる。
【０２３６】
本発明では、ぼけのモデル式として、式（６）を適用する。式（６）においては、式（７）に示されるガウス関数を用い、真値Ｘ（x,y）にガウス関数を畳み込むことにより観測値Ｙ（x,y）が得られる。
【０２３７】
【数４】
0004617883.tif 000005
【０２３８】
【数５】
0004617883.tif 000006
【０２３９】
式（６）において、パラメータσは、ぼけの度合いを表すパラメータである。
【０２４０】
式（６）によれば、１つの観測値Ｙ（ｘ，ｙ）は、変数ｉとｊ（−ｒ＜ｉ＜ｒ，−ｒ＜ｊ＜ｒ）により変化する複数の真値Ｘ（ｘ＋ｉ，ｙ＋ｊ）を係数Ｗで重みづけすることにより求められる。従って、ぼけのない画像の１つの画素のレベルは、ぼけた画像の複数の画素のレベルに基づいて得られたものとされる。
【０２４１】
また、上述したパラメータσの値により画像のぼけの度合いが変化する。パラメータσの値が比較的小さい場合、真値の情報が観測値において広範囲に拡散されておらず、比較的ぼけの小さい画像となる。これに対して、パラメータσの値が比較的大きい場合、真値の情報が観測値において広範囲に拡散され、比較的ぼけの大きい画像となる。
【０２４２】
このように、パラメータσの値の変化により、画像のぼけの度合いは変化する。このため、画像のぼけを正確に修正するためには、パラメータσの値を適切に求める必要がある。本発明においては、パラメータσの値をユーザが指定する。あるいは、監視カメラシステム１の特性などが考慮され、最適な値が予め設定されるようにしてもよい。
【０２４３】
図５１乃至図５４を参照して、画像のぼけの原理についてさらに詳しく説明する。図５１Ａは、簡単のため、画素が水平方向に一次元に配列されたものとして、ある画像における、真値Ｘ0乃至Ｘ8を表す図である。図５１Ｃは、図５１Ａに対応する観測値を表す図である。図５１Ｂは、係数Ｗ(i)の大きさを棒グラフ状に表した図である。この例では、変数ｉが、−２＜ｉ＜２とされ、中央の棒グラフが、係数Ｗ(0)とされ、左端の棒グラフから順番に係数Ｗ(-2)，Ｗ(-1)，Ｗ(0)，Ｗ(1)，Ｗ(2)とされる。
【０２４４】
ここで、式（６）に基づいて、図５１Ｃの観測値Ｙ2を求めると、次のようになる。
【０２４５】
Ｙ2＝Ｗ(-2)Ｘ2＋Ｗ(-1)Ｘ3＋Ｗ(0)Ｘ4＋Ｗ(1)Ｘ5＋Ｗ(2)Ｘ6
【０２４６】
同様にして、図５１Ｃの観測値Ｙ0を求める場合、真値の中で、図５２の枠７９０−１で示される部分に基づいて、演算を行うことにより、次のように観測値Ｙ0が求められる。
【０２４７】
Ｙ0＝Ｗ(-2)Ｘ0＋Ｗ(-1)Ｘ1＋Ｗ(0)Ｘ2＋Ｗ(1)Ｘ3＋Ｗ(2)Ｘ4
【０２４８】
さらに、観測値Ｙ１を求める場合、図５２の枠７９０−２で示される部分に基づいて、演算を行うことにより、次のように観測値Ｙ1が求められる。
【０２４９】
Ｙ1＝Ｗ(-2)Ｘ1＋Ｗ(-1)Ｘ2＋Ｗ(0)Ｘ3＋Ｗ(1)Ｘ4＋Ｗ(2)Ｘ5
【０２５０】
Ｙ3、Ｙ4についても、同様にして求めることができる。
【０２５１】
図５３と図５４は、図５１Ａと図５１Ｃの関係を２次元で表したものである。すなわち、図５３を構成する各画素のレベルは、観測値であり、図５４を構成する各画素のレベルを真値として、得られたものである。この場合、図５３における画素Ａに対応する観測値Ｙ(x,y)は次のようにして求められる。
【０２５２】
(Y (x, y) = W(-2,-2)X(x-2, y-2) +W(-1,-2)X(x-1, y-2)   +W(0,.2)X(x, y-2). . . +W(2, 2)X(x+2, y+ 2)
【０２５３】
すなわち、図５３の画素Ａに対応する観測値は、図５４において画素Ａ'（画素Ａに対応する）を中心として枠ａで示される２５（=５×５）個の画素に対応する真値に基づいて求められる。同様に、図５３の画素Ｂ（画素Ａの図中右隣の画素）に対応する観測値は、図５４において、画素Ｂ'（画素Ｂに対応する）を中心とした２５個の画素に対応する真値に基づいて求められ、図５３の画素Ｃに対応する観測値は、図５４において、画素Ｃ'（画素Ｃに対応する）を中心とした２５個の画素に対応する真値に基づいて求められる。図５３の画素ＢとＣに対応する観測値Ｙ(x+1,y)とＹ(x+2,y)を求める式を次に示す。
【０２５４】
Y(x+1, y) = W(-2,-2)X(x-1, y-2) +W(-1,-2)X(x,y-2) +W(0,-2)X(x-1,y-2). . . +W(2,2)X(x+3,y+2)
【０２５５】
Y(x+2,y) = W(-2,-2)X(x,y-2) +W(-1,-2)X(x+1,y-2) +W(0,-2)X(x+2,y-2). . . +W(2,2)X(x+4,y+2)
【０２５６】
このようにして、図５３の各画素に対応する観測値をもとめていくと、式（８）乃至（１１）に示されるような行列式が得られる。
【０２５７】
【数６】
0004617883.tif 000007
【０２５８】
【数７】
0004617883.tif 000008
【０２５９】
【数８】
0004617883.tif 000009
【０２６０】
【数９】
0004617883.tif 000010
【０２６１】
ここで、式（１１）に示した行列式において、行列Ｗfの逆行列を求めることができれば、観測値Ｙfに基づいて真値Ｘfを求めることができる。すなわち、ぼけた画像の画素に基づいて、ぼけのない画像の画素を得ることができ、ぼけた画像を修正することができる。
【０２６２】
しかし、式（８）乃至式（１１）に示した行列式は、図５１乃至図５４を参照して上述したように、観測値の画素に対して、真値の画素が多く、このままでは逆行列を求めることができない（例えば、図５２の例では、観測値の画素１個に対して真値の画素５個が必要となる。）。
【０２６３】
そこで、式（８）乃至式（１１）に加えて、式（１２）乃至式（１５）に示される関係式を導入する。
【０２６４】
【数１０】
0004617883.tif 000011
【０２６５】
【数１１】
0004617883.tif 000012
【０２６６】
【数１２】
0004617883.tif 000013
【０２６７】
【数１３】
0004617883.tif 000014
【０２６８】
式（１２）乃至式（１５）は、隣接する画素のレベルの差分について限定を加えるものであり、求めるべき真値が、画像の平坦な（隣接する画素のレベルと大きな差がない）部分である場合には矛盾がない。しかし、求めるべき真値がエッジ部分である（隣接する画素のレベルと大きな差がある）場合には矛盾が生じ、修正した画像に劣化が生じる恐れがある。このため、ぼけた画像を適正に修正するためには、式（１２）乃至式（１５）の4つの関係式を、真値のエッジ部分をまたがないように画素ごとに使い分ける必要がある。
【０２６９】
そこで、画像特徴検出部７４２において、入力画像の中のエッジ部分と平坦部分の判定を行い、どの方向（例えば、上下左右）に平坦になっているかを表すコードp2を生成する。なお、画像特徴検出部７４２の詳細な動作については、図５９を参照して後述する。また、本発明では、入力画像（観測値）の中のエッジ部分と平坦部分の判定結果が、真値の中でのエッジ部分と平坦部分の判定結果に等しいと仮定する。
【０２７０】
式（１２）乃至式（１５）において、コードp2の関数である関数Ｗ１乃至Ｗ４は、重み関数とされる。本発明においては、コードp2に応じてこの重み関数Ｗ１乃至Ｗ４が制御されることで，画素ごとの関係式の使い分けが行われるようにする。図５５にコードp2に対応する重み関数Ｗ１乃至Ｗ４の値を示す。この重み関数の値が大きい場合、式(１２)乃至式(１５)において平坦であるという意味合いが強くなり、重み関数の値が小さい場合、その意味合いが弱くなる（エッジである意味合いが強くなる）。
【０２７１】
コードp2は、４ビットにより構成されており、それぞれのビットは、左から順番に、上、右、下または左方向に平坦か否かを示しており、その方向に平坦である場合には、対応するビットが「１」に設定される。例えば、コードp2が「0001」の場合、注目画素の左方向に平坦であり、それ以外の方向は平坦ではない（エッジが存在する）ことを表す。このため、コードp2が「0001」の場合、重み関数Ｗ４の値が大きくなり、式（１２）乃至式（１５）の４つの関係式の中で式（１５）の重みが大きくなる。このようにすることで、コードp2により、４つの関係式の重みを変化させることができ、４つの関係式を、エッジをまたがないように画素ごとに使い分けることができる。
【０２７２】
例えば、図５６に示されるように、注目画素Ｘaの上方向と左方向が平坦であり、右方向と下方向がエッジである場合、コードp2により、式（１２）乃至式（１５）の４つの関係式の重みを変化させることにより、隣接する画素のレベルの差分について、「Ｘa−Ｘb＝０」、「Ｘa―Ｘc＝０」という限定が加えられるが、「Ｘa−Ｘd＝０」、「Ｘa―Ｘe＝０」という限定は加えられない。なお、Ｘｂ，Ｘｃ，Ｘｄ，Ｘｅは、それぞれ注目画素Ｘａの右、下、上、または左に隣接する画素を表す。
【０２７３】
また、式（１２）乃至式（１５）において、関数Ｗａは、別の重み関数であり、やはりコードp1により重み関数Ｗaの値が変化する。重み関数Ｗaの値を変化させることで、修正された画像の全体のノイズ、ディテールを制御することができる。重み関数Ｗaの値が大きいと、修正された画像においてノイズの影響が小さく感じられ、ノイズ感が減少する。また、重み関数Ｗaの値が小さいと、修正された画像においてディテールが強調されたように感じられ、ディテール感が向上する。なお、重み関数Ｗaの値を変化させるコードp1は、図５０の制御信号Cに対応している。
【０２７４】
このように、式（８）乃至式（１１）に加えて、式（１２）乃至式（１５）に示される関係式を導入する。これにより、式（１６）に示されるような逆行列を演算することが可能になり、その結果、観測値に基づいて真値を求めることができる。
【０２７５】
【数１４】
0004617883.tif 000015
【０２７６】
本発明では、観測値Ｙsにかかる係数Ｗs-1が係数ＲＯＭ７４４に予め保持され、領域抽出部７４５により抽出された入力画像に対して、式（１６）の行列式の演算（積和演算）が積和演算部７４６により行われる。このようにすることで、画像の修正を行う都度、逆行列演算を行う必要がなく、積和演算だけでぼけを修正することが可能になる。ただし、入力画像に応じて、パラメータσや、上述した４つの関係式が異なるため、想定しうるそれらの全ての組み合わせでの逆行列演算を予め行っておき、パラメータσ、コードp2などに対応するアドレスを定めて、そのアドレス毎に異なる係数が係数ＲＯＭ７４４に格納される。
【０２７７】
しかし、例えば、図５４に示される枠(t)内の２５（=5×5）個のすべてに画素において、重み関数Ｗ１乃至Ｗ４の組み合わせを変化させ、４つの関係式を切り替えた場合、１５(=図５５に示した関数Ｗ１乃至Ｗ４の組み合わせ)の２５（枠(t)内の画素数)乗の組み合わせが存在し、それぞれの組み合わせごとに逆行列演算を行うと、係数の数が膨大になり、係数ＲＯＭ７４４の容量には制限があるため、全ての係数を格納しきれなくなるおそれがある。このような場合、枠(t)内の中心画素であるＸtのみ、その特徴に基づいて、コードｐ２を変化させて関係式を切り替え、枠(t)内の画素Ｘt以外画素の関係式については、例えばコードp2が擬似的に、「1111」に固定されるようにしてもよい。このようにすることで、係数の組み合わせを15通りに限定することができる。
【０２７８】
なお以上においては、ぼけの原理（モデル式）を説明するために、ガウス関数の定義域を、-2≦（x,y）≦2 としたが、実際には、パラメータσの値が十分大きくても対応できるような範囲が設定される。また、式（１２）乃至式（１５）に示した関係式についても，画像の特徴を記述する式であれば，これに限定されるものではない。さらに、係数ROM７４４の容量に制限がある場合の例として、ぼけの中心位相（Ｘt）のみに限定して関係式を切り替える例を説明したが、それに限定されるものではなく、係数ROM７４４の容量に応じて、関係式の切り替え方法を変えてもよい。
【０２７９】
次に図５７を参照して、画像補正部２２によるぼけ修正処理について説明する。ステップＳ８０１において、画像補正部２２は、処理対象領域を検出する。この処理対象領域は、ぼけの修正を行うべき領域、すなわち補正対象エリア５２であり、エリア設定部２５から出力される信号に基づいて検出される。
【０２８０】
ステップＳ８０２において、画像補正部２２は、パラメータσの値を取得する。パラメータσは、ユーザにより指定されるようにしてもよいし、予め設定された値が取得されるようにしてもよい。ステップＳ８０３において、画像補正部２２は、図５８を参照して後述する画像補正処理を実行する。これにより、ぼけた画像が修正され、出力される。
【０２８１】
このようにして、補正対象エリア５２内の画像については、画像のぼけが除去されて鮮明な画像となる。
【０２８２】
次に、図５８を参照して、図５７のステップＳ８０３の画像補正処理の詳細について説明する。
【０２８３】
ステップＳ８２１において、画像特徴検出部７４２は、図５９を参照して後述する画像特徴検出処理を実行する。これにより、注目画素に対して、どの方向に平坦なのかが判定され、図５５を参照して上述したコードp2が生成され、アドレス演算部７４３に出力される。
【０２８４】
ステップＳ８２２において、アドレス演算部７４３は、係数ＲＯＭ７４４のアドレスを演算する。係数ＲＯＭ７４４のアドレスは、例えば、コードp2に対応する４ビット（画像特徴検出部７４２の出力）、パラメータσの値を表す４ビット（図５０の制御信号Ｂ）、および、上述した４つの関係式の重み関数Ｗａを切り替えるコードp1に対応する２ビット（図５０の制御信号Ｃ）により構成され、０乃至１０２３の１０２４（２の１０乗）個アドレスが存在する。アドレス演算部７４３は、画像特徴検出部７４２の出力、制御信号Ｂ、および制御信号Ｃに基づいて、対応するアドレスを演算する。
【０２８５】
ステップＳ８２３において、アドレス演算部７４３は、ステップＳ８２２で演算したアドレスに基づいて、係数ＲＯＭ７４４から係数を読み出し、積和演算部７４６に供給する。
【０２８６】
ステップＳ８２４において、積和演算部７４６は、ステップＳ８２３で読み出された係数に基づいて、画素毎に積和演算を行い、その結果を後処理部７４７に出力する。これにより、上述したように、観測値から真値が求められ、ぼけた画像が修正される。
【０２８７】
ステップＳ８２５において、画像合成部７４７は、図６２を参照して後述する画像合成処理を実行する。これにより、画素毎に、積和演算部７４６の処理結果を出力するか、入力画像をそのまま出力するかが判定される。ステップＳ８２６において、後処理部７４７は、補正後処理され、選択された画像を出力する。
【０２８８】
次に図５９を参照して、図５８のステップＳ８２１の画像特徴検出処理について説明する。ステップＳ８４１において、画像特徴検出部７４２は、ブロックを抽出し、ステップＳ８４２において、ステップＳ８４１で抽出されたブロック間の差分を演算する（その詳細は、図６１を参照して後述する）。ステップＳ８４３において、画像特徴検出部７４２は、ステップＳ８４２で演算されたブロック差分を予め設定されている閾値と比較し、その比較結果に基づいて、ステップＳ８４４において、注目画素に対して平坦な方向を表すコードであるコードp2を出力する。
【０２８９】
図６０と図６１を参照して、画像特徴検出処理について、さらに詳しく説明する。図６０は、画像特徴検出部７４２の詳細な構成例を示すブロック図である。同図の左側には、入力された画像の中から所定のブロックを抽出するブロック切り出し部８４１−１乃至８４１−５が設けられている。ブロック切り出し部８４１−１乃至８４１−５は、例えば、図６１Ａ乃至図６１Ｅに示されるように、図中黒い丸で示される注目画素（いま修正すべき画素）の周辺の、注目画素を含む９（=３×３）個の画素で構成される５つのブロックを抽出する。
【０２９０】
図６１Ａに示されるブロック８８１は、その中心に注目画素を有する中心ブロックであり、ブロック切り出し部８４１−５により抽出される。図６１Ｂに示されるブロック８８２は、ブロック８８１を画素１個分図中上に移動した上側ブロックであり、ブロック切り出し部８４１−３により抽出される。図６１Ｃに示されるブロック８８３は、ブロック８８１を画素１個分図中左に移動した左側ブロックであり、ブロック切り出し部８４１−４により抽出される。
【０２９１】
図６１Ｄに示されるブロック８８４は、ブロック８８１を画素１個分図中下に移動した下側ブロックであり、ブロック切り出し部８４１−１により抽出される。図６１Ｅに示されるブロック８８５は、ブロック８８１を画素１個分図中右に移動した右側ブロックであり、ブロック切り出し部８４１−２により抽出される。ステップＳ８４１においては、注目画素毎に、ブロック８８１乃至８８５の５つのブロックが抽出される。
【０２９２】
ブロック切り出し部８４１−１乃至８４１−５により抽出された各ブロックを構成する画素の情報は、ブロック差分演算部８４２−１乃至８４２−４に出力される。ブロック差分演算部８４２−１乃至８４２−４は、各ブロックの画素の差分を、例えば、次のようにして演算する。
【０２９３】
いま、ブロック８８１の９個の画素のうち一番上の行の３個の画素（のレベル）を左からａ（881），b（881），ｃ(881)とする。中央の行の３個の画素を左からd（881），e（881），f(881)とする。一番下の行の３個の画素を左からg（881），h（881），i(881)とする。同様に、ブロック８８４の９個の画素についても、一番上の行の３個の画素（のレベル）を左からａ（884），b（884），ｃ(884)とし、中央の行の３個の画素を左からd（884），e（884），f(884)とし、一番上の行の３個の画素を左からg（884），h（884），i(884)とする。ブロック差分演算部８４２−１は、ブロック差分Ｂ(１)を次のように演算する。
【０２９４】
Ｂ(１)＝│a(881)-a(884)│＋│b(881)-b(884)│＋│c(881)-c(884)│＋・・・        ＋│i(881)-i(884)│
【０２９５】
すなわち、ブロック差分Ｂ(1)は、ブロック８８１（中心）とブロック８８４（下）において対応する各画素のレベルの差分の絶対値の総和である。同様にして、ブロック差分演算部８４２−２は、ブロック８８１（中心）とブロック８８５（右）において対応する各画素のレベルの差分の絶対値の総和を求め、ブロック差分Ｂ（２）を演算する。さらに、ブロック差分演算部８４２−３は、ブロック８８１（中心）とブロック８８２（上）について、ブロック差分演算部８４２−３は、ブロック８８１（中心）とブロック８８３（左）について、それぞれ対応する各画素のレベルの差分の絶対値の総和を求め、ブロック差分Ｂ（３）とＢ（４）を演算する。
【０２９６】
ステップＳ８４２においては、このように中心ブロックと上下左右の４方向のブロックとの差分であるブロック差分Ｂ（１）乃至Ｂ（４）が演算され、その結果は、対応する閾値判定部８４３−１乃至８４３−４にそれぞれ出力されると同時に、最小方向判定部８４４にも供給される。
【０２９７】
閾値判定部８４３−１乃至８４３−４は、それぞれブロック差分Ｂ（１）乃至Ｂ（４）を予め設定された閾値と比較し、その大小を判定する。なお、この閾値は制御信号Ｄに基づいて切り替えられる。閾値判定部８４３−１乃至８４３−４は、それぞれブロック差分Ｂ（１）乃至Ｂ（４）が予め設定された閾値より大きい場合、その方向はエッジ部分であると判定し、「０」を出力し、閾値より小さい場合、その方向は平坦な部分であると判定し、「１」を出力する。
【０２９８】
ステップＳ８４３おいては、このようにしてブロック差分と閾値の比較が行われる。閾値判定部８４３−１乃至８４３−４の出力結果は、４ビットのコードとしてセレクタ８４５に出力される。例えば、ブロック差分Ｂ（１）、Ｂ（３）およびＢ（４）が閾値より小さく、ブロック差分Ｂ（２）が閾値より大きい場合、コードとして「1011」が出力される。
【０２９９】
ところで、ブロック差分Ｂ（１）乃至Ｂ（４）が、全て閾値より大きくなってしまう場合（平坦な部分がない場合）も考えられる。この場合、閾値判定部８４３−１乃至８４３−４から、コードとして「0000」が出力される。しかし、図５５に示されるように、コードp2が「0000」の場合、対応する重み関数Ｗ１乃至Ｗ４が特定できない。そこで、セレクタ８４５は、閾値判定部８４３−１乃至８４３−４からの出力結果が「0000」か否かを判定し、閾値判定部８４３−１乃至８４３−４からの出力結果が「0000」であると判定された場合、最小方向判定部８４４からの出力をコードp2として出力する。
【０３００】
最小方向判定部８４４は、ブロック差分Ｂ（１）乃至Ｂ（４）の中で、最小の値を判定し、判定結果に対応した４ビットのコードを、閾値判定部８４３−１乃至８４３−４がコードを出力するのと同じタイミングで、セレクタ８４５に出力する。例えば、ブロック差分Ｂ（１）乃至Ｂ（４）の中で、Ｂ(1)が最小であると判定された場合、最小方向判定部８４４は、コードとして「1000」をセレクタ８４５に出力する。
【０３０１】
このようにすることで、閾値判定部８４３−１乃至８４３−４からコード「0000」が出力されても、最小方向判定部８４４から出力されたコード「1000」がコードp2として出力されるようにすることができる。勿論、閾値判定部８４３−１乃至８４３−４からの出力結果が「0000」ではない場合は、閾値判定部８４３−１乃至８４３−４からの出力結果がコードp2として出力される。ステップＳ８４４においては、このようにしてコードp2が生成され、アドレス演算部７４３に出力される。
【０３０２】
次に、図６２を参照して、図５８のステップＳ８２５の画像合成処理について説明する。ステップＳ８６１において、画像合成部７４７は、積和演算部７４６からの出力結果に基づいて、画素の分散度を演算する。これにより、注目画素の周囲の画素の分散度合いが演算される。ステップＳ８６２において、画像合成部７４７は、ステップＳ８６２で演算された分散度は予め設定された閾値より大きいか否かを判定する。
【０３０３】
ステップＳ８６２において、分散度が閾値より大きいと判定された場合、画像合成部７４７は、ステップＳ８６３において、注目画素に対応する入力画像入れ替えフラグをＯＮに設定する。一方、分散度が閾値より大きくないと判定された場合、画像合成部７４７は、ステップＳ６４において、注目画素に対応する入力画像入れ替えフラグをＯＦＦに設定する。
【０３０４】
入力画像において、もともとぼけていない部分の画素に対して、積和演算部７４６により積和演算を行うと、その画素の周囲の画像のアクティビティが大きくなり、かえって画像が劣化してしまう場合がある。ここで、分散度が閾値より大きい場合、その画素は劣化した画素であると判定され、入力画像入れ替えフラグがＯＮに設定される。入力画像入れ替えフラグがＯＮに設定された画素は、出力されるとき、入力画像の画素と入れ替えられて（元の状態に戻されて）出力される。
【０３０５】
ステップＳ８６５において、画像合成部７４７は、全ての画素についてチェックしたか否かを判定し、まだ全画素をチェックしていないと判定された場合、ステップＳ８６１に戻り、それ以降の処理が繰り返し実行される。ステップＳ８６５において、全ての画素についてチェックしたと判定された場合、ステップＳ８６６において、画像合成部７４７は、画像が補正され、ぼけが除去された補正対象エリア５２内の画像と、背景５３の画像を合成し、画像ディスプレイ２３に出力する。
【０３０６】
このようにして、画素毎に、積和演算結果を出力するか、または入力画像の画素をそのまま出力するかが判定される。このようにすることで、入力画像の中で、もともとぼけていない部分に対して、画像の修正を行うことにより、かえって画像が劣化してしまうことを防止することができる。
【０３０７】
この点について、図６３と図６４を参照して、さらに詳しく説明する。図６３は、画像合成部７４７の構成例を示すブロック図である。積和演算部７４６からの出力結果が、ブロック切り出し部９０１に入力され、ブロック切り出し部９０１は、図６４に示されるように、注目画素ａ５を中心とした９（＝３×３）個の画素ａ１乃至ａ９を切り出し、分散演算部８０２に出力する。分散演算部８０２は、分散度を次のようにして演算する。
【０３０８】
【数１５】
0004617883.tif 000016
【０３０９】
ここで、ｍは、ブロック内の９個の画素（のレベル）の平均値を表し、ｖは、それぞれの画素の平均値との差の２乗の総和であり、ブロック内の画素の分散度を表す。ステップＳ８６１においては、このようにして分散度が演算され、演算結果が閾値判定部９０３に出力される。
【０３１０】
閾値判定部９０３は、分散演算部９０２からの出力結果（分散度）と予め設定された閾値を比較し、分散度が閾値より大きいと判定された場合、画像合成部７４７は、注目画素に対応する入力画像入れ替えフラグをＯＮに設定するように選択部９０４を制御する。分散度が閾値より大きくないと判定された場合、画像合成部７４７は、注目画素に対応する入力画像入れ替えフラグをＯＦＦに設定するように選択部８０４を制御する。ステップＳ８６２乃至Ｓ８６４においては、このように、分散度が閾値より大きいか否かが判定され、判定結果に基づいて、入力画像入れ替えフラグが設定される。
【０３１１】
そして、切り替え部９０５により、選択部９０４による最終処理結果と、入力画像の画素が切り替えられ、出力される。すなわち補正対象エリア５２内の画像の画素は、選択部９０４による最終処理結果とされ、背景５３の画像の画素は、入力画像の画素となるように切り替えられる。
【０３１２】
このようにして、オブジェクト５１（図３）が追尾され、オブジェクト５１が含まれる補正対象エリア５２内の画像のみが、画像のぼけが除去されるように修正（補正）され鮮明に表示される。一方、背景５３の画像は、画像のぼけが除去されずに表示されるので、自然に、ユーザを、移動するオブジェクト５１に注目させることができる。
【０３１３】
以上においては、画像補正部２２により、撮像部２１により撮像された画像の中の補正対象エリア５２内の画像について、画像のぼけが除去されるように、補正される例について説明したが、画像補正部２２により、画像のぼけが除去されることなく、補正対象エリア５２内の画像について、例えば、画像を構成する各画素の輝度や色などの設定が変更され、単純にハイライト表示されるように、画像が補正されるようにしてもよい。このようにすることで、ユーザがオブジェクト５１を正確に視認することができなくなるおそれはあるものの、やはり、自然に、ユーザを、移動するオブジェクト５１に注目させることができ、また、画像のぼけが除去されるように補正される場合と比較して、画像補正部２２を、より簡単な構成とすることができ、その結果、監視カメラシステム１を、より低コストで実現することができる。
【０３１４】
上記した実施の形態において、動き推定部５２（図５）は、動きベクトルの確度を算出したが、その確度をより信頼性の高いものとするための仕組みについて、以下に説明を加える。また、以下に説明を加える動き推定部５２は、上述した実施の形態で説明したような装置に適用できることは勿論であるが、他の装置にも適用でき、その適用例も合わせて説明を加えるため、以下の説明では、画像処理装置１０００として説明を加える。
【０３１５】
図６５は本発明を適用した画像処理装置１０００の機能的構成例を表している。この画像処理装置１０００は、動きベクトル検出部１０２１、および動きベクトル確度算出部１０２２により構成されている。
【０３１６】
動きベクトル検出部１０２１は、入力画像から動きベクトルを検出し、検出した動きベクトルと入力画像を動きベクトル確度算出部１０２２に供給する。また、動きベクトル検出部１０２１は、入力画像が既に動きベクトルを含む場合、画像データと動きベクトルを分離して、動きベクトル確度算出部１０２２に供給する。画像データとその動きベクトルが既に分離された状態で入力される場合、動きベクトル検出部１０２１は省略することができる。
【０３１７】
動きベクトル確度算出部１０２２は、入力された入力画像（画像データ）に基づいて、対応する動きベクトルの確度（以下、動きベクトル確度と称する）を演算し、動きベクトル確度を図示せぬ装置に出力する。
【０３１８】
図６６は、図６５の動きベクトル確度算出部１０２２の構成例を表している。この実施の形態においては、動きベクトル確度算出部１０２２は、評価値算出部１０４１、アクティビティ算出部１０４２、および演算部４３により構成されている。演算部４３は、閾値判定部１０５１、正規化処理部１０５２、および統合処理部１０５３により構成されている。
【０３１９】
図６５の動きベクトル検出部１０２１から出力された動きベクトルが、評価値算出部１０４１に入力され、入力画像（画像データ）が、評価値算出部１０４１とアクティビティ算出部１０４２に入力されている。
【０３２０】
評価値算出部１０４１は、入力画像の評価値を算出し、演算部４３の正規化処理部１０５２に供給する。アクティビティ算出部１０４２は、入力画像のアクティビティを算出し、演算部４３の閾値判定部１０５１と正規化処理部１０５２に供給する。
【０３２１】
正規化処理部１０５２は、評価値算出部１０４１より供給された評価値を、アクティビティ算出部１０４２より供給されたアクティビティに基づいて正規化し、得られた値を統合処理部１０５３に供給する。閾値判定部１０５１は、アクティビティ算出部１０４２より供給されたアクティビティを所定の閾値と比較し、その判定結果を統合処理部１０５３に供給する。統合処理部１０５３は、正規化処理部１０５２から供給された正規化情報と、閾値判定部１０５１より供給された判定結果に基づいて、動きベクトル確度を演算し、得られた動きベクトル確度を図示せぬ装置に出力する。
【０３２２】
次に図６７のフローチャートを参照して、画像処理装置１０００の動き演算処理の詳細について説明する。動きベクトル検出部１０２１は、ステップＳ９０１において、入力画像を取得し、ステップＳ９０２で、入力画像のフレームを所定のブロックに分割し、ステップＳ９０３で、時間的に後（または前）のフレームと比較することで動きベクトルを検出する。具体的には、ブロックマッチグ法により動きベクトルが検出される。検出された動きベクトルは、評価値算出部１０４１に供給される。
【０３２３】
以上の処理を図６８乃至図７１を参照して説明すると次のようになる。すなわち、図６７のステップＳ９０１において、例えば、図６８に示されるように、フレームＦ1（第１フレーム）乃至フレームＦN（第Ｎフレーム）のＮ個のフレームが順次取得されると、ステップＳ９０２において、１つのフレームの画像が一辺２Ｌ＋１画素の正方形のブロックに分割される。ここで、分割されたフレームＦnの任意のブロックをブロックＢPとし、図６９に示されるように、ブロックＢPの中心座標（画素）を点Ｐ（ＸP，ＹP）とする。
【０３２４】
次にステップＳ９０３において、例えば、図７０に示されるように、フレームＦnの次のフレームであるフレームＦn+1において、ブロックＢPをフレームＦn+1上の所定の走査範囲内で走査させながら、対応する画素の差分絶対値和が最小となる位置が調べられ、その値が最小となる位置のブロック（ブロックＢq）が検出される。その中心点Ｑ（Ｘq，Ｙq）がブロックＢPの点Ｐ（ＸP，ＹP）との対応点とされる。
【０３２５】
図７１に示されるように、ブロックＢPの中心点Ｐ（ＸP，ＹP）とブロックＢqの中心点Ｑ（Ｘq，Ｙq）とを結んで表される線（矢印）が、動きベクトルＶ（ｖｘ,ｖｙ）として検出される。すなわち、次式に基づいて動きベクトルＶ（ｖｘ,ｖｙ）が演算される。
Ｖ（ｖｘ,ｖｙ）＝Ｑ（Ｘq，Ｙq）−Ｐ（ＸP，ＹP）      ・・・（１７）
【０３２６】
図６７のステップＳ９０４において、動きベクトル確度算出部１０２２により動きベクトル確度演算処理が実行される。その詳細は、図７２を参照して後述するが、この処理により、動きベクトル確度が定量的な数値として算出される。
【０３２７】
ステップＳ９０５において、動きベクトル確度算出部１０２２（図６６の統合処理部１０５３）は、１つのフレームの全てのブロックに対して、動きベクトル確度の算出が終了したか否かを判定する。
【０３２８】
動きベクトル確度算出部１０２２は、ステップＳ９０５において、まだ全てのブロックに対して動きベクトル確度が算出されていないと判定した場合、処理をステップＳ９０４に戻し、以降の処理を繰り返し実行する。全てのブロックに対して動きベクトル確度の算出が終了したと判定された場合、そのフレームについての処理を終了する。以上の処理は、各フレーム毎に行われる。
【０３２９】
次に図７２のフローチャートを参照して、図６７のステップＳ９０４の動きベクトル確度演算処理の詳細について説明する。ステップＳ９３１において、評価値算出部１０４１は、次式に基づいて評価値Ｅｖａｌ（Ｐ,Ｑ,ｉ,ｊ）を演算する。
【０３３０】
【数１６】
0004617883.tif 000017
【０３３１】
上記式（１８）における総和ΣΣは、ｘが−ＬからＬについて、yが−ＬからＬについて行われる。すなわち、簡単のため、図７３に示されるように、ブロックＢPとブロックＢqの一辺を５（＝２Ｌ＋１＝２×２＋１）画素とする場合、フレームＦnのブロックＢPの左上端の座標（点Ｐ1（ＸP−２，ＹP−２））に位置する画素７１の画素値と、画素７１に対応するフレームＦn+1のブロックＢqの座標（点Ｑ1（Ｘq−２，Ｙq−２））に位置する画素１１１の画素値との差が演算される。同様の演算が、点Ｐ1（ＸP−２，ＹP−２）乃至点Ｐ25（ＸP＋２，ＹP＋２）に位置する画素のそれぞれに対応するブロックＢqの点Ｑ1（Ｘq−２，Ｙq−２）乃至Ｑ25（Ｘq＋２，Ｙq＋２）に位置する画素の画素値とのそれぞれの差が演算される。Ｌ＝２である場合、２５個の差分が得られ、その絶対値の総和が演算される。
【０３３２】
なお、上述したフレームＦnのブロックＢpの中心座標の点Ｐ（Ｘp，Ｙp）に位置する画素（注目画素）、及びその対応点であるフレームＦn+1のブロックＢqの中心座標の点Ｑ（Ｘq，Ｙq）に位置する画素（対応画素）の画素数は、少なくとも１個であればよい。但し、複数にする場合には、その数を同じにする必要がある。
【０３３３】
この評価値は、一方のフレームの画像上の点と、他方のフレームの画像上の点のそれぞれを中心とするブロックの評価値（従って、動きベクトルの評価値）を示すものであり、評価値が０に近づくほど、よく一致していることを表している。また、上記式（１８）において、ＦiおよびＦjは、時間的に異なるフレームを示し、上述した説明では、ＦnがＦiに対応し、Ｆn+1がＦjに対応する。上記式（１８）では、差分絶対和を評価値としているが、差分二乗和を評価値としてもよい。
【０３３４】
ブロックマッチング法以外に、勾配法や、ベクトル検出方法によって評価値を演算することも可能である。
【０３３５】
評価値算出部１０４１は、生成した評価値を正規化処理部１０５２に供給する。
【０３３６】
ステップＳ９３２において、アクティビティ算出部１０４２は、入力画像からアクティビティを算出する。アクティビティは、画像の複雑さを表す特徴量であり、図７４に示されるように、各画素毎の注目画素Ｙ（ｘ，ｙ）と、それに隣接する８画素、すなわち隣接画素Ｙ（ｘ−１，ｙ−１）,Ｙ（ｘ,ｙ−１）,Ｙ（ｘ＋１,ｙ−１）,Ｙ（ｘ＋１,ｙ）,Ｙ（ｘ＋１,ｙ＋１）,Ｙ（ｘ,ｙ＋１）,Ｙ（ｘ−１,ｙ＋１）,Ｙ（ｘ−１,ｙ）との差分絶対和の平均値が、注目画素のアクティビティとして次式に基づいて演算される。
【０３３７】
【数１７】
0004617883.tif 000018
【０３３８】
図７４の例の場合、３×３画素のうち、中央に位置する注目画素Ｙ（x，y）の値は１１０であり、それに隣接する８個の画素（隣接画素Ｙ（ｘ−１，ｙ−１）,Ｙ（ｘ,ｙ−１）,Ｙ（ｘ＋１,ｙ−１）,Ｙ（ｘ＋１,ｙ）,Ｙ（ｘ＋１,ｙ＋１）,Ｙ（ｘ,ｙ＋１）,Ｙ（ｘ−１,ｙ＋１）,Ｙ（ｘ−１,ｙ））の値は、それぞれ８０，７０，７５，１００，１００，１００,８０，８０であるから、アクティビティは次式で表される。
Activity(x,y)  ＝｛｜８０−１１０｜＋｜７０−１１０｜＋｜７５−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜１００−１１０｜＋｜８０−１１０｜＋｜８０−１１０｜｝／８  ＝２４．３７５となる。
【０３３９】
動きベクトル確度を画素単位で算出する場合には、このアクティビティがそのまま動きベクトル確度の算出に用いられる。複数の画素よりなるブロック単位で動きベクトル確度を算出するには、ブロックのアクティビティがさらに算出される。
【０３４０】
ブロック単位で動きベクトル確度を算出するため、ブロックのアクティビティは、例えば、図７５Ａに示されるように、一辺を５（＝２Ｌ＋１＝２×２＋１）画素としたブロックＢPでは、アクティビティ算出範囲１５１ａの中央に含まれる画素７１が注目画素とされ、画素７１の値と、それに隣接する８つの画素の値においてアクティビティが演算される。
【０３４１】
また、図７５Ｂ乃至Ｆに示されるように、ブロックＢP内の画素が順に走査され、アクティビティ算出範囲１５１ｂ乃至１５１ｆに含まれる注目画素と隣接画素とのアクティビティが演算される。ブロックＢPの全ての画素に対して演算されたアクティビティの総和がブロックＢPのブロックのアクティビティとされる。
【０３４２】
従って、次式で表されるブロック内の全画素のアクティビティの総和が、そのブロックのアクティビティ（ブロックアクティビティ）Blockactivity(i,j)と定義される。
【０３４３】
【数１８】
0004617883.tif 000019
【０３４４】
上記式（２０）における総和は、ｘが−ＬからＬについて、yが−ＬからＬについて行われる。式（２０）のｉ,ｊは、ブロックの中心位置を表しており、式（１９）のｉ,ｊとは異なるものである。
【０３４５】
なお、アクティビティとしては、この他、ブロックにおける分散値、ダイナミックレンジ、その他の画素値の空間方向の変動を表す値などとすることも可能である。
【０３４６】
閾値判定部１０５１は、ステップＳ９３３において、アクティビティ算出部１０４２により、ステップＳ９３２の処理で算出されたブロックアクティビティが、予め設定してある閾値（図４３を参照して説明した閾値THa）より大きいか否かを判定する。その詳細は、図７６のフローチャートを参照して説明するが、この処理により、ブロックアクティビティが閾値THaより大きいか否かのフラグが設定される。
【０３４７】
ステップＳ９３４において、正規化処理部１０５２は、正規化処理を実行する。その詳細は、図７７を参照して後述するが、この処理によりステップＳ９３１の処理で算出された評価値、ステップＳ９３２の処理で算出されたブロックアクティビティ、および閾値（図４３を参照して説明した直線２０３の傾き）に基づいた動きベクトル確度が演算される。
【０３４８】
ステップＳ９３５において、統合処理部１０５３により統合処理が実行される。その詳細は、図７８を参照して後述するが、この処理によりステップＳ９３３の処理（図７６のステップ５２またはステップＳ９５３の処理）で設定されたフラグに基づいて、図示せぬ装置に出力する動きベクトル確度が決定される。
【０３４９】
次に、図７６を参照して、図７２のステップＳ９３３の処理の閾値処理の詳細について説明する。ステップＳ９５１において、閾値判定部１０５１は、図７２のステップＳ９３２の処理の結果、算出されたブロックアクティビティが閾値THaより大きいか否かを判定する。
【０３５０】
具体的には、実験の結果、ブロックアクティビティと評価値は、動きベクトルをパラメータとして、図４３に示される関係を有する。図４３に関する説明は、既にしたので、ここでは、その説明を省略する。閾値判定部１０５１は、アクティビティ算出部１０４２より入力されたブロックアクティビティの値が、閾値THaより大きいか否かを表すフラグを統合処理部１０５３に出力する。
【０３５１】
ステップＳ９５１において、ブロックアクティビティが閾値THaより大きいと判定された場合（対応する動きベクトルが正しい可能性が高い場合）、ステップＳ９５２に進み、閾値判定部１０５１は、ブロックアクティビティが閾値THaより大きいことを示すフラグを設定する。
【０３５２】
これに対して、ステップＳ９５１において、ブロックアクティビティが閾値THaより大きくはない（小さい）と判定された場合（対応する動きベクトルが正しくない可能性がある場合）、ステップＳ９５３に進み、ブロックアクティビティが大きくはない（小さい）ことを示すフラグが設定される。
【０３５３】
そして、閾値判定部１０５１は、入力されたブロックアクティビティが閾値より大きいか否かを示すフラグを統合処理部１０５３に出力する。
【０３５４】
次に、図７７のフローチャートを参照して、図７２のステップＳ９３４の正規化処理の詳細について説明する。ステップＳ９７１において、正規化処理部１０５２は、図７２のステップＳ９３１の処理で算出された評価値、ステップＳ９３２の処理で算出されたブロックアクティビティ、および予め設定されている閾値（図４３の直線２０３の傾き）に基づいて、次式に従って動きベクトル確度VCを演算する。
【０３５５】
VC＝１−評価値／ブロックアクティビティ      ・・・（２１）
【０３５６】
動きベクトル確度VCのうち、評価値をブロックアクティビティで割り算して得られた値は、その値によって規定される図４３のグラフ上の位置が、原点Ｏと点Ｐを結ぶ傾きが１の直線２０３より、図中下側の領域内であるのか、図中上側の領域内であるのかを表す。すなわち、直線２０３の傾きは１であり、評価値をブロックアクティビティで割り算して得られた値が１より大きければ、その値に対応する点は、直線２０３の上側の領域に分布する点であることを意味する。そしてこの値を１から減算して得られる動きベクトル確度VCは、その値が小さい程（負に大きい程）、対応する点が領域Ｒ２に分布する可能性が高いことを意味する。
【０３５７】
これに対して、評価値をブロックアクティビティで割り算して得られた値が１より小さければ、その値に対応する点は、直線２０３の図中下側の領域に分布することを意味する。そして、そのときの動きベクトル確度VCは、その値が大きい程（０に近い程）、対応する点が領域Ｒ１に分布することを意味する。
【０３５８】
ステップＳ９７２において、正規化処理部１０５２は、式（２１）に基づいて算出された動きベクトル確度VCが０より小さいか否か（動きベクトル確度VCが負の値か否か）を判定する。動きベクトル確度VCが０以上の値の場合、正規化処理部１０５２は、ステップＳ９７３に進み、ステップＳ９７１の処理で演算された動きベクトル確度VCをそのまま統合処理部１０５３に供給する。
【０３５９】
これに対して、ステップＳ９７２において、動きベクトル確度VCが０より小さい（動きベクトル確度VCが負の値）と判定された場合、ステップＳ９７４に進み、正規化処理部１０５２は、動きベクトル確度VCを固定値として０に設定し、統合処理部１０５３に供給する。
【０３６０】
以上のようにして、動きベクトルが正しくない可能性がある（不正解ベクトルの可能性がある）場合（動きベクトル確度VCが負の場合）、動きベクトル確度は０に設定される。
【０３６１】
次に、図７８のフローチャートを参照して、図７２のステップＳ９３５の統合処理の詳細について説明する。
【０３６２】
統合処理部１０５３は、ステップＳ９９１において、ブロックアクティビティが閾値THa以下か否かを判定する。この判定は、閾値判定部１０５１より供給されたフラグに基づいて行われる。ブロックアクティビティの値が閾値THaより大きい場合には、ステップＳ９９２において、統合処理部１０５３は、正規化処理部１０５２によって演算された動きベクトル確度VCの値を、そのまま出力する。
【０３６３】
これに対して、ブロックアクティビティが閾値THa以下であると判定された場合には、ステップＳ９９３において、正規化処理部１０５２によって算出された動きベクトル確度VCの値が０に設定され、出力される。
【０３６４】
これは、正規化処理部１０５２において演算された動きベクトルの確度VCの値が正であったとしても、ブロックアクティビティの値が閾値THaより小さい場合には、正しい動きベクトルが得られていない可能性があるからである。すなわち、図４３に示されるように、原点Ｏと点Ｐの間においては、曲線２０２が、曲線２０１より図中下側に（直線２０３より下側に）突出することになる。ブロックアクティビティの値が閾値THaより小さい区間であって、曲線２０１と曲線２０２において囲まれる領域Ｒ３においては、評価値をブロックアクティビティで割り算して得られる値は、領域Ｒ１とＲ２の両方に分布し、正しい動きベクトルが得られていない可能性が高い。そこで、このような分布状態である場合には、動きベクトルの確度は低いものとして処理するようにする。このため、ステップＳ９９３において、動きベクトル確度VCは、その値が負である場合はもとより、正であったとしても、閾値THaより小さい場合には、０に設定される。このようにすることで、動きベクトル確度VCの値が正である場合には、正しい動きベクトルが得られている場合であることを確実に表すことが可能となる。しかも、動きベクトル確度VCの値が大きい程、正しい動きベクトルが得られている確率が高くなる（分布が領域Ｒ１に含まれた確率が高くなる）。
【０３６５】
このことは、一般的に輝度変化が少ない領域（アクティビティが小さい領域）では信頼性が高い動きベクトルを検出することが困難であるとの経験上の法則とも一致する。
【０３６６】
以上のようにして、動きベクトル確度が算出される。従って、動きベクトル確度を定量的な数値として表すことが可能になり、信頼性の高い動きベクトルを検出することが可能になる。なお、フレームの画像を処理単位として説明したが、フィールドを処理単位としてもよい。
【０３６７】
上述した画像処理装置１０００は、例えば、パーソナルコンピュータなどで構成することができる。
【０３６８】
この場合、画像処理装置１０００は、例えば、図７９で示されるように構成される。CPU（Central Processing Unit）１２３１は、ROM（Read Only Memory）１２３２に記憶されているプログラム、または記憶部１２３９からRAM（Random Access Memory）１２３３にロードされたプログラムに従って各種の処理を実行する。RAM１２３３にはまた、CPU１２３１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０３６９】
CPU１２３１、ROM１２３２、およびRAM１２３３は、バス１２３４を介して相互に接続されている。このバス１２３４にはまた、入出力インタフェース１２３５も接続されている。
【０３７０】
入出力インタフェース１２３５には、キーボード、マウスなどよりなる入力部１２３６，CRT（Cathode Ray Tube），LCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部１２３７、モデム、ターミナルアダプタなどより構成される通信部１２３８、ハードディスクなどより構成される記憶部１２３９が接続されている。通信部１２３８は、図示せぬLANやインターネットを介して他の装置との通信処理を行う。
【０３７１】
入出力インタフェース１２３５にはまた、ドライブ１２４０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１２４１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部１２３９にインストールされる。
【０３７２】
次に、本発明を応用した符号化装置１２６１について、図８０を参照して説明する。
【０３７３】
この符号化装置１２６１においては、入力画像は、動き演算部１２７１の動きベクトル検出部１０２１、動き補償部１２７２、および選択部１２７３に供給される。動き演算部１２７１は、上述した図６５の画像処理装置１０００と実質的に同様の構成とされている。動きベクトル検出部１０２１は、入力画像から動きベクトルを検出し、検出した動きベクトルを動き補償部１２７２、および付加コード作成部１２７５に出力する。また、動きベクトル検出部１０２１は、動きベクトル、および入力画像を動きベクトル確度算出部１０２２に出力する。
【０３７４】
動きベクトル確度算出部１０２２は、動きベクトル検出部１０２１より入力された動きベクトル、および入力画像から動きベクトル確度を算出し、制御部１２７４に出力する。制御部１２７４は、入力された動きベクトル確度に基づいて選択部１２７３、および付加コード作成部１２７５を制御する。
【０３７５】
動き補償部１２７２は、供給された入力画像と動きベクトル検出部１０２１より供給された動きベクトルに基づいて、動き補償を行い、動き補償した画像を選択部１２７３に供給する。選択部１２７３は、制御部１２７４の制御に基づいて、画素値符号化部１２７６に入力画像、または動き補償された画像を選択して出力する。画素値符号化部１２７６は、入力された画像の符号化を行い、統合部１２７７に出力する。
【０３７６】
付加コード作成部１２７５は、制御部１２７４の制御に基づいて、各フレームの画像に対し、動き補償を行ったか否かを表す付加コードを作成し、動きベクトル検出部１０２１より入力された動きベクトルと合成し、必要に応じて、さらに動きベクトル確度を付加して、統合部１２７７に出力する。
【０３７７】
統合部１２７７は、画素値符号化部１２７６から入力された符号、および付加コード作成部１２７５から入力された付加コードを統合して図示せぬ装置に出力する。
【０３７８】
次に、符号化装置１２６１の処理について、図８１のフローチャートを参照して説明する。なお、ステップＳ１０２１乃至ステップＳ１０２５の処理は、図６７で説明したステップＳ９０１乃至ステップＳ９０５の処理と同様の処理である。すなわち、画像が入力され、画像の各フレームが所定のブロックに分割される。分割されたブロックに基づいて、動きベクトルが検出され、各動きベクトルの確度（動きベクトル確度）が算出され、全てのブロックに対して動きベクトル確度が算出されるまで同様の処理が繰り返し実行される。
【０３７９】
その後、ステップＳ１０２６において、動き補償部１２７２は、入力画像と動きベクトルに基づいて動き補償を行う。すなわち、動きベクトルに基づいて、前後のフレームの画像の差分を算出し、差分画像（動き補償画像）を作成する。
【０３８０】
ステップＳ１０２７において、選択部１２７３は、制御部１２７４の制御に基づいて、入力画像、または動き補償部１２７２より供給された動き補償された画像のどちらかを選択する。すなわち、制御部１２７４は、動きベクトル確度が充分大きいとき、選択部１２７３に、符号化する画像として動き補償された画像を選択させ、そうでないとき入力画像を選択させる。動きベクトル確度に基づいて、入力画像と動き補償された画像のいずれかが選択されるので、信頼性の低い動きベクトルによって動き補償された画像が利用されることを防ぐことが可能となる。選択部１２７３は、選択した画像を画素値符号化部１２７６に供給する。
【０３８１】
ステップＳ１０２８において、画素値符号化部１２７６は、ステップＳ１０２８の処理で選択された画像（入力画像、または動き補償された画像）の符号化を行う。
【０３８２】
ステップＳ１０２９において、付加コード作成部１２７５は、制御部１２７４からの制御に基づいて、復号時に必要な符号化された画像が動き補償された画像か否かを表す付加コードを作成する。この付加コードには、動きベクトル確度を含めることができる。
【０３８３】
ステップＳ１０３０において、統合部１２７７は、ステップＳ１０２８の処理により符号化された画像とステップＳ１０２９の処理により作成された付加コードを統合し、図示せぬ装置に出力する。
【０３８４】
以上のようにして、画像が符号化され、正しくない可能性がある（不正解ベクトルの可能性がある）動きベクトルに基づいて動き補償された画像が利用されることを防ぐことが可能となる。従って、信頼性のない動きベクトルを用いて動き補償を行うことで画像が破綻してしまうことを防ぎ、復号時に高画質な画像を得ることが可能となる。
【０３８５】
図８２は、本発明を手振れ補正装置１３０１に応用した場合の例を表している。手振れ補正装置１３０１は、例えば、デジタルビデオカメラ等に適用される。
【０３８６】
入力画像は、背景動き検出部１３１１、および出力画像生成部１３１４に入力される。背景動き検出部１３１１は、入力画像から背景動きを検出し、変位蓄積部１３１２に出力する。背景動き検出部１３１１の詳細な構成は図８３を参照して後述する。変位蓄積部１３１２は、入力された背景動きから変位量を蓄積し、蓄積した変位量を手振れ判定部１３１３、および出力画像生成部１３１４に出力する。手振れ判定部１３１３は、入力された変位情報を所定の閾値に基づいて、手振れか否かを判定し、判定結果を出力画像生成部１３１４に出力する。
【０３８７】
出力画像生成部１３１４は、供給されている入力画像から、変位蓄積部１３１２より入力された変位量と手振れ判定部１３１３から入力された判定結果に基づいて、出力画像を生成し、例えば、HDD（Hard Disk Drive）、ビデオテープ等のような書き込み可能な記録媒体１３１５に記録する。また、出力画像生成部１３１４は、生成した画像を、例えば、LCD（Liquid Crystal Display）等で構成される表示部１３１６に出力し、表示させる。
【０３８８】
図８３は、図８２の背景動き検出部１３１１の詳細な構成例を表している。この構成例においては、背景動き検出部１３１１は、動き演算部１３２１、頻度分布算出部１３２２、および背景動き決定部１３２３により構成されている。動き演算部１３２１は、上述した図６５の画像処理装置１０００と実質的に同様の構成とされている。
【０３８９】
入力画像は、動き演算部１３２１の動きベクトル検出部１０２１に供給される。動きベクトル検出部１０２１は、入力画像から動きベクトルを検出し、検出した動きベクトル、および入力画像を動きベクトル確度算出部１０２２に出力する。動きベクトル確度算出部１０２２は、入力された動きベクトルおよび入力画像に基づいて、対応する動きベクトルの確度（動きベクトル確度）を算出し、頻度分布算出部１３２２に出力する。
【０３９０】
頻度分布算出部１３２２は、動きベクトルの頻度分布を算出する。ただし、この頻度には、動き演算部１３２１より供給される動きベクトル確度VCを用いることで、確からしい動きに重みが与えられるように、重み付けが行われる。背景動き決定部１３２３は、頻度分布算出部１３２２により算出された頻度分布に基づいて、頻度が最大となる動きを背景動きとして決定する処理を行い、変位蓄積部１３１２へ出力する。
【０３９１】
次に、図８４のフローチャートを参照して、手振れ補正装置１３０１の手振れ補正処理を説明する。ステップＳ１０３１乃至ステップＳ１０３４の処理のそれぞれは図６７を参照して説明したステップＳ９０１乃至ステップＳ９０４の処理と同様である。すなわち、これらの処理で、入力画像が取得され、画像のフレームが所定のブロックに分割される。分割されたブロックに基づいて、例えば、ブロックマッチング法により動きベクトルが検出され、各動きベクトルの確度（動きベクトル確度）が算出される。
【０３９２】
ステップＳ１０３５において、頻度分布算出部１３２２は、動き頻度分布を算出する。具体的には、頻度分布算出部１３２２は、例えば、背景動きの候補としての動きベクトルのｘ座標とｙ座標がそれぞれ基準点から±１６画素分の範囲で表されるとすると、１０８９個（＝１６×２＋１）×（１６×２＋１））の箱、すなわち動きベクトルが取り得る値に対応する座標分の箱を用意し、動きベクトルが発生した場合、その動きベクトルに対応する座標に１を加算する。このようにすることで、動きベクトルの頻度分布を算出することができる。
【０３９３】
ただし、１個の動きベクトルが発生した場合、１を加算していくと、確度が低い動きベクトルの発生頻度が多い場合、その確実性が低い動きベクトルが背景動きとして決定されてしまう恐れがある。そこで、頻度分布算出部１３２２は、動きベクトルが発生した場合、その動きベクトルに対応する箱（座標）に、値１を加算するのではなく、値１に動きベクトル確度VCを乗算した値（＝動きベクトル確度VCの値）を加算する。動きベクトル確度VCの値は、０から１の間の値として正規化されており、その値が１に近いほど確度が高い値である。従って、このようにして得られた頻度分布は、動きベクトルをその確度に基づいて重み付けした頻度分布となる。これにより、確度の低い動きが背景動きとして決定される恐れが少なくなる。
【０３９４】
次に、ステップＳ１０３６において、動きベクトル確度算出部１０２２は、全てのブロックに対して動きベクトルの確度が算出されたか否かを判定する。まだ処理していないブロックが存在する場合には、ステップＳ１０３４に戻り、次のブロックについてステップＳ１０３４、およびステップＳ１０３５の処理が繰り返し実行される。
【０３９５】
以上のようにして、全画面に対して動き頻度分布算出処理が行われた場合、ステップＳ１０３７に進み、背景動き決定部１３２３は、頻度分布の最大値を検索する処理を実行する。すなわち、背景動き決定部１３２３は、頻度分布算出部１３２２により算出された頻度の中から最大の頻度のものを選択し、その頻度に対応する動きベクトルを背景動きの動きベクトルとして決定する。この背景動きの動きベクトルは、変位蓄積部１３１２に供給される。
【０３９６】
ステップＳ１０３８において、変位蓄積部１３１２は、各フレームの背景動きとしての動きベクトルを順次記憶する。
【０３９７】
ステップＳ１０３９において、手振れ判定部１３１３は、背景動きとしての動きベクトルの変位量（絶対値）が予め設定されている閾値より大きいか否かを判定することで、入力画像がユーザの手振れによってブレた画像か否かを判定する。変位量が閾値より大きい場合、手振れであると判定され、閾値より小さい場合、手振れではないと判定される。手振れ判定部１３１３は、判定結果を出力画像生成部１３１４に供給する。
【０３９８】
ステップＳ１０３９において、手振れ判定部１３１３は、手振れが発生したと判定された場合、ステップＳ１４０において、出力画像生成部１３１４は、そのときの変位量とは逆の変位量分シフトした画像を生成し、出力する。これにより、ユーザは、手振れの少ない画像を記録または見ることが可能となる。
【０３９９】
これに対して、ステップＳ１０３９において、手振れではなかったと判定された場合、ステップＳ１４１に進み、出力画像生成部１３１４は、入力された画像をそのまま出力する。出力された画像は、記録媒体１３１５に記録され、また表示部１３１６に表示される。
【０４００】
以上のようにして、手振れが検出、補正される。動きベクトル確度を利用することで、背景動きを精度良く検出することが可能となり、ユーザに手振れの少ない画像を提供することが可能となる。
【０４０１】
図８５は、本発明を適用した蓄積装置１３４１の例を表している。HDD（Hard Disk Drive）レコーダとしての蓄積装置１３４１は、選択部１３５１、記録媒体（HDD）１３５２、インデックス作成部１３５３、シーンチェンジ検出部１１３５４、制御部１３５５、インデックステーブル１３５６、選択部１３５７、表示画像作成部１３５８、全体制御部１３５９、指示入力部１３６０で構成されている。
【０４０２】
選択部１３５１は、全体制御部１３５１の制御に基づいて記録媒体１３５２に記録されている画像、または入力画像を選択し、インデックス作成部１３５３、シーンチェンジ検出部１１３５４、および選択部１３５７に供給する。HDDで構成される記録媒体１３５２には、全体制御部１３５９の制御に基づいて画像が記録される。
【０４０３】
シーンチェンジ検出部１１３５４は、供給された画像からシーンチェンジを検出し、検出結果を制御部１３５５に供給する。制御部１３５５は、供給された検出結果に基づいてインデックス作成部１３５３、およびインデックステーブル１３５６を制御する。
【０４０４】
インデックス作成部１３５３は、制御部１３５５の制御に基づいて、記録媒体１３５２に記録された画像であって、シーンチェンジと判定されたときの各シーンの先頭の画像を縮小した画像であるインデックス画像、およびそのインデックス画像に対応する画像の記録媒体１３５２上での位置を特定する付加情報（タイムコード、アドレスなど）を抽出し、インデックステーブル１３５６に供給する。
【０４０５】
インデックステーブル１３５６は、供給されたインデックス画像とそれに対応する付加情報を保持する。また、インデックステーブル１３５６は、制御部１３５５の制御に基づいて、保持しているインデックス画像に対応する付加情報を全体制御部１３５９に供給する。
【０４０６】
選択部１３５７は、全体制御部１３５９の指示に従って、選択部１３５１から供給された画像、またはインデックステーブル１３５６から入力されたインデックス画像の一方を選択し、表示画像作成部１３５８に出力する。表示画像作成部１３５８は、全体制御部１３５９の指示に従って、入力された画像から、画像表示装置３６５で表示可能な画像を作成、出力し、表示させる。
【０４０７】
制御部１３５５は、シーンチェンジ検出部１３５４から出力されるシーンチェンジフラグ、および全体制御部１３５９の制御に基づいて、インデックス作成部１３５３やインデックステーブル１３５６を制御する。
【０４０８】
全体制御部１３５９は、例えばマイクロコンピュータなどにより構成され、各部を制御する。指示入力部１３６０は、各種のボタン、スイッチ、あるいはリモートコントローラなどにより構成され、ユーザからの指示に対応する信号を全体制御部１３５９に出力する。
【０４０９】
図８６は、図８５のシーンチェンジ検出部１３５４の詳細な構成例を表している。この例においては、動き演算部１３７１、動きベクトル確度平均値算出部１３７２、閾値判定部１３７３によりシーンチェンジ検出部１３５４が構成されている。動き演算部１３７１は、上述した図６５の画像処理装置１０００と実質的に同様の構成とされている。
【０４１０】
動きベクトル検出部１０２１は、選択部１３５１より入力された画像から動きベクトルを検出し、検出した動きベクトル、および入力画像を動きベクトル確度算出部１０２２に出力する。動きベクトル確度算出部１０２２は、入力された動きベクトルおよび入力画像に基づいて、対応する動きベクトルの確度（動きベクトル確度）を算出し、動きベクトル確度平均値算出部１３７２に出力する。
【０４１１】
動きベクトル確度平均値算出部１３７２は、動き演算部１３７１より供給された動きベクトル確度VCの全画面の平均値を算出し、閾値判定部１３７３に出力する。閾値判定部１３７３は、動きベクトル確度平均値算出部１３７２より供給された平均値を、予め定められている閾値と比較し、その比較結果に基づいて、シーンチェンジであるか否かを判定し、判定結果を制御部１３５５に出力する。
【０４１２】
次に、図８７のフローチャートを参照して、蓄積装置１３４１が記録媒体１３５２に画像を記録する場合に実行されるインデックス画像作成処理の詳細について説明する。この処理は、入力された画像が記録媒体１３５２に記録されているとき実行される。
【０４１３】
ステップＳ１０７１乃至ステップＳ１０７４の処理のそれぞれは図６７を参照して説明したステップＳ９０１乃至ステップＳ９０４の処理と同様である。
【０４１４】
すなわち、これらの処理で画像が入力され、画像のフレームが所定のブロックに分割される。分割されたブロックに基づいて、例えば、ブロックマッチング法により動きベクトルが検出され、各動きベクトルの確度（動きベクトル確度）が算出される。
【０４１５】
ステップＳ１０７５において、動きベクトル確度平均値算出部１３７２は、選択部１３５１を介して入力される画像（記録媒体１３５２に記録中の画像）の動きベクトル確度の総和を算出する。具体的には、動きベクトル確度平均値算出部１３７２は、動き演算部１３７１の動きベクトル確度算出部１０２２の統合処理部１０５３（図６６）より出力された各ブロック毎に算出された動きベクトル確度VCの値を加算する処理を実行する。ステップＳ１０７６において、動きベクトル確度算出部１０２２は、全ブロックについて動きベクトル確度VCを算出したか否かを判定し、まだ終了していない場合には、ステップＳ１０７４およびステップＳ１０７５の処理を繰り返す。これらの処理を繰り返すことで、１画面分の全ブロックの動きベクトル確度VCの総和が算出される。ステップＳ１０７６において１画面全部についての動きベクトル確度VCの総和の算出処理が終了したと判定された場合、ステップＳ１０７７に進み、動きベクトル確度平均値算出部１３７２は、動きベクトル確度VCの平均値を算出する処理を実行する。具体的には、ステップＳ１０７５の処理で算出された１画面分の動きベクトル確度VCの総和を、足し込まれたブロック数で除算して得られた値が平均値として算出される。従って、この平均値は１画面（１フレーム）について１個となる。
【０４１６】
ステップＳ１０７８において、閾値判定部１３７３は、ステップＳ１０７７の処理で動きベクトル確度平均値算出部１３７３により算出された動きベクトル確度VCの平均値を、予め設定されている閾値と比較し、その比較結果を制御部１３５５に出力する。ステップＳ１０７９において、制御部１３５５は、閾値判定部１３７３の比較結果に基づいて、平均値が閾値より小さいか否かを判定する。一般的に動画中の連続する２フレーム間でシーンチェンジが発生すると、対応する画像が存在しないため、動きベクトルを算出しても、その動きベクトルは確からしくないことになる。そこで、動きベクトル確度VCの平均値が閾値より小さい場合には、制御部１３５５は、ステップＳ１０８０において、インデックス作成部１３５３を制御し、インデックス画像を作成させる。
【０４１７】
すなわち、ステップＳ１０８１において、インデックス作成部１３５３は、制御部１３５５の制御に基づいて、新たなシーンの先頭のフレームの画像のサイズを縮小し、インデックス画像を生成する。インデックス画像が、例えば１画面中に３×３個配置されて表示される場合、元の画像の縦方向と横方向のサイズをそれぞれ１/３に縮小することでインデックス画像が生成される。また、このとき、インデックス作成部１３５３は、そのフレームの画像の記録媒体１３５２上での記録位置を特定する付加情報（タイムコード、アドレスなど）を抽出する。
【０４１８】
ステップＳ１０８１において、インデック作成部１３５３は、ステップＳ１０８０の処理で作成したインデックス画像、およびそれに対応する付加情報をインデックステーブル１３５６に記録する。
【０４１９】
ステップＳ１０７９で、動きベクトル確度VCの平均値が閾値以上であると判定された場合、シーンチェンジが発生した可能性は低いので、ステップＳ１０８０,Ｓ１０８１の処理はスキップされ、インデックス画像は作成されない。
【０４２０】
その後、ステップＳ１０８２で、制御部１３５５は、ユーザより、記録の終了が指令されたか否かを判定し、終了が指示されていない場合には処理はステップＳ１０７１に戻り、それ以降の処理が繰り返される。記録の終了が指示された場合、処理は終了される。
【０４２１】
以上のようにして、記録動作中にシーンチェンジが自動的に検出され、インデックス画像が自動的に作成される。
【０４２２】
次に図８８のフローチャートを参照して、蓄積装置１３４１の画像表示装置３６５に対する画像出力処理を説明する。この処理は、ユーザにより記録画像の再生出力が指令されたとき実行される。
【０４２３】
ステップＳ１２０１において、全体制御部１３５９は、ユーザの指示入力部１３６０の操作に基づいて、記録媒体１３５２に記録されている画像を再生出力させる。選択部１３５１は、記録媒体１３５２により再生された画像を、選択部１３５７を介して、表示画像作成部１３５８に供給する。表示画像作成部１３５８は、入力された画像を画像表示装置３６５に表示可能な画像に変換し、画像表示装置３６５に出力し、表示させる。
【０４２４】
ステップＳ１２０２において、全体制御部１３５９は、ユーザによって指示入力部１３６０が操作されることでインデックス画像の表示が指示されたか否かを判定する。ユーザからインデックス画像を表示する指示が入力されていない場合、処理はステップＳ１２０１に戻り、それ以降の処理が繰り返し実行される。すなわち、記録媒体１３５２の記録画像を画像表示装置３６５に再生、出力（表示）する処理が継続される。
【０４２５】
これに対して、ユーザからインデックス画像の表示が指示された場合、ステップ２０３において、全体制御部１３５９は、インデックステーブル１３５６を制御し、そこに記録されているインデックス画像を出力させる。すなわち、インデックステーブル１３５６は、インデックス画像を一覧として読み出し、選択部１３５７を介して、表示画像作成部１３５８に出力する。表示画像作成部１３５８は、入力されたインデックス画像の一覧を画像表示装置３６５に出力し、表示させる。これにより、画像表示装置３６５には、１画面中に、３×３個のインデックス画像が配置された一覧が表示される。
【０４２６】
ユーザは、指示入力部１３６０を操作することで、複数表示されているインデックス画像（インデックス画像の一覧）の中から、１つを選択することができる。そこで、ステップＳ１２０６において、全体制御部１３５９は、画像表示装置３６５に表示されているインデックス画像が選択されたか否かを判定する。インデックス画像が選択されていないと判定された場合、処理はステップＳ１２０３に戻り、それ以降の処理が繰り返し実行される。すなわち、インデックス画像の一覧が画像表示装置３６５により継続的に表示される。
【０４２７】
これに対し、インデックス画像が選択されたと判定された場合（ユーザからインデックス画像の一覧の中の所望のインデックス画像が選択（指示）された場合）、ステップＳ１２０５において、全体制御部１３５９は、その選択されたインデックス画像に対応する画像から始まる記録画像を記録媒体１３５２から再生させ、選択部１３５１、選択部１３５７および表示画像作成部１３５８を介し画像表示装置３６５に出力し、表示させる。すなわち、インデックス画像が選択されたと判定された場合、全体制御部１３５９は、インデックステーブル１３５６から、ステップＳ１２０４の処理で選択されたインデックス画像に対応する付加情報（タイムコード、アドレスなど）を読み込み、記録媒体１３５２を制御し、そのインデックス画像に対応する画像からそれに続く画像を再生させ、画像表示装置３６５に出力し、表示させる。
【０４２８】
ステップＳ１２０６において、全体制御部１３５９は、終了が指示されたか否かを判定する。ユーザによって指示入力部１３６０が操作されることで、画像の出力（表示）終了の指示が入力されたか否かが判定される。終了の指示が入力されていないと判定された場合、処理はステップＳ１２０１に戻り、それ以降の処理が繰り返し実行される。これに対し、終了の指示が入力されたと判定された場合、処理は終了する。
【０４２９】
また、蓄積装置１３４１は、その記録媒体が例えば、ＤＶＤ，ビデオテープ等である場合にも適用可能である。
【０４３０】
なお、上述した一連の処理をハードウェアで実現するか、ソフトウェアで実現するかは問わない。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、汎用のパーソナルコンピュータなどに、ネットワークやリムーバブルメディアなどの記録媒体からインストールされる。
【０４３１】
また、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０４３２】
【図１】本発明を適用した監視カメラシステムの構成例を示すブロック図である。
【図２】監視処理を説明するフローチャートである。
【図３】図１の監視カメラシステムにより表示される画像の例を示す図である。
【図４】図３の補正対象エリアの移動の例を示す図である。
【図５】図１のオブジェクト追尾部の構成例を示すブロック図である。
【図６】追尾処理を説明するフローチャート図である。
【図７】追尾対象が回転する場合の追尾を説明する図である。
【図８】オクルージョンが起きる場合の追尾を説明する図である。
【図９】シーンチェンジが起きる場合の追尾を説明する図である。
【図１０】通常処理を説明するフローチャートである。
【図１１】通常処理の初期化処理を説明するフローチャートである。
【図１２】乗り換え候補抽出処理を説明する図である。
【図１３】領域推定関連処理部の構成例を示すブロック図である。
【図１４】領域推定関連処理を説明するフローチャートである。
【図１５】領域推定処理を説明するフローチャートである。
【図１６】サンプル点を決定する処理を説明する図である。
【図１７】サンプル点を決定する処理を説明する図である。
【図１８】サンプル点を決定する処理を説明する図である。
【図１９】サンプル点を決定する処理を説明する図である。
【図２０】領域推定範囲の更新処理を説明するフローチャートである。
【図２１】領域推定範囲の更新を説明する図である。
【図２２】領域推定範囲の更新を説明する図である。
【図２３】領域推定範囲の更新処理の他の例を説明するフローチャートである。
【図２４】領域推定範囲の更新を説明するフローチャートである。
【図２５】乗り換え候補抽出処理を説明するフローチャートである。
【図２６】テンプレート作成処理を説明するフローチャートである。
【図２７】テンプレート作成を説明する図である。
【図２８】テンプレート作成を説明する図である。
【図２９】テンプレートと追尾点の位置関係を説明する図である。
【図３０】領域推定関連処理部の他の構成例を示すブロック図である。
【図３１】領域推定処理の他の例を説明するフローチャートである。
【図３２】同色領域の成長を説明する図である。
【図３３】追尾点の同色領域と領域推定結果を説明する図である。
【図３４】乗り換え候補抽出処理の他の例を説明するフローチャートである。
【図３５】例外処理を説明するフローチャートである。
【図３６】例外処理の初期化処理を説明するフローチャートである。
【図３７】テンプレートの選択を説明する図である。
【図３８】探索範囲の設定を説明する図である。
【図３９】継続判定処理を説明するフローチャートである。
【図４０】動き推定部の構成例を示すブロック図である。
【図４１】動き推定処理を説明するフローチャートである。
【図４２】アクティビティの算出を説明する図である。
【図４３】評価値とアクティビティの関係を説明する図である。
【図４４】統合処理を説明するフローチャートである。
【図４５】背景動き推定部の構成例を示すブロック図である。
【図４６】背景動き推定処理を説明するフローチャートである。
【図４７】シーンチェンジ検出部５３の構成例を示すブロック図である。
【図４８】シーンチェンジ検出処理を説明するフローチャートである。
【図４９】図１の画像補正部の構成例を示すブロック図である。
【図５０】画像補正部の制御信号の例を示す図である。
【図５１】画像のぼけの原理を説明する図である。
【図５２】画像のぼけの原理を説明する図である。
【図５３】画像のぼけの原理を説明する図である。
【図５４】画像のぼけの原理を説明する図である。
【図５５】パラメータコードの組み合わせの例を示す図である。
【図５６】画像のエッジ部分を説明する図である。
【図５７】ぼけ修正処理を説明するフローチャートである。
【図５８】画像補正処理を説明するフローチャートである。
【図５９】画像特徴検出処理を説明するフローチャートである。
【図６０】画像特徴検出部の構成例を示すブロック図である。
【図６１】ブロック切り出し部により抽出されるブロックを説明する図である。
【図６２】画像合成処理を説明するフローチャートである。
【図６３】画像合成部の構成例を示すブロック図である。
【図６４】分散演算を説明する図である。
【図６５】本発明を適用した画像処理装置の構成例を示すブロック図である。
【図６６】図６５の動きベクトル確度算出部の構成例を示すブロック図である。
【図６７】図６５の画像処理装置の動き演算処理を説明するためのフローチャートである。
【図６８】フレームの時間的な流れを説明するための図である。
【図６９】図６８のフレームのブロックを説明するための図である。
【図７０】ブロックマッチング法を説明するための図である。
【図７１】動きベクトルを説明するための図である。
【図７２】動きベクトル確度演算処理を説明するためのフローチャートである。
【図７３】評価値の算出方法を説明するための図である。
【図７４】アクティビティの算出方法を説明するための図である。
【図７５】ブロックアクティビティの算出方法を説明するための図である。
【図７６】閾値処理を説明するためのフローチャートである。
【図７７】正規化処理を説明するためのフローチャートである。
【図７８】統合処理を説明するためのフローチャートである。
【図７９】図６５の画像処理装置の構成例を示すためのブロック図である。
【図８０】符号化装置の構成例を示すためのブロック図である。
【図８１】図８０の符号化装置の符号化処理を説明するためのフローチャートである。
【図８２】手振れ補正装置の構成例を示すためのブロック図である。
【図８３】図８２の背景動き検出部の構成例を示すためのブロック図である。
【図８４】図８２の手振れ補正装置の手振れ補正処理を説明するためのフローチャートである。
【図８５】蓄積装置の構成例を示すためのブロック図である。
【図８６】図８５のシーンチェンジ検出部の構成例を示すためのブロック図である。
【図８７】図８５の蓄積装置のインデックス画像作成処理を説明するためのフローチャートである。
【図８８】図８５の蓄積装置の画像出力処理を説明するためのフローチャートである。
【符号の説明】
【０４３３】
１  監視カメラシステム，  ２１  撮像部，  ２２  画像補正部，  ２４  追尾対象検出部，  ２５  エリア設定部，  ２６  オブジェクト追尾部，  ５１  テンプレートマッチング部，  ５２  動き推定部，  ５３  シーンチェンジ検出部，  ５４  背景動き推定部，  ５５  領域推定関連処理部，  ５６  乗り換え候補保持部，  ５７  追尾点決定部，  ５８  テンプレート保持部，  ７４１  制御信号生成部，  ７４２  画像特徴検出部，  ７４３  アドレス演算部，  ７４４  係数ＲＯＭ，  ７４５  領域抽出部，  ７４６  積和演算部，  ７４７  画像合成部，  １０００  画像処理装置，  １０２１  動きベクトル検出部，  １０２２  動きベクトル確度算出部,  １０４１  評価値算出部，  １０４２  アクティビティ算出部,  １０４３  演算部,  １０５１  閾値判定部,  １０５２  正規化処理部,  １０５３  統合処理部,  １２６１  符号化装置,  １２７１  動き演算部,  １２７２  動き補償部,  １２７３  選択部,  １２７６  画素値符号化部,  １３０１  手振れ補正装置，  １３１１  背景動き検出部,  １３１２  変位蓄積部,  １３１３  手振れ判定部,  １３２１  動き演算部,  １３２２  頻度分布算出部,  １３２３  背景動き決定部,  １３４１  蓄積装置,  １３５４  シーンチェンジ検出部,  １３７１  動き演算部,  １３７２  動きベクトル確度平均値算出部,  １３７３  閾値判定部
【図１】
0004617883.tif 000020
【図２】
0004617883.tif 000021
【図３】
0004617883.tif 000022
【図４】
0004617883.tif 000023
【図５】
0004617883.tif 000024
【図６】
0004617883.tif 000025
【図７】
0004617883.tif 000026
【図８】
0004617883.tif 000027
【図９】
0004617883.tif 000028
【図１０】
0004617883.tif 000029
【図１１】
0004617883.tif 000030
【図１２】
0004617883.tif 000031
【図１３】
0004617883.tif 000032
【図１４】
0004617883.tif 000033
【図１５】
0004617883.tif 000034
【図１６】
0004617883.tif 000035
【図１７】
0004617883.tif 000036
【図１８】
0004617883.tif 000037
【図１９】
0004617883.tif 000038
【図２０】
0004617883.tif 000039
【図２１】
0004617883.tif 000040
【図２２】
0004617883.tif 000041
【図２３】
0004617883.tif 000042
【図２４】
0004617883.tif 000043
【図２５】
0004617883.tif 000044
【図２６】
0004617883.tif 000045
【図２７】
0004617883.tif 000046
【図２８】
0004617883.tif 000047
【図２９】
0004617883.tif 000048
【図３０】
0004617883.tif 000049
【図３１】
0004617883.tif 000050
【図３２】
0004617883.tif 000051
【図３３】
0004617883.tif 000052
【図３４】
0004617883.tif 000053
【図３５】
0004617883.tif 000054
【図３６】
0004617883.tif 000055
【図３７】
0004617883.tif 000056
【図３８】
0004617883.tif 000057
【図３９】
0004617883.tif 000058
【図４０】
0004617883.tif 000059
【図４１】
0004617883.tif 000060
【図４２】
0004617883.tif 000061
【図４３】
0004617883.tif 000062
【図４４】
0004617883.tif 000063
【図４５】
0004617883.tif 000064
【図４６】
0004617883.tif 000065
【図４７】
0004617883.tif 000066
【図４８】
0004617883.tif 000067
【図４９】
0004617883.tif 000068
【図５０】
0004617883.tif 000069
【図５１】
0004617883.tif 000070
【図５２】
0004617883.tif 000071
【図５３】
0004617883.tif 000072
【図５４】
0004617883.tif 000073
【図５５】
0004617883.tif 000074
【図５６】
0004617883.tif 000075
【図５７】
0004617883.tif 000076
【図５８】
0004617883.tif 000077
【図５９】
0004617883.tif 000078
【図６０】
0004617883.tif 000079
【図６１】
0004617883.tif 000080
【図６２】
0004617883.tif 000081
【図６３】
0004617883.tif 000082
【図６４】
0004617883.tif 000083
【図６５】
0004617883.tif 000084
【図６６】
0004617883.tif 000085
【図６７】
0004617883.tif 000086
【図６８】
0004617883.tif 000087
【図６９】
0004617883.tif 000088
【図７０】
0004617883.tif 000089
【図７１】
0004617883.tif 000090
【図７２】
0004617883.tif 000091
【図７３】
0004617883.tif 000092
【図７４】
0004617883.tif 000093
【図７５】
0004617883.tif 000094
【図７６】
0004617883.tif 000095
【図７７】
0004617883.tif 000096
【図７８】
0004617883.tif 000097
【図７９】
0004617883.tif 000098
【図８０】
0004617883.tif 000099
【図８１】
0004617883.tif 000100
【図８２】
0004617883.tif 000101
【図８３】
0004617883.tif 000102
【図８４】
0004617883.tif 000103
【図８５】
0004617883.tif 000104
【図８６】
0004617883.tif 000105
【図８７】
0004617883.tif 000106
【図８８】
0004617883.tif 000107