(57)【要約】  【課題】固定した監視カメラで対象範囲を時間的に複数回撮影した各画像の中に含まれる不動構造物又は不動表示物のコーナーが、常に、画面内の同一位置になるように画像を補正する。  【解決手段】ある時点の画像の中に１又は複数の基準コーナーを設定し、その後の時点の画像において、前記設定されたコーナーＣ（前）の存在位置の周辺に探索エリアを設定する。その探索エリアの中に、エッジ強度がエッジ強度判定しきい値以上ある画素Ｃを１つ抽出する。抽出されたコーナーＣの画素と、コーナーＣ（前）に対応する画素との位置のずれに基づいて移動ベクトルを算出し、前記算出された移動ベクトルだけ画像全体をずらすことによって画像を補正する。【選択図】        図１２
2004343737.tif 000002
【特許請求の範囲】
【請求項１】
固定した監視カメラで対象範囲を時間的に複数回撮影した各画像の中に含まれる不動構造物又は不動表示物の特徴点が、画面内の同一位置になるように画像を補正する方法であって、
(a)監視カメラで撮影した画像を入力し、(b)ある時点の画像の中に基準となる１または複数の特徴点（基準特徴点という）を設定し、(c)その後の時点の画像において、前回抽出された特徴点（１回目の設定では基準特徴点とする）の存在位置周辺に探索エリアを設定し、(d)その探索エリアの中に、特徴量が特徴量判定しきい値以上あり、かつ、特徴量が最も大きな特徴点を１つ抽出し、(e)抽出された特徴点の画素と、基準特徴点に対応する画素との位置のずれに基づいて移動ベクトルを算出し、(f)前記算出された移動ベクトルの大きさだけ画像全体を移動ベクトルと逆方向にずらすことによって、画像を補正することを特徴とする画像補正方法。
【請求項２】
前記(b)の基準特徴点の設定は、次の（b1）から（b3）のいずれかの方法により行うものである請求項１記載の画像補正方法。
（b1）オペレータが手動で設定する。
（b2）オペレータが手動で行った後、その手動設定された点の周囲の特徴量最大の点を、画像処理のアルゴリズムを用いて自動的に探索して設定する。
（b3）画面全体に対して特徴量最大の点を、画像処理のアルゴリズムを用いて自動的に探索して設定する。
【請求項３】
前記(d)の手順において、特徴量が特徴量判定しきい値以上ある画素及びその周辺の画素と、前回抽出された特徴点に対応する画素及びその周辺の画素との画像一致度を算出し、算出された画像一致度が画像一致度判定しきい値よりも高い画素の中から、特徴量が最も大きな画素を特徴点として抽出することを特徴とする請求項１記載の画像補正方法。
【請求項４】
前記画像一致度は、対比する２つの画面において、特徴点に対応する画素から見て同じ位置にある「周辺の画素」どうしの輝度の差をとり、全ての周辺の画素について、前記輝度の差のばらつきに相当する量を算出することにより得られるものである請求項３記載の画像補正方法。
【請求項５】
前記画像一致度は、対比する２つの画面において、特徴点の画素から見て同じ位置にある「周辺の画素」どうしの輝度の相関係数を算出することにより得られるものである請求項３記載の画像補正方法。
【請求項６】
前記画素の輝度は、同一画素において過去に検出された輝度の履歴を考慮して求められることを特徴とする請求項４又は請求項５記載の画像補正方法。
【請求項７】
前記周辺の画素は、特徴点の画素と１画素以上隔たっていることを特徴とする請求項３記載の画像補正方法。
【請求項８】
前記(d) の手順において、設定された探索エリア内のコントラストがコントラスト判定しきい値未満の場合は、特徴点の画素を抽出しないで、処理を終えることを特徴とする請求項１記載の画像補正方法。
【請求項９】
監視カメラで撮影した画像において、奇数番目のラインと偶数番目のラインとが別のフィールドで撮影されているときは、設定された探索エリア内の奇数番目のライン又は偶数番目のラインのいずれか一方を用いて、画像補正処理を行うことを特徴とする請求項１記載の画像補正方法。
【請求項１０】
前記(d) の手順において、特徴量が特徴量判定しきい値以上の点がない場合、基準特徴点の存在位置周辺に探索エリアを設定しなおして、前記(d) 以下の手順を続けることを特徴とする請求項１記載の画像補正方法。
【請求項１１】
前記(d) の手順において、特徴量が特徴量判定しきい値以上の点がない場合、前回以前に時系列に抽出された特徴点に基づき算出される当該時系列データを平均化若しくは平滑化した点の存在位置周辺に探索エリアを設定しなおして、前記(d) 以下の手順を続けることを特徴とする請求項１記載の画像補正方法。
【請求項１２】
前記(f) の手順において、算出された移動ベクトルが複数ある場合、移動ベクトルのばらつきを算出し、この算出されたばらつきが移動ベクトルばらつき判定しきい値以上である場合に、移動ベクトルのばらつきを大きくしている特徴点の画素を除去して画像補正処理を行うことを特徴とする請求項１記載の画像補正方法。
【請求項１３】
ある画素を除いた他の移動ベクトルについてばらつきを算出したときに、算出されたばらつきが移動ベクトルばらつき判定しきい値未満となった時に、当該画素を、「前記移動ベクトルのばらつきを大きくしている特徴点の画素」であると判定する請求項１２記載の画像補正方法。
【請求項１４】
前記(f) の手順において、前記算出された移動ベクトルが複数ある場合に、それらの移動ベクトルの移動量の平均を求めて、この移動量の平均値に相当する距離だけ画像をずらすことを特徴とする請求項１記載の画像補正方法。
【請求項１５】
前記特徴点は、画像の中に含まれる不動構造物又は不動表示物の角（コーナー）である請求項１記載の画像補正方法。
【請求項１６】
前記特徴量は、コーナーのエッジ強度である請求項１５記載の画像補正方法。
【請求項１７】
請求項１記載の画像補正方法を実行するための画像補正プログラム。
【請求項１８】
固定した監視カメラで対象範囲を時間的に複数回撮影した各画像の中に含まれる不動構造物又は不動表示物の特徴点が、画面内の同一位置になるように画像を補正する装置であって、
(a)監視カメラで撮影した画像を入力する手段、(b)ある時点の画像の中に基準となる１または複数の特徴点（基準特徴点という）を設定する手段、(c)その後の時点の画像において、前回抽出された特徴点（１回目の設定では基準特徴点とする）の存在位置周辺に探索エリアを設定する手段、(d)その探索エリアの中に、特徴量が特徴量判定しきい値以上あり、かつ、特徴量が最も大きな特徴点を１つ抽出する手段、(e)抽出された特徴点の画素と、基準特徴点に対応する画素との位置のずれに基づいて移動ベクトルを算出する手段、並びに(f)前記算出された移動ベクトルの大きさだけ画像全体を移動ベクトルと逆方向にずらすことによって、画像を補正する手段を備えることを特徴とする画像補正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固定した監視カメラで対象範囲を時間的に複数回撮影した各画像の中に含まれる不動構造物又は不動表示物の特徴点が、常に画面の同一位置になるように画像を補正する方法及びそのプログラムに関するものである。
【背景技術】
【０００２】
道路上の車両を検出するために、道路に固定式の監視カメラを設置し、その画像データを処理して、車両の速度、交通量、渋滞などを自動的に計測することが行われている。
監視カメラでとらえられた画像データの中には、道路周辺の建物、道路の白線、交通標識、ガードレールなど構造物又は表示物が含まれている。走行する車両を精度よく検出するためには、これらの構造物又は表示物は画面の中で不動である必要がある。
【０００３】
ところが、振動や風などで監視カメラやその台座が揺れて画角が狂うことがある。従来、画角に狂いが生じた場合、その画角のズレ量を算出し、新たに得られる撮影画像のパラメータをそのズレ量に応じて補正して、その補正により画角のズレの影響を取り除くようにした発明が知られている。
【特許文献１】特開2002-232875号公報
【特許文献２】特開平10-23322号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述した画角のズレの影響を取り除く方法は、基準となる画像に基づいてテンプレートを作り、処理する画像に基づいてテンプレートを作り、それらのテンプレート間のパターンマッチングを行うものであった。
しかし、テンプレートマッチングを行うと、処理時間がかかるという問題がある。
そこで、本発明は、各画像の中に含まれる不動構造物又は不動表示物の特徴点に注目することにより、簡単な処理で、迅速に監視カメラの画像を補正することのできる画像補正方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の画像補正方法は、次の(a)〜(f)の処理を行うものである（請求項１）。(a) 監視カメラで撮影した画像を入力する。(b) ある時点の画像の中に１又は複数の基準特徴点を設定する。(c) その後の時点の画像において、前回抽出された特徴点（１回目の設定では基準特徴点とする）の存在位置の周辺に探索エリアを設定する。(d) その探索エリアの中に、特徴量が特徴量判定しきい値以上あり、かつ、特徴量が最も大きな特徴点を１つ抽出する。(e) 抽出された特徴点の画素と、基準特徴点に対応する画素との位置のずれに基づいて移動ベクトルを算出する。(f) 前記算出された移動ベクトルの大きさだけ画像全体を移動ベクトルと逆方向にずらすことによって、画像を補正する。
【０００６】
この処理により、「ある時点の画像」と「その後の時点の画像」において、特徴点の座標が常に一致するように画像を補正することができる。
前記(b)の基準特徴点の設定は、オペレータが手動で行ってもよく、オペレータが手動で行った後、その手動設定された点の周囲の特徴量最大の点を、画像処理のアルゴリズムを用いて自動的に探索して設定してもよい。また、画面全体に対して画像処理のアルゴリズムを用いて初めから完全に自動的に探索して設定してもよい（請求項２）。
【０００７】
前記(c)の探索エリアの大きさは、予め設定された大きさとすればよい。
前記(d)において、特徴量が最も大きな特徴点を１つ抽出するだけでは、前回抽出された特徴点のまわりに偶然、特徴量が最も大きな点が出現したとき（例えば走行している車両が画面内に入ってきたとき）に、これを排除できない。そこで、特徴量が最も大きな画素及びその周辺の画素と、前回抽出された特徴点に対応する画素及びその周辺の画素との画像一致度を算出する。算出された画像一致度が画像一致度判定しきい値よりも高い画素の中から、特徴量が最も大きな画素を特徴点として抽出するとよい（請求項３）。この方法によれば、特徴点の画素だけでなくその周辺の画素にも注目して画像一致度を判定するので、偶然、特徴量が最も大きな点が単発的に侵入した場合これを排除できる。
【０００８】
前記画像一致度は、例えば、対比する２つの画面において、特徴点に対応する画素から見て同じ位置にある「周辺の画素」どうしの輝度の差のばらつきに相当する量、又は輝度の相関係数を算出することにより得られる（請求項４，請求項５）。
前記画素の輝度は、日照条件の急激な変化に追従しないように、同一画素において過去に検出された輝度の履歴を考慮して求められることが好ましい（請求項６）。
【０００９】
画像一致度を算出する場合、「周辺の画素」は、特徴点の画素と１画素以上隔たっていることが好ましい（請求項７）。特徴点の画素に隣接する画素をとれば、隣接する画素は、特徴点のエッジの形状をそのまま延長して再現していることがあるので、画像の一致度を判定する際に、正しい判定ができなくなることがある。好ましくは、「周辺の画素」と特徴点の画素との隔たりは、特徴点のエッジの形状の延長が無視できる程度の距離に相当する画素数とするとよい。
【００１０】
前記(d)において、設定された探索エリア内のコントラストがコントラスト判定しきい値未満の場合は、特徴点の画素を抽出しないで画像補正処理をスキップすることが好ましい（請求項８）。探索エリア内のコントラストが低いときは、特徴点が正確に抽出できない確率が高いからである。
監視カメラで撮影した画像において、奇数番目のラインと偶数番目のラインとが別のフィールドで撮影されているときは、設定された探索エリア内の奇数番目のライン又は偶数番目のラインのいずれか一方を用いて、画像補正処理を行うことが好ましい（請求項９）。いわゆるＮＴＳＣ方式においては奇数番目のライン又は偶数番目のラインの撮像時点が違うので、奇数番目のラインと偶数番目のラインを混合すると、正確な画像補正処理ができなくなることがあるからである。
【００１１】
前記(d)において、探索エリアの中に、特徴量が特徴量判定しきい値以上の点がない場合、つまり画角が大きくずれて特徴量を見失う場合がある。この場合は、基準特徴点の存在位置の周辺に探索エリアを設定しなおして、前記(d) 以下の手順を続ける（請求項１０）。これは、画角がいずれデフォルトの画角（基準特徴点を設定した時の画角）に戻ってくるのを期待して、基準特徴点の付近で特徴点を探索することを意味する。
【００１２】
ところで、画角が大きくずれて特徴点を見失った場合、基準特徴点の付近で探索していても特徴点が戻ってこない場合がある。例えばカメラの取り付け角度が永久的にずれてしまった場合などである。そこで、このような事態を予想して、前記(d) の手順において、特徴量が特徴量判定しきい値以上の点がない場合、前回以前に時系列に抽出された特徴点に基づき算出される当該時系列データを平均化若しくは平滑化した点の存在位置周辺に探索エリアを設定しなおして、前記(d) 以下の手順を続けることが好ましい（請求項１１）。画角がもう基準特徴点に戻らないと予想しているので、前回以前に抽出された特徴点の平均化若しくは平滑化した点をとることにしたのである。平均化若しくは平滑化の算出周期を短くすればするほど、「前回抽出された特徴点の存在位置周辺に探索エリアを設定」するという請求項１の処理に近づく。平均化若しくは平滑化の算出周期を長くすればするほど、「基準特徴点の存在位置の周辺に探索エリアを設定」するという請求項１０の処理に近づく。
【００１３】
前記(f)において、算出された移動ベクトルが複数ある場合、移動ベクトルの方向や大きさがばらついていることがある。このばらつきは、「後の時点の画像」の中で、例えば走行している車両が画面内に入ってきたため、特徴点を誤って抽出したとき等に起こることである。この誤って抽出した特徴点の移動ベクトルの方向や大きさは、通常、他の特徴点の移動ベクトルの方向や大きさと違っている。そこで、全移動ベクトルのばらつきを算出し、この算出されたばらつきが移動ベクトルばらつき判定しきい値以上であるかどうかを判定し、しきい値以上であれば、移動ベクトルのばらつきを大きくしている特徴点の画素を除去して画像補正処理を行うことが好ましい（請求項１２）。
【００１４】
前記「移動ベクトルのばらつきを大きくしている特徴点の画素」は、例えば当該画素を除いた他の移動ベクトルについてばらつきを算出したときに、算出されたばらつきが移動ベクトルばらつき判定しきい値未満となることにより判定すればよい（請求項１３）。
前記(f)において、前記算出された移動ベクトルが複数ある場合は、それらの移動ベクトルの移動量の平均を求めて、この移動量の平均値に相当する距離だけ画像をずらせばよい（請求項１４）。
【００１５】
前記特徴点は、例えば、画像の中に含まれる不動構造物又は不動表示物の角（コーナー）としてもよい（請求項１５）。また特徴量は、コーナーのエッジ強度としてもよい（請求項１６）。
また、本発明の画像補正プログラムは、請求項１記載の画像補正方法を実行するためのプログラムである（請求項１７）。本発明の画像補正装置は、請求項１記載の画像補正方法を実行するための装置である（請求項１８）。
【発明の効果】
【００１６】
以上のように本発明によれば、各画像の中に含まれる不動構造物又は不動表示物の特徴点に注目することにより、２つの異なる時点の画像において、特徴点の座標が常に一致するように、簡単かつ迅速に画像を補正することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を、添付図面を参照しながら詳細に説明する。
図１は、本発明の画像補正方法を実行する画像処理システムのハードウェア構成図である。
当システムは、道路を見晴らす位置に設置され、固定画角で道路を撮影する機能を持つＣＣＤ監視カメラ２を備えている。ＣＣＤ監視カメラ２は、その姿勢を可変するための回転台（雲台ともいう）に搭載されている。前記回転台は、モータによって水平２軸、及び垂直軸のまわりに回転可能となっていて、所定の角度になったところで固定することができる。
【００１８】
ＣＣＤ監視カメラ２の画像信号は、通信回線、Ａ／Ｄ変換器３を通して、中央の画像処理装置１に入力される。
画像処理装置１は、入力された画像信号を記憶するための画像メモリ４、本システム全体の演算制御を行う中央処理装置（ＣＰＵ）７、ＣＰＵ７の演算を補助するための主メモリ５、各種設定値や演算プログラムを記憶する不揮発性メモリ６(EEPROM)、端末機器との入出力制御を行うＩ／Ｏ制御器８、Ｉ／Ｏ制御器８に接続された入力デバイス９、及びＩ／Ｏ制御器８に接続された映像モニター装置１０を備えている。
【００１９】
入力デバイス９は、本画像処理システムの運用に必要な各種設定値を手動入力するためのものであり、マウス、キーボードなどを含む。
映像モニター装置１０は、画像処理装置１に供給された映像信号に基づく映像を画面上に映し出す。
ＣＰＵ７は、本発明の画像補正方法を実行するものであり、その機能の全部又は一部は、ＣＤ−ＲＯＭや前記不揮発性メモリ６など所定の媒体に記録されたプログラムを、画像処理装置１のＣＰＵ７が実行することにより実現される。
【００２０】
図２は、画像補正方法を実行するＣＰＵ７の各機能を示すブロック図である。
初期設定処理において、オペレータが入力デバイス９を用いて設定値入力を行い、ＣＰＵ７は入力された各種の設定値を不揮発性メモリ６に記憶する。
ＣＰＵ７は、画像メモリ４に記憶された画像データと、各種の設定値に基づいて、コーナー追跡処理、異常コーナー除去処理、画像補正処理を行う。コーナー追跡処理には画像一致度判定処理が含まれ、異常コーナー除去処理には移動ベクトルの標準偏差算出処理が含まれる（本実施形態では、この標準偏差を請求項１２記載のばらつきの判定量として用いる）。
【００２１】
以下、画像補正方法の流れを、フローチャートを用いて説明する。
図３は、処理の全体の流れを示すフローチャートである。この全体処理は、画像信号の１フレームが入力されるごとに行う。画像信号の各フレームの入力周期は、本実施では１／３０秒である。もちろん、１／３０秒に限定されるものではなく、１／１０秒や１／５秒などであってもよい。
【００２２】
まず、初期設定により各種の定数を設定する(ステップＳ１)。この各種定数には、監視カメラの位置・角度、探索エリアの大きさ、エッジ強度判定しきい値、コントラスト判定しきい値、画像一致度判定しきい値、移動ベクトル標準偏差判定しきい値などがある。この初期設定処理は、後にフローチャート（図４，図５）を用いて詳しく説明する。
次に、「有効コーナー数」という変数を０とおく(ステップＳ３)。
【００２３】
そして、コーナーを順に取り出す(ステップＳ４)。このコーナーは、後に説明する「前周期コーナー情報」の中に含まれている。
取り出したコーナーに対して、コーナー追跡処理(ステップＳ５)を行う。このコーナー追跡処理は、後にフローチャート（図６，図７）を用いて詳しく説明する。
コーナーの追跡に成功したかどうか判定し(ステップＳ６)、コーナーの追跡に成功した場合（つまりそのコーナーが有効と判定された場合）、「有効コーナー数」を１プラスする(ステップＳ７)。
【００２４】
以上のステップＳ４→Ｓ７の処理が、コーナーの全てについて完了したかどうか判定し（ステップＳ８）、「前周期コーナー情報」の中に含まれるコーナーの全てについて完了すれば、有効コーナー数が３以上かどうか判定し（ステップＳ９）、３以上ない（つまり２以下の）場合は、画像補正処理は行わない。これは、有効コーナー数が２以下であれば、コーナー数が少ないので、画像補正処理が正確にできないと判断されるためである。なお、ステップＳ９の処理は、「３」という数値に限定されるものではなく、３以外の他の数値を採用してもよい。
【００２５】
３以上ある場合は、異常コーナー除去処理を行う（ステップＳ１０）。この異常コーナー除去処理は、後にフローチャート（図８，図９）を用いて詳しく説明する。
異常コーナーの除去が終われば、画像補正処理を行う（ステップＳ１１）。この画像補正処理は、後にフローチャート（図１０）を用いて詳しく説明する。
図４、図５は、初期設定処理を説明するためのフローチャートである。まず、オペレータは、入力デバイス９を用いて、監視カメラの位置・角度、探索エリアの大きさ、エッジ強度判定しきい値、コントラスト判定しきい値、画像一致度判定しきい値、移動ベクトル標準偏差判定しきい値などの各種定数を設定する（ステップＴ１）。以下、設定例をあげる。
【００２６】
監視カメラで撮影される画像全体の大きさ：７２０画素×４８０画素／フレーム
輝度の階調数：２５６階調
探索エリアの大きさ：１１画素×１１画素（注１）
エッジ強度判定しきい値：１５０階調
コントラスト判定しきい値：３２階調
画像一致度判定しきい値：０．９（注２）
移動ベクトル標準偏差判定しきい値：２画素
注１：想定される揺れの最大値に依存する。ほとんど揺れない場所では、例えば５画素×５画素に設定する。縦揺れが少ない場所では１１画素×５画素などとする。
注２：画像一致度として相関係数を用いる場合。
【００２７】
次に、ＣＣＤ監視カメラ２で撮影された画像の中から、後の画像補正の基準となる画像（基準画像という）を入力する（ステップＴ２）。この基準画像は、通常、本画像処理システム運用の最も初期に得られた画像である。
図１１に、基準画像の例を示す。同図において、２１は道路、２２は道路中心部の白線、２３は道路標示を示す。オペレータは、この基準画像の中から、車両計測エリアＡと、コーナー設定エリアＢとをそれぞれ設定する（ステップＴ３，Ｔ４）。コーナー設定エリアＢは、車両計測エリアＡよりも一回り大きくなっている。
【００２８】
オペレータは、コーナー設定エリアＢの中に、マウスなどを用いて、後の画像補正の基準となるコーナーを指定する（ステップＴ５）。この指定は、手動で行うものであり、厳密なコーナーから多少ずれていてもよい。もし、指定された位置がコーナー設定エリアＢの中になければ、再指定するように促す（ステップＴ６）。
ＣＰＵ７は、こうして指定された位置及びその周辺に探索エリアを設定して（その探索エリアの大きさはステップＴ１で設定済みである）、探索エリア内でエッジ強度を算出する（ステップＴ７）。
【００２９】
ここで「エッジ強度」とは、ＣＣＤ監視カメラ２の撮影面上の画素の輝度Ｉ（ｍ，ｎ）を、縦方向と横方向にそれぞれ偏微分し、それぞれの偏微分係数の二乗和をとったものをいう。（ｍ，ｎ）は当該画素の座標を表す。このエッジ強度をΔＩ（ｍ，ｎ）と書く。なお、エッジ強度をとるときは、画像がＮＴＳＣ方式でインターレースされている場合は、水平走査が偶数番目の画素のみに注目してエッジ強度をとるか、水平走査が奇数番目の画素のみに注目してエッジ強度をとるかすることが好ましい。偶数番目の水平走査と、奇数番目の水平走査とでは、撮影時刻が半コマ分ずれているので、画像が動いている可能性があるためである。
【００３０】
エッジ強度ΔＩ（ｍ，ｎ）は、上で説明したものの他、Sobel演算子を用いて算出される下記の値Ｓobを採用してもよい。
Ｓobx＝［Ｉ(m+1,n-1)＋２Ｉ(m+1,n)＋Ｉ(m+1,n+1)］
−［Ｉ(m-1,n-1)＋２Ｉ(m-1,n)＋Ｉ(m-1,n+1)］
Ｓoby＝［Ｉ(m-1,n+1)＋２Ｉ(m,n+1)＋Ｉ(m+1,n+1)］
−［Ｉ(m-1,n-1)＋２Ｉ(m,n-1)＋Ｉ(m+1,n-1)］
Ｓob＝√（Ｓobx2＋Ｓoby2）
また、エッジ強度として固有値λ1，λ2の小さい方を使ってもよい（Jianco Shi and Carlo Tomasi, "Good Features to Track" IEEE Conference on Computer Vision and Pattern Recognition (CVPR94), June 1994参照）。
【００３１】
探索エリアの中で、エッジ強度が最大の画素を基準コーナーとする（ステップＴ８）。このようにして、オペレータが指定したコーナーの近くに、厳密な意味でのコーナー（基準コーナー）を設定することができる。こうして設定された基準コーナーの位置を記憶し（ステップＴ９）、これらの基準コーナーの位置、基準コーナーのエッジ強度、周辺の画素の輝度のデータを、「前周期コーナー情報」にコピーする（ステップＴ１０）。
【００３２】
ここで、「周辺の画素」とは、基準コーナーに対応する画素（基準画素という）から複数画素だけ離れた画素をいう。周辺の画素Ｃ１〜Ｃ８を、基準画素Ｃに隣接する画素としない理由は、コーナーのエッジの形が隣接画素にも及ぶため、隣接画素は、コーナー周辺の特徴を示すための情報として用いられないからである。図１３は、基準画素Ｃと、周辺の画素Ｃ１〜Ｃ８との位置関係を記した図である。この例では、基準画素Ｃと周辺の画素Ｃ１〜Ｃ８とは、１画素隔てている。しかし、１画素離れている場合に限られず、２画素、あるいはそれ以上離れた画素を周辺の画素にとってもよい。要するに、周辺の画素と基準画素との隔たりは、基準画素のエッジの形状の延長が無視できる程度の距離に相当する画素数とするとよい。
【００３３】
いままで決定した基準コーナーの数を数え（ステップＴ１１）、一定数Ｎ個（例えばＮ＝５とする）に満たなければ、ステップＴ５に戻り、オペレータに次のコーナーの指定を促す。基準コーナーを複数（Ｎ個）登録するのは、１個だけだと、誤差が入れば、画像の移動量を正確に決定できないからである。
このようにして、Ｎ個の基準コーナーが設定されれば、初期設定処理は終わる。
【００３４】
図６、図７は、コーナー追跡処理を説明するためのフローチャートである。
このコーナー追跡処理は、前周期のコーナーと同じコーナーを、今周期の画像の中から探し出すための処理である。
まず、「前周期コーナー情報」を参照し、その中から１つのコーナーを選定し、その周辺に探索エリアを設定する（ステップＵ１）。図１２は、「前周期コーナー情報」の中から選定されたコーナーＣ（前）と、その周辺に設定された探索エリアを示す図である。
【００３５】
次に、探索エリアの中のコントラスト（探索エリアの中の最小輝度と最大輝度との差）がコントラスト判定しきい値以上であるかどうか判断する（ステップＵ２）。コントラスト判定しきい値は、ステップＴ１で設定された定数である。コントラスト判定しきい値未満であれば、コーナー追跡処理を行わない。この理由は、夜、薄暮、雪の日などに撮影した画像は、コントラストが低くて、コーナーの位置やエッジ強度を精度よく算出できないからである。
【００３６】
コントラストがコントラスト判定しきい値以上であれば、探索エリア内の画素を順に取り出し（ステップＵ３）、当該画素のエッジ強度を算出する（ステップＵ４）。当該画素のエッジ強度がエッジ強度判定しきい値であるかどうか判断する（ステップＵ５）。このエッジ強度判定しきい値は、ステップＴ１で設定された定数である。当該画素のエッジ強度がエッジ強度判定しきい値であるかどうか判断する理由は、走行する車両がコーナーを隠した場合など、エッジがなくなってしまうので、このような場合に、コーナーの抽出処理を中止して処理時間を節約するためである。
【００３７】
エッジ強度がエッジ強度判定しきい値以上の画素を抽出して並べ、順に取り出す（ステップＵ６）。そして、当該画素及びその周辺の画像と、前周期のコーナー画素及びその周辺の画像との画像一致度を算出する（ステップＵ７）。周辺の画像との画像一致度を算出するのは、前周期のコーナーのまわりに偶然、エッジ強度が最も大きな他の点が出現したとき（例えば走行している車両が画面内に入ってきたとき）に、これを排除するためである。
【００３８】
この画像一致度の算出方法を説明する。周辺画素の番地をｉ（ｉは１からＭまで、Ｍは周辺画素の数）で表す。当該番地ｉの周辺画素の輝度をＩ(i)で表し、前周期における番地ｉの周辺画素の輝度をＩ′(i)で表す。
ここで、周辺画素の輝度には、過去の周期における周辺画素の輝度の実績を考慮した指数平滑値を用いてもよい。指数平滑値の求め方は、前回周期の指数平滑値と、今回周期で求められた周辺画素の輝度との重み付け平均とする。前回周期の指数平滑値をＺ(i,t-1)、今回周期で求められた周辺画素の輝度Ｉ(i,t)と書くと、今回周期の指数平滑値Ｚ(i,t)は、重みβを使って、
Ｚ(i,t)＝βＺ(i,t-1)＋（１−β）Ｉ(i,t)
で表される。ただし、０＜β＜１、Ｚ(i,t)は初期設定時における輝度Ｉ(i,0)である。重みβは、１にすると輝度は起動時の初期値のままになり、０にすると常に前回処理時の値そのものになる。βは０．９９程度に設定し、輝度があまり更新されないようにする。ただし、強風で雲の流れが速い日などは日照変化が激しいので、βは小さめ（例えば０．９）にし、変化に追従しやすくする。
【００３９】
画像一致度を算出方法するには、図１４に示すように、横軸に輝度Ｉをとり、縦軸に輝度Ｉ′をとり、番地ｉごとに点を座標｛Ｉ(i)，Ｉ′(i)｝をプロットする。最小自乗法で全ての点の関係を最もよく近似する直線を引き、点｛Ｉ(i)，Ｉ′(i)｝とその直線との最短距離ｓiを求める。この最短距離ｓiを全てのｉ（ｉ＝１〜Ｍ）について求め、それらの平均
Ｓ＝Σｓi（総和はｉ＝１からＭまでとる）
を求める。
【００４０】
このＳの逆数１／Ｓを「画像一致度」とする。Ｉ(i)とＩ′(i)とが、各ｉについて近い値をとれば、Ｓは小さくなり、画像一致度１／Ｓは大きくなる。Ｉ(i)とＩ′(i)のばらつきが大きければ、画像一致度１／Ｓは小さくなる。なお、「画像一致度」は、Ｓの逆数１／Ｓに限られるものではない。Ｓが大きくなれば小さくなり、Ｓが小さくなれば大きくなる関数であれば、どのような形を採用してもよい。たとえば、ｅ-sのような指数関数でもよい。
【００４１】
また、画像一致度として相関係数を使ってもよい。相関係数ｒは、次の式で表わされる。
ｒ＝Σ［（Ｉ(i)−Ｉm）（Ｉ′(i) −Ｉ′m）］／（Ｍ−１）ＨＨ′
総和はｉ＝１からＭまでとる。ここで、ＩmはＩ(i)の平均値、Ｉm′はＩ′(i)の平均値、ＨはＩ(i)の標準偏差、Ｈ′はＩ′(i)の標準偏差である。この相関係数ｒが大きいほど画像一致度は大きくなる。
【００４２】
この画像一致度を、ステップＴ１で求めた画像一致度判定しきい値と比較し（ステップＵ８）、画像一致度判定しきい値よりも小さければ、ステップＵ６に戻り、次のコーナーについても同じように画像一致度を求める。
画像一致度がステップＴ１で求めた画像一致度判定しきい値よりも大きければ、その画素を記憶し、記憶された１又は複数の画素の中から、エッジ強度の最も大きな画素を取り出し（ステップＵ９）、当該画素を今周期の有効コーナーとする（ステップＵ１０）。そして、このコーナーの位置、エッジ強度、周辺画素の輝度Ｉ（ｉ）のデータを、変数「今周期コーナー情報」に登録する（ステップＵ１１）。
【００４３】
以上の今周期のコーナーの探索処理を、前周期のコーナーごとに設定した探索エリアにおいて、それぞれ行う。前周期のコーナーがＮ個あったとすれば、最大Ｎ個の今周期の有効コーナーが決まる。
図７に移り、今周期のコーナー情報の中に最低１個のコーナーがあるかどうかを調べる（ステップＵ１２）。今周期のコーナー情報の中にＬ個（Ｌは１以上Ｎ以下の整数）のコーナーがあったとすれば、前周期のコーナーの位置と今周期のコーナーの位置とを比較し、その差である移動ベクトルＶj（ｊ＝１〜Ｌ）を算出する（ステップＵ１３）。
【００４４】
そして、このＬ個の今周期のコーナー情報を「前周期コーナー情報」に上書きする（ステップＵ１４）。
今周期のコーナー情報の中にコーナーがない場合、又はステップＵ２でコントラストがコントラスト判定しきい値未満であった場合は、コーナーを無効にし（ステップＵ１５）、初期設定で求めた基準コーナー情報を「前周期コーナー情報」にコピーする（ステップＵ１６）。これは、コーナー追跡ができなかったことを意味し、初期設定処理で求めた基準コーナーを有効コーナーとみなして、以下の処理を進めるためである。
【００４５】
なお、コーナー追跡ができなかった場合、前回及びそれ以前に設定された各有効コーナーの位置を記憶しておき、その指数平滑線を算出して、前回周期におけるこの指数平滑線上の点を「前周期コーナー情報」にコピーして使うという実施形態も可能である。
図１５は、過去に追跡されたコーナー位置を、処理周期ごとにプロットしたグラフである。コーナー位置は、便宜上一次元座標で表している。黒丸は追跡されたコーナーを示し、×印は追跡できなかったコーナーを示している。一点鎖線は追跡されたコーナーに基づいて作成された指数平滑線を表している。
【００４６】
前記指数平滑線は、図１５に示すように、初期設定処理で求めた基準コーナーからスタートして、追跡されたコーナーに遅れながら追従していく。
指数平滑線の求め方は、前回周期の指数平滑値と、今回周期で求められたコーナー位置の重み付け平均とする。前回周期の指数平滑値をｘ(t-1)、今回周期で求められたコーナー位置をｙ(t)と書くと、今回周期の指数平滑値ｘ(t)は、重みαを使って、
ｘ(t)＝（１−α）ｘ(t-1)＋αｙ(t)
で表される。ただし、０＜α＜１、ｘ(0)＝基準コーナーの位置、である。
【００４７】
α＝０であれば、ｘ(t)は常に基準コーナーの位置になり、これは前述したステップＵ１６のケースである。α＝１であれば、ｘ(t)は、コーナー位置ｙ(t)となる。これは過去のコーナーの位置履歴を考慮しないケースである。すなわち、コーナーが見つかならかった場合、常に前回見つかったコーナーの周囲を探索するという設定になる。
図１５を参照しながら、本実施形態を具体的に説明する。処理周期t+1で、「×」で示したように、コーナーを見失ったとする。この場合、指数平滑線上の位置ｘ(t)を基準にして、同図に"Ｉ"で示したように探索エリアを設定する。処理周期t+2では、この探索エリアの中でコーナーを探索する。処理周期t+2においてコーナーを見つけられなかったとする。指数平滑線は横軸に並行に延長される。処理周期t+3では、探索エリアの中に黒丸のコーナーが見つかったことを示している。
【００４８】
このように、コーナーを見失った場合、今まで追跡したコーナーの指数平滑線に基づいて探索エリアを設定する理由は、監視カメラの画角が変化した場合、画角はまた元の位置に戻ってくるであろうという見込みに基づいている。弾性的に完全に元の位置に戻る場合もあり、完全に元の位置には戻らない非弾性的な場合もある。いずれの場合も、指数平滑線に基づいて探索エリアを設定することにより、見失ったコーナーを見つける確率は高くなると考えている。
【００４９】
なお、指数平滑演算に代えて、過去一定期間のデータの平均をとる移動平均演算を採用してもよい。
次に、有効コーナーの中から、方向、大きさのかけ離れた異常コーナーを除去する処理を説明する。
図８、図９は、異常コーナー除去処理を説明するためのフローチャートである。まず、有効コーナーを全部取り出し、それぞれの有効コーナーの移動ベクトルＶｊの横成分Ｖｊxを求める（ステップＶ１）。"ｘ"は画面の水平走査方向を示し、"ｊ"はコーナーを表す添え字である。Ｖｊxの平均と標準偏差を算出し、標準偏差がステップＴ１で設定した「移動ベクトル標準偏差判定しきい値」以上かどうかを判定する（ステップＶ２）。移動ベクトル標準偏差判定しきい値未満であれば、移動ベクトルＶｊの縦成分Ｖｊyを求める（ステップＶ３）。"ｙ"は画面の垂直走査方向を示す。Ｖｊyの平均と標準偏差を算出し、標準偏差が「移動ベクトル標準偏差判定しきい値」以上かどうかを判定する（ステップＶ４）。ステップＶ２，Ｖ４でいずれも「移動ベクトル標準偏差判定しきい値」未満であれば、異常なコーナーはなかったとして、異常コーナー除去処理を終える。
【００５０】
ステップＶ２又はＶ４で標準偏差が「移動ベクトル標準偏差判定しきい値」以上あれば、図のステップＶ５に移り、有効コーナーを順に取り出す。その取り出したコーナー以外のコーナーについて、移動ベクトルＶｊの横成分Ｖｊxの平均と標準偏差を算出し（ステップＶ６）、横成分Ｖｊxの標準偏差が「移動ベクトル標準偏差判定しきい値」未満になったかどうか判定する（ステップＶ７）。横成分Ｖｊxの標準偏差が「移動ベクトル標準偏差判定しきい値」未満になれば、その取り出したコーナー以外のコーナーについて、移動ベクトルＶｊの縦成分Ｖｊyの平均と標準偏差を算出し（ステップＶ８）、縦成分Ｖｊyの標準偏差が「移動ベクトル標準偏差判定しきい値」未満になったかどうか判定する（ステップＶ９）。
【００５１】
ステップＶ７，Ｖ９の両方で、標準偏差が「移動ベクトル標準偏差判定しきい値」未満になれば、そのコーナーが、移動ベクトル標準偏差を大きくしている「張本人」であるとして、当該コーナーを無効候補にする（ステップＶ１０）。
そして他の有効コーナーについてもステップＶ５〜ステップＶ１０の処理を行い、移動ベクトル標準偏差を大きくしているコーナーが見つかれば、当該コーナーを無効候補にする（ステップＶ１０）。
【００５２】
全ての有効コーナーについて処理が終了すれば、無効候補の数を調べ（ステップＶ１２）、１個のみであれば、当該コーナーを無効にする（ステップＶ１３）。２個以上あれば、異常なコーナーはなかったとして、異常コーナー除去処理を終える。すなわち無効候補が１個あるときだけ、当該コーナーを無効にする。この理由は、コーナーの数はもともと少ない場合は、２個以上棄てると、後述する画像補正処理に支障が生じるからである。したがって、コーナーの数が十分多ければ、２個以上棄てるようにしてもよい。
【００５３】
なお、異常なコーナーが２個以上あると画像補正処理をしないというアルゴリズムを採用してもよい。
次に、画像補正処理を説明する。異常コーナーが除去され、有効コーナーが確定すると、画像補正処理に入る。図１０は、画像補正処理を説明するためのフローチャートである。全有効コーナーについて、移動ベクトルＶｊの横成分Ｖｊxの平均値ΔＶxを算出し（ステップＷ１）、移動ベクトルＶｊの縦成分Ｖｊyの平均値ΔＶyを算出する（ステップＷ２）。そして、監視カメラの画面上で全体をΔＶx，ΔＶyだけ移動させる（ステップＷ３）。これで画像補正処理が終了する。
【００５４】
以上の画像補正処理により、ＣＣＤ監視カメラ２で対象範囲を時間的に複数回撮影した各画像の中に含まれる不動構造物又は不動表示物のコーナーが、常に、画面内の同一位置になるように画像を補正することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明の画像補正方法を実行する画像処理システムのハードウェア構成図である。
【図２】画像補正方法を実行するＣＰＵ７の各機能を示すブロック図である。
【図３】本発明の画像補正処理の全体の流れを示すフローチャートである。
【図４】初期設定処理を説明するためのフローチャートである。
【図５】初期設定処理を説明するためのフローチャートである（図４の続き）。
【図６】コーナー追跡処理を説明するためのフローチャートである。
【図７】コーナー追跡処理を説明するためのフローチャートである（図６の続き）。
【図８】異常コーナー除去処理を説明するためのフローチャートである。
【図９】異常コーナー除去処理を説明するためのフローチャートである（図８の続き）。
【図１０】画像補正処理を説明するためのフローチャートである。
【図１１】基準画像の例を示す画面図である。
【図１２】「前周期コーナー情報」の中から選定されたコーナーＣ（前）と、その周辺に設定された探索エリアを示す図である。
【図１３】基準画素Ｃと、周辺の画素Ｃ１〜Ｃ８との位置関係を記した図である。
【図１４】横軸に輝度Ｉをとり、縦軸に輝度Ｉ′をとり、番地ｉごとに点を座標｛Ｉ（ｉ），Ｉ′（ｉ）｝をプロットしたグラフである。
【図１５】過去に追跡されたコーナー位置をプロットしたグラフである。
【符号の説明】
【００５６】
１  画像処理装置
２  ＣＣＤ監視カメラ
３  Ａ／Ｄ変換器
４  画像メモリ
５  主メモリ
６  不揮発性メモリ(EEPROM)、
７  中央処理装置（ＣＰＵ）
８  Ｉ／Ｏ制御器
９  入力デバイス
１０  映像モニター装置
【図１】
2004343737.tif 000003
【図２】
2004343737.tif 000004
【図３】
2004343737.tif 000005
【図４】
2004343737.tif 000006
【図５】
2004343737.tif 000007
【図６】
2004343737.tif 000008
【図７】
2004343737.tif 000009
【図８】
2004343737.tif 000010
【図９】
2004343737.tif 000011
【図１０】
2004343737.tif 000012
【図１１】
2004343737.tif 000013
【図１２】
2004343737.tif 000014
【図１３】
2004343737.tif 000015
【図１４】
2004343737.tif 000016
【図１５】
2004343737.tif 000017